iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 8.92 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[6171],{90433:function(t,e,s){s.d(e,{Vy:function(){return n},fI:function(){return o},ux:function(){return c}});var r=s(22786),i=s(79468);const a=54;function n(t,e){const s=t%a+1;return e.getPropertyValue(`--color-${s}`)}function o(t,e){const s=e.getPropertyValue(`--graph-color-${t+1}`)||n(t,e);return(0,i.RQ)(s)}const c=(0,r.A)(t=>Array.from({length:a},(e,s)=>o(s,t)),(t,e)=>t[0].getPropertyValue("--graph-color-1")===e[0].getPropertyValue("--graph-color-1")&&t[0].getPropertyValue("--color-1")===e[0].getPropertyValue("--color-1"))},89938:function(t,e,s){function r(t,e){const s=e-t;return!Number.isFinite(s)||s<=0?1:Math.max(0,Math.ceil(-Math.log10(s/10)))}s.d(e,{G:function(){return r}})},54706:function(t,e,s){s.d(e,{E:function(){return a}});s(74423),s(18111),s(13579),s(3362),s(62953);var r=s(40445),i=s(67576);const a=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,r.Cg)([(0,i.MZ)({attribute:!1})],e.prototype,"hass",void 0),e}},18427:function(t,e,s){s.d(e,{g:function(){return a}});s(42762);var r=s(79468),i=s(39274);function a(t,e,s,a,n,o){const c=t.getPropertyValue(n+"-"+o).trim(),h=c.length>0?c:t.getPropertyValue(n).trim();let u=(0,r.RQ)(h);return 0===c.length&&o&&(u=(0,r.v2)((0,r.BE)(e?(0,i.T)((0,r.Nc)((0,r.xp)(u)),o):(0,i.d)((0,r.Nc)((0,r.xp)(u)),o)))),a?u+=s?"32":"7F":s&&(u+="7F"),u}},40345:function(t,e,s){s.a(t,async function(t,e){try{var r=s(40445),i=s(5124),a=s(67576),n=s(34127),o=t([n]);n=(o.then?(await o)():o)[0];let c,h,u=t=>t;class d extends i.WF{render(){const t=`energy-graph-chip-${Date.now()}`;return(0,i.qy)(c||(c=u` <div class="chip" id="${0}"> <slot></slot> </div> <ha-tooltip for="${0}" placement="top">${0}</ha-tooltip> `),t,t,this.tooltip)}}d.styles=(0,i.AH)(h||(h=u`.chip{font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-medium);padding:var(--ha-space-1) var(--ha-space-2);border-radius:var(--ha-border-radius-md);border:1px solid var(--divider-color)}`)),(0,r.Cg)([(0,a.MZ)({type:String})],d.prototype,"tooltip",void 0),d=(0,r.Cg)([(0,a.EM)("hui-energy-graph-chip")],d),e()}catch(c){e(c)}})},62743:function(t,e,s){s.a(t,async function(t,r){try{s.r(e),s.d(e,{HuiEnergyWaterGraphCard:function(){return E}});s(44114),s(72712),s(18111),s(22489),s(7588),s(18237),s(3362),s(62953);var i=s(40445),a=s(73684),n=s(40600),o=s(81859),c=s(5124),h=s(67576),u=s(6412),d=s(22786),l=s(18427),p=s(44439),g=s(89938),_=(s(76776),s(38114)),f=s(23528),y=s(54706),v=s(784),b=s(97372),m=s(20058),C=s(40345),k=s(34127),w=t([p,C,k,_,f,m,b]);[p,C,k,_,f,m,b]=w.then?(await w)():w;let S,x,$,D,M,P=t=>t;class E extends((0,y.E)(c.WF)){static async getConfigElement(){return await s.e(79062).then(s.bind(s,54197)),document.createElement("hui-energy-graph-card-editor")}static getStubConfig(t,e,s){return{type:"energy-water-graph"}}hassSubscribe(){var t;return[(0,_.tb)(this.hass,{key:null===(t=this._config)||void 0===t?void 0:t.collection_key}).subscribe(t=>this._getStatistics(t))]}getCardSize(){return 3}setConfig(t){t.collection_key&&(0,_.s8)(t.collection_key),this._config=t}shouldUpdate(t){return(0,v.xP)(this,t)||t.size>1||!t.has("hass")}render(){return this.hass&&this._config?(0,c.qy)(S||(S=P` <ha-card> ${0} <div class="content ${0}"> <ha-chart-base .hass="${0}" .data="${0}" .options="${0}" chart-type="bar"></ha-chart-base> ${0} </div> </ha-card> `),this._config.title?(0,c.qy)(x||(x=P` <div class="card-header"> <span>${0}</span> ${0} </div>`),this._config.title?this._config.title:c.s6,this._total?(0,c.qy)($||($=P`<hui-energy-graph-chip .tooltip="${0}"> ${0} ${0} </hui-energy-graph-chip>`),this._formatTotal(this._total),(0,m.ZV)(this._total,this.hass.locale),this._unit):c.s6):c.s6,(0,u.H)({"has-header":!!this._config.title}),this.hass,this._chartData,this._createOptions(this._start,this._end,this.hass.locale,this.hass.config,this._unit,this._compareStart,this._compareEnd,this._yAxisFractionDigits),this._chartData.length?"":(0,c.qy)(D||(D=P`<div class="no-data"> ${0} </div>`),(0,a.c)(this._start)?this.hass.localize("ui.panel.lovelace.cards.energy.no_data"):this.hass.localize("ui.panel.lovelace.cards.energy.no_data_period"))):c.s6}async _getStatistics(t){this._start=t.start,this._end=t.end||(0,n.o)(),this._compareStart=t.startCompare,this._compareEnd=t.endCompare;const e=t.prefs.energy_sources.filter(t=>"water"===t.type);this._unit=t.waterUnit;const s=[],r=getComputedStyle(this);let i=1/0,a=-1/0;const o=t=>{t<i&&(i=t),t>a&&(a=t)};if(t.statsCompare)s.push(...this._processDataSet(t.statsCompare,t.statsMetadata,e,r,o,!0));else{var c,h;const t=null!==(c=null===(h=e[0])||void 0===h?void 0:h.stat_energy_from)&&void 0!==c?c:"placeholder";s.push({id:"compare-"+t,type:"bar",stack:"water",data:[]})}s.push(...this._processDataSet(t.stats,t.statsMetadata,e,r,o)),(0,b.RR)(s),this._yAxisFractionDigits=(0,g.G)(i,a),this._chartData=s,this._total=this._processTotal(t.stats,e)}_processTotal(t,e){return e.reduce((e,s)=>e+(s.stat_energy_from in t?t[s.stat_energy_from].reduce((t,e)=>t+(e.change||0),0):0),0)}_processDataSet(t,e,s,r,i,a=!1){const n=[],o=(0,b.ok)(this._start,this._compareStart),c=(0,_.TI)(this._start,this._end);return s.forEach((s,h)=>{let u=null;const d=[];if(s.stat_energy_from in t){const e=t[s.stat_energy_from];for(const t of e){if(null===t.change||void 0===t.change||0===t.change)continue;if(u===t.start)continue;const e=[(0,b.IJ)(t.start,t.end,c,a?o:void 0),t.change,t.start];d.push(e),i(t.change),u=t.start}}n.push({type:"bar",cursor:"default",id:a?"compare-"+s.stat_energy_from:s.stat_energy_from,name:s.name||(0,f.$O)(this.hass,s.stat_energy_from,e[s.stat_energy_from]),barMaxWidth:50,itemStyle:{borderColor:(0,l.g)(r,this.hass.themes.darkMode,!1,a,"--energy-water-color",h)},color:(0,l.g)(r,this.hass.themes.darkMode,!0,a,"--energy-water-color",h),data:d,stack:a?"compare":"water"})}),n}constructor(...t){super(...t),this._chartData=[],this._yAxisFractionDigits=1,this._start=(0,o.R)(),this._end=(0,n.o)(),this.hassSubscribeRequiredHostProps=["_config"],this._formatTotal=t=>this.hass.localize("ui.panel.lovelace.cards.energy.energy_water_graph.total_consumed",{num:(0,m.ZV)(t,this.hass.locale),unit:this._unit}),this._createOptions=(0,d.A)((t,e,s,r,i,a,n,o)=>(0,b.od)(t,e,s,r,i,a,n,this._formatTotal,!1,o))}}E.styles=(0,c.AH)(M||(M=P`ha-card{height:100%}.card-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:0}.content{padding:16px}.has-header{padding-top:0}.no-data{position:absolute;height:100%;top:0;left:0;right:0;display:flex;justify-content:center;align-items:center;padding:20%;margin-left:32px;margin-inline-start:32px;margin-inline-end:initial;box-sizing:border-box}`)),(0,i.Cg)([(0,h.MZ)({attribute:!1})],E.prototype,"hass",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_config",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_chartData",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_yAxisFractionDigits",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_start",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_end",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_compareStart",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_compareEnd",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_unit",void 0),(0,i.Cg)([(0,h.wk)()],E.prototype,"_total",void 0),E=(0,i.Cg)([(0,h.EM)("hui-energy-water-graph-card")],E),r()}catch(S){r(S)}})},43382:function(t,e,s){s.d(e,{A:function(){return i}});var r=s(73420);function i(t){return(0,r.w)(t,Date.now())}},6116:function(t,e,s){s.d(e,{o:function(){return a}});var r=s(6439),i=s(83339);function a(t,e,s){const a=(0,i.b)(t,e)/6e4;return(0,r.u)(null==s?void 0:s.roundingMethod)(a)}},40600:function(t,e,s){s.d(e,{o:function(){return i}});var r=s(73983);function i(t){return(0,r.D)(Date.now(),t)}},83309:function(t,e,s){s.d(e,{r:function(){return a}});s(62953);var r=s(74816),i=s(35932);function a(t,e,s){const[a,n]=(0,r.x)(null==s?void 0:s.in,t,e);return+(0,i.o)(a)===+(0,i.o)(n)}},73684:function(t,e,s){s.d(e,{c:function(){return n}});var r=s(73420),i=s(43382),a=s(83309);function n(t,e){return(0,a.r)((0,r.w)((null==e?void 0:e.in)||t,t),(0,i.A)((null==e?void 0:e.in)||t))}},81859:function(t,e,s){s.d(e,{R:function(){return i}});var r=s(35932);function i(t){return(0,r.o)(Date.now(),t)}}}]);