From 0314ddf9ef28f4ab4305983d73365f852713594f Mon Sep 17 00:00:00 2001 From: ccostan Date: Mon, 19 Apr 2021 09:24:44 -0400 Subject: [PATCH] Update for Speech corrections. New version and some deprecation chnges. --- config/.HA_VERSION | 2 +- config/automation/dark_rainy_day.yaml | 2 +- config/configuration.yaml | 1 - config/homekit.yaml | 2 +- .../lovelace-auto-entities/auto-entities.js | 196 +++++++++++++++++- .../auto-entities.js.gz | Bin 4373 -> 12990 bytes .../lovelace-auto-entities/rollup.config.js | 24 +++ .../rollup.config.js.gz | Bin 0 -> 327 bytes .../lovelace-auto-entities/webpack.config.js | 10 - .../webpack.config.js.gz | Bin 175 -> 0 bytes .../www/community/vacuum-card/vacuum-card.js | 75 +++---- .../community/vacuum-card/vacuum-card.js.gz | Bin 51075 -> 51435 bytes .../images/branding/solar_readings.png | Bin 63394 -> 63973 bytes 13 files changed, 260 insertions(+), 52 deletions(-) create mode 100644 config/www/community/lovelace-auto-entities/rollup.config.js create mode 100644 config/www/community/lovelace-auto-entities/rollup.config.js.gz delete mode 100644 config/www/community/lovelace-auto-entities/webpack.config.js delete mode 100644 config/www/community/lovelace-auto-entities/webpack.config.js.gz diff --git a/config/.HA_VERSION b/config/.HA_VERSION index d507575e..96478c3e 100755 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2021.3.2 \ No newline at end of file +2021.4.3 \ No newline at end of file diff --git a/config/automation/dark_rainy_day.yaml b/config/automation/dark_rainy_day.yaml index 044c4e4c..7dfdabc4 100755 --- a/config/automation/dark_rainy_day.yaml +++ b/config/automation/dark_rainy_day.yaml @@ -63,7 +63,7 @@ - service: script.speech_engine data: - value1: "It is getting a little dark inside the house because of the {{trigger.entity_id.split('_')[2]|replace('precip','rain')|replace('counter','lightning') }} {{trigger.entity_id.split('_')[3]|replace('intensity',' ')}} outside. I will turn on some extra lights in the living room." + value1: "It is getting a little dark inside the house because of the {{trigger.entity_id.split('_')[2]|replace('precip','rain')|replace('counter','lightning')|replace('carlo','rain') }} {{trigger.entity_id.split('_')[3]|replace('intensity',' ')| replace('carlo','and clouds')}} outside. I will turn on some extra lights in the living room." call_window_check: 1 call_garage_check: 1 diff --git a/config/configuration.yaml b/config/configuration.yaml index c36611de..d053905e 100755 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -91,7 +91,6 @@ frontend: discovery: updater: - include_used_components: true sun: diff --git a/config/homekit.yaml b/config/homekit.yaml index 604e54fb..1c7e1306 100755 --- a/config/homekit.yaml +++ b/config/homekit.yaml @@ -4,7 +4,7 @@ # Read all about this and more at https://vCloudInfo.com # HomeKit control file. ###################################################################################################### -# auto_start: false + filter: include_domains: - climate diff --git a/config/www/community/lovelace-auto-entities/auto-entities.js b/config/www/community/lovelace-auto-entities/auto-entities.js index ec8ecfe0..fe39af4d 100644 --- a/config/www/community/lovelace-auto-entities/auto-entities.js +++ b/config/www/community/lovelace-auto-entities/auto-entities.js @@ -1,2 +1,194 @@ -!function(t){var e={};function i(r){if(e[r])return e[r].exports;var s=e[r]={i:r,l:!1,exports:{}};return t[r].call(s.exports,s,s.exports,i),s.l=!0,s.exports}i.m=t,i.c=e,i.d=function(t,e,r){i.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},i.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.t=function(t,e){if(1&e&&(t=i(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(i.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)i.d(r,s,function(e){return t[e]}.bind(null,s));return r},i.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return i.d(e,"a",e),e},i.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},i.p="",i(i.s=1)}([function(t){t.exports=JSON.parse('{"name":"auto-entities","private":true,"version":"1.7.0","description":"","scripts":{"build":"webpack","watch":"webpack --watch --mode=development","update-card-tools":"npm uninstall card-tools && npm install thomasloven/lovelace-card-tools"},"author":"Thomas Lovén","license":"MIT","devDependencies":{"webpack":"^4.44.2","webpack-cli":"^3.3.12"},"dependencies":{"card-tools":"github:thomasloven/lovelace-card-tools"}}')},function(t,e,i){"use strict";i.r(e);const r=customElements.get("home-assistant-main")?Object.getPrototypeOf(customElements.get("home-assistant-main")):Object.getPrototypeOf(customElements.get("hui-view")),s=r.prototype.html;r.prototype.css;function n(){return document.querySelector("hc-main")?document.querySelector("hc-main").hass:document.querySelector("home-assistant")?document.querySelector("home-assistant").hass:void 0}const a=n().callWS({type:"config/area_registry/list"}),o=n().callWS({type:"config/device_registry/list"}),l=n().callWS({type:"config/entity_registry/list"});async function c(){return window.cardToolsData=window.cardToolsData||{areas:await a,devices:await o,entities:await l},window.cardToolsData}function u(t){const e=window.cardToolsData;let i=[];if(!t)return i;for(const r of e.devices)r.area_id===t.area_id&&i.push(r);return i}function d(t){const e=window.cardToolsData;let i=[];if(!t)return i;for(const r of e.entities)r.device_id===t.id&&i.push(r.entity_id);return i}function f(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}function h(t,e){return function(i){const r="string"==typeof i?t.states[i]:t.states[i.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(!f(n,r.entity_id.split(".")[0]))return!1;break;case"entity_id":if(!f(n,r.entity_id))return!1;break;case"state":if(!f(n,r.state))return!1;break;case"name":if(!r.attributes.friendly_name||!f(n,r.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(r.entity_id)))return!1;break;case"attributes":for(const[t,e]of Object.entries(n)){let i=t.split(" ")[0].trim(),s=r.attributes;for(;i&&s;){let t;[t,i]=i.split(":"),s=s[t]}if(void 0===s||void 0!==e&&!f(e,s))return!1}break;case"not":if(h(t,n)(i))return!1;break;case"or":for(const e of n)if(h(t,e)(i))return!0;return!1;case"device":if(!window.cardToolsData||!window.cardToolsData.devices)return!1;let e=!1;for(const t of window.cardToolsData.devices)(f(n,t.name_by_user)||f(n,t.name))&&d(t).includes(r.entity_id)&&(e=!0);if(!e)return!1;break;case"area":if(!window.cardToolsData||!window.cardToolsData.areas)return!1;let s=!1;for(const t of window.cardToolsData.areas)f(n,t.name)&&u(t).flatMap(d).includes(r.entity_id)&&(s=!0);if(!s)return!1;break;case"last_changed":if(!f(n,((new Date).getTime()-new Date(r.last_changed).getTime())/6e4))return!1;break;case"last_updated":if(!f(n,((new Date).getTime()-new Date(r.last_updated).getTime())/6e4))return!1;break;default:return!1}return!0}}function p(t,e){return"string"==typeof e&&(e={method:e}),function(i,r){const s="string"==typeof i?t.states[i]:t.states[i.entity],n="string"==typeof r?t.states[r]:t.states[r.entity];if(void 0===s||void 0===n)return 0;const[a,o]=e.reverse?[-1,1]:[1,-1];function l(t,i){return e.ignore_case&&t.toLowerCase&&(t=t.toLowerCase()),e.ignore_case&&i.toLowerCase&&(i=i.toLowerCase()),e.numeric&&(isNaN(parseFloat(t))&&isNaN(parseFloat(i))||(t=isNaN(parseFloat(t))?void 0:parseFloat(t),i=isNaN(parseFloat(i))?void 0:parseFloat(i))),void 0===t&&void 0===i?0:void 0===t?a:void 0===i||ti?a:0}switch(e.method){case"domain":return l(s.entity_id.split(".")[0],n.entity_id.split(".")[0]);case"entity_id":return l(s.entity_id,n.entity_id);case"friendly_name":case"name":return l(s.attributes.friendly_name||s.entity_id.split(".")[1],n.attributes.friendly_name||n.entity_id.split(".")[1]);case"state":return l(s.state,n.state);case"attribute":let t=s.attributes,i=n.attributes,r=e.attribute;for(;r;){let e;if([e,r]=r.split(":"),t=t[e],i=i[e],void 0===t&&void 0===i)return 0;if(void 0===t)return a;if(void 0===i)return o}return l(t,i);case"last_changed":return e.numeric=!0,l(new Date(n.last_changed).getTime(),new Date(s.last_changed).getTime());case"last_updated":return e.numeric=!0,l(new Date(n.last_updated).getTime(),new Date(s.last_updated).getTime());case"last_triggered":return null==s.attributes.last_triggered||null==n.attributes.last_triggered?0:(e.numeric=!0,l(new Date(n.attributes.last_triggered).getTime(),new Date(s.attributes.last_triggered).getTime()));default:return 0}}}function g(t,e,i=null){if((t=new Event(t,{bubbles:!0,cancelable:!1,composed:!0})).detail=e||{},i)i.dispatchEvent(t);else{var r=function(){var t=document.querySelector("hc-main");return t=t?(t=(t=(t=t&&t.shadowRoot)&&t.querySelector("hc-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-view")||t.querySelector("hui-panel-view"):(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=document.querySelector("home-assistant"))&&t.shadowRoot)&&t.querySelector("home-assistant-main"))&&t.shadowRoot)&&t.querySelector("app-drawer-layout partial-panel-resolver"))&&t.shadowRoot||t)&&t.querySelector("ha-panel-lovelace"))&&t.shadowRoot)&&t.querySelector("hui-root"))&&t.shadowRoot)&&t.querySelector("ha-app-layout"))&&t.querySelector("#view"))&&t.firstElementChild}();r&&r.dispatchEvent(t)}}c();let m=window.cardHelpers;const y=new Promise(async(t,e)=>{m&&t();const i=async()=>{m=await window.loadCardHelpers(),window.cardHelpers=m,t()};window.loadCardHelpers?i():window.addEventListener("load",async()=>{!async function(){if(customElements.get("hui-view"))return!0;await customElements.whenDefined("partial-panel-resolver");const t=document.createElement("partial-panel-resolver");if(t.hass={panels:[{url_path:"tmp",component_name:"lovelace"}]},t._updateRoutes(),await t.routerOptions.routes.tmp.load(),!customElements.get("ha-panel-lovelace"))return!1;const e=document.createElement("ha-panel-lovelace");e.hass=n(),void 0===e.hass&&(await new Promise(t=>{window.addEventListener("connection-status",e=>{console.log(e),t()},{once:!0})}),e.hass=n()),e.panel={config:{mode:null}},e._fetchConfig()}(),window.loadCardHelpers&&i()})});function w(t,e){const i={type:"error",error:t,origConfig:e},r=document.createElement("hui-error-card");return customElements.whenDefined("hui-error-card").then(()=>{const t=document.createElement("hui-error-card");t.setConfig(i),r.parentElement&&r.parentElement.replaceChild(t,r)}),y.then(()=>{g("ll-rebuild",{},r)}),r}function _(t,e){if(!e||"object"!=typeof e||!e.type)return w(`No ${t} type configured`,e);let i=e.type;if(i=i.startsWith("custom:")?i.substr("custom:".length):`hui-${i}-${t}`,customElements.get(i))return function(t,e){let i=document.createElement(t);try{i.setConfig(JSON.parse(JSON.stringify(e)))}catch(t){i=w(t,e)}return y.then(()=>{g("ll-rebuild",{},i)}),i}(i,e);const r=w(`Custom element doesn't exist: ${i}.`,e);r.style.display="None";const s=setTimeout(()=>{r.style.display=""},2e3);return customElements.whenDefined(i).then(()=>{clearTimeout(s),g("ll-rebuild",{},r)}),r}const b="lovelace-player-device-id";function v(){if(!localStorage[b]){const t=()=>Math.floor(1e5*(1+Math.random())).toString(16).substring(1);window.fully&&"function"==typeof fully.getDeviceId?localStorage[b]=fully.getDeviceId():localStorage[b]=`${t()}${t()}-${t()}${t()}`}return localStorage[b]}let S=v();const E=new URLSearchParams(window.location.search);var O;E.get("deviceID")&&null!==(O=E.get("deviceID"))&&("clear"===O?localStorage.removeItem(b):localStorage[b]=O,S=v());class T extends r{static get properties(){return{hass:{}}}setConfig(t){if(!t)throw new Error("No configuration.");if(!t.card||!t.card.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?(this._config=t,this.hass=this.hass):(this._config=t,this.hass=n(),this._getEntities(),this.cardConfig={[t.card_param||"entities"]:this.entities,...t.card},this.card=function(t){return m?m.createCardElement(t):_("card",t)}(this.cardConfig)),t.filter&&t.filter.template&&(this.template="",(String(t.filter.template).includes("{%")||String(t.filter.template).includes("{{"))&&function(t,e,i,r=!0){t||(t=n().connection);let s={user:n().user.name,browser:S,hash:location.hash.substr(1)||" ",...i.variables},a=i.template,o=i.entity_ids;t.subscribeMessage(t=>{if(r){let i=String(t.result);const r=/_\([^)]*\)/g;i=i.replace(r,t=>n().localize(t.substring(2,t.length-1))||t),e(i)}else e(t.result)},{type:"render_template",template:a,variables:s,entity_ids:o})}(null,t=>{this.template=t,this._getEntities()},{template:t.filter.template,variables:{config:t},entity_ids:t.filter.entity_ids},!1)),c().then(()=>this._getEntities())}_getEntities(){const t=t=>t?"string"==typeof t?{entity:t.trim()}:t:null;let e=[];if(this._config.entities&&(e=e.concat(this._config.entities.map(t))),this.hass&&this._config.filter){if(this.template&&(e="string"==typeof this.template?e.concat(this.template.split(/[\s,]+/).map(t)):e.concat(this.template.map(t))),e=e.filter(Boolean),this._config.filter.include){const i=Object.keys(this.hass.states).map(t);for(const t of this._config.filter.include){if(void 0!==t.type){e.push(t);continue}let r=i.filter(h(this.hass,t)).map(e=>JSON.parse(JSON.stringify(new Object({...e,...t.options})).replace(/this.entity_id/g,e.entity)));void 0!==t.sort&&(r=r.sort(p(this.hass,t.sort))),e=e.concat(r)}}if(this._config.filter.exclude)for(const t of this._config.filter.exclude)e=e.filter(e=>"string"!=typeof e&&void 0===e.entity||!h(this.hass,t)(e));if(this._config.sort&&(e=e.sort(p(this.hass,this._config.sort)),this._config.sort.count)){const t=this._config.sort.first||0;e=e.slice(t,t+this._config.sort.count)}if(this._config.unique){function i(t,e){return typeof t==typeof e&&("object"!=typeof t?t===e:Object.keys(t).lenght===Object.keys(e).length&&(!Object.keys(t).some(t=>!Object.keys(e).includes(t))&&Object.keys(t).every(r=>i(t[r],e[r]))))}let t=[];for(const r of e)"entity"===this._config.unique&&t.some(t=>t.entity===r.entity)||t.some(t=>i(t,r))||t.push(r);e=t}this.entities=e}else this.entities=e}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 i=0;ithis._getEntities(),0))}createRenderRoot(){return this}render(){return s` - ${this.card}`}getCardSize(){let t=0;return this.card&&this.card.getCardSize&&(t=this.card.getCardSize()),1===t&&this.entities.length&&(t=this.entities.length),0===t&&this._config.filter&&this._config.filter.include&&(t=Object.keys(this._config.filter.include).length),t||1}}if(!customElements.get("auto-entities")){customElements.define("auto-entities",T);const t=i(0);console.info(`%cAUTO-ENTITIES ${t.version} IS INSTALLED`,"color: green; font-weight: bold","")}}]); \ No newline at end of file +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 c=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},c=t=>-1!==t.index,l=()=>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,c=0;const l=[];let d=null;for(;n.nextNode();){a++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),e.has(t)&&(l.push(t),null===d&&(d=t)),null!==d&&c++;void 0!==r&&r.index===a;)r.index=null!==d?-1:r.index-c,o=p(s,o),r=s[o]}l.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,l=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 P(t,e.slice(1),i).parts}if("@"===n)return[new T(t,e.slice(1),s.eventContext)];if("?"===n)return[new j(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"],G=new Set,W=(t,e,i)=>{G.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,c=-1;for(;o.nextNode();)for(c++,o.currentNode===i&&(a=u(e),i.parentNode.insertBefore(e,i));-1!==r&&n[r].index===c;){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 c=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==c)e.insertBefore(c.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&&!G.has(n),c=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,c,Object.assign({templateFactory:D(n)},s)),a){const t=U.get(c);U.delete(c);const s=t.value instanceof m?t.value.template:void 0;W(n,c,s),i(e,e.firstChild),e.appendChild(c),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 ct=at();const lt=new URLSearchParams(window.location.search);var dt;function ht(t){return!!String(t).includes("{%")||(!!String(t).includes("{{")||void 0)}lt.get("deviceID")&&null!==(dt=lt.get("deviceID"))&&("clear"===dt?localStorage.removeItem(rt):localStorage[rt]=dt,ct=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:ct,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,c]=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||te?a:0}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)=>(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)=>(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;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:(i.numeric=!0,Ct(new Date(null===(o=null==t?void 0:t.attributes)||void 0===o?void 0:o.last_triggered).getTime(),new Date(null===(r=null==e?void 0:e.attributes)||void 0===r?void 0:r.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.8.5";const jt=["domain","entity_id","state","name","group","device","area","last_changed","last_updated","last_triggered"],Pt=["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=jt.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=jt[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=Pt[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` +
+
+ + + + + +
+
+ ${[this._renderFilterEditor,this._renderSortEditor,this._renderCardEditor][this._selectedTab].bind(this)()} +
+
+ `:V``}_renderFilterEditor(){return V` + ${this._config.filter.include.map(((t,e)=>V` +
+
+ this._moveFilterGroup(e,-1)} + > + + + this._moveFilterGroup(e,1)} + > + + + this._deleteFilterGroup(e)} + > + + +
+ ${void 0===t.type?V` + ${Object.entries(t).map((([t,i],s)=>V` + ${jt.includes(t)?V` +
+ + this._changeFilterKey(e,t,i)} + > + ${jt.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 + + this._changeGroupOptions(e,t)} + > + `:V`this._changeSpecialEntry(e,t)} + >`} +
+ `))} + + Add filter group + + + Add non-filter entry + + `}_renderSortEditor(){var t,e,i,s;return V` +
+ ${(null===(t=this._config.sort)||void 0===t?void 0:t.method)&&!Pt.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: + + + ${Pt.map((t=>V` ${t} `))} + + + + this._sortOptionToggle("reverse",t)} + > + + `} +
+ `}_renderCardEditor(){var t;return V` +
+ + + + + + ${this._config.card?V` +
+ + ${!this._cardEditorEl||this._cardGUIMode?"Show code editor":"Show Visual Editor"} + + + + +
+ + `:V` + + `} +
+ `}static get styles(){return[it` + mwc-tab-bar { + border-bottom: 1px solid var(--divider-color); + } + + .filter, + .card { + margin-top: 8px; + border: 1px solid var(--divider-color); + padding: 12px; + } + .filter .option { + display: flex; + align-items: flex-end; + } + .filter .option paper-dropdown-menu { + margin-right: 16px; + width: 150px; + } + .filter .option paper-input { + flex-grow: 2; + } + + .filter .toolbar, + .card .card-options { + display: flex; + justify-content: flex-end; + width: 100%; + } + .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."});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;if(this._entities&&Nt(t,this._entities)&&Nt(this._cardConfig,this._config.card))return;const s=(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 n=Object.assign({[this._config.card_param||"entities"]:t},this._config.card);if(!this.card||s){const t=await window.loadCardHelpers();this.card=await t.createCardElement(n)}else this.card.setConfig(n);null===(i=this._cardBuiltResolve)||void 0===i||i.call(this),this.card.hass=this.hass;const o=0===t.length&&!1===this._config.show_empty;this.style.display=o?"none":null,this.style.margin=o?"0":null,this.card.requestUpdate&&(await this.updateComplete,this.card.requestUpdate())}async update_entities(){var t,e,i;const s=t=>t?"string"==typeof t?{entity:t.trim()}:t:null;let n=[...(null===(e=null===(t=this._config)||void 0===t?void 0:t.entities)||void 0===e?void 0:e.map(s))||[]];if(!this.hass||!this._config.filter)return n;if(this._template&&(n=n.concat(this._template.map(s))),n=n.filter(Boolean),this._config.filter.include){const t=Object.keys(this.hass.states).map(s);for(const e of this._config.filter.include){if(e.type){n.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)));e.sort&&(i=i.sort(Et(this.hass,e.sort))),n=n.concat(i)}}if(this._config.filter.exclude)for(const t of this._config.filter.exclude){const e=[];for(const i of n)void 0!==i.entity&&await St(this.hass,t,i.entity)||e.push(i);n=e}if(this._config.sort&&(n=n.sort(Et(this.hass,this._config.sort)),this._config.sort.count)){const t=null!==(i=this._config.sort.first)&&void 0!==i?i:0;n=n.slice(t,t+this._config.sort.count)}if(this._config.unique){let t=[];for(const e of n)"entity"===this._config.unique&&t.some((t=>t.entity===e.entity))||t.some((t=>Nt(t,e)))||t.push(e);n=t}return n}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","")); 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 9ab8d0f36059ff7d4b7fb533fa9204304f0120e4..073ad758268572fc3ca1ddebacee7732f1efd9be 100644 GIT binary patch literal 12990 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 PnLqhIi5vEEuQC7t6a1I% diff --git a/config/www/community/lovelace-auto-entities/rollup.config.js b/config/www/community/lovelace-auto-entities/rollup.config.js new file mode 100644 index 00000000..47d270d4 --- /dev/null +++ b/config/www/community/lovelace-auto-entities/rollup.config.js @@ -0,0 +1,24 @@ +import nodeResolve from "@rollup/plugin-node-resolve"; +import json from "@rollup/plugin-json"; +import typescript from "rollup-plugin-typescript2"; +import { terser } from "rollup-plugin-terser"; +import babel from "@rollup/plugin-babel"; + +const dev = process.env.ROLLUP_WATCH; + +export default { + input: "src/main.ts", + output: { + file: "auto-entities.js", + format: "es", + }, + plugins: [ + nodeResolve(), + json(), + typescript(), + babel({ + exclude: "node_modules/**", + }), + !dev && terser({ format: { comments: false } }), + ], +}; diff --git a/config/www/community/lovelace-auto-entities/rollup.config.js.gz b/config/www/community/lovelace-auto-entities/rollup.config.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e59d7042f1067bc2d76b4bdd6beea7a165e0bef GIT binary patch literal 327 zcmV-N0l5AjiwFq3Tw7oQ|8j3^Y;|xhV{dL|X=g5Ka{z6TF>Avx5QTUDimQi^hS-LV z35Av}9Re+(r9&yfvCl<8(g~duQiA_`CCjNhWD(}x_fF4GLK(6SG_|-zCV52YEGftz zEJ^82Wu*TWx`;qw6Opeok!%MheVvcW#JL}X+*o1UNGG@$;Yq%mJZErd87=hJJ%c#m z`+AS^dX_;7WY&;o2Q41q9*m_1nM>5ia{IE`yua=~9^amx1BRzzV~btwWeAc12yMJu zLC&_RR4sJrIA4Z2c{d1=0qBIp0M*`6f!YZtkjq0NgGyG_aS5hLACDA~SMWJ7|K4GK zn{2Vk%lA~&WitHRJY5ffr$+iVW{8V+idrv`tHolB(2uU0*uiWzHatK7WjjMdN`>qp ZQCCaG(0(#~Ewg@|{Q~{J9tST1008@+md5}9 literal 0 HcmV?d00001 diff --git a/config/www/community/lovelace-auto-entities/webpack.config.js b/config/www/community/lovelace-auto-entities/webpack.config.js deleted file mode 100644 index 452cd0a8..00000000 --- a/config/www/community/lovelace-auto-entities/webpack.config.js +++ /dev/null @@ -1,10 +0,0 @@ -const path = require('path') - -module.exports = { - entry: './src/main.js', - mode: 'production', - output: { - filename: 'auto-entities.js', - path: path.resolve(__dirname) - } -} \ No newline at end of file diff --git a/config/www/community/lovelace-auto-entities/webpack.config.js.gz b/config/www/community/lovelace-auto-entities/webpack.config.js.gz deleted file mode 100644 index 11f298f1cfef1162ba06f624123fa05bd9ff901c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 175 zcmV;g08sxQiwFot5=CGF|953#aA9L>E@N+QW@%?GYI6WZj?oIkAPhy{{R-b~VYBbT zzNLuGSVn7HjH6@p-=|X8eF!A?o=XD7EIN64=$mGE6=WDp+s&xdMoU@2!k&mF*Th%p zDu}`#r;VL5hiUT|?K7K8_bLL_N?g$(Nb$T=kyON;4NZ4kA^NSQeG$6WRuqK%?`mqV dxIQgIru7ZOJTJ(N9DC|e#}AN$wWG!W003nNQa%6x diff --git a/config/www/community/vacuum-card/vacuum-card.js b/config/www/community/vacuum-card/vacuum-card.js index 301e2889..c775480c 100644 --- a/config/www/community/vacuum-card/vacuum-card.js +++ b/config/www/community/vacuum-card/vacuum-card.js @@ -25,7 +25,7 @@ const t="undefined"!=typeof window&&null!=window.customElements&&void 0!==window * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -const h=new WeakMap,m=t=>"function"==typeof t&&h.has(t),f={},g={}; +const h=new WeakMap,m=t=>"function"==typeof t&&h.has(t),f={},_={}; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -39,7 +39,7 @@ const h=new WeakMap,m=t=>"function"==typeof t&&h.has(t),f={},g={}; * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -class _{constructor(t,e,a){this.__parts=[],this.template=t,this.processor=e,this.options=a}update(t){let e=0;for(const a of this.__parts)void 0!==a&&a.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const e=t?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),a=[],o=this.template.parts,n=document.createTreeWalker(e,133,null,!1);let r,i=0,l=0,c=n.nextNode();for(;inull===t||!("object"==typeof t||"function"==typeof t),S=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,a){this.dirty=!0,this.element=t,this.name=e,this.strings=a,this.parts=[];for(let t=0;t{try{const t={get capture(){return x=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class j{constructor(t,e,a){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=a,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=f,t(this)}if(this.__pendingValue===f)return;const t=this.__pendingValue,e=this.value,a=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),o=null!=t&&(null==e||a);a&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),o&&(this.__options=W(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=f}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const W=t=>t&&(x?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) + */const y=t=>null===t||!("object"==typeof t||"function"==typeof t),S=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class w{constructor(t,e,a){this.dirty=!0,this.element=t,this.name=e,this.strings=a,this.parts=[];for(let t=0;t{try{const t={get capture(){return x=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class j{constructor(t,e,a){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=a,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=f,t(this)}if(this.__pendingValue===f)return;const t=this.__pendingValue,e=this.value,a=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),o=null!=t&&(null==e||a);a&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),o&&(this.__options=M(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=f}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const M=t=>t&&(x?{capture:t.capture,passive:t.passive,once:t.once}:t.capture) /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -78,7 +78,7 @@ class _{constructor(t,e,a){this.__parts=[],this.template=t,this.processor=e,this * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */;function M(t){let e=C.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},C.set(t.type,e));let o=e.stringsArray.get(t.strings);if(void 0!==o)return o;const n=t.strings.join(a);return o=e.keyString.get(n),void 0===o&&(o=new r(t,t.getTemplateElement()),e.keyString.set(n,o)),e.stringsArray.set(t.strings,o),o}const C=new Map,P=new WeakMap; + */;function W(t){let e=C.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},C.set(t.type,e));let o=e.stringsArray.get(t.strings);if(void 0!==o)return o;const n=t.strings.join(a);return o=e.keyString.get(n),void 0===o&&(o=new r(t,t.getTemplateElement()),e.keyString.set(n,o)),e.stringsArray.set(t.strings,o),o}const C=new Map,P=new WeakMap; /** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. @@ -131,7 +131,7 @@ class{handleAttributeExpressions(t,e,a,o){const n=e[0];if("."===n){return new z( * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt - */,I=(t,e)=>`${t}--${e}`;let U=!0;void 0===window.ShadyCSS?U=!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."),U=!1);const O=t=>e=>{const o=I(e.type,t);let n=C.get(o);void 0===n&&(n={stringsArray:new WeakMap,keyString:new Map},C.set(o,n));let i=n.stringsArray.get(e.strings);if(void 0!==i)return i;const s=e.strings.join(a);if(i=n.keyString.get(s),void 0===i){const a=e.getTemplateElement();U&&window.ShadyCSS.prepareTemplateDom(a,t),i=new r(e,a),n.keyString.set(s,i)}return n.stringsArray.set(e.strings,i),i},Z=["html","svg"],T=new Set,A=(t,e,a)=>{T.add(t);const o=a?a.element:document.createElement("template"),n=e.querySelectorAll("style"),{length:r}=n;if(0===r)return void window.ShadyCSS.prepareTemplateStyles(o,t);const i=document.createElement("style");for(let t=0;t{Z.forEach(e=>{const a=C.get(I(e,t));void 0!==a&&a.keyString.forEach(t=>{const{element:{content:e}}=t,a=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{a.add(t)}),u(t,a)})})})(t);const s=o.content;a?function(t,e,a=null){const{element:{content:o},parts:n}=t;if(null==a)return void o.appendChild(e);const r=document.createTreeWalker(o,133,null,!1);let i=d(n),s=0,l=-1;for(;r.nextNode();){for(l++,r.currentNode===a&&(s=p(e),a.parentNode.insertBefore(e,a));-1!==i&&n[i].index===l;){if(s>0){for(;-1!==i;)n[i].index+=s,i=d(n,i);return}i=d(n,i)}}}(a,i,s.firstChild):s.insertBefore(i,s.firstChild),window.ShadyCSS.prepareTemplateStyles(o,t);const l=s.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(a){s.insertBefore(i,s.firstChild);const t=new Set;t.add(i),u(a,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const R={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}},J=(t,e)=>e!==t&&(e==e||t==t),G={attribute:!0,type:String,converter:R,reflect:!1,hasChanged:J};class Y extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,a)=>{const o=this._attributeNameForProperty(a,e);void 0!==o&&(this._attributeToPropertyMap.set(o,a),t.push(o))}),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=G){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const a="symbol"==typeof t?Symbol():"__"+t,o=this.getPropertyDescriptor(t,a,e);void 0!==o&&Object.defineProperty(this.prototype,t,o)}static getPropertyDescriptor(t,e,a){return{get(){return this[e]},set(a){const o=this[t];this[e]=a,this._requestUpdate(t,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||G}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 a of e)this.createProperty(a,t[a])}}static _attributeNameForProperty(t,e){const a=e.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,a=J){return a(t,e)}static _propertyValueFromAttribute(t,e){const a=e.type,o=e.converter||R,n="function"==typeof o?o:o.fromAttribute;return n?n(t,a):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const a=e.type,o=e.converter;return(o&&o.toAttribute||R.toAttribute)(t,a)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_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,a){e!==a&&this._attributeToProperty(t,a)}_propertyToAttribute(t,e,a=G){const o=this.constructor,n=o._attributeNameForProperty(t,a);if(void 0!==n){const t=o._propertyValueToAttribute(e,a);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 a=this.constructor,o=a._attributeToPropertyMap.get(t);if(void 0!==o){const t=a.getPropertyOptions(o);this._updateState=16|this._updateState,this[o]=a._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}_requestUpdate(t,e){let a=!0;if(void 0!==t){const o=this.constructor,n=o.getPropertyOptions(t);o._valueHasChanged(this[t],e,n.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,n))):a=!1}!this._hasRequestedUpdate&&a&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this._requestUpdate(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(){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){}}Y.finalized=!0; + */,O=(t,e)=>`${t}--${e}`;let T=!0;void 0===window.ShadyCSS?T=!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."),T=!1);const Z=t=>e=>{const o=O(e.type,t);let n=C.get(o);void 0===n&&(n={stringsArray:new WeakMap,keyString:new Map},C.set(o,n));let i=n.stringsArray.get(e.strings);if(void 0!==i)return i;const s=e.strings.join(a);if(i=n.keyString.get(s),void 0===i){const a=e.getTemplateElement();T&&window.ShadyCSS.prepareTemplateDom(a,t),i=new r(e,a),n.keyString.set(s,i)}return n.stringsArray.set(e.strings,i),i},I=["html","svg"],U=new Set,A=(t,e,a)=>{U.add(t);const o=a?a.element:document.createElement("template"),n=e.querySelectorAll("style"),{length:r}=n;if(0===r)return void window.ShadyCSS.prepareTemplateStyles(o,t);const i=document.createElement("style");for(let t=0;t{I.forEach(e=>{const a=C.get(O(e,t));void 0!==a&&a.keyString.forEach(t=>{const{element:{content:e}}=t,a=new Set;Array.from(e.querySelectorAll("style")).forEach(t=>{a.add(t)}),u(t,a)})})})(t);const s=o.content;a?function(t,e,a=null){const{element:{content:o},parts:n}=t;if(null==a)return void o.appendChild(e);const r=document.createTreeWalker(o,133,null,!1);let i=d(n),s=0,l=-1;for(;r.nextNode();){for(l++,r.currentNode===a&&(s=p(e),a.parentNode.insertBefore(e,a));-1!==i&&n[i].index===l;){if(s>0){for(;-1!==i;)n[i].index+=s,i=d(n,i);return}i=d(n,i)}}}(a,i,s.firstChild):s.insertBefore(i,s.firstChild),window.ShadyCSS.prepareTemplateStyles(o,t);const l=s.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(a){s.insertBefore(i,s.firstChild);const t=new Set;t.add(i),u(a,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const R={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}},J=(t,e)=>e!==t&&(e==e||t==t),G={attribute:!0,type:String,converter:R,reflect:!1,hasChanged:J};class Y extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=new Promise(t=>this._enableUpdatingResolver=t),this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,a)=>{const o=this._attributeNameForProperty(a,e);void 0!==o&&(this._attributeToPropertyMap.set(o,a),t.push(o))}),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=G){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const a="symbol"==typeof t?Symbol():"__"+t,o=this.getPropertyDescriptor(t,a,e);void 0!==o&&Object.defineProperty(this.prototype,t,o)}static getPropertyDescriptor(t,e,a){return{get(){return this[e]},set(a){const o=this[t];this[e]=a,this._requestUpdate(t,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||G}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 a of e)this.createProperty(a,t[a])}}static _attributeNameForProperty(t,e){const a=e.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,a=J){return a(t,e)}static _propertyValueFromAttribute(t,e){const a=e.type,o=e.converter||R,n="function"==typeof o?o:o.fromAttribute;return n?n(t,a):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const a=e.type,o=e.converter;return(o&&o.toAttribute||R.toAttribute)(t,a)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_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,a){e!==a&&this._attributeToProperty(t,a)}_propertyToAttribute(t,e,a=G){const o=this.constructor,n=o._attributeNameForProperty(t,a);if(void 0!==n){const t=o._propertyValueToAttribute(e,a);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 a=this.constructor,o=a._attributeToPropertyMap.get(t);if(void 0!==o){const t=a.getPropertyOptions(o);this._updateState=16|this._updateState,this[o]=a._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}_requestUpdate(t,e){let a=!0;if(void 0!==t){const o=this.constructor,n=o.getPropertyOptions(t);o._valueHasChanged(this[t],e,n.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,n))):a=!1}!this._hasRequestedUpdate&&a&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this._requestUpdate(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(){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){}}Y.finalized=!0; /** @license Copyright (c) 2019 The Polymer Project Authors. All rights reserved. @@ -156,10 +156,10 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ -(window.litElementVersions||(window.litElementVersions=[])).push("2.3.1");const Q={};class H extends Y{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(void 0===t)this._styles=[];else if(Array.isArray(t)){const e=(t,a)=>t.reduceRight((t,a)=>Array.isArray(a)?e(a,t):(t.add(a),t),a),a=e(t,new Set),o=[];a.forEach(t=>o.unshift(t)),this._styles=o}else this._styles=[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?X?this.renderRoot.adoptedStyleSheets=t.map(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!==Q&&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 Q}}H.finalized=!0,H.render=(t,a,o)=>{if(!o||"object"!=typeof o||!o.scopeName)throw new Error("The `scopeName` option is required.");const n=o.scopeName,r=P.has(a),i=U&&11===a.nodeType&&!!a.host,s=i&&!T.has(n),l=s?document.createDocumentFragment():a;if(((t,a,o)=>{let n=P.get(a);void 0===n&&(e(a,a.firstChild),P.set(a,n=new V(Object.assign({templateFactory:M},o))),n.appendInto(a)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:O(n)},o)),s){const t=P.get(l);P.delete(l);const o=t.value instanceof _?t.value.template:void 0;A(n,l,o),e(a,a.firstChild),a.appendChild(l),P.set(a,t)}!r&&i&&window.ShadyCSS.styleElement(a.host)};var B=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,$="[^\\s]+",tt=/\[([^]*?)\]/gm;function et(t,e){for(var a=[],o=0,n=t.length;o-1?o:null}};function ot(t){for(var e=[],a=1;a3?0:(t-t%10!=10?1:0)*t%10]}},lt=ot({},st),ct=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+ct(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+ct(Math.floor(Math.abs(e)/60),2)+":"+ct(Math.abs(e)%60,2)}},pt=function(t){return+t-1},dt=[null,"[1-9]\\d?"],ht=[null,$],mt=["isPm",$,function(t,e){var a=t.toLowerCase();return a===e.amPm[0]?0:a===e.amPm[1]?1:null}],ft=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var a=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?a:-a}return 0}],gt=(at("monthNamesShort"),at("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var _t=function(t,e,a){if(void 0===e&&(e=gt.default),void 0===a&&(a={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var o=[];e=(e=gt[e]||e).replace(tt,(function(t,e){return o.push(e),"@@@"}));var n=ot(ot({},lt),a);return(e=e.replace(B,(function(e){return ut[e](t,n)}))).replace(/@@@/g,(function(){return o.shift()}))},vt=(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}(),function(t,e,a,o){o=o||{},a=null==a?{}:a;var n=new Event(e,{bubbles:void 0===o.bubbles||o.bubbles,cancelable:Boolean(o.cancelable),composed:void 0===o.composed||o.composed});return n.detail=a,t.dispatchEvent(n),n});var bt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},yt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,St=/^\w*$/,wt=/^\./,kt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vt=/\\(\\)?/g,Nt=/^\[object .+?Constructor\]$/,zt="object"==typeof bt&&bt&&bt.Object===Object&&bt,Et="object"==typeof self&&self&&self.Object===Object&&self,xt=zt||Et||Function("return this")();var jt,Wt=Array.prototype,Mt=Function.prototype,Ct=Object.prototype,Pt=xt["__core-js_shared__"],qt=(jt=/[^.]+$/.exec(Pt&&Pt.keys&&Pt.keys.IE_PROTO||""))?"Symbol(src)_1."+jt:"",Kt=Mt.toString,It=Ct.hasOwnProperty,Ut=Ct.toString,Ot=RegExp("^"+Kt.call(It).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Zt=xt.Symbol,Tt=Wt.splice,At=Bt(xt,"Map"),Rt=Bt(Object,"create"),Jt=Zt?Zt.prototype:void 0,Gt=Jt?Jt.toString:void 0;function Yt(t){var e=-1,a=t?t.length:0;for(this.clear();++e-1},Xt.prototype.set=function(t,e){var a=this.__data__,o=Lt(a,t);return o<0?a.push([t,e]):a[o][1]=e,this},Dt.prototype.clear=function(){this.__data__={hash:new Yt,map:new(At||Xt),string:new Yt}},Dt.prototype.delete=function(t){return Ht(this,t).delete(t)},Dt.prototype.get=function(t){return Ht(this,t).get(t)},Dt.prototype.has=function(t){return Ht(this,t).has(t)},Dt.prototype.set=function(t,e){return Ht(this,t).set(t,e),this};var $t=ee((function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(ne(t))return Gt?Gt.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}(e);var a=[];return wt.test(t)&&a.push(""),t.replace(kt,(function(t,e,o,n){a.push(o?n.replace(Vt,"$1"):e||t)})),a}));function te(t){if("string"==typeof t||ne(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ee(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var a=function(){var o=arguments,n=e?e.apply(this,o):o[0],r=a.cache;if(r.has(n))return r.get(n);var i=t.apply(this,o);return a.cache=r.set(n,i),i};return a.cache=new(ee.Cache||Dt),a}ee.Cache=Dt;var ae=Array.isArray;function oe(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ne(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==Ut.call(t)}var re=function(t,e,a){var o=null==t?void 0:Ft(t,e);return void 0===o?a:o},ie={cleaning:"Cleaning",paused:"Paused",idle:"Idle",charging:"Charging","returning home":"Returning home",docked:"Docked"},se={gentle:"Gentle",silent:"Silent",standard:"Standard",medium:"Medium",turbo:"Turbo"},le={name:"Vacuum Card",description:"Vacuum card allows you to control your robot vacuum.",start:"Clean",continue:"Continue",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Locate vacuum",not_available:"Vacuum is not available"},ce={missing_entity:"Specifying entity is required!"},ue={entity:"Entity (Required)",map:"Map Camera (Optional)",image:"Image (Optional)",compact_view:"Compact View",compact_view_aria_label_on:"Toggle compact view on",compact_view_aria_label_off:"Toggle compact view off",show_name:"Show Name",show_name_aria_label_on:"Toggle display name on",show_name_aria_label_off:"Toggle display name off",show_status:"Show Status",show_status_aria_label_on:"Toggle display status on",show_status_aria_label_off:"Toggle display status off",show_toolbar:"Show Toolbar",show_toolbar_aria_label_on:"Toggle display toolbar on",show_toolbar_aria_label_off:"Toggle display toolbar off",code_only_note:"Note: Setting actions and stats options are available exclusively using Code Editor."},pe={status:ie,source:se,common:le,error:ce,editor:ue},de={cleaning:"Прибирає",paused:"Пауза",idle:"Очікує",charging:"Заряджається","returning home":"Повертається","segment cleaning":"Зоноване прибирання"},he={gentle:"Делікатний",silent:"Тихий",standard:"Стандартний",medium:"Середній",turbo:"Турбо"},me={name:"Пилосос",description:'Картка "пилосос" дозволяє керувати роботом-пилососом.',start:"Clean",continue:"Продовжити",pause:"Пауза",stop:"Стоп",return_to_base:"На базу",locate:"Знайти",not_available:"Пилосос недоступний"},fe={missing_entity:"Об’єкт є обов’язковим полем!"},ge={entity:"Об’єкт (Required)",map:"Камера для карти (Додатково)",image:"Зображення (Додатково)",compact_view:"Компактний перегляд",compact_view_aria_label_on:"Увімкнути компактний перегляд",compact_view_aria_label_off:"Вимкнути компактний перегляд",show_name:"Показувати ім’я?",show_name_aria_label_on:"Показати ім’я",show_name_aria_label_off:"Приховати ім’я",show_status:"Показувати статус?",show_status_aria_label_on:"Показати статус",show_status_aria_label_off:"Приховати статус",show_toolbar:"Показувати панель дій?",show_toolbar_aria_label_on:"Показати панель дій",show_toolbar_aria_label_off:"Приховати панель дій",code_only_note:"Увага: Опції actions та stats доступні виключно через редактор коду."},_e={status:de,source:he,common:me,error:fe,editor:ge},ve={cleaning:"Aan het schoonmaken",paused:"Gepauzeerd",idle:"Inactief",charging:"Aan het opladen","returning home":"Keert terug naar dock"},be={name:"Stofzuiger kaart",description:"Stofzuiger kaart maakt het makkelijk om je robotstofzuiger te bedienen.",start:"Start",continue:"Doorgaan",pause:"Pauze",stop:"Stop",return_to_base:"Terugkeren",locate:"Zoek stofzuiger"},ye={missing_entity:"Het specificeren van een entiteit is verplicht!"},Se={entity:"Entiteit (Verplicht)",map:"Kaart Camera (Optioneel)",image:"Afbeelding (Optioneel)",compact_view:"Compacte weergave",compact_view_aria_label_on:"Zet compacte weergave aan",compact_view_aria_label_off:"Zet compacte weergave uit",show_name:"Naam laten zien?",show_name_aria_label_on:"Zet weergavenaam aan",show_name_aria_label_off:"Zet weergavenaam uit",show_toolbar:"Werkbalk laten zien?",show_toolbar_aria_label_on:"Zet werkbalk aan",show_toolbar_aria_label_off:"Zet werkbalk uit",code_only_note:"Notitie: Instel acties en status opties zijn alleen beschikbaar in de Code Editor"},we={status:ve,common:be,error:ye,editor:Se},ke={cleaning:"Reinigen",paused:"Pausiert",idle:"Untätig",charging:"Aufladen","returning home":"Rückkehr zu Dockingstation","segment cleaning":"Zimmerreinigung",docked:"Angedockt"},Ve={name:"Vacuum Card",description:"Vacuum card ermöglicht es Ihnen, Ihr Staubsaugerroboter zu steuern.",start:"Reinigen",continue:"Weiter",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Staubsauger lokalisieren"},Ne={missing_entity:"Angabe der Entität ist erforderlich!"},ze={entity:"Entität (Erforderlich)",map:"Map Camera (Optional)",image:"Bild (Optional)",compact_view:"kompakte Ansicht",compact_view_aria_label_on:"Schalte kompakte Ansicht ein",compact_view_aria_label_off:"Schalte kompakte Ansicht aus",show_name:"Zeige Namen",show_name_aria_label_on:"Schalte 'Zeige Namen' ein",show_name_aria_label_off:"Schalte 'Zeige Namen' aus",show_toolbar:"Zeige Toolbar",show_toolbar_aria_label_on:"Schalte 'Zeige Toolbar' ein",show_toolbar_aria_label_off:"Schalte 'Zeige Toolbar' aus",code_only_note:"Hinweis: Das Festlegen von Aktionen und Statistikoptionen ist ausschließlich mit dem Code-Editor möglich."},Ee={status:ke,common:Ve,error:Ne,editor:ze},xe={cleaning:"Nettoyage",paused:"En pause",idle:"Inactif",charging:"En charge","returning home":"Retour à la base"},je={gentle:"Doux",silent:"Silencieux",standard:"Standard",medium:"Moyen",turbo:"Turbo"},We={name:"Vacuum Carte",description:"Vacuum carte vous permet de contrôler votre robot aspirateur.",start:"Nettoyer",continue:"Continuer",pause:"Pause",stop:"Stop",return_to_base:"Retour base",locate:"Localiser aspirateur",not_available:"L'aspirateur n'est pas disponible"},Me={missing_entity:"La spécification de l'entité est requise !"},Ce={entity:"Entité (obligatoire)",map:"Caméra de carte (facultatif)",image:"Image (facultatif)",compact_view:"Vue compacte",compact_view_aria_label_on:"Activer la vue compacte",compact_view_aria_label_off:"Désactiver la vue compacte",show_name:"Afficher le nom",show_name_aria_label_on:"Activer affichage du nom",show_name_aria_label_off:"Désactiver affichage du nom",show_status:"Afficher l'état",show_status_aria_label_on:"Activer l'affichage de l'état",show_status_aria_label_off:"Désactiver l'affichage de l'état",show_toolbar:"Afficher la barre d'outils",show_toolbar_aria_label_on:"Activer l'affichage de la barre d'outils",show_toolbar_aria_label_off:"Désactiver l'affichage de la barre d'outils",code_only_note:"Remarque: Les options de réglage des actions et statistiques sont disponibles exclusivement en utilisant l'éditeur de code."},Pe={status:xe,source:je,common:We,error:Me,editor:Ce},qe={cleaning:"Sprzątanie",paused:"Wstrzymany",idle:"Bezczynny",charging:"Ładowanie","returning home":"Powrót do bazy"},Ke={name:"Vacuum Card",description:"Vacuum card pozwala zdalnie kontrolować odkurzacz.",start:"Sprzątaj",continue:"Kontyntynuj",pause:"Wstrzymaj",stop:"Zatrzymaj",return_to_base:"Powrót",locate:"Zlokalizuj odkurzacz"},Ie={missing_entity:"Ustawienie encji jest wymagane!"},Ue={entity:"Encja (wymagane)",map:"Kamera (opcjonalne)",image:"Obrazek (opcjonalne)",compact_view:"Widok kompaktowy",compact_view_aria_label_on:"Włącz widok kompaktowy",compact_view_aria_label_off:"Wyłącz widok kompaktowy",show_name:"Pokaż nazwę",show_name_aria_label_on:"Włącz widok nazwy",show_name_aria_label_off:"Wyłącz widok nazwy",show_toolbar:"Pasek narzędzi",show_toolbar_aria_label_on:"Włącz pasek narzędzi",show_toolbar_aria_label_off:"Wyłącz pasek narzędzi",code_only_note:"Uwaga: Ustawianie opcji i informacji statystyk jest dostępne tylko poprzez edytor kodu YAML."},Oe={status:qe,common:Ke,error:Ie,editor:Ue},Ze={cleaning:"In pulizia",paused:"In pausa",idle:"Inattivo",charging:"In carica","returning home":"In rientro alla base"},Te={name:"Vacuum Card",description:"Vacuum card consente di controllare il tuo aspirapolvere.",start:"Pulisci",continue:"Continua",pause:"Pausa",stop:"Stop",return_to_base:"Base",locate:"Trova aspirapolvere"},Ae={missing_entity:"È necessario specificare l'entità!"},Re={entity:"Entità (Richiesto)",map:"Mappa (Opzionale)",image:"Immagine (Opzionale)",compact_view:"Vista compatta",compact_view_aria_label_on:"Attiva vista compatta",compact_view_aria_label_off:"Disattiva vista compatta",show_name:"Mostra Nome",show_name_aria_label_on:"Attiva nome",show_name_aria_label_off:"Disattiva nome",show_toolbar:"Mostra barra degli strumenti",show_toolbar_aria_label_on:"Attiva barra degli strumenti",show_toolbar_aria_label_off:"Disattiva barra degli strumenti",code_only_note:"NB: La configurazione di azioni e statistiche sono disponibili soltanto nell'editor di codice."},Je={status:Ze,common:Te,error:Ae,editor:Re},Ge={cleaning:"Убирает",paused:"Пауза",idle:"Ожидает",charging:"Заряжается","returning home":"Возвращается","segment cleaning":"Уборка зоны/комнаты"},Ye={gentle:"Деликатный",silent:"Тихий",standard:"Стандартный",medium:"Средний",turbo:"Турбо"},Xe={name:"Пылесос",description:'Карта "пылесос" позволяет управлять роботом-пылесосом.',start:"Запуск",continue:"Продолжить",pause:"Пауза",stop:"Остановить",return_to_base:"На базу",locate:"Найти",not_available:"Пылесос недоступен"},De={missing_entity:"Объект является обязательным полем!"},Le={entity:"Объект (Обязательное)",map:"Камера для карты (Опциональное)",image:"Изображение (Опциональное)",compact_view:"Компактный просмотр",compact_view_aria_label_on:"Включить компактный просмотр",compact_view_aria_label_off:"Выключить компактный просмотр",show_name:"Показать название?",show_name_aria_label_on:"Показать название",show_name_aria_label_off:"Скрыть название",show_status:"Показать статус?",show_status_aria_label_on:"Показать статус",show_status_aria_label_off:"Скрыть статус",show_toolbar:"Показать панель действий?",show_toolbar_aria_label_on:"Показать панель действий",show_toolbar_aria_label_off:"Скрыть панель действий",code_only_note:"Внимание: Опции actions и stats доступны исключительно через редактор кода."},Fe={status:Ge,source:Ye,common:Xe,error:De,editor:Le},Qe={cleaning:"Limpiando",paused:"En pausa",idle:"Inactivo",charging:"Cargando","returning home":"Volviendo a la base",docked:"En la base","segment cleaning":"Limpiando zona"},He={gentle:"Delicado",silent:"Silencioso",standard:"Estándar",medium:"Medio",turbo:"Turbo"},Be={name:"Vacuum Card",description:"Vacuum card te permite controlar tu robot aspirador.",start:"Comenzar",continue:"Continuar",pause:"Pausar",stop:"Detener",return_to_base:"Volver a la base",locate:"Localizar",not_available:"Vacuum no está disponible"},$e={missing_entity:"¡Se requiere especificar una entidad!"},ta={entity:"Entidad (Requerido)",map:"Map Camera (Opcional)",image:"Imagen (Opcional)",compact_view:"Vista compacta",compact_view_aria_label_on:"Activar vista compacta",compact_view_aria_label_off:"Desactivar vista compacta",show_name:"Nombre a mostrar",show_name_aria_label_on:"Mostrar nombre",show_name_aria_label_off:"Ocultar nombre",show_status:"Mostrar estado",show_status_aria_label_on:"Activar estado de la pantalla",show_status_aria_label_off:"Desactivar estado de la pantalla",show_toolbar:"Mostrar barra de herramientas",show_toolbar_aria_label_on:"Activar la barra de herramientas",show_toolbar_aria_label_off:"Desactivar la barra de herramientas",code_only_note:"Nota: La configuración de las acciones y estadísticas está únicamente disponible a través del Editor de Código."},ea={status:Qe,source:He,common:Be,error:$e,editor:ta},aa={cleaning:"Vysává se",paused:"Pozastaveno",idle:"Nečinný",charging:"Nabíjí se","returning home":"Vrací se domů"},oa={gentle:"Mírný",silent:"Tichý",standard:"Standardní",medium:"Střední",turbo:"Turbo"},na={name:"Karta vysavače",description:"Karta vysavače vám dovolí ovládat svůj vysavač.",start:"Začni vysávat",continue:"Pokračuj",pause:"Pozastav",stop:"Zastav",return_to_base:"Vrať se domů",locate:"Lokalizuj",not_available:"Vysavač není dostupný"},ra={missing_entity:"Je vyžadováno specifikování entity!"},ia={entity:"Entita (Povinný)",map:"Mapa (Nepovinný)",image:"Fotka (Nepovinný)",compact_view:"Kompaktní zobrazení",compact_view_aria_label_on:"Zapni kompaktní zobrazení",compact_view_aria_label_off:"Vypni kompaktní zobrazení",show_name:"Zobraz název",show_name_aria_label_on:"Zapni zobrazení názvu",show_name_aria_label_off:"Vypni zobrazení názvu",show_status:"Zobraz status",show_status_aria_label_on:"Zapni zobrazení statusu",show_status_aria_label_off:"Vypni zobrazení statusu",show_toolbar:"Zobraz lištu",show_toolbar_aria_label_on:"Zapni zobrazení lišty",show_toolbar_aria_label_off:"Vypni zobrazení lišty",code_only_note:"Poznámka: Nastavení akcí a infa je dostupné pouze v editoru kódu."},sa={status:aa,source:oa,common:na,error:ra,editor:ia},la={cleaning:"Tisztítás",paused:"Szünet",idle:"Tétlen",charging:"Töltés","returning home":"Hazatérés"},ca={gentle:"Gyengéd",silent:"Csendes",standard:"Alap",medium:"Közepes",turbo:"Turbo"},ua={name:"Porszívó Kártya",description:"Ez a kártya lehetővé teszi, hogy robot porszívódat irányítsd.",start:"Tisztítás",continue:"Folytatás",pause:"Szünet",stop:"Megszakítás",return_to_base:"Hazatérés",locate:"Porszívó megkeresése",not_available:"A porszívó nem elérhető"},pa={missing_entity:"Entitás megadása kötelező!"},da={entity:"Entitás (Kötelező)",map:"Térkép kamera (Opcionális)",image:"Kép (Opcionális)",compact_view:"Kompakt nézet",compact_view_aria_label_on:"Kompakt nézet bekapcsolása",compact_view_aria_label_off:"Kompakt nézet kikapcsolása",show_name:"Név megjelenítése",show_name_aria_label_on:"Név megjelenítése",show_name_aria_label_off:"Név elrejtése",show_status:"Állapot megjelenítése",show_status_aria_label_on:"Állapot megjelenítése",show_status_aria_label_off:"Állapot elrejtése",show_toolbar:"Eszköztár megjelenítése",show_toolbar_aria_label_on:"Eszköztár megjelenítése",show_toolbar_aria_label_off:"Eszköztár elrejtése",code_only_note:"Megjegyzés: Parancsok és statisztikák beállítása csak a kódszerkesztőben elérhetőek."},ha={status:la,source:ca,common:ua,error:pa,editor:da},ma={cleaning:"מנקה",paused:"מושהה",idle:"סרק",charging:"בטעינה","returning home":"בחזרה הביתה"},fa={gentle:"עדין",silent:"שקט",standard:"רגיל",medium:"בינוני",turbo:"טורבו"},ga={name:"כרטיס שואב",description:"כרטיס שואב מאפשר לך שליטה על שואב האבק שלך.",start:"נקה",continue:"המשך",pause:"השהה",stop:"עצור",return_to_base:"הגינה",locate:"אתר שואב",not_available:"השואב אינו זמין"},_a={missing_entity:"יש צורך לציין ישות!"},va={entity:"ישות (נדרש)",map:"מצלמת מפה (אפשרי)",image:"תמונה (אפשרי)",compact_view:"תצוגה קומפקטית",compact_view_aria_label_on:"החלף תצוגה קומפקטית",compact_view_aria_label_off:"כבה את התצוגה הקומפקטית",show_name:"שם תצוגה",show_name_aria_label_on:"הפעל את שם התצוגה למצב מופעל",show_name_aria_label_off:"כבה את שם התצוגה",show_status:"הצג סטטוס",show_status_aria_label_on:"הפעל את מצב התצוגה למצב פעיל",show_status_aria_label_off:"כבה את מצב התצוגה",show_toolbar:"הצג סרגל כלים",show_toolbar_aria_label_on:"הפעל את סרגל הכלים לתצוגה",show_toolbar_aria_label_off:"כבה את סרגל הכלים לתצוגה",code_only_note:"הערה: הגדרת פעולות ואפשרויות סטטיסטיקה זמינות אך ורק באמצעות עורך הקוד."},ba={status:ma,source:fa,common:ga,error:_a,editor:va},ya={cleaning:"Städar",paused:"Pausad",idle:"Inaktiv",charging:"Laddar","returning home":"Återvänder hem"},Sa={gentle:"Extra försiktig",silent:"Eco - tyst",standard:"Standard",medium:"Medium",turbo:"Turbo"},wa={name:"Dammsugarkort",description:"Dammsugarkort låter dig att kontrollera din robotdammsugare.",start:"Städa",continue:"Fortsätt",pause:"Paus",stop:"Stopp",return_to_base:"Docka",locate:"Lokalisera dammsugare",not_available:"Dammsugare är inte tillgänglig"},ka={missing_entity:"Specificera entitet är obligatoriskt!"},Va={entity:"Entitet (Obligatoriskt)",map:"Kartkamera (Valfritt)",image:"Bild (Valfritt)",compact_view:"Kompakt vy",compact_view_aria_label_on:"Aktivera kompakt vy",compact_view_aria_label_off:"Inaktivera kompakt vy",show_name:"Visa namn",show_name_aria_label_on:"Aktivera namn",show_name_aria_label_off:"Inaktivera namn",show_status:"Visa status",show_status_aria_label_on:"Aktivera status",show_status_aria_label_off:"Inaktivera status",show_toolbar:"Visa verktygsvält",show_toolbar_aria_label_on:"Aktivera verktygsfält",show_toolbar_aria_label_off:"Inaktivera verktygsfält",code_only_note:"Obs! Inställningar för händelser och statistikalternativ är enbart tillgängliga med kodredigeraren."},Na={status:ya,source:Sa,common:wa,error:ka,editor:Va},za={cleaning:"Rengjøring",paused:"Pauset",idle:"Tomgang",charging:"Lader","returning home":"Returnerer hjem"},Ea={gentle:"Skånsom",silent:"Stille",standard:"Standard",medium:"Medium",turbo:"Turbo"},xa={name:"Støvsuger kort",description:"Støvsugerkortet lar deg kontrollere robotstøvsugeren din",start:"Rengjør",continue:"fortsett",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Lokaliser støvsuger",not_available:"Støvsugeren er ikke tilgjengelig"},ja={missing_entity:"Spesifiserende enhet kreves!"},Wa={entity:"Enhet (påkrevd)",map:"Kartkamera (valgfritt)",image:"Bilde (Valgfritt)",compact_view:"Kompakt visning",compact_view_aria_label_on:"Slå på kompakt visning",compact_view_aria_label_off:"Slå av kompakt visningf",show_name:"Vis navn",show_name_aria_label_on:"Slå visningsnavnet på",show_name_aria_label_off:"Slå visningsnavnet av",show_status:"Vis Status",show_status_aria_label_on:"Slå skjermstatus på",show_status_aria_label_off:"Slå skjermstatus av",show_toolbar:"Vis verktøylinjen",show_toolbar_aria_label_on:"Slå skjermverktøylinjen på",show_toolbar_aria_label_off:"Slå skjermverktøylinjen av",code_only_note:"Merk: Innstillingshandlinger og statistikkalternativer er eksklusivt tilgjengelige ved hjelp av Code Editor."},Ma={status:za,source:Ea,common:xa,error:ja,editor:Wa},Ca={cleaning:"Støvsuger",paused:"Pauset",idle:"Inaktiv",charging:"Lader","returning home":"Returnerer til dock"},Pa={gentle:"Mild",silent:"Stille",standard:"Standard",medium:"Medium",turbo:"Turbo"},qa={name:"Vacuum Card",description:"Vacuum card lader dig kontrollere din robotstøvsuger.",start:"Start",continue:"Fortsæt",pause:"Pause",stop:"Stop",return_to_base:"Gå til dock",locate:"Find støvsuger",not_available:"Støvsuger er ikke tilgængelig"},Ka={missing_entity:"En enhed skal specificeres!"},Ia={entity:"Enhed (Påkrævet)",map:"Map Camera (Valgfrit)",image:"Billede (Valgfrit)",compact_view:"Kompakt visning",compact_view_aria_label_on:"Slå kompakt visning til",compact_view_aria_label_off:"Slå kompakt visning fra",show_name:"Vis navn",show_name_aria_label_on:"Slå visning af navn til",show_name_aria_label_off:"Slå visning af navn fra",show_status:"Vis Status",show_status_aria_label_on:"Slå visning af status til",show_status_aria_label_off:"Slå visning af status fra",show_toolbar:"Vis værktøjslinje",show_toolbar_aria_label_on:"Slå visning af værktøjslinje til",show_toolbar_aria_label_off:"Slå visning af værktøjslinje fra",code_only_note:"Bemærk: Indstilling af actions og statistik er udelukkende muligt via Code Editor."},Ua={status:Ca,source:Pa,common:qa,error:Ka,editor:Ia},Oa={cleaning:"청소중",paused:"일시정지",idle:"대기중",charging:"충전중","returning home":"복귀중"},Za={gentle:"물걸레",silent:"저소음",standard:"밸런스",medium:"터보",turbo:"최강"},Ta={name:"청소기 카드",description:"청소기 카드는 로봇 청소기를 제어합니다.",start:"청소 시작",continue:"청소 재개",pause:"일시정지",stop:"정지",return_to_base:"복귀",locate:"청소기 위치",not_available:"청소기 사용 불가"},Aa={missing_entity:"구성요소를 선택해주세요."},Ra={entity:"구성요소 (필수 요소)",map:"지도 (선택 사항)",image:"이미지 (선택 사항)",compact_view:"간단히 보기",compact_view_aria_label_on:"간단히 보기 켜기",compact_view_aria_label_off:"간단히 보기 끄기",show_name:"이름 표시",show_name_aria_label_on:"이름 표시 켜기",show_name_aria_label_off:"이름 표시 끄기",show_status:"상태 표시",show_status_aria_label_on:"상태 표시 켜기",show_status_aria_label_off:"상태 표시 끄기",show_toolbar:"툴바 표시",show_toolbar_aria_label_on:"툴바 표시 켜기",show_toolbar_aria_label_off:"툴바 표시 끄기",code_only_note:"동작과 상태 설정은 코드 에디터에서 수정할 수 있습니다."},Ja={status:Oa,source:Za,common:Ta,error:Aa,editor:Ra},Ga={Cleaning:"Siivoaa",Paused:"Pysäytetty",Idle:"Toimeton",Charging:"Latauksessa","Returning home":"Palaa kotiin"},Ya={Gentle:"Hellävarainen",Silent:"Hiljainen",Standard:"Normaali",Medium:"Keskitaso",Turbo:"Turbo"},Xa={name:"Pölynimurikortti",description:"Pölynimurikortti sallii robotti imurin ohjauksen.",start:"Siivoa",continue:"Jatka",pause:"Tauko",stop:"Pysähdy",return_to_base:"Latausasemaan",locate:"Paikanna imuri",not_available:"Imuri ei saatavilla"},Da={missing_entity:"Entiteetti puuttuu!"},La={entity:"Entiteetti (Vaaditaan)",map:"Kartan kamera (Valinnainen)",image:"Kuva (Valinnainen)",compact_view:"Kompakti näkymä",compact_view_aria_label_on:"Kompakti näkymä päälle",compact_view_aria_label_off:"Kompakti näkymä pois",show_name:"Näytä Nimi",show_name_aria_label_on:"Näyttönimi päälle",show_name_aria_label_off:"Näyttönimi pois",show_status:"Näytä Tila",show_status_aria_label_on:"Tilanäyttö päälle",show_status_aria_label_off:"Tilanäyttö pois",show_toolbar:"Näytä työkalurivi",show_toolbar_aria_label_on:"Työkalurivi päälle",show_toolbar_aria_label_off:"Työkalurivi pois",code_only_note:"Huom: Toimintojen ja tilastojen optiot ovat saatavilla ainoastaan koodieditorissa"},Fa={status:Ga,source:Ya,common:Xa,error:Da,editor:La},Qa={cleaning:"Netejant",paused:"En pausa",idle:"Inactiu",charging:"Carregant","returning home":"Tornant a la base",docked:"A la base"},Ha={gentle:"Delicat",silent:"Silenciós",standard:"Estàndard",medium:"Mitjà",turbo:"Turbo"},Ba={name:"Vacuum Card",description:"Vacuum card us permet controlar el robot aspirador.",start:"Neteja",continue:"Continua",pause:"Pausa",stop:"Atura",return_to_base:"Torna a la base",locate:"Localitza",not_available:"No disponible"},$a={missing_entity:"Cal especificar una entitat."},to={entity:"Entitat (Requerit)",map:"Càmera de mapa (Opcional)",image:"Imatge (Opcional)",compact_view:"Visualització compacta",compact_view_aria_label_on:"Activar visualització compacta",compact_view_aria_label_off:"Desactivar visualització compacta",show_name:"Mostrar nom",show_name_aria_label_on:"Mostra nom",show_name_aria_label_off:"Amaga nom",show_status:"Mostrar estat",show_status_aria_label_on:"Mostra estat",show_status_aria_label_off:"Amaga estat",show_toolbar:"Mostrar barra d'eines",show_toolbar_aria_label_on:"Mostra barra d'eines",show_toolbar_aria_label_off:"Amaga barra d'eines",code_only_note:"Nota: Configuració de les accions i estadístiques només disponible des de l'Editor de Codi."},eo={status:Qa,source:Ha,common:Ba,error:$a,editor:to},ao={en:Object.freeze({__proto__:null,status:ie,source:se,common:le,error:ce,editor:ue,default:pe}),uk:Object.freeze({__proto__:null,status:de,source:he,common:me,error:fe,editor:ge,default:_e}),nl:Object.freeze({__proto__:null,status:ve,common:be,error:ye,editor:Se,default:we}),de:Object.freeze({__proto__:null,status:ke,common:Ve,error:Ne,editor:ze,default:Ee}),fr:Object.freeze({__proto__:null,status:xe,source:je,common:We,error:Me,editor:Ce,default:Pe}),pl:Object.freeze({__proto__:null,status:qe,common:Ke,error:Ie,editor:Ue,default:Oe}),it:Object.freeze({__proto__:null,status:Ze,common:Te,error:Ae,editor:Re,default:Je}),ru:Object.freeze({__proto__:null,status:Ge,source:Ye,common:Xe,error:De,editor:Le,default:Fe}),es:Object.freeze({__proto__:null,status:Qe,source:He,common:Be,error:$e,editor:ta,default:ea}),cs:Object.freeze({__proto__:null,status:aa,source:oa,common:na,error:ra,editor:ia,default:sa}),hu:Object.freeze({__proto__:null,status:la,source:ca,common:ua,error:pa,editor:da,default:ha}),he:Object.freeze({__proto__:null,status:ma,source:fa,common:ga,error:_a,editor:va,default:ba}),sv:Object.freeze({__proto__:null,status:ya,source:Sa,common:wa,error:ka,editor:Va,default:Na}),nb:Object.freeze({__proto__:null,status:za,source:Ea,common:xa,error:ja,editor:Wa,default:Ma}),da:Object.freeze({__proto__:null,status:Ca,source:Pa,common:qa,error:Ka,editor:Ia,default:Ua}),ko:Object.freeze({__proto__:null,status:Oa,source:Za,common:Ta,error:Aa,editor:Ra,default:Ja}),fi:Object.freeze({__proto__:null,status:Ga,source:Ya,common:Xa,error:Da,editor:La,default:Fa}),ca:Object.freeze({__proto__:null,status:Qa,source:Ha,common:Ba,error:$a,editor:to,default:eo})};function oo(t,e,a){const[o,n]=t.toLowerCase().split(".");let r;try{r=JSON.parse(localStorage.getItem("selectedLanguage"))}catch(t){r=localStorage.getItem("selectedLanguage")}const i=(r||navigator.language.split("-")[0]||"en").replace(/['"]+/g,"").replace("-","_");let s;try{s=ao[i][o][n]}catch(t){s=ao.en[o][n]}if(void 0===s&&(s=ao.en[o][n]),void 0!==s)return""!==e&&""!==a&&(s=s.replace(e,a)),s}customElements.define("vacuum-card-editor",class extends H{static get properties(){return{hass:Object,_config:Object,_toggle:Boolean}}setConfig(t){this._config=t,this._config.entity||(this._config.entity=this.getEntitiesByType("vacuum")[0]||"",vt(this,"config-changed",{config:this._config}))}get _entity(){return this._config&&this._config.entity||""}get _map(){return this._config&&this._config.map||""}get _image(){return this._config&&this._config.image||""}get _show_name(){return this._config?this._config.show_name||!0:""}get _show_status(){return this._config?this._config.show_status||!0:""}get _show_toolbar(){return this._config&&this._config.show_toolbar||!0}get _compact_view(){return this._config&&this._config.compact_view||!1}getEntitiesByType(t){return Object.keys(this.hass.states).filter(e=>e.substr(0,e.indexOf("."))===t)}render(){if(!this.hass)return K``;const t=this.getEntitiesByType("vacuum"),e=this.getEntitiesByType("camera");return K` +(window.litElementVersions||(window.litElementVersions=[])).push("2.3.1");const Q={};class H extends Y{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(void 0===t)this._styles=[];else if(Array.isArray(t)){const e=(t,a)=>t.reduceRight((t,a)=>Array.isArray(a)?e(a,t):(t.add(a),t),a),a=e(t,new Set),o=[];a.forEach(t=>o.unshift(t)),this._styles=o}else this._styles=[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?X?this.renderRoot.adoptedStyleSheets=t.map(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!==Q&&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 Q}}H.finalized=!0,H.render=(t,a,o)=>{if(!o||"object"!=typeof o||!o.scopeName)throw new Error("The `scopeName` option is required.");const n=o.scopeName,r=P.has(a),i=T&&11===a.nodeType&&!!a.host,s=i&&!U.has(n),l=s?document.createDocumentFragment():a;if(((t,a,o)=>{let n=P.get(a);void 0===n&&(e(a,a.firstChild),P.set(a,n=new V(Object.assign({templateFactory:W},o))),n.appendInto(a)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:Z(n)},o)),s){const t=P.get(l);P.delete(l);const o=t.value instanceof g?t.value.template:void 0;A(n,l,o),e(a,a.firstChild),a.appendChild(l),P.set(a,t)}!r&&i&&window.ShadyCSS.styleElement(a.host)};var B=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,$="[^\\s]+",tt=/\[([^]*?)\]/gm;function et(t,e){for(var a=[],o=0,n=t.length;o-1?o:null}};function ot(t){for(var e=[],a=1;a3?0:(t-t%10!=10?1:0)*t%10]}},lt=ot({},st),ct=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+ct(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+ct(Math.floor(Math.abs(e)/60),2)+":"+ct(Math.abs(e)%60,2)}},pt=function(t){return+t-1},dt=[null,"[1-9]\\d?"],ht=[null,$],mt=["isPm",$,function(t,e){var a=t.toLowerCase();return a===e.amPm[0]?0:a===e.amPm[1]?1:null}],ft=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var a=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?a:-a}return 0}],_t=(at("monthNamesShort"),at("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var gt=function(t,e,a){if(void 0===e&&(e=_t.default),void 0===a&&(a={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var o=[];e=(e=_t[e]||e).replace(tt,(function(t,e){return o.push(e),"@@@"}));var n=ot(ot({},lt),a);return(e=e.replace(B,(function(e){return ut[e](t,n)}))).replace(/@@@/g,(function(){return o.shift()}))},vt=(function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}}(),function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}}(),function(t,e,a,o){o=o||{},a=null==a?{}:a;var n=new Event(e,{bubbles:void 0===o.bubbles||o.bubbles,cancelable:Boolean(o.cancelable),composed:void 0===o.composed||o.composed});return n.detail=a,t.dispatchEvent(n),n});var bt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},yt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,St=/^\w*$/,wt=/^\./,kt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Vt=/\\(\\)?/g,Nt=/^\[object .+?Constructor\]$/,zt="object"==typeof bt&&bt&&bt.Object===Object&&bt,Et="object"==typeof self&&self&&self.Object===Object&&self,xt=zt||Et||Function("return this")();var jt,Mt=Array.prototype,Wt=Function.prototype,Ct=Object.prototype,Pt=xt["__core-js_shared__"],qt=(jt=/[^.]+$/.exec(Pt&&Pt.keys&&Pt.keys.IE_PROTO||""))?"Symbol(src)_1."+jt:"",Kt=Wt.toString,Ot=Ct.hasOwnProperty,Tt=Ct.toString,Zt=RegExp("^"+Kt.call(Ot).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),It=xt.Symbol,Ut=Mt.splice,At=Bt(xt,"Map"),Rt=Bt(Object,"create"),Jt=It?It.prototype:void 0,Gt=Jt?Jt.toString:void 0;function Yt(t){var e=-1,a=t?t.length:0;for(this.clear();++e-1},Xt.prototype.set=function(t,e){var a=this.__data__,o=Lt(a,t);return o<0?a.push([t,e]):a[o][1]=e,this},Dt.prototype.clear=function(){this.__data__={hash:new Yt,map:new(At||Xt),string:new Yt}},Dt.prototype.delete=function(t){return Ht(this,t).delete(t)},Dt.prototype.get=function(t){return Ht(this,t).get(t)},Dt.prototype.has=function(t){return Ht(this,t).has(t)},Dt.prototype.set=function(t,e){return Ht(this,t).set(t,e),this};var $t=ee((function(t){var e;t=null==(e=t)?"":function(t){if("string"==typeof t)return t;if(ne(t))return Gt?Gt.call(t):"";var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}(e);var a=[];return wt.test(t)&&a.push(""),t.replace(kt,(function(t,e,o,n){a.push(o?n.replace(Vt,"$1"):e||t)})),a}));function te(t){if("string"==typeof t||ne(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}function ee(t,e){if("function"!=typeof t||e&&"function"!=typeof e)throw new TypeError("Expected a function");var a=function(){var o=arguments,n=e?e.apply(this,o):o[0],r=a.cache;if(r.has(n))return r.get(n);var i=t.apply(this,o);return a.cache=r.set(n,i),i};return a.cache=new(ee.Cache||Dt),a}ee.Cache=Dt;var ae=Array.isArray;function oe(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function ne(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&"[object Symbol]"==Tt.call(t)}var re=function(t,e,a){var o=null==t?void 0:Ft(t,e);return void 0===o?a:o},ie={cleaning:"Cleaning",paused:"Paused",idle:"Idle",charging:"Charging","returning home":"Returning home",docked:"Docked"},se={gentle:"Gentle",silent:"Silent",standard:"Standard",medium:"Medium",turbo:"Turbo"},le={name:"Vacuum Card",description:"Vacuum card allows you to control your robot vacuum.",start:"Clean",continue:"Continue",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Locate vacuum",not_available:"Vacuum is not available"},ce={missing_entity:"Specifying entity is required!"},ue={entity:"Entity (Required)",map:"Map Camera (Optional)",image:"Image (Optional)",compact_view:"Compact View",compact_view_aria_label_on:"Toggle compact view on",compact_view_aria_label_off:"Toggle compact view off",show_name:"Show Name",show_name_aria_label_on:"Toggle display name on",show_name_aria_label_off:"Toggle display name off",show_status:"Show Status",show_status_aria_label_on:"Toggle display status on",show_status_aria_label_off:"Toggle display status off",show_toolbar:"Show Toolbar",show_toolbar_aria_label_on:"Toggle display toolbar on",show_toolbar_aria_label_off:"Toggle display toolbar off",code_only_note:"Note: Setting actions and stats options are available exclusively using Code Editor."},pe={status:ie,source:se,common:le,error:ce,editor:ue},de={cleaning:"Прибирає",paused:"Пауза",idle:"Очікує",charging:"Заряджається","returning home":"Повертається","segment cleaning":"Зоноване прибирання"},he={gentle:"Делікатний",silent:"Тихий",standard:"Стандартний",medium:"Середній",turbo:"Турбо"},me={name:"Пилосос",description:'Картка "пилосос" дозволяє керувати роботом-пилососом.',start:"Clean",continue:"Продовжити",pause:"Пауза",stop:"Стоп",return_to_base:"На базу",locate:"Знайти",not_available:"Пилосос недоступний"},fe={missing_entity:"Об’єкт є обов’язковим полем!"},_e={entity:"Об’єкт (Required)",map:"Камера для карти (Додатково)",image:"Зображення (Додатково)",compact_view:"Компактний перегляд",compact_view_aria_label_on:"Увімкнути компактний перегляд",compact_view_aria_label_off:"Вимкнути компактний перегляд",show_name:"Показувати ім’я?",show_name_aria_label_on:"Показати ім’я",show_name_aria_label_off:"Приховати ім’я",show_status:"Показувати статус?",show_status_aria_label_on:"Показати статус",show_status_aria_label_off:"Приховати статус",show_toolbar:"Показувати панель дій?",show_toolbar_aria_label_on:"Показати панель дій",show_toolbar_aria_label_off:"Приховати панель дій",code_only_note:"Увага: Опції actions та stats доступні виключно через редактор коду."},ge={status:de,source:he,common:me,error:fe,editor:_e},ve={cleaning:"Aan het schoonmaken",paused:"Gepauzeerd",idle:"Inactief",charging:"Aan het opladen","returning home":"Keert terug naar dock"},be={name:"Stofzuiger kaart",description:"Stofzuiger kaart maakt het makkelijk om je robotstofzuiger te bedienen.",start:"Start",continue:"Doorgaan",pause:"Pauze",stop:"Stop",return_to_base:"Terugkeren",locate:"Zoek stofzuiger"},ye={missing_entity:"Het specificeren van een entiteit is verplicht!"},Se={entity:"Entiteit (Verplicht)",map:"Kaart Camera (Optioneel)",image:"Afbeelding (Optioneel)",compact_view:"Compacte weergave",compact_view_aria_label_on:"Zet compacte weergave aan",compact_view_aria_label_off:"Zet compacte weergave uit",show_name:"Naam laten zien?",show_name_aria_label_on:"Zet weergavenaam aan",show_name_aria_label_off:"Zet weergavenaam uit",show_toolbar:"Werkbalk laten zien?",show_toolbar_aria_label_on:"Zet werkbalk aan",show_toolbar_aria_label_off:"Zet werkbalk uit",code_only_note:"Notitie: Instel acties en status opties zijn alleen beschikbaar in de Code Editor"},we={status:ve,common:be,error:ye,editor:Se},ke={cleaning:"Reinigen",paused:"Pausiert",idle:"Untätig",charging:"Aufladen","returning home":"Rückkehr zu Dockingstation","segment cleaning":"Zimmerreinigung",docked:"Angedockt"},Ve={name:"Vacuum Card",description:"Vacuum card ermöglicht es Ihnen, Ihr Staubsaugerroboter zu steuern.",start:"Reinigen",continue:"Weiter",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Staubsauger lokalisieren"},Ne={missing_entity:"Angabe der Entität ist erforderlich!"},ze={entity:"Entität (Erforderlich)",map:"Map Camera (Optional)",image:"Bild (Optional)",compact_view:"kompakte Ansicht",compact_view_aria_label_on:"Schalte kompakte Ansicht ein",compact_view_aria_label_off:"Schalte kompakte Ansicht aus",show_name:"Zeige Namen",show_name_aria_label_on:"Schalte 'Zeige Namen' ein",show_name_aria_label_off:"Schalte 'Zeige Namen' aus",show_toolbar:"Zeige Toolbar",show_toolbar_aria_label_on:"Schalte 'Zeige Toolbar' ein",show_toolbar_aria_label_off:"Schalte 'Zeige Toolbar' aus",code_only_note:"Hinweis: Das Festlegen von Aktionen und Statistikoptionen ist ausschließlich mit dem Code-Editor möglich."},Ee={status:ke,common:Ve,error:Ne,editor:ze},xe={cleaning:"Nettoyage",paused:"En pause",idle:"Inactif",charging:"En charge","returning home":"Retour à la base"},je={gentle:"Doux",silent:"Silencieux",standard:"Standard",medium:"Moyen",turbo:"Turbo"},Me={name:"Vacuum Carte",description:"Vacuum carte vous permet de contrôler votre robot aspirateur.",start:"Nettoyer",continue:"Continuer",pause:"Pause",stop:"Stop",return_to_base:"Retour base",locate:"Localiser aspirateur",not_available:"L'aspirateur n'est pas disponible"},We={missing_entity:"La spécification de l'entité est requise !"},Ce={entity:"Entité (obligatoire)",map:"Caméra de carte (facultatif)",image:"Image (facultatif)",compact_view:"Vue compacte",compact_view_aria_label_on:"Activer la vue compacte",compact_view_aria_label_off:"Désactiver la vue compacte",show_name:"Afficher le nom",show_name_aria_label_on:"Activer affichage du nom",show_name_aria_label_off:"Désactiver affichage du nom",show_status:"Afficher l'état",show_status_aria_label_on:"Activer l'affichage de l'état",show_status_aria_label_off:"Désactiver l'affichage de l'état",show_toolbar:"Afficher la barre d'outils",show_toolbar_aria_label_on:"Activer l'affichage de la barre d'outils",show_toolbar_aria_label_off:"Désactiver l'affichage de la barre d'outils",code_only_note:"Remarque: Les options de réglage des actions et statistiques sont disponibles exclusivement en utilisant l'éditeur de code."},Pe={status:xe,source:je,common:Me,error:We,editor:Ce},qe={cleaning:"Sprzątanie",paused:"Wstrzymany",idle:"Bezczynny",charging:"Ładowanie","returning home":"Powrót do bazy"},Ke={name:"Vacuum Card",description:"Vacuum card pozwala zdalnie kontrolować odkurzacz.",start:"Sprzątaj",continue:"Kontyntynuj",pause:"Wstrzymaj",stop:"Zatrzymaj",return_to_base:"Powrót",locate:"Zlokalizuj odkurzacz"},Oe={missing_entity:"Ustawienie encji jest wymagane!"},Te={entity:"Encja (wymagane)",map:"Kamera (opcjonalne)",image:"Obrazek (opcjonalne)",compact_view:"Widok kompaktowy",compact_view_aria_label_on:"Włącz widok kompaktowy",compact_view_aria_label_off:"Wyłącz widok kompaktowy",show_name:"Pokaż nazwę",show_name_aria_label_on:"Włącz widok nazwy",show_name_aria_label_off:"Wyłącz widok nazwy",show_toolbar:"Pasek narzędzi",show_toolbar_aria_label_on:"Włącz pasek narzędzi",show_toolbar_aria_label_off:"Wyłącz pasek narzędzi",code_only_note:"Uwaga: Ustawianie opcji i informacji statystyk jest dostępne tylko poprzez edytor kodu YAML."},Ze={status:qe,common:Ke,error:Oe,editor:Te},Ie={cleaning:"In pulizia",paused:"In pausa",idle:"Inattivo",charging:"In carica","returning home":"In rientro alla base"},Ue={name:"Vacuum Card",description:"Vacuum card consente di controllare il tuo aspirapolvere.",start:"Pulisci",continue:"Continua",pause:"Pausa",stop:"Stop",return_to_base:"Base",locate:"Trova aspirapolvere"},Ae={missing_entity:"È necessario specificare l'entità!"},Re={entity:"Entità (Richiesto)",map:"Mappa (Opzionale)",image:"Immagine (Opzionale)",compact_view:"Vista compatta",compact_view_aria_label_on:"Attiva vista compatta",compact_view_aria_label_off:"Disattiva vista compatta",show_name:"Mostra Nome",show_name_aria_label_on:"Attiva nome",show_name_aria_label_off:"Disattiva nome",show_toolbar:"Mostra barra degli strumenti",show_toolbar_aria_label_on:"Attiva barra degli strumenti",show_toolbar_aria_label_off:"Disattiva barra degli strumenti",code_only_note:"NB: La configurazione di azioni e statistiche sono disponibili soltanto nell'editor di codice."},Je={status:Ie,common:Ue,error:Ae,editor:Re},Ge={cleaning:"Убирает",paused:"Пауза",idle:"Ожидает",charging:"Заряжается","returning home":"Возвращается","segment cleaning":"Уборка зоны/комнаты"},Ye={gentle:"Деликатный",silent:"Тихий",standard:"Стандартный",medium:"Средний",turbo:"Турбо"},Xe={name:"Пылесос",description:'Карта "пылесос" позволяет управлять роботом-пылесосом.',start:"Запуск",continue:"Продолжить",pause:"Пауза",stop:"Остановить",return_to_base:"На базу",locate:"Найти",not_available:"Пылесос недоступен"},De={missing_entity:"Объект является обязательным полем!"},Le={entity:"Объект (Обязательное)",map:"Камера для карты (Опциональное)",image:"Изображение (Опциональное)",compact_view:"Компактный просмотр",compact_view_aria_label_on:"Включить компактный просмотр",compact_view_aria_label_off:"Выключить компактный просмотр",show_name:"Показать название?",show_name_aria_label_on:"Показать название",show_name_aria_label_off:"Скрыть название",show_status:"Показать статус?",show_status_aria_label_on:"Показать статус",show_status_aria_label_off:"Скрыть статус",show_toolbar:"Показать панель действий?",show_toolbar_aria_label_on:"Показать панель действий",show_toolbar_aria_label_off:"Скрыть панель действий",code_only_note:"Внимание: Опции actions и stats доступны исключительно через редактор кода."},Fe={status:Ge,source:Ye,common:Xe,error:De,editor:Le},Qe={cleaning:"Limpiando",paused:"En pausa",idle:"Inactivo",charging:"Cargando","returning home":"Volviendo a la base",docked:"En la base","segment cleaning":"Limpiando zona"},He={gentle:"Delicado",silent:"Silencioso",standard:"Estándar",medium:"Medio",turbo:"Turbo"},Be={name:"Vacuum Card",description:"Vacuum card te permite controlar tu robot aspirador.",start:"Comenzar",continue:"Continuar",pause:"Pausar",stop:"Detener",return_to_base:"Volver a la base",locate:"Localizar",not_available:"Vacuum no está disponible"},$e={missing_entity:"¡Se requiere especificar una entidad!"},ta={entity:"Entidad (Requerido)",map:"Map Camera (Opcional)",image:"Imagen (Opcional)",compact_view:"Vista compacta",compact_view_aria_label_on:"Activar vista compacta",compact_view_aria_label_off:"Desactivar vista compacta",show_name:"Nombre a mostrar",show_name_aria_label_on:"Mostrar nombre",show_name_aria_label_off:"Ocultar nombre",show_status:"Mostrar estado",show_status_aria_label_on:"Activar estado de la pantalla",show_status_aria_label_off:"Desactivar estado de la pantalla",show_toolbar:"Mostrar barra de herramientas",show_toolbar_aria_label_on:"Activar la barra de herramientas",show_toolbar_aria_label_off:"Desactivar la barra de herramientas",code_only_note:"Nota: La configuración de las acciones y estadísticas está únicamente disponible a través del Editor de Código."},ea={status:Qe,source:He,common:Be,error:$e,editor:ta},aa={cleaning:"Vysává se",paused:"Pozastaveno",idle:"Nečinný",charging:"Nabíjí se","returning home":"Vrací se domů"},oa={gentle:"Mírný",silent:"Tichý",standard:"Standardní",medium:"Střední",turbo:"Turbo"},na={name:"Karta vysavače",description:"Karta vysavače vám dovolí ovládat svůj vysavač.",start:"Začni vysávat",continue:"Pokračuj",pause:"Pozastav",stop:"Zastav",return_to_base:"Vrať se domů",locate:"Lokalizuj",not_available:"Vysavač není dostupný"},ra={missing_entity:"Je vyžadováno specifikování entity!"},ia={entity:"Entita (Povinný)",map:"Mapa (Nepovinný)",image:"Fotka (Nepovinný)",compact_view:"Kompaktní zobrazení",compact_view_aria_label_on:"Zapni kompaktní zobrazení",compact_view_aria_label_off:"Vypni kompaktní zobrazení",show_name:"Zobraz název",show_name_aria_label_on:"Zapni zobrazení názvu",show_name_aria_label_off:"Vypni zobrazení názvu",show_status:"Zobraz status",show_status_aria_label_on:"Zapni zobrazení statusu",show_status_aria_label_off:"Vypni zobrazení statusu",show_toolbar:"Zobraz lištu",show_toolbar_aria_label_on:"Zapni zobrazení lišty",show_toolbar_aria_label_off:"Vypni zobrazení lišty",code_only_note:"Poznámka: Nastavení akcí a infa je dostupné pouze v editoru kódu."},sa={status:aa,source:oa,common:na,error:ra,editor:ia},la={cleaning:"Tisztítás",paused:"Szünet",idle:"Tétlen",charging:"Töltés","returning home":"Hazatérés"},ca={gentle:"Gyengéd",silent:"Csendes",standard:"Alap",medium:"Közepes",turbo:"Turbo"},ua={name:"Porszívó Kártya",description:"Ez a kártya lehetővé teszi, hogy robot porszívódat irányítsd.",start:"Tisztítás",continue:"Folytatás",pause:"Szünet",stop:"Megszakítás",return_to_base:"Hazatérés",locate:"Porszívó megkeresése",not_available:"A porszívó nem elérhető"},pa={missing_entity:"Entitás megadása kötelező!"},da={entity:"Entitás (Kötelező)",map:"Térkép kamera (Opcionális)",image:"Kép (Opcionális)",compact_view:"Kompakt nézet",compact_view_aria_label_on:"Kompakt nézet bekapcsolása",compact_view_aria_label_off:"Kompakt nézet kikapcsolása",show_name:"Név megjelenítése",show_name_aria_label_on:"Név megjelenítése",show_name_aria_label_off:"Név elrejtése",show_status:"Állapot megjelenítése",show_status_aria_label_on:"Állapot megjelenítése",show_status_aria_label_off:"Állapot elrejtése",show_toolbar:"Eszköztár megjelenítése",show_toolbar_aria_label_on:"Eszköztár megjelenítése",show_toolbar_aria_label_off:"Eszköztár elrejtése",code_only_note:"Megjegyzés: Parancsok és statisztikák beállítása csak a kódszerkesztőben elérhetőek."},ha={status:la,source:ca,common:ua,error:pa,editor:da},ma={cleaning:"מנקה",paused:"מושהה",idle:"סרק",charging:"בטעינה","returning home":"בחזרה הביתה"},fa={gentle:"עדין",silent:"שקט",standard:"רגיל",medium:"בינוני",turbo:"טורבו"},_a={name:"כרטיס שואב",description:"כרטיס שואב מאפשר לך שליטה על שואב האבק שלך.",start:"נקה",continue:"המשך",pause:"השהה",stop:"עצור",return_to_base:"הגינה",locate:"אתר שואב",not_available:"השואב אינו זמין"},ga={missing_entity:"יש צורך לציין ישות!"},va={entity:"ישות (נדרש)",map:"מצלמת מפה (אפשרי)",image:"תמונה (אפשרי)",compact_view:"תצוגה קומפקטית",compact_view_aria_label_on:"החלף תצוגה קומפקטית",compact_view_aria_label_off:"כבה את התצוגה הקומפקטית",show_name:"שם תצוגה",show_name_aria_label_on:"הפעל את שם התצוגה למצב מופעל",show_name_aria_label_off:"כבה את שם התצוגה",show_status:"הצג סטטוס",show_status_aria_label_on:"הפעל את מצב התצוגה למצב פעיל",show_status_aria_label_off:"כבה את מצב התצוגה",show_toolbar:"הצג סרגל כלים",show_toolbar_aria_label_on:"הפעל את סרגל הכלים לתצוגה",show_toolbar_aria_label_off:"כבה את סרגל הכלים לתצוגה",code_only_note:"הערה: הגדרת פעולות ואפשרויות סטטיסטיקה זמינות אך ורק באמצעות עורך הקוד."},ba={status:ma,source:fa,common:_a,error:ga,editor:va},ya={cleaning:"Städar",paused:"Pausad",idle:"Inaktiv",charging:"Laddar","returning home":"Återvänder hem"},Sa={gentle:"Extra försiktig",silent:"Eco - tyst",standard:"Standard",medium:"Medium",turbo:"Turbo"},wa={name:"Dammsugarkort",description:"Dammsugarkort låter dig att kontrollera din robotdammsugare.",start:"Städa",continue:"Fortsätt",pause:"Paus",stop:"Stopp",return_to_base:"Docka",locate:"Lokalisera dammsugare",not_available:"Dammsugare är inte tillgänglig"},ka={missing_entity:"Specificera entitet är obligatoriskt!"},Va={entity:"Entitet (Obligatoriskt)",map:"Kartkamera (Valfritt)",image:"Bild (Valfritt)",compact_view:"Kompakt vy",compact_view_aria_label_on:"Aktivera kompakt vy",compact_view_aria_label_off:"Inaktivera kompakt vy",show_name:"Visa namn",show_name_aria_label_on:"Aktivera namn",show_name_aria_label_off:"Inaktivera namn",show_status:"Visa status",show_status_aria_label_on:"Aktivera status",show_status_aria_label_off:"Inaktivera status",show_toolbar:"Visa verktygsvält",show_toolbar_aria_label_on:"Aktivera verktygsfält",show_toolbar_aria_label_off:"Inaktivera verktygsfält",code_only_note:"Obs! Inställningar för händelser och statistikalternativ är enbart tillgängliga med kodredigeraren."},Na={status:ya,source:Sa,common:wa,error:ka,editor:Va},za={cleaning:"Rengjøring",paused:"Pauset",idle:"Tomgang",charging:"Lader","returning home":"Returnerer hjem"},Ea={gentle:"Skånsom",silent:"Stille",standard:"Standard",medium:"Medium",turbo:"Turbo"},xa={name:"Støvsuger kort",description:"Støvsugerkortet lar deg kontrollere robotstøvsugeren din",start:"Rengjør",continue:"fortsett",pause:"Pause",stop:"Stop",return_to_base:"Dock",locate:"Lokaliser støvsuger",not_available:"Støvsugeren er ikke tilgjengelig"},ja={missing_entity:"Spesifiserende enhet kreves!"},Ma={entity:"Enhet (påkrevd)",map:"Kartkamera (valgfritt)",image:"Bilde (Valgfritt)",compact_view:"Kompakt visning",compact_view_aria_label_on:"Slå på kompakt visning",compact_view_aria_label_off:"Slå av kompakt visningf",show_name:"Vis navn",show_name_aria_label_on:"Slå visningsnavnet på",show_name_aria_label_off:"Slå visningsnavnet av",show_status:"Vis Status",show_status_aria_label_on:"Slå skjermstatus på",show_status_aria_label_off:"Slå skjermstatus av",show_toolbar:"Vis verktøylinjen",show_toolbar_aria_label_on:"Slå skjermverktøylinjen på",show_toolbar_aria_label_off:"Slå skjermverktøylinjen av",code_only_note:"Merk: Innstillingshandlinger og statistikkalternativer er eksklusivt tilgjengelige ved hjelp av Code Editor."},Wa={status:za,source:Ea,common:xa,error:ja,editor:Ma},Ca={cleaning:"Støvsuger",paused:"Pauset",idle:"Inaktiv",charging:"Lader","returning home":"Returnerer til dock"},Pa={gentle:"Mild",silent:"Stille",standard:"Standard",medium:"Medium",turbo:"Turbo"},qa={name:"Vacuum Card",description:"Vacuum card lader dig kontrollere din robotstøvsuger.",start:"Start",continue:"Fortsæt",pause:"Pause",stop:"Stop",return_to_base:"Gå til dock",locate:"Find støvsuger",not_available:"Støvsuger er ikke tilgængelig"},Ka={missing_entity:"En enhed skal specificeres!"},Oa={entity:"Enhed (Påkrævet)",map:"Map Camera (Valgfrit)",image:"Billede (Valgfrit)",compact_view:"Kompakt visning",compact_view_aria_label_on:"Slå kompakt visning til",compact_view_aria_label_off:"Slå kompakt visning fra",show_name:"Vis navn",show_name_aria_label_on:"Slå visning af navn til",show_name_aria_label_off:"Slå visning af navn fra",show_status:"Vis Status",show_status_aria_label_on:"Slå visning af status til",show_status_aria_label_off:"Slå visning af status fra",show_toolbar:"Vis værktøjslinje",show_toolbar_aria_label_on:"Slå visning af værktøjslinje til",show_toolbar_aria_label_off:"Slå visning af værktøjslinje fra",code_only_note:"Bemærk: Indstilling af actions og statistik er udelukkende muligt via Code Editor."},Ta={status:Ca,source:Pa,common:qa,error:Ka,editor:Oa},Za={cleaning:"청소중",paused:"일시정지",idle:"대기중",charging:"충전중","returning home":"복귀중"},Ia={gentle:"물걸레",silent:"저소음",standard:"밸런스",medium:"터보",turbo:"최강"},Ua={name:"청소기 카드",description:"청소기 카드는 로봇 청소기를 제어합니다.",start:"청소 시작",continue:"청소 재개",pause:"일시정지",stop:"정지",return_to_base:"복귀",locate:"청소기 위치",not_available:"청소기 사용 불가"},Aa={missing_entity:"구성요소를 선택해주세요."},Ra={entity:"구성요소 (필수 요소)",map:"지도 (선택 사항)",image:"이미지 (선택 사항)",compact_view:"간단히 보기",compact_view_aria_label_on:"간단히 보기 켜기",compact_view_aria_label_off:"간단히 보기 끄기",show_name:"이름 표시",show_name_aria_label_on:"이름 표시 켜기",show_name_aria_label_off:"이름 표시 끄기",show_status:"상태 표시",show_status_aria_label_on:"상태 표시 켜기",show_status_aria_label_off:"상태 표시 끄기",show_toolbar:"툴바 표시",show_toolbar_aria_label_on:"툴바 표시 켜기",show_toolbar_aria_label_off:"툴바 표시 끄기",code_only_note:"동작과 상태 설정은 코드 에디터에서 수정할 수 있습니다."},Ja={status:Za,source:Ia,common:Ua,error:Aa,editor:Ra},Ga={Cleaning:"Siivoaa",Paused:"Pysäytetty",Idle:"Toimeton",Charging:"Latauksessa","Returning home":"Palaa kotiin"},Ya={Gentle:"Hellävarainen",Silent:"Hiljainen",Standard:"Normaali",Medium:"Keskitaso",Turbo:"Turbo"},Xa={name:"Pölynimurikortti",description:"Pölynimurikortti sallii robotti imurin ohjauksen.",start:"Siivoa",continue:"Jatka",pause:"Tauko",stop:"Pysähdy",return_to_base:"Latausasemaan",locate:"Paikanna imuri",not_available:"Imuri ei saatavilla"},Da={missing_entity:"Entiteetti puuttuu!"},La={entity:"Entiteetti (Vaaditaan)",map:"Kartan kamera (Valinnainen)",image:"Kuva (Valinnainen)",compact_view:"Kompakti näkymä",compact_view_aria_label_on:"Kompakti näkymä päälle",compact_view_aria_label_off:"Kompakti näkymä pois",show_name:"Näytä Nimi",show_name_aria_label_on:"Näyttönimi päälle",show_name_aria_label_off:"Näyttönimi pois",show_status:"Näytä Tila",show_status_aria_label_on:"Tilanäyttö päälle",show_status_aria_label_off:"Tilanäyttö pois",show_toolbar:"Näytä työkalurivi",show_toolbar_aria_label_on:"Työkalurivi päälle",show_toolbar_aria_label_off:"Työkalurivi pois",code_only_note:"Huom: Toimintojen ja tilastojen optiot ovat saatavilla ainoastaan koodieditorissa"},Fa={status:Ga,source:Ya,common:Xa,error:Da,editor:La},Qa={cleaning:"Netejant",paused:"En pausa",idle:"Inactiu",charging:"Carregant","returning home":"Tornant a la base",docked:"A la base"},Ha={gentle:"Delicat",silent:"Silenciós",standard:"Estàndard",medium:"Mitjà",turbo:"Turbo"},Ba={name:"Vacuum Card",description:"Vacuum card us permet controlar el robot aspirador.",start:"Neteja",continue:"Continua",pause:"Pausa",stop:"Atura",return_to_base:"Torna a la base",locate:"Localitza",not_available:"No disponible"},$a={missing_entity:"Cal especificar una entitat."},to={entity:"Entitat (Requerit)",map:"Càmera de mapa (Opcional)",image:"Imatge (Opcional)",compact_view:"Visualització compacta",compact_view_aria_label_on:"Activar visualització compacta",compact_view_aria_label_off:"Desactivar visualització compacta",show_name:"Mostrar nom",show_name_aria_label_on:"Mostra nom",show_name_aria_label_off:"Amaga nom",show_status:"Mostrar estat",show_status_aria_label_on:"Mostra estat",show_status_aria_label_off:"Amaga estat",show_toolbar:"Mostrar barra d'eines",show_toolbar_aria_label_on:"Mostra barra d'eines",show_toolbar_aria_label_off:"Amaga barra d'eines",code_only_note:"Nota: Configuració de les accions i estadístiques només disponible des de l'Editor de Codi."},eo={status:Qa,source:Ha,common:Ba,error:$a,editor:to},ao={Cleaning:"清掃中",Paused:"暫停中",Idle:"閒置中",Charging:"充電中","Returning home":"正在返回充電座",docked:"返回充電座","segment cleaning":"區域清掃"},oo={Gentle:"拖地",Silent:"安靜",Standard:"標準",Medium:"強力",Turbo:"MAX"},no={name:"Vacuum Card",description:"Vacuum Card 可以讓您控制掃地機器人",start:"開始清掃",continue:"繼續清掃",pause:"暫停清掃",stop:"停止清掃",return_to_base:"返回充電座",locate:"定位掃地機器人",not_available:"掃地機器人並不支援"},ro={missing_entity:"必須指定一個實體!"},io={entity:"實體 (必填)",map:"地圖 (選填)",image:"圖片 (選填)",compact_view:"精簡檢視",compact_view_aria_label_on:"開啟精簡檢視",compact_view_aria_label_off:"關閉精簡檢視",show_name:"顯示名字",show_name_aria_label_on:"開啟名字顯示",show_name_aria_label_off:"關閉名字顯示",show_status:"顯示狀態",show_status_aria_label_on:"開啟狀態顯示",show_status_aria_label_off:"關閉狀態顯示",show_toolbar:"顯示工具欄",show_toolbar_aria_label_on:"開啟工具欄顯示",show_toolbar_aria_label_off:"關閉工具欄顯示",code_only_note:"提醒: 如果要使用 actions 和 stats 選項,請使用編碼編輯器編輯"},so={status:ao,source:oo,common:no,error:ro,editor:io},lo={en:Object.freeze({__proto__:null,status:ie,source:se,common:le,error:ce,editor:ue,default:pe}),uk:Object.freeze({__proto__:null,status:de,source:he,common:me,error:fe,editor:_e,default:ge}),nl:Object.freeze({__proto__:null,status:ve,common:be,error:ye,editor:Se,default:we}),de:Object.freeze({__proto__:null,status:ke,common:Ve,error:Ne,editor:ze,default:Ee}),fr:Object.freeze({__proto__:null,status:xe,source:je,common:Me,error:We,editor:Ce,default:Pe}),pl:Object.freeze({__proto__:null,status:qe,common:Ke,error:Oe,editor:Te,default:Ze}),it:Object.freeze({__proto__:null,status:Ie,common:Ue,error:Ae,editor:Re,default:Je}),ru:Object.freeze({__proto__:null,status:Ge,source:Ye,common:Xe,error:De,editor:Le,default:Fe}),es:Object.freeze({__proto__:null,status:Qe,source:He,common:Be,error:$e,editor:ta,default:ea}),cs:Object.freeze({__proto__:null,status:aa,source:oa,common:na,error:ra,editor:ia,default:sa}),hu:Object.freeze({__proto__:null,status:la,source:ca,common:ua,error:pa,editor:da,default:ha}),he:Object.freeze({__proto__:null,status:ma,source:fa,common:_a,error:ga,editor:va,default:ba}),sv:Object.freeze({__proto__:null,status:ya,source:Sa,common:wa,error:ka,editor:Va,default:Na}),nb:Object.freeze({__proto__:null,status:za,source:Ea,common:xa,error:ja,editor:Ma,default:Wa}),da:Object.freeze({__proto__:null,status:Ca,source:Pa,common:qa,error:Ka,editor:Oa,default:Ta}),ko:Object.freeze({__proto__:null,status:Za,source:Ia,common:Ua,error:Aa,editor:Ra,default:Ja}),fi:Object.freeze({__proto__:null,status:Ga,source:Ya,common:Xa,error:Da,editor:La,default:Fa}),ca:Object.freeze({__proto__:null,status:Qa,source:Ha,common:Ba,error:$a,editor:to,default:eo}),tw:Object.freeze({__proto__:null,status:ao,source:oo,common:no,error:ro,editor:io,default:so})};function co(t,e,a){const[o,n]=t.toLowerCase().split(".");let r;try{r=JSON.parse(localStorage.getItem("selectedLanguage"))}catch(t){r=localStorage.getItem("selectedLanguage")}const i=(r||navigator.language.split("-")[0]||"en").replace(/['"]+/g,"").replace("-","_");let s;try{s=lo[i][o][n]}catch(t){s=lo.en[o][n]}if(void 0===s&&(s=lo.en[o][n]),void 0!==s)return""!==e&&""!==a&&(s=s.replace(e,a)),s}customElements.define("vacuum-card-editor",class extends H{static get properties(){return{hass:Object,_config:Object,_toggle:Boolean}}setConfig(t){this._config=t,this._config.entity||(this._config.entity=this.getEntitiesByType("vacuum")[0]||"",vt(this,"config-changed",{config:this._config}))}get _entity(){return this._config&&this._config.entity||""}get _map(){return this._config&&this._config.map||""}get _image(){return this._config&&this._config.image||""}get _show_name(){return this._config?this._config.show_name||!0:""}get _show_status(){return this._config?this._config.show_status||!0:""}get _show_toolbar(){return this._config&&this._config.show_toolbar||!0}get _compact_view(){return this._config&&this._config.compact_view||!1}getEntitiesByType(t){return Object.keys(this.hass.states).filter(e=>e.substr(0,e.indexOf("."))===t)}render(){if(!this.hass)return K``;const t=this.getEntitiesByType("vacuum"),e=this.getEntitiesByType("camera");return K`
@@ -172,7 +172,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro @@ -185,7 +185,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro - ${oo("editor.compact_view")} + ${co("editor.compact_view")}

- ${oo("editor.show_name")} + ${co("editor.show_name")}

- ${oo("editor.show_status")} + ${co("editor.show_status")}

- ${oo("editor.show_toolbar")} + ${co("editor.show_toolbar")}

- ${oo("editor.code_only_note")} + ${co("editor.code_only_note")}
`}_valueChanged(t){if(!this._config||!this.hass)return;const e=t.target;this["_"+e.configValue]!==e.value&&(e.configValue&&(""===e.value?delete this._config[e.configValue]:this._config={...this._config,[e.configValue]:void 0!==e.checked?e.checked:e.value}),vt(this,"config-changed",{config:this._config}))}static get styles(){return F` @@ -252,7 +252,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro .option ha-switch { margin-right: 10px; } - `}});var no=F` + `}});var uo=F` :host { display: flex; flex: 1; @@ -519,7 +519,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro color: var(--primary-color); padding-right: 15px; } -`;const ro="data:image/png;base64,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";customElements.get("ha-icon-button")||customElements.define("ha-icon-button",class extends(customElements.get("paper-icon-button")){});customElements.define("vacuum-card",class extends H{static get properties(){return{hass:Object,config:Object,mapUrl:String,requestInProgress:Boolean}}static get styles(){return no}static async getConfigElement(){return document.createElement("vacuum-card-editor")}static getStubConfig(t,e){const[a]=e.filter(t=>"vacuum"===t.substr(0,t.indexOf(".")));return{entity:a||"",image:"default"}}get entity(){return this.hass.states[this.config.entity]}get map(){return this.hass?this.hass.states[this.config.map]:null}get image(){return"default"===this.config.image?ro:this.config.image||ro}get showName(){return void 0===this.config.show_name||this.config.show_name}get showStatus(){return void 0===this.config.show_status||this.config.show_status}get showToolbar(){return void 0===this.config.show_toolbar||this.config.show_toolbar}get compactView(){return void 0!==this.config.compact_view&&this.config.compact_view}setConfig(t){if(!t.entity)throw new Error(oo("error.missing_entity"));this.config=t}getCardSize(){return 2}shouldUpdate(t){return function(t,e,a){if(e.has("config")||a)return!0;if(t.config.entity){var o=e.get("hass");return!o||o.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t)}updated(t){t.get("hass")&&t.get("hass").states[this.config.entity].state!==this.hass.states[this.config.entity].state&&(this.requestInProgress=!1)}updateCameraImage(){this.hass.callWS({type:"camera_thumbnail",entity_id:this.config.map}).then(t=>{const{content_type:e,content:a}=t;this.mapUrl=`data:${e};base64, ${a}`,this.requestUpdate()})}connectedCallback(){super.connectedCallback(),!this.compactView&&this.map&&(this.updateCameraImage(),this.thumbUpdater=setInterval(()=>this.updateCameraImage(),1e3*(this.config.map_refresh||5)))}disconnectedCallback(){super.disconnectedCallback(),this.map&&(clearInterval(this.thumbUpdater),this.map_image=null)}handleMore(){vt(this,"hass-more-info",{entityId:this.entity.entity_id},{bubbles:!0,composed:!0})}handleSpeed(t){const e=t.target.getAttribute("value");this.callService("set_fan_speed",!1,{fan_speed:e})}callService(t,e=!0,a={}){this.hass.callService("vacuum",t,{entity_id:this.config.entity,...a}),e&&(this.requestInProgress=!0,this.requestUpdate())}getAttributes(t){const{status:e,state:a,fan_speed:o,fan_speed_list:n,battery_level:r,battery_icon:i,friendly_name:s}=t.attributes;return{status:e||a||t.state,fan_speed:o,fan_speed_list:n,battery_level:r,battery_icon:i,friendly_name:s}}renderSource(){const{fan_speed:t,fan_speed_list:e}=this.getAttributes(this.entity);if(!e)return K``;const a=e.indexOf(t);return K` +`;const po="data:image/png;base64,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";customElements.get("ha-icon-button")||customElements.define("ha-icon-button",class extends(customElements.get("paper-icon-button")){});customElements.define("vacuum-card",class extends H{static get properties(){return{hass:Object,config:Object,requestInProgress:Boolean}}static get styles(){return uo}static async getConfigElement(){return document.createElement("vacuum-card-editor")}static getStubConfig(t,e){const[a]=e.filter(t=>"vacuum"===t.substr(0,t.indexOf(".")));return{entity:a||"",image:"default"}}get entity(){return this.hass.states[this.config.entity]}get map(){return this.hass?this.hass.states[this.config.map]:null}get image(){return"default"===this.config.image?po:this.config.image||po}get showName(){return void 0===this.config.show_name||this.config.show_name}get showStatus(){return void 0===this.config.show_status||this.config.show_status}get showToolbar(){return void 0===this.config.show_toolbar||this.config.show_toolbar}get compactView(){return void 0!==this.config.compact_view&&this.config.compact_view}setConfig(t){if(!t.entity)throw new Error(co("error.missing_entity"));this.config=t}getCardSize(){return 2}shouldUpdate(t){return function(t,e,a){if(e.has("config")||a)return!0;if(t.config.entity){var o=e.get("hass");return!o||o.states[t.config.entity]!==t.hass.states[t.config.entity]}return!1}(this,t)}updated(t){t.get("hass")&&t.get("hass").states[this.config.entity].state!==this.hass.states[this.config.entity].state&&(this.requestInProgress=!1)}connectedCallback(){super.connectedCallback(),!this.compactView&&this.map&&(this.requestUpdate(),this.thumbUpdater=setInterval(()=>this.requestUpdate(),1e3*(this.config.map_refresh||5)))}disconnectedCallback(){super.disconnectedCallback(),this.map&&clearInterval(this.thumbUpdater)}handleMore(){vt(this,"hass-more-info",{entityId:this.entity.entity_id},{bubbles:!0,composed:!0})}handleSpeed(t){const e=t.target.getAttribute("value");this.callService("set_fan_speed",!1,{fan_speed:e})}callService(t,e=!0,a={}){this.hass.callService("vacuum",t,{entity_id:this.config.entity,...a}),e&&(this.requestInProgress=!0,this.requestUpdate())}getAttributes(t){const{status:e,state:a,fan_speed:o,fan_speed_list:n,battery_level:r,battery_icon:i,friendly_name:s}=t.attributes;return{status:e||a||t.state,fan_speed:o,fan_speed_list:n,battery_level:r,battery_icon:i,friendly_name:s}}renderSource(){const{fan_speed:t,fan_speed_list:e}=this.getAttributes(this.entity);if(!e)return K``;const a=e.indexOf(t);return K` - ${oo("source."+t)||t} + ${co("source."+t)||t} ${e.map(t=>K`${oo("source."+t)||t}${co("source."+t)||t}`)} - `}renderMapOrImage(t){return this.compactView?K``:this.map?K` `:this.image?K` `:K``}renderStats(t){const{stats:e={}}=this.config;return(e[t]||e.default||[]).map(({entity_id:t,attribute:e,unit:a,subtitle:o})=>{if(!t&&!e)return K``;const n=t?this.hass.states[t].state:re(this.entity.attributes,e);return K` + `}renderMapOrImage(t){return this.compactView?K``:this.map?this.hass.states[this.config.map]&&this.hass.states[this.config.map].attributes.entity_picture?K``:K``:this.image?K``:K``}renderStats(t){const{stats:e={}}=this.config;return(e[t]||e.default||[]).map(({entity_id:t,attribute:e,unit:a,subtitle:o})=>{if(!t&&!e)return K``;const n=t?this.hass.states[t].state:re(this.entity.attributes,e);return K`
${n} ${a} @@ -554,7 +557,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro
${t}
- `:K``}renderStatus(){const{status:t}=this.getAttributes(this.entity),e=oo("status."+t)||t;return this.showStatus?K` + `:K``}renderStatus(){const{status:t}=this.getAttributes(this.entity),e=co("status."+t)||t;return this.showStatus?K`
${e} @@ -568,37 +571,37 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro
- ${oo("common.pause")} + ${co("common.pause")} - ${oo("common.stop")} + ${co("common.stop")} - ${oo("common.return_to_base")} + ${co("common.return_to_base")}
`;case"paused":return K`
- ${oo("common.continue")} + ${co("common.continue")} - ${oo("common.return_to_base")} + ${co("common.return_to_base")}
`;case"returning":return K`
- ${oo("common.continue")} + ${co("common.continue")} - ${oo("common.pause")} + ${co("common.pause")}
`;case"docked":case"idle":default:{const{actions:e=[]}=this.config,a=e.map(({name:t,service:e,icon:a,service_data:o})=>K``),o=K` @@ -616,14 +619,14 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro
@@ -637,7 +640,7 @@ const X="adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.pro