iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 112 kB
JavaScript
export const __webpack_ids__=["70639"];export const __webpack_modules__={1703:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=i(57243),s=i(15093),o=i(35359),r=i(50602),c=i(87974),l=t([r]);r=(l.then?(await l)():l)[0];(0,n.Z)([(0,s.Mo)("ha-big-number")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({type:Number})],key:"value",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"unit",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:"unit-position"})],key:"unitPosition",value:()=>"top"},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"formatOptions",value:()=>({})},{kind:"method",key:"render",value:function(){const t=(0,r.uf)(this.value,this.hass?.locale,this.formatOptions),[e]=t.includes(".")?t.split("."):t.split(","),i=t.replace(e,""),n=`${this.value}${this.unit?`${(0,c.L)(this.unit,this.hass?.locale)}${this.unit}`:""}`,s="bottom"===this.unitPosition;return a.dy` <p class="value"> <span aria-hidden="true" class="displayed-value"> <span>${e}</span> <span class="addon ${(0,o.$)({bottom:s})}"> <span class="decimal">${i}</span> <span class="unit">${this.unit}</span> </span> </span> <span class="visually-hidden">${n}</span> </p> `}},{kind:"get",static:!0,key:"styles",value:function(){return[a.iv`:host{font-size:57px;line-height:1.12;letter-spacing:-.25px}.value{display:flex;margin:0;direction:ltr}.displayed-value{display:inline-flex;flex-direction:row;align-items:flex-end}.addon{display:flex;flex-direction:column-reverse;padding:4px 0}.addon.bottom{flex-direction:row;align-items:baseline}.addon.bottom .unit{margin-bottom:4px;margin-left:2px}.value .decimal{font-size:.42em;line-height:1.33;min-height:1.33em}.value .unit{font-size:.33em;line-height:1.26}.visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;border:0}`]}}]}}),a.oi);e()}catch(t){e(t)}}))},5906:function(t,e,i){var n=i(44249),a=i(72621),s=(i(92745),i(9359),i(31526),i(92519),i(42179),i(89256),i(24931),i(88463),i(57449),i(19814),i(54380)),o=i(57243),r=i(15093),c=i(35359),l=i(20552),h=i(36522),d=i(34593);const u=([[t,e],[i,n]],[a,s])=>[t*a+e*s,i*a+n*s],f=([t,e],[i,n])=>[t+i,e+n],g=t=>t/180*Math.PI,p=t=>{const{x:e,y:i,r:n,start:a,end:s,rotate:o=0}=t,r=e,c=i,l=n,h=n,d=g(a),p=(g(s)-d)%(2*Math.PI),v=g(o),m=(t=>[[Math.cos(t),-Math.sin(t)],[Math.sin(t),Math.cos(t)]])(v),[_,y]=f(u(m,[l*Math.cos(d),h*Math.sin(d)]),[r,c]),[b,k]=f(u(m,[l*Math.cos(d+p),h*Math.sin(d+p)]),[r,c]),w=p>Math.PI?1:0,x=p>0?1:0;return["M",_,y,"A",l,h,v/(2*Math.PI)*360,w,x,b,k].join(" ")};var v=i(79291);const m=270,_=145;const y=new Set(["ArrowRight","ArrowUp","ArrowLeft","ArrowDown","PageUp","PageDown","Home","End"]);(0,n.Z)([(0,r.Mo)("ha-control-circular-slider")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,r.Cb)({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean,reflect:!0})],key:"readonly",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"dual",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:String})],key:"mode",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"inactive",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:String})],key:"label",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:String,attribute:"low-label"})],key:"lowLabel",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:String,attribute:"high-label"})],key:"highLabel",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"value",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"low",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"high",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"current",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"step",value:()=>1},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"min",value:()=>0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"max",value:()=>100},{kind:"field",decorators:[(0,r.Cb)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],key:"preventInteractionOnScroll",value:()=>!1},{kind:"field",decorators:[(0,r.SB)()],key:"_localValue",value(){return this.value}},{kind:"field",decorators:[(0,r.SB)()],key:"_localLow",value(){return this.low}},{kind:"field",decorators:[(0,r.SB)()],key:"_localHigh",value(){return this.high}},{kind:"field",decorators:[(0,r.SB)()],key:"_activeSlider",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_lastSlider",value:void 0},{kind:"method",key:"_valueToPercentage",value:function(t){return((0,d.u)(t,this.min,this.max)-this.min)/(this.max-this.min)}},{kind:"method",key:"_percentageToValue",value:function(t){return(this.max-this.min)*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){const e="high"===this._activeSlider?Math.min(this._localLow??this.max):this.min,i="low"===this._activeSlider?Math.max(this._localHigh??this.min):this.max;return Math.min(Math.max(t,e),i)}},{kind:"method",key:"updated",value:function(t){(0,a.Z)(i,"updated",this,3)([t]),this._activeSlider||(t.has("value")&&(this._localValue=this.value),t.has("low")&&(this._localLow=this.low),t.has("high")&&(this._localHigh=this.high)),(t.has("_localValue")&&null==t.get("_localValue")||t.has("_localLow")&&null==t.get("_localLow")||t.has("_localHigh")&&null==t.get("_localHigh")||t.has("preventInteractionOnScroll"))&&(this._destroyListeners(),this._setupListeners())}},{kind:"method",key:"connectedCallback",value:function(){(0,a.Z)(i,"connectedCallback",this,3)([]),this._setupListeners()}},{kind:"method",key:"disconnectedCallback",value:function(){(0,a.Z)(i,"disconnectedCallback",this,3)([])}},{kind:"field",key:"_managers",value:()=>[]},{kind:"field",key:"_getPercentageFromEvent",value(){return t=>{const e=this._slider.getBoundingClientRect(),i=2*(t.center.x-e.left-e.width/2)/e.width,n=2*(t.center.y-e.top-e.height/2)/e.height,[,a]=function(t,e){return[Math.sqrt(t*t+e*e),Math.atan2(e,t)]}(i,n),s=(a/(2*Math.PI)*360+45-135+360)%360-45;return Math.max(Math.min(s/m,1),0)}}},{kind:"field",decorators:[(0,r.IO)("#slider")],key:"_slider",value:void 0},{kind:"field",decorators:[(0,r.Kt)("[data-interaction]")],key:"_interactions",value:void 0},{kind:"method",key:"_findActiveSlider",value:function(t){if(!this.dual)return"value";const e=Math.max(this._localLow??this.min,this.min),i=Math.min(this._localHigh??this.max,this.max);if(e>=t)return"low";if(i<=t)return"high";return Math.abs(t-e)<=Math.abs(t-i)?"low":"high"}},{kind:"method",key:"_setActiveValue",value:function(t){switch(this._activeSlider){case"high":this._localHigh=t;break;case"low":this._localLow=t;break;case"value":this._localValue=t}}},{kind:"method",key:"_getActiveValue",value:function(){switch(this._activeSlider){case"high":return this._localHigh;case"low":return this._localLow;case"value":return this._localValue}}},{kind:"method",key:"_setupListeners",value:function(){this._interactions&&0===this._managers.length&&this._interactions.forEach((t=>{const e=new s.dK(t,{inputClass:s.y2});this._managers.push(e);const i=this.preventInteractionOnScroll&&v.T;e.add(new s.i({enable:i,pointers:1,time:50}));const n=new s.Ce({direction:s.oM,enable:!i,threshold:0});e.add(n),e.add(new s.Uw({event:"singletap"})),e.on("press",(t=>{if(t.srcEvent.stopPropagation(),t.srcEvent.preventDefault(),this.disabled||this.readonly)return;const e=this._getPercentageFromEvent(t),i=this._percentageToValue(e);this._activeSlider=this._findActiveSlider(i);const a=this._boundedValue(i);this._setActiveValue(a);const s=this._steppedValue(a);this._activeSlider&&(0,h.B)(this,`${this._activeSlider}-changing`,{value:s}),n.set({enable:!0})})),e.on("pressup",(t=>{t.srcEvent.stopPropagation(),t.srcEvent.preventDefault();const e=this._getPercentageFromEvent(t),i=this._percentageToValue(e),n=this._boundedValue(i),a=this._steppedValue(n);this._setActiveValue(a),this._activeSlider&&((0,h.B)(this,`${this._activeSlider}-changing`,{value:void 0}),(0,h.B)(this,`${this._activeSlider}-changed`,{value:a})),this._activeSlider=void 0})),e.on("pan",(t=>{t.srcEvent.stopPropagation(),t.srcEvent.preventDefault()})),e.on("panstart",(t=>{if(this.disabled||this.readonly)return;const e=this._getPercentageFromEvent(t),i=this._percentageToValue(e);this._activeSlider=this._findActiveSlider(i),this._lastSlider=this._activeSlider,this.shadowRoot?.getElementById("#slider")?.focus()})),e.on("pancancel",(()=>{this.disabled||this.readonly||(this._activeSlider=void 0,i&&n.set({enable:!1}))})),e.on("panmove",(t=>{if(this.disabled||this.readonly)return;const e=this._getPercentageFromEvent(t),i=this._percentageToValue(e),n=this._boundedValue(i);this._setActiveValue(n);const a=this._steppedValue(n);this._activeSlider&&(0,h.B)(this,`${this._activeSlider}-changing`,{value:a})})),e.on("panend",(t=>{if(this.disabled||this.readonly)return;const e=this._getPercentageFromEvent(t),a=this._percentageToValue(e),s=this._boundedValue(a),o=this._steppedValue(s);this._setActiveValue(o),this._activeSlider&&((0,h.B)(this,`${this._activeSlider}-changing`,{value:void 0}),(0,h.B)(this,`${this._activeSlider}-changed`,{value:o})),this._activeSlider=void 0,i&&n.set({enable:!1})})),e.on("singletap",(t=>{if(this.disabled||this.readonly)return;const e=this._getPercentageFromEvent(t),a=this._percentageToValue(e);this._activeSlider=this._findActiveSlider(a);const s=this._boundedValue(a),o=this._steppedValue(s);this._setActiveValue(o),this._activeSlider&&((0,h.B)(this,`${this._activeSlider}-changing`,{value:void 0}),(0,h.B)(this,`${this._activeSlider}-changed`,{value:o})),this._lastSlider=this._activeSlider,this.shadowRoot?.getElementById("#slider")?.focus(),this._activeSlider=void 0,i&&n.set({enable:!1})}))}))}},{kind:"get",key:"_tenPercentStep",value:function(){return Math.max(this.step,(this.max-this.min)/10)}},{kind:"method",key:"_handleKeyDown",value:function(t){if(!y.has(t.code))return;t.preventDefault(),this._lastSlider&&this.shadowRoot?.getElementById(this._lastSlider)?.focus(),this._activeSlider=this._lastSlider??t.currentTarget.id,this._lastSlider=void 0;const e=this._getActiveValue();switch(t.code){case"ArrowRight":case"ArrowUp":this._setActiveValue(this._boundedValue((e??this.min)+this.step));break;case"ArrowLeft":case"ArrowDown":this._setActiveValue(this._boundedValue((e??this.min)-this.step));break;case"PageUp":this._setActiveValue(this._steppedValue(this._boundedValue((e??this.min)+this._tenPercentStep)));break;case"PageDown":this._setActiveValue(this._steppedValue(this._boundedValue((e??this.min)-this._tenPercentStep)));break;case"Home":this._setActiveValue(this._boundedValue(this.min));break;case"End":this._setActiveValue(this._boundedValue(this.max))}(0,h.B)(this,`${this._activeSlider}-changing`,{value:this._getActiveValue()}),this._activeSlider=void 0}},{kind:"method",key:"_handleKeyUp",value:function(t){y.has(t.code)&&(this._activeSlider=t.currentTarget.id,t.preventDefault(),(0,h.B)(this,`${this._activeSlider}-changing`,{value:void 0}),(0,h.B)(this,`${this._activeSlider}-changed`,{value:this._getActiveValue()}),this._activeSlider=void 0)}},{kind:"method",key:"_destroyListeners",value:function(){this._managers.length>0&&(this._managers.forEach((t=>t.destroy())),this._managers=[])}},{kind:"method",key:"_strokeCircleDashArc",value:function(t){return this._strokeDashArc(t,t)}},{kind:"method",key:"_strokeDashArc",value:function(t,e){const i=this._valueToPercentage(t),n=this._valueToPercentage(e),a=290*Math.PI*m/360,s=Math.max((n-i)*a,0);return[`${s} ${a-s}`,`-${i*a-.5}`]}},{kind:"method",key:"renderArc",value:function(t,e,i){if(this.disabled)return o.Ld;const n=p({x:0,y:0,start:0,end:m,r:_}),a=null!=e?this._valueToPercentage(e)*m:void 0,s="end"===i?this.max:this.min,r=this.current??s,h=e??s,d="end"===i?h<=r:"start"===i&&r<=h,u=null!=e,f=u?d?"end"===i?this._strokeDashArc(h,r):this._strokeDashArc(r,h):this._strokeCircleDashArc(h):void 0,g="full"===i?this._strokeDashArc(this.min,this.max):"end"===i?this._strokeDashArc(h,s):this._strokeDashArc(s,h),y=u?this._strokeCircleDashArc(h):void 0,b=null!=this.current&&this.current<=this.max&&this.current>=this.min&&(d||"full"===this.mode)?this._strokeCircleDashArc(this.current):void 0,k=this.preventInteractionOnScroll&&v.T||!1;return o.YP` <g class="${(0,c.$)({inactive:Boolean(this.inactive)})}"> <path class="arc arc-clear" d="${n}" stroke-dasharray="${g[0]}" stroke-dashoffset="${g[1]}"/> <path class="arc arc-colored ${(0,c.$)({[t]:!0})}" d="${n}" stroke-dasharray="${g[0]}" stroke-dashoffset="${g[1]}"/> ${f?o.YP` <path .id="${t}" d="${n}" class="arc arc-active ${(0,c.$)({[t]:!0})}" stroke-dasharray="${f[0]}" stroke-dashoffset="${f[1]}" role="slider" tabindex="0" aria-valuemin="${this.min}" aria-valuemax="${this.max}" aria-valuenow="${null!=this._localValue?this._steppedValue(this._localValue):void 0}" aria-disabled="${this.disabled}" aria-readonly="${this.readonly}" aria-label="${(0,l.o)(this.lowLabel??this.label)}" @keydown="${this._handleKeyDown}" @keyup="${this._handleKeyUp}"/> `:o.Ld} ${b?o.YP` <path class="current arc-current" d="${n}" stroke-dasharray="${b[0]}" stroke-dashoffset="${b[1]}"/> `:o.Ld} ${y?o.YP` <circle transform="rotate(${a} 0 0)" ?data-interaction="${k}" cx="${_}" cy="0"/> <path d="${n}" stroke-dasharray="${y[0]}" stroke-dashoffset="${y[1]}"/> <path class="target-border ${(0,c.$)({[t]:!0})}" d="${n}" stroke-dasharray="${y[0]}" stroke-dashoffset="${y[1]}"/> <path class="target" d="${n}" stroke-dasharray="${y[0]}" stroke-dashoffset="${y[1]}"/> `:o.Ld} </g> `}},{kind:"method",key:"render",value:function(){const t=p({x:0,y:0,start:0,end:m,r:_}),e=this.dual?this._localLow:this._localValue,i=this._localHigh,n=this.current,a=n?this._strokeCircleDashArc(n):void 0,s=this.preventInteractionOnScroll&&v.T||!1;return o.dy` <svg id="slider" viewBox="0 0 320 320" overflow="visible" class="${(0,c.$)({pressed:Boolean(this._activeSlider)})}" @keydown="${this._handleKeyDown}" tabindex="${this._lastSlider?"0":"-1"}"> <g id="container" transform="translate(160 160) rotate(${135})"> <path d="${t}" ?data-interaction="${!s}"/> <path class="background" d="${t}"/> ${a?o.YP` <path class="current" d="${t}" stroke-dasharray="${a[0]}" stroke-dashoffset="${a[1]}"/> `:o.Ld} ${null!=e||"full"===this.mode?this.renderArc(this.dual?"low":"value",e,!this.dual&&this.mode||"start"):o.Ld} ${this.dual&&null!=i?this.renderArc("high",i,"end"):o.Ld} </g> </svg> `}},{kind:"field",static:!0,key:"styles",value:()=>o.iv`:host{--control-circular-slider-color:var(--primary-color);--control-circular-slider-background:var(--disabled-color);--control-circular-slider-background-opacity:0.3;--control-circular-slider-low-color:var(--control-circular-slider-color);--control-circular-slider-high-color:var(--control-circular-slider-color);--control-circular-slider-interaction-margin:12px;width:320px;display:block}svg{width:100%;display:block;pointer-events:none}g{fill:none}#slider{outline:0}path[data-interaction]{fill:none;cursor:pointer;pointer-events:auto;stroke:transparent;stroke-linecap:round;stroke-width:calc(24px + 2 * var(--control-circular-slider-interaction-margin))}circle[data-interaction]{r:calc(12px + var(--control-circular-slider-interaction-margin));fill:transparent;cursor:pointer;pointer-events:auto}:host([disabled]) [data-interaction],:host([readonly]) [data-interaction]{cursor:initial;pointer-events:none}.background{fill:none;stroke:var(--control-circular-slider-background);opacity:var(--control-circular-slider-background-opacity);transition:stroke 180ms ease-in-out,opacity 180ms ease-in-out;stroke-linecap:round;stroke-width:24px}.arc{fill:none;stroke-linecap:round;stroke-width:24px;transition:stroke-width .3s ease-in-out,stroke-dasharray .3s ease-in-out,stroke-dashoffset .3s ease-in-out,stroke 180ms ease-in-out,opacity 180ms ease-in-out}.target{fill:none;stroke-linecap:round;stroke-width:18px;stroke:white;transition:stroke-width .3s ease-in-out,stroke-dasharray .3s ease-in-out,stroke-dashoffset .3s ease-in-out,stroke 180ms ease-in-out,opacity 180ms ease-in-out}.target-border{fill:none;stroke-linecap:round;stroke-width:24px;stroke:white;transition:stroke-width .3s ease-in-out,stroke-dasharray .3s ease-in-out,stroke-dashoffset .3s ease-in-out,stroke 180ms ease-in-out,opacity 180ms ease-in-out}.current{fill:none;stroke-linecap:round;stroke-width:8px;stroke:var(--primary-text-color);opacity:.5;transition:stroke-width .3s ease-in-out,stroke-dasharray .3s ease-in-out,stroke-dashoffset .3s ease-in-out,stroke 180ms ease-in-out,opacity 180ms ease-in-out}.arc-current{stroke:var(--clear-background-color)}.arc-clear{stroke:var(--clear-background-color)}.arc-colored{opacity:.5}.arc-active{outline:0}.arc-active:focus-visible{stroke-width:28px}.pressed .arc,.pressed .current,.pressed .target,.pressed .target-border{transition:stroke-width .3s ease-in-out,stroke 180ms ease-in-out,opacity 180ms ease-in-out}.inactive .arc,.inactive .arc-current{opacity:0}.value{stroke:var(--control-circular-slider-color)}.low{stroke:var(--control-circular-slider-low-color)}.high{stroke:var(--control-circular-slider-high-color)}`}]}}),o.oi)},13928:function(t,e,i){i.r(e),i.d(e,{HaIconNext:()=>r});var n=i(44249),a=i(15093),s=i(5111),o=i(37583);let r=(0,n.Z)([(0,a.Mo)("ha-icon-next")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,a.Cb)()],key:"path",value:()=>"rtl"===s.E.document.dir?"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z":"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"}]}}),o.HaSvgIcon)},75138:function(t,e,i){var n=i(44249),a=i(72621),s=i(6442),o=i(57243),r=i(15093);(0,n.Z)([(0,r.Mo)("ha-outlined-icon-button")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",static:!0,key:"styles",value(){return[o.iv`.icon-button{border-radius:var(--_container-shape)}`,...(0,a.Z)(i,"styles",this),o.iv`:host{--ha-icon-display:block;--md-sys-color-on-surface:var(--secondary-text-color);--md-sys-color-on-surface-variant:var(--secondary-text-color);--md-sys-color-on-surface-rgb:var(--rgb-secondary-text-color);--md-sys-color-outline:var(--secondary-text-color)}:host([no-ripple]) .outlined{--md-ripple-focus-opacity:0;--md-ripple-hover-opacity:0;--md-ripple-pressed-opacity:0}`]}}]}}),s.Y)},24494:function(t,e,i){var n=i(44249),a=i(57243),s=i(15093);i(65981);(0,n.Z)([(0,s.Mo)("ha-tile-badge")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"render",value:function(){return a.dy` <div class="badge"> <slot></slot> </div> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{--tile-badge-background-color:var(--primary-color);--tile-badge-icon-color:var(--white-color);--mdc-icon-size:12px}.badge{display:flex;align-items:center;justify-content:center;line-height:0;width:16px;height:16px;border-radius:8px;background-color:var(--tile-badge-background-color);transition:background-color 280ms ease-in-out}.badge ::slotted(*){color:var(--tile-badge-icon-color)}`}]}}),a.oi)},18932:function(t,e,i){var n=i(44249),a=i(57243),s=i(15093),o=(i(65981),i(37583),i(35359));(0,n.Z)([(0,s.Mo)("ha-tile-icon")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({type:Boolean,reflect:!0})],key:"interactive",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({attribute:"border-style",type:String})],key:"imageStyle",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"imageUrl",value:void 0},{kind:"method",key:"render",value:function(){if(this.imageUrl){const t=this.imageStyle||"circle";return a.dy` <div class="container ${(0,o.$)({[t]:this.imageUrl})}"> <img alt="" src="${this.imageUrl}"> </div> <slot></slot> `}return a.dy` <div class="container ${this.interactive?"background":""}"> <slot name="icon"></slot> </div> <slot></slot> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{--tile-icon-color:var(--disabled-color);--tile-icon-opacity:0.2;--tile-icon-hover-opacity:0.35;--mdc-icon-size:24px;position:relative;user-select:none;transition:transform 180ms ease-in-out}:host([interactive]:active){transform:scale(1.2)}:host([interactive]:hover){--tile-icon-opacity:var(--tile-icon-hover-opacity)}.container{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:18px;overflow:hidden;transition:box-shadow 180ms ease-in-out}:host([interactive]:focus-visible) .container{box-shadow:0 0 0 2px var(--tile-icon-color)}.container.rounded-square{border-radius:8px}.container.square{border-radius:0}.container.background::before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;background-color:var(--tile-icon-color);transition:background-color 180ms ease-in-out,opacity 180ms ease-in-out;opacity:var(--tile-icon-opacity)}.container ::slotted([slot=icon]){display:flex;color:var(--tile-icon-color);transition:color 180ms ease-in-out;pointer-events:none}.container img{width:100%;height:100%;object-fit:cover}`}]}}),a.oi)},61692:function(t,e,i){var n=i(44249),a=i(57243),s=i(15093);(0,n.Z)([(0,s.Mo)("ha-tile-info")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)()],key:"primary",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"secondary",value:void 0},{kind:"method",key:"render",value:function(){return a.dy` <div class="info"> <span class="primary">${this.primary}</span> ${this.secondary?a.dy`<span class="secondary">${this.secondary}</span>`:a.Ld} </div> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`.info{width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}span{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.primary{font-weight:500;font-size:14px;line-height:20px;letter-spacing:.1px;color:var(--primary-text-color)}.secondary{font-weight:400;font-size:12px;line-height:16px;letter-spacing:.4px;color:var(--primary-text-color)}`}]}}),a.oi)},74790:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=i(57243),s=i(15093),o=i(86609),r=t([o]);o=(r.then?(await r)():r)[0];(0,n.Z)([(0,s.Mo)("hui-card-feature")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"feature",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"color",value:void 0},{kind:"field",key:"_element",value:void 0},{kind:"method",key:"_getFeatureElement",value:function(t){return this._element||(this._element=(0,o.O)(t)),this._element}},{kind:"method",key:"render",value:function(){if(!this.feature)return a.Ld;const t=this._getFeatureElement(this.feature);return this.hass&&(t.hass=this.hass,t.stateObj=this.stateObj,t.color=this.color),a.dy`${t}`}}]}}),a.oi);e()}catch(t){e(t)}}))},64349:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=(i(9359),i(70104),i(57243)),s=i(15093),o=i(74790),r=t([o]);o=(r.then?(await r)():r)[0];(0,n.Z)([(0,s.Mo)("hui-card-features")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"features",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"color",value:void 0},{kind:"method",key:"render",value:function(){return this.features?a.dy` ${this.features.map((t=>a.dy` <hui-card-feature .hass="${this.hass}" .stateObj="${this.stateObj}" .color="${this.color}" .feature="${t}"></hui-card-feature> `))} `:a.Ld}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{--feature-color:var(--state-icon-color);--feature-height:42px;--feature-border-radius:12px;--feature-button-spacing:12px;position:relative;width:100%;display:flex;flex-direction:column;gap:12px;width:100%;box-sizing:border-box;justify-content:space-evenly}`}]}}),a.oi);e()}catch(t){e(t)}}))},3613:function(t,e,i){i.d(e,{K:()=>E,z:()=>S});var n=i(44249),a=i(72621),s=i(60738),o=i(57243),r=i(15093),c=i(20552),l=i(69634),h=i(73358),d=i(16755),u=i(82393),f=i(36522),g=i(73850),p=i(59847),v=i(47194),m=i(42818),_=i(31064),y=i(44705),b=(i(54977),i(30043),i(350)),k=i(30635),w=i(3967),x=i(69223),$=i(5684),C=i(62577);const E=t=>t&&h.Kk.has((0,g.M)(t))?"toggle":"more-info";let S=(0,n.Z)([(0,r.Mo)("hui-button-card")],(function(t,e){class n extends e{constructor(...e){super(...e),t(this)}}return{F:n,d:[{kind:"method",static:!0,key:"getConfigElement",value:async function(){return await i.e("62294").then(i.bind(i,79674)),document.createElement("hui-button-card-editor")}},{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){return{type:"button",entity:(0,x.j)(t,1,e,i,["light","switch"])[0]||""}}},{kind:"field",key:"hass",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_config",value:void 0},{kind:"field",decorators:[(0,s.F_)({context:k.Cy,subscribe:!0}),(0,d.v)({transformer:function(t){return this._config?.entity?t[this._config?.entity]:void 0},watch:["_config"]})],key:"_stateObj",value:void 0},{kind:"field",decorators:[(0,r.SB)(),(0,s.F_)({context:k.LW,subscribe:!0})],key:"_themes",value:void 0},{kind:"field",decorators:[(0,r.SB)(),(0,s.F_)({context:k.Gn,subscribe:!0})],key:"_localize",value:void 0},{kind:"field",decorators:[(0,r.SB)(),(0,s.F_)({context:k.A4,subscribe:!0})],key:"_locale",value:void 0},{kind:"field",decorators:[(0,r.SB)(),(0,s.F_)({context:k.kd,subscribe:!0})],key:"_hassConfig",value:void 0},{kind:"field",decorators:[(0,s.F_)({context:k.A1,subscribe:!0}),(0,d.v)({transformer:function(t){return this._config?.entity?t[this._config?.entity]:void 0},watch:["_config"]})],key:"_entity",value:void 0},{kind:"method",key:"_getStateColor",value:function(t,e){const i=t?(0,p.N)(t):void 0;return e&&(e.state_color??"light"===i)}},{kind:"method",key:"getCardSize",value:function(){return(this._config?.show_icon?4:0)+(this._config?.show_name?1:0)}},{kind:"method",key:"getGridOptions",value:function(){return this._config?.show_icon&&(this._config?.show_name||this._config?.show_state)?{rows:2,columns:6,min_columns:2,min_rows:2}:{rows:1,columns:3,min_columns:2,min_rows:1}}},{kind:"method",key:"setConfig",value:function(t){if(t.entity&&!(0,_.T)(t.entity))throw new Error("Invalid entity");this._config={tap_action:{action:E(t.entity)},hold_action:{action:"more-info"},double_tap_action:{action:"none"},show_icon:!0,show_name:!0,state_color:!0,...t}}},{kind:"method",key:"render",value:function(){if(!this._config||!this._localize||!this._locale)return o.Ld;const t=this._stateObj;if(this._config.entity&&!t)return o.dy` <hui-warning> ${(0,C.i)(this.hass,this._config.entity)} </hui-warning> `;const e=this._config.show_name?this._config.name||(t?(0,v.C)(t):""):"",i=t&&this._getStateColor(t,this._config);return o.dy` <ha-card @action="${this._handleAction}" .actionHandler="${(0,w.K)({hasHold:(0,$._)(this._config.hold_action),hasDoubleClick:(0,$._)(this._config.double_tap_action)})}" role="button" aria-label="${this._config.name||(t?(0,v.C)(t):"")}" tabindex="${(0,c.o)((0,$._)(this._config.tap_action)?"0":void 0)}" style="${(0,l.V)({"--state-color":i?this._computeColor(t):void 0})}"> <ha-ripple></ha-ripple> ${this._config.show_icon?o.dy` <ha-state-icon tabindex="-1" data-domain="${(0,c.o)(t?(0,p.N)(t):void 0)}" data-state="${(0,c.o)(t?.state)}" .icon="${this._config.icon}" .hass="${this.hass}" .stateObj="${t}" style="${(0,l.V)({filter:i?(0,m.I2)(t):void 0,height:this._config.icon_height?this._config.icon_height:""})}"></ha-state-icon> `:""} ${this._config.show_name?o.dy`<span tabindex="-1" .title="${e}">${e}</span>`:""} ${this._config.show_state&&t?o.dy`<span class="state"> ${this.hass.formatEntityState(t)} </span>`:""} </ha-card> `}},{kind:"method",key:"updated",value:function(t){if((0,a.Z)(n,"updated",this,3)([t]),!this._config||!this._themes)return;if(!t.has("_themes")&&!t.has("_config"))return;const e=t.get("_themes"),i=t.get("_config");(!t.has("_themes")||e&&e===this._themes)&&(!t.has("_config")||i&&i.theme===this._config.theme)||(0,u.R)(this,this._themes,this._config.theme)}},{kind:"get",static:!0,key:"styles",value:function(){return[y.N,o.iv`ha-card{--state-inactive-color:var(--paper-item-icon-color, #44739e);--state-color:var(--paper-item-icon-color, #44739e);--ha-ripple-color:var(--state-color);--ha-ripple-hover-opacity:0.04;--ha-ripple-pressed-opacity:0.12;cursor:pointer;display:flex;flex-direction:column;align-items:center;text-align:center;padding:4% 0;font-size:16.8px;height:100%;box-sizing:border-box;justify-content:center;position:relative;overflow:hidden}ha-card:focus{outline:0}ha-state-icon{width:40%;height:auto;max-height:80%;color:var(--state-color);--mdc-icon-size:100%;transition:transform 180ms ease-in-out;pointer-events:none}ha-state-icon+span{margin-top:8px}ha-state-icon,span{outline:0}ha-card:focus-visible{--shadow-default:var(--ha-card-box-shadow, 0 0 0 0 transparent);--shadow-focus:0 0 0 1px var(--state-color, var(--paper-item-icon-color, #44739e));border-color:var(--state-color,var(--paper-item-icon-color,#44739e));box-shadow:var(--shadow-default),var(--shadow-focus)}:host(:active) ha-state-icon,ha-card:focus-visible ha-state-icon{transform:scale(1.2)}.state{font-size:.9rem;color:var(--secondary-text-color)}`]}},{kind:"method",key:"_computeColor",value:function(t){if(t.attributes.rgb_color)return`rgb(${t.attributes.rgb_color.join(",")})`;if(t.attributes.hvac_action){const e=t.attributes.hvac_action;return e in b.hB?(0,m.Hh)(t,b.hB[e]):void 0}const e=(0,m.Hh)(t);return e||void 0}},{kind:"method",key:"_handleAction",value:function(t){(0,f.B)(this,"hass-action",{config:this._config,action:t.detail.action})}}]}}),o.oi)},11734:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=i(72621),s=(i(9359),i(31526),i(57243)),o=i(15093),r=i(36522),c=(i(37583),i(14858)),l=i(81833),h=i(94264),d=i(62037),u=i(40249),f=t([d]);d=(f.then?(await f)():f)[0];(0,n.Z)([(0,o.Mo)("hui-card")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,o.Cb)({type:Boolean})],key:"preview",value:()=>!1},{kind:"field",decorators:[(0,o.Cb)({attribute:!1})],key:"config",value:void 0},{kind:"field",decorators:[(0,o.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,o.Cb)({attribute:!1})],key:"layout",value:void 0},{kind:"field",key:"_elementConfig",value:void 0},{kind:"method",key:"load",value:function(){if(!this.config)throw new Error("Cannot build card without config");this._loadElement(this.config)}},{kind:"field",key:"_element",value:void 0},{kind:"field",key:"_listeners",value:()=>[]},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"disconnectedCallback",value:function(){(0,a.Z)(i,"disconnectedCallback",this,3)([]),this._clearMediaQueries()}},{kind:"method",key:"connectedCallback",value:function(){(0,a.Z)(i,"connectedCallback",this,3)([]),this._listenMediaQueries(),this._updateVisibility()}},{kind:"method",key:"getCardSize",value:function(){if(this._element){return(0,l.N)(this._element)}return 1}},{kind:"method",key:"getGridOptions",value:function(){return{...this.getElementGridOptions(),...this.getConfigGridOptions()}}},{kind:"method",key:"getElementGridOptions",value:function(){if(!this._element)return{};if(this._element.getGridOptions)return this._element.getGridOptions();if(this._element.getLayoutOptions){return(0,c.v)(this._element.getLayoutOptions())}return{}}},{kind:"method",key:"getConfigGridOptions",value:function(){return this.config?.grid_options?this.config.grid_options:this.config?.layout_options?(0,c.v)(this.config.layout_options):{}}},{kind:"method",key:"_updateElement",value:function(t){this._element&&(this._element.setConfig(t),this._elementConfig=t,(0,r.B)(this,"card-updated"))}},{kind:"method",key:"_loadElement",value:function(t){for(this._element=(0,d.Z6)(t),this._elementConfig=t,this.hass&&(this._element.hass=this.hass),this._element.layout=this.layout,this._element.preview=this.preview,this._element.editMode=this.preview,this._element.addEventListener("card-visibility-changed",(t=>{t.stopPropagation(),this._updateVisibility()})),this._element.addEventListener("ll-upgrade",(t=>{t.stopPropagation(),this.hass&&(this._element.hass=this.hass),(0,r.B)(this,"card-updated")}),{once:!0}),this._element.addEventListener("ll-rebuild",(e=>{e.stopPropagation(),this._loadElement(t),(0,r.B)(this,"card-updated")}),{once:!0});this.lastChild;)this.removeChild(this.lastChild);this._updateVisibility()}},{kind:"method",key:"willUpdate",value:function(t){(0,a.Z)(i,"willUpdate",this,3)([t]),this._element||this.load()}},{kind:"method",key:"update",value:function(t){if((0,a.Z)(i,"update",this,3)([t]),this._element){if(t.has("config")){const t=this._elementConfig;if(this.config!==t&&this.config){this.config?.type!==t?.type||this.preview||this.preview?this._loadElement(this.config):this._updateElement(this.config)}}if(t.has("hass"))try{this.hass&&(this._element.hass=this.hass)}catch(t){this._loadElement((0,u.N2)(t.message,null))}if(t.has("preview"))try{this._element.preview=this.preview,this._element.editMode=this.preview}catch(t){this._loadElement((0,u.N2)(t.message,null))}if(t.has("layout"))try{this._element.layout=this.layout,this._element.isPanel="panel"===this.layout}catch(t){this._loadElement((0,u.N2)(t.message,null))}}(t.has("hass")||t.has("preview"))&&this._updateVisibility()}},{kind:"method",key:"_clearMediaQueries",value:function(){this._listeners.forEach((t=>t())),this._listeners=[]}},{kind:"method",key:"_listenMediaQueries",value:function(){if(this._clearMediaQueries(),!this.config?.visibility)return;const t=this.config.visibility,e=1===t.length&&"screen"===t[0].condition&&!!t[0].media_query;this._listeners=(0,h.av)(this.config.visibility,(t=>{this._updateVisibility(e&&t)}))}},{kind:"method",key:"_updateVisibility",value:function(t){if(!this._element||!this.hass)return;if(this._element.hidden)return void this._setElementVisibility(!1);const e=t||this.preview||!this.config?.visibility||(0,h.Ec)(this.config.visibility,this.hass);this._setElementVisibility(e)}},{kind:"method",key:"_setElementVisibility",value:function(t){this._element&&(this.hidden!==!t&&(this.style.setProperty("display",t?"":"none"),this.toggleAttribute("hidden",!t),(0,r.B)(this,"card-visibility-changed",{value:t})),!0===this._element.connectedWhileHidden?this._element.parentElement||this.appendChild(this._element):!t&&this._element.parentElement?this.removeChild(this._element):t&&!this._element.parentElement&&this.appendChild(this._element))}}]}}),s.fl);e()}catch(t){e(t)}}))},49e3:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=i(72621),s=(i(9359),i(56475),i(31526),i(70104),i(57243)),o=i(15093),r=i(73358),c=i(82393),l=i(73850),h=(i(54977),i(81833)),d=i(69223),u=i(29401),f=(i(37630),i(64830)),g=i(46542),p=t([g]);g=(p.then?(await p)():p)[0];(0,n.Z)([(0,o.Mo)("hui-entities-card")],(function(t,e){class n extends e{constructor(...e){super(...e),t(this)}}return{F:n,d:[{kind:"method",static:!0,key:"getConfigElement",value:async function(){return await Promise.all([i.e("46379"),i.e("24199"),i.e("41258"),i.e("27506"),i.e("27090"),i.e("3049"),i.e("79931"),i.e("3371"),i.e("10745"),i.e("95444"),i.e("81488")]).then(i.bind(i,63930)),document.createElement("hui-entities-card-editor")}},{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){return{type:"entities",entities:(0,d.j)(t,3,e,i,["light","switch","sensor"])}}},{kind:"field",decorators:[(0,o.SB)()],key:"_config",value:void 0},{kind:"field",key:"_hass",value:void 0},{kind:"field",key:"_configEntities",value:void 0},{kind:"field",key:"_showHeaderToggle",value:void 0},{kind:"field",key:"_headerElement",value:void 0},{kind:"field",key:"_footerElement",value:void 0},{kind:"set",key:"hass",value:function(t){this._hass=t,this.shadowRoot?.querySelectorAll("#states > div > *").forEach((e=>{e.hass=t})),this._headerElement&&(this._headerElement.hass=t),this._footerElement&&(this._footerElement.hass=t);const e=this.shadowRoot?.querySelector("hui-entities-toggle");e&&(e.hass=t)}},{kind:"method",key:"getCardSize",value:async function(){if(!this._config)return 0;let t=(this._config.title||this._showHeaderToggle?2:0)+(this._config.entities.length||1);if(this._headerElement){const e=(0,h.N)(this._headerElement);t+=e instanceof Promise?await e:e}if(this._footerElement){const e=(0,h.N)(this._footerElement);t+=e instanceof Promise?await e:e}return t}},{kind:"method",key:"setConfig",value:function(t){if(!t.entities||!Array.isArray(t.entities))throw new Error("Entities must be specified");const e=(0,u.A)(t.entities);if(this._config=t,this._configEntities=e,void 0!==t.title&&void 0===t.show_header_toggle){let t=0;for(const i of e)if("entity"in i&&(t+=Number(r.Kk.has((0,l.M)(i.entity))),2===t))break;this._showHeaderToggle=2===t}else this._showHeaderToggle=t.show_header_toggle;this._config.header?(this._headerElement=(0,f.t)(this._config.header),this._headerElement.type="header",this._hass&&(this._headerElement.hass=this._hass)):this._headerElement=void 0,this._config.footer?(this._footerElement=(0,f.t)(this._config.footer),this._footerElement.type="footer",this._hass&&(this._footerElement.hass=this._hass)):this._footerElement=void 0}},{kind:"method",key:"updated",value:function(t){if((0,a.Z)(n,"updated",this,3)([t]),!this._config||!this._hass)return;const e=t.get("_hass"),i=t.get("_config");(!t.has("_hass")||e&&e.themes===this._hass.themes)&&(!t.has("_config")||i&&i.theme===this._config.theme)||(0,c.R)(this,this._hass.themes,this._config.theme)}},{kind:"method",key:"render",value:function(){return this._config&&this._hass?s.dy` <ha-card> ${this._headerElement?s.dy`<div class="header-footer header">${this._headerElement}</div>`:""} ${this._config.title||this._showHeaderToggle||this._config.icon?s.dy` <h1 class="card-header"> <div class="name"> ${this._config.icon?s.dy` <ha-icon class="icon" .icon="${this._config.icon}"></ha-icon> `:""} ${this._config.title} </div> ${this._showHeaderToggle?s.dy` <hui-entities-toggle .hass="${this._hass}" .entities="${this._configEntities.filter((t=>"entity"in t)).map((t=>t.entity))}"></hui-entities-toggle> `:s.Ld} </h1> `:""} <div id="states" class="card-content"> ${this._configEntities.map((t=>this._renderEntity(t)))} </div> ${this._footerElement?s.dy`<div class="header-footer footer">${this._footerElement}</div>`:""} </ha-card> `:s.Ld}},{kind:"field",static:!0,key:"styles",value:()=>s.iv`ha-card{height:100%;display:flex;flex-direction:column;justify-content:space-between}.card-header{display:flex;justify-content:space-between}.card-header .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#states{flex:1}#states>*{margin:8px 0}#states>:first-child{margin-top:0}#states>:last-child{margin-bottom:0}#states>div>*{overflow:clip visible}#states>div{position:relative}.icon{padding:0px 18px 0px 8px}.header{border-top-left-radius:var(--ha-card-border-radius,12px);border-top-right-radius:var(--ha-card-border-radius,12px);margin-bottom:16px;overflow:hidden}.footer{border-bottom-left-radius:var(--ha-card-border-radius,12px);border-bottom-right-radius:var(--ha-card-border-radius,12px);margin-top:-16px;overflow:hidden}`},{kind:"method",key:"_renderEntity",value:function(t){const e=(0,g.m)("type"in t&&"conditional"!==t.type||!("state_color"in this._config)?"perform-action"===t.type?{...t,type:"call-service"}:t:{state_color:this._config.state_color,...t});return this._hass&&(e.hass=this._hass),s.dy`<div>${e}</div>`}}]}}),s.oi);e()}catch(t){e(t)}}))},49025:function(t,e,i){var n=i(44249),a=i(72621),s=i(15093),o=i(3613);(0,n.Z)([(0,s.Mo)("hui-entity-button-card")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"method",key:"setConfig",value:function(t){if(!t.entity)throw new Error("Entity must be specified");(0,a.Z)(i,"setConfig",this,3)([t])}}]}}),o.z)},28113:function(t,e,i){i.a(t,(async function(t,n){try{i.d(e,{w:()=>A});var a=i(44249),s=i(72621),o=i(57243),r=i(15093),c=i(35359),l=i(20552),h=i(69634),d=i(82393),u=i(36522),f=i(59847),g=i(47194),p=i(42818),v=i(31064),m=i(50602),_=i(44705),y=i(59389),b=(i(54977),i(65981),i(350)),k=i(96194),w=i(81833),x=i(69223),$=i(93331),C=i(62577),E=i(64830),S=t([y,m]);[y,m]=S.then?(await S)():S;let A=(0,a.Z)([(0,r.Mo)("hui-entity-card")],(function(t,e){class n extends e{constructor(...e){super(...e),t(this)}}return{F:n,d:[{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){return{entity:(0,x.j)(t,1,e,i,["sensor","light","switch"])[0]||""}}},{kind:"method",static:!0,key:"getConfigForm",value:async function(){return(await i.e("72333").then(i.bind(i,41841))).default}},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,r.Cb)()],key:"layout",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_config",value:void 0},{kind:"field",key:"_footerElement",value:void 0},{kind:"method",key:"_getStateColor",value:function(t,e){const i=t?(0,f.N)(t):void 0;return e&&(e.state_color??"light"===i)}},{kind:"method",key:"setConfig",value:function(t){if(!t.entity)throw new Error("Entity must be specified");if(t.entity&&!(0,v.T)(t.entity))throw new Error("Invalid entity");this._config=t,this._config.footer?this._footerElement=(0,E.t)(this._config.footer):this._footerElement&&(this._footerElement=void 0)}},{kind:"method",key:"getCardSize",value:async function(){let t=2;if(this._footerElement){const e=(0,w.N)(this._footerElement);t+=e instanceof Promise?await e:e}return t}},{kind:"method",key:"render",value:function(){if(!this._config||!this.hass)return o.Ld;const t=this.hass.states[this._config.entity];if(!t)return o.dy` <hui-warning> ${(0,C.i)(this.hass,this._config.entity)} </hui-warning> `;const e=(0,f.N)(t),i=this._config.attribute?this._config.attribute in t.attributes:!(0,k.rk)(t.state),n=this._config.name||(0,g.C)(t),a=t&&this._getStateColor(t,this._config),s="grid"===this.layout&&void 0!==this._footerElement;return o.dy` <ha-card @click="${this._handleClick}" tabindex="0" class="${(0,c.$)({"with-fixed-footer":s})}"> <div class="header"> <div class="name" .title="${n}">${n}</div> <div class="icon"> <ha-state-icon .icon="${this._config.icon}" .stateObj="${t}" .hass="${this.hass}" data-domain="${(0,l.o)(e)}" data-state="${t.state}" style="${(0,h.V)({color:a?this._computeColor(t):void 0,filter:a?(0,p.I2)(t):void 0,height:this._config.icon_height?this._config.icon_height:""})}"></ha-state-icon> </div> </div> <div class="info"> <span class="value">${"attribute"in this._config?void 0!==t.attributes[this._config.attribute]?o.dy` <ha-attribute-value hide-unit .hass="${this.hass}" .stateObj="${t}" .attribute="${this._config.attribute}"> </ha-attribute-value> `:this.hass.localize("state.default.unknown"):((0,m.SL)(t)||this._config.unit)&&"duration"!==t.attributes.device_class?(0,m.uf)(t.state,this.hass.locale,(0,m.l4)(t,this.hass.entities[this._config.entity])):this.hass.formatEntityState(t)}</span>${i?o.dy` <span class="measurement">${this._config.unit||(this._config.attribute||"duration"===t.attributes.device_class?"":t.attributes.unit_of_measurement)}</span> `:""} </div> <div class="footer">${this._footerElement}</div> </ha-card> `}},{kind:"method",key:"_computeColor",value:function(t){if(t.attributes.hvac_action){const e=t.attributes.hvac_action;return e in b.hB?(0,p.Hh)(t,b.hB[e]):void 0}if(t.attributes.rgb_color)return`rgb(${t.attributes.rgb_color.join(",")})`;const e=(0,p.Hh)(t);return e||void 0}},{kind:"method",key:"shouldUpdate",value:function(t){return this._footerElement&&(this._footerElement.hass=this.hass),(0,$.G2)(this,t)}},{kind:"method",key:"updated",value:function(t){if((0,s.Z)(n,"updated",this,3)([t]),!this._config||!this.hass)return;const e=t.get("hass"),i=t.get("_config");e&&i&&e.themes===this.hass.themes&&i.theme===this._config.theme||(0,d.R)(this,this.hass.themes,this._config.theme)}},{kind:"method",key:"_handleClick",value:function(){(0,u.B)(this,"hass-more-info",{entityId:this._config.entity})}},{kind:"method",key:"getGridOptions",value:function(){return{columns:6,rows:2,min_columns:6,min_rows:2}}},{kind:"get",static:!0,key:"styles",value:function(){return[_.N,o.iv`ha-card{height:100%;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;outline:0}.header{display:flex;padding:8px 16px 0;justify-content:space-between}.name{color:var(--secondary-text-color);line-height:40px;font-weight:500;font-size:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.icon{color:var(--paper-item-icon-color,#44739e);--state-inactive-color:var(--paper-item-icon-color, #44739e);line-height:40px}.info{padding:0px 16px 16px;margin-top:-4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:28px}.value{font-size:28px;margin-right:4px;margin-inline-end:4px;margin-inline-start:initial}.measurement{font-size:18px;color:var(--secondary-text-color)}.with-fixed-footer{justify-content:flex-start}.with-fixed-footer .footer{position:absolute;right:0;left:0;bottom:0}`]}}]}}),o.oi);n()}catch(t){n(t)}}))},3709:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),a=i(72621),s=(i(9359),i(70104),i(57243)),o=i(15093),r=i(35359),c=i(20552),l=i(82393),h=i(73850),d=i(47194),u=i(5460),f=(i(54977),i(65981),i(95975)),g=i(96194),p=i(96309),v=i(3967),m=i(69223),_=i(1617),y=i(5684),b=i(93331),k=i(29401),w=i(94333),x=i(62577),$=(i(76986),t([u,f,w]));[u,f,w]=$.then?(await $)():$;(0,n.Z)([(0,o.Mo)("hui-glance-card")],(function(t,e){class n extends e{constructor(...e){super(...e),t(this)}}return{F:n,d:[{kind:"method",static:!0,key:"getConfigElement",value:async function(){return await Promise.all([i.e("46379"),i.e("24199"),i.e("27506"),i.e("27090"),i.e("3049"),i.e("36368")]).then(i.bind(i,32546)),document.createElement("hui-glance-card-editor")}},{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){return{type:"glance",entities:(0,m.j)(t,3,e,i,["sensor"])}}},{kind:"field",decorators:[(0,o.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,o.SB)()],key:"_config",value:void 0},{kind:"field",key:"_configEntities",value:void 0},{kind:"method",key:"getCardSize",value:function(){const t=(this._config.show_icon?1:0)+(this._config.show_name?1:0)+(this._config.show_state?1:0),e=Math.ceil(this._configEntities.length/(this._config.columns||5));return(this._config.title?2:0)+t*e}},{kind:"method",key:"setConfig",value:function(t){this._config={show_name:!0,show_state:!0,show_icon:!0,state_color:!0,...t};const e=(0,k.A)(t.entities).map((t=>({hold_action:{action:"more-info"},...t})));for(const t of e)if(t.tap_action&&"call-service"===t.tap_action.action&&!t.tap_action.service||t.hold_action&&"call-service"===t.hold_action.action&&!t.hold_action.service)throw new Error('Missing required property "service" when tap_action or hold_action is call-service');const i=t.columns||Math.min(t.entities.length,5);this.style.setProperty("--glance-column-width",100/i+"%"),this._configEntities=e,this.hass&&this.requestUpdate()}},{kind:"method",key:"shouldUpdate",value:function(t){return(0,b.Wh)(this,t)}},{kind:"method",key:"render",value:function(){if(!this._config||!this.hass)return s.Ld;const{title:t}=this._config;return s.dy` <ha-card .header="${t}"> <div class="${(0,r.$)({entities:!0,"no-header":!t})}"> ${this._configEntities.map((t=>this._renderEntity(t)))} </div> </ha-card> `}},{kind:"method",key:"updated",value:function(t){if((0,a.Z)(n,"updated",this,3)([t]),!this._config||!this.hass)return;const e=t.get("hass"),i=t.get("_config");e&&i&&e.themes===this.hass.themes&&i.theme===this._config.theme||(0,l.R)(this,this.hass.themes,this._config.theme)}},{kind:"field",static:!0,key:"styles",value:()=>s.iv`ha-card{height:100%}.entities{display:flex;padding:0 16px 4px;flex-wrap:wrap;box-sizing:border-box;align-items:center;align-content:center}.entities.no-header{padding-top:16px}.entity{box-sizing:border-box;padding:0 4px;display:flex;flex-direction:column;align-items:center;margin-bottom:12px;width:var(--glance-column-width,20%)}.entity.action{cursor:pointer}.entity:focus{outline:0;background:var(--divider-color);border-radius:14px;padding:4px;margin-top:-4px;margin-bottom:8px}.entity div{width:100%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.name{min-height:var(--paper-font-body1_-_line-height,20px)}.warning{cursor:default;position:relative;padding:8px;width:calc(var(--glance-column-width,20%) - 4px);margin:0 2px}.warning::before{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;pointer-events:none;content:"";border-radius:4px;background-color:var(--warning-color)}state-badge{margin:8px 0}hui-warning-element{padding:8px}`},{kind:"method",key:"_renderEntity",value:function(t){const e=this.hass.states[t.entity];if(!e)return s.dy`<div class="entity warning"> ${this._config.show_name?s.dy` <div class="name"> ${(0,x.i)(this.hass,t.entity)} </div> `:""} ${this._config.show_icon?s.dy` <hui-warning-element .label="${(0,x.i)(this.hass,t.entity)}"></hui-warning-element>`:""} <div>${this._config.show_state?t.entity:""}</div> </div>`;const i=t.name??(0,d.C)(e);return s.dy` <div class="${(0,r.$)({entity:!0,action:(0,y.q)(t)})}" .config="${t}" @action="${this._handleAction}" .actionHandler="${(0,v.K)({hasHold:(0,y._)(t.hold_action),hasDoubleClick:(0,y._)(t.double_tap_action)})}" tabindex="${(0,c.o)(!t.tap_action||(0,y._)(t.tap_action)?"0":