(function(){"use strict";function a(){var b=N([""]);return a=function(){return b},b}function b(){var a=N(["\n
\n ","\n \n "," ","\n \n \n ","\n \n
\n "]);return b=function(){return a},a}function c(){var a=N(["\n
\n ","\n
\n "]);return c=function(){return a},a}function d(){var a=N(["\n
\n ","\n ","\n
\n "]);return d=function(){return a},a}function e(){var a=N(["\n
\n ","\n ","\n
\n "]);return e=function(){return a},a}function f(){var a=N(["\n \n \n \n ","\n \n ","\n ","\n ","\n ","\n ","\n \n ","\n "]);return f=function(){return a},a}function g(){var a=N(["",""]);return g=function(){return a},a}function h(){var a=N(["\n \n ","\n "]);return h=function(){return a},a}function j(){var a=N(["\n \n "]);return j=function(){return a},a}function k(){var a=N(["\n "]);return k=function(){return a},a}function l(){var a=N(["\n "]);return l=function(){return a},a}function m(){var a=N(["",""]);return m=function(){return a},a}function n(){var a=N(["\n \n "]);return n=function(){return a},a}function o(){var a=N(["\n \n ","\n "]);return o=function(){return a},a}function p(){var a=N(["\n \n ","\n "]);return p=function(){return a},a}function q(){var a=N(["\n \n "]);return q=function(){return a},a}function r(){var a=N(["\n \n ","\n \n "]);return r=function(){return a},a}function s(){var a=N(["\n "]);return s=function(){return a},a}function t(){var a=N(["\n \n \n \n \n \n \n \n \n \n \n \n "]);return t=function(){return a},a}function u(){var a=N(["\n \n \n \n "]);return u=function(){return a},a}function v(){var a=N(["\n
\n ","\n ","\n
\n "]);return v=function(){return a},a}function w(){var a=N(["\n
\n ","\n
\n "]);return w=function(){return a},a}function x(){var a=N(["\n
\n
\n ","\n ","\n
\n ","\n
\n
\n ","\n
"]);return x=function(){return a},a}function y(){var a=N(["\n "," -\n ","\n "]);return y=function(){return a},a}function z(){var a=N(["\n ","\n "]);return z=function(){return a},a}function A(){var a=N(["\n
\n ","\n
\n "]);return A=function(){return a},a}function B(){var a=N(["\n \n ","\n \n ","\n \n \n ","\n \n ","\n \n "]);return B=function(){return a},a}function C(){var a=N(["\n
\n ","\n
","
\n ","\n
\n "]);return C=function(){return a},a}function D(){var a=N(["\n
\n ","\n
\n "]);return D=function(){return a},a}function E(){var a=N(["\n
\n \n
\n "]);return E=function(){return a},a}function F(){var a=N(["\n
\n \n
\n "]);return F=function(){return a},a}function G(){var a=N(["\n
\n "," ","\n
\n "]);return G=function(){return a},a}function H(){var a=N([""]);return H=function(){return a},a}function I(){var a=N(["\n
\n Entity not available: ","\n
\n "]);return I=function(){return a},a}function J(){var a=N(["\n \n
mini-graph-card
\n ","\n
\n "]);return J=function(){return a},a}function K(){var a=N(["\n \n "," "," "," ","\n \n "]);return K=function(){return a},a}function L(){var a=N([""]);return L=function(){return a},a}function M(){var a=N(["\n :host {\n display: flex;\n flex-direction: column;\n }\n ha-card {\n flex-direction: column;\n flex: 1;\n padding: 16px 0;\n position: relative;\n overflow: hidden;\n }\n ha-card > div {\n padding: 0px 16px 16px 16px;\n }\n ha-card > div:last-child {\n padding-bottom: 0;\n }\n ha-card[points] .line--points,\n ha-card[labels] .graph__labels.--primary {\n opacity: 0;\n transition: opacity .25s;\n animation: none;\n }\n ha-card[labels-secondary] .graph__labels.--secondary {\n opacity: 0;\n transition: opacity .25s;\n animation: none;\n }\n ha-card[points]:hover .line--points,\n ha-card:hover .graph__labels.--primary,\n ha-card:hover .graph__labels.--secondary {\n opacity: 1;\n }\n ha-card[fill] {\n padding-bottom: 0;\n }\n ha-card[fill] .graph {\n padding: 0;\n order: 10;\n }\n ha-card[fill] path {\n stroke-linecap: initial;\n stroke-linejoin: initial;\n }\n ha-card[fill] .graph__legend {\n order: -1;\n padding: 0 16px 8px 16px;\n }\n ha-card[fill] .info {\n padding-bottom: 16px;\n }\n ha-card[group] {\n box-shadow: none;\n padding: 0;\n }\n ha-card[group] > div {\n padding-left: 0;\n padding-right: 0;\n }\n ha-card[group] .graph__legend {\n padding-left: 0;\n padding-right: 0;\n }\n ha-card[hover] {\n cursor: pointer;\n }\n .flex {\n display: flex;\n display: -webkit-flex;\n min-width: 0;\n }\n .header {\n justify-content: space-between;\n }\n .header[loc=\"center\"] {\n justify-content: space-around;\n }\n .header[loc=\"left\"] {\n align-self: flex-start;\n }\n .header[loc=\"right\"] {\n align-self: flex-end;\n }\n .name {\n align-items: center;\n min-width: 0;\n letter-spacing: var(--mcg-title-letter-spacing, normal);\n }\n .name > span {\n font-size: 1.2em;\n font-weight: var(--mcg-title-font-weight, 500);\n max-height: 1.4em;\n min-height: 1.4em;\n opacity: .65;\n }\n .icon {\n color: var(--paper-item-icon-color, #44739e);\n display: inline-block;\n flex: 0 0 1.7em;\n text-align: center;\n }\n .icon > ha-icon {\n height: 1.7em;\n width: 1.7em;\n }\n .icon[loc=\"left\"] {\n order: -1;\n margin-right: .6em;\n margin-left: 0;\n }\n .icon[loc=\"state\"] {\n align-self: center;\n }\n .states {\n align-items: flex-start;\n font-weight: 300;\n justify-content: space-between;\n flex-wrap: nowrap;\n }\n .states .icon {\n align-self: center;\n margin-left: 0;\n }\n .states[loc=\"center\"] {\n justify-content: space-evenly;\n }\n .states[loc=\"right\"] > .state {\n margin-left: auto;\n order: 2;\n }\n .states[loc=\"center\"] .states--secondary,\n .states[loc=\"right\"] .states--secondary {\n margin-left: 0;\n }\n .states[loc=\"center\"] .states--secondary {\n align-items: center;\n }\n .states[loc=\"right\"] .states--secondary {\n align-items: flex-start;\n }\n .states[loc=\"center\"] .state__time {\n left: 50%;\n transform: translateX(-50%);\n }\n .states > .icon > ha-icon {\n height: 2em !important;\n width: 2em !important;\n }\n .states--secondary {\n display: flex;\n flex-flow: column;\n flex-wrap: wrap;\n align-items: flex-end;\n margin-left: 1rem;\n min-width: 0;\n margin-left: 1.4em;\n }\n .states--secondary:empty {\n display: none;\n }\n .state {\n position: relative;\n display: flex;\n flex-wrap: nowrap;\n max-width: 100%;\n min-width: 0;\n }\n .state--small {\n font-size: .6em;\n margin-bottom: .6rem;\n flex-wrap: nowrap;\n }\n .state--small > svg {\n position: absolute;\n left: -1.6em;\n align-self: center;\n height: 1em;\n width: 1em;\n border-radius: 100%;\n margin-right: 1em;\n }\n .state--small:last-child {\n margin-bottom: 0;\n }\n .states--secondary > :only-child {\n font-size: 1em;\n margin-bottom: 0;\n }\n .states--secondary > :only-child svg {\n display: none;\n }\n .state__value {\n display: inline-block;\n font-size: 2.4em;\n margin-right: .25rem;\n line-height: 1.2em;\n }\n .state__uom {\n flex: 1;\n align-self: flex-end;\n display: inline-block;\n font-size: 1.4em;\n font-weight: 400;\n line-height: 1.6em;\n margin-top: .1em;\n opacity: .6;\n vertical-align: bottom;\n }\n .state--small .state__uom {\n flex: 1;\n }\n .state__time {\n font-size: .95rem;\n font-weight: 500;\n bottom: -1.1rem;\n left: 0;\n opacity: .75;\n position: absolute;\n white-space: nowrap;\n animation: fade .15s cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n .states[loc=\"right\"] .state__time {\n left: initial;\n right: 0;\n }\n .graph {\n align-self: flex-end;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n margin-top: auto;\n width: 100%;\n }\n .graph__container {\n display: flex;\n flex-direction: row;\n position: relative;\n }\n .graph__container__svg {\n cursor: default;\n flex: 1;\n }\n svg {\n overflow: hidden;\n display: block;\n }\n path {\n stroke-linecap: round;\n stroke-linejoin: round;\n }\n .fill[anim=\"false\"] {\n animation: reveal .25s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .fill[anim=\"false\"][type=\"fade\"] {\n animation: reveal-2 .25s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .line--points[anim=\"false\"],\n .line[anim=\"false\"] {\n animation: pop .25s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .line--points[inactive],\n .line--rect[inactive],\n .fill--rect[inactive] {\n opacity: 0 !important;\n animation: none !important;\n transition: all .15s !important;\n }\n .line--points[tooltip] .line--point[inactive] {\n opacity: 0;\n }\n .line--point {\n cursor: pointer;\n fill: var(--primary-background-color, white);\n stroke-width: inherit;\n }\n .line--point:hover {\n fill: var(--mcg-hover, inherit) !important;\n }\n .bars {\n animation: pop .25s cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n .bars[anim] {\n animation: bars .5s cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n .bar {\n transition: opacity .25s cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n .bar:hover {\n opacity: .5;\n cursor: pointer;\n }\n ha-card[gradient] .line--point:hover {\n fill: var(--primary-text-color, white);\n }\n path,\n .line--points,\n .fill {\n opacity: 0;\n }\n .line--points[anim=\"true\"][init] {\n animation: pop .5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .fill[anim=\"true\"][init] {\n animation: reveal .5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .fill[anim=\"true\"][init][type=\"fade\"] {\n animation: reveal-2 .5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .line[anim=\"true\"][init] {\n animation: dash 1s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;\n }\n .graph__labels.--secondary {\n right: 0;\n margin-right: 0px;\n align-items: flex-end;\n }\n .graph__labels {\n align-items: flex-start;\n flex-direction: column;\n font-size: calc(.15em + 8.5px);\n font-weight: 400;\n justify-content: space-between;\n margin-right: 10px;\n padding: .6em;\n position: absolute;\n pointer-events: none;\n top: 0; bottom: 0;\n opacity: .75;\n }\n .graph__labels > span {\n cursor: pointer;\n background: var(--primary-background-color, white);\n border-radius: 1em;\n padding: .2em .6em;\n box-shadow: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);\n }\n .graph__legend {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n padding-top: 16px;\n flex-wrap: wrap;\n }\n .graph__legend__item {\n cursor: pointer;\n display: flex;\n min-width: 0;\n margin: .4em;\n align-items: center\n }\n .graph__legend__item span {\n opacity: .75;\n margin-left: .4em;\n }\n .graph__legend__item svg {\n border-radius: 100%;\n min-width: 10px;\n }\n .info {\n justify-content: space-between;\n align-items: middle;\n }\n .info__item {\n display: flex;\n flex-flow: column;\n text-align: center;\n }\n .info__item:last-child {\n align-items: flex-end;\n text-align: right;\n }\n .info__item:first-child {\n align-items: flex-start;\n text-align: left;\n }\n .info__item__type {\n text-transform: capitalize;\n font-weight: 500;\n opacity: .9;\n }\n .info__item__time,\n .info__item__value {\n opacity: .75;\n }\n .ellipsis {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n @keyframes fade {\n 0% { opacity: 0; }\n }\n @keyframes reveal {\n 0% { opacity: 0; }\n 100% { opacity: .15; }\n }\n @keyframes reveal-2 {\n 0% { opacity: 0; }\n 100% { opacity: .4; }\n }\n @keyframes pop {\n 0% { opacity: 0; }\n 100% { opacity: 1; }\n }\n @keyframes bars {\n 0% { opacity: 0; }\n 50% { opacity: 0; }\n 100% { opacity: 1; }\n }\n @keyframes dash {\n 0% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n stroke-dashoffset: 0;\n }\n }"]);return M=function(){return a},a}function N(a,b){return b||(b=a.slice(0)),Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(b)}}))}function O(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function P(a){for(var b,c=1;ca.length)&&(b=a.length);for(var c=0,d=Array(b);ca.parentNode.removeChild(a))}function R(a,b){var c=2=b.oldVersion&&c.createObjectStore("local-forage-detect-blob-support")}catch(c){if("ConstraintError"===c.name)console.warn("The database \""+a.name+"\" has been upgraded from version "+b.oldVersion+" to version "+b.newVersion+", but the storage \""+a.storeName+"\" already exists.");else throw c}}),f.onerror=function(a){a.preventDefault(),d(f.error)},f.onsuccess=function(){c(f.result),fa(a)}})}function ia(a){return ha(a,!1)}function ja(a){return ha(a,!0)}function ka(a,b){if(!a.db)return!0;var c=!a.db.objectStoreNames.contains(a.storeName),d=a.versiona.db.version;if(d&&(a.version!==b&&console.warn("The database \""+a.name+"\" can't be downgraded from version "+a.db.version+" to version "+a.version+"."),a.version=a.db.version),e||c){if(c){var f=a.db.version+1;f>a.version&&(a.version=f)}return!0}return!1}function la(a){return new ec(function(b,c){var d=new FileReader;d.onerror=c,d.onloadend=function(c){var d=btoa(c.target.result||"");b({__local_forage_encoded_blob:!0,data:d,type:a.type})},d.readAsBinaryString(a)})}function ma(a){var b=ba(atob(a.data));return W([b],{type:a.type})}function na(a){return a&&a.__local_forage_encoded_blob}function oa(a){var b=this,c=b._initReady().then(function(){var a=fc[b._dbInfo.name];if(a&&a.dbReady)return a.dbReady});return $(c,a,a),c}function pa(a){ea(a);for(var b,c=fc[a.name],d=c.forages,e=0;e(a.db=b,ka(a)?ja(a):b)).then(b=>{a.db=c.db=b;for(var e=0;e{throw ga(a,b),b})}function qa(a,b,c,d){d===void 0&&(d=1);try{var e=a.db.transaction(a.storeName,b);c(null,e)}catch(e){if(0{if(!a.db||"NotFoundError"===e.name&&!a.db.objectStoreNames.contains(a.storeName)&&a.version<=a.db.version)return a.db&&(a.version=a.db.version+1),ja(a)}).then(()=>pa(a).then(function(){qa(a,b,c,d-1)})).catch(c);c(e)}}function ra(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function sa(a){var b,c,d,e,f,g=.75*a.length,h=a.length,j=0;"="===a[a.length-1]&&(g--,"="===a[a.length-2]&&g--);var k=new ArrayBuffer(g),l=new Uint8Array(k);for(b=0;b>4,l[j++]=(15&d)<<4|e>>2,l[j++]=(3&e)<<6|63&f;return k}function ta(a){var b,c=new Uint8Array(a),d="";for(b=0;b>2],d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&c[b])<<4|c[b+1]>>4],d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&c[b+1])<<2|c[b+2]>>6],d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[63&c[b+2]];return 2==c.length%3?d=d.substring(0,d.length-1)+"=":1==c.length%3&&(d=d.substring(0,d.length-2)+"=="),d}function ua(a,b,c,d){a.executeSql("CREATE TABLE IF NOT EXISTS ".concat(b.storeName," ")+"(id INTEGER PRIMARY KEY, key unique, value)",[],c,d)}function va(a,b,c,d,e,f){a.executeSql(c,d,e,function(a,g){g.code===g.SYNTAX_ERR?a.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[b.storeName],function(a,h){h.rows.length?f(a,g):ua(a,b,function(){a.executeSql(c,d,e,f)},f)},f):f(a,g)},f)}function wa(a,b,c,d){var e=this;a=_(a);var f=new ec(function(f,g){e.ready().then(function(){void 0===b&&(b=null);var h=b,i=e._dbInfo;i.serializer.serialize(b,function(b,j){j?g(j):i.db.transaction(function(c){va(c,i,"INSERT OR REPLACE INTO ".concat(i.storeName," ")+"(key, value) VALUES (?, ?)",[a,b],function(){f(h)},function(a,b){g(b)})},function(b){if(b.code===b.QUOTA_ERR){if(0 '__WebKitDatabaseInfoTable__'",[],function(c,d){for(var e=[],f=0;f"),Xa=new RegExp("".concat(Va,"|").concat(Wa)),Ya="$lit$";class Za{constructor(a,b){this.parts=[],this.element=b;for(var c,d=[],e=[],f=document.createTreeWalker(b.content,133,null,!1),g=0,h=-1,j=0,{strings:k,values:{length:l}}=a;j{var c=a.length-b.length;return 0<=c&&a.slice(c)===b},ab=a=>-1!==a.index,bb=()=>document.createComment(""),cb=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/,db=a=>{for(var b=11===a.nodeType?0:1,c=document.createTreeWalker(a,133,null,!1);c.nextNode();)b++;return b},eb=function(a){for(var b,c=1"function"==typeof a&&fb.has(a),hb={},ib={};class jb{constructor(a,b,c){this.__parts=[],this.template=a,this.processor=b,this.options=c}update(a){var b=0;for(var c of this.__parts)void 0!==c&&c.setValue(a[b]),b++;for(var d of this.__parts)void 0!==d&&d.commit()}_clone(){for(var a,b=Sa?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),c=[],d=this.template.parts,e=document.createTreeWalker(b,133,null,!1),f=0,g=0,h=e.nextNode();fa}),lb=" ".concat(Va," ");class mb{constructor(a,b,c,d){this.strings=a,this.values=b,this.type=c,this.processor=d}getHTML(){for(var a=this.strings.length-1,b="",c=!1,d=0;d",f+1);var g=cb.exec(e);b+=null===g?e+(c?lb:Wa):e.substr(0,g.index)+g[1]+g[2]+Ya+g[3]+Va}return b+=this.strings[a],b}getTemplateElement(){var a=document.createElement("template"),b=this.getHTML();return void 0!==kb&&(b=kb.createHTML(b)),a.innerHTML=b,a}}class nb extends mb{getHTML(){return"".concat(super.getHTML(),"")}getTemplateElement(){var a=super.getTemplateElement(),b=a.content,c=b.firstChild;return b.removeChild(c),Ta(b,c.firstChild),a}}var ob=a=>null===a||"object"!=typeof a&&"function"!=typeof a,pb=a=>Array.isArray(a)||!!(a&&a[Symbol.iterator]);class qb{constructor(a,b,c){this.dirty=!0,this.element=a,this.name=b,this.strings=c,this.parts=[];for(var d=0;d{try{var a={get capture(){return wb=!0,!1}};window.addEventListener("test",a,a),window.removeEventListener("test",a,a)}catch(a){}})();class xb{constructor(a,b,c){this.value=void 0,this.__pendingValue=void 0,this.element=a,this.eventName=b,this.eventContext=c,this.__boundHandleEvent=a=>this.handleEvent(a)}setValue(a){this.__pendingValue=a}commit(){for(;gb(this.__pendingValue);){var d=this.__pendingValue;this.__pendingValue=hb,d(this)}if(this.__pendingValue!==hb){var a=this.__pendingValue,b=this.value,c=null==a||null!=b&&(a.capture!==b.capture||a.once!==b.once||a.passive!==b.passive);c&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),null!=a&&(null==b||c)&&(this.__options=yb(a),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=a,this.__pendingValue=hb}}handleEvent(a){"function"==typeof this.value?this.value.call(this.eventContext||this.element,a):this.value.handleEvent(a)}}var yb=a=>a&&(wb?{capture:a.capture,passive:a.passive,once:a.once}:a.capture),zb=new Map,Ab=new WeakMap,Bb=(a,b,c)=>{var d=Ab.get(b);d===void 0&&(Ua(b,b.firstChild),Ab.set(b,d=new sb(Object.assign({templateFactory:U},c))),d.appendInto(b)),d.setValue(a),d.commit()};var Cb=new class a{handleAttributeExpressions(a,b,c,d){var e=b[0];if("."===e){var g=new ub(a,b.slice(1),c);return g.parts}if("@"===e)return[new xb(a,b.slice(1),d.eventContext)];if("?"===e)return[new tb(a,b.slice(1),c)];var f=new qb(a,b,c);return f.parts}handleTextExpression(a){return new sb(a)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");var Db=function(a){for(var b=arguments.length,c=Array(1"".concat(a,"--").concat(b),Gb=!0;"undefined"==typeof window.ShadyCSS?Gb=!1:"undefined"==typeof 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."),Gb=!1);var Hb,Ib=a=>b=>{var c=Fb(b.type,a),d=zb.get(c);void 0===d&&(d={stringsArray:new WeakMap,keyString:new Map},zb.set(c,d));var e=d.stringsArray.get(b.strings);if(void 0!==e)return e;var f=b.strings.join(Va);if(e=d.keyString.get(f),void 0===e){var g=b.getTemplateElement();Gb&&window.ShadyCSS.prepareTemplateDom(g,a),e=new Za(b,g),d.keyString.set(f,e)}return d.stringsArray.set(b.strings,e),e},Jb=["html","svg"],Kb=a=>{Jb.forEach(b=>{var c=zb.get(Fb(b,a));c!==void 0&&c.keyString.forEach(a=>{var{element:{content:b}}=a,c=new Set;Array.from(b.querySelectorAll("style")).forEach(a=>{c.add(a)}),i(a,c)})})},Lb=new Set,Mb=(a,b,c)=>{Lb.add(a);var d=!c?document.createElement("template"):c.element,e=b.querySelectorAll("style"),{length:f}=e;if(0===f)return void window.ShadyCSS.prepareTemplateStyles(d,a);for(var g,h=document.createElement("style"),j=0;j{if(!c||"object"!=typeof c||!c.scopeName)throw new Error("The `scopeName` option is required.");var d=c.scopeName,e=Ab.has(b),f=Gb&&11===b.nodeType&&!!b.host,g=f&&!Lb.has(d),h=g?document.createDocumentFragment():b;if(Bb(a,h,Object.assign({templateFactory:Ib(d)},c)),g){var i=Ab.get(h);Ab.delete(h);var j=i.value instanceof jb?i.value.template:void 0;Mb(d,h,j),Ua(b,b.firstChild),b.appendChild(h),Ab.set(b,i)}!e&&f&&window.ShadyCSS.styleElement(b.host)};window.JSCompiler_renameProperty=a=>a;var Ob={toAttribute(a,b){return b===Boolean?a?"":null:b===Object||b===Array?null==a?a:JSON.stringify(a):a},fromAttribute(a,b){return b===Boolean?null!==a:b===Number?null===a?null:+a:b===Object||b===Array?JSON.parse(a):a}},Pb=(a,b)=>b!==a&&(b===b||a===a),Qb={attribute:!0,type:String,converter:Ob,reflect:!1,hasChanged:Pb},Rb=1,Sb=4,Tb=8,Ub=16,Vb="finalized";class Wb extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();var a=[];return this._classProperties.forEach((b,c)=>{var d=this._attributeNameForProperty(c,b);void 0!==d&&(this._attributeToPropertyMap.set(d,c),a.push(d))}),a}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;var a=Object.getPrototypeOf(this)._classProperties;a!==void 0&&a.forEach((a,b)=>this._classProperties.set(b,a))}}static createProperty(a){var b=1this._enableUpdatingResolver=a),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach((a,b)=>{if(this.hasOwnProperty(b)){var c=this[b];delete this[b],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(b,c)}})}_applyInstanceProperties(){this._instanceProperties.forEach((a,b)=>this[b]=a),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){this._enableUpdatingResolver!==void 0&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(a,b,c){b!==c&&this._attributeToProperty(a,c)}_propertyToAttribute(a,b){var c=2this._propertyToAttribute(b,this[b],a)),this._reflectingProperties=void 0),this._markUpdated()}updated(){}firstUpdated(){}}Hb=Vb,Wb[Hb]=!0;var Xb=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,Yb=Symbol();class Zb{constructor(a,b){if(b!==Yb)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=a}get styleSheet(){return void 0===this._styleSheet&&(Xb?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}var $b=a=>new Zb(a+"",Yb),_b=a=>{if(a instanceof Zb)return a.cssText;if("number"==typeof a)return a;throw new Error("Value passed to 'css' function must be a 'css' function result: ".concat(a,". Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security."))};(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");var ac={};class bc extends Wb{static getStyles(){return this.styles}static _getUniqueStyles(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_styles",this))){var a=this.getStyles();if(Array.isArray(a)){var b=(a,c)=>a.reduceRight((a,c)=>Array.isArray(c)?b(c,a):(a.add(c),a),c),c=b(a,new Set),d=[];c.forEach(a=>d.unshift(a)),this._styles=d}else this._styles=void 0===a?[]:[a];this._styles=this._styles.map(a=>{if(a instanceof CSSStyleSheet&&!Xb){var b=Array.prototype.slice.call(a.cssRules).reduce((a,b)=>a+b.cssText,"");return $b(b)}return a})}}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(){var a=this.constructor._styles;0===a.length||(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow?Xb?this.renderRoot.adoptedStyleSheets=a.map(a=>a instanceof CSSStyleSheet?a:a.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(a.map(a=>a.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&window.ShadyCSS!==void 0&&window.ShadyCSS.styleElement(this)}update(a){var b=this.render();super.update(a),b!==ac&&this.constructor.render(b,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(a=>{var b=document.createElement("style");b.textContent=a.cssText,this.renderRoot.appendChild(b)}))}render(){return ac}}bc.finalized=!0,bc.render=Nb;var cc=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(a){}}();"undefined"==typeof Promise&&require("lie/polyfill");var dc,ec=Promise,fc={},gc=Object.prototype.toString,hc={_driver:"asyncStorage",_initStorage:function(a){function b(){return ec.resolve()}var c=this,d={db:null};if(a)for(var e in a)d[e]=a[e];var f=fc[d.name];f||(f=ra(),fc[d.name]=f),f.forages.push(c),c._initReady||(c._initReady=c.ready,c.ready=oa);for(var g,h=[],i=0;ia?void b(null):void c.ready().then(function(){qa(c._dbInfo,"readonly",function(e,f){if(e)return d(e);try{var g=f.objectStore(c._dbInfo.storeName),h=!1,i=g.openKeyCursor();i.onsuccess=function(){var c=i.result;return c?void(0===a?b(c.key):h?b(c.key):(h=!0,c.advance(a))):void b(null)},i.onerror=function(){d(i.error)}}catch(a){d(a)}})}).catch(d)});return Z(d,b),d},keys:function(a){var b=this,c=new ec(function(a,c){b.ready().then(function(){qa(b._dbInfo,"readonly",function(d,e){if(d)return c(d);try{var f=e.objectStore(b._dbInfo.storeName),g=f.openKeyCursor(),h=[];g.onsuccess=function(){var b=g.result;return b?void(h.push(b.key),b.continue()):void a(h)},g.onerror=function(){c(g.error)}}catch(a){c(a)}})}).catch(c)});return Z(c,a),c},dropInstance:function(a,b){b=aa.apply(this,arguments);var c=this.config();a="function"!=typeof a&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var d,e=this;if(!a.name)d=ec.reject("Invalid arguments");else{var f=a.name===c.name&&e._dbInfo.db,g=f?ec.resolve(e._dbInfo.db):ia(a).then(b=>{var c=fc[a.name],d=c.forages;c.db=b;for(var e=0;e{if(b.objectStoreNames.contains(a.storeName)){var c=b.version+1;ea(a);var d=fc[a.name],e=d.forages;b.close();for(var g,h=0;h{var e=cc.open(a.name,c);e.onerror=a=>{var b=e.result;b.close(),d(a)},e.onupgradeneeded=()=>{var b=e.result;b.deleteObjectStore(a.storeName)},e.onsuccess=()=>{var a=e.result;a.close(),b(a)}});return f.then(a=>{d.db=a;for(var b,c=0;c{throw(ga(a,b)||ec.resolve()).catch(()=>{}),b})}}):g.then(b=>{ea(a);var c=fc[a.name],d=c.forages;b.close();for(var e,f=0;f{var d=cc.deleteDatabase(a.name);d.onerror=d.onblocked=a=>{var b=d.result;b&&b.close(),c(a)},d.onsuccess=()=>{var a=d.result;a&&a.close(),b(a)}});return g.then(a=>{c.db=a;for(var b,e=0;e{throw(ga(a,b)||ec.resolve()).catch(()=>{}),b})})}return Z(d,b),d}},ic=/^~~local_forage_type~([^~]+)~/,jc="__lfsc__:".length,kc=jc+"arbf".length,lc=Object.prototype.toString,mc={serialize:function(a,b){var c="";if(a&&(c=lc.call(a)),a&&("[object ArrayBuffer]"===c||a.buffer&&"[object ArrayBuffer]"===lc.call(a.buffer))){var d,e="__lfsc__:";a instanceof ArrayBuffer?(d=a,e+="arbf"):(d=a.buffer,"[object Int8Array]"===c?e+="si08":"[object Uint8Array]"===c?e+="ui08":"[object Uint8ClampedArray]"===c?e+="uic8":"[object Int16Array]"===c?e+="si16":"[object Uint16Array]"===c?e+="ur16":"[object Int32Array]"===c?e+="si32":"[object Uint32Array]"===c?e+="ui32":"[object Float32Array]"===c?e+="fl32":"[object Float64Array]"===c?e+="fl64":b(new Error("Failed to get type for BinaryArray"))),b(e+ta(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var c="~~local_forage_type~"+a.type+"~"+ta(this.result);b("__lfsc__:blob"+c)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(c){console.error("Couldn't convert value into a JSON string: ",a),b(null,c)}},deserialize:function(a){if(a.substring(0,jc)!=="__lfsc__:")return JSON.parse(a);var b,c=a.substring(kc),d=a.substring(jc,kc);if(d==="blob"&&ic.test(c)){var e=c.match(ic);b=e[1],c=c.substring(e[0].length)}var f=sa(c);switch(d){case"arbf":return f;case"blob":return W([f],{type:b});case"si08":return new Int8Array(f);case"ui08":return new Uint8Array(f);case"uic8":return new Uint8ClampedArray(f);case"si16":return new Int16Array(f);case"ur16":return new Uint16Array(f);case"si32":return new Int32Array(f);case"ui32":return new Uint32Array(f);case"fl32":return new Float32Array(f);case"fl64":return new Float64Array(f);default:throw new Error("Unkown type: "+d);}},stringToBuffer:sa,bufferToString:ta},nc={_driver:"webSQLStorage",_initStorage:function(a){var b=this,c={db:null};if(a)for(var d in a)c[d]="string"==typeof a[d]?a[d]:a[d].toString();var e=new ec(function(a,d){try{c.db=openDatabase(c.name,c.version+"",c.description,c.size)}catch(a){return d(a)}c.db.transaction(function(e){ua(e,c,function(){b._dbInfo=c,a()},function(a,b){d(b)})},d)});return c.serializer=mc,e},_support:function(){return"function"==typeof openDatabase}(),iterate:function(a,b){var c=this,d=new ec(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){va(c,e,"SELECT * FROM ".concat(e.storeName),[],function(c,d){for(var f=d.rows,g=f.length,h=0;ha===b||"number"==typeof a&&"number"==typeof b&&isNaN(a)&&isNaN(b),qc=(a,b)=>{for(var c=a.length,d=0;d{})}config(a){if("object"==typeof a){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var b in a){if("storeName"==b&&(a[b]=a[b].replace(/\W/g,"_")),"version"==b&&"number"!=typeof a[b])return new Error("Database version must be a number.");this._config[b]=a[b]}return!("driver"in a&&a.driver)||this.setDriver(this._config.driver)}return"string"==typeof a?this._config[a]:this._config}defineDriver(a,b,c){var d=new ec(function(b,c){try{var d=a._driver,e=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!a._driver)return void c(e);for(var f=xc.concat("_initStorage"),g=0,h=f.length;g(null===b._ready&&(b._ready=b._initDriver()),b._ready));return $(c,a,a),c}setDriver(a,b,c){function d(){g._config.driver=g.driver()}function e(a){return g._extend(a),d(),g._ready=g._initStorage(g._config),g._ready}function f(a){return function(){function b(){for(;cec.resolve());return this._driverSet=i.then(()=>{var a=h[0];return g._dbInfo=null,g._ready=null,g.getDriver(a).then(a=>{g._driver=a._driver,d(),g._wrapLibraryMethodsWithReady(),g._initDriver=f(h)})}).catch(()=>{d();var a=new Error("No available storage method found.");return g._driverSet=ec.reject(a),g._driverSet}),$(this._driverSet,b,c),this._driverSet}supports(a){return!!tc[a]}_extend(a){Da(this,a)}_getSupportedDrivers(a){for(var b,c=[],d=0,e=a.length;da.getHours()?b.amPm[0]:b.amPm[1]},A:function(a,b){return 12>a.getHours()?b.amPm[0].toUpperCase():b.amPm[1].toUpperCase()},ZZ:function(a){var b=a.getTimezoneOffset();return(0=a?"hass:battery-alert":"hass:battery-"+a}var e=b.attributes.unit_of_measurement;return"\xB0C"===e||"\xB0F"===e?"hass:thermometer":Ia("sensor")},input_datetime:function(a){return a.attributes.has_date?a.attributes.has_time?Ia("input_datetime"):"hass:calendar":"hass:clock"}},dd=function(a){if(!a)return"hass:bookmark";if(a.attributes.icon)return a.attributes.icon;var b=Ha(a.entity_id);return b in cd?cd[b](a):Ia(b,a.state)},Q=function(a){var b={exports:{}};return a(b,b.exports),b.exports}(function(a){(function(b){a.exports=b()})(function(a){function b(e,f){var g=e[0],h=e[1],i=e[2],j=e[3];g+=0|(h&i|~h&j)+f[0]-680876936,g=0|(g<<7|g>>>25)+h,j+=0|(g&h|~g&i)+f[1]-389564586,j=0|(j<<12|j>>>20)+g,i+=0|(j&g|~j&h)+f[2]+606105819,i=0|(i<<17|i>>>15)+j,h+=0|(i&j|~i&g)+f[3]-1044525330,h=0|(h<<22|h>>>10)+i,g+=0|(h&i|~h&j)+f[4]-176418897,g=0|(g<<7|g>>>25)+h,j+=0|(g&h|~g&i)+f[5]+1200080426,j=0|(j<<12|j>>>20)+g,i+=0|(j&g|~j&h)+f[6]-1473231341,i=0|(i<<17|i>>>15)+j,h+=0|(i&j|~i&g)+f[7]-45705983,h=0|(h<<22|h>>>10)+i,g+=0|(h&i|~h&j)+f[8]+1770035416,g=0|(g<<7|g>>>25)+h,j+=0|(g&h|~g&i)+f[9]-1958414417,j=0|(j<<12|j>>>20)+g,i+=0|(j&g|~j&h)+f[10]-42063,i=0|(i<<17|i>>>15)+j,h+=0|(i&j|~i&g)+f[11]-1990404162,h=0|(h<<22|h>>>10)+i,g+=0|(h&i|~h&j)+f[12]+1804603682,g=0|(g<<7|g>>>25)+h,j+=0|(g&h|~g&i)+f[13]-40341101,j=0|(j<<12|j>>>20)+g,i+=0|(j&g|~j&h)+f[14]-1502002290,i=0|(i<<17|i>>>15)+j,h+=0|(i&j|~i&g)+f[15]+1236535329,h=0|(h<<22|h>>>10)+i,g+=0|(h&j|i&~j)+f[1]-165796510,g=0|(g<<5|g>>>27)+h,j+=0|(g&i|h&~i)+f[6]-1069501632,j=0|(j<<9|j>>>23)+g,i+=0|(j&h|g&~h)+f[11]+643717713,i=0|(i<<14|i>>>18)+j,h+=0|(i&g|j&~g)+f[0]-373897302,h=0|(h<<20|h>>>12)+i,g+=0|(h&j|i&~j)+f[5]-701558691,g=0|(g<<5|g>>>27)+h,j+=0|(g&i|h&~i)+f[10]+38016083,j=0|(j<<9|j>>>23)+g,i+=0|(j&h|g&~h)+f[15]-660478335,i=0|(i<<14|i>>>18)+j,h+=0|(i&g|j&~g)+f[4]-405537848,h=0|(h<<20|h>>>12)+i,g+=0|(h&j|i&~j)+f[9]+568446438,g=0|(g<<5|g>>>27)+h,j+=0|(g&i|h&~i)+f[14]-1019803690,j=0|(j<<9|j>>>23)+g,i+=0|(j&h|g&~h)+f[3]-187363961,i=0|(i<<14|i>>>18)+j,h+=0|(i&g|j&~g)+f[8]+1163531501,h=0|(h<<20|h>>>12)+i,g+=0|(h&j|i&~j)+f[13]-1444681467,g=0|(g<<5|g>>>27)+h,j+=0|(g&i|h&~i)+f[2]-51403784,j=0|(j<<9|j>>>23)+g,i+=0|(j&h|g&~h)+f[7]+1735328473,i=0|(i<<14|i>>>18)+j,h+=0|(i&g|j&~g)+f[12]-1926607734,h=0|(h<<20|h>>>12)+i,g+=0|(h^i^j)+f[5]-378558,g=0|(g<<4|g>>>28)+h,j+=0|(g^h^i)+f[8]-2022574463,j=0|(j<<11|j>>>21)+g,i+=0|(j^g^h)+f[11]+1839030562,i=0|(i<<16|i>>>16)+j,h+=0|(i^j^g)+f[14]-35309556,h=0|(h<<23|h>>>9)+i,g+=0|(h^i^j)+f[1]-1530992060,g=0|(g<<4|g>>>28)+h,j+=0|(g^h^i)+f[4]+1272893353,j=0|(j<<11|j>>>21)+g,i+=0|(j^g^h)+f[7]-155497632,i=0|(i<<16|i>>>16)+j,h+=0|(i^j^g)+f[10]-1094730640,h=0|(h<<23|h>>>9)+i,g+=0|(h^i^j)+f[13]+681279174,g=0|(g<<4|g>>>28)+h,j+=0|(g^h^i)+f[0]-358537222,j=0|(j<<11|j>>>21)+g,i+=0|(j^g^h)+f[3]-722521979,i=0|(i<<16|i>>>16)+j,h+=0|(i^j^g)+f[6]+76029189,h=0|(h<<23|h>>>9)+i,g+=0|(h^i^j)+f[9]-640364487,g=0|(g<<4|g>>>28)+h,j+=0|(g^h^i)+f[12]-421815835,j=0|(j<<11|j>>>21)+g,i+=0|(j^g^h)+f[15]+530742520,i=0|(i<<16|i>>>16)+j,h+=0|(i^j^g)+f[2]-995338651,h=0|(h<<23|h>>>9)+i,g+=0|(i^(h|~j))+f[0]-198630844,g=0|(g<<6|g>>>26)+h,j+=0|(h^(g|~i))+f[7]+1126891415,j=0|(j<<10|j>>>22)+g,i+=0|(g^(j|~h))+f[14]-1416354905,i=0|(i<<15|i>>>17)+j,h+=0|(j^(i|~g))+f[5]-57434055,h=0|(h<<21|h>>>11)+i,g+=0|(i^(h|~j))+f[12]+1700485571,g=0|(g<<6|g>>>26)+h,j+=0|(h^(g|~i))+f[3]-1894986606,j=0|(j<<10|j>>>22)+g,i+=0|(g^(j|~h))+f[10]-1051523,i=0|(i<<15|i>>>17)+j,h+=0|(j^(i|~g))+f[1]-2054922799,h=0|(h<<21|h>>>11)+i,g+=0|(i^(h|~j))+f[8]+1873313359,g=0|(g<<6|g>>>26)+h,j+=0|(h^(g|~i))+f[15]-30611744,j=0|(j<<10|j>>>22)+g,i+=0|(g^(j|~h))+f[6]-1560198380,i=0|(i<<15|i>>>17)+j,h+=0|(j^(i|~g))+f[13]+1309151649,h=0|(h<<21|h>>>11)+i,g+=0|(i^(h|~j))+f[4]-145523070,g=0|(g<<6|g>>>26)+h,j+=0|(h^(g|~i))+f[11]-1120210379,j=0|(j<<10|j>>>22)+g,i+=0|(g^(j|~h))+f[2]+718787259,i=0|(i<<15|i>>>17)+j,h+=0|(j^(i|~g))+f[9]-343485551,h=0|(h<<21|h>>>11)+i,e[0]=0|g+e[0],e[1]=0|h+e[1],e[2]=0|i+e[2],e[3]=0|j+e[3]}function c(a){var b,c=[];for(b=0;64>b;b+=4)c[b>>2]=a.charCodeAt(b)+(a.charCodeAt(b+1)<<8)+(a.charCodeAt(b+2)<<16)+(a.charCodeAt(b+3)<<24);return c}function d(b){var a,c=[];for(a=0;64>a;a+=4)c[a>>2]=b[a]+(b[a+1]<<8)+(b[a+2]<<16)+(b[a+3]<<24);return c}function e(a){var d,e,f,g,h,j,k=a.length,l=[1732584193,-271733879,-1732584194,271733878];for(d=64;d<=k;d+=64)b(l,c(a.substring(d-64,d)));for(a=a.substring(d-64),e=a.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],d=0;d>2]|=a.charCodeAt(d)<<(d%4<<3);if(f[d>>2]|=128<<(d%4<<3),55d;d+=1)f[d]=0;return g=8*k,g=g.toString(16).match(/(.*?)(.{0,8})$/),h=parseInt(g[2],16),j=parseInt(g[1],16)||0,f[14]=h,f[15]=j,b(l,f),l}function f(c){var e,f,g,h,j,k,l=c.length,m=[1732584193,-271733879,-1732584194,271733878];for(e=64;e<=l;e+=64)b(m,d(c.subarray(e-64,e)));for(c=e-64>2]|=c[e]<<(e%4<<3);if(g[e>>2]|=128<<(e%4<<3),55e;e+=1)g[e]=0;return h=8*l,h=h.toString(16).match(/(.*?)(.{0,8})$/),j=parseInt(h[2],16),k=parseInt(h[1],16)||0,g[14]=j,g[15]=k,b(m,g),m}function g(a){var b,c="";for(b=0;4>b;b+=1)c+=o[15&a>>8*b+4]+o[15&a>>8*b];return c}function h(a){var b;for(b=0;ba?Na(a+b,0):Ma(a,b)}ArrayBuffer.prototype.slice=function(c,d){var e,f,g,h,i=this.byteLength,j=b(c,i),k=i;return(d!==a&&(k=b(d,i)),j>k)?new ArrayBuffer(0):(e=k-j,f=new ArrayBuffer(e),g=new Uint8Array(f),h=new Uint8Array(this,j,e),g.set(h),f)}}(),n.prototype.append=function(a){return this.appendBinary(i(a)),this},n.prototype.appendBinary=function(a){this._buff+=a,this._length+=a.length;var d,e=this._buff.length;for(d=64;d<=e;d+=64)b(this._hash,c(this._buff.substring(d-64,d)));return this._buff=this._buff.substring(d-64),this},n.prototype.end=function(a){var b,c,d=this._buff,e=d.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(b=0;b>2]|=d.charCodeAt(b)<<(b%4<<3);return this._finish(f,e),c=h(this._hash),a&&(c=m(c)),this.reset(),c},n.prototype.reset=function(){return this._buff="",this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},n.prototype.getState=function(){return{buff:this._buff,length:this._length,hash:this._hash.slice()}},n.prototype.setState=function(a){return this._buff=a.buff,this._length=a.length,this._hash=a.hash,this},n.prototype.destroy=function(){delete this._hash,delete this._buff,delete this._length},n.prototype._finish=function(a,c){var d,e,f,g=c;if(a[g>>2]|=128<<(g%4<<3),55g;g+=1)a[g]=0;d=8*this._length,d=d.toString(16).match(/(.*?)(.{0,8})$/),e=parseInt(d[2],16),f=parseInt(d[1],16)||0,a[14]=e,a[15]=f,b(this._hash,a)},n.hash=function(a,b){return n.hashBinary(i(a),b)},n.hashBinary=function(a,b){var c=e(a),d=h(c);return b?m(d):d},n.ArrayBuffer=function(){this.reset()},n.ArrayBuffer.prototype.append=function(a){var c,e=l(this._buff.buffer,a,!0),f=e.length;for(this._length+=a.byteLength,c=64;c<=f;c+=64)b(this._hash,d(e.subarray(c-64,c)));return this._buff=c-64>2]|=d[b]<<(b%4<<3);return this._finish(f,e),c=h(this._hash),a&&(c=m(c)),this.reset(),c},n.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._hash=[1732584193,-271733879,-1732584194,271733878],this},n.ArrayBuffer.prototype.getState=function(){var a=n.prototype.getState.call(this);return a.buff=k(a.buff),a},n.ArrayBuffer.prototype.setState=function(a){return a.buff=j(a.buff,!0),n.prototype.setState.call(this,a)},n.ArrayBuffer.prototype.destroy=n.prototype.destroy,n.ArrayBuffer.prototype._finish=n.prototype._finish,n.ArrayBuffer.hash=function(a,b){var c=f(new Uint8Array(a)),d=h(c);return b?m(d):d},n})}),ed=Oa,fd=a=>gd(a,16,function(b){return ed(b)}),gd=(a,b,c)=>{if(null==a)return"";var d,e,f,g={},h={},j="",k="",l="",m=2,n=3,o=2,p=[],q=0,r=0;for(f=0;fl.charCodeAt(0)){for(d=0;dd;d++)q=q<<1|1&e,r==b-1?(r=0,p.push(c(q)),q=0):r++,e>>=1}else{for(e=1,d=0;dd;d++)q=q<<1|1&e,r==b-1?(r=0,p.push(c(q)),q=0):r++,e>>=1}m--,0==m&&(m=La(2,o),o++),delete h[l]}else for(e=g[l],d=0;d>=1;m--,0==m&&(m=La(2,o),o++),g[k]=n++,l=j+""}if(""!==l){if(Object.prototype.hasOwnProperty.call(h,l)){if(256>l.charCodeAt(0)){for(d=0;dd;d++)q=q<<1|1&e,r==b-1?(r=0,p.push(c(q)),q=0):r++,e>>=1}else{for(e=1,d=0;dd;d++)q=q<<1|1&e,r==b-1?(r=0,p.push(c(q)),q=0):r++,e>>=1}m--,0==m&&(m=La(2,o),o++),delete h[l]}else for(e=g[l],d=0;d>=1;m--,0==m&&(m=La(2,o),o++)}for(e=2,d=0;d>=1;for(;;)if(q<<=1,r==b-1){p.push(c(q));break}else r++;return p.join("")},hd=a=>null==a?"":""==a?null:id(a.length,32768,function(b){return a.charCodeAt(b)}),id=(a,b,d)=>{var e,f,g,h,j,k,l,m=[],n=4,o=4,p=3,q="",r=[],s={val:d(0),position:b,index:1};for(e=0;3>e;e+=1)m[e]=e;for(g=0,j=La(2,2),k=1;k!=j;)h=s.val&s.position,s.position>>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0a)return"";for(g=0,j=La(2,p),k=1;k!=j;)h=s.val&s.position,s.position>>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0>=1,0==s.position&&(s.position=b,s.val=d(s.index++)),g|=(0a.reduce((a,c)=>+c[b]<+a[b]?c:a,a[0]),kd=(a,b)=>a.reduce((a,c)=>a+ +c[b],0)/a.length,ld=(a,b)=>a.reduce((a,c)=>+c[b]>+a[b]?c:a,a[0]),md=function(a,b){var c=2a*3600*1000,od=(c,a,b)=>{var d=+c.replace("#","0x"),e=d>>16,f=255&d>>8,g=255&d,h=+a.replace("#","0x");return"#".concat((0|16777216+(e+b*((h>>16)-e)<<16)+(f+b*((255&h>>8)-f)<<8)+(g+b*((255&h)-g))).toString(16).slice(1))},pd=a=>fd(JSON.stringify(a)),qd=a=>"string"==typeof a?JSON.parse(hd(a)):a,rd=function(){for(var a=arguments.length,b=Array(a),c=0;c"undefined"!=typeof a)},sd=(c,a)=>c.length===a.length&&c.every((b,c)=>b===a[c]),td=a=>{console.warn("mini-graph-card: ",a)},ud="https://github.com/kalkih/mini-graph-card/blob/master/README.md",vd=14,wd=96,xd={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",battery:"hass:battery",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi",motion:"hass:walk",door:"hass:door-closed",window:"hass:window-closed",presence:"hass:account",light:"hass:lightbulb"},yd=["var(--accent-color)","#3498db","#e74c3c","#9b59b6","#f1c40f","#2ecc71","#1abc9c","#34495e","#e67e22","#7f8c8d","#27ae60","#2980b9","#8e44ad"],zd=["entity","line","length","fill","points","tooltip","abs","config"],Ad={name:!0,icon:!0,state:!0,graph:"line",labels:"hover",labels_secondary:"hover",extrema:!1,legend:!0,fill:!0,points:"hover"},Bd=0,X=1,Y=2,V=3600000;class Cd{constructor(a,b,c){var d=3this._reducer(a,b),[]),c=Ka(this.hours*this.points);b.length=c,this.coords=this._calcPoints(b),this.min=Ma.apply(Math,T(this.coords.map(a=>+a[Y]))),this.max=Na.apply(Math,T(this.coords.map(a=>+a[Y])))}}_reducer(a,b){var c=this._endTime-new Date(b.last_changed).getTime(),d=c/V*this.points-this.hours*this.points;if(0>d){var e=Pa(Qa(d));a[e]||(a[e]=[]),a[e].push(b)}else a[0]=[b];return a}_calcPoints(a){var b=this.width/(this.hours*this.points-1);b=Number.isFinite(b)?b:this.width;for(var c,d=[],e=a.filter(Boolean)[0],f=0;f{var b=this._logarithmic?Ja(Na(1,a[Y])):a[Y],e=this.height-(b-c)/d+2*this.margin[X];return[a[Bd],e,a[Y]]});return e}getPoints(){var{coords:a}=this;if(1===a.length&&(a[1]=[this.width+this.margin[Bd],0,a[0][Y]]),a=this._calcY(this.coords),this._smoothing){var b=a[0];return a.shift(),a.map((a,c)=>{var d=this._midPoint(b[Bd],b[X],a[Bd],a[X]),e=(b[Y]+a[Y])/2;return b=a,[d[Bd],d[X],e,c+1]})}return a.map((a,b)=>[a[Bd],a[X],a[Y],b])}getPath(){var{coords:a}=this;1===a.length&&(a[1]=[this.width+this.margin[Bd],0,a[0][Y]]),a=this._calcY(this.coords);var b,c,d="",e=a[0];return d+="M".concat(e[Bd],",").concat(e[X]),a.forEach(a=>{b=a,c=this._smoothing?this._midPoint(e[Bd],e[X],b[Bd],b[X]):b,d+=" ".concat(c[Bd],",").concat(c[X]),d+=" Q ".concat(b[Bd],",").concat(b[X]),e=b}),d+=" ".concat(b[Bd],",").concat(b[X]),d}computeGradient(a,b){var c=b?Ja(Na(1,this._max))-Ja(Na(1,this._min)):this._max-this._min;return a.map((a,d,e)=>{var f;if(a.value>this._max&&e[d+1]){var h=(this._max-e[d+1].value)/(a.value-e[d+1].value);f=od(e[d+1].color,a.color,h)}else if(a.value=c?0:b?(Ja(Na(1,this._max))-Ja(Na(1,a.value)))*(100/c):(this._max-a.value)*(100/c),{color:f||a.color,offset:g}})}getFill(a){var b=this.height+4*this.margin[X],c=a;return c+=" L ".concat(this.width-2*this.margin[Bd],", ").concat(b),c+=" L ".concat(this.coords[0][Bd],", ").concat(b," z"),c}getBars(a,b){var c=2({x:e*f*b+e*a+c,y:d[X],height:this.height-d[X]+4*this.margin[X],width:e-c,value:d[Y]}))}_midPoint(a,b,c,d){return[(a-c)/2+c,(b-d)/2+d]}_average(a){return a.reduce((a,b)=>a+parseFloat(b.state),0)/a.length}_median(a){var b=T(a).sort((c,a)=>parseFloat(c)-parseFloat(a)),c=Pa((b.length-1)/2);return 1==b.length%2?parseFloat(b[c].state):(parseFloat(b[c].state)+parseFloat(b[c+1].state))/2}_maximum(a){return Na.apply(Math,T(a.map(a=>a.state)))}_minimum(a){return Ma.apply(Math,T(a.map(a=>a.state)))}_first(a){return parseFloat(a[0].state)}_last(a){return parseFloat(a[a.length-1].state)}_sum(a){return a.reduce((a,b)=>a+parseFloat(b.state),0)}_delta(a){return this._maximum(a)-this._minimum(a)}_diff(a){return this._last(a)-this._first(a)}_lastValue(a){return["delta","diff"].includes(this.aggregateFuncName)?0:parseFloat(a[a.length-1].state)||0}_updateEndTime(){switch(this._endTime=new Date,this._groupBy){case"month":this._endTime.setMonth(this._endTime.getMonth()+1),this._endTime.setDate(1);break;case"date":this._endTime.setDate(this._endTime.getDate()+1),this._endTime.setHours(0,0,0,0);break;case"hour":this._endTime.setHours(this._endTime.getHours()+1),this._endTime.setMinutes(0,0,0);}}}var Dd=function css(a){for(var b=arguments.length,c=Array(1b+_b(c)+a[d+1],a[0]);return new Zb(e,Yb)}(M()),Ed=(a,b,c,d,f)=>{var g;switch(d.action){case"more-info":{g=new Event("hass-more-info",{composed:!0}),g.detail={entityId:f},a.dispatchEvent(g);break}case"navigate":{if(!d.navigation_path)return;window.history.pushState(null,"",d.navigation_path),g=new Event("location-changed",{composed:!0}),g.detail={replace:!1},window.dispatchEvent(g);break}case"call-service":{if(!d.service)return;var[h,i]=d.service.split(".",2),j=P({},d.service_data);b.callService(h,i,j);break}case"url":{if(!d.url)return;window.location.href=d.url;break}case"fire-dom-event":{g=new Event("ll-custom",{composed:!0,bubbles:!0}),g.detail=d,a.dispatchEvent(g);break}}},Fd=(a,b)=>{for(var c=b,d=a.length;c{if(!a||!a.length)return a;if(null==a[0].value||null==a[a.length-1].value)throw new Error("The first and last thresholds must have a set \"value\".\n See ".concat(ud));var b=0,c=null;return a.map((d,e)=>{if(null!=d.value)return b=e,P({},d);null==c?c=Fd(a,e):e>c&&(b=c,c=Fd(a,e));var f=a[b].value,g=a[c].value,h=(g-f)/(c-b);return{color:"string"==typeof d?d:d.color,value:h*e+f}})},Hd=(a,b)=>{var c=Gd(a);if(c.sort((c,a)=>a.value-c.value),"smooth"===b)return c;var d,e=(d=[]).concat.apply(d,T(c.map((a,b)=>[a,{value:a.value-1e-4,color:c[b+1]?c[b+1].color:a.color}])));return e},Id=a=>{if(!Array.isArray(a.entities))throw new Error("Please provide the \"entities\" option as a list.\n See ".concat(ud));if(a.line_color_above||a.line_color_below)throw new Error("\"line_color_above/line_color_below\" was removed, please use \"color_thresholds\".\n See ".concat(ud));var b=P(P({animate:!1,hour24:!1,font_size:vd,font_size_header:14,height:100,hours_to_show:24,points_per_hour:.5,aggregate_func:"avg",group_by:"interval",line_color:[].concat(yd),color_thresholds:[],color_thresholds_transition:"smooth",line_width:5,bar_spacing:4,compress:!0,smoothing:!0,state_map:[],cache:!0,value_factor:0,tap_action:{action:"more-info"}},JSON.parse(JSON.stringify(a))),{},{show:P(P({},Ad),a.show)});b.entities.forEach((a,c)=>{"string"==typeof a&&(b.entities[c]={entity:a})}),b.state_map.forEach((a,c)=>{"string"==typeof a&&(b.state_map[c]={value:a,label:a}),b.state_map[c].label=b.state_map[c].label||b.state_map[c].value}),"string"==typeof a.line_color&&(b.line_color=[a.line_color].concat(yd)),b.font_size=a.font_size/100*vd||vd,b.color_thresholds=Hd(b.color_thresholds,b.color_thresholds_transition);var c=24wd&&(b.points_per_hour=wd/(b.hours_to_show*e),td("Not enough space, adjusting points_per_hour to ".concat(b.points_per_hour)))}return b},Jd="0.12.1";Ac.config({name:"mini-graph-card",version:1,storeName:"entity_history_cache",description:"Mini graph card uses caching for the entity history"}),Ac.iterate((a,b)=>{var c=b.endsWith("-raw")?a:qd(a),d=new Date;d.setHours(d.getHours()-c.hours_to_show),(a.version!==Jd||new Date(c.last_fetched){console.warn("Purging has errored: ",a)}),console.info("%c MINI-GRAPH-CARD %c ".concat(Jd," "),"color: white; background: coral; font-weight: 700;","color: coral; background: white; font-weight: 700;");class Kd extends bc{constructor(){super(),this.id=Math.random().toString(36).substr(2,9),this.config={},this.bound=[0,0],this.boundSecondary=[0,0],this.length=[],this.entity=[],this.line=[],this.bar=[],this.abs=[],this.fill=[],this.points=[],this.gradient=[],this.tooltip={},this.updateQueue=[],this.updating=!1,this.stateChanged=!1,this.initial=!0,this._md5Config=void 0}static get styles(){return Dd}set hass(a){this._hass=a;var b=!1,c=[];this.config.entities.forEach((d,e)=>{this.config.entities[e].index=e;var f=a&&a.states[d.entity]||void 0;f&&this.entity[e]!==f&&(this.entity[e]=f,c.push("".concat(f.entity_id,"-").concat(e)),b=!0)}),b&&(this.stateChanged=!0,this.entity=T(this.entity),this.config.update_interval||this.updating?this.updateQueue=[].concat(c,T(this.updateQueue)):setTimeout(()=>{this.updateQueue=[].concat(c,T(this.updateQueue)),this.updateData()},this.initial?0:1e3))}static get properties(){return{id:String,_hass:{},config:{},entity:[],Graph:[],line:[],shadow:[],length:Number,bound:[],boundSecondary:[],abs:[],tooltip:{},updateQueue:[],color:String}}setConfig(a){this.config=Id(a,this.config),this._md5Config=Q.hash(JSON.stringify(this.config));var b=!sd(this.config.entities||[],a.entities);(!this.Graph||b)&&(this._hass&&(this.hass=this._hass),this.Graph=this.config.entities.map(a=>new Cd(500,this.config.height,[this.config.show.fill?0:this.config.line_width,this.config.line_width],this.config.hours_to_show,this.config.points_per_hour,a.aggregate_func||this.config.aggregate_func,this.config.group_by,rd(a.smoothing,this.config.smoothing,!a.entity.startsWith("binary_sensor.")),this.config.logarithmic)))}connectedCallback(){super.connectedCallback(),this.config.update_interval&&(window.requestAnimationFrame(()=>{this.updateOnInterval()}),this.interval=setInterval(()=>this.updateOnInterval(),1e3*this.config.update_interval))}disconnectedCallback(){this.interval&&clearInterval(this.interval),super.disconnectedCallback()}shouldUpdate(a){if(zd.some(b=>a.has(b)))return this.color=this.intColor(void 0===this.tooltip.value?this.entity[0]&&this.entity[0].state:this.tooltip.value,this.tooltip.entity||0),!0}firstUpdated(){this.initial=!1}updated(a){this.config.animate&&a.has("line")&&(this.length.length{this.length[a.id]=a.getTotalLength()}),this.length=T(this.length)):this.length=Array(this.entity.length).fill("none"))}render(){var{config:a}=0void 0===this.entity[b])?this.renderWarnings():Db(K(),a.group,a.show.graph&&a.show.fill,"hover"===a.show.points,"hover"===a.show.labels,"hover"===a.show.labels_secondary,0this.handlePopup(b,a.tap_action.entity||this.entity[0]),this.renderHeader(),this.renderStates(),this.renderGraph(),this.renderInfo()):Db(L())}renderWarnings(){return Db(J(),this.config.entities.map((a,b)=>this.entity[b]?Db(H()):Db(I(),this.config.entities[b].entity)))}renderHeader(){var{show:a,align_icon:b,align_header:c,font_size_header:d}=this.config;return a.name||a.icon&&"state"!==b?Db(G(),c,d,this.renderName(),"state"===b?"":this.renderIcon()):""}renderIcon(){if(this.config.icon_image!==void 0)return Db(F(),this.config.icon_image);var{icon:a,icon_adaptive_color:b}=this.config.show;return a?Db(E(),this.config.align_icon,b?"color: ".concat(this.color,";"):"",this.computeIcon(this.entity[0])):""}renderName(){if(this.config.show.name){var a=void 0===this.tooltip.entity?this.config.name||this.computeName(0):this.computeName(this.tooltip.entity),b=this.config.show.name_adaptive_color?"opacity: 1; color: ".concat(this.color,";"):"";return Db(D(),b,a)}}renderStates(){var[a]=this.config.entities;if(this.config.show.state)return Db(C(),this.config.align_state,this.renderState(a,0),this.config.entities.map((a,b)=>0a&&a[b],a)}getEntityState(a){var b=this.config.entities[a];return"last"===this.config.show.state?this.points[a][this.points[a].length-1][Y]:b.attribute?this.getObjectAttr(this.entity[a].attributes,b.attribute):this.entity[a].state}renderState(a,b){var c=0===b;if(c||a.show_state){var{entity:d,value:e}=this.tooltip,f=this.getEntityState(b);return Db(B(),!c&&"state--small",a=>this.handlePopup(a,this.entity[b]),a.state_adaptive_color?"color: ".concat(this.computeColor(f,b),";"):"",a.show_indicator?this.renderIndicator(f,b):"",this.computeState(c&&e!==void 0?e:f),this.computeUom(c&&d||b),c&&this.renderStateTime()||"")}}renderStateTime(){return void 0===this.tooltip.value?void 0:Db(A(),this.tooltip.label?Db(z(),this.tooltip.label):Db(y(),this.tooltip.time[0],this.tooltip.time[1]))}renderGraph(){return this.config.show.graph?Db(x(),this.renderLabels(),this.renderLabelsSecondary(),this.renderSvg(),this.renderLegend()):""}renderLegend(){return 1>=this.visibleLegends.length||!this.config.show.legend?void 0:Db(w(),this.visibleLegends.map(a=>Db(v(),b=>this.handlePopup(b,this.entity[a.index]),()=>this.setTooltip(a.index,-1,this.getEntityState(a.index),"Current"),()=>this.tooltip={},this.renderIndicator(this.entity[a.index].state,a.index),this.computeName(a.index))))}renderIndicator(a,b){return Eb(u(),this.intColor(a,b))}renderSvgFill(a,b){if(a){var c="fade"===this.config.show.fill,d=this.length[b]||!1===this.config.entities[b].show_line;return Eb(t(),"fill-grad-".concat(this.id,"-").concat(b),"fill-grad-mask-".concat(this.id,"-").concat(b),"url(#fill-grad-".concat(this.id,"-").concat(b,")"),"fill-".concat(this.id,"-").concat(b),this.config.show.fill,b,this.config.animate,d,this.config.animate?"".concat(.5*b,"s"):"0s",c?"url(#fill-grad-mask-".concat(this.id,"-").concat(b,")"):"",this.fill[b])}}renderSvgLine(a,b){if(a){var c=Eb(s(),b,this.config.animate,this.length[b],this.config.animate?"".concat(.5*b,"s"):"0s",this.length[b]||"none",this.length[b]||"none","white",this.config.line_width,this.line[b]);return Eb(r(),"line-".concat(this.id,"-").concat(b),c)}}renderSvgPoint(a,b){var c=this.gradient[b]?this.computeColor(a[Y],b):"inherit";return Eb(q(),this.tooltip.index!==a[3],"--mcg-hover: ".concat(c,";"),c,c,a[Bd],a[X],this.config.line_width,()=>this.setTooltip(b,a[3],a[Y]),()=>this.tooltip={})}renderSvgPoints(a,b){if(a){var c=this.computeColor(this.entity[b].state,b);return Eb(p(),this.tooltip.entity===b,void 0!==this.tooltip.entity&&this.tooltip.entity!==b,this.length[b],this.config.animate&&"hover"!==this.config.show.points,this.config.animate?"".concat(.5*b+.5,"s"):"0s",c,c,this.config.line_width/2,a.map(a=>this.renderSvgPoint(a,b)))}}renderSvgGradient(a){if(a){var b=a.map((a,b)=>a?Eb(o(),"grad-".concat(this.id,"-").concat(b),a.map(a=>Eb(n(),a.color,"".concat(a.offset,"%")))):void 0);return Eb(m(),b)}}renderSvgLineRect(a,b){if(a){var c=this.gradient[b]?"url(#grad-".concat(this.id,"-").concat(b,")"):this.computeColor(this.entity[b].state,b);return Eb(l(),void 0!==this.tooltip.entity&&this.tooltip.entity!==b,"rect-".concat(this.id,"-").concat(b),c,"url(#line-".concat(this.id,"-").concat(b,")"))}}renderSvgFillRect(a,b){if(a){var c=this.gradient[b]?"url(#grad-".concat(this.id,"-").concat(b,")"):this.intColor(this.entity[b].state,b);return Eb(k(),void 0!==this.tooltip.entity&&this.tooltip.entity!==b,"fill-rect-".concat(this.id,"-").concat(b),c,"url(#fill-".concat(this.id,"-").concat(b,")"))}}renderSvgBars(a,b){if(a){var c=a.map((a,c)=>{var d=this.config.animate?Eb(j(),this.config.height,a.y):"",e=this.computeColor(a.value,b);return Eb(h(),a.x,a.y,a.height,a.width,e,()=>this.setTooltip(b,c,a.value),()=>this.tooltip={},d)});return Eb(g(),this.config.animate,c)}}renderSvg(){var{height:a}=this.config;return Eb(f(),0===a?0:"100%",a,a=>a.stopPropagation(),this.renderSvgGradient(this.gradient),this.fill.map((a,b)=>this.renderSvgFill(a,b)),this.fill.map((a,b)=>this.renderSvgFillRect(a,b)),this.line.map((a,b)=>this.renderSvgLine(a,b)),this.line.map((a,b)=>this.renderSvgLineRect(a,b)),this.bar.map((a,b)=>this.renderSvgBars(a,b)),this.points.map((a,b)=>this.renderSvgPoints(a,b)))}setTooltip(a,b,c){var d=3Db(b(),a.type,this.computeState(a.state),this.computeUom(0),"avg"===a.type?"":md(new Date(a.last_changed),this.config.format,this._hass.language)))):Db(a())}handlePopup(a,b){a.stopPropagation(),Ed(this,this._hass,this.config,this.config.tap_action,b.entity_id||b)}computeColor(a,b){var{color_thresholds:c,line_color:d}=this.config,e=P(P({color:d[b]||d[0]},c.slice(-1)[0]),c.find(b=>b.value<(+a||0)));return this.config.entities[b].color||e.color}get visibleEntities(){return this.config.entities.filter(a=>!1!==a.show_graph)}get primaryYaxisEntities(){return this.visibleEntities.filter(a=>a.y_axis===void 0||"primary"===a.y_axis)}get secondaryYaxisEntities(){return this.visibleEntities.filter(a=>"secondary"===a.y_axis)}get visibleLegends(){return this.visibleEntities.filter(a=>!1!==a.show_legend)}get primaryYaxisSeries(){return this.primaryYaxisEntities.map(a=>this.Graph[a.index])}get secondaryYaxisSeries(){return this.secondaryYaxisEntities.map(a=>this.Graph[a.index])}intColor(a,b){var c,{color_thresholds:d,line_color:e}=this.config,f=+a||0;if(0a.valuea.valueb.value===a);if(f)return f.label;td("value [".concat(a,"] not found in state_map"))}var b="string"==typeof a?parseFloat(a.replace(/,/g,".")):+a;var c=this.config.decimals,d=10**this.config.value_factor;if(c===void 0||O(c)||O(b))return this.numberFormat(Ra(100*(b*d))/100,this._hass.language);var e=10**c;return this.numberFormat((Ra(b*d*e)/e).toFixed(c),this._hass.language,c)}numberFormat(a,b,c){return!O(+a)&&Intl?new Intl.NumberFormat(b,{minimumFractionDigits:c}).format(+a):a.toString()}updateOnInterval(){this.stateChanged&&!this.updating&&(this.stateChanged=!1,this.updateData())}updateData(){var a=arguments,b=this;return S(function*(){var{config:c}=0b.updateEntity(a,c,e,d));yield Promise.all(f)}catch(a){td(a)}if(c.show.graph&&b.entity.forEach((a,c)=>{a&&b.Graph[c].update()}),b.updateBounds(),c.show.graph){var g=0;b.entity.forEach((a,d)=>{if(a&&0!==b.Graph[d].coords.length){var e="secondary"===c.entities[d].y_axis?b.boundSecondary:b.bound;if([b.Graph[d].min,b.Graph[d].max]=[e[0],e[1]],"bar"===c.show.graph){var f=b.visibleEntities.length;b.bar[d]=b.Graph[d].getBars(g,f,c.bar_spacing),g+=1}else{var h=b.Graph[d].getPath();!1!==c.entities[d].show_line&&(b.line[d]=h),c.show.fill&&!1!==c.entities[d].show_fill&&(b.fill[d]=b.Graph[d].getFill(h)),c.show.points&&!1!==c.entities[d].show_points&&(b.points[d]=b.Graph[d].getPoints()),0b[a])))||d:"~"===c[0]?Math[a].apply(Math,[+c.substr(1)].concat(T(b.map(b=>b[a])))):c}getBoundaries(a,b,c,d,e){var f=[this.getBoundary("min",a,b,d[0],e),this.getBoundary("max",a,c,d[1],e)];if(e){var g=Qa(f[0]-f[1]),h=parseFloat(e)-g;0c!=="".concat(a.entity_id,"-").concat(b));var f=[],g=c,h=!1,i=e.config.cache?yield e.getCache("".concat(a.entity_id,"_").concat(b),e.config.useCompress):void 0;if(i&&i.hours_to_show===e.config.hours_to_show){f=i.data;var k=f.findIndex(a=>new Date(a.last_changed)>c);-1===k?f=[]:(0g&&(g=new Date(l-1))}var j=yield e.fetchRecent(a.entity_id,g,d,!e.config.entities[b].attribute&&h,!!e.config.entities[b].attribute);if(j[0]&&0{e.config.entities[b].attribute&&(a.state=e.getObjectAttr(a.attributes,e.config.entities[b].attribute),delete a.attributes),0!O(parseFloat(a.state))),j=j.map(a=>({last_changed:e.config.entities[b].attribute?a.last_updated:a.last_changed,state:a.state})),f=[].concat(T(f),T(j)),e.config.cache&&e.setCache("".concat(a.entity_id,"_").concat(b),{hours_to_show:e.config.hours_to_show,last_fetched:new Date,data:f,version:Jd},e.config.useCompress).catch(a=>{td(a),Ac.clear()})),0!==f.length)if(e.entity[0]&&a.entity_id===e.entity[0].entity_id&&e.updateExtrema(f),!0===e.config.entities[b].fixed_value){var m=f[f.length-1];e.Graph[b].history=[m,m]}else e.Graph[b].history=f}})()}fetchRecent(a,b,c,d,e){var f=this;return S(function*(){var g="history/period";return b&&(g+="/".concat(b.toISOString())),g+="?filter_entity_id=".concat(a),c&&(g+="&end_time=".concat(c.toISOString())),d&&(g+="&skip_initial_state"),e||(g+="&minimal_response&no_attributes"),e&&(g+="&significant_changes_only=0"),f._hass.callApi("GET",g)})()}updateExtrema(a){var{extrema:b,average:c}=this.config.show;this.abs=[].concat(T(b?[P({type:"min"},jd(a,"state"))]:[]),T(c?[{type:"avg",state:kd(a,"state")}]:[]),T(b?[P({type:"max"},ld(a,"state"))]:[]))}_convertState(a){var b=this.config.state_map.findIndex(b=>b.value===a.state);-1===b||(a.state=b)}getEndDate(){var a=new Date;switch(this.config.group_by){case"date":a.setDate(a.getDate()+1),a.setHours(0,0,0);break;case"hour":a.setHours(a.getHours()+1),a.setMinutes(0,0);}return a}setNextUpdate(){if(!this.config.update_interval){var a=1/this.config.points_per_hour;clearInterval(this.interval),this.interval=setInterval(()=>{this.updating||this.updateData()},a*V)}}getCardSize(){return 3}}customElements.define("mini-graph-card",Kd),window.customCards=window.customCards||[],window.customCards.push({type:"mini-graph-card",name:"Mini Graph Card",preview:!1,description:"The Mini Graph card is a minimalistic and customizable graph card"})})})();