UNPKG

iobroker.lovelace

Version:

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

12 lines 83.5 kB
export const __rspack_esm_id=54419;export const __rspack_esm_ids=[54419];export const __webpack_modules__={90409(e,t,i){i.d(t,{A:()=>a});i(18111),i(61701);function a(e){const t=e.split(":").map(Number);return 3600*t[0]+60*t[1]+t[2]}},27167(e,t,i){i.d(t,{A:()=>s});const a=e=>e<10?`0${e}`:e;function s(e){const t=Math.floor(e/3600),i=Math.floor(e%3600/60),s=Math.floor(e%3600%60);return t>0?`${t}:${a(i)}:${a(s)}`:i>0?`${i}:${a(s)}`:s>0?""+s:null}},93421(e,t,i){i.d(t,{IW:()=>d,dH:()=>c,fI:()=>l});i(44114);var a=i(35211),s=i(22792),n=i(32172);const o=(e,t)=>{let i=e;for(const e of t){if(null==i)return;i=i[e]}return i},r=(e,t,i)=>{const s=(0,n.p)({transformer:function(e){return i.call(this,e)},watch:t?[t]:[]}),o=(0,a.Fg)({context:e,subscribe:!0});return(e,t)=>{s(e,t),o(e,t)}},l=e=>r(s.iN,e.entityIdPath[0],function(t){const i=o(this,e.entityIdPath);return"string"==typeof i?t?.[i]:void 0}),c=e=>r(s.X1,e.entityIdPath[0],function(t){const i=o(this,e.entityIdPath);return"string"==typeof i?t?.[i]:void 0}),d=()=>r(s.D5,void 0,({localize:e})=>e)},26218(e,t,i){i.d(t,{a:()=>s});const a=(0,i(77796).n)(e=>{history.replaceState({scrollPosition:e},"")},300);function s(e){return(t,i)=>{if("object"==typeof i)throw new Error("This decorator does not support this compilation type.");const s=t.connectedCallback;t.connectedCallback=function(){s.call(this);const t=this[i];t&&this.updateComplete.then(()=>{const i=this.renderRoot.querySelector(e);i&&setTimeout(()=>{i.scrollTop=t},0)})};const n=Object.getOwnPropertyDescriptor(t,i);let o;if(void 0===n)o={get(){return this[`__${String(i)}`]||history.state?.scrollPosition},set(e){a(e),this[`__${String(i)}`]=e},configurable:!0,enumerable:!0};else{const e=n.set;o={...n,set(t){a(t),this[`__${String(i)}`]=t,e?.call(this,t)}}}Object.defineProperty(t,i,o)}}},32172(e,t,i){i.d(t,{p:()=>a});i(18111),i(7588),i(45367),i(92731),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);function a(e){return(t,i)=>{if("object"==typeof i)throw new Error("This decorator does not support this compilation type.");const a=String(i),s=t;if(s._transformers){if(!s.hasOwnProperty("_transformers")){const e=s._transformers;s._transformers=new Map,e.forEach((e,t)=>s._transformers.set(t,e))}}else{s._transformers=new Map,s._watching=new Map;const e=s.willUpdate;s.willUpdate=function(t){e.call(this,t);const i=new Set;t.forEach((e,t)=>{const a=this._watching.get(t);void 0!==a&&a.forEach(e=>i.add(e))}),i.forEach(e=>{this[e]=this[`__original_${String(e)}`]})}}s._transformers.set(i,e.transformer),e.watch&&e.watch.forEach(e=>{let t=s._watching.get(e);t||(t=new Set,s._watching.set(e,t)),t.add(i)});const n=Object.getOwnPropertyDescriptor(t,i);let o;if(void 0===n)o={get(){return this[`__transform_${a}`]},set(e){const t=this[`__transform_${a}`],i=this._transformers.get(a);this[`__transform_${a}`]=i?i.call(this,e):e,this[`__original_${a}`]=e,this.requestUpdate(a,t)},configurable:!0,enumerable:!0};else{const e=n.set;o={...n,set(t){const i=this[`__transform_${a}`],s=this._transformers.get(a);this[`__transform_${a}`]=s?s.call(this,t):t,this[`__original_${a}`]=t,this.requestUpdate(a,i),e?.call(this,t)}}}Object.defineProperty(t,i,o)}}},48638(e,t,i){i.d(t,{$:()=>d,c:()=>c});i(18111),i(20116),i(13579);var a=i(77423),s=i(59241),n=i(41656),o=i(24367),r=i(36312),l=i(71727);const c=(e,t,i,a,s,n)=>{if(!!e.states[t]?.attributes.restored)return!0;const c=(0,l.m)(t),d=a.find(e=>e.entity_id===t);if((0,o.z)(c))return!!((0,r.x)(e.config,c)&&d&&n.some(e=>e.id===d.unique_id));const h=d?.config_entry_id;if(!h)return!1;const p=s.find(e=>e.entry_id===h);return"helper"===i.find(e=>e.domain===p?.domain)?.integration_type},d=(e,t,i,c,d,h)=>{const p=(0,l.m)(t),u=c.find(e=>e.entity_id===t);if((0,o.z)(p)){if((0,r.x)(e.config,p)&&u&&h.some(e=>e.id===u.unique_id))return void n.n[p].delete(e,u.unique_id);const i=e.states[t];if(!i?.attributes.restored)return;return void(0,s.bg)(e,t)}const f=u?.config_entry_id,b=f?d.find(e=>e.entry_id===f):void 0;!b||"helper"!==i.find(e=>e.domain===b.domain)?.integration_type?(0,s.bg)(e,t):(0,a.eM)(e,f)}},77796(e,t,i){i.d(t,{n:()=>a});const a=(e,t,i=!0,a=!0)=>{let s,n=0;const o=(...o)=>{const r=()=>{n=!1===i?0:Date.now(),s=void 0,e(...o)},l=Date.now();n||!1!==i||(n=l);const c=t-(l-n);c<=0||c>t?(s&&(clearTimeout(s),s=void 0),n=l,e(...o)):s||!1===a||(s=window.setTimeout(r,c))};return o.cancel=()=>{clearTimeout(s),s=void 0,n=0},o}},86836(e,t,i){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function s(){return a()+a()+a()+a()+a()}i.d(t,{L:()=>s})},34296(e,t,i){var a=i(62826),s=i(96229),n=i(26069),o=i(91735),r=i(42034),l=i(5124),c=i(22441);class d extends s.k{renderOutline(){return this.filled?l.qy`<span class="filled"></span>`:super.renderOutline()}getContainerClasses(){return{...super.getContainerClasses(),active:this.active}}renderPrimaryContent(){return l.qy` <span class="leading icon" aria-hidden="true"> ${this.renderLeadingIcon()} </span> <span class="label">${this.label}</span> <span class="touch"></span> <span class="trailing leading icon" aria-hidden="true"> ${this.renderTrailingIcon()} </span> `}renderTrailingIcon(){return l.qy`<slot name="trailing-icon"></slot>`}constructor(...e){super(...e),this.filled=!1,this.active=!1}}d.styles=[o.R,r.R,n.R,l.AH`:host{--md-sys-color-primary:var(--primary-text-color);--md-sys-color-on-surface:var(--primary-text-color);--md-assist-chip-container-shape:var(
          --ha-assist-chip-container-shape,
          16px
        );--md-assist-chip-outline-color:var(--outline-color);--md-assist-chip-label-text-weight:400}.filled{display:flex;pointer-events:none;border-radius:inherit;inset:0;position:absolute;background-color:var(--ha-assist-chip-filled-container-color)}::slotted([slot=icon]),::slotted([slot=trailing-icon]){display:flex;--mdc-icon-size:var(--md-input-chip-icon-size, 18px);font-size:var(--_label-text-size)!important}.trailing.icon ::slotted(*),.trailing.icon svg{margin-inline-end:unset;margin-inline-start:var(--_icon-label-space)}::before{background:var(--ha-assist-chip-container-color,transparent);opacity:var(--ha-assist-chip-container-opacity, 1)}:where(.active)::before{background:var(--ha-assist-chip-active-container-color);opacity:var(--ha-assist-chip-active-container-opacity)}.label{font-family:var(--ha-font-family-body)}`],(0,a.Cg)([(0,c.MZ)({type:Boolean,reflect:!0})],d.prototype,"filled",void 0),(0,a.Cg)([(0,c.MZ)({type:Boolean})],d.prototype,"active",void 0),d=(0,a.Cg)([(0,c.EM)("ha-assist-chip")],d)},38962(e,t,i){i.a(e,async function(e,a){try{i.r(t);var s=i(62826),n=i(5124),o=i(22441),r=i(6412),l=i(93421),c=i(1087),d=i(26300),h=(i(67094),e([d]));d=(h.then?(await h)():h)[0];const p="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",u={info:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z",warning:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16",error:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",success:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2,4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"};class f extends n.WF{render(){return n.qy` <div class="issue-type ${(0,r.H)({[this.alertType]:!0})}" role="alert"> <div class="icon ${this.title?"":"no-title"}"> <slot name="icon"> <ha-svg-icon .path="${u[this.alertType]}"></ha-svg-icon> </slot> </div> <div class="${(0,r.H)({content:!0,narrow:this.narrow})}"> <div class="main-content"> ${this.title?n.qy`<div class="title">${this.title}</div>`:n.s6} <slot></slot> </div> <div class="action"> <slot name="action"> ${this.dismissable?n.qy`<ha-icon-button @click="${this._dismissClicked}" .label="${this._localize?.("ui.common.dismiss_alert")}" .path="${p}"></ha-icon-button>`:n.s6} </slot> </div> </div> </div> `}_dismissClicked(){(0,c.r)(this,"alert-dismissed-clicked")}constructor(...e){super(...e),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}f.styles=n.AH`.issue-type{position:relative;padding:8px;display:flex}.icon{height:var(--ha-alert-icon-size,24px);width:var(--ha-alert-icon-size,24px)}.issue-type::after{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;pointer-events:none;content:"";border-radius:var(--ha-border-radius-sm)}.icon.no-title{align-self:center}.content{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:var(--float-start)}.content.narrow{flex-direction:column;align-items:flex-end}.action{z-index:1;width:min-content;--mdc-theme-primary:var(--primary-text-color)}.main-content{overflow-wrap:anywhere;word-break:break-word;line-height:normal;margin-left:8px;margin-right:0;margin-inline-start:8px;margin-inline-end:8px}.title{margin-top:2px;font-weight:var(--ha-font-weight-bold)}.action ha-icon-button{--mdc-theme-primary:var(--primary-text-color);--ha-icon-button-size:36px}.issue-type.info>.icon{color:var(--info-color)}.issue-type.info::after{background-color:var(--info-color)}.issue-type.warning>.icon{color:var(--warning-color)}.issue-type.warning::after{background-color:var(--warning-color)}.issue-type.error>.icon{color:var(--error-color)}.issue-type.error::after{background-color:var(--error-color)}.issue-type.success>.icon{color:var(--success-color)}.issue-type.success::after{background-color:var(--success-color)}:host ::slotted(ul){margin:0;padding-inline-start:20px}`,(0,s.Cg)([(0,o.MZ)()],f.prototype,"title",void 0),(0,s.Cg)([(0,o.MZ)({attribute:"alert-type"})],f.prototype,"alertType",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],f.prototype,"dismissable",void 0),(0,s.Cg)([(0,o.wk)(),(0,l.IW)()],f.prototype,"_localize",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],f.prototype,"narrow",void 0),f=(0,s.Cg)([(0,o.EM)("ha-alert")],f),a()}catch(e){a(e)}})},30716(e,t,i){var a=i(62826),s=i(72274),n=i(34875),o=i(7731),r=i(5124),l=i(22441),c=i(1087);const d=e=>e.preventDefault();var h=i(57237);i(9503);class p extends s.h{async onChange(e){e.stopPropagation(),super.onChange(e),(0,c.r)(this,e.type)}render(){const e=this.renderText(),t=this.graphic&&"control"!==this.graphic&&!this.left?this.renderGraphic():r.s6,i=this.hasMeta&&this.left?this.renderMeta():r.s6,a=this.renderRipple();return r.qy` ${a} ${t} ${this.left?"":e} <ha-checkbox tabindex="${this.separateCheckboxClick?this.tabindex:-1}" .checked="${this.selected}" .indeterminate="${this.indeterminate}" ?disabled="${this.disabled||this.checkboxDisabled}" @change="${this.onChange}" @click="${this.separateCheckboxClick?h.d:d}" class="${this.left?"left":""}"> </ha-checkbox> ${this.left?e:""} ${i}`}constructor(...e){super(...e),this.checkboxDisabled=!1,this.indeterminate=!1,this.separateCheckboxClick=!1}}p.styles=[o.R,n.R,r.AH`:host{--mdc-theme-secondary:var(--primary-color)}:host([graphic=avatar]) .mdc-deprecated-list-item__graphic,:host([graphic=control]) .mdc-deprecated-list-item__graphic,:host([graphic=large]) .mdc-deprecated-list-item__graphic,:host([graphic=medium]) .mdc-deprecated-list-item__graphic{margin-inline-end:var(--mdc-list-item-graphic-margin,16px);margin-inline-start:0px;direction:var(--direction)}ha-checkbox{flex-shrink:0;direction:var(--direction);margin-inline-start:auto;margin-inline-end:0;height:100%;justify-content:center}ha-checkbox.left{margin-inline-start:0}.mdc-deprecated-list-item__graphic{margin-top:var(--check-list-item-graphic-margin-top)}:host([graphic=icon]) .mdc-deprecated-list-item__graphic{margin-inline-start:0;margin-inline-end:var(--mdc-list-item-graphic-margin,32px)}`],(0,a.Cg)([(0,l.MZ)({type:Boolean,attribute:"checkbox-disabled"})],p.prototype,"checkboxDisabled",void 0),(0,a.Cg)([(0,l.MZ)({type:Boolean})],p.prototype,"indeterminate",void 0),(0,a.Cg)([(0,l.MZ)({type:Boolean,attribute:"separate-checkbox-click"})],p.prototype,"separateCheckboxClick",void 0),p=(0,a.Cg)([(0,l.EM)("ha-check-list-item")],p)},33008(e,t,i){i.a(e,async function(e,t){try{i(74423),i(18111),i(22489),i(7588),i(61701),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698);var a=i(62826),s=i(5124),n=i(22441),o=i(75751),r=i(22786),l=i(1087),c=i(71727),d=i(52220),h=i(95350),p=i(14503),u=(i(30716),i(59174)),f=(i(11382),i(8630),i(36866)),b=e([u,f]);[u,f]=b.then?(await b)():b;const g="M21 8H3V6H21V8M13.81 16H10V18H13.09C13.21 17.28 13.46 16.61 13.81 16M18 11H6V13H18V11M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z";class _ extends s.WF{render(){return s.qy` <ha-expansion-panel left-chevron .expanded="${this.expanded}" @expanded-will-change="${this._expandedWillChange}" @expanded-changed="${this._expandedChanged}"> <div slot="header" class="header"> ${this.hass.localize("ui.panel.config.domains.caption")} ${this.value?.length?s.qy`<div class="badge">${this.value?.length}</div> <ha-icon-button .path="${g}" @click="${this._clearFilter}"></ha-icon-button>`:s.s6} </div> ${this._shouldRender?s.qy`<ha-input-search appearance="outlined" .value="${this._filter}" @input="${this._handleSearchChange}"> </ha-input-search> <ha-list class="ha-scrollbar" @selected="${this._handleItemSelected}" multi> ${(0,o.u)(this._domains(this.hass.states,this._filter,this.value),e=>e,e=>s.qy`<ha-check-list-item .value="${e}" .selected="${(this.value||[]).includes(e)}" graphic="icon"> <ha-domain-icon slot="graphic" .domain="${e}" brand-fallback></ha-domain-icon> ${(0,h.p$)(this.hass.localize,e)} </ha-check-list-item>`)} </ha-list> `:s.s6} </ha-expansion-panel> `}updated(e){e.has("expanded")&&this.expanded&&setTimeout(()=>{this.expanded&&(this._list.style.height=this.clientHeight-49-4-32+"px")},300)}_expandedWillChange(e){this._shouldRender=e.detail.expanded}_expandedChanged(e){this.expanded=e.detail.expanded}_handleItemSelected(e){const t=this._domains(this.hass.states,this._filter,this.value),i=new Set(t),a=(this.value||[]).filter(e=>!i.has(e)),s=[...e.detail.index].map(e=>t[e]).filter(e=>!!e);this.value=[...a,...s],(0,l.r)(this,"data-table-filter-changed",{value:this.value.length?this.value:void 0,items:void 0})}_clearFilter(e){e.preventDefault(),this.value=void 0,(0,l.r)(this,"data-table-filter-changed",{value:void 0,items:void 0})}_handleSearchChange(e){const t=e.target;this._filter=(t.value??"").toLowerCase()}static get styles(){return[p.dp,s.AH`:host{border-bottom:1px solid var(--divider-color)}:host([expanded]){flex:1;height:0}ha-expansion-panel{--ha-card-border-radius:var(--ha-border-radius-square);--expansion-panel-content-padding:0}.header{display:flex;align-items:center}.header ha-icon-button{margin-inline-start:initial;margin-inline-end:8px}ha-check-list-item{--mdc-list-item-graphic-margin:var(--ha-space-4)}.badge{display:inline-block;margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;min-width:16px;box-sizing:border-box;border-radius:var(--ha-border-radius-circle);font-size:var(--ha-font-size-xs);font-weight:var(--ha-font-weight-normal);background-color:var(--primary-color);line-height:var(--ha-line-height-normal);text-align:center;padding:0px 2px;color:var(--text-primary-color)}ha-input-search{display:block;padding:var(--ha-space-1) var(--ha-space-2) 0}`]}constructor(...e){super(...e),this.narrow=!1,this.expanded=!1,this._shouldRender=!1,this._domains=(0,r.A)((e,t,i)=>{const a=new Set;return Object.keys(e).forEach(e=>{a.add((0,c.m)(e))}),Array.from(a.values()).map(e=>({domain:e,name:(0,h.p$)(this.hass.localize,e)})).filter(e=>!t||e.domain.toLowerCase().includes(t)||e.name.toLowerCase().includes(t)).sort((e,t)=>(0,d.xL)(e.name,t.name,this.hass.locale.language)).map(e=>e.domain)})}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],_.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],_.prototype,"value",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],_.prototype,"narrow",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],_.prototype,"expanded",void 0),(0,a.Cg)([(0,n.wk)()],_.prototype,"_shouldRender",void 0),(0,a.Cg)([(0,n.wk)()],_.prototype,"_filter",void 0),(0,a.Cg)([(0,n.P)("ha-list")],_.prototype,"_list",void 0),_=(0,a.Cg)([(0,n.EM)("ha-filter-domains")],_),t()}catch(e){t(e)}})},2617(e,t,i){i.a(e,async function(e,t){try{i(74423),i(44114);var a=i(62826),s=i(5124),n=i(22441),o=i(75751),r=i(1087),l=i(14503),c=(i(30716),i(11382),i(47680),i(26300)),d=i(23430),h=(i(8630),i(28732),i(61037),i(14782)),p=i(75197),u=e([c,d,p]);[c,d,p]=u.then?(await u)():u;const f="M21 8H3V6H21V8M13.81 16H10V18H13.09C13.21 17.28 13.46 16.61 13.81 16M18 11H6V13H18V11M21.12 15.46L19 17.59L16.88 15.46L15.47 16.88L17.59 19L15.47 21.12L16.88 22.54L19 20.41L21.12 22.54L22.54 21.12L20.41 19L22.54 16.88L21.12 15.46Z";class b extends s.WF{render(){return s.qy` <ha-expansion-panel left-chevron .expanded="${this.expanded}" @expanded-will-change="${this._expandedWillChange}" @expanded-changed="${this._expandedChanged}"> <div slot="header" class="header"> ${this.hass.localize("ui.panel.config.dashboard.voice_assistants.main")} ${this.value?.length?s.qy`<div class="badge">${this.value?.length}</div> <ha-icon-button .path="${f}" @click="${this._clearFilter}"></ha-icon-button>`:s.s6} </div> ${this._shouldRender?s.qy`<ha-list @selected="${this._assistantsSelected}" class="ha-scrollbar" multi> ${(0,o.u)(this._voiceAssistantOptions,e=>e,e=>s.qy`<ha-check-list-item .value="${e}" .selected="${(this.value||[]).includes(e)}" hasMeta graphic="icon"> <voice-assistant-brand-icon slot="graphic" .voiceAssistantId="${e}" .hass="${this.hass}"> </voice-assistant-brand-icon> ${h.aK[e].name} </ha-check-list-item>`)} </ha-list> `:s.s6} </ha-expansion-panel> `}firstUpdated(e){super.firstUpdated(e),this._voiceAssistantOptions=Object.keys(h.aK)}updated(e){e.has("expanded")&&this.expanded&&setTimeout(()=>{this.expanded&&(this._list.style.height=this.clientHeight-49+"px")},300)}_expandedWillChange(e){this._shouldRender=e.detail.expanded}_expandedChanged(e){this.expanded=e.detail.expanded}async _assistantsSelected(e){if(!e.detail.index)return(0,r.r)(this,"data-table-filter-changed",{value:[],items:void 0}),void(this.value=[]);const t=[];for(const i of e.detail.index)t.push(this._voiceAssistantOptions[i]);this.value=t,(0,r.r)(this,"data-table-filter-changed",{value:this.value,items:void 0})}_clearFilter(e){e.preventDefault(),this.value=[],(0,r.r)(this,"data-table-filter-changed",{value:void 0,items:void 0})}static get styles(){return[l.dp,s.AH`:host{position:relative;border-bottom:1px solid var(--divider-color)}:host([expanded]){flex:1;height:0}ha-expansion-panel{--ha-card-border-radius:var(--ha-border-radius-square);--expansion-panel-content-padding:0}.header{display:flex;align-items:center}.header ha-icon-button{margin-inline-start:auto;margin-inline-end:8px}ha-check-list-item{--mdc-list-item-graphic-margin:var(--ha-space-4)}.badge{display:inline-block;margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;min-width:16px;box-sizing:border-box;border-radius:var(--ha-border-radius-circle);font-size:var(--ha-font-size-xs);font-weight:var(--ha-font-weight-normal);background-color:var(--primary-color);line-height:var(--ha-line-height-normal);text-align:center;padding:0px 2px;color:var(--text-primary-color)}.add{position:absolute;bottom:0;right:0;left:0}`]}constructor(...e){super(...e),this.value=[],this.narrow=!1,this.expanded=!1,this._voiceAssistantOptions=[],this._shouldRender=!1}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"value",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],b.prototype,"narrow",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],b.prototype,"expanded",void 0),(0,a.Cg)([(0,n.wk)()],b.prototype,"_voiceAssistantOptions",void 0),(0,a.Cg)([(0,n.wk)()],b.prototype,"_shouldRender",void 0),(0,a.Cg)([(0,n.P)("ha-list")],b.prototype,"_list",void 0),b=(0,a.Cg)([(0,n.EM)("ha-filter-voice-assistants")],b),t()}catch(e){t(e)}})},90248(e,t,i){i.a(e,async function(e,a){try{i.r(t),i.d(t,{HaIconButtonArrowPrev:()=>p});var s=i(62826),n=i(5124),o=i(22441),r=i(63091),l=i(26300),c=e([l]);l=(c.then?(await c)():c)[0];const d="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",h="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z";class p extends n.WF{render(){return n.qy` <ha-icon-button .disabled="${this.disabled}" .label="${this.label||this.hass?.localize("ui.common.back")||"Back"}" .path="${this._icon}" .href="${this.href}" .target="${this.target}" .rel="${this.rel}" .download="${this.download}"></ha-icon-button> `}constructor(...e){super(...e),this.disabled=!1,this._icon="rtl"===r.G.document.dir?h:d}}(0,s.Cg)([(0,o.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],p.prototype,"disabled",void 0),(0,s.Cg)([(0,o.MZ)()],p.prototype,"label",void 0),(0,s.Cg)([(0,o.MZ)()],p.prototype,"href",void 0),(0,s.Cg)([(0,o.MZ)()],p.prototype,"target",void 0),(0,s.Cg)([(0,o.MZ)()],p.prototype,"rel",void 0),(0,s.Cg)([(0,o.MZ)()],p.prototype,"download",void 0),(0,s.Cg)([(0,o.wk)()],p.prototype,"_icon",void 0),p=(0,s.Cg)([(0,o.EM)("ha-icon-button-arrow-prev")],p),a()}catch(e){a(e)}})},26300(e,t,i){i.a(e,async function(e,a){try{i.r(t),i.d(t,{HaIconButton:()=>d});var s=i(62826),n=i(5124),o=i(22441),r=i(63672),l=i(18350),c=(i(67094),e([l]));l=(c.then?(await c)():c)[0];class d extends n.WF{render(){return n.qy` <ha-button appearance="plain" variant="neutral" aria-label="${(0,r.J)(this.label)}" title="${(0,r.J)(this.hideTitle?void 0:this.label)}" aria-haspopup="${(0,r.J)(this.ariaHasPopup)}" .disabled="${this.disabled}" .iconTag="${this.path?"ha-svg-icon":"span"}" .href="${this.href}" .target="${this.target}" .rel="${this.rel}" .download="${this.download}"> ${this.path?n.qy`<ha-svg-icon aria-hidden="true" .path="${this.path}"></ha-svg-icon>`:n.qy`<span><slot></slot></span>`} </ha-button> `}constructor(...e){super(...e),this.disabled=!1,this.hideTitle=!1,this.selected=!1}}d.shadowRootOptions={mode:"open",delegatesFocus:!0},d.styles=n.AH`:host{display:inline-block;outline:0;--ha-button-height:var(--ha-icon-button-size, 48px)}ha-button{position:relative;isolation:isolate;--wa-form-control-padding-inline:var(
        --ha-icon-button-padding-inline,
        --ha-space-2
      );--wa-color-on-normal:currentColor;--wa-color-fill-quiet:transparent;--ha-button-label-overflow:visible}ha-button::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background-color:currentColor;opacity:0;pointer-events:none}ha-button::part(base){width:var(--wa-form-control-height);aspect-ratio:1;outline-offset:-4px}ha-button::part(label){display:flex}:host([selected]) ha-button::after{opacity:.1}@media (hover:hover){:host(:hover:not([disabled])) ha-button::after{opacity:.1}}`,(0,s.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],d.prototype,"disabled",void 0),(0,s.Cg)([(0,o.MZ)({type:String})],d.prototype,"path",void 0),(0,s.Cg)([(0,o.MZ)({type:String})],d.prototype,"label",void 0),(0,s.Cg)([(0,o.MZ)({type:String,attribute:"aria-haspopup"})],d.prototype,"ariaHasPopup",void 0),(0,s.Cg)([(0,o.MZ)({attribute:"hide-title",type:Boolean})],d.prototype,"hideTitle",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],d.prototype,"selected",void 0),(0,s.Cg)([(0,o.MZ)()],d.prototype,"href",void 0),(0,s.Cg)([(0,o.MZ)()],d.prototype,"target",void 0),(0,s.Cg)([(0,o.MZ)()],d.prototype,"rel",void 0),(0,s.Cg)([(0,o.MZ)()],d.prototype,"download",void 0),d=(0,s.Cg)([(0,o.EM)("ha-icon-button")],d),a()}catch(e){a(e)}})},47680(e,t,i){i.r(t),i.d(t,{HaIcon:()=>w});i(74423);var a=i(62826),s=i(5124),n=i(22441),o=i(1087),r=i(9899),l=i(700),c=(i(44114),i(18111),i(7588),i(95192)),d=i(7553);const h=JSON.parse('{"version":"7.4.47","parts":[{"file":"7a7139d465f1f41cb26ab851a17caa21a9331234"},{"start":"account-supervisor-circle-","file":"9561286c4c1021d46b9006596812178190a7cc1c"},{"start":"alpha-r-c","file":"eb466b7087fb2b4d23376ea9bc86693c45c500fa"},{"start":"arrow-decision-o","file":"4b3c01b7e0723b702940c5ac46fb9e555646972b"},{"start":"baby-f","file":"2611401d85450b95ab448ad1d02c1a432b409ed2"},{"start":"battery-hi","file":"89bcd31855b34cd9d31ac693fb073277e74f1f6a"},{"start":"blur-r","file":"373709cd5d7e688c2addc9a6c5d26c2d57c02c48"},{"start":"briefcase-account-","file":"a75956cf812ee90ee4f656274426aafac81e1053"},{"start":"calendar-question-","file":"3253f2529b5ebdd110b411917bacfacb5b7063e6"},{"start":"car-lig","file":"74566af3501ad6ae58ad13a8b6921b3cc2ef879d"},{"start":"cellphone-co","file":"7677f1cfb2dd4f5562a2aa6d3ae43a2e6997b21a"},{"start":"circle-slice-2","file":"70d08c50ec4522dd75d11338db57846588263ee2"},{"start":"cloud-co","file":"141d2bfa55ca4c83f4bae2812a5da59a84fec4ff"},{"start":"cog-s","file":"5a640365f8e47c609005d5e098e0e8104286d120"},{"start":"cookie-l","file":"dd85b8eb8581b176d3acf75d1bd82e61ca1ba2fc"},{"start":"currency-eur-","file":"15362279f4ebfc3620ae55f79d2830ad86d5213e"},{"start":"delete-o","file":"239434ab8df61237277d7599ebe066c55806c274"},{"start":"draw-","file":"5605918a592070803ba2ad05a5aba06263da0d70"},{"start":"emoticon-po","file":"a838cfcec34323946237a9f18e66945f55260f78"},{"start":"fan","file":"effd56103b37a8c7f332e22de8e4d67a69b70db7"},{"start":"file-question-","file":"b2424b50bd465ae192593f1c3d086c5eec893af8"},{"start":"flask-off-","file":"3b76295cde006a18f0301dd98eed8c57e1d5a425"},{"start":"food-s","file":"1c6941474cbeb1755faaaf5771440577f4f1f9c6"},{"start":"gamepad-u","file":"c6efe18db6bc9654ae3540c7dee83218a5450263"},{"start":"google-f","file":"df341afe6ad4437457cf188499cb8d2df8ac7b9e"},{"start":"head-c","file":"282121c9e45ed67f033edcc1eafd279334c00f46"},{"start":"home-pl","file":"27e8e38fc7adcacf2a210802f27d841b49c8c508"},{"start":"inbox-","file":"0f0316ec7b1b7f7ce3eaabce26c9ef619b5a1694"},{"start":"key-v","file":"ea33462be7b953ff1eafc5dac2d166b210685a60"},{"start":"leaf-circle-","file":"33db9bbd66ce48a2db3e987fdbd37fb0482145a4"},{"start":"lock-p","file":"b89e27ed39e9d10c44259362a4b57f3c579d3ec8"},{"start":"message-s","file":"7b5ab5a5cadbe06e3113ec148f044aa701eac53a"},{"start":"moti","file":"01024d78c248d36805b565e343dd98033cc3bcaf"},{"start":"newspaper-variant-o","file":"22a6ec4a4fdd0a7c0acaf805f6127b38723c9189"},{"start":"on","file":"c73d55b412f394e64632e2011a59aa05e5a1f50d"},{"start":"paw-ou","file":"3f669bf26d16752dc4a9ea349492df93a13dcfbf"},{"start":"pigg","file":"0c24edb27eb1c90b6e33fc05f34ef3118fa94256"},{"start":"printer-pos-sy","file":"41a55cda866f90b99a64395c3bb18c14983dcf0a"},{"start":"read","file":"c7ed91552a3a64c9be88c85e807404cf705b7edf"},{"start":"robot-vacuum-variant-o","file":"917d2a35d7268c0ea9ad9ecab2778060e19d90e0"},{"start":"sees","file":"6e82d9861d8fac30102bafa212021b819f303bdb"},{"start":"shoe-f","file":"e2fe7ce02b5472301418cc90a0e631f187b9f238"},{"start":"snowflake-m","file":"a28ba9f5309090c8b49a27ca20ff582a944f6e71"},{"start":"st","file":"7e92d03f095ec27e137b708b879dfd273bd735ab"},{"start":"su","file":"61c74913720f9de59a379bdca37f1d2f0dc1f9db"},{"start":"tag-plus-","file":"8f3184156a4f38549cf4c4fffba73a6a941166ae"},{"start":"timer-a","file":"baab470d11cfb3a3cd3b063ee6503a77d12a80d0"},{"start":"transit-d","file":"8561c0d9b1ac03fab360fd8fe9729c96e8693239"},{"start":"vector-arrange-b","file":"c9a3439257d4bab33d3355f1f2e11842e8171141"},{"start":"water-ou","file":"02dbccfb8ca35f39b99f5a085b095fc1275005a0"},{"start":"webc","file":"57bafd4b97341f4f2ac20a609d023719f23a619c"},{"start":"zip","file":"65ae094e8263236fa50486584a08c03497a38d93"}]}');let p;const u=()=>(p||(p=f().catch(e=>{throw p=void 0,e})),p),f=async()=>{const e=(0,c.y$)("hass-icon-db","mdi-icon-store"),t=await(0,c.Jt)("_version",e);return t?t!==h.version&&(await(0,c.IU)(e),(0,c.hZ)("_version",h.version,e)):(0,c.hZ)("_version",h.version,e),e},b=["mdi","hass","hassio","hademo"];let g=[];i(67094);const _={},v={},y=(0,r.s)(()=>(async e=>{const t=Object.keys(e),i=await Promise.allSettled(Object.values(e));(await u())("readwrite",a=>{i.forEach((i,s)=>{"fulfilled"===i.status&&Object.entries(i.value).forEach(([e,t])=>{a.put(t,e)}),delete e[t[s]]})})})(v),2e3),m={},x={"home-assistant":()=>i.e(58781).then(i.bind(i,53580)).then(e=>e.mdiHomeAssistant),"music-assistant":()=>i.e(56009).then(i.bind(i,10576)).then(e=>e.mdiMusicAssistant),esphome:()=>i.e(88800).then(i.bind(i,45091)).then(e=>e.mdiEsphomeLogo)};class w extends s.WF{willUpdate(e){super.willUpdate(e),e.has("icon")&&(this._path=void 0,this._secondaryPath=void 0,this._viewBox=void 0,this._loadIcon())}render(){return this.icon?this._legacy?s.qy` <iron-icon .icon="${this.icon}"></iron-icon>`:s.qy`<ha-svg-icon .path="${this._path}" .secondaryPath="${this._secondaryPath}" .viewBox="${this._viewBox}"></ha-svg-icon>`:s.s6}async _loadIcon(){if(!this.icon)return;const e=this.icon,[t,i]=this.icon.split(":",2);let a,s=i;if(!t||!s)return;if(!b.includes(t)){const i=l.y[t];return i?void(i&&"function"==typeof i.getIcon&&this._setCustomPath(i.getIcon(s),e)):void(this._legacy=!0)}if(this._legacy=!1,s in _){const e=_[s];let i;e.newName?(i=`Icon ${t}:${s} was renamed to ${t}:${e.newName}, please change your config, it will be removed in version ${e.removeIn}.`,s=e.newName):i=`Icon ${t}:${s} was removed from MDI, please replace this icon with an other icon in your config, it will be removed in version ${e.removeIn}.`,console.warn(i),(0,o.r)(this,"write_log",{level:"warning",message:i})}if(s in m)return void(this._path=m[s]);if(s in x){const t=await x[s]();return this.icon===e&&(this._path=t),void(m[s]=t)}try{a=await(e=>new Promise((t,i)=>{if(g.push([e,t,i]),g.length>1)return;const a=u();(0,d.h)(1e3,(async()=>{(await a)("readonly",e=>{for(const[t,i,a]of g)(0,c.Yd)(e.get(t)).then(e=>i(e)).catch(e=>a(e));g=[]})})()).catch(e=>{for(const[,,t]of g)t(e);g=[]})}))(s)}catch(e){a=void 0}if(a)return this.icon===e&&(this._path=a),void(m[s]=a);const n=(e=>{let t;for(const i of h.parts){if(void 0!==i.start&&e<i.start)break;t=i}return t.file})(s);if(n in v)return void this._setPath(v[n],s,e);const r=fetch(`/static/mdi/${n}.json`).then(e=>e.json());v[n]=r,this._setPath(r,s,e),r.catch(()=>{delete v[n]}),y()}async _setCustomPath(e,t){const i=await e;this.icon===t&&(this._path=i.path,this._secondaryPath=i.secondaryPath,this._viewBox=i.viewBox)}async _setPath(e,t,i){try{const a=await e;this.icon===i&&(this._path=a[t]),m[t]=a[t]}catch(e){}}constructor(...e){super(...e),this._legacy=!1}}w.styles=s.AH`:host{fill:currentcolor}`,(0,a.Cg)([(0,n.MZ)()],w.prototype,"icon",void 0),(0,a.Cg)([(0,n.wk)()],w.prototype,"_path",void 0),(0,a.Cg)([(0,n.wk)()],w.prototype,"_secondaryPath",void 0),(0,a.Cg)([(0,n.wk)()],w.prototype,"_viewBox",void 0),(0,a.Cg)([(0,n.wk)()],w.prototype,"_legacy",void 0),w=(0,a.Cg)([(0,n.EM)("ha-icon")],w)},2054(e,t,i){i.a(e,async function(e,t){try{var a=i(62826),s=i(5124),n=i(22441),o=i(1087),r=i(44249),l=i(26300),c=e([l]);l=(c.then?(await c)():c)[0];const d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";class h extends s.WF{connectedCallback(){super.connectedCallback(),this._attachNotifOnConnect&&(this._attachNotifOnConnect=!1,this._subscribeNotifications())}disconnectedCallback(){super.disconnectedCallback(),this._unsubNotifications&&(this._attachNotifOnConnect=!0,this._unsubNotifications(),this._unsubNotifications=void 0)}render(){if(!this._show)return s.s6;const e=this._hasNotifications&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);return s.qy` <ha-icon-button .label="${this.hass.localize("ui.sidebar.sidebar_toggle")}" .path="${d}" @click="${this._toggleMenu}"></ha-icon-button> ${e?s.qy`<div class="dot"></div>`:""} `}willUpdate(e){if(super.willUpdate(e),!e.has("narrow")&&!e.has("hass"))return;const t=e.has("hass")?e.get("hass"):this.hass,i=e.has("narrow")?e.get("narrow"):this.narrow,a=!1===t?.kioskMode&&(i||"always_hidden"===t?.dockedSidebar),s=!1===this.hass.kioskMode&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);this.hasUpdated&&a===s||(this._show=s||this._alwaysVisible,s?this._subscribeNotifications():this._unsubNotifications&&(this._unsubNotifications(),this._unsubNotifications=void 0))}_subscribeNotifications(){if(this._unsubNotifications)throw new Error("Already subscribed");this._unsubNotifications=(0,r.V)(this.hass.connection,e=>{this._hasNotifications=e.length>0})}_toggleMenu(){(0,o.r)(this,"hass-toggle-menu")}constructor(...e){super(...e),this.narrow=!1,this._hasNotifications=!1,this._show=!1,this._alwaysVisible=!1,this._attachNotifOnConnect=!1}}h.styles=s.AH`:host{position:relative}.dot{pointer-events:none;position:absolute;background-color:var(--accent-color);width:12px;height:12px;top:9px;right:7px;inset-inline-end:7px;inset-inline-start:initial;border-radius:var(--ha-border-radius-circle);border:2px solid var(--app-header-background-color)}`,(0,a.Cg)([(0,n.MZ)({type:Boolean})],h.prototype,"narrow",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,a.Cg)([(0,n.wk)()],h.prototype,"_hasNotifications",void 0),(0,a.Cg)([(0,n.wk)()],h.prototype,"_show",void 0),h=(0,a.Cg)([(0,n.EM)("ha-menu-button")],h),t()}catch(e){t(e)}})},65829(e,t,i){i.a(e,async function(e,a){try{i.r(t),i.d(t,{HaSpinner:()=>c});var s=i(62826),n=i(55262),o=i(5124),r=i(22441),l=e([n]);n=(l.then?(await l)():l)[0];class c extends n.A{updated(e){if(super.updated(e),e.has("size"))switch(this.size){case"tiny":this.style.setProperty("--ha-spinner-size","16px");break;case"small":this.style.setProperty("--ha-spinner-size","28px");break;case"medium":this.style.setProperty("--ha-spinner-size","48px");break;case"large":this.style.setProperty("--ha-spinner-size","68px");break;case void 0:this.style.removeProperty("--ha-progress-ring-size")}}static get styles(){return[n.A.styles,o.AH`:host{--indicator-color:var(
            --ha-spinner-indicator-color,
            var(--primary-color)
          );--track-color:var(--ha-spinner-divider-color, var(--divider-color));--track-width:4px;--speed:3.5s;font-size:var(--ha-spinner-size, 48px)}`]}}(0,s.Cg)([(0,r.MZ)()],c.prototype,"size",void 0),c=(0,s.Cg)([(0,r.EM)("ha-spinner")],c),a()}catch(e){a(e)}})},67094(e,t,i){i.r(t),i.d(t,{HaSvgIcon:()=>o});var a=i(62826),s=i(5124),n=i(22441);class o extends s.WF{render(){return s.JW` <svg viewBox="${this.viewBox||"0 0 24 24"}" preserveAspectRatio="xMidYMid meet" focusable="false" role="img" aria-hidden="true"> <g> ${this.path?s.JW`<path class="primary-path" d="${this.path}"></path>`:s.s6} ${this.secondaryPath?s.JW`<path class="secondary-path" d="${this.secondaryPath}"></path>`:s.s6} </g> </svg>`}}o.styles=s.AH`:host{display:var(--ha-icon-display,inline-flex);align-items:center;justify-content:center;position:relative;vertical-align:middle;fill:var(--icon-primary-color,currentcolor);width:var(--mdc-icon-size,24px);height:var(--mdc-icon-size,24px)}svg{width:100%;height:100%;pointer-events:none;display:block}path.primary-path{opacity:var(--icon-primary-opactity, 1)}path.secondary-path{fill:var(--icon-secondary-color,currentcolor);opacity:var(--icon-secondary-opactity, .5)}`,(0,a.Cg)([(0,n.MZ)()],o.prototype,"path",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],o.prototype,"secondaryPath",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],o.prototype,"viewBox",void 0),o=(0,a.Cg)([(0,n.EM)("ha-svg-icon")],o)},36866(e,t,i){i.a(e,async function(e,t){try{var a=i(62826),s=i(5124),n=i(22441),o=i(91485),r=e([o]);o=(r.then?(await r)():r)[0];const l="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z";class c extends o.U{willUpdate(e){super.willUpdate(e),this.label||this.placeholder||this.hasUpdated&&!e.has("_i18n")||(this.placeholder=this.i18n?.localize?.("ui.common.search")||"Search")}renderStartDefault(){return s.qy`<ha-svg-icon slot="start" .path="${l}"></ha-svg-icon>`}constructor(){super(),this.withClear=!0,this.autocomplete=this.autocomplete||"off"}}c.styles=[...o.U.styles,s.AH`:host([appearance=outlined]) wa-input.no-label::part(base){height:40px}`],c=(0,a.Cg)([(0,n.EM)("ha-input-search")],c),t()}catch(e){t(e)}})},61037(e,t,i){var a=i(62826),s=i(22441),n=i(5124),o=i(14503),r=i(14782),l=i(44144);class c extends n.WF{render(){return n.qy` <img class="logo" alt="${r.aK[this.voiceAssistantId].name}" src="${(0,l.MR)({domain:r.aK[this.voiceAssistantId].domain,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl)}" crossorigin="anonymous" referrerpolicy="no-referrer"> `}static get styles(){return[o.RF,n.AH`:host{display:inline}.logo{position:relative;vertical-align:middle;height:24px}`]}}(0,a.Cg)([(0,s.MZ)({attribute:!1})],c.prototype,"hass",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],c.prototype,"voiceAssistantId",void 0),c=(0,a.Cg)([(0,s.EM)("voice-assistant-brand-icon")],c)},21016(e,t,i){i.d(t,{Pu:()=>s,SB:()=>o,mk:()=>n,r1:()=>a});const a=e=>e.callWS({type:"counter/list"}),s=(e,t)=>e.callWS({type:"counter/create",...t}),n=(e,t,i)=>e.callWS({type:"counter/update",counter_id:t,...i}),o=(e,t)=>e.callWS({type:"counter/delete",counter_id:t})},700(e,t,i){i.d(t,{y:()=>o});const a=window;"customIconsets"in a||(a.customIconsets={});const s=a.customIconsets,n=window;"customIcons"in n||(n.customIcons={});const o=new Proxy(n.customIcons,{get:(e,t)=>e[t]??(s[t]?{getIcon:s[t]}:void 0)})},6810(e,t,i){i.d(t,{c:()=>n});const a=async(e,t,i,s,n,...o)=>{const r=n,l=r[e],c=l=>s&&s(n,l.result)!==l.cacheKey?(r[e]=void 0,a(e,t,i,s,n,...o)):l.result;if(l)return l instanceof Promise?l.then(c):c(l);const d=i(n,...o);return r[e]=d,d.then(i=>{r[e]={result:i,cacheKey:s?.(n,i)},setTimeout(()=>{r[e]=void 0},t)},()=>{r[e]=void 0}),d},s=e=>e.callWS({type:"entity/source"}),n=e=>a("_entitySources",3e4,s,e=>Object.keys(e.states).length,e)},14782(e,t,i){i.d(t,{Gw:()=>o,Ow:()=>l,YH:()=>n,aK:()=>s,hB:()=>c,ij:()=>r});i(18111),i(22489);var a=i(59241);const s={conversation:{domain:"assist_pipeline",name:"Assist"},"cloud.alexa":{domain:"alexa",name:"Amazon Alexa"},"cloud.google_assistant":{domain:"google_assistant",name:"Google Assistant"}},n=(e,t,i)=>e.callWS({type:"homeassistant/expose_new_entities/set",assistant:t,expose_new:i}),o=(e,t)=>e.callWS({type:"homeassistant/expose_new_entities/get",assistant:t}),r=(e,t,i,a)=>e.callWS({type:"homeassistant/expose_entity",assistants:t,entity_ids:i,should_expose:a}),l=e=>e.callWS({type:"homeassistant/expose_entity/list"}),c=(e,t)=>{const i=(0,a.Ox)(e)[t];return Object.keys(s).filter(e=>i?.options?.[e]?.should_expose)}},41656(e,t,i){i.d(t,{n:()=>p});var a=i(21016),s=i(2279),n=i(42575),o=i(77738),r=i(6922),l=i(33687),c=i(12284),d=i(2247),h=i(49141);const p={input_boolean:{fetch:s.tT,update:s.iE,delete:s.e1},input_button:{fetch:n.vF,update:n.mC,delete:n.C1},input_text:{fetch:c.MG,update:c.BJ,delete:c.d_},input_number:{fetch:r.kF,update:r.Tv,delete:r.$I},input_datetime:{fetch:o.a2,update:o.fJ,delete:o.Bj},input_select:{fetch:l.HV,update:l.EJ,delete:l.O3},counter:{fetch:a.r1,update:a.mk,delete:a.SB},timer:{fetch:h.kL,update:h.r9,delete:h.pZ},schedule:{fetch:d.YA,update:d.Fs,delete:d.VD}}},2279(e,t,i){i.d(t,{e1:()=>o,iE:()=>n,nr:()=>s,tT:()=>a});const a=e=>e.callWS({type:"input_boolean/list"}),s=(e,t)=>e.callWS({type:"input_boolean/create",...t}),n=(e,t,i)=>e.callWS({type:"input_boolean/update",input_boolean_id:t,...i}),o=(e,t)=>e.callWS({type:"input_boolean/delete",input_boolean_id:t})},42575(e,t,i){i.d(t,{C1:()=>o,L6:()=>s,mC:()=>n,vF:()=>a});const a=e=>e.callWS({type:"input_button/list"}),s=(e,t)=>e.callWS({type:"input_button/create",...t}),n=(e,t,i)=>e.callWS({type:"input_button/update",input_button_id:t,...i}),o=(e,t)=>e.callWS({type:"input_button/delete",input_button_id:t})},77738(e,t,i){i.d(t,{Bj:()=>l,TB:()=>s,a2:()=>n,fJ:()=>r,ke:()=>o,rv:()=>a});const a=e=>`${e.attributes.year||"1970"}-${String(e.attributes.month||"01").padStart(2,"0")}-${String(e.attributes.day||"01").padStart(2,"0")}T${String(e.attributes.hour||"00").padStart(2,"0")}:${String(e.attributes.minute||"00").padStart(2,"0")}:${String(e.attributes.second||"00").padStart(2,"0")}`,s=(e,t,i=void 0,a=void 0)=>{const s={entity_id:t,time:i,date:a};e.callService("input_datetime","set_datetime",s)},n=e=>e.callWS({type:"input_datetime/list"}),o=(e,t)=>e.callWS({type:"input_datetime/create",...t}),r=(e,t,i)=>e.callWS({type:"input_datetime/update",input_datetime_id:t,...i}),l=(e,t)=>e.callWS({type:"input_datetime/delete",input_datetime_id:t})},6922(e,t,i){i.d(t,{$I:()=>o,Tv:()=>n,gO:()=>s,kF:()=>a});const a=e=>e.callWS({type:"input_number/list"}),s=(e,t)=>e.callWS({type:"input_number/create",...t}),n=(e,t,i)=>e.callWS({type:"input_number/update",input_number_id:t,...i}),o=(e,t)=>e.callWS({type:"input_number/delete",input_number_id:t})},33687(e,t,i){i.d(t,{BT:()=>n,EJ:()=>o,HV:()=>s,MZ:()=>a,O3:()=>r});const a=(e,t,i)=>e.callService("input_select","select_option",{option:i,entity_id:t}),s=e=>e.callWS({type:"input_select/list"}),n=(e,t)=>e.callWS({type:"input_select/create",...t}),o=(e,t,i)=>e.callWS({type:"input_select/update",input_select_id:t,...i}),r=(e,t)=>e.callWS({type:"input_select/delete",input_select_id:t})},12284(e,t,i){i.d(t,{BJ:()=>o,KY:()=>a,MG:()=>s,d_:()=>r,m4:()=>n});const a=(e,t,i)=>e.callService(t.split(".",1)[0],"set_value",{value:i,entity_id:t}),s=e=>e.callWS({type:"input_text/list"}),n=(e,t)=>e.callWS({type:"input_text/create",...t}),o=(e,t,i)=>e.callWS({type:"input_text/update",input_text_id:t,...i}),r=(e,t)=>e.callWS({type:"input_text/delete",input_text_id:t})},44249(e,t,i){i.d(t,{V:()=>a});const a=(e,t)=>{const i=new s,a=e.subscribeMessage(e=>t(i.processMessage(e)),{type:"persistent_notification/subscribe"});return()=>{a.then(e=>e?.())}};class s{processMessage(e){if("removed"===e.type)for(const t of Object.keys(e.notifications))delete this.notifications[t];else this.notifications={...this.notifications,...e.notifications};return Object.values(this.notifications)}constructor(){this.notifications={}}}},2247(e,t,i){i.d(t,{Fs:()=>o,VD:()=>r,YA:()=>s,mx:()=>a,sF:()=>n});const a=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"],s=e=>e.callWS({type:"schedule/list"}),n=(e,t)=>e.callWS({type:"schedule/create",...t}),o=(e,t,i)=>e.callWS({type:"schedule/update",schedule_id:t,...i}),r=(e,t)=>e.callWS({type:"schedule/delete",schedule_id:t})},49141(e,t,i){i.d(t,{CR:()=>o,PF:()=>d,kL:()=>n,ls:()=>c,pZ:()=>l,r9:()=>r});var a=i(90409),s=i(27167);const n=e=>e.callWS({type:"timer/list"}),o=(e,t)=>e.callWS({type:"timer/create",...t}),r=(e,t,i)=>e.callWS({type:"timer/update",timer_id:t,...i}),l=(e,t)=>e.callWS({type:"timer/delete",timer_id:t}),c=e=>{if(!e.attributes.remaining)return;let t=(0,a.A)(e.attributes.remaining);if("active"===e.state){const i=(new Date).getTime(),a=new Date(e.attributes.finishes_at).getTime();t=Math.max((a-i)/1e3,0)}return t},d=(e,t,i)=>{if(!t)return null;if("idle"===t.state||0===i)return e.formatEntityState(t);let a=(0,s.A)(i||0)||"0";return"paused"===t.state&&(a=`${a} (${e.formatEntityState(t)})`),a}},23296(e,t,i){i.a(e,async function(e,a){try{i.r(t);var s=i(62826),n=i(5124),o=i(22441),r=i(91926),l=i(65829),c=i(90248),d=i(2054),h=i(14503),p=e([l,c,d]);[l,c,d]=p.then?(await p)():p;class u extends n.WF{render(){return n.qy` ${this.noToolbar?"":n.qy`<div class="toolbar"> ${this.rootnav||history.state?.root?n.qy` <ha-menu-button .hass="${this.hass}" .narrow="${this.narrow}"></ha-menu-button> `:n.qy` <ha-icon-button-arrow-prev .hass="${this.hass}" @click="${this._handleBack}"></ha-icon-button-arrow-prev> `} </div>`} <div class="content"> <ha-spinner></ha-spinner> ${this.message?n.qy`<div id="loading-text">${this.message}</div>`:n.s6} </div> `}_handleBack(){(0,r.OE)()}static get styles(){return[h.RF,n.AH`:host{display:block;height:100%;background-color:var(--primary-background-color)}.toolbar{display:flex;align-items:center;font-size:var(--ha-font-size-xl);height:var(--header-height);padding:8px 12px;pointer-events:none;background-color:var(--app-header-background-color);font-weight:var(--ha-font-weight-normal);color:var(--app-header-text-color,#fff);border-bottom:var(--app-header-border-bottom,none);box-sizing:border-box}@media (max-width:599px){.toolbar{padding:4px}}ha-icon-button-arrow-prev,ha-menu-button{pointer-events:auto}.content{height:calc(100% - var(--header-height));display:flex;flex-direction:column;align-items:center;justify-content:center}#loading-text{max-width:350px;margin-top:16px}`]}constructor(...e){super(...e),this.noToolbar=!1,this.rootnav=!1,this.narrow=!1}}(0,s.Cg)([(0,o.MZ)({attribute:!1})],u.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-toolbar"})],u.prototype,"noToolbar",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],u.prototype,"rootnav",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],u.prototype,"narrow",void 0),(0,s.Cg)([(0,o.MZ)()],u.prototype,"message",void 0),u=(0,s.Cg)([(0,o.EM)("hass-loading-screen")],u),a()}catch(e){a(e)}})},59992(e,t,i){i.d(t,{V:()=>l});var a=i(62826),s=i(88696),n=i(5124),o=i(6412),r=i(22441);const l=e=>{class t extends e{get scrollableElement(){return t.DEFAULT_SCROLLABLE_ELEMENT}firstUpdated(e){super.firstUpdated?.(e),this.scrollableElement&&this._updateScrollableState(this.scrollableElement),this._attachScrollableElement()}updated(e){super.updated?.(e),this._attachScrollableElement()}disconnectedCallback(){this._detachScrollableElement(),this._contentScrolled=!1,this._contentScrollable=!1,super.disconnectedCallback()}renderScrollableFades(e=!1){return n.qy` <div class="${(0,o.H)({"fade-top":!0,rounded:e,visible:this._contentScrolled})}"></div> <div class="${(0,o.H)({"fade-bottom":!0,rounded:e,visible:this._contentScrollable})}"></div> `}static get styles(){const e=Object.getPrototypeOf(this);var t;return[...void 0===(t=e?.styles??[])?[]:Array.isArray(t)?t:[t],n.AH`.fade-bottom,.fade-top{position:absolute;left:0;right:0;height:var(--ha-space-2);pointer-events:none;transition:opacity 180ms ease-in-out;border-radius:var(--ha-border-radius-square);opacity:0;background:linear-gradient(to bottom,var(--ha-color-shadow-scrollable-fade),transparent)}.fade-top{top:0}.fade-bottom{bottom:0;transform:rotate(180deg)}.fade-bottom.visible,.fade-top.visible{opacity:1}.fade-bottom.rounded,.fade-top.rounded{border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg));border-bottom-left-radius:var(--ha-border-radius-square);border-bottom-right-radius:var(--ha-border-radius-square)}.fade-top.rounded{border-top-left-radius:var(--ha-border-radius-square);border-top-right-radius:var(--ha-border-radius-square)}.fade-bottom.rounded{border-bottom-left-radius:var(--ha-border-radius-square);border-bottom-right-radius:var(--ha-border-radius-square)}`]}_attachScrollableElement(){const e=this.scrollableElement;e!==this._scrollTarget&&(this._detachScrollableElement(),e&&(this._scrollTarget=e,e.addEventListener("scroll",this._onScroll,{passive:!0}),this._resize.observe(e),this._updateScrollableState(e)))}_detachScrollableElement(){this._scrollTarget&&(this._scrollTarget.removeEventListener("scroll",this._onScroll),this._resize.unobserve?.(this._scrollTarget),this._scrollTarget=void 0)}_updateScrollableState(e){const t=parseFloat(getComputedStyle(e).getPropertyValue("--safe-area-inset-bottom"))||0,{scrollHeight:i=0,clientHeight:a=0,scrollTop:s=0}=e;this._contentScrollable=i-a>s+t+this.scrollFadeSafeAreaPadding}constructor(...e){super(...e),this._contentScrolled=!1,this._contentScrollable=!1,this._onScroll=e=>{const t=e.currentTarget;this._contentScrolled=(t.scrollTop??0)>this.scrollFadeThreshold,this._updateScrollableState(t)},this._resize=new s.P(this,{target:null,callback:e=>{const t=e[0]?.target;t&&this._updateScrollableState(t)}}),this.scrollFadeSafeAreaPadding=4,this.scrollFadeThreshold=4}}return t.DEFAULT_SCROLLABLE_ELEMENT=null,(0,a.Cg)([(0,r.wk)()],t.prototype,"_contentScrolled",void 0),(0,a.Cg)([(0,r.wk)()],t.prototype,"_contentScrollable",void 0),t}},72970(e,t,i){i.a(e,async function(e,a){try{i.r(t),i.d(t,{HaConfigEntities:()=>ve});i(74423),i(44114),i(18111),i(81148),i(22489),i(20116),i(7588),i(61701),i(13579),i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698),i(14603),i(47566),i(98721);var s=i(62826),n=(i(68825),i(35211)),o=i(5124),r=i(22441),l=i(63672),c=i(89784),d=i(22786),h=i(93905),p=i(65522),u=i(37981),f=i(71727),b=i(81816),g=i(28978),_=i(48638),v=i(89020),y=i(80880),m=i(87710),x=i(86171),w=i(38962),$=i(18350),C=(i(30716),i(29823)),k=(i(70947),i(52190)),S=i(33008),M=i(72644),A=i(63817),L=i(138),E=i(64263),H=i(2617),z=(i(47680),i(26300)),Z=(i(82988),i(67094),i(34127)),q=i(77423),W=i(22792),P=i(22675),F=i(59241),I=i(6810),V=i(14782),T=i(41656),O=i(95350),B=i(92557),U=i(86973),j=i(65063),D=i(42269),N=i(23296),R=i(72553),G=i(14503),J=i(29303),K=i(25635),Y=i(24367),X=i(5317),Q=i(76559),ee=i(69569),te=i(94017),ie=i(19661),ae=e([x,w,$,C,k,S,M,A,L,E,H,z,Z,N,R,X,J,te]);[x,w,$,C,k,S,M,A,L,E,H,z,Z,N,R,X,J,te]=ae.then?(await ae)():ae;const se="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z",ne="M12 2C17.5 2 22 6.5 22 12S17.5 22 12 22 2 17.5 2 12 6.5 2 12 2M12 4C10.1 4 8.4 4.6 7.1 5.7L18.3 16.9C19.3 15.5 20 13.8 20 12C20 7.6 16.4 4 12 4M16.9 18.3L5.7 7.1C4.6 8.4 4 10.1 4 12C4 16.4 7.6 20 12 20C13.9 20 15.6 19.4 16.9 18.3Z",oe="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",re="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",le="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z",ce="M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z",de="M11.83,9L15,12.16C15,12.11 15,12.05 15,12A3,3 0 0,0 12,9C11.94,9 11.89,9 11.83,9M7.53,9.8L9.08,11.35C9.03,11.56 9,11.77 9,12A3,3 0 0,0 12,15C12.22,15 12.44,14.97 12.65,14.92L14.2,16.47C13.53,16.8 12.79,17 12,17A5,5 0 0,1 7,12C7,11.21 7.2,10.47 7.53,9.8M2,4.27L4.28,6.55L4.73,7C3.08,8.3 1.78,10 1,12C2.73,16.39 7,19.5 12,19.5C13.55,19.5 15.03,19.2 16.38,18.66L16.81,19.08L19.73,22L21,20.73L3.27,3M12,7A5,5 0 0,1 17,12C17,12.64 16.87,13.26 16.64,13.82L19.57,16.75C21.07,15.5 22.27,13.86 23,12C21.27,7.61 17,4.5 12,4.5C10.6,4.5 9.26,4.75 8,5.2L10.17,7.35C10.74,7.13 11.35,7 12,7Z",he="M7,10L12,15L17,10H7Z",pe="M18.66,2C18.4,2 18.16,2.09 17.97,2.28L16.13,4.13L19.88,7.88L21.72,6.03C22.11,5.64 22.11,5 21.72,4.63L19.38,2.28C19.18,2.09 18.91,2 18.66,2M3.28,4L2,5.28L8.5,11.75L4,16.25V20H7.75L12.25,15.5L18.72,22L20,20.72L13.5,14.25L9.75,10.5L3.28,4M15.06,5.19L11.03,9.22L14.78,12.97L18.81,8.94L15.06,5.19Z",ue="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",fe="M13,3A9,9 0 0,0 4,12H1L4.89,15.89L4.96,16.03L9,12H6A7,7 0 0,1 13,5A7,7 0 0,1 20,12A7,7 0 0,1 13,19C11.07,19 9.32,18.21 8.06,16.94L6.64,18.36C8.27,20 10.5,21 13,21A9,9 0 0,0 22,12A9,9 0 0,0 13,3Z",be="M13 3C8 3 4 7 4 12H1L4.9 15.9L5 16L9 12H6C6 8.1 9.1 5 13 5S20 8.1 20 12 16.9 19 13 19C11.1 19 9.3 18.2 8.1 16.9L6.7 18.3C8.3 20 10.5 21 13 21C18 21 22 17 22 12S18 3 13 3M12 15H14V17H12V15M12 7H14V13H12V7",ge="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z",_e="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z";class ve extends o.WF{get _availableAssistants(){return(0,ie.V)(this.cloudStatus,this.hass)}connectedCallback(){super.connectedCallback(),window.addEventListener("location-changed",this._locationChanged),window.addEventListener("popstate",this._popState),window.addEventListener("exposed-entities-changed",this._fetchExposedEntities)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("location-changed",this._locationChanged),window.removeEventListener("popstate",this._popState),window.removeEventListener("exposed-entities-changed",this._fetchExposedEntities)}render(){if(!this.hass||void 0===this._entities)return o.qy` <hass-loading-screen></hass-loading-screen> `;const{filteredEntities:e,filteredDomains:t}=this._filteredEntitiesAndDomains(this.hass.localize,this._entities,this.hass.devices,this.hass.areas,this._entitiesWithoutUniqueId,this._filters,this._filteredItems,this._entries,this._labels),i=1===t.size&&v.x.includes([...t][0]);return o.qy` <hass-tabs-subpage-data-table .hass="${this.hass}" .narrow="${this.narrow}" .backPath="${this._searchParms.has("historyBack")?void 0:"/config"}" .route="${this.route}" .tabs="${K.configSections.devices}" .columns="${this._columns(this.hass.localize,e)}" .data="${e}" .searchLabel="${this.hass.localize("ui.panel.config.entities.picker.search",{number:e.length})}" has-filters .filters="${Object.values(this._filters).filter(e=>Array.isArray(e)?e.length:e&&Object.values(e).some(e=>Array.isArray(e)?e.length:e)).length}" selectable .selected="${this._selected.length}" .initialGroupColumn="${this._activeGrouping??"device_full"}" .initialCollapsedGroups="${this._activeCollapsed}" .initialSorting="${this._activeSorting}" .columnOrder="${this._activeColumnOrder}" .hiddenColumns="${this._activeHiddenColumns}" @columns-changed="${this._handleColumnsChanged}" @sorting-changed="${this._handleSortingChanged}" @grouping-changed="${this._handleGroupingChanged}" @collapsed-changed="${this._handleCollapseChanged}" @selection-changed="${this._handleSelectionChanged}" clickable @clear-filter="${this._clearFilter}" .filter="${this._filter}" @search-changed="${this._handleSearchChange}" @row-click="${this._openEditEntry}" id="entity_id" .hasFab="${i}" class="${this.narrow?"narrow":""}"> <ha-integration-overflow-menu .hass="${this.hass}" slot="toolbar-icon"></ha-integration-overflow-menu> ${this.narrow?o.s6:o.qy`<ha-dropdown slot="selection-bar" @wa-select="${this._handleBulkLabel}"> <ha-assist-chip slot="trigger" .label="${this.hass.localize("ui.panel.config.automation.picker.bulk_actions.add_label")}"> <ha-svg-icon slot="trailing-icon" .path="${he}"></ha-svg-icon> </ha-assist-chip> ${this._renderLabelItems()} </ha-dropdown>`} <ha-dropdown slot="selection-bar" @wa-select="${this._handleBulkAction}"> ${this.narrow?o.qy`<ha-assist-chip .label="${this.hass.localize("ui.panel.config.automation.picker.bulk_action")}" slot="trigger"> <ha-svg-icon slot="trailing-icon" .path="${he}"></ha-svg-icon> </ha-assist-chip>`:o.qy`<ha-icon-button .path="${le}" .label="${this.hass.localize("ui.panel.config.automation.picker.bulk_action")}" slot="trigger"></ha-icon-button>`} ${this.narrow?o.qy`<ha-dropdown-item> ${this.hass.localize("ui.panel.config.automation.picker.bulk_actions.add_label")} <ha-svg-icon slot="end" .path="${oe}"></ha-svg-icon> ${this._renderLabelItems("submenu")} </ha-dropdown-item> <wa-divider></wa-divider>`:o.s6} <ha-dropdown-item value="enable_selected"> <ha-svg-icon slot="icon" .path="${ge}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.enable_selected.button")} </ha-dropdown-item> <ha-dropdown-item value="disable_selected"> <ha-svg-icon slot="icon" .path="${_e}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.disable_selected.button")} </ha-dropdown-item> <wa-divider></wa-divider> <ha-dropdown-item value="unhide_selected"> <ha-svg-icon slot="icon" .path="${ce}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.unhide_selected.button")} </ha-dropdown-item> <ha-dropdown-item value="hide_selected"> <ha-svg-icon slot="icon" .path="${de}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.hide_selected.button")} </ha-dropdown-item> <wa-divider></wa-divider> <ha-dropdown-item value="restore_entity_id_selected"> <ha-svg-icon slot="icon" .path="${fe}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.restore_entity_id_selected.button")} </ha-dropdown-item> <wa-divider></wa-divider> <ha-dropdown-item value="delete_selected" variant="danger"> <ha-svg-icon slot="icon" .path="${re}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.entities.picker.delete_selected.button")} </ha-dropdown-item> </ha-dropdown> ${Array.isArray(this._filters.config_entry)&&this._filters.config_entry.length?o.qy`<ha-alert slot="filter-pane"> ${this.hass.localize("ui.panel.config.entities.picker.filtering_by_config_entry")} ${this._entries?.find(e=>e.entry_id===this._filters.config_entry[0])?.title||this._filters.config_entry[0]}${1===this._filters.config_entry.length&&Array.isArray(this._filters.sub_entry)&&this._filters.sub_entry.length?o.qy` (${this._subEntries?.find(e=>e.subentry_id===this._filters.sub_entry[0])?.title||this._filters.sub_entry[0]})`:o.s6} </ha-alert>`:o.s6} <ha-filter-floor-areas .hass="${this.hass}" type="entity" .value="${this._filters["ha-filter-floor-areas"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-floor-areas"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-floor-areas> <ha-filter-devices .hass="${this.hass}" .type="${"entity"}" .value="${this._filters["ha-filter-devices"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-devices"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-devices> <ha-filter-domains .hass="${this.hass}" .value="${this._filters["ha-filter-domains"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-domains"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-domains> <ha-filter-integrations .hass="${this.hass}" .value="${this._filters["ha-filter-integrations"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-integrations"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-integrations> <ha-filter-states .hass="${this.hass}" .label="${this.hass.localize("ui.panel.config.entities.picker.headers.status")}" .value="${this._filters["ha-filter-states"]}" .states="${this._states(this.hass.localize)}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-states"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-states> <ha-filter-labels .hass="${this.hass}" .value="${this._filters["ha-filter-labels"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-labels"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-labels> <ha-filter-voice-assistants .hass="${this.hass}" .value="${this._filters["ha-filter-voice-assistants"]}" @data-table-filter-changed="${this._filterChanged}" slot="filter-pane" .expanded="${"ha-filter-voice-assistants"===this._expandedFilter}" .narrow="${this.narrow}" @expanded-changed="${this._filterExpanded}"></ha-filter-voice-assistants> ${i?o.qy`<ha-button size="large" @click="${this._addDevice}" slot="fab"> <ha-svg-icon slot="start" .path="${ue}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.devices.add_device")} </ha-button>`:o.s6} </hass-tabs-subpage-data-table> `}_filterExpanded(e){e.detail.expanded?this._expandedFilter=e.target.localName:this._expandedFilter===e.target.localName&&(this._expandedFilter=void 0)}_filterChanged(e){const t=e.target.localName;this._filters={...this._filters,[t]:e.detail.value},this._filteredItems={...this._filteredItems,[t]:e.detail.items},this._fromUrl||(this._storageFilters=this._filters)}firstUpdated(){this._setFiltersFromUrl(),this._fetchExposedEntities(),(0,I.c)(this.hass).then(e=>{this._entitySources=e}),Object.keys(this._filters).length||(this._filters={"ha-filter-states":["enabled"]})}_setFiltersFromUrl(){const e=this._searchParms.get("area"),t=this._searchParms.get("domain"),i=this._searchParms.get("config_entry"),a=this._searchParms.get("sub_entry"),s=this._searchParms.get("device"),n=this._searchParms.get("label"),o=this._searchParms.get("voice_assistant");(e||t||i||n||s)&&(this._fromUrl=!0,this._filter=history.state?.filter||"",this._filters={"ha-filter-states":[],"ha-filter-floor-areas":e?{areas:[e]}:void 0,"ha-filter-integrations":t?[t]:[],"ha-filter-devices":s?[s]:[],"ha-filter-labels":n?[n]:[],"ha-filter-voice-assistants":o?[o]:[],config_entry:i?[i]:[],sub_entry:a?[a]:[]})}_clearFilter(){this._filters={},this._filteredItems={},this._fromUrl||(this._storageFilters={})}_getExposedEntityVoiceAssistantIds(e){return Object.keys(V.aK).filter(t=>this._exposedEntities?.[e]?.[t])}_getExposedEntitySettingsAsOptions(e){const t=this._exposedEntities?.[e],i={};return Object.keys(V.aK).forEach(e=>{i[e]={should_expose:t?.[e]}}),i}willUpdate(e){super.willUpdate(e),this.hasUpdated||(this._filters=this._storageFilters,this._setFiltersFromUrl());const t=e.get("hass");let i=!1;if(this.hass&&this._entities&&(e.has("hass")&&(!t||t.states!==this.hass.states)||e.has("_entities")||e.has("_entitySources")||e.has("_exposedEntities"))){const a=[],s=new Set(this._entities.map(e=>e.entity_id));for(const n of Object.keys(this.hass.states))s.has(n)||(!e.has("_entitySources")&&(!e.has("hass")||t&&t.states[n])||(i=!0),a.push({name:(0,g.u)(this.hass.states[n]),entity_id:n,platform:this._entitySources?.[n]?.domain||(0,f.m)(n),disabled_by:null,hidden_by:null,area_id:null,config_entry_id:null,config_subentry_id:null,device_id:null,icon:null,readonly:!0,selectable:!1,entity_category:null,has_entity_name:!1,options:this._getExposedEntitySettingsAsOptions(n),labels:[],categories:{},created_at:0,modified_at:0}));i&&(this._entitiesWithoutUniqueId=a)}}_handleSearchChange(e){this._filter=e.detail.value,history.replaceState({filter:this._filter},"")}_handleSelectionChanged(e){this._selected=e.detail.value}async _handleBulkLabel(e){e.preventDefault();const t=e.detail.item.value;if(!t)return;if("label_create"===t)return void this._bulkCreateLabel();const i=t.substring(6),a=e.detail.item.action;await this._bulkLabel(i,a)}async _bulkLabel(e,t){const i=[];this._selected.forEach(a=>{const s=this.hass.entities[a]||this._entities.find(e=>e.entity_id===a);s&&i.push((0,F.G_)(this.hass,a,{labels:"add"===t?s.labels.concat(e):s.labels.filter(t=>t!==e)}))});const a=await Promise.allSettled(i);if((0,m.$)(a)){const e=(0,m.N)(a);(0,j.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.common.multiselect.failed",{number:e.length}),text:o.qy`<pre>
${e.map(e=>e.reason.message||e.reason.code||e.reason).join("\r\n")}</pre>`})}}_clearSelection(){this._dataTable.clearSelection()}_openEditEntry(e){const t=e.detail.id;(0,D.p)(this,{entityId:t})}async _loadConfigEntries(){this._entries=await(0,q.VN)(this.hass)}async _loadSubEntries(e){this._subEntries=await(0,q.t0)(this.hass,e)}_addDevice(){const{filteredConfigEntry:e,filteredDomains:t}=this._filteredEntitiesAndDomains(this.hass.localize,this._entities,this.hass.devices,this.hass.areas,this._entitiesWithoutUniqueId,this._filters,this._filteredItems,this._entries,this._labels);1===t.size&&v.x.includes([...t][0])?(0,v.P)(this,this.hass,[...t][0],{config_entry:e?.entry_id}):(0,Q.X)(this,{domain:this._searchParms.get("domain")||void 0,navigateToResult:!0})}_handleSortingChanged(e){this._activeSorting=e.detail}_handleGroupingChanged(e){this._activeGrouping=e.detail.value}_handleCollapseChanged(e){this._activeCollapsed=e.detail.value}_handleColumnsChanged(e){this._activeColumnOrder=e.detail.columnOrder,this._activeHiddenColumns=e.detail.hiddenColumns}_handleBulkAction(e){const t=e.detail.item.value;if(t){switch(t){case"enable_selected":return void this._enableSelected();case"disable_selected":return void this._disableSelected();case"unhide_selected":return void this._unhideSelected();case"hide_selected":return void this._hideSelected();case"restore_entity_id_selected":return void this._restoreEntityIdSelected();case"delete_selected":return void this._removeSelected()}t.startsWith("label_")&&this._handleBulkLabel(e)}}static get styles(){return[G.RF,o.AH`hass-tabs-subpage-data-table{--data-table-row-height:60px}hass-tabs-subpage-data-table.narrow{--data-table-row-height:72px}hass-loading-screen{--app-header-background-color:var(--sidebar-background-color);--app-header-text-color:var(--sidebar-text-color)}.table-header{display:flex;justify-content:space-between;align-items:center;height:56px;background-color:var(--mdc-text-field-fill-color,#f5f5f5);border-bottom:1px solid var(--mdc-text-field-idle-line-color,rgba(0,0,0,.42));box-sizing:border-box}.header-toolbar{display:flex;justify-content:space-between;align-items:center;color:var(--secondary-text-color);position:relative;top:-4px}.selected-txt{font-weight:var(--ha-font-weight-bold);padding-left:16px;padding-inline-start:16px;padding-inline-end:initial;direction:var(--direction)}.table-header .selected-txt{margin-top:20px}.header-toolbar .selected-txt{font-size:var(--ha-font-size-l)}.header-toolbar .header-btns{margin-right:-12px;margin-inline-end:-12px;margin-inline-start:initial;direction:var(--direction)}.header-btns{display:flex}.header-btns>ha-icon-button{margin:8px}.clear{color:var(--primary-color);padding-left:8px;padding-inline-start:8px;padding-inline-end:initial;text-transform:uppercase;direction:var(--direction)}ha-assist-chip{--ha-assist-chip-container-shape:10px}ha-dropdown::part(menu),ha-dropdown::part(submenu){--auto-size-available-width:calc(50vw - var(--ha-space-4))}ha-dropdown ha-assist-chip{--md-assist-chip-trailing-space:8px}`]}constructor(...e){super(...e),this.isWide=!1,this.narrow=!1,this._entitiesWithoutUniqueId=[],this._filter=history.state?.filter||"",this._searchParms=new URLSearchParams(window.location.search),this._filters={},this._storageFilters={},this._filteredItems={},this._selected=[],this._fromUrl=!1,this._locationChanged=()=>{window.location.search.substring(1)!==this._searchParms.toString()&&(this._searchParms=new URLSearchParams(window.location.search),this._setFiltersFromUrl())},this._popState=()=>{window.location.search.substring(1)!==this._searchParms.toString()&&(this._searchParms=new URLSearchParams(window.location.search),this._setFiltersFromUrl())},this._states=(0,d.A)(e=>[{value:"available",label:e("ui.panel.config.entities.picker.status.available")},{value:"unavailable",label:e("ui.panel.config.entities.picker.status.unavailable")},{value:"enabled",label:e("ui.panel.config.entities.picker.status.enabled")},{value:"disabled",label:e("ui.panel.config.entities.picker.status.disabled")},{value:"visible",label:e("ui.panel.config.entities.picker.status.visible")},{value:"hidden",label:e("ui.panel.config.entities.picker.status.hidden")},{value:"readonly",label:e("ui.panel.config.entities.picker.status.unmanageable")},{value:"restored",label:e("ui.panel.config.entities.picker.status.not_provided")}]),this._columns=(0,d.A)((e,t)=>({icon:{title:"",label:e("ui.panel.config.entities.picker.headers.state_icon"),type:"icon",showNarrow:!0,moveable:!1,template:e=>e.icon?o.qy`<ha-icon .icon="${e.icon}"></ha-icon>`:e.entity?o.qy` <ha-state-icon title="${(0,l.J)(e.entity?this.hass.formatEntityState(e.entity):void 0)}" slot="item-icon" .stateObj="${e.entity}"></ha-state-icon> `:o.qy`<ha-domain-icon .domain="${(0,f.m)(e.entity_id)}"></ha-domain-icon>`},name:{main:!0,title:e("ui.panel.config.entities.picker.headers.entity"),sortable:!0,filterable:!0,direction:"asc",extraTemplate:e=>e.label_entries.length?o.qy` <ha-data-table-labels .labels="${e.label_entries}"></ha-data-table-labels> `:o.s6},device:{title:e("ui.panel.config.entities.picker.headers.device"),sortable:!0,template:e=>e.device||"—"},device_full:{title:e("ui.panel.config.entities.picker.headers.device"),filterable:!0,groupable:!0,hidden:!0},area:(0,J.A7)(e),entity_id:(0,J.DZ)(e,!0),localized_platform:{title:e("ui.panel.config.entities.picker.headers.integration"),sortable:!0,groupable:!0,filterable:!0},domain:(0,J.vm)(e),disabled_by:{title:e("ui.panel.config.entities.picker.headers.disabled_by"),hidden:!0,filterable:!0,template:e=>null===e.disabled_by?"":this.hass.localize(`config_entry.disabled_by.${e.disabled_by}`)},status:{title:e("ui.panel.config.entities.picker.headers.status"),type:"icon",showNarrow:!0,sortable:!0,filterable:!0,minWidth:"80px",maxWidth:"80px",template:e=>e.unavailable||e.disabled_by||e.hidden_by||e.readonly?o.qy` <div tabindex="0" style="display:inline-block;position:relative"> <ha-svg-icon .id="status-icon-${(0,y.Y)(e.entity_id)}" style="${(0,c.W)({color:e.unavailable?"var(--error-color)":""})}" .path="${e.restored?be:e.unavailable?se:e.disabled_by?ne:e.hidden_by?de:pe}"></ha-svg-icon> <ha-tooltip .for="status-icon-${(0,y.Y)(e.entity_id)}" placement="left"> ${e.restored?this.hass.localize("ui.panel.config.entities.picker.status.not_provided"):e.unavailable?this.hass.localize("ui.panel.config.entities.picker.status.unavailable"):e.disabled_by?this.hass.localize("ui.panel.config.entities.picker.status.disabled"):e.hidden_by?this.hass.localize("ui.panel.config.entities.picker.status.hidden"):this.hass.localize("ui.panel.config.entities.picker.status.unmanageable")} </ha-tooltip> </div> `:"—"},created_at:(0,J.oO)(e,this.hass),modified_at:(0,J.Tr)(e,this.hass),available:{title:e("ui.panel.config.entities.picker.headers.availability"),sortable:!0,groupable:!0,hidden:!0},visible:{title:e("ui.panel.config.entities.picker.headers.visibility"),sortable:!0,groupable:!0,hidden:!0},enabled:{title:e("ui.panel.config.entities.picker.headers.enabled"),sortable:!0,groupable:!0,hidden:!0},labels:(0,J.AI)(),assistants:(0,te.MD)(e,this.hass,this._availableAssistants,t)})),this._filteredEntitiesAndDomains=(0,d.A)((e,t,i,a,s,n,o,r,l)=>{const c=[],d=n["ha-filter-states"],h=!d?.length||d.includes("enabled"),g=!d?.length||d.includes("disabled"),_=!d?.length||d.includes("visible"),v=!d?.length||d.includes("hidden"),y=!d?.length||d.includes("available"),m=!d?.length||d.includes("unavailable"),x=!d?.length||d.includes("restored"),w=!d?.length||d.includes("readonly");let $,C=t.concat(s);const k=new Set;Object.entries(n).forEach(([e,t])=>{if("config_entry"===e&&Array.isArray(t)&&t.length){if(C=C.filter(e=>e.config_entry_id&&t.includes(e.config_entry_id)),!r)return void this._loadConfigEntries();const e=r.filter(e=>e.entry_id&&t.includes(e.entry_id));e.forEach(e=>{k.add(e.domain)}),1===e.length&&($=e[0])}else if("sub_entry"===e&&Array.isArray(t)&&t.length){if(!Array.isArray(this._filters.config_entry)||1!==this._filters.config_entry.length)return;C=C.filter(e=>e.config_subentry_id&&t.includes(e.config_subentry_id)),this._subEntries||this._loadSubEntries(this._filters.config_entry[0])}else if("ha-filter-integrations"===e&&Array.isArray(t)&&t.length){if(!r)return void this._loadConfigEntries();const e=r.filter(e=>t.includes(e.domain)).map(e=>e.entry_id),i=new Set,a=this._entitySources||{},s={};for(const[e,t]of Object.entries(a))t.domain in s||(s[t.domain]=[]),s[t.domain].push(e);for(const e of t)e in s&&s[e].forEach(e=>i.add(e));C=C.filter(a=>i.has(a.entity_id)||t.includes(a.platform)||a.config_entry_id&&e.includes(a.config_entry_id)),t.forEach(e=>k.add(e))}else"ha-filter-domains"===e&&Array.isArray(t)&&t.length?C=C.filter(e=>t.includes((0,f.m)(e.entity_id))):"ha-filter-labels"===e&&Array.isArray(t)&&t.length?C=C.filter(e=>e.labels.some(e=>t.includes(e))):"ha-filter-voice-assistants"===e&&Array.isArray(t)&&t.length&&(C=C.filter(e=>this._getExposedEntityVoiceAssistantIds(e.entity_id).some(e=>t.includes(e))))}),Object.values(o).forEach(e=>{e&&(C=C.filter(t=>e.has(t.entity_id)))});const S=(0,u.Kh)(i);for(const t of C){const s=this.hass.states[t.entity_id],n=s?.state===P.Hh,o=!0===s?.attributes.restored,r=t.device_id,d=t.area_id||i[r]?.area_id,$=d?a[d]:void 0,C=r?i[r]:void 0,k=!!t.hidden_by,M=!!t.disabled_by,A=t.readonly,L=s?.state&&s.state!==P.Hh;if(!(y&&L||m&&n||x&&o||_&&!k||v&&k||g&&M||h&&!M||w&&A))continue;const E=(l&&t?.labels||[]).map(e=>l.find(t=>t.label_id===e)).filter(e=>void 0!==e),H=(0,b.cx)(t,this.hass.devices,s),z=C?(0,u.xn)(C):void 0,Z=$?(0,p.A)($):void 0,q=z?S.has(z)&&Z?`${z} (${Z})`:z:void 0,W=this._getExposedEntityVoiceAssistantIds(t.entity_id);c.push({...t,entity:s,name:H||z||t.entity_id,device:z,area:Z,device_full:q,unavailable:n,restored:o,localized_platform:(0,O.p$)(e,t.platform),domain:(0,O.p$)(e,(0,f.m)(t.entity_id)),assistants:W,assistants_sortable_key:(0,te.HX)(W),status:e(o?"ui.panel.config.entities.picker.status.not_provided":n?"ui.panel.config.entities.picker.status.unavailable":M?"ui.panel.config.entities.picker.status.disabled":k?"ui.panel.config.entities.picker.status.hidden":A?"ui.panel.config.entities.picker.status.unmanageable":"ui.panel.config.entities.picker.status.available"),label_entries:E,available:e(n?"ui.panel.config.entities.picker.status.unavailable":"ui.panel.config.entities.picker.status.available"),enabled:e(M?"ui.panel.config.entities.picker.status.disabled":"ui.panel.config.entities.picker.status.enabled"),visible:e(k?"ui.panel.config.entities.picker.status.hidden":"ui.panel.config.entities.picker.status.visible")})}return{filteredEntities:c,filteredConfigEntry:$,filteredDomains:k}}),this._renderLabelItems=(e="")=>o.qy`${this._labels?.map(t=>{const i=this._selected.every(e=>this.hass.entities[e]?.labels.includes(t.label_id)),a=!i&&this._selected.some(e=>this.hass.entities[e]?.labels.includes(t.label_id));return o.qy`<ha-dropdown-item .slot="${e}" .value="${`label_${t.label_id}`}" .action="${i?"remove":"add"}"> <ha-checkbox slot="icon" .checked="${i}" .indeterminate="${a}"></ha-checkbox> <ha-label .color="${t.color}" .description="${t.description}"> ${t.icon?o.qy`<ha-icon slot="icon" .icon="${t.icon}"></ha-icon>`:o.s6} ${t.name} </ha-label> </ha-dropdown-item>`})} <wa-divider .slot="${e}"></wa-divider> <ha-dropdown-item .slot="${e}" value="label_create"> ${this.hass.localize("ui.panel.config.labels.add_label")} </ha-dropdown-item>`,this._fetchExposedEntities=async()=>{try{this._exposedEntities=(await(0,V.Ow)(this.hass)).exposed_entities}catch(e){console.error("Failed to fetch exposed entities",e),this._exposedEntities={}}},this._enableSelected=async()=>{(0,j.dk)(this,{title:this.hass.localize("ui.panel.config.entities.picker.enable_selected.confirm_title",{number:this._selected.length}),text:this.hass.localize("ui.panel.config.entities.picker.enable_selected.confirm_text"),confirmText:this.hass.localize("ui.common.enable"),dismissText:this.hass.localize("ui.common.cancel"),confirm:async()=>{let e=!1,t=0;const i=await Promise.allSettled(this._selected.map(async i=>{const a=await(0,F.G_)(this.hass,i,{disabled_by:null});a.require_restart&&(e=!0),a.reload_delay&&(t=Math.max(t,a.reload_delay))}));if((0,m.$)(i)){const e=(0,m.N)(i);(0,j.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.common.multiselect.failed",{number:e.length}),text:o.qy`<pre>
    ${e.map(e=>e.reason.message||e.reason.code||e.reason).join("\r\n")}</pre>`})}this._clearSelection(),e?(0,j.showAlertDialog)(this,{text:this.hass.localize("ui.dialogs.entity_registry.editor.enabled_restart_confirm")}):t&&(0,j.showAlertDialog)(this,{text:this.hass.localize("ui.dialogs.entity_registry.editor.enabled_delay_confirm",{delay:t})})}})},this._disableSelected=()=>{(0,j.dk)(this,{title:this.hass.localize("ui.panel.config.entities.picker.disable_selected.confirm_title",{number:this._selected.length}),text:this.hass.localize("ui.panel.config.entities.picker.disable_selected.confirm_text"),confirmText:this.hass.localize("ui.common.disable"),dismissText:this.hass.localize("ui.common.cancel"),confirm:()=>{this._selected.forEach(e=>(0,F.G_)(this.hass,e,{disabled_by:"user"})),this._clearSelection()}})},this._hideSelected=()=>{(0,j.dk)(this,{title:this.hass.localize("ui.panel.config.entities.picker.hide_selected.confirm_title",{number:this._selected.length}),text:this.hass.localize("ui.panel.config.entities.picker.hide_selected.confirm"),confirmText:this.hass.localize("ui.common.hide"),dismissText:this.hass.localize("ui.common.cancel"),confirm:()=>{this._selected.forEach(e=>(0,F.G_)(this.hass,e,{hidden_by:"user"})),this._clearSelection()}})},this._unhideSelected=()=>{this._selected.forEach(e=>(0,F.G_)(this.hass,e,{hidden_by:null})),this._clearSelection()},this._bulkCreateLabel=()=>{(0,ee.f)(this,{createEntry:async e=>{const t=await(0,B._9)(this.hass,e);this._bulkLabel(t.label_id,"add")}})},this._restoreEntityIdSelected=()=>{(0,U._)(this,this.hass,this._selected),this._clearSelection()},this._removeSelected=async()=>{if(!this._entities||!this.hass)return;const e=this._manifests?void 0:(0,O.fK)(this.hass),t=[...new Set(this._selected.map(e=>(0,f.m)(e)))].filter(e=>(0,Y.z)(e)),i=this._entries?void 0:this._loadConfigEntries(),a=t.map(e=>T.n[e].fetch(this.hass)),s=await Promise.all(a);let n=[];s.forEach(e=>{n=n.concat(e)}),e&&(this._manifests=await e),i&&await i;const o=this._selected.filter(e=>(0,_.c)(this.hass,e,this._manifests,this._entities,this._entries,n));(0,j.dk)(this,{title:this.hass.localize("ui.panel.config.entities.picker.delete_selected.confirm_title"),text:o.length===this._selected.length?this.hass.localize("ui.panel.config.entities.picker.delete_selected.confirm_text"):this.hass.localize("ui.panel.config.entities.picker.delete_selected.confirm_partly_text",{deletable:o.length,selected:this._selected.length}),confirmText:this.hass.localize("ui.common.delete"),dismissText:this.hass.localize("ui.common.cancel"),destructive:!0,confirm:()=>{o.forEach(e=>(0,_.$)(this.hass,e,this._manifests,this._entities,this._entries,n)),this._clearSelection()}})}}}(0,s.Cg)([(0,r.MZ)({attribute:!1})],ve.prototype,"hass",void 0),(0,s.Cg)([(0,r.MZ)({attribute:"is-wide",type:Boolean})],ve.prototype,"isWide",void 0),(0,s.Cg)([(0,r.MZ)({type:Boolean})],ve.prototype,"narrow",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],ve.prototype,"route",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],ve.prototype,"cloudStatus",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_entries",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_subEntries",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_manifests",void 0),(0,s.Cg)([(0,r.wk)(),(0,n.Fg)({context:W.ih,subscribe:!0})],ve.prototype,"_entities",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_entitiesWithoutUniqueId",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_exposedEntities",void 0),(0,s.Cg)([(0,r.wk)(),(0,h.I)({storage:"sessionStorage",key:"entities-table-search",state:!0,subscribe:!1})],ve.prototype,"_filter",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_searchParms",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_filters",void 0),(0,s.Cg)([(0,h.I)({storage:"sessionStorage",key:"entities-table-filters",state:!1,subscribe:!1})],ve.prototype,"_storageFilters",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_filteredItems",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_selected",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_expandedFilter",void 0),(0,s.Cg)([(0,n.Fg)({context:W.HD,subscribe:!0}),(0,r.wk)()],ve.prototype,"_labels",void 0),(0,s.Cg)([(0,r.wk)()],ve.prototype,"_entitySources",void 0),(0,s.Cg)([(0,h.I)({key:"entities-table-sort",state:!1,subscribe:!1})],ve.prototype,"_activeSorting",void 0),(0,s.Cg)([(0,h.I)({key:"entities-table-grouping",state:!1,subscribe:!1})],ve.prototype,"_activeGrouping",void 0),(0,s.Cg)([(0,h.I)({key:"entities-table-collapsed",state:!1,subscribe:!1})],ve.prototype,"_activeCollapsed",void 0),(0,s.Cg)([(0,h.I)({key:"entities-table-column-order",state:!1,subscribe:!1})],ve.prototype,"_activeColumnOrder",void 0),(0,s.Cg)([(0,h.I)({key:"entities-table-hidden-columns",state:!1,subscribe:!1})],ve.prototype,"_activeHiddenColumns",void 0),(0,s.Cg)([(0,r.P)("hass-tabs-subpage-data-table",!0)],ve.prototype,"_dataTable",void 0),ve=(0,s.Cg)([(0,r.EM)("ha-config-entities")],ve),a()}catch(e){a(e)}})},94017(e,t,i){i.a(e,async function(e,a){try{i.d(t,{HX:()=>c,MD:()=>r});i(74423),i(18111),i(61701),i(13579);var s=i(5124),n=i(75197),o=e([n]);function r(e,t,i,a,n,o){return{title:e("ui.panel.config.generic.headers.assistants"),type:"flex",defaultHidden:!o,sortable:!0,showNarrow:!0,minWidth:"112px",maxWidth:"112px",valueColumn:"assistants_sortable_key",template:e=>s.qy`${0!==e.assistants.length?s.qy`<div style="display:flex;gap:var(--ha-space-1)"> ${i.map(i=>{const s=!n?.[i]||n[i].includes(e.entity_id),o=e.manAssistants?.includes(i);return l(e.entity_id,e.assistants.includes(i),i,t,a,o,!s)})} </div>`:s.s6}`}}n=(o.then?(await o)():o)[0];const l=(e,t,i,a,n,o,r)=>{const l=n?.some(e=>e.assistants.includes(i));return t?s.qy`<voice-assistants-expose-assistant-icon .id="${e}" .assistant="${i}" .hass="${a}" .manual="${o??!1}" .unsupported="${r??!1}"></voice-assistants-expose-assistant-icon>`:l?s.qy`<div style="width:24px"></div>`:s.s6},c=e=>{let t=0;if(!e.length)return;return["conversation","cloud.alexa","cloud.google_assistant"].forEach((i,a)=>{e.includes(i)&&(t+=2**a)}),3===t?t=4:4===t&&(t=3),`${t}`};a()}catch(d){a(d)}})},19661(e,t,i){i.d(t,{V:()=>n});i(44114);var a=i(22786),s=i(36312);const n=(0,a.A)((e,t)=>{const i=[];return(0,s.x)(t.config,"conversation")&&i.push("conversation"),e?.logged_in&&(e.prefs.alexa_enabled&&i.push("cloud.alexa"),e.prefs.google_enabled&&i.push("cloud.google_assistant")),i})},75197(e,t,i){i.a(e,async function(e,t){try{var a=i(62826),s=i(5124),n=i(22441),o=i(89784),r=i(80880),l=i(14782),c=(i(67094),i(34127)),d=(i(61037),e([c]));c=(d.then?(await d)():d)[0];const h="M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z";class p extends s.WF{render(){if(!this.assistant||!l.aK[this.assistant])return s.s6;const e=(0,r.Y)(this.id)+"-"+this.assistant;return s.qy` <div class="container" id="${e}"> <voice-assistant-brand-icon style="${(0,o.W)({filter:this.manual?"grayscale(100%)":void 0})}" .voiceAssistantId="${this.assistant}" .hass="${this.hass}"> </voice-assistant-brand-icon> ${this.unsupported?s.qy` <ha-svg-icon .path="${h}" class="unsupported"></ha-svg-icon> `:s.s6} </div> <ha-tooltip for="${e}" placement="left" .disabled="${!this.unsupported&&!this.manual}"> ${this.unsupported?this.hass.localize("ui.panel.config.voice_assistants.expose.not_supported"):""} ${this.unsupported&&this.manual?s.qy`<br>`:s.s6} ${this.manual?this.hass.localize("ui.panel.config.voice_assistants.expose.manually_configured"):s.s6} </ha-tooltip> `}constructor(...e){super(...e),this.unsupported=!1,this.manual=!1}}p.styles=s.AH`.container{position:relative}.unsupported{color:var(--error-color);position:absolute;--mdc-icon-size:16px;right:10px;top:-7px;inset-inline-end:10px;inset-inline-start:initial}`,(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],p.prototype,"unsupported",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],p.prototype,"manual",void 0),(0,a.Cg)([(0,n.MZ)()],p.prototype,"assistant",void 0),p=(0,a.Cg)([(0,n.EM)("voice-assistants-expose-assistant-icon")],p),t()}catch(e){t(e)}})},85614(e,t,i){i.d(t,{i:()=>a});const a=async()=>{await Promise.all([i.e(69139),i.e(22309)]).then(i.bind(i,46974))}},22348(e,t,i){i.d(t,{V:()=>s});var a=i(37177);const s=e=>!!e&&a.n},37177(e,t,i){i.d(t,{n:()=>a});const a=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}};