platypush/platypush/backend/http/dist/static/js/chunk-2d2091df.8d32d3ba.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","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","mounted","render"],"mappings":"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","file":"static/js/chunk-2d2091df.8d32d3ba.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\" @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\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=10fcb340&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":""}