UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

11 lines 16.2 kB
export const __webpack_ids__=["65005"];export const __webpack_modules__={67180:function(t,e,i){i.d(e,{Ef:()=>r,Pb:()=>p,TA:()=>a,gB:()=>h,h0:()=>s,zJ:()=>v});i(9359),i(70104);var o=i(34593);const r=2700,a=6500,s=t=>{const e=t/100;return[Math.round(l(e)),Math.round(n(e)),Math.round(d(e))]},l=t=>{if(t<=66)return 255;const e=329.698727446*(t-60)**-.1332047592;return(0,o.u)(e,0,255)},n=t=>{let e;return e=t<=66?99.4708025861*Math.log(t)-161.1195681661:288.1221695283*(t-60)**-.0755148492,(0,o.u)(e,0,255)},d=t=>{if(t>=66)return 255;if(t<=19)return 0;const e=138.5177312231*Math.log(t-10)-305.0447927307;return(0,o.u)(e,0,255)},c=(t,e)=>{const i=Math.max(...t),o=Math.max(...e);let r;return r=0===o?0:i/o,e.map((t=>Math.round(t*r)))},h=t=>0===t?1e6:Math.floor(1e6/t),u=t=>0===t?1e6:Math.floor(1e6/t),p=(t,e,i)=>{const[o,l,n,d,p]=t,v=u(e??r),b=u(i??a),m=v-b;let f;try{f=p/(d+p)}catch(t){f=.5}const k=b+f*m,g=k?h(k):0,[y,_,w]=s(g),x=Math.max(d,p)/255;return c([o,l,n,d,p],[o+y*x,l+_*x,n+w*x])},v=t=>{const[e,i,o,r]=t;return c([e,i,o,r],[e+r,i+r,o+r])}},34593:function(t,e,i){i.d(e,{Y:()=>r,u:()=>o});const o=(t,e,i)=>Math.min(Math.max(t,e),i),r=(t,e,i)=>{let o;return o=null!=e?Math.max(t,e):t,o=null!=i?Math.min(o,i):o,o}},45061:function(t,e,i){i.d(e,{K:()=>o});const o=t=>{switch(t.language){case"cs":case"de":case"fi":case"fr":case"sk":case"sv":return" ";default:return""}}},87974:function(t,e,i){i.d(e,{L:()=>r});var o=i(45061);const r=(t,e)=>"°"===t?"":e&&"%"===t?(0,o.K)(e):" "},54250:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),r=i(72621),a=(i(92519),i(42179),i(89256),i(24931),i(88463),i(57449),i(19814),i(54380)),s=i(57243),l=i(15093),n=i(35359),d=i(69634),c=i(36522),h=i(50602),u=i(87974),p=t([h]);h=(p.then?(await p)():p)[0];const v=new Set(["ArrowRight","ArrowUp","ArrowLeft","ArrowDown","PageUp","PageDown","Home","End"]);(0,o.Z)([(0,l.Mo)("ha-control-slider")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,l.Cb)({attribute:!1})],key:"locale",value:void 0},{kind:"field",decorators:[(0,l.Cb)({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,l.Cb)()],key:"mode",value:()=>"start"},{kind:"field",decorators:[(0,l.Cb)({type:Boolean,reflect:!0})],key:"vertical",value:()=>!1},{kind:"field",decorators:[(0,l.Cb)({type:Boolean,attribute:"show-handle"})],key:"showHandle",value:()=>!1},{kind:"field",decorators:[(0,l.Cb)({type:Boolean,attribute:"inverted"})],key:"inverted",value:()=>!1},{kind:"field",decorators:[(0,l.Cb)({attribute:"tooltip-position"})],key:"tooltipPosition",value:void 0},{kind:"field",decorators:[(0,l.Cb)()],key:"unit",value:void 0},{kind:"field",decorators:[(0,l.Cb)({attribute:"tooltip-mode"})],key:"tooltipMode",value:()=>"interaction"},{kind:"field",decorators:[(0,l.Cb)({attribute:"touch-action"})],key:"touchAction",value:void 0},{kind:"field",decorators:[(0,l.Cb)({type:Number})],key:"value",value:void 0},{kind:"field",decorators:[(0,l.Cb)({type:Number})],key:"step",value:()=>1},{kind:"field",decorators:[(0,l.Cb)({type:Number})],key:"min",value:()=>0},{kind:"field",decorators:[(0,l.Cb)({type:Number})],key:"max",value:()=>100},{kind:"field",decorators:[(0,l.SB)()],key:"pressed",value:()=>!1},{kind:"field",decorators:[(0,l.SB)()],key:"tooltipVisible",value:()=>!1},{kind:"field",key:"_mc",value:void 0},{kind:"method",key:"valueToPercentage",value:function(t){const e=(this.boundedValue(t)-this.min)/(this.max-this.min);return this.inverted?1-e:e}},{kind:"method",key:"percentageToValue",value:function(t){return(this.max-this.min)*(this.inverted?1-t:t)+this.min}},{kind:"method",key:"steppedValue",value:function(t){return Math.round(t/this.step)*this.step}},{kind:"method",key:"boundedValue",value:function(t){return Math.min(Math.max(t,this.min),this.max)}},{kind:"method",key:"firstUpdated",value:function(t){(0,r.Z)(i,"firstUpdated",this,3)([t]),this.setupListeners(),this.setAttribute("role","slider"),this.hasAttribute("tabindex")||this.setAttribute("tabindex","0")}},{kind:"method",key:"updated",value:function(t){if((0,r.Z)(i,"updated",this,3)([t]),t.has("value")){const t=this.steppedValue(this.value??0);this.setAttribute("aria-valuenow",t.toString()),this.setAttribute("aria-valuetext",this._formatValue(t))}if(t.has("min")&&this.setAttribute("aria-valuemin",this.min.toString()),t.has("max")&&this.setAttribute("aria-valuemax",this.max.toString()),t.has("vertical")){const t=this.vertical?"vertical":"horizontal";this.setAttribute("aria-orientation",t)}}},{kind:"method",key:"connectedCallback",value:function(){(0,r.Z)(i,"connectedCallback",this,3)([]),this.setupListeners()}},{kind:"method",key:"disconnectedCallback",value:function(){(0,r.Z)(i,"disconnectedCallback",this,3)([]),this.destroyListeners()}},{kind:"field",decorators:[(0,l.IO)("#slider")],key:"slider",value:void 0},{kind:"method",key:"setupListeners",value:function(){if(this.slider&&!this._mc){let t;this._mc=new a.dK(this.slider,{touchAction:this.touchAction??(this.vertical?"pan-x":"pan-y")}),this._mc.add(new a.Ce({threshold:10,direction:a.oM,enable:!0})),this._mc.add(new a.Uw({event:"singletap"})),this._mc.add(new a.i),this._mc.on("panstart",(()=>{this.disabled||(this.pressed=!0,this._showTooltip(),t=this.value)})),this._mc.on("pancancel",(()=>{this.disabled||(this.pressed=!1,this._hideTooltip(),this.value=t)})),this._mc.on("panmove",(t=>{if(this.disabled)return;const e=this._getPercentageFromEvent(t);this.value=this.percentageToValue(e);const i=this.steppedValue(this.value);(0,c.B)(this,"slider-moved",{value:i})})),this._mc.on("panend",(t=>{if(this.disabled)return;this.pressed=!1,this._hideTooltip();const e=this._getPercentageFromEvent(t);this.value=this.steppedValue(this.percentageToValue(e)),(0,c.B)(this,"slider-moved",{value:void 0}),(0,c.B)(this,"value-changed",{value:this.value})})),this._mc.on("singletap pressup",(t=>{if(this.disabled)return;const e=this._getPercentageFromEvent(t);this.value=this.steppedValue(this.percentageToValue(e)),(0,c.B)(this,"value-changed",{value:this.value})})),this.addEventListener("keydown",this._handleKeyDown),this.addEventListener("keyup",this._handleKeyUp)}}},{kind:"method",key:"destroyListeners",value:function(){this._mc&&(this._mc.destroy(),this._mc=void 0),this.removeEventListener("keydown",this._handleKeyDown),this.removeEventListener("keyup",this._handleKeyUp)}},{kind:"get",key:"_tenPercentStep",value:function(){return Math.max(this.step,(this.max-this.min)/10)}},{kind:"method",key:"_showTooltip",value:function(){null!=this._tooltipTimeout&&window.clearTimeout(this._tooltipTimeout),this.tooltipVisible=!0}},{kind:"method",key:"_hideTooltip",value:function(t){t?this._tooltipTimeout=window.setTimeout((()=>{this.tooltipVisible=!1}),t):this.tooltipVisible=!1}},{kind:"method",key:"_handleKeyDown",value:function(t){if(v.has(t.code)){switch(t.preventDefault(),t.code){case"ArrowRight":case"ArrowUp":this.value=this.boundedValue((this.value??0)+this.step);break;case"ArrowLeft":case"ArrowDown":this.value=this.boundedValue((this.value??0)-this.step);break;case"PageUp":this.value=this.steppedValue(this.boundedValue((this.value??0)+this._tenPercentStep));break;case"PageDown":this.value=this.steppedValue(this.boundedValue((this.value??0)-this._tenPercentStep));break;case"Home":this.value=this.min;break;case"End":this.value=this.max}this._showTooltip(),(0,c.B)(this,"slider-moved",{value:this.value})}}},{kind:"field",key:"_tooltipTimeout",value:void 0},{kind:"method",key:"_handleKeyUp",value:function(t){v.has(t.code)&&(t.preventDefault(),this._hideTooltip(500),(0,c.B)(this,"value-changed",{value:this.value}))}},{kind:"field",key:"_getPercentageFromEvent",value(){return t=>{if(this.vertical){const e=t.center.y,i=t.target.getBoundingClientRect().top,o=t.target.clientHeight;return Math.max(Math.min(1,1-(e-i)/o),0)}const e=t.center.x,i=t.target.getBoundingClientRect().left,o=t.target.clientWidth;return Math.max(Math.min(1,(e-i)/o),0)}}},{kind:"method",key:"_formatValue",value:function(t){return`${(0,h.uf)(t,this.locale)}${this.unit?`${(0,u.L)(this.unit,this.locale)}${this.unit}`:""}`}},{kind:"method",key:"_renderTooltip",value:function(){if("never"===this.tooltipMode)return s.Ld;const t=this.tooltipPosition??(this.vertical?"left":"top"),e="always"===this.tooltipMode||this.tooltipVisible&&"interaction"===this.tooltipMode,i=this.steppedValue(this.value??0);return s.dy` <span aria-hidden="true" class="tooltip ${(0,n.$)({visible:e,[t]:!0,[this.mode??"start"]:!0,"show-handle":this.showHandle})}"> ${this._formatValue(i)} </span> `}},{kind:"method",key:"render",value:function(){return s.dy` <div class="container${(0,n.$)({pressed:this.pressed})}" style="${(0,d.V)({"--value":`${this.valueToPercentage(this.value??0)}`})}"> <div id="slider" class="slider"> <div class="slider-track-background"></div> <slot name="background"></slot> ${"cursor"===this.mode?null!=this.value?s.dy` <div class="${(0,n.$)({"slider-track-cursor":!0})}"></div> `:null:s.dy` <div class="${(0,n.$)({"slider-track-bar":!0,[this.mode??"start"]:!0,"show-handle":this.showHandle})}"></div> `} </div> ${this._renderTooltip()} </div> `}},{kind:"field",static:!0,key:"styles",value:()=>s.iv`:host{display:block;--control-slider-color:var(--primary-color);--control-slider-background:var(--disabled-color);--control-slider-background-opacity:0.2;--control-slider-thickness:40px;--control-slider-border-radius:10px;--control-slider-tooltip-font-size:14px;height:var(--control-slider-thickness);width:100%;border-radius:var(--control-slider-border-radius);outline:0;transition:box-shadow 180ms ease-in-out}:host(:focus-visible){box-shadow:0 0 0 2px var(--control-slider-color)}:host([vertical]){width:var(--control-slider-thickness);height:100%}.container{position:relative;height:100%;width:100%;--handle-size:4px;--handle-margin:calc(var(--control-slider-thickness) / 8)}.tooltip{pointer-events:none;user-select:none;position:absolute;background-color:var(--clear-background-color);color:var(--primary-text-color);font-size:var(--control-slider-tooltip-font-size);border-radius:.8em;padding:.2em .4em;opacity:0;white-space:nowrap;box-shadow:0 2px 5px rgba(0,0,0,.2);transition:opacity 180ms ease-in-out,left 180ms ease-in-out,bottom 180ms ease-in-out;--handle-spacing:calc(2 * var(--handle-margin) + var(--handle-size));--slider-tooltip-margin:-4px;--slider-tooltip-range:100%;--slider-tooltip-offset:0px;--slider-tooltip-position:calc( min( max( var(--value) * var(--slider-tooltip-range) + var(--slider-tooltip-offset), 0% ), 100% ) )}.tooltip.start{--slider-tooltip-offset:calc(-0.5 * (var(--handle-spacing)))}.tooltip.end{--slider-tooltip-offset:calc(0.5 * (var(--handle-spacing)))}.tooltip.cursor{--slider-tooltip-range:calc(100% - var(--handle-spacing));--slider-tooltip-offset:calc(0.5 * (var(--handle-spacing)))}.tooltip.show-handle{--slider-tooltip-range:calc(100% - var(--handle-spacing));--slider-tooltip-offset:calc(0.5 * (var(--handle-spacing)))}.tooltip.visible{opacity:1}.tooltip.top{transform:translate3d(-50%,-100%,0);top:var(--slider-tooltip-margin);left:50%}.tooltip.bottom{transform:translate3d(-50%,100%,0);bottom:var(--slider-tooltip-margin);left:50%}.tooltip.left{transform:translate3d(-100%,50%,0);bottom:50%;left:var(--slider-tooltip-margin)}.tooltip.right{transform:translate3d(100%,50%,0);bottom:50%;right:var(--slider-tooltip-margin)}:host(:not([vertical])) .tooltip.bottom,:host(:not([vertical])) .tooltip.top{left:var(--slider-tooltip-position)}:host([vertical]) .tooltip.left,:host([vertical]) .tooltip.right{bottom:var(--slider-tooltip-position)}.slider{position:relative;height:100%;width:100%;border-radius:var(--control-slider-border-radius);transform:translateZ(0);overflow:hidden;cursor:pointer}.slider *{pointer-events:none}.slider .slider-track-background{position:absolute;top:0;left:0;height:100%;width:100%;background:var(--control-slider-background);opacity:var(--control-slider-background-opacity)}::slotted([slot=background]){position:absolute;top:0;left:0;height:100%;width:100%}.slider .slider-track-bar{--border-radius:var(--control-slider-border-radius);--slider-size:100%;position:absolute;height:100%;width:100%;background-color:var(--control-slider-color);transition:transform 180ms ease-in-out,background-color 180ms ease-in-out}.slider .slider-track-bar.show-handle{--slider-size:calc(100% - 2 * var(--handle-margin) - var(--handle-size))}.slider .slider-track-bar::after{display:block;content:"";position:absolute;margin:auto;border-radius:var(--handle-size);background-color:#fff}.slider .slider-track-bar{top:0;left:0;transform:translate3d(calc((var(--value,0) - 1) * var(--slider-size)),0,0);border-radius:0 8px 8px 0}.slider .slider-track-bar:after{top:0;bottom:0;right:var(--handle-margin);height:50%;width:var(--handle-size)}.slider .slider-track-bar.end{right:0;left:initial;transform:translate3d(calc(var(--value,0) * var(--slider-size)),0,0);border-radius:8px 0 0 8px}.slider .slider-track-bar.end::after{right:initial;left:var(--handle-margin)}:host([vertical]) .slider .slider-track-bar{bottom:0;left:0;transform:translate3d(0,calc((1 - var(--value,0)) * var(--slider-size)),0);border-radius:8px 8px 0 0}:host([vertical]) .slider .slider-track-bar:after{top:var(--handle-margin);right:0;left:0;bottom:initial;width:50%;height:var(--handle-size)}:host([vertical]) .slider .slider-track-bar.end{top:0;bottom:initial;transform:translate3d(0,calc((0 - var(--value,0)) * var(--slider-size)),0);border-radius:0 0 8px 8px}:host([vertical]) .slider .slider-track-bar.end::after{top:initial;bottom:var(--handle-margin)}.slider .slider-track-cursor:after{display:block;content:"";background-color:var(--secondary-text-color);position:absolute;top:0;left:0;bottom:0;right:0;margin:auto;border-radius:var(--handle-size)}.slider .slider-track-cursor{--cursor-size:calc(var(--control-slider-thickness) / 4);position:absolute;background-color:#fff;border-radius:var(--handle-size);transition:left 180ms ease-in-out,bottom 180ms ease-in-out;top:0;bottom:0;left:calc(var(--value,0) * (100% - var(--cursor-size)));width:var(--cursor-size);box-shadow:0 2px 5px rgba(0,0,0,.2)}.slider .slider-track-cursor:after{height:50%;width:var(--handle-size)}:host([vertical]) .slider .slider-track-cursor{top:initial;right:0;left:0;bottom:calc(var(--value,0) * (100% - var(--cursor-size)));height:var(--cursor-size);width:100%}:host([vertical]) .slider .slider-track-cursor:after{height:var(--handle-size);width:50%}.pressed .tooltip{transition:opacity 180ms ease-in-out}.pressed .slider-track-bar,.pressed .slider-track-cursor{transition:none}:host(:disabled) .slider{cursor:not-allowed}`}]}}),s.oi);e()}catch(t){e(t)}}))},90243:function(t,e,i){i.d(e,{Fe:()=>n,QM:()=>c,SQ:()=>r,Yk:()=>d,ZE:()=>a,cE:()=>u,e4:()=>v,kb:()=>h});i(92745),i(9359),i(52924);var o=i(67180);let r=66977!=i.j?function(t){return t[t.EFFECT=4]="EFFECT",t[t.FLASH=8]="FLASH",t[t.TRANSITION=32]="TRANSITION",t}({}):null,a=function(t){return t.UNKNOWN="unknown",t.ONOFF="onoff",t.BRIGHTNESS="brightness",t.COLOR_TEMP="color_temp",t.HS="hs",t.XY="xy",t.RGB="rgb",t.RGBW="rgbw",t.RGBWW="rgbww",t.WHITE="white",t}({});const s=[a.HS,a.XY,a.RGB,a.RGBW,a.RGBWW],l=[...s,a.COLOR_TEMP,a.BRIGHTNESS,a.WHITE],n=(t,e)=>t.attributes.supported_color_modes?.includes(e)||!1,d=t=>t.attributes.supported_color_modes?.some((t=>s.includes(t)))||!1,c=t=>t.attributes.supported_color_modes?.some((t=>l.includes(t)))||!1,h=t=>d(t)||n(t,a.COLOR_TEMP),u=t=>t.attributes.color_mode===a.RGBWW?t.attributes.rgbww_color:t.attributes.color_mode===a.RGBW?t.attributes.rgbw_color:t.attributes.rgb_color,p=66977!=i.j?[{rgb_color:[127,172,255]},{rgb_color:[215,150,255]},{rgb_color:[255,158,243]},{rgb_color:[255,110,84]}]:null,v=t=>{const e=[],i=n(t,a.COLOR_TEMP),r=d(t);if(i){const i=t.attributes.min_color_temp_kelvin,o=(t.attributes.max_color_temp_kelvin-i)/3;for(let t=0;t<4;t++)e.push({color_temp_kelvin:Math.round(i+o*t)})}else if(r){const t=2e3,i=(6500-t)/3;for(let r=0;r<4;r++)e.push({rgb_color:(0,o.h0)(Math.round(t+i*r))})}return r&&e.push(...p),e}}}; //# sourceMappingURL=65005.8d7a6f3fb6680cf0.js.map