iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 24 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[46239],{96986:function(t,e,r){r.d(e,{LR:function(){return o},m9:function(){return n}});const a={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},i={10:"M16,18H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",20:"M16,17H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",30:"M16,15H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",40:"M16,14H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",50:"M16,13H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",60:"M16,12H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",70:"M16,10H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",80:"M16,9H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",90:"M16,8H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",100:"M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z"},s={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},o=(t,e)=>{const r=Number(t);if(isNaN(r))return"off"===t?"mdi:battery":"on"===t?"mdi:battery-alert":"mdi:battery-unknown";const i=10*Math.round(r/10);return e&&r>=10?s[i]:e?"mdi:battery-charging-outline":r<=5?"mdi:battery-alert-variant-outline":a[i]},n=t=>{const e=Number(t);if(isNaN(e))return"M15.07,12.25L14.17,13.17C13.63,13.71 13.25,14.18 13.09,15H11.05C11.16,14.1 11.56,13.28 12.17,12.67L13.41,11.41C13.78,11.05 14,10.55 14,10C14,8.89 13.1,8 12,8A2,2 0 0,0 10,10H8A4,4 0 0,1 12,6A4,4 0 0,1 16,10C16,10.88 15.64,11.68 15.07,12.25M13,19H11V17H13M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.67C17.4,22 18,21.4 18,20.66V5.33C18,4.59 17.4,4 16.67,4Z";if(e<=5)return"M14 20H6V6H14M14.67 4H13V2H7V4H5.33C4.6 4 4 4.6 4 5.33V20.67C4 21.4 4.6 22 5.33 22H14.67C15.4 22 16 21.4 16 20.67V5.33C16 4.6 15.4 4 14.67 4M21 7H19V13H21V8M21 15H19V17H21V15Z";const r=10*Math.round(e/10);return i[r]}},54706:function(t,e,r){r.d(e,{E:function(){return s}});r(74423),r(18111),r(13579),r(3362),r(62953);var a=r(40445),i=r(67576);const s=t=>{class e extends t{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const t=this.__unsubs.pop();t instanceof Promise?t.then(t=>t()):t()}this.__unsubs=void 0}}updated(t){if(super.updated(t),t.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const e of t.keys())if(this.hassSubscribeRequiredHostProps.includes(e))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){var t;void 0!==this.__unsubs||!this.isConnected||void 0===this.hass||null!==(t=this.hassSubscribeRequiredHostProps)&&void 0!==t&&t.some(t=>void 0===this[t])||(this.__unsubs=this.hassSubscribe())}}return(0,a.Cg)([(0,i.MZ)({attribute:!1})],e.prototype,"hass",void 0),e}},30961:function(t,e,r){r.a(t,async function(t,a){try{r.r(e);r(72712),r(18111),r(22489),r(61701),r(18237),r(13579),r(3362),r(62953),r(48408),r(14603),r(47566),r(98721);var i=r(40445),s=r(5124),o=r(67576),n=r(6412),c=r(96986),l=r(18350),d=(r(76776),r(67094),r(38114)),h=r(23528),g=r(54706),v=r(784),u=r(20058),p=t([l,h,u,d]);[l,h,u,d]=p.then?(await p)():p;let y,b,f,m,H,_,C,M,$,k,V,x,w,L,W,A,q,Z,z,S,J,E,P,N,R,D,U,j,F,B,T,O,Y,G,I,K,Q,X,tt,et,rt,at,it,st,ot=t=>t;const nt="M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z",ct="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",lt="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z",dt="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z",ht="M16 20H8V6H16M16.67 4H15V2H9V4H7.33C6.6 4 6 4.6 6 5.33V20.67C6 21.4 6.6 22 7.33 22H16.67C17.41 22 18 21.41 18 20.67V5.33C18 4.6 17.4 4 16.67 4M15 16H9V19H15V16M15 7H9V10H15V7M15 11.5H9V14.5H15V11.5Z",gt="M17.66 11.2C17.43 10.9 17.15 10.64 16.89 10.38C16.22 9.78 15.46 9.35 14.82 8.72C13.33 7.26 13 4.85 13.95 3C13 3.23 12.17 3.75 11.46 4.32C8.87 6.4 7.85 10.07 9.07 13.22C9.11 13.32 9.15 13.42 9.15 13.55C9.15 13.77 9 13.97 8.8 14.05C8.57 14.15 8.33 14.09 8.14 13.93C8.08 13.88 8.04 13.83 8 13.76C6.87 12.33 6.69 10.28 7.45 8.64C5.78 10 4.87 12.3 5 14.47C5.06 14.97 5.12 15.47 5.29 15.97C5.43 16.57 5.7 17.17 6 17.7C7.08 19.43 8.95 20.67 10.96 20.92C13.1 21.19 15.39 20.8 17.03 19.32C18.86 17.66 19.5 15 18.56 12.72L18.43 12.46C18.22 12 17.66 11.2 17.66 11.2M14.5 17.5C14.22 17.74 13.76 18 13.4 18.1C12.28 18.5 11.16 17.94 10.5 17.28C11.69 17 12.4 16.12 12.61 15.23C12.78 14.43 12.46 13.77 12.33 13C12.21 12.26 12.23 11.63 12.5 10.94C12.69 11.32 12.89 11.7 13.13 12C13.9 13 15.11 13.44 15.37 14.8C15.41 14.94 15.43 15.08 15.43 15.23C15.46 16.05 15.1 16.95 14.5 17.5H14.5Z",vt="M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z",ut="M17,8C8,10 5.9,16.17 3.82,21.34L5.71,22L6.66,19.7C7.14,19.87 7.64,20 8,20C19,20 22,3 22,3C21,5 14,5.25 9,6.25C4,7.25 2,11.5 2,13.5C2,15.5 3.75,17.25 3.75,17.25C7,8 17,8 17,8Z",pt="M11.45,2V5.55L15,3.77L11.45,2M10.45,8L8,10.46L11.75,11.71L10.45,8M2,11.45L3.77,15L5.55,11.45H2M10,2H2V10C2.57,10.17 3.17,10.25 3.77,10.25C7.35,10.26 10.26,7.35 10.27,3.75C10.26,3.16 10.17,2.57 10,2M17,22V16H14L19,7V13H22L17,22Z",yt="M8.28,5.45L6.5,4.55L7.76,2H16.23L17.5,4.55L15.72,5.44L15,4H9L8.28,5.45M18.62,8H14.09L13.3,5H10.7L9.91,8H5.38L4.1,10.55L5.89,11.44L6.62,10H17.38L18.1,11.45L19.89,10.56L18.62,8M17.77,22H15.7L15.46,21.1L12,15.9L8.53,21.1L8.3,22H6.23L9.12,11H11.19L10.83,12.35L12,14.1L13.16,12.35L12.81,11H14.88L17.77,22M11.4,15L10.5,13.65L9.32,18.13L11.4,15M14.68,18.12L13.5,13.64L12.6,15L14.68,18.12Z",bt="M12,20A6,6 0 0,1 6,14C6,10 12,3.25 12,3.25C12,3.25 18,10 18,14A6,6 0 0,1 12,20Z",ft=238.76104,mt=t=>!t.end||t.end.getTime()>=Date.now();class Ht extends((0,g.E)(s.WF)){static async getConfigElement(){return await r.e(79062).then(r.bind(r,54197)),document.createElement("hui-energy-graph-card-editor")}static getStubConfig(t,e,r){return{type:"energy-distribution"}}setConfig(t){t.collection_key&&(0,d.s8)(t.collection_key),this._config=t}hassSubscribe(){var t;return[(0,d.tb)(this.hass,{key:null===(t=this._config)||void 0===t?void 0:t.collection_key}).subscribe(t=>{this._data=t})]}get _energyDashboardHref(){const t=new URLSearchParams({historyBack:"1"}),e=window.location.pathname;return e&&t.append("backPath",e),`/energy?${t.toString()}`}getCardSize(){return 3}shouldUpdate(t){var e;if((0,v.xP)(this,t)||t.size>1||!t.has("hass"))return!0;const r=t.get("hass").states;if(null!==(e=this._data)&&void 0!==e&&e.co2SignalEntity&&this.hass.states[this._data.co2SignalEntity]!==r[this._data.co2SignalEntity])return!0;if(this._data&&mt(this._data)){const t=(0,d.E$)(this._data.prefs).battery;if(null!=t&&t.some(t=>t.stat_soc&&this.hass.states[t.stat_soc]!==r[t.stat_soc]))return!0}return!1}willUpdate(){!this.hasUpdated&&matchMedia("(prefers-reduced-motion)").matches&&(this._animate=!1)}render(){var t,e,r,a;if(!this._config)return s.s6;if(!this._data)return(0,s.qy)(y||(y=ot`${0}`),this.hass.localize("ui.panel.lovelace.cards.energy.loading"));const i=this._data.prefs,o=(0,d.E$)(i),l=!(null===(t=o.grid)||void 0===t||!t[0]||!o.grid[0].stat_energy_from&&!o.grid[0].stat_energy_to),g=void 0!==o.solar,v=void 0!==o.battery,p=void 0!==o.gas,st=void 0!==o.water,Ht=null!==(e=null===(r=o.grid)||void 0===r?void 0:r.some(t=>!!t.stat_energy_to))&&void 0!==e&&e,{summedData:_t,compareSummedData:Ct}=(0,d.gv)(this._data),{consumption:Mt,compareConsumption:$t}=(0,d.DR)(_t,void 0),kt=null!==(a=_t.total.from_grid)&&void 0!==a?a:0;let Vt=null;var xt;st&&(Vt=null!==(xt=(0,h.gF)(this._data.stats,o.water.map(t=>t.stat_energy_from)))&&void 0!==xt?xt:0);let wt=null;var Lt;p&&(wt=null!==(Lt=(0,h.gF)(this._data.stats,o.gas.map(t=>t.stat_energy_from)))&&void 0!==Lt?Lt:0);let Wt=null;var At;g&&(Wt=null!==(At=_t.total.solar)&&void 0!==At?At:0);let qt=null,Zt=null,zt=ht,St=null;var Jt,Et;if(v&&(qt=null!==(Jt=_t.total.to_battery)&&void 0!==Jt?Jt:0,Zt=null!==(Et=_t.total.from_battery)&&void 0!==Et?Et:0,mt(this._data))){const t=o.battery.map(t=>{var e;return t.stat_soc?Number(null===(e=this.hass.states[t.stat_soc])||void 0===e?void 0:e.state):NaN}).filter(t=>Number.isFinite(t));t.length&&(St=t.reduce((t,e)=>t+e,0)/t.length,zt=(0,c.m9)(St))}let Pt=null;var Nt;Ht&&(Pt=null!==(Nt=_t.total.to_grid)&&void 0!==Nt?Nt:0);let Rt=null;g&&(Rt=Mt.total.used_solar);let Dt=null,Ut=null;v&&l&&(Ut=Mt.total.battery_to_grid,Dt=Mt.total.grid_to_battery);let jt=null,Ft=null;g&&l&&(Ft=Mt.total.solar_to_grid),g&&v&&(jt=Mt.total.solar_to_battery);let Bt=null;v&&(Bt=Math.max(Mt.total.used_battery,0));const Tt=l?Math.max(Mt.total.used_grid,0):0,Ot=Math.max(0,Mt.total.used_total);let Yt,Gt,It,Kt,Qt;g&&(Yt=ft*(Rt/Ot)),Bt&&(Gt=ft*(Bt/Ot));let Xt="https://app.electricitymaps.com";if(l&&this._data.co2SignalEntity&&this._data.fossilEnergyConsumption){const t=Object.values(this._data.fossilEnergyConsumption).reduce((t,e)=>t+e,0),e=this.hass.states[this._data.co2SignalEntity];if(null!=e&&e.attributes.country_code&&(Xt+=`/zone/${e.attributes.country_code}`),null!==t){let e;It=kt-t,e=Tt!==kt?t*(Tt/kt):t,Qt=ft*(e/Ot),Kt=ft-(Yt||0)-(Gt||0)-Qt}}const te=Tt+(Rt||0)+(Ft||0)+(jt||0)+(Bt||0)+(Dt||0)+(Ut||0),ee=Math.max(It||0,Wt||0,Pt||0,kt||0,Ot,qt||0,Zt||0),re=(0,d.n3)(this.hass,ee,"kWh").split(" ").pop();return(0,s.qy)(b||(b=ot` <ha-card .header="${0}"> <div class="card-content"> ${0} <div class="row"> ${0} <div class="circle-container home"> <div class="circle ${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} ${0} </div> ${0} </div> </div> ${0} <div class="lines ${0}"> <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} </svg> </div> </div> ${0} </ha-card> `),this._config.title,void 0!==It||g||p||st?(0,s.qy)(f||(f=ot`<div class="row"> ${0} ${0} ${0} </div>`),void 0===It?(0,s.qy)(m||(m=ot`<div class="spacer"></div>`)):(0,s.qy)(H||(H=ot`<div class="circle-container low-carbon"> <span class="label">${0}</span> <a class="circle" href="${0}" target="_blank" rel="noopener noreferrer"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </a> <svg width="80" height="30"> <line x1="40" y1="0" x2="40" y2="30"></line> </svg> </div>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.low_carbon"),Xt,ut,(0,d.n3)(this.hass,It,"kWh",re)),g?(0,s.qy)(_||(_=ot`<div class="circle-container solar"> <span class="label">${0}</span> <div class="circle"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> </div>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.solar"),pt,(0,d.n3)(this.hass,Wt,"kWh",re)):p||st?(0,s.qy)(C||(C=ot`<div class="spacer"></div>`)):"",p?(0,s.qy)(M||(M=ot`<div class="circle-container gas"> <span class="label">${0}</span> <div class="circle"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> <svg width="80" height="30"> <path d="M40 0 v30" id="gas"/> ${0} </svg> </div>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.gas"),gt,(0,d.n3)(this.hass,wt,this._data.gasUnit),wt&&this._animate?(0,s.JW)($||($=ot`<circle r="1" class="gas" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#gas"/> </animateMotion> </circle>`)):""):st?(0,s.qy)(k||(k=ot`<div class="circle-container water"> <span class="label">${0}</span> <div class="circle"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> <svg width="80" height="30"> <path d="M40 0 v30" id="water"/> ${0} </svg> </div>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.water"),bt,(0,d.n3)(this.hass,Vt,this._data.waterUnit),Vt&&this._animate?(0,s.JW)(V||(V=ot`<circle r="1" class="water" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#water"/> </animateMotion> </circle>`)):""):(0,s.qy)(x||(x=ot`<div class="spacer"></div>`))):"",l?(0,s.qy)(w||(w=ot`<div class="circle-container grid"> <div class="circle"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} <span class="consumption"> ${0}${0} </span> </div> <span class="label">${0}</span> </div> `),yt,null!==Pt?(0,s.qy)(L||(L=ot`<span class="return"> <ha-svg-icon class="small" .path="${0}"></ha-svg-icon>${0} </span>`),ct,(0,d.n3)(this.hass,Pt,"kWh",re)):"",Ht?(0,s.qy)(W||(W=ot`<ha-svg-icon class="small" .path="${0}"></ha-svg-icon>`),lt):"",(0,d.n3)(this.hass,kt,"kWh",re),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.grid")):(0,s.qy)(A||(A=ot`<div class="grid-spacer"></div>`)),(0,n.H)({border:void 0===Yt&&void 0===Kt}),vt,(0,d.n3)(this.hass,Ot,"kWh",re),void 0!==Yt||void 0!==Kt?(0,s.qy)(q||(q=ot`<svg> ${0} ${0} ${0} ${0} </svg>`),void 0!==Yt?(0,s.JW)(Z||(Z=ot`<circle class="solar" cx="40" cy="40" r="38" stroke-dasharray="${0} ${0}" shape-rendering="geometricPrecision" stroke-dashoffset="-${0}"/>`),Yt,ft-Yt,ft-Yt):"",Gt?(0,s.JW)(z||(z=ot`<circle class="battery" cx="40" cy="40" r="38" stroke-dasharray="${0} ${0}" stroke-dashoffset="-${0}" shape-rendering="geometricPrecision"/>`),Gt,ft-Gt,ft-Gt-(Yt||0)):"",Kt?(0,s.JW)(S||(S=ot`<circle class="low-carbon" cx="40" cy="40" r="38" stroke-dasharray="${0} ${0}" stroke-dashoffset="-${0}" shape-rendering="geometricPrecision"/>`),Kt,ft-Kt,ft-Kt-(Gt||0)-(Yt||0)):"",l?(0,s.JW)(J||(J=ot`<circle class="grid" cx="40" cy="40" r="38" stroke-dasharray="${0} ${0}" stroke-dashoffset="0" shape-rendering="geometricPrecision"/>`),null!=Qt?Qt:ft-Yt-(Gt||0),void 0!==Qt?ft-Qt:Yt+(Gt||0)):s.s6):"",p&&st?"":(0,s.qy)(E||(E=ot`<span class="label">${0}</span>`),this.hass.config.location_name),v||p&&st?(0,s.qy)(P||(P=ot`<div class="row"> <div class="spacer"></div> ${0} ${0} </div>`),v?(0,s.qy)(N||(N=ot` <div class="circle-container battery"> <div class="circle"> <div class="battery-soc"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> <span class="battery-in"> <ha-svg-icon class="small" .path="${0}"></ha-svg-icon>${0} </span> <span class="battery-out"> <ha-svg-icon class="small" .path="${0}"></ha-svg-icon>${0} </span> </div> <span class="label">${0}</span> </div>`),zt,null!==St?(0,s.qy)(R||(R=ot`<span>${0} %</span>`),(0,u.ZV)(St,this.hass.locale,{maximumFractionDigits:0})):s.s6,nt,(0,d.n3)(this.hass,qt,"kWh",re),dt,(0,d.n3)(this.hass,Zt,"kWh",re),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.battery")):(0,s.qy)(D||(D=ot`<div class="spacer"></div>`)),p&&st?(0,s.qy)(U||(U=ot`<div class="circle-container water bottom"> <svg width="80" height="30"> <path d="M40 30 v-30" id="water"/> ${0} </svg> <div class="circle"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> <span class="label">${0}</span> </div>`),Vt&&this._animate?(0,s.JW)(j||(j=ot`<circle r="1" class="water" vector-effect="non-scaling-stroke"> <animateMotion dur="2s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#water"/> </animateMotion> </circle>`)):"",bt,(0,d.n3)(this.hass,Vt,this._data.waterUnit),this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.water")):(0,s.qy)(F||(F=ot`<div class="spacer"></div>`))):"",(0,n.H)({high:v||p&&st}),Ht&&g?(0,s.JW)(B||(B=ot`<path id="return" class="return" d="M${0},0 v15 c0,${0} h-20" vector-effect="non-scaling-stroke"></path> `),v?45:47,v?"35 -10,30 -30,30":"40 -10,35 -30,35"):"",g?(0,s.JW)(T||(T=ot`<path id="solar" class="solar" d="M${0},0 v15 c0,${0} h20" vector-effect="non-scaling-stroke"></path>`),v?55:53,v?"35 10,30 30,30":"40 10,35 30,35"):"",v?(0,s.JW)(O||(O=ot`<path id="battery-house" class="battery-house" d="M55,100 v-15 c0,-35 10,-30 30,-30 h20" vector-effect="non-scaling-stroke"></path> ${0} `),l?(0,s.JW)(Y||(Y=ot`<path id="battery-grid" class="${0}" d="M45,100 v-15 c0,-35 -10,-30 -30,-30 h-20" vector-effect="non-scaling-stroke"></path>`),(0,n.H)({"battery-from-grid":Boolean(Dt),"battery-to-grid":Boolean(Ut)})):s.s6):"",v&&g?(0,s.JW)(G||(G=ot`<path id="battery-solar" class="battery-solar" d="M50,0 V100" vector-effect="non-scaling-stroke"></path>`)):"",l?(0,s.JW)(I||(I=ot`<path class="grid" id="grid" d="M0,${0} H100" vector-effect="non-scaling-stroke"></path>`),v?50:g?56:53):s.s6,Ft&&this._animate?(0,s.JW)(K||(K=ot`<circle r="1" class="return" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#return"/> </animateMotion> </circle>`),6-Ft/te*6):"",Rt&&this._animate?(0,s.JW)(Q||(Q=ot`<circle r="1" class="solar" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#solar"/> </animateMotion> </circle>`),6-Rt/te*5):"",Tt&&this._animate?(0,s.JW)(X||(X=ot`<circle r="1" class="grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#grid"/> </animateMotion> </circle>`),6-Tt/te*5):"",jt&&this._animate?(0,s.JW)(tt||(tt=ot`<circle r="1" class="battery-solar" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-solar"/> </animateMotion> </circle>`),6-jt/te*5):"",Bt&&this._animate?(0,s.JW)(et||(et=ot`<circle r="1" class="battery-house" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-house"/> </animateMotion> </circle>`),6-Bt/te*5):"",Dt&&this._animate?(0,s.JW)(rt||(rt=ot`<circle r="1" class="battery-from-grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" keyPoints="1;0" keyTimes="0;1" calcMode="linear"> <mpath xlink:href="#battery-grid"/> </animateMotion> </circle>`),6-Dt/te*5):"",Ut&&this._animate?(0,s.JW)(at||(at=ot`<circle r="1" class="battery-to-grid" vector-effect="non-scaling-stroke"> <animateMotion dur="${0}s" repeatCount="indefinite" calcMode="linear"> <mpath xlink:href="#battery-grid"/> </animateMotion> </circle>`),6-Ut/te*5):"",this._config.link_dashboard&&this.hass.panels.energy?(0,s.qy)(it||(it=ot` <div class="card-actions"> <ha-button appearance="plain" size="small" href="${0}"> ${0} </ha-button> </div> `),this._energyDashboardHref,this.hass.localize("ui.panel.lovelace.cards.energy.energy_distribution.go_to_energy_dashboard")):"")}constructor(...t){super(...t),this._animate=!0,this.hassSubscribeRequiredHostProps=["_config"]}}Ht.styles=(0,s.AH)(st||(st=ot`:host{--mdc-icon-size:24px}ha-card{min-width:210px}.card-content{position:relative;direction:ltr}.lines{position:absolute;bottom:0;left:0;width:100%;height:146px;display:flex;justify-content:center;padding:0 16px 16px;box-sizing:border-box}.lines.high{bottom:100px;height:156px}.lines svg{width:calc(100% - 160px);height:100%;max-width:340px}.row{display:flex;justify-content:space-between;max-width:500px;margin:0 auto}.circle-container{display:flex;flex-direction:column;align-items:center}.circle-container.low-carbon{margin-right:4px}.circle-container.solar{margin:0 4px;height:130px}.circle-container.gas{margin-left:4px;height:130px}.circle-container.water{margin-left:4px;height:130px}.circle-container.water.bottom{position:relative;top:-20px;margin-bottom:-20px}.circle-container.battery{height:110px;justify-content:flex-end}.battery-soc{display:inline-flex;align-items:center;justify-content:center;font-size:var(--ha-font-size-s);line-height:1.2}.spacer{width:84px}.grid-spacer{width:84px;height:100px}.circle{width:80px;height:80px;border-radius:var(--ha-border-radius-circle);box-sizing:border-box;border:2px solid;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-size:var(--ha-font-size-s);line-height:12px;position:relative;text-decoration:none;color:var(--primary-text-color)}ha-svg-icon{padding-bottom:2px}ha-svg-icon.small{--mdc-icon-size:12px}.label{color:var(--secondary-text-color);font-size:var(--ha-font-size-s);opacity:1;height:20px;overflow:hidden;text-overflow:ellipsis;max-width:80px;white-space:nowrap}line,path{stroke:var(--primary-text-color);stroke-width:1;fill:none}.circle svg{position:absolute;fill:none;stroke-width:4px;width:100%;height:100%;top:0;left:0}.gas circle,.gas path{stroke:var(--energy-gas-color)}circle.gas{stroke-width:4;fill:var(--energy-gas-color)}.gas .circle{border-color:var(--energy-gas-color)}.water circle,.water path{stroke:var(--energy-water-color)}circle.water{stroke-width:4;fill:var(--energy-water-color)}.water .circle{border-color:var(--energy-water-color)}.low-carbon line{stroke:var(--energy-non-fossil-color)}.low-carbon .circle{border-color:var(--energy-non-fossil-color)}.low-carbon ha-svg-icon{color:var(--energy-non-fossil-color)}circle.low-carbon{stroke:var(--energy-non-fossil-color);fill:var(--energy-non-fossil-color)}.solar .circle{border-color:var(--energy-solar-color)}circle.solar,path.solar{stroke:var(--energy-solar-color)}circle.solar{stroke-width:4;fill:var(--energy-solar-color)}.battery .circle{border-color:var(--energy-battery-out-color)}circle.battery,path.battery{stroke:var(--energy-battery-out-color)}circle.battery-house,path.battery-house{stroke:var(--energy-battery-out-color)}circle.battery-house{stroke-width:4;fill:var(--energy-battery-out-color)}circle.battery-solar,path.battery-solar{stroke:var(--energy-battery-in-color)}circle.battery-solar{stroke-width:4;fill:var(--energy-battery-in-color)}.battery-in{color:var(--energy-battery-in-color)}.battery-out{color:var(--energy-battery-out-color)}path.battery-from-grid{stroke:var(--energy-grid-consumption-color)}path.battery-to-grid{stroke:var(--energy-grid-return-color)}circle.battery-to-grid,circle.return,path.return{stroke:var(--energy-grid-return-color)}circle.battery-to-grid,circle.return{stroke-width:4;fill:var(--energy-grid-return-color)}.return{color:var(--energy-grid-return-color)}.grid .circle{border-color:var(--energy-grid-consumption-color)}.consumption{color:var(--energy-grid-consumption-color)}circle.battery-from-grid,circle.grid,path.grid{stroke:var(--energy-grid-consumption-color)}circle.battery-from-grid,circle.grid{stroke-width:4;fill:var(--energy-grid-consumption-color)}.home .circle{border-width:0;border-color:var(--primary-color)}.home .circle.border{border-width:2px}.circle svg circle{fill:none} not (prefers-reduced-motion){.circle svg circle{animation:rotate-in .6s ease-in;transition:stroke-dashoffset .4s,stroke-dasharray .4s} rotate-in{from{stroke-dashoffset:238.76104;stroke-dasharray:238.76104}}}.card-actions a{text-decoration:none}`)),(0,i.Cg)([(0,o.MZ)({attribute:!1})],Ht.prototype,"hass",void 0),(0,i.Cg)([(0,o.wk)()],Ht.prototype,"_config",void 0),(0,i.Cg)([(0,o.wk)()],Ht.prototype,"_data",void 0),(0,i.Cg)([(0,o.wk)()],Ht.prototype,"_animate",void 0),Ht=(0,i.Cg)([(0,o.EM)("hui-energy-distribution-card")],Ht),a()}catch(y){a(y)}})},56434:function(t,e,r){r.d(e,{e:function(){return i}});var a=r(81977);function i(t,e,r){return(0,a.P)(t,12*e,r)}}}]);