UNPKG

iobroker.lovelace

Version:

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

2 lines 36.2 kB
/*! For license information please see 38076.b15a8361fcf451f4.js.LICENSE.txt */ "use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[38076],{90409:function(t,e,i){i.d(e,{A:function(){return a}});i(18111),i(61701);function a(t){const e=t.split(":").map(Number);return 3600*e[0]+60*e[1]+e[2]}},27167:function(t,e,i){i.d(e,{A:function(){return s}});const a=t=>t<10?`0${t}`:t;function s(t){const e=Math.floor(t/3600),i=Math.floor(t%3600/60),s=Math.floor(t%3600%60);return e>0?`${e}:${a(i)}:${a(s)}`:i>0?`${i}:${a(s)}`:s>0?""+s:null}},81816:function(t,e,i){i.d(e,{aH:function(){return n},cx:function(){return r},es:function(){return l}});var a=i(37981),s=i(28978),o=i(79461);const n=(t,e,i)=>{const a=e[t.entity_id];return a?r(a,i):(0,s.u)(t)},r=(t,e,i)=>{const n=t.name||("original_name"in t&&null!=t.original_name?String(t.original_name):void 0),r=t.device_id?e[t.device_id]:void 0;if(!r)return n||(i?(0,s.u)(i):void 0);const l=(0,a.xn)(r);return l!==n?l&&n&&(0,o.p)(n,l)||n:void 0},l=(t,e,i)=>!n(t,e,i)},74705:function(t,e,i){i.d(e,{Bj:function(){return p},Cf:function(){return u},uU:function(){return c}});i(18111),i(81148),i(22489),i(61701),i(13579),i(62953);if(66649!=i.j)var a=i(44537);var s=i(15638),o=i(65522),n=i(37981),r=i(81816),l=i(55931),d=i(28978),h=i(28455);const c=(t,e,i,s,o,n,l)=>{var h;if("string"==typeof e)return e;if(!e)return(0,d.u)(t);let c=(0,a.e)(e);const p=null!==(h=null==l?void 0:l.separator)&&void 0!==h?h:" ";if(c.every(t=>"text"===t.type))return c.map(t=>t.text).join(p);if((0,r.es)(t,i,s)){c.some(t=>"device"===t.type)||(c=c.map(t=>"entity"===t.type?{type:"device"}:t))}const g=u(t,c,i,s,o,n);return 1===g.length?g[0]||"":g.filter(t=>t).join(p)},u=(t,e,i,a,s,d)=>{const{device:c,area:u,floor:p}=(0,h.ln)(t,i,a,s,d);return e.map(e=>{switch(e.type){case"entity":return(0,r.aH)(t,i,a);case"device":return c?(0,n.xn)(c):void 0;case"area":return u?(0,o.A)(u):void 0;case"floor":return p?(0,l.X)(p):void 0;case"text":return e.text;default:return""}})},p=(t,e)=>{const[i,a,o]=u(e,[{type:"entity"},{type:"device"},{type:"area"}],t.entities,t.devices,t.areas,t.floors),n=(0,s.qC)(t.language,t.translationMetadata.translations);return{primary:i||a||e.entity_id,secondary:[o,i?a:void 0].filter(Boolean).join(n?" ◂ ":" ▸ ")||void 0}}},89300:function(t,e,i){i.a(t,async function(t,e){try{i(62953);var a=i(40445),s=i(5124),o=i(67576),n=i(6412),r=i(18350),l=i(65829),d=(i(67094),t([r,l]));[r,l]=d.then?(await d)():d;let h,c,u,p,g,b,v=t=>t;const m="M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06M13,17V15H11V17H13M13,13V7H11V13H13Z",y="M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z";class _ extends s.WF{render(){const t=this.progress||this._result?"accent":this.appearance;return(0,s.qy)(h||(h=v` <ha-button .appearance="${0}" .disabled="${0}" .loading="${0}" .variant="${0}" class="${0}"> ${0} <slot>${0}</slot> </ha-button> ${0} `),t,this.disabled,this.progress,"success"===this._result?"success":"error"===this._result?"danger":this.variant,(0,n.H)({result:!!this._result,success:"success"===this._result,error:"error"===this._result}),this.iconPath?(0,s.qy)(c||(c=v`<ha-svg-icon .path="${0}" slot="start"></ha-svg-icon>`),this.iconPath):s.s6,this.label,this._result?(0,s.qy)(u||(u=v` <div class="progress"> ${0} </div> `),"success"===this._result?(0,s.qy)(p||(p=v`<ha-svg-icon .path="${0}"></ha-svg-icon>`),y):"error"===this._result?(0,s.qy)(g||(g=v`<ha-svg-icon .path="${0}"></ha-svg-icon>`),m):s.s6):s.s6)}actionSuccess(){this._setResult("success")}actionError(){this._setResult("error")}_setResult(t){this._result=t,setTimeout(()=>{this._result=void 0},2e3)}constructor(...t){super(...t),this.disabled=!1,this.progress=!1,this.appearance="accent",this.variant="brand"}}_.styles=(0,s.AH)(b||(b=v`:host{outline:0;display:inline-block;position:relative}:host([progress]){pointer-events:none}.progress{bottom:0;display:flex;justify-content:center;align-items:center;position:absolute;top:0;width:100%}ha-button{width:100%}ha-button.result::part(caret),ha-button.result::part(end),ha-button.result::part(label),ha-button.result::part(spinner),ha-button.result::part(start){visibility:hidden}:host([appearance=brand]) ha-svg-icon{color:var(--white-color)}`)),(0,a.Cg)([(0,o.MZ)()],_.prototype,"label",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],_.prototype,"disabled",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],_.prototype,"progress",void 0),(0,a.Cg)([(0,o.MZ)()],_.prototype,"appearance",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],_.prototype,"iconPath",void 0),(0,a.Cg)([(0,o.MZ)()],_.prototype,"variant",void 0),(0,a.Cg)([(0,o.wk)()],_.prototype,"_result",void 0),_=(0,a.Cg)([(0,o.EM)("ha-progress-button")],_),e()}catch(h){e(h)}})},82474:function(t,e,i){i.a(t,async function(t,e){try{i(13609),i(18111),i(20116),i(61701),i(3362),i(62953);var a=i(40445),s=i(5124),o=i(67576),n=i(22786),r=i(1087),l=i(74705),d=i(78649),h=i(53756),c=i(95350),u=i(24367),p=i(19711),g=(i(75064),i(38508)),b=(i(47680),i(67094),i(74281)),v=t([g,b]);[g,b]=v.then?(await v)():v;let m,y,_,f,C,w,$,E,x,M,k,I,S,Z,q,L=t=>t;const z="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",O="M11,13.5V21.5H3V13.5H11M12,2L17.5,11H6.5L12,2M17.5,13C20,13 22,15 22,17.5C22,20 20,22 17.5,22C15,22 13,20 13,17.5C13,15 15,13 17.5,13Z",j="___create-new-entity___";class B extends s.WF{willUpdate(t){var e;this._pendingEntityId&&t.has("hass")&&this.hass.states!==(null===(e=t.get("hass"))||void 0===e?void 0:e.states)&&this.hass.states[this._pendingEntityId]&&(this._setValue(this._pendingEntityId),this._pendingEntityId=void 0)}firstUpdated(t){super.firstUpdated(t),this.hass.loadBackendTranslation("title")}_findExtraOption(t){var e;return t?null===(e=this.extraOptions)||void 0===e?void 0:e.find(e=>e.id===t):void 0}_renderExtraOptionStart(t){const e=t.entity_id?this.hass.states[t.entity_id]:void 0;return e?(0,s.qy)(m||(m=L` <state-badge slot="start" .stateObj="${0}" .hass="${0}"></state-badge> `),e,this.hass):t.icon_path?(0,s.qy)(y||(y=L` <ha-svg-icon slot="start" .path="${0}" style="margin:0 4px"></ha-svg-icon> `),t.icon_path):t.icon?(0,s.qy)(_||(_=L`<ha-icon slot="start" .icon="${0}"></ha-icon>`),t.icon):s.s6}get _showEntityId(){var t;return this.showEntityId||(null===(t=this.hass.userData)||void 0===t?void 0:t.showEntityIdPicker)}_shouldHideClearIcon(){var t;return!(null===(t=this._findExtraOption(this.value))||void 0===t||!t.hide_clear)}render(){var t,e;const i=null!==(t=this.placeholder)&&void 0!==t?t:this.hass.localize("ui.components.entity.entity-picker.placeholder");return(0,s.qy)(f||(f=L` <ha-generic-picker .hass="${0}" .disabled="${0}" .autofocus="${0}" .allowCustomValue="${0}" .required="${0}" .label="${0}" .placeholder="${0}" .helper="${0}" .value="${0}" .searchLabel="${0}" .notFoundLabel="${0}" .rowRenderer="${0}" .getItems="${0}" .getAdditionalItems="${0}" .hideClearIcon="${0}" .searchFn="${0}" .valueRenderer="${0}" .searchKeys="${0}" use-top-label .addButtonLabel="${0}" .unknownItemText="${0}" @value-changed="${0}"> </ha-generic-picker> `),this.hass,this.disabled,this.autofocus,this.allowCustomEntity,this.required,this.label,i,this.helper,this.addButton?void 0:this.value,this.searchLabel,this._notFoundLabel,this._rowRenderer,this._getItems,this._getAdditionalItems,this.hideClearIcon||this._shouldHideClearIcon(),this._searchFn,this._valueRenderer,h.t,this.addButton?null!==(e=this.addButtonLabel)&&void 0!==e?e:this.hass.localize("ui.components.entity.entity-picker.add"):void 0,this.hass.localize("ui.components.entity.entity-picker.unknown"),this._valueChanged)}async open(){var t;await this.updateComplete,await(null===(t=this._picker)||void 0===t?void 0:t.open())}_valueChanged(t){t.stopPropagation();const e=t.detail.value;if(e){if(e.startsWith(j)){const t=e.substring(j.length);return void(0,p.$)(this,{domain:t,dialogClosedCallback:t=>{t.entityId&&(this.hass.states[t.entityId]?this._setValue(t.entityId):this._pendingEntityId=t.entityId)}})}((0,d.n)(e)||this._findExtraOption(e))&&this._setValue(e)}else this._setValue(void 0)}_setValue(t){this.value=t,(0,r.r)(this,"value-changed",{value:t}),(0,r.r)(this,"change")}constructor(...t){super(...t),this.autofocus=!1,this.disabled=!1,this.required=!1,this.showEntityId=!1,this.hideClearIcon=!1,this.addButton=!1,this._valueRenderer=t=>{const e=t||"",i=this._findExtraOption(e);if(i)return(0,s.qy)(C||(C=L` ${0} <span slot="headline">${0}</span> ${0} `),this._renderExtraOptionStart(i),i.primary,i.secondary?(0,s.qy)(w||(w=L`<span slot="supporting-text">${0}</span>`),i.secondary):s.s6);const a=this.hass.states[e];if(!a)return(0,s.qy)($||($=L` <ha-svg-icon slot="start" .path="${0}" style="margin:0 4px"></ha-svg-icon> <span slot="headline">${0}</span> `),O,e);const{primary:o,secondary:n}=(0,l.Bj)(this.hass,a);return(0,s.qy)(E||(E=L` <state-badge .hass="${0}" .stateObj="${0}" slot="start"></state-badge> <span slot="headline">${0}</span> <span slot="supporting-text">${0}</span> `),this.hass,a,o,n)},this._rowRenderer=(t,e)=>{const i=this._showEntityId;return(0,s.qy)(x||(x=L` <ha-combo-box-item type="button" compact="compact" .borderTop="${0}"> ${0} <span slot="headline">${0}</span> ${0} ${0} ${0} </ha-combo-box-item> `),0!==e,t.icon_path?(0,s.qy)(M||(M=L` <ha-svg-icon slot="start" style="margin:0 4px" .path="${0}"></ha-svg-icon> `),t.icon_path):(0,s.qy)(k||(k=L` <state-badge slot="start" .stateObj="${0}" .hass="${0}"></state-badge> `),t.stateObj,this.hass),t.primary,t.secondary?(0,s.qy)(I||(I=L`<span slot="supporting-text">${0}</span>`),t.secondary):s.s6,t.stateObj&&i?(0,s.qy)(S||(S=L` <span slot="supporting-text" class="code"> ${0} </span> `),t.stateObj.entity_id):s.s6,t.domain_name&&!i?(0,s.qy)(Z||(Z=L` <div slot="trailing-supporting-text" class="domain"> ${0} </div> `),t.domain_name):s.s6)},this._getAdditionalItems=()=>this._getCreateItems(this.hass.localize,this.createDomains),this._getCreateItems=(0,n.A)((t,e)=>null!=e&&e.length?(this.hass.loadFragmentTranslation("config"),e.map(e=>{const i=t("ui.components.entity.entity-picker.create_helper",{domain:(0,u.z)(e)?t(`ui.panel.config.helpers.types.${e}`)||e:(0,c.p$)(t,e)});return{id:j+e,primary:i,secondary:t("ui.components.entity.entity-picker.new_entity"),icon_path:z}})):[]),this._getEntitiesMemoized=(0,n.A)(h.w),this._getItems=()=>{var t;const e=this._getEntitiesMemoized(this.hass,this.includeDomains,this.excludeDomains,this.entityFilter,this.includeDeviceClasses,this.includeUnitOfMeasurement,this.includeEntities,this.excludeEntities,this.value);if(null!==(t=this.extraOptions)&&void 0!==t&&t.length){return[...this.extraOptions.map(t=>Object.assign(Object.assign({},t),{},{stateObj:t.entity_id?this.hass.states[t.entity_id]:void 0})),...e]}return e},this._searchFn=(t,e)=>{const i=e.findIndex(e=>{var i;return(null===(i=e.stateObj)||void 0===i?void 0:i.entity_id)===t});if(-1===i)return e;const[a]=e.splice(i,1);return e.unshift(a),e},this._notFoundLabel=t=>this.hass.localize("ui.components.entity.entity-picker.no_match",{term:(0,s.qy)(q||(q=L`<b>‘${0}’</b>`),t)})}}(0,a.Cg)([(0,o.MZ)({attribute:!1})],B.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],B.prototype,"autofocus",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],B.prototype,"disabled",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],B.prototype,"required",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,attribute:"allow-custom-entity"})],B.prototype,"allowCustomEntity",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,attribute:"show-entity-id"})],B.prototype,"showEntityId",void 0),(0,a.Cg)([(0,o.MZ)()],B.prototype,"label",void 0),(0,a.Cg)([(0,o.MZ)()],B.prototype,"value",void 0),(0,a.Cg)([(0,o.MZ)()],B.prototype,"helper",void 0),(0,a.Cg)([(0,o.MZ)()],B.prototype,"placeholder",void 0),(0,a.Cg)([(0,o.MZ)({type:String,attribute:"search-label"})],B.prototype,"searchLabel",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],B.prototype,"createDomains",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"include-domains"})],B.prototype,"includeDomains",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-domains"})],B.prototype,"excludeDomains",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"include-device-classes"})],B.prototype,"includeDeviceClasses",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"include-unit-of-measurement"})],B.prototype,"includeUnitOfMeasurement",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"include-entities"})],B.prototype,"includeEntities",void 0),(0,a.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-entities"})],B.prototype,"excludeEntities",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],B.prototype,"entityFilter",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],B.prototype,"extraOptions",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"hide-clear-icon",type:Boolean})],B.prototype,"hideClearIcon",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"add-button",type:Boolean})],B.prototype,"addButton",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"add-button-label"})],B.prototype,"addButtonLabel",void 0),(0,a.Cg)([(0,o.P)("ha-generic-picker")],B.prototype,"_picker",void 0),(0,a.Cg)([(0,o.wk)()],B.prototype,"_pendingEntityId",void 0),B=(0,a.Cg)([(0,o.EM)("ha-entity-picker")],B),e()}catch(m){e(m)}})},58234:function(t,e,i){i.a(t,async function(t,e){try{i(18111),i(20116),i(62953);var a=i(40445),s=i(5124),o=i(67576),n=i(6412),r=i(23832),l=i(27167),d=i(69093),h=i(28978),c=i(15090),u=i(22675),p=i(49141),g=(i(58388),i(93367)),b=t([g]);g=(b.then?(await b)():b)[0];let v,m,y,_,f,C=t=>t;const w="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z",$=["alarm_control_panel","device_tracker","person"],E=(t,e)=>(0,r.g)($)(t)&&(0,r.g)(c.vB[t])(e)?`${t}.${e}`:null;class x extends s.WF{connectedCallback(){super.connectedCallback(),this._connected=!0,this._startInterval(this.state)}disconnectedCallback(){super.disconnectedCallback(),this._connected=!1,this._clearInterval()}render(){var t,e;const i=this.state;if(!i)return(0,s.qy)(v||(v=C` <ha-label-badge class="warning" label="${0}" description="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-label-badge> `),this.hass.localize("state_badge.default.error"),this.hass.localize("state_badge.default.entity_not_found"),w);const a=(0,d.t)(i),o=null===(t=this.hass)||void 0===t?void 0:t.entities[i.entity_id],r=this.icon||this._computeShowIcon(a,i,o),l=this.icon?"":this.image?this.image:i.attributes.entity_picture_local||i.attributes.entity_picture,c=l||r?void 0:this._computeValue(a,i,o);return(0,s.qy)(m||(m=C` <ha-label-badge class="${0}" .image="${0}" .label="${0}" .description="${0}"> ${0} ${0} </ha-label-badge> `),(0,n.H)({[a]:!0,"has-unit_of_measurement":"unit_of_measurement"in i.attributes}),l,this._computeLabel(a,i,this._timerTimeRemaining),this.showName?null!==(e=this.name)&&void 0!==e?e:(0,h.u)(i):void 0,!l&&r?(0,s.qy)(y||(y=C`<ha-state-icon .icon="${0}" .stateObj="${0}"></ha-state-icon>`),this.icon,i):"",!c||l||r?"":(0,s.qy)(_||(_=C`<span class="${0}">${0}</span>`),c&&c.length>4?"big":"",c))}updated(t){super.updated(t),this._connected&&t.has("state")&&this._startInterval(this.state)}_computeValue(t,e,i){var a;switch(t){case"alarm_control_panel":case"binary_sensor":case"device_tracker":case"person":case"scene":case"sun":case"timer":return null;case"sensor":if("moon"===(null==i?void 0:i.platform))return null;default:return e.state===u.Hh||e.state===u.HV?"—":null===(a=this.hass.formatEntityStateToParts(e).find(t=>"value"===t.type))||void 0===a?void 0:a.value}}_computeShowIcon(t,e,i){if(e.state===u.Hh)return!1;switch(t){case"alarm_control_panel":case"binary_sensor":case"device_tracker":case"person":case"scene":case"sun":case"timer":return!0;case"sensor":return"moon"===(null==i?void 0:i.platform);default:return!1}}_computeLabel(t,e,i=0){var a;if(e.state===u.Hh||e.state===u.HV)return this.hass.localize(`state_badge.default.${e.state}`);const s=E(t,e.state);return s?this.hass.localize(`state_badge.${s}`):"person"===t||"device_tracker"===t?e.state:"timer"===t?(0,l.A)(i):(null===(a=this.hass.formatEntityStateToParts(e).find(t=>"unit"===t.type))||void 0===a?void 0:a.value)||null}_clearInterval(){this._updateRemaining&&(clearInterval(this._updateRemaining),this._updateRemaining=void 0)}_startInterval(t){this._clearInterval(),t&&"timer"===(0,d.t)(t)&&(this._calculateTimerRemaining(t),"active"===t.state&&(this._updateRemaining=window.setInterval(()=>this._calculateTimerRemaining(this.state),1e3)))}_calculateTimerRemaining(t){this._timerTimeRemaining=(0,p.ls)(t)}constructor(...t){super(...t),this.showName=!1}}x.styles=(0,s.AH)(f||(f=C`:host{cursor:pointer}.big{font-size:var(--ha-font-size-xs)}ha-label-badge{--ha-label-badge-color:var(--label-badge-red)}ha-label-badge.has-unit_of_measurement{--ha-label-badge-label-text-transform:none}ha-label-badge.binary_sensor{--ha-label-badge-color:var(--label-badge-blue)}.red{--ha-label-badge-color:var(--label-badge-red)}.blue{--ha-label-badge-color:var(--label-badge-blue)}.green{--ha-label-badge-color:var(--label-badge-green)}.yellow{--ha-label-badge-color:var(--label-badge-yellow)}.grey{--ha-label-badge-color:var(--label-badge-grey)}.warning{--ha-label-badge-color:var(--label-badge-yellow)}`)),(0,a.Cg)([(0,o.MZ)({attribute:!1})],x.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],x.prototype,"state",void 0),(0,a.Cg)([(0,o.MZ)()],x.prototype,"name",void 0),(0,a.Cg)([(0,o.MZ)()],x.prototype,"icon",void 0),(0,a.Cg)([(0,o.MZ)()],x.prototype,"image",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"show-name",type:Boolean})],x.prototype,"showName",void 0),(0,a.Cg)([(0,o.wk)()],x.prototype,"_timerTimeRemaining",void 0),x=(0,a.Cg)([(0,o.EM)("ha-state-label-badge")],x),e()}catch(v){e(v)}})},58388:function(t,e,i){i(89463);var a=i(40445),s=i(5124),o=i(67576),n=i(6412);let r,l,d,h,c=t=>t;class u extends s.WF{render(){return(0,s.qy)(r||(r=c` <div class="badge-container"> <div class="label-badge" id="badge"> <div class="value"> <slot></slot> </div> ${0} </div> ${0} </div> `),this.label?(0,s.qy)(l||(l=c` <div class="${0}"> <span>${0}</span> </div> `),(0,n.H)({label:!0,big:this.label.length>5}),this.label):"",this.description?(0,s.qy)(d||(d=c`<div class="title">${0}</div>`),this.description):"")}static get styles(){return[(0,s.AH)(h||(h=c`.badge-container{display:inline-block;text-align:center;vertical-align:top;padding:var(--ha-label-badge-padding,0 0 0 0)}.label-badge{position:relative;display:block;margin:0 auto;width:var(--ha-label-badge-size,2.5em);text-align:center;height:var(--ha-label-badge-size,2.5em);line-height:var(--ha-label-badge-size, 2.5em);font-size:var(--ha-label-badge-font-size, 1.5em);border-radius:var(--ha-label-badge-border-radius,50%);border:.1em solid var(--ha-label-badge-color,var(--primary-color));color:var(--label-badge-text-color,#4c4c4c);white-space:nowrap;background-color:var(--label-badge-background-color,#fff);background-size:cover;transition:border .3s ease-in-out}.label-badge .label.big span{font-size:90%;padding:10% 12% 7% 12%}.label-badge .value{font-size:90%;overflow:hidden;text-overflow:ellipsis}.label-badge .label{position:absolute;bottom:-1em;left:-.2em;right:-.2em;line-height:1em;font-size:.5em}.label-badge .label span{box-sizing:border-box;max-width:100%;display:inline-block;background-color:var(--ha-label-badge-color,var(--primary-color));color:var(--ha-label-badge-label-color,#fff);border-radius:var(--ha-border-radius-lg);padding:9% 16% 8% 16%;font-weight:var(--ha-font-weight-medium);overflow:hidden;text-transform:uppercase;text-overflow:ellipsis;transition:background-color .3s ease-in-out;text-transform:var(--ha-label-badge-label-text-transform,uppercase)}.badge-container .title{margin-top:1em;font-size:var(--ha-label-badge-title-font-size, .9em);width:var(--ha-label-badge-title-width,5em);font-weight:var(--ha-label-badge-title-font-weight,var(--ha-font-weight-normal));overflow:hidden;text-overflow:ellipsis;line-height:normal}`))]}updated(t){super.updated(t),t.has("image")&&(this.shadowRoot.getElementById("badge").style.backgroundImage=this.image?`url(${this.image})`:"")}}(0,a.Cg)([(0,o.MZ)()],u.prototype,"label",void 0),(0,a.Cg)([(0,o.MZ)()],u.prototype,"description",void 0),(0,a.Cg)([(0,o.MZ)()],u.prototype,"image",void 0),u=(0,a.Cg)([(0,o.EM)("ha-label-badge")],u)},85938:function(t,e,i){i(18111),i(22489),i(3362),i(46058),i(62953);var a=i(40445),s=i(5124),o=i(67576),n=i(1087);let r,l=t=>t;class d extends s.WF{updated(t){t.has("disabled")&&(this.disabled?this._destroySortable():this._createSortable())}disconnectedCallback(){super.disconnectedCallback(),this._shouldBeDestroy=!0,setTimeout(()=>{this._shouldBeDestroy&&(this._destroySortable(),this._shouldBeDestroy=!1)},1)}connectedCallback(){super.connectedCallback(),this._shouldBeDestroy=!1,this.hasUpdated&&!this.disabled&&this._createSortable()}createRenderRoot(){return this}render(){return this.noStyle?s.s6:(0,s.qy)(r||(r=l` <style>.sortable-fallback{display:none!important}.sortable-ghost{box-shadow:0 0 0 2px var(--primary-color);background:rgba(var(--rgb-primary-color),.25);border-radius:var(--ha-border-radius-sm);opacity:.4}.sortable-drag{border-radius:var(--ha-border-radius-sm);opacity:1;background:var(--card-background-color);box-shadow:0px 4px 8px 3px #00000026;cursor:grabbing}</style> `))}async _createSortable(){if(this._sortable)return;const t=this.children[0];if(!t)return;const e=(await Promise.all([i.e(85283),i.e(70322)]).then(i.bind(i,80745))).default,a=Object.assign(Object.assign({scroll:!0,forceAutoScrollFallback:!0,scrollSpeed:20,animation:150},this.options),{},{onChoose:this._handleChoose,onStart:this._handleStart,onEnd:this._handleEnd,onUpdate:this._handleUpdate,onAdd:this._handleAdd,onRemove:this._handleRemove});this.draggableSelector&&(a.draggable=this.draggableSelector),this.handleSelector&&(a.handle=this.handleSelector),void 0!==this.invertSwap&&(a.invertSwap=this.invertSwap),this.group&&(a.group=this.group),this.filter&&(a.filter=this.filter),this._sortable=new e(t,a)}_destroySortable(){this._sortable&&(this._sortable.destroy(),this._sortable=void 0)}constructor(...t){super(...t),this.disabled=!1,this.noStyle=!1,this.invertSwap=!1,this.rollback=!0,this._shouldBeDestroy=!1,this._handleUpdate=t=>{(0,n.r)(this,"item-moved",{newIndex:t.newIndex,oldIndex:t.oldIndex})},this._handleAdd=t=>{(0,n.r)(this,"item-added",{index:t.newIndex,data:t.item.sortableData,item:t.item})},this._handleRemove=t=>{(0,n.r)(this,"item-removed",{index:t.oldIndex})},this._handleEnd=async t=>{(0,n.r)(this,"drag-end"),this.rollback&&t.item.placeholder&&(t.item.placeholder.replaceWith(t.item),delete t.item.placeholder)},this._handleStart=()=>{(0,n.r)(this,"drag-start")},this._handleChoose=t=>{this.rollback&&(t.item.placeholder=document.createComment("sort-placeholder"),t.item.after(t.item.placeholder))}}}(0,a.Cg)([(0,o.MZ)({type:Boolean})],d.prototype,"disabled",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-style"})],d.prototype,"noStyle",void 0),(0,a.Cg)([(0,o.MZ)({type:String,attribute:"draggable-selector"})],d.prototype,"draggableSelector",void 0),(0,a.Cg)([(0,o.MZ)({type:String,attribute:"handle-selector"})],d.prototype,"handleSelector",void 0),(0,a.Cg)([(0,o.MZ)({type:String,attribute:"filter"})],d.prototype,"filter",void 0),(0,a.Cg)([(0,o.MZ)({type:String})],d.prototype,"group",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,attribute:"invert-swap"})],d.prototype,"invertSwap",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],d.prototype,"options",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],d.prototype,"rollback",void 0),d=(0,a.Cg)([(0,o.EM)("ha-sortable")],d)},53756:function(t,e,i){i.d(e,{t:function(){return l},w:function(){return d}});i(74423),i(18111),i(22489),i(61701),i(62953);var a=i(71727),s=i(74705),o=i(28978),n=i(15638),r=i(95350);const l=[{name:"search_labels.entityName",weight:10},{name:"search_labels.friendlyName",weight:8},{name:"search_labels.deviceName",weight:7},{name:"search_labels.areaName",weight:6},{name:"search_labels.domainName",weight:6},{name:"search_labels.entityId",weight:3}],d=(t,e,i,l,d,h,c,u,p,g="")=>{let b,v=Object.keys(t.states);return c&&(v=v.filter(t=>c.includes(t))),u&&(v=v.filter(t=>!u.includes(t))),e&&(v=v.filter(t=>e.includes((0,a.m)(t)))),i&&(v=v.filter(t=>!i.includes((0,a.m)(t)))),b=v.map(e=>{const i=t.states[e],l=(0,o.u)(i),[d,h,c]=(0,s.Cf)(i,[{type:"entity"},{type:"device"},{type:"area"}],t.entities,t.devices,t.areas,t.floors),u=(0,r.p$)(t.localize,(0,a.m)(e)),p=(0,n.qC)(t.language,t.translationMetadata.translations),b=d||h||e,v=[c,d?h:void 0].filter(Boolean).join(p?" ◂ ":" ▸ ");return{id:`${g}${e}`,primary:b,secondary:v,domain_name:u,sorting_label:[b,v].filter(Boolean).join("_"),search_labels:{entityName:d||null,deviceName:h||null,areaName:c||null,domainName:u||null,friendlyName:l||null,entityId:e},stateObj:i}}),d&&(b=b.filter(t=>{var e;return t.id===p||(null===(e=t.stateObj)||void 0===e?void 0:e.attributes.device_class)&&d.includes(t.stateObj.attributes.device_class)})),h&&(b=b.filter(t=>{var e;return t.id===p||(null===(e=t.stateObj)||void 0===e?void 0:e.attributes.unit_of_measurement)&&h.includes(t.stateObj.attributes.unit_of_measurement)})),l&&(b=b.filter(t=>t.id===p||t.stateObj&&l(t.stateObj))),b}},49141:function(t,e,i){i.d(e,{CR:function(){return n},PF:function(){return h},kL:function(){return o},ls:function(){return d},pZ:function(){return l},r9:function(){return r}});var a=i(90409),s=i(27167);const o=t=>t.callWS({type:"timer/list"}),n=(t,e)=>t.callWS(Object.assign({type:"timer/create"},e)),r=(t,e,i)=>t.callWS(Object.assign({type:"timer/update",timer_id:e},i)),l=(t,e)=>t.callWS({type:"timer/delete",timer_id:e}),d=t=>{if(!t.attributes.remaining)return;let e=(0,a.A)(t.attributes.remaining);if("active"===t.state){const i=(new Date).getTime(),a=new Date(t.attributes.finishes_at).getTime();e=Math.max((a-i)/1e3,0)}return e},h=(t,e,i)=>{if(!e)return null;if("idle"===e.state||0===i)return t.formatEntityState(e);let a=(0,s.A)(i||0)||"0";return"paused"===e.state&&(a=`${a} (${t.formatEntityState(e)})`),a}},19711:function(t,e,i){i.d(e,{$:function(){return o}});i(3362),i(62953);var a=i(1087);const s=()=>Promise.all([i.e(80131),i.e(70183),i.e(47677)]).then(i.bind(i,79029)),o=(t,e)=>{(0,a.r)(t,"show-dialog",{dialogTag:"dialog-helper-detail",dialogImport:s,dialogParams:e})}},84043:function(t,e,i){i.a(t,async function(t,a){try{i.d(e,{d:function(){return p}});i(17642),i(58004),i(33853),i(45876),i(32475),i(15024),i(31698),i(62953);var s=i(98743),o=(i(16732),i(9578)),n=i(51007),r=i(37696),l=i(10792),d=i(14097),h=i(34128),c=t([s,o,n,r,l,d]);[s,o,n,r,l,d]=c.then?(await c)():c;const u=new Set(["conditional","icon","image","service-button","state-badge","state-icon","state-label"]),p=t=>("action-button"===t.type&&(t=Object.assign(Object.assign({},t),{},{type:"service-button"})),(0,h.Ue)("element",t,u));a()}catch(u){a(u)}})},39039:function(t,e,i){i.d(e,{r:function(){return a}});i(16280);class a extends Error{constructor(t,e,i){super(t),this.name="GUISupportError",this.warnings=e,this.errors=i}}},91322:function(t,e,i){i.a(t,async function(t,a){try{i.d(e,{m:function(){return S}});i(18111),i(7588),i(61701),i(3362),i(62953);var s=i(40445),o=i(5124),n=i(67576),r=i(74985),l=i(1087),d=i(78978),h=i(19459),c=i(38962),u=i(65829),p=i(10763),g=i(39039),b=t([c,u,p]);[c,u,p]=b.then?(await b)():b;let v,m,y,_,f,C,w,$,E,x,M,k,I=t=>t;class S extends o.WF{get value(){return this._config}set value(t){this._config&&(0,h.b)(t,this._config,{compareSymbols:!0})||(this._config=t,this._errors=void 0,this._setConfig())}_setConfig(){if(!this._errors&&!this._yamlError)try{this._updateConfigElement()}catch(t){this._errors=[t.message]}this.updateComplete.then(()=>{var t;(0,l.r)(this,"config-changed",{config:this.value,error:null===(t=this._errors)||void 0===t?void 0:t.join(", "),guiModeAvailable:!(this.hasWarning||this.hasError||!1===this._guiSupported)})})}get hasWarning(){return void 0!==this._warnings&&this._warnings.length>0}get hasError(){return this._yamlError||void 0!==this._errors&&this._errors.length>0}get GUImode(){return this._guiMode}set GUImode(t){this._guiMode=t,this.updateComplete.then(()=>{(0,l.r)(this,"GUImode-changed",{guiMode:t,guiModeAvailable:!(this.hasWarning||this.hasError||!1===this._guiSupported)})})}toggleMode(){var t;this.GUImode||(null===(t=this._yamlEditor)||void 0===t||t.disableCodeEditorFullscreen());this.GUImode=!this.GUImode}focusYamlEditor(){var t;null!==(t=this._configElement)&&void 0!==t&&t.focusYamlEditor&&this._configElement.focusYamlEditor(),this._yamlEditor&&this._yamlEditor.focus()}async getConfigElement(){}async getConfigForm(){}renderConfigElement(){return(0,o.qy)(v||(v=I`${0}`),this._configElement)}_renderSubElement(){return(0,o.qy)(m||(m=I` <hui-sub-element-editor .hass="${0}" .config="${0}" @go-back="${0}" @config-changed="${0}"> </hui-sub-element-editor> `),this.hass,this._subElementEditorConfig,this._goBack,this._subElementChanged)}_subElementChanged(t){var e,i;t.stopPropagation();const a=t.detail.config;this._subElementEditorConfig=Object.assign(Object.assign({},this._subElementEditorConfig),{},{elementConfig:a}),null===(e=(i=this._subElementEditorConfig).saveElementConfig)||void 0===e||e.call(i,a)}_goBack(t){t.stopPropagation(),this._subElementEditorConfig=void 0}async _editSubElement(t){t.stopPropagation(),await Promise.all([i.e(92769),i.e(3283),i.e(80131),i.e(70183),i.e(67218),i.e(98470),i.e(99788),i.e(58303),i.e(21543),i.e(66283),i.e(46601),i.e(94956),i.e(26092),i.e(39005),i.e(8851),i.e(59704),i.e(25322),i.e(55392),i.e(71572),i.e(55076),i.e(36332),i.e(77563),i.e(15862),i.e(99143),i.e(97500),i.e(12009),i.e(66990),i.e(20282),i.e(87857),i.e(81804),i.e(92363),i.e(53387)]).then(i.bind(i,81287)),this._subElementEditorConfig={type:t.detail.type,elementConfig:t.detail.config,context:t.detail.context,saveElementConfig:t.detail.saveConfig}}render(){var t;return(0,o.qy)(y||(y=I` <div class="wrapper"> ${0} ${0} ${0} ${0} </div> `),this.GUImode?(0,o.qy)(_||(_=I` <div class="gui-editor" @edit-sub-element="${0}"> ${0} </div> `),this._editSubElement,this._loading?(0,o.qy)(f||(f=I` <ha-spinner class="center margin-bot"></ha-spinner> `)):(0,r.P)(this._subElementEditorConfig?this._renderSubElement():this.renderConfigElement())):(0,o.qy)(C||(C=I` <div class="yaml-editor"> <ha-yaml-editor .defaultValue="${0}" autofocus .inDialog="${0}" @value-changed="${0}" @keydown="${0}" dir="ltr"></ha-yaml-editor> </div> `),this._config,this.inDialog,this._handleYAMLChanged,this._ignoreKeydown),!1===this._guiSupported&&!1===this._loading?(0,o.qy)(w||(w=I` <ha-alert alert-type="info" .title="${0}"> ${0} <br> ${0} </ha-alert> `),this.hass.localize("ui.errors.config.visual_editor_not_supported"),this.hass.localize("ui.errors.config.visual_editor_not_supported_reason_type"),this.hass.localize("ui.errors.config.edit_in_yaml_supported")):o.s6,null!==(t=this._errors)&&void 0!==t&&t.length?(0,o.qy)($||($=I` <ha-alert alert-type="error" .title="${0}"> <ul> ${0} </ul> </ha-alert> `),this.hass.localize("ui.errors.config.configuration_error"),this._errors.map(t=>(0,o.qy)(E||(E=I`<li>${0}</li>`),t))):o.s6,this.hasWarning?(0,o.qy)(x||(x=I` <ha-alert alert-type="warning" .title="${0}"> <ul> ${0} </ul> ${0} </ha-alert> `),this.hass.localize("ui.errors.config.visual_editor_not_supported"),this._warnings.map(t=>(0,o.qy)(M||(M=I`<li>${0}</li>`),t)),this.hass.localize("ui.errors.config.edit_in_yaml_supported")):o.s6)}updated(t){super.updated(t),this._configElement&&t.has("hass")&&(this._configElement.hass=this.hass),this._configElement&&"lovelace"in this._configElement&&t.has("lovelace")&&(this._configElement.lovelace=this.lovelace),this._configElement&&t.has("context")&&(this._configElement.context=this.context)}_handleUIConfigChanged(t){if(t.stopPropagation(),!this.GUImode)return;const e=t.detail.config;Object.keys(e).forEach(t=>{void 0===e[t]&&delete e[t]}),this.value=e}_handleYAMLChanged(t){t.stopPropagation(),t.detail.isValid?(this._config=t.detail.value,this._errors=void 0,this._yamlError=!1):this._yamlError=!0,this._setConfig()}async unloadConfigElement(){this._configElement=void 0,this._guiSupported=void 0}async loadConfigElement(){if(this._configElement)return;let t=await this.getConfigElement();if(!t){const e=await this.getConfigForm();if(e){await i.e(15106).then(i.bind(i,15737)),t=document.createElement("hui-form-editor");const{schema:a,assertConfig:s,computeLabel:o,computeHelper:n}=e;t.schema=a,o&&(t.computeLabel=o),n&&(t.computeHelper=n),s&&(t.assertConfig=s)}}t?(t.hass=this.hass,"lovelace"in t&&(t.lovelace=this.lovelace),t.context=this.context,t.addEventListener("config-changed",t=>this._handleUIConfigChanged(t)),this._guiSupported=!0):this._guiSupported=!1,this._configElement=t}async _updateConfigElement(){if(!this.value)return;const t=++this._loadCount;try{if(this._errors=void 0,this._warnings=void 0,await this.loadConfigElement(),this._configElement)try{this._configElement.setConfig(this.value)}catch(i){const t=(0,d._)(this.hass,i);throw new g.r("Config is not supported",t.warnings,t.errors)}else this._guiSupported=!1,this.GUImode=!1}catch(i){if(t!==this._loadCount)return;var e;if(i instanceof g.r)this._warnings=null!==(e=i.warnings)&&void 0!==e?e:[i.message],this._errors=i.errors||void 0;else this._errors=[i.message];this.GUImode=!1}finally{this._loading=!1}}_ignoreKeydown(t){t.stopPropagation()}constructor(...t){super(...t),this.inDialog=!1,this._guiMode=!0,this._loading=!1,this._yamlError=!1,this._loadCount=0}}S.styles=(0,o.AH)(k||(k=I`:host{display:flex}.wrapper{width:100%}.gui-editor,.yaml-editor{padding:8px 0px}ha-code-editor{--code-mirror-max-height:calc(100vh - 245px)}ha-spinner{display:block;margin:auto}`)),(0,s.Cg)([(0,n.MZ)({attribute:!1})],S.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],S.prototype,"lovelace",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],S.prototype,"context",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean,attribute:"in-dialog"})],S.prototype,"inDialog",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_config",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_configElement",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_subElementEditorConfig",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_guiMode",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_errors",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_warnings",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_guiSupported",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_loading",void 0),(0,s.Cg)([(0,n.wk)()],S.prototype,"_yamlError",void 0),(0,s.Cg)([(0,n.P)("ha-yaml-editor")],S.prototype,"_yamlEditor",void 0),a()}catch(v){a(v)}})},63277:function(t,e,i){i.a(t,async function(t,a){try{i.d(e,{U:function(){return l}});i(16280),i(3362);var s=i(40445),o=i(67576),n=i(91322),r=t([n]);n=(r.then?(await r)():r)[0];class l extends n.m{get configElementType(){return this.value?this.value.type:void 0}async loadConfigElement(){if(this._configElementType!==this.configElementType){if(this.unloadConfigElement(),!this.configElementType)throw new Error(this.hass.localize("ui.errors.config.no_type_provided"));this._configElementType=this.configElementType}return super.loadConfigElement()}}(0,s.Cg)([(0,o.wk)()],l.prototype,"_configElementType",void 0),a()}catch(l){a(l)}})},88170:function(t,e,i){i.d(e,{_:function(){return a}});i(18111),i(61701);function a(t){return t.map(t=>"string"==typeof t?{entity:t}:t)}},84698:function(t,e,i){i.d(e,{H:function(){return s}});var a=i(63533);const s=(0,a.Ik)({type:(0,a.Yj)(),view_layout:(0,a.bz)(),layout_options:(0,a.bz)(),grid_options:(0,a.bz)(),visibility:(0,a.bz)(),disabled:(0,a.lq)((0,a.zM)())})},74985:function(t,e,i){i.d(e,{P:function(){return r}});i(88454),i(29452),i(62953);var a=i(5055),s=i(42017),o=i(63937);const n=t=>(0,o.ps)(t)?t._$litType$.h:t.strings,r=(0,s.u$)(class extends s.WL{render(t){return[t]}update(t,[e]){const i=(0,o.qb)(this.it)?n(this.it):null,s=(0,o.qb)(e)?n(e):null;if(null!==i&&(null===s||i!==s)){const e=(0,o.cN)(t).pop();let s=this.et.get(i);if(void 0===s){const t=document.createDocumentFragment();s=(0,a.XX)(a.s6,t),s.setConnected(!1),this.et.set(i,s)}(0,o.mY)(s,[e]),(0,o.Dx)(s,void 0,e)}if(null!==s){if(null===i||i!==s){const e=this.et.get(s);if(void 0!==e){const i=(0,o.cN)(e).pop();(0,o.Jz)(t),(0,o.Dx)(t,void 0,i),(0,o.mY)(t,[i])}}this.it=e}else this.it=void 0;return this.render(e)}constructor(t){super(t),this.et=new WeakMap}})}}]);