iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
11 lines • 56.7 kB
JavaScript
export const __webpack_ids__=["55815"];export const __webpack_modules__={57724:function(t,e,i){i.a(t,(async function(t,o){try{i.d(e,{w:()=>d});var a=i(97836),s=i(61985),r=i(64214),n=i(33570),l=t([n,r]);[n,r]=l.then?(await l)():l;const d=(t,e,i,o)=>{const l=o??new Date;return(0,a.K)(t,l)?(0,n.mr)(t,e,i):(0,s.F)(t,l)?(0,r.yD)(t,e,i):(0,r.DG)(t,e,i)};o()}catch(t){o(t)}}))},40087:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),a=i(72621),s=i(32424),r=i(7591),n=i(14276),l=i(57243),d=i(15093),c=i(57724),h=t([c]);c=(h.then?(await h)():h)[0];const u=5e3;(0,o.Z)([(0,d.Mo)("ha-absolute-time")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"datetime",value:void 0},{kind:"field",key:"_timeout",value:void 0},{kind:"method",key:"disconnectedCallback",value:function(){(0,a.Z)(i,"disconnectedCallback",this,3)([]),this._clearTimeout()}},{kind:"method",key:"connectedCallback",value:function(){(0,a.Z)(i,"connectedCallback",this,3)([]),this.datetime&&this._updateNextDay()}},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"firstUpdated",value:function(t){(0,a.Z)(i,"firstUpdated",this,3)([t]),this._updateAbsolute()}},{kind:"method",key:"update",value:function(t){(0,a.Z)(i,"update",this,3)([t]),this._updateAbsolute()}},{kind:"method",key:"_clearTimeout",value:function(){this._timeout&&(window.clearTimeout(this._timeout),this._timeout=void 0)}},{kind:"method",key:"_updateNextDay",value:function(){this._clearTimeout();const t=new Date,e=(0,s.E)((0,r.b)(t),1),i=(0,n._)(e,t)+u;this._timeout=window.setTimeout((()=>{this._updateNextDay(),this._updateAbsolute()}),i)}},{kind:"method",key:"_updateAbsolute",value:function(){this.datetime?this.innerHTML=(0,c.w)(new Date(this.datetime),this.hass.locale,this.hass.config):this.innerHTML=this.hass.localize("ui.components.absolute_time.never")}}]}}),l.fl);e()}catch(t){e(t)}}))},12763:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),a=(i(9359),i(56475),i(70104),i(57243)),s=i(15093),r=i(25904),n=i(59519),l=i(28008),d=i(59389),c=(i(41307),t([d,n,r]));[d,n,r]=c.then?(await c)():c;(0,o.Z)([(0,s.Mo)("ha-attributes")],(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:"extra-filters"})],key:"extraFilters",value:void 0},{kind:"field",decorators:[(0,s.SB)()],key:"_expanded",value:()=>!1},{kind:"get",key:"_filteredAttributes",value:function(){return this._computeDisplayAttributes(n.wk.concat(this.extraFilters?this.extraFilters.split(","):[]))}},{kind:"method",key:"willUpdate",value:function(t){(t.has("extraFilters")||t.has("stateObj"))&&this.toggleAttribute("empty",0===this._filteredAttributes.length)}},{kind:"method",key:"render",value:function(){if(!this.stateObj)return a.Ld;const t=this._filteredAttributes;return 0===t.length?a.Ld:a.dy` <ha-expansion-panel .header="${this.hass.localize("ui.components.attributes.expansion_header")}" outlined @expanded-will-change="${this._expandedChanged}"> <div class="attribute-container"> ${this._expanded?a.dy` ${t.map((t=>a.dy` <div class="data-entry"> <div class="key"> ${(0,r.computeAttributeNameDisplay)(this.hass.localize,this.stateObj,this.hass.entities,t)} </div> <div class="value"> <ha-attribute-value .hass="${this.hass}" .attribute="${t}" .stateObj="${this.stateObj}"></ha-attribute-value> </div> </div> `))} `:""} </div> </ha-expansion-panel> ${this.stateObj.attributes.attribution?a.dy` <div class="attribution"> ${this.stateObj.attributes.attribution} </div> `:""} `}},{kind:"get",static:!0,key:"styles",value:function(){return[l.Qx,a.iv`.attribute-container{margin-bottom:8px;direction:ltr}.data-entry{display:flex;flex-direction:row;justify-content:space-between}.data-entry .value{max-width:60%;overflow-wrap:break-word;text-align:right}.key{flex-grow:1}.attribution{color:var(--secondary-text-color);text-align:center;margin-top:16px}hr{border-color:var(--divider-color);border-bottom:none;margin:16px 0}`]}},{kind:"method",key:"_computeDisplayAttributes",value:function(t){return this.stateObj?Object.keys(this.stateObj.attributes).filter((e=>-1===t.indexOf(e))):[]}},{kind:"method",key:"_expandedChanged",value:function(t){this._expanded=t.detail.expanded}}]}}),a.oi);e()}catch(t){e(t)}}))},45747:function(t,e,i){i.r(e),i.d(e,{HaIconButtonGroup:()=>r});var o=i(44249),a=i(57243),s=i(15093);let r=(0,o.Z)([(0,s.Mo)("ha-icon-button-group")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"render",value:function(){return a.dy`<slot></slot>`}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{position:relative;display:flex;flex-direction:row;align-items:center;height:48px;border-radius:28px;background-color:rgba(139,145,151,.1);box-sizing:border-box;width:auto;padding:0}::slotted(.separator){background-color:rgba(var(--rgb-primary-text-color),.15);width:1px;margin:0 1px;height:40px}`}]}}),a.oi)},5828:function(t,e,i){i.r(e),i.d(e,{HaIconButtonPrev:()=>n});var o=i(44249),a=i(57243),s=i(15093),r=i(5111);i(23334);let n=(0,o.Z)([(0,s.Mo)("ha-icon-button-prev")],(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)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,s.SB)()],key:"_icon",value:()=>"rtl"===r.E.document.dir?"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z":"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"},{kind:"method",key:"render",value:function(){return a.dy` <ha-icon-button .disabled="${this.disabled}" .label="${this.label||this.hass?.localize("ui.common.back")||"Back"}" .path="${this._icon}"></ha-icon-button> `}}]}}),a.oi)},79505:function(t,e,i){i.r(e),i.d(e,{HaIconButtonToggle:()=>n});var o=i(44249),a=i(57243),s=i(15093),r=i(23334);let n=(0,o.Z)([(0,s.Mo)("ha-icon-button-toggle")],(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:"selected",value:()=>!1},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{position:relative}mwc-icon-button{position:relative;transition:color 180ms ease-in-out}mwc-icon-button::before{opacity:0;transition:opacity 180ms ease-in-out;background-color:var(--primary-text-color);border-radius:20px;height:40px;width:40px;content:"";position:absolute;top:-10px;left:-10px;bottom:-10px;right:-10px;margin:auto;box-sizing:border-box}:host([border-only]) mwc-icon-button::before{background-color:transparent;border:2px solid var(--primary-text-color)}:host([selected]) mwc-icon-button{color:var(--primary-background-color)}:host([selected]:not([disabled])) mwc-icon-button::before{opacity:1}`}]}}),r.HaIconButton)},34363:function(t,e,i){var o=i(44249),a=i(57243),s=i(15093);(0,o.Z)([(0,s.Mo)("ha-input-helper-text")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"render",value:function(){return a.dy`<slot></slot>`}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{display:block;color:var(--mdc-text-field-label-ink-color,rgba(0,0,0,.6));font-size:.75rem;padding-left:16px;padding-right:16px;padding-inline-start:16px;padding-inline-end:16px}`}]}}),a.oi)},78614:function(t,e,i){var o=i(44249),a=i(57243),s=i(15093),r=i(36522);i(65981),i(34363),i(74421);(0,o.Z)([(0,s.Mo)("ha-labeled-slider")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"labeled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)()],key:"caption",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"required",value:()=>!0},{kind:"field",decorators:[(0,s.Cb)({type:Number})],key:"min",value:()=>0},{kind:"field",decorators:[(0,s.Cb)({type:Number})],key:"max",value:()=>100},{kind:"field",decorators:[(0,s.Cb)({type:Number})],key:"step",value:()=>1},{kind:"field",decorators:[(0,s.Cb)()],key:"helper",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"extra",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)()],key:"icon",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Number})],key:"value",value:void 0},{kind:"method",key:"render",value:function(){return a.dy` <div class="title">${this._getTitle()}</div> <div class="extra-container"><slot name="extra"></slot></div> <div class="slider-container"> ${this.icon?a.dy`<ha-icon icon="${this.icon}"></ha-icon>`:a.Ld} <ha-slider .min="${this.min}" .max="${this.max}" .step="${this.step}" .labeled="${this.labeled}" .disabled="${this.disabled}" .value="${this.value}" @change="${this._inputChanged}"></ha-slider> </div> ${this.helper?a.dy`<ha-input-helper-text> ${this.helper} </ha-input-helper-text>`:a.Ld} `}},{kind:"method",key:"_getTitle",value:function(){return`${this.caption}${this.caption&&this.required?" *":""}`}},{kind:"method",key:"_inputChanged",value:function(t){(0,r.B)(this,"value-changed",{value:Number(t.target.value)})}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`:host{display:block}.title{margin:5px 0 8px;color:var(--primary-text-color)}.slider-container{display:flex}ha-icon{margin-top:8px;color:var(--secondary-text-color)}ha-slider{flex-grow:1;background-image:var(--ha-slider-background);border-radius:4px}`}]}}),a.oi)},62801:function(t,e,i){var o=i(44249),a=i(72621),s=(i(9359),i(56475),i(22139),i(57243)),r=i(15093),n=i(36522);(0,o.Z)([(0,r.Mo)("ha-sortable")],(function(t,e){class o extends e{constructor(...e){super(...e),t(this)}}return{F:o,d:[{kind:"field",key:"_sortable",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean,attribute:"no-style"})],key:"noStyle",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:String,attribute:"draggable-selector"})],key:"draggableSelector",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:String,attribute:"handle-selector"})],key:"handleSelector",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:String,attribute:"filter"})],key:"filter",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:String})],key:"group",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean,attribute:"invert-swap"})],key:"invertSwap",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"options",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"rollback",value:()=>!0},{kind:"method",key:"updated",value:function(t){t.has("disabled")&&(this.disabled?this._destroySortable():this._createSortable())}},{kind:"field",key:"_shouldBeDestroy",value:()=>!1},{kind:"method",key:"disconnectedCallback",value:function(){(0,a.Z)(o,"disconnectedCallback",this,3)([]),this._shouldBeDestroy=!0,setTimeout((()=>{this._shouldBeDestroy&&(this._destroySortable(),this._shouldBeDestroy=!1)}),1)}},{kind:"method",key:"connectedCallback",value:function(){(0,a.Z)(o,"connectedCallback",this,3)([]),this._shouldBeDestroy=!1,this.hasUpdated&&!this.disabled&&this._createSortable()}},{kind:"method",key:"createRenderRoot",value:function(){return this}},{kind:"method",key:"render",value:function(){return this.noStyle?s.Ld:s.dy` <style>.sortable-fallback{display:none!important}.sortable-ghost{box-shadow:0 0 0 2px var(--primary-color);background:rgba(var(--rgb-primary-color),.25);border-radius:4px;opacity:.4}.sortable-drag{border-radius:4px;opacity:1;background:var(--card-background-color);box-shadow:0px 4px 8px 3px #00000026;cursor:grabbing}</style> `}},{kind:"method",key:"_createSortable",value:async function(){if(this._sortable)return;const t=this.children[0];if(!t)return;const e=(await Promise.all([i.e("34153"),i.e("467")]).then(i.bind(i,59807))).default,o={scroll:!0,forceAutoScrollFallback:!0,scrollSpeed:20,animation:150,...this.options,onChoose:this._handleChoose,onStart:this._handleStart,onEnd:this._handleEnd,onUpdate:this._handleUpdate,onAdd:this._handleAdd,onRemove:this._handleRemove};this.draggableSelector&&(o.draggable=this.draggableSelector),this.handleSelector&&(o.handle=this.handleSelector),void 0!==this.invertSwap&&(o.invertSwap=this.invertSwap),this.group&&(o.group=this.group),this.filter&&(o.filter=this.filter),this._sortable=new e(t,o)}},{kind:"field",key:"_handleUpdate",value(){return t=>{(0,n.B)(this,"item-moved",{newIndex:t.newIndex,oldIndex:t.oldIndex})}}},{kind:"field",key:"_handleAdd",value(){return t=>{(0,n.B)(this,"item-added",{index:t.newIndex,data:t.item.sortableData})}}},{kind:"field",key:"_handleRemove",value(){return t=>{(0,n.B)(this,"item-removed",{index:t.oldIndex})}}},{kind:"field",key:"_handleEnd",value(){return async t=>{(0,n.B)(this,"drag-end"),this.rollback&&t.item.placeholder&&(t.item.placeholder.replaceWith(t.item),delete t.item.placeholder)}}},{kind:"field",key:"_handleStart",value(){return()=>{(0,n.B)(this,"drag-start")}}},{kind:"field",key:"_handleChoose",value(){return t=>{this.rollback&&(t.item.placeholder=document.createComment("sort-placeholder"),t.item.after(t.item.placeholder))}}},{kind:"method",key:"_destroySortable",value:function(){this._sortable&&(this._sortable.destroy(),this._sortable=void 0)}}]}}),s.oi)},44732:function(t,e,i){var o=i(44249),a=i(57243),s=i(15093),r=i(35359);(0,o.Z)([(0,s.Mo)("ha-more-info-control-select-container")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"render",value:function(){const t=`items-${this.childElementCount}`;return a.dy` <div class="controls"> <div class="controls-scroll ${(0,r.$)({[t]:!0,multiline:this.childElementCount>=4})}"> <slot></slot> </div> </div> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`.controls{display:flex;flex-direction:row;justify-content:center}.controls-scroll{display:flex;flex-direction:row;justify-content:flex-start;gap:12px;margin:auto;overflow:auto;-ms-overflow-style:none;scrollbar-width:none;margin:-2px -24px;padding:2px 24px}.controls-scroll::-webkit-scrollbar{display:none}::slotted(*){min-width:120px;max-width:160px;flex:none}@media all and (hover:hover),all and (min-width:600px) and (min-height:501px){.controls-scroll{justify-content:center;flex-wrap:wrap;width:100%;max-width:450px}.controls-scroll.items-4{max-width:300px}.controls-scroll.items-3 ::slotted(*){max-width:140px}.multiline ::slotted(*){width:140px}}`}]}}),a.oi)},92947:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),a=i(57243),s=i(15093),r=i(40087),n=i(95975),l=i(96194),d=i(96309),c=i(94333),h=t([r,n,c]);[r,n,c]=h.then?(await h)():h;(0,o.Z)([(0,s.Mo)("ha-more-info-state-header")],(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:"stateOverride",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"changedOverride",value:void 0},{kind:"field",decorators:[(0,s.SB)()],key:"_absoluteTime",value:()=>!1},{kind:"method",key:"_localizeState",value:function(){return this.stateObj.attributes.device_class!==d.Ft||(0,l.rk)(this.stateObj.state)?this.hass.formatEntityState(this.stateObj):a.dy` <hui-timestamp-display .hass="${this.hass}" .ts="${new Date(this.stateObj.state)}" format="relative" capitalize></hui-timestamp-display> `}},{kind:"method",key:"_toggleAbsolute",value:function(){this._absoluteTime=!this._absoluteTime}},{kind:"method",key:"render",value:function(){const t=this.stateOverride??this._localizeState();return a.dy` <p class="state">${t}</p> <p class="last-changed" @click="${this._toggleAbsolute}"> ${this._absoluteTime?a.dy` <ha-absolute-time .hass="${this.hass}" .datetime="${this.changedOverride??this.stateObj.last_changed}"></ha-absolute-time> `:a.dy` <ha-relative-time .hass="${this.hass}" .datetime="${this.changedOverride??this.stateObj.last_changed}" capitalize></ha-relative-time> `} </p> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`p{text-align:center;margin:0}.state{font-style:normal;font-weight:400;font-size:36px;line-height:44px}.last-changed{font-style:normal;font-weight:500;font-size:16px;line-height:24px;letter-spacing:.1px;padding:4px 0;margin-bottom:20px;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}`}]}}),a.oi);e()}catch(t){e(t)}}))},18481:function(t,e,i){var o=i(44249),a=i(57243),s=i(15093),r=i(20552),n=i(69634),l=i(11259),d=i(67180),c=i(37723);i(75138),i(37583);(0,o.Z)([(0,s.Mo)("ha-favorite-color-button")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"focus",value:function(){this._button?.focus()}},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"label",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean,reflect:!0})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"color",value:void 0},{kind:"field",decorators:[(0,s.IO)("ha-outlined-icon-button",!0)],key:"_button",value:void 0},{kind:"get",key:"_rgbColor",value:function(){if(this.color){if("hs_color"in this.color)return(0,l.Mc)([this.color.hs_color[0],this.color.hs_color[1]/100]);if("color_temp_kelvin"in this.color)return(0,d.h0)(this.color.color_temp_kelvin);if("rgb_color"in this.color)return this.color.rgb_color;if("rgbw_color"in this.color)return(0,d.zJ)(this.color.rgbw_color);if("rgbww_color"in this.color)return(0,d.Pb)(this.color.rgbww_color,this.stateObj?.attributes.min_color_temp_kelvin,this.stateObj?.attributes.max_color_temp_kelvin)}return[255,255,255]}},{kind:"method",key:"render",value:function(){const t=(0,l.CO)(this._rgbColor),e=(0,c.T2)(this._rgbColor)>.8?[33,33,33]:[255,255,255],i=(0,l.CO)(e),o=e.join(", ");return a.dy` <ha-outlined-icon-button no-ripple .disabled="${this.disabled}" title="${(0,r.o)(this.label)}" aria-label="${(0,r.o)(this.label)}" style="${(0,n.V)({"background-color":t,"--icon-color":i,"--rgb-icon-color":o})}"></ha-outlined-icon-button> `}},{kind:"get",static:!0,key:"styles",value:function(){return[a.iv`:host{display:block}ha-outlined-icon-button{--ha-icon-display:block;--md-sys-color-on-surface:var(
--icon-color,
var(--secondary-text-color)
);--md-sys-color-on-surface-variant:var(
--icon-color,
var(--secondary-text-color)
);--md-sys-color-on-surface-rgb:var(
--rgb-icon-color,
var(--rgb-secondary-text-color)
);--md-sys-color-outline:var(--divider-color);--md-ripple-focus-color:0;--md-ripple-hover-opacity:0;--md-ripple-pressed-opacity:0;border-radius:9999px}:host([disabled]){pointer-events:none}ha-outlined-icon-button[disabled]{filter:grayscale(1) opacity(.5)}`]}}]}}),a.oi)},23979:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),a=(i(9359),i(56475),i(70104),i(57243)),s=i(15093),r=i(35359),n=i(36522),l=i(54250),d=(i(62801),i(96194)),c=i(63318),h=i(90243),u=i(3967),b=i(76131),v=(i(18481),i(84935)),f=t([l]);l=(f.then?(await f)():f)[0];const p="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z",k="M19,13H5V11H19V13Z",y="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z";(0,o.Z)([(0,s.Mo)("ha-more-info-light-favorite-colors")],(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:"entry",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"editMode",value:void 0},{kind:"field",decorators:[(0,s.SB)()],key:"_favoriteColors",value:()=>[]},{kind:"method",key:"updated",value:function(t){t.has("entry")&&this.entry&&(this.entry.options?.light?.favorite_colors?this._favoriteColors=this.entry.options.light.favorite_colors:this.stateObj&&(this._favoriteColors=(0,h.e4)(this.stateObj)))}},{kind:"method",key:"_colorMoved",value:function(t){t.stopPropagation();const{oldIndex:e,newIndex:i}=t.detail;this._move(e,i)}},{kind:"method",key:"_move",value:function(t,e){const i=this._favoriteColors.concat(),o=i.splice(t,1)[0];i.splice(e,0,o),this._favoriteColors=i,this._save(i)}},{kind:"field",key:"_apply",value(){return t=>{const e=this._favoriteColors[t];this.hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,...e})}}},{kind:"method",key:"_save",value:async function(t){const e=await(0,c.Nv)(this.hass,this.entry.entity_id,{options_domain:"light",options:{favorite_colors:t}});(0,n.B)(this,"entity-entry-updated",e.entity_entry)}},{kind:"field",key:"_add",value(){return async()=>{const t=await(0,v.E)(this,{entry:this.entry,title:this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.add_title")});if(t){const e=[...this._favoriteColors,t];this._save(e)}}}},{kind:"field",key:"_edit",value(){return async t=>{(0,n.B)(this,"favorite-color-edit-started"),await this._apply(t);const e=await(0,v.E)(this,{entry:this.entry,initialColor:this._favoriteColors[t],title:this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.edit_title")});if(e){const i=[...this._favoriteColors];i[t]=e,this._save(i)}else this._apply(t)}}},{kind:"field",key:"_delete",value(){return async t=>{if(!await(0,b.showConfirmationDialog)(this,{destructive:!0,title:this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.delete_confirm_title"),text:this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.delete_confirm_text"),confirmText:this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.delete_confirm_action")}))return;const e=this._favoriteColors.filter(((e,i)=>t!==i));this._save(e)}}},{kind:"field",key:"_handleDeleteButton",value(){return t=>{t.stopPropagation();const e=t.target.index;this._delete(e)}}},{kind:"field",key:"_handleAddButton",value(){return t=>{t.stopPropagation(),this._add()}}},{kind:"field",key:"_handleColorAction",value(){return t=>{if(t.stopPropagation(),"hold"===t.detail.action&&this.hass.user?.is_admin)return void(0,n.B)(this,"toggle-edit-mode",!0);const e=t.target.index;this.editMode?this._edit(e):this._apply(e)}}},{kind:"field",key:"_exitEditMode",value(){return t=>{t.stopPropagation(),(0,n.B)(this,"toggle-edit-mode",!1)}}},{kind:"method",key:"render",value:function(){return a.dy` <ha-sortable @item-moved="${this._colorMoved}" item=".color" no-style .disabled="${!this.editMode}"> <div class="container"> ${this._favoriteColors.map(((t,e)=>a.dy` <div class="color"> <div class="color-bubble ${(0,r.$)({shake:!!this.editMode})}"> <ha-favorite-color-button .label="${this.hass.localize("ui.dialogs.more_info_control.light.favorite_color."+(this.editMode?"edit":"set"),{number:e})}" .disabled="${this.stateObj.state===d.nZ}" .color="${t}" .index="${e}" .actionHandler="${(0,u.K)({hasHold:!this.editMode&&this.hass.user?.is_admin,disabled:this.stateObj.state===d.nZ})}" @action="${this._handleColorAction}"> </ha-favorite-color-button> ${this.editMode?a.dy` <button @click="${this._handleDeleteButton}" class="delete" .index="${e}" aria-label="${this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.delete",{number:e})}" .title="${this.hass.localize("ui.dialogs.more_info_control.light.favorite_color.delete",{number:e})}"> <ha-svg-icon .path="${k}"></ha-svg-icon> </button> `:a.Ld} </div> </div> `))} ${this.editMode?a.dy` <ha-outlined-icon-button class="button" @click="${this._handleAddButton}"> <ha-svg-icon .path="${y}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button @click="${this._exitEditMode}" class="button"> <ha-svg-icon .path="${p}"></ha-svg-icon> </ha-outlined-icon-button> `:a.Ld} </div> </ha-sortable> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`.container{position:relative;display:flex;align-items:center;justify-content:center;margin:-8px;flex-wrap:wrap;max-width:250px;user-select:none}.container>*{margin:8px}.color{display:block}.color .color-bubble.shake{position:relative;display:block;animation:shake .45s linear infinite}.color:nth-child(3n+1) .color-bubble.shake{animation-delay:.15s}.color:nth-child(3n+2) .color-bubble.shake{animation-delay:.3s}.sortable-ghost{opacity:.4}.sortable-fallback{display:none}@keyframes shake{0%{transform:rotateZ(0deg) translateX(-1px) translateY(0) scale(1)}20%{transform:rotateZ(-3deg) translateX(0) translateY()}40%{transform:rotateZ(0deg) translateX(1px) translateY(0)}60%{transform:rotateZ(3deg) translateX(0) translateY(0)}100%{transform:rotateZ(0deg) translateX(-1px) translateY(0)}}.delete{position:absolute;top:-6px;right:-6px;inset-inline-end:-6px;inset-inline-start:initial;width:20px;height:20px;outline:0;background-color:var(--secondary-background-color);padding:0;border-radius:10px;border:none;cursor:pointer;display:block}.delete{--mdc-icon-size:12px;color:var(--primary-text-color)}.delete *{pointer-events:none}`}]}}),a.oi);e()}catch(t){e(t)}}))},41025:function(t,e,i){var o=i(44249),a=i(72621),s=(i(92745),i(9359),i(68107),i(31622),i(57243)),r=i(15093),n=i(11259),l=i(36522),d=i(93826),c=i(54380),h=i(35359),u=i(69634),b=i(67180);function v(t,e){return[Math.sqrt(t*t+e*e),Math.atan2(e,t)]}function f(t,e){return[Math.cos(e)*t,Math.sin(e)*t]}function p(t){return t/360*2*Math.PI}function k(t,e,i,o,a,s){return null!=e?(0,b.zJ)([...t,e]):null!=i&&null!==o?(0,b.Pb)([...t,i,o],a,s):t}(0,o.Z)([(0,r.Mo)("ha-hs-color-picker")],(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:Number,attribute:!1})],key:"renderSize",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Array})],key:"value",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1,type:Number})],key:"colorBrightness",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"wv",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"cw",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Number})],key:"ww",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1,type:Number})],key:"minKelvin",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1,type:Number})],key:"maxKelvin",value:void 0},{kind:"field",decorators:[(0,r.IO)("#canvas")],key:"_canvas",value:void 0},{kind:"field",key:"_mc",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_pressed",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_cursorPosition",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_localValue",value:void 0},{kind:"method",key:"firstUpdated",value:function(t){(0,a.Z)(i,"firstUpdated",this,3)([t]),this._setupListeners(),this._generateColorWheel()}},{kind:"method",key:"_generateColorWheel",value:function(){!function(t,e,i,o,a,s,r=255){const l=t.canvas.width/2;t.clearRect(0,0,t.canvas.width,t.canvas.height),t.beginPath();const d=t.canvas.width/2,c=t.canvas.width/2;for(let h=0;h<360;h+=1){const u=p(h-.5),b=p(h+1.5);t.beginPath(),t.moveTo(d,c),t.arc(d,c,l,u,b),t.closePath();const v=t.createRadialGradient(d,c,0,d,c,l),f=(0,n.CO)(k((0,n.XG)([h,0,r]),e,i,o,a,s)),y=(0,n.CO)(k((0,n.XG)([h,1,r]),e,i,o,a,s));v.addColorStop(0,f),v.addColorStop(1,y),t.fillStyle=v,t.fill()}}(this._canvas.getContext("2d"),this.wv,this.cw,this.ww,this.minKelvin,this.maxKelvin,this.colorBrightness)}},{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)([]),this._destroyListeners()}},{kind:"method",key:"updated",value:function(t){(0,a.Z)(i,"updated",this,3)([t]),(t.has("colorBrightness")||t.has("wv")||t.has("ww")||t.has("cw")||t.has("minKelvin")||t.has("maxKelvin"))&&this._generateColorWheel(),t.has("value")&&(this._localValue?.[0]===this.value?.[0]&&this._localValue?.[1]===this.value?.[1]||this._resetPosition())}},{kind:"method",key:"_setupListeners",value:function(){if(this._canvas&&!this._mc){let t;this._mc=new c.dK(this._canvas),this._mc.add(new c.Ce({direction:c.oM,enable:!0})),this._mc.add(new c.Uw({event:"singletap"})),this._mc.on("panstart",(e=>{this.disabled||(this._pressed=e.pointerType,t=this._cursorPosition)})),this._mc.on("pancancel",(()=>{this.disabled||(this._pressed=void 0,this._cursorPosition=t)})),this._mc.on("panmove",(t=>{this.disabled||(this._cursorPosition=this._getPositionFromEvent(t),this._localValue=this._getValueFromCoord(...this._cursorPosition),(0,l.B)(this,"cursor-moved",{value:this._localValue}))})),this._mc.on("panend",(t=>{this.disabled||(this._pressed=void 0,this._cursorPosition=this._getPositionFromEvent(t),this._localValue=this._getValueFromCoord(...this._cursorPosition),(0,l.B)(this,"cursor-moved",{value:void 0}),(0,l.B)(this,"value-changed",{value:this._localValue}))})),this._mc.on("singletap",(t=>{this.disabled||(this._cursorPosition=this._getPositionFromEvent(t),this._localValue=this._getValueFromCoord(...this._cursorPosition),(0,l.B)(this,"value-changed",{value:this._localValue}))}))}}},{kind:"method",key:"_resetPosition",value:function(){if(void 0===this.value)return this._cursorPosition=void 0,void(this._localValue=void 0);this._cursorPosition=this._getCoordsFromValue(this.value),this._localValue=this.value}},{kind:"field",key:"_getCoordsFromValue",value:()=>t=>{const e=p(t[0]),i=Math.min(t[1],1),[o,a]=f(i,e);return[o,a]}},{kind:"field",key:"_getValueFromCoord",value:()=>(t,e)=>{const[i,o]=v(t,e);return[(Math.round(o/(2*Math.PI)*360)%360+360)%360,Math.round(100*Math.min(i,1))/100]}},{kind:"field",key:"_getPositionFromEvent",value:()=>t=>{const e=t.center.x,i=t.center.y,o=t.target.getBoundingClientRect(),a=o.left,s=o.top,r=2*(e-a)/t.target.clientWidth-1,n=2*(i-s)/t.target.clientHeight-1,[l,d]=v(r,n),[c,h]=f(Math.min(1,l),d);return[c,h]}},{kind:"method",key:"_destroyListeners",value:function(){this._mc&&(this._mc.destroy(),this._mc=void 0)}},{kind:"method",key:"render",value:function(){const t=this.renderSize||400,e=t*window.devicePixelRatio,i=void 0!==this._localValue?k((0,n.XG)([this._localValue[0],this._localValue[1],this.colorBrightness??255]),this.wv,this.cw,this.ww):[255,255,255],[o,a]=this._cursorPosition??[0,0],r=`${(o+1)*t/2}px, ${(a+1)*t/2}px`,l=this._pressed?"touch"===this._pressed?"2.5":"1.5":"1",d="touch"===this._pressed?`0px, -${t/16}px`:"0px, 0px";return s.dy` <div class="container ${(0,h.$)({pressed:Boolean(this._pressed)})}"> <canvas id="canvas" .width="${e}" .height="${e}"></canvas> <svg id="interaction" viewBox="0 0 ${t} ${t}" overflow="visible"> <defs>${this.renderSVGFilter()}</defs> <g style="${(0,u.V)({fill:(0,n.CO)(i),transform:`translate(${r})`})}" class="cursor"> <circle cx="0" cy="0" r="16" style="${(0,u.V)({fill:(0,n.CO)(i),transform:`translate(${d}) scale(${l})`,visibility:this._cursorPosition?void 0:"hidden"})}"></circle> </g> </svg> </div> `}},{kind:"method",key:"renderSVGFilter",value:function(){return s.YP` <filter id="marker-shadow" x="-50%" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox"> <feDropShadow dx="0" dy="1" stdDeviation="2" flood-opacity="0.3" flood-color="rgba(0, 0, 0, 1)"/> <feDropShadow dx="0" dy="1" stdDeviation="3" flood-opacity="0.15" flood-color="rgba(0, 0, 0, 1)"/> </filter> `}},{kind:"field",static:!0,key:"styles",value:()=>s.iv`:host{display:block;outline:0}.container{position:relative;width:100%;height:100%;display:flex}canvas{width:100%;height:100%;object-fit:contain;border-radius:50%;cursor:pointer}svg{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}circle{fill:black;stroke:white;stroke-width:2;filter:url(#marker-shadow)}.container:not(.pressed) circle{transition:transform .1s ease-in-out,fill .1s ease-in-out}.container:not(.pressed) .cursor{transition:transform .2s ease-in-out}`}]}}),s.oi);i(65981),i(5828),i(78614);var y=i(90243);(0,o.Z)([(0,r.Mo)("light-color-rgb-picker")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_cwSliderValue",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_wwSliderValue",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_wvSliderValue",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_colorBrightnessSliderValue",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_brightnessAdjusted",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_hsPickerValue",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_isInteracting",value:void 0},{kind:"method",key:"render",value:function(){if(!this.stateObj)return s.Ld;const t=(0,y.Fe)(this.stateObj,y.ZE.RGBWW),e=!t&&(0,y.Fe)(this.stateObj,y.ZE.RGBW),i=this._hsPickerValue?(0,n.CO)((0,n.XG)([this._hsPickerValue[0],this._hsPickerValue[1],(this._colorBrightnessSliderValue??100)/100*255])):"";return s.dy` <div class="color-container"> <label class="native-color-picker"> <input type="color" .value="${i??""}" @input="${this._nativeColorChanged}"> <ha-svg-icon .path="${"M19.35,11.72L17.22,13.85L15.81,12.43L8.1,20.14L3.5,22L2,20.5L3.86,15.9L11.57,8.19L10.15,6.78L12.28,4.65L19.35,11.72M16.76,3C17.93,1.83 19.83,1.83 21,3C22.17,4.17 22.17,6.07 21,7.24L19.08,9.16L14.84,4.92L16.76,3M5.56,17.03L4.5,19.5L6.97,18.44L14.4,11L13,9.6L5.56,17.03Z"}"></ha-svg-icon> </label> <ha-hs-color-picker @value-changed="${this._hsColorChanged}" @cursor-moved="${this._hsColorCursorMoved}" .value="${this._hsPickerValue}" .colorBrightness="${null!=this._colorBrightnessSliderValue?255*this._colorBrightnessSliderValue/100:void 0}" .wv="${null!=this._wvSliderValue?255*this._wvSliderValue/100:void 0}" .ww="${null!=this._wwSliderValue?255*this._wwSliderValue/100:void 0}" .cw="${null!=this._cwSliderValue?255*this._cwSliderValue/100:void 0}" .minKelvin="${this.stateObj.attributes.min_color_temp_kelvin}" .maxKelvin="${this.stateObj.attributes.max_color_temp_kelvin}"> </ha-hs-color-picker> </div> ${e||t?s.dy`<ha-labeled-slider labeled .caption="${this.hass.localize("ui.card.light.color_brightness")}" icon="hass:brightness-7" min="0" max="100" .value="${this._colorBrightnessSliderValue}" @value-changed="${this._colorBrightnessSliderChanged}"></ha-labeled-slider>`:s.Ld} ${e?s.dy` <ha-labeled-slider labeled .caption="${this.hass.localize("ui.card.light.white_value")}" icon="hass:file-word-box" min="0" max="100" .name="${"wv"}" .value="${this._wvSliderValue}" @value-changed="${this._wvSliderChanged}"></ha-labeled-slider> `:s.Ld} ${t?s.dy` <ha-labeled-slider labeled .caption="${this.hass.localize("ui.card.light.cold_white_value")}" icon="hass:file-word-box-outline" min="0" max="100" .name="${"cw"}" .value="${this._cwSliderValue}" @value-changed="${this._wvSliderChanged}"></ha-labeled-slider> <ha-labeled-slider labeled .caption="${this.hass.localize("ui.card.light.warm_white_value")}" icon="hass:file-word-box" min="0" max="100" .name="${"ww"}" .value="${this._wwSliderValue}" @value-changed="${this._wvSliderChanged}"></ha-labeled-slider> `:s.Ld} `}},{kind:"method",key:"_updateSliderValues",value:function(){const t=this.stateObj;if("on"===t.state){if(this._brightnessAdjusted=void 0,t.attributes.color_mode===y.ZE.RGB&&t.attributes.rgb_color&&!(0,y.Fe)(t,y.ZE.RGBWW)&&!(0,y.Fe)(t,y.ZE.RGBW)){const e=Math.max(...t.attributes.rgb_color);e<255&&(this._brightnessAdjusted=e)}this._wvSliderValue=t.attributes.color_mode===y.ZE.RGBW&&t.attributes.rgbw_color?Math.round(100*t.attributes.rgbw_color[3]/255):void 0,this._cwSliderValue=t.attributes.color_mode===y.ZE.RGBWW&&t.attributes.rgbww_color?Math.round(100*t.attributes.rgbww_color[3]/255):void 0,this._wwSliderValue=t.attributes.color_mode===y.ZE.RGBWW&&t.attributes.rgbww_color?Math.round(100*t.attributes.rgbww_color[4]/255):void 0;const e=(0,y.cE)(t);this._colorBrightnessSliderValue=e?Math.round(100*Math.max(...e.slice(0,3))/255):void 0,this._hsPickerValue=e?(0,n.xV)(e.slice(0,3)):void 0}else this._hsPickerValue=void 0,this._wvSliderValue=void 0,this._cwSliderValue=void 0,this._wwSliderValue=void 0}},{kind:"method",key:"willUpdate",value:function(t){(0,a.Z)(i,"willUpdate",this,3)([t]),this._isInteracting||!t.has("entityId")&&!t.has("hass")||this._updateSliderValues()}},{kind:"method",key:"_hsColorCursorMoved",value:function(t){const e=t.detail.value;this._isInteracting=void 0!==e,void 0!==e&&(this._hsPickerValue=e,this._throttleUpdateColor())}},{kind:"field",key:"_throttleUpdateColor",value(){return(0,d.P)((()=>this._updateColor()),500)}},{kind:"method",key:"_updateColor",value:function(){const t=[this._hsPickerValue[0],100*this._hsPickerValue[1]],e=(0,n.Mc)(this._hsPickerValue);if((0,y.Fe)(this.stateObj,y.ZE.RGBWW)||(0,y.Fe)(this.stateObj,y.ZE.RGBW))this._setRgbWColor(this._colorBrightnessSliderValue?this._adjustColorBrightness(e,255*this._colorBrightnessSliderValue/100):e);else if((0,y.Fe)(this.stateObj,y.ZE.RGB))if(this._brightnessAdjusted){const t=this._brightnessAdjusted/255*100,i=Math.round((this.stateObj.attributes.brightness||0)*t/255),o=this._adjustColorBrightness(e,this._brightnessAdjusted,!0);this._applyColor({rgb_color:o},{brightness_pct:i})}else this._applyColor({rgb_color:e});else this._applyColor({hs_color:t})}},{kind:"method",key:"_nativeColorChanged",value:function(t){const e=(0,n.wK)(t.currentTarget.value),i=(0,n.DM)(e);this._hsPickerValue=[i[0],i[1]],((0,y.Fe)(this.stateObj,y.ZE.RGBW)||(0,y.Fe)(this.stateObj,y.ZE.RGBWW))&&(this._colorBrightnessSliderValue=i[2]/2.55),this._throttleUpdateColor()}},{kind:"method",key:"_hsColorChanged",value:function(t){t.detail.value&&(this._hsPickerValue=t.detail.value,this._updateColor())}},{kind:"method",key:"_wvSliderChanged",value:function(t){const e=t.detail;let i=Number(e.value);const o=t.target.name;if(isNaN(i))return;"wv"===o?this._wvSliderValue=i:"cw"===o?this._cwSliderValue=i:"ww"===o&&(this._wwSliderValue=i),i=Math.min(255,Math.round(255*i/100));const a=(0,y.cE)(this.stateObj);if("wv"===o){const t=a||[0,0,0,0];return t[3]=i,void this._applyColor({rgbw_color:t})}const s=a||[0,0,0,0,0];for(;s.length<5;)s.push(0);s["cw"===o?3:4]=i,this._applyColor({rgbww_color:s})}},{kind:"method",key:"_applyColor",value:function(t,e){(0,l.B)(this,"color-changed",t),this.hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,...t,...e})}},{kind:"method",key:"_colorBrightnessSliderChanged",value:function(t){const e=t.detail;let i=Number(e.value);if(isNaN(i))return;const o=this._colorBrightnessSliderValue;this._colorBrightnessSliderValue=i,i=255*i/100;const a=(0,y.cE)(this.stateObj)?.slice(0,3)||[255,255,255];this._setRgbWColor(this._adjustColorBrightness(o?this._adjustColorBrightness(a,255*o/100,!0):a,i))}},{kind:"method",key:"_adjustColorBrightness",value:function(t,e,i=!1){if(t.every((t=>0===t))&&(t[0]=255,t[1]=255,t[2]=255),void 0!==e&&255!==e){let o=e/255;i&&(o=1/o),t[0]=Math.min(255,Math.round(t[0]*o)),t[1]=Math.min(255,Math.round(t[1]*o)),t[2]=Math.min(255,Math.round(t[2]*o))}return t}},{kind:"method",key:"_setRgbWColor",value:function(t){if((0,y.Fe)(this.stateObj,y.ZE.RGBWW)){const e=this.stateObj.attributes.rgbww_color?[...this.stateObj.attributes.rgbww_color]:[0,0,0,0,0],i=t.concat(e.slice(3));this._applyColor({rgbww_color:i})}else if((0,y.Fe)(this.stateObj,y.ZE.RGBW)){const e=this.stateObj.attributes.rgbw_color?[...this.stateObj.attributes.rgbw_color]:[0,0,0,0],i=t.concat(e.slice(3));this._applyColor({rgbw_color:i})}}},{kind:"get",static:!0,key:"styles",value:function(){return[s.iv`:host{display:flex;flex-direction:column}.native-color-picker{position:absolute;top:0;right:0;inset-inline-end:0;inset-inline-start:initial;z-index:1}.native-color-picker ha-svg-icon{pointer-events:none;position:absolute;top:0;left:0;bottom:0;right:0;margin:auto;padding:0}input[type=color]{appearance:none;-webkit-appearance:none;-moz-appearance:none;border:none;outline:0;display:block;width:var(--mdc-icon-button-size,48px);height:var(--mdc-icon-button-size,48px);padding:calc((var(--mdc-icon-button-size,48px) - var(--mdc-icon-size,24px))/ 2);background-color:transparent;border-radius:calc(var(--mdc-icon-button-size,48px)/ 2);overflow:hidden;cursor:pointer;transition:background-color 180ms ease-in-out}input[type=color]:focus-visible,input[type=color]:hover{background-color:rgb(127,127,127,.15)}input[type=color]::-webkit-color-swatch-wrapper{display:none;background:0 0}input[type=color]::-moz-color-swatch{display:none}input[type=color]::-webkit-color-swatch{border:none}.color-container{position:relative}ha-hs-color-picker{height:45vh;max-height:320px;min-height:200px}ha-labeled-slider{width:100%}hr{border-color:var(--divider-color);border-bottom:none;margin:16px 0}`]}}]}}),s.oi)},84935:function(t,e,i){i.d(e,{E:()=>s});var o=i(36522);const a=()=>Promise.all([i.e("7442"),i.e("67704")]).then(i.bind(i,52623)),s=(t,e)=>new Promise((i=>{const s=e.cancel,r=e.submit;(0,o.B)(t,"show-dialog",{dialogTag:"dialog-light-color-favorite",dialogImport:a,dialogParams:{...e,cancel:()=>{i(null),s&&s()},submit:t=>{i(t),r&&r(t)}}})}))},12173:function(t,e,i){i.d(e,{b:()=>o});const o=i(57243).iv`:host{display:flex;flex-direction:column;flex:1;justify-content:space-between}.controls{display:flex;flex-direction:column;align-items:center}.controls:not(:last-child){margin-bottom:24px}.controls>:not(:last-child){margin-bottom:24px}.buttons{display:flex;align-items:center;justify-content:center;margin-bottom:12px}.buttons>*{margin:8px}ha-attributes{display:block;width:100%}ha-more-info-control-select-container+ha-attributes:not([empty]){margin-top:16px}`},59031:function(t,e,i){i.a(t,(async function(t,o){try{i.r(e);var a=i(44249),s=(i(9359),i(70104),i(87319),i(57243)),r=i(15093),n=i(49976),l=i(75278),d=i(13642),c=i(12763),h=(i(34058),i(45747),i(79505),i(7285),i(96194)),u=i(13560),b=i(90243),v=(i(37677),i(4112)),f=(i(44732),i(92947)),p=(i(18481),i(23979)),k=(i(41025),i(89187)),y=i(12173),_=t([d,c,v,f,p,k]);[d,c,v,f,p,k]=_.then?(await _)():_;const g="M12,18V6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z",m="M19,1L17.74,3.75L15,5L17.74,6.26L19,9L20.25,6.26L23,5L20.25,3.75M9,4L6.5,9.5L1,12L6.5,14.5L9,20L11.5,14.5L17,12L11.5,9.5M19,15L17.74,17.74L15,19L17.74,20.25L19,23L20.25,20.25L23,19L20.25,17.74",x="M15.5,17H14L12,9.5L10,17H8.5L6.1,7H7.8L9.34,14.5L11.3,7H12.7L14.67,14.5L16.2,7H17.9M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3Z",w="M12,2C9.76,2 7.78,3.05 6.5,4.68L16.31,14.5C17.94,13.21 19,11.24 19,9A7,7 0 0,0 12,2M3.28,4L2,5.27L5.04,8.3C5,8.53 5,8.76 5,9C5,11.38 6.19,13.47 8,14.74V17A1,1 0 0,0 9,18H14.73L18.73,22L20,20.72L3.28,4M9,20V21A1,1 0 0,0 10,22H14A1,1 0 0,0 15,21V20H9Z",$="M12,6A6,6 0 0,1 18,12C18,14.22 16.79,16.16 15,17.2V19A1,1 0 0,1 14,20H10A1,1 0 0,1 9,19V17.2C7.21,16.16 6,14.22 6,12A6,6 0 0,1 12,6M14,21V22A1,1 0 0,1 13,23H11A1,1 0 0,1 10,22V21H14M20,11H23V13H20V11M1,11H4V13H1V11M13,1V4H11V1H13M4.92,3.5L7.05,5.64L5.63,7.05L3.5,4.93L4.92,3.5M16.95,5.63L19.07,3.5L20.5,4.93L18.37,7.05L16.95,5.63Z",C="M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13";(0,a.Z)([(0,r.Mo)("more-info-light")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"entry",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"editMode",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_effect",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_mainControl",value:()=>"brightness"},{kind:"method",key:"updated",value:function(t){t.has("stateObj")&&(this._effect=this.stateObj?.attributes.effect)}},{kind:"method",key:"_setMainControl",value:function(t){t.stopPropagation(),this._mainControl=t.currentTarget.control}},{kind:"method",key:"_resetMainControl",value:function(t){t.stopPropagation(),this._mainControl="brightness"}},{kind:"get",key:"_stateOverride",value:function(){if(this.stateObj?.attributes.brightness)return this.hass.formatEntityAttributeValue(this.stateObj,"brightness")}},{kind:"method",key:"render",value:function(){if(!this.hass||!this.stateObj)return s.Ld;const t=(0,b.Fe)(this.stateObj,b.ZE.COLOR_TEMP),e=(0,b.Yk)(this.stateObj),i=(0,b.QM)(this.stateObj),o=(0,b.Fe)(this.stateObj,b.ZE.WHITE),a=(0,l.e)(this.stateObj,b.SQ.EFFECT),r=this.entry&&(null==this.entry.options?.light?.favorite_colors||this.entry.options.light.favorite_colors.length>0);return s.dy` <ha-more-info-state-header .hass="${this.hass}" .stateObj="${this.stateObj}" .stateOverride="${this._stateOverride}"></ha-more-info-state-header> <div class="controls"> ${i?s.Ld:s.dy` <ha-state-control-toggle .stateObj="${this.stateObj}" .hass="${this.hass}" .iconPathOn="${$}" .iconPathOff="${w}"></ha-state-control-toggle> `} ${t||e||i?s.dy` ${i&&"brightness"===this._mainControl?s.dy` <ha-state-control-light-brightness .stateObj="${this.stateObj}" .hass="${this.hass}"> </ha-state-control-light-brightness> `:s.Ld} ${e&&"color"===this._mainControl?s.dy` <light-color-rgb-picker .hass="${this.hass}" .stateObj="${this.stateObj}"> </light-color-rgb-picker> `:s.Ld} ${t&&"color_temp"===this._mainControl?s.dy` <light-color-temp-picker .hass="${this.hass}" .stateObj="${this.stateObj}"> </light-color-temp-picker> `:s.Ld} <ha-icon-button-group> ${i?s.dy` <ha-icon-button .disabled="${this.stateObj.state===h.nZ}" .label="${this.hass.localize("ui.dialogs.more_info_control.light.toggle")}" @click="${this._toggle}"> <ha-svg-icon .path="${C}"></ha-svg-icon> </ha-icon-button> `:s.Ld} ${e||t?s.dy` <div class="separator"></div> <ha-icon-button-toggle .selected="${"brightness"===this._mainControl}" .disabled="${this.stateObj.state===h.nZ}" .label="${this.hass.formatEntityAttributeName(this.stateObj,"brightness")}" .control="${"brightness"}" @click="${this._setMainControl}"> <ha-svg-icon .path="${g}"></ha-svg-icon> </ha-icon-button-toggle> `:s.Ld} ${e?s.dy` <ha-icon-button-toggle border-only .selected="${"color"===this._mainControl}" .disabled="${this.stateObj.state===h.nZ}" .label="${this.hass.localize("ui.dialogs.more_info_control.light.color")}" .control="${"color"}" @click="${this._setMainControl}"> <span class="wheel color"></span> </ha-icon-button-toggle> `:s.Ld} ${t?s.dy` <ha-icon-button-toggle border-only .selected="${"color_temp"===this._mainControl}" .disabled="${this.stateObj.state===h.nZ}" .label="${this.hass.localize("ui.dialogs.more_info_control.light.color_temp")}" .control="${"color_temp"}" @click="${this._setMainControl}"> <span class="wheel color-temp"></span> </ha-icon-button-toggle> `:s.Ld} ${o?s.dy` <div class="separator"></div> <ha-icon-button .disabled="${this.stateObj.state===h.nZ}" .label="${this.hass.localize("ui.dialogs.more_info_control.light.set_white")}" @click="${this._setWhite}"> <ha-svg-icon .path="${x}"></ha-svg-icon> </ha-icon-button> `:s.Ld} </ha-icon-button-group> ${this.entry&&(0,b.kb)(this.stateObj)&&(this.editMode||r)?s.dy` <ha-more-info-light-favorite-colors .hass="${this.hass}" .stateObj="${this.stateObj}" .entry="${this.entry}" .editMode="${this.editMode}" @favorite-color-edit-started="${this._resetMainControl}"> </ha-more-info-light-favorite-colors> `:s.Ld} `:s.Ld} </div> <div> <ha-more-info-control-select-container> ${a&&this.stateObj.attributes.effect_list?s.dy` <ha-control-select-menu .label="${this.hass.formatEntityAttributeName(this.stateObj,"effect")}" .value="${this.stateObj.attributes.effect}" .disabled="${this.stateObj.state===h.nZ}" fixedMenuPosition naturalMenuWidth @selected="${this._handleEffect}" @closed="${n.U}"> ${this.stateObj.attributes.effect?s.dy`<ha-attribute-icon slot="icon" .hass="${this.hass}" .stateObj="${this.stateObj}" attribute="effect" .attributeValue="${this.stateObj.attributes.effect}"></ha-attribute-icon>`:s.dy`<ha-svg-icon slot="icon" .path="${m}"></ha-svg-icon>`} ${this.stateObj.attributes.effect_list?.map((t=>s.dy` <ha-list-item .value="${t}" graphic="icon"> <ha-attribute-icon slot="graphic" .hass="${this.hass}" .stateObj="${this.stateObj}" attribute="effect" .attributeValue="${t}"></ha-attribute-icon> ${this.hass.formatEntityAttributeValue(this.stateObj,"effect",t)} </ha-list-item> `))} </ha-control-select-menu> `:s.Ld} </ha-more-info-control-select-container> <ha-attributes .hass="${this.hass}" .stateObj="${this.stateObj}" extra-filters="brightness,color_temp,color_temp_kelvin,white_value,effect_list,effect,hs_color,rgb_color,rgbw_color,rgbww_color,xy_color,min_mireds,max_mireds,min_color_temp_kelvin,max_color_temp_kelvin,entity_id,supported_color_modes,color_mode"></ha-attributes> </div> `}},{kind:"field",key:"_toggle",value(){return()=>{const t="on"===this.stateObj?.state?"turn_off":"turn_on";(0,u.j)("light"),this.hass.callService("light",t,{entity_id:this.stateObj.entity_id})}}},{kind:"field",key:"_setWhite",value(){return()=>{this.hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,white:!0})}}},{kind:"method",key:"_handleEffect",value:function(t){const e=t.target.value,i=this._effect;e&&i!==e&&this.hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,effect:e})}},{kind:"get",static:!0,key:"styles",value:function(){return[y.b,s.iv`.button-bar{display:flex;flex-direction:row;align-items:center;height:48px;border-radius:24px;background-color:rgba(139,145,151,.1);box-sizing:border-box;width:auto}.wheel{width:30px;height:30px;flex:none;border-radius:15px}.wheel.color{background-image:url("/static/images/color_wheel.png");background-size:cover}.wheel.color-temp{background:linear-gradient(0,#a6d1ff 0%,#fff 50%,#ffa000 100%)}[disabled] .wheel{filter:grayscale(1) opacity(.5)}.buttons{flex-wrap:wrap;max-width:250px}`]}}]}}),s.oi);o()}catch(t){o(t)}}))},37677:function(t,e,i){var o=i(44249),a=i(57243),s=i(15093),r=i(35359),n=i(69634),l=i(73850),d=i(5839),c=i(42818),h=(i(70413),i(3476),i(96194)),u=i(13560);const b="M7,2V13H10V22L17,10H13L17,2H7Z",v="M17,10H13L17,2H7V4.18L15.46,12.64M3.27,3L2,4.27L7,9.27V13H10V22L13.58,15.86L17.73,20L19,18.73L3.27,3Z";(0,o.Z)([(0,s.Mo)("ha-state-control-toggle")],(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:"iconPathOn",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"iconPathOff",value:void 0},{kind:"method",key:"_valueChanged",value:function(t){t.target.checked?this._turnOn():this._turnOff()}},{kind:"method",key:"_turnOn",value:function(){this._callService(!0)}},{kind:"method",key:"_turnOff",value:function(){this._callService(!1)}},{kind:"method",key:"_callService",value:async function(t){if(!this.hass||!this.stateObj)return;(0,u.j)("light");const e=(0,l.M)(this.stateObj.entity_id);let i,o;"group"===e?(i="homeassistant",o=t?"turn_on":"turn_off"):(i=e,o=t?"turn_on":"turn_off"),await this.hass.callService(i,o,{entity_id:this.stateObj.entity_id})}},{kind:"method",key:"render",value:function(){const t=(0,c.Hh)(this.stateObj,"on"),e=(0,c.Hh)(this.stateObj,"off"),i="on"===this.stateObj.state,o="off"===this.stateObj.state;return this.stateObj.attributes.assumed_state||this.stateObj.state===h.lz?a.dy` <div class="buttons"> <ha-control-button .label="${this.hass.localize("ui.card.common.turn_on")}" @click="${this._turnOn}" .disabled="${this.stateObj.state===h.nZ}" class="${(0,r.$)({active:i})}" style="${(0,n.V)({"--color":t})}"> <ha-svg-icon .path="${this.iconPathOn||b}"></ha-svg-icon> </ha-control-button> <ha-control-button .label="${this.hass.localize("ui.card.common.turn_off")}" @click="${this._turnOff}" .disabled="${this.stateObj.state===h.nZ}" class="${(0,r.$)({active:o})}" style="${(0,n.V)({"--color":e})}"> <ha-svg-icon .path="${this.iconPathOff||v}"></ha-svg-icon> </ha-control-button> </div> `:a.dy` <ha-control-switch touch-action="none" .pathOn="${this.iconPathOn||b}" .pathOff="${this.iconPathOff||v}" vertical reversed .checked="${i}" .showHandle="${(0,d.v)(this.stateObj)}" @change="${this._valueChanged}" .ariaLabel="${this.hass.localize("ui.card.common.toggle")}" style="${(0,n.V)({"--control-switch-on-color":t,"--control-switch-off-color":e})}" .disabled="${this.stateObj.state===h.nZ}"> </ha-control-switch> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`ha-control-switch{height:45vh;max-height:320px;min-height:200px;--control-switch-thickness:130px;--control-switch-border-radius:36px;--control-switch-padding:6px;--mdc-icon-size:24px}.buttons{display:flex;flex-direction:column;width:130px;height:45vh;max-height:320px;min-height:200px;padding:6px;box-sizing:border-box}ha-control-button{flex:1;width:100%;--control-button-border-radius:36px;--mdc-icon-size:24px}ha-control-button.active{--control-button-icon-color:white;--control-button-background-color:var(--color);--control-button-focus-color:var(--color);--control-button-background-opacity:1}ha-control-button:not(:last-child){margin-bottom:6px}`}]}}),a.oi)},4112:function(t,e,i){i.a(t,(async function(t,e){try{var o=i(44249),a=i(57243),s=i(15093),r=i(69634),n=i(11259),l=i(5839),d=i(42818),c=i(54250),h=i(96194),u=t([c]);c=(u.then?(await u)():u)[0];(0,o.Z)([(0,s.Mo)("ha-state-control-light-brightness")],(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.SB)()],key:"value",value:void 0},{kind:"method",key:"updated",value:function(t){t.has("stateObj")&&(this.value=null!=this.stateObj.attributes.brightness?Math.max(Math.round(100*this.stateObj.attributes.brightness/255),1):void 0)}},{kind:"method",key:"_valueChanged",value:function(t){const e=t.detail.value;isNaN(e)||this.hass.callService("light","turn_on",{entity_id:this.stateObj.entity_id,brightness_pct:e})}},{kind:"method",key:"render",value:function(){let t=(0,d.Hh)(this.stateObj);if(this.stateObj.attributes.rgb_color){const e=(0,n.DM)(this.stateObj.attributes.rgb_color);e[1]<.4&&(e[1]<.1?e[2]=225:e[1]=.4),t=(0,n.CO)((0,n.XG)(e))}return a.dy` <ha-control-slider touch-action="none" vertical .value="${this.value}" min="1" max="100" .showHandle="${(0,l.v)(this.stateObj)}" @value-changed="${this._valueChanged}" .ariaLabel="${this.hass.formatEntityAttributeName(this.stateObj,"brightness")}" style="${(0,r.V)({"--control-slider-color":t,"--control-slider-background":t})}" .disabled="${this.stateObj.state===h.nZ}" unit="%" .locale="${this.hass.locale}"> </ha-control-slider> `}},{kind:"field",static:!0,key:"styles",value:()=>a.iv`ha-control-slider{position:relative;height:45vh;max-height:320px;min-height:200px;--control-slider-thickness:130px;--control-slider-border-radius:36px;--control-slider-color:var(--primary-color);--control-slider-background:var(--disabled-color);--control-slider-background-opacity:0.2;--control-slider-tooltip-font-size:20px}`}]}}),a.oi);e()}catch(t){e(t)}}))},32424:function(t,e,i){i.d(e,{E:()=>s});var o=i(53907),a=i(18112);function s(t,e,i){const s=(0,a.Q)(t,i?.in);return isNaN(e)?(0,o.L)(i?.in||t,NaN):e?(s.setDate(s.getDate()+e),s):s}},14276:function(t,e,i){i.d(e,{_:()=>a});var o=i(18112);function a(t,e){return+(0,o.Q)(t)-+(0,o.Q)(e)}},97836:function(t,e,i){i.d(e,{K:()=>s});var o=i(18492),a=i(7591);function s(t,e,i){const[s,r]=(0,o.d)(i?.in,t,e);return+(0,a.b)(s)==+(0,a.b)(r)}},61985:function(t,e,i){i.d(e,{F:()=>a});var o=i(18492);function a(t,e,i){const[a,s]=(0,o.d)(i?.in,t,e);return a.getFullYear()===s.getFullYear()}}};
//# sourceMappingURL=55815.b852ea317728421c.js.map