iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 14.3 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[97870],{54706:function(e,t,a){a.d(t,{E:function(){return o}});a(74423),a(18111),a(13579),a(3362),a(62953);var r=a(40445),s=a(67576);const o=e=>{class t extends e{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const e=this.__unsubs.pop();e instanceof Promise?e.then(e=>e()):e()}this.__unsubs=void 0}}updated(e){if(super.updated(e),e.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const t of e.keys())if(this.hassSubscribeRequiredHostProps.includes(t))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){var e;void 0!==this.__unsubs||!this.isConnected||void 0===this.hass||null!==(e=this.hassSubscribeRequiredHostProps)&&void 0!==e&&e.some(e=>void 0===this[e])||(this.__unsubs=this.hassSubscribe())}}return(0,r.Cg)([(0,s.MZ)({attribute:!1})],t.prototype,"hass",void 0),t}},18427:function(e,t,a){a.d(t,{g:function(){return o}});a(42762);var r=a(79468),s=a(39274);function o(e,t,a,o,l,n){const c=e.getPropertyValue(l+"-"+n).trim(),i=c.length>0?c:e.getPropertyValue(l).trim();let d=(0,r.RQ)(i);return 0===c.length&&n&&(d=(0,r.v2)((0,r.BE)(t?(0,s.T)((0,r.Nc)((0,r.xp)(d)),n):(0,s.d)((0,r.Nc)((0,r.xp)(d)),n)))),o?d+=a?"32":"7F":a&&(d+="7F"),d}},24408:function(e,t,a){a.a(e,async function(e,r){try{a.r(t),a.d(t,{HuiEnergySourcesTableCard:function(){return H}});a(74423),a(18111),a(22489),a(61701),a(13579),a(53921),a(3362),a(62953);var s=a(40445),o=a(5124),l=a(67576),n=a(6412),c=a(89784),i=a(20058),d=a(18427),h=(a(76776),a(38114)),_=a(23528),u=a(54706),g=a(784),b=a(1087),m=e([i,h,_]);[i,h,_]=m.then?(await m)():m;let y,p,f,v,w,$,k,x,C,z,q,R,S,M,E,V,W,Z,P,T=e=>e;const D={grid_return:"--energy-grid-return-color",grid_consumption:"--energy-grid-consumption-color",battery_in:"--energy-battery-in-color",battery_out:"--energy-battery-out-color",solar:"--energy-solar-color",gas:"--energy-gas-color",water:"--energy-water-color"};class H extends((0,u.E)(o.WF)){static async getConfigElement(){return await a.e(8247).then(a.bind(a,682)),document.createElement("hui-energy-sources-table-card-editor")}static getStubConfig(e,t,a){return{type:"energy-sources-table",show_only_totals:!1,types:["grid","solar","battery"]}}hassSubscribe(){var e;return[(0,h.tb)(this.hass,{key:null===(e=this._config)||void 0===e?void 0:e.collection_key}).subscribe(e=>{this._data=e})]}getCardSize(){return 3}setConfig(e){e.collection_key&&(0,h.s8)(e.collection_key),this._config=e}shouldUpdate(e){return(0,g.xP)(this,e)||e.size>1||!e.has("hass")}_renderRow(e,t,a,r,s,l,h,u,g,b,m,w){var $;return(0,o.qy)(y||(y=T`<tr class="mdc-data-table__row ${0}" ="${0}" .entity="${0}"> <td class="mdc-data-table__cell cell-bullet"> <div class="bullet" style="${0}"></div> </td> <th class="mdc-data-table__cell" scope="row"> ${0} </th> ${0} <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} ${0} </td> ${0} </tr>`),(0,n.H)({clickable:!(0,_.OQ)(a)}),this._handleMoreInfo,a,(0,c.W)({borderColor:(0,d.g)(e,this.hass.themes.darkMode,!1,!1,D[t],r),backgroundColor:(0,d.g)(e,this.hass.themes.darkMode,!0,!1,D[t],r)}),w||(0,_.$O)(this.hass,a,null===($=this._data)||void 0===$?void 0:$.statsMetadata[a]),m?(0,o.qy)(p||(p=T`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} ${0} </td> ${0}`),(0,i.ZV)(l,this.hass.locale),h,b?(0,o.qy)(f||(f=T`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td>`),null!==g?(0,i.ZV)(g,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""):""):"",(0,i.ZV)(s,this.hass.locale),h,b?(0,o.qy)(v||(v=T` <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td>`),null!==u?(0,i.ZV)(u,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""):"")}_renderTotalRow(e,t,a,r,s,l,n,d,h,_){return(0,o.qy)(w||(w=T` <tr class="mdc-data-table__row ${0}"> <td class="mdc-data-table__cell cell-bullet"> ${0} </td> <th class="mdc-data-table__cell" scope="row">${0}</th> ${0} <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td> ${0} </tr>`),h&&!_?"":"total",h?(0,o.qy)($||($=T`<div class="bullet" style="${0}"></div>`),(0,c.W)({borderColor:h.border,backgroundColor:h.background})):o.s6,e,d?(0,o.qy)(k||(k=T`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td> ${0}`),null===a?"":`${(0,i.ZV)(a,this.hass.locale)} ${r}`,n?(0,o.qy)(x||(x=T`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td>`),null!==l?(0,i.ZV)(l,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""):""):"",null===t?"":`${(0,i.ZV)(t,this.hass.locale)} ${r}`,n?(0,o.qy)(C||(C=T`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${0} </td>`),null!==s?(0,i.ZV)(s,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""):"")}render(){var e,t,a,r,s,l;if(!this.hass||!this._config)return o.s6;if(!this._data)return(0,o.qy)(z||(z=T`${0}`),this.hass.localize("ui.panel.lovelace.cards.energy.loading"));let n=0,c=0,i=0,u=!1,g=0,b=0,m=0;const y={gas:0,water:0,solar:0},p={gas:0,water:0,solar:0},f={gas:0,water:0},v={gas:0,water:0},w={gas:!1,water:!1},$=(0,h.E$)(this._data.prefs),k=null===(e=this._config)||void 0===e?void 0:e.types,x=k?Object.fromEntries(Object.entries($).filter(([e])=>k.includes(e))):$,C=getComputedStyle(this),P=!!((null===(t=x.grid)||void 0===t?void 0:t.some(e=>e.stat_cost||e.entity_energy_price||e.number_energy_price||e.stat_compensation||e.entity_energy_price_export||e.number_energy_price_export))||null!==(a=x.gas)&&void 0!==a&&a.some(e=>e.stat_cost||e.entity_energy_price||e.number_energy_price)||null!==(r=x.water)&&void 0!==r&&r.some(e=>e.stat_cost||e.entity_energy_price||e.number_energy_price)),H={solar:"kWh",gas:this._data.gasUnit,water:this._data.waterUnit},j=void 0!==this._data.statsCompare,O=(e,t)=>{const a=(0,_.$j)(this._data.stats[e]),r=j&&(0,_.$j)(this._data.statsCompare[e]),s=t&&(0,_.$j)(this._data.stats[t])||0,o=j&&t&&(0,_.$j)(this._data.statsCompare[t])||0;return null!==a||j&&null!==r?{hasData:!0,energy:a||0,energyCompare:r||0,cost:s,costCompare:o}:{hasData:!1,energy:a||0,energyCompare:r||0,cost:s,costCompare:o}},F=this._config.show_only_totals,I=e=>{var t;return(0,o.qy)(q||(q=T` ${0} ${0}`),null===(t=x[e])||void 0===t?void 0:t.map((t,a)=>{const r=e in w&&(t.stat_cost||this._data.info.cost_sensors[t.stat_energy_from]),{hasData:s,energy:l,energyCompare:n,cost:c,costCompare:i}=O(t.stat_energy_from,r||null);return s||c||i?(y[e]+=l,p[e]+=n,r&&(w[e]=!0,f[e]+=c,v[e]+=i),F?o.s6:this._renderRow(C,e,t.stat_energy_from,a,l,n,H[e],r?c:null,r?i:null,P,j,t.name)):o.s6}),x[e]?this._renderTotalRow(this.hass.localize(`ui.panel.lovelace.cards.energy.energy_sources_table.${e}_total`),y[e],p[e],H[e],w[e]?f[e]:null,w[e]?v[e]:null,P,j,F?{border:(0,d.g)(C,this.hass.themes.darkMode,!1,!1,D[e],0),background:(0,d.g)(C,this.hass.themes.darkMode,!0,!1,D[e],0)}:void 0):"")};return(0,o.qy)(R||(R=T` <ha-card> ${0} <div class="mdc-data-table"> <div class="mdc-data-table__table-container"> <table class="mdc-data-table__table" aria-label="Energy sources"> <thead> <tr class="mdc-data-table__header-row"> <th class="mdc-data-table__header-cell"></th> <th class="mdc-data-table__header-cell" role="columnheader" scope="col"> ${0} </th> ${0} <th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${0} </th> ${0} </tr> </thead> <tbody class="mdc-data-table__content"> ${0} ${0} ${0} ${0} ${0} ${0} ${0} ${0} </tbody> </table> </div> </div> </ha-card>`),this._config.title?(0,o.qy)(S||(S=T`<h1 class="card-header">${0}</h1>`),this._config.title):"",this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.source"),j?(0,o.qy)(M||(M=T`<th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${0} </th> ${0}`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.previous_energy"),P?(0,o.qy)(E||(E=T`<th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${0} </th>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.previous_cost")):""):"",this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.energy"),P?(0,o.qy)(V||(V=T` <th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${0} </th>`),this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.cost")):"",I("solar"),null===(s=x.battery)||void 0===s?void 0:s.map((e,t)=>{const{hasData:a,energy:r,energyCompare:s}=O(e.stat_energy_from,null),{hasData:l,energy:n,energyCompare:c}=O(e.stat_energy_to,null);return a||l?(i+=r-n,m+=s-c,F?o.s6:(0,o.qy)(W||(W=T` ${0}${0}`),this._renderRow(C,"battery_out",e.stat_energy_from,t,r,s,"kWh",null,null,P,j,e.name?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_battery_discharged",{name:e.name}):""),this._renderRow(C,"battery_in",e.stat_energy_to,t,-n,-c,"kWh",null,null,P,j,e.name?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_battery_charged",{name:e.name}):""))):o.s6}),x.battery?this._renderTotalRow(this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.battery_total"),i,m,"kWh",null,null,P,j,F?{border:(0,d.g)(C,this.hass.themes.darkMode,!1,!1,D.battery_out,0),background:(0,d.g)(C,this.hass.themes.darkMode,!0,!1,D.battery_out,0)}:void 0):"",null===(l=x.grid)||void 0===l?void 0:l.map((e,t)=>{const a=(()=>{if(!e.stat_energy_from)return o.s6;const a=e.stat_cost||this._data.info.cost_sensors[e.stat_energy_from],{hasData:r,energy:s,energyCompare:l,cost:i,costCompare:d}=O(e.stat_energy_from,a||null);if(!r&&!i&&!d)return o.s6;if(n+=s,g+=l,a&&(u=!0,c+=i,b+=d),F)return o.s6;const h=e.name?e.stat_energy_to?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_grid_imported",{name:e.name}):e.name:"";return this._renderRow(C,"grid_consumption",e.stat_energy_from,t,s,l,"kWh",i,d,P,j,h)})(),r=(()=>{if(!e.stat_energy_to)return o.s6;const a=e.stat_compensation||this._data.info.cost_sensors[e.stat_energy_to],{hasData:r,energy:s,energyCompare:l,cost:i,costCompare:d}=O(e.stat_energy_to,a||null);if(!r&&!i&&!d)return o.s6;if(n-=s,g-=l,a&&(u=!0,c-=i,b-=d),F)return o.s6;const h=e.name?e.stat_energy_from?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_grid_exported",{name:e.name}):e.name:"";return this._renderRow(C,"grid_return",e.stat_energy_to,t,-s,-l,"kWh",-i,-d,P,j,h)})();return(0,o.qy)(Z||(Z=T`${0}${0}`),a,r)}),x.grid&&x.grid.some(e=>!!e.stat_energy_from||!!e.stat_energy_to)?this._renderTotalRow(this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.grid_total"),n,g,"kWh",u?c:null,u?b:null,P,j,F?{border:(0,d.g)(C,this.hass.themes.darkMode,!1,!1,D.grid_consumption,0),background:(0,d.g)(C,this.hass.themes.darkMode,!0,!1,D.grid_consumption,0)}:void 0):"",I("gas"),I("water"),[w.gas,w.water,u].filter(Boolean).length>1?this._renderTotalRow(this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.total_costs"),null,null,"",f.gas+c+f.water,v.gas+b+v.water,P,j,void 0,!0):"")}_handleMoreInfo(e){var t;const a=null===(t=e.currentTarget)||void 0===t?void 0:t.entity;a&&!(0,_.OQ)(a)&&(0,b.r)(this,"hass-more-info",{entityId:a})}constructor(...e){super(...e),this.hassSubscribeRequiredHostProps=["_config"]}}H.styles=(0,o.AH)(P||(P=T`.mdc-data-table__cell,.mdc-data-table__content{font-family:var(--ha-font-family-body);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);-webkit-font-smoothing:var(--ha-font-smoothing);font-size:var(--ha-font-size-m);line-height:var(--ha-line-height-normal);font-weight:var(--ha-font-weight-normal);letter-spacing:.0178571429em;text-decoration:inherit;text-transform:inherit}.mdc-data-table{background-color:var(--card-background-color);border-radius:var(--ha-border-radius-sm);border:0;box-sizing:border-box;display:inline-flex;flex-direction:column;position:relative;width:100%}.mdc-data-table__table-container{-webkit-overflow-scrolling:touch;overflow-x:auto;width:100%}.mdc-data-table__table{min-width:100%;border:0;border-spacing:0;table-layout:fixed;white-space:nowrap}.mdc-data-table__header-row{height:56px}.mdc-data-table__row{background-color:inherit;height:52px}.mdc-data-table__cell,.mdc-data-table__header-cell{border-bottom-width:1px;border-bottom-style:solid;box-sizing:border-box;color:var(--primary-text-color);border-bottom-color:var(--divider-color);overflow:hidden;padding:0 16px;text-align:var(--float-start);text-overflow:ellipsis}.mdc-data-table__header-cell{background-color:var(--card-background-color);font-family:var(--ha-font-family-body);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);-webkit-font-smoothing:var(--ha-font-smoothing);font-size:var(--ha-font-size-m);line-height:var(--ha-line-height-normal);font-weight:var(--ha-font-weight-medium);letter-spacing:.0071428571em;text-decoration:inherit;text-transform:inherit}.mdc-data-table__row:last-child .mdc-data-table__cell{border-bottom:none}.mdc-data-table__row:not(.mdc-data-table__row--selected):hover{background-color:rgba(var(--rgb-primary-text-color),.04)}.clickable{cursor:pointer}.total .mdc-data-table__cell{border-top:1px solid var(--divider-color);font-weight:var(--ha-font-weight-medium)}ha-card{max-height:100%;overflow:auto}.card-header{padding-bottom:0}.content{padding:16px}.has-header{padding-top:0}.cell-bullet{width:32px;padding-right:0;padding-inline-end:0;padding-inline-start:16px;direction:var(--direction)}.bullet{border-width:1px;border-style:solid;border-radius:var(--ha-border-radius-sm);height:16px;width:32px}.mdc-data-table__cell--numeric{text-align:var(--float-end);direction:ltr}.mdc-data-table__header-cell--numeric{text-align:var(--float-end)}`)),(0,s.Cg)([(0,l.MZ)({attribute:!1})],H.prototype,"hass",void 0),(0,s.Cg)([(0,l.wk)()],H.prototype,"_config",void 0),(0,s.Cg)([(0,l.wk)()],H.prototype,"_data",void 0),H=(0,s.Cg)([(0,l.EM)("hui-energy-sources-table-card")],H),r()}catch(y){r(y)}})},56434:function(e,t,a){a.d(t,{e:function(){return s}});var r=a(81977);function s(e,t,a){return(0,r.P)(e,12*t,a)}}}]);