From e5b9075bc1cd3297190bbdb8ca875253b0de0c7a Mon Sep 17 00:00:00 2001 From: ccostan Date: Mon, 20 Jun 2022 19:18:49 -0400 Subject: [PATCH] Finally Updated to 2022.6 !! And not too much broke! --- config/.HA_VERSION | 2 +- config/configuration.yaml | 6 +- .../lovelace-auto-entities/auto-entities.js | 204 +++++++----------- .../auto-entities.js.gz | Bin 13338 -> 13125 bytes .../rollup.config.js.gz | Bin 327 -> 327 bytes 5 files changed, 85 insertions(+), 127 deletions(-) diff --git a/config/.HA_VERSION b/config/.HA_VERSION index 45daddc7..626ea70a 100755 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2021.11.5 \ No newline at end of file +2022.6.6 \ No newline at end of file diff --git a/config/configuration.yaml b/config/configuration.yaml index bde8bdc4..7b7b653b 100755 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -90,7 +90,7 @@ frontend: discovery: -updater: +#updater: sun: @@ -152,11 +152,7 @@ logger: !include logger.yaml recorder: !include recorder.yaml mqtt: - broker: 127.0.0.1 - port: 1883 client_id: home-assistant-Carlo - username: !secret MQTT_username - password: !secret MQTT_password # zwave: # usb_path: /dev/ttyACM0 diff --git a/config/www/community/lovelace-auto-entities/auto-entities.js b/config/www/community/lovelace-auto-entities/auto-entities.js index e34de1c5..de928a5d 100644 --- a/config/www/community/lovelace-auto-entities/auto-entities.js +++ b/config/www/community/lovelace-auto-entities/auto-entities.js @@ -1,4 +1,4 @@ -function t(t,e,i,s){var n,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(e,i,r):n(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r}const e="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,i=null)=>{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},s=`{{lit-${String(Math.random()).slice(2)}}}`,n=`\x3c!--${s}--\x3e`,o=new RegExp(`${s}|${n}`);class r{constructor(t,e){this.parts=[],this.element=e;const i=[],n=[],r=document.createTreeWalker(e.content,133,null,!1);let l=0,h=-1,u=0;const{strings:p,values:{length:f}}=t;for(;u0;){const e=p[u],i=d.exec(e)[2],s=i.toLowerCase()+"$lit$",n=t.getAttribute(s);t.removeAttribute(s);const r=n.split(o);this.parts.push({type:"attribute",index:h,name:i,strings:r}),u+=r.length-1}}"TEMPLATE"===t.tagName&&(n.push(t),r.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(s)>=0){const s=t.parentNode,n=e.split(o),r=n.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},l=t=>-1!==t.index,c=()=>document.createComment(""),d=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function h(t,e){const{element:{content:i},parts:s}=t,n=document.createTreeWalker(i,133,null,!1);let o=p(s),r=s[o],a=-1,l=0;const c=[];let d=null;for(;n.nextNode();){a++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),e.has(t)&&(c.push(t),null===d&&(d=t)),null!==d&&l++;void 0!==r&&r.index===a;)r.index=null!==d?-1:r.index-l,o=p(s,o),r=s[o]}c.forEach((t=>t.parentNode.removeChild(t)))}const u=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},p=(t,e=-1)=>{for(let i=e+1;i"function"==typeof t&&f.has(t),_={},v={};class m{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this.options=i}update(t){let e=0;for(const i of this.__parts)void 0!==i&&i.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=e?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),i=[],s=this.template.parts,n=document.createTreeWalker(t,133,null,!1);let o,r=0,a=0,c=n.nextNode();for(;rt}),b=` ${s} `;class w{constructor(t,e,i,s){this.strings=t,this.values=e,this.type=i,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let o=0;o-1||i)&&-1===t.indexOf("--\x3e",r+1);const a=d.exec(t);e+=null===a?t+(i?b:n):t.substr(0,a.index)+a[1]+a[2]+"$lit$"+a[3]+s}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==y&&(e=y.createHTML(e)),t.innerHTML=e,t}}const S=t=>null===t||!("object"==typeof t||"function"==typeof t),C=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class O{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class T{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;g(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=_,t(this)}if(this.__pendingValue===_)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=k(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=_}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const k=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);function A(t){let e=M.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},M.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const n=t.strings.join(s);return i=e.keyString.get(n),void 0===i&&(i=new r(t,t.getTemplateElement()),e.keyString.set(n,i)),e.stringsArray.set(t.strings,i),i}const M=new Map,U=new WeakMap;const F=new class{handleAttributeExpressions(t,e,i,s){const n=e[0];if("."===n){return new j(t,e.slice(1),i).parts}if("@"===n)return[new T(t,e.slice(1),s.eventContext)];if("?"===n)return[new P(t,e.slice(1),i)];return new O(t,e,i).parts}handleTextExpression(t){return new x(t)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const V=(t,...e)=>new w(t,e,"html",F),I=(t,e)=>`${t}--${e}`;let R=!0;void 0===window.ShadyCSS?R=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),R=!1);const D=t=>e=>{const i=I(e.type,t);let n=M.get(i);void 0===n&&(n={stringsArray:new WeakMap,keyString:new Map},M.set(i,n));let o=n.stringsArray.get(e.strings);if(void 0!==o)return o;const a=e.strings.join(s);if(o=n.keyString.get(a),void 0===o){const i=e.getTemplateElement();R&&window.ShadyCSS.prepareTemplateDom(i,t),o=new r(e,i),n.keyString.set(a,o)}return n.stringsArray.set(e.strings,o),o},q=["html","svg"],W=new Set,G=(t,e,i)=>{W.add(t);const s=i?i.element:document.createElement("template"),n=e.querySelectorAll("style"),{length:o}=n;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const r=document.createElement("style");for(let t=0;t{q.forEach((e=>{const i=M.get(I(e,t));void 0!==i&&i.keyString.forEach((t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach((t=>{i.add(t)})),h(t,i)}))}))})(t);const a=s.content;i?function(t,e,i=null){const{element:{content:s},parts:n}=t;if(null==i)return void s.appendChild(e);const o=document.createTreeWalker(s,133,null,!1);let r=p(n),a=0,l=-1;for(;o.nextNode();)for(l++,o.currentNode===i&&(a=u(e),i.parentNode.insertBefore(e,i));-1!==r&&n[r].index===l;){if(a>0){for(;-1!==r;)n[r].index+=a,r=p(n,r);return}r=p(n,r)}}(i,r,a.firstChild):a.insertBefore(r,a.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){a.insertBefore(r,a.firstChild);const t=new Set;t.add(r),h(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const z={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},L=(t,e)=>e!==t&&(e==e||t==t),B={attribute:!0,type:String,converter:z,reflect:!1,hasChanged:L};class H extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,e)=>this._classProperties.set(e,t)))}}static createProperty(t,e=B){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():`__${t}`,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const n=this[t];this[e]=s,this.requestUpdateInternal(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||B}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=L){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||z,n="function"==typeof s?s:s.fromAttribute;return n?n(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||z.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,e)=>this[e]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=B){const s=this.constructor,n=s._attributeNameForProperty(t,i);if(void 0!==n){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(n):this.setAttribute(n,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const n=this.constructor;i=i||n.getPropertyOptions(t),n._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,e)=>this._propertyToAttribute(e,this[e],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}H.finalized=!0;const J=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function K(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):J(t,e)}function Y(t){return K({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}const Q=(t,e,i)=>{Object.defineProperty(e,i,t)},X=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}),Z=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tt=Symbol();class et{constructor(t,e){if(e!==tt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Z?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const it=(t,...e)=>{const i=e.reduce(((e,i,s)=>e+(t=>{if(t instanceof et)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[s+1]),t[0]);return new et(i,tt)};(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const st={};class nt extends H{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight(((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t)),i),i=e(t,new Set),s=[];i.forEach((t=>s.unshift(t))),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map((t=>{if(t instanceof CSSStyleSheet&&!Z){const e=Array.prototype.slice.call(t.cssRules).reduce(((t,e)=>t+e.cssText),"");return new et(String(e),tt)}return t}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Z?this.renderRoot.adoptedStyleSheets=t.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==st&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)})))}render(){return st}}function ot(){return document.querySelector("hc-main")?document.querySelector("hc-main").hass:document.querySelector("home-assistant")?document.querySelector("home-assistant").hass:void 0}nt.finalized=!0,nt.render=(t,e,s)=>{if(!s||"object"!=typeof s||!s.scopeName)throw new Error("The `scopeName` option is required.");const n=s.scopeName,o=U.has(e),r=R&&11===e.nodeType&&!!e.host,a=r&&!W.has(n),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let n=U.get(e);void 0===n&&(i(e,e.firstChild),U.set(e,n=new x(Object.assign({templateFactory:A},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:D(n)},s)),a){const t=U.get(l);U.delete(l);const s=t.value instanceof m?t.value.template:void 0;G(n,l,s),i(e,e.firstChild),e.appendChild(l),U.set(e,t)}!o&&r&&window.ShadyCSS.styleElement(e.host)};const rt="lovelace-player-device-id";function at(){if(!localStorage[rt]){const t=()=>Math.floor(1e5*(1+Math.random())).toString(16).substring(1);window.fully&&"function"==typeof fully.getDeviceId?localStorage[rt]=fully.getDeviceId():localStorage[rt]=`${t()}${t()}-${t()}${t()}`}return localStorage[rt]}let lt=at();const ct=new URLSearchParams(window.location.search);var dt;function ht(t){return!!String(t).includes("{%")||(!!String(t).includes("{{")||void 0)}ct.get("deviceID")&&null!==(dt=ct.get("deviceID"))&&("clear"===dt?localStorage.removeItem(rt):localStorage[rt]=dt,lt=at()),window.cardMod_template_cache=window.cardMod_template_cache||{};const ut=window.cardMod_template_cache;async function pt(t,e,i){const s=ot().connection,n=JSON.stringify([e,i]);let o=ut[n];o?(o.callbacks.has(t)||ft(t),t(o.value),o.callbacks.add(t)):(ft(t),t(""),i=Object.assign({user:ot().user.name,browser:lt,hash:location.hash.substr(1)||""},i),ut[n]=o={template:e,variables:i,value:"",callbacks:new Set([t]),unsubscribe:s.subscribeMessage((t=>function(t,e){const i=ut[t];i&&(i.value=e.result,i.callbacks.forEach((t=>t(e.result))))}(n,t)),{type:"render_template",template:e,variables:i})})}async function ft(t){let e;for(const[i,s]of Object.entries(ut))if(s.callbacks.has(t)){s.callbacks.delete(t),0==s.callbacks.size&&(e=s.unsubscribe,delete ut[i]);break}e&&await(await e)()}var gt;function _t(t,e){if("string"==typeof e&&"string"==typeof t&&(t.startsWith("/")&&t.endsWith("/")||-1!==t.indexOf("*"))){return t.startsWith("/")||(t=`/^${t=t.replace(/\./g,".").replace(/\*/g,".*")}$/`),new RegExp(t.slice(1,-1)).test(e)}if("string"==typeof t){if(t.startsWith("<="))return parseFloat(e)<=parseFloat(t.substr(2));if(t.startsWith(">="))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}window.autoEntities_cache=null!==(gt=window.autoEntities_cache)&&void 0!==gt?gt:{};const vt=window.autoEntities_cache;async function mt(t){var e;return vt.areas=null!==(e=vt.areas)&&void 0!==e?e:await t.callWS({type:"config/area_registry/list"}),vt.areas}async function yt(t){var e;return vt.devices=null!==(e=vt.devices)&&void 0!==e?e:await t.callWS({type:"config/device_registry/list"}),vt.devices}async function bt(t){var e;return vt.entities=null!==(e=vt.entities)&&void 0!==e?e:await t.callWS({type:"config/entity_registry/list"}),vt.entities}const wt={options:async()=>!0,sort:async()=>!0,domain:async(t,e,i)=>_t(e,i.entity_id.split(".")[0]),entity_id:async(t,e,i)=>_t(e,i.entity_id),state:async(t,e,i)=>_t(e,i.state),name:async(t,e,i)=>{var s;return _t(e,null===(s=i.attributes)||void 0===s?void 0:s.friendly_name)},group:async(t,e,i)=>{var s,n,o;return null===(o=null===(n=null===(s=t.states[e])||void 0===s?void 0:s.attributes)||void 0===n?void 0:n.entity_id)||void 0===o?void 0:o.includes(i.entity_id)},attributes:async(t,e,i)=>{for(const[t,s]of Object.entries(e)){let e=t.split(" ")[0],n=i.attributes;for(const t of e.split(":"))n=n?n[t]:void 0;if(void 0===n||!_t(s,n))return!1}return!0},not:async(t,e,i)=>!await St(t,e,i.entity_id),or:async(t,e,i)=>{for(const s of e)if(await St(t,s,i.entity_id))return!0;return!1},device:async(t,e,i)=>{const s=(await bt(t)).find((t=>t.entity_id===i.entity_id));if(!s)return!1;const n=(await yt(t)).find((t=>t.id===s.device_id));return!!n&&(_t(e,n.name_by_user)||_t(e,n.name))},area:async(t,e,i)=>{const s=(await bt(t)).find((t=>t.entity_id===i.entity_id));if(!s)return!1;let n=(await mt(t)).find((t=>t.area_id===s.area_id));if(n)return _t(e,n.name);const o=(await yt(t)).find((t=>t.id===s.device_id));return!!o&&(n=(await mt(t)).find((t=>t.area_id===o.area_id)),!!n&&_t(e,n.name))},last_changed:async(t,e,i)=>_t(e,((new Date).getTime()-new Date(i.last_changed).getTime())/6e4),last_updated:async(t,e,i)=>_t(e,((new Date).getTime()-new Date(i.last_updated).getTime())/6e4),last_triggered:async(t,e,i)=>{if(null==i.attributes.last_triggered)return!1;return _t(e,((new Date).getTime()-new Date(i.attributes.last_triggered).getTime())/6e4)}};async function St(t,e,i){var s;if(!t.states[i])return!1;for(let[n,o]of Object.entries(e))if(n=n.trim().split(" ")[0].trim(),!await(null===(s=wt[n])||void 0===s?void 0:s.call(wt,t,o,t.states[i])))return!1;return!0}function Ct(t,e,i){var s,n,o,r;const[a,l]=i.reverse?[-1,1]:[1,-1];return i.ignore_case&&(t=null!==(n=null===(s=null==t?void 0:t.toLowerCase)||void 0===s?void 0:s.call(t))&&void 0!==n?n:t,e=null!==(r=null===(o=null==e?void 0:e.toLowerCase)||void 0===o?void 0:o.call(e))&&void 0!==r?r:e),i.numeric&&(isNaN(parseFloat(t))&&isNaN(parseFloat(e))||(t=isNaN(parseFloat(t))?void 0:parseFloat(t),e=isNaN(parseFloat(e))?void 0:parseFloat(e))),void 0===t&&void 0===e?0:void 0===t?a:void 0===e?l:(i.reverse?-1:1)*String(t).localeCompare(String(e),void 0,i)}const Ot={none:()=>0,domain:(t,e,i)=>{var s,n;return Ct(null===(s=null==t?void 0:t.entity_id)||void 0===s?void 0:s.split(".")[0],null===(n=null==e?void 0:e.entity_id)||void 0===n?void 0:n.split(".")[0],i)},entity_id:(t,e,i)=>Ct(null==t?void 0:t.entity_id,null==e?void 0:e.entity_id,i),friendly_name:(t,e,i)=>{var s,n,o,r;return Ct((null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.friendly_name)||(null===(n=null==t?void 0:t.entity_id)||void 0===n?void 0:n.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},name:(t,e,i)=>{var s,n,o,r;return Ct((null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.friendly_name)||(null===(n=null==t?void 0:t.entity_id)||void 0===n?void 0:n.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},state:(t,e,i)=>Ct(null==t?void 0:t.state,null==e?void 0:e.state,i),attribute:(t,e,i)=>{var s;const[n,o]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];let r=null==t?void 0:t.attributes,a=null==e?void 0:e.attributes;for(const t of null===(s=null==i?void 0:i.attribute)||void 0===s?void 0:s.split(":")){if(void 0===r&&void 0===a)return 0;if(void 0===r)return n;if(void 0===a)return o;[r,a]=[r[t],a[t]]}return Ct(r,a,i)},last_changed:(t,e,i)=>{const[s,n]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_changed)&&null==(null==e?void 0:e.last_changed)?0:null==(null==t?void 0:t.last_changed)?s:null==(null==e?void 0:e.last_changed)?n:(i.numeric=!0,Ct(new Date(null==t?void 0:t.last_changed).getTime(),new Date(null==e?void 0:e.last_changed).getTime(),i))},last_updated:(t,e,i)=>{const[s,n]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_updated)&&null==(null==e?void 0:e.last_updated)?0:null==(null==t?void 0:t.last_updated)?s:null==(null==e?void 0:e.last_updated)?n:(i.numeric=!0,Ct(new Date(null==t?void 0:t.last_updated).getTime(),new Date(null==e?void 0:e.last_updated).getTime(),i))},last_triggered:(t,e,i)=>{var s,n,o,r,a,l;const[c,d]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.last_triggered)&&null==(null===(n=null==e?void 0:e.attributes)||void 0===n?void 0:n.last_triggered)?0:null==(null===(o=null==t?void 0:t.attributes)||void 0===o?void 0:o.last_triggered)?c:null==(null===(r=null==e?void 0:e.attributes)||void 0===r?void 0:r.last_triggered)?d:(i.numeric=!0,Ct(new Date(null===(a=null==t?void 0:t.attributes)||void 0===a?void 0:a.last_triggered).getTime(),new Date(null===(l=null==e?void 0:e.attributes)||void 0===l?void 0:l.last_triggered).getTime(),i))}};function Et(t,e){return function(i,s){var n,o;return null!==(o=null===(n=Ot[e.method])||void 0===n?void 0:n.call(Ot,t.states[i.entity],t.states[s.entity],e))&&void 0!==o?o:0}}var xt="1.9.1";const Pt=["domain","entity_id","state","name","group","device","area","last_changed","last_updated","last_triggered"],jt=["none","domain","entity_id","friendly_name","state","last_changed","last_updated","last_triggered"];class $t extends nt{constructor(){super(...arguments),this._selectedTab=0,this._cardGUIMode=!0,this._cardGUIModeAvailable=!0}setConfig(t){this._config=t}_handleSwitchTab(t){this._selectedTab=parseInt(t.detail.index,10)}_addFilterGroup(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({domain:""});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteFilterGroup(t){var e;if(!this._config)return;const i=[...null===(e=this._config.filter)||void 0===e?void 0:e.include];i.splice(t,1);const s=Object.assign(Object.assign({},this._config.filter),{include:i});this._config=Object.assign(Object.assign({},this._config),{filter:s}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_moveFilterGroup(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];[s[t],s[t+e]]=[s[t+e],s[t]];const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_addSpecialEntry(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({type:""});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeSpecialEntry(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];s[t]=e.detail.value;const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeGroupOptions(t,e){var i;if(!this._config)return;const s=e.detail.value,n=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];n[t]=Object.assign(Object.assign({},n[t]),{options:s});const o=Object.assign(Object.assign({},this._config.filter),{include:n});this._config=Object.assign(Object.assign({},this._config),{filter:o}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_addFilter(t){var e;if(!this._config)return;const i=Pt.find((e=>void 0===this._config.filter.include[t][e]));if(void 0===i)return;const s=[...null===(e=this._config.filter)||void 0===e?void 0:e.include];s[t]=Object.assign(Object.assign({},s[t]),{[i]:""});const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_removeFilter(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include],n=Object.assign({},s[t]);if(delete n[e],0===Object.keys(n).length)return this._deleteFilterGroup(t);s[t]=n;const o=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:o}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeFilterKey(t,e,i){var s;if(!this._config)return;const n=Pt[i.target.selected];if(void 0===n||n===e)return;const o=[...null===(s=this._config.filter)||void 0===s?void 0:s.include],r=Object.assign({},o[t]);if(void 0===r[e])return;r[n]=r[e],delete r[e],o[t]=r;const a=Object.assign(Object.assign({},this._config.filter),{include:o});this._config=Object.assign(Object.assign({},this._config),{filter:a}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeFilterValue(t,e,i){var s;if(!this._config)return;const n=[...null===(s=this._config.filter)||void 0===s?void 0:s.include],o=Object.assign({},n[t]);o[e]=i.target.value,n[t]=o;const r=Object.assign(Object.assign({},this._config.filter),{include:n});this._config=Object.assign(Object.assign({},this._config),{filter:r}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeSortMethod(t){if(!this._config)return;const e=jt[t.target.selected],i=Object.assign(Object.assign({},this._config.sort),{method:e});this._config=Object.assign(Object.assign({},this._config),{sort:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_sortOptionToggle(t,e){if(!this._config)return;const i=Object.assign({},this._config.sort);i[t]=e.target.checked,this._config=Object.assign(Object.assign({},this._config),{sort:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_showEmptyToggle(){if(!this._config)return;const t=!1===this._config.show_empty;this._config=Object.assign(Object.assign({},this._config),{show_empty:t}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeCardParam(t){if(!this._config)return;const e=""===t.target.value||"entities"===t.target.value?void 0:t.target.value;this._config=Object.assign(Object.assign({},this._config),{card_param:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_getCardConfig(){const t=Object.assign({},this._config.card);return t[this._config.card_param||"entities"]=[],t}_handleCardPicked(t){if(t.stopPropagation(),!this._config)return;const e=Object.assign({},t.detail.config);delete e.entities,this._config=Object.assign(Object.assign({},this._config),{card:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_handleCardConfigChanged(t){if(t.stopPropagation(),!this._config)return;const e=Object.assign({},t.detail.config);delete e[this._config.card_param||"entities"],this._config=Object.assign(Object.assign({},this._config),{card:e}),this._cardGUIModeAvailable=t.detail.guiModeAvailable,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteCard(t){this._config&&(this._config=Object.assign({},this._config),delete this._config.card,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}})))}_toggleCardMode(t){var e;null===(e=this._cardEditorEl)||void 0===e||e.toggleMode()}_cardGUIModeChanged(t){t.stopPropagation(),this._cardGUIMode=t.detail.guiMode,this._cardGUIModeAvailable=t.detail.guiModeAvailable}render(){return this.hass&&this._config?V` +function t(t,e,i,n){var s,o=arguments.length,r=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;a>=0;a--)(s=t[a])&&(r=(o<3?s(r):o>3?s(e,i,r):s(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r}const e=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),n=new Map;class s{constructor(t,e){if(this._$cssResult$=!0,e!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=n.get(this.cssText);return e&&void 0===t&&(n.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const o=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,i,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(i)+t[n+1]),t[0]);return new s(n,i)},r=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return(t=>new s("string"==typeof t?t:t+"",i))(e)})(t):t;var a;const l=window.trustedTypes,c=l?l.emptyScript:"",d=window.reactiveElementPolyfillSupport,h={toAttribute(t,e){switch(e){case Boolean:t=t?c:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},u=(t,e)=>e!==t&&(e==e||t==t),v={attribute:!0,type:String,converter:h,reflect:!1,hasChanged:u};class g extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const n=this._$Eh(i,e);void 0!==n&&(this._$Eu.set(n,i),t.push(n))})),t}static createProperty(t,e=v){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,i,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(n){const s=this[t];this[e]=n,this.requestUpdate(t,s,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||v}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(r(t))}else void 0!==t&&e.push(r(t));return e}static _$Eh(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const i=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,i)=>{e?t.adoptedStyleSheets=i.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):i.forEach((e=>{const i=document.createElement("style"),n=window.litNonce;void 0!==n&&i.setAttribute("nonce",n),i.textContent=e.cssText,t.appendChild(i)}))})(i,this.constructor.elementStyles),i}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$ES(t,e,i=v){var n,s;const o=this.constructor._$Eh(t,i);if(void 0!==o&&!0===i.reflect){const r=(null!==(s=null===(n=i.converter)||void 0===n?void 0:n.toAttribute)&&void 0!==s?s:h.toAttribute)(e,i.type);this._$Ei=t,null==r?this.removeAttribute(o):this.setAttribute(o,r),this._$Ei=null}}_$AK(t,e){var i,n,s;const o=this.constructor,r=o._$Eu.get(t);if(void 0!==r&&this._$Ei!==r){const t=o.getPropertyOptions(r),a=t.converter,l=null!==(s=null!==(n=null===(i=a)||void 0===i?void 0:i.fromAttribute)&&void 0!==n?n:"function"==typeof a?a:null)&&void 0!==s?s:h.fromAttribute;this._$Ei=r,this[r]=l(e,t.type),this._$Ei=null}}requestUpdate(t,e,i){let n=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||u)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):n=!1),!this.isUpdatePending&&n&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$EC=void 0),this._$EU()}updated(t){}firstUpdated(t){}}var p;g.finalized=!0,g.elementProperties=new Map,g.elementStyles=[],g.shadowRootOptions={mode:"open"},null==d||d({ReactiveElement:g}),(null!==(a=globalThis.reactiveElementVersions)&&void 0!==a?a:globalThis.reactiveElementVersions=[]).push("1.3.0");const f=globalThis.trustedTypes,_=f?f.createPolicy("lit-html",{createHTML:t=>t}):void 0,m=`lit$${(Math.random()+"").slice(9)}$`,y="?"+m,b=`<${y}>`,$=document,w=(t="")=>$.createComment(t),E=t=>null===t||"object"!=typeof t&&"function"!=typeof t,A=Array.isArray,C=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,S=/-->/g,O=/>/g,j=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,T=/'/g,x=/"/g,k=/^(?:script|style|textarea|title)$/i,U=(t=>(e,...i)=>({_$litType$:t,strings:e,values:i}))(1),P=Symbol.for("lit-noChange"),M=Symbol.for("lit-nothing"),N=new WeakMap,D=$.createTreeWalker($,129,null,!1),I=(t,e)=>{const i=t.length-1,n=[];let s,o=2===e?"":"",r=C;for(let e=0;e"===l[0]?(r=null!=s?s:C,c=-1):void 0===l[1]?c=-2:(c=r.lastIndex-l[2].length,a=l[1],r=void 0===l[3]?j:'"'===l[3]?x:T):r===x||r===T?r=j:r===S||r===O?r=C:(r=j,s=void 0);const h=r===j&&t[e+1].startsWith("/>")?" ":"";o+=r===C?i+b:c>=0?(n.push(a),i.slice(0,c)+"$lit$"+i.slice(c)+m+h):i+m+(-2===c?(n.push(void 0),e):h)}const a=o+(t[i]||"")+(2===e?"":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==_?_.createHTML(a):a,n]};class R{constructor({strings:t,_$litType$:e},i){let n;this.parts=[];let s=0,o=0;const r=t.length-1,a=this.parts,[l,c]=I(t,e);if(this.el=R.createElement(l,i),D.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(n=D.nextNode())&&a.length0){n.textContent=f?f.emptyScript:"";for(let i=0;i{var e;return A(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])})(t)?this.S(t):this.$(t)}A(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.A(t))}$(t){this._$AH!==M&&E(this._$AH)?this._$AA.nextSibling.data=t:this.k($.createTextNode(t)),this._$AH=t}T(t){var e;const{values:i,_$litType$:n}=t,s="number"==typeof n?this._$AC(t):(void 0===n.el&&(n.el=R.createElement(n.h,this.options)),n);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===s)this._$AH.m(i);else{const t=new F(s,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=N.get(t.strings);return void 0===e&&N.set(t.strings,e=new R(t)),e}S(t){A(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,n=0;for(const s of t)n===e.length?e.push(i=new L(this.A(w()),this.A(w()),this,this.options)):i=e[n],i._$AI(s),n++;n2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=M}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,n){const s=this.strings;let o=!1;if(void 0===s)t=H(this,t,e,0),o=!E(t)||t!==this._$AH&&t!==P,o&&(this._$AH=t);else{const n=t;let r,a;for(t=s[0],r=0;r{var n,s;const o=null!==(n=null==i?void 0:i.renderBefore)&&void 0!==n?n:e;let r=o._$litPart$;if(void 0===r){const t=null!==(s=null==i?void 0:i.renderBefore)&&void 0!==s?s:null;o._$litPart$=r=new L(e.insertBefore(w(),t),t,void 0,null!=i?i:{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return P}}Y.finalized=!0,Y._$litElement$=!0,null===(K=globalThis.litElementHydrateSupport)||void 0===K||K.call(globalThis,{LitElement:Y});const Q=globalThis.litElementPolyfillSupport;null==Q||Q({LitElement:Y}),(null!==(Z=globalThis.litElementVersions)&&void 0!==Z?Z:globalThis.litElementVersions=[]).push("3.2.0");const X=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function tt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):X(t,e)}function et(t){return tt({...t,state:!0})}var it;function nt(){return document.querySelector("hc-main")?document.querySelector("hc-main").hass:document.querySelector("home-assistant")?document.querySelector("home-assistant").hass:void 0}null===(it=window.HTMLSlotElement)||void 0===it||it.prototype.assignedElements;const st="lovelace-player-device-id";function ot(){if(!localStorage[st]){const t=()=>Math.floor(1e5*(1+Math.random())).toString(16).substring(1);window.fully&&"function"==typeof fully.getDeviceId?localStorage[st]=fully.getDeviceId():localStorage[st]=`${t()}${t()}-${t()}${t()}`}return localStorage[st]}let rt=ot();const at=new URLSearchParams(window.location.search);var lt;function ct(t){return!!String(t).includes("{%")||(!!String(t).includes("{{")||void 0)}at.get("deviceID")&&null!==(lt=at.get("deviceID"))&&("clear"===lt?localStorage.removeItem(st):localStorage[st]=lt,rt=ot()),window.cardMod_template_cache=window.cardMod_template_cache||{};const dt=window.cardMod_template_cache;async function ht(t,e,i){const n=nt().connection,s=JSON.stringify([e,i]);let o=dt[s];o?(o.callbacks.has(t)||ut(t),t(o.value),o.callbacks.add(t)):(ut(t),t(""),i=Object.assign({user:nt().user.name,browser:rt,hash:location.hash.substr(1)||""},i),dt[s]=o={template:e,variables:i,value:"",callbacks:new Set([t]),unsubscribe:n.subscribeMessage((t=>function(t,e){const i=dt[t];i&&(i.value=e.result,i.callbacks.forEach((t=>t(e.result))))}(s,t)),{type:"render_template",template:e,variables:i})})}async function ut(t){let e;for(const[i,n]of Object.entries(dt))if(n.callbacks.has(t)){n.callbacks.delete(t),0==n.callbacks.size&&(e=n.unsubscribe,delete dt[i]);break}e&&await(await e)()}var vt;function gt(t,e){if("string"==typeof t&&t.startsWith("$$")&&(t=t.substring(2),e=JSON.stringify(e)),"string"==typeof e&&"string"==typeof t&&(t.startsWith("/")&&t.endsWith("/")||-1!==t.indexOf("*"))){return t.startsWith("/")||(t=`/^${t=t.replace(/\./g,".").replace(/\*/g,".*")}$/`),new RegExp(t.slice(1,-1)).test(e)}if("string"==typeof t){if(t.startsWith("<="))return parseFloat(e)<=parseFloat(t.substring(2));if(t.startsWith(">="))return parseFloat(e)>=parseFloat(t.substring(2));if(t.startsWith("<"))return parseFloat(e)"))return parseFloat(e)>parseFloat(t.substring(1));if(t.startsWith("!"))return parseFloat(e)!=parseFloat(t.substring(1));if(t.startsWith("="))return parseFloat(e)==parseFloat(t.substring(1))}return t===e}window.autoEntities_cache=null!==(vt=window.autoEntities_cache)&&void 0!==vt?vt:{};const pt=window.autoEntities_cache;async function ft(t){var e;return pt.areas=null!==(e=pt.areas)&&void 0!==e?e:await t.callWS({type:"config/area_registry/list"}),pt.areas}async function _t(t){var e;return pt.devices=null!==(e=pt.devices)&&void 0!==e?e:await t.callWS({type:"config/device_registry/list"}),pt.devices}async function mt(t){var e;return pt.entities=null!==(e=pt.entities)&&void 0!==e?e:await t.callWS({type:"config/entity_registry/list"}),pt.entities}const yt={options:async()=>!0,sort:async()=>!0,domain:async(t,e,i)=>gt(e,i.entity_id.split(".")[0]),entity_id:async(t,e,i)=>gt(e,i.entity_id),state:async(t,e,i)=>gt(e,i.state),name:async(t,e,i)=>{var n;return gt(e,null===(n=i.attributes)||void 0===n?void 0:n.friendly_name)},group:async(t,e,i)=>{var n,s,o;return null===(o=null===(s=null===(n=t.states[e])||void 0===n?void 0:n.attributes)||void 0===s?void 0:s.entity_id)||void 0===o?void 0:o.includes(i.entity_id)},attributes:async(t,e,i)=>{for(const[t,n]of Object.entries(e)){let e=t.split(" ")[0],s=i.attributes;for(const t of e.split(":"))s=s?s[t]:void 0;if(void 0===s||!gt(n,s))return!1}return!0},not:async(t,e,i)=>!await bt(t,e,i.entity_id),or:async(t,e,i)=>{for(const n of e)if(await bt(t,n,i.entity_id))return!0;return!1},device:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));if(!n)return!1;const s=(await _t(t)).find((t=>t.id===n.device_id));return!!s&&(gt(e,s.name_by_user)||gt(e,s.name))},device_manufacturer:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));if(!n)return!1;const s=(await _t(t)).find((t=>t.id===n.device_id));return!!s&>(e,s.manufacturer)},device_model:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));if(!n)return!1;const s=(await _t(t)).find((t=>t.id===n.device_id));return!!s&>(e,s.model)},area:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));if(!n)return!1;let s=(await ft(t)).find((t=>t.area_id===n.area_id));if(s)return gt(e,s.name)||gt(e,s.area_id);const o=(await _t(t)).find((t=>t.id===n.device_id));return!!o&&(s=(await ft(t)).find((t=>t.area_id===o.area_id)),!!s&&(gt(e,s.name)||gt(e,s.area_id)))},entity_category:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));return!!n&>(e,n.entity_category)},last_changed:async(t,e,i)=>gt(e,((new Date).getTime()-new Date(i.last_changed).getTime())/6e4),last_updated:async(t,e,i)=>gt(e,((new Date).getTime()-new Date(i.last_updated).getTime())/6e4),last_triggered:async(t,e,i)=>{if(null==i.attributes.last_triggered)return!1;return gt(e,((new Date).getTime()-new Date(i.attributes.last_triggered).getTime())/6e4)},integration:async(t,e,i)=>{const n=(await mt(t)).find((t=>t.entity_id===i.entity_id));return!!n&>(e,n.platform)}};async function bt(t,e,i){var n;if(!t.states[i])return!1;for(let[s,o]of Object.entries(e))if(s=s.trim().split(" ")[0].trim(),!await(null===(n=yt[s])||void 0===n?void 0:n.call(yt,t,o,t.states[i])))return!1;return!0}function $t(t,e,i){var n,s,o,r;const[a,l]=i.reverse?[-1,1]:[1,-1];return i.ignore_case&&(t=null!==(s=null===(n=null==t?void 0:t.toLowerCase)||void 0===n?void 0:n.call(t))&&void 0!==s?s:t,e=null!==(r=null===(o=null==e?void 0:e.toLowerCase)||void 0===o?void 0:o.call(e))&&void 0!==r?r:e),i.numeric&&(isNaN(parseFloat(t))&&isNaN(parseFloat(e))||(t=isNaN(parseFloat(t))?void 0:parseFloat(t),e=isNaN(parseFloat(e))?void 0:parseFloat(e))),void 0===t&&void 0===e?0:void 0===t?a:void 0===e?l:i.numeric?t===e?0:(i.reverse?-1:1)*(t0,domain:(t,e,i)=>{var n,s;return $t(null===(n=null==t?void 0:t.entity_id)||void 0===n?void 0:n.split(".")[0],null===(s=null==e?void 0:e.entity_id)||void 0===s?void 0:s.split(".")[0],i)},entity_id:(t,e,i)=>$t(null==t?void 0:t.entity_id,null==e?void 0:e.entity_id,i),friendly_name:(t,e,i)=>{var n,s,o,r;return $t((null===(n=null==t?void 0:t.attributes)||void 0===n?void 0:n.friendly_name)||(null===(s=null==t?void 0:t.entity_id)||void 0===s?void 0:s.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},name:(t,e,i)=>{var n,s,o,r;return $t((null===(n=null==t?void 0:t.attributes)||void 0===n?void 0:n.friendly_name)||(null===(s=null==t?void 0:t.entity_id)||void 0===s?void 0:s.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},state:(t,e,i)=>$t(null==t?void 0:t.state,null==e?void 0:e.state,i),attribute:(t,e,i)=>{var n;const[s,o]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];let r=null==t?void 0:t.attributes,a=null==e?void 0:e.attributes;for(const t of null===(n=null==i?void 0:i.attribute)||void 0===n?void 0:n.split(":")){if(void 0===r&&void 0===a)return 0;if(void 0===r)return s;if(void 0===a)return o;[r,a]=[r[t],a[t]]}return $t(r,a,i)},last_changed:(t,e,i)=>{const[n,s]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_changed)&&null==(null==e?void 0:e.last_changed)?0:null==(null==t?void 0:t.last_changed)?n:null==(null==e?void 0:e.last_changed)?s:(i.numeric=!0,$t(new Date(null==t?void 0:t.last_changed).getTime(),new Date(null==e?void 0:e.last_changed).getTime(),i))},last_updated:(t,e,i)=>{const[n,s]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_updated)&&null==(null==e?void 0:e.last_updated)?0:null==(null==t?void 0:t.last_updated)?n:null==(null==e?void 0:e.last_updated)?s:(i.numeric=!0,$t(new Date(null==t?void 0:t.last_updated).getTime(),new Date(null==e?void 0:e.last_updated).getTime(),i))},last_triggered:(t,e,i)=>{var n,s,o,r,a,l;const[c,d]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null===(n=null==t?void 0:t.attributes)||void 0===n?void 0:n.last_triggered)&&null==(null===(s=null==e?void 0:e.attributes)||void 0===s?void 0:s.last_triggered)?0:null==(null===(o=null==t?void 0:t.attributes)||void 0===o?void 0:o.last_triggered)?c:null==(null===(r=null==e?void 0:e.attributes)||void 0===r?void 0:r.last_triggered)?d:(i.numeric=!0,$t(new Date(null===(a=null==t?void 0:t.attributes)||void 0===a?void 0:a.last_triggered).getTime(),new Date(null===(l=null==e?void 0:e.attributes)||void 0===l?void 0:l.last_triggered).getTime(),i))}};function Et(t,e){return function(i,n){var s,o;return null!==(o=null===(s=wt[e.method])||void 0===s?void 0:s.call(wt,t.states[i.entity],t.states[n.entity],e))&&void 0!==o?o:0}}var At="1.11.0";const Ct=(t,e)=>{if(t===e)return!0;if(typeof t!=typeof e)return!1;if(!(t instanceof Object&&e instanceof Object))return!1;for(const i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i))return!1;if(t[i]!==e[i]){if("object"!=typeof t[i])return!1;if(!Ct(t[i],e[i]))return!1}}for(const i in e)if(e.hasOwnProperty(i)&&!t.hasOwnProperty(i))return!1;return!0},St=["none","domain","entity_id","state","name","group","area","device","device_manufacturer","device_model","attributes","last_changed","last_updated","last_triggered","entity_category","integration"],Ot={type:"select",options:[["domain","Entity Domain"],["entity_id","Entity ID"],["state","Entity State"],["name","Friendly Name"],["group","Member of Group"],["area","In area"],["device","Device"],["device_manufacturer","Device Manufacturer"],["device_model","Device Model"],["attributes","Attribute"],["last_changed","Last Change"],["last_updated","Last Update"],["last_triggered","Last Trigger"],["entity_category","Entity Category"],["integration","Governing integration"]]},jt=([t,e],i)=>{var n;return St.includes(t)?{type:"grid",name:"",schema:[Object.assign(Object.assign({},Ot),{name:`key_${i}`,label:"Property"}),{name:`value_${i}`,selector:null!==(n={attributes:{object:{}}}[t])&&void 0!==n?n:{text:{}},label:"Value"}]}:{type:"Constant",name:"Some filters are not shown",value:"Please switch to the CODE EDITOR to access all options."}},Tt=[{name:"options",selector:{object:{}}}],xt=[{name:"data",selector:{object:{}}}],kt=[{name:"method",label:"Sort method",type:"select",options:[["domain","Entity Domain"],["entity_id","Entity ID"],["friendly_name","Friendly Name"],["state","Entity State"],["last_changed","Last Change"],["last_updated","Last Update"],["last_triggered","Last Trigger"]]},{type:"constant",name:"Sorting options:",value:""},{type:"grid",name:"",schema:[{name:"reverse",type:"boolean",label:"Reverse"},{name:"ignore_case",type:"boolean",label:"Ignore case"},{name:"numeric",type:"boolean",label:"Numeric sort"}]}],Ut=[{type:"grid",name:"",schema:[{name:"show_empty",type:"boolean",label:"Show if empty"},{name:"card_param",type:"string",label:"Parameter to populate"}]}];class Pt extends Y{constructor(){super(...arguments),this._selectedTab=0,this._cardGUIMode=!0,this._cardGUIModeAvailable=!0}setConfig(t){this._config=t}connectedCallback(){super.connectedCallback(),(async()=>{var t,e;if(customElements.get("ha-form"))return;const i=await(null===(e=(t=window).loadCardHelpers)||void 0===e?void 0:e.call(t));if(!i)return;const n=await i.createCardElement({type:"entity"});n&&await n.getConfigElement()})()}_handleSwitchTab(t){this._selectedTab=parseInt(t.detail.index,10)}_addFilterGroup(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteFilterGroup(t){var e;if(!this._config)return;const i=[...null===(e=this._config.filter)||void 0===e?void 0:e.include];i.splice(t,1);const n=Object.assign(Object.assign({},this._config.filter),{include:i});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_moveFilterGroup(t,e){var i;if(!this._config)return;const n=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];[n[t],n[t+e]]=[n[t+e],n[t]];const s=Object.assign(Object.assign({},this._config.filter),{include:n});this._config=Object.assign(Object.assign({},this._config),{filter:s}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_addSpecialEntry(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({type:""});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeSpecialEntry(t,e){var i,n,s,o;if(!this._config)return;const r=null!==(n=Object.assign({},null===(i=e.detail.value)||void 0===i?void 0:i.data))&&void 0!==n?n:{type:""};r.type=null!==(s=r.type)&&void 0!==s?s:"";const a=[...null===(o=this._config.filter)||void 0===o?void 0:o.include];a[t]=r;const l=Object.assign(Object.assign({},this._config.filter),{include:a});this._config=Object.assign(Object.assign({},this._config),{filter:l}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeGroupOptions(t,e){var i;if(!this._config)return;const n=e.detail.value,s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];s[t]=Object.assign({},n);const o=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:o}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeFilter(t,e){var i;if(!this._config)return;const n=((t,e)=>{var i;const n={};for(let s=0;s<=t.filter.include.length+1;s++)void 0!==e[`key_${s}`]&&(n[e[`key_${s}`]]=null!==(i=e[`value_${s}`])&&void 0!==i?i:"");return void 0!==e.key_new&&(n[e.key_new]=""),n})(this._config,e.detail.value),s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];s[t]=Object.assign(Object.assign({},n),{options:s[t].options}),this._config.filter=Object.assign(Object.assign({},this._config.filter),{include:s}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeSortOptions(t){if(!this._config)return;const e=t.detail.value;this._config=Object.assign(Object.assign({},this._config),{sort:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeCardOptions(t){if(!this._config)return;const e=t.detail.value;this._config=Object.assign(Object.assign({},this._config),e),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_showEmptyToggle(){if(!this._config)return;const t=!1===this._config.show_empty;this._config=Object.assign(Object.assign({},this._config),{show_empty:t}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeCardParam(t){if(!this._config)return;const e=""===t.target.value||"entities"===t.target.value?void 0:t.target.value;this._config=Object.assign(Object.assign({},this._config),{card_param:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_getCardConfig(){const t=Object.assign({},this._config.card);return t[this._config.card_param||"entities"]=[],t}_handleCardConfigChanged(t){if(t.stopPropagation(),!this._config)return;const e=Object.assign({},t.detail.config);delete e[this._config.card_param||"entities"],this._config=Object.assign(Object.assign({},this._config),{card:e}),this._cardGUIModeAvailable=t.detail.guiModeAvailable,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteCard(t){this._config&&(this._config=Object.assign({},this._config),delete this._config.card,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}})))}_toggleCardMode(t){var e;null===(e=this._cardEditorEl)||void 0===e||e.toggleMode()}_cardGUIModeChanged(t){t.stopPropagation(),this._cardGUIMode=t.detail.guiMode,this._cardGUIModeAvailable=t.detail.guiModeAvailable}render(){return this.hass&&this._config?U`
+
- ${[this._renderFilterEditor,this._renderSortEditor,this._renderCardEditor][this._selectedTab].bind(this)()} + ${[this._renderFilterEditor,this._renderSortEditor,this._renderCardEditor,this._renderHelp][this._selectedTab].bind(this)()}
- `:V``}_renderFilterEditor(){var t;return(null===(t=this._config.filter)||void 0===t?void 0:t.template)||this._config.entities?V` -
+ `:U``}_renderHelp(){return U` +
+

Auto entities

+

+ See + + euto-entities on github + + for usage instructions. +

+

Not all options are available in the GUI editor.

+
+ `}_renderFilterEditor(){var t;return(null===(t=this._config.filter)||void 0===t?void 0:t.template)||this._config.entities?U` +

Your filter method is not handled by the GUI editor.

Please switch to the CODE EDITOR to access all options.

- `:V` - ${this._config.filter.include.map(((t,e)=>V` -
+ `:U` + ${this._config.filter.include.map(((t,e)=>U` +
- ${void 0===t.type?V` - ${Object.entries(t).map((([t,i],s)=>V` - ${Pt.includes(t)?V` -
- - this._changeFilterKey(e,t,i)} - > - ${Pt.map((t=>V` ${t} `))} - - - this._changeFilterValue(e,t,i)} - > - this._removeFilter(e,t)} - > - - - -
- `:"options"===t?V``:V`

Some filters are not shown

-

- Please switch to the CODE EDITOR to access all - options. -

`} - `))} - this._addFilter(e)}> - Add filter - - {const e=Object.assign({},t);return delete e.options,[...Object.entries(e).map(jt),Object.assign(Object.assign({},Ot),{name:"key_new",label:"Select property"})]})(t)} + .data=${(t=>{const e=Object.assign({},t);return delete e.options,Object.assign({},...Object.entries(e).map((([t,e],i)=>({[`key_${i}`]:t,[`value_${i}`]:e}))))})(t)} + .computeLabel=${t=>{var e;return null!==(e=t.label)&&void 0!==e?e:t.name}} + @value-changed=${t=>this._changeFilter(e,t)} + > +

Options:

+ this._changeGroupOptions(e,t)} - >
- `:V`this._changeSpecialEntry(e,t)} - >`} + > + `:U` + this._changeSpecialEntry(e,t)} + > + `}
`))} @@ -96,56 +91,27 @@ function t(t,e,i,s){var n,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPro Add non-filter entry - `}_renderSortEditor(){var t,e,i,s,n;return V` -
- ${(null===(t=this._config.sort)||void 0===t?void 0:t.method)&&!jt.includes(this._config.sort.method)?V`

- Your sort method is not handled by the GUI editor. -

-

Please switch to the CODE EDITOR to access all options.

`:V` - Method: - - - ${jt.map((t=>V` ${t} `))} - - -

- - this._sortOptionToggle("reverse",t)} - > - -

-

- - this._sortOptionToggle("numeric",t)} - > - -

- `} + `}_renderSortEditor(){var t;const e=null!==(t=this._config.sort)&&void 0!==t?t:{method:"none"};return U` +
+ {var e;return null!==(e=t.label)&&void 0!==e?e:t.name}} + @value-changed=${this._changeSortOptions} + >
- `}_renderCardEditor(){var t;return V` -
- - - - - - ${this._config.card?V` -
+ `}_renderCardEditor(){var t;const e=Object.assign({},this._config);return e.show_empty=null===(t=e.show_empty)||void 0===t||t,U` +
+ {var e;return null!==(e=t.label)&&void 0!==e?e:t.name}} + .data=${e} + @value-changed=${this._changeCardOptions} + > + ${this._config.card?U` +
${!this._cardEditorEl||this._cardGUIMode?"Show code editor":"Show Visual Editor"} - - - + Change card type +
- `:V` + `:U` `}
- `}static get styles(){return[it` + `}static get styles(){return[o` mwc-tab-bar { border-bottom: 1px solid var(--divider-color); } - .filter, - .card { + .box { margin-top: 8px; border: 1px solid var(--divider-color); padding: 12px; } - .filter .option { + .option { display: flex; - align-items: flex-end; - } - .filter .option paper-dropdown-menu { - margin-right: 16px; - width: 150px; - } - .filter .option paper-input { - flex-grow: 2; + align-items: center; + gap: 8px; } - .filter .toolbar, - .card .card-options { + .box .toolbar { display: flex; justify-content: flex-end; width: 100%; + gap: 8px; } .gui-mode-button { margin-right: auto; } - `]}}function Nt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(!(t instanceof Object&&e instanceof Object))return!1;for(const i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i))return!1;if(t[i]!==e[i]){if("object"!=typeof t[i])return!1;if(!Nt(t[i],e[i]))return!1}}for(const i in e)if(e.hasOwnProperty(i)&&!t.hasOwnProperty(i))return!1;return!0}t([Y()],$t.prototype,"_config",void 0),t([K()],$t.prototype,"lovelace",void 0),t([K()],$t.prototype,"hass",void 0),t([Y()],$t.prototype,"_selectedTab",void 0),t([Y()],$t.prototype,"_cardGUIMode",void 0),t([Y()],$t.prototype,"_cardGUIModeAvailable",void 0),t([function(t,e){return(i,s)=>{const n={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof s?Symbol():`__${s}`;n.get=function(){return void 0===this[e]&&(this[e]=this.renderRoot.querySelector(t)),this[e]}}return void 0!==s?Q(n,i,s):X(n,i)}}("hui-card-element-editor")],$t.prototype,"_cardEditorEl",void 0),customElements.define("auto-entities-editor",$t),window.customCards=window.customCards||[],window.customCards.push({type:"auto-entities",name:"Auto Entities",preview:!1,description:"Entity Filter on Steroids. Auto Entities allows you to fill other cards with entities automatically, based on a number of attributes."}),window.queueMicrotask=window.queueMicrotask||(t=>window.setTimeout(t,1));class Tt extends nt{constructor(){super(...arguments),this._updateCooldown={timer:void 0,rerun:!1},this._renderer=t=>{this._template="string"==typeof t?t.split(/[\s,]+/):t}}static getConfigElement(){return document.createElement("auto-entities-editor")}static getStubConfig(){return{card:{type:"entities"},filter:{include:[],exclude:[]}}}setConfig(t){var e,i;if(!t)throw new Error("No configuration.");if(!(null===(e=t.card)||void 0===e?void 0:e.type))throw new Error("No card type specified.");if(!t.filter&&!t.entities)throw new Error("No filters specified.");t=JSON.parse(JSON.stringify(t)),this._config=t,(null===(i=this._config.filter)||void 0===i?void 0:i.template)&&ht(this._config.filter.template)&&pt(this._renderer,this._config.filter.template,{config:t}),this._cardBuilt=new Promise((t=>this._cardBuiltResolve=t)),queueMicrotask((()=>this.update_all()))}connectedCallback(){var t,e;super.connectedCallback(),(null===(e=null===(t=this._config)||void 0===t?void 0:t.filter)||void 0===e?void 0:e.template)&&ht(this._config.filter.template)&&pt(this._renderer,this._config.filter.template,{config:this._config})}disconnectedCallback(){super.disconnectedCallback(),ft(this._renderer)}async update_all(){if(this.card&&(this.card.hass=this.hass),this._updateCooldown.timer)return void(this._updateCooldown.rerun=!0);this._updateCooldown.rerun=!1,this._updateCooldown.timer=window.setTimeout((()=>{this._updateCooldown.timer=void 0,this._updateCooldown.rerun&&this.update_all()}),500);const t=await this.update_entities();this.update_card(t)}async update_card(t){var e,i,s;if(this._entities&&Nt(t,this._entities)&&Nt(this._cardConfig,this._config.card))return;const n=(null===(e=this._cardConfig)||void 0===e?void 0:e.type)!==this._config.card.type;this._entities=t,this._cardConfig=JSON.parse(JSON.stringify(this._config.card));const o=Object.assign({[this._config.card_param||"entities"]:t},this._config.card);if(!this.card||n){const t=await window.loadCardHelpers(),e=console.error;let s=!1;if(console.error=(...t)=>{var i,n,o,r,a,l;3===t.length&&t[2].message&&((null===(n=(i=t[2].message).startsWith)||void 0===n?void 0:n.call(i,"Entities"))||(null===(r=(o=t[2].message).startsWith)||void 0===r?void 0:r.call(o,"Either entities"))||(null===(l=(a=t[2].message).endsWith)||void 0===l?void 0:l.call(a,"entity")))?s=!0:e(...t)},this.card=await t.createCardElement(o),console.error=e,s)return this.card=void 0,this._entities=void 0,this._cardConfig=void 0,void(null===(i=this._cardBuiltResolve)||void 0===i||i.call(this))}else this.card.setConfig(o);null===(s=this._cardBuiltResolve)||void 0===s||s.call(this),this.card.hass=this.hass;const r=0===t.length&&!1===this._config.show_empty;this.style.display=r?"none":null,this.style.margin=r?"0":null,this.card.requestUpdate&&(await this.updateComplete,this.card.requestUpdate())}async update_entities(){var t,e,i,s,n,o;const r=t=>t?"string"==typeof t?{entity:t.trim()}:t:null;let a=[...(null===(e=null===(t=this._config)||void 0===t?void 0:t.entities)||void 0===e?void 0:e.map(r))||[]];if(!this.hass)return a;if(this._template&&(a=a.concat(this._template.map(r))),a=a.filter(Boolean),null===(i=this._config.filter)||void 0===i?void 0:i.include){const t=Object.keys(this.hass.states).map(r);for(const e of this._config.filter.include){if(e.type){a.push(e);continue}let i=[];for(const s of t)await St(this.hass,e,s.entity)&&i.push(JSON.parse(JSON.stringify(Object.assign(Object.assign({},s),e.options)).replace(/this.entity_id/g,s.entity)));if(e.sort&&(i=i.sort(Et(this.hass,e.sort)),e.sort.count)){const t=null!==(s=e.sort.first)&&void 0!==s?s:0;i=i.slice(t,t+e.sort.count)}a=a.concat(i)}}if(null===(n=this._config.filter)||void 0===n?void 0:n.exclude)for(const t of this._config.filter.exclude){const e=[];for(const i of a)void 0!==i.entity&&await St(this.hass,t,i.entity)||e.push(i);a=e}if(this._config.sort&&(a=a.sort(Et(this.hass,this._config.sort)),this._config.sort.count)){const t=null!==(o=this._config.sort.first)&&void 0!==o?o:0;a=a.slice(t,t+this._config.sort.count)}if(this._config.unique){let t=[];for(const e of a)"entity"===this._config.unique&&e.entity&&t.some((t=>t.entity===e.entity))||t.some((t=>Nt(t,e)))||t.push(e);a=t}return a}async updated(t){(t.has("_template")||t.has("hass")&&this.hass)&&queueMicrotask((()=>this.update_all()))}createRenderRoot(){return this}render(){return V`${this.card}`}async getCardSize(){var t,e;let i=0;return await this._cardBuilt,this.card&&this.card.getCardSize&&(i=await this.card.getCardSize()),1===i&&(null===(t=this._entities)||void 0===t?void 0:t.length)&&(i=this._entities.length),0===i&&(null===(e=this._config.filter)||void 0===e?void 0:e.include)&&(i=Object.keys(this._config.filter.include).length),i||5}}t([K()],Tt.prototype,"_config",void 0),t([K()],Tt.prototype,"hass",void 0),t([K()],Tt.prototype,"card",void 0),t([K()],Tt.prototype,"_template",void 0),customElements.get("auto-entities")||(customElements.define("auto-entities",Tt),console.info(`%cAUTO-ENTITIES ${xt} IS INSTALLED`,"color: green; font-weight: bold","")); + a { + color: var(--primary-color); + } + `]}}t([et()],Pt.prototype,"_config",void 0),t([tt()],Pt.prototype,"lovelace",void 0),t([tt()],Pt.prototype,"hass",void 0),t([et()],Pt.prototype,"_selectedTab",void 0),t([et()],Pt.prototype,"_cardGUIMode",void 0),t([et()],Pt.prototype,"_cardGUIModeAvailable",void 0),t([function(t,e){return(({finisher:t,descriptor:e})=>(i,n)=>{var s;if(void 0===n){const n=null!==(s=i.originalKey)&&void 0!==s?s:i.key,o=null!=e?{kind:"method",placement:"prototype",key:n,descriptor:e(i.key)}:{...i,key:n};return null!=t&&(o.finisher=function(e){t(e,n)}),o}{const s=i.constructor;void 0!==e&&Object.defineProperty(i,n,e(n)),null==t||t(s,n)}})({descriptor:i=>{const n={get(){var e,i;return null!==(i=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(t))&&void 0!==i?i:null},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof i?Symbol():"__"+i;n.get=function(){var i,n;return void 0===this[e]&&(this[e]=null!==(n=null===(i=this.renderRoot)||void 0===i?void 0:i.querySelector(t))&&void 0!==n?n:null),this[e]}}return n}})}("hui-card-element-editor")],Pt.prototype,"_cardEditorEl",void 0),customElements.define("auto-entities-editor",Pt),window.customCards=window.customCards||[],window.customCards.push({type:"auto-entities",name:"Auto Entities",preview:!1,description:"Entity Filter on Steroids. Auto Entities allows you to fill other cards with entities automatically, based on a number of attributes."}),window.queueMicrotask=window.queueMicrotask||(t=>window.setTimeout(t,1));class Mt extends Y{constructor(){super(...arguments),this._updateCooldown={timer:void 0,rerun:!1},this._renderer=t=>{this._template="string"==typeof t?t.split(/[\s,]+/):t}}static getConfigElement(){return document.createElement("auto-entities-editor")}static getStubConfig(){return{card:{type:"entities"},filter:{include:[],exclude:[]}}}setConfig(t){var e,i;if(!t)throw new Error("No configuration.");if(!(null===(e=t.card)||void 0===e?void 0:e.type))throw new Error("No card type specified.");if(!t.filter&&!t.entities)throw new Error("No filters specified.");t=JSON.parse(JSON.stringify(t)),this._config=t,(null===(i=this._config.filter)||void 0===i?void 0:i.template)&&ct(this._config.filter.template)&&ht(this._renderer,this._config.filter.template,{config:t}),this._cardBuilt=new Promise((t=>this._cardBuiltResolve=t)),queueMicrotask((()=>this.update_all()))}connectedCallback(){var t,e;super.connectedCallback(),(null===(e=null===(t=this._config)||void 0===t?void 0:t.filter)||void 0===e?void 0:e.template)&&ct(this._config.filter.template)&&ht(this._renderer,this._config.filter.template,{config:this._config})}disconnectedCallback(){super.disconnectedCallback(),ut(this._renderer)}async update_all(){if(this.card&&(this.card.hass=this.hass),this._updateCooldown.timer)return void(this._updateCooldown.rerun=!0);this._updateCooldown.rerun=!1,this._updateCooldown.timer=window.setTimeout((()=>{this._updateCooldown.timer=void 0,this._updateCooldown.rerun&&this.update_all()}),500);const t=await this.update_entities();this.update_card(t)}async update_card(t){var e,i,n,s,o,r,a,l,c,d,h,u;if(this._entities&&Ct(t,this._entities)&&Ct(this._cardConfig,this._config.card))return;const v=(null===(e=this._cardConfig)||void 0===e?void 0:e.type)!==this._config.card.type;this._entities=t,this._cardConfig=JSON.parse(JSON.stringify(this._config.card));const g=Object.assign({[this._config.card_param||"entities"]:t},this._config.card);if(!this.card||v){const t=await window.loadCardHelpers();console.oldError=console.oldError||[];const e=console.error;console.oldError.push(e),console.error=(...t)=>{var i,n,s,o,r,a;3===t.length&&t[2].message&&((null===(n=(i=t[2].message).startsWith)||void 0===n?void 0:n.call(i,"Entities"))||(null===(o=(s=t[2].message).startsWith)||void 0===o?void 0:o.call(s,"Either entities"))||(null===(a=(r=t[2].message).endsWith)||void 0===a?void 0:a.call(r,"entity")))||e(...t)};try{if(this.card=await t.createCardElement(g),"hui-error-card"===this.card.localName){const t=this.card;await customElements.whenDefined("hui-error-card");let e=10;for(;!t._config&&e;)await new Promise((t=>window.setTimeout(t,100))),e--;if((null===(s=null===(n=null===(i=t._config)||void 0===i?void 0:i.error)||void 0===n?void 0:n.startsWith)||void 0===s?void 0:s.call(n,"Entities"))||(null===(a=null===(r=null===(o=t._config)||void 0===o?void 0:o.error)||void 0===r?void 0:r.startsWith)||void 0===a?void 0:a.call(r,"Either entities"))||(null===(d=null===(c=null===(l=t._config)||void 0===l?void 0:l.error)||void 0===c?void 0:c.endsWith)||void 0===d?void 0:d.call(c,"entity")))return this.card=void 0,this._entities=void 0,this._cardConfig=void 0,void(null===(h=this._cardBuiltResolve)||void 0===h||h.call(this))}}finally{console.error=console.oldError.pop()}}else this.card.setConfig(g);null===(u=this._cardBuiltResolve)||void 0===u||u.call(this),this.card.hass=this.hass;const p=0===t.length&&!1===this._config.show_empty;this.style.display=p?"none":null,this.style.margin=p?"0":null,this.card.requestUpdate&&(await this.updateComplete,this.card.requestUpdate())}async update_entities(){var t,e,i,n,s,o;const r=t=>t?"string"==typeof t?{entity:t.trim()}:t:null;let a=[...(null===(e=null===(t=this._config)||void 0===t?void 0:t.entities)||void 0===e?void 0:e.map(r))||[]];if(!this.hass)return a;if(this._template&&(a=a.concat(this._template.map(r))),a=a.filter(Boolean),null===(i=this._config.filter)||void 0===i?void 0:i.include){const t=Object.keys(this.hass.states).map(r);for(const e of this._config.filter.include){if(e.type){a.push(e);continue}let i=[];for(const n of t)await bt(this.hass,e,n.entity)&&i.push(JSON.parse(JSON.stringify(Object.assign(Object.assign({},n),e.options)).replace(/this.entity_id/g,n.entity)));if(e.sort&&(i=i.sort(Et(this.hass,e.sort)),e.sort.count)){const t=null!==(n=e.sort.first)&&void 0!==n?n:0;i=i.slice(t,t+e.sort.count)}a=a.concat(i)}}if(null===(s=this._config.filter)||void 0===s?void 0:s.exclude)for(const t of this._config.filter.exclude){const e=[];for(const i of a)void 0!==i.entity&&await bt(this.hass,t,i.entity)||e.push(i);a=e}if(this._config.sort&&(a=a.sort(Et(this.hass,this._config.sort)),this._config.sort.count)){const t=null!==(o=this._config.sort.first)&&void 0!==o?o:0;a=a.slice(t,t+this._config.sort.count)}if(this._config.unique){let t=[];for(const e of a)"entity"===this._config.unique&&e.entity&&t.some((t=>t.entity===e.entity))||t.some((t=>Ct(t,e)))||t.push(e);a=t}return a}async updated(t){(t.has("_template")||t.has("hass")&&this.hass)&&queueMicrotask((()=>this.update_all()))}createRenderRoot(){return this}render(){return U`${this.card}`}async getCardSize(){var t,e;let i=0;return await this._cardBuilt,this.card&&this.card.getCardSize&&(i=await this.card.getCardSize()),1===i&&(null===(t=this._entities)||void 0===t?void 0:t.length)&&(i=this._entities.length),0===i&&(null===(e=this._config.filter)||void 0===e?void 0:e.include)&&(i=Object.keys(this._config.filter.include).length),i||5}}t([tt()],Mt.prototype,"_config",void 0),t([tt()],Mt.prototype,"hass",void 0),t([tt()],Mt.prototype,"card",void 0),t([tt()],Mt.prototype,"_template",void 0),customElements.get("auto-entities")||(customElements.define("auto-entities",Mt),console.groupCollapsed(`%cAUTO-ENTITIES ${At} IS INSTALLED`,"color: green; font-weight: bold"),console.log("Readme:","https://github.com/thomasloven/lovelace-auto-entities"),console.groupEnd()); diff --git a/config/www/community/lovelace-auto-entities/auto-entities.js.gz b/config/www/community/lovelace-auto-entities/auto-entities.js.gz index d6b999710a1840685cd136ac715ab76edf114116..1ec4deb9b6342e0a42a4b246d4925d7f4e7603ab 100644 GIT binary patch literal 13125 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

a%h22~!LO*N>KW|Rd1?ulf{ZRDW)*laDyKz{C~ zoXxAqnE)ZN(#)PEZIIjJ45bU`Vcq?jC=k#cx_y99Jo?Sx`BEm z8E-=EDW{guy#;YeT7`OhHJs}A7d9BqM-|or)~aP+;3^%t-b&rk4R*P4O*q)(V7TLX zL#g!GN5^yHGF=@Nmxjj8;_cwLly3W0j|{M(yuDnVBQb6)*Mkz5n&%c+9<}4w5#HLJ ziUPH*kKt{mMW}`q>tW-|pLp4hU;9B(>$i(i^Ct0u`Tn0&Wv2|sQ`z~oA5O1<$qiid37>Vsphc z)k85_#oeU!dNl4SX~hHE+fnlL4Q-2^=)^_Iu2XgsZ5`+}f)`b(!%@OhfICg6@E1l@ zg^tw%?pqW$m2+DxaWezoRd5Opi$<7K!0-8$-i0InJVyZzwQd9FBB|IE8&4eZ2q7Mz zH15{IgLiU_FojF@BAo!blj?okn@X1%9m=dq9E>jTO6LHto)rgvUVO@dA93jG7=$6Z z(c=||hD&*IQBbmSnMZiFqPYtSTmx-AY3;~utGIjN@KD`Cxi|Wy3dTEoKKhm#EvIz~ zrt^kC>+$Jcs`8EYPWkdehv10DL_CRk8V4x@UtXX9Q61O^1jjz8pLK1YVp430f}MPR zRe~ji;Tb1oi7ySjEF8@{=n`^Q92YWQhZM0s{mhDDrTd#z)`?T0Kj|`MQ`NYN52drw z`fl02M%1ZFs|hYH!=}?jUh7`$=D|&Ma4YaWC5lsTXg+#`H}v=H9~mXCR0&05!Ce&s z9rR*F3VpYPV)T>%h@*L0iJRG5`EMBLtJnC-svp>E%=7g2j#w3Ec=`){?;D?-3D_ME z+!zGVzahL~C-}~TK>re~nxRA+-`u(LwVh?VXBEh9VwQr{uoO;?ilxHe!kE*hTtBZ0 ziBu6DVH?&bq zt#tJamQ0?A*fbl(GEuRwz__g?m;}?{Dp(HG1n7nzJ;KWx0z1(csd^m=*4PuwXa^Qv z$6jBg*>Q*V+stsQwcSi4fjI*kF8xw>)9hV*tqZOMv=g}ZpfE>ZK7H|=IwTf9VUSHU zsF+Uus)=>}RKA5$WGnK$3RU^2H z`?V(%rmOY(%6iwVrU&w}+m+3Hx;&~_fXu7$>EZ_Huu;8dzK&F0J^+s8dc8E@2sUXG z>IsZ^-(q_AAI%`AY$$z%@nR^pNXfzui~_=Khxz+vCP7j%P&q3uuGYXOmfI2@Z*|3; zj7@bsza`}xjX-InO4RFvpr`{6d(5+yARUZ7r0b3Ah>NErk)?=3nxCq|YR#cv%3}yj ziOXj+9ybD$R6R+=Nu!!5^^{(uPEgaHB)pZUTEthV6RFpF--(+x{NOXrpmol2yl1zS zr@@t1f%&q3H2KCeMB>$6bve!6tm#wSkHILO0Iz6{Q~K$hSTKrk17H4td0giB zpj7+qQ#`Cn1?W}SwmWNoK&{Ig5crPOSZ&Zp3YT;I;q&6tPW1 literal 13338 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