\n\n\n\n\n\n","import { render } from \"./Entity.vue?vue&type=template&id=2cf6329b&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=2cf6329b&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-2cf6329b\"]])\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=2b1144ed&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=2b1144ed&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-2b1144ed\"]])\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","import { render } from \"./Controls.vue?vue&type=template&id=e2726892&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=e2726892&lang=scss&scoped=true\"\nimport \"./Controls.vue?vue&type=style&index=1&id=e2726892&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],['__scopeId',\"data-v-e2726892\"]])\n\nexport default __exports__","import { render } from \"./Light.vue?vue&type=template&id=52168252&scoped=true\"\nimport script from \"./Light.vue?vue&type=script&lang=js\"\nexport * from \"./Light.vue?vue&type=script&lang=js\"\n\nimport \"./Light.vue?vue&type=style&index=0&id=52168252&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-52168252\"]])\n\nexport default __exports__","\n \n
\n {{ scene.name || `[Scene ${scene.id}]` }}\n
\n\n\n\n","import { render } from \"./Scene.vue?vue&type=template&id=6934d062\"\nimport script from \"./Scene.vue?vue&type=script&lang=js\"\nexport * from \"./Scene.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 Run Animation\n
\n
\n \n
\n
\n\n
\n
Animation
\n
\n \n
\n
\n
\n\n
\n
\n
\n Hue range\n
\n
\n \n
\n
\n\n
\n
\n Sat range\n
\n
\n \n
\n
\n\n
\n
\n Bri range\n
\n
\n \n
\n
\n\n
\n
\n Hue step\n
\n
\n \n
\n
\n\n
\n
\n Sat step\n
\n
\n \n
\n
\n\n
\n
\n Bri step\n
\n
\n \n
\n
\n\n
\n
\n Refresh seconds\n
\n
\n \n
\n
\n\n
\n
\n Duration (seconds)\n
\n
\n \n
\n
\n
\n
\n\n
\n
\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 \"./RangeSlider.vue?vue&type=template&id=981c5de0&scoped=true\"\nimport script from \"./RangeSlider.vue?vue&type=script&lang=js\"\nexport * from \"./RangeSlider.vue?vue&type=script&lang=js\"\n\nimport \"./RangeSlider.vue?vue&type=style&index=0&id=981c5de0&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-981c5de0\"]])\n\nexport default __exports__","import { render } from \"./Animate.vue?vue&type=template&id=1739aaba&scoped=true\"\nimport script from \"./Animate.vue?vue&type=script&lang=js\"\nexport * from \"./Animate.vue?vue&type=script&lang=js\"\n\nimport \"./Animate.vue?vue&type=style&index=0&id=1739aaba&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-1739aaba\"]])\n\nexport default __exports__","import { render } from \"./Group.vue?vue&type=template&id=4de1a560\"\nimport script from \"./Group.vue?vue&type=script&lang=js\"\nexport * from \"./Group.vue?vue&type=script&lang=js\"\n\nimport \"./Group.vue?vue&type=style&index=0&id=4de1a560&lang=scss\"\nimport \"./Group.vue?vue&type=style&index=1&id=4de1a560&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=781dd72c&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=781dd72c&lang=scss&scoped=true\"\nimport \"./Index.vue?vue&type=style&index=1&id=781dd72c&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],['__scopeId',\"data-v-781dd72c\"]])\n\nexport default __exports__"],"names":["ColorConverter","constructor","ranges","this","hue","sat","bri","ct","attr","Object","keys","normalize","x","xRange","yRange","hslToRgb","h","s","l","a","Math","min","f","n","k","color","max","round","rgbToHsl","r","g","b","d","parseInt","xyToRgb","y","brightness","z","Y","toFixed","X","Z","red","green","blue","pow","isNaN","map","c","rgbToXY","parseFloat","rgbToBri","getRGB","rgb","getXY","xy","toRGB","console","debug","toXY","toHSL","hexToRgb","hex","slice","_","rgbToHex","toString","length","join","class","ref","withRange","withLabel","type","range","step","disabled","value","onUpdate","name","emits","props","Number","Boolean","default","Array","methods","event","update","target","$emit","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","track","width","mounted","$watch","newValue","__exports__","render","onInput","checked","selectedGroup","groups","loadingGroups","colorConverter","$event","group","lights","displayedLights","scenes","scenesByGroup","animations","animationsByGroup","config","pluginName","String","required","data","loading","anyLightsOn","groupsSorted","key","id","state","any_on","components","ToggleSwitch","MenuPanel","computed","entries","sort","localeCompare","values","title","close","selectedView","lightsSorted","light","selectedLight","collapsed","scenesSorted","scene","selectedScene","onSceneSelected","expandToggle","on","stopPropagation","rgbColor","onColorSelect","Loading","Slider","avg","i","reduce","sum","obj","forEach","getColor","split","t","hsl","Controls","onSelect","animationRunning","toggleAnimation","selectedAnimation","color_transition","hue_range","sat_range","bri_range","hue_step","sat_step","bri_step","transition_seconds","duration","selectedLights","filter","v","toggleSelectAll","input","mixins","Utils","RangeSlider","runningAnimations","animation","lightId","blink","select","eventType","warn","Animate","Light","Scene","groupName","sceneId","Group","Groups","Panel","loadingLights","initialGroup","initialized","groupsByLight","groupId","self","initSelectedGroup","unwatch","newVal","refresh","onLightChange","plugin_name","light_id","onAnimationChange","subscribe","unmounted","unsubscribe"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/2909-legacy.1b5135c4.js b/platypush/backend/http/webapp/dist/static/js/7503-legacy.2d12022b.js
similarity index 73%
rename from platypush/backend/http/webapp/dist/static/js/2909-legacy.1b5135c4.js
rename to platypush/backend/http/webapp/dist/static/js/7503-legacy.2d12022b.js
index 6e80a06add..8841fb7bc7 100644
--- a/platypush/backend/http/webapp/dist/static/js/2909-legacy.1b5135c4.js
+++ b/platypush/backend/http/webapp/dist/static/js/7503-legacy.2d12022b.js
@@ -1,2 +1,2 @@
-(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2909],{4964:function(t,e,n){var i=n(5112),r=i("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[r]=!1,"/./"[t](e)}catch(i){}}return!1}},3929:function(t,e,n){var i=n(7850),r=TypeError;t.exports=function(t){if(i(t))throw r("The method doesn't accept regular expressions");return t}},7852:function(t,e,n){"use strict";var i=n(2109),r=n(1702),o=n(1236).f,s=n(7466),u=n(1340),a=n(3929),l=n(4488),c=n(4964),d=n(1913),f=r("".endsWith),p=r("".slice),v=Math.min,m=c("endsWith"),y=!d&&!m&&!!function(){var t=o(String.prototype,"endsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!y&&!m},{endsWith:function(t){var e=u(l(this));a(t);var n=arguments.length>1?arguments[1]:void 0,i=e.length,r=void 0===n?i:v(s(n),i),o=u(t);return f?f(e,o,r):p(e,r-o.length,r)===o}})},6755:function(t,e,n){"use strict";var i=n(2109),r=n(1702),o=n(1236).f,s=n(7466),u=n(1340),a=n(3929),l=n(4488),c=n(4964),d=n(1913),f=r("".startsWith),p=r("".slice),v=Math.min,m=c("startsWith"),y=!d&&!m&&!!function(){var t=o(String.prototype,"startsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!y&&!m},{startsWith:function(t){var e=u(l(this));a(t);var n=s(v(arguments.length>1?arguments[1]:void 0,e.length)),i=u(t);return f?f(e,i,n):p(e,n,n+i.length)===i}})},7503:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return d}});var i=n(6252),r=n(3577);function o(t,e,n,o,s,u){var a;return(0,i.wg)(),(0,i.iD)("div",{class:(0,r.C_)(["row item entity-container",{blink:s.justUpdated}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(s.component),{value:t.value,loading:t.loading,error:t.error||0==(null===(a=t.value)||void 0===a?void 0:a.reachable),onInput:e[0]||(e[0]=function(e){return t.$emit("input",e)}),onLoading:e[1]||(e[1]=function(e){return t.$emit("loading",e)})},null,8,["value","loading","error"]))],2)}var s=n(4648),u=(n(9600),n(1249),n(4916),n(3123),n(7042),n(1539),n(8783),n(3948),n(7909)),a={name:"Entity",mixins:[u["default"]],emits:["input","loading"],data:function(){return{component:null,justUpdated:!1}},methods:{valuesEqual:function(t,e){t=(0,s.Z)({},t),e=(0,s.Z)({},e);for(var n=0,i=["updated_at","data"];n0})).sort((function(t,e){return t[0].localeCompare(e[0])})).map((function(e){var n=(0,D.Z)(e,2),i=n[0],r=n[1];return{name:i,entities:r.filter((function(e){return e.id in t.selector.selectedEntities}))}}))}},methods:{groupEntities:function(t){return Object.values(this.entities).reduce((function(e,n){var i=e[n[t]]||{};return i[n.id]=n,e[n[t]]=Object.values(i).sort((function(t,e){return t.name.localeCompare(e.name)})),e}),{})},refresh:function(t){var e=this;return(0,I.Z)(regeneratorRuntime.mark((function n(){var i,r;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return i=(t?t.entities:e.entities)||{},r={},t&&(r.plugins=Object.keys(i.reduce((function(t,e){return t[e.plugin]=!0,t}),{}))),e.loadingEntities=Object.values(i).reduce((function(t,n){if(n.is_query_disabled||n.is_write_only)return t;var i=e,r=n.id;return e.entityTimeouts[r]&&clearTimeout(e.entityTimeouts[r]),e.entityTimeouts[r]=setTimeout((function(){i.loadingEntities[r]&&delete i.loadingEntities[r],i.entityTimeouts[r]&&delete i.entityTimeouts[r],i.errorEntities[r]=n,console.warn("Scan timeout for ".concat(n.name))}),1e3*e.entityScanTimeout),t[r]=!0,t}),{}),n.next=6,e.request("entities.scan",r);case 6:case"end":return n.stop()}}),n)})))()},sync:function(){var t=this;return(0,I.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.loading=!0,e.prev=1,e.next=4,t.request("entities.get");case 4:t.entities=e.sent.reduce((function(t,e){var n;return e.name=(null===e||void 0===e||null===(n=e.meta)||void 0===n?void 0:n.name_override)||e.name,e.category=B[e.type].name_plural,e.meta=(0,S.Z)((0,S.Z)({},B[e.type]||{}),e.meta||{}),t[e.id]=e,t}),{}),t.selector.selectedEntities=t.entityGroups.id;case 6:return e.prev=6,t.loading=!1,e.finish(6);case 9:case"end":return e.stop()}}),e,null,[[1,,6,9]])})))()},clearEntityTimeouts:function(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:function(t){t.category=B[t.type].name_plural,this.entities[t.id]=t,this.clearEntityTimeouts(t.id),this.loadingEntities[t.id]&&delete this.loadingEntities[t.id]},onEntityUpdate:function(t){var e,n,i,r,o,s,u,a,l,c,d,f=t.entity.id;if(null!=f){this.clearEntityTimeouts(f);var p=(0,S.Z)({},t.entity);null==(null===(e=t.entity)||void 0===e?void 0:e.state)&&(p.state=null===(n=this.entities[f])||void 0===n?void 0:n.state),null!==(i=p.meta)&&void 0!==i&&null!==(r=i.name_override)&&void 0!==r&&r.length?p.name=p.meta.name_override:null!==(o=this.entities[f])&&void 0!==o&&null!==(s=o.meta)&&void 0!==s&&null!==(u=s.name_override)&&void 0!==u&&u.length?p.name=this.entities[f].meta.name_override:p.name=(null===(a=t.entity)||void 0===a?void 0:a.name)||(null===(l=this.entities[f])||void 0===l?void 0:l.name),p.category=B[p.type].name_plural,p.meta=(0,S.Z)((0,S.Z)((0,S.Z)({},B[t.entity.type]||{}),(null===(c=this.entities[f])||void 0===c?void 0:c.meta)||{}),(null===(d=t.entity)||void 0===d?void 0:d.meta)||{}),this.entities[f]=p}},onEntityDelete:function(t){var e,n=null===(e=t.entity)||void 0===e?void 0:e.id;null!=n&&(n===this.modalEntityId&&(this.modalEntityId=null),this.entities[n]&&delete this.entities[n])},onEntityModal:function(t){t?(this.modalEntityId=t,this.modalVisible=!0):(this.modalEntityId=null,this.modalVisible=!1)}},mounted:function(){var t=this;return(0,I.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.subscribe(t.onEntityUpdate,"on-entity-update","platypush.message.event.entities.EntityUpdateEvent"),t.subscribe(t.onEntityDelete,"on-entity-delete","platypush.message.event.entities.EntityDeleteEvent"),e.next=4,t.sync();case 4:return e.next=6,t.refresh();case 6:case"end":return e.stop()}}),e)})))()}};const V=(0,M.Z)(F,[["render",x],["__scopeId","data-v-2b1144ed"]]);var H=V},6243:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return $t}});n(8309),n(2526),n(1817);var i=n(6252),r=n(3577),o=function(t){return(0,i.dD)("data-v-628ff73f"),t=t(),(0,i.Cn)(),t},s=(0,i.Uk)(" Are you "),u=o((function(){return(0,i._)("b",null,"sure",-1)})),a=(0,i.Uk)(" that you want to delete this entity? "),l=o((function(){return(0,i._)("br",null,null,-1)})),c=o((function(){return(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."),f=o((function(){return(0,i._)("br",null,null,-1)})),p=o((function(){return(0,i._)("br",null,null,-1)})),v=(0,i.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),m={class:"table-row"},y={class:"title"},h=(0,i.Uk)(" Name "),g={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"},x=o((function(){return(0,i._)("i",{class:"fas fa-rotate-left"},null,-1)})),S=[x],I=o((function(){return(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=o((function(){return(0,i._)("div",{class:"title"}," Icon color ",-1)})),T={class:"value icon-color-picker"},j=["value"],Z=o((function(){return(0,i._)("i",{class:"fas fa-rotate-left"},null,-1)})),q=[Z],O={class:"table-row"},U=o((function(){return(0,i._)("div",{class:"title"},"Plugin",-1)})),M=["textContent"],R={class:"table-row"},N=o((function(){return(0,i._)("div",{class:"title"},"Internal ID",-1)})),L=["textContent"],$={key:0,class:"table-row"},W=o((function(){return(0,i._)("div",{class:"title"},"External ID",-1)})),z=["textContent"],B={key:1,class:"table-row"},F=o((function(){return(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=o((function(){return(0,i._)("div",{class:"title"},"Created at",-1)})),Q=["textContent"],J={key:3,class:"table-row"},X=o((function(){return(0,i._)("div",{class:"title"},"Updated at",-1)})),tt=["textContent"],et={class:"table-row delete-entity-container"},nt=o((function(){return(0,i._)("div",{class:"title"},"Delete Entity",-1)})),it={class:"value"},rt=o((function(){return(0,i._)("i",{class:"fas fa-trash"},null,-1)})),ot=[rt];function st(t,e,n,o,x,Z){var rt=(0,i.up)("ConfirmDialog"),st=(0,i.up)("EditButton"),ut=(0,i.up)("NameEditor"),at=(0,i.up)("Icon"),lt=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(lt,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((function(){var o,lt,ct,dt,ft,pt,vt,mt;return[(0,i.Wm)(rt,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:Z.onDelete},{default:(0,i.w5)((function(){return[s,u,a,l,c,d,f,p,v]})),_:1},8,["onInput"]),(0,i._)("div",m,[(0,i._)("div",y,[h,x.editName?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(st,{key:0,onClick:e[0]||(e[0]=function(t){return x.editName=!0})}))]),(0,i._)("div",g,[x.editName?((0,i.wg)(),(0,i.j4)(ut,{key:0,value:n.entity.name,onInput:Z.onRename,onCancel:e[1]||(e[1]=function(t){return x.editName=!1}),disabled:x.loading},null,8,["value","onInput","disabled"])):((0,i.wg)(),(0,i.iD)("span",{key:1,textContent:(0,r.zw)(n.entity.name)},null,8,_))])]),(0,i._)("div",w,[(0,i._)("div",b,[k,x.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(st,{key:0,onClick:e[2]||(e[2]=function(t){return x.editIcon=!0})}))]),(0,i._)("div",E,[x.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(ut,{value:(null===(o=n.entity.meta)||void 0===o||null===(lt=o.icon)||void 0===lt?void 0:lt.class)||(null===(ct=n.entity.meta)||void 0===ct||null===(dt=ct.icon)||void 0===dt?void 0:dt.url),onInput:Z.onIconEdit,onCancel:e[5]||(e[5]=function(t){return x.editIcon=!1}),disabled:x.loading},{default:(0,i.w5)((function(){return[(0,i._)("button",{type:"button",title:"Reset",onClick:e[3]||(e[3]=function(t){return Z.onIconEdit(null)}),onTouch:e[4]||(e[4]=function(t){return Z.onIconEdit(null)})},S,32)]})),_:1},8,["value","onInput","disabled"]),I])):((0,i.wg)(),(0,i.j4)(at,(0,r.vs)((0,i.dG)({key:1},(null===(ft=n.entity)||void 0===ft||null===(pt=ft.meta)||void 0===pt?void 0:pt.icon)||{})),null,16))])]),(0,i._)("div",D,[G,(0,i._)("div",T,[(0,i._)("input",{type:"color",value:null===(vt=n.entity.meta)||void 0===vt||null===(mt=vt.icon)||void 0===mt?void 0:mt.color,onChange:e[6]||(e[6]=function(){return Z.onIconColorEdit&&Z.onIconColorEdit.apply(Z,arguments)})},null,40,j),(0,i._)("button",{type:"button",title:"Reset",onClick:e[7]||(e[7]=function(t){return Z.onIconColorEdit(null)}),onTouch:e[8]||(e[8]=function(t){return Z.onIconColorEdit(null)})},q,32)])]),(0,i._)("div",O,[U,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.plugin)},null,8,M)]),(0,i._)("div",R,[N,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.id)},null,8,L)]),n.entity.external_id?((0,i.wg)(),(0,i.iD)("div",$,[W,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.external_id)},null,8,z)])):(0,i.kq)("",!0),n.entity.description?((0,i.wg)(),(0,i.iD)("div",B,[F,(0,i._)("div",{class:"value",textContent:(0,r.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||{},(function(e,n){return(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,r.zw)(t.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,r.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,r.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,r.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]=function(e){return t.$refs.deleteConfirmDiag.show()})},ot)])])]})),_:1},8,["visible","title"])}var ut=n(8534),at=(n(6755),n(5666),n(8453)),lt=n(1478),ct=n(9963),dt=function(t){return(0,i.dD)("data-v-d543b3e4"),t=t(),(0,i.Cn)(),t},ft={class:"dialog-content"},pt=dt((function(){return(0,i._)("i",{class:"fas fa-check"},null,-1)})),vt=dt((function(){return(0,i._)("i",{class:"fas fa-xmark"},null,-1)}));function mt(t,e,n,o,s,u){var a=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(a,{ref:"modal",title:n.title},{default:(0,i.w5)((function(){return[(0,i._)("div",ft,[(0,i.WI)(t.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:e[4]||(e[4]=(0,ct.iM)((function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)}),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:e[0]||(e[0]=function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)}),onTouch:e[1]||(e[1]=function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)})},[pt,(0,i.Uk)(" "+(0,r.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:e[2]||(e[2]=function(){return u.close&&u.close.apply(u,arguments)}),onTouch:e[3]||(e[3]=function(){return u.close&&u.close.apply(u,arguments)})},[vt,(0,i.Uk)(" "+(0,r.zw)(n.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:function(){this.$emit("input"),this.close()},show:function(){this.$refs.modal.show()},close:function(){this.$refs.modal.hide()}}},ht=n(3744);const gt=(0,ht.Z)(yt,[["render",mt],["__scopeId","data-v-d543b3e4"]]);var _t=gt,wt=function(t){return(0,i.dD)("data-v-3344f2bf"),t=t(),(0,i.Cn)(),t},bt=wt((function(){return(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1)})),kt=[bt];function Et(t,e,n,r,o,s){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:e[0]||(e[0]=function(t){return s.proxy(t)}),onTouch:e[1]||(e[1]=function(t){return s.proxy(t)}),onInput:e[2]||(e[2]=function(t){return s.proxy(t)})},kt,32)}var Ct={emits:["input","click","touch"],methods:{proxy:function(t){this.$emit(t.type,t)}}};const xt=(0,ht.Z)(Ct,[["render",Et],["__scopeId","data-v-3344f2bf"]]);var St=xt,It=function(t){return(0,i.dD)("data-v-1405d90f"),t=t(),(0,i.Cn)(),t},Dt=["disabled"],Gt=It((function(){return(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1)})),Tt=It((function(){return(0,i._)("i",{class:"fas fa-ban"},null,-1)})),jt=[Tt];function Zt(t,e,n,r,o,s){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:e[3]||(e[3]=(0,ct.iM)((function(){return s.submit&&s.submit.apply(s,arguments)}),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=function(t){return o.text=t}),disabled:n.disabled},null,8,Dt),[[ct.nr,o.text]]),Gt,(0,i._)("button",{class:"cancel",onClick:e[1]||(e[1]=function(e){return t.$emit("cancel")}),onTouch:e[2]||(e[2]=function(e){return t.$emit("cancel")})},jt,32),(0,i.WI)(t.$slots,"default",{},void 0,!0)],32)}var qt={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data:function(){return{text:null}},methods:{proxy:function(t){this.$emit(t.type,t)},submit:function(){return this.$emit("input",this.text),!1}},mounted:function(){this.text=this.value}};const Ot=(0,ht.Z)(qt,[["render",Zt],["__scopeId","data-v-1405d90f"]]);var Ut=Ot,Mt=n(6813),Rt=n(7369),Nt={name:"Entity",components:{Modal:at.Z,EditButton:St,NameEditor:Ut,Icon:lt.Z,ConfirmDialog:_t},mixins:[Mt.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1}},data:function(){return{loading:!1,editName:!1,editIcon:!1}},methods:{onRename:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,i={},i[e.entity.id]=t,n.next=6,e.request("entities.rename",i);case 6:return n.prev=6,e.loading=!1,e.editName=!1,n.finish(6);case 10:case"end":return n.stop()}}),n,null,[[1,,6,10]])})))()},onDelete:function(){var t=this;return(0,ut.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.loading=!0,e.prev=1,e.next=4,t.request("entities.delete",[t.entity.id]);case 4:return e.prev=4,t.loading=!1,e.finish(4);case 7:case"end":return e.stop()}}),e,null,[[1,,4,7]])})))()},onIconEdit:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i,r,o,s,u,a;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,i={url:null,class:null},null!==t&&void 0!==t&&t.length?t.startsWith("http")?i.url=t:i.class=t:(i.url=null===(r=Rt[e.entity.type]||{})||void 0===r||null===(o=r.icon)||void 0===o?void 0:o.url,i.class=null===(s=Rt[e.entity.type]||{})||void 0===s||null===(u=s.icon)||void 0===u?void 0:u["class"]),a={},a[e.entity.id]={icon:i},n.next=8,e.request("entities.set_meta",a);case 8:return n.prev=8,e.loading=!1,e.editIcon=!1,n.finish(8);case 12:case"end":return n.stop()}}),n,null,[[1,,8,12]])})))()},onIconColorEdit:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i,r,o;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,r=(null===(i=e.entity.meta)||void 0===i?void 0:i.icon)||{},r.color=t?t.target.value:null,o={},o[e.entity.id]={icon:r},n.next=8,e.request("entities.set_meta",o);case 8:return n.prev=8,e.loading=!1,e.editIcon=!1,n.finish(8);case 12:case"end":return n.stop()}}),n,null,[[1,,8,12]])})))()}}};const Lt=(0,ht.Z)(Nt,[["render",st],["__scopeId","data-v-628ff73f"]]);var $t=Lt},6382:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return _}});n(7941);var i=n(6252),r=n(3577),o=n(9963),s={class:"entities-selectors-container"},u={class:"selector"},a={key:1,class:"selector"};function l(t,e,n,l,c,d){var f,p=(0,i.up)("DropdownItem"),v=(0,i.up)("Dropdown");return(0,i.wg)(),(0,i.iD)("div",s,[(0,i._)("div",u,[(0,i.Wm)(v,{title:"Group by","icon-class":"fas fa-eye",ref:"groupingSelector"},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.visibleGroupings,(function(t){var e;return(0,i.wg)(),(0,i.j4)(p,{key:t,text:d.prettifyGroupingName(t),"item-class":{selected:(null===(e=n.value)||void 0===e?void 0:e.grouping)===t},onClick:function(e){return d.onGroupingChanged(t)}},null,8,["text","item-class","onClick"])})),128))]})),_:1},512)]),null!==(f=n.value)&&void 0!==f&&f.grouping?((0,i.wg)(),(0,i.iD)("div",{key:0,class:(0,r.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,i.Wm)(v,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.sortedGroups,(function(t){return(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,o.iM)((function(e){return 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",a,[(0,i.wy)((0,i._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":e[0]||(e[0]=function(t){return c.searchTerm=t})},null,512),[[o.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(4648),d=(n(7327),n(1539),n(2707),n(2479),n(8309),n(9714),n(7852),n(7042),n(6813)),f=n(5771),p=n(522),v=n(7369),m=n(1359),y={name:"Selector",emits:["input"],mixins:[d.Z],components:{Dropdown:f.Z,DropdownItem:p.Z},props:{entityGroups:{type:Object,required:!0},value:{type:Object,required:!0}},data:function(){return{selectedGroups:{},searchTerm:""}},computed:{visibleGroupings:function(){return Object.keys(this.entityGroups).filter((function(t){return"id"!==t}))},sortedGroups:function(){var t;return Object.keys(this.entityGroups[null===(t=this.value)||void 0===t?void 0:t.grouping]||{}).sort()},typesMeta:function(){return v},isGroupFilterActive:function(){return Object.keys(this.selectedGroups).length!==this.sortedGroups.length},selectedEntities:function(){var t=this;return Object.values(this.entityGroups.id).filter((function(e){var n,i;if(!t.selectedGroups[e[null===(n=t.value)||void 0===n?void 0:n.grouping]])return!1;if(null!==(i=t.searchTerm)&&void 0!==i&&i.length){var r=t.searchTerm.toLowerCase();return(e.name||"").toLowerCase().indexOf(r)>=0||(e.plugin||"").toLowerCase().indexOf(r)>=0||(e.external_id||"").toLowerCase().indexOf(r)>=0||(e.id||0).toString()==r}return!0})).reduce((function(t,e){return t[e.id]=e,t}),{})}},methods:{prettifyGroupingName:function(t){return t?(t=this.prettify(t),t.endsWith("y")&&(t=t.slice(0,t.length-1)+"ie"),t+="s",t):""},iconForGroup:function(t){if("plugin"===this.value.grouping&&m[t]){var e,n,i=m[t];return{"icon-class":null!==(e=i["class"])&&void 0!==e&&e.length||null===(n=i.imgUrl)||void 0===n||!n.length?i["class"]:"fas fa-gears","icon-url":i.imgUrl}}return{}},synchronizeSelectedEntities:function(){var t=(0,c.Z)({},this.value);t.selectedEntities=this.selectedEntities,this.$emit("input",t)},updateSearchTerm:function(){var t=(0,c.Z)({},this.value);t.searchTerm=this.searchTerm,t.selectedEntities=this.selectedEntities,this.$emit("input",t)},refreshGroupFilter:function(t){var e;if(t)this.selectedGroups=Object.keys(this.entityGroups[null===(e=this.value)||void 0===e?void 0:e.grouping]||{}).reduce((function(t,e){return t[e]=!0,t}),{});else for(var n=0,i=Object.keys(this.entityGroups[null===(r=this.value)||void 0===r?void 0:r.grouping]);n1?arguments[1]:void 0,i=e.length,r=void 0===n?i:v(s(n),i),o=u(t);return f?f(e,o,r):p(e,r-o.length,r)===o}})},6755:function(t,e,n){"use strict";var i=n(2109),r=n(1702),o=n(1236).f,s=n(7466),u=n(1340),a=n(3929),l=n(4488),c=n(4964),d=n(1913),f=r("".startsWith),p=r("".slice),v=Math.min,m=c("startsWith"),y=!d&&!m&&!!function(){var t=o(String.prototype,"startsWith");return t&&!t.writable}();i({target:"String",proto:!0,forced:!y&&!m},{startsWith:function(t){var e=u(l(this));a(t);var n=s(v(arguments.length>1?arguments[1]:void 0,e.length)),i=u(t);return f?f(e,i,n):p(e,n,n+i.length)===i}})},7503:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return d}});var i=n(6252),r=n(3577);function o(t,e,n,o,s,u){var a;return(0,i.wg)(),(0,i.iD)("div",{class:(0,r.C_)(["row item entity-container",{blink:s.justUpdated}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(s.component),{value:t.value,loading:t.loading,error:t.error||0==(null===(a=t.value)||void 0===a?void 0:a.reachable),onInput:e[0]||(e[0]=function(e){return t.$emit("input",e)}),onLoading:e[1]||(e[1]=function(e){return t.$emit("loading",e)})},null,8,["value","loading","error"]))],2)}var s=n(4648),u=(n(9600),n(1249),n(4916),n(3123),n(7042),n(1539),n(8783),n(3948),n(7909)),a={name:"Entity",mixins:[u["default"]],emits:["input","loading"],data:function(){return{component:null,justUpdated:!1}},methods:{valuesEqual:function(t,e){t=(0,s.Z)({},t),e=(0,s.Z)({},e);for(var n=0,i=["updated_at","data"];n0})).sort((function(t,e){return t[0].localeCompare(e[0])})).map((function(e){var n=(0,D.Z)(e,2),i=n[0],r=n[1];return{name:i,entities:r.filter((function(e){return e.id in t.selector.selectedEntities}))}}))}},methods:{groupEntities:function(t){return Object.values(this.entities).reduce((function(e,n){var i=e[n[t]]||{};return i[n.id]=n,e[n[t]]=Object.values(i).sort((function(t,e){return t.name.localeCompare(e.name)})),e}),{})},refresh:function(t){var e=this;return(0,I.Z)(regeneratorRuntime.mark((function n(){var i,r;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return i=(t?t.entities:e.entities)||{},r={},t&&(r.plugins=Object.keys(i.reduce((function(t,e){return t[e.plugin]=!0,t}),{}))),e.loadingEntities=Object.values(i).reduce((function(t,n){if(n.is_query_disabled||n.is_write_only)return t;var i=e,r=n.id;return e.entityTimeouts[r]&&clearTimeout(e.entityTimeouts[r]),e.entityTimeouts[r]=setTimeout((function(){i.loadingEntities[r]&&delete i.loadingEntities[r],i.entityTimeouts[r]&&delete i.entityTimeouts[r],i.errorEntities[r]=n,console.warn("Scan timeout for ".concat(n.name))}),1e3*e.entityScanTimeout),t[r]=!0,t}),{}),n.next=6,e.request("entities.scan",r);case 6:case"end":return n.stop()}}),n)})))()},sync:function(){var t=this;return(0,I.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.loading=!0,e.prev=1,e.next=4,t.request("entities.get");case 4:t.entities=e.sent.reduce((function(t,e){var n;return e.name=(null===e||void 0===e||null===(n=e.meta)||void 0===n?void 0:n.name_override)||e.name,e.category=B[e.type].name_plural,e.meta=(0,S.Z)((0,S.Z)({},B[e.type]||{}),e.meta||{}),t[e.id]=e,t}),{}),t.selector.selectedEntities=t.entityGroups.id;case 6:return e.prev=6,t.loading=!1,e.finish(6);case 9:case"end":return e.stop()}}),e,null,[[1,,6,9]])})))()},clearEntityTimeouts:function(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:function(t){t.category=B[t.type].name_plural,this.entities[t.id]=t,this.clearEntityTimeouts(t.id),this.loadingEntities[t.id]&&delete this.loadingEntities[t.id]},onEntityUpdate:function(t){var e,n,i,r,o,s,u,a,l,c,d,f=t.entity.id;if(null!=f){this.clearEntityTimeouts(f);var p=(0,S.Z)({},t.entity);null==(null===(e=t.entity)||void 0===e?void 0:e.state)&&(p.state=null===(n=this.entities[f])||void 0===n?void 0:n.state),null!==(i=p.meta)&&void 0!==i&&null!==(r=i.name_override)&&void 0!==r&&r.length?p.name=p.meta.name_override:null!==(o=this.entities[f])&&void 0!==o&&null!==(s=o.meta)&&void 0!==s&&null!==(u=s.name_override)&&void 0!==u&&u.length?p.name=this.entities[f].meta.name_override:p.name=(null===(a=t.entity)||void 0===a?void 0:a.name)||(null===(l=this.entities[f])||void 0===l?void 0:l.name),p.category=B[p.type].name_plural,p.meta=(0,S.Z)((0,S.Z)((0,S.Z)({},B[t.entity.type]||{}),(null===(c=this.entities[f])||void 0===c?void 0:c.meta)||{}),(null===(d=t.entity)||void 0===d?void 0:d.meta)||{}),this.entities[f]=p}},onEntityDelete:function(t){var e,n=null===(e=t.entity)||void 0===e?void 0:e.id;null!=n&&(n===this.modalEntityId&&(this.modalEntityId=null),this.entities[n]&&delete this.entities[n])},onEntityModal:function(t){t?(this.modalEntityId=t,this.modalVisible=!0):(this.modalEntityId=null,this.modalVisible=!1)}},mounted:function(){var t=this;return(0,I.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.subscribe(t.onEntityUpdate,"on-entity-update","platypush.message.event.entities.EntityUpdateEvent"),t.subscribe(t.onEntityDelete,"on-entity-delete","platypush.message.event.entities.EntityDeleteEvent"),e.next=4,t.sync();case 4:return e.next=6,t.refresh();case 6:case"end":return e.stop()}}),e)})))()}};const V=(0,M.Z)(F,[["render",x],["__scopeId","data-v-1b44ed5e"]]);var H=V},6243:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return $t}});n(8309),n(2526),n(1817);var i=n(6252),r=n(3577),o=function(t){return(0,i.dD)("data-v-628ff73f"),t=t(),(0,i.Cn)(),t},s=(0,i.Uk)(" Are you "),u=o((function(){return(0,i._)("b",null,"sure",-1)})),a=(0,i.Uk)(" that you want to delete this entity? "),l=o((function(){return(0,i._)("br",null,null,-1)})),c=o((function(){return(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."),f=o((function(){return(0,i._)("br",null,null,-1)})),p=o((function(){return(0,i._)("br",null,null,-1)})),v=(0,i.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),m={class:"table-row"},y={class:"title"},h=(0,i.Uk)(" Name "),g={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"},x=o((function(){return(0,i._)("i",{class:"fas fa-rotate-left"},null,-1)})),S=[x],I=o((function(){return(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=o((function(){return(0,i._)("div",{class:"title"}," Icon color ",-1)})),T={class:"value icon-color-picker"},j=["value"],Z=o((function(){return(0,i._)("i",{class:"fas fa-rotate-left"},null,-1)})),q=[Z],O={class:"table-row"},U=o((function(){return(0,i._)("div",{class:"title"},"Plugin",-1)})),M=["textContent"],R={class:"table-row"},N=o((function(){return(0,i._)("div",{class:"title"},"Internal ID",-1)})),L=["textContent"],$={key:0,class:"table-row"},W=o((function(){return(0,i._)("div",{class:"title"},"External ID",-1)})),z=["textContent"],B={key:1,class:"table-row"},F=o((function(){return(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=o((function(){return(0,i._)("div",{class:"title"},"Created at",-1)})),Q=["textContent"],J={key:3,class:"table-row"},X=o((function(){return(0,i._)("div",{class:"title"},"Updated at",-1)})),tt=["textContent"],et={class:"table-row delete-entity-container"},nt=o((function(){return(0,i._)("div",{class:"title"},"Delete Entity",-1)})),it={class:"value"},rt=o((function(){return(0,i._)("i",{class:"fas fa-trash"},null,-1)})),ot=[rt];function st(t,e,n,o,x,Z){var rt=(0,i.up)("ConfirmDialog"),st=(0,i.up)("EditButton"),ut=(0,i.up)("NameEditor"),at=(0,i.up)("Icon"),lt=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(lt,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((function(){var o,lt,ct,dt,ft,pt,vt,mt;return[(0,i.Wm)(rt,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:Z.onDelete},{default:(0,i.w5)((function(){return[s,u,a,l,c,d,f,p,v]})),_:1},8,["onInput"]),(0,i._)("div",m,[(0,i._)("div",y,[h,x.editName?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(st,{key:0,onClick:e[0]||(e[0]=function(t){return x.editName=!0})}))]),(0,i._)("div",g,[x.editName?((0,i.wg)(),(0,i.j4)(ut,{key:0,value:n.entity.name,onInput:Z.onRename,onCancel:e[1]||(e[1]=function(t){return x.editName=!1}),disabled:x.loading},null,8,["value","onInput","disabled"])):((0,i.wg)(),(0,i.iD)("span",{key:1,textContent:(0,r.zw)(n.entity.name)},null,8,_))])]),(0,i._)("div",w,[(0,i._)("div",b,[k,x.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(st,{key:0,onClick:e[2]||(e[2]=function(t){return x.editIcon=!0})}))]),(0,i._)("div",E,[x.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(ut,{value:(null===(o=n.entity.meta)||void 0===o||null===(lt=o.icon)||void 0===lt?void 0:lt.class)||(null===(ct=n.entity.meta)||void 0===ct||null===(dt=ct.icon)||void 0===dt?void 0:dt.url),onInput:Z.onIconEdit,onCancel:e[5]||(e[5]=function(t){return x.editIcon=!1}),disabled:x.loading},{default:(0,i.w5)((function(){return[(0,i._)("button",{type:"button",title:"Reset",onClick:e[3]||(e[3]=function(t){return Z.onIconEdit(null)}),onTouch:e[4]||(e[4]=function(t){return Z.onIconEdit(null)})},S,32)]})),_:1},8,["value","onInput","disabled"]),I])):((0,i.wg)(),(0,i.j4)(at,(0,r.vs)((0,i.dG)({key:1},(null===(ft=n.entity)||void 0===ft||null===(pt=ft.meta)||void 0===pt?void 0:pt.icon)||{})),null,16))])]),(0,i._)("div",D,[G,(0,i._)("div",T,[(0,i._)("input",{type:"color",value:null===(vt=n.entity.meta)||void 0===vt||null===(mt=vt.icon)||void 0===mt?void 0:mt.color,onChange:e[6]||(e[6]=function(){return Z.onIconColorEdit&&Z.onIconColorEdit.apply(Z,arguments)})},null,40,j),(0,i._)("button",{type:"button",title:"Reset",onClick:e[7]||(e[7]=function(t){return Z.onIconColorEdit(null)}),onTouch:e[8]||(e[8]=function(t){return Z.onIconColorEdit(null)})},q,32)])]),(0,i._)("div",O,[U,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.plugin)},null,8,M)]),(0,i._)("div",R,[N,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.id)},null,8,L)]),n.entity.external_id?((0,i.wg)(),(0,i.iD)("div",$,[W,(0,i._)("div",{class:"value",textContent:(0,r.zw)(n.entity.external_id)},null,8,z)])):(0,i.kq)("",!0),n.entity.description?((0,i.wg)(),(0,i.iD)("div",B,[F,(0,i._)("div",{class:"value",textContent:(0,r.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||{},(function(e,n){return(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,r.zw)(t.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,r.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,r.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,r.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]=function(e){return t.$refs.deleteConfirmDiag.show()})},ot)])])]})),_:1},8,["visible","title"])}var ut=n(8534),at=(n(6755),n(5666),n(8453)),lt=n(1478),ct=n(9963),dt=function(t){return(0,i.dD)("data-v-d543b3e4"),t=t(),(0,i.Cn)(),t},ft={class:"dialog-content"},pt=dt((function(){return(0,i._)("i",{class:"fas fa-check"},null,-1)})),vt=dt((function(){return(0,i._)("i",{class:"fas fa-xmark"},null,-1)}));function mt(t,e,n,o,s,u){var a=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(a,{ref:"modal",title:n.title},{default:(0,i.w5)((function(){return[(0,i._)("div",ft,[(0,i.WI)(t.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:e[4]||(e[4]=(0,ct.iM)((function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)}),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:e[0]||(e[0]=function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)}),onTouch:e[1]||(e[1]=function(){return u.onConfirm&&u.onConfirm.apply(u,arguments)})},[pt,(0,i.Uk)(" "+(0,r.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:e[2]||(e[2]=function(){return u.close&&u.close.apply(u,arguments)}),onTouch:e[3]||(e[3]=function(){return u.close&&u.close.apply(u,arguments)})},[vt,(0,i.Uk)(" "+(0,r.zw)(n.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:function(){this.$emit("input"),this.close()},show:function(){this.$refs.modal.show()},close:function(){this.$refs.modal.hide()}}},ht=n(3744);const gt=(0,ht.Z)(yt,[["render",mt],["__scopeId","data-v-d543b3e4"]]);var _t=gt,wt=function(t){return(0,i.dD)("data-v-3344f2bf"),t=t(),(0,i.Cn)(),t},bt=wt((function(){return(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1)})),kt=[bt];function Et(t,e,n,r,o,s){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:e[0]||(e[0]=function(t){return s.proxy(t)}),onTouch:e[1]||(e[1]=function(t){return s.proxy(t)}),onInput:e[2]||(e[2]=function(t){return s.proxy(t)})},kt,32)}var Ct={emits:["input","click","touch"],methods:{proxy:function(t){this.$emit(t.type,t)}}};const xt=(0,ht.Z)(Ct,[["render",Et],["__scopeId","data-v-3344f2bf"]]);var St=xt,It=function(t){return(0,i.dD)("data-v-1405d90f"),t=t(),(0,i.Cn)(),t},Dt=["disabled"],Gt=It((function(){return(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1)})),Tt=It((function(){return(0,i._)("i",{class:"fas fa-ban"},null,-1)})),jt=[Tt];function Zt(t,e,n,r,o,s){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:e[3]||(e[3]=(0,ct.iM)((function(){return s.submit&&s.submit.apply(s,arguments)}),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":e[0]||(e[0]=function(t){return o.text=t}),disabled:n.disabled},null,8,Dt),[[ct.nr,o.text]]),Gt,(0,i._)("button",{class:"cancel",onClick:e[1]||(e[1]=function(e){return t.$emit("cancel")}),onTouch:e[2]||(e[2]=function(e){return t.$emit("cancel")})},jt,32),(0,i.WI)(t.$slots,"default",{},void 0,!0)],32)}var qt={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data:function(){return{text:null}},methods:{proxy:function(t){this.$emit(t.type,t)},submit:function(){return this.$emit("input",this.text),!1}},mounted:function(){this.text=this.value}};const Ot=(0,ht.Z)(qt,[["render",Zt],["__scopeId","data-v-1405d90f"]]);var Ut=Ot,Mt=n(6813),Rt=n(7369),Nt={name:"Entity",components:{Modal:at.Z,EditButton:St,NameEditor:Ut,Icon:lt.Z,ConfirmDialog:_t},mixins:[Mt.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1}},data:function(){return{loading:!1,editName:!1,editIcon:!1}},methods:{onRename:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,i={},i[e.entity.id]=t,n.next=6,e.request("entities.rename",i);case 6:return n.prev=6,e.loading=!1,e.editName=!1,n.finish(6);case 10:case"end":return n.stop()}}),n,null,[[1,,6,10]])})))()},onDelete:function(){var t=this;return(0,ut.Z)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return t.loading=!0,e.prev=1,e.next=4,t.request("entities.delete",[t.entity.id]);case 4:return e.prev=4,t.loading=!1,e.finish(4);case 7:case"end":return e.stop()}}),e,null,[[1,,4,7]])})))()},onIconEdit:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i,r,o,s,u,a;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,i={url:null,class:null},null!==t&&void 0!==t&&t.length?t.startsWith("http")?i.url=t:i.class=t:(i.url=null===(r=Rt[e.entity.type]||{})||void 0===r||null===(o=r.icon)||void 0===o?void 0:o.url,i.class=null===(s=Rt[e.entity.type]||{})||void 0===s||null===(u=s.icon)||void 0===u?void 0:u["class"]),a={},a[e.entity.id]={icon:i},n.next=8,e.request("entities.set_meta",a);case 8:return n.prev=8,e.loading=!1,e.editIcon=!1,n.finish(8);case 12:case"end":return n.stop()}}),n,null,[[1,,8,12]])})))()},onIconColorEdit:function(t){var e=this;return(0,ut.Z)(regeneratorRuntime.mark((function n(){var i,r,o;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return e.loading=!0,n.prev=1,r=(null===(i=e.entity.meta)||void 0===i?void 0:i.icon)||{},r.color=t?t.target.value:null,o={},o[e.entity.id]={icon:r},n.next=8,e.request("entities.set_meta",o);case 8:return n.prev=8,e.loading=!1,e.editIcon=!1,n.finish(8);case 12:case"end":return n.stop()}}),n,null,[[1,,8,12]])})))()}}};const Lt=(0,ht.Z)(Nt,[["render",st],["__scopeId","data-v-628ff73f"]]);var $t=Lt},6518:function(t,e,n){"use strict";n.r(e),n.d(e,{default:function(){return _}});n(7941);var i=n(6252),r=n(3577),o=n(9963),s={class:"entities-selectors-container"},u={class:"selector"},a={key:1,class:"selector"};function l(t,e,n,l,c,d){var f,p=(0,i.up)("DropdownItem"),v=(0,i.up)("Dropdown");return(0,i.wg)(),(0,i.iD)("div",s,[(0,i._)("div",u,[(0,i.Wm)(v,{title:"Group by","icon-class":"fas fa-object-ungroup",ref:"groupingSelector"},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.visibleGroupings,(function(t){var e;return(0,i.wg)(),(0,i.j4)(p,{key:t,text:d.prettifyGroupingName(t),"item-class":{selected:(null===(e=n.value)||void 0===e?void 0:e.grouping)===t},onClick:function(e){return d.onGroupingChanged(t)}},null,8,["text","item-class","onClick"])})),128))]})),_:1},512)]),null!==(f=n.value)&&void 0!==f&&f.grouping?((0,i.wg)(),(0,i.iD)("div",{key:0,class:(0,r.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,i.Wm)(v,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,i.w5)((function(){return[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.sortedGroups,(function(t){return(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,o.iM)((function(e){return 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",a,[(0,i.wy)((0,i._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":e[0]||(e[0]=function(t){return c.searchTerm=t})},null,512),[[o.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(4648),d=(n(7327),n(1539),n(2707),n(2479),n(8309),n(9714),n(7852),n(7042),n(6813)),f=n(5771),p=n(522),v=n(7369),m=n(1359),y={name:"Selector",emits:["input"],mixins:[d.Z],components:{Dropdown:f.Z,DropdownItem:p.Z},props:{entityGroups:{type:Object,required:!0},value:{type:Object,required:!0}},data:function(){return{selectedGroups:{},searchTerm:""}},computed:{visibleGroupings:function(){return Object.keys(this.entityGroups).filter((function(t){return"id"!==t}))},sortedGroups:function(){var t;return Object.keys(this.entityGroups[null===(t=this.value)||void 0===t?void 0:t.grouping]||{}).sort()},typesMeta:function(){return v},isGroupFilterActive:function(){return Object.keys(this.selectedGroups).length!==this.sortedGroups.length},selectedEntities:function(){var t=this;return Object.values(this.entityGroups.id).filter((function(e){var n,i;if(!t.selectedGroups[e[null===(n=t.value)||void 0===n?void 0:n.grouping]])return!1;if(null!==(i=t.searchTerm)&&void 0!==i&&i.length){var r=t.searchTerm.toLowerCase();return(e.name||"").toLowerCase().indexOf(r)>=0||(e.plugin||"").toLowerCase().indexOf(r)>=0||(e.external_id||"").toLowerCase().indexOf(r)>=0||(e.id||0).toString()==r}return!0})).reduce((function(t,e){return t[e.id]=e,t}),{})}},methods:{prettifyGroupingName:function(t){return t?(t=this.prettify(t),t.endsWith("y")&&(t=t.slice(0,t.length-1)+"ie"),t+="s",t):""},iconForGroup:function(t){if("plugin"===this.value.grouping&&m[t]){var e,n,i=m[t];return{"icon-class":null!==(e=i["class"])&&void 0!==e&&e.length||null===(n=i.imgUrl)||void 0===n||!n.length?i["class"]:"fas fa-gears","icon-url":i.imgUrl}}return{}},synchronizeSelectedEntities:function(){var t=(0,c.Z)({},this.value);t.selectedEntities=this.selectedEntities,this.$emit("input",t)},updateSearchTerm:function(){var t=(0,c.Z)({},this.value);t.searchTerm=this.searchTerm,t.selectedEntities=this.selectedEntities,this.$emit("input",t)},refreshGroupFilter:function(t){var e;if(t)this.selectedGroups=Object.keys(this.entityGroups[null===(e=this.value)||void 0===e?void 0:e.grouping]||{}).reduce((function(t,e){return t[e]=!0,t}),{});else for(var n=0,i=Object.keys(this.entityGroups[null===(r=this.value)||void 0===r?void 0:r.grouping]);n 1 ? arguments[1] : undefined;\n var len = that.length;\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = toString(searchString);\n return un$EndsWith\n ? un$EndsWith(that, search, end)\n : slice(that, end - search.length, end) === search;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es-x/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","\n
\n \n
\n\n\n\n\n\n","import { render } from \"./Entity.vue?vue&type=template&id=2cf6329b&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=2cf6329b&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-2cf6329b\"]])\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=1b44ed5e&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=1b44ed5e&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-1b44ed5e\"]])\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=7babaacc&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=7babaacc&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-7babaacc\"]])\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\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./CurrentSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./Dimmer\": [\n\t\t5060,\n\t\t9,\n\t\t7246,\n\t\t6869,\n\t\t5060\n\t],\n\t\"./Dimmer.vue\": [\n\t\t5060,\n\t\t9,\n\t\t7246,\n\t\t6869,\n\t\t5060\n\t],\n\t\"./EnergySensor\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./EnergySensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./Entity\": [\n\t\t7503,\n\t\t9\n\t],\n\t\"./Entity.vue\": [\n\t\t7503,\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\"./EnumSensor\": [\n\t\t3390,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t3390\n\t],\n\t\"./EnumSensor.vue\": [\n\t\t3390,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t3390\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\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./HumiditySensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./Index\": [\n\t\t1040,\n\t\t9\n\t],\n\t\"./Index.vue\": [\n\t\t1040,\n\t\t9\n\t],\n\t\"./Light\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t7246,\n\t\t6869,\n\t\t1155\n\t],\n\t\"./Light.vue\": [\n\t\t1155,\n\t\t9,\n\t\t3490,\n\t\t7246,\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\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./NumericSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./PowerSensor\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./PowerSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./RawSensor\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./RawSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./Selector\": [\n\t\t6518,\n\t\t9\n\t],\n\t\"./Selector.vue\": [\n\t\t6518,\n\t\t9\n\t],\n\t\"./Sensor\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./Sensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\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\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./TemperatureSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./VoltageSensor\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\n\t],\n\t\"./VoltageSensor.vue\": [\n\t\t6856,\n\t\t9,\n\t\t6869,\n\t\t7009,\n\t\t6856\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","justUpdated","component","value","loading","error","reachable","$emit","$event","name","mixins","EntityMixin","emits","data","methods","valuesEqual","a","b","key","objectsEqual","mounted","type","split","map","t","toUpperCase","join","$watch","newValue","oldValue","self","setTimeout","__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","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","localeCompare","attr","values","args","plugins","plugin","is_query_disabled","is_write_only","clearTimeout","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","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/2909.c8d42c97.js b/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js
similarity index 68%
rename from platypush/backend/http/webapp/dist/static/js/2909.c8d42c97.js
rename to platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js
index d69c10f26d..240054032f 100644
--- a/platypush/backend/http/webapp/dist/static/js/2909.c8d42c97.js
+++ b/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js
@@ -1,2 +1,2 @@
-(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2909],{7503:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var i=n(6252),s=n(3577);function a(e,t,n,a,o,l){return(0,i.wg)(),(0,i.iD)("div",{class:(0,s.C_)(["row item entity-container",{blink:o.justUpdated}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(o.component),{value:e.value,loading:e.loading,error:e.error||0==e.value?.reachable,onInput:t[0]||(t[0]=t=>e.$emit("input",t)),onLoading:t[1]||(t[1]=t=>e.$emit("loading",t))},null,8,["value","loading","error"]))],2)}var o=n(7909),l={name:"Entity",mixins:[o["default"]],emits:["input","loading"],data(){return{component:null,justUpdated:!1}},methods:{valuesEqual(e,t){e={...e},t={...t};for(const n of["updated_at","data"])delete e[n],delete t[n];return this.objectsEqual(e,t)}},mounted(){if("Entity"!==this.type){const e=this.type.split("_").map((e=>e[0].toUpperCase()+e.slice(1))).join("");this.$watch((()=>this.value),((e,t)=>{if(this.valuesEqual(t,e))return!1;this.justUpdated=!0;const n=this;setTimeout((()=>n.justUpdated=!1),1e3)})),this.component=(0,i.RC)((()=>n(7243)(`./${e}`)))}}},r=n(3744);const u=(0,r.Z)(l,[["render",a],["__scopeId","data-v-2cf6329b"]]);var c=u},7909:function(e,t,n){"use strict";n.r(t),n.d(t,{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 e=this.value.type||"";return e.split("_").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("")}}};const a=s;var o=a},7938:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return W}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-2b1144ed"),e=e(),(0,i.Cn)(),e),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))),E=[b],k={class:"body"},C=["onClick"];function S(e,t,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:t[0]||(t[0]=e=>u.selector=e)},null,8,["entity-groups","value"])]),(0,i._)("div",r,[(0,i._)("button",{title:"Refresh",onClick:t[1]||(t[1]=e=>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:t[2]||(t[2]=e=>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,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"group fade-in",key:e.name},[(0,i._)("div",y,[(0,i._)("div",h,[(0,i._)("span",g,["category"===u.selector.grouping&&b.entitiesMeta[b.typesByCategory[e.name]]?((0,i.wg)(),(0,i.j4)(G,(0,s.vs)((0,i.dG)({key:0},b.entitiesMeta[b.typesByCategory[e.name]].icon||{})),null,16)):"plugin"===u.selector.grouping&&b.pluginIcons[e.name]?((0,i.wg)(),(0,i.j4)(G,{key:1,class:(0,s.C_)(b.pluginIcons[e.name]?.class),url:b.pluginIcons[e.name]?.imgUrl},null,8,["class","url"])):(0,i.kq)("",!0)]),(0,i._)("span",f,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.name)},null,8,v)]),(0,i._)("span",_,[(0,i._)("button",{title:"Refresh",onClick:t=>b.refresh(e)},E,8,w)])]),(0,i._)("div",k,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.entities,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"entity-frame",onClick:t=>b.onEntityModal(e.id),key:e.id},[(0,i.Wm)(T,{value:e,onInput:b.onEntityInput,error:!!u.errorEntities[e.id],loading:!!u.loadingEntities[e.id],onLoading:t=>u.loadingEntities[e.id]=t},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(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("div",G,[(0,i._)("div",T,[(0,i.WI)(e.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},O=n(3744);const U=(0,O.Z)(q,[["render",j],["__scopeId","data-v-6fec32b5"]]);var $=U,M=n(7503),N=n(6382),L=n(6243),Z=n(1359),z=n(7369),B={name:"Entities",components:{Loading:x.Z,Icon:D.Z,Entity:M["default"],Selector:N["default"],NoItems:$,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(((e,[t,n])=>(e[n.name_plural]=t,e)),{})},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((e,[t,n])=>(e[t]=n[0],e)),{}),category:this.groupEntities("category"),plugin:this.groupEntities("plugin")}},displayGroups(){return Object.entries(this.entityGroups[this.selector.grouping]).filter((e=>e[1].filter((e=>!!this.selector.selectedEntities[e.id])).length>0)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((([e,t])=>({name:e,entities:t.filter((e=>e.id in this.selector.selectedEntities))})))}},methods:{groupEntities(e){return Object.values(this.entities).reduce(((t,n)=>{const i=t[n[e]]||{};return i[n.id]=n,t[n[e]]=Object.values(i).sort(((e,t)=>e.name.localeCompare(t.name))),t}),{})},async refresh(e){const t=(e?e.entities:this.entities)||{},n={};e&&(n.plugins=Object.keys(t.reduce(((e,t)=>(e[t.plugin]=!0,e)),{}))),this.loadingEntities=Object.values(t).reduce(((e,t)=>{if(t.is_query_disabled||t.is_write_only)return e;const n=this,i=t.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]=t,console.warn(`Scan timeout for ${t.name}`)}),1e3*this.entityScanTimeout),e[i]=!0,e}),{}),await this.request("entities.scan",n)},async sync(){this.loading=!0;try{this.entities=(await this.request("entities.get")).reduce(((e,t)=>(t.name=t?.meta?.name_override||t.name,t.category=z[t.type].name_plural,t.meta={...z[t.type]||{},...t.meta||{}},e[t.id]=t,e)),{}),this.selector.selectedEntities=this.entityGroups.id}finally{this.loading=!1}},clearEntityTimeouts(e){this.errorEntities[e]&&delete this.errorEntities[e],this.loadingEntities[e]&&delete this.loadingEntities[e],this.entityTimeouts[e]&&(clearTimeout(this.entityTimeouts[e]),delete this.entityTimeouts[e])},onEntityInput(e){e.category=z[e.type].name_plural,this.entities[e.id]=e,this.clearEntityTimeouts(e.id),this.loadingEntities[e.id]&&delete this.loadingEntities[e.id]},onEntityUpdate(e){const t=e.entity.id;if(null==t)return;this.clearEntityTimeouts(t);const n={...e.entity};null==e.entity?.state&&(n.state=this.entities[t]?.state),n.meta?.name_override?.length?n.name=n.meta.name_override:this.entities[t]?.meta?.name_override?.length?n.name=this.entities[t].meta.name_override:n.name=e.entity?.name||this.entities[t]?.name,n.category=z[n.type].name_plural,n.meta={...z[e.entity.type]||{},...this.entities[t]?.meta||{},...e.entity?.meta||{}},this.entities[t]=n},onEntityDelete(e){const t=e.entity?.id;null!=t&&(t===this.modalEntityId&&(this.modalEntityId=null),this.entities[t]&&delete this.entities[t])},onEntityModal(e){e?(this.modalEntityId=e,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,O.Z)(B,[["render",S],["__scopeId","data-v-2b1144ed"]]);var W=F},6243:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ze}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-628ff73f"),e=e(),(0,i.Cn)(),e),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"},E=(0,i.Uk)(" Icon "),k={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"],q=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),O=[q],U={class:"table-row"},$=a((()=>(0,i._)("div",{class:"title"},"Plugin",-1))),M=["textContent"],N={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))),ee=["textContent"],te={class:"table-row delete-entity-container"},ne=a((()=>(0,i._)("div",{class:"title"},"Delete Entity",-1))),ie={class:"value"},se=a((()=>(0,i._)("i",{class:"fas fa-trash"},null,-1))),ae=[se];function oe(e,t,n,a,S,q){const se=(0,i.up)("ConfirmDialog"),oe=(0,i.up)("EditButton"),le=(0,i.up)("NameEditor"),re=(0,i.up)("Icon"),ue=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(ue,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((()=>[(0,i.Wm)(se,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:q.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)(oe,{key:0,onClick:t[0]||(t[0]=e=>S.editName=!0)}))]),(0,i._)("div",v,[S.editName?((0,i.wg)(),(0,i.j4)(le,{key:0,value:n.entity.name,onInput:q.onRename,onCancel:t[1]||(t[1]=e=>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,[E,S.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(oe,{key:0,onClick:t[2]||(t[2]=e=>S.editIcon=!0)}))]),(0,i._)("div",k,[S.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(le,{value:n.entity.meta?.icon?.class||n.entity.meta?.icon?.url,onInput:q.onIconEdit,onCancel:t[5]||(t[5]=e=>S.editIcon=!1),disabled:S.loading},{default:(0,i.w5)((()=>[(0,i._)("button",{type:"button",title:"Reset",onClick:t[3]||(t[3]=e=>q.onIconEdit(null)),onTouch:t[4]||(t[4]=e=>q.onIconEdit(null))},I,32)])),_:1},8,["value","onInput","disabled"]),x])):((0,i.wg)(),(0,i.j4)(re,(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:t[6]||(t[6]=(...e)=>q.onIconColorEdit&&q.onIconColorEdit(...e))},null,40,j),(0,i._)("button",{type:"button",title:"Reset",onClick:t[7]||(t[7]=e=>q.onIconColorEdit(null)),onTouch:t[8]||(t[8]=e=>q.onIconColorEdit(null))},O,32)])]),(0,i._)("div",U,[$,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.plugin)},null,8,M)]),(0,i._)("div",N,[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||{},((t,n)=>((0,i.wg)(),(0,i.iD)("div",{key:n},[null!=t?((0,i.wg)(),(0,i.iD)("div",H,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,s.zw)(""+t)},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)(e.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)(e.formatDateTime(n.entity.updated_at))},null,8,ee)])):(0,i.kq)("",!0),(0,i._)("div",te,[ne,(0,i._)("div",ie,[(0,i._)("button",{onClick:t[9]||(t[9]=t=>e.$refs.deleteConfirmDiag.show())},ae)])])])),_:1},8,["visible","title"])}var le=n(8453),re=n(1478),ue=n(9963);const ce=e=>((0,i.dD)("data-v-d543b3e4"),e=e(),(0,i.Cn)(),e),de={class:"dialog-content"},pe=ce((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),me=ce((()=>(0,i._)("i",{class:"fas fa-xmark"},null,-1)));function ye(e,t,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",de,[(0,i.WI)(e.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:t[4]||(t[4]=(0,ue.iM)(((...e)=>l.onConfirm&&l.onConfirm(...e)),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:t[0]||(t[0]=(...e)=>l.onConfirm&&l.onConfirm(...e)),onTouch:t[1]||(t[1]=(...e)=>l.onConfirm&&l.onConfirm(...e))},[pe,(0,i.Uk)(" "+(0,s.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:t[2]||(t[2]=(...e)=>l.close&&l.close(...e)),onTouch:t[3]||(t[3]=(...e)=>l.close&&l.close(...e))},[me,(0,i.Uk)(" "+(0,s.zw)(n.cancelText),1)],32)],32)])),_:3},8,["title"])}var he={emits:["input","click","touch"],components:{Modal:le.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()}}},ge=n(3744);const fe=(0,ge.Z)(he,[["render",ye],["__scopeId","data-v-d543b3e4"]]);var ve=fe;const _e=e=>((0,i.dD)("data-v-3344f2bf"),e=e(),(0,i.Cn)(),e),we=_e((()=>(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1))),be=[we];function Ee(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:t[0]||(t[0]=e=>o.proxy(e)),onTouch:t[1]||(t[1]=e=>o.proxy(e)),onInput:t[2]||(t[2]=e=>o.proxy(e))},be,32)}var ke={emits:["input","click","touch"],methods:{proxy(e){this.$emit(e.type,e)}}};const Ce=(0,ge.Z)(ke,[["render",Ee],["__scopeId","data-v-3344f2bf"]]);var Se=Ce;const Ie=e=>((0,i.dD)("data-v-1405d90f"),e=e(),(0,i.Cn)(),e),xe=["disabled"],De=Ie((()=>(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1))),Ge=Ie((()=>(0,i._)("i",{class:"fas fa-ban"},null,-1))),Te=[Ge];function je(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:t[3]||(t[3]=(0,ue.iM)(((...e)=>o.submit&&o.submit(...e)),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>a.text=e),disabled:n.disabled},null,8,xe),[[ue.nr,a.text]]),De,(0,i._)("button",{class:"cancel",onClick:t[1]||(t[1]=t=>e.$emit("cancel")),onTouch:t[2]||(t[2]=t=>e.$emit("cancel"))},Te,32),(0,i.WI)(e.$slots,"default",{},void 0,!0)],32)}var qe={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data(){return{text:null}},methods:{proxy(e){this.$emit(e.type,e)},submit(){return this.$emit("input",this.text),!1}},mounted(){this.text=this.value}};const Oe=(0,ge.Z)(qe,[["render",je],["__scopeId","data-v-1405d90f"]]);var Ue=Oe,$e=n(6813),Me=n(7369),Ne={name:"Entity",components:{Modal:le.Z,EditButton:Se,NameEditor:Ue,Icon:re.Z,ConfirmDialog:ve},mixins:[$e.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(e){this.loading=!0;try{const t={};t[this.entity.id]=e,await this.request("entities.rename",t)}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(e){this.loading=!0;try{const t={url:null,class:null};e?.length?e.startsWith("http")?t.url=e:t.class=e:(t.url=(Me[this.entity.type]||{})?.icon?.url,t.class=(Me[this.entity.type]||{})?.icon?.["class"]);const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}},async onIconColorEdit(e){this.loading=!0;try{const t=this.entity.meta?.icon||{};t.color=e?e.target.value:null;const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}}}};const Le=(0,ge.Z)(Ne,[["render",oe],["__scopeId","data-v-628ff73f"]]);var Ze=Le},6382:function(e,t,n){"use strict";n.r(t),n.d(t,{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(e,t,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,(e=>((0,i.wg)(),(0,i.j4)(p,{key:e,text:d.prettifyGroupingName(e),"item-class":{selected:n.value?.grouping===e},onClick:t=>d.onGroupingChanged(e)},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,(e=>((0,i.wg)(),(0,i.j4)(p,(0,i.dG)({key:e,text:e},d.iconForGroup(e),{"item-class":{selected:!!c.selectedGroups[e]},onClick:(0,a.iM)((t=>d.toggleGroup(e)),["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":t[0]||(t[0]=e=>c.searchTerm=e)},null,512),[[a.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(6813),d=n(5771),p=n(522),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((e=>"id"!==e))},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((e=>{if(!this.selectedGroups[e[this.value?.grouping]])return!1;if(this.searchTerm?.length){const t=this.searchTerm.toLowerCase();return(e.name||"").toLowerCase().indexOf(t)>=0||(e.plugin||"").toLowerCase().indexOf(t)>=0||(e.external_id||"").toLowerCase().indexOf(t)>=0||(e.id||0).toString()==t}return!0})).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{prettifyGroupingName(e){return e?(e=this.prettify(e),e.endsWith("y")&&(e=e.slice(0,e.length-1)+"ie"),e+="s",e):""},iconForGroup(e){if("plugin"===this.value.grouping&&y[e]){const t=y[e];return{"icon-class":t["class"]?.length||!t.imgUrl?.length?t["class"]:"fas fa-gears","icon-url":t.imgUrl}}return{}},synchronizeSelectedEntities(){const e={...this.value};e.selectedEntities=this.selectedEntities,this.$emit("input",e)},updateSearchTerm(){const e={...this.value};e.searchTerm=this.searchTerm,e.selectedEntities=this.selectedEntities,this.$emit("input",e)},refreshGroupFilter(e){if(e)this.selectedGroups=Object.keys(this.entityGroups[this.value?.grouping]||{}).reduce(((e,t)=>(e[t]=!0,e)),{});else for(const t of Object.keys(this.entityGroups[this.value?.grouping]))null==this.selectedGroups[t]&&(this.selectedGroups[t]=!0);this.synchronizeSelectedEntities()},toggleGroup(e){this.selectedGroups[e]=!this.selectedGroups[e],this.synchronizeSelectedEntities()},onGroupingChanged(e){if(!this.entityGroups[e]||e===this.value?.grouping)return!1;const t={...this.value};t.grouping=e,this.$emit("input",t)}},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(e,t,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":[6856,9,6869,7009,6856],"./CurrentSensor.vue":[6856,9,6869,7009,6856],"./Dimmer":[6365,9,9974,6869,6365],"./Dimmer.vue":[6365,9,9974,6869,6365],"./EnergySensor":[6856,9,6869,7009,6856],"./EnergySensor.vue":[6856,9,6869,7009,6856],"./Entity":[7503,9],"./Entity.vue":[7503,9],"./EntityIcon":[3673,9,6869,3673],"./EntityIcon.vue":[3673,9,6869,3673],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSensor":[3390,9,6869,7009,3390],"./EnumSensor.vue":[3390,9,6869,7009,3390],"./EnumSwitch":[818,9,6869,818],"./EnumSwitch.vue":[818,9,6869,818],"./HumiditySensor":[6856,9,6869,7009,6856],"./HumiditySensor.vue":[6856,9,6869,7009,6856],"./Index":[7938,9],"./Index.vue":[7938,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":[6856,9,6869,7009,6856],"./NumericSensor.vue":[6856,9,6869,7009,6856],"./PowerSensor":[6856,9,6869,7009,6856],"./PowerSensor.vue":[6856,9,6869,7009,6856],"./RawSensor":[6856,9,6869,7009,6856],"./RawSensor.vue":[6856,9,6869,7009,6856],"./Selector":[6382,9],"./Selector.vue":[6382,9],"./Sensor":[6856,9,6869,7009,6856],"./Sensor.vue":[6856,9,6869,7009,6856],"./Switch":[4024,9,3490,6869,4024],"./Switch.vue":[4024,9,3490,6869,4024],"./TemperatureSensor":[6856,9,6869,7009,6856],"./TemperatureSensor.vue":[6856,9,6869,7009,6856],"./VoltageSensor":[6856,9,6869,7009,6856],"./VoltageSensor.vue":[6856,9,6869,7009,6856],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(e){if(!n.o(i,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],s=t[0];return Promise.all(t.slice(2).map(n.e)).then((function(){return n.t(s,16|t[1])}))}s.keys=function(){return Object.keys(i)},s.id=7243,e.exports=s},7369:function(e){"use strict";e.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"}},"enum_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}}}')}}]);
-//# sourceMappingURL=2909.c8d42c97.js.map
\ No newline at end of file
+(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[7503],{7503:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var i=n(6252),s=n(3577);function a(e,t,n,a,o,l){return(0,i.wg)(),(0,i.iD)("div",{class:(0,s.C_)(["row item entity-container",{blink:o.justUpdated}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(o.component),{value:e.value,loading:e.loading,error:e.error||0==e.value?.reachable,onInput:t[0]||(t[0]=t=>e.$emit("input",t)),onLoading:t[1]||(t[1]=t=>e.$emit("loading",t))},null,8,["value","loading","error"]))],2)}var o=n(7909),l={name:"Entity",mixins:[o["default"]],emits:["input","loading"],data(){return{component:null,justUpdated:!1}},methods:{valuesEqual(e,t){e={...e},t={...t};for(const n of["updated_at","data"])delete e[n],delete t[n];return this.objectsEqual(e,t)}},mounted(){if("Entity"!==this.type){const e=this.type.split("_").map((e=>e[0].toUpperCase()+e.slice(1))).join("");this.$watch((()=>this.value),((e,t)=>{if(this.valuesEqual(t,e))return!1;this.justUpdated=!0;const n=this;setTimeout((()=>n.justUpdated=!1),1e3)})),this.component=(0,i.RC)((()=>n(7243)(`./${e}`)))}}},r=n(3744);const u=(0,r.Z)(l,[["render",a],["__scopeId","data-v-2cf6329b"]]);var c=u},7909:function(e,t,n){"use strict";n.r(t),n.d(t,{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 e=this.value.type||"";return e.split("_").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("")}}};const a=s;var o=a},1040:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return W}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-1b44ed5e"),e=e(),(0,i.Cn)(),e),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))),E=[b],k={class:"body"},C=["onClick"];function S(e,t,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:t[0]||(t[0]=e=>u.selector=e)},null,8,["entity-groups","value"])]),(0,i._)("div",r,[(0,i._)("button",{title:"Refresh",onClick:t[1]||(t[1]=e=>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:t[2]||(t[2]=e=>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,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"group fade-in",key:e.name},[(0,i._)("div",y,[(0,i._)("div",h,[(0,i._)("span",g,["category"===u.selector.grouping&&b.entitiesMeta[b.typesByCategory[e.name]]?((0,i.wg)(),(0,i.j4)(G,(0,s.vs)((0,i.dG)({key:0},b.entitiesMeta[b.typesByCategory[e.name]].icon||{})),null,16)):"plugin"===u.selector.grouping&&b.pluginIcons[e.name]?((0,i.wg)(),(0,i.j4)(G,{key:1,class:(0,s.C_)(b.pluginIcons[e.name]?.class),url:b.pluginIcons[e.name]?.imgUrl},null,8,["class","url"])):(0,i.kq)("",!0)]),(0,i._)("span",f,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.name)},null,8,v)]),(0,i._)("span",_,[(0,i._)("button",{title:"Refresh",onClick:t=>b.refresh(e)},E,8,w)])]),(0,i._)("div",k,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.entities,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"entity-frame",onClick:t=>b.onEntityModal(e.id),key:e.id},[(0,i.Wm)(T,{value:e,onInput:b.onEntityInput,error:!!u.errorEntities[e.id],loading:!!u.loadingEntities[e.id],onLoading:t=>u.loadingEntities[e.id]=t},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(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("div",G,[(0,i._)("div",T,[(0,i.WI)(e.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},O=n(3744);const U=(0,O.Z)(q,[["render",j],["__scopeId","data-v-6fec32b5"]]);var $=U,M=n(7503),N=n(6518),L=n(6243),Z=n(1359),z=n(7369),B={name:"Entities",components:{Loading:x.Z,Icon:D.Z,Entity:M["default"],Selector:N["default"],NoItems:$,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(((e,[t,n])=>(e[n.name_plural]=t,e)),{})},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((e,[t,n])=>(e[t]=n[0],e)),{}),category:this.groupEntities("category"),plugin:this.groupEntities("plugin")}},displayGroups(){return Object.entries(this.entityGroups[this.selector.grouping]).filter((e=>e[1].filter((e=>!!this.selector.selectedEntities[e.id])).length>0)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((([e,t])=>({name:e,entities:t.filter((e=>e.id in this.selector.selectedEntities))})))}},methods:{groupEntities(e){return Object.values(this.entities).reduce(((t,n)=>{const i=t[n[e]]||{};return i[n.id]=n,t[n[e]]=Object.values(i).sort(((e,t)=>e.name.localeCompare(t.name))),t}),{})},async refresh(e){const t=(e?e.entities:this.entities)||{},n={};e&&(n.plugins=Object.keys(t.reduce(((e,t)=>(e[t.plugin]=!0,e)),{}))),this.loadingEntities=Object.values(t).reduce(((e,t)=>{if(t.is_query_disabled||t.is_write_only)return e;const n=this,i=t.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]=t,console.warn(`Scan timeout for ${t.name}`)}),1e3*this.entityScanTimeout),e[i]=!0,e}),{}),await this.request("entities.scan",n)},async sync(){this.loading=!0;try{this.entities=(await this.request("entities.get")).reduce(((e,t)=>(t.name=t?.meta?.name_override||t.name,t.category=z[t.type].name_plural,t.meta={...z[t.type]||{},...t.meta||{}},e[t.id]=t,e)),{}),this.selector.selectedEntities=this.entityGroups.id}finally{this.loading=!1}},clearEntityTimeouts(e){this.errorEntities[e]&&delete this.errorEntities[e],this.loadingEntities[e]&&delete this.loadingEntities[e],this.entityTimeouts[e]&&(clearTimeout(this.entityTimeouts[e]),delete this.entityTimeouts[e])},onEntityInput(e){e.category=z[e.type].name_plural,this.entities[e.id]=e,this.clearEntityTimeouts(e.id),this.loadingEntities[e.id]&&delete this.loadingEntities[e.id]},onEntityUpdate(e){const t=e.entity.id;if(null==t)return;this.clearEntityTimeouts(t);const n={...e.entity};null==e.entity?.state&&(n.state=this.entities[t]?.state),n.meta?.name_override?.length?n.name=n.meta.name_override:this.entities[t]?.meta?.name_override?.length?n.name=this.entities[t].meta.name_override:n.name=e.entity?.name||this.entities[t]?.name,n.category=z[n.type].name_plural,n.meta={...z[e.entity.type]||{},...this.entities[t]?.meta||{},...e.entity?.meta||{}},this.entities[t]=n},onEntityDelete(e){const t=e.entity?.id;null!=t&&(t===this.modalEntityId&&(this.modalEntityId=null),this.entities[t]&&delete this.entities[t])},onEntityModal(e){e?(this.modalEntityId=e,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,O.Z)(B,[["render",S],["__scopeId","data-v-1b44ed5e"]]);var W=F},6243:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ze}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-628ff73f"),e=e(),(0,i.Cn)(),e),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"},E=(0,i.Uk)(" Icon "),k={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"],q=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),O=[q],U={class:"table-row"},$=a((()=>(0,i._)("div",{class:"title"},"Plugin",-1))),M=["textContent"],N={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))),ee=["textContent"],te={class:"table-row delete-entity-container"},ne=a((()=>(0,i._)("div",{class:"title"},"Delete Entity",-1))),ie={class:"value"},se=a((()=>(0,i._)("i",{class:"fas fa-trash"},null,-1))),ae=[se];function oe(e,t,n,a,S,q){const se=(0,i.up)("ConfirmDialog"),oe=(0,i.up)("EditButton"),le=(0,i.up)("NameEditor"),re=(0,i.up)("Icon"),ue=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(ue,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((()=>[(0,i.Wm)(se,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:q.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)(oe,{key:0,onClick:t[0]||(t[0]=e=>S.editName=!0)}))]),(0,i._)("div",v,[S.editName?((0,i.wg)(),(0,i.j4)(le,{key:0,value:n.entity.name,onInput:q.onRename,onCancel:t[1]||(t[1]=e=>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,[E,S.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(oe,{key:0,onClick:t[2]||(t[2]=e=>S.editIcon=!0)}))]),(0,i._)("div",k,[S.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(le,{value:n.entity.meta?.icon?.class||n.entity.meta?.icon?.url,onInput:q.onIconEdit,onCancel:t[5]||(t[5]=e=>S.editIcon=!1),disabled:S.loading},{default:(0,i.w5)((()=>[(0,i._)("button",{type:"button",title:"Reset",onClick:t[3]||(t[3]=e=>q.onIconEdit(null)),onTouch:t[4]||(t[4]=e=>q.onIconEdit(null))},I,32)])),_:1},8,["value","onInput","disabled"]),x])):((0,i.wg)(),(0,i.j4)(re,(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:t[6]||(t[6]=(...e)=>q.onIconColorEdit&&q.onIconColorEdit(...e))},null,40,j),(0,i._)("button",{type:"button",title:"Reset",onClick:t[7]||(t[7]=e=>q.onIconColorEdit(null)),onTouch:t[8]||(t[8]=e=>q.onIconColorEdit(null))},O,32)])]),(0,i._)("div",U,[$,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.plugin)},null,8,M)]),(0,i._)("div",N,[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||{},((t,n)=>((0,i.wg)(),(0,i.iD)("div",{key:n},[null!=t?((0,i.wg)(),(0,i.iD)("div",H,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,s.zw)(""+t)},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)(e.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)(e.formatDateTime(n.entity.updated_at))},null,8,ee)])):(0,i.kq)("",!0),(0,i._)("div",te,[ne,(0,i._)("div",ie,[(0,i._)("button",{onClick:t[9]||(t[9]=t=>e.$refs.deleteConfirmDiag.show())},ae)])])])),_:1},8,["visible","title"])}var le=n(8453),re=n(1478),ue=n(9963);const ce=e=>((0,i.dD)("data-v-d543b3e4"),e=e(),(0,i.Cn)(),e),de={class:"dialog-content"},pe=ce((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),me=ce((()=>(0,i._)("i",{class:"fas fa-xmark"},null,-1)));function ye(e,t,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",de,[(0,i.WI)(e.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:t[4]||(t[4]=(0,ue.iM)(((...e)=>l.onConfirm&&l.onConfirm(...e)),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:t[0]||(t[0]=(...e)=>l.onConfirm&&l.onConfirm(...e)),onTouch:t[1]||(t[1]=(...e)=>l.onConfirm&&l.onConfirm(...e))},[pe,(0,i.Uk)(" "+(0,s.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:t[2]||(t[2]=(...e)=>l.close&&l.close(...e)),onTouch:t[3]||(t[3]=(...e)=>l.close&&l.close(...e))},[me,(0,i.Uk)(" "+(0,s.zw)(n.cancelText),1)],32)],32)])),_:3},8,["title"])}var he={emits:["input","click","touch"],components:{Modal:le.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()}}},ge=n(3744);const fe=(0,ge.Z)(he,[["render",ye],["__scopeId","data-v-d543b3e4"]]);var ve=fe;const _e=e=>((0,i.dD)("data-v-3344f2bf"),e=e(),(0,i.Cn)(),e),we=_e((()=>(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1))),be=[we];function Ee(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:t[0]||(t[0]=e=>o.proxy(e)),onTouch:t[1]||(t[1]=e=>o.proxy(e)),onInput:t[2]||(t[2]=e=>o.proxy(e))},be,32)}var ke={emits:["input","click","touch"],methods:{proxy(e){this.$emit(e.type,e)}}};const Ce=(0,ge.Z)(ke,[["render",Ee],["__scopeId","data-v-3344f2bf"]]);var Se=Ce;const Ie=e=>((0,i.dD)("data-v-1405d90f"),e=e(),(0,i.Cn)(),e),xe=["disabled"],De=Ie((()=>(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1))),Ge=Ie((()=>(0,i._)("i",{class:"fas fa-ban"},null,-1))),Te=[Ge];function je(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:t[3]||(t[3]=(0,ue.iM)(((...e)=>o.submit&&o.submit(...e)),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>a.text=e),disabled:n.disabled},null,8,xe),[[ue.nr,a.text]]),De,(0,i._)("button",{class:"cancel",onClick:t[1]||(t[1]=t=>e.$emit("cancel")),onTouch:t[2]||(t[2]=t=>e.$emit("cancel"))},Te,32),(0,i.WI)(e.$slots,"default",{},void 0,!0)],32)}var qe={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data(){return{text:null}},methods:{proxy(e){this.$emit(e.type,e)},submit(){return this.$emit("input",this.text),!1}},mounted(){this.text=this.value}};const Oe=(0,ge.Z)(qe,[["render",je],["__scopeId","data-v-1405d90f"]]);var Ue=Oe,$e=n(6813),Me=n(7369),Ne={name:"Entity",components:{Modal:le.Z,EditButton:Se,NameEditor:Ue,Icon:re.Z,ConfirmDialog:ve},mixins:[$e.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(e){this.loading=!0;try{const t={};t[this.entity.id]=e,await this.request("entities.rename",t)}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(e){this.loading=!0;try{const t={url:null,class:null};e?.length?e.startsWith("http")?t.url=e:t.class=e:(t.url=(Me[this.entity.type]||{})?.icon?.url,t.class=(Me[this.entity.type]||{})?.icon?.["class"]);const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}},async onIconColorEdit(e){this.loading=!0;try{const t=this.entity.meta?.icon||{};t.color=e?e.target.value:null;const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}}}};const Le=(0,ge.Z)(Ne,[["render",oe],["__scopeId","data-v-628ff73f"]]);var Ze=Le},6518:function(e,t,n){"use strict";n.r(t),n.d(t,{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(e,t,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-object-ungroup",ref:"groupingSelector"},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.visibleGroupings,(e=>((0,i.wg)(),(0,i.j4)(p,{key:e,text:d.prettifyGroupingName(e),"item-class":{selected:n.value?.grouping===e},onClick:t=>d.onGroupingChanged(e)},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,(e=>((0,i.wg)(),(0,i.j4)(p,(0,i.dG)({key:e,text:e},d.iconForGroup(e),{"item-class":{selected:!!c.selectedGroups[e]},onClick:(0,a.iM)((t=>d.toggleGroup(e)),["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":t[0]||(t[0]=e=>c.searchTerm=e)},null,512),[[a.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(6813),d=n(5771),p=n(522),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((e=>"id"!==e))},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((e=>{if(!this.selectedGroups[e[this.value?.grouping]])return!1;if(this.searchTerm?.length){const t=this.searchTerm.toLowerCase();return(e.name||"").toLowerCase().indexOf(t)>=0||(e.plugin||"").toLowerCase().indexOf(t)>=0||(e.external_id||"").toLowerCase().indexOf(t)>=0||(e.id||0).toString()==t}return!0})).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{prettifyGroupingName(e){return e?(e=this.prettify(e),e.endsWith("y")&&(e=e.slice(0,e.length-1)+"ie"),e+="s",e):""},iconForGroup(e){if("plugin"===this.value.grouping&&y[e]){const t=y[e];return{"icon-class":t["class"]?.length||!t.imgUrl?.length?t["class"]:"fas fa-gears","icon-url":t.imgUrl}}return{}},synchronizeSelectedEntities(){const e={...this.value};e.selectedEntities=this.selectedEntities,this.$emit("input",e)},updateSearchTerm(){const e={...this.value};e.searchTerm=this.searchTerm,e.selectedEntities=this.selectedEntities,this.$emit("input",e)},refreshGroupFilter(e){if(e)this.selectedGroups=Object.keys(this.entityGroups[this.value?.grouping]||{}).reduce(((e,t)=>(e[t]=!0,e)),{});else for(const t of Object.keys(this.entityGroups[this.value?.grouping]))null==this.selectedGroups[t]&&(this.selectedGroups[t]=!0);this.synchronizeSelectedEntities()},toggleGroup(e){this.selectedGroups[e]=!this.selectedGroups[e],this.synchronizeSelectedEntities()},onGroupingChanged(e){if(!this.entityGroups[e]||e===this.value?.grouping)return!1;const t={...this.value};t.grouping=e,this.$emit("input",t)}},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-7babaacc"]]);var v=f},7243:function(e,t,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":[6856,9,6869,7009,6856],"./CurrentSensor.vue":[6856,9,6869,7009,6856],"./Dimmer":[5060,9,7246,6869,5060],"./Dimmer.vue":[5060,9,7246,6869,5060],"./EnergySensor":[6856,9,6869,7009,6856],"./EnergySensor.vue":[6856,9,6869,7009,6856],"./Entity":[7503,9],"./Entity.vue":[7503,9],"./EntityIcon":[3673,9,6869,3673],"./EntityIcon.vue":[3673,9,6869,3673],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSensor":[3390,9,6869,7009,3390],"./EnumSensor.vue":[3390,9,6869,7009,3390],"./EnumSwitch":[818,9,6869,818],"./EnumSwitch.vue":[818,9,6869,818],"./HumiditySensor":[6856,9,6869,7009,6856],"./HumiditySensor.vue":[6856,9,6869,7009,6856],"./Index":[1040,9],"./Index.vue":[1040,9],"./Light":[1155,9,3490,7246,6869,1155],"./Light.vue":[1155,9,3490,7246,6869,1155],"./LinkQuality":[2235,9,6869,2235],"./LinkQuality.vue":[2235,9,6869,2235],"./Modal":[6243,9],"./Modal.vue":[6243,9],"./NumericSensor":[6856,9,6869,7009,6856],"./NumericSensor.vue":[6856,9,6869,7009,6856],"./PowerSensor":[6856,9,6869,7009,6856],"./PowerSensor.vue":[6856,9,6869,7009,6856],"./RawSensor":[6856,9,6869,7009,6856],"./RawSensor.vue":[6856,9,6869,7009,6856],"./Selector":[6518,9],"./Selector.vue":[6518,9],"./Sensor":[6856,9,6869,7009,6856],"./Sensor.vue":[6856,9,6869,7009,6856],"./Switch":[4024,9,3490,6869,4024],"./Switch.vue":[4024,9,3490,6869,4024],"./TemperatureSensor":[6856,9,6869,7009,6856],"./TemperatureSensor.vue":[6856,9,6869,7009,6856],"./VoltageSensor":[6856,9,6869,7009,6856],"./VoltageSensor.vue":[6856,9,6869,7009,6856],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(e){if(!n.o(i,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],s=t[0];return Promise.all(t.slice(2).map(n.e)).then((function(){return n.t(s,16|t[1])}))}s.keys=function(){return Object.keys(i)},s.id=7243,e.exports=s},7369:function(e){"use strict";e.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"}},"enum_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}}}')}}]);
+//# sourceMappingURL=7503.c8252b66.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js.map b/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js.map
new file mode 100644
index 0000000000..3e224c64bf
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/7503.c8252b66.js","mappings":"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kBAAmB,CAClB,KACA,EACA,KACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,KACA,MAED,WAAY,CACX,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,KACA,MAED,iBAAkB,CACjB,KACA,EACA,KACA,KACA,MAED,qBAAsB,CACrB,KACA,EACA,KACA,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,KACA,EACA,KACA,KACA,MAED,mBAAoB,CACnB,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,IACA,EACA,KACA,KAED,mBAAoB,CACnB,IACA,EACA,KACA,KAED,mBAAoB,CACnB,KACA,EACA,KACA,KACA,MAED,uBAAwB,CACvB,KACA,EACA,KACA,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,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,KACA,MAED,gBAAiB,CAChB,KACA,EACA,KACA,KACA,MAED,oBAAqB,CACpB,KACA,EACA,KACA,KACA,MAED,cAAe,CACd,KACA,EACA,KACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,KACA,MAED,aAAc,CACb,KACA,GAED,iBAAkB,CACjB,KACA,GAED,WAAY,CACX,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,KACA,MAED,WAAY,CACX,KACA,EACA,KACA,KACA,MAED,eAAgB,CACf,KACA,EACA,KACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,KACA,MAED,0BAA2B,CAC1B,KACA,EACA,KACA,KACA,MAED,kBAAmB,CAClB,KACA,EACA,KACA,KACA,MAED,sBAAuB,CACtB,KACA,EACA,KACA,KACA,MAED,gBAAiB,CAChB,GACA,EACA,KACA,IAED,SAAU,CACT,KACA,GAED,cAAe,CACd,KACA,GAED,cAAe,CACd,KACA,EACA,KACA,OAGF,SAASyJ,EAAoB1B,GAC5B,IAAI2B,EAAoBC,EAAE3J,EAAK+H,GAC9B,OAAO6B,QAAQC,UAAUC,MAAK,WAC7B,IAAI1F,EAAI,IAAI2F,MAAM,uBAAyBhC,EAAM,KAEjD,MADA3D,EAAE4F,KAAO,mBACH5F,CACP,IAGD,IAAI6F,EAAMjK,EAAI+H,GAAMpF,EAAKsH,EAAI,GAC7B,OAAOL,QAAQM,IAAID,EAAI9J,MAAM,GAAGH,IAAI0J,EAAoBtF,IAAI0F,MAAK,WAChE,OAAOJ,EAAoBzJ,EAAE0C,EAAa,GAATsH,EAAI,GACtC,GACD,CACAR,EAAoBzH,KAAO,WAAa,OAAOhB,OAAOgB,KAAKhC,EAAM,EACjEyJ,EAAoB9G,GAAK,KACzBwH,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=2cf6329b&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=2cf6329b&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-2cf6329b\"]])\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=1b44ed5e&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=1b44ed5e&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-1b44ed5e\"]])\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 \"./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/9978.94898f2d.js b/platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.js
similarity index 62%
rename from platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js
rename to platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.js
index 04cf58beac..37541196ec 100644
--- a/platypush/backend/http/webapp/dist/static/js/9978.94898f2d.js
+++ b/platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.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),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
+"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[9978],{8337:function(t,e,s){s.d(e,{Z:function(){return i}});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 i=n},9978:function(t,e,s){s.d(e,{Z:function(){return At}});var a=s(6252);const l={class:"media-container"},n={class:"view-container"},i={class:"controls-container"};function o(t,e,s,o,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",i,[(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],g=c((()=>(0,a._)("i",{class:"icon fa fa-stop"},null,-1))),f=[g],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))),z=[P],I=c((()=>(0,a._)("i",{class:"icon fa fa-random"},null,-1))),Z=[I],j=c((()=>(0,a._)("i",{class:"icon fa fa-redo"},null,-1))),M=[j],R={class:"row"},O={class:"col-s-2 col-m-1 time"},W=["textContent"],N={class:"col-s-8 col-m-10 time-bar"},U={class:"col-s-2 col-m-1 time"},E=["textContent"],L={class:"controls"},B={class:"playback-controls mobile tablet col-2"},A=["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"],it={key:0,class:"icon play-pause fa fa-pause"},ot={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"},gt=["textContent"],ft={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"],zt=c((()=>(0,a._)("i",{class:"icon fa fa-volume-up"},null,-1))),It=[zt],Zt={class:"col-10"};function jt(t,e,s,l,n,i){const o=(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",p,[d,(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"},f)):(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)(o,{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"},z,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"},Z,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",R,[(0,a._)("div",O,[(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,W)]),(0,a._)("div",N,[(0,a.Wm)(o,{value:n.elapsed,range:[0,i.duration],disabled:!i.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",U,[(0,a._)("span",{class:"total-time",textContent:(0,u.zw)(i.duration&&"stop"!==s.status.state?t.convertTime(i.duration):"-:--")},null,8,E)])])],2),(0,a._)("div",L,[(0,a._)("div",B,[(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,A)]),(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",it)):((0,a.wg)(),(0,a.iD)("i",ot))],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"},pt)):(0,a.kq)("",!0)]),(0,a._)("div",dt,[(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)(o,{value:n.elapsed,range:[0,i.duration],disabled:!i.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)(i.duration&&"stop"!==s.status.state?t.convertTime(i.duration):"-:--")},null,8,gt)])])]),(0,a._)("div",ft,[(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"))},It,8,Pt)]),(0,a._)("div",Zt,[(0,a.Wm)(o,{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),Rt=s(8337),Ot=s(1583),Wt={name:"Controls",components:{Slider:Ot.Z},mixins:[Mt.Z,Rt.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 Ut=(0,Nt.Z)(Wt,[["render",jt],["__scopeId","data-v-8db4988a"]]);var Et=Ut,Lt={name:"View",components:{Controls:Et},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 Bt=(0,Nt.Z)(Lt,[["render",o],["__scopeId","data-v-70d7a7df"]]);var At=Bt},1583:function(t,e,s){s.d(e,{Z:function(){return f}});var a=s(6252),l=s(3577),n=s(9963);const i={class:"slider-wrapper"},o=["textContent"],u=["textContent"],r={class:"slider-container"},c=["min","max","step","disabled","value"],p={class:"track-inner",ref:"track"},d={class:"thumb",ref:"thumb"},m=["textContent"];function v(t,e,s,v,k,b){return(0,a.wg)(),(0,a.iD)("label",i,[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,l.C_)(["range-labels",{"with-label":s.withLabel}])},[s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:0,class:"label left",textContent:(0,l.zw)(s.range[0])},null,8,o)):(0,a.kq)("",!0),s.withRange?((0,a.wg)(),(0,a.iD)("span",{key:1,class:"label right",textContent:(0,l.zw)(s.range[1])},null,8,u)):(0,a.kq)("",!0)],2)):(0,a.kq)("",!0),(0,a._)("span",r,[(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)=>b.onUpdate&&b.onUpdate(...t)),["stop"])),onChange:e[1]||(e[1]=(0,n.iM)(((...t)=>b.onUpdate&&b.onUpdate(...t)),["stop"]))},null,42,c),(0,a._)("div",{class:(0,l.C_)(["track",{"with-label":s.withLabel}])},[(0,a._)("div",p,null,512)],2),(0,a._)("div",d,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,m)):(0,a.kq)("",!0)])])}var k={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},withRange:{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),this.$watch((()=>this.value),(t=>this.update(t)))}},b=s(3744);const g=(0,b.Z)(k,[["render",v],["__scopeId","data-v-28d31846"]]);var f=g}}]);
+//# sourceMappingURL=9978.f9fb399e.js.map
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.js.map b/platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.js.map
new file mode 100644
index 0000000000..ff391916fc
--- /dev/null
+++ b/platypush/backend/http/webapp/dist/static/js/9978.f9fb399e.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/9978.f9fb399e.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=28d31846&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=28d31846&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-28d31846\"]])\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","withRange","withLabel","min","max","step","onUpdate","Number","Boolean","event","update","$refs","sliderWidth","clientWidth","percent","innerWidth","thumb","style","left","transform","width","newValue"],"sourceRoot":""}
\ No newline at end of file
diff --git a/platypush/backend/http/webapp/dist/static/js/app-legacy.de21bce2.js b/platypush/backend/http/webapp/dist/static/js/app-legacy.65e02696.js
similarity index 94%
rename from platypush/backend/http/webapp/dist/static/js/app-legacy.de21bce2.js
rename to platypush/backend/http/webapp/dist/static/js/app-legacy.65e02696.js
index 5499c52f4a..7db8ba597d 100644
--- a/platypush/backend/http/webapp/dist/static/js/app-legacy.de21bce2.js
+++ b/platypush/backend/http/webapp/dist/static/js/app-legacy.65e02696.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)()},7224: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)),j={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),Ne={key:0,class:"row"},Oe=Pe((function(){return(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1)})),$e=[Oe],Ee={class:"row buttons"},We=["value"],ze=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",je,[qe,a._register?((0,i.wg)(),(0,i.iD)("div",Ne,$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,We)]),ze])])}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-40faf425"),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()},collapsedDefault:function(){return!(!this.isMobile()&&!this.isTablet())}},methods:{onItemClick:function(e){this.$emit("select",e),this.collapsed=!!this.isMobile()||this.collapsedDefault}},data:function(){return{collapsed:!0,icons:bt,host:null}},mounted:function(){this.collapsed=this.collapsedDefault}};const kt=(0,_.Z)(yt,[["render",wt],["__scopeId","data-v-40faf425"]]);var xt=kt,_t=n(2715),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}),jt=Mt,qt=(0,s.ri)(fe);qt.config.globalProperties._config=window.config,qt.use(jt).mount("#app")},6813:function(e,t,n){"use strict";n.d(t,{Z:function(){return q}});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)},objectsEqual:function(e,t){var n;if("object"!==(0,Z.Z)(e)||"object"!==(0,Z.Z)(t))return!1;for(var s=0,i=Object.keys(e||{});st?(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},522: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-2 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-10":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-92252276"]]);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},2715:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ce}});var s=n(6252),i={class:"settings-container"},r={class:"col-8"},a={class:"col-4 pull-right"},o=(0,s._)("i",{class:"fa fa-plus"},null,-1),c=[o];function l(e,t,n,o,l,u){var d=(0,s.up)("DropdownItem"),f=(0,s.up)("Dropdown"),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.Wm)(f,{title:"Select a category","icon-class":"fa fa-ellipsis-h"},{default:(0,s.w5)((function(){return[(0,s.Wm)(d,{text:"Users","icon-class":"fa fa-user","item-class":{selected:"users"===l.selectedView},onClick:t[0]||(t[0]=function(e){return l.selectedView="users"})},null,8,["item-class"]),(0,s.Wm)(d,{text:"Generate a token","icon-class":"fa fa-key","item-class":{selected:"token"===l.selectedView},onClick:t[1]||(t[1]=function(e){return l.selectedView="token"})},null,8,["item-class"])]})),_:1})]),(0,s._)("div",a,["users"===l.selectedView?((0,s.wg)(),(0,s.iD)("button",{key:0,title:"Add User",onClick:t[2]||(t[2]=function(t){return e.$refs.usersView.$refs.addUserModal.show()})},c)):(0,s.kq)("",!0)])]),(0,s._)("main",null,["users"===l.selectedView?((0,s.wg)(),(0,s.j4)(p,{key:0,"session-token":l.sessionToken,"current-user":l.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===l.selectedView?((0,s.wg)(),(0,s.j4)(h,{key:1,"session-token":l.sessionToken,"current-user":l.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,s.kq)("",!0)])])}var u=n(8534),d=(n(5666),n(5771)),f=n(522),p=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;"),j=(0,s.Uk)("Specify it as a URL parameter: "),q=(0,s.Uk)("http://site:8008/execute?token=..."),N=(0,s.Uk)(";"),O=(0,s.Uk)("Specify it on the body of your JSON request: "),$=(0,s.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,s.Uk)("."),W=(0,s.Uk)(" Confirm your credentials in order to generate a new token. "),z={class:"form-container"},L=(0,s._)("span",null,"Username",-1),A=["value"],V=(0,s._)("label",null,[(0,s._)("span",null,"Confirm password"),(0,s._)("span",null,[(0,s._)("input",{type:"password",name:"password"})])],-1),H=(0,s._)("label",null,[(0,s._)("span",null,"Token validity in days"),(0,s._)("span",null,[(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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",value:"Generate token"})],-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,[j,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[q]})),_:1}),N]),(0,s._)("li",null,[O,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[$]})),_:1}),E])]),W]),(0,s._)("div",z,[(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._)("span",null,[(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,u.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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",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),{name:"Users",components:{DropdownItem:f.Z,Loading:G.Z,Modal:X.Z,Dropdown:d.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,u.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,u.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,u.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,u.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 ye=(0,ee.Z)(be,[["render",ve]]);var ke=ye,xe={name:"Settings",components:{Dropdown:d.Z,DropdownItem:f.Z,Users:ke,Token:ne},mixins:[J.Z],data:function(){return{selectedView:"users",currentUser:null,sessionToken:null}},methods:{refresh:function(){var e=this;return(0,u.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 _e=(0,ee.Z)(xe,[["render",l]]);var Ce=_e},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":[7938,2909],"./Execute/Index":[7643,7643],"./Light/Index":[1406,3490,9974,1406],"./LightHue/Index":[3724,3490,9974,1406,3724],"./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":[2715],"./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,906,6027],"./ZwaveMqtt/Index":[2362,3490,9974,906,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:"f0e55a39",818:"b4ae6fe1",906:"548a68bf",1155:"2501688b",1406:"da33e6be",1595:"69aea4ae",1798:"b42f39d9",1938:"e350f72d",2235:"ee01d3bc",2346:"4845c2ae",2362:"034c153c",2380:"0d05fcbd",2466:"b6981a49",2790:"32ec0e3d",2820:"869be689",2844:"b3683bc2",2909:"1b5135c4",2957:"a0d5f651",3390:"a2494ad3",3490:"d482e29b",3673:"ce9f93c0",3724:"8c3b0cb8",3785:"5ec00494",4021:"a3380d38",4024:"28ca562a",4196:"cd4885fd",4276:"18787ca7",4548:"e2883bdd",4826:"f73c82f0",4848:"ca23b0a0",4981:"c4835180",5111:"262ea3c5",5193:"d8c2e027",5207:"b6625280",5210:"e39ce8e4",5466:"ba464f70",5528:"5b7db199",5779:"8c634228",5824:"e042a7c9",5895:"e1ce8e90",6003:"f3446996",6013:"b02eb716",6027:"15704eec",6162:"bf13f6e2",6365:"f0476e2f",6509:"ab6d64c3",6590:"a024a679",6739:"c665b953",6833:"7fb28660",6856:"bd8b668c",6869:"73728371",7009:"04000b65",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",906:"c92b25f1",1155:"3c072b53",1406:"3c45f7ef",1798:"5047113b",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",2909:"35b29718",3390:"d1df484b",3490:"3516cb6e",3724:"a6a4f193",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",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",6365:"23d86f00",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6869:"5c09b6fd",7009:"1fe8ed46",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;uPlatypush
',3),Ne={key:0,class:"row"},Oe=Pe((function(){return(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1)})),$e=[Oe],Ee={class:"row buttons"},We=["value"],ze=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",je,[qe,a._register?((0,i.wg)(),(0,i.iD)("div",Ne,$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,We)]),ze])])}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-6395b430"),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()},collapsedDefault:function(){return!(!this.isMobile()&&!this.isTablet())}},methods:{onItemClick:function(e){this.$emit("select",e),this.collapsed=!!this.isMobile()||this.collapsedDefault}},data:function(){return{collapsed:!0,icons:bt,host:null}},mounted:function(){this.collapsed=this.collapsedDefault}};const kt=(0,_.Z)(yt,[["render",wt],["__scopeId","data-v-6395b430"]]);var xt=kt,_t=n(2715),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}),jt=Mt,qt=(0,s.ri)(fe);qt.config.globalProperties._config=window.config,qt.use(jt).mount("#app")},6813:function(e,t,n){"use strict";n.d(t,{Z:function(){return q}});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)},objectsEqual:function(e,t){var n;if("object"!==(0,Z.Z)(e)||"object"!==(0,Z.Z)(t))return!1;for(var s=0,i=Object.keys(e||{});st?(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},522: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-2 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-10":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-92252276"]]);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},2715:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ce}});var s=n(6252),i={class:"settings-container"},r={class:"col-8"},a={class:"col-4 pull-right"},o=(0,s._)("i",{class:"fa fa-plus"},null,-1),c=[o];function l(e,t,n,o,l,u){var d=(0,s.up)("DropdownItem"),f=(0,s.up)("Dropdown"),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.Wm)(f,{title:"Select a category","icon-class":"fa fa-ellipsis-h"},{default:(0,s.w5)((function(){return[(0,s.Wm)(d,{text:"Users","icon-class":"fa fa-user","item-class":{selected:"users"===l.selectedView},onClick:t[0]||(t[0]=function(e){return l.selectedView="users"})},null,8,["item-class"]),(0,s.Wm)(d,{text:"Generate a token","icon-class":"fa fa-key","item-class":{selected:"token"===l.selectedView},onClick:t[1]||(t[1]=function(e){return l.selectedView="token"})},null,8,["item-class"])]})),_:1})]),(0,s._)("div",a,["users"===l.selectedView?((0,s.wg)(),(0,s.iD)("button",{key:0,title:"Add User",onClick:t[2]||(t[2]=function(t){return e.$refs.usersView.$refs.addUserModal.show()})},c)):(0,s.kq)("",!0)])]),(0,s._)("main",null,["users"===l.selectedView?((0,s.wg)(),(0,s.j4)(p,{key:0,"session-token":l.sessionToken,"current-user":l.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===l.selectedView?((0,s.wg)(),(0,s.j4)(h,{key:1,"session-token":l.sessionToken,"current-user":l.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,s.kq)("",!0)])])}var u=n(8534),d=(n(5666),n(5771)),f=n(522),p=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;"),j=(0,s.Uk)("Specify it as a URL parameter: "),q=(0,s.Uk)("http://site:8008/execute?token=..."),N=(0,s.Uk)(";"),O=(0,s.Uk)("Specify it on the body of your JSON request: "),$=(0,s.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,s.Uk)("."),W=(0,s.Uk)(" Confirm your credentials in order to generate a new token. "),z={class:"form-container"},L=(0,s._)("span",null,"Username",-1),A=["value"],V=(0,s._)("label",null,[(0,s._)("span",null,"Confirm password"),(0,s._)("span",null,[(0,s._)("input",{type:"password",name:"password"})])],-1),H=(0,s._)("label",null,[(0,s._)("span",null,"Token validity in days"),(0,s._)("span",null,[(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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",value:"Generate token"})],-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,[j,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[q]})),_:1}),N]),(0,s._)("li",null,[O,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[$]})),_:1}),E])]),W]),(0,s._)("div",z,[(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._)("span",null,[(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,u.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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",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._)("label",null,[(0,s._)("input",{type:"submit",class:"btn btn-primary",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),{name:"Users",components:{DropdownItem:f.Z,Loading:G.Z,Modal:X.Z,Dropdown:d.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,u.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,u.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,u.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,u.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 ye=(0,ee.Z)(be,[["render",ve]]);var ke=ye,xe={name:"Settings",components:{Dropdown:d.Z,DropdownItem:f.Z,Users:ke,Token:ne},mixins:[J.Z],data:function(){return{selectedView:"users",currentUser:null,sessionToken:null}},methods:{refresh:function(){var e=this;return(0,u.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 _e=(0,ee.Z)(xe,[["render",l]]);var Ce=_e},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":[1040,7503],"./Execute/Index":[7643,7643],"./Light/Index":[1406,3490,7246,1406],"./LightHue/Index":[3724,3490,7246,1406,3724],"./Media/Index":[4196,7246,8337,7029,779,4196],"./MediaMplayer/Index":[6509,7246,8337,7029,779,4196,6509],"./MediaMpv/Index":[5895,7246,8337,7029,779,4196,5895],"./MediaOmxplayer/Index":[9633,7246,8337,7029,779,4196,9633],"./MediaVlc/Index":[767,7246,8337,7029,779,4196,767],"./Music/Index":[5781,7246,8337,7029,6833],"./MusicMpd/Index":[2957,7246,8337,7029,6833,2957],"./MusicSnapcast/Index":[2790,3490,7246,2790],"./MusicSpotify/Index":[7196,7246,8337,7029,6833,7196],"./Rtorrent/Index":[2820,8337,779,6162,2820],"./Settings/Index":[2715],"./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,7246,4848],"./Zwave/Index":[8586,3490,7246,906,6027],"./ZwaveMqtt/Index":[2362,3490,7246,906,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,7246,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:"f0e55a39",818:"b4ae6fe1",906:"931af413",1155:"e7ad21d8",1406:"c488348b",1595:"69aea4ae",1798:"b42f39d9",1938:"e350f72d",2235:"ee01d3bc",2346:"4845c2ae",2362:"034c153c",2380:"0d05fcbd",2466:"b6981a49",2790:"3fcc38e0",2820:"869be689",2844:"b3683bc2",2957:"a0d5f651",3390:"a2494ad3",3490:"d482e29b",3673:"ce9f93c0",3724:"8c3b0cb8",3785:"5ec00494",4021:"a3380d38",4024:"28ca562a",4196:"cd4885fd",4276:"18787ca7",4548:"e2883bdd",4826:"f73c82f0",4848:"42efd543",4981:"c4835180",5060:"ea58eebc",5111:"262ea3c5",5193:"d8c2e027",5207:"b6625280",5210:"e39ce8e4",5466:"ba464f70",5528:"5b7db199",5779:"8c634228",5824:"7b386549",5895:"e1ce8e90",6003:"f3446996",6013:"b02eb716",6027:"15704eec",6162:"bf13f6e2",6509:"ab6d64c3",6590:"a024a679",6739:"c665b953",6833:"7fb28660",6856:"bd8b668c",6869:"73728371",7009:"04000b65",7029:"23944402",7196:"a47a2493",7246:"22fd9eab",7262:"13af887b",7420:"a57de4be",7503:"2d12022b",7643:"5b846090",8184:"702db0b7",8337:"fcf13df8",8990:"2964c88b",9196:"1cf345e1",9299:"adb4a75b",9496:"f4944097",9575:"fb8eab70",9633:"8a00fadb",9694:"a11c42e2",9895:"acee9428"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+e+"."+{65:"d6cbc229",345:"0d938275",615:"be187f79",779:"459f0f41",818:"ecd1a2b7",906:"c92b25f1",1155:"3c072b53",1406:"3c45f7ef",1798:"5047113b",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",3390:"d1df484b",3490:"3516cb6e",3724:"a6a4f193",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5060:"d2fae243",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",6869:"5c09b6fd",7009:"1fe8ed46",7029:"13387da1",7246:"1f677d06",7262:"7ac2a7a5",7420:"e42d1496",7503:"2381eb25",7643:"e25374a8",8990:"14b5ace2",9196:"18347c3c",9496:"ad6b58f0",9575:"eba29f96",9694:"509f8cb5"}[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=40faf425&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=40faf425&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-40faf425\"]])\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=92252276&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=92252276&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-92252276\"]])\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\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=2a4d58dc\"\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=2a4d58dc&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=8de4f27c\"\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=8de4f27c&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=37be3587\"\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=37be3587&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\t7938,\n\t\t2909\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\t3724,\n\t\t3490,\n\t\t9974,\n\t\t1406,\n\t\t3724\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\t2715\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\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 + \"-legacy.\" + {\"65\":\"a4e6662a\",\"345\":\"dcb6e74e\",\"615\":\"fba0e1b5\",\"699\":\"cb1ccfbb\",\"767\":\"f33d812b\",\"779\":\"f0e55a39\",\"818\":\"b4ae6fe1\",\"906\":\"548a68bf\",\"1155\":\"2501688b\",\"1406\":\"da33e6be\",\"1595\":\"69aea4ae\",\"1798\":\"b42f39d9\",\"1938\":\"e350f72d\",\"2235\":\"ee01d3bc\",\"2346\":\"4845c2ae\",\"2362\":\"034c153c\",\"2380\":\"0d05fcbd\",\"2466\":\"b6981a49\",\"2790\":\"32ec0e3d\",\"2820\":\"869be689\",\"2844\":\"b3683bc2\",\"2909\":\"1b5135c4\",\"2957\":\"a0d5f651\",\"3390\":\"a2494ad3\",\"3490\":\"d482e29b\",\"3673\":\"ce9f93c0\",\"3724\":\"8c3b0cb8\",\"3785\":\"5ec00494\",\"4021\":\"a3380d38\",\"4024\":\"28ca562a\",\"4196\":\"cd4885fd\",\"4276\":\"18787ca7\",\"4548\":\"e2883bdd\",\"4826\":\"f73c82f0\",\"4848\":\"ca23b0a0\",\"4981\":\"c4835180\",\"5111\":\"262ea3c5\",\"5193\":\"d8c2e027\",\"5207\":\"b6625280\",\"5210\":\"e39ce8e4\",\"5466\":\"ba464f70\",\"5528\":\"5b7db199\",\"5779\":\"8c634228\",\"5824\":\"e042a7c9\",\"5895\":\"e1ce8e90\",\"6003\":\"f3446996\",\"6013\":\"b02eb716\",\"6027\":\"15704eec\",\"6162\":\"bf13f6e2\",\"6365\":\"f0476e2f\",\"6509\":\"ab6d64c3\",\"6590\":\"a024a679\",\"6739\":\"c665b953\",\"6833\":\"7fb28660\",\"6856\":\"bd8b668c\",\"6869\":\"73728371\",\"7009\":\"04000b65\",\"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\",\"906\":\"c92b25f1\",\"1155\":\"3c072b53\",\"1406\":\"3c45f7ef\",\"1798\":\"5047113b\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"2909\":\"35b29718\",\"3390\":\"d1df484b\",\"3490\":\"3516cb6e\",\"3724\":\"a6a4f193\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"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\",\"6365\":\"23d86f00\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6869\":\"5c09b6fd\",\"7009\":\"1fe8ed46\",\"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,\"906\":1,\"1155\":1,\"1406\":1,\"1798\":1,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"2909\":1,\"3390\":1,\"3490\":1,\"3724\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":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,\"6365\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6869\":1,\"7009\":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|7009|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__(7224); })\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","collapsedDefault","isMobile","isTablet","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","matchMedia","matches","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","objectsEqual","a","b","p","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","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","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","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
+{"version":3,"file":"static/js/app-legacy.65e02696.js","mappings":"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A,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,IACA,MAED,oBAAqB,CACpB,KACA,KACA,KACA,IACA,OAGF,SAASwO,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAE3O,EAAKyO,GAC9B,OAAO3K,QAAQ2B,UAAUE,MAAK,WAC7B,IAAI/L,EAAI,IAAIgV,MAAM,uBAAyBH,EAAM,KAEjD,MADA7U,EAAEc,KAAO,mBACHd,CACP,IAGD,IAAIiV,EAAM7O,EAAIyO,GAAMtY,EAAK0Y,EAAI,GAC7B,OAAO/K,QAAQC,IAAI8K,EAAIxM,MAAM,GAAGrC,IAAI0O,EAAoB9U,IAAI+L,MAAK,WAChE,OAAO+I,EAAoBvY,EAC5B,GACD,CACAqY,EAAoB5S,KAAO,WAAa,OAAO5B,OAA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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=6395b430&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=6395b430&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-6395b430\"]])\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=92252276&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=92252276&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-92252276\"]])\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\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=2a4d58dc\"\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=2a4d58dc&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=8de4f27c\"\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=8de4f27c&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=37be3587\"\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=37be3587&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\t1040,\n\t\t7503\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\t7246,\n\t\t1406\n\t],\n\t\"./LightHue/Index\": [\n\t\t3724,\n\t\t3490,\n\t\t7246,\n\t\t1406,\n\t\t3724\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t7246,\n\t\t8337,\n\t\t7029,\n\t\t779,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t7246,\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\t7246,\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\t7246,\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\t7246,\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\t7246,\n\t\t8337,\n\t\t7029,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t2957,\n\t\t7246,\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\t7246,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t7196,\n\t\t7246,\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\t2715\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\t7246,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t8586,\n\t\t3490,\n\t\t7246,\n\t\t906,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t7246,\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\t7246,\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\":\"f0e55a39\",\"818\":\"b4ae6fe1\",\"906\":\"931af413\",\"1155\":\"e7ad21d8\",\"1406\":\"c488348b\",\"1595\":\"69aea4ae\",\"1798\":\"b42f39d9\",\"1938\":\"e350f72d\",\"2235\":\"ee01d3bc\",\"2346\":\"4845c2ae\",\"2362\":\"034c153c\",\"2380\":\"0d05fcbd\",\"2466\":\"b6981a49\",\"2790\":\"3fcc38e0\",\"2820\":\"869be689\",\"2844\":\"b3683bc2\",\"2957\":\"a0d5f651\",\"3390\":\"a2494ad3\",\"3490\":\"d482e29b\",\"3673\":\"ce9f93c0\",\"3724\":\"8c3b0cb8\",\"3785\":\"5ec00494\",\"4021\":\"a3380d38\",\"4024\":\"28ca562a\",\"4196\":\"cd4885fd\",\"4276\":\"18787ca7\",\"4548\":\"e2883bdd\",\"4826\":\"f73c82f0\",\"4848\":\"42efd543\",\"4981\":\"c4835180\",\"5060\":\"ea58eebc\",\"5111\":\"262ea3c5\",\"5193\":\"d8c2e027\",\"5207\":\"b6625280\",\"5210\":\"e39ce8e4\",\"5466\":\"ba464f70\",\"5528\":\"5b7db199\",\"5779\":\"8c634228\",\"5824\":\"7b386549\",\"5895\":\"e1ce8e90\",\"6003\":\"f3446996\",\"6013\":\"b02eb716\",\"6027\":\"15704eec\",\"6162\":\"bf13f6e2\",\"6509\":\"ab6d64c3\",\"6590\":\"a024a679\",\"6739\":\"c665b953\",\"6833\":\"7fb28660\",\"6856\":\"bd8b668c\",\"6869\":\"73728371\",\"7009\":\"04000b65\",\"7029\":\"23944402\",\"7196\":\"a47a2493\",\"7246\":\"22fd9eab\",\"7262\":\"13af887b\",\"7420\":\"a57de4be\",\"7503\":\"2d12022b\",\"7643\":\"5b846090\",\"8184\":\"702db0b7\",\"8337\":\"fcf13df8\",\"8990\":\"2964c88b\",\"9196\":\"1cf345e1\",\"9299\":\"adb4a75b\",\"9496\":\"f4944097\",\"9575\":\"fb8eab70\",\"9633\":\"8a00fadb\",\"9694\":\"a11c42e2\",\"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\",\"615\":\"be187f79\",\"779\":\"459f0f41\",\"818\":\"ecd1a2b7\",\"906\":\"c92b25f1\",\"1155\":\"3c072b53\",\"1406\":\"3c45f7ef\",\"1798\":\"5047113b\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"3390\":\"d1df484b\",\"3490\":\"3516cb6e\",\"3724\":\"a6a4f193\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5060\":\"d2fae243\",\"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\",\"6869\":\"5c09b6fd\",\"7009\":\"1fe8ed46\",\"7029\":\"13387da1\",\"7246\":\"1f677d06\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7503\":\"2381eb25\",\"7643\":\"e25374a8\",\"8990\":\"14b5ace2\",\"9196\":\"18347c3c\",\"9496\":\"ad6b58f0\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\"}[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,\"906\":1,\"1155\":1,\"1406\":1,\"1798\":1,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"3390\":1,\"3490\":1,\"3724\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5060\":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,\"6869\":1,\"7009\":1,\"7029\":1,\"7246\":1,\"7262\":1,\"7420\":1,\"7503\":1,\"7643\":1,\"8990\":1,\"9196\":1,\"9496\":1,\"9575\":1,\"9694\":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|7009|7246|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__(9882); })\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","collapsedDefault","isMobile","isTablet","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","matchMedia","matches","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","objectsEqual","a","b","p","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","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","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","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.04d5cd85.js b/platypush/backend/http/webapp/dist/static/js/app.95d564a7.js
similarity index 92%
rename from platypush/backend/http/webapp/dist/static/js/app.04d5cd85.js
rename to platypush/backend/http/webapp/dist/static/js/app.95d564a7.js
index c6fc9a3c89..9e1c6ac0ac 100644
--- a/platypush/backend/http/webapp/dist/static/js/app.04d5cd85.js
+++ b/platypush/backend/http/webapp/dist/static/js/app.95d564a7.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)()},7224: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"],w=["innerHTML"],v=["textContent"],b=["innerHTML"];function y(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,w)):(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,v)):(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,b)):(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",y],["__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 j=(0,_.Z)(M,[["render",U]]);var q=j;const N={class:"assistant-modal"},$={class:"icon"},O={key:0,class:"fa fa-bell"},Z={key:1,class:"fa fa-volume-up"},E={key:2,class:"fa fa-comment-dots"},W={key:3,class:"fa fa-microphone"},z={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",N,[(0,i.Wm)(r,{ref:"assistantModal"},{default:(0,i.w5)((()=>[(0,i._)("div",$,[a.state.alerting?((0,i.wg)(),(0,i.iD)("i",O)):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",W))]),(0,i._)("div",z,[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:q,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 we(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 ve={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 be=(0,_.Z)(ve,[["render",we],["__scopeId","data-v-5df52982"]]);var ye=be,ke={name:"Dashboard",mixins:[T.Z],components:{Widget:ye,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),je={key:0,class:"row"},qe=Te((()=>(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1))),Ne=[qe],$e={class:"row buttons"},Oe=["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",je,Ne)):(0,i.kq)("",!0),(0,i._)("div",$e,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:o._register?"Register":"Login"},null,8,Oe)]),Ze])])}var We={name:"Login",mixins:[T.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register(){return this.parseBoolean(this.register)}}};const ze=(0,_.Z)(We,[["render",Ee],["__scopeId","data-v-16cef6aa"]]);var Re=ze;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-40faf425"),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()},collapsedDefault(){return!(!this.isMobile()&&!this.isTablet())}},methods:{onItemClick(e){this.$emit("select",e),this.collapsed=!!this.isMobile()||this.collapsedDefault}},data(){return{collapsed:!0,icons:ft,host:null}},mounted(){this.collapsed=this.collapsedDefault}};const gt=(0,_.Z)(mt,[["render",pt],["__scopeId","data-v-40faf425"]]);var wt=gt,vt=s(2715),bt={name:"Panel",mixins:[T.Z],components:{Settings:vt["default"],Nav:wt,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 yt=(0,_.Z)(bt,[["render",Ke],["__scopeId","data-v-344b6d1a"]]);var kt=yt;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:vt["default"],Nav:wt,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 j}});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 w=g,v={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 b=v;var y=b,k={name:"Screen",methods:{isMobile(){return window.matchMedia("only screen and (max-width: 768px)").matches},isTablet(){return!this.isMobile()&&window.matchMedia("only screen and (max-width: 1023px)").matches},isDesktop(){return window.matchMedia("only screen and (min-width: 1024px)").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}`},objectsEqual(e,t){if("object"!==typeof e||"object"!==typeof t)return!1;for(const s of Object.keys(e||{}))switch(typeof e[s]){case"object":if(!this.objectsEqual(e[s],t[s]))return!1;break;case"function":if(e[s].toString()!=t[s]?.toString())return!1;break;default:if(e[s]!=t[s])return!1;break}for(const s of Object.keys(t||{}))if(null==e[s]&&null!=t[s])return!1;return!0}}};const T=S;var U=T,P={name:"Utils",mixins:[r,d,y,w,p,x,I,U]};const M=P;var j=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},522: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-2 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-10":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-92252276"]]);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},2715:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return _e}});var n=s(6252);const i={class:"settings-container"},a={class:"col-8"},o={class:"col-4 pull-right"},r=(0,n._)("i",{class:"fa fa-plus"},null,-1),l=[r];function c(e,t,s,r,c,d){const u=(0,n.up)("DropdownItem"),h=(0,n.up)("Dropdown"),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.Wm)(h,{title:"Select a category","icon-class":"fa fa-ellipsis-h"},{default:(0,n.w5)((()=>[(0,n.Wm)(u,{text:"Users","icon-class":"fa fa-user","item-class":{selected:"users"===c.selectedView},onClick:t[0]||(t[0]=e=>c.selectedView="users")},null,8,["item-class"]),(0,n.Wm)(u,{text:"Generate a token","icon-class":"fa fa-key","item-class":{selected:"token"===c.selectedView},onClick:t[1]||(t[1]=e=>c.selectedView="token")},null,8,["item-class"])])),_:1})]),(0,n._)("div",o,["users"===c.selectedView?((0,n.wg)(),(0,n.iD)("button",{key:0,title:"Add User",onClick:t[2]||(t[2]=t=>e.$refs.usersView.$refs.addUserModal.show())},l)):(0,n.kq)("",!0)])]),(0,n._)("main",null,["users"===c.selectedView?((0,n.wg)(),(0,n.j4)(p,{key:0,"session-token":c.sessionToken,"current-user":c.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===c.selectedView?((0,n.wg)(),(0,n.j4)(f,{key:1,"session-token":c.sessionToken,"current-user":c.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,n.kq)("",!0)])])}var d=s(5771),u=s(522),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."),w=(0,n._)("br",null,null,-1),v=(0,n.Uk)(" Also, make sure to save it - it WILL NOT be displayed again. "),b=["textContent"],y={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"),j=(0,n.Uk)(" header;"),q=(0,n.Uk)("Specify it as a URL parameter: "),N=(0,n.Uk)("http://site:8008/execute?token=..."),$=(0,n.Uk)(";"),O=(0,n.Uk)("Specify it on the body of your JSON request: "),Z=(0,n.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,n.Uk)("."),W=(0,n.Uk)(" Confirm your credentials in order to generate a new token. "),z={class:"form-container"},R=(0,n._)("span",null,"Username",-1),L=["value"],A=(0,n._)("label",null,[(0,n._)("span",null,"Confirm password"),(0,n._)("span",null,[(0,n._)("input",{type:"password",name:"password"})])],-1),V=(0,n._)("label",null,[(0,n._)("span",null,"Token validity in days"),(0,n._)("span",null,[(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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",value:"Generate token"})],-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,w,v,(0,n._)("textarea",{class:"token",textContent:(0,h.zw)(a.token),onFocus:t[0]||(t[0]=(...e)=>o.onTokenSelect&&o.onTokenSelect(...e))},null,40,b)])])])),_:1},512),(0,n._)("div",y,[(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}),j]),(0,n._)("li",null,[q,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[N])),_:1}),$]),(0,n._)("li",null,[O,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[Z])),_:1}),E])]),W]),(0,n._)("div",z,[(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._)("span",null,[(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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",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 we={name:"Users",components:{DropdownItem:u.Z,Loading:K.Z,Modal:J.Z,Dropdown:d.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 ve=(0,Q.Z)(we,[["render",ge]]);var be=ve,ye={name:"Settings",components:{Dropdown:d.Z,DropdownItem:u.Z,Users:be,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 ke=(0,Q.Z)(ye,[["render",c]]);var _e=ke},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":[7938,2909],"./Execute/Index":[7643,7643],"./Light/Index":[747,3490,9974,747],"./LightHue/Index":[3724,3490,9974,747,3724],"./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":[2715],"./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:"7bece2d0",1155:"96c16dad",1595:"cf573de8",1798:"2ea76630",1938:"1dc95872",2235:"69f662d8",2346:"9a487752",2362:"620095dd",2380:"292bff03",2466:"633bb83f",2790:"7a362d87",2820:"07ee3664",2844:"e8c1790f",2909:"c8d42c97",2989:"fa06c8b8",3249:"a2010c2d",3390:"9698f86e",3490:"d482e29b",3673:"54ea2f3c",3724:"e158dad8",3785:"940990df",4021:"a3380d38",4024:"0022b296",4196:"a5404a99",4276:"51717631",4548:"686dd66b",4826:"64f0df2a",4848:"bb8b35b4",4981:"c4835180",5111:"d348fed1",5193:"1de6bb98",5207:"b6625280",5210:"d6ee4d6c",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:"ac8ea81e",6856:"f91f7269",6869:"73728371",6899:"e46d75ac",7009:"04000b65",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",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",2909:"35b29718",2989:"a4270756",3390:"d1df484b",3490:"3516cb6e",3724:"a6a4f193",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5466:"fb0c1b5f",5779:"b285a776",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6365:"23d86f00",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6869:"5c09b6fd",6899:"f3d46bda",7009:"1fe8ed46",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((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"],w=["innerHTML"],b=["textContent"],v=["innerHTML"];function y(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,w)):(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,b)):(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,v)):(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",y],["__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 j=(0,_.Z)(M,[["render",U]]);var q=j;const N={class:"assistant-modal"},$={class:"icon"},O={key:0,class:"fa fa-bell"},Z={key:1,class:"fa fa-volume-up"},E={key:2,class:"fa fa-comment-dots"},W={key:3,class:"fa fa-microphone"},z={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",N,[(0,i.Wm)(r,{ref:"assistantModal"},{default:(0,i.w5)((()=>[(0,i._)("div",$,[a.state.alerting?((0,i.wg)(),(0,i.iD)("i",O)):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",W))]),(0,i._)("div",z,[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:q,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 we(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 be={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 ve=(0,_.Z)(be,[["render",we],["__scopeId","data-v-5df52982"]]);var ye=ve,ke={name:"Dashboard",mixins:[T.Z],components:{Widget:ye,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),je={key:0,class:"row"},qe=Te((()=>(0,i._)("label",null,[(0,i._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password"})],-1))),Ne=[qe],$e={class:"row buttons"},Oe=["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",je,Ne)):(0,i.kq)("",!0),(0,i._)("div",$e,[(0,i._)("input",{type:"submit",class:"btn btn-primary",value:o._register?"Register":"Login"},null,8,Oe)]),Ze])])}var We={name:"Login",mixins:[T.Z],props:{register:{type:Boolean,required:!1,default:!1}},computed:{_register(){return this.parseBoolean(this.register)}}};const ze=(0,_.Z)(We,[["render",Ee],["__scopeId","data-v-16cef6aa"]]);var Re=ze;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-6395b430"),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()},collapsedDefault(){return!(!this.isMobile()&&!this.isTablet())}},methods:{onItemClick(e){this.$emit("select",e),this.collapsed=!!this.isMobile()||this.collapsedDefault}},data(){return{collapsed:!0,icons:ft,host:null}},mounted(){this.collapsed=this.collapsedDefault}};const gt=(0,_.Z)(mt,[["render",pt],["__scopeId","data-v-6395b430"]]);var wt=gt,bt=s(2715),vt={name:"Panel",mixins:[T.Z],components:{Settings:bt["default"],Nav:wt,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 yt=(0,_.Z)(vt,[["render",Ke],["__scopeId","data-v-344b6d1a"]]);var kt=yt;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:bt["default"],Nav:wt,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 j}});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 w=g,b={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 v=b;var y=v,k={name:"Screen",methods:{isMobile(){return window.matchMedia("only screen and (max-width: 768px)").matches},isTablet(){return!this.isMobile()&&window.matchMedia("only screen and (max-width: 1023px)").matches},isDesktop(){return window.matchMedia("only screen and (min-width: 1024px)").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}`},objectsEqual(e,t){if("object"!==typeof e||"object"!==typeof t)return!1;for(const s of Object.keys(e||{}))switch(typeof e[s]){case"object":if(!this.objectsEqual(e[s],t[s]))return!1;break;case"function":if(e[s].toString()!=t[s]?.toString())return!1;break;default:if(e[s]!=t[s])return!1;break}for(const s of Object.keys(t||{}))if(null==e[s]&&null!=t[s])return!1;return!0}}};const T=S;var U=T,P={name:"Utils",mixins:[r,d,y,w,p,x,I,U]};const M=P;var j=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},522: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-2 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-10":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-92252276"]]);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},2715:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return _e}});var n=s(6252);const i={class:"settings-container"},a={class:"col-8"},o={class:"col-4 pull-right"},r=(0,n._)("i",{class:"fa fa-plus"},null,-1),l=[r];function c(e,t,s,r,c,d){const u=(0,n.up)("DropdownItem"),h=(0,n.up)("Dropdown"),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.Wm)(h,{title:"Select a category","icon-class":"fa fa-ellipsis-h"},{default:(0,n.w5)((()=>[(0,n.Wm)(u,{text:"Users","icon-class":"fa fa-user","item-class":{selected:"users"===c.selectedView},onClick:t[0]||(t[0]=e=>c.selectedView="users")},null,8,["item-class"]),(0,n.Wm)(u,{text:"Generate a token","icon-class":"fa fa-key","item-class":{selected:"token"===c.selectedView},onClick:t[1]||(t[1]=e=>c.selectedView="token")},null,8,["item-class"])])),_:1})]),(0,n._)("div",o,["users"===c.selectedView?((0,n.wg)(),(0,n.iD)("button",{key:0,title:"Add User",onClick:t[2]||(t[2]=t=>e.$refs.usersView.$refs.addUserModal.show())},l)):(0,n.kq)("",!0)])]),(0,n._)("main",null,["users"===c.selectedView?((0,n.wg)(),(0,n.j4)(p,{key:0,"session-token":c.sessionToken,"current-user":c.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===c.selectedView?((0,n.wg)(),(0,n.j4)(f,{key:1,"session-token":c.sessionToken,"current-user":c.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,n.kq)("",!0)])])}var d=s(5771),u=s(522),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."),w=(0,n._)("br",null,null,-1),b=(0,n.Uk)(" Also, make sure to save it - it WILL NOT be displayed again. "),v=["textContent"],y={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"),j=(0,n.Uk)(" header;"),q=(0,n.Uk)("Specify it as a URL parameter: "),N=(0,n.Uk)("http://site:8008/execute?token=..."),$=(0,n.Uk)(";"),O=(0,n.Uk)("Specify it on the body of your JSON request: "),Z=(0,n.Uk)('{"type":"request", "action", "...", "token":"..."}'),E=(0,n.Uk)("."),W=(0,n.Uk)(" Confirm your credentials in order to generate a new token. "),z={class:"form-container"},R=(0,n._)("span",null,"Username",-1),L=["value"],A=(0,n._)("label",null,[(0,n._)("span",null,"Confirm password"),(0,n._)("span",null,[(0,n._)("input",{type:"password",name:"password"})])],-1),V=(0,n._)("label",null,[(0,n._)("span",null,"Token validity in days"),(0,n._)("span",null,[(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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",value:"Generate token"})],-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,w,b,(0,n._)("textarea",{class:"token",textContent:(0,h.zw)(a.token),onFocus:t[0]||(t[0]=(...e)=>o.onTokenSelect&&o.onTokenSelect(...e))},null,40,v)])])])),_:1},512),(0,n._)("div",y,[(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}),j]),(0,n._)("li",null,[q,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[N])),_:1}),$]),(0,n._)("li",null,[O,(0,n.Wm)(c,null,{default:(0,n.w5)((()=>[Z])),_:1}),E])]),W]),(0,n._)("div",z,[(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._)("span",null,[(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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",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._)("label",null,[(0,n._)("input",{type:"submit",class:"btn btn-primary",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 we={name:"Users",components:{DropdownItem:u.Z,Loading:K.Z,Modal:J.Z,Dropdown:d.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)(we,[["render",ge]]);var ve=be,ye={name:"Settings",components:{Dropdown:d.Z,DropdownItem:u.Z,Users:ve,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 ke=(0,Q.Z)(ye,[["render",c]]);var _e=ke},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":[1040,7503],"./Execute/Index":[7643,7643],"./Light/Index":[747,3490,7246,747],"./LightHue/Index":[3724,3490,7246,747,3724],"./Media/Index":[4196,7246,9978,8589,4196],"./MediaMplayer/Index":[6509,7246,9978,8589,4196,6509],"./MediaMpv/Index":[5895,7246,9978,8589,4196,5895],"./MediaOmxplayer/Index":[9633,7246,9978,8589,4196,9633],"./MediaVlc/Index":[767,7246,9978,8589,4196,767],"./Music/Index":[6833,7246,9978,6833],"./MusicMpd/Index":[3249,7246,9978,6833,3249],"./MusicSnapcast/Index":[2790,3490,7246,2790],"./MusicSpotify/Index":[9369,7246,9978,6833,9369],"./Rtorrent/Index":[2820,8589,6899,2820],"./Settings/Index":[2715],"./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,7246,4848],"./Zwave/Index":[6027,3490,7246,906,6027],"./ZwaveMqtt/Index":[2362,3490,7246,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,7246,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:"396e4125",767:"32c26b46",818:"3f4c9ffa",906:"d6d88353",1155:"57d4e8bd",1595:"cf573de8",1798:"2ea76630",1938:"1dc95872",2235:"69f662d8",2346:"9a487752",2362:"620095dd",2380:"292bff03",2466:"633bb83f",2790:"c9ba5cb8",2820:"07ee3664",2844:"e8c1790f",2989:"fa06c8b8",3249:"a2010c2d",3390:"9698f86e",3490:"d482e29b",3673:"54ea2f3c",3724:"e158dad8",3785:"940990df",4021:"a3380d38",4024:"0022b296",4196:"a5404a99",4276:"51717631",4548:"686dd66b",4826:"64f0df2a",4848:"a874ab73",4981:"c4835180",5060:"e0608eb5",5111:"d348fed1",5193:"1de6bb98",5207:"b6625280",5210:"d6ee4d6c",5466:"c08dda4e",5528:"f33f80c6",5779:"45aee2fa",5824:"bdf4e44b",5895:"bc039cca",6003:"c76e25e0",6013:"5c85c65a",6027:"e3b113ee",6509:"9ca36429",6590:"a024a679",6739:"14f222c1",6833:"ac8ea81e",6856:"f91f7269",6869:"73728371",6899:"e46d75ac",7009:"04000b65",7246:"22fd9eab",7262:"6193bf34",7420:"e53d9d48",7503:"c8252b66",7643:"48f991b1",8184:"6859ae89",8589:"21ae83d2",8990:"83944f37",9196:"462b659b",9299:"710819a1",9369:"f7907b71",9496:"5f4ffbab",9575:"fb8eab70",9633:"23b95cb0",9694:"6487ada9",9895:"f9b70895",9978:"f9fb399e"}[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",2235:"616ae2d8",2346:"f042c092",2380:"7e6cb2ed",2790:"8a938bab",2844:"fa1de455",2989:"a4270756",3390:"d1df484b",3490:"3516cb6e",3724:"a6a4f193",3785:"5ed5a4df",4021:"0331be37",4024:"3db9cda2",4196:"f1fcf8f5",4276:"07502cf2",4826:"437fa334",4848:"ae3af6a6",4981:"8830c3ce",5060:"d2fae243",5193:"7f3c2173",5207:"831746a7",5210:"435161f9",5466:"fb0c1b5f",5779:"b285a776",5824:"f9f7ad29",6003:"0868fde4",6013:"2141ef7f",6590:"778aa4c7",6739:"649d4b27",6833:"c53bec53",6869:"5c09b6fd",6899:"f3d46bda",7009:"1fe8ed46",7246:"1f677d06",7262:"7ac2a7a5",7420:"e42d1496",7503:"2381eb25",7643:"e25374a8",8589:"459f0f41",8990:"14b5ace2",9196:"18347c3c",9496:"ad6b58f0",9575:"eba29f96",9694:"509f8cb5",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=40faf425&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=40faf425&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-40faf425\"]])\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=92252276&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=92252276&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-92252276\"]])\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\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=2a4d58dc\"\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=2a4d58dc&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=8de4f27c\"\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=8de4f27c&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=37be3587\"\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=37be3587&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\t7938,\n\t\t2909\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\t3724,\n\t\t3490,\n\t\t9974,\n\t\t747,\n\t\t3724\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\t2715\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\":\"7bece2d0\",\"1155\":\"96c16dad\",\"1595\":\"cf573de8\",\"1798\":\"2ea76630\",\"1938\":\"1dc95872\",\"2235\":\"69f662d8\",\"2346\":\"9a487752\",\"2362\":\"620095dd\",\"2380\":\"292bff03\",\"2466\":\"633bb83f\",\"2790\":\"7a362d87\",\"2820\":\"07ee3664\",\"2844\":\"e8c1790f\",\"2909\":\"c8d42c97\",\"2989\":\"fa06c8b8\",\"3249\":\"a2010c2d\",\"3390\":\"9698f86e\",\"3490\":\"d482e29b\",\"3673\":\"54ea2f3c\",\"3724\":\"e158dad8\",\"3785\":\"940990df\",\"4021\":\"a3380d38\",\"4024\":\"0022b296\",\"4196\":\"a5404a99\",\"4276\":\"51717631\",\"4548\":\"686dd66b\",\"4826\":\"64f0df2a\",\"4848\":\"bb8b35b4\",\"4981\":\"c4835180\",\"5111\":\"d348fed1\",\"5193\":\"1de6bb98\",\"5207\":\"b6625280\",\"5210\":\"d6ee4d6c\",\"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\":\"ac8ea81e\",\"6856\":\"f91f7269\",\"6869\":\"73728371\",\"6899\":\"e46d75ac\",\"7009\":\"04000b65\",\"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\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"2909\":\"35b29718\",\"2989\":\"a4270756\",\"3390\":\"d1df484b\",\"3490\":\"3516cb6e\",\"3724\":\"a6a4f193\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5466\":\"fb0c1b5f\",\"5779\":\"b285a776\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6365\":\"23d86f00\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6869\":\"5c09b6fd\",\"6899\":\"f3d46bda\",\"7009\":\"1fe8ed46\",\"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,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"2909\":1,\"2989\":1,\"3390\":1,\"3490\":1,\"3724\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5466\":1,\"5779\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6365\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6869\":1,\"6899\":1,\"7009\":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|700|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__(7224); })\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","collapsedDefault","isMobile","isTablet","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","matchMedia","matches","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","objectsEqual","a","b","p","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","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","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","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
+{"version":3,"file":"static/js/app.95d564a7.js","mappings":"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C,SAAS3P,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,KACA,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,KA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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=6395b430&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=6395b430&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-6395b430\"]])\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=92252276&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=92252276&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-92252276\"]])\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\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=2a4d58dc\"\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=2a4d58dc&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=8de4f27c\"\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=8de4f27c&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=37be3587\"\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=37be3587&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\t1040,\n\t\t7503\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\t7246,\n\t\t747\n\t],\n\t\"./LightHue/Index\": [\n\t\t3724,\n\t\t3490,\n\t\t7246,\n\t\t747,\n\t\t3724\n\t],\n\t\"./Media/Index\": [\n\t\t4196,\n\t\t7246,\n\t\t9978,\n\t\t8589,\n\t\t4196\n\t],\n\t\"./MediaMplayer/Index\": [\n\t\t6509,\n\t\t7246,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t6509\n\t],\n\t\"./MediaMpv/Index\": [\n\t\t5895,\n\t\t7246,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t5895\n\t],\n\t\"./MediaOmxplayer/Index\": [\n\t\t9633,\n\t\t7246,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t9633\n\t],\n\t\"./MediaVlc/Index\": [\n\t\t767,\n\t\t7246,\n\t\t9978,\n\t\t8589,\n\t\t4196,\n\t\t767\n\t],\n\t\"./Music/Index\": [\n\t\t6833,\n\t\t7246,\n\t\t9978,\n\t\t6833\n\t],\n\t\"./MusicMpd/Index\": [\n\t\t3249,\n\t\t7246,\n\t\t9978,\n\t\t6833,\n\t\t3249\n\t],\n\t\"./MusicSnapcast/Index\": [\n\t\t2790,\n\t\t3490,\n\t\t7246,\n\t\t2790\n\t],\n\t\"./MusicSpotify/Index\": [\n\t\t9369,\n\t\t7246,\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\t2715\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\t7246,\n\t\t4848\n\t],\n\t\"./Zwave/Index\": [\n\t\t6027,\n\t\t3490,\n\t\t7246,\n\t\t906,\n\t\t6027\n\t],\n\t\"./ZwaveMqtt/Index\": [\n\t\t2362,\n\t\t3490,\n\t\t7246,\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\t7246,\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\":\"396e4125\",\"767\":\"32c26b46\",\"818\":\"3f4c9ffa\",\"906\":\"d6d88353\",\"1155\":\"57d4e8bd\",\"1595\":\"cf573de8\",\"1798\":\"2ea76630\",\"1938\":\"1dc95872\",\"2235\":\"69f662d8\",\"2346\":\"9a487752\",\"2362\":\"620095dd\",\"2380\":\"292bff03\",\"2466\":\"633bb83f\",\"2790\":\"c9ba5cb8\",\"2820\":\"07ee3664\",\"2844\":\"e8c1790f\",\"2989\":\"fa06c8b8\",\"3249\":\"a2010c2d\",\"3390\":\"9698f86e\",\"3490\":\"d482e29b\",\"3673\":\"54ea2f3c\",\"3724\":\"e158dad8\",\"3785\":\"940990df\",\"4021\":\"a3380d38\",\"4024\":\"0022b296\",\"4196\":\"a5404a99\",\"4276\":\"51717631\",\"4548\":\"686dd66b\",\"4826\":\"64f0df2a\",\"4848\":\"a874ab73\",\"4981\":\"c4835180\",\"5060\":\"e0608eb5\",\"5111\":\"d348fed1\",\"5193\":\"1de6bb98\",\"5207\":\"b6625280\",\"5210\":\"d6ee4d6c\",\"5466\":\"c08dda4e\",\"5528\":\"f33f80c6\",\"5779\":\"45aee2fa\",\"5824\":\"bdf4e44b\",\"5895\":\"bc039cca\",\"6003\":\"c76e25e0\",\"6013\":\"5c85c65a\",\"6027\":\"e3b113ee\",\"6509\":\"9ca36429\",\"6590\":\"a024a679\",\"6739\":\"14f222c1\",\"6833\":\"ac8ea81e\",\"6856\":\"f91f7269\",\"6869\":\"73728371\",\"6899\":\"e46d75ac\",\"7009\":\"04000b65\",\"7246\":\"22fd9eab\",\"7262\":\"6193bf34\",\"7420\":\"e53d9d48\",\"7503\":\"c8252b66\",\"7643\":\"48f991b1\",\"8184\":\"6859ae89\",\"8589\":\"21ae83d2\",\"8990\":\"83944f37\",\"9196\":\"462b659b\",\"9299\":\"710819a1\",\"9369\":\"f7907b71\",\"9496\":\"5f4ffbab\",\"9575\":\"fb8eab70\",\"9633\":\"23b95cb0\",\"9694\":\"6487ada9\",\"9895\":\"f9b70895\",\"9978\":\"f9fb399e\"}[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\",\"2235\":\"616ae2d8\",\"2346\":\"f042c092\",\"2380\":\"7e6cb2ed\",\"2790\":\"8a938bab\",\"2844\":\"fa1de455\",\"2989\":\"a4270756\",\"3390\":\"d1df484b\",\"3490\":\"3516cb6e\",\"3724\":\"a6a4f193\",\"3785\":\"5ed5a4df\",\"4021\":\"0331be37\",\"4024\":\"3db9cda2\",\"4196\":\"f1fcf8f5\",\"4276\":\"07502cf2\",\"4826\":\"437fa334\",\"4848\":\"ae3af6a6\",\"4981\":\"8830c3ce\",\"5060\":\"d2fae243\",\"5193\":\"7f3c2173\",\"5207\":\"831746a7\",\"5210\":\"435161f9\",\"5466\":\"fb0c1b5f\",\"5779\":\"b285a776\",\"5824\":\"f9f7ad29\",\"6003\":\"0868fde4\",\"6013\":\"2141ef7f\",\"6590\":\"778aa4c7\",\"6739\":\"649d4b27\",\"6833\":\"c53bec53\",\"6869\":\"5c09b6fd\",\"6899\":\"f3d46bda\",\"7009\":\"1fe8ed46\",\"7246\":\"1f677d06\",\"7262\":\"7ac2a7a5\",\"7420\":\"e42d1496\",\"7503\":\"2381eb25\",\"7643\":\"e25374a8\",\"8589\":\"459f0f41\",\"8990\":\"14b5ace2\",\"9196\":\"18347c3c\",\"9496\":\"ad6b58f0\",\"9575\":\"eba29f96\",\"9694\":\"509f8cb5\",\"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,\"2235\":1,\"2346\":1,\"2380\":1,\"2790\":1,\"2844\":1,\"2989\":1,\"3390\":1,\"3490\":1,\"3724\":1,\"3785\":1,\"4021\":1,\"4024\":1,\"4196\":1,\"4276\":1,\"4826\":1,\"4848\":1,\"4981\":1,\"5060\":1,\"5193\":1,\"5207\":1,\"5210\":1,\"5466\":1,\"5779\":1,\"5824\":1,\"6003\":1,\"6013\":1,\"6590\":1,\"6739\":1,\"6833\":1,\"6869\":1,\"6899\":1,\"7009\":1,\"7246\":1,\"7262\":1,\"7420\":1,\"7503\":1,\"7643\":1,\"8589\":1,\"8990\":1,\"9196\":1,\"9496\":1,\"9575\":1,\"9694\":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|700|858)9|(34|65)90|4021|4981|7246|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__(9882); })\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","collapsedDefault","isMobile","isTablet","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","matchMedia","matches","isDesktop","capitalize","charAt","prettify","t","toLowerCase","convertSize","unit","units","u","objectsEqual","a","b","p","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","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","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","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