UNPKG

iobroker.lovelace

Version:

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

1 lines 26.8 kB
export const __rspack_esm_id=8955;export const __rspack_esm_ids=[8955];export const __webpack_modules__={79286(e,t,i){i.a(e,async function(e,t){try{i(74423),i(44114),i(18111),i(22489),i(20116),i(7588),i(61701);var s=i(62826),a=i(61366),r=i(35211),o=i(78648),n=i(5124),h=i(22441),l=i(89784),d=i(22786),c=i(44537),p=i(1087),u=i(78649),g=i(52220),y=i(15638),v=i(28223),m=i(77423),_=i(22792),b=i(31422),$=i(53756),f=i(95350),k=i(5904),C=i(88555),I=i(54706),x=i(24367),M=i(19711),w=i(59653),D=i(44144),E=i(38508),F=(i(67094),i(73150),i(22099)),L=i(69404),V=e([a,E,F,L]);[a,E,F,L]=V.then?(await V)():V;const H="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",q="M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z",T="________",O="___create-new-entity___",A=e=>"entity"===e||"device"===e||"area"===e||"label"===e||"floor"===e;class z extends((0,I.E)(n.WF)){get _showEntityId(){return this.hass.userData?.showEntityIdPicker}willUpdate(e){super.willUpdate(e),this.hasUpdated||this._loadConfigEntries(),this._pendingEntityId&&e.has("hass")&&this.hass.states!==e.get("hass")?.states&&this.hass.states[this._pendingEntityId]&&(this._addTarget(this._pendingEntityId,"entity"),this._pendingEntityId=void 0)}render(){return this.addOnTop?n.qy` ${this._renderPicker()} ${this._renderItems()} `:n.qy` ${this._renderItems()} ${this._renderPicker()} `}_renderValueChips(){const e=this.value?.entity_id?(0,c.e)(this.value.entity_id):[],t=this.value?.device_id?(0,c.e)(this.value.device_id):[],i=this.value?.area_id?(0,c.e)(this.value.area_id):[],s=this.value?.floor_id?(0,c.e)(this.value.floor_id):[],a=this.value?.label_id?(0,c.e)(this.value.label_id):[];return e.length||t.length||i.length||s.length||a.length?n.qy` <div class="items"> ${s.length?s.map(e=>n.qy` <ha-target-picker-value-chip .hass="${this.hass}" type="floor" .itemId="${e}" @remove-target-item="${this._handleRemove}" @expand-target-item="${this._handleExpand}"></ha-target-picker-value-chip> `):n.s6} ${i.length?i.map(e=>n.qy` <ha-target-picker-value-chip .hass="${this.hass}" type="area" .itemId="${e}" @remove-target-item="${this._handleRemove}" @expand-target-item="${this._handleExpand}"></ha-target-picker-value-chip> `):n.s6} ${t.length?t.map(e=>n.qy` <ha-target-picker-value-chip .hass="${this.hass}" type="device" .itemId="${e}" @remove-target-item="${this._handleRemove}" @expand-target-item="${this._handleExpand}"></ha-target-picker-value-chip> `):n.s6} ${e.length?e.map(e=>n.qy` <ha-target-picker-value-chip .hass="${this.hass}" type="entity" .itemId="${e}" @remove-target-item="${this._handleRemove}" @expand-target-item="${this._handleExpand}"></ha-target-picker-value-chip> `):n.s6} ${a.length?a.map(e=>n.qy` <ha-target-picker-value-chip .hass="${this.hass}" type="label" .itemId="${e}" @remove-target-item="${this._handleRemove}" @expand-target-item="${this._handleExpand}"></ha-target-picker-value-chip> `):n.s6} </div> `:n.s6}_renderValueGroups(){const e=this.value?.entity_id?(0,c.e)(this.value.entity_id):[],t=this.value?.device_id?(0,c.e)(this.value.device_id):[],i=this.value?.area_id?(0,c.e)(this.value.area_id):[],s=this.value?.floor_id?(0,c.e)(this.value.floor_id):[],a=this.value?.label_id?(0,c.e)(this.value?.label_id):[];return e.length||t.length||i.length||s.length||a.length?n.qy` <div class="item-groups"> ${e.length?n.qy` <ha-target-picker-item-group @remove-target-item="${this._handleRemove}" @replace-target-item="${this._handleReplace}" type="entity" .hass="${this.hass}" .items="${{entity:e}}" .deviceFilter="${this.deviceFilter}" .entityFilter="${this.entityFilter}" .includeDomains="${this.includeDomains}" .includeDeviceClasses="${this.includeDeviceClasses}" .primaryEntitiesOnly="${this.primaryEntitiesOnly}"> </ha-target-picker-item-group> `:n.s6} ${t.length?n.qy` <ha-target-picker-item-group @remove-target-item="${this._handleRemove}" @replace-target-item="${this._handleReplace}" type="device" .hass="${this.hass}" .items="${{device:t}}" .deviceFilter="${this.deviceFilter}" .entityFilter="${this.entityFilter}" .includeDomains="${this.includeDomains}" .includeDeviceClasses="${this.includeDeviceClasses}" .primaryEntitiesOnly="${this.primaryEntitiesOnly}"> </ha-target-picker-item-group> `:n.s6} ${s.length||i.length?n.qy` <ha-target-picker-item-group @remove-target-item="${this._handleRemove}" @replace-target-item="${this._handleReplace}" type="area" .hass="${this.hass}" .items="${{floor:s,area:i}}" .deviceFilter="${this.deviceFilter}" .entityFilter="${this.entityFilter}" .includeDomains="${this.includeDomains}" .includeDeviceClasses="${this.includeDeviceClasses}" .primaryEntitiesOnly="${this.primaryEntitiesOnly}"> </ha-target-picker-item-group> `:n.s6} ${a.length?n.qy` <ha-target-picker-item-group @remove-target-item="${this._handleRemove}" @replace-target-item="${this._handleReplace}" type="label" .hass="${this.hass}" .items="${{label:a}}" .deviceFilter="${this.deviceFilter}" .entityFilter="${this.entityFilter}" .includeDomains="${this.includeDomains}" .includeDeviceClasses="${this.includeDeviceClasses}" .primaryEntitiesOnly="${this.primaryEntitiesOnly}"> </ha-target-picker-item-group> `:n.s6} </div> `:n.s6}_renderItems(){return n.qy` ${this.compact?this._renderValueChips():this._renderValueGroups()} `}_renderPicker(){const e=[{id:"entity",label:this.hass.localize("ui.components.target-picker.type.entities")},{id:"device",label:this.hass.localize("ui.components.target-picker.type.devices")},{id:"area",label:this.hass.localize("ui.components.target-picker.type.areas")},"separator",{id:"label",label:this.hass.localize("ui.components.target-picker.type.labels")}];return n.qy` <div class="add-target-wrapper"> <ha-generic-picker .hass="${this.hass}" .disabled="${this.disabled}" .autofocus="${this.autofocus}" .helper="${this.helper}" .sections="${e}" .notFoundLabel="${this._noTargetFoundLabel}" .emptyLabel="${this.hass.localize("ui.components.target-picker.no_targets")}" .sectionTitleFunction="${this._sectionTitleFunction}" .selectedSection="${this._selectedSection}" .popoverAnchor="${this._replaceTargetAnchor}" .rowRenderer="${this._renderRow}" .getItems="${this._getItems}" @value-changed="${this._targetPicked}" @picker-closed="${this._handlePickerClosed}" .addButtonLabel="${this.hass.localize("ui.components.target-picker.add_target")}" .getAdditionalItems="${this._getAdditionalItems}"> </ha-generic-picker> </div> `}_targetPicked(e){e.stopPropagation();const t=e.detail.value;if(t.startsWith(O))return void this._createNewDomainElement(t.substring(O.length));const[i,s]=t.split(T);s&&A(i)&&(this._replaceTarget?this._replaceTargetItem(this._replaceTarget,{type:i,id:s}):this._addTarget(s,i))}_replaceTargetItem(e,t){const i=this._replaceTargetInValue(this.value,e,t);i!==this.value&&(0,p.r)(this,"value-changed",{value:i})}_addTarget(e,t){const i=this._addTargetToValue(this.value,{type:t,id:e});i!==this.value&&((0,p.r)(this,"value-changed",{value:i}),this.shadowRoot?.querySelector(`ha-target-picker-item-group[type='${this._newTarget?.type}']`)?.removeAttribute("collapsed"))}_replaceTargetInValue(e,t,i){if(!e||t.type===i.type&&t.id===i.id)return e;const s=this._removeItem(e,t.type,t.id);return this._addTargetToValue(s,i)}_addTargetToValue(e,t){const i=`${t.type}_id`;return"entity_id"!==i||(0,u.n)(t.id)?e?.[i]&&(0,c.e)(e[i]).includes(t.id)?e:e?{...e,[i]:e[i]?[...(0,c.e)(e[i]),t.id]:t.id}:{[i]:t.id}:e}_handleRemove(e){const{type:t,id:i}=e.detail;(0,p.r)(this,"value-changed",{value:this._removeItem(this.value,t,i)})}_handleExpand(e){const t=e.detail.type,i=e.detail.id,s=[],a=[],r=[];if("floor"===t)Object.values(this.hass.areas).forEach(e=>{e.floor_id===i&&!this.value.area_id?.includes(e.area_id)&&(0,C.Kx)(e,this.hass.devices,this.hass.entities,this.deviceFilter,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&s.push(e.area_id)});else if("area"===t)Object.values(this.hass.devices).forEach(e=>{e.area_id===i&&!this.value.device_id?.includes(e.id)&&(0,C.Ly)(e,this.hass.entities,this.deviceFilter,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&a.push(e.id)}),Object.values(this.hass.entities).forEach(e=>{e.area_id===i&&!this.value.entity_id?.includes(e.entity_id)&&(0,C.YK)(e,!1,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&r.push(e.entity_id)});else if("device"===t)Object.values(this.hass.entities).forEach(e=>{e.device_id===i&&!this.value.entity_id?.includes(e.entity_id)&&(0,C.YK)(e,!1,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&r.push(e.entity_id)});else{if("label"!==t)return;Object.values(this.hass.areas).forEach(e=>{e.labels.includes(i)&&!this.value.area_id?.includes(e.area_id)&&(0,C.Kx)(e,this.hass.devices,this.hass.entities,this.deviceFilter,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&s.push(e.area_id)}),Object.values(this.hass.devices).forEach(e=>{e.labels.includes(i)&&!this.value.device_id?.includes(e.id)&&(0,C.Ly)(e,this.hass.entities,this.deviceFilter,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&a.push(e.id)}),Object.values(this.hass.entities).forEach(e=>{e.labels.includes(i)&&!this.value.entity_id?.includes(e.entity_id)&&(0,C.YK)(e,!0,this.includeDomains,this.includeDeviceClasses,this.hass.states,this.entityFilter)&&r.push(e.entity_id)})}let o=this.value;r.length&&(o=this._addItems(o,"entity_id",r)),a.length&&(o=this._addItems(o,"device_id",a)),s.length&&(o=this._addItems(o,"area_id",s)),o=this._removeItem(o,t,i),(0,p.r)(this,"value-changed",{value:o})}_handleReplace(e){e.stopPropagation(),this._replaceTargetAnchor=e.composedPath().find(e=>e instanceof HTMLElement&&"HA-TARGET-PICKER-ITEM-ROW"===e.tagName);const t=e.detail.type;if("floor"===t)this._selectedSection="area";else{if("entity"!==t&&"device"!==t&&"area"!==t&&"label"!==t)return;this._selectedSection=t}this._replaceTarget={type:t,id:e.detail.id},this._picker?.open(void 0,{selectedValue:`${t}${T}${e.detail.id}`})}_handlePickerClosed(){this._replaceTarget&&(this._selectedSection=void 0),this._replaceTarget=void 0,this._replaceTargetAnchor=void 0}_addItems(e,t,i){return{...e,[t]:e[t]?(0,c.e)(e[t]).concat(i):i}}_removeItem(e,t,i){const s=`${t}_id`,a=(0,c.e)(e[s]).filter(e=>String(e)!==i);if(a.length)return{...e,[s]:a};const r={...e};return delete r[s],Object.keys(r).length?r:void 0}_filterGroup(e,t,i,s,a=!0){const r=this._fuseIndexes[e](t);return a?(0,w.x)(t,i,s,e=>e.id,r):(0,w.C)(t,i,s,r,{ignoreLocation:!0})}async _loadConfigEntries(){const e=await(0,m.VN)(this.hass);this._configEntryLookup=Object.fromEntries(e.map(e=>[e.entry_id,e]))}constructor(...e){super(...e),this.compact=!1,this.disabled=!1,this.addOnTop=!1,this._configEntryLookup={},this._getDevicesMemoized=(0,d.A)(b.oG),this._getLabelsMemoized=(0,d.A)(k.I),this._getEntitiesMemoized=(0,d.A)($.w),this._getAreasAndFloorsMemoized=(0,d.A)(v.bi),this._fuseIndexes={area:(0,d.A)(e=>this._createFuseIndex(e,v.Z2)),entity:(0,d.A)(e=>this._createFuseIndex(e,$.t)),device:(0,d.A)(e=>this._createFuseIndex(e,b._o)),label:(0,d.A)(e=>this._createFuseIndex(e,k.u))},this._createFuseIndex=(e,t)=>o.A.createIndex(t,e),this._createNewDomainElement=e=>{(0,M.$)(this,{domain:e,dialogClosedCallback:e=>{e.entityId&&(this.hass.states[e.entityId]?this._addTarget(e.entityId,"entity"):this._pendingEntityId=e.entityId)}})},this._sectionTitleFunction=({firstIndex:e,lastIndex:t,firstItem:i,secondItem:s,itemsCount:a})=>{if(void 0===i||void 0===s||"string"==typeof i||"string"==typeof s&&"padding"!==s||0===e&&t===a-1)return;const r=(0,C.OJ)(i),o="area"===r||"floor"===r?"areas":"entity"===r?"entities":r&&"empty"!==r?`${r}s`:void 0;return o?this.hass.localize(`ui.components.target-picker.type.${o}`):void 0},this._getItems=(e,t)=>(this._selectedSection=t,this._getItemsMemoized(this.hass.localize,this.entityFilter,this.deviceFilter,this.includeDomains,this.includeDeviceClasses,this.value,this._replaceTarget,e,this._configEntryLookup,this._selectedSection)),this._getItemsMemoized=(0,d.A)((e,t,i,s,a,r,o,n,h,l)=>{const p="entity"===o?.type?o.id:void 0,u="device"===o?.type?o.id:void 0,g="area"===o?.type?o.id:void 0,y="floor"===o?.type?o.id:void 0,m="label"===o?.type?o.id:void 0,_=[];if(!l||"entity"===l){let i=this._getEntitiesMemoized(this.hass,s,void 0,t,a,void 0,void 0,r?.entity_id?p?(0,c.e)(r.entity_id).filter(e=>e!==p):(0,c.e)(r.entity_id):void 0,p?`entity${T}${p}`:void 0,`entity${T}`).sort(this._sortBySortingLabel);n&&(i=this._filterGroup("entity",i,n,$.t)),!l&&i.length&&_.push(e("ui.components.target-picker.type.entities")),_.push(...i)}if(!l||"device"===l){let o=this._getDevicesMemoized(this.hass,h,s,void 0,a,i,t,r?.device_id?u?(0,c.e)(r.device_id).filter(e=>e!==u):(0,c.e)(r.device_id):void 0,u,`device${T}`).sort(this._sortBySortingLabel);n&&(o=this._filterGroup("device",o,n,b._o)),!l&&o.length&&_.push(e("ui.components.target-picker.type.devices")),_.push(...o)}if(!l||"area"===l){let o=this._getAreasAndFloorsMemoized(this.hass.states,this.hass.floors,this.hass.areas,this.hass.devices,this.hass.entities,(0,d.A)(e=>[e.type,e.id].join(T)),s,void 0,a,i,t,r?.area_id?g?(0,c.e)(r.area_id).filter(e=>e!==g):(0,c.e)(r.area_id):void 0,r?.floor_id?y?(0,c.e)(r.floor_id).filter(e=>e!==y):(0,c.e)(r.floor_id):void 0);n&&(o=this._filterGroup("area",o,n,v.Z2,!1)),!l&&o.length&&_.push(e("ui.components.target-picker.type.areas")),_.push(...o.map((e,t)=>{const i=o[t+1];return!i||"area"===e.type&&"floor"===i.type?{...e,last:!0}:e}))}if(!l||"label"===l){let o=this._getLabelsMemoized(this.hass.states,this.hass.areas,this.hass.devices,this.hass.entities,this._labelRegistry,s,void 0,a,i,t,r?.label_id?m?(0,c.e)(r.label_id).filter(e=>e!==m):(0,c.e)(r.label_id):void 0,`label${T}`).sort(this._sortBySortingLabel);n&&(o=this._filterGroup("label",o,n,k.u)),!l&&o.length&&_.push(e("ui.components.target-picker.type.labels")),_.push(...o)}return _}),this._getAdditionalItems=()=>this._getCreateItems(this.createDomains),this._getCreateItems=(0,d.A)(e=>e?.length?e.map(e=>{const t=this.hass.localize("ui.components.entity.entity-picker.create_helper",{domain:(0,x.z)(e)?this.hass.localize(`ui.panel.config.helpers.types.${e}`):(0,f.p$)(this.hass.localize,e)});return{id:O+e,primary:t,secondary:this.hass.localize("ui.components.entity.entity-picker.new_entity"),icon_path:H}}):[]),this._renderRow=(e,t)=>{if(!e)return n.s6;const i=(0,C.OJ)(e);let s=!1,a=!1,r=!1;return"area"!==i&&"floor"!==i||(a=(0,y.qC)(this.hass.language,this.hass.translationMetadata.translations),s="area"===i&&!!e.area?.floor_id),"entity"===i&&(r=!!this._showEntityId),n.qy` <ha-combo-box-item id="${`list-item-${t}`}" tabindex="-1" .type="${"empty"===i?"text":"button"}" class="${"empty"===i?"empty":""}" style="${"area"===e.type&&s?"--md-list-item-leading-space: var(--ha-space-12);":""}"> ${"area"===e.type&&s?n.qy` <ha-tree-indicator style="${(0,l.W)({width:"var(--ha-space-12)",position:"absolute",top:"0",left:a?void 0:"var(--ha-space-1)",right:a?"var(--ha-space-1)":void 0,transform:a?"scaleX(-1)":""})}" .end="${e.last}" slot="start"></ha-tree-indicator> `:n.s6} ${e.icon?n.qy`<ha-icon slot="start" .icon="${e.icon}"></ha-icon>`:e.icon_path?n.qy`<ha-svg-icon slot="start" .path="${e.icon_path}"></ha-svg-icon>`:"entity"===i&&e.stateObj?n.qy` <state-badge slot="start" .stateObj="${e.stateObj}" .hass="${this.hass}"></state-badge> `:"device"===i&&e.domain?n.qy` <img slot="start" alt="" crossorigin="anonymous" referrerpolicy="no-referrer" src="${(0,D.MR)({domain:e.domain,type:"icon",darkOptimized:this.hass.themes.darkMode},this.hass.auth.data.hassUrl)}"> `:"floor"===i?n.qy`<ha-floor-icon slot="start" .floor="${e.floor}"></ha-floor-icon>`:"area"===i?n.qy`<ha-svg-icon slot="start" .path="${e.icon_path||q}"></ha-svg-icon>`:n.s6} <span slot="headline">${e.primary}</span> ${e.secondary?n.qy`<span slot="supporting-text">${e.secondary}</span>`:n.s6} ${e.stateObj&&r?n.qy` <span slot="supporting-text" class="code"> ${e.stateObj?.entity_id} </span> `:n.s6} ${!e.domain_name||"entity"===i&&r?n.s6:n.qy` <div slot="trailing-supporting-text" class="domain"> ${e.domain_name} </div> `} </ha-combo-box-item> `},this._noTargetFoundLabel=e=>this.hass.localize("ui.components.target-picker.no_target_found",{term:n.qy`<b>‘${e}’</b>`}),this._sortBySortingLabel=(e,t)=>(0,g.SH)(e.sorting_label,t.sorting_label,this.hass?.locale.language??navigator.language)}}z.styles=n.AH`.add-target-wrapper{display:flex;justify-content:flex-start;margin-top:var(--ha-space-3)}ha-generic-picker{width:100%}.items{z-index:2;display:flex;flex-wrap:wrap;padding:var(--ha-space-2) 0;gap:var(--ha-space-2)}.item-groups{overflow:hidden;border:2px solid var(--divider-color);border-radius:var(--ha-border-radius-lg)}`,(0,s.Cg)([(0,h.MZ)({attribute:!1})],z.prototype,"hass",void 0),(0,s.Cg)([(0,h.MZ)({attribute:!1})],z.prototype,"value",void 0),(0,s.Cg)([(0,h.MZ)()],z.prototype,"helper",void 0),(0,s.Cg)([(0,h.MZ)({type:Boolean,reflect:!0})],z.prototype,"compact",void 0),(0,s.Cg)([(0,h.MZ)({attribute:!1})],z.prototype,"createDomains",void 0),(0,s.Cg)([(0,h.MZ)({type:Boolean,attribute:"primary-entities-only"})],z.prototype,"primaryEntitiesOnly",void 0),(0,s.Cg)([(0,h.MZ)({type:Array,attribute:"include-domains"})],z.prototype,"includeDomains",void 0),(0,s.Cg)([(0,h.MZ)({type:Array,attribute:"include-device-classes"})],z.prototype,"includeDeviceClasses",void 0),(0,s.Cg)([(0,h.MZ)({attribute:!1})],z.prototype,"deviceFilter",void 0),(0,s.Cg)([(0,h.MZ)({attribute:!1})],z.prototype,"entityFilter",void 0),(0,s.Cg)([(0,h.MZ)({type:Boolean,reflect:!0})],z.prototype,"disabled",void 0),(0,s.Cg)([(0,h.MZ)({attribute:"add-on-top",type:Boolean})],z.prototype,"addOnTop",void 0),(0,s.Cg)([(0,h.wk)()],z.prototype,"_selectedSection",void 0),(0,s.Cg)([(0,h.wk)()],z.prototype,"_replaceTarget",void 0),(0,s.Cg)([(0,h.wk)()],z.prototype,"_replaceTargetAnchor",void 0),(0,s.Cg)([(0,h.wk)()],z.prototype,"_configEntryLookup",void 0),(0,s.Cg)([(0,h.wk)(),(0,r.Fg)({context:_.HD,subscribe:!0})],z.prototype,"_labelRegistry",void 0),(0,s.Cg)([(0,h.P)("ha-generic-picker")],z.prototype,"_picker",void 0),(0,s.Cg)([(0,h.wk)()],z.prototype,"_pendingEntityId",void 0),z=(0,s.Cg)([(0,h.EM)("ha-target-picker")],z),t()}catch(e){t(e)}})},89081(e,t,i){i.d(t,{D:()=>r});var s=i(1087);const a=()=>Promise.all([i.e(8697),i.e(686)]).then(i.bind(i,25563)),r=(e,t)=>(0,s.r)(e,"show-dialog",{dialogTag:"ha-dialog-target-details",dialogImport:a,dialogParams:t})},22099(e,t,i){i.a(e,async function(e,t){try{i(18111),i(7588),i(61701);var s=i(62826),a=i(5124),r=i(22441),o=(i(11382),i(50723),i(92288)),n=e([o]);o=(n.then?(await n)():n)[0];class h extends a.WF{render(){let e=0;return Object.values(this.items).forEach(t=>{t&&(e+=t.length)}),a.qy`<ha-expansion-panel .expanded="${!this.collapsed}" left-chevron @expanded-changed="${this._expandedChanged}"> <div slot="header" class="heading"> ${this.hass.localize(`ui.components.target-picker.selected.${this.type}`,{count:e})} </div> <ha-list-base> ${Object.entries(this.items).map(([e,t])=>t?t.map(t=>a.qy`<ha-target-picker-item-row .hass="${this.hass}" .type="${e}" .itemId="${t}" .deviceFilter="${this.deviceFilter}" .entityFilter="${this.entityFilter}" .includeDomains="${this.includeDomains}" .includeDeviceClasses="${this.includeDeviceClasses}" .primaryEntitiesOnly="${this.primaryEntitiesOnly}"></ha-target-picker-item-row>`):a.s6)} </ha-list-base> </ha-expansion-panel>`}_expandedChanged(e){this.collapsed=!e.detail.expanded}constructor(...e){super(...e),this.collapsed=!1}}h.styles=a.AH`:host{display:block;--expansion-panel-content-padding:0}ha-expansion-panel::part(summary){background-color:var(--ha-color-surface-low);padding:var(--ha-space-1) var(--ha-space-2);font-weight:var(--ha-font-weight-bold);color:var(--secondary-text-color);display:flex;justify-content:space-between;min-height:unset}`,(0,s.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,s.Cg)([(0,r.MZ)()],h.prototype,"type",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"items",void 0),(0,s.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],h.prototype,"collapsed",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"deviceFilter",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"entityFilter",void 0),(0,s.Cg)([(0,r.MZ)({type:Array,attribute:"include-domains"})],h.prototype,"includeDomains",void 0),(0,s.Cg)([(0,r.MZ)({type:Array,attribute:"include-device-classes"})],h.prototype,"includeDeviceClasses",void 0),(0,s.Cg)([(0,r.MZ)({type:Boolean,attribute:"primary-entities-only"})],h.prototype,"primaryEntitiesOnly",void 0),h=(0,s.Cg)([(0,r.EM)("ha-target-picker-item-group")],h),t()}catch(e){t(e)}})},69404(e,t,i){i.a(e,async function(e,t){try{i(18111),i(20116);var s=i(62826),a=i(10058),r=i(35211),o=i(5124),n=i(22441),h=i(22786),l=i(78870),d=i(79468),c=i(1087),p=i(37981),u=i(71727),g=i(28978),y=i(80880),v=i(77423),m=i(22792),_=i(95350),b=i(44144),$=i(59174),f=i(18198),k=(i(47680),i(26300)),C=i(93367),I=i(34127),x=e([a,$,k,C,I]);[a,$,k,C,I]=x.then?(await x)():x;const M="M3 6H21V4H3C1.9 4 1 4.9 1 6V18C1 19.1 1.9 20 3 20H7V18H3V6M13 12H9V13.78C8.39 14.33 8 15.11 8 16C8 16.89 8.39 17.67 9 18.22V20H13V18.22C13.61 17.67 14 16.88 14 16S13.61 14.33 13 13.78V12M11 17.5C10.17 17.5 9.5 16.83 9.5 16S10.17 14.5 11 14.5 12.5 15.17 12.5 16 11.83 17.5 11 17.5M22 8H16C15.5 8 15 8.5 15 9V19C15 19.5 15.5 20 16 20H22C22.5 20 23 19.5 23 19V9C23 8.5 22.5 8 22 8M21 18H17V10H21V18Z",w="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z",D="M17.63,5.84C17.27,5.33 16.67,5 16,5H5A2,2 0 0,0 3,7V17A2,2 0 0,0 5,19H16C16.67,19 17.27,18.66 17.63,18.15L22,12L17.63,5.84Z",E="M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z",F="M18.17,12L15,8.83L16.41,7.41L21,12L16.41,16.58L15,15.17L18.17,12M5.83,12L9,15.17L7.59,16.59L3,12L7.59,7.42L9,8.83L5.83,12Z";class L extends o.WF{render(){const{name:e,iconPath:t,fallbackIconPath:i,stateObject:s,color:a}=this._itemData(this.type,this.itemId);return o.qy` <wa-tag pill with-remove class="${this.type}" style="${a?`--color: rgb(${a});`:""}" @wa-remove="${this._removeItem}"> <div class="icon"> ${t?o.qy`<ha-icon .icon="${t}"></ha-icon>`:this._iconImg?o.qy`<img alt="${this._domainName||""}" width="24" crossorigin="anonymous" referrerpolicy="no-referrer" src="${this._iconImg}">`:i?o.qy`<ha-svg-icon .path="${i}"></ha-svg-icon>`:s?o.qy`<ha-state-icon .stateObj="${s}"></ha-state-icon>`:o.s6} </div> <span class="name"> ${e} </span> ${"entity"===this.type?o.s6:o.qy`<ha-tooltip .for="expand-${(0,y.Y)(this.itemId)}">${this.hass.localize(`ui.components.target-picker.expand_${this.type}_id`)} </ha-tooltip> <ha-icon-button class="expand-btn mdc-chip__icon mdc-chip__icon--trailing" .label="${this.hass.localize("ui.components.target-picker.expand")}" .path="${F}" hide-title .id="expand-${(0,y.Y)(this.itemId)}" .type="${this.type}" @click="${this._handleExpand}"></ha-icon-button>`} </wa-tag> `}_setDomainName(e){this._domainName=(0,_.p$)(this.hass.localize,e)}async _getDeviceDomain(e){try{const t=(await(0,v.Vx)(this.hass,e)).config_entry.domain;this._iconImg=(0,b.MR)({domain:t,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl),this._setDomainName(t)}catch{}}_removeItem(e){e.stopPropagation(),(0,c.r)(this,"remove-target-item",{type:this.type,id:this.itemId})}_handleExpand(e){e.stopPropagation(),(0,c.r)(this,"expand-target-item",{type:this.type,id:this.itemId})}constructor(...e){super(...e),this._itemData=(0,h.A)((e,t)=>{if("floor"===e){const e=this.hass.floors?.[t];return{name:e?.name||t,iconPath:e?.icon,fallbackIconPath:e?(0,f.Si)(e):w}}if("area"===e){const e=this.hass.areas?.[t];return{name:e?.name||t,iconPath:e?.icon,fallbackIconPath:E}}if("device"===e){const e=this.hass.devices?.[t];return e.primary_config_entry&&this._getDeviceDomain(e.primary_config_entry),{name:e?(0,p.T)(e,this.hass.localize,this.hass.states):t,fallbackIconPath:M}}if("entity"===e){this._setDomainName((0,u.m)(t));const e=this.hass.states[t];return{name:(0,g.u)(e)||t,stateObject:e}}const i=this._labelRegistry.find(e=>e.label_id===t);let s=i?.color?(0,l.MP)(i.color):void 0;if(s?.startsWith("var(")){s=getComputedStyle(this).getPropertyValue(s.substring(4,s.length-1))}return s?.startsWith("#")&&(s=(0,d.xp)(s).join(",")),{name:i?.name||t,iconPath:i?.icon,fallbackIconPath:D,color:s}})}}L.styles=o.AH`:host{display:inline-block;max-width:100%}wa-tag{background-color:var(--card-background-color);border-width:var(--ha-border-width-md);padding-inline-start:0;overflow:hidden;max-width:100%;color:var(--primary-text-color)}wa-tag.entity{border-color:var(--ha-color-green-80);--background-color:var(--ha-color-green-80)}wa-tag.device{border-color:var(--ha-color-primary-80);--background-color:var(--ha-color-primary-80)}wa-tag.area{border-color:var(--ha-color-orange-80);--background-color:var(--ha-color-orange-80)}wa-tag.label{border-color:var(--color);--background-color:var(--color);--icon-primary-color:var(--primary-text-color)}.name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon{background-color:var(--background-color);border-radius:var(--ha-border-radius-circle);padding:var(--ha-space-2) var(--ha-space-1);display:flex}.expand-btn{--ha-icon-button-size:16px;--mdc-icon-size:14px}`,(0,s.Cg)([(0,n.MZ)({attribute:!1})],L.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)()],L.prototype,"type",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"item-id"})],L.prototype,"itemId",void 0),(0,s.Cg)([(0,n.wk)()],L.prototype,"_domainName",void 0),(0,s.Cg)([(0,n.wk)()],L.prototype,"_iconImg",void 0),(0,s.Cg)([(0,n.wk)(),(0,r.Fg)({context:m.HD,subscribe:!0})],L.prototype,"_labelRegistry",void 0),L=(0,s.Cg)([(0,n.EM)("ha-target-picker-value-chip")],L),t()}catch(e){t(e)}})},54706(e,t,i){i.d(t,{E:()=>r});i(74423),i(18111),i(13579);var s=i(62826),a=i(22441);const r=e=>{class t extends e{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const e=this.__unsubs.pop();e instanceof Promise?e.then(e=>e()):e()}this.__unsubs=void 0}}updated(e){if(super.updated(e),e.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const t of e.keys())if(this.hassSubscribeRequiredHostProps.includes(t))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){void 0===this.__unsubs&&this.isConnected&&void 0!==this.hass&&!this.hassSubscribeRequiredHostProps?.some(e=>void 0===this[e])&&(this.__unsubs=this.hassSubscribe())}}return(0,s.Cg)([(0,a.MZ)({attribute:!1})],t.prototype,"hass",void 0),t}}};