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

1 line
16 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","toggleLight","setLight","setGroup","setScene","startAnimation","stopAnimation","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","refresh","event","requests","value","attr","method","req","Promise","all","groupId","sceneId","background","animation","mounted","render"],"mappings":"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","file":"static/js/chunk-2d2091df.ec2fb649.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\"\n @light-toggle=\"toggleLight\" @set-light=\"setLight\" @set-group=\"setGroup\" @select-scene=\"setScene\"\n @start-animation=\"startAnimation\" @stop-animation=\"stopAnimation\" />\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\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=ffdb7158&bindings={\\\"config\\\":\\\"props\\\",\\\"loading\\\":\\\"data\\\",\\\"colorConverter\\\":\\\"data\\\",\\\"initialGroup\\\":\\\"options\\\",\\\"getLights\\\":\\\"options\\\",\\\"getGroups\\\":\\\"options\\\",\\\"getScenes\\\":\\\"options\\\",\\\"getAnimations\\\":\\\"options\\\",\\\"toggleGroup\\\":\\\"options\\\",\\\"toggleLight\\\":\\\"options\\\",\\\"setLight\\\":\\\"options\\\",\\\"setGroup\\\":\\\"options\\\",\\\"setScene\\\":\\\"options\\\",\\\"refresh\\\":\\\"options\\\",\\\"startAnimation\\\":\\\"options\\\",\\\"stopAnimation\\\":\\\"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":""}