platypush/platypush/backend/http/webapp/dist/static/js/3798.fcfdd0e0.js

2 lines
11 KiB
JavaScript

"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3798],{4212:function(e,t,a){a.d(t,{N:function(){return s}});class s{constructor(e){if(this.ranges={hue:[0,360],sat:[0,100],bri:[0,100],ct:[154,500]},e)for(const t of Object.keys(this.ranges))e[t]&&(this.ranges[t]=e[t])}normalize(e,t,a){return a[0]+(e-t[0])*(a[1]-a[0])/(t[1]-t[0])}hslToRgb(e,t,a){[e,t,a]=[this.normalize(e,this.ranges.hue,[0,360]),this.normalize(t,this.ranges.sat,[0,100]),this.normalize(a,this.ranges.bri,[0,100])],a/=100;const s=t*Math.min(a,1-a)/100,l=t=>{const l=(t+e/30)%12,n=a-s*Math.max(Math.min(l-3,9-l,1),-1);return Math.round(255*n)};return[l(0),l(8),l(4)]}rgbToHsl(e,t,a){e/=255,t/=255,a/=255;const s=Math.max(e,t,a),l=Math.min(e,t,a);let n,i,r=(s+l)/2;if(s===l)n=i=0;else{const o=s-l;switch(i=r>.5?o/(2-s-l):o/(s+l),s){case e:n=(t-a)/o+(t<a?6:0);break;case t:n=(a-e)/o+2;break;case a:n=(e-t)/o+4;break}n/=6}return[parseInt(this.normalize(n,[0,1],this.ranges.hue)),parseInt(this.normalize(i,[0,1],this.ranges.sat)),parseInt(this.normalize(r,[0,1],this.ranges.bri))]}xyToRgb(e,t,a){null==a&&(a=this.ranges.bri[1]);const s=1-e-t,l=(a/(this.ranges.bri[1]-1)).toFixed(2),n=l/t*e,i=l/t*s;let r=1.656492*n-.354851*l-.255038*i,o=.707196*-n+1.655397*l+.036152*i,u=.051713*n-.121364*l+1.01153*i;return r>u&&r>o&&r>1?(o/=r,u/=r,r=1):o>u&&o>r&&o>1?(r/=o,u/=o,o=1):u>r&&u>o&&u>1&&(r/=u,o/=u,u=1),r=r<=.0031308?12.92*r:1.055*Math.pow(r,1/2.4)-.055,o=o<=.0031308?12.92*o:1.055*Math.pow(o,1/2.4)-.055,u=u<=.0031308?12.92*u:1.055*Math.pow(u,1/2.4)-.055,r=Math.round(255*r),o=Math.round(255*o),u=Math.round(255*u),isNaN(r)&&(r=0),isNaN(o)&&(o=0),isNaN(u)&&(u=0),[r,o,u].map((e=>Math.min(Math.max(0,e),255)))}rgbToXY(e,t,a){e>1&&(e/=255),t>1&&(t/=255),a>1&&(a/=255),e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92;const s=.664511*e+.154324*t+.162028*a,l=.283881*e+.668433*t+.047685*a,n=88e-6*e+.07231*t+.986039*a;let i=parseFloat((s/(s+l+n)).toFixed(4)),r=parseFloat((l/(s+l+n)).toFixed(4));return isNaN(i)&&(i=0),isNaN(r)&&(r=0),[i,r]}rgbToBri(e,t,a){return Math.min(2*this.rgbToHsl(e,t,a)[2],this.ranges.bri[1])}getRGB(e){return null!=e.red&&null!=e.green&&null!=e.blue?[e.red,e.green,e.blue]:null!=e.r&&null!=e.g&&null!=e.b?[e.r,e.g,e.b]:e.rgb?e.rgb:void 0}getXY(e){return null!=e.x&&null!=e.y?[e.x,e.y]:e.xy?e.xy:void 0}toRGB(e){const t=this.getRGB(e);if(t)return t;const a=this.getXY(e);return a&&e.bri?this.xyToRgb(...a,e.bri):e.hue&&e.sat&&e.bri?this.hslToRgb(e.hue,e.sat,e.bri):(console.debug("Could not determine color space"),void console.debug(e))}toXY(e){const t=this.getXY(e);if(t&&e.bri)return[t[0],t[1],e.bri];const a=this.getRGB(e);if(a)return this.rgbToXY(...a);if(e.hue&&e.sat&&e.bri){const t=this.hslToRgb(e.hue,e.sat,e.bri);return this.rgbToXY(...t)}console.debug("Could not determine color space"),console.debug(e)}toHSL(e){if(e.hue&&e.sat&&e.bri)return[e.hue,e.sat,e.bri];const t=this.getRGB(e);if(t)return this.rgbToHsl(...t);const a=this.getXY(e);if(a&&e.bri){const t=this.xyToRgb(...a,e.bri);return this.rgbToHsl(...t)}console.debug("Could not determine color space"),console.debug(e)}hexToRgb(e){return[e.slice(1,3),e.slice(3,5),e.slice(5,7)].map((e=>parseInt(e,16)))}rgbToHex(e){return"#"+e.map((e=>{let t=e.toString(16);return t.length<2&&(t="0"+t),t})).join("")}}},4358:function(e,t,a){a.d(t,{Z:function(){return f}});var s=a(6252),l=a(3577),n=a(9963);const i={class:"slider-wrapper"},r=["textContent"],o=["textContent"],u={class:"slider-container"},h=["min","max","step","disabled","value"],c={class:"track-inner",ref:"track"},d={class:"thumb",ref:"thumb"},g=["textContent"];function v(e,t,a,v,p,b){return(0,s.wg)(),(0,s.iD)("label",i,[a.withRange?((0,s.wg)(),(0,s.iD)("span",{key:0,class:(0,l.C_)(["range-labels",{"with-label":a.withLabel}])},[a.withRange?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label left",textContent:(0,l.zw)(a.range[0])},null,8,r)):(0,s.kq)("",!0),a.withRange?((0,s.wg)(),(0,s.iD)("span",{key:1,class:"label right",textContent:(0,l.zw)(a.range[1])},null,8,o)):(0,s.kq)("",!0)],2)):(0,s.kq)("",!0),(0,s._)("span",u,[(0,s._)("input",{class:(0,l.C_)(["slider",{"with-label":a.withLabel}]),type:"range",min:a.range[0],max:a.range[1],step:a.step,disabled:a.disabled,value:a.value,ref:"range",onInput:t[0]||(t[0]=(0,n.iM)(((...e)=>b.onUpdate&&b.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,n.iM)(((...e)=>b.onUpdate&&b.onUpdate(...e)),["stop"]))},null,42,h),(0,s._)("div",{class:(0,l.C_)(["track",{"with-label":a.withLabel}])},[(0,s._)("div",c,null,512)],2),(0,s._)("div",d,null,512),a.withLabel?((0,s.wg)(),(0,s.iD)("span",{key:0,class:"label",textContent:(0,l.zw)(a.value),ref:"label"},null,8,g)):(0,s.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},withRange:{type:Boolean,default:!1}},methods:{onUpdate(e){this.update(e.target.value),this.$emit(e.type,{...e,target:{...e.target,value:this.$refs.range.value}})},update(e){const t=this.$refs.range.clientWidth,a=(e-this.range[0])/(this.range[1]-this.range[0]),s=a*t,l=this.$refs.thumb;l.style.left=s-l.clientWidth/2+"px",this.$refs.thumb.style.transform=`translate(-${a}%, -50%)`,this.$refs.track.style.width=`${s}px`}},mounted(){null!=this.value&&this.update(this.value),this.$watch((()=>this.value),(e=>this.update(e)))}},b=a(3744);const m=(0,b.Z)(p,[["render",v],["__scopeId","data-v-4b38623f"]]);var f=m},3405:function(e,t,a){a.d(t,{Z:function(){return v}});var s=a(6252),l=a(3577),n=a(9963);const i=e=>((0,s.dD)("data-v-a6396ae8"),e=e(),(0,s.Cn)(),e),r=["checked"],o=i((()=>(0,s._)("div",{class:"switch"},[(0,s._)("div",{class:"dot"})],-1))),u={class:"label"};function h(e,t,a,i,h,c){return(0,s.wg)(),(0,s.iD)("div",{class:(0,l.C_)(["power-switch",{disabled:a.disabled}]),onClick:t[0]||(t[0]=(0,n.iM)(((...e)=>c.onInput&&c.onInput(...e)),["stop"]))},[(0,s._)("input",{type:"checkbox",checked:a.value},null,8,r),(0,s._)("label",null,[o,(0,s._)("span",u,[(0,s.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var c={name:"ToggleSwitch",emits:["input"],props:{value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},methods:{onInput(e){if(this.disabled)return!1;this.$emit("input",e)}}},d=a(3744);const g=(0,d.Z)(c,[["render",h],["__scopeId","data-v-a6396ae8"]]);var v=g},3798:function(e,t,a){a.r(t),a.d(t,{default:function(){return q}});var s=a(6252),l=a(3577),n=a(9963);const i=e=>((0,s.dD)("data-v-3bfa13d8"),e=e(),(0,s.Cn)(),e),r={class:"entity light-container"},o={class:"icon"},u={class:"label"},h=["textContent"],c={class:"value-container"},d={key:0,class:"row"},g=i((()=>(0,s._)("div",{class:"icon"},[(0,s._)("i",{class:"fas fa-palette"})],-1))),v={class:"input"},p=["value"],b={key:1,class:"row"},m=i((()=>(0,s._)("div",{class:"icon"},[(0,s._)("i",{class:"fas fa-sun"})],-1))),f={class:"input"},_={key:2,class:"row"},w=i((()=>(0,s._)("div",{class:"icon"},[(0,s._)("i",{class:"fas fa-droplet"})],-1))),y={class:"input"},x={key:3,class:"row"},C=i((()=>(0,s._)("div",{class:"icon"},[(0,s._)("i",{class:"fas fa-temperature-half"})],-1))),k={class:"input"};function T(e,t,a,i,T,M){const I=(0,s.up)("EntityIcon"),R=(0,s.up)("ToggleSwitch"),D=(0,s.up)("Slider");return(0,s.wg)(),(0,s.iD)("div",r,[(0,s._)("div",{class:(0,l.C_)(["head",{collapsed:e.collapsed}])},[(0,s._)("div",o,[(0,s.Wm)(I,{entity:e.value,icon:M.icon,hasColorFill:!0,loading:e.loading,error:e.error},null,8,["entity","icon","loading","error"])]),(0,s._)("div",u,[(0,s._)("div",{class:"name",textContent:(0,l.zw)(e.value.name)},null,8,h)]),(0,s._)("div",c,[(0,s.Wm)(R,{value:e.value.on,onInput:M.toggle,onClick:t[0]||(t[0]=(0,n.iM)((()=>{}),["stop"])),disabled:e.loading||e.value.is_read_only},null,8,["value","onInput","disabled"]),(0,s._)("button",{onClick:t[1]||(t[1]=(0,n.iM)((t=>e.collapsed=!e.collapsed),["stop"]))},[(0,s._)("i",{class:(0,l.C_)(["fas",{"fa-angle-up":!e.collapsed,"fa-angle-down":e.collapsed}])},null,2)])])],2),e.collapsed?(0,s.kq)("",!0):((0,s.wg)(),(0,s.iD)("div",{key:0,class:"body",onClick:t[6]||(t[6]=(0,n.iM)(((...e)=>M.prevent&&M.prevent(...e)),["stop"]))},[M.cssColor?((0,s.wg)(),(0,s.iD)("div",d,[g,(0,s._)("div",v,[(0,s._)("input",{type:"color",value:M.cssColor,onChange:t[2]||(t[2]=e=>M.setLight({color:e.target.value}))},null,40,p)])])):(0,s.kq)("",!0),e.value.brightness?((0,s.wg)(),(0,s.iD)("div",b,[m,(0,s._)("div",f,[(0,s.Wm)(D,{range:[e.value.brightness_min,e.value.brightness_max],value:e.value.brightness,onInput:t[3]||(t[3]=e=>M.setLight({brightness:e.target.value}))},null,8,["range","value"])])])):(0,s.kq)("",!0),e.value.saturation?((0,s.wg)(),(0,s.iD)("div",_,[w,(0,s._)("div",y,[(0,s.Wm)(D,{range:[e.value.saturation_min,e.value.saturation_max],value:e.value.saturation,onInput:t[4]||(t[4]=e=>M.setLight({saturation:e.target.value}))},null,8,["range","value"])])])):(0,s.kq)("",!0),e.value.temperature?((0,s.wg)(),(0,s.iD)("div",x,[C,(0,s._)("div",k,[(0,s.Wm)(D,{range:[e.value.temperature_min,e.value.temperature_max],value:e.value.temperature,onInput:t[5]||(t[5]=e=>M.setLight({temperature:e.target.value}))},null,8,["range","value"])])])):(0,s.kq)("",!0)]))])}var M=a(4358),I=a(3405),R=a(847),D=a(4967),N=a(4212),$={name:"Light",components:{ToggleSwitch:I.Z,Slider:M.Z,EntityIcon:D["default"]},mixins:[R["default"]],data(){return{colorConverter:null}},computed:{rgbColor(){return this.value.meta?.icon?.color?this.value.meta.icon.color:this.value.red&&this.value.green&&this.value.blue?["red","green","blue"].map((e=>this.value[e])):this.colorConverter&&(null!=this.value.hue||null!=this.value.x&&null!=this.value.y)?this.value.x&&this.value.y?this.colorConverter.xyToRgb(this.value.x,this.value.y,this.value.brightness):this.colorConverter.hslToRgb(this.value.hue,this.value.saturation,this.value.brightness):void 0},cssColor(){const e=this.rgbColor;return e?this.colorConverter.rgbToHex(e):null},icon(){const e={...this.value.meta?.icon||{}};return!e.color&&this.cssColor&&(e.color=this.cssColor),e}},methods:{prevent(e){return e.stopPropagation(),!1},async toggle(e){e.stopPropagation(),this.$emit("loading",!0);try{await this.request("entities.execute",{id:this.value.id,action:"toggle"})}finally{this.$emit("loading",!1)}},async setLight(e){if(e.color){const t=this.colorConverter.hexToRgb(e.color);null!=this.value.x&&null!=this.value.y?e.xy=this.colorConverter.rgbToXY(...t):null!=this.value.hue?[e.hue,e.saturation,e.brightness]=this.colorConverter.rgbToHsl(...t):null!=this.value.red&&null!=this.value.green&&null!=this.value.blue?[e.red,e.green,e.blue]=[t.red,t.green,t.blue]:(console.warn("Unrecognized color format"),console.warn(e.color)),delete e.color}this.execute({type:"request",action:this.value.plugin+".set_lights",args:{lights:[this.value.external_id],...e}})}},mounted(){const e={};this.value.hue&&(e.hue=[this.value.hue_min,this.value.hue_max]),this.value.saturation&&(e.sat=[this.value.saturation_min,this.value.saturation_max]),this.value.brightness&&(e.bri=[this.value.brightness_min,this.value.brightness_max]),this.value.temperature&&(e.ct=[this.value.temperature_min,this.value.temperature_max]),this.colorConverter=new N.N(e)},unmounted(){this.colorConverter&&delete this.colorConverter}},z=a(3744);const L=(0,z.Z)($,[["render",T],["__scopeId","data-v-3bfa13d8"]]);var q=L}}]);
//# sourceMappingURL=3798.fcfdd0e0.js.map