platypush/platypush/backend/http/dist/static/js/chunk-2d2091df.377ea7b0.js.map

1 line
6.7 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/panels/LightHue/Index.vue","webpack:///./src/components/panels/LightHue/Index.vue?3f71"],"names":["loading","plugin-name","config","lights","groups","scenes","animations","initial-group","initialGroup","loading-groups","loadingGroups","toggleGroup","name","components","Loading","LightPlugin","mixins","Utils","props","type","Object","default","data","loadingLights","computed","groupsByName","this","entries","reduce","id","group","keys","length","methods","getLights","request","getGroups","filter","recycle","toLowerCase","obj","getScenes","push","setGroupsLoading","refresh","unsetGroupsLoading","Promise","all","mounted","render"],"mappings":"mRACiB,EAAAA,S,iBAAf,eAA0B,Y,sBAC1B,eAE2C,GAF9BC,cAAY,YAAaC,OAAQ,EAAAA,OAASC,OAAQ,EAAAA,OAASC,OAAQ,EAAAA,OAASC,OAAQ,EAAAA,OACnFC,WAAY,EAAAA,WAAaC,gBAAe,EAAAC,aAAeC,iBAAgB,EAAAC,cACvE,cAAc,EAAAC,a,qSAQf,GACbC,KAAM,WACNC,WAAY,CAACC,UAAA,KAASC,YAAA,cACtBC,OAAQ,CAACC,EAAA,MACTC,MAAO,CACLhB,OAAQ,CACNiB,KAAMC,OACNC,QAAS,eAIbC,KAXa,WAYX,MAAO,CACLnB,OAAQ,GACRC,OAAQ,GACRC,OAAQ,GACRC,WAAY,GACZN,SAAS,EACTuB,cAAe,GACfb,cAAe,KAInBc,SAAU,CACRC,aADQ,WAEN,OAAKC,KAAKtB,OAGHgB,OAAOO,QAAQD,KAAKtB,QAAQwB,QAAO,SAACxB,EAAD,GAAyB,0BAAfyB,EAAe,KAAXC,EAAW,KAMjE,OALA1B,EAAO0B,EAAMlB,MAAQiB,GAArB,iCACKC,GADL,IAEED,GAAIA,IAGCzB,IACN,IATM,IAYXI,aAfQ,WAgBN,IAAKkB,KAAKxB,OAAOE,SAAWgB,OAAOW,KAAKL,KAAKxB,OAAOE,QAAQ4B,OAC1D,OAAO,KAET,IAAMF,EAAQJ,KAAKxB,OAAOE,OAAO,GACjC,OAAI0B,KAASJ,KAAKtB,OACTsB,KAAKtB,OAAO0B,GAAOD,GACnBC,KAASJ,KAAKD,aACdC,KAAKD,aAAaK,GAAOD,GAC3B,OAIXI,QAAS,CACDC,UADC,WACW,wKACH,EAAKC,QAAQ,wBADV,sFAIZC,UALC,WAKW,oKACThB,OADS,SACY,EAAKe,QAAQ,wBADzB,iDACFR,QADE,gBAEXU,QAAO,SAACP,GAAD,OAAYA,EAAM,GAAGQ,SAA2C,SAAhCR,EAAM,GAAGX,KAAKoB,iBACrDX,QAAO,SAACY,EAAD,GAAsB,0BAAfX,EAAe,KAAXC,EAAW,KAE5B,OADAU,EAAIX,GAAMC,EACHU,IACN,KANS,8CASZC,UAdC,WAcW,wKACH,EAAKN,QAAQ,wBADV,sFAIZxB,YAlBC,SAkBWmB,GAAO,qKACjB1B,EAAS,GACF,MAAT0B,GACF1B,EAAOsC,KAAKZ,EAAMlB,MAEpB,EAAK+B,iBAAiBb,GALC,kBAOf,EAAKK,QAAQ,mBAAoB,CACrC/B,OAAQA,IARW,uBAWf,EAAKwC,UAXU,uBAarB,EAAKC,mBAAmBf,GAbH,4EAiBnBc,QAnCC,WAmCS,uKACd,EAAK5C,SAAU,EADD,kBAGoC8C,QAAQC,IAAI,CAC1D,EAAKb,YACL,EAAKE,YACL,EAAKK,cANK,sCAGX,EAAKtC,OAHM,KAGE,EAAKC,OAHP,KAGe,EAAKC,OAHpB,4BASZ,EAAKL,SAAU,EATH,4EAahB2C,iBAhDO,WAgDqB,IAC1B,IAAIjC,EAAgB,GADM,mBAARN,EAAQ,yBAARA,EAAQ,gBAE1B,GAAIA,EAAO4B,QAAU5B,EAAO,GAAI,wBACVA,GADU,IAC9B,gCAAW0B,EAAX,QACEpB,EAAcoB,EAAMD,KAAM,GAFE,oCAI9BnB,EAAgBU,OAAOW,KAAKL,KAAKtB,QAGnCsB,KAAKhB,cAAL,iCAAyBgB,KAAKhB,eAAkBA,IAGlDmC,mBA5DO,WA4DuB,2BAARzC,EAAQ,yBAARA,EAAQ,gBAC5B,cAAoBA,EAApB,eAA4B,CAAvB,IAAM0B,EAAI,KACTA,EAAMD,MAAMH,KAAKhB,sBACZgB,KAAKhB,cAAcoB,EAAMD,OAKxCmB,QAvHa,WAwHXtB,KAAKkB,YCjIT,EAAOK,OAASA,EAED","file":"static/js/chunk-2d2091df.377ea7b0.js","sourcesContent":["<template>\n <Loading v-if=\"loading\" />\n <LightPlugin plugin-name=\"light.hue\" :config=\"config\" :lights=\"lights\" :groups=\"groups\" :scenes=\"scenes\"\n :animations=\"animations\" :initial-group=\"initialGroup\" :loading-groups=\"loadingGroups\"\n @group-toggle=\"toggleGroup\" />\n</template>\n\n<script>\nimport LightPlugin from \"@/components/panels/Light/Index\";\nimport Utils from \"@/Utils\";\nimport Loading from \"@/components/Loading\";\n\nexport default {\n name: \"LightHue\",\n components: {Loading, LightPlugin},\n mixins: [Utils],\n props: {\n config: {\n type: Object,\n default: () => {},\n },\n },\n\n data() {\n return {\n lights: {},\n groups: {},\n scenes: {},\n animations: {},\n loading: false,\n loadingLights: {},\n loadingGroups: {},\n }\n },\n\n computed: {\n groupsByName() {\n if (!this.groups)\n return {}\n\n return Object.entries(this.groups).reduce((groups, [id, group]) => {\n groups[group.name || id] = {\n ...group,\n id: id,\n }\n\n return groups\n }, {})\n },\n\n initialGroup() {\n if (!this.config.groups || !Object.keys(this.config.groups).length)\n return null\n\n const group = this.config.groups[0]\n if (group in this.groups)\n return this.groups[group].id\n else if (group in this.groupsByName)\n return this.groupsByName[group].id\n return null\n },\n },\n\n methods: {\n async getLights() {\n return await this.request('light.hue.get_lights')\n },\n\n async getGroups() {\n return Object.entries(await this.request('light.hue.get_groups'))\n .filter((group) => !group[1].recycle && group[1].type.toLowerCase() === 'room')\n .reduce((obj, [id, group]) => {\n obj[id] = group\n return obj\n }, {})\n },\n\n async getScenes() {\n return await this.request('light.hue.get_scenes')\n },\n\n async toggleGroup(group) {\n const groups = []\n if (group != null)\n groups.push(group.name)\n\n this.setGroupsLoading(group)\n try {\n await this.request('light.hue.toggle', {\n groups: groups,\n })\n\n await this.refresh()\n } finally {\n this.unsetGroupsLoading(group)\n }\n },\n\n async refresh() {\n this.loading = true\n try {\n [this.lights, this.groups, this.scenes] = await Promise.all([\n this.getLights(),\n this.getGroups(),\n this.getScenes(),\n ])\n } finally {\n this.loading = false\n }\n },\n\n setGroupsLoading(...groups) {\n let loadingGroups = {}\n if (groups.length && groups[0]) {\n for (const group of groups)\n loadingGroups[group.id] = true\n } else {\n loadingGroups = Object.keys(this.groups)\n }\n\n this.loadingGroups = {...this.loadingGroups, ...loadingGroups}\n },\n\n unsetGroupsLoading(...groups) {\n for (const group of groups) {\n if (group.id in this.loadingGroups)\n delete this.loadingGroups[group.id]\n }\n },\n },\n\n mounted() {\n this.refresh()\n },\n}\n</script>\n","import { render } from \"./Index.vue?vue&type=template&id=1c69e052&bindings={\\\"config\\\":\\\"props\\\",\\\"lights\\\":\\\"data\\\",\\\"groups\\\":\\\"data\\\",\\\"scenes\\\":\\\"data\\\",\\\"animations\\\":\\\"data\\\",\\\"loading\\\":\\\"data\\\",\\\"loadingLights\\\":\\\"data\\\",\\\"loadingGroups\\\":\\\"data\\\",\\\"groupsByName\\\":\\\"options\\\",\\\"initialGroup\\\":\\\"options\\\",\\\"getLights\\\":\\\"options\\\",\\\"getGroups\\\":\\\"options\\\",\\\"getScenes\\\":\\\"options\\\",\\\"toggleGroup\\\":\\\"options\\\",\\\"refresh\\\":\\\"options\\\",\\\"setGroupsLoading\\\":\\\"options\\\",\\\"unsetGroupsLoading\\\":\\\"options\\\"}\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nscript.render = render\n\nexport default script"],"sourceRoot":""}