!function(t){var e={};function r(i){if(e[i])return e[i].exports;var s=e[i]={i:i,l:!1,exports:{}};return t[i].call(s.exports,s,s.exports,r),s.l=!0,s.exports}r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)r.d(i,s,function(e){return t[e]}.bind(null,s));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,r){"use strict";r.r(e);const i=customElements.get("home-assistant-main")?Object.getPrototypeOf(customElements.get("home-assistant-main")):Object.getPrototypeOf(customElements.get("hui-view")),s=i.prototype.html;i.prototype.css;function n(t,e,r=null){if((t=new Event(t,{bubbles:!0,cancelable:!1,composed:!0})).detail=e||{},r)r.dispatchEvent(t);else{var i=document.querySelector("home-assistant");(i=(i=(i=(i=(i=(i=(i=(i=(i=(i=(i=i&&i.shadowRoot)&&i.querySelector("home-assistant-main"))&&i.shadowRoot)&&i.querySelector("app-drawer-layout partial-panel-resolver"))&&i.shadowRoot||i)&&i.querySelector("ha-panel-lovelace"))&&i.shadowRoot)&&i.querySelector("hui-root"))&&i.shadowRoot)&&i.querySelector("ha-app-layout #view"))&&i.firstElementChild)&&i.dispatchEvent(t)}}const o="custom:";function a(t,e){const r=document.createElement("hui-error-card");return r.setConfig({type:"error",error:t,origConfig:e}),r}function c(t,e){if(!e||"object"!=typeof e||!e.type)return a(`No ${t} type configured`,e);let r=e.type;if(r=r.startsWith(o)?r.substr(o.length):`hui-${r}-${t}`,customElements.get(r))return function(t,e){const r=document.createElement(t);try{r.setConfig(e)}catch(t){return a(t,e)}return r}(r,e);const i=a(`Custom element doesn't exist: ${r}.`,e);i.style.display="None";const s=setTimeout(()=>{i.style.display=""},2e3);return customElements.whenDefined(r).then(()=>{clearTimeout(s),n("ll-rebuild",{},i)}),i}function u(){return document.querySelector("home-assistant").hass}const l=2;class f extends i{static get version(){return l}static get properties(){return{noHass:{type:Boolean}}}setConfig(t){var e;this._config=t,this.el?this.el.setConfig(t):(this.el=this.create(t),this._hass&&(this.el.hass=this._hass),this.noHass&&(e=this,document.querySelector("home-assistant").provideHass(e)))}set config(t){this.setConfig(t)}set hass(t){this._hass=t,this.el&&(this.el.hass=t)}createRenderRoot(){return this}render(){return s`${this.el}`}}const d=function(t,e){const r=Object.getOwnPropertyDescriptors(e.prototype);for(const[e,i]of Object.entries(r))"constructor"!==e&&Object.defineProperty(t.prototype,e,i);const i=Object.getOwnPropertyDescriptors(e);for(const[e,r]of Object.entries(i))"prototype"!==e&&Object.defineProperty(t,e,r);const s=Object.getPrototypeOf(e),n=Object.getOwnPropertyDescriptors(s.prototype);for(const[e,r]of Object.entries(n))"constructor"!==e&&Object.defineProperty(Object.getPrototypeOf(t).prototype,e,r);const o=Object.getOwnPropertyDescriptors(s);for(const[e,r]of Object.entries(o))"prototype"!==e&&Object.defineProperty(Object.getPrototypeOf(t),e,r)},h=customElements.get("card-maker");if(!h||!h.version||h.version="))return parseFloat(e)>=parseFloat(t.substr(2));if(t.startsWith("<"))return parseFloat(e)"))return parseFloat(e)>parseFloat(t.substr(1));if(t.startsWith("!"))return parseFloat(e)!=parseFloat(t.substr(1));if(t.startsWith("="))return parseFloat(e)==parseFloat(t.substr(1))}return t===e}function j(t,e){return function(r){const i="string"==typeof r?t.states[r]:t.states[r.entity];if(!r)return!1;for(const[s,n]of Object.entries(e))switch(s.split(" ")[0]){case"options":case"sort":break;case"domain":if(!O(n,i.entity_id.split(".")[0]))return!1;break;case"entity_id":if(!O(n,i.entity_id))return!1;break;case"state":if(!O(n,i.state))return!1;break;case"name":if(!i.attributes.friendly_name||!O(n,i.attributes.friendly_name))return!1;break;case"group":if(!(n.startsWith("group.")&&t.states[n]&&t.states[n].attributes.entity_id&&t.states[n].attributes.entity_id.includes(i.entity_id)))return!1;break;case"attributes":for(const[t,e]of Object.entries(n)){let r=t.split(" ")[0],s=i.attributes;for(;r&&s;){let t;[t,r]=r.split(":"),s=s[t]}if(void 0===s||e&&!O(e,s))return!1}break;case"not":if(j(t,n)(r))return!1;break;case"device":let e=!1;for(const t of window.cardToolsData.devices)O(n,t.name)&&w(t).includes(i.entity_id)&&(e=!0);if(!e)return!1;break;case"area":let s=!1;for(const t of window.cardToolsData.areas)O(n,t.name)&&v(t).flatMap(w).includes(i.entity_id)&&(s=!0);if(!s)return!1;break;default:return!1}return!0}}function k(t,e){return"string"==typeof e&&(e={method:e}),function(r,i){const s="string"==typeof r?t.states[r]:t.states[r.entity],n="string"==typeof i?t.states[i]:t.states[i.entity];if(void 0===s||void 0===n)return 0;const[o,a]=e.reverse?[-1,1]:[1,-1];function c(t,r){return e.ignore_case&&t.toLowerCase&&(t=t.toLowerCase()),e.ignore_case&&r.toLowerCase&&(r=r.toLowerCase()),void 0===t&&void 0===r?0:void 0===t?o:void 0===r?a:tr?o:0}switch(e.method){case"domain":return c(s.entity_id.split(".")[0],n.entity_id.split(".")[0]);case"entity_id":return c(s.entity_id,n.entity_id);case"friendly_name":case"name":return c(s.attributes.friendly_name||s.entity_id.split(".")[1],n.attributes.friendly_name||n.entity_id.split(".")[1]);case"state":return c(s.state,n.state);case"attribute":let t=s.attributes,r=n.attributes,i=e.attribute;for(;i;){let e;if([e,i]=i.split(":"),t=t[e],r=r[e],void 0===t&&void 0===r)return 0;if(void 0===t)return o;if(void 0===r)return a}return c(t,r);default:return 0}}}_();customElements.define("auto-entities",class extends i{static get properties(){return{hass:{}}}setConfig(t){if(!t||!t.card)throw new Error("Invalid configuration");this._config?(this._config=t,this.hass=this.hass):(this._config=t,this.cardConfig={entities:[],...t.card},this.entities=[])}async _getEntities(){let t=[];if(this._config.entities&&(t=t.concat(this._config.entities).map(t=>"string"==typeof t?{entity:t}:t)),!this.hass||!this._config.filter)return t;if(this._config.filter.include){const e=Object.keys(this.hass.states).map(t=>new Object({entity:t}));for(const r of this._config.filter.include){if(void 0!==r.type){t.push(r);continue}(r.device||r.area)&&await _();let i=e.filter(j(this.hass,r)).map(t=>new Object({...t,...r.options}));void 0!==r.sort&&(i=i.sort(k(this.hass,r.sort))),t=t.concat(i)}}if(this._config.filter.exclude)for(const e of this._config.filter.exclude)t=t.filter(t=>"string"!=typeof t&&void 0===t.entity||!j(this.hass,e)(t));if(this._config.sort&&(t=t.sort(k(this.hass,this._config.sort))),this._config.unique){function e(t,r){return typeof t==typeof r&&("object"!=typeof t?t===r:!Object.keys(t).some(t=>!Object.keys(r).includes(t))&&Object.keys(t).every(i=>e(t[i],r[i])))}let r=[];for(const i of t)r.some(t=>e(t,i))||r.push(i);t=r}return t}set entities(t){(function(t,e){if(t===e)return!0;if(null==t||null==e)return!1;if(t.length!=e.length)return!1;for(var r=0;rthis._getEntities().then(t=>this.entities=t),0)}createRenderRoot(){return this}render(){return s` `}getCardSize(){let t=0;return this.querySelector("card-maker")&&this.querySelector("card-maker").getCardSize&&(t=this.querySelector("card-maker").getCardSize()),1===t&&this.entities.length&&(t=this.entities.length),0===t&&this._config.filter&&this._config.filter.include?Object.keys(this._config.filter.include).length:t||1}}),n("ll-rebuild",{})}]);