\n\n \n \n\n\n\n\n\n","import { render } from \"./ConfirmDialog.vue?vue&type=template&id=d543b3e4&scoped=true\"\nimport script from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ConfirmDialog.vue?vue&type=style&index=0&id=d543b3e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d543b3e4\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./EditButton.vue?vue&type=template&id=3344f2bf&scoped=true\"\nimport script from \"./EditButton.vue?vue&type=script&lang=js\"\nexport * from \"./EditButton.vue?vue&type=script&lang=js\"\n\nimport \"./EditButton.vue?vue&type=style&index=0&id=3344f2bf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3344f2bf\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./NameEditor.vue?vue&type=template&id=1405d90f&scoped=true\"\nimport script from \"./NameEditor.vue?vue&type=script&lang=js\"\nexport * from \"./NameEditor.vue?vue&type=script&lang=js\"\n\nimport \"./NameEditor.vue?vue&type=style&index=0&id=1405d90f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1405d90f\"]])\n\nexport default __exports__","import { render } from \"./Modal.vue?vue&type=template&id=628ff73f&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=628ff73f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-628ff73f\"]])\n\nexport default __exports__","\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Selector.vue?vue&type=template&id=c5a17b82&scoped=true\"\nimport script from \"./Selector.vue?vue&type=script&lang=js\"\nexport * from \"./Selector.vue?vue&type=script&lang=js\"\n\nimport \"./Selector.vue?vue&type=style&index=0&id=c5a17b82&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c5a17b82\"]])\n\nexport default __exports__","var map = {\n\t\"./Battery\": [\n\t\t8990,\n\t\t9,\n\t\t6869,\n\t\t8990\n\t],\n\t\"./Battery.vue\": [\n\t\t8990,\n\t\t9,\n\t\t6869,\n\t\t8990\n\t],\n\t\"./BinarySensor\": [\n\t\t9496,\n\t\t9,\n\t\t3490,\n\t\t6869,\n\t\t9496\n\t],\n\t\"./BinarySensor.vue\": [\n\t\t9496,\n\t\t9,\n\t\t3490,\n\t\t6869,\n\t\t9496\n\t],\n\t\"./CurrentSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./CurrentSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Dimmer\": [\n\t\t6365,\n\t\t9,\n\t\t9974,\n\t\t6869,\n\t\t6365\n\t],\n\t\"./Dimmer.vue\": [\n\t\t6365,\n\t\t9,\n\t\t9974,\n\t\t6869,\n\t\t6365\n\t],\n\t\"./EnergySensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./EnergySensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Entity\": [\n\t\t5246,\n\t\t9\n\t],\n\t\"./Entity.vue\": [\n\t\t5246,\n\t\t9\n\t],\n\t\"./EntityIcon\": [\n\t\t3673,\n\t\t9,\n\t\t6869,\n\t\t3673\n\t],\n\t\"./EntityIcon.vue\": [\n\t\t3673,\n\t\t9,\n\t\t6869,\n\t\t3673\n\t],\n\t\"./EntityMixin\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./EntityMixin.vue\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./EnumSwitch\": [\n\t\t818,\n\t\t9,\n\t\t6869,\n\t\t818\n\t],\n\t\"./EnumSwitch.vue\": [\n\t\t818,\n\t\t9,\n\t\t6869,\n\t\t818\n\t],\n\t\"./HumiditySensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./HumiditySensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Index\": [\n\t\t9208,\n\t\t9\n\t],\n\t\"./Index.vue\": [\n\t\t9208,\n\t\t9\n\t],\n\t\"./Light\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t9974,\n\t\t6869,\n\t\t1155\n\t],\n\t\"./Light.vue\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t9974,\n\t\t6869,\n\t\t1155\n\t],\n\t\"./LinkQuality\": [\n\t\t2235,\n\t\t9,\n\t\t6869,\n\t\t2235\n\t],\n\t\"./LinkQuality.vue\": [\n\t\t2235,\n\t\t9,\n\t\t6869,\n\t\t2235\n\t],\n\t\"./Modal\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./Modal.vue\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./NumericSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./NumericSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./PowerSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./PowerSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./RawSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./RawSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Selector\": [\n\t\t6382,\n\t\t9\n\t],\n\t\"./Selector.vue\": [\n\t\t6382,\n\t\t9\n\t],\n\t\"./Sensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Sensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./Switch\": [\n\t\t4024,\n\t\t9,\n\t\t3490,\n\t\t6869,\n\t\t4024\n\t],\n\t\"./Switch.vue\": [\n\t\t4024,\n\t\t9,\n\t\t3490,\n\t\t6869,\n\t\t4024\n\t],\n\t\"./TemperatureSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./TemperatureSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./VoltageSensor\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./VoltageSensor.vue\": [\n\t\t2072,\n\t\t9,\n\t\t6869,\n\t\t2072\n\t],\n\t\"./common.scss\": [\n\t\t65,\n\t\t9,\n\t\t4981,\n\t\t65\n\t],\n\t\"./meta\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./meta.json\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./vars.scss\": [\n\t\t5207,\n\t\t9,\n\t\t4981,\n\t\t5207\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 7243;\nmodule.exports = webpackAsyncContext;"],"names":["wellKnownSymbol","MATCH","module","exports","METHOD_NAME","regexp","error1","error2","isRegExp","$TypeError","TypeError","it","$","uncurryThis","getOwnPropertyDescriptor","toLength","toString","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","un$EndsWith","endsWith","slice","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","prototype","writable","target","proto","forced","searchString","that","this","endPosition","arguments","length","undefined","len","end","search","un$StartsWith","startsWith","stringSlice","index","class","component","value","loading","error","reachable","$emit","$event","name","mixins","EntityMixin","emits","data","mounted","type","split","map","t","toUpperCase","join","__exports__","render","Utils","props","Boolean","default","Object","required","modalVisible","computed","entityType","s","charAt","entityGroups","selector","title","refresh","modalEntityId","entity","entities","visible","onEntityModal","keys","displayGroups","group","key","grouping","entitiesMeta","typesByCategory","icon","pluginIcons","url","imgUrl","id","onEntityInput","errorEntities","loadingEntities","components","Loading","Icon","Entity","Selector","NoItems","EntityModal","entityScanTimeout","Number","entityTimeouts","selectedEntities","meta","icons","entityTypes","groupEntities","entries","reduce","obj","name_plural","filter","entry","e","sort","a","b","localeCompare","methods","attr","values","args","plugins","plugin","self","clearTimeout","setTimeout","console","warn","request","sync","name_override","category","clearEntityTimeouts","entityId","onEntityUpdate","event","state","onEntityDelete","subscribe","href","external_id","ref","onDelete","editName","onRename","disabled","editIcon","onIconEdit","color","onIconColorEdit","description","created_at","updated_at","$refs","deleteConfirmDiag","show","onConfirm","confirmText","close","cancelText","Modal","modal","hide","proxy","submit","text","deafult","EditButton","NameEditor","ConfirmDialog","newName","req","newIcon","visibleGroupings","g","prettifyGroupingName","onGroupingChanged","isGroupFilterActive","sortedGroups","iconForGroup","selectedGroups","toggleGroup","placeholder","searchTerm","Dropdown","DropdownItem","typesMeta","toLowerCase","indexOf","prettify","synchronizeSelectedEntities","updateSearchTerm","refreshGroupFilter","reset","$watch","webpackAsyncContext","__webpack_require__","o","Promise","resolve","then","Error","code","ids","all"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js b/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js
new file mode 100644
index 000000000..af07a5fb8
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js
@@ -0,0 +1,2 @@
+(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[5246],{5246:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return c}});var i=n(6252);const s={class:"row item entity-container"};function a(t,e,n,a,o,l){return(0,i.wg)(),(0,i.iD)("div",s,[((0,i.wg)(),(0,i.j4)((0,i.LL)(o.component),{value:t.value,loading:t.loading,error:t.error||0==t.value?.reachable,onInput:e[0]||(e[0]=e=>t.$emit("input",e)),onLoading:e[1]||(e[1]=e=>t.$emit("loading",e))},null,8,["value","loading","error"]))])}var o=n(7909),l={name:"Entity",mixins:[o["default"]],emits:["input","loading"],data(){return{component:null}},mounted(){if("Entity"!==this.type){const t=this.type.split("_").map((t=>t[0].toUpperCase()+t.slice(1))).join("");this.component=(0,i.RC)((()=>n(7243)(`./${t}`)))}}},r=n(3744);const u=(0,r.Z)(l,[["render",a],["__scopeId","data-v-44f8f858"]]);var c=u},7909:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return o}});var i=n(6813),s={name:"EntityMixin",mixins:[i.Z],emits:["input"],props:{loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},value:{type:Object,required:!0}},data(){return{modalVisible:!1}},computed:{type(){let t=this.value.type||"";return t.split("_").map((t=>t.charAt(0).toUpperCase()+t.slice(1))).join("")}}};const a=s;var o=a},9208:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return W}});var i=n(6252),s=n(3577);const a=t=>((0,i.dD)("data-v-6e31f4a4"),t=t(),(0,i.Cn)(),t),o={class:"row plugin entities-container"},l={class:"col-11 left"},r={class:"col-1 right"},u=a((()=>(0,i._)("i",{class:"fa fa-sync-alt"},null,-1))),c=[u],d={class:"groups-canvas"},p=(0,i.Uk)("No entities found"),m={key:2,class:"groups-container"},y={class:"frame"},h={class:"header"},g={class:"section left"},f={class:"section center"},v=["textContent"],_={class:"section right"},w=["onClick"],b=a((()=>(0,i._)("i",{class:"fa fa-sync-alt"},null,-1))),k=[b],E={class:"body"},C=["onClick"];function S(t,e,n,a,u,b){const S=(0,i.up)("Loading"),I=(0,i.up)("Selector"),x=(0,i.up)("EntityModal"),D=(0,i.up)("NoItems"),G=(0,i.up)("Icon"),T=(0,i.up)("Entity");return(0,i.wg)(),(0,i.iD)("div",o,[u.loading?((0,i.wg)(),(0,i.j4)(S,{key:0})):(0,i.kq)("",!0),(0,i._)("header",null,[(0,i._)("div",l,[(0,i.Wm)(I,{"entity-groups":b.entityGroups,value:u.selector,onInput:e[0]||(e[0]=t=>u.selector=t)},null,8,["entity-groups","value"])]),(0,i._)("div",r,[(0,i._)("button",{title:"Refresh",onClick:e[1]||(e[1]=t=>b.refresh(null))},c)])]),(0,i._)("div",d,[u.modalEntityId?((0,i.wg)(),(0,i.j4)(x,{key:0,entity:u.entities[u.modalEntityId],visible:u.modalVisible,onClose:e[2]||(e[2]=t=>b.onEntityModal(null))},null,8,["entity","visible"])):(0,i.kq)("",!0),Object.keys(b.displayGroups||{})?.length?((0,i.wg)(),(0,i.iD)("div",m,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(b.displayGroups,(t=>((0,i.wg)(),(0,i.iD)("div",{class:"group fade-in",key:t.name},[(0,i._)("div",y,[(0,i._)("div",h,[(0,i._)("span",g,["category"===u.selector.grouping&&b.entitiesMeta[b.typesByCategory[t.name]]?((0,i.wg)(),(0,i.j4)(G,(0,s.vs)((0,i.dG)({key:0},b.entitiesMeta[b.typesByCategory[t.name]].icon||{})),null,16)):"plugin"===u.selector.grouping&&b.pluginIcons[t.name]?((0,i.wg)(),(0,i.j4)(G,{key:1,class:(0,s.C_)(b.pluginIcons[t.name]?.class),url:b.pluginIcons[t.name]?.imgUrl},null,8,["class","url"])):(0,i.kq)("",!0)]),(0,i._)("span",f,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(t.name)},null,8,v)]),(0,i._)("span",_,[(0,i._)("button",{title:"Refresh",onClick:e=>b.refresh(t)},k,8,w)])]),(0,i._)("div",E,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(t.entities,(t=>((0,i.wg)(),(0,i.iD)("div",{class:"entity-frame",onClick:e=>b.onEntityModal(t.id),key:t.id},[(0,i.Wm)(T,{value:t,onInput:b.onEntityInput,error:!!u.errorEntities[t.id],loading:!!u.loadingEntities[t.id],onLoading:e=>u.loadingEntities[t.id]=e},null,8,["value","onInput","error","loading","onLoading"])],8,C)))),128))])])])))),128))])):((0,i.wg)(),(0,i.j4)(D,{key:1},{default:(0,i.w5)((()=>[p])),_:1}))])])}var I=n(6813),x=n(1232),D=n(1478);const G={class:"no-items-container"},T={class:"no-items fade-in"};function j(t,e,n,s,a,o){return(0,i.wg)(),(0,i.iD)("div",G,[(0,i._)("div",T,[(0,i.WI)(t.$slots,"default",{},void 0,!0)])])}var O={name:"NoItems"},q=n(3744);const U=(0,q.Z)(O,[["render",j],["__scopeId","data-v-6fec32b5"]]);var M=U,N=n(5246),$=n(6382),L=n(6243),Z=n(1359),z=n(7369),B={name:"Entities",components:{Loading:x.Z,Icon:D.Z,Entity:N["default"],Selector:$["default"],NoItems:M,EntityModal:L["default"]},mixins:[I.Z],props:{entityScanTimeout:{type:Number,default:30}},data(){return{loading:!1,loadingEntities:{},errorEntities:{},entityTimeouts:{},entities:{},modalEntityId:null,modalVisible:!1,selector:{grouping:"category",selectedEntities:{}}}},computed:{entitiesMeta(){return z},pluginIcons(){return Z},entityTypes(){return this.groupEntities("type")},typesByCategory(){return Object.entries(z).reduce(((t,[e,n])=>(t[n.name_plural]=e,t)),{})},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((t,[e,n])=>(t[e]=n[0],t)),{}),category:this.groupEntities("category"),plugin:this.groupEntities("plugin")}},displayGroups(){return Object.entries(this.entityGroups[this.selector.grouping]).filter((t=>t[1].filter((t=>!!this.selector.selectedEntities[t.id])).length>0)).sort(((t,e)=>t[0].localeCompare(e[0]))).map((([t,e])=>({name:t,entities:e.filter((t=>t.id in this.selector.selectedEntities))})))}},methods:{groupEntities(t){return Object.values(this.entities).reduce(((e,n)=>{const i=e[n[t]]||{};return i[n.id]=n,e[n[t]]=Object.values(i).sort(((t,e)=>t.name.localeCompare(e.name))),e}),{})},async refresh(t){const e=(t?t.entities:this.entities)||{},n={};t&&(n.plugins=Object.keys(e.reduce(((t,e)=>(t[e.plugin]=!0,t)),{}))),this.loadingEntities=Object.values(e).reduce(((t,e)=>{const n=this,i=e.id;return this.entityTimeouts[i]&&clearTimeout(this.entityTimeouts[i]),this.entityTimeouts[i]=setTimeout((()=>{n.loadingEntities[i]&&delete n.loadingEntities[i],n.entityTimeouts[i]&&delete n.entityTimeouts[i],n.errorEntities[i]=e,console.warn(`Scan timeout for ${e.name}`)}),1e3*this.entityScanTimeout),t[i]=!0,t}),{}),await this.request("entities.scan",n)},async sync(){this.loading=!0;try{this.entities=(await this.request("entities.get")).reduce(((t,e)=>(e.name=e?.meta?.name_override||e.name,e.category=z[e.type].name_plural,e.meta={...z[e.type]||{},...e.meta||{}},t[e.id]=e,t)),{}),this.selector.selectedEntities=this.entityGroups.id}finally{this.loading=!1}},clearEntityTimeouts(t){this.errorEntities[t]&&delete this.errorEntities[t],this.loadingEntities[t]&&delete this.loadingEntities[t],this.entityTimeouts[t]&&(clearTimeout(this.entityTimeouts[t]),delete this.entityTimeouts[t])},onEntityInput(t){t.category=z[t.type].name_plural,this.entities[t.id]=t,this.clearEntityTimeouts(t.id),this.loadingEntities[t.id]&&delete this.loadingEntities[t.id]},onEntityUpdate(t){const e=t.entity.id;if(null==e)return;this.clearEntityTimeouts(e);const n={...t.entity};null==t.entity?.state&&(n.state=this.entities[e]?.state),n.meta?.name_override?.length?n.name=n.meta.name_override:this.entities[e]?.meta?.name_override?.length?n.name=this.entities[e].meta.name_override:n.name=t.entity?.name||this.entities[e]?.name,n.category=z[n.type].name_plural,n.meta={...z[t.entity.type]||{},...this.entities[e]?.meta||{},...t.entity?.meta||{}},this.entities[e]=n},onEntityDelete(t){const e=t.entity?.id;null!=e&&(e===this.modalEntityId&&(this.modalEntityId=null),this.entities[e]&&delete this.entities[e])},onEntityModal(t){t?(this.modalEntityId=t,this.modalVisible=!0):(this.modalEntityId=null,this.modalVisible=!1)}},async mounted(){this.subscribe(this.onEntityUpdate,"on-entity-update","platypush.message.event.entities.EntityUpdateEvent"),this.subscribe(this.onEntityDelete,"on-entity-delete","platypush.message.event.entities.EntityDeleteEvent"),await this.sync(),await this.refresh()}};const F=(0,q.Z)(B,[["render",S],["__scopeId","data-v-6e31f4a4"]]);var W=F},6243:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return Zt}});var i=n(6252),s=n(3577);const a=t=>((0,i.dD)("data-v-628ff73f"),t=t(),(0,i.Cn)(),t),o=(0,i.Uk)(" Are you "),l=a((()=>(0,i._)("b",null,"sure",-1))),r=(0,i.Uk)(" that you want to delete this entity? "),u=a((()=>(0,i._)("br",null,null,-1))),c=a((()=>(0,i._)("br",null,null,-1))),d=(0,i.Uk)(" Note: you should only delete an entity if its plugin has been disabled or the entity is no longer reachable."),p=a((()=>(0,i._)("br",null,null,-1))),m=a((()=>(0,i._)("br",null,null,-1))),y=(0,i.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),h={class:"table-row"},g={class:"title"},f=(0,i.Uk)(" Name "),v={class:"value"},_=["textContent"],w={class:"table-row"},b={class:"title"},k=(0,i.Uk)(" Icon "),E={class:"value icon-canvas"},C={key:0,class:"icon-editor"},S=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),I=[S],x=a((()=>(0,i._)("span",{class:"help"},[(0,i.Uk)(" Supported: image URLs or "),(0,i._)("a",{href:"https://fontawesome.com/icons",target:"_blank"},"FontAwesome icon classes"),(0,i.Uk)(". ")],-1))),D={class:"table-row"},G=a((()=>(0,i._)("div",{class:"title"}," Icon color ",-1))),T={class:"value icon-color-picker"},j=["value"],O=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),q=[O],U={class:"table-row"},M=a((()=>(0,i._)("div",{class:"title"},"Plugin",-1))),N=["textContent"],$={class:"table-row"},L=a((()=>(0,i._)("div",{class:"title"},"Internal ID",-1))),Z=["textContent"],z={key:0,class:"table-row"},B=a((()=>(0,i._)("div",{class:"title"},"External ID",-1))),F=["textContent"],W={key:1,class:"table-row"},R=a((()=>(0,i._)("div",{class:"title"},"Description",-1))),V=["textContent"],H={key:0,class:"table-row"},K=["textContent"],A=["textContent"],P={key:2,class:"table-row"},Y=a((()=>(0,i._)("div",{class:"title"},"Created at",-1))),Q=["textContent"],J={key:3,class:"table-row"},X=a((()=>(0,i._)("div",{class:"title"},"Updated at",-1))),tt=["textContent"],et={class:"table-row delete-entity-container"},nt=a((()=>(0,i._)("div",{class:"title"},"Delete Entity",-1))),it={class:"value"},st=a((()=>(0,i._)("i",{class:"fas fa-trash"},null,-1))),at=[st];function ot(t,e,n,a,S,O){const st=(0,i.up)("ConfirmDialog"),ot=(0,i.up)("EditButton"),lt=(0,i.up)("NameEditor"),rt=(0,i.up)("Icon"),ut=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(ut,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((()=>[(0,i.Wm)(st,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:O.onDelete},{default:(0,i.w5)((()=>[o,l,r,u,c,d,p,m,y])),_:1},8,["onInput"]),(0,i._)("div",h,[(0,i._)("div",g,[f,S.editName?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(ot,{key:0,onClick:e[0]||(e[0]=t=>S.editName=!0)}))]),(0,i._)("div",v,[S.editName?((0,i.wg)(),(0,i.j4)(lt,{key:0,value:n.entity.name,onInput:O.onRename,onCancel:e[1]||(e[1]=t=>S.editName=!1),disabled:S.loading},null,8,["value","onInput","disabled"])):((0,i.wg)(),(0,i.iD)("span",{key:1,textContent:(0,s.zw)(n.entity.name)},null,8,_))])]),(0,i._)("div",w,[(0,i._)("div",b,[k,S.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(ot,{key:0,onClick:e[2]||(e[2]=t=>S.editIcon=!0)}))]),(0,i._)("div",E,[S.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(lt,{value:n.entity.meta?.icon?.class||n.entity.meta?.icon?.url,onInput:O.onIconEdit,onCancel:e[5]||(e[5]=t=>S.editIcon=!1),disabled:S.loading},{default:(0,i.w5)((()=>[(0,i._)("button",{type:"button",title:"Reset",onClick:e[3]||(e[3]=t=>O.onIconEdit(null)),onTouch:e[4]||(e[4]=t=>O.onIconEdit(null))},I,32)])),_:1},8,["value","onInput","disabled"]),x])):((0,i.wg)(),(0,i.j4)(rt,(0,s.vs)((0,i.dG)({key:1},n.entity?.meta?.icon||{})),null,16))])]),(0,i._)("div",D,[G,(0,i._)("div",T,[(0,i._)("input",{type:"color",value:n.entity.meta?.icon?.color,onChange:e[6]||(e[6]=(...t)=>O.onIconColorEdit&&O.onIconColorEdit(...t))},null,40,j),(0,i._)("button",{type:"button",title:"Reset",onClick:e[7]||(e[7]=t=>O.onIconColorEdit(null)),onTouch:e[8]||(e[8]=t=>O.onIconColorEdit(null))},q,32)])]),(0,i._)("div",U,[M,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.plugin)},null,8,N)]),(0,i._)("div",$,[L,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.id)},null,8,Z)]),n.entity.external_id?((0,i.wg)(),(0,i.iD)("div",z,[B,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.external_id)},null,8,F)])):(0,i.kq)("",!0),n.entity.description?((0,i.wg)(),(0,i.iD)("div",W,[R,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.description)},null,8,V)])):(0,i.kq)("",!0),((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(n.entity.data||{},((e,n)=>((0,i.wg)(),(0,i.iD)("div",{key:n},[null!=e?((0,i.wg)(),(0,i.iD)("div",H,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(t.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,s.zw)(""+e)},null,8,A)])):(0,i.kq)("",!0)])))),128)),n.entity.created_at?((0,i.wg)(),(0,i.iD)("div",P,[Y,(0,i._)("div",{class:"value",textContent:(0,s.zw)(t.formatDateTime(n.entity.created_at))},null,8,Q)])):(0,i.kq)("",!0),n.entity.updated_at?((0,i.wg)(),(0,i.iD)("div",J,[X,(0,i._)("div",{class:"value",textContent:(0,s.zw)(t.formatDateTime(n.entity.updated_at))},null,8,tt)])):(0,i.kq)("",!0),(0,i._)("div",et,[nt,(0,i._)("div",it,[(0,i._)("button",{onClick:e[9]||(e[9]=e=>t.$refs.deleteConfirmDiag.show())},at)])])])),_:1},8,["visible","title"])}var lt=n(8453),rt=n(1478),ut=n(9963);const ct=t=>((0,i.dD)("data-v-d543b3e4"),t=t(),(0,i.Cn)(),t),dt={class:"dialog-content"},pt=ct((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),mt=ct((()=>(0,i._)("i",{class:"fas fa-xmark"},null,-1)));function yt(t,e,n,a,o,l){const r=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(r,{ref:"modal",title:n.title},{default:(0,i.w5)((()=>[(0,i._)("div",dt,[(0,i.WI)(t.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:e[4]||(e[4]=(0,ut.iM)(((...t)=>l.onConfirm&&l.onConfirm(...t)),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:e[0]||(e[0]=(...t)=>l.onConfirm&&l.onConfirm(...t)),onTouch:e[1]||(e[1]=(...t)=>l.onConfirm&&l.onConfirm(...t))},[pt,(0,i.Uk)("  "+(0,s.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:e[2]||(e[2]=(...t)=>l.close&&l.close(...t)),onTouch:e[3]||(e[3]=(...t)=>l.close&&l.close(...t))},[mt,(0,i.Uk)("  "+(0,s.zw)(n.cancelText),1)],32)],32)])),_:3},8,["title"])}var ht={emits:["input","click","touch"],components:{Modal:lt.Z},props:{title:{type:String},confirmText:{type:String,default:"OK"},cancelText:{type:String,default:"Cancel"}},methods:{onConfirm(){this.$emit("input"),this.close()},show(){this.$refs.modal.show()},close(){this.$refs.modal.hide()}}},gt=n(3744);const ft=(0,gt.Z)(ht,[["render",yt],["__scopeId","data-v-d543b3e4"]]);var vt=ft;const _t=t=>((0,i.dD)("data-v-3344f2bf"),t=t(),(0,i.Cn)(),t),wt=_t((()=>(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1))),bt=[wt];function kt(t,e,n,s,a,o){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:e[0]||(e[0]=t=>o.proxy(t)),onTouch:e[1]||(e[1]=t=>o.proxy(t)),onInput:e[2]||(e[2]=t=>o.proxy(t))},bt,32)}var Et={emits:["input","click","touch"],methods:{proxy(t){this.$emit(t.type,t)}}};const Ct=(0,gt.Z)(Et,[["render",kt],["__scopeId","data-v-3344f2bf"]]);var St=Ct;const It=t=>((0,i.dD)("data-v-1405d90f"),t=t(),(0,i.Cn)(),t),xt=["disabled"],Dt=It((()=>(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1))),Gt=It((()=>(0,i._)("i",{class:"fas fa-ban"},null,-1))),Tt=[Gt];function jt(t,e,n,s,a,o){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:e[3]||(e[3]=(0,ut.iM)(((...t)=>o.submit&&o.submit(...t)),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=t=>a.text=t),disabled:n.disabled},null,8,xt),[[ut.nr,a.text]]),Dt,(0,i._)("button",{class:"cancel",onClick:e[1]||(e[1]=e=>t.$emit("cancel")),onTouch:e[2]||(e[2]=e=>t.$emit("cancel"))},Tt,32),(0,i.WI)(t.$slots,"default",{},void 0,!0)],32)}var Ot={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data(){return{text:null}},methods:{proxy(t){this.$emit(t.type,t)},submit(){return this.$emit("input",this.text),!1}},mounted(){this.text=this.value}};const qt=(0,gt.Z)(Ot,[["render",jt],["__scopeId","data-v-1405d90f"]]);var Ut=qt,Mt=n(6813),Nt=n(7369),$t={name:"Entity",components:{Modal:lt.Z,EditButton:St,NameEditor:Ut,Icon:rt.Z,ConfirmDialog:vt},mixins:[Mt.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1}},data(){return{loading:!1,editName:!1,editIcon:!1}},methods:{async onRename(t){this.loading=!0;try{const e={};e[this.entity.id]=t,await this.request("entities.rename",e)}finally{this.loading=!1,this.editName=!1}},async onDelete(){this.loading=!0;try{await this.request("entities.delete",[this.entity.id])}finally{this.loading=!1}},async onIconEdit(t){this.loading=!0;try{const e={url:null,class:null};t?.length?t.startsWith("http")?e.url=t:e.class=t:(e.url=(Nt[this.entity.type]||{})?.icon?.url,e.class=(Nt[this.entity.type]||{})?.icon?.["class"]);const n={};n[this.entity.id]={icon:e},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}},async onIconColorEdit(t){this.loading=!0;try{const e=this.entity.meta?.icon||{};e.color=t?t.target.value:null;const n={};n[this.entity.id]={icon:e},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}}}};const Lt=(0,gt.Z)($t,[["render",ot],["__scopeId","data-v-628ff73f"]]);var Zt=Lt},6382:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return v}});var i=n(6252),s=n(3577),a=n(9963);const o={class:"entities-selectors-container"},l={class:"selector"},r={key:1,class:"selector"};function u(t,e,n,u,c,d){const p=(0,i.up)("DropdownItem"),m=(0,i.up)("Dropdown");return(0,i.wg)(),(0,i.iD)("div",o,[(0,i._)("div",l,[(0,i.Wm)(m,{title:"Group by","icon-class":"fas fa-eye",ref:"groupingSelector"},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.visibleGroupings,(t=>((0,i.wg)(),(0,i.j4)(p,{key:t,text:d.prettifyGroupingName(t),"item-class":{selected:n.value?.grouping===t},onClick:e=>d.onGroupingChanged(t)},null,8,["text","item-class","onClick"])))),128))])),_:1},512)]),n.value?.grouping?((0,i.wg)(),(0,i.iD)("div",{key:0,class:(0,s.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,i.Wm)(m,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.sortedGroups,(t=>((0,i.wg)(),(0,i.j4)(p,(0,i.dG)({key:t,text:t},d.iconForGroup(t),{"item-class":{selected:!!c.selectedGroups[t]},onClick:(0,a.iM)((e=>d.toggleGroup(t)),["stop"])}),null,16,["text","item-class","onClick"])))),128))])),_:1},512)],2)):(0,i.kq)("",!0),Object.keys(n.entityGroups.id||{}).length?((0,i.wg)(),(0,i.iD)("div",r,[(0,i.wy)((0,i._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":e[0]||(e[0]=t=>c.searchTerm=t)},null,512),[[a.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(6813),d=n(5771),p=n(9015),m=n(7369),y=n(1359),h={name:"Selector",emits:["input"],mixins:[c.Z],components:{Dropdown:d.Z,DropdownItem:p.Z},props:{entityGroups:{type:Object,required:!0},value:{type:Object,required:!0}},data(){return{selectedGroups:{},searchTerm:""}},computed:{visibleGroupings(){return Object.keys(this.entityGroups).filter((t=>"id"!==t))},sortedGroups(){return Object.keys(this.entityGroups[this.value?.grouping]||{}).sort()},typesMeta(){return m},isGroupFilterActive(){return Object.keys(this.selectedGroups).length!==this.sortedGroups.length},selectedEntities(){return Object.values(this.entityGroups.id).filter((t=>{if(!this.selectedGroups[t[this.value?.grouping]])return!1;if(this.searchTerm?.length){const e=this.searchTerm.toLowerCase();return(t.name||"").toLowerCase().indexOf(e)>=0||(t.plugin||"").toLowerCase().indexOf(e)>=0||(t.external_id||"").toLowerCase().indexOf(e)>=0||(t.id||0).toString()==e}return!0})).reduce(((t,e)=>(t[e.id]=e,t)),{})}},methods:{prettifyGroupingName(t){return t?(t=this.prettify(t),t.endsWith("y")&&(t=t.slice(0,t.length-1)+"ie"),t+="s",t):""},iconForGroup(t){if("plugin"===this.value.grouping&&y[t]){const e=y[t];return{"icon-class":e["class"]?.length||!e.imgUrl?.length?e["class"]:"fas fa-gears","icon-url":e.imgUrl}}return{}},synchronizeSelectedEntities(){const t={...this.value};t.selectedEntities=this.selectedEntities,this.$emit("input",t)},updateSearchTerm(){const t={...this.value};t.searchTerm=this.searchTerm,t.selectedEntities=this.selectedEntities,this.$emit("input",t)},refreshGroupFilter(t){if(t)this.selectedGroups=Object.keys(this.entityGroups[this.value?.grouping]||{}).reduce(((t,e)=>(t[e]=!0,t)),{});else for(const e of Object.keys(this.entityGroups[this.value?.grouping]))null==this.selectedGroups[e]&&(this.selectedGroups[e]=!0);this.synchronizeSelectedEntities()},toggleGroup(t){this.selectedGroups[t]=!this.selectedGroups[t],this.synchronizeSelectedEntities()},onGroupingChanged(t){if(!this.entityGroups[t]||t===this.value?.grouping)return!1;const e={...this.value};e.grouping=t,this.$emit("input",e)}},mounted(){this.refreshGroupFilter(!0),this.$watch((()=>this.value?.grouping),(()=>{this.refreshGroupFilter(!0)})),this.$watch((()=>this.searchTerm),this.updateSearchTerm),this.$watch((()=>this.entityGroups),(()=>{this.refreshGroupFilter(!1)}))}},g=n(3744);const f=(0,g.Z)(h,[["render",u],["__scopeId","data-v-c5a17b82"]]);var v=f},7243:function(t,e,n){var i={"./Battery":[8990,9,6869,8990],"./Battery.vue":[8990,9,6869,8990],"./BinarySensor":[9496,9,3490,6869,9496],"./BinarySensor.vue":[9496,9,3490,6869,9496],"./CurrentSensor":[2072,9,6869,2072],"./CurrentSensor.vue":[2072,9,6869,2072],"./Dimmer":[6365,9,9974,6869,6365],"./Dimmer.vue":[6365,9,9974,6869,6365],"./EnergySensor":[2072,9,6869,2072],"./EnergySensor.vue":[2072,9,6869,2072],"./Entity":[5246,9],"./Entity.vue":[5246,9],"./EntityIcon":[3673,9,6869,3673],"./EntityIcon.vue":[3673,9,6869,3673],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSwitch":[818,9,6869,818],"./EnumSwitch.vue":[818,9,6869,818],"./HumiditySensor":[2072,9,6869,2072],"./HumiditySensor.vue":[2072,9,6869,2072],"./Index":[9208,9],"./Index.vue":[9208,9],"./Light":[1155,9,3490,9974,6869,1155],"./Light.vue":[1155,9,3490,9974,6869,1155],"./LinkQuality":[2235,9,6869,2235],"./LinkQuality.vue":[2235,9,6869,2235],"./Modal":[6243,9],"./Modal.vue":[6243,9],"./NumericSensor":[2072,9,6869,2072],"./NumericSensor.vue":[2072,9,6869,2072],"./PowerSensor":[2072,9,6869,2072],"./PowerSensor.vue":[2072,9,6869,2072],"./RawSensor":[2072,9,6869,2072],"./RawSensor.vue":[2072,9,6869,2072],"./Selector":[6382,9],"./Selector.vue":[6382,9],"./Sensor":[2072,9,6869,2072],"./Sensor.vue":[2072,9,6869,2072],"./Switch":[4024,9,3490,6869,4024],"./Switch.vue":[4024,9,3490,6869,4024],"./TemperatureSensor":[2072,9,6869,2072],"./TemperatureSensor.vue":[2072,9,6869,2072],"./VoltageSensor":[2072,9,6869,2072],"./VoltageSensor.vue":[2072,9,6869,2072],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(t){if(!n.o(i,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=i[t],s=e[0];return Promise.all(e.slice(2).map(n.e)).then((function(){return n.t(s,16|e[1])}))}s.keys=function(){return Object.keys(i)},s.id=7243,t.exports=s},7369:function(t){"use strict";t.exports=JSON.parse('{"battery":{"name":"Battery","name_plural":"Batteries","icon":{"class":"fas fa-battery-full"}},"current_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-bolt"}},"device":{"name":"Device","name_plural":"Devices","icon":{"class":"fas fa-gear"}},"dimmer":{"name":"Dimmer","name_plural":"Dimmers","icon":{"class":"fas fa-gauge"}},"energy_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-plug"}},"entity":{"name":"Entity","name_plural":"Entities","icon":{"class":"fas fa-circle-question"}},"humidity_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-droplet"}},"light":{"name":"Light","name_plural":"Lights","icon":{"class":"fas fa-lightbulb"}},"link_quality":{"name":"Link Quality","name_plural":"Link Qualities","icon":{"class":"fas fa-tower-broadcast"}},"power_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-plug"}},"temperature_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-temperature-half"}},"enum_switch":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-gauge"}},"switch":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-toggle-on"}},"voltage_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-car-battery"}},"binary_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"numeric_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}}}')}}]);
+//# sourceMappingURL=5246.04e07bb0.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js.map b/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js.map
new file mode 100644
index 000000000..45f0f4f75
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/5246.04e07bb0.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/5246.04e07bb0.js","mappings":"sLACOA,MAAM,6B,0CAAX,QAQM,MARN,EAQM,cAPJ,SAME,QANc,EAAAC,WAAS,CACtBC,MAAO,EAAAA,MACPC,QAAS,EAAAA,QACTC,MAAO,EAAAA,OAAyB,GAAhB,EAAAF,OAAOG,UACvB,QAAK,eAAE,EAAAC,MAAK,QAAUC,IACtB,UAAO,eAAE,EAAAD,MAAK,UAAYC,KAL7B,sC,eAcJ,GACEC,KAAM,SACNC,OAAQ,CAACC,EAAA,YACTC,MAAO,CAAC,QAAS,WAEjBC,OACE,MAAO,CACLX,UAAW,KAEd,EAEDY,UACE,GAAkB,WAAdC,KAAKC,KAAmB,CAC1B,MAAMA,EAAOD,KAAKC,KAAKC,MAAM,KAAKC,KAAKC,GACnCA,EAAE,GAAGC,cAAgBD,EAAEE,MAAM,KAC/BC,KAAK,IAEPP,KAAKb,WAAY,SACf,IAAM,QAAQ,KAA+Bc,MAEjD,CACD,G,UC9BH,MAAMO,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O,+FCNA,GACEf,KAAM,cACNC,OAAQ,CAACe,EAAA,GACTb,MAAO,CAAC,SACRc,MAAO,CACLtB,QAAS,CACPY,KAAMW,QACNC,SAAS,GAGXvB,MAAO,CACLW,KAAMW,QACNC,SAAS,GAGXzB,MAAO,CACLa,KAAMa,OACNC,UAAU,IAIdjB,OACE,MAAO,CACLkB,cAAc,EAEjB,EAEDC,SAAU,CACRhB,OACE,IAAIiB,EAAclB,KAAKZ,MAAMa,MAAQ,GACrC,OAAOiB,EAAWhB,MAAM,KACtBC,KAAKgB,GAAMA,EAAEC,OAAO,GAAGf,cAAgBc,EAAEb,MAAM,KAAIC,KAAK,GAC3D,IChCL,MAAMC,EAAc,EAEpB,O,wKCJOtB,MAAM,iC,GAIFA,MAAM,e,GAINA,MAAM,e,UAEP,OAA4B,KAAzBA,MAAM,kBAAgB,W,GAAzB,G,GAKDA,MAAM,iB,WAMiD,qB,SAErDA,MAAM,oB,GAEFA,MAAM,S,GACJA,MAAM,U,GACHA,MAAM,gB,GAONA,MAAM,kB,qBAINA,MAAM,iB,wBAER,OAA4B,KAAzBA,MAAM,kBAAgB,W,GAAzB,G,GAKDA,MAAM,Q,mMA7CrB,QA6DM,MA7DN,EA6DM,CA5DW,EAAAG,UAAA,WAAf,QAA0B,aAA1B,gBAEA,OAUS,gBATP,OAEM,MAFN,EAEM,EADJ,QAAuF,GAA5E,gBAAe,EAAAgC,aAAejC,MAAO,EAAAkC,SAAW,QAAK,eAAE,EAAAA,SAAW7B,IAA7E,qCAGF,OAIM,MAJN,EAIM,EAHJ,OAES,UAFD8B,MAAM,UAAW,QAAK,eAAE,EAAAC,QAAO,QAAvC,QAMJ,OA6CM,MA7CN,EA6CM,CA1CI,EAAAC,gBAAA,WAFR,QAGE,G,MAHYC,OAAQ,EAAAC,SAAS,EAAAF,eAC5BG,QAAS,EAAAZ,aAAe,QAAK,eAAE,EAAAa,cAAa,QAD/C,8CAKgBf,OAAOgB,KAAK,EAAAC,eAAa,KAASC,SAAlD,WAEA,QAoCM,MApCN,EAoCM,gBAnCJ,QAkCM,mBAlCqC,EAAAD,eAATE,K,WAAlC,QAkCM,OAlCD/C,MAAM,gBAAgDgD,IAAKD,EAAMvC,MAAtE,EACE,OAgCM,MAhCN,EAgCM,EA/BJ,OAiBM,MAjBN,EAiBM,EAhBJ,OAKO,OALP,EAKO,CAHoB,aAAjB,EAAA4B,SAASa,UAA2B,EAAAC,aAAa,EAAAC,gBAAgBJ,EAAMvC,SAAnC,WAD5C,QACyF,4BAD3E,EAAA0C,aAAa,EAAAC,gBAAgBJ,EAAMvC,OAAO4C,MAAI,eAG9B,WAAjB,EAAAhB,SAASa,UAAyB,EAAAI,YAAYN,EAAMvC,QAAlB,WAD/C,QAC0E,G,MADnER,OAAK,QAAE,EAAAqD,YAAYN,EAAMvC,OAAOR,OAAQsD,IAAK,EAAAD,YAAYN,EAAMvC,OAAO+C,QAA7E,4CAIF,OAEO,OAFP,EAEO,EADL,OAAyC,OAApCvD,MAAM,Q,aAAQ,QAAmB,EAALQ,OAAjC,aAGF,OAIO,OAJP,EAIO,EAHL,OAES,UAFD6B,MAAM,UAAW,QAAK,GAAE,EAAAC,QAAQS,IAAxC,YAMJ,OAWM,MAXN,EAWM,gBAVJ,QASM,mBAReA,EAAMN,UAAhBD,K,WADX,QASM,OATDxC,MAAM,eAAgB,QAAK,GAAE,EAAA2C,cAAcH,EAAOgB,IACjBR,IAAKR,EAAOgB,IADlD,EAEE,QAME,GALCtD,MAAOsC,EACP,QAAO,EAAAiB,cACPrD,QAAS,EAAAsD,cAAclB,EAAOgB,IAC9BrD,UAAW,EAAAwD,gBAAgBnB,EAAOgB,IAClC,UAAO,GAAE,EAAAG,gBAAgBnB,EAAOgB,IAAMjD,GALzC,2DAFF,uBAtBN,WAHgD,WAAlD,QAAqF,W,kBAA3B,IAAiB,M,sDCrB5EP,MAAM,sB,GACJA,MAAM,oB,0CADb,QAIM,MAJN,EAIM,EAHJ,OAEM,MAFN,EAEM,EADJ,QAAQ,oC,CAMZ,OACEQ,KAAM,W,UCHR,MAAMc,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAEzF,Q,kDFmEA,GACEd,KAAM,WACNoD,WAAY,CAACC,QAAD,IAAUC,KAAV,IAAgBC,OAAhB,aAAwBC,SAAxB,aAAkCC,QAAlC,EAA2CC,YAAW,cAClEzD,OAAQ,CAACe,EAAA,GAETC,MAAO,CAEL0C,kBAAmB,CACjBpD,KAAMqD,OACNzC,QAAS,KAIbf,OACE,MAAO,CACLT,SAAS,EACTwD,gBAAiB,CAAC,EAClBD,cAAe,CAAC,EAChBW,eAAgB,CAAC,EACjB5B,SAAU,CAAC,EACXF,cAAe,KACfT,cAAc,EACdM,SAAU,CACRa,SAAU,WACVqB,iBAAkB,CAAC,GAGxB,EAEDvC,SAAU,CACRmB,eACE,OAAOqB,CACR,EAEDlB,cACE,OAAOmB,CACR,EAEDC,cACE,OAAO3D,KAAK4D,cAAc,OAC3B,EAEDvB,kBACE,OAAOvB,OAAO+C,QAAQJ,GAAMK,QAAO,CAACC,GAAM9D,EAAMwD,MAC5CM,EAAIN,EAAKO,aAAe/D,EACjB8D,IACR,CAAC,EACL,EAED1C,eACE,MAAO,CACL,GAAMP,OAAO+C,QAAQ7D,KAAK4D,cAAc,OAAOE,QAAO,CAACC,GAAMrB,EAAIf,MAC/DoC,EAAIrB,GAAMf,EAAS,GACZoC,IACN,CAAC,GACJ,SAAY/D,KAAK4D,cAAc,YAC/B,OAAU5D,KAAK4D,cAAc,UAEhC,EAED7B,gBACE,OAAOjB,OAAO+C,QAAQ7D,KAAKqB,aAAarB,KAAKsB,SAASa,WAAW8B,QAC9DC,GAAUA,EAAM,GAAGD,QACjBE,KAAQnE,KAAKsB,SAASkC,iBAAiBW,EAAEzB,MAC1CV,OAAS,IACXoC,MAAK,CAACC,EAAGC,IAAMD,EAAE,GAAGE,cAAcD,EAAE,MAAKnE,KACzC,EAAEgC,EAAUR,MACH,CACLjC,KAAMyC,EACNR,SAAUA,EAASsC,QAChBE,GAAMA,EAAEzB,MAAM1C,KAAKsB,SAASkC,sBAKtC,GAGHgB,QAAS,CACPZ,cAAca,GACZ,OAAO3D,OAAO4D,OAAO1E,KAAK2B,UAAUmC,QAAO,CAACC,EAAKrC,KAC/C,MAAMC,EAAWoC,EAAIrC,EAAO+C,KAAU,CAAC,EAOvC,OANA9C,EAASD,EAAOgB,IAAMhB,EAEtBqC,EAAIrC,EAAO+C,IAAS3D,OAAO4D,OAAO/C,GAAUyC,MAAK,CAACC,EAAGC,IAC1CD,EAAE3E,KAAK6E,cAAcD,EAAE5E,QAG3BqE,CAAP,GACC,CAAC,EACL,EAEDY,cAAc1C,GACZ,MAAMN,GAAYM,EAAQA,EAAMN,SAAW3B,KAAK2B,WAAa,CAAC,EACxDiD,EAAO,CAAC,EACV3C,IACF2C,EAAKC,QAAU/D,OAAOgB,KAAKH,EAASmC,QAAO,CAACC,EAAKrC,KAC/CqC,EAAIrC,EAAOoD,SAAU,EACdf,IACN,CAAC,KAEN/D,KAAK6C,gBAAkB/B,OAAO4D,OAAO/C,GAAUmC,QAAO,CAACC,EAAKrC,KACxD,MAAMqD,EAAO/E,KACP0C,EAAKhB,EAAOgB,GAelB,OAdI1C,KAAKuD,eAAeb,IACtBsC,aAAahF,KAAKuD,eAAeb,IAEnC1C,KAAKuD,eAAeb,GAAMuC,YAAW,KAC7BF,EAAKlC,gBAAgBH,WAChBqC,EAAKlC,gBAAgBH,GAC1BqC,EAAKxB,eAAeb,WACfqC,EAAKxB,eAAeb,GAE7BqC,EAAKnC,cAAcF,GAAMhB,EACzBwD,QAAQC,KAAM,oBAAmBzD,EAAOhC,OAAxC,GACwB,IAAzBM,KAAKqD,mBAERU,EAAIrB,IAAM,EACHqB,CAAP,GACD,CAAC,SAEE/D,KAAKoF,QAAQ,gBAAiBR,EACrC,EAEDD,aACE3E,KAAKX,SAAU,EAEf,IACEW,KAAK2B,gBAAkB3B,KAAKoF,QAAQ,iBAAiBtB,QAAO,CAACC,EAAKrC,KAChEA,EAAOhC,KAAOgC,GAAQ+B,MAAM4B,eAAiB3D,EAAOhC,KACpDgC,EAAO4D,SAAW7B,EAAK/B,EAAOzB,MAAM+D,YACpCtC,EAAO+B,KAAO,IACRA,EAAK/B,EAAOzB,OAAS,CAAC,KACtByB,EAAO+B,MAAQ,CAAC,GAGtBM,EAAIrC,EAAOgB,IAAMhB,EACVqC,IACN,CAAC,GAEJ/D,KAAKsB,SAASkC,iBAAmBxD,KAAKqB,aAAaqB,EAGrD,CAhBA,QAeE1C,KAAKX,SAAU,CACjB,CACD,EAEDkG,oBAAoBC,GACdxF,KAAK4C,cAAc4C,WACdxF,KAAK4C,cAAc4C,GACxBxF,KAAK6C,gBAAgB2C,WAChBxF,KAAK6C,gBAAgB2C,GAC1BxF,KAAKuD,eAAeiC,KACtBR,aAAahF,KAAKuD,eAAeiC,WAC1BxF,KAAKuD,eAAeiC,GAE9B,EAED7C,cAAcjB,GACZA,EAAO4D,SAAW7B,EAAK/B,EAAOzB,MAAM+D,YACpChE,KAAK2B,SAASD,EAAOgB,IAAMhB,EAC3B1B,KAAKuF,oBAAoB7D,EAAOgB,IAC5B1C,KAAK6C,gBAAgBnB,EAAOgB,YACvB1C,KAAK6C,gBAAgBnB,EAAOgB,GACtC,EAED+C,eAAeC,GACb,MAAMF,EAAWE,EAAMhE,OAAOgB,GAC9B,GAAgB,MAAZ8C,EACF,OAEFxF,KAAKuF,oBAAoBC,GACzB,MAAM9D,EAAS,IAAIgE,EAAMhE,QACE,MAAvBgE,EAAMhE,QAAQiE,QAChBjE,EAAOiE,MAAQ3F,KAAK2B,SAAS6D,IAAWG,OACtCjE,EAAO+B,MAAM4B,eAAerD,OAC9BN,EAAOhC,KAAOgC,EAAO+B,KAAK4B,cACnBrF,KAAK2B,SAAS6D,IAAW/B,MAAM4B,eAAerD,OACrDN,EAAOhC,KAAOM,KAAK2B,SAAS6D,GAAU/B,KAAK4B,cAE3C3D,EAAOhC,KAAOgG,EAAMhE,QAAQhC,MAAQM,KAAK2B,SAAS6D,IAAW9F,KAE/DgC,EAAO4D,SAAW7B,EAAK/B,EAAOzB,MAAM+D,YACpCtC,EAAO+B,KAAO,IACRA,EAAKiC,EAAMhE,OAAOzB,OAAS,CAAC,KAC5BD,KAAK2B,SAAS6D,IAAW/B,MAAQ,CAAC,KAClCiC,EAAMhE,QAAQ+B,MAAQ,CAAC,GAG7BzD,KAAK2B,SAAS6D,GAAY9D,CAC3B,EAEDkE,eAAeF,GACb,MAAMF,EAAWE,EAAMhE,QAAQgB,GACf,MAAZ8C,IAEAA,IAAaxF,KAAKyB,gBACpBzB,KAAKyB,cAAgB,MACnBzB,KAAK2B,SAAS6D,WACTxF,KAAK2B,SAAS6D,GACxB,EAED3D,cAAc2D,GACRA,GACFxF,KAAKyB,cAAgB+D,EACrBxF,KAAKgB,cAAe,IAEpBhB,KAAKyB,cAAgB,KACrBzB,KAAKgB,cAAe,EAEvB,GAGH2D,gBACE3E,KAAK6F,UACH7F,KAAKyF,eACL,mBACA,sDAGFzF,KAAK6F,UACH7F,KAAK4F,eACL,mBACA,4DAGI5F,KAAK8F,aACL9F,KAAKwB,SACZ,GGxSH,MAAM,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASf,GAAQ,CAAC,YAAY,qBAEzF,O,iLCP6F,a,UAC/E,OAAW,SAAR,QAAI,K,WAAI,0C,UAAsC,OAAK,qB,UAAA,OAAK,qB,WAAA,iH,UAE9B,OAAK,qB,UAAA,OAAK,qB,WAAA,4E,GAI5CvB,MAAM,a,GACJA,MAAM,S,WAAQ,U,GAIdA,MAAM,S,qBAORA,MAAM,a,GACJA,MAAM,S,WAAQ,U,GAIdA,MAAM,qB,SACHA,MAAM,e,UAKN,OAAgC,KAA7BA,MAAM,sBAAoB,W,GAA7B,G,UAGJ,OAGO,QAHDA,MAAM,QAAM,UAAC,+BAEjB,OAAoF,KAAjF6G,KAAK,gCAAgCC,OAAO,UAAS,6BAFxC,QAEoE,QAFtF,K,GAUD9G,MAAM,a,UACT,OAEM,OAFDA,MAAM,SAAQ,gBAEnB,K,GACKA,MAAM,2B,sBAIP,OAAgC,KAA7BA,MAAM,sBAAoB,W,GAA7B,G,GAKDA,MAAM,a,UACT,OAA+B,OAA1BA,MAAM,SAAQ,UAAM,K,qBAItBA,MAAM,a,UACT,OAAoC,OAA/BA,MAAM,SAAQ,eAAW,K,2BAI3BA,MAAM,a,UACT,OAAoC,OAA/BA,MAAM,SAAQ,eAAW,K,2BAI3BA,MAAM,a,UACT,OAAoC,OAA/BA,MAAM,SAAQ,eAAW,K,2BAKzBA,MAAM,a,6CAMRA,MAAM,a,UACT,OAAmC,OAA9BA,MAAM,SAAQ,cAAU,K,2BAI1BA,MAAM,a,UACT,OAAmC,OAA9BA,MAAM,SAAQ,cAAU,K,uBAI1BA,MAAM,qC,WACT,OAAsC,OAAjCA,MAAM,SAAQ,iBAAa,K,IAC3BA,MAAM,S,WAEP,OAA0B,KAAvBA,MAAM,gBAAc,W,IAAvB,I,8KAlGR,QAsGQ,IAtGA0C,QAAS,EAAAA,QAAS1C,MAAM,eAAgBqC,MAAO,EAAAG,OAAOhC,MAAQ,EAAAgC,OAAOuE,aAA7E,C,kBACE,IAKgB,EALhB,QAKgB,IALDC,IAAI,oBAAoB3E,MAAM,0BAA2B,QAAO,EAAA4E,UAA/E,C,kBAAyF,IAC/E,OAAiD,EAAK,EAAtD,EAE6B,EAAK,EAFlC,K,KADV,gBAOA,OAUM,MAVN,EAUM,EATJ,OAGM,MAHN,EAGM,GADwC,EAAAC,UAA5C,iBAA4C,WAA5C,QAAwD,I,MAA3C,QAAK,eAAE,EAAAA,UAAQ,SAE9B,OAIM,MAJN,EAIM,CAFmD,EAAAA,WAAA,WADvD,QACmE,I,MADtDhH,MAAO,EAAAsC,OAAOhC,KAAO,QAAO,EAAA2G,SACtC,SAAM,eAAE,EAAAD,UAAQ,GAAWE,SAAU,EAAAjH,SADxC,qDAEA,QAAoC,Q,mBAA9B,QAAoB,EAAN,OAACK,OAArB,gBAIJ,OAsBM,MAtBN,EAsBM,EArBJ,OAGM,MAHN,EAGM,GADwC,EAAA6G,UAA5C,iBAA4C,WAA5C,QAAwD,I,MAA3C,QAAK,eAAE,EAAAA,UAAQ,SAE9B,OAgBM,MAhBN,EAgBM,CAf4B,EAAAA,WAAA,WAAhC,QAYO,OAZP,EAYO,EAXL,QAMa,IANAnH,MAAO,EAAAsC,OAAO+B,MAAMnB,MAAMpD,OAAS,EAAAwC,OAAO+B,MAAMnB,MAAME,IAAM,QAAO,EAAAgE,WAC7E,SAAM,eAAE,EAAAD,UAAQ,GAAWD,SAAU,EAAAjH,SADxC,C,kBAEE,IAGS,EAHT,OAGS,UAHDY,KAAK,SAASsB,MAAM,QAAS,QAAK,eAAE,EAAAiF,WAAU,OACjD,QAAK,eAAE,EAAAA,WAAU,QADtB,S,KAFF,kCAOA,OARF,WAcA,QAAiD,6BAAnC,EAAA9E,QAAQ+B,MAAMnB,MAAI,oBAIpC,OAWM,MAXN,EAWM,CAVJ,GAGA,OAMM,MANN,EAMM,EALJ,OAAgF,SAAzErC,KAAK,QAASb,MAAO,EAAAsC,OAAO+B,MAAMnB,MAAMmE,MAAQ,SAAM,oBAAE,EAAAC,iBAAA,EAAAA,mBAAA,KAA/D,YACA,OAGS,UAHDzG,KAAK,SAASsB,MAAM,QAAS,QAAK,eAAE,EAAAmF,gBAAe,OACtD,QAAK,eAAE,EAAAA,gBAAe,QAD3B,WAOJ,OAGM,MAHN,EAGM,CAFJ,GACA,OAA4C,OAAvCxH,MAAM,Q,aAAQ,QAAsB,EAAR,OAAC4F,SAAlC,aAGF,OAGM,MAHN,EAGM,CAFJ,GACA,OAAwC,OAAnC5F,MAAM,Q,aAAQ,QAAkB,EAAJ,OAACwD,KAAlC,YAG2B,EAAAhB,OAAOuE,cAAA,WAApC,QAGM,MAHN,EAGM,CAFJ,GACA,OAAiD,OAA5C/G,MAAM,Q,aAAQ,QAA2B,EAAb,OAAC+G,cAAlC,cAFF,eAK6B,EAAAvE,OAAOiF,cAAA,WAApC,QAGM,MAHN,EAGM,CAFJ,GACA,OAAiD,OAA5CzH,MAAM,Q,aAAQ,QAA2B,EAAb,OAACyH,cAAlC,cAFF,iBAlEgB,aAuEhB,QAKM,mBALqB,EAAAjF,OAAO5B,MAAI,KAA1BV,EAAOqF,M,WAAnB,QAKM,OALyCvC,IAAKuC,GAAI,CAChB,MAATrF,IAAK,WAAlC,QAGM,MAHN,EAGM,EAFJ,OAA6C,OAAxCF,MAAM,Q,aAAQ,QAAuB,EAAP,SAACuF,KAApC,WACA,OAAyC,OAApCvF,MAAM,Q,aAAQ,QAAmB,GAANE,IAAhC,cAFF,oBADF,MAO6B,EAAAsC,OAAOkF,aAAA,WAApC,QAGM,MAHN,EAGM,CAFJ,GACA,OAAgE,OAA3D1H,MAAM,Q,aAAQ,QAA0C,EAApB,eAAC,EAAAwC,OAAOkF,cAAjD,cAFF,eAK6B,EAAAlF,OAAOmF,aAAA,WAApC,QAGM,MAHN,EAGM,CAFJ,GACA,OAAgE,OAA3D3H,MAAM,Q,aAAQ,QAA0C,EAApB,eAAC,EAAAwC,OAAOmF,cAAjD,eAFF,gBAKA,OAOM,MAPN,GAOM,CANJ,IACA,OAIM,MAJN,GAIM,EAHJ,OAES,UAFA,QAAK,eAAE,EAAAC,MAAMC,kBAAkBC,SAAxC,W,KAjGN,sB,uGCCO9H,MAAM,kB,YAMP,OAA0B,KAAvBA,MAAM,gBAAc,W,YAGvB,OAA0B,KAAvBA,MAAM,gBAAc,W,qEAV7B,QAaQ,GAbDgH,IAAI,QAAS3E,MAAO,EAAAA,OAA3B,C,kBACE,IAEM,EAFN,OAEM,MAFN,GAEM,EADJ,QAAQ,oCAGV,OAOO,QAPDrC,MAAM,UAAW,SAAM,+BAAU,EAAA+H,WAAA,EAAAA,aAAA,IAAS,eAAhD,EACE,OAES,UAFDhH,KAAK,SAASf,MAAM,SAAU,QAAK,oBAAE,EAAA+H,WAAA,EAAAA,aAAA,IAAY,QAAK,oBAAE,EAAAA,WAAA,EAAAA,aAAA,KAAhE,CACE,YAA0B,OAAQ,QAAG,EAAAC,aAAW,IADlD,KAGA,OAES,UAFDjH,KAAK,SAASf,MAAM,aAAc,QAAK,oBAAE,EAAAiI,OAAA,EAAAA,SAAA,IAAQ,QAAK,oBAAE,EAAAA,OAAA,EAAAA,SAAA,KAAhE,CACE,YAA0B,OAAQ,QAAG,EAAAC,YAAU,IADjD,KAJF,O,KALF,Y,CAmBF,QACEvH,MAAO,CAAC,QAAS,QAAS,SAC1BiD,WAAY,CAACuE,MAAK,MAClB1G,MAAO,CACLY,MAAO,CACLtB,KAAMqH,QAGRJ,YAAa,CACXjH,KAAMqH,OACNzG,QAAS,MAGXuG,WAAY,CACVnH,KAAMqH,OACNzG,QAAS,WAIb2D,QAAS,CACPyC,YACEjH,KAAKR,MAAM,SACXQ,KAAKmH,OACN,EAEDH,OACEhH,KAAK8G,MAAMS,MAAMP,MAClB,EAEDG,QACEnH,KAAK8G,MAAMS,MAAMC,MAClB,I,WC5CL,MAAMhH,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yECLI,OAAkC,KAA/BtB,MAAM,wBAAsB,W,IAA/B,I,2CAHF,QAIS,UAJDA,MAAM,WACX,QAAK,eAAE,EAAAuI,MAAMhI,IAAU,QAAK,eAAE,EAAAgI,MAAMhI,IAAU,QAAK,eAAE,EAAAgI,MAAMhI,KAD9D,M,CAQF,QACEI,MAAO,CAAC,QAAS,QAAS,SAC1B2E,QAAS,CACPiD,MAAMtD,GACJnE,KAAKR,MAAM2E,EAAElE,KAAMkE,EACpB,ICPL,MAAM,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,yFCNI,OAES,UAFDlE,KAAK,UAAQ,EACnB,OAAiC,KAA9Bf,MAAM,0BADX,K,YAIE,OAAwB,KAArBA,MAAM,cAAY,W,IAArB,I,2CANJ,QASO,QATA,SAAM,+BAAU,EAAAwI,QAAA,EAAAA,UAAA,IAAM,cAAExI,MAAM,eAArC,WACE,OAAuD,SAAhDe,KAAK,O,qCAAgB,EAAA0H,KAAI,GAAGrB,SAAU,EAAAA,UAA7C,mBAA4B,EAAAqB,QAC5B,IAGA,OAES,UAFDzI,MAAM,SAAU,QAAK,eAAE,EAAAM,MAAK,WAAa,QAAK,eAAE,EAAAA,MAAK,YAA7D,QAGA,QAAQ,kCARV,G,CAaF,QACEK,MAAO,CAAC,QAAS,UACjBc,MAAO,CACLvB,MAAO,CACLa,KAAMqH,QAGRhB,SAAU,CACRrG,KAAMW,QACNgH,SAAS,IAIb9H,OACE,MAAO,CACL6H,KAAM,KAET,EAEDnD,QAAS,CACPiD,MAAMtD,GACJnE,KAAKR,MAAM2E,EAAElE,KAAMkE,EACpB,EAEDuD,SAEE,OADA1H,KAAKR,MAAM,QAASQ,KAAK2H,OAClB,CACR,GAGH5H,UACEC,KAAK2H,KAAO3H,KAAKZ,KAClB,GCvCH,MAAM,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAEzF,U,sBN0GA,IACEM,KAAM,SACNoD,WAAY,CAACuE,MAAD,KAAQQ,WAAR,GAAoBC,WAApB,GAAgC9E,KAAhC,KAAsC+E,cAAa,IAC/DpI,OAAQ,CAACe,GAAA,GACTb,MAAO,CAAC,QAAS,WACjBc,MAAO,CACLe,OAAQ,CACNzB,KAAMa,OACNC,UAAU,GAGZa,QAAS,CACP3B,KAAMW,QACNC,SAAS,IAIbf,OACE,MAAO,CACLT,SAAS,EACT+G,UAAU,EACVG,UAAU,EAEb,EAED/B,QAAS,CACPG,eAAeqD,GACbhI,KAAKX,SAAU,EAEf,IACE,MAAM4I,EAAM,CAAC,EACbA,EAAIjI,KAAK0B,OAAOgB,IAAMsF,QAChBhI,KAAKoF,QAAQ,kBAAmB6C,EAIxC,CAPA,QAKEjI,KAAKX,SAAU,EACfW,KAAKoG,UAAW,CAClB,CACD,EAEDzB,iBACE3E,KAAKX,SAAU,EAEf,UACQW,KAAKoF,QAAQ,kBAAmB,CAACpF,KAAK0B,OAAOgB,IAGrD,CAJA,QAGE1C,KAAKX,SAAU,CACjB,CACD,EAEDsF,iBAAiBuD,GACflI,KAAKX,SAAU,EAEf,IACE,MAAMiD,EAAO,CAACE,IAAK,KAAMtD,MAAO,MAC5BgJ,GAASlG,OACPkG,EAAQC,WAAW,QACrB7F,EAAKE,IAAM0F,EAEX5F,EAAKpD,MAAQgJ,GAEf5F,EAAKE,KAAOiB,GAAKzD,KAAK0B,OAAOzB,OAAS,CAAC,IAAIqC,MAAME,IACjDF,EAAKpD,OAASuE,GAAKzD,KAAK0B,OAAOzB,OAAS,CAAC,IAAIqC,OAAO,UAGtD,MAAM2F,EAAM,CAAC,EACbA,EAAIjI,KAAK0B,OAAOgB,IAAM,CAACJ,KAAMA,SACvBtC,KAAKoF,QAAQ,oBAAqB6C,EAI1C,CAlBA,QAgBEjI,KAAKX,SAAU,EACfW,KAAKuG,UAAW,CAClB,CACD,EAED5B,sBAAsBe,GACpB1F,KAAKX,SAAU,EAEf,IACE,MAAMiD,EAAOtC,KAAK0B,OAAO+B,MAAMnB,MAAQ,CAAC,EAEtCA,EAAKmE,MADHf,EACWA,EAAMM,OAAO5G,MAEb,KAEf,MAAM6I,EAAM,CAAC,EACbA,EAAIjI,KAAK0B,OAAOgB,IAAM,CAACJ,KAAMA,SACvBtC,KAAKoF,QAAQ,oBAAqB6C,EAI1C,CAbA,QAWEjI,KAAKX,SAAU,EACfW,KAAKuG,UAAW,CAClB,CACD,IOtML,MAAM,IAA2B,QAAgB,GAAQ,CAAC,CAAC,SAAS9F,IAAQ,CAAC,YAAY,qBAEzF,S,4HCROvB,MAAM,gC,GACJA,MAAM,Y,SAiBNA,MAAM,Y,kGAlBb,QAqBM,MArBN,EAqBM,EApBJ,OAMM,MANN,EAMM,EALJ,QAIW,GAJDqC,MAAM,WAAW,aAAW,aAAa2E,IAAI,oBAAvD,C,kBACgB,IAA6B,gBAA3C,QAEkC,mBAFR,EAAAkC,kBAALC,K,WAArB,QAEkC,GAFWnG,IAAKmG,EAAIV,KAAM,EAAAW,qBAAqBD,GAC9E,aAAU,UAAa,EAAAjJ,OAAO+C,WAAakG,GAC3C,QAAK,GAAE,EAAAE,kBAAkBF,IAF5B,oD,KADF,OAOiE,EAAAjJ,OAAO+C,WAAA,WAA1E,QAOM,O,MAPDjD,OAAK,SAAC,WAAU,QAAkB,EAAAsJ,wBAAvC,EACE,QAKW,GALDjH,MAAM,YAAY,aAAW,gBAAgB2E,IAAI,gBACvD,8BADJ,C,kBAEgB,IAAyB,gBAAvC,QAEiC,mBAFP,EAAAuC,cAALJ,K,WAArB,QAEiC,GAFjC,QAEiC,CAFQnG,IAAKmG,EAAIV,KAAMU,GAC9C,EAAAK,aAAaL,GAAC,CAAI,aAAU,YAAe,EAAAM,eAAeN,IACjE,SAAK,YAAO,EAAAO,YAAYP,IAAC,YAF5B,qD,KAFF,MADF,oBAS4BvH,OAAOgB,KAAK,EAAAT,aAAaqB,IAAE,IAAQV,SAAA,WAA/D,QAEM,MAFN,EAEM,WADJ,OAAyF,SAAlFkE,IAAI,SAASjG,KAAK,OAAOf,MAAM,aAAa2J,YAAY,K,qCAAc,EAAAC,WAAU,IAAvF,iBAA6E,EAAAA,kBAD/E,gB,uDAaJ,GACEpJ,KAAM,WACNG,MAAO,CAAC,SACRF,OAAQ,CAACe,EAAA,GACToC,WAAY,CAACiG,SAAD,IAAWC,aAAY,KACnCrI,MAAO,CACLU,aAAc,CACZpB,KAAMa,OACNC,UAAU,GAGZ3B,MAAO,CACLa,KAAMa,OACNC,UAAU,IAIdjB,OACE,MAAO,CACL6I,eAAgB,CAAC,EACjBG,WAAY,GAEf,EAED7H,SAAU,CACRmH,mBACE,OAAOtH,OAAOgB,KAAK9B,KAAKqB,cAAc4C,QACnC9B,GAA0B,OAAbA,GAEjB,EAEDsG,eACE,OAAO3H,OAAOgB,KAAK9B,KAAKqB,aAAarB,KAAKZ,OAAO+C,WAAa,CAAC,GAAGiC,MACnE,EAED6E,YACE,OAAOxF,CACR,EAED+E,sBACE,OAAO1H,OAAOgB,KAAK9B,KAAK2I,gBAAgB3G,SAAWhC,KAAKyI,aAAazG,MACtE,EAEDwB,mBACE,OAAO1C,OAAO4D,OAAO1E,KAAKqB,aAAaqB,IAAIuB,QAAQvC,IACjD,IAAK1B,KAAK2I,eAAejH,EAAO1B,KAAKZ,OAAO+C,WAC3C,OAAO,EAER,GAAInC,KAAK8I,YAAY9G,OAAQ,CAC3B,MAAM8G,EAAa9I,KAAK8I,WAAWI,cACnC,OACIxH,EAAOhC,MAAQ,IAAIwJ,cAAeC,QAAQL,IAAe,IACzDpH,EAAOoD,QAAU,IAAIoE,cAAeC,QAAQL,IAAe,IAC3DpH,EAAOuE,aAAe,IAAIiD,cAAeC,QAAQL,IAAe,IACjEpH,EAAOgB,IAAM,GAAG0G,YAAcN,CAEnC,CAEA,OAAO,CAAP,IACChF,QAAO,CAACC,EAAMrC,KACfqC,EAAIrC,EAAOgB,IAAMhB,EACVqC,IACN,CAAC,EACL,GAGHS,QAAS,CACP8D,qBAAqB5I,GACnB,OAAKA,GAGLA,EAAOM,KAAKqJ,SAAS3J,GACjBA,EAAK4J,SAAS,OAChB5J,EAAOA,EAAKY,MAAM,EAAGZ,EAAKsC,OAAO,GAAK,MAExCtC,GAAQ,IACDA,GAPE,EAQV,EAEDgJ,aAAazG,GACX,GAA4B,WAAxBjC,KAAKZ,MAAM+C,UAAyB,EAAYF,GAAQ,CAC1D,MAAMK,EAAO,EAAYL,GACzB,MAAO,CACL,aAAcK,EAAK,UAAUN,SAAWM,EAAKG,QAAQT,OACjDM,EAAK,SAAW,eACpB,WAAYA,EAAKG,OAErB,CAEA,MAAO,CAAC,CACT,EAED8G,8BACE,MAAMnK,EAAQ,IAAIY,KAAKZ,OACvBA,EAAMoE,iBAAmBxD,KAAKwD,iBAC9BxD,KAAKR,MAAM,QAASJ,EACrB,EAEDoK,mBACE,MAAMpK,EAAQ,IAAIY,KAAKZ,OACvBA,EAAM0J,WAAa9I,KAAK8I,WACxB1J,EAAMoE,iBAAmBxD,KAAKwD,iBAC9BxD,KAAKR,MAAM,QAASJ,EACrB,EAEDqK,mBAAmBC,GACjB,GAAIA,EACF1J,KAAK2I,eAAiB7H,OAAOgB,KAC3B9B,KAAKqB,aAAarB,KAAKZ,OAAO+C,WAAa,CAAC,GAC5C2B,QACA,CAACC,EAAK9B,KACJ8B,EAAI9B,IAAS,EACN8B,IACN,CAAC,QAGN,IAAK,MAAM9B,KAASnB,OAAOgB,KAAK9B,KAAKqB,aAAarB,KAAKZ,OAAO+C,WAC1B,MAA9BnC,KAAK2I,eAAe1G,KACtBjC,KAAK2I,eAAe1G,IAAS,GAGnCjC,KAAKuJ,6BACN,EAEDX,YAAY3G,GACVjC,KAAK2I,eAAe1G,IAAUjC,KAAK2I,eAAe1G,GAClDjC,KAAKuJ,6BACN,EAEDhB,kBAAkBpG,GAChB,IAAKnC,KAAKqB,aAAac,IAAaA,IAAanC,KAAKZ,OAAO+C,SAC3D,OAAO,EAET,MAAM/C,EAAQ,IAAIY,KAAKZ,OACvBA,EAAM+C,SAAWA,EACjBnC,KAAKR,MAAM,QAASJ,EACrB,GAGHW,UACEC,KAAKyJ,oBAAmB,GACxBzJ,KAAK2J,QAAO,IAAM3J,KAAKZ,OAAO+C,WAAU,KAAQnC,KAAKyJ,oBAAmB,EAAxB,IAChDzJ,KAAK2J,QAAO,IAAM3J,KAAK8I,YAAY9I,KAAKwJ,kBACxCxJ,KAAK2J,QAAO,IAAM3J,KAAKqB,eAAc,KAAQrB,KAAKyJ,oBAAmB,EAAxB,GAC9C,G,UCzKH,MAAMjJ,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,GAAQ,CAAC,YAAY,qBAEzF,O,uBCTA,IAAIN,EAAM,CACT,YAAa,CACZ,KACA,EACA,KACA,MAED,gBAAiB,CAChB,KACA,EACA,KACA,MAED,iBAAkB,CACjB,KACA,EACA,KACA,KACA,MAED,qBAAsB,CACrB,KACA,EACA,KACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,MAED,WAAY,CACX,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,KACA,MAED,iBAAkB,CACjB,KACA,EACA,KACA,MAED,qBAAsB,CACrB,KACA,EACA,KACA,MAED,WAAY,CACX,KACA,GAED,eAAgB,CACf,KACA,GAED,eAAgB,CACf,KACA,EACA,KACA,MAED,mBAAoB,CACnB,KACA,EACA,KACA,MAED,gBAAiB,CAChB,KACA,GAED,oBAAqB,CACpB,KACA,GAED,eAAgB,CACf,IACA,EACA,KACA,KAED,mBAAoB,CACnB,IACA,EACA,KACA,KAED,mBAAoB,CACnB,KACA,EACA,KACA,MAED,uBAAwB,CACvB,KACA,EACA,KACA,MAED,UAAW,CACV,KACA,GAED,cAAe,CACd,KACA,GAED,UAAW,CACV,KACA,EACA,KACA,KACA,KACA,MAED,cAAe,CACd,KACA,EACA,KACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,EACA,KACA,MAED,oBAAqB,CACpB,KACA,EACA,KACA,MAED,UAAW,CACV,KACA,GAED,cAAe,CACd,KACA,GAED,kBAAmB,CAClB,KACA,EACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,MAED,gBAAiB,CAChB,KACA,EACA,KACA,MAED,oBAAqB,CACpB,KACA,EACA,KACA,MAED,cAAe,CACd,KACA,EACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,MAED,aAAc,CACb,KACA,GAED,iBAAkB,CACjB,KACA,GAED,WAAY,CACX,KACA,EACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,MAED,WAAY,CACX,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,MAED,0BAA2B,CAC1B,KACA,EACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,MAED,gBAAiB,CAChB,GACA,EACA,KACA,IAED,SAAU,CACT,KACA,GAED,cAAe,CACd,KACA,GAED,cAAe,CACd,KACA,EACA,KACA,OAGF,SAASyJ,EAAoB3B,GAC5B,IAAI4B,EAAoBC,EAAE3J,EAAK8H,GAC9B,OAAO8B,QAAQC,UAAUC,MAAK,WAC7B,IAAI9F,EAAI,IAAI+F,MAAM,uBAAyBjC,EAAM,KAEjD,MADA9D,EAAEgG,KAAO,mBACHhG,CACP,IAGD,IAAIiG,EAAMjK,EAAI8H,GAAMvF,EAAK0H,EAAI,GAC7B,OAAOL,QAAQM,IAAID,EAAI9J,MAAM,GAAGH,IAAI0J,EAAoB1F,IAAI8F,MAAK,WAChE,OAAOJ,EAAoBzJ,EAAEsC,EAAa,GAAT0H,EAAI,GACtC,GACD,CACAR,EAAoB9H,KAAO,WAAa,OAAOhB,OAAOgB,KAAK3B,EAAM,EACjEyJ,EAAoBlH,GAAK,KACzB4H,EAAOC,QAAUX,C","sources":["webpack://platypush/./src/components/panels/Entities/Entity.vue","webpack://platypush/./src/components/panels/Entities/Entity.vue?6f8a","webpack://platypush/./src/components/panels/Entities/EntityMixin.vue","webpack://platypush/./src/components/panels/Entities/EntityMixin.vue?a9b3","webpack://platypush/./src/components/panels/Entities/Index.vue","webpack://platypush/./src/components/elements/NoItems.vue","webpack://platypush/./src/components/elements/NoItems.vue?70de","webpack://platypush/./src/components/panels/Entities/Index.vue?4523","webpack://platypush/./src/components/panels/Entities/Modal.vue","webpack://platypush/./src/components/elements/ConfirmDialog.vue","webpack://platypush/./src/components/elements/ConfirmDialog.vue?f384","webpack://platypush/./src/components/elements/EditButton.vue","webpack://platypush/./src/components/elements/EditButton.vue?fb20","webpack://platypush/./src/components/elements/NameEditor.vue","webpack://platypush/./src/components/elements/NameEditor.vue?34cf","webpack://platypush/./src/components/panels/Entities/Modal.vue?d45a","webpack://platypush/./src/components/panels/Entities/Selector.vue","webpack://platypush/./src/components/panels/Entities/Selector.vue?bf8b","webpack://platypush/./src/components/panels/Entities|lazy|/^\\.\\/.*$/|groupOptions: {}|namespace object"],"sourcesContent":["\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Entity.vue?vue&type=template&id=44f8f858&scoped=true\"\nimport script from \"./Entity.vue?vue&type=script&lang=js\"\nexport * from \"./Entity.vue?vue&type=script&lang=js\"\n\nimport \"./Entity.vue?vue&type=style&index=0&id=44f8f858&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44f8f858\"]])\n\nexport default __exports__","\n","import script from \"./EntityMixin.vue?vue&type=script&lang=js\"\nexport * from \"./EntityMixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n \n\n \n
\n \n
\n\n
\n \n
\n \n\n
\n \n\n No entities found\n\n
\n
\n
\n
\n \n \n \n \n\n \n \n \n\n \n \n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n","\n
\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./NoItems.vue?vue&type=template&id=6fec32b5&scoped=true\"\nimport script from \"./NoItems.vue?vue&type=script&lang=js\"\nexport * from \"./NoItems.vue?vue&type=script&lang=js\"\n\nimport \"./NoItems.vue?vue&type=style&index=0&id=6fec32b5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6fec32b5\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=6e31f4a4&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=6e31f4a4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6e31f4a4\"]])\n\nexport default __exports__","\n \n \n Are you sure that you want to delete this entity?
\n Note: you should only delete an entity if its plugin has been disabled\n or the entity is no longer reachable.
\n Otherwise, the entity will simply be created again upon the next scan.\n \n\n
\n\n\n\n\n\n","import { render } from \"./Node.vue?vue&type=template&id=3da196a6&scoped=true\"\nimport script from \"./Node.vue?vue&type=script&lang=js\"\nexport * from \"./Node.vue?vue&type=script&lang=js\"\n\nimport \"./Node.vue?vue&type=style&index=0&id=3da196a6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3da196a6\"]])\n\nexport default __exports__","\n
\n
\n
\n \n {{ value.label }}\n
\n
\n\n
\n
\n
Value
\n
\n
\n \n \n
\n\n
\n
\n
\n \n
\n\n
= 0\">\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n\n
= 0\">\n \n
\n\n
\n \n
\n
\n\n \n
\n
\n
\n\n
\n
Remove From Scene
\n
\n \n
\n
\n\n
\n
Add To Scene
\n
\n \n \n \n
\n
\n\n
\n
Help
\n \n
\n\n
\n
Value ID
\n \n
\n\n
\n
ID on Network
\n \n
\n\n
\n
Command Class
\n \n
\n\n
\n
Last Update
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Value.vue?vue&type=template&id=0021cd76&scoped=true\"\nimport script from \"./Value.vue?vue&type=script&lang=js\"\nexport * from \"./Value.vue?vue&type=script&lang=js\"\n\nimport \"./Value.vue?vue&type=style&index=0&id=0021cd76&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0021cd76\"]])\n\nexport default __exports__","import { render } from \"./Zwave.vue?vue&type=template&id=c573354c\"\nimport script from \"./Zwave.vue?vue&type=script&lang=js\"\nexport * from \"./Zwave.vue?vue&type=script&lang=js\"\n\nimport \"./Zwave.vue?vue&type=style&index=0&id=c573354c&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","ref","withLabel","type","min","range","max","step","disabled","value","onUpdate","name","emits","props","Number","Boolean","default","Array","methods","event","this","update","target","$emit","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","track","width","mounted","__exports__","render","onInput","checked","title","loading","status","state","device","stats","key","selected","groupId","Object","values","nodes","filter","node","addToGroup","node_id","view","$event","views","id","toUpperCase","slice","replace","addScene","text","commandRunning","networkInfoModalOpen","startNetwork","stopNetwork","addNode","removeNode","switchAll","cancelCommand","killCommand","receiveConfiguration","createNewPrimary","transferPrimaryRole","healNetwork","softReset","hardReset","refresh","keys","length","nodeId","pluginName","onNodeClick","groups","group","associations","map","owner","undefined","addNodesToGroupModal","show","scenes","scene","sceneId","label","activateScene","id_on_network","valuesMap","data","removeValueFromScene","removeScene","renameScene","valueId","addValueToScene","refreshNodes","index","max_associations","i","removeFromGroup","mixins","Utils","String","required","async","method","args","request","mixin","confirm","group_id","group_index","zrequest","editMode","editName","onEditMode","location","editLocation","role","neighbours","neighbour","is_ready","is_failed","manufacturer_id","product_type","product_name","manufacturer_name","capabilities","join","command_classes","g","home_id","toString","is_awake","is_locked","last_update","baud_rate","max_baud_rate","removeFailedNode","replaceFailedNode","heal","replicationSend","requestNetworkUpdate","requestNeighbourUpdate","notify","mode","form","input","querySelector","setTimeout","focus","select","new_name","console","log","is_read_only","units","onValueChange","data_items","indexOf","addValueToSceneItems","scene_id","help","value_id","command_class_name","command_class","components","Slider","Dropdown","DropdownItem","ToggleSwitch","computed","prompt","trim","new_label","image","iconClass","parentElement","parseInt","parseFloat","Value","Loading","Modal","Group","Node","switches","dimmers","sensors","battery_levels","power_levels","bulbs","doorlocks","usercodes","thermostats","protections","reduce","item","refreshGroups","refreshScenes","refreshValues","refreshStatus","onNodeUpdate","networkInfoModal","onCommandEvent","error","state_description","error_description","subscribe","unmounted","forEach","eventType","unsubscribe"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js.map b/platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js.map
deleted file mode 100644
index dd83e441d..000000000
--- a/platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/5824-legacy.c9733a88.js","mappings":"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","sources":["webpack://platypush/./node_modules/core-js/internals/string-trim-forced.js","webpack://platypush/./node_modules/core-js/modules/es.string.trim.js","webpack://platypush/./src/components/widgets/Component/Index.vue","webpack://platypush/./src/components/widgets/Component/components/mixins.js","webpack://platypush/./src/components/widgets/Component/components/Run.vue","webpack://platypush/./src/components/widgets/Component/components/Run.vue?73ce","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue?66dc","webpack://platypush/./src/components/widgets/Component/components/Slider.vue","webpack://platypush/./src/components/widgets/Component/components/Slider.vue?fc3e","webpack://platypush/./src/components/widgets/Component/components/Switch.vue","webpack://platypush/./src/components/widgets/Component/components/Switch.vue?ce7f","webpack://platypush/./src/components/widgets/Component/index.js","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/elements/ToggleSwitch.vue","webpack://platypush/./src/components/elements/ToggleSwitch.vue?94aa","webpack://platypush/./src/components/widgets/Component/Index.vue?276d"],"sourcesContent":["var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","\n
\n \n \n
\n\n\n\n\n\n","import Utils from \"@/Utils\";\n\nexport default {\n mixins: [Utils],\n props: {\n /**\n * Component name\n */\n name: {\n type: String,\n default: '[Unnamed sensor]',\n },\n\n /**\n * Action (FontAwesome) icon class (default: `fa fa-play`)\n */\n iconClass: {\n type: String,\n },\n\n /**\n * Action icon URL (default: `fa fa-play`)\n */\n iconUrl: {\n type: String,\n },\n\n /**\n * Action icon color override, for FontAwesome icons\n */\n iconColor: {\n type: String,\n },\n\n /**\n * Actions to run upon interaction with the widget. Format:\n *\n * [\n * {\n * \"action\": \"light.hue.toggle\",\n * \"args\": {\n * \"lights\": [\"Bulb 1\", \"Bulb 2\"]\n * }\n * },\n * {\n * \"action\": \"music.mpd.pause\"\n * }\n * ]\n */\n actions: {\n type: Array,\n default: () => { return [] },\n },\n\n /**\n * Map of variables used by this component, in the form\n * variable_name -> variable_value.\n */\n _vars: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Map of handlers, in the form of event_type -> functions.\n * Supported event handler types:\n *\n * - mounted: Function to execute when the component is mounted.\n * - beforeActions: Function to execute before the component action is run.\n * - afterActions: Function to execute after the component action is run.\n * - refresh: Function to be called at startup (if mounted is also specified\n * then refresh will be called after mounted when the component is\n * first mounted) and at regular intervals defined on the\n * interval property (default: 10 seconds).\n * - events: This is a mapping of functions that react to Platypush\n * platform events published on the websocket (e.g. lights or\n * switches toggles, media events etc.). The form is\n * platypush_event_type -> function.\n */\n handlers: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Event bus\n */\n bus: {\n type: Object,\n },\n },\n\n data() {\n return {\n vars: {...(this._vars || {})},\n _interval: undefined,\n refresh: null,\n refreshInterval: null,\n value: null,\n loading: false,\n }\n },\n\n computed: {\n iconStyle() {\n if (!this.iconClass?.length && this.iconColor?.length)\n return\n\n return {'color': this.iconColor}\n },\n\n hasIcon() {\n return this.iconUrl?.length || this.iconClass?.length\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.input)\n return this.handlers.input(this)(this.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n\n async request_(action) {\n const args = Object.entries(action.args).reduce((args, [key, value]) => {\n if (value.trim) {\n value = value.trim()\n const m = value.match(/^{{\\s*(.*)\\s*}}/)\n if (m) {\n value = eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this)\n }\n }\n\n args[key] = value\n return args\n }, {})\n\n await this.request(action.action, args)\n },\n\n async processEvent(event) {\n const hndl = (this.handlers.events || {})[event.type]\n if (hndl)\n await hndl(this)(event)\n },\n },\n\n async mounted() {\n this.$root.bus.on('event', this.processEvent)\n\n if (this.handlers.mounted)\n await this.handlers.mounted(this)\n\n if (this.handlers.refresh) {\n this.refreshInterval = (this.handlers.refresh?.interval || 0) * 1000\n this.refresh = () => {\n this.handlers.refresh.handler(this)\n }\n\n await this.refresh()\n if (this.refreshInterval) {\n const self = this\n const wrapper = () => { return self.refresh() }\n this._interval = setInterval(wrapper, this.refreshInterval)\n }\n }\n },\n\n unmounted() {\n if (this._interval)\n clearInterval(this._interval)\n }\n}\n","\n
\n
\n \n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./Run.vue?vue&type=template&id=7478b72d&scoped=true\"\nimport script from \"./Run.vue?vue&type=script&lang=js\"\nexport * from \"./Run.vue?vue&type=script&lang=js\"\n\nimport \"./Run.vue?vue&type=style&index=0&id=7478b72d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n {{ value }}\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Sensor.vue?vue&type=template&id=53594122&scoped=true\"\nimport script from \"./Sensor.vue?vue&type=script&lang=js\"\nexport * from \"./Sensor.vue?vue&type=script&lang=js\"\n\nimport \"./Sensor.vue?vue&type=style&index=0&id=53594122&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=772cf288&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=772cf288&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-772cf288\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Switch.vue?vue&type=template&id=97d3a936&scoped=true\"\nimport script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=97d3a936&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-97d3a936\"]])\n\nexport default __exports__","import Run from './components/Run'\nimport Sensor from \"./components/Sensor\";\nimport Slider from './components/Slider'\nimport Switch from './components/Switch'\n\nexport default {\n Run,\n Sensor,\n Slider,\n Switch,\n}\n","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=0359812c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=0359812c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0359812c\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=450fcab1&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=450fcab1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","non","module","exports","METHOD_NAME","name","$","$trim","forcedStringTrimMethod","target","proto","forced","trim","this","bus","components","Loading","mixins","props","content","type","String","data","loading","unwatch","methods","_parseActions","element","actionsTags","children","filter","node","tagName","toLowerCase","length","actionTags","map","actionTag","action","attributes","value","args","reduce","obj","arg","undefined","JSON","parse","innerText","e","_parseVars","varsTags","vars","varTag","_parseHandlers","handlers","parseHndlScript","hndlText","app","eval","parseEventHndl","event","hndlTags","mounted","refresh","handler","interval","events","hndlTag","beforeActionsTags","beforeActions","afterActionsTags","afterActions","_parseProps","attr","propagateEvent","emit","_addEventHandler","subscribe","_removeEventHandler","$refs","container","innerHTML","Object","entries","forEach","component","$options","getElementsByTagName","actions","_vars","newEl","document","createElement","setAttribute","parentNode","replaceChild","render","h","mount","removeChild","unmounted","Utils","default","iconClass","iconUrl","iconColor","Array","_interval","refreshInterval","computed","iconStyle","hasIcon","run","input","request_","key","m","match","request","processEvent","hndl","$root","on","self","wrapper","setInterval","clearInterval","class","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Slider","Number","required","ToggleSwitch","Run","Sensor","Switch","ref","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","onInput","checked"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js b/platypush/backend/http/webapp/dist/static/js/5824-legacy.e042a7c9.js
similarity index 81%
rename from platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js
rename to platypush/backend/http/webapp/dist/static/js/5824-legacy.e042a7c9.js
index 112199631..68c8b974a 100644
--- a/platypush/backend/http/webapp/dist/static/js/5824-legacy.c9733a88.js
+++ b/platypush/backend/http/webapp/dist/static/js/5824-legacy.e042a7c9.js
@@ -1,2 +1,2 @@
-(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[5824],{6091:function(e,_,t){var n=t(6530).PROPER,r=t(7293),a=t(1361),s="â€‹Â…á Ž";e.exports=function(e){return r((function(){return!!a[e]()||s[e]()!==s||n&&a[e].name!==e}))}},3210:function(e,_,t){"use strict";var n=t(2109),r=t(3111).trim,a=t(6091);n({target:"String",proto:!0,forced:a("trim")},{trim:function(){return r(this)}})},3275:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){"use strict";var _home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6084),_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(9584),core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(7327),core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(1539),core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(1249),core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es_array_map_js__WEBPACK_IMPORTED_MODULE_4__),core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(8309),core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(core_js_modules_es_function_name_js__WEBPACK_IMPORTED_MODULE_5__),core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__(4747),core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_6___default=__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_6__),core_js_modules_es_object_entries_js__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__(9720),core_js_modules_es_object_entries_js__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(core_js_modules_es_object_entries_js__WEBPACK_IMPORTED_MODULE_7__),_Utils__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__(6813),_components_Loading__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__(1232),_index__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__(9016),vue__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__(9963),vue__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__(6252),mitt__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__(9652),bus=(0,mitt__WEBPACK_IMPORTED_MODULE_11__.Z)();__webpack_exports__["Z"]={name:"Elements",components:{Loading:_components_Loading__WEBPACK_IMPORTED_MODULE_9__.Z},mixins:[_Utils__WEBPACK_IMPORTED_MODULE_8__.Z],props:{content:{type:String}},data:function(){return{loading:!1,unwatch:null}},methods:{_parseActions:function(e){var _=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(e.children).filter((function(e){var _;return"actions"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())})),t=null!==_&&void 0!==_&&_.length?_[0].children:e.children,n=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(t).filter((function(e){var _;return"action"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));if(null!==n&&void 0!==n&&n.length)return(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(n).map((function(e){return{action:e.attributes.name.value,args:(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(e.children).reduce((function(e,_){var t=void 0;try{t=JSON.parse(_.innerText)}catch(r){var n;null!==(n=_.innerText)&&void 0!==n&&n.length&&(t=_.innerText)}return e[_.tagName.toLowerCase()]=t,e}),{})}}))},_parseVars:function(e){var _=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(e.children).filter((function(e){var _;return"vars"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));if(null!==_&&void 0!==_&&_.length)return(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(_[0].children).reduce((function(e,_){var t=void 0;try{t=JSON.parse(_.innerText)}catch(r){var n;null!==(n=_.innerText)&&void 0!==n&&n.length&&(t=_.innerText)}return e[_.tagName.toLowerCase()]=t,e}),{})},_parseHandlers:function _parseHandlers(element){var handlers={},parseHndlScript=function parseHndlScript(hndlText){return function(app){return eval("// noinspection JSUnusedLocalSymbols\n (async function (self) {\n ".concat(hndlText,"\n })"))(app)}},parseEventHndl=function parseEventHndl(hndlText){return function(app){return function(event){return eval("// noinspection JSUnusedLocalSymbols\n (async function (self, event) {\n ".concat(hndlText,"\n })"))(app,event)}}},hndlTags=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(element.children).filter((function(e){var _;return"handlers"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));if(null!==hndlTags&&void 0!==hndlTags&&hndlTags.length){var mounted=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(hndlTags[0].children).filter((function(e){var _;return"mounted"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));null!==mounted&&void 0!==mounted&&mounted.length&&(handlers.mounted=parseHndlScript(mounted[0].innerText));var refresh=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(hndlTags[0].children).filter((function(e){var _;return"refresh"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())})),_refresh$0$attributes;if(null!==refresh&&void 0!==refresh&&refresh.length)handlers.refresh={handler:parseHndlScript(refresh[0].innerText),interval:(null===(_refresh$0$attributes=refresh[0].attributes.interval)||void 0===_refresh$0$attributes?void 0:_refresh$0$attributes.value)||10};var events=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(hndlTags[0].children).filter((function(e){var _;return"event"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));null!==events&&void 0!==events&&events.length&&(handlers.events=events.reduce((function(e,_){return e[_.attributes.type.value]=parseEventHndl(_.innerText),e}),{}))}var actionsTags=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(element.children).filter((function(e){var _;return"actions"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));if(null!==actionsTags&&void 0!==actionsTags&&actionsTags.length){var beforeActionsTags=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(actionsTags[0].children).filter((function(e){var _;return"before"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));null!==beforeActionsTags&&void 0!==beforeActionsTags&&beforeActionsTags.length&&(handlers.beforeActions=parseHndlScript(beforeActionsTags[0].innerText));var afterActionsTags=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(actionsTags[0].children).filter((function(e){var _;return"after"===(null===(_=e.tagName)||void 0===_?void 0:_.toLowerCase())}));null!==afterActionsTags&&void 0!==afterActionsTags&&afterActionsTags.length&&(handlers.afterActions=parseHndlScript(afterActionsTags[0].innerText))}return handlers},_parseProps:function(e){return(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(e.attributes).reduce((function(e,_){return e[_.name]=_.value,e}),{})},propagateEvent:function(e){bus.emit("event",e)},_addEventHandler:function(){this.unwatch=this.subscribe((function(e){bus.emit("event",e)}))},_removeEventHandler:function(){this.unwatch&&(this.unwatch(),this.unwatch=null)}},mounted:function(){var e=this;this.loading=!0,this._addEventHandler();try{this.$refs.container.innerHTML=this.content,Object.entries(_index__WEBPACK_IMPORTED_MODULE_10__.Z).forEach((function(_){var t=(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_slicedToArray_js__WEBPACK_IMPORTED_MODULE_0__.Z)(_,2),n=t[0],r=t[1];e.$options.components[n]=r,(0,_home_blacklight_git_tree_platypush_platypush_backend_http_webapp_node_modules_babel_runtime_helpers_esm_toConsumableArray_js__WEBPACK_IMPORTED_MODULE_1__.Z)(e.$refs.container.getElementsByTagName(n)).forEach((function(_){var t=e._parseProps(_);t.actions=e._parseActions(_),t.handlers=e._parseHandlers(_),t._vars=e._parseVars(_);var n=document.createElement("div");n.setAttribute("class","component"),n.innerHTML=_.innerHTML,_.parentNode.replaceChild(n,_),(0,vue__WEBPACK_IMPORTED_MODULE_12__.ri)({render:function(){return(0,vue__WEBPACK_IMPORTED_MODULE_13__.h)(r,t)},data:function(){return{bus:bus}}}).mount(n)}))}));for(var _=0,t=["handlers","actions","vars"];_\n
\n \n \n
\n\n\n\n\n\n","import Utils from \"@/Utils\";\n\nexport default {\n mixins: [Utils],\n props: {\n /**\n * Component name\n */\n name: {\n type: String,\n default: '[Unnamed sensor]',\n },\n\n /**\n * Action (FontAwesome) icon class (default: `fa fa-play`)\n */\n iconClass: {\n type: String,\n },\n\n /**\n * Action icon URL (default: `fa fa-play`)\n */\n iconUrl: {\n type: String,\n },\n\n /**\n * Action icon color override, for FontAwesome icons\n */\n iconColor: {\n type: String,\n },\n\n /**\n * Actions to run upon interaction with the widget. Format:\n *\n * [\n * {\n * \"action\": \"light.hue.toggle\",\n * \"args\": {\n * \"lights\": [\"Bulb 1\", \"Bulb 2\"]\n * }\n * },\n * {\n * \"action\": \"music.mpd.pause\"\n * }\n * ]\n */\n actions: {\n type: Array,\n default: () => { return [] },\n },\n\n /**\n * Map of variables used by this component, in the form\n * variable_name -> variable_value.\n */\n _vars: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Map of handlers, in the form of event_type -> functions.\n * Supported event handler types:\n *\n * - mounted: Function to execute when the component is mounted.\n * - beforeActions: Function to execute before the component action is run.\n * - afterActions: Function to execute after the component action is run.\n * - refresh: Function to be called at startup (if mounted is also specified\n * then refresh will be called after mounted when the component is\n * first mounted) and at regular intervals defined on the\n * interval property (default: 10 seconds).\n * - events: This is a mapping of functions that react to Platypush\n * platform events published on the websocket (e.g. lights or\n * switches toggles, media events etc.). The form is\n * platypush_event_type -> function.\n */\n handlers: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Event bus\n */\n bus: {\n type: Object,\n },\n },\n\n data() {\n return {\n vars: {...(this._vars || {})},\n _interval: undefined,\n refresh: null,\n refreshInterval: null,\n value: null,\n loading: false,\n }\n },\n\n computed: {\n iconStyle() {\n if (!this.iconClass?.length && this.iconColor?.length)\n return\n\n return {'color': this.iconColor}\n },\n\n hasIcon() {\n return this.iconUrl?.length || this.iconClass?.length\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.input)\n return this.handlers.input(this)(this.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n\n async request_(action) {\n const args = Object.entries(action.args).reduce((args, [key, value]) => {\n if (value.trim) {\n value = value.trim()\n const m = value.match(/^{{\\s*(.*)\\s*}}/)\n if (m) {\n value = eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this)\n }\n }\n\n args[key] = value\n return args\n }, {})\n\n await this.request(action.action, args)\n },\n\n async processEvent(event) {\n const hndl = (this.handlers.events || {})[event.type]\n if (hndl)\n await hndl(this)(event)\n },\n },\n\n async mounted() {\n this.$root.bus.on('event', this.processEvent)\n\n if (this.handlers.mounted)\n await this.handlers.mounted(this)\n\n if (this.handlers.refresh) {\n this.refreshInterval = (this.handlers.refresh?.interval || 0) * 1000\n this.refresh = () => {\n this.handlers.refresh.handler(this)\n }\n\n await this.refresh()\n if (this.refreshInterval) {\n const self = this\n const wrapper = () => { return self.refresh() }\n this._interval = setInterval(wrapper, this.refreshInterval)\n }\n }\n },\n\n unmounted() {\n if (this._interval)\n clearInterval(this._interval)\n }\n}\n","\n
\n
\n \n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./Run.vue?vue&type=template&id=7478b72d&scoped=true\"\nimport script from \"./Run.vue?vue&type=script&lang=js\"\nexport * from \"./Run.vue?vue&type=script&lang=js\"\n\nimport \"./Run.vue?vue&type=style&index=0&id=7478b72d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n {{ value }}\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Sensor.vue?vue&type=template&id=53594122&scoped=true\"\nimport script from \"./Sensor.vue?vue&type=script&lang=js\"\nexport * from \"./Sensor.vue?vue&type=script&lang=js\"\n\nimport \"./Sensor.vue?vue&type=style&index=0&id=53594122&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=772cf288&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=772cf288&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-772cf288\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Switch.vue?vue&type=template&id=97d3a936&scoped=true\"\nimport script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=97d3a936&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-97d3a936\"]])\n\nexport default __exports__","import Run from './components/Run'\nimport Sensor from \"./components/Sensor\";\nimport Slider from './components/Slider'\nimport Switch from './components/Switch'\n\nexport default {\n Run,\n Sensor,\n Slider,\n Switch,\n}\n","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=450fcab1&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=450fcab1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["PROPER_FUNCTION_NAME","fails","whitespaces","non","module","exports","METHOD_NAME","name","$","$trim","forcedStringTrimMethod","target","proto","forced","trim","this","bus","components","Loading","mixins","props","content","type","String","data","loading","unwatch","methods","_parseActions","element","actionsTags","children","filter","node","tagName","toLowerCase","length","actionTags","map","actionTag","action","attributes","value","args","reduce","obj","arg","undefined","JSON","parse","innerText","e","_parseVars","varsTags","vars","varTag","_parseHandlers","handlers","parseHndlScript","hndlText","app","eval","parseEventHndl","event","hndlTags","mounted","refresh","handler","interval","events","hndlTag","beforeActionsTags","beforeActions","afterActionsTags","afterActions","_parseProps","attr","propagateEvent","emit","_addEventHandler","subscribe","_removeEventHandler","$refs","container","innerHTML","Object","entries","forEach","component","$options","getElementsByTagName","actions","_vars","newEl","document","createElement","setAttribute","parentNode","replaceChild","render","h","mount","removeChild","unmounted","Utils","default","iconClass","iconUrl","iconColor","Array","_interval","refreshInterval","computed","iconStyle","hasIcon","run","input","request_","key","m","match","request","processEvent","hndl","$root","on","self","wrapper","setInterval","clearInterval","class","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Slider","Number","required","ToggleSwitch","Run","Sensor","Switch","ref","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","onInput","checked"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js b/platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js
similarity index 65%
rename from platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js
rename to platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js
index f5b84db40..d4d364240 100644
--- a/platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js
+++ b/platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js
@@ -1,2 +1,2 @@
-"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[5824],{3275:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6813),_components_Loading__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(1232),_index__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9016),vue__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(9963),vue__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(6252),mitt__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(9652);const bus=(0,mitt__WEBPACK_IMPORTED_MODULE_3__.Z)();__webpack_exports__["Z"]={name:"Elements",components:{Loading:_components_Loading__WEBPACK_IMPORTED_MODULE_1__.Z},mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{content:{type:String}},data(){return{loading:!1,unwatch:null}},methods:{_parseActions(e){const t=[...e.children].filter((e=>"actions"===e.tagName?.toLowerCase())),n=t?.length?t[0].children:e.children,s=[...n].filter((e=>"action"===e.tagName?.toLowerCase()));if(s?.length)return[...s].map((e=>({action:e.attributes.name.value,args:[...e.children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})})))},_parseVars(e){const t=[...e.children].filter((e=>"vars"===e.tagName?.toLowerCase()));if(t?.length)return[...t[0].children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})},_parseHandlers(element){const handlers={},parseHndlScript=hndlText=>app=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self) {\n ${hndlText}\n })`)(app),parseEventHndl=hndlText=>app=>event=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self, event) {\n ${hndlText}\n })`)(app,event),hndlTags=[...element.children].filter((e=>"handlers"===e.tagName?.toLowerCase()));if(hndlTags?.length){const e=[...hndlTags[0].children].filter((e=>"mounted"===e.tagName?.toLowerCase()));e?.length&&(handlers.mounted=parseHndlScript(e[0].innerText));const t=[...hndlTags[0].children].filter((e=>"refresh"===e.tagName?.toLowerCase()));t?.length&&(handlers.refresh={handler:parseHndlScript(t[0].innerText),interval:t[0].attributes.interval?.value||10});const n=[...hndlTags[0].children].filter((e=>"event"===e.tagName?.toLowerCase()));n?.length&&(handlers.events=n.reduce(((e,t)=>(e[t.attributes.type.value]=parseEventHndl(t.innerText),e)),{}))}const actionsTags=[...element.children].filter((e=>"actions"===e.tagName?.toLowerCase()));if(actionsTags?.length){const e=[...actionsTags[0].children].filter((e=>"before"===e.tagName?.toLowerCase()));e?.length&&(handlers.beforeActions=parseHndlScript(e[0].innerText));const t=[...actionsTags[0].children].filter((e=>"after"===e.tagName?.toLowerCase()));t?.length&&(handlers.afterActions=parseHndlScript(t[0].innerText))}return handlers},_parseProps(e){return[...e.attributes].reduce(((e,t)=>(e[t.name]=t.value,e)),{})},propagateEvent(e){bus.emit("event",e)},_addEventHandler(){this.unwatch=this.subscribe((e=>{bus.emit("event",e)}))},_removeEventHandler(){this.unwatch&&(this.unwatch(),this.unwatch=null)}},mounted(){this.loading=!0,this._addEventHandler();try{this.$refs.container.innerHTML=this.content,Object.entries(_index__WEBPACK_IMPORTED_MODULE_2__.Z).forEach((([e,t])=>{this.$options.components[e]=t,[...this.$refs.container.getElementsByTagName(e)].forEach((e=>{const n=this._parseProps(e);n.actions=this._parseActions(e),n.handlers=this._parseHandlers(e),n._vars=this._parseVars(e);const s=document.createElement("div");s.setAttribute("class","component"),s.innerHTML=e.innerHTML,e.parentNode.replaceChild(s,e),(0,vue__WEBPACK_IMPORTED_MODULE_4__.ri)({render(){return(0,vue__WEBPACK_IMPORTED_MODULE_5__.h)(t,n)},data(){return{bus:bus}}}).mount(s)}))}));for(const e of["handlers","actions","vars"])this.$refs.container.getElementsByTagName(e).forEach((e=>{e.parentNode.removeChild(e)}))}finally{this.loading=!1}},unmounted(){this._removeEventHandler()}}},7105:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6813);__webpack_exports__["Z"]={mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{name:{type:String,default:"[Unnamed sensor]"},iconClass:{type:String},iconUrl:{type:String},iconColor:{type:String},actions:{type:Array,default:()=>[]},_vars:{type:Object,default:()=>({})},handlers:{type:Object,default:()=>({})},bus:{type:Object}},data(){return{vars:{...this._vars||{}},_interval:void 0,refresh:null,refreshInterval:null,value:null,loading:!1}},computed:{iconStyle(){if(this.iconClass?.length||!this.iconColor?.length)return{color:this.iconColor}},hasIcon(){return this.iconUrl?.length||this.iconClass?.length}},methods:{async run(){if(this.handlers.input)return this.handlers.input(this)(this.value);this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const e of this.actions)await this.request_(e);this.handlers.afterActions&&await this.handlers.afterActions(this)},async request_(action){const args=Object.entries(action.args).reduce(((args,[key,value])=>{if(value.trim){value=value.trim();const m=value.match(/^{{\s*(.*)\s*}}/);m&&(value=eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this))}return args[key]=value,args}),{});await this.request(action.action,args)},async processEvent(e){const t=(this.handlers.events||{})[e.type];t&&await t(this)(e)}},async mounted(){if(this.$root.bus.on("event",this.processEvent),this.handlers.mounted&&await this.handlers.mounted(this),this.handlers.refresh&&(this.refreshInterval=1e3*(this.handlers.refresh?.interval||0),this.refresh=()=>{this.handlers.refresh.handler(this)},await this.refresh(),this.refreshInterval)){const e=this,t=()=>e.refresh();this._interval=setInterval(t,this.refreshInterval)}},unmounted(){this._interval&&clearInterval(this._interval)}}},9016:function(e,t,n){n.d(t,{Z:function(){return z}});var s=n(6252),a=n(3577);const r={key:0,class:"col-1 icon-container"},i=["src","alt"],o=["textContent"];function l(e,t,n,l,c,u){return(0,s.wg)(),(0,s.iD)("div",{class:"run component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",r,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,i)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-11":e.hasIcon,"col-12":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,o)])}var c=n(7105),u={name:"Run",mixins:[c.Z]},d=n(3744);const h=(0,d.Z)(u,[["render",l],["__scopeId","data-v-7478b72d"]]);var _=h;const p={key:0,class:"col-1 icon-container"},v=["src","alt"],g=["textContent"],m={class:"col-3 value-container"},f={class:"value"},w=["textContent"];function y(e,t,n,r,i,o){return(0,s.wg)(),(0,s.iD)("div",{class:"sensor component-row",onClick:t[0]||(t[0]=(...e)=>o.run&&o.run(...e))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",p,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,v)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-8":e.hasIcon,"col-9":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,g),(0,s._)("div",m,[(0,s._)("div",f,[(0,s.Uk)((0,a.zw)(e.value)+" ",1),n.unit?((0,s.wg)(),(0,s.iD)("span",{key:0,textContent:(0,a.zw)(n.unit)},null,8,w)):(0,s.kq)("",!0)])])])}var b={name:"Sensor",mixins:[c.Z],props:{unit:{type:String}},methods:{async run(){if(this.handlers.beforeActions&&await this.handlers.beforeActions(this),this.actions?.length)for(const e of this.actions)await this.request_(e);else await this.refresh();this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const C=(0,d.Z)(b,[["render",y],["__scopeId","data-v-53594122"]]);var E=C;const k={class:"slider-root component-row"},D={key:0,class:"col-1 icon-container"},U=["src","alt"],T=["textContent"],I={class:"col-5 slider-container"},x={class:"slider"};function M(e,t,n,r,i,o){const l=(0,s.up)("SliderElement");return(0,s.wg)(),(0,s.iD)("div",k,[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",D,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,U)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-6":e.hasIcon,"col-7":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,T),(0,s._)("div",I,[(0,s._)("div",x,[(0,s.Wm)(l,{value:e.value,range:[parseFloat(n.min),parseFloat(n.max)],onMouseup:o.run},null,8,["value","range","onMouseup"])])])])}var L=n(8070),S={name:"Slider",components:{SliderElement:L.Z},mixins:[c.Z],props:{min:{type:[String,Number],default:0},max:{type:[String,Number],required:!0}},methods:{async run(e){this.value=parseFloat(e.target.value),this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const t of this.actions)await this.request_(t);this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const O=(0,d.Z)(S,[["render",M],["__scopeId","data-v-772cf288"]]);var A=O,P=n(9963);const Z={key:0,class:"col-1 icon-container"},q=["src","alt"],N=["textContent"],B={class:"col-2 toggle-container"},W={class:"toggle"};function $(e,t,n,r,i,o){const l=(0,s.up)("ToggleSwitch");return(0,s.wg)(),(0,s.iD)("div",{class:"switch component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",Z,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,q)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-9":e.hasIcon,"col-10":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,N),(0,s._)("div",B,[(0,s._)("div",W,[(0,s.Wm)(l,{value:e.value,onInput:(0,P.iM)(e.run,["stop"])},null,8,["value","onInput"])])])])}var H=n(6),K={name:"Switch",components:{ToggleSwitch:H.Z},mixins:[c.Z]};const R=(0,d.Z)(K,[["render",$],["__scopeId","data-v-97d3a936"]]);var j=R,z={Run:_,Sensor:E,Slider:A,Switch:j}},8070:function(e,t,n){n.d(t,{Z:function(){return v}});var s=n(6252),a=n(3577),r=n(9963);const i={class:"slider-wrapper"},o=["min","max","step","disabled","value"],l={class:"track-inner",ref:"track"},c={class:"thumb",ref:"thumb"},u=["textContent"];function d(e,t,n,d,h,_){return(0,s.wg)(),(0,s.iD)("label",i,[(0,s._)("input",{class:(0,a.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onMouseup:t[2]||(t[2]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onMousedown:t[3]||(t[3]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onTouchstart:t[4]||(t[4]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onTouchend:t[5]||(t[5]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onKeyup:t[6]||(t[6]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"])),onKeydown:t[7]||(t[7]=(0,r.iM)(((...e)=>_.onUpdate&&_.onUpdate(...e)),["stop"]))},null,42,o),(0,s._)("div",{class:(0,a.C_)(["track",{"with-label":n.withLabel}])},[(0,s._)("div",l,null,512)],2),(0,s._)("div",c,null,512),n.withLabel?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label",textContent:(0,a.zw)(n.value),ref:"label"},null,8,u)):(0,s.kq)("",!0)])}var h={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=this.$refs.range.clientWidth,n=(e-this.range[0])/(this.range[1]-this.range[0]),s=n*t,a=this.$refs.thumb;a.style.left=s-a.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${n}%, -50%)`,this.$refs.track.style.width=`${s}px`}},mounted(){null!=this.value&&this.update(this.value)}},_=n(3744);const p=(0,_.Z)(h,[["render",d],["__scopeId","data-v-0359812c"]]);var v=p},6:function(e,t,n){n.d(t,{Z:function(){return p}});var s=n(6252),a=n(3577),r=n(9963);const i=e=>((0,s.dD)("data-v-a6396ae8"),e=e(),(0,s.Cn)(),e),o=["checked"],l=i((()=>(0,s._)("div",{class:"switch"},[(0,s._)("div",{class:"dot"})],-1))),c={class:"label"};function u(e,t,n,i,u,d){return(0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["power-switch",{disabled:n.disabled}]),onClick:t[0]||(t[0]=(0,r.iM)(((...e)=>d.onInput&&d.onInput(...e)),["stop"]))},[(0,s._)("input",{type:"checkbox",checked:n.value},null,8,o),(0,s._)("label",null,[l,(0,s._)("span",c,[(0,s.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=n(3744);const _=(0,h.Z)(d,[["render",u],["__scopeId","data-v-a6396ae8"]]);var p=_},5824:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var s=n(6252);const a={class:"component-widget"},r={class:"container",ref:"container"};function i(e,t,n,i,o,l){const c=(0,s.up)("Loading");return(0,s.wg)(),(0,s.iD)("div",a,[o.loading?((0,s.wg)(),(0,s.j4)(c,{key:0})):(0,s.kq)("",!0),(0,s._)("div",r,null,512)])}var o=n(3275),l=n(3744);const c=(0,l.Z)(o.Z,[["render",i],["__scopeId","data-v-450fcab1"]]);var u=c}}]);
-//# sourceMappingURL=5824.50133e6d.js.map
\ No newline at end of file
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[5824],{3275:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6813),_components_Loading__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(1232),_index__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(9016),vue__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__(9963),vue__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__(6252),mitt__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__(9652);const bus=(0,mitt__WEBPACK_IMPORTED_MODULE_3__.Z)();__webpack_exports__["Z"]={name:"Elements",components:{Loading:_components_Loading__WEBPACK_IMPORTED_MODULE_1__.Z},mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{content:{type:String}},data(){return{loading:!1,unwatch:null}},methods:{_parseActions(e){const t=[...e.children].filter((e=>"actions"===e.tagName?.toLowerCase())),n=t?.length?t[0].children:e.children,s=[...n].filter((e=>"action"===e.tagName?.toLowerCase()));if(s?.length)return[...s].map((e=>({action:e.attributes.name.value,args:[...e.children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})})))},_parseVars(e){const t=[...e.children].filter((e=>"vars"===e.tagName?.toLowerCase()));if(t?.length)return[...t[0].children].reduce(((e,t)=>{let n;try{n=JSON.parse(t.innerText)}catch(s){t.innerText?.length&&(n=t.innerText)}return e[t.tagName.toLowerCase()]=n,e}),{})},_parseHandlers(element){const handlers={},parseHndlScript=hndlText=>app=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self) {\n ${hndlText}\n })`)(app),parseEventHndl=hndlText=>app=>event=>eval(`// noinspection JSUnusedLocalSymbols\n (async function (self, event) {\n ${hndlText}\n })`)(app,event),hndlTags=[...element.children].filter((e=>"handlers"===e.tagName?.toLowerCase()));if(hndlTags?.length){const e=[...hndlTags[0].children].filter((e=>"mounted"===e.tagName?.toLowerCase()));e?.length&&(handlers.mounted=parseHndlScript(e[0].innerText));const t=[...hndlTags[0].children].filter((e=>"refresh"===e.tagName?.toLowerCase()));t?.length&&(handlers.refresh={handler:parseHndlScript(t[0].innerText),interval:t[0].attributes.interval?.value||10});const n=[...hndlTags[0].children].filter((e=>"event"===e.tagName?.toLowerCase()));n?.length&&(handlers.events=n.reduce(((e,t)=>(e[t.attributes.type.value]=parseEventHndl(t.innerText),e)),{}))}const actionsTags=[...element.children].filter((e=>"actions"===e.tagName?.toLowerCase()));if(actionsTags?.length){const e=[...actionsTags[0].children].filter((e=>"before"===e.tagName?.toLowerCase()));e?.length&&(handlers.beforeActions=parseHndlScript(e[0].innerText));const t=[...actionsTags[0].children].filter((e=>"after"===e.tagName?.toLowerCase()));t?.length&&(handlers.afterActions=parseHndlScript(t[0].innerText))}return handlers},_parseProps(e){return[...e.attributes].reduce(((e,t)=>(e[t.name]=t.value,e)),{})},propagateEvent(e){bus.emit("event",e)},_addEventHandler(){this.unwatch=this.subscribe((e=>{bus.emit("event",e)}))},_removeEventHandler(){this.unwatch&&(this.unwatch(),this.unwatch=null)}},mounted(){this.loading=!0,this._addEventHandler();try{this.$refs.container.innerHTML=this.content,Object.entries(_index__WEBPACK_IMPORTED_MODULE_2__.Z).forEach((([e,t])=>{this.$options.components[e]=t,[...this.$refs.container.getElementsByTagName(e)].forEach((e=>{const n=this._parseProps(e);n.actions=this._parseActions(e),n.handlers=this._parseHandlers(e),n._vars=this._parseVars(e);const s=document.createElement("div");s.setAttribute("class","component"),s.innerHTML=e.innerHTML,e.parentNode.replaceChild(s,e),(0,vue__WEBPACK_IMPORTED_MODULE_4__.ri)({render(){return(0,vue__WEBPACK_IMPORTED_MODULE_5__.h)(t,n)},data(){return{bus:bus}}}).mount(s)}))}));for(const e of["handlers","actions","vars"])this.$refs.container.getElementsByTagName(e).forEach((e=>{e.parentNode.removeChild(e)}))}finally{this.loading=!1}},unmounted(){this._removeEventHandler()}}},7105:function(__unused_webpack_module,__webpack_exports__,__webpack_require__){var _Utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(6813);__webpack_exports__["Z"]={mixins:[_Utils__WEBPACK_IMPORTED_MODULE_0__.Z],props:{name:{type:String,default:"[Unnamed sensor]"},iconClass:{type:String},iconUrl:{type:String},iconColor:{type:String},actions:{type:Array,default:()=>[]},_vars:{type:Object,default:()=>({})},handlers:{type:Object,default:()=>({})},bus:{type:Object}},data(){return{vars:{...this._vars||{}},_interval:void 0,refresh:null,refreshInterval:null,value:null,loading:!1}},computed:{iconStyle(){if(this.iconClass?.length||!this.iconColor?.length)return{color:this.iconColor}},hasIcon(){return this.iconUrl?.length||this.iconClass?.length}},methods:{async run(){if(this.handlers.input)return this.handlers.input(this)(this.value);this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const e of this.actions)await this.request_(e);this.handlers.afterActions&&await this.handlers.afterActions(this)},async request_(action){const args=Object.entries(action.args).reduce(((args,[key,value])=>{if(value.trim){value=value.trim();const m=value.match(/^{{\s*(.*)\s*}}/);m&&(value=eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this))}return args[key]=value,args}),{});await this.request(action.action,args)},async processEvent(e){const t=(this.handlers.events||{})[e.type];t&&await t(this)(e)}},async mounted(){if(this.$root.bus.on("event",this.processEvent),this.handlers.mounted&&await this.handlers.mounted(this),this.handlers.refresh&&(this.refreshInterval=1e3*(this.handlers.refresh?.interval||0),this.refresh=()=>{this.handlers.refresh.handler(this)},await this.refresh(),this.refreshInterval)){const e=this,t=()=>e.refresh();this._interval=setInterval(t,this.refreshInterval)}},unmounted(){this._interval&&clearInterval(this._interval)}}},9016:function(e,t,n){n.d(t,{Z:function(){return z}});var s=n(6252),a=n(3577);const r={key:0,class:"col-1 icon-container"},i=["src","alt"],l=["textContent"];function o(e,t,n,o,c,u){return(0,s.wg)(),(0,s.iD)("div",{class:"run component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",r,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,i)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-11":e.hasIcon,"col-12":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,l)])}var c=n(7105),u={name:"Run",mixins:[c.Z]},_=n(3744);const h=(0,_.Z)(u,[["render",o],["__scopeId","data-v-7478b72d"]]);var d=h;const p={key:0,class:"col-1 icon-container"},v=["src","alt"],g=["textContent"],m={class:"col-3 value-container"},f={class:"value"},w=["textContent"];function b(e,t,n,r,i,l){return(0,s.wg)(),(0,s.iD)("div",{class:"sensor component-row",onClick:t[0]||(t[0]=(...e)=>l.run&&l.run(...e))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",p,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,v)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-8":e.hasIcon,"col-9":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,g),(0,s._)("div",m,[(0,s._)("div",f,[(0,s.Uk)((0,a.zw)(e.value)+" ",1),n.unit?((0,s.wg)(),(0,s.iD)("span",{key:0,textContent:(0,a.zw)(n.unit)},null,8,w)):(0,s.kq)("",!0)])])])}var y={name:"Sensor",mixins:[c.Z],props:{unit:{type:String}},methods:{async run(){if(this.handlers.beforeActions&&await this.handlers.beforeActions(this),this.actions?.length)for(const e of this.actions)await this.request_(e);else await this.refresh();this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const C=(0,_.Z)(y,[["render",b],["__scopeId","data-v-53594122"]]);var E=C;const k={class:"slider-root component-row"},D={key:0,class:"col-1 icon-container"},I=["src","alt"],x=["textContent"],T={class:"col-5 slider-container"},L={class:"slider"};function S(e,t,n,r,i,l){const o=(0,s.up)("SliderElement");return(0,s.wg)(),(0,s.iD)("div",k,[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",D,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,I)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-6":e.hasIcon,"col-7":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,x),(0,s._)("div",T,[(0,s._)("div",L,[(0,s.Wm)(o,{value:e.value,range:[parseFloat(n.min),parseFloat(n.max)],onMouseup:l.run},null,8,["value","range","onMouseup"])])])])}var U=n(6237),M={name:"Slider",components:{SliderElement:U.Z},mixins:[c.Z],props:{min:{type:[String,Number],default:0},max:{type:[String,Number],required:!0}},methods:{async run(e){this.value=parseFloat(e.target.value),this.handlers.beforeActions&&await this.handlers.beforeActions(this);for(const t of this.actions)await this.request_(t);this.handlers.afterActions&&await this.handlers.afterActions(this)}}};const O=(0,_.Z)(M,[["render",S],["__scopeId","data-v-772cf288"]]);var A=O,P=n(9963);const Z={key:0,class:"col-1 icon-container"},q=["src","alt"],N=["textContent"],B={class:"col-2 toggle-container"},W={class:"toggle"};function $(e,t,n,r,i,l){const o=(0,s.up)("ToggleSwitch");return(0,s.wg)(),(0,s.iD)("div",{class:"switch component-row",onClick:t[0]||(t[0]=(...t)=>e.run&&e.run(...t))},[e.hasIcon?((0,s.wg)(),(0,s.iD)("div",Z,[e.iconUrl?.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:e.iconUrl,alt:e.name},null,8,q)):((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,a.C_)(["icon",e.iconClass]),style:(0,a.j5)(e.iconStyle)},null,6))])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,a.C_)({"col-9":e.hasIcon,"col-10":!e.hasIcon}),textContent:(0,a.zw)(e.name)},null,10,N),(0,s._)("div",B,[(0,s._)("div",W,[(0,s.Wm)(o,{value:e.value,onInput:(0,P.iM)(e.run,["stop"])},null,8,["value","onInput"])])])])}var H=n(6),R={name:"Switch",components:{ToggleSwitch:H.Z},mixins:[c.Z]};const K=(0,_.Z)(R,[["render",$],["__scopeId","data-v-97d3a936"]]);var j=K,z={Run:d,Sensor:E,Slider:A,Switch:j}},6237:function(e,t,n){n.d(t,{Z:function(){return v}});var s=n(6252),a=n(3577),r=n(9963);const i={class:"slider-wrapper"},l=["min","max","step","disabled","value"],o={class:"track-inner",ref:"track"},c={class:"thumb",ref:"thumb"},u=["textContent"];function _(e,t,n,_,h,d){return(0,s.wg)(),(0,s.iD)("label",i,[(0,s._)("input",{class:(0,a.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,r.iM)(((...e)=>d.onUpdate&&d.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,r.iM)(((...e)=>d.onUpdate&&d.onUpdate(...e)),["stop"]))},null,42,l),(0,s._)("div",{class:(0,a.C_)(["track",{"with-label":n.withLabel}])},[(0,s._)("div",o,null,512)],2),(0,s._)("div",c,null,512),n.withLabel?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label",textContent:(0,a.zw)(n.value),ref:"label"},null,8,u)):(0,s.kq)("",!0)])}var h={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=this.$refs.range.clientWidth,n=(e-this.range[0])/(this.range[1]-this.range[0]),s=n*t,a=this.$refs.thumb;a.style.left=s-a.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${n}%, -50%)`,this.$refs.track.style.width=`${s}px`}},mounted(){null!=this.value&&this.update(this.value)}},d=n(3744);const p=(0,d.Z)(h,[["render",_],["__scopeId","data-v-15d8c6c5"]]);var v=p},6:function(e,t,n){n.d(t,{Z:function(){return p}});var s=n(6252),a=n(3577),r=n(9963);const i=e=>((0,s.dD)("data-v-a6396ae8"),e=e(),(0,s.Cn)(),e),l=["checked"],o=i((()=>(0,s._)("div",{class:"switch"},[(0,s._)("div",{class:"dot"})],-1))),c={class:"label"};function u(e,t,n,i,u,_){return(0,s.wg)(),(0,s.iD)("div",{class:(0,a.C_)(["power-switch",{disabled:n.disabled}]),onClick:t[0]||(t[0]=(0,r.iM)(((...e)=>_.onInput&&_.onInput(...e)),["stop"]))},[(0,s._)("input",{type:"checkbox",checked:n.value},null,8,l),(0,s._)("label",null,[o,(0,s._)("span",c,[(0,s.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var _={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=n(3744);const d=(0,h.Z)(_,[["render",u],["__scopeId","data-v-a6396ae8"]]);var p=d},5824:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var s=n(6252);const a={class:"component-widget"},r={class:"container",ref:"container"};function i(e,t,n,i,l,o){const c=(0,s.up)("Loading");return(0,s.wg)(),(0,s.iD)("div",a,[l.loading?((0,s.wg)(),(0,s.j4)(c,{key:0})):(0,s.kq)("",!0),(0,s._)("div",r,null,512)])}var l=n(3275),o=n(3744);const c=(0,o.Z)(l.Z,[["render",i],["__scopeId","data-v-450fcab1"]]);var u=c}}]);
+//# sourceMappingURL=5824.3cac2826.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js.map b/platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js.map
new file mode 100644
index 000000000..4ab54be03
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/5824.3cac2826.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/5824.3cac2826.js","mappings":"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","sources":["webpack://platypush/./src/components/widgets/Component/Index.vue","webpack://platypush/./src/components/widgets/Component/components/mixins.js","webpack://platypush/./src/components/widgets/Component/components/Run.vue","webpack://platypush/./src/components/widgets/Component/components/Run.vue?73ce","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue?66dc","webpack://platypush/./src/components/widgets/Component/components/Slider.vue","webpack://platypush/./src/components/widgets/Component/components/Slider.vue?fc3e","webpack://platypush/./src/components/widgets/Component/components/Switch.vue","webpack://platypush/./src/components/widgets/Component/components/Switch.vue?ce7f","webpack://platypush/./src/components/widgets/Component/index.js","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/elements/ToggleSwitch.vue","webpack://platypush/./src/components/elements/ToggleSwitch.vue?94aa","webpack://platypush/./src/components/widgets/Component/Index.vue?276d"],"sourcesContent":["\n
\n \n \n
\n\n\n\n\n\n","import Utils from \"@/Utils\";\n\nexport default {\n mixins: [Utils],\n props: {\n /**\n * Component name\n */\n name: {\n type: String,\n default: '[Unnamed sensor]',\n },\n\n /**\n * Action (FontAwesome) icon class (default: `fa fa-play`)\n */\n iconClass: {\n type: String,\n },\n\n /**\n * Action icon URL (default: `fa fa-play`)\n */\n iconUrl: {\n type: String,\n },\n\n /**\n * Action icon color override, for FontAwesome icons\n */\n iconColor: {\n type: String,\n },\n\n /**\n * Actions to run upon interaction with the widget. Format:\n *\n * [\n * {\n * \"action\": \"light.hue.toggle\",\n * \"args\": {\n * \"lights\": [\"Bulb 1\", \"Bulb 2\"]\n * }\n * },\n * {\n * \"action\": \"music.mpd.pause\"\n * }\n * ]\n */\n actions: {\n type: Array,\n default: () => { return [] },\n },\n\n /**\n * Map of variables used by this component, in the form\n * variable_name -> variable_value.\n */\n _vars: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Map of handlers, in the form of event_type -> functions.\n * Supported event handler types:\n *\n * - mounted: Function to execute when the component is mounted.\n * - beforeActions: Function to execute before the component action is run.\n * - afterActions: Function to execute after the component action is run.\n * - refresh: Function to be called at startup (if mounted is also specified\n * then refresh will be called after mounted when the component is\n * first mounted) and at regular intervals defined on the\n * interval property (default: 10 seconds).\n * - events: This is a mapping of functions that react to Platypush\n * platform events published on the websocket (e.g. lights or\n * switches toggles, media events etc.). The form is\n * platypush_event_type -> function.\n */\n handlers: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Event bus\n */\n bus: {\n type: Object,\n },\n },\n\n data() {\n return {\n vars: {...(this._vars || {})},\n _interval: undefined,\n refresh: null,\n refreshInterval: null,\n value: null,\n loading: false,\n }\n },\n\n computed: {\n iconStyle() {\n if (!this.iconClass?.length && this.iconColor?.length)\n return\n\n return {'color': this.iconColor}\n },\n\n hasIcon() {\n return this.iconUrl?.length || this.iconClass?.length\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.input)\n return this.handlers.input(this)(this.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n\n async request_(action) {\n const args = Object.entries(action.args).reduce((args, [key, value]) => {\n if (value.trim) {\n value = value.trim()\n const m = value.match(/^{{\\s*(.*)\\s*}}/)\n if (m) {\n value = eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this)\n }\n }\n\n args[key] = value\n return args\n }, {})\n\n await this.request(action.action, args)\n },\n\n async processEvent(event) {\n const hndl = (this.handlers.events || {})[event.type]\n if (hndl)\n await hndl(this)(event)\n },\n },\n\n async mounted() {\n this.$root.bus.on('event', this.processEvent)\n\n if (this.handlers.mounted)\n await this.handlers.mounted(this)\n\n if (this.handlers.refresh) {\n this.refreshInterval = (this.handlers.refresh?.interval || 0) * 1000\n this.refresh = () => {\n this.handlers.refresh.handler(this)\n }\n\n await this.refresh()\n if (this.refreshInterval) {\n const self = this\n const wrapper = () => { return self.refresh() }\n this._interval = setInterval(wrapper, this.refreshInterval)\n }\n }\n },\n\n unmounted() {\n if (this._interval)\n clearInterval(this._interval)\n }\n}\n","\n
\n
\n \n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./Run.vue?vue&type=template&id=7478b72d&scoped=true\"\nimport script from \"./Run.vue?vue&type=script&lang=js\"\nexport * from \"./Run.vue?vue&type=script&lang=js\"\n\nimport \"./Run.vue?vue&type=style&index=0&id=7478b72d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n {{ value }}\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Sensor.vue?vue&type=template&id=53594122&scoped=true\"\nimport script from \"./Sensor.vue?vue&type=script&lang=js\"\nexport * from \"./Sensor.vue?vue&type=script&lang=js\"\n\nimport \"./Sensor.vue?vue&type=style&index=0&id=53594122&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=772cf288&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=772cf288&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-772cf288\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Switch.vue?vue&type=template&id=97d3a936&scoped=true\"\nimport script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=97d3a936&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-97d3a936\"]])\n\nexport default __exports__","import Run from './components/Run'\nimport Sensor from \"./components/Sensor\";\nimport Slider from './components/Slider'\nimport Switch from './components/Switch'\n\nexport default {\n Run,\n Sensor,\n Slider,\n Switch,\n}\n","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=450fcab1&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=450fcab1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["bus","name","components","Loading","mixins","props","content","type","String","data","loading","unwatch","methods","_parseActions","element","actionsTags","children","filter","node","tagName","toLowerCase","length","actionTags","map","actionTag","action","attributes","value","args","reduce","obj","arg","JSON","parse","innerText","e","_parseVars","varsTags","vars","varTag","_parseHandlers","handlers","parseHndlScript","hndlText","app","eval","parseEventHndl","event","hndlTags","mounted","refresh","handler","interval","events","hndlTag","beforeActionsTags","beforeActions","afterActionsTags","afterActions","_parseProps","attr","propagateEvent","emit","_addEventHandler","this","subscribe","_removeEventHandler","$refs","container","innerHTML","Object","entries","forEach","component","$options","getElementsByTagName","actions","_vars","newEl","document","createElement","setAttribute","parentNode","replaceChild","render","h","mount","removeChild","unmounted","Utils","default","iconClass","iconUrl","iconColor","Array","_interval","undefined","refreshInterval","computed","iconStyle","hasIcon","async","input","request_","key","trim","m","match","request","hndl","$root","on","processEvent","self","wrapper","setInterval","clearInterval","class","run","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Number","required","target","ToggleSwitch","Run","Sensor","Slider","Switch","ref","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","onInput","checked"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js.map b/platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js.map
deleted file mode 100644
index 835c93397..000000000
--- a/platypush/backend/http/webapp/dist/static/js/5824.50133e6d.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/5824.50133e6d.js","mappings":"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","sources":["webpack://platypush/./src/components/widgets/Component/Index.vue","webpack://platypush/./src/components/widgets/Component/components/mixins.js","webpack://platypush/./src/components/widgets/Component/components/Run.vue","webpack://platypush/./src/components/widgets/Component/components/Run.vue?73ce","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue","webpack://platypush/./src/components/widgets/Component/components/Sensor.vue?66dc","webpack://platypush/./src/components/widgets/Component/components/Slider.vue","webpack://platypush/./src/components/widgets/Component/components/Slider.vue?fc3e","webpack://platypush/./src/components/widgets/Component/components/Switch.vue","webpack://platypush/./src/components/widgets/Component/components/Switch.vue?ce7f","webpack://platypush/./src/components/widgets/Component/index.js","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/elements/ToggleSwitch.vue","webpack://platypush/./src/components/elements/ToggleSwitch.vue?94aa","webpack://platypush/./src/components/widgets/Component/Index.vue?276d"],"sourcesContent":["\n
\n \n \n
\n\n\n\n\n\n","import Utils from \"@/Utils\";\n\nexport default {\n mixins: [Utils],\n props: {\n /**\n * Component name\n */\n name: {\n type: String,\n default: '[Unnamed sensor]',\n },\n\n /**\n * Action (FontAwesome) icon class (default: `fa fa-play`)\n */\n iconClass: {\n type: String,\n },\n\n /**\n * Action icon URL (default: `fa fa-play`)\n */\n iconUrl: {\n type: String,\n },\n\n /**\n * Action icon color override, for FontAwesome icons\n */\n iconColor: {\n type: String,\n },\n\n /**\n * Actions to run upon interaction with the widget. Format:\n *\n * [\n * {\n * \"action\": \"light.hue.toggle\",\n * \"args\": {\n * \"lights\": [\"Bulb 1\", \"Bulb 2\"]\n * }\n * },\n * {\n * \"action\": \"music.mpd.pause\"\n * }\n * ]\n */\n actions: {\n type: Array,\n default: () => { return [] },\n },\n\n /**\n * Map of variables used by this component, in the form\n * variable_name -> variable_value.\n */\n _vars: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Map of handlers, in the form of event_type -> functions.\n * Supported event handler types:\n *\n * - mounted: Function to execute when the component is mounted.\n * - beforeActions: Function to execute before the component action is run.\n * - afterActions: Function to execute after the component action is run.\n * - refresh: Function to be called at startup (if mounted is also specified\n * then refresh will be called after mounted when the component is\n * first mounted) and at regular intervals defined on the\n * interval property (default: 10 seconds).\n * - events: This is a mapping of functions that react to Platypush\n * platform events published on the websocket (e.g. lights or\n * switches toggles, media events etc.). The form is\n * platypush_event_type -> function.\n */\n handlers: {\n type: Object,\n default: () => { return {} },\n },\n\n /**\n * Event bus\n */\n bus: {\n type: Object,\n },\n },\n\n data() {\n return {\n vars: {...(this._vars || {})},\n _interval: undefined,\n refresh: null,\n refreshInterval: null,\n value: null,\n loading: false,\n }\n },\n\n computed: {\n iconStyle() {\n if (!this.iconClass?.length && this.iconColor?.length)\n return\n\n return {'color': this.iconColor}\n },\n\n hasIcon() {\n return this.iconUrl?.length || this.iconClass?.length\n },\n },\n\n methods: {\n async run() {\n if (this.handlers.input)\n return this.handlers.input(this)(this.value)\n\n if (this.handlers.beforeActions)\n await this.handlers.beforeActions(this)\n for (const action of this.actions)\n await this.request_(action)\n if (this.handlers.afterActions) {\n await this.handlers.afterActions(this)\n }\n },\n\n async request_(action) {\n const args = Object.entries(action.args).reduce((args, [key, value]) => {\n if (value.trim) {\n value = value.trim()\n const m = value.match(/^{{\\s*(.*)\\s*}}/)\n if (m) {\n value = eval(`// noinspection JSUnusedLocalSymbols\n (function (self) {\n return ${m[1]}\n })`)(this)\n }\n }\n\n args[key] = value\n return args\n }, {})\n\n await this.request(action.action, args)\n },\n\n async processEvent(event) {\n const hndl = (this.handlers.events || {})[event.type]\n if (hndl)\n await hndl(this)(event)\n },\n },\n\n async mounted() {\n this.$root.bus.on('event', this.processEvent)\n\n if (this.handlers.mounted)\n await this.handlers.mounted(this)\n\n if (this.handlers.refresh) {\n this.refreshInterval = (this.handlers.refresh?.interval || 0) * 1000\n this.refresh = () => {\n this.handlers.refresh.handler(this)\n }\n\n await this.refresh()\n if (this.refreshInterval) {\n const self = this\n const wrapper = () => { return self.refresh() }\n this._interval = setInterval(wrapper, this.refreshInterval)\n }\n }\n },\n\n unmounted() {\n if (this._interval)\n clearInterval(this._interval)\n }\n}\n","\n
\n
\n \n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./Run.vue?vue&type=template&id=7478b72d&scoped=true\"\nimport script from \"./Run.vue?vue&type=script&lang=js\"\nexport * from \"./Run.vue?vue&type=script&lang=js\"\n\nimport \"./Run.vue?vue&type=style&index=0&id=7478b72d&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7478b72d\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n {{ value }}\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Sensor.vue?vue&type=template&id=53594122&scoped=true\"\nimport script from \"./Sensor.vue?vue&type=script&lang=js\"\nexport * from \"./Sensor.vue?vue&type=script&lang=js\"\n\nimport \"./Sensor.vue?vue&type=style&index=0&id=53594122&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-53594122\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=772cf288&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=772cf288&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-772cf288\"]])\n\nexport default __exports__","\n
\n
\n \n \n
\n \n
\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Switch.vue?vue&type=template&id=97d3a936&scoped=true\"\nimport script from \"./Switch.vue?vue&type=script&lang=js\"\nexport * from \"./Switch.vue?vue&type=script&lang=js\"\n\nimport \"./Switch.vue?vue&type=style&index=0&id=97d3a936&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-97d3a936\"]])\n\nexport default __exports__","import Run from './components/Run'\nimport Sensor from \"./components/Sensor\";\nimport Slider from './components/Slider'\nimport Switch from './components/Switch'\n\nexport default {\n Run,\n Sensor,\n Slider,\n Switch,\n}\n","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=0359812c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=0359812c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0359812c\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=450fcab1&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=450fcab1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-450fcab1\"]])\n\nexport default __exports__"],"names":["bus","name","components","Loading","mixins","props","content","type","String","data","loading","unwatch","methods","_parseActions","element","actionsTags","children","filter","node","tagName","toLowerCase","length","actionTags","map","actionTag","action","attributes","value","args","reduce","obj","arg","JSON","parse","innerText","e","_parseVars","varsTags","vars","varTag","_parseHandlers","handlers","parseHndlScript","hndlText","app","eval","parseEventHndl","event","hndlTags","mounted","refresh","handler","interval","events","hndlTag","beforeActionsTags","beforeActions","afterActionsTags","afterActions","_parseProps","attr","propagateEvent","emit","_addEventHandler","this","subscribe","_removeEventHandler","$refs","container","innerHTML","Object","entries","forEach","component","$options","getElementsByTagName","actions","_vars","newEl","document","createElement","setAttribute","parentNode","replaceChild","render","h","mount","removeChild","unmounted","Utils","default","iconClass","iconUrl","iconColor","Array","_interval","undefined","refreshInterval","computed","iconStyle","hasIcon","async","input","request_","key","trim","m","match","request","hndl","$root","on","processEvent","self","wrapper","setInterval","clearInterval","class","run","src","alt","style","__exports__","unit","range","parseFloat","min","max","SliderElement","Number","required","target","ToggleSwitch","Run","Sensor","Slider","Switch","ref","withLabel","step","disabled","onUpdate","emits","Boolean","update","$emit","sliderWidth","clientWidth","percent","innerWidth","thumb","left","transform","track","width","onInput","checked"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js b/platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js
similarity index 73%
rename from platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js
rename to platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js
index abc3ffed4..034ca9778 100644
--- a/platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js
+++ b/platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js
@@ -1,2 +1,2 @@
-"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6027],{8586:function(n,e,u){u.r(e),u.d(e,{default:function(){return v}});var a=u(6252);function r(n,e,u,r,t,p){var s=(0,a.up)("Zwave");return(0,a.wg)(),(0,a.j4)(s,{"plugin-name":"zwave"})}var t=u(4658),p={components:{Zwave:t.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",r]]);var v=c}}]);
-//# sourceMappingURL=6027-legacy.1e7fc2ce.js.map
\ No newline at end of file
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6027],{8586:function(n,e,u){u.r(e),u.d(e,{default:function(){return v}});var a=u(6252);function r(n,e,u,r,t,p){var s=(0,a.up)("Zwave");return(0,a.wg)(),(0,a.j4)(s,{"plugin-name":"zwave"})}var t=u(1485),p={components:{Zwave:t.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",r]]);var v=c}}]);
+//# sourceMappingURL=6027-legacy.86d7dac2.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js.map b/platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js.map
similarity index 93%
rename from platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js.map
rename to platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js.map
index bf2c333f9..e8012c936 100644
--- a/platypush/backend/http/webapp/dist/static/js/6027-legacy.1e7fc2ce.js.map
+++ b/platypush/backend/http/webapp/dist/static/js/6027-legacy.86d7dac2.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/6027-legacy.1e7fc2ce.js","mappings":"+OACE,QAA6B,GAAtB,cAAY,S,eAMrB,GACEA,WAAY,CAACC,MAAAA,EAAAC,I,UCHf,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["\n \n\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["components","Zwave","Z","__exports__","render"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/6027-legacy.86d7dac2.js","mappings":"+OACE,QAA6B,GAAtB,cAAY,S,eAMrB,GACEA,WAAY,CAACC,MAAAA,EAAAC,I,UCHf,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["\n \n\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["components","Zwave","Z","__exports__","render"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js b/platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js
similarity index 61%
rename from platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js
rename to platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js
index b3405f4fc..e2e6506fc 100644
--- a/platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js
+++ b/platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js
@@ -1,2 +1,2 @@
-"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6027],{6027:function(n,e,u){u.r(e),u.d(e,{default:function(){return o}});var t=u(6252);function a(n,e,u,a,r,p){const s=(0,t.up)("Zwave");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"zwave"})}var r=u(5810),p={components:{Zwave:r.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
-//# sourceMappingURL=6027.54f532a7.js.map
\ No newline at end of file
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6027],{6027:function(n,e,u){u.r(e),u.d(e,{default:function(){return o}});var t=u(6252);function a(n,e,u,a,r,p){const s=(0,t.up)("Zwave");return(0,t.wg)(),(0,t.j4)(s,{"plugin-name":"zwave"})}var r=u(906),p={components:{Zwave:r.Z}},s=u(3744);const c=(0,s.Z)(p,[["render",a]]);var o=c}}]);
+//# sourceMappingURL=6027.e3b113ee.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js.map b/platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js.map
similarity index 87%
rename from platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js.map
rename to platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js.map
index 0665f5d27..4285bfd5e 100644
--- a/platypush/backend/http/webapp/dist/static/js/6027.54f532a7.js.map
+++ b/platypush/backend/http/webapp/dist/static/js/6027.e3b113ee.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/6027.54f532a7.js","mappings":"iPACE,QAA6B,GAAtB,cAAY,S,eAMrB,GACEA,WAAY,CAACC,MAAK,M,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["\n \n\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["components","Zwave","__exports__","render"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/6027.e3b113ee.js","mappings":"iPACE,QAA6B,GAAtB,cAAY,S,cAMrB,GACEA,WAAY,CAACC,MAAK,M,UCHpB,MAAMC,GAA2B,OAAgB,EAAQ,CAAC,CAAC,SAASC,KAEpE,O","sources":["webpack://platypush/./src/components/panels/Zwave/Index.vue","webpack://platypush/./src/components/panels/Zwave/Index.vue?b798"],"sourcesContent":["\n \n\n\n\n","import { render } from \"./Index.vue?vue&type=template&id=4b554bd5\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["components","Zwave","__exports__","render"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js b/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js
new file mode 100644
index 000000000..f2d6904da
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js
@@ -0,0 +1,2 @@
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6365,3673],{6237:function(e,t,n){n.d(t,{Z:function(){return m}});var a=n(6252),l=n(3577),i=n(9963),r={class:"slider-wrapper"},o=["min","max","step","disabled","value"],u={class:"track-inner",ref:"track"},s={class:"thumb",ref:"thumb"},c=["textContent"];function d(e,t,n,d,p,v){return(0,a.wg)(),(0,a.iD)("label",r,[(0,a._)("input",{class:(0,l.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,i.iM)((function(){return v.onUpdate&&v.onUpdate.apply(v,arguments)}),["stop"])),onChange:t[1]||(t[1]=(0,i.iM)((function(){return v.onUpdate&&v.onUpdate.apply(v,arguments)}),["stop"]))},null,42,o),(0,a._)("div",{class:(0,l.C_)(["track",{"with-label":n.withLabel}])},[(0,a._)("div",u,null,512)],2),(0,a._)("div",s,null,512),n.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,l.zw)(n.value),ref:"label"},null,8,c)):(0,a.kq)("",!0)])}var p=n(4648),v=(n(9653),{name:"Slider",emits:["input","change","mouseup","mousedown","touchstart","touchend","keyup","keydown"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:function(){return[0,100]}},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1}},methods:{onUpdate:function(e){this.update(e.target.value),this.$emit(e.type,(0,p.Z)((0,p.Z)({},e),{},{target:(0,p.Z)((0,p.Z)({},e.target),{},{value:this.$refs.range.value})}))},update:function(e){var t=this.$refs.range.clientWidth,n=(e-this.range[0])/(this.range[1]-this.range[0]),a=n*t,l=this.$refs.thumb;l.style.left="".concat(a-l.clientWidth/2,"px"),this.$refs.thumb.style.transform="translate(-".concat(n,"%, -50%)"),this.$refs.track.style.width="".concat(a,"px")}},mounted:function(){null!=this.value&&this.update(this.value)}}),f=n(3744);const h=(0,f.Z)(v,[["render",d],["__scopeId","data-v-15d8c6c5"]]);var m=h},6365:function(e,t,n){n.r(t),n.d(t,{default:function(){return _}});n(8309),n(6977);var a=n(6252),l=n(3577),i=n(9963),r={class:"entity dimmer-container"},o={class:"col-1 icon"},u={class:"col-s-8 col-m-9 label"},s=["textContent"],c={class:"col-s-3 col-m-2 buttons pull-right"},d=["textContent"],p={class:"row"},v={class:"input"};function f(e,t,n,f,h,m){var g,y=(0,a.up)("EntityIcon"),w=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)("div",r,[(0,a._)("div",{class:(0,l.C_)(["head",{expanded:h.expanded}])},[(0,a._)("div",o,[(0,a.Wm)(y,{icon:(null===(g=this.value.meta)||void 0===g?void 0:g.icon)||{},loading:e.loading,error:e.error},null,8,["icon","loading","error"])]),(0,a._)("div",u,[(0,a._)("div",{class:"name",textContent:(0,l.zw)(e.value.name)},null,8,s)]),(0,a._)("div",c,[(0,a._)("button",{onClick:t[0]||(t[0]=(0,i.iM)((function(e){return h.expanded=!h.expanded}),["stop"]))},[(0,a._)("i",{class:(0,l.C_)(["fas",{"fa-angle-up":h.expanded,"fa-angle-down":!h.expanded}])},null,2)]),null!=m.valuePercent?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"value-percent",textContent:(0,l.zw)(m.valuePercent.toFixed(0)+"%")},null,8,d)):(0,a.kq)("",!0)])],2),h.expanded?((0,a.wg)(),(0,a.iD)("div",{key:0,class:"body",onClick:t[1]||(t[1]=(0,i.iM)((function(){return m.prevent&&m.prevent.apply(m,arguments)}),["stop"]))},[(0,a._)("div",p,[(0,a._)("div",v,[(0,a.Wm)(w,{range:[e.value.min,e.value.max],value:e.value.value,onInput:m.setValue},null,8,["range","value","onInput"])])])])):(0,a.kq)("",!0)])}var h=n(8534),m=(n(5666),n(6237)),g=n(7909),y=n(3673),w={name:"Dimmer",components:{Slider:m.Z,EntityIcon:y["default"]},mixins:[g["default"]],data:function(){return{expanded:!1}},computed:{valuePercent:function(){var e,t;if(null!==(e=this.value)&&void 0!==e&&e.is_write_only||null==(null===(t=this.value)||void 0===t?void 0:t.value))return null;var n=this.value.min||0,a=this.value.max||100;return 100*this.value.value/(a-n)}},methods:{prevent:function(e){return e.stopPropagation(),!1},setValue:function(e){var t=this;return(0,h.Z)(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return t.$emit("loading",!0),n.prev=1,n.next=4,t.request("entities.execute",{id:t.value.id,action:"set_value",data:+e.target.value});case 4:return n.prev=4,t.$emit("loading",!1),n.finish(4);case 7:case"end":return n.stop()}}),n,null,[[1,,4,7]])})))()}}},b=n(3744);const x=(0,b.Z)(w,[["render",f],["__scopeId","data-v-162eb0f4"]]);var _=x},3673:function(e,t,n){n.r(t),n.d(t,{default:function(){return f}});var a=n(6252),l=n(3577),i=n(3540),r={key:0,src:i,class:"loading"},o={key:1,class:"fas fa-circle-exclamation error"};function u(e,t,n,i,u,s){var c=(0,a.up)("Icon");return(0,a.wg)(),(0,a.iD)("div",{class:(0,l.C_)(["entity-icon-container",{"with-color-fill":!!s.colorFill}]),style:(0,l.j5)(s.colorFillStyle)},[n.loading?((0,a.wg)(),(0,a.iD)("img",r)):n.error?((0,a.wg)(),(0,a.iD)("i",o)):((0,a.wg)(),(0,a.j4)(c,(0,l.vs)((0,a.dG)({key:2},s.computedIcon)),null,16))],6)}var s=n(4648),c=(n(7042),n(1478)),d={name:"EntityIcon",components:{Icon:c.Z},props:{loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},icon:{type:Object,required:!0},hasColorFill:{type:Boolean,default:!1}},data:function(){return{component:null,modalVisible:!1}},computed:{colorFill:function(){return this.hasColorFill&&this.icon.color?this.icon.color:null},colorFillStyle:function(){return this.colorFill&&!this.error?{background:this.colorFill}:{}},computedIcon:function(){var e=(0,s.Z)({},this.icon);return this.colorFill&&delete e.color,e},type:function(){var e=this.entity.type||"";return e.charAt(0).toUpperCase()+e.slice(1)}}},p=n(3744);const v=(0,p.Z)(d,[["render",u],["__scopeId","data-v-e4043550"]]);var f=v},3540:function(e,t,n){e.exports=n.p+"static/img/spinner.c0bee445.gif"}}]);
+//# sourceMappingURL=6365-legacy.f0476e2f.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js.map b/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js.map
new file mode 100644
index 000000000..112541d6a
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/6365-legacy.f0476e2f.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/6365-legacy.f0476e2f.js","mappings":"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","sources":["webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/panels/Entities/Dimmer.vue","webpack://platypush/./src/components/panels/Entities/Dimmer.vue?5b8c","webpack://platypush/./src/components/panels/Entities/EntityIcon.vue","webpack://platypush/./src/components/panels/Entities/EntityIcon.vue?8abc"],"sourcesContent":["\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n\n
\n \n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Dimmer.vue?vue&type=template&id=162eb0f4&scoped=true\"\nimport script from \"./Dimmer.vue?vue&type=script&lang=js\"\nexport * from \"./Dimmer.vue?vue&type=script&lang=js\"\n\nimport \"./Dimmer.vue?vue&type=style&index=0&id=162eb0f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-162eb0f4\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./EntityIcon.vue?vue&type=template&id=e4043550&scoped=true\"\nimport script from \"./EntityIcon.vue?vue&type=script&lang=js\"\nexport * from \"./EntityIcon.vue?vue&type=script&lang=js\"\n\nimport \"./EntityIcon.vue?vue&type=style&index=0&id=e4043550&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e4043550\"]])\n\nexport default __exports__"],"names":["class","ref","withLabel","type","min","range","max","step","disabled","value","onUpdate","name","emits","props","Number","Boolean","default","Array","methods","event","this","update","target","$emit","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","track","width","mounted","__exports__","render","expanded","icon","meta","loading","error","valuePercent","toFixed","prevent","setValue","components","Slider","EntityIcon","mixins","EntityMixin","data","computed","is_write_only","stopPropagation","request","id","action","src","colorFill","colorFillStyle","computedIcon","Icon","Object","required","hasColorFill","component","modalVisible","color","entityType","entity","charAt","toUpperCase","slice"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js b/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js
new file mode 100644
index 000000000..78d6592b3
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js
@@ -0,0 +1,2 @@
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[6365,3673],{6237:function(e,t,n){n.d(t,{Z:function(){return m}});var l=n(6252),a=n(3577),i=n(9963);const o={class:"slider-wrapper"},r=["min","max","step","disabled","value"],s={class:"track-inner",ref:"track"},u={class:"thumb",ref:"thumb"},c=["textContent"];function d(e,t,n,d,p,h){return(0,l.wg)(),(0,l.iD)("label",o,[(0,l._)("input",{class:(0,a.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,i.iM)(((...e)=>h.onUpdate&&h.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,i.iM)(((...e)=>h.onUpdate&&h.onUpdate(...e)),["stop"]))},null,42,r),(0,l._)("div",{class:(0,a.C_)(["track",{"with-label":n.withLabel}])},[(0,l._)("div",s,null,512)],2),(0,l._)("div",u,null,512),n.withLabel?((0,l.wg)(),(0,l.iD)("span",{key:0,class:"label",textContent:(0,a.zw)(n.value),ref:"label"},null,8,c)):(0,l.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=this.$refs.range.clientWidth,n=(e-this.range[0])/(this.range[1]-this.range[0]),l=n*t,a=this.$refs.thumb;a.style.left=l-a.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${n}%, -50%)`,this.$refs.track.style.width=`${l}px`}},mounted(){null!=this.value&&this.update(this.value)}},h=n(3744);const v=(0,h.Z)(p,[["render",d],["__scopeId","data-v-15d8c6c5"]]);var m=v},6365:function(e,t,n){n.r(t),n.d(t,{default:function(){return _}});var l=n(6252),a=n(3577),i=n(9963);const o={class:"entity dimmer-container"},r={class:"col-1 icon"},s={class:"col-s-8 col-m-9 label"},u=["textContent"],c={class:"col-s-3 col-m-2 buttons pull-right"},d=["textContent"],p={class:"row"},h={class:"input"};function v(e,t,n,v,m,f){const g=(0,l.up)("EntityIcon"),y=(0,l.up)("Slider");return(0,l.wg)(),(0,l.iD)("div",o,[(0,l._)("div",{class:(0,a.C_)(["head",{expanded:m.expanded}])},[(0,l._)("div",r,[(0,l.Wm)(g,{icon:this.value.meta?.icon||{},loading:e.loading,error:e.error},null,8,["icon","loading","error"])]),(0,l._)("div",s,[(0,l._)("div",{class:"name",textContent:(0,a.zw)(e.value.name)},null,8,u)]),(0,l._)("div",c,[(0,l._)("button",{onClick:t[0]||(t[0]=(0,i.iM)((e=>m.expanded=!m.expanded),["stop"]))},[(0,l._)("i",{class:(0,a.C_)(["fas",{"fa-angle-up":m.expanded,"fa-angle-down":!m.expanded}])},null,2)]),null!=f.valuePercent?((0,l.wg)(),(0,l.iD)("span",{key:0,class:"value-percent",textContent:(0,a.zw)(f.valuePercent.toFixed(0)+"%")},null,8,d)):(0,l.kq)("",!0)])],2),m.expanded?((0,l.wg)(),(0,l.iD)("div",{key:0,class:"body",onClick:t[1]||(t[1]=(0,i.iM)(((...e)=>f.prevent&&f.prevent(...e)),["stop"]))},[(0,l._)("div",p,[(0,l._)("div",h,[(0,l.Wm)(y,{range:[e.value.min,e.value.max],value:e.value.value,onInput:f.setValue},null,8,["range","value","onInput"])])])])):(0,l.kq)("",!0)])}var m=n(6237),f=n(7909),g=n(3673),y={name:"Dimmer",components:{Slider:m.Z,EntityIcon:g["default"]},mixins:[f["default"]],data(){return{expanded:!1}},computed:{valuePercent(){if(this.value?.is_write_only||null==this.value?.value)return null;const e=this.value.min||0,t=this.value.max||100;return 100*this.value.value/(t-e)}},methods:{prevent(e){return e.stopPropagation(),!1},async setValue(e){this.$emit("loading",!0);try{await this.request("entities.execute",{id:this.value.id,action:"set_value",data:+e.target.value})}finally{this.$emit("loading",!1)}}}},b=n(3744);const w=(0,b.Z)(y,[["render",v],["__scopeId","data-v-162eb0f4"]]);var _=w},3673:function(e,t,n){n.r(t),n.d(t,{default:function(){return h}});var l=n(6252),a=n(3577),i=n(3540);const o={key:0,src:i,class:"loading"},r={key:1,class:"fas fa-circle-exclamation error"};function s(e,t,n,i,s,u){const c=(0,l.up)("Icon");return(0,l.wg)(),(0,l.iD)("div",{class:(0,a.C_)(["entity-icon-container",{"with-color-fill":!!u.colorFill}]),style:(0,a.j5)(u.colorFillStyle)},[n.loading?((0,l.wg)(),(0,l.iD)("img",o)):n.error?((0,l.wg)(),(0,l.iD)("i",r)):((0,l.wg)(),(0,l.j4)(c,(0,a.vs)((0,l.dG)({key:2},u.computedIcon)),null,16))],6)}var u=n(1478),c={name:"EntityIcon",components:{Icon:u.Z},props:{loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},icon:{type:Object,required:!0},hasColorFill:{type:Boolean,default:!1}},data(){return{component:null,modalVisible:!1}},computed:{colorFill(){return this.hasColorFill&&this.icon.color?this.icon.color:null},colorFillStyle(){return this.colorFill&&!this.error?{background:this.colorFill}:{}},computedIcon(){const e={...this.icon};return this.colorFill&&delete e.color,e},type(){let e=this.entity.type||"";return e.charAt(0).toUpperCase()+e.slice(1)}}},d=n(3744);const p=(0,d.Z)(c,[["render",s],["__scopeId","data-v-e4043550"]]);var h=p},3540:function(e,t,n){e.exports=n.p+"static/img/spinner.c0bee445.gif"}}]);
+//# sourceMappingURL=6365.ff05ea5a.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js.map b/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js.map
new file mode 100644
index 000000000..592bed52f
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/6365.ff05ea5a.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/6365.ff05ea5a.js","mappings":"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","sources":["webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/panels/Entities/Dimmer.vue","webpack://platypush/./src/components/panels/Entities/Dimmer.vue?5b8c","webpack://platypush/./src/components/panels/Entities/EntityIcon.vue","webpack://platypush/./src/components/panels/Entities/EntityIcon.vue?8abc"],"sourcesContent":["\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n\n
\n \n
\n\n
\n \n \n
\n
\n\n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Dimmer.vue?vue&type=template&id=162eb0f4&scoped=true\"\nimport script from \"./Dimmer.vue?vue&type=script&lang=js\"\nexport * from \"./Dimmer.vue?vue&type=script&lang=js\"\n\nimport \"./Dimmer.vue?vue&type=style&index=0&id=162eb0f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-162eb0f4\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./EntityIcon.vue?vue&type=template&id=e4043550&scoped=true\"\nimport script from \"./EntityIcon.vue?vue&type=script&lang=js\"\nexport * from \"./EntityIcon.vue?vue&type=script&lang=js\"\n\nimport \"./EntityIcon.vue?vue&type=style&index=0&id=e4043550&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-e4043550\"]])\n\nexport default __exports__"],"names":["class","ref","withLabel","type","min","range","max","step","disabled","value","onUpdate","name","emits","props","Number","Boolean","default","Array","methods","event","this","update","target","$emit","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","track","width","mounted","__exports__","render","expanded","icon","meta","loading","error","valuePercent","toFixed","prevent","setValue","components","Slider","EntityIcon","mixins","EntityMixin","data","computed","is_write_only","stopPropagation","async","request","id","action","src","colorFill","colorFillStyle","computedIcon","Icon","Object","required","hasColorFill","component","modalVisible","color","entityType","entity","charAt","toUpperCase","slice"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js b/platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js
similarity index 59%
rename from platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js
rename to platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js
index e1c6e814e..b8b620a08 100644
--- a/platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js
+++ b/platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js
@@ -1,2 +1,2 @@
-(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[7029],{1150:function(t){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},2481:function(t,e,n){var a=n(2109),s=n(8415);a({target:"String",proto:!0},{repeat:s})},4765:function(t,e,n){"use strict";var a=n(6916),s=n(7007),u=n(9670),o=n(4488),l=n(1150),i=n(1340),r=n(8173),c=n(7651);s("search",(function(t,e,n){return[function(e){var n=o(this),s=void 0==e?void 0:r(e,t);return s?a(s,e,n):new RegExp(e)[t](i(n))},function(t){var a=u(this),s=i(t),o=n(e,a,s);if(o.done)return o.value;var r=a.lastIndex;l(r,0)||(a.lastIndex=0);var d=c(a,s);return l(a.lastIndex,r)||(a.lastIndex=r),null===d?-1:d.index}]}))},9978:function(t,e,n){"use strict";n.d(e,{Z:function(){return Ht}});var a=n(6252),s={class:"media-container"},u={class:"view-container"},o={class:"controls-container"};function l(t,e,n,l,i,r){var c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a._)("div",u,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",o,[(0,a.Wm)(c,{status:n.status,track:n.track,buttons:n.buttons,onPlay:e[0]||(e[0]=function(e){return t.$emit("play",e)}),onPause:e[1]||(e[1]=function(e){return t.$emit("pause",e)}),onStop:e[2]||(e[2]=function(e){return t.$emit("stop")}),onPrevious:e[3]||(e[3]=function(e){return t.$emit("previous")}),onNext:e[4]||(e[4]=function(e){return t.$emit("next")}),onSeek:e[5]||(e[5]=function(e){return t.$emit("seek",e)}),onSetVolume:e[6]||(e[6]=function(e){return t.$emit("set-volume",e)}),onConsume:e[7]||(e[7]=function(e){return t.$emit("consume",e)}),onRepeat:e[8]||(e[8]=function(e){return t.$emit("repeat",e)}),onRandom:e[9]||(e[9]=function(e){return t.$emit("random",e)}),onSearch:e[10]||(e[10]=function(e){return t.$emit("search",e)})},null,8,["status","track","buttons"])])])}n(2481);var i=n(3577),r=n(9963),c=function(t){return(0,a.dD)("data-v-8db4988a"),t=t(),(0,a.Cn)(),t},d={class:"row"},p=c((function(){return(0,a._)("div",{class:"col-3"},null,-1)})),f={class:"col-6"},m={class:"buttons"},v=c((function(){return(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1)})),k=[v],b=c((function(){return(0,a._)("i",{class:"icon fa fa-stop"},null,-1)})),y=[b],_=c((function(){return(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1)})),g=[_],h=c((function(){return(0,a._)("div",{class:"col-3"},null,-1)})),w={class:"row"},C={class:"col-9 volume-container"},x={class:"col-1"},$=["disabled"],D=c((function(){return(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1)})),T=[D],q={class:"col-11 volume-slider"},M={class:"col-3 list-controls"},S=c((function(){return(0,a._)("i",{class:"icon fa fa-utensils"},null,-1)})),U=[S],P=c((function(){return(0,a._)("i",{class:"icon fa fa-random"},null,-1)})),Z=[P],I=c((function(){return(0,a._)("i",{class:"icon fa fa-redo"},null,-1)})),z=[I],j={class:"row"},O={class:"col-s-2 col-m-1 time"},W=["textContent"],N={class:"col-s-8 col-m-10 time-bar"},R={class:"col-s-2 col-m-1 time"},L=["textContent"],A={class:"controls"},B={class:"playback-controls mobile tablet col-2"},H=["title"],K={key:0,class:"icon play-pause fa fa-pause"},V={key:1,class:"icon play-pause fa fa-play"},E={class:"track-container col-s-8 col-m-8 col-l-3"},Y={key:0,class:"track-info"},F={key:0,class:"title"},G=["href","textContent"],J=["href","textContent"],Q=["textContent"],X={key:1,class:"artist"},tt=["href","textContent"],et={class:"playback-controls desktop col-6"},nt={class:"row buttons"},at=c((function(){return(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1)})),st=[at],ut=["title"],ot={key:0,class:"icon play-pause fa fa-pause"},lt={key:1,class:"icon play-pause fa fa-play"},it=c((function(){return(0,a._)("i",{class:"icon fa fa-stop"},null,-1)})),rt=[it],ct=c((function(){return(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1)})),dt=[ct],pt={class:"row"},ft={class:"col-1 time"},mt=["textContent"],vt={class:"col-10"},kt={class:"col-1 time"},bt=["textContent"],yt={class:"col-2 pull-right mobile tablet right-buttons"},_t=["title"],gt={class:"col-3 pull-right desktop"},ht={class:"row list-controls"},wt=c((function(){return(0,a._)("i",{class:"icon fa fa-utensils"},null,-1)})),Ct=[wt],xt=c((function(){return(0,a._)("i",{class:"icon fa fa-random"},null,-1)})),$t=[xt],Dt=c((function(){return(0,a._)("i",{class:"icon fa fa-redo"},null,-1)})),Tt=[Dt],qt={class:"row volume-container"},Mt={class:"col-2"},St=["disabled"],Ut=c((function(){return(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1)})),Pt=[Ut],Zt={class:"col-10"};function It(t,e,n,s,u,o){var l,c,v,b,_,D=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,i.C_)(["extension fade-in",{hidden:!u.expanded}])},[(0,a._)("div",d,[p,(0,a._)("div",f,[(0,a._)("div",m,[u.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=function(e){return t.$emit("previous")}),title:"Play previous track"},k)):(0,a.kq)("",!0),u.buttons_.stop&&"stop"!==n.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=function(e){return t.$emit("stop")}),title:"Stop playback"},y)):(0,a.kq)("",!0),u.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=function(e){return t.$emit("next")}),title:"Play next track"},g)):(0,a.kq)("",!0)])]),h]),(0,a._)("div",w,[(0,a._)("div",C,[(0,a._)("div",x,[(0,a._)("button",{disabled:null==n.status.muted,onClick:e[3]||(e[3]=function(e){return t.$emit(n.status.muted?"unmute":"mute")})},T,8,$)]),(0,a._)("div",q,[(0,a.Wm)(D,{value:n.status.volume,range:n.volumeRange,disabled:null==n.status.volume,onMouseup:e[4]||(e[4]=function(e){return t.$emit("set-volume",e.target.value)})},null,8,["value","range","disabled"])])]),(0,a._)("div",M,[u.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[5]||(e[5]=function(e){return t.$emit("consume",!n.status.consume)}),class:(0,i.C_)({enabled:n.status.consume}),title:"Toggle consume mode"},U,2)):(0,a.kq)("",!0),u.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[6]||(e[6]=function(e){return t.$emit("random",!n.status.random)}),class:(0,i.C_)({enabled:n.status.random}),title:"Toggle shuffle"},Z,2)):(0,a.kq)("",!0),u.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[7]||(e[7]=function(e){return t.$emit("repeat",!n.status.repeat)}),class:(0,i.C_)({enabled:n.status.repeat}),title:"Toggle repeat"},z,2)):(0,a.kq)("",!0)])]),(0,a._)("div",j,[(0,a._)("div",O,[(0,a._)("span",{class:"elapsed-time",textContent:(0,i.zw)(null==u.elapsed||"play"!==n.status.state&&"pause"!==n.status.state?"-:--":t.convertTime(u.elapsed))},null,8,W)]),(0,a._)("div",N,[(0,a.Wm)(D,{value:u.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===n.status.state,onMouseup:e[8]||(e[8]=function(e){return t.$emit("seek",e.target.value)})},null,8,["value","range","disabled"])]),(0,a._)("div",R,[(0,a._)("span",{class:"total-time",textContent:(0,i.zw)(o.duration&&"stop"!==n.status.state?t.convertTime(o.duration):"-:--")},null,8,L)])])],2),(0,a._)("div",A,[(0,a._)("div",B,[(0,a._)("button",{onClick:e[9]||(e[9]=function(e){return t.$emit("play"===n.status.state?"pause":"play")}),title:"play"===n.status.state?"Pause":"Play"},["play"===n.status.state?((0,a.wg)(),(0,a.iD)("i",K)):((0,a.wg)(),(0,a.iD)("i",V))],8,H)]),(0,a._)("div",E,[n.track&&"stop"!==(null===(l=n.status)||void 0===l?void 0:l.state)?((0,a.wg)(),(0,a.iD)("div",Y,["play"===n.status.state||"pause"===n.status.state?((0,a.wg)(),(0,a.iD)("div",F,[n.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,i.zw)(null!==(c=n.track.title)&&void 0!==c&&c.length?n.track.title:"[No Title]"),onClick:e[10]||(e[10]=(0,r.iM)((function(e){return t.$emit("search",{artist:n.track.artist,album:n.track.album})}),["prevent"]))},null,8,G)):n.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,href:n.track.url,textContent:(0,i.zw)(null!==(v=n.track.title)&&void 0!==v&&v.length?n.track.title:"[No Title]")},null,8,J)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,i.zw)(null!==(b=n.track.title)&&void 0!==b&&b.length?n.track.title:"[No Title]")},null,8,Q))])):(0,a.kq)("",!0),null===(_=n.track.artist)||void 0===_||!_.length||"play"!==n.status.state&&"pause"!==n.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",X,[(0,a._)("a",{href:t.$route.fullPath,textContent:(0,i.zw)(n.track.artist),onClick:e[11]||(e[11]=(0,r.iM)((function(e){return t.$emit("search",{artist:n.track.artist})}),["prevent"]))},null,8,tt)]))])):(0,a.kq)("",!0)]),(0,a._)("div",et,[(0,a._)("div",nt,[u.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[12]||(e[12]=function(e){return t.$emit("previous")}),title:"Play previous track"},st)):(0,a.kq)("",!0),(0,a._)("button",{onClick:e[13]||(e[13]=function(e){return t.$emit("play"===n.status.state?"pause":"play")}),title:"play"===n.status.state?"Pause":"Play"},["play"===n.status.state?((0,a.wg)(),(0,a.iD)("i",ot)):((0,a.wg)(),(0,a.iD)("i",lt))],8,ut),u.buttons_.stop&&"stop"!==n.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[14]||(e[14]=function(e){return t.$emit("stop")}),title:"Stop playback"},rt)):(0,a.kq)("",!0),u.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[15]||(e[15]=function(e){return t.$emit("next")}),title:"Play next track"},dt)):(0,a.kq)("",!0)]),(0,a._)("div",pt,[(0,a._)("div",ft,[(0,a._)("span",{class:"elapsed-time",textContent:(0,i.zw)(null==u.elapsed||"play"!==n.status.state&&"pause"!==n.status.state?"-:--":t.convertTime(u.elapsed))},null,8,mt)]),(0,a._)("div",vt,[(0,a.Wm)(D,{value:u.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===n.status.state,onMouseup:e[16]||(e[16]=function(e){return t.$emit("seek",e.target.value)})},null,8,["value","range","disabled"])]),(0,a._)("div",kt,[(0,a._)("span",{class:"total-time",textContent:(0,i.zw)(o.duration&&"stop"!==n.status.state?t.convertTime(o.duration):"-:--")},null,8,bt)])])]),(0,a._)("div",yt,[(0,a._)("button",{onClick:e[17]||(e[17]=function(t){return u.expanded=!u.expanded}),title:u.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,i.C_)(["fas",["fa-chevron-".concat(u.expanded?"down":"up")]])},null,2)],8,_t)]),(0,a._)("div",gt,[(0,a._)("div",ht,[u.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[18]||(e[18]=function(e){return t.$emit("consume")}),class:(0,i.C_)({enabled:n.status.consume}),title:"Toggle consume mode"},Ct,2)):(0,a.kq)("",!0),u.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[19]||(e[19]=function(e){return t.$emit("random")}),class:(0,i.C_)({enabled:n.status.random}),title:"Toggle shuffle"},$t,2)):(0,a.kq)("",!0),u.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[20]||(e[20]=function(e){return t.$emit("repeat")}),class:(0,i.C_)({enabled:n.status.repeat}),title:"Toggle repeat"},Tt,2)):(0,a.kq)("",!0)]),(0,a._)("div",qt,[(0,a._)("div",Mt,[(0,a._)("button",{disabled:null==n.status.muted,onClick:e[21]||(e[21]=function(e){return t.$emit(n.status.muted?"unmute":"mute")})},Pt,8,St)]),(0,a._)("div",Zt,[(0,a.Wm)(D,{value:n.status.volume,range:n.volumeRange,disabled:null==n.status.volume,onMouseup:e[22]||(e[22]=function(e){return t.$emit("set-volume",e.target.value)})},null,8,["value","range","disabled"])])])])])],64)}n(7941);var zt=n(6813),jt=n(8337),Ot=n(8070),Wt={name:"Controls",components:{Slider:Ot.Z},mixins:[zt.Z,jt.Z],emits:["search","previous","next","play","pause","stop","seek","consume","random","repeat","set-volume","mute","unmute"],props:{track:{type:Object},status:{type:Object,default:function(){}},buttons:{type:Object,default:function(){return{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0}}},volumeRange:{type:Array,default:function(){return[0,100]}}},data:function(){var t,e,n,a=null!==(t=Object.keys(this.buttons))&&void 0!==t&&t.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:(null===(e=this.status)||void 0===e?void 0:e.elapsed)||(null===(n=this.status)||void 0===n?void 0:n.position),buttons_:a}},computed:{duration:function(){var t,e;return null!=(null===(t=this.status)||void 0===t?void 0:t.duration)?this.status.duration:null===(e=this.track)||void 0===e?void 0:e.duration}},methods:{getTime:function(){return(new Date).getTime()/1e3}},mounted:function(){var t=this,e=this;this.lastSync=this.getTime(),this.$watch((function(){return t.track}),(function(n){var a;n&&"play"===(null===(a=e.status)||void 0===a?void 0:a.state)||(e.lastSync=t.getTime())})),this.$watch((function(){return t.status}),(function(){e.lastSync=t.getTime()})),setInterval((function(){var n,a,s,u;"stop"!==(null===(n=e.status)||void 0===n?void 0:n.state)&&(e.elapsed=(null===(a=e.status)||void 0===a?void 0:a.elapsed)||(null===(s=e.status)||void 0===s?void 0:s.position)||0,"play"===(null===(u=e.status)||void 0===u?void 0:u.state)&&(e.elapsed+=Math.round(t.getTime()-e.lastSync)))}),1e3)}},Nt=n(3744);const Rt=(0,Nt.Z)(Wt,[["render",It],["__scopeId","data-v-8db4988a"]]);var Lt=Rt,At={name:"View",components:{Controls:Lt},emits:["play","pause","stop","next","previous","set-volume","seek","consume","random","repeat","search"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:function(){}},track:{type:Object},buttons:{type:Object}}};const Bt=(0,Nt.Z)(At,[["render",l],["__scopeId","data-v-70d7a7df"]]);var Ht=Bt},8070:function(t,e,n){"use strict";n.d(e,{Z:function(){return k}});var a=n(6252),s=n(3577),u=n(9963),o={class:"slider-wrapper"},l=["min","max","step","disabled","value"],i={class:"track-inner",ref:"track"},r={class:"thumb",ref:"thumb"},c=["textContent"];function d(t,e,n,d,p,f){return(0,a.wg)(),(0,a.iD)("label",o,[(0,a._)("input",{class:(0,s.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:e[0]||(e[0]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onChange:e[1]||(e[1]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onMouseup:e[2]||(e[2]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onMousedown:e[3]||(e[3]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onTouchstart:e[4]||(e[4]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onTouchend:e[5]||(e[5]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onKeyup:e[6]||(e[6]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onKeydown:e[7]||(e[7]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"]))},null,42,l),(0,a._)("div",{class:(0,s.C_)(["track",{"with-label":n.withLabel}])},[(0,a._)("div",i,null,512)],2),(0,a._)("div",r,null,512),n.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,s.zw)(n.value),ref:"label"},null,8,c)):(0,a.kq)("",!0)])}var p=n(4648),f=(n(9653),{name:"Slider",emits:["input","change","mouseup","mousedown","touchstart","touchend","keyup","keydown"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:function(){return[0,100]}},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1}},methods:{onUpdate:function(t){this.update(t.target.value),this.$emit(t.type,(0,p.Z)((0,p.Z)({},t),{},{target:(0,p.Z)((0,p.Z)({},t.target),{},{value:this.$refs.range.value})}))},update:function(t){var e=this.$refs.range.clientWidth,n=(t-this.range[0])/(this.range[1]-this.range[0]),a=n*e,s=this.$refs.thumb;s.style.left="".concat(a-s.clientWidth/2,"px"),this.$refs.thumb.style.transform="translate(-".concat(n,"%, -50%)"),this.$refs.track.style.width="".concat(a,"px")}},mounted:function(){null!=this.value&&this.update(this.value)}}),m=n(3744);const v=(0,m.Z)(f,[["render",d],["__scopeId","data-v-0359812c"]]);var k=v}}]);
-//# sourceMappingURL=7029-legacy.c3dab656.js.map
\ No newline at end of file
+(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[7029],{1150:function(t){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t===1/e:t!=t&&e!=e}},2481:function(t,e,n){var a=n(2109),s=n(8415);a({target:"String",proto:!0},{repeat:s})},4765:function(t,e,n){"use strict";var a=n(6916),s=n(7007),u=n(9670),l=n(4488),o=n(1150),i=n(1340),r=n(8173),c=n(7651);s("search",(function(t,e,n){return[function(e){var n=l(this),s=void 0==e?void 0:r(e,t);return s?a(s,e,n):new RegExp(e)[t](i(n))},function(t){var a=u(this),s=i(t),l=n(e,a,s);if(l.done)return l.value;var r=a.lastIndex;o(r,0)||(a.lastIndex=0);var d=c(a,s);return o(a.lastIndex,r)||(a.lastIndex=r),null===d?-1:d.index}]}))},9978:function(t,e,n){"use strict";n.d(e,{Z:function(){return Ht}});var a=n(6252),s={class:"media-container"},u={class:"view-container"},l={class:"controls-container"};function o(t,e,n,o,i,r){var c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",s,[(0,a._)("div",u,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",l,[(0,a.Wm)(c,{status:n.status,track:n.track,buttons:n.buttons,onPlay:e[0]||(e[0]=function(e){return t.$emit("play",e)}),onPause:e[1]||(e[1]=function(e){return t.$emit("pause",e)}),onStop:e[2]||(e[2]=function(e){return t.$emit("stop")}),onPrevious:e[3]||(e[3]=function(e){return t.$emit("previous")}),onNext:e[4]||(e[4]=function(e){return t.$emit("next")}),onSeek:e[5]||(e[5]=function(e){return t.$emit("seek",e)}),onSetVolume:e[6]||(e[6]=function(e){return t.$emit("set-volume",e)}),onConsume:e[7]||(e[7]=function(e){return t.$emit("consume",e)}),onRepeat:e[8]||(e[8]=function(e){return t.$emit("repeat",e)}),onRandom:e[9]||(e[9]=function(e){return t.$emit("random",e)}),onSearch:e[10]||(e[10]=function(e){return t.$emit("search",e)})},null,8,["status","track","buttons"])])])}n(2481);var i=n(3577),r=n(9963),c=function(t){return(0,a.dD)("data-v-8db4988a"),t=t(),(0,a.Cn)(),t},d={class:"row"},p=c((function(){return(0,a._)("div",{class:"col-3"},null,-1)})),f={class:"col-6"},m={class:"buttons"},v=c((function(){return(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1)})),k=[v],b=c((function(){return(0,a._)("i",{class:"icon fa fa-stop"},null,-1)})),_=[b],y=c((function(){return(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1)})),g=[y],h=c((function(){return(0,a._)("div",{class:"col-3"},null,-1)})),w={class:"row"},C={class:"col-9 volume-container"},x={class:"col-1"},$=["disabled"],D=c((function(){return(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1)})),T=[D],q={class:"col-11 volume-slider"},S={class:"col-3 list-controls"},P=c((function(){return(0,a._)("i",{class:"icon fa fa-utensils"},null,-1)})),Z=[P],I=c((function(){return(0,a._)("i",{class:"icon fa fa-random"},null,-1)})),z=[I],M=c((function(){return(0,a._)("i",{class:"icon fa fa-redo"},null,-1)})),j=[M],O={class:"row"},W={class:"col-s-2 col-m-1 time"},N=["textContent"],R={class:"col-s-8 col-m-10 time-bar"},U={class:"col-s-2 col-m-1 time"},L=["textContent"],A={class:"controls"},B={class:"playback-controls mobile tablet col-2"},H=["title"],V={key:0,class:"icon play-pause fa fa-pause"},E={key:1,class:"icon play-pause fa fa-play"},Y={class:"track-container col-s-8 col-m-8 col-l-3"},F={key:0,class:"track-info"},G={key:0,class:"title"},J=["href","textContent"],K=["href","textContent"],Q=["textContent"],X={key:1,class:"artist"},tt=["href","textContent"],et={class:"playback-controls desktop col-6"},nt={class:"row buttons"},at=c((function(){return(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1)})),st=[at],ut=["title"],lt={key:0,class:"icon play-pause fa fa-pause"},ot={key:1,class:"icon play-pause fa fa-play"},it=c((function(){return(0,a._)("i",{class:"icon fa fa-stop"},null,-1)})),rt=[it],ct=c((function(){return(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1)})),dt=[ct],pt={class:"row"},ft={class:"col-1 time"},mt=["textContent"],vt={class:"col-10"},kt={class:"col-1 time"},bt=["textContent"],_t={class:"col-2 pull-right mobile tablet right-buttons"},yt=["title"],gt={class:"col-3 pull-right desktop"},ht={class:"row list-controls"},wt=c((function(){return(0,a._)("i",{class:"icon fa fa-utensils"},null,-1)})),Ct=[wt],xt=c((function(){return(0,a._)("i",{class:"icon fa fa-random"},null,-1)})),$t=[xt],Dt=c((function(){return(0,a._)("i",{class:"icon fa fa-redo"},null,-1)})),Tt=[Dt],qt={class:"row volume-container"},St={class:"col-2"},Pt=["disabled"],Zt=c((function(){return(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1)})),It=[Zt],zt={class:"col-10"};function Mt(t,e,n,s,u,l){var o,c,v,b,y,D=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,i.C_)(["extension fade-in",{hidden:!u.expanded}])},[(0,a._)("div",d,[p,(0,a._)("div",f,[(0,a._)("div",m,[u.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=function(e){return t.$emit("previous")}),title:"Play previous track"},k)):(0,a.kq)("",!0),u.buttons_.stop&&"stop"!==n.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=function(e){return t.$emit("stop")}),title:"Stop playback"},_)):(0,a.kq)("",!0),u.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=function(e){return t.$emit("next")}),title:"Play next track"},g)):(0,a.kq)("",!0)])]),h]),(0,a._)("div",w,[(0,a._)("div",C,[(0,a._)("div",x,[(0,a._)("button",{disabled:null==n.status.muted,onClick:e[3]||(e[3]=function(e){return t.$emit(n.status.muted?"unmute":"mute")})},T,8,$)]),(0,a._)("div",q,[(0,a.Wm)(D,{value:n.status.volume,range:n.volumeRange,disabled:null==n.status.volume,onMouseup:e[4]||(e[4]=function(e){return t.$emit("set-volume",e.target.value)})},null,8,["value","range","disabled"])])]),(0,a._)("div",S,[u.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[5]||(e[5]=function(e){return t.$emit("consume",!n.status.consume)}),class:(0,i.C_)({enabled:n.status.consume}),title:"Toggle consume mode"},Z,2)):(0,a.kq)("",!0),u.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[6]||(e[6]=function(e){return t.$emit("random",!n.status.random)}),class:(0,i.C_)({enabled:n.status.random}),title:"Toggle shuffle"},z,2)):(0,a.kq)("",!0),u.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[7]||(e[7]=function(e){return t.$emit("repeat",!n.status.repeat)}),class:(0,i.C_)({enabled:n.status.repeat}),title:"Toggle repeat"},j,2)):(0,a.kq)("",!0)])]),(0,a._)("div",O,[(0,a._)("div",W,[(0,a._)("span",{class:"elapsed-time",textContent:(0,i.zw)(null==u.elapsed||"play"!==n.status.state&&"pause"!==n.status.state?"-:--":t.convertTime(u.elapsed))},null,8,N)]),(0,a._)("div",R,[(0,a.Wm)(D,{value:u.elapsed,range:[0,l.duration],disabled:!l.duration||"stop"===n.status.state,onMouseup:e[8]||(e[8]=function(e){return t.$emit("seek",e.target.value)})},null,8,["value","range","disabled"])]),(0,a._)("div",U,[(0,a._)("span",{class:"total-time",textContent:(0,i.zw)(l.duration&&"stop"!==n.status.state?t.convertTime(l.duration):"-:--")},null,8,L)])])],2),(0,a._)("div",A,[(0,a._)("div",B,[(0,a._)("button",{onClick:e[9]||(e[9]=function(e){return t.$emit("play"===n.status.state?"pause":"play")}),title:"play"===n.status.state?"Pause":"Play"},["play"===n.status.state?((0,a.wg)(),(0,a.iD)("i",V)):((0,a.wg)(),(0,a.iD)("i",E))],8,H)]),(0,a._)("div",Y,[n.track&&"stop"!==(null===(o=n.status)||void 0===o?void 0:o.state)?((0,a.wg)(),(0,a.iD)("div",F,["play"===n.status.state||"pause"===n.status.state?((0,a.wg)(),(0,a.iD)("div",G,[n.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,i.zw)(null!==(c=n.track.title)&&void 0!==c&&c.length?n.track.title:"[No Title]"),onClick:e[10]||(e[10]=(0,r.iM)((function(e){return t.$emit("search",{artist:n.track.artist,album:n.track.album})}),["prevent"]))},null,8,J)):n.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,href:n.track.url,textContent:(0,i.zw)(null!==(v=n.track.title)&&void 0!==v&&v.length?n.track.title:"[No Title]")},null,8,K)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,i.zw)(null!==(b=n.track.title)&&void 0!==b&&b.length?n.track.title:"[No Title]")},null,8,Q))])):(0,a.kq)("",!0),null===(y=n.track.artist)||void 0===y||!y.length||"play"!==n.status.state&&"pause"!==n.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",X,[(0,a._)("a",{href:t.$route.fullPath,textContent:(0,i.zw)(n.track.artist),onClick:e[11]||(e[11]=(0,r.iM)((function(e){return t.$emit("search",{artist:n.track.artist})}),["prevent"]))},null,8,tt)]))])):(0,a.kq)("",!0)]),(0,a._)("div",et,[(0,a._)("div",nt,[u.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[12]||(e[12]=function(e){return t.$emit("previous")}),title:"Play previous track"},st)):(0,a.kq)("",!0),(0,a._)("button",{onClick:e[13]||(e[13]=function(e){return t.$emit("play"===n.status.state?"pause":"play")}),title:"play"===n.status.state?"Pause":"Play"},["play"===n.status.state?((0,a.wg)(),(0,a.iD)("i",lt)):((0,a.wg)(),(0,a.iD)("i",ot))],8,ut),u.buttons_.stop&&"stop"!==n.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[14]||(e[14]=function(e){return t.$emit("stop")}),title:"Stop playback"},rt)):(0,a.kq)("",!0),u.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[15]||(e[15]=function(e){return t.$emit("next")}),title:"Play next track"},dt)):(0,a.kq)("",!0)]),(0,a._)("div",pt,[(0,a._)("div",ft,[(0,a._)("span",{class:"elapsed-time",textContent:(0,i.zw)(null==u.elapsed||"play"!==n.status.state&&"pause"!==n.status.state?"-:--":t.convertTime(u.elapsed))},null,8,mt)]),(0,a._)("div",vt,[(0,a.Wm)(D,{value:u.elapsed,range:[0,l.duration],disabled:!l.duration||"stop"===n.status.state,onMouseup:e[16]||(e[16]=function(e){return t.$emit("seek",e.target.value)})},null,8,["value","range","disabled"])]),(0,a._)("div",kt,[(0,a._)("span",{class:"total-time",textContent:(0,i.zw)(l.duration&&"stop"!==n.status.state?t.convertTime(l.duration):"-:--")},null,8,bt)])])]),(0,a._)("div",_t,[(0,a._)("button",{onClick:e[17]||(e[17]=function(t){return u.expanded=!u.expanded}),title:u.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,i.C_)(["fas",["fa-chevron-".concat(u.expanded?"down":"up")]])},null,2)],8,yt)]),(0,a._)("div",gt,[(0,a._)("div",ht,[u.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[18]||(e[18]=function(e){return t.$emit("consume")}),class:(0,i.C_)({enabled:n.status.consume}),title:"Toggle consume mode"},Ct,2)):(0,a.kq)("",!0),u.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[19]||(e[19]=function(e){return t.$emit("random")}),class:(0,i.C_)({enabled:n.status.random}),title:"Toggle shuffle"},$t,2)):(0,a.kq)("",!0),u.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[20]||(e[20]=function(e){return t.$emit("repeat")}),class:(0,i.C_)({enabled:n.status.repeat}),title:"Toggle repeat"},Tt,2)):(0,a.kq)("",!0)]),(0,a._)("div",qt,[(0,a._)("div",St,[(0,a._)("button",{disabled:null==n.status.muted,onClick:e[21]||(e[21]=function(e){return t.$emit(n.status.muted?"unmute":"mute")})},It,8,Pt)]),(0,a._)("div",zt,[(0,a.Wm)(D,{value:n.status.volume,range:n.volumeRange,disabled:null==n.status.volume,onMouseup:e[22]||(e[22]=function(e){return t.$emit("set-volume",e.target.value)})},null,8,["value","range","disabled"])])])])])],64)}n(7941);var jt=n(6813),Ot=n(8337),Wt=n(6237),Nt={name:"Controls",components:{Slider:Wt.Z},mixins:[jt.Z,Ot.Z],emits:["search","previous","next","play","pause","stop","seek","consume","random","repeat","set-volume","mute","unmute"],props:{track:{type:Object},status:{type:Object,default:function(){}},buttons:{type:Object,default:function(){return{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0}}},volumeRange:{type:Array,default:function(){return[0,100]}}},data:function(){var t,e,n,a=null!==(t=Object.keys(this.buttons))&&void 0!==t&&t.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:(null===(e=this.status)||void 0===e?void 0:e.elapsed)||(null===(n=this.status)||void 0===n?void 0:n.position),buttons_:a}},computed:{duration:function(){var t,e;return null!=(null===(t=this.status)||void 0===t?void 0:t.duration)?this.status.duration:null===(e=this.track)||void 0===e?void 0:e.duration}},methods:{getTime:function(){return(new Date).getTime()/1e3}},mounted:function(){var t=this,e=this;this.lastSync=this.getTime(),this.$watch((function(){return t.track}),(function(n){var a;n&&"play"===(null===(a=e.status)||void 0===a?void 0:a.state)||(e.lastSync=t.getTime())})),this.$watch((function(){return t.status}),(function(){e.lastSync=t.getTime()})),setInterval((function(){var n,a,s,u;"stop"!==(null===(n=e.status)||void 0===n?void 0:n.state)&&(e.elapsed=(null===(a=e.status)||void 0===a?void 0:a.elapsed)||(null===(s=e.status)||void 0===s?void 0:s.position)||0,"play"===(null===(u=e.status)||void 0===u?void 0:u.state)&&(e.elapsed+=Math.round(t.getTime()-e.lastSync)))}),1e3)}},Rt=n(3744);const Ut=(0,Rt.Z)(Nt,[["render",Mt],["__scopeId","data-v-8db4988a"]]);var Lt=Ut,At={name:"View",components:{Controls:Lt},emits:["play","pause","stop","next","previous","set-volume","seek","consume","random","repeat","search"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:function(){}},track:{type:Object},buttons:{type:Object}}};const Bt=(0,Rt.Z)(At,[["render",o],["__scopeId","data-v-70d7a7df"]]);var Ht=Bt},6237:function(t,e,n){"use strict";n.d(e,{Z:function(){return k}});var a=n(6252),s=n(3577),u=n(9963),l={class:"slider-wrapper"},o=["min","max","step","disabled","value"],i={class:"track-inner",ref:"track"},r={class:"thumb",ref:"thumb"},c=["textContent"];function d(t,e,n,d,p,f){return(0,a.wg)(),(0,a.iD)("label",l,[(0,a._)("input",{class:(0,s.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:e[0]||(e[0]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"])),onChange:e[1]||(e[1]=(0,u.iM)((function(){return f.onUpdate&&f.onUpdate.apply(f,arguments)}),["stop"]))},null,42,o),(0,a._)("div",{class:(0,s.C_)(["track",{"with-label":n.withLabel}])},[(0,a._)("div",i,null,512)],2),(0,a._)("div",r,null,512),n.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,s.zw)(n.value),ref:"label"},null,8,c)):(0,a.kq)("",!0)])}var p=n(4648),f=(n(9653),{name:"Slider",emits:["input","change","mouseup","mousedown","touchstart","touchend","keyup","keydown"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:function(){return[0,100]}},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1}},methods:{onUpdate:function(t){this.update(t.target.value),this.$emit(t.type,(0,p.Z)((0,p.Z)({},t),{},{target:(0,p.Z)((0,p.Z)({},t.target),{},{value:this.$refs.range.value})}))},update:function(t){var e=this.$refs.range.clientWidth,n=(t-this.range[0])/(this.range[1]-this.range[0]),a=n*e,s=this.$refs.thumb;s.style.left="".concat(a-s.clientWidth/2,"px"),this.$refs.thumb.style.transform="translate(-".concat(n,"%, -50%)"),this.$refs.track.style.width="".concat(a,"px")}},mounted:function(){null!=this.value&&this.update(this.value)}}),m=n(3744);const v=(0,m.Z)(f,[["render",d],["__scopeId","data-v-15d8c6c5"]]);var k=v}}]);
+//# sourceMappingURL=7029-legacy.421c2557.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js.map b/platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js.map
new file mode 100644
index 000000000..53606e156
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/7029-legacy.421c2557.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/7029-legacy.421c2557.js","mappings":"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","sources":["webpack://platypush/./node_modules/core-js/internals/same-value.js","webpack://platypush/./node_modules/core-js/modules/es.string.repeat.js","webpack://platypush/./node_modules/core-js/modules/es.string.search.js","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","\n
\n
\n \n
\n
\n \n
\n
\n\n\n\n\n\n","\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n\n \n\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n\n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Controls.vue?vue&type=template&id=8db4988a&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=8db4988a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8db4988a\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=70d7a7df&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=70d7a7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-70d7a7df\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__"],"names":["module","exports","Object","is","x","y","$","repeat","target","proto","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","this","searcher","undefined","RegExp","string","rx","S","res","done","value","previousLastIndex","lastIndex","result","index","class","status","track","buttons","$emit","$event","expanded","buttons_","previous","title","stop","state","next","disabled","muted","volume","range","volumeRange","consume","random","convertTime","elapsed","duration","album","href","$route","fullPath","length","artist","url","name","components","Slider","mixins","Utils","emits","props","type","default","Array","data","keys","lastSync","position","computed","methods","getTime","Date","mounted","self","$watch","setInterval","Math","round","__exports__","Controls","pluginName","String","required","render","ref","withLabel","min","max","step","onUpdate","Number","Boolean","event","update","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","width"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js.map b/platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js.map
deleted file mode 100644
index 827930021..000000000
--- a/platypush/backend/http/webapp/dist/static/js/7029-legacy.c3dab656.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/7029-legacy.c3dab656.js","mappings":"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","sources":["webpack://platypush/./node_modules/core-js/internals/same-value.js","webpack://platypush/./node_modules/core-js/modules/es.string.repeat.js","webpack://platypush/./node_modules/core-js/modules/es.string.search.js","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es-x/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","\n
\n
\n \n
\n
\n \n
\n
\n\n\n\n\n\n","\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n\n \n\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n\n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Controls.vue?vue&type=template&id=8db4988a&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=8db4988a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8db4988a\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=70d7a7df&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=70d7a7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-70d7a7df\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=0359812c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=0359812c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0359812c\"]])\n\nexport default __exports__"],"names":["module","exports","Object","is","x","y","$","repeat","target","proto","call","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","toString","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","this","searcher","undefined","RegExp","string","rx","S","res","done","value","previousLastIndex","lastIndex","result","index","class","status","track","buttons","$emit","$event","expanded","buttons_","previous","title","stop","state","next","disabled","muted","volume","range","volumeRange","consume","random","convertTime","elapsed","duration","album","href","$route","fullPath","length","artist","url","name","components","Slider","mixins","Utils","emits","props","type","default","Array","data","keys","lastSync","position","computed","methods","getTime","Date","mounted","self","$watch","setInterval","Math","round","__exports__","Controls","pluginName","String","required","render","ref","withLabel","min","max","step","onUpdate","Number","Boolean","event","update","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","width"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js b/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js
deleted file mode 100644
index 7ccd752fe..000000000
--- a/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[747],{4212:function(e,t,n){n.d(t,{N:function(){return o}});class o{constructor(e){if(this.ranges={hue:[0,360],sat:[0,100],bri:[0,100],ct:[154,500]},e)for(const t of Object.keys(this.ranges))e[t]&&(this.ranges[t]=e[t])}normalize(e,t,n){return n[0]+(e-t[0])*(n[1]-n[0])/(t[1]-t[0])}hslToRgb(e,t,n){[e,t,n]=[this.normalize(e,this.ranges.hue,[0,360]),this.normalize(t,this.ranges.sat,[0,100]),this.normalize(n,this.ranges.bri,[0,100])],n/=100;const o=t*Math.min(n,1-n)/100,s=t=>{const s=(t+e/30)%12,i=n-o*Math.max(Math.min(s-3,9-s,1),-1);return Math.round(255*i)};return[s(0),s(8),s(4)]}rgbToHsl(e,t,n){e/=255,t/=255,n/=255;const o=Math.max(e,t,n),s=Math.min(e,t,n);let i,l,a=(o+s)/2;if(o===s)i=l=0;else{const r=o-s;switch(l=a>.5?r/(2-o-s):r/(o+s),o){case e:i=(t-n)/r+(tc&&a>r&&a>1?(r/=a,c/=a,a=1):r>c&&r>a&&r>1?(a/=r,c/=r,r=1):c>a&&c>r&&c>1&&(a/=c,r/=c,c=1),a=a<=.0031308?12.92*a:1.055*Math.pow(a,1/2.4)-.055,r=r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055,c=c<=.0031308?12.92*c:1.055*Math.pow(c,1/2.4)-.055,a=Math.round(255*a),r=Math.round(255*r),c=Math.round(255*c),isNaN(a)&&(a=0),isNaN(r)&&(r=0),isNaN(c)&&(c=0),[a,r,c].map((e=>Math.min(Math.max(0,e),255)))}rgbToXY(e,t,n){e>1&&(e/=255),t>1&&(t/=255),n>1&&(n/=255),e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92;const o=.664511*e+.154324*t+.162028*n,s=.283881*e+.668433*t+.047685*n,i=88e-6*e+.07231*t+.986039*n;let l=parseFloat((o/(o+s+i)).toFixed(4)),a=parseFloat((s/(o+s+i)).toFixed(4));return isNaN(l)&&(l=0),isNaN(a)&&(a=0),[l,a]}rgbToBri(e,t,n){return Math.min(2*this.rgbToHsl(e,t,n)[2],this.ranges.bri[1])}getRGB(e){return null!=e.red&&null!=e.green&&null!=e.blue?[e.red,e.green,e.blue]:null!=e.r&&null!=e.g&&null!=e.b?[e.r,e.g,e.b]:e.rgb?e.rgb:void 0}getXY(e){return null!=e.x&&null!=e.y?[e.x,e.y]:e.xy?e.xy:void 0}toRGB(e){const t=this.getRGB(e);if(t)return t;const n=this.getXY(e);return n&&e.bri?this.xyToRgb(...n,e.bri):e.hue&&e.sat&&e.bri?this.hslToRgb(e.hue,e.sat,e.bri):(console.debug("Could not determine color space"),void console.debug(e))}toXY(e){const t=this.getXY(e);if(t&&e.bri)return[t[0],t[1],e.bri];const n=this.getRGB(e);if(n)return this.rgbToXY(...n);if(e.hue&&e.sat&&e.bri){const t=this.hslToRgb(e.hue,e.sat,e.bri);return this.rgbToXY(...t)}console.debug("Could not determine color space"),console.debug(e)}toHSL(e){if(e.hue&&e.sat&&e.bri)return[e.hue,e.sat,e.bri];const t=this.getRGB(e);if(t)return this.rgbToHsl(...t);const n=this.getXY(e);if(n&&e.bri){const t=this.xyToRgb(...n,e.bri);return this.rgbToHsl(...t)}console.debug("Could not determine color space"),console.debug(e)}hexToRgb(e){return[e.slice(1,3),e.slice(3,5),e.slice(5,7)].map((e=>parseInt(e,16)))}rgbToHex(e){return"#"+e.map((e=>{let t=e.toString(16);return t.length<2&&(t="0"+t),t})).join("")}}},8070:function(e,t,n){n.d(t,{Z:function(){return m}});var o=n(6252),s=n(3577),i=n(9963);const l={class:"slider-wrapper"},a=["min","max","step","disabled","value"],r={class:"track-inner",ref:"track"},c={class:"thumb",ref:"thumb"},u=["textContent"];function g(e,t,n,g,d,p){return(0,o.wg)(),(0,o.iD)("label",l,[(0,o._)("input",{class:(0,s.C_)(["slider",{"with-label":n.withLabel}]),type:"range",min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,value:n.value,ref:"range",onInput:t[0]||(t[0]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onMouseup:t[2]||(t[2]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onMousedown:t[3]||(t[3]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onTouchstart:t[4]||(t[4]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onTouchend:t[5]||(t[5]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onKeyup:t[6]||(t[6]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"])),onKeydown:t[7]||(t[7]=(0,i.iM)(((...e)=>p.onUpdate&&p.onUpdate(...e)),["stop"]))},null,42,a),(0,o._)("div",{class:(0,s.C_)(["track",{"with-label":n.withLabel}])},[(0,o._)("div",r,null,512)],2),(0,o._)("div",c,null,512),n.withLabel?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"label",textContent:(0,s.zw)(n.value),ref:"label"},null,8,u)):(0,o.kq)("",!0)])}var d={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=this.$refs.range.clientWidth,n=(e-this.range[0])/(this.range[1]-this.range[0]),o=n*t,s=this.$refs.thumb;s.style.left=o-s.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${n}%, -50%)`,this.$refs.track.style.width=`${o}px`}},mounted(){null!=this.value&&this.update(this.value)}},p=n(3744);const h=(0,p.Z)(d,[["render",g],["__scopeId","data-v-0359812c"]]);var m=h},6:function(e,t,n){n.d(t,{Z:function(){return h}});var o=n(6252),s=n(3577),i=n(9963);const l=e=>((0,o.dD)("data-v-a6396ae8"),e=e(),(0,o.Cn)(),e),a=["checked"],r=l((()=>(0,o._)("div",{class:"switch"},[(0,o._)("div",{class:"dot"})],-1))),c={class:"label"};function u(e,t,n,l,u,g){return(0,o.wg)(),(0,o.iD)("div",{class:(0,s.C_)(["power-switch",{disabled:n.disabled}]),onClick:t[0]||(t[0]=(0,i.iM)(((...e)=>g.onInput&&g.onInput(...e)),["stop"]))},[(0,o._)("input",{type:"checkbox",checked:n.value},null,8,a),(0,o._)("label",null,[r,(0,o._)("span",c,[(0,o.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var g={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)}}},d=n(3744);const p=(0,d.Z)(g,[["render",u],["__scopeId","data-v-a6396ae8"]]);var h=p},747:function(e,t,n){n.r(t),n.d(t,{default:function(){return Bt}});var o=n(6252);const s={class:"plugin lights-plugin"},i={key:0,class:"panel"},l={key:1,class:"panel"};function a(e,t,n,a,r,c){const u=(0,o.up)("Groups"),g=(0,o.up)("Group");return(0,o.wg)(),(0,o.iD)("div",s,[null==r.selectedGroup&&n.groups&&Object.keys(n.groups).length?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(u,{groups:n.groups,"loading-groups":n.loadingGroups,"color-converter":n.colorConverter,onSelect:t[0]||(t[0]=e=>r.selectedGroup=e),onToggle:t[1]||(t[1]=t=>e.$emit("group-toggle",t))},null,8,["groups","loading-groups","color-converter"])])):((0,o.wg)(),(0,o.iD)("div",l,[(0,o.Wm)(g,{group:n.groups[r.selectedGroup],lights:c.displayedLights,scenes:c.scenesByGroup[r.selectedGroup],"color-converter":n.colorConverter,animations:c.animationsByGroup[r.selectedGroup],onClose:t[2]||(t[2]=e=>r.selectedGroup=null),onLightToggle:t[3]||(t[3]=t=>e.$emit("light-toggle",t)),onGroupToggle:t[4]||(t[4]=t=>e.$emit("group-toggle",t)),onSetLight:t[5]||(t[5]=t=>e.$emit("set-light",t)),onSetGroup:t[6]||(t[6]=t=>e.$emit("set-group",{groupId:r.selectedGroup,value:t})),onSelectScene:t[7]||(t[7]=t=>e.$emit("select-scene",{groupId:r.selectedGroup,sceneId:t})),onStartAnimation:t[8]||(t[8]=t=>e.$emit("start-animation",t)),onStopAnimation:t[9]||(t[9]=t=>e.$emit("stop-animation",t))},null,8,["group","lights","scenes","color-converter","animations"])]))])}var r=n(6813),c={name:"Panel",emits:["mounted"],props:{config:{type:Object,default:()=>{}},pluginName:{type:String,required:!0}},data(){return{loading:!1}},mounted(){this.$emit("mounted",this)}};const u=c;var g=u,d=n(3577);const p=e=>((0,o.dD)("data-v-42318a2b"),e=e(),(0,o.Cn)(),e),h={class:"panel-row header"},m=p((()=>(0,o._)("div",{class:"col-3"},[(0,o._)("i",{class:"icon fas fa-home"})],-1))),v=p((()=>(0,o._)("div",{class:"col-6 name"}," Rooms ",-1))),b={class:"col-3 pull-right"},_=["onClick"],w={class:"name col-9"},y={class:"controls col-3 pull-right"};function f(e,t,n,s,i,l){const a=(0,o.up)("ToggleSwitch"),r=(0,o.up)("MenuPanel");return(0,o.wg)(),(0,o.j4)(r,null,{default:(0,o.w5)((()=>[(0,o._)("div",h,[m,v,(0,o._)("div",b,[(0,o.Wm)(a,{value:l.anyLightsOn,onInput:t[0]||(t[0]=t=>e.$emit("toggle"))},null,8,["value"])])]),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(l.groupsSorted,(t=>((0,o.wg)(),(0,o.iD)("div",{class:"panel-row row group",key:t.id,onClick:n=>e.$emit("select",t.id)},[(0,o._)("span",w,(0,d.zw)(t.name||`[Group ${t.id}]`),1),(0,o._)("span",y,[(0,o.Wm)(a,{value:t.state.any_on,disabled:t.id in(n.loadingGroups||{}),onInput:n=>e.$emit("toggle",t)},null,8,["value","disabled","onInput"])])],8,_)))),128))])),_:1})}const C={class:"menu-panel"},k={class:"content"};function S(e,t,n,s,i,l){return(0,o.wg)(),(0,o.iD)("div",C,[(0,o._)("div",k,[(0,o.WI)(e.$slots,"default")])])}var j={name:"MenuPanel"},O=n(3744);const M=(0,O.Z)(j,[["render",S]]);var L=M,$=n(6),D=n(4212),G={name:"Groups",components:{ToggleSwitch:$.Z,MenuPanel:L},emits:["select","toggle"],props:{groups:{type:Object,default:()=>{}},loadingGroups:{type:Object,default:()=>{}},colorConverter:{type:Object,default:()=>new D.N}},computed:{groupsSorted(){return Object.entries(this.groups).sort(((e,t)=>e[1].name.localeCompare(t[1].name))).map((([e,t])=>({...t,id:e})))},anyLightsOn(){for(const e of Object.values(this.groups))if(e?.state?.any_on)return!0;return!1}}};const x=(0,O.Z)(G,[["render",f],["__scopeId","data-v-42318a2b"]]);var I=x;const T={class:"light-group-container"},U={class:"panel-row header"},A={key:0,class:"col-3"},B=(0,o._)("i",{class:"fas fa-chevron-left"},null,-1),N=[B],W=["textContent"],R={key:1,class:"col-3 pull-right"},Z={key:0,class:"no-lights"},q={key:1,class:"lights-view"},z={class:"row view-selector"},H=(0,o._)("i",{class:"icon fas fa-lightbulb"},null,-1),V=[H],Y=(0,o._)("i",{class:"icon far fa-image"},null,-1),F=[Y],X=(0,o._)("i",{class:"icon fas fa-video"},null,-1),K=[X],P={key:0,class:"view fade-in"},E=["onClick"],J={key:1,class:"view fade-in"},Q=["onClick"],ee={key:2,class:"view group-controls fade-in"},te={key:3,class:"view group-controls fade-in"};function ne(e,t,n,s,i,l){const a=(0,o.up)("ToggleSwitch"),r=(0,o.up)("Light"),c=(0,o.up)("Scene"),u=(0,o.up)("Controls"),g=(0,o.up)("Animate"),p=(0,o.up)("MenuPanel");return(0,o.wg)(),(0,o.iD)("div",T,[(0,o.Wm)(p,null,{default:(0,o.w5)((()=>[(0,o._)("div",U,[n.group?((0,o.wg)(),(0,o.iD)("div",A,[(0,o._)("button",{class:"back-btn",title:"Back",onClick:t[0]||(t[0]=(...e)=>l.close&&l.close(...e))},N)])):(0,o.kq)("",!0),(0,o._)("div",{class:(0,d.C_)(["col-6 name",{selected:"group"===i.selectedView}]),textContent:(0,d.zw)(l.groupName),onClick:t[1]||(t[1]=e=>i.selectedView="group"===i.selectedView?null:"group")},null,10,W),n.group?((0,o.wg)(),(0,o.iD)("div",R,[(0,o.Wm)(a,{value:n.group.state.any_on,onInput:t[2]||(t[2]=t=>e.$emit("group-toggle",n.group))},null,8,["value"])])):(0,o.kq)("",!0)]),n.lights&&Object.keys(n.lights).length?((0,o.wg)(),(0,o.iD)("div",q,[(0,o._)("div",z,[(0,o._)("button",{class:(0,d.C_)({selected:"lights"===i.selectedView}),title:"Lights",onClick:t[3]||(t[3]=e=>i.selectedView="lights")},V,2),(0,o._)("button",{class:(0,d.C_)({selected:"scenes"===i.selectedView}),title:"Scenes",onClick:t[4]||(t[4]=e=>i.selectedView="scenes")},F,2),(0,o._)("button",{class:(0,d.C_)({selected:"animate"===i.selectedView}),title:"Animate",onClick:t[5]||(t[5]=e=>i.selectedView="animate")},K,2)]),"lights"===i.selectedView?((0,o.wg)(),(0,o.iD)("div",P,[((0,o.wg)(),(0,o.j4)(o.Ob,null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(l.lightsSorted,((t,s)=>((0,o.wg)(),(0,o.iD)("div",{class:(0,d.C_)(["panel-row row",{expanded:t.id===i.selectedLight}]),key:s,onClick:e=>i.selectedLight=i.selectedLight===t.id?null:t.id},[(0,o.Wm)(r,{light:t,group:n.group,collapsed:t.id!==i.selectedLight,"color-converter":n.colorConverter,onToggle:n=>e.$emit("light-toggle",t),onSetLight:n=>e.$emit("set-light",{light:t,value:n})},null,8,["light","group","collapsed","color-converter","onToggle","onSetLight"])],10,E)))),128))],1024))])):"scenes"===i.selectedView?((0,o.wg)(),(0,o.iD)("div",J,[((0,o.wg)(),(0,o.j4)(o.Ob,null,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(l.scenesSorted,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:(0,d.C_)(["panel-row row",{selected:e.id===i.selectedScene}]),key:t,onClick:t=>l.onSceneSelected(e.id)},[(0,o.Wm)(c,{scene:e,group:n.group},null,8,["scene","group"])],10,Q)))),128))],1024))])):"group"===i.selectedView?((0,o.wg)(),(0,o.iD)("div",ee,[((0,o.wg)(),(0,o.j4)(o.Ob,null,[(0,o.Wm)(u,{group:n.group,lights:n.lights,"color-converter":n.colorConverter,onSetGroup:t[6]||(t[6]=t=>e.$emit("set-group",t))},null,8,["group","lights","color-converter"])],1024))])):"animate"===i.selectedView?((0,o.wg)(),(0,o.iD)("div",te,[((0,o.wg)(),(0,o.j4)(o.Ob,null,[(0,o.Wm)(g,{group:n.group,lights:n.lights,"color-converter":n.colorConverter,"running-animations":n.animations,onStart:t[7]||(t[7]=t=>e.$emit("start-animation",t)),onStop:t[8]||(t[8]=t=>e.$emit("stop-animation",t))},null,8,["group","lights","color-converter","running-animations"])],1024))])):(0,o.kq)("",!0)])):((0,o.wg)(),(0,o.iD)("div",Z," No lights found "))])),_:1})])}const oe={class:"row"},se={class:"toggle col-3 pull-right"},ie={key:0,class:"row fade-in"};function le(e,t,n,s,i,l){const a=(0,o.up)("ToggleSwitch"),r=(0,o.up)("Controls");return(0,o.wg)(),(0,o.iD)("div",{class:(0,d.C_)(["light",{expanded:!n.collapsed}]),ref:"element"},[(0,o._)("div",oe,[(0,o._)("span",{class:"name col-9",onClick:t[0]||(t[0]=(...e)=>l.expandToggle&&l.expandToggle(...e))},(0,d.zw)(n.light.name||`[Light ${n.light.id}]`),1),(0,o._)("span",se,[(0,o.Wm)(a,{value:n.light.state.on,disabled:n.loading,onInput:t[1]||(t[1]=t=>e.$emit("toggle",n.light))},null,8,["value","disabled"])])]),n.collapsed?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",ie,[(0,o.Wm)(r,{light:n.light,loading:n.loading,"color-converter":n.colorConverter,onSetLight:t[2]||(t[2]=t=>e.$emit("set-light",t))},null,8,["light","loading","color-converter"])]))],2)}var ae=n(9963);const re=e=>((0,o.dD)("data-v-e2726892"),e=e(),(0,o.Cn)(),e),ce={key:1,class:"row"},ue=re((()=>(0,o._)("div",{class:"col-1 icon"},[(0,o._)("i",{class:"fas fa-sun"})],-1))),ge={class:"col-11 control"},de={key:2,class:"row"},pe=re((()=>(0,o._)("div",{class:"col-1 icon"},[(0,o._)("i",{class:"fas fa-thermometer-half"})],-1))),he={class:"col-11 control"},me={key:3,class:"row"},ve=re((()=>(0,o._)("span",{class:"col-1 icon"},[(0,o._)("i",{class:"fas fa-palette"})],-1))),be={class:"col-11 control"},_e=["value"];function we(e,t,n,s,i,l){const a=(0,o.up)("Loading"),r=(0,o.up)("Slider");return(0,o.wg)(),(0,o.iD)("div",{class:"controls light-controls",onClick:t[3]||(t[3]=e=>e.stopPropagation())},[n.loading?((0,o.wg)(),(0,o.j4)(a,{key:0})):(0,o.kq)("",!0),null!=l.state.bri?((0,o.wg)(),(0,o.iD)("div",ce,[ue,(0,o._)("div",ge,[(0,o.Wm)(r,{range:n.colorConverter.ranges.bri,disabled:n.loading,value:l.state.bri,onMouseup:t[0]||(t[0]=(0,ae.iM)((t=>e.$emit(n.light?"set-light":"set-group",{brightness:parseInt(t.target.value)})),["stop"]))},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),null!=l.state.ct?((0,o.wg)(),(0,o.iD)("div",de,[pe,(0,o._)("div",he,[(0,o.Wm)(r,{range:n.colorConverter.ranges.ct,disabled:n.loading,value:l.state.ct,onMouseup:t[1]||(t[1]=(0,ae.iM)((t=>e.$emit(n.light?"set-light":"set-group",{temperature:parseInt(t.target.value)})),["stop"]))},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),l.rgbColor?((0,o.wg)(),(0,o.iD)("label",me,[ve,(0,o._)("span",be,[(0,o._)("input",{type:"color",value:l.rgbColor,onChange:t[2]||(t[2]=(0,ae.iM)(((...e)=>l.onColorSelect&&l.onColorSelect(...e)),["stop"]))},null,40,_e)])])):(0,o.kq)("",!0)])}var ye=n(8070),fe=n(1232),Ce={name:"Controls",components:{Loading:fe.Z,Slider:ye.Z},emits:["set-light","set-group"],props:{light:{type:Object},lights:{type:Object},group:{type:Object},loading:{type:Boolean,default:!1},colorConverter:{type:Object,default:()=>new D.N}},computed:{state(){if(this.light?.state)return this.light.state;const e=this.group?.state||{};if(!this.lights)return e;const t=e=>e&&e.length?e[0]instanceof Array?[...e[0].keys()].map((n=>t(e.map((e=>e[n]))))):e.reduce(((e,t)=>e+t),0)/e.length:0;return{...e,...Object.entries(Object.values(this.lights).reduce(((e,t)=>(["bri","hue","sat","rgb","xy","red","green","blue","ct"].forEach((n=>{null!=t.state?.[n]&&(e[n]=[...e[n]||[],t.state[n]])})),e)),{})).reduce(((e,[n,o])=>(e[n]=t(o),e)),{})}},color(){return this.getColor(this.state)},rgbColor(){const e=this.colorConverter.toRGB(this.state);return e?"#"+e.map((e=>{let t=e.toString(16);return t.length<2&&(t="0"+t),t})).join(""):null}},methods:{onColorSelect(e){const t=e.target.value.slice(1).split(/(?=(?:..)*$)/).map((e=>parseInt(`0x${e}`)));this.$emit(this.light?"set-light":"set-group",{rgb:t,xy:this.colorConverter.rgbToXY(...t),hsl:this.colorConverter.rgbToHsl(...t),brightness:this.colorConverter.rgbToBri(...t)})},getColor(e){return{rgb:this.colorConverter.toRGB(e),xy:this.colorConverter.toXY(e),hsl:this.colorConverter.toHSL(e)}}}};const ke=(0,O.Z)(Ce,[["render",we],["__scopeId","data-v-e2726892"]]);var Se=ke,je={name:"Light",components:{Controls:Se,ToggleSwitch:$.Z},emits:["toggle","set-light","collapsed","expanded"],props:{light:{type:Object,default:()=>{}},group:{type:Object,default:()=>{}},loading:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!0},colorConverter:{type:Object,default:()=>new D.N}},methods:{expandToggle(){this.$emit(this.collapsed?"expanded":"collapsed")}}};const Oe=(0,O.Z)(je,[["render",le],["__scopeId","data-v-52168252"]]);var Me=Oe;function Le(e,t,n,s,i,l){const a=(0,o.up)("Loading");return(0,o.wg)(),(0,o.iD)(o.HY,null,[n.loading?((0,o.wg)(),(0,o.j4)(a,{key:0})):(0,o.kq)("",!0),(0,o._)("div",{class:"scene row name",onClick:t[0]||(t[0]=(...e)=>l.onSelect&&l.onSelect(...e))},(0,d.zw)(n.scene.name||`[Scene ${n.scene.id}]`),1)],64)}var $e={name:"Light",emits:["select"],props:{scene:{type:Object,default:()=>{}},group:{type:Object,default:()=>{}},loading:{type:Boolean,default:!1}},methods:{onSelect(){if(this.loading)return!1;this.$emit("select")}}};const De=(0,O.Z)($e,[["render",Le]]);var Ge=De;const xe=e=>((0,o.dD)("data-v-1739aaba"),e=e(),(0,o.Cn)(),e),Ie={class:"animation-container"},Te={class:"animation-header"},Ue={class:"row"},Ae=xe((()=>(0,o._)("div",{class:"col-3"}," Run Animation ",-1))),Be={class:"col-9"},Ne={class:"row"},We=xe((()=>(0,o._)("div",{class:"col-3"},"Animation",-1))),Re={class:"col-9"},Ze=xe((()=>(0,o._)("option",{value:"color_transition"},"Color transition",-1))),qe=xe((()=>(0,o._)("option",{value:"blink"},"Blink",-1))),ze=[Ze,qe],He={class:"animation"},Ve={key:0,class:"row"},Ye=xe((()=>(0,o._)("div",{class:"col-3"}," Hue range ",-1))),Fe={class:"col-9"},Xe={key:1,class:"row"},Ke=xe((()=>(0,o._)("div",{class:"col-3"}," Sat range ",-1))),Pe={class:"col-9"},Ee={key:2,class:"row"},Je=xe((()=>(0,o._)("div",{class:"col-3"}," Bri range ",-1))),Qe={class:"col-9"},et={key:3,class:"row"},tt=xe((()=>(0,o._)("div",{class:"col-3"}," Hue step ",-1))),nt={class:"col-9"},ot={key:4,class:"row"},st=xe((()=>(0,o._)("div",{class:"col-3"}," Sat step ",-1))),it={class:"col-9"},lt={key:5,class:"row"},at=xe((()=>(0,o._)("div",{class:"col-3"}," Bri step ",-1))),rt={class:"col-9"},ct={class:"row"},ut=xe((()=>(0,o._)("div",{class:"col-3"}," Refresh seconds ",-1))),gt={class:"col-9"},dt=["value"],pt={class:"row"},ht=xe((()=>(0,o._)("div",{class:"col-3"}," Duration (seconds) ",-1))),mt={class:"col-9"},vt=["value"],bt={class:"lights"},_t={class:"row"},wt=["checked"],yt=(0,o.Uk)(" Select all lights "),ft=["onUpdate:modelValue","onInput"];function Ct(e,t,n,s,i,l){const a=(0,o.up)("Loading"),r=(0,o.up)("ToggleSwitch"),c=(0,o.up)("RangeSlider"),u=(0,o.up)("Slider");return(0,o.wg)(),(0,o.iD)("div",{class:"controls animation-controls",onClick:t[10]||(t[10]=e=>e.stopPropagation())},[n.loading?((0,o.wg)(),(0,o.j4)(a,{key:0})):(0,o.kq)("",!0),(0,o._)("div",Ie,[(0,o._)("div",Te,[(0,o._)("div",Ue,[Ae,(0,o._)("div",Be,[(0,o.Wm)(r,{value:l.animationRunning,onInput:l.toggleAnimation},null,8,["value","onInput"])])]),(0,o._)("div",Ne,[We,(0,o._)("div",Re,[(0,o._)("label",null,[(0,o._)("select",{class:"selector",onClick:t[0]||(t[0]=e=>i.selectedAnimation=e.target.value)},ze)])])])]),(0,o._)("div",He,["color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",Ve,[Ye,(0,o._)("div",Fe,[(0,o.Wm)(c,{range:n.colorConverter.ranges.hue,disabled:n.loading,value:i.animations.color_transition.hue_range,onMouseup:t[1]||(t[1]=e=>i.animations.color_transition.hue_range=e.target.value)},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),"color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",Xe,[Ke,(0,o._)("div",Pe,[(0,o.Wm)(c,{range:n.colorConverter.ranges.sat,disabled:n.loading,value:i.animations.color_transition.sat_range,onMouseup:t[2]||(t[2]=e=>i.animations.color_transition.sat_range=e.target.value)},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),"color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",Ee,[Je,(0,o._)("div",Qe,[(0,o.Wm)(c,{range:n.colorConverter.ranges.sat,disabled:n.loading,value:i.animations.color_transition.bri_range,onMouseup:t[3]||(t[3]=e=>i.animations.color_transition.bri_range=e.target.value)},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),"color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",et,[tt,(0,o._)("div",nt,[(0,o.Wm)(u,{range:n.colorConverter.ranges.hue,disabled:n.loading,value:i.animations.color_transition.hue_step,onMouseup:t[4]||(t[4]=e=>i.animations.color_transition.hue_step=parseFloat(e.target.value))},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),"color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",ot,[st,(0,o._)("div",it,[(0,o.Wm)(u,{range:n.colorConverter.ranges.sat,disabled:n.loading,value:i.animations.color_transition.sat_step,onMouseup:t[5]||(t[5]=e=>i.animations.color_transition.sat_step=parseFloat(e.target.value))},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),"color_transition"===i.selectedAnimation?((0,o.wg)(),(0,o.iD)("div",lt,[at,(0,o._)("div",rt,[(0,o.Wm)(u,{range:n.colorConverter.ranges.bri,disabled:n.loading,value:i.animations.color_transition.bri_step,onMouseup:t[6]||(t[6]=e=>i.animations.color_transition.bri_step=parseFloat(e.target.value))},null,8,["range","disabled","value"])])])):(0,o.kq)("",!0),(0,o._)("div",ct,[ut,(0,o._)("div",gt,[(0,o._)("label",null,[(0,o._)("input",{type:"number",value:i.animations[i.selectedAnimation].transition_seconds,step:"0.1",onInput:t[7]||(t[7]=e=>i.animations[i.selectedAnimation].transition_seconds=parseFloat(e.target.value))},null,40,dt)])])]),(0,o._)("div",pt,[ht,(0,o._)("div",mt,[(0,o._)("label",null,[(0,o._)("input",{type:"number",value:i.animations[i.selectedAnimation].duration,step:"5",onInput:t[8]||(t[8]=e=>i.animations[i.selectedAnimation].duration=e.target.value?.length?parseFloat(e.target.value):null)},null,40,vt)])])])])]),(0,o._)("div",bt,[(0,o._)("div",_t,[(0,o._)("label",null,[(0,o._)("input",{type:"checkbox",checked:Object.keys(n.lights).length===Object.values(i.selectedLights).filter((e=>e)).length,onClick:t[9]||(t[9]=(...e)=>l.toggleSelectAll&&l.toggleSelectAll(...e))},null,8,wt),yt])]),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.lights,((e,t)=>((0,o.wg)(),(0,o.iD)("div",{class:"row",key:t},[(0,o._)("label",null,[(0,o.wy)((0,o._)("input",{type:"checkbox","onUpdate:modelValue":e=>i.selectedLights[t]=e,onInput:e=>i.selectedLights[t]=!i.selectedLights[t]},null,40,ft),[[ae.e8,i.selectedLights[t]]]),(0,o.Uk)(" "+(0,d.zw)(e.name),1)])])))),128))])])}const kt={class:"range-wrapper"},St=["value","min","max","step","disabled"];function jt(e,t,n,s,i,l){return(0,o.wg)(),(0,o.iD)("div",kt,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.value,((e,s)=>((0,o.wg)(),(0,o.iD)("input",{class:"slider",type:"range",value:e,min:n.range[0],max:n.range[1],step:n.step,disabled:n.disabled,ref_for:!0,ref:"ranges",onInput:t[0]||(t[0]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onMouseup:t[2]||(t[2]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onMousedown:t[3]||(t[3]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onTouchstart:t[4]||(t[4]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onTouchend:t[5]||(t[5]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onKeyup:t[6]||(t[6]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),onKeydown:t[7]||(t[7]=(0,ae.iM)(((...e)=>l.onUpdate&&l.onUpdate(...e)),["stop"])),key:s},null,40,St)))),128))])}var Ot={name:"RangeSlider",emits:["input","change","mouseup","mousedown","touchstart","touchend","keyup","keydown"],props:{disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},value:{type:Array,default:()=>[0,100]}},methods:{onUpdate(e){this.$emit(e.type,{...e,target:{...e.target,value:this.$refs.ranges.map((e=>parseFloat(e.value))).sort()}})}}};const Mt=(0,O.Z)(Ot,[["render",jt],["__scopeId","data-v-981c5de0"]]);var Lt=Mt,$t={name:"Animate",mixins:[r.Z],components:{ToggleSwitch:$.Z,Slider:ye.Z,RangeSlider:Lt,Loading:fe.Z},emits:["start","stop"],props:{lights:{type:Object},group:{type:Object},loading:{type:Boolean,default:!1},colorConverter:{type:Object,default:()=>new D.N},runningAnimations:{type:Object,default:()=>{}}},data(){return{selectedAnimation:"color_transition",animation:{},selectedLights:Object.keys(this.lights).reduce(((e,t)=>(e[t]=!0,e)),{}),animations:{color_transition:{hue_range:this.colorConverter.ranges.hue,sat_range:[parseInt((this.colorConverter.ranges.sat[1]-this.colorConverter.ranges.sat[0])/2),this.colorConverter.ranges.sat[1]],bri_range:[parseInt(.75*(this.colorConverter.ranges.bri[1]-this.colorConverter.ranges.bri[0])),this.colorConverter.ranges.bri[1]],hue_step:parseInt((this.colorConverter.ranges.hue[1]-this.colorConverter.ranges.hue[0])/25),sat_step:parseInt((this.colorConverter.ranges.sat[1]-this.colorConverter.ranges.sat[0])/50),bri_step:parseInt((this.colorConverter.ranges.bri[1]-this.colorConverter.ranges.bri[0])/50),transition_seconds:1,duration:null},blink:{transition_seconds:1,duration:null}}}},computed:{animationRunning(){return Object.keys(this.runningAnimations).length>0}},methods:{toggleSelectAll(){const e=Object.values(this.selectedLights).filter((e=>e)).length{this.selectedLights[t]=e}))},toggleAnimation(){const e=this.animationRunning?"stop":"start",t=Object.entries(this.selectedLights).filter((e=>e[1])).map((e=>e[0]));t.length?this.$emit(e,{lights:t,animation:{...this.animations[this.selectedAnimation],animation:this.selectedAnimation}}):this.warn("No lights have been selected")}}};const Dt=(0,O.Z)($t,[["render",Ct],["__scopeId","data-v-1739aaba"]]);var Gt=Dt,xt={name:"Group",emits:["close","group-toggle","light-toggle","set-light","select-scene","start-animation","stop-animation"],components:{Animate:Gt,ToggleSwitch:$.Z,MenuPanel:L,Light:Me,Scene:Ge,Controls:Se},props:{lights:{type:Object},group:{type:Object},scenes:{type:Object},animations:{type:Object,default:()=>{}},colorConverter:{type:Object,default:()=>new D.N}},data(){return{selectedLight:null,selectedScene:null,selectedView:"lights"}},computed:{lightsSorted(){return this.lights?Object.entries(this.lights).sort(((e,t)=>e[1].name.localeCompare(t[1].name))).map((([e,t])=>({...t,id:e}))):[]},scenesSorted(){return this.scenes?Object.entries(this.scenes).sort(((e,t)=>e[1].name.localeCompare(t[1].name))).map((([e,t])=>({...t,id:e}))):[]},groupName(){return this.group?.name?this.group.name:null!=this.group?.id?`[Group ${this.group.id}]`:"Lights"}},methods:{close(e){e.stopPropagation(),this.$emit("close")},onSceneSelected(e){this.selectedScene=e,this.$emit("select-scene",e)}}};const It=(0,O.Z)(xt,[["render",ne]]);var Tt=It,Ut={name:"Light",components:{Group:Tt,Groups:I},mixins:[r.Z,g],emits:["group-toggle","light-toggle","set-light","set-group","select-scene","start-animation","stop-animation","refresh","light-changed"],props:{lights:{type:Object},groups:{type:Object},scenes:{type:Object},animations:{type:Object},colorConverter:{type:Object,default:()=>new D.N},loadingLights:{type:Object,default:()=>{}},loadingGroups:{type:Object,default:()=>{}},pluginName:{type:String},initialGroup:{type:[Number,String]}},data(){return{selectedGroup:null,initialized:!1}},computed:{displayedLights(){const e=this.selectedGroup||this.initialGroup;return null==e?this.lights:this.groups[e].lights.reduce(((e,t)=>(e[t]=this.lights[t],e)),{})},groupsByLight(){return this.groups?Object.entries(this.groups).reduce(((e,[t,n])=>(n.lights.forEach((o=>{e[o]||(e[o]={}),e[o][t]=n})),e)),{}):{}},scenesByGroup(){if(!this.scenes)return{};const e=this;return Object.entries(this.scenes).reduce(((t,[n,o])=>(o.lights.forEach((s=>{Object.keys(e.groupsByLight[s]).forEach((e=>{t[e]||(t[e]={}),t[e][n]=o}))})),t)),{})},animationsByGroup(){const e=this,t=Object.entries(this.animations?.groups||{}).reduce(((e,[t,n])=>(e[t]={},n&&(e[t][null]=n),e)),{});return{...t,...Object.entries(this.animations?.lights||{}).reduce(((t,[n,o])=>{const s=Object.values(e.groupsByLight[n])?.[0];return s&&o&&null!=s.id&&(t[s.id]||(t[s.id]={}),t[s.id][n]=o),t}),{})}}},methods:{initSelectedGroup(){const e=this,t=this.$watch((()=>e.initialGroup),(n=>{e.initialized||(e.initialized=!0,t(),null==e.selectedGroup&&null!=n&&(e.selectedGroup=e.initialGroup))}))},refresh(){this.$emit("refresh")},onLightChange(e){if(e.plugin_name!==this.pluginName)return;if(!this.lights[e.light_id])return void this.refresh();const t={...e},n=t.light_id;delete t.light_id,delete t.type,delete t.plugin_name,this.$emit("light-changed",{id:n,state:t})},onAnimationChange(e){e.plugin_name===this.pluginName&&this.refresh()}},mounted(){this.subscribe(this.onLightChange,"on-light-change","platypush.message.event.light.LightStatusChangeEvent"),this.subscribe(this.onAnimationChange,"on-animation-change","platypush.message.event.light.LightAnimationStartedEvent","platypush.message.event.light.LightAnimationStoppedEvent"),this.initSelectedGroup()},unmounted(){this.unsubscribe("on-light-change"),this.unsubscribe("on-animation-change")}};const At=(0,O.Z)(Ut,[["render",a],["__scopeId","data-v-781dd72c"]]);var Bt=At}}]);
-//# sourceMappingURL=747.0ee05dee.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js.map b/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js.map
deleted file mode 100644
index f144ee50f..000000000
--- a/platypush/backend/http/webapp/dist/static/js/747.0ee05dee.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/747.0ee05dee.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Light/color.js","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f","webpack://platypush/./src/components/elements/ToggleSwitch.vue","webpack://platypush/./src/components/elements/ToggleSwitch.vue?94aa","webpack://platypush/./src/components/panels/Light/Index.vue","webpack://platypush/./src/components/panels/Panel.vue","webpack://platypush/./src/components/panels/Panel.vue?40a7","webpack://platypush/./src/components/Light/Groups.vue","webpack://platypush/./src/components/MenuPanel.vue","webpack://platypush/./src/components/MenuPanel.vue?e8bb","webpack://platypush/./src/components/Light/Groups.vue?f495","webpack://platypush/./src/components/Light/Group.vue","webpack://platypush/./src/components/Light/Light.vue","webpack://platypush/./src/components/Light/Controls.vue","webpack://platypush/./src/components/Light/Controls.vue?5766","webpack://platypush/./src/components/Light/Light.vue?eed6","webpack://platypush/./src/components/Light/Scene.vue","webpack://platypush/./src/components/Light/Scene.vue?87a4","webpack://platypush/./src/components/Light/Animate.vue","webpack://platypush/./src/components/elements/RangeSlider.vue","webpack://platypush/./src/components/elements/RangeSlider.vue?500a","webpack://platypush/./src/components/Light/Animate.vue?a3c2","webpack://platypush/./src/components/Light/Group.vue?06ce","webpack://platypush/./src/components/panels/Light/Index.vue?36e9"],"sourcesContent":["export class ColorConverter {\n constructor(ranges) {\n this.ranges = {\n hue: [0, 360],\n sat: [0, 100],\n bri: [0, 100],\n ct: [154, 500],\n }\n\n if (ranges)\n for (const attr of Object.keys(this.ranges))\n if (ranges[attr])\n this.ranges[attr] = ranges[attr]\n }\n\n normalize(x, xRange, yRange) {\n return yRange[0] + (((x-xRange[0]) * (yRange[1]-yRange[0])) / (xRange[1]-xRange[0]))\n }\n\n hslToRgb(h, s, l) {\n [h, s, l] = [\n this.normalize(h, this.ranges.hue, [0, 360]),\n this.normalize(s, this.ranges.sat, [0, 100]),\n this.normalize(l, this.ranges.bri, [0, 100]),\n ]\n\n l /= 100\n const a = s * Math.min(l, 1 - l) / 100\n const f = n => {\n const k = (n + h / 30) % 12\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return Math.round(255 * color)\n }\n\n return [f(0), f(8), f(4)]\n }\n\n rgbToHsl(r, g, b){\n r /= 255\n g /= 255\n b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if(max === min){\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch(max){\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return [\n parseInt(this.normalize(h, [0, 1], this.ranges.hue)),\n parseInt(this.normalize(s, [0, 1], this.ranges.sat)),\n parseInt(this.normalize(l, [0, 1], this.ranges.bri)),\n ]\n }\n\n xyToRgb(x, y, brightness) {\n // Set to maximum brightness if no custom value was given (Not the slick ECMAScript 6 way for compatibility reasons)\n if (brightness == null)\n brightness = this.ranges.bri[1];\n\n const z = 1.0 - x - y;\n const Y = (brightness / (this.ranges.bri[1]-1)).toFixed(2);\n const X = (Y / y) * x;\n const Z = (Y / y) * z;\n\n //Convert to RGB using Wide RGB D65 conversion\n let red \t= X * 1.656492 - Y * 0.354851 - Z * 0.255038;\n let green = -X * 0.707196 + Y * 1.655397 + Z * 0.036152;\n let blue \t= X * 0.051713 - Y * 0.121364 + Z * 1.011530;\n\n //If red, green or blue is larger than 1.0 set it back to the maximum of 1.0\n if (red > blue && red > green && red > 1.0) {\n green = green / red;\n blue = blue / red;\n red = 1.0;\n } else if (green > blue && green > red && green > 1.0) {\n red = red / green;\n blue = blue / green;\n green = 1.0;\n } else if (blue > red && blue > green && blue > 1.0) {\n red = red / blue;\n green = green / blue;\n blue = 1.0;\n }\n\n //Reverse gamma correction\n red \t= red <= 0.0031308 ? 12.92 * red : (1.0 + 0.055) * Math.pow(red, (1.0 / 2.4)) - 0.055;\n green \t= green <= 0.0031308 ? 12.92 * green : (1.0 + 0.055) * Math.pow(green, (1.0 / 2.4)) - 0.055;\n blue \t= blue <= 0.0031308 ? 12.92 * blue : (1.0 + 0.055) * Math.pow(blue, (1.0 / 2.4)) - 0.055;\n\n //Convert normalized decimal to decimal\n red \t= Math.round(red * 255);\n green \t= Math.round(green * 255);\n blue \t= Math.round(blue * 255);\n\n if (isNaN(red))\n red = 0;\n if (isNaN(green))\n green = 0;\n if (isNaN(blue))\n blue = 0;\n\n return [red, green, blue].map(\n (c) => Math.min(Math.max(0, c), 255)) // lgtm [js/automatic-semicolon-insertion]\n }\n\n rgbToXY(red, green, blue) {\n if (red > 1) { red /= 255; }\n if (green > 1) { green /= 255; }\n if (blue > 1) { blue /= 255; }\n\n //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device\n red \t= (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);\n green \t= (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);\n blue \t= (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);\n\n //RGB values to XYZ using the Wide RGB D65 conversion formula\n const X \t\t= red * 0.664511 + green * 0.154324 + blue * 0.162028;\n const Y \t\t= red * 0.283881 + green * 0.668433 + blue * 0.047685;\n const Z \t\t= red * 0.000088 + green * 0.072310 + blue * 0.986039;\n\n //Calculate the xy values from the XYZ values\n let x \t\t= parseFloat((X / (X + Y + Z)).toFixed(4));\n let y \t\t= parseFloat((Y / (X + Y + Z)).toFixed(4));\n\n if (isNaN(x))\n x = 0;\n if (isNaN(y))\n y = 0;\n\n return [x, y];\n }\n\n rgbToBri(red, green, blue) {\n return Math.min(2 * this.rgbToHsl(red, green, blue)[2], this.ranges.bri[1])\n }\n\n getRGB(color) {\n if (color.red != null && color.green != null && color.blue != null)\n return [color.red, color.green, color.blue]\n if (color.r != null && color.g != null && color.b != null)\n return [color.r, color.g, color.b]\n if (color.rgb)\n return color.rgb\n }\n\n getXY(color) {\n if (color.x != null && color.y != null)\n return [color.x, color.y]\n if (color.xy)\n return color.xy\n }\n\n toRGB(color) {\n const rgb = this.getRGB(color)\n if (rgb)\n return rgb\n\n const xy = this.getXY(color)\n if (xy && color.bri)\n return this.xyToRgb(...xy, color.bri)\n if (color.hue && color.sat && color.bri)\n return this.hslToRgb(color.hue, color.sat, color.bri)\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toXY(color) {\n const xy = this.getXY(color)\n if (xy && color.bri)\n return [xy[0], xy[1], color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToXY(...rgb)\n\n if (color.hue && color.sat && color.bri) {\n const rgb = this.hslToRgb(color.hue, color.sat, color.bri)\n return this.rgbToXY(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toHSL(color) {\n if (color.hue && color.sat && color.bri)\n return [color.hue, color.sat, color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToHsl(...rgb)\n\n const xy = this.getXY(color)\n if (xy && color.bri) {\n const rgb = this.xyToRgb(...xy, color.bri)\n return this.rgbToHsl(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n hexToRgb(hex) {\n return [\n hex.slice(1, 3),\n hex.slice(3, 5),\n hex.slice(5, 7),\n ].map(_ => parseInt(_, 16))\n }\n\n rgbToHex(rgb) {\n return '#' + rgb.map((x) => {\n let hex = x.toString(16)\n if (hex.length < 2)\n hex = '0' + hex\n return hex\n }).join('')\n }\n}\n","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=0359812c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=0359812c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0359812c\"]])\n\nexport default __exports__","\n
\n \n \n \n
\n\n\n\n\n\n","import { render } from \"./ToggleSwitch.vue?vue&type=template&id=a6396ae8&scoped=true\"\nimport script from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleSwitch.vue?vue&type=script&lang=js\"\n\nimport \"./ToggleSwitch.vue?vue&type=style&index=0&id=a6396ae8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-a6396ae8\"]])\n\nexport default __exports__","\n
\n
\n \n
\n
\n \n
\n
\n\n\n\n\n\n\n","\n","import script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n \n
\n\n\n\n\n\n","import { render } from \"./Entity.vue?vue&type=template&id=3c242632&scoped=true\"\nimport script from \"./Entity.vue?vue&type=script&lang=js\"\nexport * from \"./Entity.vue?vue&type=script&lang=js\"\n\nimport \"./Entity.vue?vue&type=style&index=0&id=3c242632&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c242632\"]])\n\nexport default __exports__","\n","import script from \"./EntityMixin.vue?vue&type=script&lang=js\"\nexport * from \"./EntityMixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n \n\n \n
\n \n
\n\n
\n \n
\n \n\n
\n \n\n No entities found\n\n
\n
\n
\n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n","\n
\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./NoItems.vue?vue&type=template&id=6fec32b5&scoped=true\"\nimport script from \"./NoItems.vue?vue&type=script&lang=js\"\nexport * from \"./NoItems.vue?vue&type=script&lang=js\"\n\nimport \"./NoItems.vue?vue&type=style&index=0&id=6fec32b5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6fec32b5\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=fef021ee&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=fef021ee&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fef021ee\"]])\n\nexport default __exports__","\n \n \n Are you sure that you want to delete this entity?
\n Note: you should only delete an entity if its plugin has been disabled\n or the entity is no longer reachable.
\n Otherwise, the entity will simply be created again upon the next scan.\n \n\n
\n\n \n \n\n\n\n\n\n","import { render } from \"./ConfirmDialog.vue?vue&type=template&id=d543b3e4&scoped=true\"\nimport script from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ConfirmDialog.vue?vue&type=style&index=0&id=d543b3e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d543b3e4\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./EditButton.vue?vue&type=template&id=3344f2bf&scoped=true\"\nimport script from \"./EditButton.vue?vue&type=script&lang=js\"\nexport * from \"./EditButton.vue?vue&type=script&lang=js\"\n\nimport \"./EditButton.vue?vue&type=style&index=0&id=3344f2bf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3344f2bf\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./NameEditor.vue?vue&type=template&id=1405d90f&scoped=true\"\nimport script from \"./NameEditor.vue?vue&type=script&lang=js\"\nexport * from \"./NameEditor.vue?vue&type=script&lang=js\"\n\nimport \"./NameEditor.vue?vue&type=style&index=0&id=1405d90f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1405d90f\"]])\n\nexport default __exports__","import { render } from \"./Modal.vue?vue&type=template&id=628ff73f&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=628ff73f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-628ff73f\"]])\n\nexport default __exports__","\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Selector.vue?vue&type=template&id=63b80935&scoped=true\"\nimport script from \"./Selector.vue?vue&type=script&lang=js\"\nexport * from \"./Selector.vue?vue&type=script&lang=js\"\n\nimport \"./Selector.vue?vue&type=style&index=0&id=63b80935&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-63b80935\"]])\n\nexport default __exports__","var map = {\n\t\"./Entity\": [\n\t\t9892,\n\t\t9\n\t],\n\t\"./Entity.vue\": [\n\t\t9892,\n\t\t9\n\t],\n\t\"./EntityIcon\": [\n\t\t3499,\n\t\t9,\n\t\t8729,\n\t\t3499\n\t],\n\t\"./EntityIcon.vue\": [\n\t\t3499,\n\t\t9,\n\t\t8729,\n\t\t3499\n\t],\n\t\"./EntityMixin\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./EntityMixin.vue\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./Index\": [\n\t\t914,\n\t\t9\n\t],\n\t\"./Index.vue\": [\n\t\t914,\n\t\t9\n\t],\n\t\"./Light\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t2107,\n\t\t8729,\n\t\t1155\n\t],\n\t\"./Light.vue\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t2107,\n\t\t8729,\n\t\t1155\n\t],\n\t\"./Modal\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./Modal.vue\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./Selector\": [\n\t\t6647,\n\t\t9\n\t],\n\t\"./Selector.vue\": [\n\t\t6647,\n\t\t9\n\t],\n\t\"./Switch\": [\n\t\t518,\n\t\t9,\n\t\t3490,\n\t\t8729,\n\t\t518\n\t],\n\t\"./Switch.vue\": [\n\t\t518,\n\t\t9,\n\t\t3490,\n\t\t8729,\n\t\t518\n\t],\n\t\"./common.scss\": [\n\t\t65,\n\t\t9,\n\t\t4981,\n\t\t65\n\t],\n\t\"./meta\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./meta.json\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./vars.scss\": [\n\t\t5207,\n\t\t9,\n\t\t4981,\n\t\t5207\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 7243;\nmodule.exports = webpackAsyncContext;"],"names":["wellKnownSymbol","MATCH","module","exports","METHOD_NAME","regexp","error1","error2","isRegExp","$TypeError","TypeError","it","$","uncurryThis","getOwnPropertyDescriptor","toLength","toString","notARegExp","requireObjectCoercible","correctIsRegExpLogic","IS_PURE","un$StartsWith","startsWith","stringSlice","slice","min","Math","CORRECT_IS_REGEXP_LOGIC","MDN_POLYFILL_BUG","descriptor","String","prototype","writable","target","proto","forced","searchString","that","this","index","arguments","length","undefined","search","class","component","value","loading","error","reachable","$emit","$event","name","mixins","EntityMixin","emits","data","mounted","type","__exports__","render","Utils","props","Boolean","default","Object","required","modalVisible","computed","entityType","charAt","toUpperCase","entityGroups","selector","title","refresh","modalEntityId","entity","entities","visible","onEntityModal","keys","displayGroups","group","key","grouping","entitiesMeta","icon","pluginIcons","url","imgUrl","name_plural","id","onEntityInput","errorEntities","loadingEntities","components","Loading","Icon","Entity","Selector","NoItems","EntityModal","entityScanTimeout","Number","entityTimeouts","selectedEntities","meta","icons","entries","groupEntities","reduce","obj","filter","entry","e","sort","a","b","localeCompare","map","methods","attr","values","args","plugins","plugin","self","clearTimeout","setTimeout","notify","text","request","sync","name_override","clearEntityTimeouts","entityId","onEntityUpdate","event","state","onEntityDelete","subscribe","href","external_id","ref","onDelete","editName","onRename","disabled","editIcon","onIconEdit","color","onIconColorEdit","description","created_at","updated_at","$refs","deleteConfirmDiag","show","onConfirm","confirmText","close","cancelText","Modal","modal","hide","proxy","submit","deafult","EditButton","NameEditor","ConfirmDialog","newName","req","newIcon","visibleGroupings","g","prettifyGroupingName","onGroupingChanged","isGroupFilterActive","sortedGroups","iconForGroup","selectedGroups","toggleGroup","placeholder","searchTerm","Dropdown","DropdownItem","typesMeta","toLowerCase","indexOf","prettify","synchronizeSelectedEntities","updateSearchTerm","refreshGroupFilter","reset","$watch","webpackAsyncContext","__webpack_require__","o","Promise","resolve","then","Error","code","ids","all","t"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js b/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js
deleted file mode 100644
index 2b3fb4274..000000000
--- a/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[9892],{9892:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return c}});var n=i(6252);const s={class:"row item entity-container"};function l(t,e,i,l,o,a){return(0,n.wg)(),(0,n.iD)("div",s,[((0,n.wg)(),(0,n.j4)((0,n.LL)(o.component),{value:t.value,loading:t.loading,error:t.error||0==t.value?.reachable,onInput:e[0]||(e[0]=e=>t.$emit("input",e)),onLoading:e[1]||(e[1]=e=>t.$emit("loading",e))},null,8,["value","loading","error"]))])}var o=i(7909),a={name:"Entity",mixins:[o["default"]],emits:["input","loading"],data(){return{component:null}},mounted(){"Entity"!==this.type&&(this.component=(0,n.RC)((()=>i(7243)(`./${this.type}`))))}},r=i(3744);const u=(0,r.Z)(a,[["render",l],["__scopeId","data-v-3c242632"]]);var c=u},7909:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return o}});var n=i(6813),s={name:"EntityMixin",mixins:[n.Z],emits:["input"],props:{loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},value:{type:Object,required:!0}},data(){return{modalVisible:!1}},computed:{type(){let t=this.value.type||"";return t.charAt(0).toUpperCase()+t.slice(1)}}};const l=s;var o=l},914:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return V}});var n=i(6252),s=i(3577);const l=t=>((0,n.dD)("data-v-fef021ee"),t=t(),(0,n.Cn)(),t),o={class:"row plugin entities-container"},a={class:"col-11 left"},r={class:"col-1 right"},u=l((()=>(0,n._)("i",{class:"fa fa-sync-alt"},null,-1))),c=[u],d={class:"groups-canvas"},p=(0,n.Uk)("No entities found"),h={key:2,class:"groups-container"},m={class:"frame"},y={class:"header"},g={class:"section left"},f={class:"section center"},v=["textContent"],_=["textContent"],w={class:"section right"},b=["onClick"],k=l((()=>(0,n._)("i",{class:"fa fa-sync-alt"},null,-1))),E=[k],C={class:"body"},I=["onClick"];function x(t,e,i,l,u,k){const x=(0,n.up)("Loading"),D=(0,n.up)("Selector"),G=(0,n.up)("EntityModal"),T=(0,n.up)("NoItems"),j=(0,n.up)("Icon"),O=(0,n.up)("Entity");return(0,n.wg)(),(0,n.iD)("div",o,[u.loading?((0,n.wg)(),(0,n.j4)(x,{key:0})):(0,n.kq)("",!0),(0,n._)("header",null,[(0,n._)("div",a,[(0,n.Wm)(D,{"entity-groups":k.entityGroups,value:u.selector,onInput:e[0]||(e[0]=t=>u.selector=t)},null,8,["entity-groups","value"])]),(0,n._)("div",r,[(0,n._)("button",{title:"Refresh",onClick:e[1]||(e[1]=t=>k.refresh(null))},c)])]),(0,n._)("div",d,[u.modalEntityId?((0,n.wg)(),(0,n.j4)(G,{key:0,entity:u.entities[u.modalEntityId],visible:u.modalVisible,onClose:e[2]||(e[2]=t=>k.onEntityModal(null))},null,8,["entity","visible"])):(0,n.kq)("",!0),Object.keys(k.displayGroups||{})?.length?((0,n.wg)(),(0,n.iD)("div",h,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(k.displayGroups,(t=>((0,n.wg)(),(0,n.iD)("div",{class:"group fade-in",key:t.name},[(0,n._)("div",m,[(0,n._)("div",y,[(0,n._)("span",g,["type"===u.selector.grouping&&k.entitiesMeta[t.name]?((0,n.wg)(),(0,n.j4)(j,(0,s.vs)((0,n.dG)({key:0},k.entitiesMeta[t.name].icon||{})),null,16)):"plugin"===u.selector.grouping&&k.pluginIcons[t.name]?((0,n.wg)(),(0,n.j4)(j,{key:1,class:(0,s.C_)(k.pluginIcons[t.name]?.class),url:k.pluginIcons[t.name]?.imgUrl},null,8,["class","url"])):(0,n.kq)("",!0)]),(0,n._)("span",f,["type"===u.selector.grouping&&k.entitiesMeta[t.name]?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"title",textContent:(0,s.zw)(k.entitiesMeta[t.name].name_plural)},null,8,v)):"plugin"===u.selector.grouping?((0,n.wg)(),(0,n.iD)("div",{key:1,class:"title",textContent:(0,s.zw)(t.name)},null,8,_)):(0,n.kq)("",!0)]),(0,n._)("span",w,[(0,n._)("button",{title:"Refresh",onClick:e=>k.refresh(t)},E,8,b)])]),(0,n._)("div",C,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(t.entities,(t=>((0,n.wg)(),(0,n.iD)("div",{class:"entity-frame",onClick:e=>k.onEntityModal(t.id),key:t.id},[(0,n.Wm)(O,{value:t,onInput:k.onEntityInput,error:!!u.errorEntities[t.id],loading:!!u.loadingEntities[t.id],onLoading:e=>u.loadingEntities[t.id]=e},null,8,["value","onInput","error","loading","onLoading"])],8,I)))),128))])])])))),128))])):((0,n.wg)(),(0,n.j4)(T,{key:1},{default:(0,n.w5)((()=>[p])),_:1}))])])}var D=i(6813),G=i(1232),T=i(1478);const j={class:"no-items-container"},O={class:"no-items fade-in"};function S(t,e,i,s,l,o){return(0,n.wg)(),(0,n.iD)("div",j,[(0,n._)("div",O,[(0,n.WI)(t.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},M=i(3744);const U=(0,M.Z)(q,[["render",S],["__scopeId","data-v-6fec32b5"]]);var $=U,N=i(9892),Z=i(6647),L=i(6243),z=i(1359),F=i(7369),W={name:"Entities",components:{Loading:G.Z,Icon:T.Z,Entity:N["default"],Selector:Z["default"],NoItems:$,EntityModal:L["default"]},mixins:[D.Z],props:{entityScanTimeout:{type:Number,default:30}},data(){return{loading:!1,loadingEntities:{},errorEntities:{},entityTimeouts:{},entities:{},modalEntityId:null,modalVisible:!1,selector:{grouping:"type",selectedEntities:{}}}},computed:{entitiesMeta(){return F},pluginIcons(){return z},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((t,[e,i])=>(t[e]=i[0],t)),{}),type:this.groupEntities("type"),plugin:this.groupEntities("plugin")}},displayGroups(){return Object.entries(this.entityGroups[this.selector.grouping]).filter((t=>t[1].filter((t=>!!this.selector.selectedEntities[t.id])).length>0)).sort(((t,e)=>t[0].localeCompare(e[0]))).map((([t,e])=>({name:t,entities:e.filter((t=>t.id in this.selector.selectedEntities))})))}},methods:{groupEntities(t){return Object.values(this.entities).reduce(((e,i)=>{const n=e[i[t]]||{};return n[i.id]=i,e[i[t]]=Object.values(n).sort(((t,e)=>t.name.localeCompare(e.name))),e}),{})},async refresh(t){const e=(t?t.entities:this.entities)||{},i={};t&&(i.plugins=Object.keys(e.reduce(((t,e)=>(t[e.plugin]=!0,t)),{}))),this.loadingEntities=Object.values(e).reduce(((t,e)=>{const i=this,n=e.id;return this.entityTimeouts[n]&&clearTimeout(this.entityTimeouts[n]),this.entityTimeouts[n]=setTimeout((()=>{i.loadingEntities[n]&&delete i.loadingEntities[n],i.entityTimeouts[n]&&delete i.entityTimeouts[n],i.errorEntities[n]=e,i.notify({error:!0,title:e.plugin,text:`Scan timeout for ${e.name}`})}),1e3*this.entityScanTimeout),t[n]=!0,t}),{}),await this.request("entities.scan",i)},async sync(){this.loading=!0;try{this.entities=(await this.request("entities.get")).reduce(((t,e)=>(e.name=e?.meta?.name_override||e.name,e.meta={...F[e.type]||{},...e.meta||{}},t[e.id]=e,t)),{}),this.selector.selectedEntities=this.entityGroups.id}finally{this.loading=!1}},clearEntityTimeouts(t){this.errorEntities[t]&&delete this.errorEntities[t],this.loadingEntities[t]&&delete this.loadingEntities[t],this.entityTimeouts[t]&&(clearTimeout(this.entityTimeouts[t]),delete this.entityTimeouts[t])},onEntityInput(t){this.entities[t.id]=t,this.clearEntityTimeouts(t.id),this.loadingEntities[t.id]&&delete this.loadingEntities[t.id]},onEntityUpdate(t){const e=t.entity.id;if(null==e)return;this.clearEntityTimeouts(e);const i={...t.entity};null==t.entity?.state&&(i.state=this.entities[e]?.state),i.meta?.name_override?.length?i.name=i.meta.name_override:this.entities[e]?.meta?.name_override?.length?i.name=this.entities[e].meta.name_override:i.name=t.entity?.name||this.entities[e]?.name,i.meta={...F[t.entity.type]||{},...this.entities[e]?.meta||{},...t.entity?.meta||{}},this.entities[e]=i},onEntityDelete(t){const e=t.entity?.id;null!=e&&(e===this.modalEntityId&&(this.modalEntityId=null),this.entities[e]&&delete this.entities[e])},onEntityModal(t){t?(this.modalEntityId=t,this.modalVisible=!0):(this.modalEntityId=null,this.modalVisible=!1)}},async mounted(){this.subscribe(this.onEntityUpdate,"on-entity-update","platypush.message.event.entities.EntityUpdateEvent"),this.subscribe(this.onEntityDelete,"on-entity-delete","platypush.message.event.entities.EntityDeleteEvent"),await this.sync(),await this.refresh()}};const R=(0,M.Z)(W,[["render",x],["__scopeId","data-v-fef021ee"]]);var V=R},6243:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return Lt}});var n=i(6252),s=i(3577);const l=t=>((0,n.dD)("data-v-628ff73f"),t=t(),(0,n.Cn)(),t),o=(0,n.Uk)(" Are you "),a=l((()=>(0,n._)("b",null,"sure",-1))),r=(0,n.Uk)(" that you want to delete this entity? "),u=l((()=>(0,n._)("br",null,null,-1))),c=l((()=>(0,n._)("br",null,null,-1))),d=(0,n.Uk)(" Note: you should only delete an entity if its plugin has been disabled or the entity is no longer reachable."),p=l((()=>(0,n._)("br",null,null,-1))),h=l((()=>(0,n._)("br",null,null,-1))),m=(0,n.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),y={class:"table-row"},g={class:"title"},f=(0,n.Uk)(" Name "),v={class:"value"},_=["textContent"],w={class:"table-row"},b={class:"title"},k=(0,n.Uk)(" Icon "),E={class:"value icon-canvas"},C={key:0,class:"icon-editor"},I=l((()=>(0,n._)("i",{class:"fas fa-rotate-left"},null,-1))),x=[I],D=l((()=>(0,n._)("span",{class:"help"},[(0,n.Uk)(" Supported: image URLs or "),(0,n._)("a",{href:"https://fontawesome.com/icons",target:"_blank"},"FontAwesome icon classes"),(0,n.Uk)(". ")],-1))),G={class:"table-row"},T=l((()=>(0,n._)("div",{class:"title"}," Icon color ",-1))),j={class:"value icon-color-picker"},O=["value"],S=l((()=>(0,n._)("i",{class:"fas fa-rotate-left"},null,-1))),q=[S],M={class:"table-row"},U=l((()=>(0,n._)("div",{class:"title"},"Plugin",-1))),$=["textContent"],N={class:"table-row"},Z=l((()=>(0,n._)("div",{class:"title"},"Internal ID",-1))),L=["textContent"],z={key:0,class:"table-row"},F=l((()=>(0,n._)("div",{class:"title"},"External ID",-1))),W=["textContent"],R={key:1,class:"table-row"},V=l((()=>(0,n._)("div",{class:"title"},"Description",-1))),B=["textContent"],K={key:0,class:"table-row"},A=["textContent"],H=["textContent"],Y={key:2,class:"table-row"},P=l((()=>(0,n._)("div",{class:"title"},"Created at",-1))),J=["textContent"],Q={key:3,class:"table-row"},X=l((()=>(0,n._)("div",{class:"title"},"Updated at",-1))),tt=["textContent"],et={class:"table-row delete-entity-container"},it=l((()=>(0,n._)("div",{class:"title"},"Delete Entity",-1))),nt={class:"value"},st=l((()=>(0,n._)("i",{class:"fas fa-trash"},null,-1))),lt=[st];function ot(t,e,i,l,I,S){const st=(0,n.up)("ConfirmDialog"),ot=(0,n.up)("EditButton"),at=(0,n.up)("NameEditor"),rt=(0,n.up)("Icon"),ut=(0,n.up)("Modal",!0);return(0,n.wg)(),(0,n.j4)(ut,{visible:i.visible,class:"entity-modal",title:i.entity.name||i.entity.external_id},{default:(0,n.w5)((()=>[(0,n.Wm)(st,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:S.onDelete},{default:(0,n.w5)((()=>[o,a,r,u,c,d,p,h,m])),_:1},8,["onInput"]),(0,n._)("div",y,[(0,n._)("div",g,[f,I.editName?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(ot,{key:0,onClick:e[0]||(e[0]=t=>I.editName=!0)}))]),(0,n._)("div",v,[I.editName?((0,n.wg)(),(0,n.j4)(at,{key:0,value:i.entity.name,onInput:S.onRename,onCancel:e[1]||(e[1]=t=>I.editName=!1),disabled:I.loading},null,8,["value","onInput","disabled"])):((0,n.wg)(),(0,n.iD)("span",{key:1,textContent:(0,s.zw)(i.entity.name)},null,8,_))])]),(0,n._)("div",w,[(0,n._)("div",b,[k,I.editIcon?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(ot,{key:0,onClick:e[2]||(e[2]=t=>I.editIcon=!0)}))]),(0,n._)("div",E,[I.editIcon?((0,n.wg)(),(0,n.iD)("span",C,[(0,n.Wm)(at,{value:i.entity.meta?.icon?.class||i.entity.meta?.icon?.url,onInput:S.onIconEdit,onCancel:e[5]||(e[5]=t=>I.editIcon=!1),disabled:I.loading},{default:(0,n.w5)((()=>[(0,n._)("button",{type:"button",title:"Reset",onClick:e[3]||(e[3]=t=>S.onIconEdit(null)),onTouch:e[4]||(e[4]=t=>S.onIconEdit(null))},x,32)])),_:1},8,["value","onInput","disabled"]),D])):((0,n.wg)(),(0,n.j4)(rt,(0,s.vs)((0,n.dG)({key:1},i.entity?.meta?.icon||{})),null,16))])]),(0,n._)("div",G,[T,(0,n._)("div",j,[(0,n._)("input",{type:"color",value:i.entity.meta?.icon?.color,onChange:e[6]||(e[6]=(...t)=>S.onIconColorEdit&&S.onIconColorEdit(...t))},null,40,O),(0,n._)("button",{type:"button",title:"Reset",onClick:e[7]||(e[7]=t=>S.onIconColorEdit(null)),onTouch:e[8]||(e[8]=t=>S.onIconColorEdit(null))},q,32)])]),(0,n._)("div",M,[U,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.plugin)},null,8,$)]),(0,n._)("div",N,[Z,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.id)},null,8,L)]),i.entity.external_id?((0,n.wg)(),(0,n.iD)("div",z,[F,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.external_id)},null,8,W)])):(0,n.kq)("",!0),i.entity.description?((0,n.wg)(),(0,n.iD)("div",R,[V,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.description)},null,8,B)])):(0,n.kq)("",!0),((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(i.entity.data||{},((e,i)=>((0,n.wg)(),(0,n.iD)("div",{key:i},[null!=e?((0,n.wg)(),(0,n.iD)("div",K,[(0,n._)("div",{class:"title",textContent:(0,s.zw)(t.prettify(i))},null,8,A),(0,n._)("div",{class:"value",textContent:(0,s.zw)(""+e)},null,8,H)])):(0,n.kq)("",!0)])))),128)),i.entity.created_at?((0,n.wg)(),(0,n.iD)("div",Y,[P,(0,n._)("div",{class:"value",textContent:(0,s.zw)(t.formatDateTime(i.entity.created_at))},null,8,J)])):(0,n.kq)("",!0),i.entity.updated_at?((0,n.wg)(),(0,n.iD)("div",Q,[X,(0,n._)("div",{class:"value",textContent:(0,s.zw)(t.formatDateTime(i.entity.updated_at))},null,8,tt)])):(0,n.kq)("",!0),(0,n._)("div",et,[it,(0,n._)("div",nt,[(0,n._)("button",{onClick:e[9]||(e[9]=e=>t.$refs.deleteConfirmDiag.show())},lt)])])])),_:1},8,["visible","title"])}var at=i(8453),rt=i(1478),ut=i(9963);const ct=t=>((0,n.dD)("data-v-d543b3e4"),t=t(),(0,n.Cn)(),t),dt={class:"dialog-content"},pt=ct((()=>(0,n._)("i",{class:"fas fa-check"},null,-1))),ht=ct((()=>(0,n._)("i",{class:"fas fa-xmark"},null,-1)));function mt(t,e,i,l,o,a){const r=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)(r,{ref:"modal",title:i.title},{default:(0,n.w5)((()=>[(0,n._)("div",dt,[(0,n.WI)(t.$slots,"default",{},void 0,!0)]),(0,n._)("form",{class:"buttons",onSubmit:e[4]||(e[4]=(0,ut.iM)(((...t)=>a.onConfirm&&a.onConfirm(...t)),["prevent"]))},[(0,n._)("button",{type:"submit",class:"ok-btn",onClick:e[0]||(e[0]=(...t)=>a.onConfirm&&a.onConfirm(...t)),onTouch:e[1]||(e[1]=(...t)=>a.onConfirm&&a.onConfirm(...t))},[pt,(0,n.Uk)("  "+(0,s.zw)(i.confirmText),1)],32),(0,n._)("button",{type:"button",class:"cancel-btn",onClick:e[2]||(e[2]=(...t)=>a.close&&a.close(...t)),onTouch:e[3]||(e[3]=(...t)=>a.close&&a.close(...t))},[ht,(0,n.Uk)("  "+(0,s.zw)(i.cancelText),1)],32)],32)])),_:3},8,["title"])}var yt={emits:["input","click","touch"],components:{Modal:at.Z},props:{title:{type:String},confirmText:{type:String,default:"OK"},cancelText:{type:String,default:"Cancel"}},methods:{onConfirm(){this.$emit("input"),this.close()},show(){this.$refs.modal.show()},close(){this.$refs.modal.hide()}}},gt=i(3744);const ft=(0,gt.Z)(yt,[["render",mt],["__scopeId","data-v-d543b3e4"]]);var vt=ft;const _t=t=>((0,n.dD)("data-v-3344f2bf"),t=t(),(0,n.Cn)(),t),wt=_t((()=>(0,n._)("i",{class:"fas fa-pen-to-square"},null,-1))),bt=[wt];function kt(t,e,i,s,l,o){return(0,n.wg)(),(0,n.iD)("button",{class:"edit-btn",onClick:e[0]||(e[0]=t=>o.proxy(t)),onTouch:e[1]||(e[1]=t=>o.proxy(t)),onInput:e[2]||(e[2]=t=>o.proxy(t))},bt,32)}var Et={emits:["input","click","touch"],methods:{proxy(t){this.$emit(t.type,t)}}};const Ct=(0,gt.Z)(Et,[["render",kt],["__scopeId","data-v-3344f2bf"]]);var It=Ct;const xt=t=>((0,n.dD)("data-v-1405d90f"),t=t(),(0,n.Cn)(),t),Dt=["disabled"],Gt=xt((()=>(0,n._)("button",{type:"submit"},[(0,n._)("i",{class:"fas fa-circle-check"})],-1))),Tt=xt((()=>(0,n._)("i",{class:"fas fa-ban"},null,-1))),jt=[Tt];function Ot(t,e,i,s,l,o){return(0,n.wg)(),(0,n.iD)("form",{onSubmit:e[3]||(e[3]=(0,ut.iM)(((...t)=>o.submit&&o.submit(...t)),["prevent"])),class:"name-editor"},[(0,n.wy)((0,n._)("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=t=>l.text=t),disabled:i.disabled},null,8,Dt),[[ut.nr,l.text]]),Gt,(0,n._)("button",{class:"cancel",onClick:e[1]||(e[1]=e=>t.$emit("cancel")),onTouch:e[2]||(e[2]=e=>t.$emit("cancel"))},jt,32),(0,n.WI)(t.$slots,"default",{},void 0,!0)],32)}var St={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data(){return{text:null}},methods:{proxy(t){this.$emit(t.type,t)},submit(){return this.$emit("input",this.text),!1}},mounted(){this.text=this.value}};const qt=(0,gt.Z)(St,[["render",Ot],["__scopeId","data-v-1405d90f"]]);var Mt=qt,Ut=i(6813),$t=i(7369),Nt={name:"Entity",components:{Modal:at.Z,EditButton:It,NameEditor:Mt,Icon:rt.Z,ConfirmDialog:vt},mixins:[Ut.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1}},data(){return{loading:!1,editName:!1,editIcon:!1}},methods:{async onRename(t){this.loading=!0;try{const e={};e[this.entity.id]=t,await this.request("entities.rename",e)}finally{this.loading=!1,this.editName=!1}},async onDelete(){this.loading=!0;try{await this.request("entities.delete",[this.entity.id])}finally{this.loading=!1}},async onIconEdit(t){this.loading=!0;try{const e={url:null,class:null};t?.length?t.startsWith("http")?e.url=t:e.class=t:(e.url=($t[this.entity.type]||{})?.icon?.url,e.class=($t[this.entity.type]||{})?.icon?.["class"]);const i={};i[this.entity.id]={icon:e},await this.request("entities.set_meta",i)}finally{this.loading=!1,this.editIcon=!1}},async onIconColorEdit(t){this.loading=!0;try{const e=this.entity.meta?.icon||{};e.color=t?t.target.value:null;const i={};i[this.entity.id]={icon:e},await this.request("entities.set_meta",i)}finally{this.loading=!1,this.editIcon=!1}}}};const Zt=(0,gt.Z)(Nt,[["render",ot],["__scopeId","data-v-628ff73f"]]);var Lt=Zt},6647:function(t,e,i){"use strict";i.r(e),i.d(e,{default:function(){return v}});var n=i(6252),s=i(3577),l=i(9963);const o={class:"entities-selectors-container"},a={class:"selector"},r={key:1,class:"selector"};function u(t,e,i,u,c,d){const p=(0,n.up)("DropdownItem"),h=(0,n.up)("Dropdown");return(0,n.wg)(),(0,n.iD)("div",o,[(0,n._)("div",a,[(0,n.Wm)(h,{title:"Group by","icon-class":"fas fa-eye",ref:"groupingSelector"},{default:(0,n.w5)((()=>[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(d.visibleGroupings,(t=>((0,n.wg)(),(0,n.j4)(p,{key:t,text:d.prettifyGroupingName(t),"item-class":{selected:i.value?.grouping===t},onClick:e=>d.onGroupingChanged(t)},null,8,["text","item-class","onClick"])))),128))])),_:1},512)]),i.value?.grouping?((0,n.wg)(),(0,n.iD)("div",{key:0,class:(0,s.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,n.Wm)(h,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,n.w5)((()=>[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(d.sortedGroups,(t=>((0,n.wg)(),(0,n.j4)(p,(0,n.dG)({key:t,text:t},d.iconForGroup(t),{"item-class":{selected:!!c.selectedGroups[t]},onClick:(0,l.iM)((e=>d.toggleGroup(t)),["stop"])}),null,16,["text","item-class","onClick"])))),128))])),_:1},512)],2)):(0,n.kq)("",!0),Object.keys(i.entityGroups.id||{}).length?((0,n.wg)(),(0,n.iD)("div",r,[(0,n.wy)((0,n._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":e[0]||(e[0]=t=>c.searchTerm=t)},null,512),[[l.nr,c.searchTerm]])])):(0,n.kq)("",!0)])}var c=i(6813),d=i(5771),p=i(9015),h=i(7369),m=i(1359),y={name:"Selector",emits:["input"],mixins:[c.Z],components:{Dropdown:d.Z,DropdownItem:p.Z},props:{entityGroups:{type:Object,required:!0},value:{type:Object,required:!0}},data(){return{selectedGroups:{},searchTerm:""}},computed:{visibleGroupings(){return Object.keys(this.entityGroups).filter((t=>"id"!==t))},sortedGroups(){return Object.keys(this.entityGroups[this.value?.grouping]||{}).sort()},typesMeta(){return h},isGroupFilterActive(){return Object.keys(this.selectedGroups).length!==this.sortedGroups.length},selectedEntities(){return Object.values(this.entityGroups.id).filter((t=>{if(!this.selectedGroups[t[this.value?.grouping]])return!1;if(this.searchTerm?.length){const e=this.searchTerm.toLowerCase();return(t.name||"").toLowerCase().indexOf(e)>=0||(t.plugin||"").toLowerCase().indexOf(e)>=0||(t.external_id||"").toLowerCase().indexOf(e)>=0||(t.id||0).toString()==e}return!0})).reduce(((t,e)=>(t[e.id]=e,t)),{})}},methods:{prettifyGroupingName(t){return t?this.prettify(t)+"s":""},iconForGroup(t){if("plugin"===this.value.grouping&&m[t]){const e=m[t];return{"icon-class":e["class"]?.length||!e.imgUrl?.length?e["class"]:"fas fa-gears","icon-url":e.imgUrl}}return{}},synchronizeSelectedEntities(){const t={...this.value};t.selectedEntities=this.selectedEntities,this.$emit("input",t)},updateSearchTerm(){const t={...this.value};t.searchTerm=this.searchTerm,t.selectedEntities=this.selectedEntities,this.$emit("input",t)},refreshGroupFilter(t){if(t)this.selectedGroups=Object.keys(this.entityGroups[this.value?.grouping]||{}).reduce(((t,e)=>(t[e]=!0,t)),{});else for(const e of Object.keys(this.entityGroups[this.value?.grouping]))null==this.selectedGroups[e]&&(this.selectedGroups[e]=!0);this.synchronizeSelectedEntities()},toggleGroup(t){this.selectedGroups[t]=!this.selectedGroups[t],this.synchronizeSelectedEntities()},onGroupingChanged(t){if(!this.entityGroups[t]||t===this.value?.grouping)return!1;const e={...this.value};e.grouping=t,this.$emit("input",e)}},mounted(){this.refreshGroupFilter(!0),this.$watch((()=>this.value?.grouping),(()=>{this.refreshGroupFilter(!0)})),this.$watch((()=>this.searchTerm),this.updateSearchTerm),this.$watch((()=>this.entityGroups),(()=>{this.refreshGroupFilter(!1)}))}},g=i(3744);const f=(0,g.Z)(y,[["render",u],["__scopeId","data-v-63b80935"]]);var v=f},7243:function(t,e,i){var n={"./Entity":[9892,9],"./Entity.vue":[9892,9],"./EntityIcon":[3499,9,8729,3499],"./EntityIcon.vue":[3499,9,8729,3499],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./Index":[914,9],"./Index.vue":[914,9],"./Light":[1155,9,3490,2107,8729,1155],"./Light.vue":[1155,9,3490,2107,8729,1155],"./Modal":[6243,9],"./Modal.vue":[6243,9],"./Selector":[6647,9],"./Selector.vue":[6647,9],"./Switch":[518,9,3490,8729,518],"./Switch.vue":[518,9,3490,8729,518],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(t){if(!i.o(n,t))return Promise.resolve().then((function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=n[t],s=e[0];return Promise.all(e.slice(2).map(i.e)).then((function(){return i.t(s,16|e[1])}))}s.keys=function(){return Object.keys(n)},s.id=7243,t.exports=s},7369:function(t){"use strict";t.exports=JSON.parse('{"entity":{"name":"Entity","name_plural":"Entities","icon":{"class":"fas fa-circle-question"}},"device":{"name":"Device","name_plural":"Devices","icon":{"class":"fas fa-gear"}},"switch":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-toggle-on"}},"light":{"name":"Light","name_plural":"Lights","icon":{"class":"fas fa-lightbulb"}}}')}}]);
-//# sourceMappingURL=9892.dacb03d8.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js.map b/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js.map
deleted file mode 100644
index ceedaeec2..000000000
--- a/platypush/backend/http/webapp/dist/static/js/9892.dacb03d8.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/9892.dacb03d8.js","mappings":"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","sources":["webpack://platypush/./src/components/panels/Entities/Entity.vue","webpack://platypush/./src/components/panels/Entities/Entity.vue?6f8a","webpack://platypush/./src/components/panels/Entities/EntityMixin.vue","webpack://platypush/./src/components/panels/Entities/EntityMixin.vue?a9b3","webpack://platypush/./src/components/panels/Entities/Index.vue","webpack://platypush/./src/components/elements/NoItems.vue","webpack://platypush/./src/components/elements/NoItems.vue?70de","webpack://platypush/./src/components/panels/Entities/Index.vue?4523","webpack://platypush/./src/components/panels/Entities/Modal.vue","webpack://platypush/./src/components/elements/ConfirmDialog.vue","webpack://platypush/./src/components/elements/ConfirmDialog.vue?f384","webpack://platypush/./src/components/elements/EditButton.vue","webpack://platypush/./src/components/elements/EditButton.vue?fb20","webpack://platypush/./src/components/elements/NameEditor.vue","webpack://platypush/./src/components/elements/NameEditor.vue?34cf","webpack://platypush/./src/components/panels/Entities/Modal.vue?d45a","webpack://platypush/./src/components/panels/Entities/Selector.vue","webpack://platypush/./src/components/panels/Entities/Selector.vue?bf8b","webpack://platypush/./src/components/panels/Entities|lazy|/^\\.\\/.*$/|groupOptions: {}|namespace object"],"sourcesContent":["\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Entity.vue?vue&type=template&id=3c242632&scoped=true\"\nimport script from \"./Entity.vue?vue&type=script&lang=js\"\nexport * from \"./Entity.vue?vue&type=script&lang=js\"\n\nimport \"./Entity.vue?vue&type=style&index=0&id=3c242632&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c242632\"]])\n\nexport default __exports__","\n","import script from \"./EntityMixin.vue?vue&type=script&lang=js\"\nexport * from \"./EntityMixin.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n \n\n \n
\n \n
\n\n
\n \n
\n \n\n
\n \n\n No entities found\n\n
\n
\n
\n
\n \n \n \n \n\n \n \n \n \n\n \n \n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n","\n
\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./NoItems.vue?vue&type=template&id=6fec32b5&scoped=true\"\nimport script from \"./NoItems.vue?vue&type=script&lang=js\"\nexport * from \"./NoItems.vue?vue&type=script&lang=js\"\n\nimport \"./NoItems.vue?vue&type=style&index=0&id=6fec32b5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6fec32b5\"]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=fef021ee&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=fef021ee&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-fef021ee\"]])\n\nexport default __exports__","\n \n \n Are you sure that you want to delete this entity?
\n Note: you should only delete an entity if its plugin has been disabled\n or the entity is no longer reachable.
\n Otherwise, the entity will simply be created again upon the next scan.\n \n\n
\n\n \n \n\n\n\n\n\n","import { render } from \"./ConfirmDialog.vue?vue&type=template&id=d543b3e4&scoped=true\"\nimport script from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDialog.vue?vue&type=script&lang=js\"\n\nimport \"./ConfirmDialog.vue?vue&type=style&index=0&id=d543b3e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d543b3e4\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./EditButton.vue?vue&type=template&id=3344f2bf&scoped=true\"\nimport script from \"./EditButton.vue?vue&type=script&lang=js\"\nexport * from \"./EditButton.vue?vue&type=script&lang=js\"\n\nimport \"./EditButton.vue?vue&type=style&index=0&id=3344f2bf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3344f2bf\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./NameEditor.vue?vue&type=template&id=1405d90f&scoped=true\"\nimport script from \"./NameEditor.vue?vue&type=script&lang=js\"\nexport * from \"./NameEditor.vue?vue&type=script&lang=js\"\n\nimport \"./NameEditor.vue?vue&type=style&index=0&id=1405d90f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1405d90f\"]])\n\nexport default __exports__","import { render } from \"./Modal.vue?vue&type=template&id=628ff73f&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=628ff73f&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-628ff73f\"]])\n\nexport default __exports__","\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Selector.vue?vue&type=template&id=63b80935&scoped=true\"\nimport script from \"./Selector.vue?vue&type=script&lang=js\"\nexport * from \"./Selector.vue?vue&type=script&lang=js\"\n\nimport \"./Selector.vue?vue&type=style&index=0&id=63b80935&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-63b80935\"]])\n\nexport default __exports__","var map = {\n\t\"./Entity\": [\n\t\t9892,\n\t\t9\n\t],\n\t\"./Entity.vue\": [\n\t\t9892,\n\t\t9\n\t],\n\t\"./EntityIcon\": [\n\t\t3499,\n\t\t9,\n\t\t8729,\n\t\t3499\n\t],\n\t\"./EntityIcon.vue\": [\n\t\t3499,\n\t\t9,\n\t\t8729,\n\t\t3499\n\t],\n\t\"./EntityMixin\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./EntityMixin.vue\": [\n\t\t7909,\n\t\t9\n\t],\n\t\"./Index\": [\n\t\t914,\n\t\t9\n\t],\n\t\"./Index.vue\": [\n\t\t914,\n\t\t9\n\t],\n\t\"./Light\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t2107,\n\t\t8729,\n\t\t1155\n\t],\n\t\"./Light.vue\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t2107,\n\t\t8729,\n\t\t1155\n\t],\n\t\"./Modal\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./Modal.vue\": [\n\t\t6243,\n\t\t9\n\t],\n\t\"./Selector\": [\n\t\t6647,\n\t\t9\n\t],\n\t\"./Selector.vue\": [\n\t\t6647,\n\t\t9\n\t],\n\t\"./Switch\": [\n\t\t518,\n\t\t9,\n\t\t3490,\n\t\t8729,\n\t\t518\n\t],\n\t\"./Switch.vue\": [\n\t\t518,\n\t\t9,\n\t\t3490,\n\t\t8729,\n\t\t518\n\t],\n\t\"./common.scss\": [\n\t\t65,\n\t\t9,\n\t\t4981,\n\t\t65\n\t],\n\t\"./meta\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./meta.json\": [\n\t\t7369,\n\t\t3\n\t],\n\t\"./vars.scss\": [\n\t\t5207,\n\t\t9,\n\t\t4981,\n\t\t5207\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1] | 16)\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 7243;\nmodule.exports = webpackAsyncContext;"],"names":["class","component","value","loading","error","reachable","$emit","$event","name","mixins","EntityMixin","emits","data","mounted","this","type","__exports__","render","Utils","props","Boolean","default","Object","required","modalVisible","computed","entityType","charAt","toUpperCase","slice","entityGroups","selector","title","refresh","modalEntityId","entity","entities","visible","onEntityModal","keys","displayGroups","length","group","key","grouping","entitiesMeta","icon","pluginIcons","url","imgUrl","name_plural","id","onEntityInput","errorEntities","loadingEntities","components","Loading","Icon","Entity","Selector","NoItems","EntityModal","entityScanTimeout","Number","entityTimeouts","selectedEntities","meta","icons","entries","groupEntities","reduce","obj","filter","entry","e","sort","a","b","localeCompare","map","methods","attr","values","async","args","plugins","plugin","self","clearTimeout","setTimeout","notify","text","request","name_override","clearEntityTimeouts","entityId","onEntityUpdate","event","state","onEntityDelete","subscribe","sync","href","target","external_id","ref","onDelete","editName","onRename","disabled","editIcon","onIconEdit","color","onIconColorEdit","description","created_at","updated_at","$refs","deleteConfirmDiag","show","onConfirm","confirmText","close","cancelText","Modal","String","modal","hide","proxy","submit","deafult","EditButton","NameEditor","ConfirmDialog","newName","req","newIcon","startsWith","visibleGroupings","g","prettifyGroupingName","onGroupingChanged","isGroupFilterActive","sortedGroups","iconForGroup","selectedGroups","toggleGroup","placeholder","searchTerm","Dropdown","DropdownItem","typesMeta","toLowerCase","indexOf","toString","prettify","synchronizeSelectedEntities","updateSearchTerm","refreshGroupFilter","reset","$watch","webpackAsyncContext","__webpack_require__","o","Promise","resolve","then","Error","code","ids","all","t","module","exports"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js.map b/platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js.map
deleted file mode 100644
index 7e344cc82..000000000
--- a/platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/9978.9241f6a8.js","mappings":"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","sources":["webpack://platypush/./src/components/Media/Utils.vue","webpack://platypush/./src/components/Media/Utils.vue?af63","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n \n
\n
\n\n\n\n\n\n","\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n\n \n\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n\n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Controls.vue?vue&type=template&id=8db4988a&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=8db4988a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8db4988a\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=70d7a7df&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=70d7a7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-70d7a7df\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=0359812c&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=0359812c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0359812c\"]])\n\nexport default __exports__"],"names":["name","mixins","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","async","resource","download","url","subtitles","Object","request","media","mediaId","media_id","__exports__","class","status","track","buttons","$emit","$event","expanded","buttons_","previous","title","stop","state","next","disabled","muted","value","volume","range","volumeRange","target","consume","random","repeat","elapsed","duration","album","href","$route","fullPath","length","artist","components","Slider","emits","props","type","default","Array","data","keys","lastSync","position","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","pluginName","String","required","render","ref","withLabel","min","max","step","onUpdate","Number","Boolean","event","update","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","width"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js b/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js
similarity index 56%
rename from platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js
rename to platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js
index 801262382..04cf58bea 100644
--- a/platypush/backend/http/webapp/dist/static/js/9978.9241f6a8.js
+++ b/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js
@@ -1,2 +1,2 @@
-"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[9978],{8337:function(t,e,s){s.d(e,{Z:function(){return o}});var a=s(6813),n={name:"Utils",mixins:[a.Z],computed:{audioExtensions(){return new Set(["3gp","aa","aac","aax","act","aiff","amr","ape","au","awb","dct","dss","dvf","flac","gsm","iklax","ivs","m4a","m4b","m4p","mmf","mp3","mpc","msv","nmf","nsf","ogg,","opus","ra,","raw","sln","tta","vox","wav","wma","wv","webm","8svx"])},videoExtensions(){return new Set(["webm","mkv","flv","flv","vob","ogv","ogg","drc","gif","gifv","mng","avi","mts","m2ts","mov","qt","wmv","yuv","rm","rmvb","asf","amv","mp4","m4p","m4v","mpg","mp2","mpeg","mpe","mpv","mpg","mpeg","m2v","m4v","svi","3gp","3g2","mxf","roq","nsv","flv","f4v","f4p","f4a","f4b"])},mediaExtensions(){return new Set([...this.videoExtensions,...this.audioExtensions])}},methods:{convertTime(t){t=parseFloat(t);const e={};e.h=""+parseInt(t/3600),e.m=""+parseInt(t/60-60*e.h),e.s=""+parseInt(t-(3600*e.h+60*e.m));for(const a of["m","s"])parseInt(e[a])<10&&(e[a]="0"+e[a]);const s=[];return parseInt(e.h)&&s.push(e.h),s.push(e.m,e.s),s.join(":")},async startStreaming(t,e=!1){let s=t,a=null;t instanceof Object?(s=t.url,a=t.subtitles):t={url:s};const n=await this.request("media.start_streaming",{media:s,subtitles:a,download:e});return{...t,...n}},async stopStreaming(t){await this.request("media.stop_streaming",{media_id:t})}}};const l=n;var o=l},9978:function(t,e,s){s.d(e,{Z:function(){return Bt}});var a=s(6252);const n={class:"media-container"},l={class:"view-container"},o={class:"controls-container"};function i(t,e,s,i,u,r){const c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",n,[(0,a._)("div",l,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",o,[(0,a.Wm)(c,{status:s.status,track:s.track,buttons:s.buttons,onPlay:e[0]||(e[0]=e=>t.$emit("play",e)),onPause:e[1]||(e[1]=e=>t.$emit("pause",e)),onStop:e[2]||(e[2]=e=>t.$emit("stop")),onPrevious:e[3]||(e[3]=e=>t.$emit("previous")),onNext:e[4]||(e[4]=e=>t.$emit("next")),onSeek:e[5]||(e[5]=e=>t.$emit("seek",e)),onSetVolume:e[6]||(e[6]=e=>t.$emit("set-volume",e)),onConsume:e[7]||(e[7]=e=>t.$emit("consume",e)),onRepeat:e[8]||(e[8]=e=>t.$emit("repeat",e)),onRandom:e[9]||(e[9]=e=>t.$emit("random",e)),onSearch:e[10]||(e[10]=e=>t.$emit("search",e))},null,8,["status","track","buttons"])])])}var u=s(3577),r=s(9963);const c=t=>((0,a.dD)("data-v-8db4988a"),t=t(),(0,a.Cn)(),t),p={class:"row"},d=c((()=>(0,a._)("div",{class:"col-3"},null,-1))),m={class:"col-6"},v={class:"buttons"},k=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),b=[k],f=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),g=[f],h=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),_=[h],y=c((()=>(0,a._)("div",{class:"col-3"},null,-1))),w={class:"row"},C={class:"col-9 volume-container"},x={class:"col-1"},$=["disabled"],D=c((()=>(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1))),T=[D],q={class:"col-11 volume-slider"},S={class:"col-3 list-controls"},U=c((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),M=[U],P=c((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),I=[P],Z=c((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),j=[Z],z={class:"row"},O={class:"col-s-2 col-m-1 time"},W=["textContent"],N={class:"col-s-8 col-m-10 time-bar"},E={class:"col-s-2 col-m-1 time"},R=["textContent"],L={class:"controls"},A={class:"playback-controls mobile tablet col-2"},B=["title"],H={key:0,class:"icon play-pause fa fa-pause"},K={key:1,class:"icon play-pause fa fa-play"},V={class:"track-container col-s-8 col-m-8 col-l-3"},F={key:0,class:"track-info"},Y={key:0,class:"title"},G=["href","textContent"],J=["href","textContent"],Q=["textContent"],X={key:1,class:"artist"},tt=["href","textContent"],et={class:"playback-controls desktop col-6"},st={class:"row buttons"},at=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),nt=[at],lt=["title"],ot={key:0,class:"icon play-pause fa fa-pause"},it={key:1,class:"icon play-pause fa fa-play"},ut=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),rt=[ut],ct=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),pt=[ct],dt={class:"row"},mt={class:"col-1 time"},vt=["textContent"],kt={class:"col-10"},bt={class:"col-1 time"},ft=["textContent"],gt={class:"col-2 pull-right mobile tablet right-buttons"},ht=["title"],_t={class:"col-3 pull-right desktop"},yt={class:"row list-controls"},wt=c((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),Ct=[wt],xt=c((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),$t=[xt],Dt=c((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),Tt=[Dt],qt={class:"row volume-container"},St={class:"col-2"},Ut=["disabled"],Mt=c((()=>(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1))),Pt=[Mt],It={class:"col-10"};function Zt(t,e,s,n,l,o){const i=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,u.C_)(["extension fade-in",{hidden:!l.expanded}])},[(0,a._)("div",p,[d,(0,a._)("div",m,[(0,a._)("div",v,[l.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=e=>t.$emit("previous")),title:"Play previous track"},b)):(0,a.kq)("",!0),l.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=e=>t.$emit("stop")),title:"Stop playback"},g)):(0,a.kq)("",!0),l.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=e=>t.$emit("next")),title:"Play next track"},_)):(0,a.kq)("",!0)])]),y]),(0,a._)("div",w,[(0,a._)("div",C,[(0,a._)("div",x,[(0,a._)("button",{disabled:null==s.status.muted,onClick:e[3]||(e[3]=e=>t.$emit(s.status.muted?"unmute":"mute"))},T,8,$)]),(0,a._)("div",q,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onMouseup:e[4]||(e[4]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])]),(0,a._)("div",S,[l.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[5]||(e[5]=e=>t.$emit("consume",!s.status.consume)),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},M,2)):(0,a.kq)("",!0),l.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[6]||(e[6]=e=>t.$emit("random",!s.status.random)),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},I,2)):(0,a.kq)("",!0),l.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[7]||(e[7]=e=>t.$emit("repeat",!s.status.repeat)),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},j,2)):(0,a.kq)("",!0)])]),(0,a._)("div",z,[(0,a._)("div",O,[(0,a._)("span",{class:"elapsed-time",textContent:(0,u.zw)(null==l.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(l.elapsed))},null,8,W)]),(0,a._)("div",N,[(0,a.Wm)(i,{value:l.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===s.status.state,onMouseup:e[8]||(e[8]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",E,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(o.duration&&"stop"!==s.status.state?t.convertTime(o.duration):"-:--")},null,8,R)])])],2),(0,a._)("div",L,[(0,a._)("div",A,[(0,a._)("button",{onClick:e[9]||(e[9]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",H)):((0,a.wg)(),(0,a.iD)("i",K))],8,B)]),(0,a._)("div",V,[s.track&&"stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",F,["play"===s.status.state||"pause"===s.status.state?((0,a.wg)(),(0,a.iD)("div",Y,[s.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]"),onClick:e[10]||(e[10]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist,album:s.track.album})),["prevent"]))},null,8,G)):s.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,href:s.track.url,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,J)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,Q))])):(0,a.kq)("",!0),!s.track.artist?.length||"play"!==s.status.state&&"pause"!==s.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",X,[(0,a._)("a",{href:t.$route.fullPath,textContent:(0,u.zw)(s.track.artist),onClick:e[11]||(e[11]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist})),["prevent"]))},null,8,tt)]))])):(0,a.kq)("",!0)]),(0,a._)("div",et,[(0,a._)("div",st,[l.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[12]||(e[12]=e=>t.$emit("previous")),title:"Play previous track"},nt)):(0,a.kq)("",!0),(0,a._)("button",{onClick:e[13]||(e[13]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",ot)):((0,a.wg)(),(0,a.iD)("i",it))],8,lt),l.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[14]||(e[14]=e=>t.$emit("stop")),title:"Stop playback"},rt)):(0,a.kq)("",!0),l.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[15]||(e[15]=e=>t.$emit("next")),title:"Play next track"},pt)):(0,a.kq)("",!0)]),(0,a._)("div",dt,[(0,a._)("div",mt,[(0,a._)("span",{class:"elapsed-time",textContent:(0,u.zw)(null==l.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(l.elapsed))},null,8,vt)]),(0,a._)("div",kt,[(0,a.Wm)(i,{value:l.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===s.status.state,onMouseup:e[16]||(e[16]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",bt,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(o.duration&&"stop"!==s.status.state?t.convertTime(o.duration):"-:--")},null,8,ft)])])]),(0,a._)("div",gt,[(0,a._)("button",{onClick:e[17]||(e[17]=t=>l.expanded=!l.expanded),title:l.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,u.C_)(["fas",["fa-chevron-"+(l.expanded?"down":"up")]])},null,2)],8,ht)]),(0,a._)("div",_t,[(0,a._)("div",yt,[l.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[18]||(e[18]=e=>t.$emit("consume")),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},Ct,2)):(0,a.kq)("",!0),l.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[19]||(e[19]=e=>t.$emit("random")),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},$t,2)):(0,a.kq)("",!0),l.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[20]||(e[20]=e=>t.$emit("repeat")),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},Tt,2)):(0,a.kq)("",!0)]),(0,a._)("div",qt,[(0,a._)("div",St,[(0,a._)("button",{disabled:null==s.status.muted,onClick:e[21]||(e[21]=e=>t.$emit(s.status.muted?"unmute":"mute"))},Pt,8,Ut)]),(0,a._)("div",It,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onMouseup:e[22]||(e[22]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])])])])],64)}var jt=s(6813),zt=s(8337),Ot=s(8070),Wt={name:"Controls",components:{Slider:Ot.Z},mixins:[jt.Z,zt.Z],emits:["search","previous","next","play","pause","stop","seek","consume","random","repeat","set-volume","mute","unmute"],props:{track:{type:Object},status:{type:Object,default:()=>{}},buttons:{type:Object,default:()=>({previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0})},volumeRange:{type:Array,default:()=>[0,100]}},data(){const t=Object.keys(this.buttons)?.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:this.status?.elapsed||this.status?.position,buttons_:t}},computed:{duration(){return null!=this.status?.duration?this.status.duration:this.track?.duration}},methods:{getTime(){return(new Date).getTime()/1e3}},mounted(){const t=this;this.lastSync=this.getTime(),this.$watch((()=>this.track),(e=>{e&&"play"===t.status?.state||(t.lastSync=this.getTime())})),this.$watch((()=>this.status),(()=>{t.lastSync=this.getTime()})),setInterval((()=>{"stop"!==t.status?.state&&(t.elapsed=t.status?.elapsed||t.status?.position||0,"play"===t.status?.state&&(t.elapsed+=Math.round(this.getTime()-t.lastSync)))}),1e3)}},Nt=s(3744);const Et=(0,Nt.Z)(Wt,[["render",Zt],["__scopeId","data-v-8db4988a"]]);var Rt=Et,Lt={name:"View",components:{Controls:Rt},emits:["play","pause","stop","next","previous","set-volume","seek","consume","random","repeat","search"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:()=>{}},track:{type:Object},buttons:{type:Object}}};const At=(0,Nt.Z)(Lt,[["render",i],["__scopeId","data-v-70d7a7df"]]);var Bt=At},8070:function(t,e,s){s.d(e,{Z:function(){return k}});var a=s(6252),n=s(3577),l=s(9963);const o={class:"slider-wrapper"},i=["min","max","step","disabled","value"],u={class:"track-inner",ref:"track"},r={class:"thumb",ref:"thumb"},c=["textContent"];function p(t,e,s,p,d,m){return(0,a.wg)(),(0,a.iD)("label",o,[(0,a._)("input",{class:(0,n.C_)(["slider",{"with-label":s.withLabel}]),type:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,ref:"range",onInput:e[0]||(e[0]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onChange:e[1]||(e[1]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onMouseup:e[2]||(e[2]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onMousedown:e[3]||(e[3]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onTouchstart:e[4]||(e[4]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onTouchend:e[5]||(e[5]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onKeyup:e[6]||(e[6]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onKeydown:e[7]||(e[7]=(0,l.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"]))},null,42,i),(0,a._)("div",{class:(0,n.C_)(["track",{"with-label":s.withLabel}])},[(0,a._)("div",u,null,512)],2),(0,a._)("div",r,null,512),s.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,n.zw)(s.value),ref:"label"},null,8,c)):(0,a.kq)("",!0)])}var d={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(t){this.update(t.target.value),this.$emit(t.type,{...t,target:{...t.target,value:this.$refs.range.value}})},update(t){const e=this.$refs.range.clientWidth,s=(t-this.range[0])/(this.range[1]-this.range[0]),a=s*e,n=this.$refs.thumb;n.style.left=a-n.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${s}%, -50%)`,this.$refs.track.style.width=`${a}px`}},mounted(){null!=this.value&&this.update(this.value)}},m=s(3744);const v=(0,m.Z)(d,[["render",p],["__scopeId","data-v-0359812c"]]);var k=v}}]);
-//# sourceMappingURL=9978.9241f6a8.js.map
\ No newline at end of file
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[9978],{8337:function(t,e,s){s.d(e,{Z:function(){return o}});var a=s(6813),l={name:"Utils",mixins:[a.Z],computed:{audioExtensions(){return new Set(["3gp","aa","aac","aax","act","aiff","amr","ape","au","awb","dct","dss","dvf","flac","gsm","iklax","ivs","m4a","m4b","m4p","mmf","mp3","mpc","msv","nmf","nsf","ogg,","opus","ra,","raw","sln","tta","vox","wav","wma","wv","webm","8svx"])},videoExtensions(){return new Set(["webm","mkv","flv","flv","vob","ogv","ogg","drc","gif","gifv","mng","avi","mts","m2ts","mov","qt","wmv","yuv","rm","rmvb","asf","amv","mp4","m4p","m4v","mpg","mp2","mpeg","mpe","mpv","mpg","mpeg","m2v","m4v","svi","3gp","3g2","mxf","roq","nsv","flv","f4v","f4p","f4a","f4b"])},mediaExtensions(){return new Set([...this.videoExtensions,...this.audioExtensions])}},methods:{convertTime(t){t=parseFloat(t);const e={};e.h=""+parseInt(t/3600),e.m=""+parseInt(t/60-60*e.h),e.s=""+parseInt(t-(3600*e.h+60*e.m));for(const a of["m","s"])parseInt(e[a])<10&&(e[a]="0"+e[a]);const s=[];return parseInt(e.h)&&s.push(e.h),s.push(e.m,e.s),s.join(":")},async startStreaming(t,e=!1){let s=t,a=null;t instanceof Object?(s=t.url,a=t.subtitles):t={url:s};const l=await this.request("media.start_streaming",{media:s,subtitles:a,download:e});return{...t,...l}},async stopStreaming(t){await this.request("media.stop_streaming",{media_id:t})}}};const n=l;var o=n},9978:function(t,e,s){s.d(e,{Z:function(){return Bt}});var a=s(6252);const l={class:"media-container"},n={class:"view-container"},o={class:"controls-container"};function i(t,e,s,i,u,r){const c=(0,a.up)("Controls");return(0,a.wg)(),(0,a.iD)("div",l,[(0,a._)("div",n,[(0,a.WI)(t.$slots,"default",{},void 0,!0)]),(0,a._)("div",o,[(0,a.Wm)(c,{status:s.status,track:s.track,buttons:s.buttons,onPlay:e[0]||(e[0]=e=>t.$emit("play",e)),onPause:e[1]||(e[1]=e=>t.$emit("pause",e)),onStop:e[2]||(e[2]=e=>t.$emit("stop")),onPrevious:e[3]||(e[3]=e=>t.$emit("previous")),onNext:e[4]||(e[4]=e=>t.$emit("next")),onSeek:e[5]||(e[5]=e=>t.$emit("seek",e)),onSetVolume:e[6]||(e[6]=e=>t.$emit("set-volume",e)),onConsume:e[7]||(e[7]=e=>t.$emit("consume",e)),onRepeat:e[8]||(e[8]=e=>t.$emit("repeat",e)),onRandom:e[9]||(e[9]=e=>t.$emit("random",e)),onSearch:e[10]||(e[10]=e=>t.$emit("search",e))},null,8,["status","track","buttons"])])])}var u=s(3577),r=s(9963);const c=t=>((0,a.dD)("data-v-8db4988a"),t=t(),(0,a.Cn)(),t),d={class:"row"},p=c((()=>(0,a._)("div",{class:"col-3"},null,-1))),m={class:"col-6"},v={class:"buttons"},k=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),b=[k],f=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),g=[f],h=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),_=[h],y=c((()=>(0,a._)("div",{class:"col-3"},null,-1))),w={class:"row"},C={class:"col-9 volume-container"},x={class:"col-1"},$=["disabled"],D=c((()=>(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1))),q=[D],S={class:"col-11 volume-slider"},T={class:"col-3 list-controls"},P=c((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),I=[P],Z=c((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),j=[Z],z=c((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),M=[z],O={class:"row"},W={class:"col-s-2 col-m-1 time"},N=["textContent"],U={class:"col-s-8 col-m-10 time-bar"},E={class:"col-s-2 col-m-1 time"},R=["textContent"],L={class:"controls"},A={class:"playback-controls mobile tablet col-2"},B=["title"],H={key:0,class:"icon play-pause fa fa-pause"},V={key:1,class:"icon play-pause fa fa-play"},F={class:"track-container col-s-8 col-m-8 col-l-3"},Y={key:0,class:"track-info"},G={key:0,class:"title"},J=["href","textContent"],K=["href","textContent"],Q=["textContent"],X={key:1,class:"artist"},tt=["href","textContent"],et={class:"playback-controls desktop col-6"},st={class:"row buttons"},at=c((()=>(0,a._)("i",{class:"icon fa fa-step-backward"},null,-1))),lt=[at],nt=["title"],ot={key:0,class:"icon play-pause fa fa-pause"},it={key:1,class:"icon play-pause fa fa-play"},ut=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),rt=[ut],ct=c((()=>(0,a._)("i",{class:"icon fa fa-step-forward"},null,-1))),dt=[ct],pt={class:"row"},mt={class:"col-1 time"},vt=["textContent"],kt={class:"col-10"},bt={class:"col-1 time"},ft=["textContent"],gt={class:"col-2 pull-right mobile tablet right-buttons"},ht=["title"],_t={class:"col-3 pull-right desktop"},yt={class:"row list-controls"},wt=c((()=>(0,a._)("i",{class:"icon fa fa-utensils"},null,-1))),Ct=[wt],xt=c((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),$t=[xt],Dt=c((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),qt=[Dt],St={class:"row volume-container"},Tt={class:"col-2"},Pt=["disabled"],It=c((()=>(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1))),Zt=[It],jt={class:"col-10"};function zt(t,e,s,l,n,o){const i=(0,a.up)("Slider");return(0,a.wg)(),(0,a.iD)(a.HY,null,[(0,a._)("div",{class:(0,u.C_)(["extension fade-in",{hidden:!n.expanded}])},[(0,a._)("div",d,[p,(0,a._)("div",m,[(0,a._)("div",v,[n.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[0]||(e[0]=e=>t.$emit("previous")),title:"Play previous track"},b)):(0,a.kq)("",!0),n.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[1]||(e[1]=e=>t.$emit("stop")),title:"Stop playback"},g)):(0,a.kq)("",!0),n.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[2]||(e[2]=e=>t.$emit("next")),title:"Play next track"},_)):(0,a.kq)("",!0)])]),y]),(0,a._)("div",w,[(0,a._)("div",C,[(0,a._)("div",x,[(0,a._)("button",{disabled:null==s.status.muted,onClick:e[3]||(e[3]=e=>t.$emit(s.status.muted?"unmute":"mute"))},q,8,$)]),(0,a._)("div",S,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onMouseup:e[4]||(e[4]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])]),(0,a._)("div",T,[n.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[5]||(e[5]=e=>t.$emit("consume",!s.status.consume)),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},I,2)):(0,a.kq)("",!0),n.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[6]||(e[6]=e=>t.$emit("random",!s.status.random)),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},j,2)):(0,a.kq)("",!0),n.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[7]||(e[7]=e=>t.$emit("repeat",!s.status.repeat)),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},M,2)):(0,a.kq)("",!0)])]),(0,a._)("div",O,[(0,a._)("div",W,[(0,a._)("span",{class:"elapsed-time",textContent:(0,u.zw)(null==n.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(n.elapsed))},null,8,N)]),(0,a._)("div",U,[(0,a.Wm)(i,{value:n.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===s.status.state,onMouseup:e[8]||(e[8]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",E,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(o.duration&&"stop"!==s.status.state?t.convertTime(o.duration):"-:--")},null,8,R)])])],2),(0,a._)("div",L,[(0,a._)("div",A,[(0,a._)("button",{onClick:e[9]||(e[9]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",H)):((0,a.wg)(),(0,a.iD)("i",V))],8,B)]),(0,a._)("div",F,[s.track&&"stop"!==s.status?.state?((0,a.wg)(),(0,a.iD)("div",Y,["play"===s.status.state||"pause"===s.status.state?((0,a.wg)(),(0,a.iD)("div",G,[s.track.album?((0,a.wg)(),(0,a.iD)("a",{key:0,href:t.$route.fullPath,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]"),onClick:e[10]||(e[10]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist,album:s.track.album})),["prevent"]))},null,8,J)):s.track.url?((0,a.wg)(),(0,a.iD)("a",{key:1,href:s.track.url,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,K)):((0,a.wg)(),(0,a.iD)("span",{key:2,textContent:(0,u.zw)(s.track.title?.length?s.track.title:"[No Title]")},null,8,Q))])):(0,a.kq)("",!0),!s.track.artist?.length||"play"!==s.status.state&&"pause"!==s.status.state?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",X,[(0,a._)("a",{href:t.$route.fullPath,textContent:(0,u.zw)(s.track.artist),onClick:e[11]||(e[11]=(0,r.iM)((e=>t.$emit("search",{artist:s.track.artist})),["prevent"]))},null,8,tt)]))])):(0,a.kq)("",!0)]),(0,a._)("div",et,[(0,a._)("div",st,[n.buttons_.previous?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[12]||(e[12]=e=>t.$emit("previous")),title:"Play previous track"},lt)):(0,a.kq)("",!0),(0,a._)("button",{onClick:e[13]||(e[13]=e=>t.$emit("play"===s.status.state?"pause":"play")),title:"play"===s.status.state?"Pause":"Play"},["play"===s.status.state?((0,a.wg)(),(0,a.iD)("i",ot)):((0,a.wg)(),(0,a.iD)("i",it))],8,nt),n.buttons_.stop&&"stop"!==s.status.state?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[14]||(e[14]=e=>t.$emit("stop")),title:"Stop playback"},rt)):(0,a.kq)("",!0),n.buttons_.next?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[15]||(e[15]=e=>t.$emit("next")),title:"Play next track"},dt)):(0,a.kq)("",!0)]),(0,a._)("div",pt,[(0,a._)("div",mt,[(0,a._)("span",{class:"elapsed-time",textContent:(0,u.zw)(null==n.elapsed||"play"!==s.status.state&&"pause"!==s.status.state?"-:--":t.convertTime(n.elapsed))},null,8,vt)]),(0,a._)("div",kt,[(0,a.Wm)(i,{value:n.elapsed,range:[0,o.duration],disabled:!o.duration||"stop"===s.status.state,onMouseup:e[16]||(e[16]=e=>t.$emit("seek",e.target.value))},null,8,["value","range","disabled"])]),(0,a._)("div",bt,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(o.duration&&"stop"!==s.status.state?t.convertTime(o.duration):"-:--")},null,8,ft)])])]),(0,a._)("div",gt,[(0,a._)("button",{onClick:e[17]||(e[17]=t=>n.expanded=!n.expanded),title:n.expanded?"Show more controls":"Hide extra controls"},[(0,a._)("i",{class:(0,u.C_)(["fas",["fa-chevron-"+(n.expanded?"down":"up")]])},null,2)],8,ht)]),(0,a._)("div",_t,[(0,a._)("div",yt,[n.buttons_.consume?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e[18]||(e[18]=e=>t.$emit("consume")),class:(0,u.C_)({enabled:s.status.consume}),title:"Toggle consume mode"},Ct,2)):(0,a.kq)("",!0),n.buttons_.random?((0,a.wg)(),(0,a.iD)("button",{key:1,onClick:e[19]||(e[19]=e=>t.$emit("random")),class:(0,u.C_)({enabled:s.status.random}),title:"Toggle shuffle"},$t,2)):(0,a.kq)("",!0),n.buttons_.repeat?((0,a.wg)(),(0,a.iD)("button",{key:2,onClick:e[20]||(e[20]=e=>t.$emit("repeat")),class:(0,u.C_)({enabled:s.status.repeat}),title:"Toggle repeat"},qt,2)):(0,a.kq)("",!0)]),(0,a._)("div",St,[(0,a._)("div",Tt,[(0,a._)("button",{disabled:null==s.status.muted,onClick:e[21]||(e[21]=e=>t.$emit(s.status.muted?"unmute":"mute"))},Zt,8,Pt)]),(0,a._)("div",jt,[(0,a.Wm)(i,{value:s.status.volume,range:s.volumeRange,disabled:null==s.status.volume,onMouseup:e[22]||(e[22]=e=>t.$emit("set-volume",e.target.value))},null,8,["value","range","disabled"])])])])])],64)}var Mt=s(6813),Ot=s(8337),Wt=s(6237),Nt={name:"Controls",components:{Slider:Wt.Z},mixins:[Mt.Z,Ot.Z],emits:["search","previous","next","play","pause","stop","seek","consume","random","repeat","set-volume","mute","unmute"],props:{track:{type:Object},status:{type:Object,default:()=>{}},buttons:{type:Object,default:()=>({previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0})},volumeRange:{type:Array,default:()=>[0,100]}},data(){const t=Object.keys(this.buttons)?.length?this.buttons:{previous:!0,next:!0,stop:!0,consume:!0,random:!0,repeat:!0};return{expanded:!1,lastSync:0,elapsed:this.status?.elapsed||this.status?.position,buttons_:t}},computed:{duration(){return null!=this.status?.duration?this.status.duration:this.track?.duration}},methods:{getTime(){return(new Date).getTime()/1e3}},mounted(){const t=this;this.lastSync=this.getTime(),this.$watch((()=>this.track),(e=>{e&&"play"===t.status?.state||(t.lastSync=this.getTime())})),this.$watch((()=>this.status),(()=>{t.lastSync=this.getTime()})),setInterval((()=>{"stop"!==t.status?.state&&(t.elapsed=t.status?.elapsed||t.status?.position||0,"play"===t.status?.state&&(t.elapsed+=Math.round(this.getTime()-t.lastSync)))}),1e3)}},Ut=s(3744);const Et=(0,Ut.Z)(Nt,[["render",zt],["__scopeId","data-v-8db4988a"]]);var Rt=Et,Lt={name:"View",components:{Controls:Rt},emits:["play","pause","stop","next","previous","set-volume","seek","consume","random","repeat","search"],props:{pluginName:{type:String,required:!0},status:{type:Object,default:()=>{}},track:{type:Object},buttons:{type:Object}}};const At=(0,Ut.Z)(Lt,[["render",i],["__scopeId","data-v-70d7a7df"]]);var Bt=At},6237:function(t,e,s){s.d(e,{Z:function(){return k}});var a=s(6252),l=s(3577),n=s(9963);const o={class:"slider-wrapper"},i=["min","max","step","disabled","value"],u={class:"track-inner",ref:"track"},r={class:"thumb",ref:"thumb"},c=["textContent"];function d(t,e,s,d,p,m){return(0,a.wg)(),(0,a.iD)("label",o,[(0,a._)("input",{class:(0,l.C_)(["slider",{"with-label":s.withLabel}]),type:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,ref:"range",onInput:e[0]||(e[0]=(0,n.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"])),onChange:e[1]||(e[1]=(0,n.iM)(((...t)=>m.onUpdate&&m.onUpdate(...t)),["stop"]))},null,42,i),(0,a._)("div",{class:(0,l.C_)(["track",{"with-label":s.withLabel}])},[(0,a._)("div",u,null,512)],2),(0,a._)("div",r,null,512),s.withLabel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label",textContent:(0,l.zw)(s.value),ref:"label"},null,8,c)):(0,a.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(t){this.update(t.target.value),this.$emit(t.type,{...t,target:{...t.target,value:this.$refs.range.value}})},update(t){const e=this.$refs.range.clientWidth,s=(t-this.range[0])/(this.range[1]-this.range[0]),a=s*e,l=this.$refs.thumb;l.style.left=a-l.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${s}%, -50%)`,this.$refs.track.style.width=`${a}px`}},mounted(){null!=this.value&&this.update(this.value)}},m=s(3744);const v=(0,m.Z)(p,[["render",d],["__scopeId","data-v-15d8c6c5"]]);var k=v}}]);
+//# sourceMappingURL=9978.94898f2d.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js.map b/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js.map
new file mode 100644
index 000000000..ff6c9bfe5
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/9978.94898f2d.js","mappings":"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","sources":["webpack://platypush/./src/components/Media/Utils.vue","webpack://platypush/./src/components/Media/Utils.vue?af63","webpack://platypush/./src/components/Media/View.vue","webpack://platypush/./src/components/Media/Controls.vue","webpack://platypush/./src/components/Media/Controls.vue?3032","webpack://platypush/./src/components/Media/View.vue?78ca","webpack://platypush/./src/components/elements/Slider.vue","webpack://platypush/./src/components/elements/Slider.vue?787f"],"sourcesContent":["\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n \n
\n
\n\n\n\n\n\n","\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n
\n
\n \n
\n
\n\n
\n \n\n \n\n \n
\n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n\n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n
\n \n \n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Controls.vue?vue&type=template&id=8db4988a&scoped=true\"\nimport script from \"./Controls.vue?vue&type=script&lang=js\"\nexport * from \"./Controls.vue?vue&type=script&lang=js\"\n\nimport \"./Controls.vue?vue&type=style&index=0&id=8db4988a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8db4988a\"]])\n\nexport default __exports__","import { render } from \"./View.vue?vue&type=template&id=70d7a7df&scoped=true\"\nimport script from \"./View.vue?vue&type=script&lang=js\"\nexport * from \"./View.vue?vue&type=script&lang=js\"\n\nimport \"./View.vue?vue&type=style&index=0&id=70d7a7df&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-70d7a7df\"]])\n\nexport default __exports__","\n \n\n\n\n\n\n","import { render } from \"./Slider.vue?vue&type=template&id=15d8c6c5&scoped=true\"\nimport script from \"./Slider.vue?vue&type=script&lang=js\"\nexport * from \"./Slider.vue?vue&type=script&lang=js\"\n\nimport \"./Slider.vue?vue&type=style&index=0&id=15d8c6c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-15d8c6c5\"]])\n\nexport default __exports__"],"names":["name","mixins","Utils","computed","audioExtensions","Set","videoExtensions","mediaExtensions","this","methods","convertTime","time","parseFloat","t","h","parseInt","m","s","attr","ret","push","join","async","resource","download","url","subtitles","Object","request","media","mediaId","media_id","__exports__","class","status","track","buttons","$emit","$event","expanded","buttons_","previous","title","stop","state","next","disabled","muted","value","volume","range","volumeRange","target","consume","random","repeat","elapsed","duration","album","href","$route","fullPath","length","artist","components","Slider","emits","props","type","default","Array","data","keys","lastSync","position","getTime","Date","mounted","self","$watch","setInterval","Math","round","Controls","pluginName","String","required","render","ref","withLabel","min","max","step","onUpdate","Number","Boolean","event","update","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","width"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js.map b/platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js.map
deleted file mode 100644
index d7ccf51a4..000000000
--- a/platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/app-legacy.602f8c67.js","mappings":"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ACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,MAED,mBAAoB,CACnB,IACA,MAED,kBAAmB,CAClB,KACA,MAED,gBAAiB,CAChB,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,KACA,KACA,KACA,IACA,MAED,uBAAwB,CACvB,KACA,KACA,KACA,KACA,IACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,KACA,IACA,KACA,MAED,yBAA0B,CACzB,KACA,KACA,KACA,KACA,IACA,KACA,MAED,mBAAoB,CACnB,IACA,KACA,KACA,KACA,IACA,KACA,KAED,gBAAiB,CAChB,KACA,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,KACA,KACA,MAED,wBAAyB,CACxB,KACA,KACA,KACA,MAED,uBAAwB,CACvB,KACA,KACA,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,IACA,KACA,MAED,mBAAoB,CACnB,MAED,gBAAiB,CAChB,KACA,MAED,mBAAoB,CACnB,KACA,MAED,4BAA6B,CAC5B,KACA,KACA,KACA,MAED,+BAAgC,CAC/B,KACA,KACA,KACA,MAED,gCAAiC,CAChC,KACA,KACA,KACA,MAED,8BAA+B,CAC9B,KACA,KACA,KACA,MAED,6BAA8B,CAC7B,KACA,KACA,KACA,MAED,sCAAuC,CACtC,KACA,KACA,KACA,MAED,8BAA+B,CAC9B,KACA,KACA,KACA,MAED,yBAA0B,CACzB,KACA,KACA,KACA,MAED,6BAA8B,CAC7B,KACA,KACA,KACA,MAED,kBAAmB,CAClB,KACA,KACA,IACA,KACA,MAED,cAAe,CACd,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,MAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,KACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,KACA,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,KACA,KACA,OAGF,SAASoO,EAAoBC,GAC5B,IAAIC,E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","sources":["webpack://platypush/./src/bus.js","webpack://platypush/./src/App.vue","webpack://platypush/./src/components/Notifications.vue","webpack://platypush/./src/components/Notification.vue","webpack://platypush/./src/components/Notification.vue?deb2","webpack://platypush/./src/components/Notifications.vue?e79f","webpack://platypush/./src/Events.vue","webpack://platypush/./src/Events.vue?0562","webpack://platypush/./src/components/VoiceAssistant.vue","webpack://platypush/./src/components/VoiceAssistant.vue?e102","webpack://platypush/./src/components/Ntfy.vue","webpack://platypush/./src/components/Ntfy.vue?4660","webpack://platypush/./src/components/Pushbullet.vue","webpack://platypush/./src/components/Pushbullet.vue?a5f8","webpack://platypush/./src/App.vue?7ccd","webpack://platypush/./src/views/Dashboard.vue","webpack://platypush/./src/components/widgets/Row.vue","webpack://platypush/./src/components/widgets/Row.vue?bc29","webpack://platypush/./src/components/widgets/Widget.vue","webpack://platypush/./src/components/widgets/Widget.vue?043c","webpack://platypush/./src/views/Dashboard.vue?040e","webpack://platypush/./src/views/NotFound.vue","webpack://platypush/./src/views/NotFound.vue?0aab","webpack://platypush/./src/views/Login.vue","webpack://platypush/./src/views/Login.vue?240b","webpack://platypush/./src/views/Register.vue","webpack://platypush/./src/views/Register.vue?157d","webpack://platypush/./src/views/Panel.vue","webpack://platypush/./src/components/Nav.vue","webpack://platypush/./src/components/Nav.vue?1f44","webpack://platypush/./src/views/Panel.vue?792f","webpack://platypush/./src/views/Plugin.vue","webpack://platypush/./src/views/Plugin.vue?41f6","webpack://platypush/./src/router/index.js","webpack://platypush/./src/main.js","webpack://platypush/./src/utils/Api.vue","webpack://platypush/./src/utils/Api.vue?331a","webpack://platypush/./src/utils/Cookies.vue","webpack://platypush/./src/utils/Cookies.vue?0832","webpack://platypush/./src/utils/DateTime.vue","webpack://platypush/./src/utils/DateTime.vue?3df3","webpack://platypush/./src/utils/Events.vue","webpack://platypush/./src/utils/Events.vue?ad6c","webpack://platypush/./src/utils/Notification.vue","webpack://platypush/./src/utils/Notification.vue?b668","webpack://platypush/./src/utils/Screen.vue","webpack://platypush/./src/utils/Screen.vue?714e","webpack://platypush/./src/utils/Text.vue","webpack://platypush/./src/utils/Text.vue?61b3","webpack://platypush/./src/utils/Types.vue","webpack://platypush/./src/utils/Types.vue?2b41","webpack://platypush/./src/Utils.vue","webpack://platypush/./src/Utils.vue?83c2","webpack://platypush/./src/components/Loading.vue","webpack://platypush/./src/components/Loading.vue?1ccf","webpack://platypush/./src/components/Modal.vue","webpack://platypush/./src/components/Modal.vue?db1b","webpack://platypush/./src/components/elements/Dropdown.vue","webpack://platypush/./src/components/elements/Dropdown.vue?e934","webpack://platypush/./src/components/elements/DropdownItem.vue","webpack://platypush/./src/components/elements/DropdownItem.vue?d591","webpack://platypush/./src/components/elements/Icon.vue","webpack://platypush/./src/components/elements/Icon.vue?fdba","webpack://platypush/./src/components/panels/Settings/Index.vue","webpack://platypush/./src/components/panels/Settings/Token.vue","webpack://platypush/./src/components/panels/Settings/Token.vue?4a12","webpack://platypush/./src/components/panels/Settings/Users.vue","webpack://platypush/./src/components/panels/Settings/Users.vue?407b","webpack://platypush/./src/components/panels/Settings/Index.vue?0df9","webpack://platypush/./src/components/panels|lazy|/^\\.\\/.*\\/Index$/|groupOptions: {}|namespace object","webpack://platypush/./src/components/widgets|lazy|/^\\.\\/.*\\/Index$/|groupOptions: {}|namespace object","webpack://platypush/webpack/bootstrap","webpack://platypush/webpack/runtime/chunk loaded","webpack://platypush/webpack/runtime/compat get default export","webpack://platypush/webpack/runtime/create fake namespace object","webpack://platypush/webpack/runtime/define property getters","webpack://platypush/webpack/runtime/ensure chunk","webpack://platypush/webpack/runtime/get javascript chunk filename","webpack://platypush/webpack/runtime/get mini-css chunk filename","webpack://platypush/webpack/runtime/global","webpack://platypush/webpack/runtime/hasOwnProperty shorthand","webpack://platypush/webpack/runtime/load script","webpack://platypush/webpack/runtime/make namespace object","webpack://platypush/webpack/runtime/publicPath","webpack://platypush/webpack/runtime/css loading","webpack://platypush/webpack/runtime/jsonp chunk loading","webpack://platypush/webpack/startup"],"sourcesContent":["import mitt from 'mitt';\n\nconst bus = mitt();\n\nexport { bus };\n","\n \n \n \n \n \n\n \n\n\n\n\n\n\n","\n
\n \n \n
\n\n\n\n\n","\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n\n\n\n\n","import { render } from \"./Notification.vue?vue&type=template&id=7646705e&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nimport \"./Notification.vue?vue&type=style&index=0&id=7646705e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7646705e\"]])\n\nexport default __exports__","import { render } from \"./Notifications.vue?vue&type=template&id=6dc8bebc&scoped=true\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js\"\n\nimport \"./Notifications.vue?vue&type=style&index=0&id=6dc8bebc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6dc8bebc\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Events.vue?vue&type=template&id=26b9b70f\"\nimport script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n \n \n \n \n
\n\n
\n
\n Assistant listening\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n\n\n\n\n","import { render } from \"./VoiceAssistant.vue?vue&type=template&id=3f009270\"\nimport script from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\nexport * from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\n\nimport \"./VoiceAssistant.vue?vue&type=style&index=0&id=3f009270&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Ntfy.vue?vue&type=template&id=1c4a4708\"\nimport script from \"./Ntfy.vue?vue&type=script&lang=js\"\nexport * from \"./Ntfy.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Pushbullet.vue?vue&type=template&id=bf9869d4\"\nimport script from \"./Pushbullet.vue?vue&type=script&lang=js\"\nexport * from \"./Pushbullet.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=8d9fac48\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=8d9fac48&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n
\n \n \n \n \n \n \n \n
\n\n\n\n\n\n\n\n","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Row.vue?vue&type=template&id=1b4663f2&scoped=true\"\nimport script from \"./Row.vue?vue&type=script&lang=js\"\nexport * from \"./Row.vue?vue&type=script&lang=js\"\n\nimport \"./Row.vue?vue&type=style&index=0&id=1b4663f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b4663f2\"]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Widget.vue?vue&type=template&id=5df52982&scoped=true\"\nimport script from \"./Widget.vue?vue&type=script&lang=js\"\nexport * from \"./Widget.vue?vue&type=script&lang=js\"\n\nimport \"./Widget.vue?vue&type=style&index=0&id=5df52982&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5df52982\"]])\n\nexport default __exports__","import { render } from \"./Dashboard.vue?vue&type=template&id=cefcfdfc&scoped=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=cefcfdfc&lang=scss&scoped=true\"\nimport \"./Dashboard.vue?vue&type=style&index=1&id=cefcfdfc&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cefcfdfc\"]])\n\nexport default __exports__","\n
Object not found
\n\n\n\n\n","import { render } from \"./NotFound.vue?vue&type=template&id=49501f4d\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Login.vue?vue&type=template&id=16cef6aa&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=16cef6aa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16cef6aa\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Register.vue?vue&type=template&id=1244b238\"\nimport script from \"./Register.vue?vue&type=script&lang=js\"\nexport * from \"./Register.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n \n\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n\n\n\n\n\n\n\n","\n \n\n\n\n\n\n\n","import { render } from \"./Nav.vue?vue&type=template&id=69a507f4&scoped=true\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=69a507f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69a507f4\"]])\n\nexport default __exports__","import { render } from \"./Panel.vue?vue&type=template&id=344b6d1a&scoped=true\"\nimport script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\n\nimport \"./Panel.vue?vue&type=style&index=0&id=344b6d1a&lang=scss&scoped=true\"\nimport \"./Panel.vue?vue&type=style&index=1&id=344b6d1a&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-344b6d1a\"]])\n\nexport default __exports__","\n \n \n
\n \n
\n \n\n\n\n\n\n\n\n","import { render } from \"./Plugin.vue?vue&type=template&id=67571c94&scoped=true\"\nimport script from \"./Plugin.vue?vue&type=script&lang=js\"\nexport * from \"./Plugin.vue?vue&type=script&lang=js\"\n\nimport \"./Plugin.vue?vue&type=style&index=0&id=67571c94&lang=scss&scoped=true\"\nimport \"./Plugin.vue?vue&type=style&index=1&id=67571c94&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67571c94\"]])\n\nexport default __exports__","import { createWebHistory, createRouter } from \"vue-router\";\nimport Dashboard from \"@/views/Dashboard.vue\";\nimport NotFound from \"@/views/NotFound\";\nimport Login from \"@/views/Login\";\nimport Register from \"@/views/Register\";\nimport Panel from \"@/views/Panel\";\nimport Plugin from \"@/views/Plugin\";\n\nconst routes = [\n {\n path: \"/\",\n name: \"Panel\",\n component: Panel,\n },\n\n {\n path: \"/dashboard/:name\",\n name: \"Dashboard\",\n component: Dashboard,\n },\n\n {\n path: \"/plugin/:plugin\",\n name: \"Plugin\",\n component: Plugin,\n },\n\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n },\n\n {\n path: \"/register\",\n name: \"Register\",\n component: Register,\n },\n\n {\n path: \"/:catchAll(.*)\",\n component: NotFound,\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\n\nconst app = createApp(App)\napp.config.globalProperties._config = window.config\napp.use(router).mount('#app')\n","\n\n","import script from \"./Api.vue?vue&type=script&lang=js\"\nexport * from \"./Api.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Cookies.vue?vue&type=script&lang=js\"\nexport * from \"./Cookies.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./DateTime.vue?vue&type=script&lang=js\"\nexport * from \"./DateTime.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Screen.vue?vue&type=script&lang=js\"\nexport * from \"./Screen.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Types.vue?vue&type=script&lang=js\"\nexport * from \"./Types.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n\n\n","import { render } from \"./Loading.vue?vue&type=template&id=4d9c871b&scoped=true\"\nconst script = {}\n\nimport \"./Loading.vue?vue&type=style&index=0&id=4d9c871b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d9c871b\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=7d1f6e8b&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=7d1f6e8b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d1f6e8b\"]])\n\nexport default __exports__","\n
\n \n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Dropdown.vue?vue&type=template&id=21bf0316&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=21bf0316&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21bf0316\"]])\n\nexport default __exports__","\n
\n
\n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=0a3cac88&scoped=true\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=0a3cac88&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0a3cac88\"]])\n\nexport default __exports__","\n
\n \n \n
\n\n\n\n\n\n","import { render } from \"./Icon.vue?vue&type=template&id=706a3bd1&scoped=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\n\nimport \"./Icon.vue?vue&type=style&index=0&id=706a3bd1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-706a3bd1\"]])\n\nexport default __exports__","\n
\n \n
\n \n
\n\n
\n \n
\n \n\n \n \n \n \n
\n\n\n\n\n\n","\n
\n \n\n \n
\n \n
\n \n\n
\n
\n
Generate a JWT authentication token that can be used for API calls to the /execute endpoint.
\n
You can include the token in your requests in any of the following ways:
\n\n
\n
Specify it on the Authorization: Bearer header;
\n
Specify it on the X-Token header;
\n
Specify it as a URL parameter: http://site:8008/execute?token=...;
\n
Specify it on the body of your JSON request: {\"type\":\"request\", \"action\", \"...\", \"token\":\"...\"}.
\n
\n\n Confirm your credentials in order to generate a new token.\n
\n\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=5f9053de\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=5f9053de&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n \n \n \n\n \n \n \n\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Users.vue?vue&type=template&id=2153f27b\"\nimport script from \"./Users.vue?vue&type=script&lang=js\"\nexport * from \"./Users.vue?vue&type=script&lang=js\"\n\nimport \"./Users.vue?vue&type=style&index=0&id=2153f27b&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=d5c06b82\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=d5c06b82&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Camera/Index\": [\n\t\t5528,\n\t\t5528\n\t],\n\t\"./CameraAndroidIpcam/Index\": [\n\t\t6739,\n\t\t6739\n\t],\n\t\"./CameraCv/Index\": [\n\t\t8184,\n\t\t5528,\n\t\t8184\n\t],\n\t\"./CameraFfmpeg/Index\": [\n\t\t5111,\n\t\t5528,\n\t\t5111\n\t],\n\t\"./CameraGstreamer/Index\": [\n\t\t699,\n\t\t5528,\n\t\t699\n\t],\n\t\"./CameraIrMlx90640/Index\": [\n\t\t9895,\n\t\t5528,\n\t\t9895\n\t],\n\t\"./CameraPi/Index\": [\n\t\t4548,\n\t\t5528,\n\t\t4548\n\t],\n\t\"./Entities/Index\": [\n\t\t914,\n\t\t9892\n\t],\n\t\"./Execute/Index\": [\n\t\t7643,\n\t\t7643\n\t],\n\t\"./Light/Index\": [\n\t\t1406,\n\t\t3490,\n\t\t2107,\n\t\t1406\n\t],\n\t\"./LightHue/Index\": [\n\t\t3674,\n\t\t3490,\n\t\t2107,\n\t\t1406,\n\t\t3674\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t6509\n\t],\n\t\"./MediaMpv/Index\": [\n\t\t5895,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t5895\n\t],\n\t\"./MediaOmxplayer/Index\": [\n\t\t9633,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t9633\n\t],\n\t\"./MediaVlc/Index\": [\n\t\t767,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t767\n\t],\n\t\"./Music/Index\": [\n\t\t5781,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t2957,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t6833,\n\t\t2957\n\t],\n\t\"./MusicSnapcast/Index\": [\n\t\t2790,\n\t\t3490,\n\t\t2107,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t7196,\n\t\t2107,\n\t\t8337,\n\t\t7029,\n\t\t6833,\n\t\t7196\n\t],\n\t\"./Rtorrent/Index\": [\n\t\t2820,\n\t\t8337,\n\t\t779,\n\t\t6162,\n\t\t2820\n\t],\n\t\"./Settings/Index\": [\n\t\t5392\n\t],\n\t\"./Sound/Index\": [\n\t\t5193,\n\t\t5193\n\t],\n\t\"./Switches/Index\": [\n\t\t4276,\n\t\t4276\n\t],\n\t\"./Switches/LightHue/Index\": [\n\t\t2844,\n\t\t3490,\n\t\t6590,\n\t\t2844\n\t],\n\t\"./Switches/Smartthings/Index\": [\n\t\t9196,\n\t\t3490,\n\t\t6590,\n\t\t9196\n\t],\n\t\"./Switches/SwitchTplink/Index\": [\n\t\t3785,\n\t\t3490,\n\t\t6590,\n\t\t3785\n\t],\n\t\"./Switches/SwitchWemo/Index\": [\n\t\t5210,\n\t\t3490,\n\t\t6590,\n\t\t5210\n\t],\n\t\"./Switches/Switchbot/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/SwitchbotBluetooth/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/ZigbeeMqtt/Index\": [\n\t\t5466,\n\t\t3490,\n\t\t6590,\n\t\t5466\n\t],\n\t\"./Switches/Zwave/Index\": [\n\t\t7262,\n\t\t3490,\n\t\t6590,\n\t\t7262\n\t],\n\t\"./Switches/ZwaveMqtt/Index\": [\n\t\t2380,\n\t\t3490,\n\t\t6590,\n\t\t2380\n\t],\n\t\"./Torrent/Index\": [\n\t\t9299,\n\t\t8337,\n\t\t779,\n\t\t6162,\n\t\t9299\n\t],\n\t\"./Tts/Index\": [\n\t\t2466,\n\t\t4021,\n\t\t2466\n\t],\n\t\"./TtsGoogle/Index\": [\n\t\t1938,\n\t\t4021,\n\t\t1938\n\t],\n\t\"./TvSamsungWs/Index\": [\n\t\t615,\n\t\t615\n\t],\n\t\"./ZigbeeMqtt/Index\": [\n\t\t4848,\n\t\t3490,\n\t\t2107,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t8586,\n\t\t3490,\n\t\t2107,\n\t\t4658,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t2107,\n\t\t4658,\n\t\t2362\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3379;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./Calendar/Index\": [\n\t\t345,\n\t\t345\n\t],\n\t\"./Camera/Index\": [\n\t\t2346,\n\t\t2346\n\t],\n\t\"./Component/Index\": [\n\t\t5824,\n\t\t3490,\n\t\t2107,\n\t\t5824\n\t],\n\t\"./DateTime/Index\": [\n\t\t1595,\n\t\t9575,\n\t\t1595\n\t],\n\t\"./DateTimeWeather/Index\": [\n\t\t5779,\n\t\t1798,\n\t\t9575,\n\t\t5779\n\t],\n\t\"./ImageCarousel/Index\": [\n\t\t6003,\n\t\t1798,\n\t\t9575,\n\t\t6003\n\t],\n\t\"./Music/Index\": [\n\t\t6013,\n\t\t6013\n\t],\n\t\"./Plugin/Index\": [\n\t\t4826,\n\t\t4826\n\t],\n\t\"./RssNews/Index\": [\n\t\t7420,\n\t\t7420\n\t],\n\t\"./Weather/Index\": [\n\t\t1798,\n\t\t1798\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6725;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \"-legacy.\" + {\"65\":\"a4e6662a\",\"345\":\"dcb6e74e\",\"518\":\"e665a841\",\"615\":\"fba0e1b5\",\"699\":\"cb1ccfbb\",\"767\":\"f33d812b\",\"779\":\"b22c1cc7\",\"1155\":\"3b386edd\",\"1406\":\"49afea8a\",\"1595\":\"69aea4ae\",\"1798\":\"b42f39d9\",\"1938\":\"e350f72d\",\"2107\":\"d79fdb71\",\"2346\":\"4845c2ae\",\"2362\":\"6b95b958\",\"2380\":\"0d05fcbd\",\"2466\":\"b6981a49\",\"2790\":\"ea683344\",\"2820\":\"869be689\",\"2844\":\"b3683bc2\",\"2957\":\"a0d5f651\",\"3490\":\"d482e29b\",\"3499\":\"90eae609\",\"3674\":\"1f20942d\",\"3785\":\"5ec00494\",\"4021\":\"a3380d38\",\"4196\":\"b3577e2e\",\"4276\":\"18787ca7\",\"4548\":\"e2883bdd\",\"4658\":\"92eb441e\",\"4826\":\"f73c82f0\",\"4848\":\"c406221e\",\"4981\":\"c4835180\",\"5111\":\"262ea3c5\",\"5193\":\"d8c2e027\",\"5207\":\"b6625280\",\"5210\":\"e39ce8e4\",\"5466\":\"ba464f70\",\"5528\":\"5b7db199\",\"5779\":\"8c634228\",\"5824\":\"c9733a88\",\"5895\":\"e1ce8e90\",\"6003\":\"f3446996\",\"6013\":\"b02eb716\",\"6027\":\"1e7fc2ce\",\"6162\":\"bf13f6e2\",\"6509\":\"ab6d64c3\",\"6590\":\"a024a679\",\"6739\":\"c665b953\",\"6833\":\"00db1080\",\"7029\":\"c3dab656\",\"7196\":\"a47a2493\",\"7262\":\"13af887b\",\"7420\":\"a57de4be\",\"7643\":\"5b846090\",\"8184\":\"702db0b7\",\"8337\":\"fcf13df8\",\"8729\":\"19ca396b\",\"9196\":\"1cf345e1\",\"9299\":\"adb4a75b\",\"9575\":\"fb8eab70\",\"9633\":\"8a00fadb\",\"9694\":\"a11c42e2\",\"9892\":\"6a0b2b51\",\"9895\":\"acee9428\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"65\":\"d6cbc229\",\"345\":\"0d938275\",\"518\":\"44f63b6e\",\"615\":\"be187f79\",\"779\":\"459f0f41\",\"1155\":\"3c072b53\",\"1406\":\"3c45f7ef\",\"1798\":\"5047113b\",\"2107\":\"3a08bbb5\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"3490\":\"3516cb6e\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4658\":\"0aa0c9b4\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5466\":\"fb0c1b5f\",\"5528\":\"a4270756\",\"5779\":\"b285a776\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6162\":\"f3d46bda\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"7029\":\"13387da1\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7643\":\"e25374a8\",\"8729\":\"f98d84da\",\"9196\":\"18347c3c\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\",\"9892\":\"68b29dbb\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"platypush:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"65\":1,\"345\":1,\"518\":1,\"615\":1,\"779\":1,\"1155\":1,\"1406\":1,\"1798\":1,\"2107\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"3490\":1,\"3785\":1,\"4021\":1,\"4196\":1,\"4276\":1,\"4658\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5466\":1,\"5528\":1,\"5779\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6162\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"7029\":1,\"7262\":1,\"7420\":1,\"7643\":1,\"8729\":1,\"9196\":1,\"9575\":1,\"9694\":1,\"9892\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^((34|65)90|2107|4021|4981|6162|8729|9575)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkplatypush\"] = self[\"webpackChunkplatypush\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(5736); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["bus","mitt","hasWebsocket","ref","config","websocket_port","hasAssistant","hasPushbullet","hasNtfy","class","notifications","notification","id","index","key","text","html","title","link","image","warning","error","destroy","clicked","src","alt","icon","style","color","iconClass","name","props","methods","this","window","open","$emit","__exports__","components","Notification","duration","type","Number","default","data","timeouts","create","args","parseInt","setTimeout","bind","wsPort","ws","initialized","pending","opened","timeout","reconnectMsecs","handlers","handlerNameToEventTypes","onWebsocketTimeout","console","log","close","onClose","onMessage","event","JSON","parse","e","warn","debug","push","Object","values","handler","Array","Function","onOpen","onclose","clearTimeout","undefined","onError","code","reason","init","protocol","location","url","hostname","WebSocket","err","onmessage","onopen","onerror","subscribe","msg","events","length","handlerName","unsubscribe","keys","created","state","alerting","responding","speechRecognized","listening","Modal","mixins","Utils","responseText","phrase","hideTimeout","reset","conversationStart","$refs","assistantModal","show","conversationEnd","self","response","response_text","alertOn","alertOff","registerHandlers","mounted","notify","message","push_type","body","Pushbullet","Ntfy","Notifications","Events","VoiceAssistant","userAuthenticated","computed","onNotification","initConfig","request","render","loading","classes","rows","row","i","widgets","widget","j","component","getWidgetProps","String","required","split","concat","Widget","Loading","Row","refreshSeconds","parseTemplate","tmpl","node","DOMParser","parseFromString","childNodes","attributes","nodeValue","getElementsByTagName","map","children","el","nodeName","attrs","reduce","obj","content","innerHTML","$options","refreshDashboard","$route","params","template","setInterval","toFixed","method","placeholder","_register","value","register","Boolean","parseBoolean","Login","panels","selectedPanel","$event","panel","href","collapsed","panelNames","onItemClick","icons","imgUrl","emits","homeIdx","indexOf","slice","sort","host","Settings","Nav","plugins","backends","procedures","initSelectedPanel","match","hash","plugin","initPanels","entries","forEach","componentName","token","toUpperCase","join","comp","pluginName","parseConfig","Promise","all","initializeDefaultViews","execute","entities","initPanel","toString","routes","path","Panel","Dashboard","Plugin","Register","NotFound","router","createRouter","history","createWebHistory","app","createApp","App","globalProperties","_config","use","mount","showError","opts","resolve","reject","then","errors","output","catch","action","getCookies","document","cookie","item","k","v","formatDate","date","year","Date","toDateString","substring","formatTime","seconds","toTimeString","formatDateTime","_eventsReady","$root","subFunc","generateId","unwatch","$watch","newVal","btoa","fromCharCode","Math","round","random","isMobile","matchMedia","matches","isTablet","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","Api","Cookies","DateTime","Screen","Text","Types","n","script","isVisible","zIndex","$attrs","width","height","stopPropagation","visible","level","timeoutId","prevVisible","hide","toggle","visibleHndl","updated","maxZIndex","getComputedStyle","$el","outermostModals","querySelectorAll","modal","items","keepOpenOnItemClick","documentClickHndl","element","target","dropdown","parentElement","removeEventListener","addEventListener","left","top","parseFloat","button","getBoundingClientRect","innerWidth","clientWidth","innerHeight","clientHeight","itemClass","iconUrl","Icon","disabled","$parent","className","selectedView","selected","usersView","addUserModal","sessionToken","currentUser","onTokenSelect","generateToken","username","password","validityDays","expiry_days","tokenModal","select","execCommand","createUser","commandRunning","changePassword","selectedUser","users","user","user_id","changePasswordModal","deleteUser","DropdownItem","Dropdown","refresh","preventDefault","form","addUserForm","input","confirm_password","session_token","changePasswordForm","new_password","confirm_new_password","success","old_password","confirm","Users","Token","webpackAsyncContext","req","__webpack_require__","o","Error","ids","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","__proto__","mode","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","promises","miniCssF","g","globalThis","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","prev","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js b/platypush/backend/http/webapp/dist/static/js/app-legacy.7e8eb974.js
similarity index 81%
rename from platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js
rename to platypush/backend/http/webapp/dist/static/js/app-legacy.7e8eb974.js
index 5bed32f73..4bd823fbf 100644
--- a/platypush/backend/http/webapp/dist/static/js/app-legacy.602f8c67.js
+++ b/platypush/backend/http/webapp/dist/static/js/app-legacy.7e8eb974.js
@@ -1,2 +1,2 @@
-(function(){var e={5250:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var s=n(9652),i=(0,s.Z)()},5736: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)("Ntfy"),f=(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),a.hasNtfy?((0,i.wg)(),(0,i.j4)(d,{key:3,ref:"ntfy"},null,512)):(0,i.kq)("",!0),(0,i.Wm)(f)],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(6813);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)),N={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;nPlatypush
',3),Oe={key:0,class:"row"},je=Pe((function(){return(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1)})),$e=[je],Ee={class:"row buttons"},ze=["value"],We=Pe((function(){return(0,i._)("div",{class:"row pull-right"},[(0,i._)("label",{class:"checkbox"},[(0,i._)("input",{type:"checkbox",name:"remember"}),(0,i.Uk)(" Keep me logged in on this device  ")])],-1)}));function Le(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("div",Me,[(0,i._)("form",Ne,[qe,a._register?((0,i.wg)(),(0,i.iD)("div",Oe,$e)):(0,i.kq)("",!0),(0,i._)("div",Ee,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:a._register?"Register":"Login"},null,8,ze)]),We])])}var Ae={name:"Login",mixins:[Z.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register:function(){return this.parseBoolean(this.register)}}};const Ve=(0,_.Z)(Ae,[["render",Le],["__scopeId","data-v-16cef6aa"]]);var He=Ve;function Fe(e,t,n,s,r,a){var o=(0,i.up)("Login");return(0,i.wg)(),(0,i.j4)(o,{register:!0})}var Be={name:"Register",mixins:[He],components:{Login:He},props:{register:{type:Boolean,required:!1,default:!0}}};const Ye=(0,_.Z)(Be,[["render",Fe]]);var Ke=Ye,Ge={key:2,class:"canvas"},Je={class:"panel"},Xe={key:3,class:"canvas"};function Qe(e,t,n,s,r,a){var o=(0,i.up)("Loading"),c=(0,i.up)("Nav"),u=(0,i.up)("Settings");return(0,i.wg)(),(0,i.iD)("main",null,[r.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):((0,i.wg)(),(0,i.j4)(c,{key:1,panels:r.components,"selected-panel":r.selectedPanel,hostname:r.hostname,onSelect:t[0]||(t[0]=function(e){return r.selectedPanel=e})},null,8,["panels","selected-panel","hostname"])),"settings"===r.selectedPanel?((0,i.wg)(),(0,i.iD)("div",Ge,[(0,i._)("div",Je,[(0,i.Wm)(u)])])):((0,i.wg)(),(0,i.iD)("div",Xe,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(r.components,(function(e,t){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["panel",{hidden:t!==r.selectedPanel}]),key:t},[t===r.selectedPanel?((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),{key:0,config:e.config,"plugin-name":t},null,8,["config","plugin-name"])):(0,i.kq)("",!0)],2)})),128))]))])}var et=n(6084),tt=(n(4723),n(4747),n(9720),n(9600),n(7042),function(e){return(0,i.dD)("data-v-69a507f4"),e=e(),(0,i.Cn)(),e}),nt=tt((function(){return(0,i._)("i",{class:"fas fa-bars"},null,-1)})),st=["textContent"],it={class:"plugins"},rt=["title","onClick"],at=["href"],ot={class:"icon"},ct=["src"],lt={key:2,class:"fas fa-puzzle-piece"},ut=["textContent"],dt={class:"footer"},ft={href:"/#settings"},pt=tt((function(){return(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fa fa-cog"})],-1)})),ht={key:0,class:"name"},mt={href:"/logout"},gt=tt((function(){return(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fas fa-sign-out-alt"})],-1)})),vt={key:0,class:"name"};function wt(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("nav",{class:(0,l.C_)({collapsed:r.collapsed})},[(0,i._)("div",{class:"toggler",onClick:t[0]||(t[0]=function(e){return r.collapsed=!r.collapsed})},[nt,n.hostname?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"hostname",textContent:(0,l.zw)(n.hostname)},null,8,st)):(0,i.kq)("",!0)]),(0,i._)("ul",it,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.panelNames,(function(e){var t,s;return(0,i.wg)(),(0,i.iD)("li",{key:e,class:(0,l.C_)(["entry",{selected:e===n.selectedPanel}]),title:e,onClick:function(t){return a.onItemClick(e)}},[(0,i._)("a",{href:"/#".concat(e)},[(0,i._)("span",ot,[null!==(t=r.icons[e])&&void 0!==t&&t.class?((0,i.wg)(),(0,i.iD)("i",{key:0,class:(0,l.C_)(r.icons[e].class)},null,2)):null!==(s=r.icons[e])&&void 0!==s&&s.imgUrl?((0,i.wg)(),(0,i.iD)("img",{key:1,src:r.icons[e].imgUrl,alt:"name"},null,8,ct)):((0,i.wg)(),(0,i.iD)("i",lt))]),r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",{key:0,class:"name",textContent:(0,l.zw)("entities"==e?"Home":e)},null,8,ut))],8,at)],10,rt)})),128))]),(0,i._)("ul",dt,[(0,i._)("li",{class:(0,l.C_)({selected:"settings"===n.selectedPanel}),title:"Settings",onClick:t[1]||(t[1]=function(e){return a.onItemClick("settings")})},[(0,i._)("a",ft,[pt,r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ht,"Settings"))])],2),(0,i._)("li",{title:"Logout",onClick:t[2]||(t[2]=function(e){return a.onItemClick("logout")})},[(0,i._)("a",mt,[gt,r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",vt,"Logout"))])])])],2)}n(2707);var bt=n(1359),yt={name:"Nav",emits:["select"],mixins:[Z.Z],props:{panels:{type:Object,required:!0},selectedPanel:{type:String},hostname:{type:String}},computed:{panelNames:function(){var e=Object.keys(this.panels),t=e.indexOf("entities");return t>=0?["entities"].concat(e.slice(0,t).concat(e.slice(t+1)).sort()):e.sort()}},methods:{onItemClick:function(e){this.$emit("select",e),this.collapsed=!0}},data:function(){return{collapsed:!0,icons:bt,host:null}}};const kt=(0,_.Z)(yt,[["render",wt],["__scopeId","data-v-69a507f4"]]);var xt=kt,_t=n(5392),Ct={name:"Panel",mixins:[Z.Z],components:{Settings:_t["default"],Nav:xt,Loading:ge.Z},data:function(){return{loading:!1,plugins:{},backends:{},procedures:{},components:{},hostname:void 0,selectedPanel:void 0}},methods:{initSelectedPanel:function(){var e=this.$route.hash.match("#?([a-zA-Z0-9.]+)[?]?(.*)"),t=e?e[1]:"entities";null!==t&&void 0!==t&&t.length&&(this.selectedPanel=t)},initPanels:function(){var e=this;this.components={},Object.entries(this.plugins).forEach(function(){var t=(0,a.Z)(regeneratorRuntime.mark((function t(s){var r,o,c,l,u,d;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return r=(0,et.Z)(s,2),o=r[0],c=r[1],l=o.split(".").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join(""),u=null,t.prev=3,t.next=6,n(3379)("./".concat(l,"/Index"));case 6:u=t.sent,t.next=12;break;case 9:return t.prev=9,t.t0=t["catch"](3),t.abrupt("return");case 12:d=(0,i.RC)((0,a.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.abrupt("return",u);case 1:case"end":return e.stop()}}),e)})))),e.$options.components[o]=d,e.components[o]={component:d,pluginName:o,config:c};case 15:case"end":return t.stop()}}),t,null,[[3,9]])})));return function(e){return t.apply(this,arguments)}}())},parseConfig:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var n,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([e.request("config.get_plugins"),e.request("config.get_backends"),e.request("config.get_procedures"),e.request("config.get_device_id")]);case 2:n=t.sent,s=(0,et.Z)(n,4),e.plugins=s[0],e.backends=s[1],e.procedures=s[2],e.hostname=s[3],e.initializeDefaultViews();case 9:case"end":return t.stop()}}),t)})))()},initializeDefaultViews:function(){this.plugins.execute={},this.plugins.entities={}}},mounted:function(){var e=this;return(0,a.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.parseConfig();case 4:e.initPanels(),e.initSelectedPanel();case 6:return t.prev=6,e.loading=!1,t.finish(6);case 9:case"end":return t.stop()}}),t,null,[[1,,6,9]])})))()}};const Dt=(0,_.Z)(Ct,[["render",Qe],["__scopeId","data-v-344b6d1a"]]);var It=Dt,St={key:1,class:"canvas"};function Tt(e,t,n,s,r,a){var o=(0,i.up)("Loading");return(0,i.wg)(),(0,i.iD)("main",null,[r.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):((0,i.wg)(),(0,i.iD)("div",St,[((0,i.wg)(),(0,i.j4)((0,i.LL)(r.component),{config:r.config,"plugin-name":a.pluginName},null,8,["config","plugin-name"]))]))])}n(9714);var Zt={name:"Panel",mixins:[Z.Z],components:{Settings:_t["default"],Nav:xt,Loading:ge.Z},data:function(){return{loading:!1,config:{},plugins:{},backends:{},procedures:{},component:void 0,hostname:void 0,selectedPanel:void 0}},computed:{pluginName:function(){return this.$route.params.plugin}},methods:{initPanel:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var s,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return s=e.pluginName.split(".").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join(""),r=null,t.prev=2,t.next=5,n(3379)("./".concat(s,"/Index"));case 5:r=t.sent,t.next=13;break;case 8:return t.prev=8,t.t0=t["catch"](2),console.error(t.t0),e.notify({error:!0,title:"Cannot load plugin ".concat(e.pluginName),text:t.t0.toString()}),t.abrupt("return");case 13:e.component=(0,i.RC)((0,a.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.abrupt("return",r);case 1:case"end":return e.stop()}}),e)})))),e.$options.components[name]=e.component;case 15:case"end":return t.stop()}}),t,null,[[2,8]])})))()},initConfig:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.request("config.get");case 2:return n=t.sent,e.config=n[e.pluginName]||{},t.next=6,e.request("config.get_device_id");case 6:e.hostname=t.sent;case 7:case"end":return t.stop()}}),t)})))()}},mounted:function(){var e=this;return(0,a.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.initConfig();case 4:return t.next=6,e.initPanel();case 6:return t.prev=6,e.loading=!1,t.finish(6);case 9:case"end":return t.stop()}}),t,null,[[1,,6,9]])})))()}};const Ut=(0,_.Z)(Zt,[["render",Tt],["__scopeId","data-v-67571c94"]]);var Rt=Ut,Pt=[{path:"/",name:"Panel",component:It},{path:"/dashboard/:name",name:"Dashboard",component:Se},{path:"/plugin/:plugin",name:"Plugin",component:Rt},{path:"/login",name:"Login",component:He},{path:"/register",name:"Register",component:Ke},{path:"/:catchAll(.*)",component:Re}],Mt=(0,pe.p7)({history:(0,pe.PO)(),routes:Pt}),Nt=Mt,qt=(0,s.ri)(fe);qt.config.globalProperties._config=window.config,qt.use(Nt).mount("#app")},6813:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});n(1539);var s=n(9669),i=n.n(s),r={name:"Api",methods:{execute:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6e4,s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r={};return"target"in e&&e["target"]||(e["target"]="localhost"),"type"in e&&e["type"]||(e["type"]="request"),n&&(r.timeout=n),new Promise((function(n,a){i().post("/execute",e,r).then((function(e){var s;if(e=e.data.response,null!==(s=e.errors)&&void 0!==s&&s.length){var i,r=(null===(i=e.errors)||void 0===i?void 0:i[0])||e;t.notify({text:r,error:!0}),a(r)}else n(e.output)})).catch((function(e){s&&t.notify({text:e,error:!0}),a(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,s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return this.execute({type:"request",action:e,args:t},n,s)}}};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 U=Z;var R=U,P={name:"Utils",mixins:[o,d,x,b,h,D,T,R]};const M=P;var N=M},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},8453:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var s=n(6252),i=n(3577),r=["id"],a=["textContent"],o={class:"body"};function c(e,t,n,c,l,u){return(0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["modal-container fade-in",{hidden:!l.isVisible}]),id:n.id,style:(0,i.j5)({"--z-index":u.zIndex}),onClick:t[2]||(t[2]=function(){return u.close&&u.close.apply(u,arguments)})},[(0,s._)("div",{class:(0,i.C_)(["modal",e.$attrs.class])},[(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,a)):(0,s.kq)("",!0),(0,s._)("div",o,[(0,s.WI)(e.$slots,"default",{onModalClose:t[0]||(t[0]=function(){return u.close&&u.close.apply(u,arguments)})},void 0,!0)])],4)],2)],14,r)}var l=n(6347),u=(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,l.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)}}}),d=n(3744);const f=(0,d.Z)(u,[["render",c],["__scopeId","data-v-7d1f6e8b"]]);var p=f},5771: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},keepOpenOnItemClick:{type:Boolean,default:!1}},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-21bf0316"]]);var h=p},9015:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var s=n(6252),i=n(3577),r={key:0,class:"col-1 icon"},a=["textContent"];function o(e,t,n,o,c,l){var u,d,f=(0,s.up)("Icon");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)})},[null!==(u=n.iconClass)&&void 0!==u&&u.length||null!==(d=n.iconUrl)&&void 0!==d&&d.length?((0,s.wg)(),(0,s.iD)("div",r,[(0,s.Wm)(f,{class:(0,i.C_)(n.iconClass),url:n.iconUrl},null,8,["class","url"])])):(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=n(1478),l={name:"DropdownItem",components:{Icon:c.Z},props:{iconClass:{type:String},iconUrl:{type:String},text:{type:String},disabled:{type:Boolean,default:!1},itemClass:{type:String}},methods:{clicked:function(e){if(this.disabled)return!1;this.$parent.$emit("click",e),this.$parent.keepOpenOnItemClick||(this.$parent.visible=!1)}}},u=n(3744);const d=(0,u.Z)(l,[["render",o],["__scopeId","data-v-0a3cac88"]]);var f=d},1478:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var s=n(6252),i=n(3577),r={class:"icon-container"},a=["src","alt"];function o(e,t,n,o,c,l){var u,d;return(0,s.wg)(),(0,s.iD)("div",r,[null!==(u=n.url)&&void 0!==u&&u.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:n.url,alt:n.alt},null,8,a)):null!==(d=l.className)&&void 0!==d&&d.length?((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,i.C_)(["icon",l.className]),style:(0,i.j5)({color:n.color})},null,6)):(0,s.kq)("",!0)])}var c={props:{class:{type:String},url:{type:String},color:{type:String,default:""},alt:{type:String,default:""}},computed:{className:function(){return this.class}}},l=n(3744);const u=(0,l.Z)(c,[["render",o],["__scopeId","data-v-706a3bd1"]]);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;"),N=(0,s.Uk)("Specify it as a URL parameter: "),q=(0,s.Uk)("http://site:8008/execute?token=..."),O=(0,s.Uk)(";"),j=(0,s.Uk)("Specify it on the body of your JSON request: "),$=(0,s.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,s.Uk)("."),z=(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,[N,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[q]})),_:1}),O]),(0,s._)("li",null,[j,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[$]})),_:1}),E])]),z]),(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(6813),X=n(8453),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(5771)),ye=n(9015),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],"./Entities/Index":[914,9892],"./Execute/Index":[7643,7643],"./Light/Index":[1406,3490,2107,1406],"./LightHue/Index":[3674,3490,2107,1406,3674],"./Media/Index":[4196,2107,8337,7029,779,4196],"./MediaMplayer/Index":[6509,2107,8337,7029,779,4196,6509],"./MediaMpv/Index":[5895,2107,8337,7029,779,4196,5895],"./MediaOmxplayer/Index":[9633,2107,8337,7029,779,4196,9633],"./MediaVlc/Index":[767,2107,8337,7029,779,4196,767],"./Music/Index":[5781,2107,8337,7029,6833],"./MusicMpd/Index":[2957,2107,8337,7029,6833,2957],"./MusicSnapcast/Index":[2790,3490,2107,2790],"./MusicSpotify/Index":[7196,2107,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,3490,6590,2844],"./Switches/Smartthings/Index":[9196,3490,6590,9196],"./Switches/SwitchTplink/Index":[3785,3490,6590,3785],"./Switches/SwitchWemo/Index":[5210,3490,6590,5210],"./Switches/Switchbot/Index":[9694,3490,6590,9694],"./Switches/SwitchbotBluetooth/Index":[9694,3490,6590,9694],"./Switches/ZigbeeMqtt/Index":[5466,3490,6590,5466],"./Switches/Zwave/Index":[7262,3490,6590,7262],"./Switches/ZwaveMqtt/Index":[2380,3490,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":[4848,3490,2107,4848],"./Zwave/Index":[8586,3490,2107,4658,6027],"./ZwaveMqtt/Index":[2362,3490,2107,4658,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,3490,2107,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},1359:function(e){"use strict";e.exports=JSON.parse('{"camera.android.ipcam":{"class":"fab fa-android"},"camera.cv":{"class":"fas fa-camera"},"camera.ffmpeg":{"class":"fas fa-camera"},"camera.gstreamer":{"class":"fas fa-camera"},"camera.ir.mlx90640":{"class":"fas fa-sun"},"camera.pi":{"class":"fas fa-camera"},"entities":{"class":"fa fa-home"},"execute":{"class":"fa fa-play"},"light.hue":{"class":"fas fa-lightbulb"},"media.jellyfin":{"imgUrl":"/icons/jellyfin.svg"},"media.kodi":{"imgUrl":"/icons/kodi.svg"},"media.omxplayer":{"class":"fa fa-film"},"media.mplayer":{"class":"fa fa-film"},"media.mpv":{"class":"fa fa-film"},"media.plex":{"imgUrl":"/icons/plex.svg"},"media.vlc":{"class":"fa fa-film"},"music.mpd":{"class":"fas fa-music"},"music.snapcast":{"class":"fa fa-volume-up"},"music.spotify":{"class":"fab fa-spotify"},"torrent":{"class":"fa fa-magnet"},"rtorrent":{"class":"fa fa-magnet"},"smartthings":{"imgUrl":"/icons/smartthings.png"},"switches":{"class":"fas fa-toggle-on"},"switch.switchbot":{"class":"fas fa-toggle-on"},"switch.tplink":{"class":"fas fa-toggle-on"},"switchbot":{"class":"fas fa-toggle-on"},"sound":{"class":"fa fa-microphone"},"tts":{"class":"far fa-comment"},"tts.google":{"class":"fas fa-comment"},"tv.samsung.ws":{"class":"fas fa-tv"},"zigbee.mqtt":{"imgUrl":"/icons/zigbee.svg"},"zwave":{"imgUrl":"/icons/z-wave.png"},"zwave.mqtt":{"imgUrl":"/icons/z-wave.png"}}')}},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(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(s,i){if(1&i&&(s=this(s)),8&i)return s;if("object"===typeof s&&s){if(4&i&&s.__esModule)return s;if(16&i&&"function"===typeof s.then)return s}var r=Object.create(null);n.r(r);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&i&&s;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((function(e){a[e]=function(){return s[e]}}));return a["default"]=function(){return s},n.d(r,a),r}}(),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."+{65:"a4e6662a",345:"dcb6e74e",518:"e665a841",615:"fba0e1b5",699:"cb1ccfbb",767:"f33d812b",779:"b22c1cc7",1155:"3b386edd",1406:"49afea8a",1595:"69aea4ae",1798:"b42f39d9",1938:"e350f72d",2107:"d79fdb71",2346:"4845c2ae",2362:"6b95b958",2380:"0d05fcbd",2466:"b6981a49",2790:"ea683344",2820:"869be689",2844:"b3683bc2",2957:"a0d5f651",3490:"d482e29b",3499:"90eae609",3674:"1f20942d",3785:"5ec00494",4021:"a3380d38",4196:"b3577e2e",4276:"18787ca7",4548:"e2883bdd",4658:"92eb441e",4826:"f73c82f0",4848:"c406221e",4981:"c4835180",5111:"262ea3c5",5193:"d8c2e027",5207:"b6625280",5210:"e39ce8e4",5466:"ba464f70",5528:"5b7db199",5779:"8c634228",5824:"c9733a88",5895:"e1ce8e90",6003:"f3446996",6013:"b02eb716",6027:"1e7fc2ce",6162:"bf13f6e2",6509:"ab6d64c3",6590:"a024a679",6739:"c665b953",6833:"00db1080",7029:"c3dab656",7196:"a47a2493",7262:"13af887b",7420:"a57de4be",7643:"5b846090",8184:"702db0b7",8337:"fcf13df8",8729:"19ca396b",9196:"1cf345e1",9299:"adb4a75b",9575:"fb8eab70",9633:"8a00fadb",9694:"a11c42e2",9892:"6a0b2b51",9895:"acee9428"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+e+"."+{65:"d6cbc229",345:"0d938275",518:"44f63b6e",615:"be187f79",779:"459f0f41",1155:"3c072b53",1406:"3c45f7ef",1798:"5047113b",2107:"3a08bbb5",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",3490:"3516cb6e",3785:"5ed5a4df",4021:"0331be37",4196:"f1fcf8f5",4276:"07502cf2",4658:"0aa0c9b4",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5466:"fb0c1b5f",5528:"a4270756",5779:"b285a776",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6162:"f3d46bda",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",7029:"13387da1",7262:"7ac2a7a5",7420:"e42d1496",7643:"e25374a8",8729:"f98d84da",9196:"18347c3c",9575:"eba29f96",9694:"509f8cb5",9892:"68b29dbb"}[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;uPlatypush
',3),Oe={key:0,class:"row"},je=Pe((function(){return(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1)})),$e=[je],Ee={class:"row buttons"},ze=["value"],We=Pe((function(){return(0,i._)("div",{class:"row pull-right"},[(0,i._)("label",{class:"checkbox"},[(0,i._)("input",{type:"checkbox",name:"remember"}),(0,i.Uk)(" Keep me logged in on this device  ")])],-1)}));function Le(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("div",Me,[(0,i._)("form",Ne,[qe,a._register?((0,i.wg)(),(0,i.iD)("div",Oe,$e)):(0,i.kq)("",!0),(0,i._)("div",Ee,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:a._register?"Register":"Login"},null,8,ze)]),We])])}var Ae={name:"Login",mixins:[Z.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register:function(){return this.parseBoolean(this.register)}}};const Ve=(0,_.Z)(Ae,[["render",Le],["__scopeId","data-v-16cef6aa"]]);var He=Ve;function Fe(e,t,n,s,r,a){var o=(0,i.up)("Login");return(0,i.wg)(),(0,i.j4)(o,{register:!0})}var Be={name:"Register",mixins:[He],components:{Login:He},props:{register:{type:Boolean,required:!1,default:!0}}};const Ye=(0,_.Z)(Be,[["render",Fe]]);var Ke=Ye,Ge={key:2,class:"canvas"},Je={class:"panel"},Xe={key:3,class:"canvas"};function Qe(e,t,n,s,r,a){var o=(0,i.up)("Loading"),c=(0,i.up)("Nav"),u=(0,i.up)("Settings");return(0,i.wg)(),(0,i.iD)("main",null,[r.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):((0,i.wg)(),(0,i.j4)(c,{key:1,panels:r.components,"selected-panel":r.selectedPanel,hostname:r.hostname,onSelect:t[0]||(t[0]=function(e){return r.selectedPanel=e})},null,8,["panels","selected-panel","hostname"])),"settings"===r.selectedPanel?((0,i.wg)(),(0,i.iD)("div",Ge,[(0,i._)("div",Je,[(0,i.Wm)(u)])])):((0,i.wg)(),(0,i.iD)("div",Xe,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(r.components,(function(e,t){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["panel",{hidden:t!==r.selectedPanel}]),key:t},[t===r.selectedPanel?((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),{key:0,config:e.config,"plugin-name":t},null,8,["config","plugin-name"])):(0,i.kq)("",!0)],2)})),128))]))])}var et=n(6084),tt=(n(4723),n(4747),n(9720),n(9600),n(7042),function(e){return(0,i.dD)("data-v-69a507f4"),e=e(),(0,i.Cn)(),e}),nt=tt((function(){return(0,i._)("i",{class:"fas fa-bars"},null,-1)})),st=["textContent"],it={class:"plugins"},rt=["title","onClick"],at=["href"],ot={class:"icon"},ct=["src"],lt={key:2,class:"fas fa-puzzle-piece"},ut=["textContent"],dt={class:"footer"},ft={href:"/#settings"},pt=tt((function(){return(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fa fa-cog"})],-1)})),ht={key:0,class:"name"},mt={href:"/logout"},gt=tt((function(){return(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fas fa-sign-out-alt"})],-1)})),vt={key:0,class:"name"};function wt(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("nav",{class:(0,l.C_)({collapsed:r.collapsed})},[(0,i._)("div",{class:"toggler",onClick:t[0]||(t[0]=function(e){return r.collapsed=!r.collapsed})},[nt,n.hostname?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"hostname",textContent:(0,l.zw)(n.hostname)},null,8,st)):(0,i.kq)("",!0)]),(0,i._)("ul",it,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.panelNames,(function(e){var t,s;return(0,i.wg)(),(0,i.iD)("li",{key:e,class:(0,l.C_)(["entry",{selected:e===n.selectedPanel}]),title:e,onClick:function(t){return a.onItemClick(e)}},[(0,i._)("a",{href:"/#".concat(e)},[(0,i._)("span",ot,[null!==(t=r.icons[e])&&void 0!==t&&t.class?((0,i.wg)(),(0,i.iD)("i",{key:0,class:(0,l.C_)(r.icons[e].class)},null,2)):null!==(s=r.icons[e])&&void 0!==s&&s.imgUrl?((0,i.wg)(),(0,i.iD)("img",{key:1,src:r.icons[e].imgUrl,alt:"name"},null,8,ct)):((0,i.wg)(),(0,i.iD)("i",lt))]),r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",{key:0,class:"name",textContent:(0,l.zw)("entities"==e?"Home":e)},null,8,ut))],8,at)],10,rt)})),128))]),(0,i._)("ul",dt,[(0,i._)("li",{class:(0,l.C_)({selected:"settings"===n.selectedPanel}),title:"Settings",onClick:t[1]||(t[1]=function(e){return a.onItemClick("settings")})},[(0,i._)("a",ft,[pt,r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ht,"Settings"))])],2),(0,i._)("li",{title:"Logout",onClick:t[2]||(t[2]=function(e){return a.onItemClick("logout")})},[(0,i._)("a",mt,[gt,r.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",vt,"Logout"))])])])],2)}n(2707);var bt=n(1359),yt={name:"Nav",emits:["select"],mixins:[Z.Z],props:{panels:{type:Object,required:!0},selectedPanel:{type:String},hostname:{type:String}},computed:{panelNames:function(){var e=Object.keys(this.panels),t=e.indexOf("entities");return t>=0?["entities"].concat(e.slice(0,t).concat(e.slice(t+1)).sort()):e.sort()}},methods:{onItemClick:function(e){this.$emit("select",e),this.collapsed=!0}},data:function(){return{collapsed:!0,icons:bt,host:null}}};const kt=(0,_.Z)(yt,[["render",wt],["__scopeId","data-v-69a507f4"]]);var xt=kt,_t=n(5392),Ct={name:"Panel",mixins:[Z.Z],components:{Settings:_t["default"],Nav:xt,Loading:ge.Z},data:function(){return{loading:!1,plugins:{},backends:{},procedures:{},components:{},hostname:void 0,selectedPanel:void 0}},methods:{initSelectedPanel:function(){var e=this.$route.hash.match("#?([a-zA-Z0-9.]+)[?]?(.*)"),t=e?e[1]:"entities";null!==t&&void 0!==t&&t.length&&(this.selectedPanel=t)},initPanels:function(){var e=this;this.components={},Object.entries(this.plugins).forEach(function(){var t=(0,a.Z)(regeneratorRuntime.mark((function t(s){var r,o,c,l,u,d;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return r=(0,et.Z)(s,2),o=r[0],c=r[1],l=o.split(".").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join(""),u=null,t.prev=3,t.next=6,n(3379)("./".concat(l,"/Index"));case 6:u=t.sent,t.next=12;break;case 9:return t.prev=9,t.t0=t["catch"](3),t.abrupt("return");case 12:d=(0,i.RC)((0,a.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.abrupt("return",u);case 1:case"end":return e.stop()}}),e)})))),e.$options.components[o]=d,e.components[o]={component:d,pluginName:o,config:c};case 15:case"end":return t.stop()}}),t,null,[[3,9]])})));return function(e){return t.apply(this,arguments)}}())},parseConfig:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var n,s;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,Promise.all([e.request("config.get_plugins"),e.request("config.get_backends"),e.request("config.get_procedures"),e.request("config.get_device_id")]);case 2:n=t.sent,s=(0,et.Z)(n,4),e.plugins=s[0],e.backends=s[1],e.procedures=s[2],e.hostname=s[3],e.initializeDefaultViews();case 9:case"end":return t.stop()}}),t)})))()},initializeDefaultViews:function(){this.plugins.execute={},this.plugins.entities={}}},mounted:function(){var e=this;return(0,a.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.parseConfig();case 4:e.initPanels(),e.initSelectedPanel();case 6:return t.prev=6,e.loading=!1,t.finish(6);case 9:case"end":return t.stop()}}),t,null,[[1,,6,9]])})))()}};const Dt=(0,_.Z)(Ct,[["render",Qe],["__scopeId","data-v-344b6d1a"]]);var It=Dt,St={key:1,class:"canvas"};function Tt(e,t,n,s,r,a){var o=(0,i.up)("Loading");return(0,i.wg)(),(0,i.iD)("main",null,[r.loading?((0,i.wg)(),(0,i.j4)(o,{key:0})):((0,i.wg)(),(0,i.iD)("div",St,[((0,i.wg)(),(0,i.j4)((0,i.LL)(r.component),{config:r.config,"plugin-name":a.pluginName},null,8,["config","plugin-name"]))]))])}n(9714);var Zt={name:"Panel",mixins:[Z.Z],components:{Settings:_t["default"],Nav:xt,Loading:ge.Z},data:function(){return{loading:!1,config:{},plugins:{},backends:{},procedures:{},component:void 0,hostname:void 0,selectedPanel:void 0}},computed:{pluginName:function(){return this.$route.params.plugin}},methods:{initPanel:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var s,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return s=e.pluginName.split(".").map((function(e){return e[0].toUpperCase()+e.slice(1)})).join(""),r=null,t.prev=2,t.next=5,n(3379)("./".concat(s,"/Index"));case 5:r=t.sent,t.next=13;break;case 8:return t.prev=8,t.t0=t["catch"](2),console.error(t.t0),e.notify({error:!0,title:"Cannot load plugin ".concat(e.pluginName),text:t.t0.toString()}),t.abrupt("return");case 13:e.component=(0,i.RC)((0,a.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.abrupt("return",r);case 1:case"end":return e.stop()}}),e)})))),e.$options.components[name]=e.component;case 15:case"end":return t.stop()}}),t,null,[[2,8]])})))()},initConfig:function(){var e=this;return(0,a.Z)(regeneratorRuntime.mark((function t(){var n;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.request("config.get");case 2:return n=t.sent,e.config=n[e.pluginName]||{},t.next=6,e.request("config.get_device_id");case 6:e.hostname=t.sent;case 7:case"end":return t.stop()}}),t)})))()}},mounted:function(){var e=this;return(0,a.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.initConfig();case 4:return t.next=6,e.initPanel();case 6:return t.prev=6,e.loading=!1,t.finish(6);case 9:case"end":return t.stop()}}),t,null,[[1,,6,9]])})))()}};const Ut=(0,_.Z)(Zt,[["render",Tt],["__scopeId","data-v-67571c94"]]);var Rt=Ut,Pt=[{path:"/",name:"Panel",component:It},{path:"/dashboard/:name",name:"Dashboard",component:Se},{path:"/plugin/:plugin",name:"Plugin",component:Rt},{path:"/login",name:"Login",component:He},{path:"/register",name:"Register",component:Ke},{path:"/:catchAll(.*)",component:Re}],Mt=(0,pe.p7)({history:(0,pe.PO)(),routes:Pt}),Nt=Mt,qt=(0,s.ri)(fe);qt.config.globalProperties._config=window.config,qt.use(Nt).mount("#app")},6813:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});n(1539);var s=n(9669),i=n.n(s),r={name:"Api",methods:{execute:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:6e4,s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r={};return"target"in e&&e["target"]||(e["target"]="localhost"),"type"in e&&e["type"]||(e["type"]="request"),n&&(r.timeout=n),new Promise((function(n,a){i().post("/execute",e,r).then((function(e){var s;if(e=e.data.response,null!==(s=e.errors)&&void 0!==s&&s.length){var i,r=(null===(i=e.errors)||void 0===i?void 0:i[0])||e;t.notify({text:r,error:!0}),a(r)}else n(e.output)})).catch((function(e){s&&t.notify({text:e,error:!0}),a(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,s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return this.execute({type:"request",action:e,args:t},n,s)}}};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 U=Z;var R=U,P={name:"Utils",mixins:[o,d,x,b,h,D,T,R]};const M=P;var N=M},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},8453:function(e,t,n){"use strict";n.d(t,{Z:function(){return p}});var s=n(6252),i=n(3577),r=["id"],a=["textContent"],o={class:"body"};function c(e,t,n,c,l,u){return(0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["modal-container fade-in",{hidden:!l.isVisible}]),id:n.id,style:(0,i.j5)({"--z-index":u.zIndex}),onClick:t[2]||(t[2]=function(){return u.close&&u.close.apply(u,arguments)})},[(0,s._)("div",{class:(0,i.C_)(["modal",e.$attrs.class])},[(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,a)):(0,s.kq)("",!0),(0,s._)("div",o,[(0,s.WI)(e.$slots,"default",{onModalClose:t[0]||(t[0]=function(){return u.close&&u.close.apply(u,arguments)})},void 0,!0)])],4)],2)],14,r)}var l=n(6347),u=(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,l.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)}}}),d=n(3744);const f=(0,d.Z)(u,[["render",c],["__scopeId","data-v-7d1f6e8b"]]);var p=f},5771: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},keepOpenOnItemClick:{type:Boolean,default:!1}},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-21bf0316"]]);var h=p},9015:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});var s=n(6252),i=n(3577),r={key:0,class:"col-1 icon"},a=["textContent"];function o(e,t,n,o,c,l){var u,d,f=(0,s.up)("Icon");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)})},[null!==(u=n.iconClass)&&void 0!==u&&u.length||null!==(d=n.iconUrl)&&void 0!==d&&d.length?((0,s.wg)(),(0,s.iD)("div",r,[(0,s.Wm)(f,{class:(0,i.C_)(n.iconClass),url:n.iconUrl},null,8,["class","url"])])):(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=n(1478),l={name:"DropdownItem",components:{Icon:c.Z},props:{iconClass:{type:String},iconUrl:{type:String},text:{type:String},disabled:{type:Boolean,default:!1},itemClass:{type:String}},methods:{clicked:function(e){if(this.disabled)return!1;this.$parent.$emit("click",e),this.$parent.keepOpenOnItemClick||(this.$parent.visible=!1)}}},u=n(3744);const d=(0,u.Z)(l,[["render",o],["__scopeId","data-v-0a3cac88"]]);var f=d},1478:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var s=n(6252),i=n(3577),r={class:"icon-container"},a=["src","alt"];function o(e,t,n,o,c,l){var u,d;return(0,s.wg)(),(0,s.iD)("div",r,[null!==(u=n.url)&&void 0!==u&&u.length?((0,s.wg)(),(0,s.iD)("img",{key:0,class:"icon",src:n.url,alt:n.alt},null,8,a)):null!==(d=l.className)&&void 0!==d&&d.length?((0,s.wg)(),(0,s.iD)("i",{key:1,class:(0,i.C_)(["icon",l.className]),style:(0,i.j5)({color:n.color})},null,6)):(0,s.kq)("",!0)])}var c={props:{class:{type:String},url:{type:String},color:{type:String,default:""},alt:{type:String,default:""}},computed:{className:function(){return this.class}}},l=n(3744);const u=(0,l.Z)(c,[["render",o],["__scopeId","data-v-706a3bd1"]]);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;"),N=(0,s.Uk)("Specify it as a URL parameter: "),q=(0,s.Uk)("http://site:8008/execute?token=..."),O=(0,s.Uk)(";"),j=(0,s.Uk)("Specify it on the body of your JSON request: "),$=(0,s.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,s.Uk)("."),z=(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,[N,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[q]})),_:1}),O]),(0,s._)("li",null,[j,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[$]})),_:1}),E])]),z]),(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(6813),X=n(8453),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(5771)),ye=n(9015),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],"./Entities/Index":[9208,5246],"./Execute/Index":[7643,7643],"./Light/Index":[1406,3490,9974,1406],"./LightHue/Index":[3674,3490,9974,1406,3674],"./Media/Index":[4196,9974,8337,7029,779,4196],"./MediaMplayer/Index":[6509,9974,8337,7029,779,4196,6509],"./MediaMpv/Index":[5895,9974,8337,7029,779,4196,5895],"./MediaOmxplayer/Index":[9633,9974,8337,7029,779,4196,9633],"./MediaVlc/Index":[767,9974,8337,7029,779,4196,767],"./Music/Index":[5781,9974,8337,7029,6833],"./MusicMpd/Index":[2957,9974,8337,7029,6833,2957],"./MusicSnapcast/Index":[2790,3490,9974,2790],"./MusicSpotify/Index":[7196,9974,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,3490,6590,2844],"./Switches/Smartthings/Index":[9196,3490,6590,9196],"./Switches/SwitchTplink/Index":[3785,3490,6590,3785],"./Switches/SwitchWemo/Index":[5210,3490,6590,5210],"./Switches/Switchbot/Index":[9694,3490,6590,9694],"./Switches/SwitchbotBluetooth/Index":[9694,3490,6590,9694],"./Switches/ZigbeeMqtt/Index":[5466,3490,6590,5466],"./Switches/Zwave/Index":[7262,3490,6590,7262],"./Switches/ZwaveMqtt/Index":[2380,3490,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":[4848,3490,9974,4848],"./Zwave/Index":[8586,3490,9974,1485,6027],"./ZwaveMqtt/Index":[2362,3490,9974,1485,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,3490,9974,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},1359:function(e){"use strict";e.exports=JSON.parse('{"camera.android.ipcam":{"class":"fab fa-android"},"camera.cv":{"class":"fas fa-camera"},"camera.ffmpeg":{"class":"fas fa-camera"},"camera.gstreamer":{"class":"fas fa-camera"},"camera.ir.mlx90640":{"class":"fas fa-sun"},"camera.pi":{"class":"fas fa-camera"},"entities":{"class":"fa fa-home"},"execute":{"class":"fa fa-play"},"light.hue":{"class":"fas fa-lightbulb"},"media.jellyfin":{"imgUrl":"/icons/jellyfin.svg"},"media.kodi":{"imgUrl":"/icons/kodi.svg"},"media.omxplayer":{"class":"fa fa-film"},"media.mplayer":{"class":"fa fa-film"},"media.mpv":{"class":"fa fa-film"},"media.plex":{"imgUrl":"/icons/plex.svg"},"media.vlc":{"class":"fa fa-film"},"music.mpd":{"class":"fas fa-music"},"music.snapcast":{"class":"fa fa-volume-up"},"music.spotify":{"class":"fab fa-spotify"},"torrent":{"class":"fa fa-magnet"},"rtorrent":{"class":"fa fa-magnet"},"smartthings":{"imgUrl":"/icons/smartthings.png"},"switches":{"class":"fas fa-toggle-on"},"switch.switchbot":{"class":"fas fa-toggle-on"},"switch.tplink":{"class":"fas fa-toggle-on"},"switchbot":{"class":"fas fa-toggle-on"},"sound":{"class":"fa fa-microphone"},"tts":{"class":"far fa-comment"},"tts.google":{"class":"fas fa-comment"},"tv.samsung.ws":{"class":"fas fa-tv"},"zigbee.mqtt":{"imgUrl":"/icons/zigbee.svg"},"zwave":{"imgUrl":"/icons/z-wave.png"},"zwave.mqtt":{"imgUrl":"/icons/z-wave.png"}}')}},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(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(s,i){if(1&i&&(s=this(s)),8&i)return s;if("object"===typeof s&&s){if(4&i&&s.__esModule)return s;if(16&i&&"function"===typeof s.then)return s}var r=Object.create(null);n.r(r);var a={};e=e||[null,t({}),t([]),t(t)];for(var o=2&i&&s;"object"==typeof o&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach((function(e){a[e]=function(){return s[e]}}));return a["default"]=function(){return s},n.d(r,a),r}}(),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."+{65:"a4e6662a",345:"dcb6e74e",615:"fba0e1b5",699:"cb1ccfbb",767:"f33d812b",779:"b22c1cc7",818:"b4ae6fe1",1155:"2501688b",1406:"da33e6be",1485:"dcfe2d79",1595:"69aea4ae",1798:"b42f39d9",1938:"e350f72d",2072:"5f0a7198",2235:"ee01d3bc",2346:"4845c2ae",2362:"a7430a1b",2380:"0d05fcbd",2466:"b6981a49",2790:"32ec0e3d",2820:"869be689",2844:"b3683bc2",2957:"a0d5f651",3490:"d482e29b",3673:"ce9f93c0",3674:"1f20942d",3785:"5ec00494",4021:"a3380d38",4024:"28ca562a",4196:"b3577e2e",4276:"18787ca7",4548:"e2883bdd",4826:"f73c82f0",4848:"301d7d01",4981:"c4835180",5111:"262ea3c5",5193:"d8c2e027",5207:"b6625280",5210:"e39ce8e4",5246:"3ea0c58c",5466:"ba464f70",5528:"5b7db199",5779:"8c634228",5824:"e042a7c9",5895:"e1ce8e90",6003:"f3446996",6013:"b02eb716",6027:"86d7dac2",6162:"bf13f6e2",6365:"f0476e2f",6509:"ab6d64c3",6590:"a024a679",6739:"c665b953",6833:"00db1080",6869:"73728371",7029:"421c2557",7196:"a47a2493",7262:"13af887b",7420:"a57de4be",7643:"5b846090",8184:"702db0b7",8337:"fcf13df8",8990:"2964c88b",9196:"1cf345e1",9299:"adb4a75b",9496:"f4944097",9575:"fb8eab70",9633:"8a00fadb",9694:"a11c42e2",9895:"acee9428",9974:"f464d285"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+e+"."+{65:"d6cbc229",345:"0d938275",615:"be187f79",779:"459f0f41",818:"ecd1a2b7",1155:"3c072b53",1406:"3c45f7ef",1485:"c92b25f1",1798:"5047113b",2072:"17a59d62",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",3490:"3516cb6e",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5246:"307f748b",5466:"fb0c1b5f",5528:"a4270756",5779:"b285a776",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6162:"f3d46bda",6365:"23d86f00",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6869:"5c09b6fd",7029:"13387da1",7262:"7ac2a7a5",7420:"e42d1496",7643:"e25374a8",8990:"14b5ace2",9196:"18347c3c",9496:"ad6b58f0",9575:"eba29f96",9694:"509f8cb5",9974:"3864eeae"}[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\n \n \n \n \n \n\n \n\n\n\n\n\n\n","\n
\n \n \n
\n\n\n\n\n","\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n\n\n\n\n","import { render } from \"./Notification.vue?vue&type=template&id=7646705e&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nimport \"./Notification.vue?vue&type=style&index=0&id=7646705e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7646705e\"]])\n\nexport default __exports__","import { render } from \"./Notifications.vue?vue&type=template&id=6dc8bebc&scoped=true\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js\"\n\nimport \"./Notifications.vue?vue&type=style&index=0&id=6dc8bebc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6dc8bebc\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Events.vue?vue&type=template&id=26b9b70f\"\nimport script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n \n \n \n \n
\n\n
\n
\n Assistant listening\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n\n\n\n\n","import { render } from \"./VoiceAssistant.vue?vue&type=template&id=3f009270\"\nimport script from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\nexport * from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\n\nimport \"./VoiceAssistant.vue?vue&type=style&index=0&id=3f009270&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Ntfy.vue?vue&type=template&id=1c4a4708\"\nimport script from \"./Ntfy.vue?vue&type=script&lang=js\"\nexport * from \"./Ntfy.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Pushbullet.vue?vue&type=template&id=bf9869d4\"\nimport script from \"./Pushbullet.vue?vue&type=script&lang=js\"\nexport * from \"./Pushbullet.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=8d9fac48\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=8d9fac48&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n
\n \n \n \n \n \n \n \n
\n\n\n\n\n\n\n\n","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Row.vue?vue&type=template&id=1b4663f2&scoped=true\"\nimport script from \"./Row.vue?vue&type=script&lang=js\"\nexport * from \"./Row.vue?vue&type=script&lang=js\"\n\nimport \"./Row.vue?vue&type=style&index=0&id=1b4663f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b4663f2\"]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Widget.vue?vue&type=template&id=5df52982&scoped=true\"\nimport script from \"./Widget.vue?vue&type=script&lang=js\"\nexport * from \"./Widget.vue?vue&type=script&lang=js\"\n\nimport \"./Widget.vue?vue&type=style&index=0&id=5df52982&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5df52982\"]])\n\nexport default __exports__","import { render } from \"./Dashboard.vue?vue&type=template&id=cefcfdfc&scoped=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=cefcfdfc&lang=scss&scoped=true\"\nimport \"./Dashboard.vue?vue&type=style&index=1&id=cefcfdfc&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cefcfdfc\"]])\n\nexport default __exports__","\n
Object not found
\n\n\n\n\n","import { render } from \"./NotFound.vue?vue&type=template&id=49501f4d\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Login.vue?vue&type=template&id=16cef6aa&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=16cef6aa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16cef6aa\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Register.vue?vue&type=template&id=1244b238\"\nimport script from \"./Register.vue?vue&type=script&lang=js\"\nexport * from \"./Register.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n \n\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n\n\n\n\n\n\n\n","\n \n\n\n\n\n\n\n","import { render } from \"./Nav.vue?vue&type=template&id=69a507f4&scoped=true\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=69a507f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69a507f4\"]])\n\nexport default __exports__","import { render } from \"./Panel.vue?vue&type=template&id=344b6d1a&scoped=true\"\nimport script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\n\nimport \"./Panel.vue?vue&type=style&index=0&id=344b6d1a&lang=scss&scoped=true\"\nimport \"./Panel.vue?vue&type=style&index=1&id=344b6d1a&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-344b6d1a\"]])\n\nexport default __exports__","\n \n \n
\n \n
\n \n\n\n\n\n\n\n\n","import { render } from \"./Plugin.vue?vue&type=template&id=67571c94&scoped=true\"\nimport script from \"./Plugin.vue?vue&type=script&lang=js\"\nexport * from \"./Plugin.vue?vue&type=script&lang=js\"\n\nimport \"./Plugin.vue?vue&type=style&index=0&id=67571c94&lang=scss&scoped=true\"\nimport \"./Plugin.vue?vue&type=style&index=1&id=67571c94&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67571c94\"]])\n\nexport default __exports__","import { createWebHistory, createRouter } from \"vue-router\";\nimport Dashboard from \"@/views/Dashboard.vue\";\nimport NotFound from \"@/views/NotFound\";\nimport Login from \"@/views/Login\";\nimport Register from \"@/views/Register\";\nimport Panel from \"@/views/Panel\";\nimport Plugin from \"@/views/Plugin\";\n\nconst routes = [\n {\n path: \"/\",\n name: \"Panel\",\n component: Panel,\n },\n\n {\n path: \"/dashboard/:name\",\n name: \"Dashboard\",\n component: Dashboard,\n },\n\n {\n path: \"/plugin/:plugin\",\n name: \"Plugin\",\n component: Plugin,\n },\n\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n },\n\n {\n path: \"/register\",\n name: \"Register\",\n component: Register,\n },\n\n {\n path: \"/:catchAll(.*)\",\n component: NotFound,\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\n\nconst app = createApp(App)\napp.config.globalProperties._config = window.config\napp.use(router).mount('#app')\n","\n\n","import script from \"./Api.vue?vue&type=script&lang=js\"\nexport * from \"./Api.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Cookies.vue?vue&type=script&lang=js\"\nexport * from \"./Cookies.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./DateTime.vue?vue&type=script&lang=js\"\nexport * from \"./DateTime.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Screen.vue?vue&type=script&lang=js\"\nexport * from \"./Screen.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Types.vue?vue&type=script&lang=js\"\nexport * from \"./Types.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n\n\n","import { render } from \"./Loading.vue?vue&type=template&id=4d9c871b&scoped=true\"\nconst script = {}\n\nimport \"./Loading.vue?vue&type=style&index=0&id=4d9c871b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d9c871b\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=7d1f6e8b&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=7d1f6e8b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d1f6e8b\"]])\n\nexport default __exports__","\n
\n \n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Dropdown.vue?vue&type=template&id=21bf0316&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=21bf0316&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21bf0316\"]])\n\nexport default __exports__","\n
\n
\n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=0a3cac88&scoped=true\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=0a3cac88&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0a3cac88\"]])\n\nexport default __exports__","\n
\n \n \n
\n\n\n\n\n\n","import { render } from \"./Icon.vue?vue&type=template&id=706a3bd1&scoped=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\n\nimport \"./Icon.vue?vue&type=style&index=0&id=706a3bd1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-706a3bd1\"]])\n\nexport default __exports__","\n
\n \n
\n \n
\n\n
\n \n
\n \n\n \n \n \n \n
\n\n\n\n\n\n","\n
\n \n\n \n
\n \n
\n \n\n
\n
\n
Generate a JWT authentication token that can be used for API calls to the /execute endpoint.
\n
You can include the token in your requests in any of the following ways:
\n\n
\n
Specify it on the Authorization: Bearer header;
\n
Specify it on the X-Token header;
\n
Specify it as a URL parameter: http://site:8008/execute?token=...;
\n
Specify it on the body of your JSON request: {\"type\":\"request\", \"action\", \"...\", \"token\":\"...\"}.
\n
\n\n Confirm your credentials in order to generate a new token.\n
\n\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=5f9053de\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=5f9053de&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n \n \n \n\n \n \n \n\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Users.vue?vue&type=template&id=2153f27b\"\nimport script from \"./Users.vue?vue&type=script&lang=js\"\nexport * from \"./Users.vue?vue&type=script&lang=js\"\n\nimport \"./Users.vue?vue&type=style&index=0&id=2153f27b&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=d5c06b82\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=d5c06b82&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Camera/Index\": [\n\t\t5528,\n\t\t5528\n\t],\n\t\"./CameraAndroidIpcam/Index\": [\n\t\t6739,\n\t\t6739\n\t],\n\t\"./CameraCv/Index\": [\n\t\t8184,\n\t\t5528,\n\t\t8184\n\t],\n\t\"./CameraFfmpeg/Index\": [\n\t\t5111,\n\t\t5528,\n\t\t5111\n\t],\n\t\"./CameraGstreamer/Index\": [\n\t\t699,\n\t\t5528,\n\t\t699\n\t],\n\t\"./CameraIrMlx90640/Index\": [\n\t\t9895,\n\t\t5528,\n\t\t9895\n\t],\n\t\"./CameraPi/Index\": [\n\t\t4548,\n\t\t5528,\n\t\t4548\n\t],\n\t\"./Entities/Index\": [\n\t\t9208,\n\t\t5246\n\t],\n\t\"./Execute/Index\": [\n\t\t7643,\n\t\t7643\n\t],\n\t\"./Light/Index\": [\n\t\t1406,\n\t\t3490,\n\t\t9974,\n\t\t1406\n\t],\n\t\"./LightHue/Index\": [\n\t\t3674,\n\t\t3490,\n\t\t9974,\n\t\t1406,\n\t\t3674\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t6509\n\t],\n\t\"./MediaMpv/Index\": [\n\t\t5895,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t5895\n\t],\n\t\"./MediaOmxplayer/Index\": [\n\t\t9633,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t9633\n\t],\n\t\"./MediaVlc/Index\": [\n\t\t767,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196,\n\t\t767\n\t],\n\t\"./Music/Index\": [\n\t\t5781,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t2957,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t6833,\n\t\t2957\n\t],\n\t\"./MusicSnapcast/Index\": [\n\t\t2790,\n\t\t3490,\n\t\t9974,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t7196,\n\t\t9974,\n\t\t8337,\n\t\t7029,\n\t\t6833,\n\t\t7196\n\t],\n\t\"./Rtorrent/Index\": [\n\t\t2820,\n\t\t8337,\n\t\t779,\n\t\t6162,\n\t\t2820\n\t],\n\t\"./Settings/Index\": [\n\t\t5392\n\t],\n\t\"./Sound/Index\": [\n\t\t5193,\n\t\t5193\n\t],\n\t\"./Switches/Index\": [\n\t\t4276,\n\t\t4276\n\t],\n\t\"./Switches/LightHue/Index\": [\n\t\t2844,\n\t\t3490,\n\t\t6590,\n\t\t2844\n\t],\n\t\"./Switches/Smartthings/Index\": [\n\t\t9196,\n\t\t3490,\n\t\t6590,\n\t\t9196\n\t],\n\t\"./Switches/SwitchTplink/Index\": [\n\t\t3785,\n\t\t3490,\n\t\t6590,\n\t\t3785\n\t],\n\t\"./Switches/SwitchWemo/Index\": [\n\t\t5210,\n\t\t3490,\n\t\t6590,\n\t\t5210\n\t],\n\t\"./Switches/Switchbot/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/SwitchbotBluetooth/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/ZigbeeMqtt/Index\": [\n\t\t5466,\n\t\t3490,\n\t\t6590,\n\t\t5466\n\t],\n\t\"./Switches/Zwave/Index\": [\n\t\t7262,\n\t\t3490,\n\t\t6590,\n\t\t7262\n\t],\n\t\"./Switches/ZwaveMqtt/Index\": [\n\t\t2380,\n\t\t3490,\n\t\t6590,\n\t\t2380\n\t],\n\t\"./Torrent/Index\": [\n\t\t9299,\n\t\t8337,\n\t\t779,\n\t\t6162,\n\t\t9299\n\t],\n\t\"./Tts/Index\": [\n\t\t2466,\n\t\t4021,\n\t\t2466\n\t],\n\t\"./TtsGoogle/Index\": [\n\t\t1938,\n\t\t4021,\n\t\t1938\n\t],\n\t\"./TvSamsungWs/Index\": [\n\t\t615,\n\t\t615\n\t],\n\t\"./ZigbeeMqtt/Index\": [\n\t\t4848,\n\t\t3490,\n\t\t9974,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t8586,\n\t\t3490,\n\t\t9974,\n\t\t1485,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t9974,\n\t\t1485,\n\t\t2362\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3379;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./Calendar/Index\": [\n\t\t345,\n\t\t345\n\t],\n\t\"./Camera/Index\": [\n\t\t2346,\n\t\t2346\n\t],\n\t\"./Component/Index\": [\n\t\t5824,\n\t\t3490,\n\t\t9974,\n\t\t5824\n\t],\n\t\"./DateTime/Index\": [\n\t\t1595,\n\t\t9575,\n\t\t1595\n\t],\n\t\"./DateTimeWeather/Index\": [\n\t\t5779,\n\t\t1798,\n\t\t9575,\n\t\t5779\n\t],\n\t\"./ImageCarousel/Index\": [\n\t\t6003,\n\t\t1798,\n\t\t9575,\n\t\t6003\n\t],\n\t\"./Music/Index\": [\n\t\t6013,\n\t\t6013\n\t],\n\t\"./Plugin/Index\": [\n\t\t4826,\n\t\t4826\n\t],\n\t\"./RssNews/Index\": [\n\t\t7420,\n\t\t7420\n\t],\n\t\"./Weather/Index\": [\n\t\t1798,\n\t\t1798\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6725;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \"-legacy.\" + {\"65\":\"a4e6662a\",\"345\":\"dcb6e74e\",\"615\":\"fba0e1b5\",\"699\":\"cb1ccfbb\",\"767\":\"f33d812b\",\"779\":\"b22c1cc7\",\"818\":\"b4ae6fe1\",\"1155\":\"2501688b\",\"1406\":\"da33e6be\",\"1485\":\"dcfe2d79\",\"1595\":\"69aea4ae\",\"1798\":\"b42f39d9\",\"1938\":\"e350f72d\",\"2072\":\"5f0a7198\",\"2235\":\"ee01d3bc\",\"2346\":\"4845c2ae\",\"2362\":\"a7430a1b\",\"2380\":\"0d05fcbd\",\"2466\":\"b6981a49\",\"2790\":\"32ec0e3d\",\"2820\":\"869be689\",\"2844\":\"b3683bc2\",\"2957\":\"a0d5f651\",\"3490\":\"d482e29b\",\"3673\":\"ce9f93c0\",\"3674\":\"1f20942d\",\"3785\":\"5ec00494\",\"4021\":\"a3380d38\",\"4024\":\"28ca562a\",\"4196\":\"b3577e2e\",\"4276\":\"18787ca7\",\"4548\":\"e2883bdd\",\"4826\":\"f73c82f0\",\"4848\":\"301d7d01\",\"4981\":\"c4835180\",\"5111\":\"262ea3c5\",\"5193\":\"d8c2e027\",\"5207\":\"b6625280\",\"5210\":\"e39ce8e4\",\"5246\":\"3ea0c58c\",\"5466\":\"ba464f70\",\"5528\":\"5b7db199\",\"5779\":\"8c634228\",\"5824\":\"e042a7c9\",\"5895\":\"e1ce8e90\",\"6003\":\"f3446996\",\"6013\":\"b02eb716\",\"6027\":\"86d7dac2\",\"6162\":\"bf13f6e2\",\"6365\":\"f0476e2f\",\"6509\":\"ab6d64c3\",\"6590\":\"a024a679\",\"6739\":\"c665b953\",\"6833\":\"00db1080\",\"6869\":\"73728371\",\"7029\":\"421c2557\",\"7196\":\"a47a2493\",\"7262\":\"13af887b\",\"7420\":\"a57de4be\",\"7643\":\"5b846090\",\"8184\":\"702db0b7\",\"8337\":\"fcf13df8\",\"8990\":\"2964c88b\",\"9196\":\"1cf345e1\",\"9299\":\"adb4a75b\",\"9496\":\"f4944097\",\"9575\":\"fb8eab70\",\"9633\":\"8a00fadb\",\"9694\":\"a11c42e2\",\"9895\":\"acee9428\",\"9974\":\"f464d285\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"65\":\"d6cbc229\",\"345\":\"0d938275\",\"615\":\"be187f79\",\"779\":\"459f0f41\",\"818\":\"ecd1a2b7\",\"1155\":\"3c072b53\",\"1406\":\"3c45f7ef\",\"1485\":\"c92b25f1\",\"1798\":\"5047113b\",\"2072\":\"17a59d62\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"3490\":\"3516cb6e\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5246\":\"307f748b\",\"5466\":\"fb0c1b5f\",\"5528\":\"a4270756\",\"5779\":\"b285a776\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6162\":\"f3d46bda\",\"6365\":\"23d86f00\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6869\":\"5c09b6fd\",\"7029\":\"13387da1\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7643\":\"e25374a8\",\"8990\":\"14b5ace2\",\"9196\":\"18347c3c\",\"9496\":\"ad6b58f0\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\",\"9974\":\"3864eeae\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"platypush:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"65\":1,\"345\":1,\"615\":1,\"779\":1,\"818\":1,\"1155\":1,\"1406\":1,\"1485\":1,\"1798\":1,\"2072\":1,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"3490\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5246\":1,\"5466\":1,\"5528\":1,\"5779\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6162\":1,\"6365\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6869\":1,\"7029\":1,\"7262\":1,\"7420\":1,\"7643\":1,\"8990\":1,\"9196\":1,\"9496\":1,\"9575\":1,\"9694\":1,\"9974\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(6(162|590|869)|3490|4021|4981|9575|9974)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkplatypush\"] = self[\"webpackChunkplatypush\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(5736); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["bus","mitt","hasWebsocket","ref","config","websocket_port","hasAssistant","hasPushbullet","hasNtfy","class","notifications","notification","id","index","key","text","html","title","link","image","warning","error","destroy","clicked","src","alt","icon","style","color","iconClass","name","props","methods","this","window","open","$emit","__exports__","components","Notification","duration","type","Number","default","data","timeouts","create","args","parseInt","setTimeout","bind","wsPort","ws","initialized","pending","opened","timeout","reconnectMsecs","handlers","handlerNameToEventTypes","onWebsocketTimeout","console","log","close","onClose","onMessage","event","JSON","parse","e","warn","debug","push","Object","values","handler","Array","Function","onOpen","onclose","clearTimeout","undefined","onError","code","reason","init","protocol","location","url","hostname","WebSocket","err","onmessage","onopen","onerror","subscribe","msg","events","length","handlerName","unsubscribe","keys","created","state","alerting","responding","speechRecognized","listening","Modal","mixins","Utils","responseText","phrase","hideTimeout","reset","conversationStart","$refs","assistantModal","show","conversationEnd","self","response","response_text","alertOn","alertOff","registerHandlers","mounted","notify","message","push_type","body","Pushbullet","Ntfy","Notifications","Events","VoiceAssistant","userAuthenticated","computed","onNotification","initConfig","request","render","loading","classes","rows","row","i","widgets","widget","j","component","getWidgetProps","String","required","split","concat","Widget","Loading","Row","refreshSeconds","parseTemplate","tmpl","node","DOMParser","parseFromString","childNodes","attributes","nodeValue","getElementsByTagName","map","children","el","nodeName","attrs","reduce","obj","content","innerHTML","$options","refreshDashboard","$route","params","template","setInterval","toFixed","method","placeholder","_register","value","register","Boolean","parseBoolean","Login","panels","selectedPanel","$event","panel","href","collapsed","panelNames","onItemClick","icons","imgUrl","emits","homeIdx","indexOf","slice","sort","host","Settings","Nav","plugins","backends","procedures","initSelectedPanel","match","hash","plugin","initPanels","entries","forEach","componentName","token","toUpperCase","join","comp","pluginName","parseConfig","Promise","all","initializeDefaultViews","execute","entities","initPanel","toString","routes","path","Panel","Dashboard","Plugin","Register","NotFound","router","createRouter","history","createWebHistory","app","createApp","App","globalProperties","_config","use","mount","showError","opts","resolve","reject","then","errors","output","catch","action","getCookies","document","cookie","item","k","v","formatDate","date","year","Date","toDateString","substring","formatTime","seconds","toTimeString","formatDateTime","_eventsReady","$root","subFunc","generateId","unwatch","$watch","newVal","btoa","fromCharCode","Math","round","random","isMobile","matchMedia","matches","isTablet","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","Api","Cookies","DateTime","Screen","Text","Types","n","script","isVisible","zIndex","$attrs","width","height","stopPropagation","visible","level","timeoutId","prevVisible","hide","toggle","visibleHndl","updated","maxZIndex","getComputedStyle","$el","outermostModals","querySelectorAll","modal","items","keepOpenOnItemClick","documentClickHndl","element","target","dropdown","parentElement","removeEventListener","addEventListener","left","top","parseFloat","button","getBoundingClientRect","innerWidth","clientWidth","innerHeight","clientHeight","itemClass","iconUrl","Icon","disabled","$parent","className","selectedView","selected","usersView","addUserModal","sessionToken","currentUser","onTokenSelect","generateToken","username","password","validityDays","expiry_days","tokenModal","select","execCommand","createUser","commandRunning","changePassword","selectedUser","users","user","user_id","changePasswordModal","deleteUser","DropdownItem","Dropdown","refresh","preventDefault","form","addUserForm","input","confirm_password","session_token","changePasswordForm","new_password","confirm_new_password","success","old_password","confirm","Users","Token","webpackAsyncContext","req","__webpack_require__","o","Error","ids","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","__proto__","mode","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","promises","miniCssF","g","globalThis","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","prev","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js.map b/platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js.map
deleted file mode 100644
index d375c5b83..000000000
--- a/platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/app.0ecd5641.js","mappings":"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,UAAW,wBAITI,KAAKoW,SAnBH,CAoBT,GAGHvQ,UACE7F,KAAKoW,SACN,GChPH,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAAS,MAEpE,UJsBA,IACEvW,KAAM,WACNQ,WAAY,CAACsW,MAAD,GAAQC,MAAK,IACzBhS,OAAQ,CAACC,EAAA,GAETlE,OACE,MAAO,CACLyT,aAAc,QACdK,YAAa,KACbD,aAAc,KAEjB,EAEDzU,QAAS,CACP2G,gBACE1G,KAAKwU,aAAexU,KAAKsO,aAAa,iBACtCtO,KAAKyU,kBAAoBzU,KAAK2G,QAAQ,2BAA4B,CAACwP,cAAenW,KAAKwU,cACzF,GAGF3O,UACE7F,KAAKoW,SACP,GK9CF,MAAM,IAA2B,OAAgB,GAAQ,CAAC,CAAC,SAASvP,KAEpE,S,uBCTA,IAAI4B,EAAM,CACT,iBAAkB,CACjB,KACA,KACA,MAED,6BAA8B,CAC7B,KACA,MAED,mBAAoB,CACnB,KACA,KACA,MAED,uBAAwB,CACvB,KACA,KACA,MAED,0BAA2B,CAC1B,IACA,KACA,KAED,2BAA4B,CAC3B,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,MAED,mBAAoB,CACnB,IACA,MAED,kBAAmB,CAClB,KACA,MAED,gBAAiB,CAChB,IACA,KACA,KACA,KAED,mBAAoB,CACnB,KACA,KACA,KACA,IACA,MAED,gBAAiB,CAChB,KACA,KACA,KACA,KACA,MAED,uBAAwB,CACvB,KACA,KACA,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,KACA,KACA,MAED,yBAA0B,CACzB,KACA,KACA,KACA,KACA,KACA,MAED,mBAAoB,CACnB,IACA,KACA,KACA,KACA,KACA,KAED,gBAAiB,CAChB,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,KACA,MAED,wBAAyB,CACxB,KACA,KACA,KACA,MAED,uBAAwB,CACvB,KACA,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,KACA,MAED,mBAAoB,CACnB,MAED,gBAAiB,CAChB,KACA,MAED,mBAAoB,CACnB,KACA,MAED,4BAA6B,CAC5B,KACA,KACA,KACA,MAED,+BAAgC,CAC/B,KACA,KACA,KACA,MAED,gCAAiC,CAChC,KACA,KACA,KACA,MAED,8BAA+B,CAC9B,KACA,KACA,KACA,MAED,6BAA8B,CAC7B,KACA,KACA,KACA,MAED,sCAAuC,CACtC,KACA,KACA,KACA,MAED,8BAA+B,CAC9B,KACA,KACA,KACA,MAED,yBAA0B,CACzB,KACA,KACA,KACA,MAED,6BAA8B,CAC7B,KACA,KACA,KACA,MAED,kBAAmB,CAClB,KACA,KACA,KACA,MAED,cAAe,CACd,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,MAED,sBAAuB,CACtB,IACA,KAED,qBAAsB,CACrB,KACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,KACA,KACA,KACA,MAED,oBAAqB,CACpB,KACA,KACA,KACA,KACA,OAGF,SAASoO,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEvO,EAAKqO,GAC9B,OAAO3K,QAAQ4B,UAAUE,MAAK,WAC7B,IAAI7L,EAAI,IAAI6U,MAAM,uBAAyBH,EAAM,KAEjD,MADA1U,EAAEc,KAAO,mBACHd,CACP,IAGD,IAAI8U,EAAMzO,EAAIqO,GAAMnY,EAAKuY,EAAI,GAC7B,OAAO/K,QAAQC,IAAI8K,EAAIpM,MAAM,GAAGrC,IAAIsO,EAAoB3U,IAAI6L,MAAK,WAChE,OAAO8I,EAAoBpY,EAC5B,GACD,CACAkY,EAAoBzS,KAAO,WAAa,OAAO5B,OAAO4B,KAAKqE,EAAM,EACjEoO,EAAoBlY,GAAK,KACzBwY,EAAOC,QAAUP,C,uBCzPjB,IAAIpO,EAAM,CACT,mBAAoB,CACnB,IACA,KAED,iBAAkB,CACjB,KACA,MAED,oBAAqB,CACpB,KACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,KACA,MAED,0BAA2B,CAC1B,KACA,KACA,KACA,MAED,wBAAyB,CACxB,KACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,MAED,iBAAkB,CACjB,KACA,MAED,kBAAmB,CAClB,KACA,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","sources":["webpack://platypush/./src/bus.js","webpack://platypush/./src/App.vue","webpack://platypush/./src/components/Notifications.vue","webpack://platypush/./src/components/Notification.vue","webpack://platypush/./src/components/Notification.vue?deb2","webpack://platypush/./src/components/Notifications.vue?e79f","webpack://platypush/./src/Events.vue","webpack://platypush/./src/Events.vue?0562","webpack://platypush/./src/components/VoiceAssistant.vue","webpack://platypush/./src/components/VoiceAssistant.vue?e102","webpack://platypush/./src/components/Ntfy.vue","webpack://platypush/./src/components/Ntfy.vue?4660","webpack://platypush/./src/components/Pushbullet.vue","webpack://platypush/./src/components/Pushbullet.vue?a5f8","webpack://platypush/./src/App.vue?7ccd","webpack://platypush/./src/views/Dashboard.vue","webpack://platypush/./src/components/widgets/Row.vue","webpack://platypush/./src/components/widgets/Row.vue?bc29","webpack://platypush/./src/components/widgets/Widget.vue","webpack://platypush/./src/components/widgets/Widget.vue?043c","webpack://platypush/./src/views/Dashboard.vue?040e","webpack://platypush/./src/views/NotFound.vue","webpack://platypush/./src/views/NotFound.vue?0aab","webpack://platypush/./src/views/Login.vue","webpack://platypush/./src/views/Login.vue?240b","webpack://platypush/./src/views/Register.vue","webpack://platypush/./src/views/Register.vue?157d","webpack://platypush/./src/views/Panel.vue","webpack://platypush/./src/components/Nav.vue","webpack://platypush/./src/components/Nav.vue?1f44","webpack://platypush/./src/views/Panel.vue?792f","webpack://platypush/./src/views/Plugin.vue","webpack://platypush/./src/views/Plugin.vue?41f6","webpack://platypush/./src/router/index.js","webpack://platypush/./src/main.js","webpack://platypush/./src/utils/Api.vue","webpack://platypush/./src/utils/Api.vue?331a","webpack://platypush/./src/utils/Cookies.vue","webpack://platypush/./src/utils/Cookies.vue?0832","webpack://platypush/./src/utils/DateTime.vue","webpack://platypush/./src/utils/DateTime.vue?3df3","webpack://platypush/./src/utils/Events.vue","webpack://platypush/./src/utils/Events.vue?ad6c","webpack://platypush/./src/utils/Notification.vue","webpack://platypush/./src/utils/Notification.vue?b668","webpack://platypush/./src/utils/Screen.vue","webpack://platypush/./src/utils/Screen.vue?714e","webpack://platypush/./src/utils/Text.vue","webpack://platypush/./src/utils/Text.vue?61b3","webpack://platypush/./src/utils/Types.vue","webpack://platypush/./src/utils/Types.vue?2b41","webpack://platypush/./src/Utils.vue","webpack://platypush/./src/Utils.vue?83c2","webpack://platypush/./src/components/Loading.vue","webpack://platypush/./src/components/Loading.vue?1ccf","webpack://platypush/./src/components/Modal.vue","webpack://platypush/./src/components/Modal.vue?db1b","webpack://platypush/./src/components/elements/Dropdown.vue","webpack://platypush/./src/components/elements/Dropdown.vue?e934","webpack://platypush/./src/components/elements/DropdownItem.vue","webpack://platypush/./src/components/elements/DropdownItem.vue?d591","webpack://platypush/./src/components/elements/Icon.vue","webpack://platypush/./src/components/elements/Icon.vue?fdba","webpack://platypush/./src/components/panels/Settings/Index.vue","webpack://platypush/./src/components/panels/Settings/Token.vue","webpack://platypush/./src/components/panels/Settings/Token.vue?4a12","webpack://platypush/./src/components/panels/Settings/Users.vue","webpack://platypush/./src/components/panels/Settings/Users.vue?407b","webpack://platypush/./src/components/panels/Settings/Index.vue?0df9","webpack://platypush/./src/components/panels|lazy|/^\\.\\/.*\\/Index$/|groupOptions: {}|namespace object","webpack://platypush/./src/components/widgets|lazy|/^\\.\\/.*\\/Index$/|groupOptions: {}|namespace object","webpack://platypush/webpack/bootstrap","webpack://platypush/webpack/runtime/chunk loaded","webpack://platypush/webpack/runtime/compat get default export","webpack://platypush/webpack/runtime/create fake namespace object","webpack://platypush/webpack/runtime/define property getters","webpack://platypush/webpack/runtime/ensure chunk","webpack://platypush/webpack/runtime/get javascript chunk filename","webpack://platypush/webpack/runtime/get mini-css chunk filename","webpack://platypush/webpack/runtime/global","webpack://platypush/webpack/runtime/hasOwnProperty shorthand","webpack://platypush/webpack/runtime/load script","webpack://platypush/webpack/runtime/make namespace object","webpack://platypush/webpack/runtime/publicPath","webpack://platypush/webpack/runtime/css loading","webpack://platypush/webpack/runtime/jsonp chunk loading","webpack://platypush/webpack/startup"],"sourcesContent":["import mitt from 'mitt';\n\nconst bus = mitt();\n\nexport { bus };\n","\n \n \n \n \n \n\n \n\n\n\n\n\n\n","\n
\n \n \n
\n\n\n\n\n","\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n\n\n\n\n","import { render } from \"./Notification.vue?vue&type=template&id=7646705e&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nimport \"./Notification.vue?vue&type=style&index=0&id=7646705e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7646705e\"]])\n\nexport default __exports__","import { render } from \"./Notifications.vue?vue&type=template&id=6dc8bebc&scoped=true\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js\"\n\nimport \"./Notifications.vue?vue&type=style&index=0&id=6dc8bebc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6dc8bebc\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Events.vue?vue&type=template&id=26b9b70f\"\nimport script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n \n \n \n \n
\n\n
\n
\n Assistant listening\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n\n\n\n\n","import { render } from \"./VoiceAssistant.vue?vue&type=template&id=3f009270\"\nimport script from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\nexport * from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\n\nimport \"./VoiceAssistant.vue?vue&type=style&index=0&id=3f009270&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Ntfy.vue?vue&type=template&id=1c4a4708\"\nimport script from \"./Ntfy.vue?vue&type=script&lang=js\"\nexport * from \"./Ntfy.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Pushbullet.vue?vue&type=template&id=bf9869d4\"\nimport script from \"./Pushbullet.vue?vue&type=script&lang=js\"\nexport * from \"./Pushbullet.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=8d9fac48\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=8d9fac48&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n
\n \n \n \n \n \n \n \n
\n\n\n\n\n\n\n\n","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Row.vue?vue&type=template&id=1b4663f2&scoped=true\"\nimport script from \"./Row.vue?vue&type=script&lang=js\"\nexport * from \"./Row.vue?vue&type=script&lang=js\"\n\nimport \"./Row.vue?vue&type=style&index=0&id=1b4663f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b4663f2\"]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Widget.vue?vue&type=template&id=5df52982&scoped=true\"\nimport script from \"./Widget.vue?vue&type=script&lang=js\"\nexport * from \"./Widget.vue?vue&type=script&lang=js\"\n\nimport \"./Widget.vue?vue&type=style&index=0&id=5df52982&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5df52982\"]])\n\nexport default __exports__","import { render } from \"./Dashboard.vue?vue&type=template&id=cefcfdfc&scoped=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=cefcfdfc&lang=scss&scoped=true\"\nimport \"./Dashboard.vue?vue&type=style&index=1&id=cefcfdfc&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cefcfdfc\"]])\n\nexport default __exports__","\n
Object not found
\n\n\n\n\n","import { render } from \"./NotFound.vue?vue&type=template&id=49501f4d\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Login.vue?vue&type=template&id=16cef6aa&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=16cef6aa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16cef6aa\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Register.vue?vue&type=template&id=1244b238\"\nimport script from \"./Register.vue?vue&type=script&lang=js\"\nexport * from \"./Register.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n \n\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n\n\n\n\n\n\n\n","\n \n\n\n\n\n\n\n","import { render } from \"./Nav.vue?vue&type=template&id=69a507f4&scoped=true\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=69a507f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69a507f4\"]])\n\nexport default __exports__","import { render } from \"./Panel.vue?vue&type=template&id=344b6d1a&scoped=true\"\nimport script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\n\nimport \"./Panel.vue?vue&type=style&index=0&id=344b6d1a&lang=scss&scoped=true\"\nimport \"./Panel.vue?vue&type=style&index=1&id=344b6d1a&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-344b6d1a\"]])\n\nexport default __exports__","\n \n \n
\n \n
\n \n\n\n\n\n\n\n\n","import { render } from \"./Plugin.vue?vue&type=template&id=67571c94&scoped=true\"\nimport script from \"./Plugin.vue?vue&type=script&lang=js\"\nexport * from \"./Plugin.vue?vue&type=script&lang=js\"\n\nimport \"./Plugin.vue?vue&type=style&index=0&id=67571c94&lang=scss&scoped=true\"\nimport \"./Plugin.vue?vue&type=style&index=1&id=67571c94&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67571c94\"]])\n\nexport default __exports__","import { createWebHistory, createRouter } from \"vue-router\";\nimport Dashboard from \"@/views/Dashboard.vue\";\nimport NotFound from \"@/views/NotFound\";\nimport Login from \"@/views/Login\";\nimport Register from \"@/views/Register\";\nimport Panel from \"@/views/Panel\";\nimport Plugin from \"@/views/Plugin\";\n\nconst routes = [\n {\n path: \"/\",\n name: \"Panel\",\n component: Panel,\n },\n\n {\n path: \"/dashboard/:name\",\n name: \"Dashboard\",\n component: Dashboard,\n },\n\n {\n path: \"/plugin/:plugin\",\n name: \"Plugin\",\n component: Plugin,\n },\n\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n },\n\n {\n path: \"/register\",\n name: \"Register\",\n component: Register,\n },\n\n {\n path: \"/:catchAll(.*)\",\n component: NotFound,\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\n\nconst app = createApp(App)\napp.config.globalProperties._config = window.config\napp.use(router).mount('#app')\n","\n\n","import script from \"./Api.vue?vue&type=script&lang=js\"\nexport * from \"./Api.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Cookies.vue?vue&type=script&lang=js\"\nexport * from \"./Cookies.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./DateTime.vue?vue&type=script&lang=js\"\nexport * from \"./DateTime.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Screen.vue?vue&type=script&lang=js\"\nexport * from \"./Screen.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Types.vue?vue&type=script&lang=js\"\nexport * from \"./Types.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n\n\n","import { render } from \"./Loading.vue?vue&type=template&id=4d9c871b&scoped=true\"\nconst script = {}\n\nimport \"./Loading.vue?vue&type=style&index=0&id=4d9c871b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d9c871b\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=7d1f6e8b&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=7d1f6e8b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d1f6e8b\"]])\n\nexport default __exports__","\n
\n \n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Dropdown.vue?vue&type=template&id=21bf0316&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=21bf0316&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21bf0316\"]])\n\nexport default __exports__","\n
\n
\n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=0a3cac88&scoped=true\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=0a3cac88&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0a3cac88\"]])\n\nexport default __exports__","\n
\n \n \n
\n\n\n\n\n\n","import { render } from \"./Icon.vue?vue&type=template&id=706a3bd1&scoped=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\n\nimport \"./Icon.vue?vue&type=style&index=0&id=706a3bd1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-706a3bd1\"]])\n\nexport default __exports__","\n
\n \n
\n \n
\n\n
\n \n
\n \n\n \n \n \n \n
\n\n\n\n\n\n","\n
\n \n\n \n
\n \n
\n \n\n
\n
\n
Generate a JWT authentication token that can be used for API calls to the /execute endpoint.
\n
You can include the token in your requests in any of the following ways:
\n\n
\n
Specify it on the Authorization: Bearer header;
\n
Specify it on the X-Token header;
\n
Specify it as a URL parameter: http://site:8008/execute?token=...;
\n
Specify it on the body of your JSON request: {\"type\":\"request\", \"action\", \"...\", \"token\":\"...\"}.
\n
\n\n Confirm your credentials in order to generate a new token.\n
\n\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=5f9053de\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=5f9053de&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n \n \n \n\n \n \n \n\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Users.vue?vue&type=template&id=2153f27b\"\nimport script from \"./Users.vue?vue&type=script&lang=js\"\nexport * from \"./Users.vue?vue&type=script&lang=js\"\n\nimport \"./Users.vue?vue&type=style&index=0&id=2153f27b&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=d5c06b82\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=d5c06b82&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Camera/Index\": [\n\t\t5528,\n\t\t2989,\n\t\t5528\n\t],\n\t\"./CameraAndroidIpcam/Index\": [\n\t\t6739,\n\t\t6739\n\t],\n\t\"./CameraCv/Index\": [\n\t\t8184,\n\t\t2989,\n\t\t8184\n\t],\n\t\"./CameraFfmpeg/Index\": [\n\t\t5111,\n\t\t2989,\n\t\t5111\n\t],\n\t\"./CameraGstreamer/Index\": [\n\t\t699,\n\t\t2989,\n\t\t699\n\t],\n\t\"./CameraIrMlx90640/Index\": [\n\t\t9895,\n\t\t2989,\n\t\t9895\n\t],\n\t\"./CameraPi/Index\": [\n\t\t4548,\n\t\t2989,\n\t\t4548\n\t],\n\t\"./Entities/Index\": [\n\t\t914,\n\t\t9892\n\t],\n\t\"./Execute/Index\": [\n\t\t7643,\n\t\t7643\n\t],\n\t\"./Light/Index\": [\n\t\t747,\n\t\t3490,\n\t\t2107,\n\t\t747\n\t],\n\t\"./LightHue/Index\": [\n\t\t3674,\n\t\t3490,\n\t\t2107,\n\t\t747,\n\t\t3674\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t2107,\n\t\t9978,\n\t\t8589,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t2107,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t6509\n\t],\n\t\"./MediaMpv/Index\": [\n\t\t5895,\n\t\t2107,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t5895\n\t],\n\t\"./MediaOmxplayer/Index\": [\n\t\t9633,\n\t\t2107,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t9633\n\t],\n\t\"./MediaVlc/Index\": [\n\t\t767,\n\t\t2107,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t767\n\t],\n\t\"./Music/Index\": [\n\t\t6833,\n\t\t2107,\n\t\t9978,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t3249,\n\t\t2107,\n\t\t9978,\n\t\t6833,\n\t\t3249\n\t],\n\t\"./MusicSnapcast/Index\": [\n\t\t2790,\n\t\t3490,\n\t\t2107,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t9369,\n\t\t2107,\n\t\t9978,\n\t\t6833,\n\t\t9369\n\t],\n\t\"./Rtorrent/Index\": [\n\t\t2820,\n\t\t8589,\n\t\t6899,\n\t\t2820\n\t],\n\t\"./Settings/Index\": [\n\t\t5392\n\t],\n\t\"./Sound/Index\": [\n\t\t5193,\n\t\t5193\n\t],\n\t\"./Switches/Index\": [\n\t\t4276,\n\t\t4276\n\t],\n\t\"./Switches/LightHue/Index\": [\n\t\t2844,\n\t\t3490,\n\t\t6590,\n\t\t2844\n\t],\n\t\"./Switches/Smartthings/Index\": [\n\t\t9196,\n\t\t3490,\n\t\t6590,\n\t\t9196\n\t],\n\t\"./Switches/SwitchTplink/Index\": [\n\t\t3785,\n\t\t3490,\n\t\t6590,\n\t\t3785\n\t],\n\t\"./Switches/SwitchWemo/Index\": [\n\t\t5210,\n\t\t3490,\n\t\t6590,\n\t\t5210\n\t],\n\t\"./Switches/Switchbot/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/SwitchbotBluetooth/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/ZigbeeMqtt/Index\": [\n\t\t5466,\n\t\t3490,\n\t\t6590,\n\t\t5466\n\t],\n\t\"./Switches/Zwave/Index\": [\n\t\t7262,\n\t\t3490,\n\t\t6590,\n\t\t7262\n\t],\n\t\"./Switches/ZwaveMqtt/Index\": [\n\t\t2380,\n\t\t3490,\n\t\t6590,\n\t\t2380\n\t],\n\t\"./Torrent/Index\": [\n\t\t9299,\n\t\t8589,\n\t\t6899,\n\t\t9299\n\t],\n\t\"./Tts/Index\": [\n\t\t2466,\n\t\t4021,\n\t\t2466\n\t],\n\t\"./TtsGoogle/Index\": [\n\t\t1938,\n\t\t4021,\n\t\t1938\n\t],\n\t\"./TvSamsungWs/Index\": [\n\t\t615,\n\t\t615\n\t],\n\t\"./ZigbeeMqtt/Index\": [\n\t\t4848,\n\t\t3490,\n\t\t2107,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t6027,\n\t\t3490,\n\t\t2107,\n\t\t5810,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t2107,\n\t\t5810,\n\t\t2362\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3379;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./Calendar/Index\": [\n\t\t345,\n\t\t345\n\t],\n\t\"./Camera/Index\": [\n\t\t2346,\n\t\t2346\n\t],\n\t\"./Component/Index\": [\n\t\t5824,\n\t\t3490,\n\t\t2107,\n\t\t5824\n\t],\n\t\"./DateTime/Index\": [\n\t\t1595,\n\t\t9575,\n\t\t1595\n\t],\n\t\"./DateTimeWeather/Index\": [\n\t\t5779,\n\t\t1798,\n\t\t9575,\n\t\t5779\n\t],\n\t\"./ImageCarousel/Index\": [\n\t\t6003,\n\t\t1798,\n\t\t9575,\n\t\t6003\n\t],\n\t\"./Music/Index\": [\n\t\t6013,\n\t\t6013\n\t],\n\t\"./Plugin/Index\": [\n\t\t4826,\n\t\t4826\n\t],\n\t\"./RssNews/Index\": [\n\t\t7420,\n\t\t7420\n\t],\n\t\"./Weather/Index\": [\n\t\t1798,\n\t\t1798\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6725;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"65\":\"a4e6662a\",\"345\":\"8d14f37b\",\"518\":\"89a856bf\",\"615\":\"25a0ebcb\",\"699\":\"cf8f2194\",\"747\":\"0ee05dee\",\"767\":\"32c26b46\",\"1155\":\"ae99e2b9\",\"1595\":\"cf573de8\",\"1798\":\"2ea76630\",\"1938\":\"1dc95872\",\"2107\":\"d79fdb71\",\"2346\":\"9a487752\",\"2362\":\"f07ef3c1\",\"2380\":\"292bff03\",\"2466\":\"633bb83f\",\"2790\":\"7ce4bd1e\",\"2820\":\"07ee3664\",\"2844\":\"e8c1790f\",\"2989\":\"fa06c8b8\",\"3249\":\"a2010c2d\",\"3490\":\"d482e29b\",\"3499\":\"7b46c041\",\"3674\":\"a57eb557\",\"3785\":\"940990df\",\"4021\":\"a3380d38\",\"4196\":\"cec98eba\",\"4276\":\"51717631\",\"4548\":\"686dd66b\",\"4826\":\"64f0df2a\",\"4848\":\"b8cbdcae\",\"4981\":\"c4835180\",\"5111\":\"d348fed1\",\"5193\":\"1de6bb98\",\"5207\":\"b6625280\",\"5210\":\"d6ee4d6c\",\"5466\":\"c08dda4e\",\"5528\":\"f33f80c6\",\"5779\":\"45aee2fa\",\"5810\":\"92a3694b\",\"5824\":\"50133e6d\",\"5895\":\"bc039cca\",\"6003\":\"c76e25e0\",\"6013\":\"5c85c65a\",\"6027\":\"54f532a7\",\"6509\":\"9ca36429\",\"6590\":\"a024a679\",\"6739\":\"14f222c1\",\"6833\":\"135ef1e4\",\"6899\":\"d74c1b00\",\"7262\":\"6193bf34\",\"7420\":\"e53d9d48\",\"7643\":\"48f991b1\",\"8184\":\"6859ae89\",\"8589\":\"21ae83d2\",\"8729\":\"19ca396b\",\"9196\":\"462b659b\",\"9299\":\"710819a1\",\"9369\":\"f7907b71\",\"9575\":\"fb8eab70\",\"9633\":\"23b95cb0\",\"9694\":\"6487ada9\",\"9892\":\"dacb03d8\",\"9895\":\"f9b70895\",\"9978\":\"9241f6a8\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"65\":\"d6cbc229\",\"345\":\"0d938275\",\"518\":\"44f63b6e\",\"615\":\"be187f79\",\"747\":\"3c45f7ef\",\"1155\":\"3c072b53\",\"1798\":\"5047113b\",\"2107\":\"3a08bbb5\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"2989\":\"a4270756\",\"3490\":\"3516cb6e\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5466\":\"fb0c1b5f\",\"5779\":\"b285a776\",\"5810\":\"0aa0c9b4\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6899\":\"f3d46bda\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7643\":\"e25374a8\",\"8589\":\"459f0f41\",\"8729\":\"f98d84da\",\"9196\":\"18347c3c\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\",\"9892\":\"68b29dbb\",\"9978\":\"13387da1\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"platypush:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"65\":1,\"345\":1,\"518\":1,\"615\":1,\"747\":1,\"1155\":1,\"1798\":1,\"2107\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"2989\":1,\"3490\":1,\"3785\":1,\"4021\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5466\":1,\"5779\":1,\"5810\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6899\":1,\"7262\":1,\"7420\":1,\"7643\":1,\"8589\":1,\"8729\":1,\"9196\":1,\"9575\":1,\"9694\":1,\"9892\":1,\"9978\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^((298|858|872)9|(34|65)90|2107|4021|4981|9575)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkplatypush\"] = self[\"webpackChunkplatypush\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(5736); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["bus","mitt","hasWebsocket","ref","config","websocket_port","hasAssistant","hasPushbullet","hasNtfy","class","notifications","notification","id","index","key","text","html","title","link","image","warning","error","destroy","clicked","src","alt","icon","style","color","iconClass","name","props","methods","this","window","open","$emit","__exports__","components","Notification","duration","type","Number","default","data","timeouts","create","args","parseInt","setTimeout","bind","wsPort","ws","initialized","pending","opened","timeout","reconnectMsecs","handlers","handlerNameToEventTypes","onWebsocketTimeout","console","log","close","onClose","onMessage","event","JSON","parse","e","warn","debug","push","Object","values","handler","Array","Function","onOpen","onclose","clearTimeout","undefined","onError","code","reason","init","protocol","location","url","hostname","WebSocket","err","onmessage","onopen","onerror","subscribe","msg","events","length","handlerName","unsubscribe","keys","created","state","alerting","responding","speechRecognized","listening","Modal","mixins","Utils","responseText","phrase","hideTimeout","reset","conversationStart","$refs","assistantModal","show","conversationEnd","self","response","response_text","alertOn","alertOff","registerHandlers","mounted","notify","message","push_type","body","Pushbullet","Ntfy","Notifications","Events","VoiceAssistant","userAuthenticated","computed","onNotification","async","request","initConfig","render","loading","classes","rows","row","i","widgets","widget","j","component","getWidgetProps","String","required","split","concat","Widget","Loading","Row","refreshSeconds","parseTemplate","tmpl","node","DOMParser","parseFromString","childNodes","attributes","nodeValue","getElementsByTagName","map","children","el","nodeName","attrs","reduce","obj","content","innerHTML","$options","$route","params","template","refreshDashboard","setInterval","toFixed","method","placeholder","_register","value","register","Boolean","parseBoolean","Login","panels","selectedPanel","$event","panel","href","collapsed","panelNames","onItemClick","icons","imgUrl","emits","homeIdx","indexOf","slice","sort","host","Settings","Nav","plugins","backends","procedures","initSelectedPanel","match","hash","plugin","initPanels","entries","forEach","componentName","token","toUpperCase","join","comp","pluginName","Promise","all","initializeDefaultViews","execute","entities","parseConfig","toString","initPanel","routes","path","Panel","Dashboard","Plugin","Register","NotFound","router","createRouter","history","createWebHistory","app","createApp","App","globalProperties","_config","use","mount","showError","opts","resolve","reject","then","errors","output","catch","action","getCookies","document","cookie","item","k","v","formatDate","date","year","Date","toDateString","substring","formatTime","seconds","toTimeString","formatDateTime","_eventsReady","$root","subFunc","generateId","unwatch","$watch","newVal","btoa","fromCharCode","Math","round","random","isMobile","matchMedia","matches","isTablet","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","Api","Cookies","DateTime","Screen","Text","Types","n","script","isVisible","zIndex","$attrs","width","height","stopPropagation","visible","level","timeoutId","prevVisible","hide","toggle","visibleHndl","updated","maxZIndex","getComputedStyle","$el","outermostModals","modal","querySelectorAll","items","keepOpenOnItemClick","documentClickHndl","element","target","dropdown","parentElement","removeEventListener","addEventListener","left","top","parseFloat","button","getBoundingClientRect","innerWidth","clientWidth","innerHeight","clientHeight","itemClass","iconUrl","Icon","disabled","$parent","className","selectedView","selected","usersView","addUserModal","sessionToken","currentUser","onTokenSelect","generateToken","username","password","validityDays","expiry_days","tokenModal","select","execCommand","createUser","commandRunning","changePassword","selectedUser","users","user","user_id","changePasswordModal","deleteUser","DropdownItem","Dropdown","preventDefault","form","addUserForm","input","confirm_password","session_token","refresh","changePasswordForm","new_password","confirm_new_password","success","old_password","confirm","Users","Token","webpackAsyncContext","req","__webpack_require__","o","Error","ids","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","__proto__","mode","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","promises","miniCssF","g","globalThis","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","prev","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js b/platypush/backend/http/webapp/dist/static/js/app.5e460a95.js
similarity index 79%
rename from platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js
rename to platypush/backend/http/webapp/dist/static/js/app.5e460a95.js
index d566049f4..36b02238f 100644
--- a/platypush/backend/http/webapp/dist/static/js/app.0ecd5641.js
+++ b/platypush/backend/http/webapp/dist/static/js/app.5e460a95.js
@@ -1,2 +1,2 @@
-(function(){var e={5250:function(e,t,s){"use strict";s.d(t,{$:function(){return i}});var n=s(9652);const i=(0,n.Z)()},5736:function(e,t,s){"use strict";var n=s(9963),i=s(6252);function a(e,t,s,n,a,o){const r=(0,i.up)("Events"),l=(0,i.up)("Notifications"),c=(0,i.up)("VoiceAssistant"),d=(0,i.up)("Pushbullet"),u=(0,i.up)("Ntfy"),h=(0,i.up)("router-view");return(0,i.wg)(),(0,i.iD)(i.HY,null,[o.hasWebsocket?((0,i.wg)(),(0,i.j4)(r,{key:0,ref:"events","ws-port":a.config["backend.http"].websocket_port},null,8,["ws-port"])):(0,i.kq)("",!0),(0,i.Wm)(l,{ref:"notifications"},null,512),o.hasAssistant?((0,i.wg)(),(0,i.j4)(c,{key:1,ref:"voice-assistant"},null,512)):(0,i.kq)("",!0),o.hasPushbullet?((0,i.wg)(),(0,i.j4)(d,{key:2,ref:"pushbullet"},null,512)):(0,i.kq)("",!0),o.hasNtfy?((0,i.wg)(),(0,i.j4)(u,{key:3,ref:"ntfy"},null,512)):(0,i.kq)("",!0),(0,i.Wm)(h)],64)}const o={class:"notifications"};function r(e,t,s,n,a,r){const l=(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,((e,t,s)=>((0,i.wg)(),(0,i.j4)(l,{key:s,id:t,text:e.text,html:e.html,title:e.title,link:e.link,image:e.image,warning:e.warning,error:e.error,onClicked:r.destroy},null,8,["id","text","html","title","link","image","warning","error","onClicked"])))),128))])}var l=s(3577);const c=["textContent"],d={class:"body"},u={key:0,class:"image col-3"},h={class:"row"},p=["src"],f={key:3,class:"fa fa-exclamation"},m={key:4,class:"fa fa-times"},g=["textContent"],v=["innerHTML"],w=["textContent"],y=["innerHTML"];function b(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["notification fade-in",{warning:s.warning,error:s.error}]),onClick:t[0]||(t[0]=(...e)=>o.clicked&&o.clicked(...e))},[s.title?((0,i.wg)(),(0,i.iD)("div",{key:0,class:"title",textContent:(0,l.zw)(s.title)},null,8,c)):(0,i.kq)("",!0),(0,i._)("div",d,[s.image||s.warning||s.error?((0,i.wg)(),(0,i.iD)("div",u,[(0,i._)("div",h,[s.image&&s.image.src?((0,i.wg)(),(0,i.iD)("img",{key:0,src:s.image.src,alt:""},null,8,p)):s.image&&s.image.icon?((0,i.wg)(),(0,i.iD)("i",{key:1,class:(0,l.C_)(["fa","fa-"+s.image.icon]),style:(0,l.j5)(s.image.color?"--color: "+s.image.color:"")},null,6)):s.image&&s.image.iconClass?((0,i.wg)(),(0,i.iD)("i",{key:2,class:(0,l.C_)(s.image.iconClass),style:(0,l.j5)(s.image.color?"--color: "+s.image.color:"")},null,6)):s.warning?((0,i.wg)(),(0,i.iD)("i",f)):s.error?((0,i.wg)(),(0,i.iD)("i",m)):(0,i.kq)("",!0)])])):(0,i.kq)("",!0),s.text&&s.image?((0,i.wg)(),(0,i.iD)("div",{key:1,class:"text col-9",textContent:(0,l.zw)(s.text)},null,8,g)):(0,i.kq)("",!0),s.html&&s.image?((0,i.wg)(),(0,i.iD)("div",{key:2,class:"text col-9",innerHTML:s.html},null,8,v)):(0,i.kq)("",!0),s.text&&!s.image?((0,i.wg)(),(0,i.iD)("div",{key:3,class:"text row horizontal-center",textContent:(0,l.zw)(s.text)},null,8,w)):(0,i.kq)("",!0),s.html&&!s.image?((0,i.wg)(),(0,i.iD)("div",{key:4,class:"text row horizontal-center",innerHTML:s.html},null,8,y)):(0,i.kq)("",!0)])],2)}var k={name:"Notification",props:["id","text","html","title","image","link","error","warning"],methods:{clicked(){this.link&&window.open(this.link,"_blank"),this.$emit("clicked",this.id)}}},_=s(3744);const x=(0,_.Z)(k,[["render",b],["__scopeId","data-v-7646705e"]]);var C=x,D={name:"Notifications",components:{Notification:C},props:{duration:{type:Number,default:1e4}},data:function(){return{index:0,notifications:{},timeouts:{}}},methods:{create:function(e){const t=this.index++;this.notifications[t]=e,null==e.duration&&(e.duration=this.duration);const s=e.duration?parseInt(e.duration):0;s&&(this.timeouts[t]=setTimeout(this.destroy.bind(null,t),s))},destroy:function(e){delete this.notifications[e],delete this.timeouts[e]}}};const I=(0,_.Z)(D,[["render",r],["__scopeId","data-v-6dc8bebc"]]);var S=I,T=s(6813);function U(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var P=s(5250),M={name:"Events",props:{wsPort:{type:Number,default:8009}},data(){return{ws:null,initialized:!1,pending:!1,opened:!1,timeout:null,reconnectMsecs:3e4,handlers:{},handlerNameToEventTypes:{}}},methods:{onWebsocketTimeout(){console.log("Websocket reconnection timed out, retrying"),this.pending=!1,this.ws&&this.ws.close(),this.onClose()},onMessage(e){const t=[];if(e=e.data,"string"===typeof e)try{e=JSON.parse(e)}catch(s){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(...Object.values(this.handlers[e.args.type]));for(let s of t)s&&(s instanceof Array?s=s[0]:s instanceof Object&&!(s instanceof Function)&&(s=Object.values(s)[0]),s(e.args))}},onOpen(){this.opened&&(console.log("There's already an opened websocket connection, closing the newly opened one"),this.ws&&(this.ws.onclose=()=>{},this.ws.close())),console.log("Websocket connection successful"),this.opened=!0,this.pending&&(this.pending=!1),this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},onError(e){console.error("Websocket error"),console.error(e)},onClose(e){e&&console.log("Websocket closed - code: "+e.code+" - reason: "+e.reason),this.opened=!1,this.pending||(this.pending=!0,this.init())},init(){try{const e="https:"===location.protocol?"wss":"ws",t=`${e}://${location.hostname}:${this.wsPort}`;this.ws=new WebSocket(t)}catch(e){return console.error("Websocket initialization error"),void console.error(e)}this.pending=!0,this.timeout=setTimeout(this.onWebsocketTimeout,this.reconnectMsecs),this.ws.onmessage=this.onMessage,this.ws.onopen=this.onOpen,this.ws.onerror=this.onError,this.ws.onclose=this.onClose,this.initialized=!0},subscribe(e){const t=e.handler,s=e.events.length?e.events:[null],n=e.handlerName;for(const i of s)i in this.handlers||(this.handlers[i]={}),n in this.handlerNameToEventTypes||(this.handlerNameToEventTypes[n]=s),this.handlers[i][n]=t;return()=>{this.unsubscribe(n)}},unsubscribe(e){const t=this.handlerNameToEventTypes[e];if(t){for(const s of t)this.handlers[s]?.[e]&&(delete this.handlers[s][e],Object.keys(this.handlers[s]).length||delete this.handlers[s]);delete this.handlerNameToEventTypes[e]}}},created(){P.$.on("subscribe",this.subscribe),P.$.on("unsubscribe",this.unsubscribe),this.init()}};const N=(0,_.Z)(M,[["render",U]]);var $=N;const q={class:"assistant-modal"},O={class:"icon"},j={key:0,class:"fa fa-bell"},Z={key:1,class:"fa fa-volume-up"},E={key:2,class:"fa fa-comment-dots"},z={key:3,class:"fa fa-microphone"},W={class:"text"},R={key:0,class:"listening"},L=(0,i._)("span",null,"Assistant listening",-1),A=[L],V={key:1,class:"speech-recognized"},H=["textContent"],F={key:2,class:"responding"},B=["textContent"];function Y(e,t,s,n,a,o){const r=(0,i.up)("Modal");return(0,i.wg)(),(0,i.iD)("div",q,[(0,i.Wm)(r,{ref:"assistantModal"},{default:(0,i.w5)((()=>[(0,i._)("div",O,[a.state.alerting?((0,i.wg)(),(0,i.iD)("i",j)):a.state.responding?((0,i.wg)(),(0,i.iD)("i",Z)):a.state.speechRecognized?((0,i.wg)(),(0,i.iD)("i",E)):((0,i.wg)(),(0,i.iD)("i",z))]),(0,i._)("div",W,[a.state.listening?((0,i.wg)(),(0,i.iD)("div",R,A)):a.state.speechRecognized?((0,i.wg)(),(0,i.iD)("div",V,[(0,i._)("span",{textContent:(0,l.zw)(a.phrase)},null,8,H)])):a.state.responding?((0,i.wg)(),(0,i.iD)("div",F,[(0,i._)("span",{textContent:(0,l.zw)(a.responseText)},null,8,B)])):(0,i.kq)("",!0)])])),_:1},512)])}var K=s(8453),G={name:"VoiceAssistant",components:{Modal:K.Z},mixins:[T.Z],data(){return{responseText:"",phrase:"",hideTimeout:void 0,state:{listening:!1,speechRecognized:!1,responding:!1,alerting:!1}}},methods:{reset(){this.state.listening=!1,this.state.speechRecognized=!1,this.state.responding=!1,this.state.alerting=!1,this.phrase="",this.responseText=""},conversationStart(){this.reset(),this.state.listening=!0,this.$refs.assistantModal.show(),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=void 0)},conversationEnd(){const e=this;this.hideTimeout=setTimeout((()=>{this.reset(),e.$refs.assistantModal.close(),e.hideTimeout=void 0}),4e3)},speechRecognized(e){this.reset(),this.state.speechRecognized=!0,this.phrase=e.phrase,this.$refs.assistantModal.show()},response(e){this.reset(),this.state.responding=!0,this.responseText=e.response_text,this.$refs.assistantModal.show()},alertOn(){this.reset(),this.state.alerting=!0,this.$refs.assistantModal.show()},alertOff(){this.reset(),this.state.alerting=!1,this.$refs.assistantModal.close()},registerHandlers(){this.subscribe(this.conversationStart,null,"platypush.message.event.assistant.ConversationStartEvent"),this.subscribe(this.alertOn,null,"platypush.message.event.assistant.AlertStartedEvent"),this.subscribe(this.alertOff,null,"platypush.message.event.assistant.AlertEndEvent"),this.subscribe(this.speechRecognized,null,"platypush.message.event.assistant.SpeechRecognizedEvent"),this.subscribe(this.response,null,"platypush.message.event.assistant.ResponseEvent"),this.subscribe(this.conversationEnd,null,"platypush.message.event.assistant.ConversationEndEvent","platypush.message.event.assistant.NoResponseEvent","platypush.message.event.assistant.ConversationTimeoutEvent")}},mounted(){this.registerHandlers()}};const J=(0,_.Z)(G,[["render",Y]]);var X=J;function Q(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var ee={name:"Ntfy",mixins:[T.Z],methods:{onMessage(e){this.notify({title:e.title,text:e.message,image:{icon:"bell"}})}},mounted(){this.subscribe(this.onMessage,null,"platypush.message.event.ntfy.NotificationEvent")}};const te=(0,_.Z)(ee,[["render",Q]]);var se=te;function ne(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var ie={name:"Pushbullet",mixins:[T.Z],methods:{onMessage(e){"mirror"===e.push_type&&this.notify({title:e.title,text:e.body,image:{src:e.icon?"data:image/png;base64, "+e.icon:void 0,icon:e.icon?void 0:"bell"}})}},mounted(){this.subscribe(this.onMessage,null,"platypush.message.event.pushbullet.PushbulletEvent")}};const ae=(0,_.Z)(ie,[["render",ne]]);var oe=ae,re={name:"App",mixins:[T.Z],components:{Pushbullet:oe,Ntfy:se,Notifications:S,Events:$,VoiceAssistant:X},data(){return{config:{},userAuthenticated:!1}},computed:{hasWebsocket(){return this.userAuthenticated&&"backend.http"in this.config},hasAssistant(){return this.hasWebsocket},hasPushbullet(){return this.hasWebsocket&&("pushbullet"in this.config||"backend.pushbullet"in this.config)},hasNtfy(){return this.hasWebsocket&&"ntfy"in this.config}},methods:{onNotification(e){this.$refs.notifications.create(e)},async initConfig(){this.config=await this.request("config.get",{},6e4,!1),this.userAuthenticated=!0}},created(){this.initConfig()},mounted(){P.$.on("notification-create",this.onNotification)}};const le=(0,_.Z)(re,[["render",a]]);var ce=le,de=s(2201);function ue(e,t,s,n,a,o){const r=(0,i.up)("Loading"),c=(0,i.up)("Widget"),d=(0,i.up)("Row");return(0,i.wg)(),(0,i.iD)(i.HY,null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):(0,i.kq)("",!0),(0,i._)("div",{id:"dashboard",class:(0,l.C_)(["col-12",o.classes]),style:(0,l.j5)(a.style)},[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.rows,((e,t)=>((0,i.wg)(),(0,i.j4)(d,{key:t,class:(0,l.C_)(e.class),style:(0,l.j5)(e.style)},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.widgets,((e,t)=>((0,i.wg)(),(0,i.j4)(i.Ob,{key:t},[(0,i.Wm)(c,{style:(0,l.j5)(e.style),class:(0,l.C_)(e.class)},{default:(0,i.w5)((()=>[((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),(0,l.vs)((0,i.F4)(o.getWidgetProps(e))),null,16))])),_:2},1032,["style","class"])],1024)))),128))])),_:2},1032,["class","style"])))),128))],6)],64)}var he=s(1232);function pe(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["row",o.classes]),style:(0,l.j5)(s.style)},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],6)}var fe={name:"Row",props:{class:{type:String,required:!1,default:""},style:{type:String,required:!1,default:""}},computed:{classes(){return this.class}}};const me=(0,_.Z)(fe,[["render",pe],["__scopeId","data-v-1b4663f2"]]);var ge=me;function ve(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{style:(0,l.j5)(s.style),class:(0,l.C_)(o.classes)},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],6)}var we={name:"Widget",props:{style:{type:String,required:!1,default:""},class:{type:String,required:!1,default:""}},computed:{classes(){return(this.class?.length?this.class.split(" "):["col-3"]).concat(["widget","column"])}}};const ye=(0,_.Z)(we,[["render",ve],["__scopeId","data-v-5df52982"]]);var be=ye,ke={name:"Dashboard",mixins:[T.Z],components:{Widget:be,Loading:he.Z,Row:ge},props:{refreshSeconds:{type:Number,required:!1,default:0}},data(){return{rows:[],loading:!1,style:void 0,class:void 0}},computed:{classes(){return this.class}},methods:{getWidgetProps(e){const t={...e.props};return t.class&&delete t.class,t},parseTemplate(e,t){const n=(new DOMParser).parseFromString(t,"text/xml").childNodes[0],a=this;this.style=n.attributes.style?.nodeValue,this.class=n.attributes.class?.nodeValue,this.rows=[...n.getElementsByTagName("Row")].map((e=>({style:e.attributes.style?.nodeValue,class:e.attributes.class?.nodeValue,widgets:[...e.children].map((e=>{const t=(0,i.RC)((()=>s(6725)(`./${e.nodeName}/Index`))),n=e.attributes.style?.nodeValue,o=e.attributes.class?.nodeValue,r=[...e.attributes].reduce(((e,t)=>("style"!==t.nodeName&&(e[t.nodeName]=t.nodeValue),e)),{content:e.innerHTML}),l={component:t,style:n,class:o,props:r||{}};return a.$options.components[e.nodeName]=t,l}))}))),this.loading=!1},async refreshDashboard(){this.loading=!0,this.widgets=[];const e=this.$route.params.name,t=await this.request("config.get_dashboard",{name:e});t||this.error(`Dashboard ${e} not found`),this.parseTemplate(e,t)}},mounted(){if(this.refreshDashboard(),this.refreshSeconds){const e=this;setInterval((()=>{e.refreshDashboard()}),parseInt((1e3*this.refreshSeconds).toFixed(0)))}}};const _e=(0,_.Z)(ke,[["render",ue],["__scopeId","data-v-cefcfdfc"]]);var xe=_e;function Ce(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("h1",null,"Object not found")}var De={name:"NotFound"};const Ie=(0,_.Z)(De,[["render",Ce]]);var Se=Ie;const Te=e=>((0,i.dD)("data-v-16cef6aa"),e=e(),(0,i.Cn)(),e),Ue={class:"login-container"},Pe={class:"login",method:"POST"},Me=(0,i.uE)('
Platypush
',3),Ne={key:0,class:"row"},$e=Te((()=>(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1))),qe=[$e],Oe={class:"row buttons"},je=["value"],Ze=Te((()=>(0,i._)("div",{class:"row pull-right"},[(0,i._)("label",{class:"checkbox"},[(0,i._)("input",{type:"checkbox",name:"remember"}),(0,i.Uk)(" Keep me logged in on this device  ")])],-1)));function Ee(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",Ue,[(0,i._)("form",Pe,[Me,o._register?((0,i.wg)(),(0,i.iD)("div",Ne,qe)):(0,i.kq)("",!0),(0,i._)("div",Oe,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:o._register?"Register":"Login"},null,8,je)]),Ze])])}var ze={name:"Login",mixins:[T.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register(){return this.parseBoolean(this.register)}}};const We=(0,_.Z)(ze,[["render",Ee],["__scopeId","data-v-16cef6aa"]]);var Re=We;function Le(e,t,s,n,a,o){const r=(0,i.up)("Login");return(0,i.wg)(),(0,i.j4)(r,{register:!0})}var Ae={name:"Register",mixins:[Re],components:{Login:Re},props:{register:{type:Boolean,required:!1,default:!0}}};const Ve=(0,_.Z)(Ae,[["render",Le]]);var He=Ve;const Fe={key:2,class:"canvas"},Be={class:"panel"},Ye={key:3,class:"canvas"};function Ke(e,t,s,n,a,o){const r=(0,i.up)("Loading"),c=(0,i.up)("Nav"),d=(0,i.up)("Settings");return(0,i.wg)(),(0,i.iD)("main",null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):((0,i.wg)(),(0,i.j4)(c,{key:1,panels:a.components,"selected-panel":a.selectedPanel,hostname:a.hostname,onSelect:t[0]||(t[0]=e=>a.selectedPanel=e)},null,8,["panels","selected-panel","hostname"])),"settings"===a.selectedPanel?((0,i.wg)(),(0,i.iD)("div",Fe,[(0,i._)("div",Be,[(0,i.Wm)(d)])])):((0,i.wg)(),(0,i.iD)("div",Ye,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.components,((e,t)=>((0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["panel",{hidden:t!==a.selectedPanel}]),key:t},[t===a.selectedPanel?((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),{key:0,config:e.config,"plugin-name":t},null,8,["config","plugin-name"])):(0,i.kq)("",!0)],2)))),128))]))])}const Ge=e=>((0,i.dD)("data-v-69a507f4"),e=e(),(0,i.Cn)(),e),Je=Ge((()=>(0,i._)("i",{class:"fas fa-bars"},null,-1))),Xe=["textContent"],Qe={class:"plugins"},et=["title","onClick"],tt=["href"],st={class:"icon"},nt=["src"],it={key:2,class:"fas fa-puzzle-piece"},at=["textContent"],ot={class:"footer"},rt={href:"/#settings"},lt=Ge((()=>(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fa fa-cog"})],-1))),ct={key:0,class:"name"},dt={href:"/logout"},ut=Ge((()=>(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fas fa-sign-out-alt"})],-1))),ht={key:0,class:"name"};function pt(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("nav",{class:(0,l.C_)({collapsed:a.collapsed})},[(0,i._)("div",{class:"toggler",onClick:t[0]||(t[0]=e=>a.collapsed=!a.collapsed)},[Je,s.hostname?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"hostname",textContent:(0,l.zw)(s.hostname)},null,8,Xe)):(0,i.kq)("",!0)]),(0,i._)("ul",Qe,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(o.panelNames,(e=>((0,i.wg)(),(0,i.iD)("li",{key:e,class:(0,l.C_)(["entry",{selected:e===s.selectedPanel}]),title:e,onClick:t=>o.onItemClick(e)},[(0,i._)("a",{href:`/#${e}`},[(0,i._)("span",st,[a.icons[e]?.class?((0,i.wg)(),(0,i.iD)("i",{key:0,class:(0,l.C_)(a.icons[e].class)},null,2)):a.icons[e]?.imgUrl?((0,i.wg)(),(0,i.iD)("img",{key:1,src:a.icons[e].imgUrl,alt:"name"},null,8,nt)):((0,i.wg)(),(0,i.iD)("i",it))]),a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",{key:0,class:"name",textContent:(0,l.zw)("entities"==e?"Home":e)},null,8,at))],8,tt)],10,et)))),128))]),(0,i._)("ul",ot,[(0,i._)("li",{class:(0,l.C_)({selected:"settings"===s.selectedPanel}),title:"Settings",onClick:t[1]||(t[1]=e=>o.onItemClick("settings"))},[(0,i._)("a",rt,[lt,a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ct,"Settings"))])],2),(0,i._)("li",{title:"Logout",onClick:t[2]||(t[2]=e=>o.onItemClick("logout"))},[(0,i._)("a",dt,[ut,a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ht,"Logout"))])])])],2)}var ft=s(1359),mt={name:"Nav",emits:["select"],mixins:[T.Z],props:{panels:{type:Object,required:!0},selectedPanel:{type:String},hostname:{type:String}},computed:{panelNames(){let e=Object.keys(this.panels);const t=e.indexOf("entities");return t>=0?["entities"].concat(e.slice(0,t).concat(e.slice(t+1)).sort()):e.sort()}},methods:{onItemClick(e){this.$emit("select",e),this.collapsed=!0}},data(){return{collapsed:!0,icons:ft,host:null}}};const gt=(0,_.Z)(mt,[["render",pt],["__scopeId","data-v-69a507f4"]]);var vt=gt,wt=s(5392),yt={name:"Panel",mixins:[T.Z],components:{Settings:wt["default"],Nav:vt,Loading:he.Z},data(){return{loading:!1,plugins:{},backends:{},procedures:{},components:{},hostname:void 0,selectedPanel:void 0}},methods:{initSelectedPanel(){const e=this.$route.hash.match("#?([a-zA-Z0-9.]+)[?]?(.*)"),t=e?e[1]:"entities";t?.length&&(this.selectedPanel=t)},initPanels(){const e=this;this.components={},Object.entries(this.plugins).forEach((async([t,n])=>{const a=t.split(".").map((e=>e[0].toUpperCase()+e.slice(1))).join("");let o=null;try{o=await s(3379)(`./${a}/Index`)}catch(l){return}const r=(0,i.RC)((async()=>o));e.$options.components[t]=r,e.components[t]={component:r,pluginName:t,config:n}}))},async parseConfig(){[this.plugins,this.backends,this.procedures,this.hostname]=await Promise.all([this.request("config.get_plugins"),this.request("config.get_backends"),this.request("config.get_procedures"),this.request("config.get_device_id")]),this.initializeDefaultViews()},initializeDefaultViews(){this.plugins.execute={},this.plugins.entities={}}},async mounted(){this.loading=!0;try{await this.parseConfig(),this.initPanels(),this.initSelectedPanel()}finally{this.loading=!1}}};const bt=(0,_.Z)(yt,[["render",Ke],["__scopeId","data-v-344b6d1a"]]);var kt=bt;const _t={key:1,class:"canvas"};function xt(e,t,s,n,a,o){const r=(0,i.up)("Loading");return(0,i.wg)(),(0,i.iD)("main",null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):((0,i.wg)(),(0,i.iD)("div",_t,[((0,i.wg)(),(0,i.j4)((0,i.LL)(a.component),{config:a.config,"plugin-name":o.pluginName},null,8,["config","plugin-name"]))]))])}var Ct={name:"Panel",mixins:[T.Z],components:{Settings:wt["default"],Nav:vt,Loading:he.Z},data(){return{loading:!1,config:{},plugins:{},backends:{},procedures:{},component:void 0,hostname:void 0,selectedPanel:void 0}},computed:{pluginName(){return this.$route.params.plugin}},methods:{async initPanel(){const e=this.pluginName.split(".").map((e=>e[0].toUpperCase()+e.slice(1))).join("");let t=null;try{t=await s(3379)(`./${e}/Index`)}catch(n){return console.error(n),void this.notify({error:!0,title:`Cannot load plugin ${this.pluginName}`,text:n.toString()})}this.component=(0,i.RC)((async()=>t)),this.$options.components[name]=this.component},async initConfig(){const e=await this.request("config.get");this.config=e[this.pluginName]||{},this.hostname=await this.request("config.get_device_id")}},async mounted(){this.loading=!0;try{await this.initConfig(),await this.initPanel()}finally{this.loading=!1}}};const Dt=(0,_.Z)(Ct,[["render",xt],["__scopeId","data-v-67571c94"]]);var It=Dt;const St=[{path:"/",name:"Panel",component:kt},{path:"/dashboard/:name",name:"Dashboard",component:xe},{path:"/plugin/:plugin",name:"Plugin",component:It},{path:"/login",name:"Login",component:Re},{path:"/register",name:"Register",component:He},{path:"/:catchAll(.*)",component:Se}],Tt=(0,de.p7)({history:(0,de.PO)(),routes:St});var Ut=Tt;const Pt=(0,n.ri)(ce);Pt.config.globalProperties._config=window.config,Pt.use(Ut).mount("#app")},6813:function(e,t,s){"use strict";s.d(t,{Z:function(){return N}});var n=s(9669),i=s.n(n),a={name:"Api",methods:{execute(e,t=6e4,s=!0){const n={};return"target"in e&&e["target"]||(e["target"]="localhost"),"type"in e&&e["type"]||(e["type"]="request"),t&&(n.timeout=t),new Promise(((t,a)=>{i().post("/execute",e,n).then((e=>{if(e=e.data.response,e.errors?.length){const t=e.errors?.[0]||e;this.notify({text:t,error:!0}),a(t)}else t(e.output)})).catch((e=>{s&&this.notify({text:e,error:!0}),a(e)}))}))},request(e,t={},s=6e4,n=!0){return this.execute({type:"request",action:e,args:t},s,n)}}};const o=a;var r=o,l={name:"Cookies",methods:{getCookies(){return document.cookie.split(/;\s*/).reduce(((e,t)=>{const[s,n]=t.split("=");return e[s]=n,e}),{})}}};const c=l;var d=c,u={name:"DateTime",methods:{formatDate(e,t=!1){return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toDateString().substring(0,t?15:10)},formatTime(e,t=!0){return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toTimeString().substring(0,t?8:5)},formatDateTime(e,t=!1,s=!0){return"string"===typeof e&&(e=new Date(Date.parse(e))),`${this.formatDate(e,t)}, ${this.formatTime(e,s)}`}}};const h=u;var p=h,f=(s(2801),s(5250)),m={name:"Events",computed:{_eventsReady(){return this.$root.$refs.events?.initialized}},methods:{subscribe(e,t,...s){const n=()=>{f.$.emit("subscribe",{events:s,handler:e,handlerName:t||this.generateId()})};if(this._eventsReady)return void n();const i=this,a=this.$watch((()=>i._eventsReady),(e=>{e&&(n(),a())}));return a},unsubscribe(e){f.$.emit("unsubscribe",e)},generateId(){return btoa([...Array(11).keys()].map((()=>String.fromCharCode(Math.round(255*Math.random())))))}}};const g=m;var v=g,w={name:"Notification",methods:{notify(e){f.$.emit("notification-create",e)},warn(e){this.notify({text:e,warning:!0})},error(e){throw this.notify({text:e,error:!0}),e}}};const y=w;var b=y,k={name:"Screen",methods:{isMobile(){return window.matchMedia("only screen and (max-width: 760px)").matches},isTablet(){return!this.isMobile()&&window.matchMedia("only screen and (max-width: 960px)").matches},isDesktop(){return window.matchMedia("only screen and (min-width: 1152px)").matches}}};const _=k;var x=_,C={name:"Text",methods:{capitalize(e){return e?.length?e.charAt(0).toUpperCase()+e.slice(1):e},prettify(e){return e.split("_").map((e=>this.capitalize(e))).join(" ")}}};const D=C;var I=D,S={name:"Types",methods:{parseBoolean(e){return"string"===typeof e?(e=e.toLowerCase(),"true"===e||"false"!==e&&!!parseInt(e)):!!e},convertSize(e){"string"===typeof e&&(e=parseInt(e));let t=null;const s=["B","KB","MB","GB","TB"];return s.forEach(((n,i)=>{e<=1024&&null==t?t=n:e>1024&&(i===s.length-1?t=n:e/=1024)})),`${e.toFixed(2)} ${t}`}}};const T=S;var U=T,P={name:"Utils",mixins:[r,d,b,v,p,x,I,U]};const M=P;var N=M},1232:function(e,t,s){"use strict";s.d(t,{Z:function(){return d}});var n=s(6252);const i={class:"loading"},a={class:"icon"};function o(e,t){return(0,n.wg)(),(0,n.iD)("div",i,[(0,n._)("div",a,[((0,n.wg)(),(0,n.iD)(n.HY,null,(0,n.Ko)(4,(e=>(0,n._)("div",{key:e}))),64))])])}var r=s(3744);const l={},c=(0,r.Z)(l,[["render",o],["__scopeId","data-v-4d9c871b"]]);var d=c},8453:function(e,t,s){"use strict";s.d(t,{Z:function(){return h}});var n=s(6252),i=s(3577);const a=["id"],o=["textContent"],r={class:"body"};function l(e,t,s,l,c,d){return(0,n.wg)(),(0,n.iD)("div",{class:(0,i.C_)(["modal-container fade-in",{hidden:!c.isVisible}]),id:s.id,style:(0,i.j5)({"--z-index":d.zIndex}),onClick:t[2]||(t[2]=(...e)=>d.close&&d.close(...e))},[(0,n._)("div",{class:(0,i.C_)(["modal",e.$attrs.class])},[(0,n._)("div",{class:"content",style:(0,i.j5)({"--width":s.width,"--height":s.height}),onClick:t[1]||(t[1]=e=>e.stopPropagation())},[s.title?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"header",textContent:(0,i.zw)(s.title)},null,8,o)):(0,n.kq)("",!0),(0,n._)("div",r,[(0,n.WI)(e.$slots,"default",{onModalClose:t[0]||(t[0]=(...e)=>d.close&&d.close(...e))},void 0,!0)])],4)],2)],14,a)}var c={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(){return{timeoutId:void 0,prevVisible:this.visible,isVisible:this.visible}},computed:{zIndex(){return 500+this.level}},methods:{close(){this.prevVisible=this.isVisible,this.isVisible=!1},hide(){this.close()},show(){this.prevVisible=this.isVisible,this.isVisible=!0},toggle(){this.isVisible?this.close():this.show()}},mounted(){const e=this,t=t=>{t?e.$emit("open"):e.$emit("close"),e.isVisible=t};this.$watch((()=>this.visible),t),this.$watch((()=>this.isVisible),t)},updated(){if(this.prevVisible=this.isVisible,this.isVisible){let e=parseInt(getComputedStyle(this.$el).zIndex),t=[];for(const s of document.querySelectorAll(".modal-container:not(.hidden)")){const n=parseInt(getComputedStyle(s).zIndex);n>e?(e=n,t=[s]):n===e&&t.push(s)}(t.indexOf(this.$el)<0||t.length>1)&&(this.$el.style.zIndex=e+1)}if(this.isVisible&&this.timeout&&!this.timeoutId){const e=e=>()=>{e.close(),e.timeoutId=void 0};this.timeoutId=setTimeout(e(this),0+this.timeout)}}},d=s(3744);const u=(0,d.Z)(c,[["render",l],["__scopeId","data-v-7d1f6e8b"]]);var h=u},5771:function(e,t,s){"use strict";s.d(t,{Z:function(){return f}});var n=s(6252),i=s(9963),a=s(3577);const o={class:"dropdown-container",ref:"container"},r=["title"],l=["textContent"],c=["id"];function d(e,t,s,d,u,h){return(0,n.wg)(),(0,n.iD)("div",o,[(0,n._)("button",{title:s.title,ref:"button",onClick:t[0]||(t[0]=(0,i.iM)((e=>h.toggle(e)),["stop"]))},[s.iconClass?((0,n.wg)(),(0,n.iD)("i",{key:0,class:(0,a.C_)(["icon",s.iconClass])},null,2)):(0,n.kq)("",!0),s.text?((0,n.wg)(),(0,n.iD)("span",{key:1,class:"text",textContent:(0,a.zw)(s.text)},null,8,l)):(0,n.kq)("",!0)],8,r),(0,n._)("div",{class:(0,a.C_)(["dropdown fade-in",{hidden:!u.visible}]),id:s.id,ref:"dropdown"},[(0,n.WI)(e.$slots,"default",{},void 0,!0)],10,c)],512)}var u={name:"Dropdown",emits:["click"],props:{id:{type:String},items:{type:Array,default:()=>[]},iconClass:{type:String,default:"fa fa-ellipsis-h"},text:{type:String},title:{type:String},keepOpenOnItemClick:{type:Boolean,default:!1}},data(){return{visible:!1}},methods:{documentClickHndl(e){if(!this.visible)return;let t=e.target;while(t){if(!this.$refs.dropdown)break;if(t===this.$refs.dropdown.element)return;t=t.parentElement}this.close()},close(){this.visible=!1,document.removeEventListener("click",this.documentClickHndl)},open(){document.addEventListener("click",this.documentClickHndl),this.visible=!0,setTimeout((()=>{const e=this.$refs.dropdown;e.style.left=0,e.style.top=parseFloat(getComputedStyle(this.$refs.button).height)+"px",e.getBoundingClientRect().left>window.innerWidth/2&&(e.style.left=-e.clientWidth+parseFloat(getComputedStyle(this.$refs.button).width)+"px"),e.getBoundingClientRect().top>window.innerHeight/2&&(e.style.top=-e.clientHeight+parseFloat(getComputedStyle(this.$refs.button).height)+"px")}),10)},toggle(e){e.stopPropagation(),this.$emit("click"),this.visible?this.close():this.open()}}},h=s(3744);const p=(0,h.Z)(u,[["render",d],["__scopeId","data-v-21bf0316"]]);var f=p},9015:function(e,t,s){"use strict";s.d(t,{Z:function(){return h}});var n=s(6252),i=s(3577);const a={key:0,class:"col-1 icon"},o=["textContent"];function r(e,t,s,r,l,c){const d=(0,n.up)("Icon");return(0,n.wg)(),(0,n.iD)("div",{class:(0,i.C_)(["row item",s.itemClass]),onClick:t[0]||(t[0]=(...e)=>c.clicked&&c.clicked(...e))},[s.iconClass?.length||s.iconUrl?.length?((0,n.wg)(),(0,n.iD)("div",a,[(0,n.Wm)(d,{class:(0,i.C_)(s.iconClass),url:s.iconUrl},null,8,["class","url"])])):(0,n.kq)("",!0),(0,n._)("div",{class:(0,i.C_)(["text",{"col-11":null!=s.iconClass}]),textContent:(0,i.zw)(s.text)},null,10,o)],2)}var l=s(1478),c={name:"DropdownItem",components:{Icon:l.Z},props:{iconClass:{type:String},iconUrl:{type:String},text:{type:String},disabled:{type:Boolean,default:!1},itemClass:{type:String}},methods:{clicked(e){if(this.disabled)return!1;this.$parent.$emit("click",e),this.$parent.keepOpenOnItemClick||(this.$parent.visible=!1)}}},d=s(3744);const u=(0,d.Z)(c,[["render",r],["__scopeId","data-v-0a3cac88"]]);var h=u},1478:function(e,t,s){"use strict";s.d(t,{Z:function(){return u}});var n=s(6252),i=s(3577);const a={class:"icon-container"},o=["src","alt"];function r(e,t,s,r,l,c){return(0,n.wg)(),(0,n.iD)("div",a,[s.url?.length?((0,n.wg)(),(0,n.iD)("img",{key:0,class:"icon",src:s.url,alt:s.alt},null,8,o)):c.className?.length?((0,n.wg)(),(0,n.iD)("i",{key:1,class:(0,i.C_)(["icon",c.className]),style:(0,i.j5)({color:s.color})},null,6)):(0,n.kq)("",!0)])}var l={props:{class:{type:String},url:{type:String},color:{type:String,default:""},alt:{type:String,default:""}},computed:{className(){return this.class}}},c=s(3744);const d=(0,c.Z)(l,[["render",r],["__scopeId","data-v-706a3bd1"]]);var u=d},5392:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return Ce}});var n=s(6252);const i={class:"settings-container"},a={class:"col-8"},o=["selected"],r=["selected"],l={class:"col-4 pull-right"},c=(0,n._)("i",{class:"fa fa-plus"},null,-1),d=[c];function u(e,t,s,c,u,h){const p=(0,n.up)("Users"),f=(0,n.up)("Token");return(0,n.wg)(),(0,n.iD)("div",i,[(0,n._)("header",null,[(0,n._)("div",a,[(0,n._)("select",{title:"View",onChange:t[0]||(t[0]=e=>u.selectedView=e.target.value)},[(0,n._)("option",{value:"users",selected:"users"===u.selectedView},"Users",8,o),(0,n._)("option",{value:"token",selected:"token"===u.selectedView},"Generate Token",8,r)],32)]),(0,n._)("div",l,["users"===u.selectedView?((0,n.wg)(),(0,n.iD)("button",{key:0,title:"Add User",onClick:t[1]||(t[1]=t=>e.$refs.usersView.$refs.addUserModal.show())},d)):(0,n.kq)("",!0)])]),(0,n._)("main",null,["users"===u.selectedView?((0,n.wg)(),(0,n.j4)(p,{key:0,"session-token":u.sessionToken,"current-user":u.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===u.selectedView?((0,n.wg)(),(0,n.j4)(f,{key:1,"session-token":u.sessionToken,"current-user":u.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,n.kq)("",!0)])])}var h=s(3577),p=s(9963);const f={class:"token-container"},m={class:"token-container"},g=(0,n.Uk)(" This is your generated token. Treat it carefully and do not share it with untrusted parties."),v=(0,n._)("br",null,null,-1),w=(0,n.Uk)(" Also, make sure to save it - it WILL NOT be displayed again. "),y=["textContent"],b={class:"body"},k={class:"description"},_=(0,n.Uk)("Generate a JWT authentication token that can be used for API calls to the "),x=(0,n.Uk)("/execute"),C=(0,n.Uk)(" endpoint."),D=(0,n._)("br",null,null,-1),I=(0,n._)("p",null,"You can include the token in your requests in any of the following ways:",-1),S=(0,n.Uk)("Specify it on the "),T=(0,n.Uk)("Authorization: Bearer"),U=(0,n.Uk)(" header;"),P=(0,n.Uk)("Specify it on the "),M=(0,n.Uk)("X-Token"),N=(0,n.Uk)(" header;"),$=(0,n.Uk)("Specify it as a URL parameter: "),q=(0,n.Uk)("http://site:8008/execute?token=..."),O=(0,n.Uk)(";"),j=(0,n.Uk)("Specify it on the body of your JSON request: "),Z=(0,n.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,n.Uk)("."),z=(0,n.Uk)(" Confirm your credentials in order to generate a new token. "),W={class:"form-container"},R=(0,n.Uk)(" Username "),L=["value"],A=(0,n._)("label",null,[(0,n.Uk)(" Password "),(0,n._)("input",{type:"password",name:"password"})],-1),V=(0,n._)("label",null,[(0,n.Uk)(" Token validity in days "),(0,n._)("input",{type:"text",name:"validityDays"}),(0,n._)("span",{class:"note"},[(0,n.Uk)(" Decimal values are also supported (e.g. "),(0,n._)("i",null,"0.5"),(0,n.Uk)(" to identify 6 hours). An empty or zero value means that the token has no expiry date. ")])],-1),H=(0,n._)("input",{type:"submit",value:"Generate token"},null,-1);function F(e,t,s,i,a,o){const r=(0,n.up)("Loading"),l=(0,n.up)("Modal"),c=(0,n.up)("tt");return(0,n.wg)(),(0,n.iD)("div",f,[a.loading?((0,n.wg)(),(0,n.j4)(r,{key:0})):(0,n.kq)("",!0),(0,n.Wm)(l,{ref:"tokenModal"},{default:(0,n.w5)((()=>[(0,n._)("div",m,[(0,n._)("label",null,[g,v,w,(0,n._)("textarea",{class:"token",textContent:(0,h.zw)(a.token),onFocus:t[0]||(t[0]=(...e)=>o.onTokenSelect&&o.onTokenSelect(...e))},null,40,y)])])])),_:1},512),(0,n._)("div",b,[(0,n._)("div",k,[(0,n._)("p",null,[_,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[x])),_:1}),C]),D,I,(0,n._)("ul",null,[(0,n._)("li",null,[S,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[T])),_:1}),U]),(0,n._)("li",null,[P,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[M])),_:1}),N]),(0,n._)("li",null,[$,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[q])),_:1}),O]),(0,n._)("li",null,[j,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[Z])),_:1}),E])]),z]),(0,n._)("div",W,[(0,n._)("form",{onSubmit:t[1]||(t[1]=(0,p.iM)(((...e)=>o.generateToken&&o.generateToken(...e)),["prevent"])),ref:"generateTokenForm"},[(0,n._)("label",null,[R,(0,n._)("input",{type:"text",name:"username",value:s.currentUser.username,disabled:""},null,8,L)]),A,V,H],544)])])])}var B=s(9669),Y=s.n(B),K=s(1232),G=s(6813),J=s(8453),X={name:"Token",components:{Modal:J.Z,Loading:K.Z},mixins:[G.Z],props:{currentUser:{type:Object,required:!0}},data(){return{loading:!1,token:null}},methods:{async generateToken(e){const t=this.currentUser.username,s=e.target.password.value;let n=e.target.validityDays?.length?parseInt(e.target.validityDays.value):0;n||(n=null),this.loading=!0;try{this.token=(await Y().post("/auth",{username:t,password:s,expiry_days:n})).data.token,this.token?.length&&this.$refs.tokenModal.show()}catch(i){console.error(i.toString()),this.notify({text:i.toString(),error:!0})}finally{this.loading=!1}},onTokenSelect(e){e.target.select(),document.execCommand("copy"),this.notify({text:"Token copied to clipboard",image:{iconClass:"fa fa-check"}})}}},Q=s(3744);const ee=(0,Q.Z)(X,[["render",F]]);var te=ee;const se=["disabled"],ne=["disabled"],ie=["disabled"],ae=["disabled"],oe=["value"],re=["disabled"],le=["disabled"],ce=["disabled"],de=["disabled"],ue={class:"body"},he={class:"users-list"},pe=["onClick"],fe=["textContent"],me={class:"actions pull-right col-4"};function ge(e,t,s,i,a,o){const r=(0,n.up)("Loading"),l=(0,n.up)("Modal"),c=(0,n.up)("DropdownItem"),d=(0,n.up)("Dropdown");return(0,n.wg)(),(0,n.iD)(n.HY,null,[a.loading?((0,n.wg)(),(0,n.j4)(r,{key:0})):(0,n.kq)("",!0),(0,n.Wm)(l,{ref:"addUserModal",title:"Add User"},{default:(0,n.w5)((()=>[(0,n._)("form",{action:"#",method:"POST",ref:"addUserForm",onSubmit:t[0]||(t[0]=(...e)=>o.createUser&&o.createUser(...e))},[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"username",placeholder:"Username",disabled:a.commandRunning},null,8,se)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"password",placeholder:"Password",disabled:a.commandRunning},null,8,ne)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password",disabled:a.commandRunning},null,8,ie)]),(0,n._)("input",{type:"submit",value:"Create User",disabled:a.commandRunning},null,8,ae)],544)])),_:1},512),(0,n.Wm)(l,{ref:"changePasswordModal",title:"Change Password"},{default:(0,n.w5)((()=>[(0,n._)("form",{action:"#",method:"POST",ref:"changePasswordForm",onSubmit:t[1]||(t[1]=(...e)=>o.changePassword&&o.changePassword(...e))},[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"username",placeholder:"Username",value:a.selectedUser,disabled:"disabled"},null,8,oe)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"password",placeholder:"Current password",disabled:a.commandRunning},null,8,re)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"new_password",placeholder:"New password",disabled:a.commandRunning},null,8,le)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"confirm_new_password",placeholder:"Confirm new password",disabled:a.commandRunning},null,8,ce)]),(0,n._)("input",{type:"submit",value:"Change Password",disabled:a.commandRunning},null,8,de)],544)])),_:1},512),(0,n._)("div",ue,[(0,n._)("ul",he,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(a.users,(t=>((0,n.wg)(),(0,n.iD)("li",{key:t.user_id,class:"item user",onClick:e=>a.selectedUser=t.username},[(0,n._)("div",{class:"name col-8",textContent:(0,h.zw)(t.username)},null,8,fe),(0,n._)("div",me,[(0,n.Wm)(d,{title:"User Actions","icon-class":"fa fa-cog"},{default:(0,n.w5)((()=>[(0,n.Wm)(c,{text:"Change Password",disabled:a.commandRunning,"icon-class":"fa fa-key",onClick:s=>{a.selectedUser=t.username,e.$refs.changePasswordModal.show()}},null,8,["disabled","onClick"]),(0,n.Wm)(c,{text:"Delete User",disabled:a.commandRunning,"icon-class":"fa fa-trash",onClick:e=>o.deleteUser(t)},null,8,["disabled","onClick"])])),_:2},1024)])],8,pe)))),128))])])],64)}var ve=s(5771),we=s(9015),ye={name:"Users",components:{DropdownItem:we.Z,Loading:K.Z,Modal:J.Z,Dropdown:ve.Z},mixins:[G.Z],props:{sessionToken:{type:String,required:!0},currentUser:{type:Object,required:!0}},data(){return{users:[],commandRunning:!1,loading:!1,selectedUser:null}},methods:{async refresh(){this.loading=!0;try{this.users=await this.request("user.get_users")}finally{this.loading=!1}},async createUser(e){e.preventDefault();const t=[...this.$refs.addUserForm.querySelectorAll("input[name]")].reduce(((e,t)=>(e[t.name]=t.value,e)),{});if(t.password===t.confirm_password){this.commandRunning=!0;try{await this.request("user.create_user",{username:t.username,password:t.password,session_token:this.sessionToken})}finally{this.commandRunning=!1}this.notify({text:"User "+t.username+" created",image:{iconClass:"fas fa-check"}}),this.$refs.addUserModal.close(),await this.refresh()}else this.notify({title:"Unable to create user",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}})},async changePassword(e){e.preventDefault();const t=[...this.$refs.changePasswordForm.querySelectorAll("input[name]")].reduce(((e,t)=>(e[t.name]=t.value,e)),{});if(t.new_password!==t.confirm_new_password)return void this.notify({title:"Unable to update password",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}});this.commandRunning=!0;let s=!1;try{s=await this.request("user.update_password",{username:t.username,old_password:t.password,new_password:t.new_password})}finally{this.commandRunning=!1}s?(this.$refs.changePasswordModal.close(),this.notify({text:"Password successfully updated",image:{iconClass:"fas fa-check"}})):this.notify({title:"Unable to update password",text:"The current password is incorrect",error:!0,image:{iconClass:"fas fa-times"}})},async deleteUser(e){if(confirm("Are you sure that you want to remove the user "+e.username+"?")){this.commandRunning=!0;try{await this.request("user.delete_user",{username:e.username,session_token:this.sessionToken})}finally{this.commandRunning=!1}this.notify({text:"User "+e.username+" removed",image:{iconClass:"fas fa-check"}}),await this.refresh()}}},mounted(){this.refresh()}};const be=(0,Q.Z)(ye,[["render",ge]]);var ke=be,_e={name:"Settings",components:{Users:ke,Token:te},mixins:[G.Z],data(){return{selectedView:"users",currentUser:null,sessionToken:null}},methods:{async refresh(){this.sessionToken=this.getCookies()["session_token"],this.currentUser=await this.request("user.get_user_by_session",{session_token:this.sessionToken})}},mounted(){this.refresh()}};const xe=(0,Q.Z)(_e,[["render",u]]);var Ce=xe},3379:function(e,t,s){var n={"./Camera/Index":[5528,2989,5528],"./CameraAndroidIpcam/Index":[6739,6739],"./CameraCv/Index":[8184,2989,8184],"./CameraFfmpeg/Index":[5111,2989,5111],"./CameraGstreamer/Index":[699,2989,699],"./CameraIrMlx90640/Index":[9895,2989,9895],"./CameraPi/Index":[4548,2989,4548],"./Entities/Index":[914,9892],"./Execute/Index":[7643,7643],"./Light/Index":[747,3490,2107,747],"./LightHue/Index":[3674,3490,2107,747,3674],"./Media/Index":[4196,2107,9978,8589,4196],"./MediaMplayer/Index":[6509,2107,9978,8589,4196,6509],"./MediaMpv/Index":[5895,2107,9978,8589,4196,5895],"./MediaOmxplayer/Index":[9633,2107,9978,8589,4196,9633],"./MediaVlc/Index":[767,2107,9978,8589,4196,767],"./Music/Index":[6833,2107,9978,6833],"./MusicMpd/Index":[3249,2107,9978,6833,3249],"./MusicSnapcast/Index":[2790,3490,2107,2790],"./MusicSpotify/Index":[9369,2107,9978,6833,9369],"./Rtorrent/Index":[2820,8589,6899,2820],"./Settings/Index":[5392],"./Sound/Index":[5193,5193],"./Switches/Index":[4276,4276],"./Switches/LightHue/Index":[2844,3490,6590,2844],"./Switches/Smartthings/Index":[9196,3490,6590,9196],"./Switches/SwitchTplink/Index":[3785,3490,6590,3785],"./Switches/SwitchWemo/Index":[5210,3490,6590,5210],"./Switches/Switchbot/Index":[9694,3490,6590,9694],"./Switches/SwitchbotBluetooth/Index":[9694,3490,6590,9694],"./Switches/ZigbeeMqtt/Index":[5466,3490,6590,5466],"./Switches/Zwave/Index":[7262,3490,6590,7262],"./Switches/ZwaveMqtt/Index":[2380,3490,6590,2380],"./Torrent/Index":[9299,8589,6899,9299],"./Tts/Index":[2466,4021,2466],"./TtsGoogle/Index":[1938,4021,1938],"./TvSamsungWs/Index":[615,615],"./ZigbeeMqtt/Index":[4848,3490,2107,4848],"./Zwave/Index":[6027,3490,2107,5810,6027],"./ZwaveMqtt/Index":[2362,3490,2107,5810,2362]};function i(e){if(!s.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return Promise.all(t.slice(1).map(s.e)).then((function(){return s(i)}))}i.keys=function(){return Object.keys(n)},i.id=3379,e.exports=i},6725:function(e,t,s){var n={"./Calendar/Index":[345,345],"./Camera/Index":[2346,2346],"./Component/Index":[5824,3490,2107,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(!s.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return Promise.all(t.slice(1).map(s.e)).then((function(){return s(i)}))}i.keys=function(){return Object.keys(n)},i.id=6725,e.exports=i},1359:function(e){"use strict";e.exports=JSON.parse('{"camera.android.ipcam":{"class":"fab fa-android"},"camera.cv":{"class":"fas fa-camera"},"camera.ffmpeg":{"class":"fas fa-camera"},"camera.gstreamer":{"class":"fas fa-camera"},"camera.ir.mlx90640":{"class":"fas fa-sun"},"camera.pi":{"class":"fas fa-camera"},"entities":{"class":"fa fa-home"},"execute":{"class":"fa fa-play"},"light.hue":{"class":"fas fa-lightbulb"},"media.jellyfin":{"imgUrl":"/icons/jellyfin.svg"},"media.kodi":{"imgUrl":"/icons/kodi.svg"},"media.omxplayer":{"class":"fa fa-film"},"media.mplayer":{"class":"fa fa-film"},"media.mpv":{"class":"fa fa-film"},"media.plex":{"imgUrl":"/icons/plex.svg"},"media.vlc":{"class":"fa fa-film"},"music.mpd":{"class":"fas fa-music"},"music.snapcast":{"class":"fa fa-volume-up"},"music.spotify":{"class":"fab fa-spotify"},"torrent":{"class":"fa fa-magnet"},"rtorrent":{"class":"fa fa-magnet"},"smartthings":{"imgUrl":"/icons/smartthings.png"},"switches":{"class":"fas fa-toggle-on"},"switch.switchbot":{"class":"fas fa-toggle-on"},"switch.tplink":{"class":"fas fa-toggle-on"},"switchbot":{"class":"fas fa-toggle-on"},"sound":{"class":"fa fa-microphone"},"tts":{"class":"far fa-comment"},"tts.google":{"class":"fas fa-comment"},"tv.samsung.ws":{"class":"fas fa-tv"},"zigbee.mqtt":{"imgUrl":"/icons/zigbee.svg"},"zwave":{"imgUrl":"/icons/z-wave.png"},"zwave.mqtt":{"imgUrl":"/icons/z-wave.png"}}')}},t={};function s(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,s),a.exports}s.m=e,function(){var e=[];s.O=function(t,n,i,a){if(!n){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every((function(e){return s.O[e](n[l])}))?n.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,i,a]}}(),function(){s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};s.t=function(n,i){if(1&i&&(n=this(n)),8&i)return n;if("object"===typeof n&&n){if(4&i&&n.__esModule)return n;if(16&i&&"function"===typeof n.then)return n}var a=Object.create(null);s.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var r=2&i&&n;"object"==typeof r&&!~e.indexOf(r);r=t(r))Object.getOwnPropertyNames(r).forEach((function(e){o[e]=function(){return n[e]}}));return o["default"]=function(){return n},s.d(a,o),a}}(),function(){s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,n){return s.f[n](e,t),t}),[]))}}(),function(){s.u=function(e){return"static/js/"+e+"."+{65:"a4e6662a",345:"8d14f37b",518:"89a856bf",615:"25a0ebcb",699:"cf8f2194",747:"0ee05dee",767:"32c26b46",1155:"ae99e2b9",1595:"cf573de8",1798:"2ea76630",1938:"1dc95872",2107:"d79fdb71",2346:"9a487752",2362:"f07ef3c1",2380:"292bff03",2466:"633bb83f",2790:"7ce4bd1e",2820:"07ee3664",2844:"e8c1790f",2989:"fa06c8b8",3249:"a2010c2d",3490:"d482e29b",3499:"7b46c041",3674:"a57eb557",3785:"940990df",4021:"a3380d38",4196:"cec98eba",4276:"51717631",4548:"686dd66b",4826:"64f0df2a",4848:"b8cbdcae",4981:"c4835180",5111:"d348fed1",5193:"1de6bb98",5207:"b6625280",5210:"d6ee4d6c",5466:"c08dda4e",5528:"f33f80c6",5779:"45aee2fa",5810:"92a3694b",5824:"50133e6d",5895:"bc039cca",6003:"c76e25e0",6013:"5c85c65a",6027:"54f532a7",6509:"9ca36429",6590:"a024a679",6739:"14f222c1",6833:"135ef1e4",6899:"d74c1b00",7262:"6193bf34",7420:"e53d9d48",7643:"48f991b1",8184:"6859ae89",8589:"21ae83d2",8729:"19ca396b",9196:"462b659b",9299:"710819a1",9369:"f7907b71",9575:"fb8eab70",9633:"23b95cb0",9694:"6487ada9",9892:"dacb03d8",9895:"f9b70895",9978:"9241f6a8"}[e]+".js"}}(),function(){s.miniCssF=function(e){return"static/css/"+e+"."+{65:"d6cbc229",345:"0d938275",518:"44f63b6e",615:"be187f79",747:"3c45f7ef",1155:"3c072b53",1798:"5047113b",2107:"3a08bbb5",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",2989:"a4270756",3490:"3516cb6e",3785:"5ed5a4df",4021:"0331be37",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5466:"fb0c1b5f",5779:"b285a776",5810:"0aa0c9b4",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6899:"f3d46bda",7262:"7ac2a7a5",7420:"e42d1496",7643:"e25374a8",8589:"459f0f41",8729:"f98d84da",9196:"18347c3c",9575:"eba29f96",9694:"509f8cb5",9892:"68b29dbb",9978:"13387da1"}[e]+".css"}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="platypush:";s.l=function(n,i,a,o){if(e[n])e[n].push(i);else{var r,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),d=0;d((0,i.wg)(),(0,i.j4)(l,{key:s,id:t,text:e.text,html:e.html,title:e.title,link:e.link,image:e.image,warning:e.warning,error:e.error,onClicked:r.destroy},null,8,["id","text","html","title","link","image","warning","error","onClicked"])))),128))])}var l=s(3577);const c=["textContent"],d={class:"body"},u={key:0,class:"image col-3"},h={class:"row"},p=["src"],f={key:3,class:"fa fa-exclamation"},m={key:4,class:"fa fa-times"},g=["textContent"],v=["innerHTML"],w=["textContent"],y=["innerHTML"];function b(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["notification fade-in",{warning:s.warning,error:s.error}]),onClick:t[0]||(t[0]=(...e)=>o.clicked&&o.clicked(...e))},[s.title?((0,i.wg)(),(0,i.iD)("div",{key:0,class:"title",textContent:(0,l.zw)(s.title)},null,8,c)):(0,i.kq)("",!0),(0,i._)("div",d,[s.image||s.warning||s.error?((0,i.wg)(),(0,i.iD)("div",u,[(0,i._)("div",h,[s.image&&s.image.src?((0,i.wg)(),(0,i.iD)("img",{key:0,src:s.image.src,alt:""},null,8,p)):s.image&&s.image.icon?((0,i.wg)(),(0,i.iD)("i",{key:1,class:(0,l.C_)(["fa","fa-"+s.image.icon]),style:(0,l.j5)(s.image.color?"--color: "+s.image.color:"")},null,6)):s.image&&s.image.iconClass?((0,i.wg)(),(0,i.iD)("i",{key:2,class:(0,l.C_)(s.image.iconClass),style:(0,l.j5)(s.image.color?"--color: "+s.image.color:"")},null,6)):s.warning?((0,i.wg)(),(0,i.iD)("i",f)):s.error?((0,i.wg)(),(0,i.iD)("i",m)):(0,i.kq)("",!0)])])):(0,i.kq)("",!0),s.text&&s.image?((0,i.wg)(),(0,i.iD)("div",{key:1,class:"text col-9",textContent:(0,l.zw)(s.text)},null,8,g)):(0,i.kq)("",!0),s.html&&s.image?((0,i.wg)(),(0,i.iD)("div",{key:2,class:"text col-9",innerHTML:s.html},null,8,v)):(0,i.kq)("",!0),s.text&&!s.image?((0,i.wg)(),(0,i.iD)("div",{key:3,class:"text row horizontal-center",textContent:(0,l.zw)(s.text)},null,8,w)):(0,i.kq)("",!0),s.html&&!s.image?((0,i.wg)(),(0,i.iD)("div",{key:4,class:"text row horizontal-center",innerHTML:s.html},null,8,y)):(0,i.kq)("",!0)])],2)}var k={name:"Notification",props:["id","text","html","title","image","link","error","warning"],methods:{clicked(){this.link&&window.open(this.link,"_blank"),this.$emit("clicked",this.id)}}},_=s(3744);const x=(0,_.Z)(k,[["render",b],["__scopeId","data-v-7646705e"]]);var C=x,D={name:"Notifications",components:{Notification:C},props:{duration:{type:Number,default:1e4}},data:function(){return{index:0,notifications:{},timeouts:{}}},methods:{create:function(e){const t=this.index++;this.notifications[t]=e,null==e.duration&&(e.duration=this.duration);const s=e.duration?parseInt(e.duration):0;s&&(this.timeouts[t]=setTimeout(this.destroy.bind(null,t),s))},destroy:function(e){delete this.notifications[e],delete this.timeouts[e]}}};const I=(0,_.Z)(D,[["render",r],["__scopeId","data-v-6dc8bebc"]]);var S=I,T=s(6813);function U(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var P=s(5250),M={name:"Events",props:{wsPort:{type:Number,default:8009}},data(){return{ws:null,initialized:!1,pending:!1,opened:!1,timeout:null,reconnectMsecs:3e4,handlers:{},handlerNameToEventTypes:{}}},methods:{onWebsocketTimeout(){console.log("Websocket reconnection timed out, retrying"),this.pending=!1,this.ws&&this.ws.close(),this.onClose()},onMessage(e){const t=[];if(e=e.data,"string"===typeof e)try{e=JSON.parse(e)}catch(s){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(...Object.values(this.handlers[e.args.type]));for(let s of t)s&&(s instanceof Array?s=s[0]:s instanceof Object&&!(s instanceof Function)&&(s=Object.values(s)[0]),s(e.args))}},onOpen(){this.opened&&(console.log("There's already an opened websocket connection, closing the newly opened one"),this.ws&&(this.ws.onclose=()=>{},this.ws.close())),console.log("Websocket connection successful"),this.opened=!0,this.pending&&(this.pending=!1),this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},onError(e){console.error("Websocket error"),console.error(e)},onClose(e){e&&console.log("Websocket closed - code: "+e.code+" - reason: "+e.reason),this.opened=!1,this.pending||(this.pending=!0,this.init())},init(){try{const e="https:"===location.protocol?"wss":"ws",t=`${e}://${location.hostname}:${this.wsPort}`;this.ws=new WebSocket(t)}catch(e){return console.error("Websocket initialization error"),void console.error(e)}this.pending=!0,this.timeout=setTimeout(this.onWebsocketTimeout,this.reconnectMsecs),this.ws.onmessage=this.onMessage,this.ws.onopen=this.onOpen,this.ws.onerror=this.onError,this.ws.onclose=this.onClose,this.initialized=!0},subscribe(e){const t=e.handler,s=e.events.length?e.events:[null],n=e.handlerName;for(const i of s)i in this.handlers||(this.handlers[i]={}),n in this.handlerNameToEventTypes||(this.handlerNameToEventTypes[n]=s),this.handlers[i][n]=t;return()=>{this.unsubscribe(n)}},unsubscribe(e){const t=this.handlerNameToEventTypes[e];if(t){for(const s of t)this.handlers[s]?.[e]&&(delete this.handlers[s][e],Object.keys(this.handlers[s]).length||delete this.handlers[s]);delete this.handlerNameToEventTypes[e]}}},created(){P.$.on("subscribe",this.subscribe),P.$.on("unsubscribe",this.unsubscribe),this.init()}};const N=(0,_.Z)(M,[["render",U]]);var $=N;const q={class:"assistant-modal"},O={class:"icon"},j={key:0,class:"fa fa-bell"},Z={key:1,class:"fa fa-volume-up"},E={key:2,class:"fa fa-comment-dots"},z={key:3,class:"fa fa-microphone"},W={class:"text"},R={key:0,class:"listening"},L=(0,i._)("span",null,"Assistant listening",-1),A=[L],V={key:1,class:"speech-recognized"},H=["textContent"],F={key:2,class:"responding"},B=["textContent"];function Y(e,t,s,n,a,o){const r=(0,i.up)("Modal");return(0,i.wg)(),(0,i.iD)("div",q,[(0,i.Wm)(r,{ref:"assistantModal"},{default:(0,i.w5)((()=>[(0,i._)("div",O,[a.state.alerting?((0,i.wg)(),(0,i.iD)("i",j)):a.state.responding?((0,i.wg)(),(0,i.iD)("i",Z)):a.state.speechRecognized?((0,i.wg)(),(0,i.iD)("i",E)):((0,i.wg)(),(0,i.iD)("i",z))]),(0,i._)("div",W,[a.state.listening?((0,i.wg)(),(0,i.iD)("div",R,A)):a.state.speechRecognized?((0,i.wg)(),(0,i.iD)("div",V,[(0,i._)("span",{textContent:(0,l.zw)(a.phrase)},null,8,H)])):a.state.responding?((0,i.wg)(),(0,i.iD)("div",F,[(0,i._)("span",{textContent:(0,l.zw)(a.responseText)},null,8,B)])):(0,i.kq)("",!0)])])),_:1},512)])}var K=s(8453),G={name:"VoiceAssistant",components:{Modal:K.Z},mixins:[T.Z],data(){return{responseText:"",phrase:"",hideTimeout:void 0,state:{listening:!1,speechRecognized:!1,responding:!1,alerting:!1}}},methods:{reset(){this.state.listening=!1,this.state.speechRecognized=!1,this.state.responding=!1,this.state.alerting=!1,this.phrase="",this.responseText=""},conversationStart(){this.reset(),this.state.listening=!0,this.$refs.assistantModal.show(),this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=void 0)},conversationEnd(){const e=this;this.hideTimeout=setTimeout((()=>{this.reset(),e.$refs.assistantModal.close(),e.hideTimeout=void 0}),4e3)},speechRecognized(e){this.reset(),this.state.speechRecognized=!0,this.phrase=e.phrase,this.$refs.assistantModal.show()},response(e){this.reset(),this.state.responding=!0,this.responseText=e.response_text,this.$refs.assistantModal.show()},alertOn(){this.reset(),this.state.alerting=!0,this.$refs.assistantModal.show()},alertOff(){this.reset(),this.state.alerting=!1,this.$refs.assistantModal.close()},registerHandlers(){this.subscribe(this.conversationStart,null,"platypush.message.event.assistant.ConversationStartEvent"),this.subscribe(this.alertOn,null,"platypush.message.event.assistant.AlertStartedEvent"),this.subscribe(this.alertOff,null,"platypush.message.event.assistant.AlertEndEvent"),this.subscribe(this.speechRecognized,null,"platypush.message.event.assistant.SpeechRecognizedEvent"),this.subscribe(this.response,null,"platypush.message.event.assistant.ResponseEvent"),this.subscribe(this.conversationEnd,null,"platypush.message.event.assistant.ConversationEndEvent","platypush.message.event.assistant.NoResponseEvent","platypush.message.event.assistant.ConversationTimeoutEvent")}},mounted(){this.registerHandlers()}};const J=(0,_.Z)(G,[["render",Y]]);var X=J;function Q(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var ee={name:"Ntfy",mixins:[T.Z],methods:{onMessage(e){this.notify({title:e.title,text:e.message,image:{icon:"bell"}})}},mounted(){this.subscribe(this.onMessage,null,"platypush.message.event.ntfy.NotificationEvent")}};const te=(0,_.Z)(ee,[["render",Q]]);var se=te;function ne(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div")}var ie={name:"Pushbullet",mixins:[T.Z],methods:{onMessage(e){"mirror"===e.push_type&&this.notify({title:e.title,text:e.body,image:{src:e.icon?"data:image/png;base64, "+e.icon:void 0,icon:e.icon?void 0:"bell"}})}},mounted(){this.subscribe(this.onMessage,null,"platypush.message.event.pushbullet.PushbulletEvent")}};const ae=(0,_.Z)(ie,[["render",ne]]);var oe=ae,re={name:"App",mixins:[T.Z],components:{Pushbullet:oe,Ntfy:se,Notifications:S,Events:$,VoiceAssistant:X},data(){return{config:{},userAuthenticated:!1}},computed:{hasWebsocket(){return this.userAuthenticated&&"backend.http"in this.config},hasAssistant(){return this.hasWebsocket},hasPushbullet(){return this.hasWebsocket&&("pushbullet"in this.config||"backend.pushbullet"in this.config)},hasNtfy(){return this.hasWebsocket&&"ntfy"in this.config}},methods:{onNotification(e){this.$refs.notifications.create(e)},async initConfig(){this.config=await this.request("config.get",{},6e4,!1),this.userAuthenticated=!0}},created(){this.initConfig()},mounted(){P.$.on("notification-create",this.onNotification)}};const le=(0,_.Z)(re,[["render",a]]);var ce=le,de=s(2201);function ue(e,t,s,n,a,o){const r=(0,i.up)("Loading"),c=(0,i.up)("Widget"),d=(0,i.up)("Row");return(0,i.wg)(),(0,i.iD)(i.HY,null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):(0,i.kq)("",!0),(0,i._)("div",{id:"dashboard",class:(0,l.C_)(["col-12",o.classes]),style:(0,l.j5)(a.style)},[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.rows,((e,t)=>((0,i.wg)(),(0,i.j4)(d,{key:t,class:(0,l.C_)(e.class),style:(0,l.j5)(e.style)},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.widgets,((e,t)=>((0,i.wg)(),(0,i.j4)(i.Ob,{key:t},[(0,i.Wm)(c,{style:(0,l.j5)(e.style),class:(0,l.C_)(e.class)},{default:(0,i.w5)((()=>[((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),(0,l.vs)((0,i.F4)(o.getWidgetProps(e))),null,16))])),_:2},1032,["style","class"])],1024)))),128))])),_:2},1032,["class","style"])))),128))],6)],64)}var he=s(1232);function pe(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["row",o.classes]),style:(0,l.j5)(s.style)},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],6)}var fe={name:"Row",props:{class:{type:String,required:!1,default:""},style:{type:String,required:!1,default:""}},computed:{classes(){return this.class}}};const me=(0,_.Z)(fe,[["render",pe],["__scopeId","data-v-1b4663f2"]]);var ge=me;function ve(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",{style:(0,l.j5)(s.style),class:(0,l.C_)(o.classes)},[(0,i.WI)(e.$slots,"default",{},void 0,!0)],6)}var we={name:"Widget",props:{style:{type:String,required:!1,default:""},class:{type:String,required:!1,default:""}},computed:{classes(){return(this.class?.length?this.class.split(" "):["col-3"]).concat(["widget","column"])}}};const ye=(0,_.Z)(we,[["render",ve],["__scopeId","data-v-5df52982"]]);var be=ye,ke={name:"Dashboard",mixins:[T.Z],components:{Widget:be,Loading:he.Z,Row:ge},props:{refreshSeconds:{type:Number,required:!1,default:0}},data(){return{rows:[],loading:!1,style:void 0,class:void 0}},computed:{classes(){return this.class}},methods:{getWidgetProps(e){const t={...e.props};return t.class&&delete t.class,t},parseTemplate(e,t){const n=(new DOMParser).parseFromString(t,"text/xml").childNodes[0],a=this;this.style=n.attributes.style?.nodeValue,this.class=n.attributes.class?.nodeValue,this.rows=[...n.getElementsByTagName("Row")].map((e=>({style:e.attributes.style?.nodeValue,class:e.attributes.class?.nodeValue,widgets:[...e.children].map((e=>{const t=(0,i.RC)((()=>s(6725)(`./${e.nodeName}/Index`))),n=e.attributes.style?.nodeValue,o=e.attributes.class?.nodeValue,r=[...e.attributes].reduce(((e,t)=>("style"!==t.nodeName&&(e[t.nodeName]=t.nodeValue),e)),{content:e.innerHTML}),l={component:t,style:n,class:o,props:r||{}};return a.$options.components[e.nodeName]=t,l}))}))),this.loading=!1},async refreshDashboard(){this.loading=!0,this.widgets=[];const e=this.$route.params.name,t=await this.request("config.get_dashboard",{name:e});t||this.error(`Dashboard ${e} not found`),this.parseTemplate(e,t)}},mounted(){if(this.refreshDashboard(),this.refreshSeconds){const e=this;setInterval((()=>{e.refreshDashboard()}),parseInt((1e3*this.refreshSeconds).toFixed(0)))}}};const _e=(0,_.Z)(ke,[["render",ue],["__scopeId","data-v-cefcfdfc"]]);var xe=_e;function Ce(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("h1",null,"Object not found")}var De={name:"NotFound"};const Ie=(0,_.Z)(De,[["render",Ce]]);var Se=Ie;const Te=e=>((0,i.dD)("data-v-16cef6aa"),e=e(),(0,i.Cn)(),e),Ue={class:"login-container"},Pe={class:"login",method:"POST"},Me=(0,i.uE)('
Platypush
',3),Ne={key:0,class:"row"},$e=Te((()=>(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1))),qe=[$e],Oe={class:"row buttons"},je=["value"],Ze=Te((()=>(0,i._)("div",{class:"row pull-right"},[(0,i._)("label",{class:"checkbox"},[(0,i._)("input",{type:"checkbox",name:"remember"}),(0,i.Uk)(" Keep me logged in on this device  ")])],-1)));function Ee(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("div",Ue,[(0,i._)("form",Pe,[Me,o._register?((0,i.wg)(),(0,i.iD)("div",Ne,qe)):(0,i.kq)("",!0),(0,i._)("div",Oe,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:o._register?"Register":"Login"},null,8,je)]),Ze])])}var ze={name:"Login",mixins:[T.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register(){return this.parseBoolean(this.register)}}};const We=(0,_.Z)(ze,[["render",Ee],["__scopeId","data-v-16cef6aa"]]);var Re=We;function Le(e,t,s,n,a,o){const r=(0,i.up)("Login");return(0,i.wg)(),(0,i.j4)(r,{register:!0})}var Ae={name:"Register",mixins:[Re],components:{Login:Re},props:{register:{type:Boolean,required:!1,default:!0}}};const Ve=(0,_.Z)(Ae,[["render",Le]]);var He=Ve;const Fe={key:2,class:"canvas"},Be={class:"panel"},Ye={key:3,class:"canvas"};function Ke(e,t,s,n,a,o){const r=(0,i.up)("Loading"),c=(0,i.up)("Nav"),d=(0,i.up)("Settings");return(0,i.wg)(),(0,i.iD)("main",null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):((0,i.wg)(),(0,i.j4)(c,{key:1,panels:a.components,"selected-panel":a.selectedPanel,hostname:a.hostname,onSelect:t[0]||(t[0]=e=>a.selectedPanel=e)},null,8,["panels","selected-panel","hostname"])),"settings"===a.selectedPanel?((0,i.wg)(),(0,i.iD)("div",Fe,[(0,i._)("div",Be,[(0,i.Wm)(d)])])):((0,i.wg)(),(0,i.iD)("div",Ye,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(a.components,((e,t)=>((0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["panel",{hidden:t!==a.selectedPanel}]),key:t},[t===a.selectedPanel?((0,i.wg)(),(0,i.j4)((0,i.LL)(e.component),{key:0,config:e.config,"plugin-name":t},null,8,["config","plugin-name"])):(0,i.kq)("",!0)],2)))),128))]))])}const Ge=e=>((0,i.dD)("data-v-69a507f4"),e=e(),(0,i.Cn)(),e),Je=Ge((()=>(0,i._)("i",{class:"fas fa-bars"},null,-1))),Xe=["textContent"],Qe={class:"plugins"},et=["title","onClick"],tt=["href"],st={class:"icon"},nt=["src"],it={key:2,class:"fas fa-puzzle-piece"},at=["textContent"],ot={class:"footer"},rt={href:"/#settings"},lt=Ge((()=>(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fa fa-cog"})],-1))),ct={key:0,class:"name"},dt={href:"/logout"},ut=Ge((()=>(0,i._)("span",{class:"icon"},[(0,i._)("i",{class:"fas fa-sign-out-alt"})],-1))),ht={key:0,class:"name"};function pt(e,t,s,n,a,o){return(0,i.wg)(),(0,i.iD)("nav",{class:(0,l.C_)({collapsed:a.collapsed})},[(0,i._)("div",{class:"toggler",onClick:t[0]||(t[0]=e=>a.collapsed=!a.collapsed)},[Je,s.hostname?((0,i.wg)(),(0,i.iD)("span",{key:0,class:"hostname",textContent:(0,l.zw)(s.hostname)},null,8,Xe)):(0,i.kq)("",!0)]),(0,i._)("ul",Qe,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(o.panelNames,(e=>((0,i.wg)(),(0,i.iD)("li",{key:e,class:(0,l.C_)(["entry",{selected:e===s.selectedPanel}]),title:e,onClick:t=>o.onItemClick(e)},[(0,i._)("a",{href:`/#${e}`},[(0,i._)("span",st,[a.icons[e]?.class?((0,i.wg)(),(0,i.iD)("i",{key:0,class:(0,l.C_)(a.icons[e].class)},null,2)):a.icons[e]?.imgUrl?((0,i.wg)(),(0,i.iD)("img",{key:1,src:a.icons[e].imgUrl,alt:"name"},null,8,nt)):((0,i.wg)(),(0,i.iD)("i",it))]),a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",{key:0,class:"name",textContent:(0,l.zw)("entities"==e?"Home":e)},null,8,at))],8,tt)],10,et)))),128))]),(0,i._)("ul",ot,[(0,i._)("li",{class:(0,l.C_)({selected:"settings"===s.selectedPanel}),title:"Settings",onClick:t[1]||(t[1]=e=>o.onItemClick("settings"))},[(0,i._)("a",rt,[lt,a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ct,"Settings"))])],2),(0,i._)("li",{title:"Logout",onClick:t[2]||(t[2]=e=>o.onItemClick("logout"))},[(0,i._)("a",dt,[ut,a.collapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("span",ht,"Logout"))])])])],2)}var ft=s(1359),mt={name:"Nav",emits:["select"],mixins:[T.Z],props:{panels:{type:Object,required:!0},selectedPanel:{type:String},hostname:{type:String}},computed:{panelNames(){let e=Object.keys(this.panels);const t=e.indexOf("entities");return t>=0?["entities"].concat(e.slice(0,t).concat(e.slice(t+1)).sort()):e.sort()}},methods:{onItemClick(e){this.$emit("select",e),this.collapsed=!0}},data(){return{collapsed:!0,icons:ft,host:null}}};const gt=(0,_.Z)(mt,[["render",pt],["__scopeId","data-v-69a507f4"]]);var vt=gt,wt=s(5392),yt={name:"Panel",mixins:[T.Z],components:{Settings:wt["default"],Nav:vt,Loading:he.Z},data(){return{loading:!1,plugins:{},backends:{},procedures:{},components:{},hostname:void 0,selectedPanel:void 0}},methods:{initSelectedPanel(){const e=this.$route.hash.match("#?([a-zA-Z0-9.]+)[?]?(.*)"),t=e?e[1]:"entities";t?.length&&(this.selectedPanel=t)},initPanels(){const e=this;this.components={},Object.entries(this.plugins).forEach((async([t,n])=>{const a=t.split(".").map((e=>e[0].toUpperCase()+e.slice(1))).join("");let o=null;try{o=await s(3379)(`./${a}/Index`)}catch(l){return}const r=(0,i.RC)((async()=>o));e.$options.components[t]=r,e.components[t]={component:r,pluginName:t,config:n}}))},async parseConfig(){[this.plugins,this.backends,this.procedures,this.hostname]=await Promise.all([this.request("config.get_plugins"),this.request("config.get_backends"),this.request("config.get_procedures"),this.request("config.get_device_id")]),this.initializeDefaultViews()},initializeDefaultViews(){this.plugins.execute={},this.plugins.entities={}}},async mounted(){this.loading=!0;try{await this.parseConfig(),this.initPanels(),this.initSelectedPanel()}finally{this.loading=!1}}};const bt=(0,_.Z)(yt,[["render",Ke],["__scopeId","data-v-344b6d1a"]]);var kt=bt;const _t={key:1,class:"canvas"};function xt(e,t,s,n,a,o){const r=(0,i.up)("Loading");return(0,i.wg)(),(0,i.iD)("main",null,[a.loading?((0,i.wg)(),(0,i.j4)(r,{key:0})):((0,i.wg)(),(0,i.iD)("div",_t,[((0,i.wg)(),(0,i.j4)((0,i.LL)(a.component),{config:a.config,"plugin-name":o.pluginName},null,8,["config","plugin-name"]))]))])}var Ct={name:"Panel",mixins:[T.Z],components:{Settings:wt["default"],Nav:vt,Loading:he.Z},data(){return{loading:!1,config:{},plugins:{},backends:{},procedures:{},component:void 0,hostname:void 0,selectedPanel:void 0}},computed:{pluginName(){return this.$route.params.plugin}},methods:{async initPanel(){const e=this.pluginName.split(".").map((e=>e[0].toUpperCase()+e.slice(1))).join("");let t=null;try{t=await s(3379)(`./${e}/Index`)}catch(n){return console.error(n),void this.notify({error:!0,title:`Cannot load plugin ${this.pluginName}`,text:n.toString()})}this.component=(0,i.RC)((async()=>t)),this.$options.components[name]=this.component},async initConfig(){const e=await this.request("config.get");this.config=e[this.pluginName]||{},this.hostname=await this.request("config.get_device_id")}},async mounted(){this.loading=!0;try{await this.initConfig(),await this.initPanel()}finally{this.loading=!1}}};const Dt=(0,_.Z)(Ct,[["render",xt],["__scopeId","data-v-67571c94"]]);var It=Dt;const St=[{path:"/",name:"Panel",component:kt},{path:"/dashboard/:name",name:"Dashboard",component:xe},{path:"/plugin/:plugin",name:"Plugin",component:It},{path:"/login",name:"Login",component:Re},{path:"/register",name:"Register",component:He},{path:"/:catchAll(.*)",component:Se}],Tt=(0,de.p7)({history:(0,de.PO)(),routes:St});var Ut=Tt;const Pt=(0,n.ri)(ce);Pt.config.globalProperties._config=window.config,Pt.use(Ut).mount("#app")},6813:function(e,t,s){"use strict";s.d(t,{Z:function(){return N}});var n=s(9669),i=s.n(n),a={name:"Api",methods:{execute(e,t=6e4,s=!0){const n={};return"target"in e&&e["target"]||(e["target"]="localhost"),"type"in e&&e["type"]||(e["type"]="request"),t&&(n.timeout=t),new Promise(((t,a)=>{i().post("/execute",e,n).then((e=>{if(e=e.data.response,e.errors?.length){const t=e.errors?.[0]||e;this.notify({text:t,error:!0}),a(t)}else t(e.output)})).catch((e=>{s&&this.notify({text:e,error:!0}),a(e)}))}))},request(e,t={},s=6e4,n=!0){return this.execute({type:"request",action:e,args:t},s,n)}}};const o=a;var r=o,l={name:"Cookies",methods:{getCookies(){return document.cookie.split(/;\s*/).reduce(((e,t)=>{const[s,n]=t.split("=");return e[s]=n,e}),{})}}};const c=l;var d=c,u={name:"DateTime",methods:{formatDate(e,t=!1){return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toDateString().substring(0,t?15:10)},formatTime(e,t=!0){return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toTimeString().substring(0,t?8:5)},formatDateTime(e,t=!1,s=!0){return"string"===typeof e&&(e=new Date(Date.parse(e))),`${this.formatDate(e,t)}, ${this.formatTime(e,s)}`}}};const h=u;var p=h,f=(s(2801),s(5250)),m={name:"Events",computed:{_eventsReady(){return this.$root.$refs.events?.initialized}},methods:{subscribe(e,t,...s){const n=()=>{f.$.emit("subscribe",{events:s,handler:e,handlerName:t||this.generateId()})};if(this._eventsReady)return void n();const i=this,a=this.$watch((()=>i._eventsReady),(e=>{e&&(n(),a())}));return a},unsubscribe(e){f.$.emit("unsubscribe",e)},generateId(){return btoa([...Array(11).keys()].map((()=>String.fromCharCode(Math.round(255*Math.random())))))}}};const g=m;var v=g,w={name:"Notification",methods:{notify(e){f.$.emit("notification-create",e)},warn(e){this.notify({text:e,warning:!0})},error(e){throw this.notify({text:e,error:!0}),e}}};const y=w;var b=y,k={name:"Screen",methods:{isMobile(){return window.matchMedia("only screen and (max-width: 760px)").matches},isTablet(){return!this.isMobile()&&window.matchMedia("only screen and (max-width: 960px)").matches},isDesktop(){return window.matchMedia("only screen and (min-width: 1152px)").matches}}};const _=k;var x=_,C={name:"Text",methods:{capitalize(e){return e?.length?e.charAt(0).toUpperCase()+e.slice(1):e},prettify(e){return e.split("_").map((e=>this.capitalize(e))).join(" ")}}};const D=C;var I=D,S={name:"Types",methods:{parseBoolean(e){return"string"===typeof e?(e=e.toLowerCase(),"true"===e||"false"!==e&&!!parseInt(e)):!!e},convertSize(e){"string"===typeof e&&(e=parseInt(e));let t=null;const s=["B","KB","MB","GB","TB"];return s.forEach(((n,i)=>{e<=1024&&null==t?t=n:e>1024&&(i===s.length-1?t=n:e/=1024)})),`${e.toFixed(2)} ${t}`}}};const T=S;var U=T,P={name:"Utils",mixins:[r,d,b,v,p,x,I,U]};const M=P;var N=M},1232:function(e,t,s){"use strict";s.d(t,{Z:function(){return d}});var n=s(6252);const i={class:"loading"},a={class:"icon"};function o(e,t){return(0,n.wg)(),(0,n.iD)("div",i,[(0,n._)("div",a,[((0,n.wg)(),(0,n.iD)(n.HY,null,(0,n.Ko)(4,(e=>(0,n._)("div",{key:e}))),64))])])}var r=s(3744);const l={},c=(0,r.Z)(l,[["render",o],["__scopeId","data-v-4d9c871b"]]);var d=c},8453:function(e,t,s){"use strict";s.d(t,{Z:function(){return h}});var n=s(6252),i=s(3577);const a=["id"],o=["textContent"],r={class:"body"};function l(e,t,s,l,c,d){return(0,n.wg)(),(0,n.iD)("div",{class:(0,i.C_)(["modal-container fade-in",{hidden:!c.isVisible}]),id:s.id,style:(0,i.j5)({"--z-index":d.zIndex}),onClick:t[2]||(t[2]=(...e)=>d.close&&d.close(...e))},[(0,n._)("div",{class:(0,i.C_)(["modal",e.$attrs.class])},[(0,n._)("div",{class:"content",style:(0,i.j5)({"--width":s.width,"--height":s.height}),onClick:t[1]||(t[1]=e=>e.stopPropagation())},[s.title?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"header",textContent:(0,i.zw)(s.title)},null,8,o)):(0,n.kq)("",!0),(0,n._)("div",r,[(0,n.WI)(e.$slots,"default",{onModalClose:t[0]||(t[0]=(...e)=>d.close&&d.close(...e))},void 0,!0)])],4)],2)],14,a)}var c={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(){return{timeoutId:void 0,prevVisible:this.visible,isVisible:this.visible}},computed:{zIndex(){return 500+this.level}},methods:{close(){this.prevVisible=this.isVisible,this.isVisible=!1},hide(){this.close()},show(){this.prevVisible=this.isVisible,this.isVisible=!0},toggle(){this.isVisible?this.close():this.show()}},mounted(){const e=this,t=t=>{t?e.$emit("open"):e.$emit("close"),e.isVisible=t};this.$watch((()=>this.visible),t),this.$watch((()=>this.isVisible),t)},updated(){if(this.prevVisible=this.isVisible,this.isVisible){let e=parseInt(getComputedStyle(this.$el).zIndex),t=[];for(const s of document.querySelectorAll(".modal-container:not(.hidden)")){const n=parseInt(getComputedStyle(s).zIndex);n>e?(e=n,t=[s]):n===e&&t.push(s)}(t.indexOf(this.$el)<0||t.length>1)&&(this.$el.style.zIndex=e+1)}if(this.isVisible&&this.timeout&&!this.timeoutId){const e=e=>()=>{e.close(),e.timeoutId=void 0};this.timeoutId=setTimeout(e(this),0+this.timeout)}}},d=s(3744);const u=(0,d.Z)(c,[["render",l],["__scopeId","data-v-7d1f6e8b"]]);var h=u},5771:function(e,t,s){"use strict";s.d(t,{Z:function(){return f}});var n=s(6252),i=s(9963),a=s(3577);const o={class:"dropdown-container",ref:"container"},r=["title"],l=["textContent"],c=["id"];function d(e,t,s,d,u,h){return(0,n.wg)(),(0,n.iD)("div",o,[(0,n._)("button",{title:s.title,ref:"button",onClick:t[0]||(t[0]=(0,i.iM)((e=>h.toggle(e)),["stop"]))},[s.iconClass?((0,n.wg)(),(0,n.iD)("i",{key:0,class:(0,a.C_)(["icon",s.iconClass])},null,2)):(0,n.kq)("",!0),s.text?((0,n.wg)(),(0,n.iD)("span",{key:1,class:"text",textContent:(0,a.zw)(s.text)},null,8,l)):(0,n.kq)("",!0)],8,r),(0,n._)("div",{class:(0,a.C_)(["dropdown fade-in",{hidden:!u.visible}]),id:s.id,ref:"dropdown"},[(0,n.WI)(e.$slots,"default",{},void 0,!0)],10,c)],512)}var u={name:"Dropdown",emits:["click"],props:{id:{type:String},items:{type:Array,default:()=>[]},iconClass:{type:String,default:"fa fa-ellipsis-h"},text:{type:String},title:{type:String},keepOpenOnItemClick:{type:Boolean,default:!1}},data(){return{visible:!1}},methods:{documentClickHndl(e){if(!this.visible)return;let t=e.target;while(t){if(!this.$refs.dropdown)break;if(t===this.$refs.dropdown.element)return;t=t.parentElement}this.close()},close(){this.visible=!1,document.removeEventListener("click",this.documentClickHndl)},open(){document.addEventListener("click",this.documentClickHndl),this.visible=!0,setTimeout((()=>{const e=this.$refs.dropdown;e.style.left=0,e.style.top=parseFloat(getComputedStyle(this.$refs.button).height)+"px",e.getBoundingClientRect().left>window.innerWidth/2&&(e.style.left=-e.clientWidth+parseFloat(getComputedStyle(this.$refs.button).width)+"px"),e.getBoundingClientRect().top>window.innerHeight/2&&(e.style.top=-e.clientHeight+parseFloat(getComputedStyle(this.$refs.button).height)+"px")}),10)},toggle(e){e.stopPropagation(),this.$emit("click"),this.visible?this.close():this.open()}}},h=s(3744);const p=(0,h.Z)(u,[["render",d],["__scopeId","data-v-21bf0316"]]);var f=p},9015:function(e,t,s){"use strict";s.d(t,{Z:function(){return h}});var n=s(6252),i=s(3577);const a={key:0,class:"col-1 icon"},o=["textContent"];function r(e,t,s,r,l,c){const d=(0,n.up)("Icon");return(0,n.wg)(),(0,n.iD)("div",{class:(0,i.C_)(["row item",s.itemClass]),onClick:t[0]||(t[0]=(...e)=>c.clicked&&c.clicked(...e))},[s.iconClass?.length||s.iconUrl?.length?((0,n.wg)(),(0,n.iD)("div",a,[(0,n.Wm)(d,{class:(0,i.C_)(s.iconClass),url:s.iconUrl},null,8,["class","url"])])):(0,n.kq)("",!0),(0,n._)("div",{class:(0,i.C_)(["text",{"col-11":null!=s.iconClass}]),textContent:(0,i.zw)(s.text)},null,10,o)],2)}var l=s(1478),c={name:"DropdownItem",components:{Icon:l.Z},props:{iconClass:{type:String},iconUrl:{type:String},text:{type:String},disabled:{type:Boolean,default:!1},itemClass:{type:String}},methods:{clicked(e){if(this.disabled)return!1;this.$parent.$emit("click",e),this.$parent.keepOpenOnItemClick||(this.$parent.visible=!1)}}},d=s(3744);const u=(0,d.Z)(c,[["render",r],["__scopeId","data-v-0a3cac88"]]);var h=u},1478:function(e,t,s){"use strict";s.d(t,{Z:function(){return u}});var n=s(6252),i=s(3577);const a={class:"icon-container"},o=["src","alt"];function r(e,t,s,r,l,c){return(0,n.wg)(),(0,n.iD)("div",a,[s.url?.length?((0,n.wg)(),(0,n.iD)("img",{key:0,class:"icon",src:s.url,alt:s.alt},null,8,o)):c.className?.length?((0,n.wg)(),(0,n.iD)("i",{key:1,class:(0,i.C_)(["icon",c.className]),style:(0,i.j5)({color:s.color})},null,6)):(0,n.kq)("",!0)])}var l={props:{class:{type:String},url:{type:String},color:{type:String,default:""},alt:{type:String,default:""}},computed:{className(){return this.class}}},c=s(3744);const d=(0,c.Z)(l,[["render",r],["__scopeId","data-v-706a3bd1"]]);var u=d},5392:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return Ce}});var n=s(6252);const i={class:"settings-container"},a={class:"col-8"},o=["selected"],r=["selected"],l={class:"col-4 pull-right"},c=(0,n._)("i",{class:"fa fa-plus"},null,-1),d=[c];function u(e,t,s,c,u,h){const p=(0,n.up)("Users"),f=(0,n.up)("Token");return(0,n.wg)(),(0,n.iD)("div",i,[(0,n._)("header",null,[(0,n._)("div",a,[(0,n._)("select",{title:"View",onChange:t[0]||(t[0]=e=>u.selectedView=e.target.value)},[(0,n._)("option",{value:"users",selected:"users"===u.selectedView},"Users",8,o),(0,n._)("option",{value:"token",selected:"token"===u.selectedView},"Generate Token",8,r)],32)]),(0,n._)("div",l,["users"===u.selectedView?((0,n.wg)(),(0,n.iD)("button",{key:0,title:"Add User",onClick:t[1]||(t[1]=t=>e.$refs.usersView.$refs.addUserModal.show())},d)):(0,n.kq)("",!0)])]),(0,n._)("main",null,["users"===u.selectedView?((0,n.wg)(),(0,n.j4)(p,{key:0,"session-token":u.sessionToken,"current-user":u.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===u.selectedView?((0,n.wg)(),(0,n.j4)(f,{key:1,"session-token":u.sessionToken,"current-user":u.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,n.kq)("",!0)])])}var h=s(3577),p=s(9963);const f={class:"token-container"},m={class:"token-container"},g=(0,n.Uk)(" This is your generated token. Treat it carefully and do not share it with untrusted parties."),v=(0,n._)("br",null,null,-1),w=(0,n.Uk)(" Also, make sure to save it - it WILL NOT be displayed again. "),y=["textContent"],b={class:"body"},k={class:"description"},_=(0,n.Uk)("Generate a JWT authentication token that can be used for API calls to the "),x=(0,n.Uk)("/execute"),C=(0,n.Uk)(" endpoint."),D=(0,n._)("br",null,null,-1),I=(0,n._)("p",null,"You can include the token in your requests in any of the following ways:",-1),S=(0,n.Uk)("Specify it on the "),T=(0,n.Uk)("Authorization: Bearer"),U=(0,n.Uk)(" header;"),P=(0,n.Uk)("Specify it on the "),M=(0,n.Uk)("X-Token"),N=(0,n.Uk)(" header;"),$=(0,n.Uk)("Specify it as a URL parameter: "),q=(0,n.Uk)("http://site:8008/execute?token=..."),O=(0,n.Uk)(";"),j=(0,n.Uk)("Specify it on the body of your JSON request: "),Z=(0,n.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,n.Uk)("."),z=(0,n.Uk)(" Confirm your credentials in order to generate a new token. "),W={class:"form-container"},R=(0,n.Uk)(" Username "),L=["value"],A=(0,n._)("label",null,[(0,n.Uk)(" Password "),(0,n._)("input",{type:"password",name:"password"})],-1),V=(0,n._)("label",null,[(0,n.Uk)(" Token validity in days "),(0,n._)("input",{type:"text",name:"validityDays"}),(0,n._)("span",{class:"note"},[(0,n.Uk)(" Decimal values are also supported (e.g. "),(0,n._)("i",null,"0.5"),(0,n.Uk)(" to identify 6 hours). An empty or zero value means that the token has no expiry date. ")])],-1),H=(0,n._)("input",{type:"submit",value:"Generate token"},null,-1);function F(e,t,s,i,a,o){const r=(0,n.up)("Loading"),l=(0,n.up)("Modal"),c=(0,n.up)("tt");return(0,n.wg)(),(0,n.iD)("div",f,[a.loading?((0,n.wg)(),(0,n.j4)(r,{key:0})):(0,n.kq)("",!0),(0,n.Wm)(l,{ref:"tokenModal"},{default:(0,n.w5)((()=>[(0,n._)("div",m,[(0,n._)("label",null,[g,v,w,(0,n._)("textarea",{class:"token",textContent:(0,h.zw)(a.token),onFocus:t[0]||(t[0]=(...e)=>o.onTokenSelect&&o.onTokenSelect(...e))},null,40,y)])])])),_:1},512),(0,n._)("div",b,[(0,n._)("div",k,[(0,n._)("p",null,[_,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[x])),_:1}),C]),D,I,(0,n._)("ul",null,[(0,n._)("li",null,[S,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[T])),_:1}),U]),(0,n._)("li",null,[P,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[M])),_:1}),N]),(0,n._)("li",null,[$,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[q])),_:1}),O]),(0,n._)("li",null,[j,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[Z])),_:1}),E])]),z]),(0,n._)("div",W,[(0,n._)("form",{onSubmit:t[1]||(t[1]=(0,p.iM)(((...e)=>o.generateToken&&o.generateToken(...e)),["prevent"])),ref:"generateTokenForm"},[(0,n._)("label",null,[R,(0,n._)("input",{type:"text",name:"username",value:s.currentUser.username,disabled:""},null,8,L)]),A,V,H],544)])])])}var B=s(9669),Y=s.n(B),K=s(1232),G=s(6813),J=s(8453),X={name:"Token",components:{Modal:J.Z,Loading:K.Z},mixins:[G.Z],props:{currentUser:{type:Object,required:!0}},data(){return{loading:!1,token:null}},methods:{async generateToken(e){const t=this.currentUser.username,s=e.target.password.value;let n=e.target.validityDays?.length?parseInt(e.target.validityDays.value):0;n||(n=null),this.loading=!0;try{this.token=(await Y().post("/auth",{username:t,password:s,expiry_days:n})).data.token,this.token?.length&&this.$refs.tokenModal.show()}catch(i){console.error(i.toString()),this.notify({text:i.toString(),error:!0})}finally{this.loading=!1}},onTokenSelect(e){e.target.select(),document.execCommand("copy"),this.notify({text:"Token copied to clipboard",image:{iconClass:"fa fa-check"}})}}},Q=s(3744);const ee=(0,Q.Z)(X,[["render",F]]);var te=ee;const se=["disabled"],ne=["disabled"],ie=["disabled"],ae=["disabled"],oe=["value"],re=["disabled"],le=["disabled"],ce=["disabled"],de=["disabled"],ue={class:"body"},he={class:"users-list"},pe=["onClick"],fe=["textContent"],me={class:"actions pull-right col-4"};function ge(e,t,s,i,a,o){const r=(0,n.up)("Loading"),l=(0,n.up)("Modal"),c=(0,n.up)("DropdownItem"),d=(0,n.up)("Dropdown");return(0,n.wg)(),(0,n.iD)(n.HY,null,[a.loading?((0,n.wg)(),(0,n.j4)(r,{key:0})):(0,n.kq)("",!0),(0,n.Wm)(l,{ref:"addUserModal",title:"Add User"},{default:(0,n.w5)((()=>[(0,n._)("form",{action:"#",method:"POST",ref:"addUserForm",onSubmit:t[0]||(t[0]=(...e)=>o.createUser&&o.createUser(...e))},[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"username",placeholder:"Username",disabled:a.commandRunning},null,8,se)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"password",placeholder:"Password",disabled:a.commandRunning},null,8,ne)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password",disabled:a.commandRunning},null,8,ie)]),(0,n._)("input",{type:"submit",value:"Create User",disabled:a.commandRunning},null,8,ae)],544)])),_:1},512),(0,n.Wm)(l,{ref:"changePasswordModal",title:"Change Password"},{default:(0,n.w5)((()=>[(0,n._)("form",{action:"#",method:"POST",ref:"changePasswordForm",onSubmit:t[1]||(t[1]=(...e)=>o.changePassword&&o.changePassword(...e))},[(0,n._)("label",null,[(0,n._)("input",{type:"text",name:"username",placeholder:"Username",value:a.selectedUser,disabled:"disabled"},null,8,oe)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"password",placeholder:"Current password",disabled:a.commandRunning},null,8,re)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"new_password",placeholder:"New password",disabled:a.commandRunning},null,8,le)]),(0,n._)("label",null,[(0,n._)("input",{type:"password",name:"confirm_new_password",placeholder:"Confirm new password",disabled:a.commandRunning},null,8,ce)]),(0,n._)("input",{type:"submit",value:"Change Password",disabled:a.commandRunning},null,8,de)],544)])),_:1},512),(0,n._)("div",ue,[(0,n._)("ul",he,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(a.users,(t=>((0,n.wg)(),(0,n.iD)("li",{key:t.user_id,class:"item user",onClick:e=>a.selectedUser=t.username},[(0,n._)("div",{class:"name col-8",textContent:(0,h.zw)(t.username)},null,8,fe),(0,n._)("div",me,[(0,n.Wm)(d,{title:"User Actions","icon-class":"fa fa-cog"},{default:(0,n.w5)((()=>[(0,n.Wm)(c,{text:"Change Password",disabled:a.commandRunning,"icon-class":"fa fa-key",onClick:s=>{a.selectedUser=t.username,e.$refs.changePasswordModal.show()}},null,8,["disabled","onClick"]),(0,n.Wm)(c,{text:"Delete User",disabled:a.commandRunning,"icon-class":"fa fa-trash",onClick:e=>o.deleteUser(t)},null,8,["disabled","onClick"])])),_:2},1024)])],8,pe)))),128))])])],64)}var ve=s(5771),we=s(9015),ye={name:"Users",components:{DropdownItem:we.Z,Loading:K.Z,Modal:J.Z,Dropdown:ve.Z},mixins:[G.Z],props:{sessionToken:{type:String,required:!0},currentUser:{type:Object,required:!0}},data(){return{users:[],commandRunning:!1,loading:!1,selectedUser:null}},methods:{async refresh(){this.loading=!0;try{this.users=await this.request("user.get_users")}finally{this.loading=!1}},async createUser(e){e.preventDefault();const t=[...this.$refs.addUserForm.querySelectorAll("input[name]")].reduce(((e,t)=>(e[t.name]=t.value,e)),{});if(t.password===t.confirm_password){this.commandRunning=!0;try{await this.request("user.create_user",{username:t.username,password:t.password,session_token:this.sessionToken})}finally{this.commandRunning=!1}this.notify({text:"User "+t.username+" created",image:{iconClass:"fas fa-check"}}),this.$refs.addUserModal.close(),await this.refresh()}else this.notify({title:"Unable to create user",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}})},async changePassword(e){e.preventDefault();const t=[...this.$refs.changePasswordForm.querySelectorAll("input[name]")].reduce(((e,t)=>(e[t.name]=t.value,e)),{});if(t.new_password!==t.confirm_new_password)return void this.notify({title:"Unable to update password",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}});this.commandRunning=!0;let s=!1;try{s=await this.request("user.update_password",{username:t.username,old_password:t.password,new_password:t.new_password})}finally{this.commandRunning=!1}s?(this.$refs.changePasswordModal.close(),this.notify({text:"Password successfully updated",image:{iconClass:"fas fa-check"}})):this.notify({title:"Unable to update password",text:"The current password is incorrect",error:!0,image:{iconClass:"fas fa-times"}})},async deleteUser(e){if(confirm("Are you sure that you want to remove the user "+e.username+"?")){this.commandRunning=!0;try{await this.request("user.delete_user",{username:e.username,session_token:this.sessionToken})}finally{this.commandRunning=!1}this.notify({text:"User "+e.username+" removed",image:{iconClass:"fas fa-check"}}),await this.refresh()}}},mounted(){this.refresh()}};const be=(0,Q.Z)(ye,[["render",ge]]);var ke=be,_e={name:"Settings",components:{Users:ke,Token:te},mixins:[G.Z],data(){return{selectedView:"users",currentUser:null,sessionToken:null}},methods:{async refresh(){this.sessionToken=this.getCookies()["session_token"],this.currentUser=await this.request("user.get_user_by_session",{session_token:this.sessionToken})}},mounted(){this.refresh()}};const xe=(0,Q.Z)(_e,[["render",u]]);var Ce=xe},3379:function(e,t,s){var n={"./Camera/Index":[5528,2989,5528],"./CameraAndroidIpcam/Index":[6739,6739],"./CameraCv/Index":[8184,2989,8184],"./CameraFfmpeg/Index":[5111,2989,5111],"./CameraGstreamer/Index":[699,2989,699],"./CameraIrMlx90640/Index":[9895,2989,9895],"./CameraPi/Index":[4548,2989,4548],"./Entities/Index":[9208,5246],"./Execute/Index":[7643,7643],"./Light/Index":[747,3490,9974,747],"./LightHue/Index":[3674,3490,9974,747,3674],"./Media/Index":[4196,9974,9978,8589,4196],"./MediaMplayer/Index":[6509,9974,9978,8589,4196,6509],"./MediaMpv/Index":[5895,9974,9978,8589,4196,5895],"./MediaOmxplayer/Index":[9633,9974,9978,8589,4196,9633],"./MediaVlc/Index":[767,9974,9978,8589,4196,767],"./Music/Index":[6833,9974,9978,6833],"./MusicMpd/Index":[3249,9974,9978,6833,3249],"./MusicSnapcast/Index":[2790,3490,9974,2790],"./MusicSpotify/Index":[9369,9974,9978,6833,9369],"./Rtorrent/Index":[2820,8589,6899,2820],"./Settings/Index":[5392],"./Sound/Index":[5193,5193],"./Switches/Index":[4276,4276],"./Switches/LightHue/Index":[2844,3490,6590,2844],"./Switches/Smartthings/Index":[9196,3490,6590,9196],"./Switches/SwitchTplink/Index":[3785,3490,6590,3785],"./Switches/SwitchWemo/Index":[5210,3490,6590,5210],"./Switches/Switchbot/Index":[9694,3490,6590,9694],"./Switches/SwitchbotBluetooth/Index":[9694,3490,6590,9694],"./Switches/ZigbeeMqtt/Index":[5466,3490,6590,5466],"./Switches/Zwave/Index":[7262,3490,6590,7262],"./Switches/ZwaveMqtt/Index":[2380,3490,6590,2380],"./Torrent/Index":[9299,8589,6899,9299],"./Tts/Index":[2466,4021,2466],"./TtsGoogle/Index":[1938,4021,1938],"./TvSamsungWs/Index":[615,615],"./ZigbeeMqtt/Index":[4848,3490,9974,4848],"./Zwave/Index":[6027,3490,9974,906,6027],"./ZwaveMqtt/Index":[2362,3490,9974,906,2362]};function i(e){if(!s.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return Promise.all(t.slice(1).map(s.e)).then((function(){return s(i)}))}i.keys=function(){return Object.keys(n)},i.id=3379,e.exports=i},6725:function(e,t,s){var n={"./Calendar/Index":[345,345],"./Camera/Index":[2346,2346],"./Component/Index":[5824,3490,9974,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(!s.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],i=t[0];return Promise.all(t.slice(1).map(s.e)).then((function(){return s(i)}))}i.keys=function(){return Object.keys(n)},i.id=6725,e.exports=i},1359:function(e){"use strict";e.exports=JSON.parse('{"camera.android.ipcam":{"class":"fab fa-android"},"camera.cv":{"class":"fas fa-camera"},"camera.ffmpeg":{"class":"fas fa-camera"},"camera.gstreamer":{"class":"fas fa-camera"},"camera.ir.mlx90640":{"class":"fas fa-sun"},"camera.pi":{"class":"fas fa-camera"},"entities":{"class":"fa fa-home"},"execute":{"class":"fa fa-play"},"light.hue":{"class":"fas fa-lightbulb"},"media.jellyfin":{"imgUrl":"/icons/jellyfin.svg"},"media.kodi":{"imgUrl":"/icons/kodi.svg"},"media.omxplayer":{"class":"fa fa-film"},"media.mplayer":{"class":"fa fa-film"},"media.mpv":{"class":"fa fa-film"},"media.plex":{"imgUrl":"/icons/plex.svg"},"media.vlc":{"class":"fa fa-film"},"music.mpd":{"class":"fas fa-music"},"music.snapcast":{"class":"fa fa-volume-up"},"music.spotify":{"class":"fab fa-spotify"},"torrent":{"class":"fa fa-magnet"},"rtorrent":{"class":"fa fa-magnet"},"smartthings":{"imgUrl":"/icons/smartthings.png"},"switches":{"class":"fas fa-toggle-on"},"switch.switchbot":{"class":"fas fa-toggle-on"},"switch.tplink":{"class":"fas fa-toggle-on"},"switchbot":{"class":"fas fa-toggle-on"},"sound":{"class":"fa fa-microphone"},"tts":{"class":"far fa-comment"},"tts.google":{"class":"fas fa-comment"},"tv.samsung.ws":{"class":"fas fa-tv"},"zigbee.mqtt":{"imgUrl":"/icons/zigbee.svg"},"zwave":{"imgUrl":"/icons/z-wave.png"},"zwave.mqtt":{"imgUrl":"/icons/z-wave.png"}}')}},t={};function s(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,s),a.exports}s.m=e,function(){var e=[];s.O=function(t,n,i,a){if(!n){var o=1/0;for(d=0;d=a)&&Object.keys(s.O).every((function(e){return s.O[e](n[l])}))?n.splice(l--,1):(r=!1,a0&&e[d-1][2]>a;d--)e[d]=e[d-1];e[d]=[n,i,a]}}(),function(){s.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};s.t=function(n,i){if(1&i&&(n=this(n)),8&i)return n;if("object"===typeof n&&n){if(4&i&&n.__esModule)return n;if(16&i&&"function"===typeof n.then)return n}var a=Object.create(null);s.r(a);var o={};e=e||[null,t({}),t([]),t(t)];for(var r=2&i&&n;"object"==typeof r&&!~e.indexOf(r);r=t(r))Object.getOwnPropertyNames(r).forEach((function(e){o[e]=function(){return n[e]}}));return o["default"]=function(){return n},s.d(a,o),a}}(),function(){s.d=function(e,t){for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){s.f={},s.e=function(e){return Promise.all(Object.keys(s.f).reduce((function(t,n){return s.f[n](e,t),t}),[]))}}(),function(){s.u=function(e){return"static/js/"+e+"."+{65:"a4e6662a",345:"8d14f37b",615:"25a0ebcb",699:"cf8f2194",747:"2d2a23ac",767:"32c26b46",818:"3f4c9ffa",906:"f5d77154",1155:"96c16dad",1595:"cf573de8",1798:"2ea76630",1938:"1dc95872",2072:"cbbcc0d5",2235:"69f662d8",2346:"9a487752",2362:"620095dd",2380:"292bff03",2466:"633bb83f",2790:"7a362d87",2820:"07ee3664",2844:"e8c1790f",2989:"fa06c8b8",3249:"a2010c2d",3490:"d482e29b",3673:"54ea2f3c",3674:"a57eb557",3785:"940990df",4021:"a3380d38",4024:"0022b296",4196:"cec98eba",4276:"51717631",4548:"686dd66b",4826:"64f0df2a",4848:"67b4ebfe",4981:"c4835180",5111:"d348fed1",5193:"1de6bb98",5207:"b6625280",5210:"d6ee4d6c",5246:"04e07bb0",5466:"c08dda4e",5528:"f33f80c6",5779:"45aee2fa",5824:"3cac2826",5895:"bc039cca",6003:"c76e25e0",6013:"5c85c65a",6027:"e3b113ee",6365:"ff05ea5a",6509:"9ca36429",6590:"a024a679",6739:"14f222c1",6833:"135ef1e4",6869:"73728371",6899:"d74c1b00",7262:"6193bf34",7420:"e53d9d48",7643:"48f991b1",8184:"6859ae89",8589:"21ae83d2",8990:"83944f37",9196:"462b659b",9299:"710819a1",9369:"f7907b71",9496:"5f4ffbab",9575:"fb8eab70",9633:"23b95cb0",9694:"6487ada9",9895:"f9b70895",9974:"f464d285",9978:"94898f2d"}[e]+".js"}}(),function(){s.miniCssF=function(e){return"static/css/"+e+"."+{65:"d6cbc229",345:"0d938275",615:"be187f79",747:"3c45f7ef",818:"ecd1a2b7",906:"c92b25f1",1155:"3c072b53",1798:"5047113b",2072:"17a59d62",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",2989:"a4270756",3490:"3516cb6e",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5246:"307f748b",5466:"fb0c1b5f",5779:"b285a776",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6365:"23d86f00",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6869:"5c09b6fd",6899:"f3d46bda",7262:"7ac2a7a5",7420:"e42d1496",7643:"e25374a8",8589:"459f0f41",8990:"14b5ace2",9196:"18347c3c",9496:"ad6b58f0",9575:"eba29f96",9694:"509f8cb5",9974:"3864eeae",9978:"13387da1"}[e]+".css"}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="platypush:";s.l=function(n,i,a,o){if(e[n])e[n].push(i);else{var r,l;if(void 0!==a)for(var c=document.getElementsByTagName("script"),d=0;d\n \n \n \n \n \n\n \n\n\n\n\n\n\n","\n
\n \n \n
\n\n\n\n\n","\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n
\n
\n\n\n\n\n","import { render } from \"./Notification.vue?vue&type=template&id=7646705e&scoped=true\"\nimport script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nimport \"./Notification.vue?vue&type=style&index=0&id=7646705e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7646705e\"]])\n\nexport default __exports__","import { render } from \"./Notifications.vue?vue&type=template&id=6dc8bebc&scoped=true\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js\"\n\nimport \"./Notifications.vue?vue&type=style&index=0&id=6dc8bebc&scoped=true&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6dc8bebc\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Events.vue?vue&type=template&id=26b9b70f\"\nimport script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n \n \n \n \n
\n\n
\n
\n Assistant listening\n
\n
\n \n
\n
\n \n
\n
\n \n
\n\n\n\n\n\n","import { render } from \"./VoiceAssistant.vue?vue&type=template&id=3f009270\"\nimport script from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\nexport * from \"./VoiceAssistant.vue?vue&type=script&lang=js\"\n\nimport \"./VoiceAssistant.vue?vue&type=style&index=0&id=3f009270&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Ntfy.vue?vue&type=template&id=1c4a4708\"\nimport script from \"./Ntfy.vue?vue&type=script&lang=js\"\nexport * from \"./Ntfy.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Pushbullet.vue?vue&type=template&id=bf9869d4\"\nimport script from \"./Pushbullet.vue?vue&type=script&lang=js\"\nexport * from \"./Pushbullet.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./App.vue?vue&type=template&id=8d9fac48\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=8d9fac48&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n
\n \n \n \n \n \n \n \n
\n\n\n\n\n\n\n\n","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Row.vue?vue&type=template&id=1b4663f2&scoped=true\"\nimport script from \"./Row.vue?vue&type=script&lang=js\"\nexport * from \"./Row.vue?vue&type=script&lang=js\"\n\nimport \"./Row.vue?vue&type=style&index=0&id=1b4663f2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-1b4663f2\"]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Widget.vue?vue&type=template&id=5df52982&scoped=true\"\nimport script from \"./Widget.vue?vue&type=script&lang=js\"\nexport * from \"./Widget.vue?vue&type=script&lang=js\"\n\nimport \"./Widget.vue?vue&type=style&index=0&id=5df52982&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-5df52982\"]])\n\nexport default __exports__","import { render } from \"./Dashboard.vue?vue&type=template&id=cefcfdfc&scoped=true\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=cefcfdfc&lang=scss&scoped=true\"\nimport \"./Dashboard.vue?vue&type=style&index=1&id=cefcfdfc&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-cefcfdfc\"]])\n\nexport default __exports__","\n
Object not found
\n\n\n\n\n","import { render } from \"./NotFound.vue?vue&type=template&id=49501f4d\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Login.vue?vue&type=template&id=16cef6aa&scoped=true\"\nimport script from \"./Login.vue?vue&type=script&lang=js\"\nexport * from \"./Login.vue?vue&type=script&lang=js\"\n\nimport \"./Login.vue?vue&type=style&index=0&id=16cef6aa&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-16cef6aa\"]])\n\nexport default __exports__","\n \n\n\n\n","import { render } from \"./Register.vue?vue&type=template&id=1244b238\"\nimport script from \"./Register.vue?vue&type=script&lang=js\"\nexport * from \"./Register.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n \n \n\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n \n\n\n\n\n\n\n\n","\n \n\n\n\n\n\n\n","import { render } from \"./Nav.vue?vue&type=template&id=69a507f4&scoped=true\"\nimport script from \"./Nav.vue?vue&type=script&lang=js\"\nexport * from \"./Nav.vue?vue&type=script&lang=js\"\n\nimport \"./Nav.vue?vue&type=style&index=0&id=69a507f4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-69a507f4\"]])\n\nexport default __exports__","import { render } from \"./Panel.vue?vue&type=template&id=344b6d1a&scoped=true\"\nimport script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\n\nimport \"./Panel.vue?vue&type=style&index=0&id=344b6d1a&lang=scss&scoped=true\"\nimport \"./Panel.vue?vue&type=style&index=1&id=344b6d1a&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-344b6d1a\"]])\n\nexport default __exports__","\n \n \n
\n \n
\n \n\n\n\n\n\n\n\n","import { render } from \"./Plugin.vue?vue&type=template&id=67571c94&scoped=true\"\nimport script from \"./Plugin.vue?vue&type=script&lang=js\"\nexport * from \"./Plugin.vue?vue&type=script&lang=js\"\n\nimport \"./Plugin.vue?vue&type=style&index=0&id=67571c94&lang=scss&scoped=true\"\nimport \"./Plugin.vue?vue&type=style&index=1&id=67571c94&lang=css\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-67571c94\"]])\n\nexport default __exports__","import { createWebHistory, createRouter } from \"vue-router\";\nimport Dashboard from \"@/views/Dashboard.vue\";\nimport NotFound from \"@/views/NotFound\";\nimport Login from \"@/views/Login\";\nimport Register from \"@/views/Register\";\nimport Panel from \"@/views/Panel\";\nimport Plugin from \"@/views/Plugin\";\n\nconst routes = [\n {\n path: \"/\",\n name: \"Panel\",\n component: Panel,\n },\n\n {\n path: \"/dashboard/:name\",\n name: \"Dashboard\",\n component: Dashboard,\n },\n\n {\n path: \"/plugin/:plugin\",\n name: \"Plugin\",\n component: Plugin,\n },\n\n {\n path: \"/login\",\n name: \"Login\",\n component: Login,\n },\n\n {\n path: \"/register\",\n name: \"Register\",\n component: Register,\n },\n\n {\n path: \"/:catchAll(.*)\",\n component: NotFound,\n },\n];\n\nconst router = createRouter({\n history: createWebHistory(),\n routes,\n});\n\nexport default router;\n","import { createApp } from 'vue'\nimport App from '@/App.vue'\nimport router from '@/router'\n\nconst app = createApp(App)\napp.config.globalProperties._config = window.config\napp.use(router).mount('#app')\n","\n\n","import script from \"./Api.vue?vue&type=script&lang=js\"\nexport * from \"./Api.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Cookies.vue?vue&type=script&lang=js\"\nexport * from \"./Cookies.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./DateTime.vue?vue&type=script&lang=js\"\nexport * from \"./DateTime.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Events.vue?vue&type=script&lang=js\"\nexport * from \"./Events.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Notification.vue?vue&type=script&lang=js\"\nexport * from \"./Notification.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Screen.vue?vue&type=script&lang=js\"\nexport * from \"./Screen.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Text.vue?vue&type=script&lang=js\"\nexport * from \"./Text.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Types.vue?vue&type=script&lang=js\"\nexport * from \"./Types.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n
\n
\n \n
\n
\n\n\n","import { render } from \"./Loading.vue?vue&type=template&id=4d9c871b&scoped=true\"\nconst script = {}\n\nimport \"./Loading.vue?vue&type=style&index=0&id=4d9c871b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4d9c871b\"]])\n\nexport default __exports__","\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Modal.vue?vue&type=template&id=7d1f6e8b&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=js\"\nexport * from \"./Modal.vue?vue&type=script&lang=js\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=7d1f6e8b&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7d1f6e8b\"]])\n\nexport default __exports__","\n
\n \n\n
\n \n
\n
\n\n\n\n\n\n","import { render } from \"./Dropdown.vue?vue&type=template&id=21bf0316&scoped=true\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=21bf0316&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-21bf0316\"]])\n\nexport default __exports__","\n
\n
\n \n
\n \n
\n\n\n\n\n\n","import { render } from \"./DropdownItem.vue?vue&type=template&id=0a3cac88&scoped=true\"\nimport script from \"./DropdownItem.vue?vue&type=script&lang=js\"\nexport * from \"./DropdownItem.vue?vue&type=script&lang=js\"\n\nimport \"./DropdownItem.vue?vue&type=style&index=0&id=0a3cac88&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-0a3cac88\"]])\n\nexport default __exports__","\n
\n \n \n
\n\n\n\n\n\n","import { render } from \"./Icon.vue?vue&type=template&id=706a3bd1&scoped=true\"\nimport script from \"./Icon.vue?vue&type=script&lang=js\"\nexport * from \"./Icon.vue?vue&type=script&lang=js\"\n\nimport \"./Icon.vue?vue&type=style&index=0&id=706a3bd1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-706a3bd1\"]])\n\nexport default __exports__","\n
\n \n
\n \n
\n\n
\n \n
\n \n\n \n \n \n \n
\n\n\n\n\n\n","\n
\n \n\n \n
\n \n
\n \n\n
\n
\n
Generate a JWT authentication token that can be used for API calls to the /execute endpoint.
\n
You can include the token in your requests in any of the following ways:
\n\n
\n
Specify it on the Authorization: Bearer header;
\n
Specify it on the X-Token header;
\n
Specify it as a URL parameter: http://site:8008/execute?token=...;
\n
Specify it on the body of your JSON request: {\"type\":\"request\", \"action\", \"...\", \"token\":\"...\"}.
\n
\n\n Confirm your credentials in order to generate a new token.\n
\n\n
\n \n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Token.vue?vue&type=template&id=5f9053de\"\nimport script from \"./Token.vue?vue&type=script&lang=js\"\nexport * from \"./Token.vue?vue&type=script&lang=js\"\n\nimport \"./Token.vue?vue&type=style&index=0&id=5f9053de&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n \n\n \n \n \n\n \n \n \n\n
\n
\n
\n \n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n","import { render } from \"./Users.vue?vue&type=template&id=2153f27b\"\nimport script from \"./Users.vue?vue&type=script&lang=js\"\nexport * from \"./Users.vue?vue&type=script&lang=js\"\n\nimport \"./Users.vue?vue&type=style&index=0&id=2153f27b&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./Index.vue?vue&type=template&id=d5c06b82\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=d5c06b82&lang=scss\"\n\nimport exportComponent from \"/home/blacklight/git_tree/platypush/platypush/backend/http/webapp/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","var map = {\n\t\"./Camera/Index\": [\n\t\t5528,\n\t\t2989,\n\t\t5528\n\t],\n\t\"./CameraAndroidIpcam/Index\": [\n\t\t6739,\n\t\t6739\n\t],\n\t\"./CameraCv/Index\": [\n\t\t8184,\n\t\t2989,\n\t\t8184\n\t],\n\t\"./CameraFfmpeg/Index\": [\n\t\t5111,\n\t\t2989,\n\t\t5111\n\t],\n\t\"./CameraGstreamer/Index\": [\n\t\t699,\n\t\t2989,\n\t\t699\n\t],\n\t\"./CameraIrMlx90640/Index\": [\n\t\t9895,\n\t\t2989,\n\t\t9895\n\t],\n\t\"./CameraPi/Index\": [\n\t\t4548,\n\t\t2989,\n\t\t4548\n\t],\n\t\"./Entities/Index\": [\n\t\t9208,\n\t\t5246\n\t],\n\t\"./Execute/Index\": [\n\t\t7643,\n\t\t7643\n\t],\n\t\"./Light/Index\": [\n\t\t747,\n\t\t3490,\n\t\t9974,\n\t\t747\n\t],\n\t\"./LightHue/Index\": [\n\t\t3674,\n\t\t3490,\n\t\t9974,\n\t\t747,\n\t\t3674\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t9974,\n\t\t9978,\n\t\t8589,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t9974,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t6509\n\t],\n\t\"./MediaMpv/Index\": [\n\t\t5895,\n\t\t9974,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t5895\n\t],\n\t\"./MediaOmxplayer/Index\": [\n\t\t9633,\n\t\t9974,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t9633\n\t],\n\t\"./MediaVlc/Index\": [\n\t\t767,\n\t\t9974,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t767\n\t],\n\t\"./Music/Index\": [\n\t\t6833,\n\t\t9974,\n\t\t9978,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t3249,\n\t\t9974,\n\t\t9978,\n\t\t6833,\n\t\t3249\n\t],\n\t\"./MusicSnapcast/Index\": [\n\t\t2790,\n\t\t3490,\n\t\t9974,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t9369,\n\t\t9974,\n\t\t9978,\n\t\t6833,\n\t\t9369\n\t],\n\t\"./Rtorrent/Index\": [\n\t\t2820,\n\t\t8589,\n\t\t6899,\n\t\t2820\n\t],\n\t\"./Settings/Index\": [\n\t\t5392\n\t],\n\t\"./Sound/Index\": [\n\t\t5193,\n\t\t5193\n\t],\n\t\"./Switches/Index\": [\n\t\t4276,\n\t\t4276\n\t],\n\t\"./Switches/LightHue/Index\": [\n\t\t2844,\n\t\t3490,\n\t\t6590,\n\t\t2844\n\t],\n\t\"./Switches/Smartthings/Index\": [\n\t\t9196,\n\t\t3490,\n\t\t6590,\n\t\t9196\n\t],\n\t\"./Switches/SwitchTplink/Index\": [\n\t\t3785,\n\t\t3490,\n\t\t6590,\n\t\t3785\n\t],\n\t\"./Switches/SwitchWemo/Index\": [\n\t\t5210,\n\t\t3490,\n\t\t6590,\n\t\t5210\n\t],\n\t\"./Switches/Switchbot/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/SwitchbotBluetooth/Index\": [\n\t\t9694,\n\t\t3490,\n\t\t6590,\n\t\t9694\n\t],\n\t\"./Switches/ZigbeeMqtt/Index\": [\n\t\t5466,\n\t\t3490,\n\t\t6590,\n\t\t5466\n\t],\n\t\"./Switches/Zwave/Index\": [\n\t\t7262,\n\t\t3490,\n\t\t6590,\n\t\t7262\n\t],\n\t\"./Switches/ZwaveMqtt/Index\": [\n\t\t2380,\n\t\t3490,\n\t\t6590,\n\t\t2380\n\t],\n\t\"./Torrent/Index\": [\n\t\t9299,\n\t\t8589,\n\t\t6899,\n\t\t9299\n\t],\n\t\"./Tts/Index\": [\n\t\t2466,\n\t\t4021,\n\t\t2466\n\t],\n\t\"./TtsGoogle/Index\": [\n\t\t1938,\n\t\t4021,\n\t\t1938\n\t],\n\t\"./TvSamsungWs/Index\": [\n\t\t615,\n\t\t615\n\t],\n\t\"./ZigbeeMqtt/Index\": [\n\t\t4848,\n\t\t3490,\n\t\t9974,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t6027,\n\t\t3490,\n\t\t9974,\n\t\t906,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t9974,\n\t\t906,\n\t\t2362\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 3379;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./Calendar/Index\": [\n\t\t345,\n\t\t345\n\t],\n\t\"./Camera/Index\": [\n\t\t2346,\n\t\t2346\n\t],\n\t\"./Component/Index\": [\n\t\t5824,\n\t\t3490,\n\t\t9974,\n\t\t5824\n\t],\n\t\"./DateTime/Index\": [\n\t\t1595,\n\t\t9575,\n\t\t1595\n\t],\n\t\"./DateTimeWeather/Index\": [\n\t\t5779,\n\t\t1798,\n\t\t9575,\n\t\t5779\n\t],\n\t\"./ImageCarousel/Index\": [\n\t\t6003,\n\t\t1798,\n\t\t9575,\n\t\t6003\n\t],\n\t\"./Music/Index\": [\n\t\t6013,\n\t\t6013\n\t],\n\t\"./Plugin/Index\": [\n\t\t4826,\n\t\t4826\n\t],\n\t\"./RssNews/Index\": [\n\t\t7420,\n\t\t7420\n\t],\n\t\"./Weather/Index\": [\n\t\t1798,\n\t\t1798\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 6725;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"65\":\"a4e6662a\",\"345\":\"8d14f37b\",\"615\":\"25a0ebcb\",\"699\":\"cf8f2194\",\"747\":\"2d2a23ac\",\"767\":\"32c26b46\",\"818\":\"3f4c9ffa\",\"906\":\"f5d77154\",\"1155\":\"96c16dad\",\"1595\":\"cf573de8\",\"1798\":\"2ea76630\",\"1938\":\"1dc95872\",\"2072\":\"cbbcc0d5\",\"2235\":\"69f662d8\",\"2346\":\"9a487752\",\"2362\":\"620095dd\",\"2380\":\"292bff03\",\"2466\":\"633bb83f\",\"2790\":\"7a362d87\",\"2820\":\"07ee3664\",\"2844\":\"e8c1790f\",\"2989\":\"fa06c8b8\",\"3249\":\"a2010c2d\",\"3490\":\"d482e29b\",\"3673\":\"54ea2f3c\",\"3674\":\"a57eb557\",\"3785\":\"940990df\",\"4021\":\"a3380d38\",\"4024\":\"0022b296\",\"4196\":\"cec98eba\",\"4276\":\"51717631\",\"4548\":\"686dd66b\",\"4826\":\"64f0df2a\",\"4848\":\"67b4ebfe\",\"4981\":\"c4835180\",\"5111\":\"d348fed1\",\"5193\":\"1de6bb98\",\"5207\":\"b6625280\",\"5210\":\"d6ee4d6c\",\"5246\":\"04e07bb0\",\"5466\":\"c08dda4e\",\"5528\":\"f33f80c6\",\"5779\":\"45aee2fa\",\"5824\":\"3cac2826\",\"5895\":\"bc039cca\",\"6003\":\"c76e25e0\",\"6013\":\"5c85c65a\",\"6027\":\"e3b113ee\",\"6365\":\"ff05ea5a\",\"6509\":\"9ca36429\",\"6590\":\"a024a679\",\"6739\":\"14f222c1\",\"6833\":\"135ef1e4\",\"6869\":\"73728371\",\"6899\":\"d74c1b00\",\"7262\":\"6193bf34\",\"7420\":\"e53d9d48\",\"7643\":\"48f991b1\",\"8184\":\"6859ae89\",\"8589\":\"21ae83d2\",\"8990\":\"83944f37\",\"9196\":\"462b659b\",\"9299\":\"710819a1\",\"9369\":\"f7907b71\",\"9496\":\"5f4ffbab\",\"9575\":\"fb8eab70\",\"9633\":\"23b95cb0\",\"9694\":\"6487ada9\",\"9895\":\"f9b70895\",\"9974\":\"f464d285\",\"9978\":\"94898f2d\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"65\":\"d6cbc229\",\"345\":\"0d938275\",\"615\":\"be187f79\",\"747\":\"3c45f7ef\",\"818\":\"ecd1a2b7\",\"906\":\"c92b25f1\",\"1155\":\"3c072b53\",\"1798\":\"5047113b\",\"2072\":\"17a59d62\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"2989\":\"a4270756\",\"3490\":\"3516cb6e\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5246\":\"307f748b\",\"5466\":\"fb0c1b5f\",\"5779\":\"b285a776\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6365\":\"23d86f00\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6869\":\"5c09b6fd\",\"6899\":\"f3d46bda\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7643\":\"e25374a8\",\"8589\":\"459f0f41\",\"8990\":\"14b5ace2\",\"9196\":\"18347c3c\",\"9496\":\"ad6b58f0\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\",\"9974\":\"3864eeae\",\"9978\":\"13387da1\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"platypush:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"65\":1,\"345\":1,\"615\":1,\"747\":1,\"818\":1,\"906\":1,\"1155\":1,\"1798\":1,\"2072\":1,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"2989\":1,\"3490\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5246\":1,\"5466\":1,\"5779\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6365\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6869\":1,\"6899\":1,\"7262\":1,\"7420\":1,\"7643\":1,\"8589\":1,\"8990\":1,\"9196\":1,\"9496\":1,\"9575\":1,\"9694\":1,\"9974\":1,\"9978\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^((298|686|858)9|(34|65)90|4021|4981|9575|9974)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkplatypush\"] = self[\"webpackChunkplatypush\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4998], function() { return __webpack_require__(5736); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["bus","mitt","hasWebsocket","ref","config","websocket_port","hasAssistant","hasPushbullet","hasNtfy","class","notifications","notification","id","index","key","text","html","title","link","image","warning","error","destroy","clicked","src","alt","icon","style","color","iconClass","name","props","methods","this","window","open","$emit","__exports__","components","Notification","duration","type","Number","default","data","timeouts","create","args","parseInt","setTimeout","bind","wsPort","ws","initialized","pending","opened","timeout","reconnectMsecs","handlers","handlerNameToEventTypes","onWebsocketTimeout","console","log","close","onClose","onMessage","event","JSON","parse","e","warn","debug","push","Object","values","handler","Array","Function","onOpen","onclose","clearTimeout","undefined","onError","code","reason","init","protocol","location","url","hostname","WebSocket","err","onmessage","onopen","onerror","subscribe","msg","events","length","handlerName","unsubscribe","keys","created","state","alerting","responding","speechRecognized","listening","Modal","mixins","Utils","responseText","phrase","hideTimeout","reset","conversationStart","$refs","assistantModal","show","conversationEnd","self","response","response_text","alertOn","alertOff","registerHandlers","mounted","notify","message","push_type","body","Pushbullet","Ntfy","Notifications","Events","VoiceAssistant","userAuthenticated","computed","onNotification","async","request","initConfig","render","loading","classes","rows","row","i","widgets","widget","j","component","getWidgetProps","String","required","split","concat","Widget","Loading","Row","refreshSeconds","parseTemplate","tmpl","node","DOMParser","parseFromString","childNodes","attributes","nodeValue","getElementsByTagName","map","children","el","nodeName","attrs","reduce","obj","content","innerHTML","$options","$route","params","template","refreshDashboard","setInterval","toFixed","method","placeholder","_register","value","register","Boolean","parseBoolean","Login","panels","selectedPanel","$event","panel","href","collapsed","panelNames","onItemClick","icons","imgUrl","emits","homeIdx","indexOf","slice","sort","host","Settings","Nav","plugins","backends","procedures","initSelectedPanel","match","hash","plugin","initPanels","entries","forEach","componentName","token","toUpperCase","join","comp","pluginName","Promise","all","initializeDefaultViews","execute","entities","parseConfig","toString","initPanel","routes","path","Panel","Dashboard","Plugin","Register","NotFound","router","createRouter","history","createWebHistory","app","createApp","App","globalProperties","_config","use","mount","showError","opts","resolve","reject","then","errors","output","catch","action","getCookies","document","cookie","item","k","v","formatDate","date","year","Date","toDateString","substring","formatTime","seconds","toTimeString","formatDateTime","_eventsReady","$root","subFunc","generateId","unwatch","$watch","newVal","btoa","fromCharCode","Math","round","random","isMobile","matchMedia","matches","isTablet","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","Api","Cookies","DateTime","Screen","Text","Types","n","script","isVisible","zIndex","$attrs","width","height","stopPropagation","visible","level","timeoutId","prevVisible","hide","toggle","visibleHndl","updated","maxZIndex","getComputedStyle","$el","outermostModals","modal","querySelectorAll","items","keepOpenOnItemClick","documentClickHndl","element","target","dropdown","parentElement","removeEventListener","addEventListener","left","top","parseFloat","button","getBoundingClientRect","innerWidth","clientWidth","innerHeight","clientHeight","itemClass","iconUrl","Icon","disabled","$parent","className","selectedView","selected","usersView","addUserModal","sessionToken","currentUser","onTokenSelect","generateToken","username","password","validityDays","expiry_days","tokenModal","select","execCommand","createUser","commandRunning","changePassword","selectedUser","users","user","user_id","changePasswordModal","deleteUser","DropdownItem","Dropdown","preventDefault","form","addUserForm","input","confirm_password","session_token","refresh","changePasswordForm","new_password","confirm_new_password","success","old_password","confirm","Users","Token","webpackAsyncContext","req","__webpack_require__","o","Error","ids","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","every","splice","r","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","__proto__","mode","ns","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","get","f","chunkId","promises","miniCssF","g","globalThis","prop","prototype","hasOwnProperty","call","inProgress","dataWebpackPrefix","l","done","needAttach","scripts","s","getAttribute","createElement","charset","nc","setAttribute","onScriptComplete","prev","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","rel","onLinkComplete","errorType","realHref","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","test","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file