UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

1 lines 13.4 kB
export const __rspack_esm_id=97870;export const __rspack_esm_ids=[97870];export const __webpack_modules__={54706(e,t,a){a.d(t,{E:()=>o});a(74423),a(18111),a(13579);var r=a(62826),s=a(22441);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(){void 0===this.__unsubs&&this.isConnected&&void 0!==this.hass&&!this.hassSubscribeRequiredHostProps?.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(e,t,a){a.d(t,{g:()=>o});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(e,t,a){a.a(e,async function(e,r){try{a.r(t),a.d(t,{HuiEnergySourcesTableCard:()=>p});a(74423),a(18111),a(22489),a(61701),a(13579);var s=a(62826),o=a(5124),l=a(22441),n=a(6412),c=a(89784),i=a(20058),d=a(18427),_=(a(76776),a(38114)),h=a(23528),u=a(54706),g=a(784),b=a(1087),m=e([i,_]);[i,_]=m.then?(await m)():m;const y={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 p 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(){return[(0,_.tb)(this.hass,{key:this._config?.collection_key}).subscribe(e=>{this._data=e})]}getCardSize(){return 3}setConfig(e){e.collection_key&&(0,_.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,_,u,g,b,m,p){return o.qy`<tr class="mdc-data-table__row ${(0,n.H)({clickable:!(0,h.OQ)(a)})}" @click="${this._handleMoreInfo}" .entity="${a}"> <td class="mdc-data-table__cell cell-bullet"> <div class="bullet" style="${(0,c.W)({borderColor:(0,d.g)(e,this.hass.themes.darkMode,!1,!1,y[t],r),backgroundColor:(0,d.g)(e,this.hass.themes.darkMode,!0,!1,y[t],r)})}"></div> </td> <th class="mdc-data-table__cell" scope="row"> ${p||(0,h.$O)(this.hass,a,this._data?.statsMetadata[a])} </th> ${m?o.qy`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${(0,i.ZV)(l,this.hass.locale)} ${_} </td> ${b?o.qy`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null!==g?(0,i.ZV)(g,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""} </td>`:""}`:""} <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${(0,i.ZV)(s,this.hass.locale)} ${_} </td> ${b?o.qy` <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null!==u?(0,i.ZV)(u,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""} </td>`:""} </tr>`}_renderTotalRow(e,t,a,r,s,l,n,d,_,h){return o.qy` <tr class="mdc-data-table__row ${_&&!h?"":"total"}"> <td class="mdc-data-table__cell cell-bullet"> ${_?o.qy`<div class="bullet" style="${(0,c.W)({borderColor:_.border,backgroundColor:_.background})}"></div>`:o.s6} </td> <th class="mdc-data-table__cell" scope="row">${e}</th> ${d?o.qy`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null===a?"":`${(0,i.ZV)(a,this.hass.locale)} ${r}`} </td> ${n?o.qy`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null!==l?(0,i.ZV)(l,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""} </td>`:""}`:""} <td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null===t?"":`${(0,i.ZV)(t,this.hass.locale)} ${r}`} </td> ${n?o.qy`<td class="mdc-data-table__cell mdc-data-table__cell--numeric"> ${null!==s?(0,i.ZV)(s,this.hass.locale,{style:"currency",currency:this.hass.config.currency}):""} </td>`:""} </tr>`}render(){if(!this.hass||!this._config)return o.s6;if(!this._data)return o.qy`${this.hass.localize("ui.panel.lovelace.cards.energy.loading")}`;let e=0,t=0,a=0,r=!1,s=0,l=0,n=0;const c={gas:0,water:0,solar:0},i={gas:0,water:0,solar:0},u={gas:0,water:0},g={gas:0,water:0},b={gas:!1,water:!1},m=(0,_.E$)(this._data.prefs),p=this._config?.types,f=p?Object.fromEntries(Object.entries(m).filter(([e])=>p.includes(e))):m,v=getComputedStyle(this),w=f.grid?.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),$=!!(w||f.gas?.some(e=>e.stat_cost||e.entity_energy_price||e.number_energy_price)||f.water?.some(e=>e.stat_cost||e.entity_energy_price||e.number_energy_price)),k={solar:"kWh",gas:this._data.gasUnit,water:this._data.waterUnit},x=void 0!==this._data.statsCompare,C=(e,t)=>{const a=(0,h.$j)(this._data.stats[e]),r=x&&(0,h.$j)(this._data.statsCompare[e]),s=t&&(0,h.$j)(this._data.stats[t])||0,o=x&&t&&(0,h.$j)(this._data.statsCompare[t])||0;return null!==a||x&&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}},z=this._config.show_only_totals,q=e=>o.qy` ${f[e]?.map((t,a)=>{const r=e in b&&(t.stat_cost||this._data.info.cost_sensors[t.stat_energy_from]),{hasData:s,energy:l,energyCompare:n,cost:d,costCompare:_}=C(t.stat_energy_from,r||null);return s||d||_?(c[e]+=l,i[e]+=n,r&&(b[e]=!0,u[e]+=d,g[e]+=_),z?o.s6:this._renderRow(v,e,t.stat_energy_from,a,l,n,k[e],r?d:null,r?_:null,$,x,t.name)):o.s6})} ${f[e]?this._renderTotalRow(this.hass.localize(`ui.panel.lovelace.cards.energy.energy_sources_table.${e}_total`),c[e],i[e],k[e],b[e]?u[e]:null,b[e]?g[e]:null,$,x,z?{border:(0,d.g)(v,this.hass.themes.darkMode,!1,!1,y[e],0),background:(0,d.g)(v,this.hass.themes.darkMode,!0,!1,y[e],0)}:void 0):""}`;return o.qy` <ha-card> ${this._config.title?o.qy`<h1 class="card-header">${this._config.title}</h1>`:""} <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"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.source")} </th> ${x?o.qy`<th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.previous_energy")} </th> ${$?o.qy`<th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.previous_cost")} </th>`:""}`:""} <th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.energy")} </th> ${$?o.qy` <th class="mdc-data-table__header-cell mdc-data-table__header-cell--numeric" role="columnheader" scope="col"> ${this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.cost")} </th>`:""} </tr> </thead> <tbody class="mdc-data-table__content"> ${q("solar")} ${f.battery?.map((e,t)=>{const{hasData:r,energy:s,energyCompare:l}=C(e.stat_energy_from,null),{hasData:c,energy:i,energyCompare:d}=C(e.stat_energy_to,null);return r||c?(a+=s-i,n+=l-d,z?o.s6:o.qy` ${this._renderRow(v,"battery_out",e.stat_energy_from,t,s,l,"kWh",null,null,$,x,e.name?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_battery_discharged",{name:e.name}):"")}${this._renderRow(v,"battery_in",e.stat_energy_to,t,-i,-d,"kWh",null,null,$,x,e.name?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_battery_charged",{name:e.name}):"")}`):o.s6})} ${f.battery?this._renderTotalRow(this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.battery_total"),a,n,"kWh",null,null,$,x,z?{border:(0,d.g)(v,this.hass.themes.darkMode,!1,!1,y.battery_out,0),background:(0,d.g)(v,this.hass.themes.darkMode,!0,!1,y.battery_out,0)}:void 0):""} ${f.grid?.map((a,n)=>{const c=(()=>{if(!a.stat_energy_from)return o.s6;const c=a.stat_cost||this._data.info.cost_sensors[a.stat_energy_from],{hasData:i,energy:d,energyCompare:_,cost:h,costCompare:u}=C(a.stat_energy_from,c||null);if(!i&&!h&&!u)return o.s6;if(e+=d,s+=_,c&&(r=!0,t+=h,l+=u),z)return o.s6;const g=a.name?a.stat_energy_to?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_grid_imported",{name:a.name}):a.name:"";return this._renderRow(v,"grid_consumption",a.stat_energy_from,n,d,_,"kWh",h,u,$,x,g)})(),i=(()=>{if(!a.stat_energy_to)return o.s6;const c=a.stat_compensation||this._data.info.cost_sensors[a.stat_energy_to],{hasData:i,energy:d,energyCompare:_,cost:h,costCompare:u}=C(a.stat_energy_to,c||null);if(!i&&!h&&!u)return o.s6;if(e-=d,s-=_,c&&(r=!0,t-=h,l-=u),z)return o.s6;const g=a.name?a.stat_energy_from?this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.named_grid_exported",{name:a.name}):a.name:"";return this._renderRow(v,"grid_return",a.stat_energy_to,n,-d,-_,"kWh",-h,-u,$,x,g)})();return o.qy`${c}${i}`})} ${f.grid&&f.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"),e,s,"kWh",r?t:null,r?l:null,$,x,z?{border:(0,d.g)(v,this.hass.themes.darkMode,!1,!1,y.grid_consumption,0),background:(0,d.g)(v,this.hass.themes.darkMode,!0,!1,y.grid_consumption,0)}:void 0):""} ${q("gas")} ${q("water")} ${[b.gas,b.water,r].filter(Boolean).length>1?this._renderTotalRow(this.hass.localize("ui.panel.lovelace.cards.energy.energy_sources_table.total_costs"),null,null,"",u.gas+t+u.water,g.gas+l+g.water,$,x,void 0,!0):""} </tbody> </table> </div> </div> </ha-card>`}_handleMoreInfo(e){const t=e.currentTarget?.entity;t&&!(0,h.OQ)(t)&&(0,b.r)(this,"hass-more-info",{entityId:t})}constructor(...e){super(...e),this.hassSubscribeRequiredHostProps=["_config"]}}p.styles=o.AH`.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})],p.prototype,"hass",void 0),(0,s.Cg)([(0,l.wk)()],p.prototype,"_config",void 0),(0,s.Cg)([(0,l.wk)()],p.prototype,"_data",void 0),p=(0,s.Cg)([(0,l.EM)("hui-energy-sources-table-card")],p),r()}catch(e){r(e)}})},56434(e,t,a){a.d(t,{e:()=>s});var r=a(81977);function s(e,t,a){return(0,r.P)(e,12*t,a)}}};