platypush/platypush/backend/http/webapp/dist/static/js/chunk-2d2091df.f4b1ca67.js.map

1 line
15 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/panels/LightHue/Index.vue","webpack:///./src/components/panels/Light/Utils.vue","webpack:///./src/components/panels/Light/Utils.vue?f8af","webpack:///./src/components/panels/LightHue/Index.vue?3f71"],"names":["loading","plugin-name","config","lights","groups","scenes","animations","initial-group","initialGroup","loading-groups","loadingGroups","color-converter","colorConverter","toggleGroup","onLightChanged","toggleLight","setLight","setGroup","setScene","startAnimation","stopAnimation","refresh","name","data","loadingLights","computed","groupsByName","this","Object","entries","reduce","id","group","methods","_getGroups","groupIds","filter","length","values","self","map","_getLights","lightIds","setGroupsLoading","groupsIds","forEach","setLightsLoading","unsetGroupsLoading","light","unsetLightsLoading","groupAction","action","args","request","lightAction","components","Loading","LightPlugin","mixins","props","type","default","hue","sat","bri","ct","keys","getLights","getGroups","recycle","toLowerCase","obj","getScenes","scene","getAnimations","event","requests","value","attr","method","req","Promise","all","groupId","sceneId","background","animation","state","mounted","render"],"mappings":"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","file":"static/js/chunk-2d2091df.f4b1ca67.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 :color-converter=\"colorConverter\" @group-toggle=\"toggleGroup\" @light-changed=\"onLightChanged\"\n @light-toggle=\"toggleLight\" @set-light=\"setLight\" @set-group=\"setGroup\" @select-scene=\"setScene\"\n @start-animation=\"startAnimation\" @stop-animation=\"stopAnimation\" @refresh=\"refresh(true)\"/>\n</template>\n\n<script>\nimport LightPlugin from \"@/components/panels/Light/Index\";\nimport LightUtils from \"@/components/panels/Light/Utils\";\nimport { ColorConverter } from \"@/components/panels/Light/color\"\nimport Utils from \"@/Utils\";\nimport Loading from \"@/components/Loading\";\n\nexport default {\n name: \"LightHue\",\n components: {Loading, LightPlugin},\n mixins: [Utils, LightUtils],\n props: {\n config: {\n type: Object,\n default: () => {},\n },\n },\n\n data() {\n return {\n loading: false,\n colorConverter: new ColorConverter({\n hue: [0, 65535],\n sat: [0, 255],\n bri: [0, 255],\n ct: [150, 500],\n })\n }\n },\n\n computed: {\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 Object.entries(await this.request('light.hue.get_scenes'))\n .filter((scene) => !scene[1].recycle && scene[1].type.toLowerCase() === 'lightscene')\n .reduce((obj, [id, scene]) => {\n obj[id] = scene\n return obj\n }, {})\n },\n\n async getAnimations() {\n return await this.request('light.hue.get_animations')\n },\n\n async toggleGroup(group) {\n let groups = Object.values(this.groups)\n let args = {\n groups: groups.map((group) => group.name)\n }\n\n if (group != null) {\n groups = [group]\n args = {\n groups: [group.name],\n }\n }\n\n await this.groupAction('light.hue.toggle', args, ...groups)\n await this.refresh(true)\n },\n\n async toggleLight(light) {\n const lights = [light]\n const args = light != null ? {\n lights: [light.name],\n } : {}\n\n await this.lightAction('light.hue.toggle', args, ...lights)\n await this.refresh(true)\n },\n\n async setLight(event) {\n let lights = Object.keys(this.lights)\n const light = event.light\n const args = {}\n\n if (light) {\n args.lights = [light.name]\n lights = [light]\n }\n\n const self = this\n const requests = Object.entries(event.value).map(([attr, value]) => {\n let method = null;\n args.value = value\n\n switch (attr) {\n case 'brightness':\n method = 'light.hue.bri'\n break\n\n case 'temperature':\n method = 'light.hue.ct'\n break\n\n case 'xy':\n method = 'light.hue.xy'\n break\n }\n\n if (method)\n return self.lightAction(method, args, ...lights)\n }).filter((req) => req != null)\n\n await Promise.all(requests)\n await this.refresh(true)\n },\n\n async setGroup(event) {\n if (!event.groupId)\n return this.setLight(event)\n\n const group = this.groups[event.groupId]\n const args = {\n groups: [group.name],\n }\n\n const self = this\n const requests = Object.entries(event.value).map(([attr, value]) => {\n let method = null;\n args.value = value\n\n switch (attr) {\n case 'brightness':\n method = 'light.hue.bri'\n break\n\n case 'temperature':\n method = 'light.hue.ct'\n break\n\n case 'xy':\n method = 'light.hue.xy'\n break\n }\n\n if (method)\n return self.groupAction(method, args, group)\n }).filter((req) => req != null)\n\n await Promise.all(requests)\n await this.refresh(true)\n },\n\n async setScene(event) {\n await this.groupAction('light.hue.scene', {\n name: this.scenes[event.sceneId].name,\n groups: [this.groups[event.groupId].name],\n }, this.groups[event.groupId])\n\n await this.refresh(true)\n },\n\n async refresh(background) {\n if (!background)\n this.loading = true\n\n try {\n [this.lights, this.groups, this.scenes, this.animations] = await Promise.all([\n this.getLights(),\n this.getGroups(),\n this.getScenes(),\n this.getAnimations(),\n ])\n } finally {\n if (!background)\n this.loading = false\n }\n },\n\n async startAnimation(event) {\n await this.request('light.hue.animate', {\n lights: event.lights,\n ...event.animation,\n })\n\n await this.refresh(true)\n },\n\n async stopAnimation() {\n await this.request('light.hue.stop_animation')\n await this.refresh(true)\n },\n\n onLightChanged(event) {\n this.lights[event.id].state = {\n ...this.lights[event.id].state,\n ...event.state,\n }\n },\n },\n\n mounted() {\n this.refresh()\n },\n}\n</script>\n","<script>\nexport default {\n name: \"Utils\",\n data() {\n return {\n lights: {},\n groups: {},\n scenes: {},\n animations: {},\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\n methods: {\n _getGroups(groupIds) {\n const groups = groupIds.filter((id) => id != null)\n if (!groups.length)\n return Object.values(this.groups)\n\n const self = this\n return groups.map((id) => id instanceof Object ? id : self.groups[id])\n },\n\n _getLights(lightIds) {\n const lights = lightIds.filter((id) => id != null)\n if (!lights.length)\n return Object.values(this.lights)\n\n const self = this\n return lights.map((id) => id instanceof Object ? id : self.lights[id])\n },\n\n setGroupsLoading(groupsIds) {\n const self = this\n this._getGroups(groupsIds).forEach((group) => {\n self.loadingGroups[group.id] = true\n if (group.lights)\n self.setLightsLoading(group.lights)\n })\n },\n\n unsetGroupsLoading(groupsIds) {\n const self = this\n this._getGroups(groupsIds).forEach((group) => {\n if (group.id in self.loadingGroups)\n delete self.loadingGroups[group.id]\n if (group.lights)\n self.setLightsLoading(group.lights)\n })\n },\n\n setLightsLoading(lightIds) {\n const self = this\n this._getLights(lightIds).forEach((light) => {\n self.loadingLights[light.id] = true\n })\n },\n\n unsetLightsLoading(lightIds) {\n const self = this\n this._getLights(lightIds).forEach((light) => {\n if (light.id in self.loadingLights)\n delete self.loadingLights[light.id]\n })\n },\n\n async groupAction(action, args, ...groups) {\n this.setGroupsLoading(groups)\n try {\n return await this.request(action, args)\n } finally {\n this.unsetGroupsLoading(groups)\n }\n },\n\n async lightAction(action, args, ...lights) {\n this.setLightsLoading(lights)\n try {\n return await this.request(action, args)\n } finally {\n this.unsetLightsLoading(lights)\n }\n },\n\n },\n}\n</script>\n","import script from \"./Utils.vue?vue&type=script&lang=js\"\nexport * from \"./Utils.vue?vue&type=script&lang=js\"\n\nexport default script","import { render } from \"./Index.vue?vue&type=template&id=54ae8cdd\"\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":""}