UNPKG

iobroker.lovelace

Version:

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

2 lines 19.6 kB
export const __webpack_ids__=["19551"];export const __webpack_modules__={50875:function(e,t,i){i.d(t,{Eu:()=>d,hZ:()=>n,o9:()=>r});var a=i(27486),o=i(11259);const s=["#4269d0","#f4bd4a","#ff725c","#6cc5b0","#a463f2","#ff8ab7","#9c6b4e","#97bbf5","#01ab63","#9498a0","#094bad","#c99000","#d84f3e","#49a28f","#048732","#d96895","#8043ce","#7599d1","#7a4c31","#74787f","#6989f4","#ffd444","#ff957c","#8fe9d3","#62cc71","#ffadda","#c884ff","#badeff","#bf8b6d","#b6bac2","#927acc","#97ee3f","#bf3947","#9f5b00","#f48758","#8caed6","#f2b94f","#eff26e","#e43872","#d9b100","#9d7a00","#698cff","#d9d9d9","#00d27e","#d06800","#009f82","#c49200","#cbe8ff","#fecddf","#c27eb6","#8cd2ce","#c4b8d9","#f883b0","#a49100","#f48800","#27d0df","#a04a9b"];function d(e){return s[e%s.length]}function n(e,t){const i=t.getPropertyValue(`--graph-color-${e+1}`)||d(e);return(0,o.Rq)(i)}const r=(0,a.Z)((e=>s.map(((t,i)=>n(i,e)))),((e,t)=>e[0].getPropertyValue("--graph-color-1")===t[0].getPropertyValue("--graph-color-1")))},84892:function(e,t,i){i.a(e,(async function(e,a){try{i.d(t,{O:()=>f});var o=i(44249),s=(i(92745),i(9359),i(56475),i(31526),i(70104),i(92519),i(42179),i(89256),i(24931),i(88463),i(57449),i(19814),i(57243)),d=i(15093),n=i(69634),r=i(27486),l=i(50875),h=i(72344),c=i(64214),u=i(50602),m=i(87974),v=i(20172),b=i(17705),p=i(25179),y=e([p,u,c]);[p,u,c]=y.then?(await y)():y;const f={mean:"mean",min:"min",max:"max",sum:"sum",state:"sum",change:"sum"};(0,o.Z)([(0,d.Mo)("statistics-chart")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"statisticsData",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"metadata",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"names",value:void 0},{kind:"field",decorators:[(0,d.Cb)()],key:"unit",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"startTime",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"endTime",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1,type:Array})],key:"statTypes",value:()=>["sum","min","mean","max"]},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"chartType",value:()=>"line"},{kind:"field",decorators:[(0,d.Cb)({attribute:!1,type:Number})],key:"minYAxis",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1,type:Number})],key:"maxYAxis",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:"fit-y-data",type:Boolean})],key:"fitYData",value:()=>!1},{kind:"field",decorators:[(0,d.Cb)({attribute:"hide-legend",type:Boolean})],key:"hideLegend",value:()=>!1},{kind:"field",decorators:[(0,d.Cb)({attribute:"logarithmic-scale",type:Boolean})],key:"logarithmicScale",value:()=>!1},{kind:"field",decorators:[(0,d.Cb)({attribute:"is-loading-data",type:Boolean})],key:"isLoadingData",value:()=>!1},{kind:"field",decorators:[(0,d.Cb)({attribute:"click-for-more-info",type:Boolean})],key:"clickForMoreInfo",value:()=>!0},{kind:"field",decorators:[(0,d.Cb)()],key:"period",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:"days-to-show",type:Number})],key:"daysToShow",value:void 0},{kind:"field",decorators:[(0,d.Cb)({type:String})],key:"height",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:"expand-legend",type:Boolean})],key:"expandLegend",value:void 0},{kind:"field",decorators:[(0,d.SB)()],key:"_chartData",value:()=>[]},{kind:"field",decorators:[(0,d.SB)()],key:"_legendData",value:()=>[]},{kind:"field",decorators:[(0,d.SB)()],key:"_statisticIds",value:()=>[]},{kind:"field",decorators:[(0,d.SB)()],key:"_chartOptions",value:void 0},{kind:"field",decorators:[(0,d.SB)()],key:"_hiddenStats",value:()=>new Set},{kind:"field",key:"_computedStyle",value:void 0},{kind:"method",key:"shouldUpdate",value:function(e){return e.size>1||!e.has("hass")}},{kind:"method",key:"willUpdate",value:function(e){(e.has("statisticsData")||e.has("statTypes")||e.has("chartType")||e.has("hideLegend")||e.has("_hiddenStats"))&&this._generateData(),(!this.hasUpdated||e.has("unit")||e.has("period")||e.has("chartType")||e.has("minYAxis")||e.has("maxYAxis")||e.has("fitYData")||e.has("logarithmicScale")||e.has("hideLegend")||e.has("startTime")||e.has("endTime")||e.has("_legendData")||e.has("_chartData"))&&this._createOptions()}},{kind:"method",key:"firstUpdated",value:function(){this._computedStyle=getComputedStyle(this)}},{kind:"method",key:"render",value:function(){return(0,h.p)(this.hass,"history")?this.isLoadingData&&!this.statisticsData?s.dy`<div class="info"> ${this.hass.localize("ui.components.statistics_charts.loading_statistics")} </div>`:this.statisticsData&&Object.keys(this.statisticsData).length?s.dy` <ha-chart-base .hass="${this.hass}" .data="${this._chartData}" .options="${this._chartOptions}" .height="${this.height}" style="${(0,n.V)({height:this.height})}" @dataset-hidden="${this._datasetHidden}" @dataset-unhidden="${this._datasetUnhidden}" .expandLegend="${this.expandLegend}"></ha-chart-base> `:s.dy`<div class="info"> ${this.hass.localize("ui.components.statistics_charts.no_statistics_found")} </div>`:s.dy`<div class="info"> ${this.hass.localize("ui.components.history_charts.history_disabled")} </div>`}},{kind:"method",key:"_datasetHidden",value:function(e){this._hiddenStats.add(e.detail.name),this.requestUpdate("_hiddenStats")}},{kind:"method",key:"_datasetUnhidden",value:function(e){this._hiddenStats.delete(e.detail.name),this.requestUpdate("_hiddenStats")}},{kind:"field",key:"_renderTooltip",value(){return e=>{const t={},i=this.unit?`${(0,m.L)(this.unit,this.hass.locale)}${this.unit}`:"";return e.map(((e,a)=>{if(t[e.seriesName])return"";t[e.seriesName]=!0;const o=this._statisticIds[e.seriesIndex],s=this.hass.states[o],d=this.hass.entities[o],n=String(e.value[2]??e.value[1]),r=(0,u.l4)(s,d)??{maximumFractionDigits:2},l=`${(0,u.uf)(n,this.hass.locale,r)}${i}`;return`${0===a?(0,c.E8)(new Date(e.value[0]),this.hass.locale,this.hass.config)+"<br>":""}${e.marker} ${e.seriesName}: ${l}`})).filter(Boolean).join("<br>")}}},{kind:"method",key:"_createOptions",value:function(){const e=this.daysToShow??1;let t=this.minYAxis,i=this.maxYAxis;"number"==typeof t?this.fitYData&&(t=({min:e})=>Math.min(e,this.minYAxis)):this.logarithmicScale&&(t=({min:e})=>Math.floor(e>0?.95*e:1.05*e)),"number"==typeof i?this.fitYData&&(i=({max:e})=>Math.max(e,this.maxYAxis)):this.logarithmicScale&&(i=({max:e})=>Math.ceil(e>0?1.05*e:.95*e));const a=this.endTime??new Date;let o=this.startTime;o||(this._chartData.forEach((e=>{if(!Array.isArray(e.data)||!e.data[0])return;const t=e.data[0],i=Array.isArray(t)?t[0]:t.value?.[0];i&&(!o||new Date(i)<o)&&(o=new Date(i))})),o||(o=new Date(a.getTime()-24*e*3600*1e3))),this._chartOptions={xAxis:[{id:"xAxis",type:"time",min:o,max:this.endTime},{id:"hiddenAxis",type:"time",show:!1}],yAxis:{type:this.logarithmicScale?"log":"value",name:this.unit,nameGap:2,nameTextStyle:{align:"left"},position:(0,v.HE)(this.hass)?"right":"left",scale:"bar"!==this.chartType||this.logarithmicScale||void 0!==t||void 0!==i,min:this._clampYAxis(t),max:this._clampYAxis(i),splitLine:{show:!0}},legend:{show:!this.hideLegend,data:this._legendData},grid:{top:15,left:1,right:1,bottom:0,containLabel:!0},tooltip:{trigger:"axis",appendTo:document.body,formatter:this._renderTooltip}}}},{kind:"field",key:"_getStatisticsMetaData",value(){return(0,r.Z)((async e=>{const t=await(0,b.Py)(this.hass,e),i={};return t.forEach((e=>{i[e.statistic_id]=e})),i}))}},{kind:"method",key:"_generateData",value:async function(){if(!this.statisticsData)return;const e=this.metadata||await this._getStatisticsMetaData(Object.keys(this.statisticsData));let t=0;const i=Object.entries(this.statisticsData),a=[],o=[],s=[];let d,n;if(0===i.length)return;d=this.endTime||new Date(Math.max(...i.map((([e,t])=>new Date(t[t.length-1].start).getTime())))),d>new Date&&(d=new Date);const r=this.names||{};i.forEach((([i,d])=>{const h=e?.[i];let c=r[i];void 0===c&&(c=(0,b.Kd)(this.hass,i,h)),this.unit||(void 0===n?n=(0,b.dO)(this.hass,i,h):null!==n&&n!==(0,b.dO)(this.hass,i,h)&&(n=null));let u,m=null;const v=[],p=[],y=(e,t,i)=>{i.length&&(e>t||(v.forEach(((t,a)=>{"line"===this.chartType&&u&&m&&u.getTime()!==e.getTime()&&(t.data.push(this._transformDataValue([u,...m[a]])),t.data.push([u,null])),t.data.push(this._transformDataValue([e,...i[a]]))})),m=i,u=t))},f=(0,l.hZ)(t,this._computedStyle||getComputedStyle(this));t++;const k=[],g=this.statTypes.includes("mean")&&(0,b.Nw)(d,"mean"),_=g||this.statTypes.includes("min")&&(0,b.Nw)(d,"min")&&this.statTypes.includes("max")&&(0,b.Nw)(d,"max"),x=_?[...this.statTypes].sort(((e,t)=>"min"===e||"max"===t?-1:"max"===e||"min"===t?1:0)):this.statTypes;let C=!1;x.forEach((e=>{if((0,b.Nw)(d,e)){const t=_&&("min"===e||"max"===e);k.push(e);const a=t&&g?f+(this.hideLegend?"00":"7F"):f,o=t?f+"3F":f+"7F",d={id:`${i}-${e}`,type:this.chartType,smooth:"line"===this.chartType&&.4,smoothMonotone:"x",cursor:"default",data:[],name:c?`${c} (${this.hass.localize(`ui.components.statistics_charts.statistic_types.${e}`)})`:this.hass.localize(`ui.components.statistics_charts.statistic_types.${e}`),symbol:"none",sampling:"minmax",animationDurationUpdate:0,lineStyle:{width:1.5},itemStyle:"bar"===this.chartType?{borderRadius:[4,4,0,0],borderColor:a,borderWidth:1.5}:void 0,color:"bar"===this.chartType?o:a};if(t&&"line"===this.chartType&&(d.stack=`band-${i}`,d.stackStrategy="all",_&&"max"===e&&(d.areaStyle={color:f+"3F"})),!this.hideLegend){const t=g?"mean"===e:!1===C;t&&p.push({name:c,color:d.color,borderColor:d.itemStyle?.borderColor}),C=C||t}v.push(d),s.push(i)}}));let $=null,w=null;d.forEach((e=>{const t=new Date(e.start);if($===t)return;$=t;const i=[];k.forEach((t=>{const a=[];if("sum"===t)null==w?(a.push(0),w=e.sum):a.push((e.sum||0)-w);else if("max"===t&&"line"===this.chartType){const t=e.max||0;a.push(Math.abs(t-(e.min||0))),a.push(t)}else a.push(e[t]??null);i.push(a)})),this._hiddenStats.has(c)||y(t,new Date(e.end),i)})),Array.prototype.push.apply(a,v),Array.prototype.push.apply(o,p)})),n&&(this.unit=n),o.forEach((({name:e,color:t,borderColor:i})=>{a.push({id:e+"-legend",name:e,color:t,itemStyle:{borderColor:i},type:this.chartType,data:[],xAxisIndex:1})})),this._chartData=a,o.length!==this._legendData.length&&(this._legendData=o.map((({name:e})=>e))),this._statisticIds=s}},{kind:"method",key:"_transformDataValue",value:function(e){return"bar"===this.chartType&&e[1]&&e[1]<0?{value:e,itemStyle:{borderRadius:[0,0,4,4]}}:e}},{kind:"method",key:"_clampYAxis",value:function(e){if(this.logarithmicScale){if("number"==typeof e)return Math.max(e,.1);if("function"==typeof e)return t=>Math.max(e(t),.1)}return e}},{kind:"field",static:!0,key:"styles",value:()=>s.iv`:host{display:block;min-height:60px}.info{text-align:center;line-height:60px;color:var(--secondary-text-color)}`}]}}),s.oi);a()}catch(e){a(e)}}))},94279:function(e,t,i){var a=i(44249),o=i(72621),s=(i(9359),i(31526),i(2394)),d=(i(30080),i(43631)),n=i(57243),r=i(15093),l=i(20552),h=i(36522);i(23334),i(7285),i(83166);(0,d.hC)("vaadin-combo-box-item",n.iv`:host{padding:0!important}:host([focused]:not([disabled])){background-color:rgba(var(--rgb-primary-text-color,0,0,0),.12)}:host([selected]:not([disabled])){background-color:transparent;color:var(--mdc-theme-primary);--mdc-ripple-color:var(--mdc-theme-primary);--mdc-theme-text-primary-on-background:var(--mdc-theme-primary)}:host([selected]:not([disabled])):before{background-color:var(--mdc-theme-primary);opacity:.12;content:"";position:absolute;top:0;left:0;width:100%;height:100%}:host([selected][focused]:not([disabled])):before{opacity:.24}:host(:hover:not([disabled])){background-color:transparent}[part=content]{width:100%}[part=checkmark]{display:none}`);(0,a.Z)([(0,r.Mo)("ha-combo-box")],(function(e,t){class i extends t{constructor(...t){super(...t),e(this)}}return{F:i,d:[{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,r.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,r.Cb)()],key:"value",value:void 0},{kind:"field",decorators:[(0,r.Cb)()],key:"placeholder",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"validationMessage",value:void 0},{kind:"field",decorators:[(0,r.Cb)()],key:"helper",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:"error-message"})],key:"errorMessage",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"invalid",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"icon",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"items",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"filteredItems",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"dataProvider",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:"allow-custom-value",type:Boolean})],key:"allowCustomValue",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({attribute:"item-value-path"})],key:"itemValuePath",value:()=>"value"},{kind:"field",decorators:[(0,r.Cb)({attribute:"item-label-path"})],key:"itemLabelPath",value:()=>"label"},{kind:"field",decorators:[(0,r.Cb)({attribute:"item-id-path"})],key:"itemIdPath",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"renderer",value:void 0},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean})],key:"required",value:()=>!1},{kind:"field",decorators:[(0,r.Cb)({type:Boolean,reflect:!0})],key:"opened",value:()=>!1},{kind:"field",decorators:[(0,r.IO)("vaadin-combo-box-light",!0)],key:"_comboBox",value:void 0},{kind:"field",decorators:[(0,r.IO)("ha-textfield",!0)],key:"_inputElement",value:void 0},{kind:"field",key:"_overlayMutationObserver",value:void 0},{kind:"field",key:"_bodyMutationObserver",value:void 0},{kind:"method",key:"open",value:async function(){await this.updateComplete,this._comboBox?.open()}},{kind:"method",key:"focus",value:async function(){await this.updateComplete,await(this._inputElement?.updateComplete),this._inputElement?.focus()}},{kind:"method",key:"disconnectedCallback",value:function(){(0,o.Z)(i,"disconnectedCallback",this,3)([]),this._overlayMutationObserver&&(this._overlayMutationObserver.disconnect(),this._overlayMutationObserver=void 0),this._bodyMutationObserver&&(this._bodyMutationObserver.disconnect(),this._bodyMutationObserver=void 0)}},{kind:"get",key:"selectedItem",value:function(){return this._comboBox.selectedItem}},{kind:"method",key:"setInputValue",value:function(e){this._comboBox.value=e}},{kind:"method",key:"render",value:function(){return n.dy` <vaadin-combo-box-light .itemValuePath="${this.itemValuePath}" .itemIdPath="${this.itemIdPath}" .itemLabelPath="${this.itemLabelPath}" .items="${this.items}" .value="${this.value||""}" .filteredItems="${this.filteredItems}" .dataProvider="${this.dataProvider}" .allowCustomValue="${this.allowCustomValue}" .disabled="${this.disabled}" .required="${this.required}" ${(0,s.t)(this.renderer||this._defaultRowRenderer)} @opened-changed="${this._openedChanged}" @filter-changed="${this._filterChanged}" @value-changed="${this._valueChanged}" attr-for-value="value"> <ha-textfield label="${(0,l.o)(this.label)}" placeholder="${(0,l.o)(this.placeholder)}" ?disabled="${this.disabled}" ?required="${this.required}" validationMessage="${(0,l.o)(this.validationMessage)}" .errorMessage="${this.errorMessage}" class="input" autocapitalize="none" autocomplete="off" autocorrect="off" input-spellcheck="false" .suffix="${n.dy`<div style="width:28px" role="none presentation"></div>`}" .icon="${this.icon}" .invalid="${this.invalid}" .helper="${this.helper}" helperPersistent> <slot name="icon" slot="leadingIcon"></slot> </ha-textfield> ${this.value?n.dy`<ha-svg-icon role="button" tabindex="-1" aria-label="${(0,l.o)(this.hass?.localize("ui.common.clear"))}" class="clear-button" .path="${"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"}" @click="${this._clearValue}"></ha-svg-icon>`:""} <ha-svg-icon role="button" tabindex="-1" aria-label="${(0,l.o)(this.label)}" aria-expanded="${this.opened?"true":"false"}" class="toggle-button" .path="${this.opened?"M7,15L12,10L17,15H7Z":"M7,10L12,15L17,10H7Z"}" @click="${this._toggleOpen}"></ha-svg-icon> </vaadin-combo-box-light> `}},{kind:"field",key:"_defaultRowRenderer",value(){return e=>n.dy`<ha-list-item> ${this.itemLabelPath?e[this.itemLabelPath]:e} </ha-list-item>`}},{kind:"method",key:"_clearValue",value:function(e){e.stopPropagation(),(0,h.B)(this,"value-changed",{value:void 0})}},{kind:"method",key:"_toggleOpen",value:function(e){this.opened?(this._comboBox?.close(),e.stopPropagation()):this._comboBox?.inputElement.focus()}},{kind:"method",key:"_openedChanged",value:function(e){e.stopPropagation();const t=e.detail.value;if(setTimeout((()=>{this.opened=t}),0),(0,h.B)(this,"opened-changed",{value:e.detail.value}),t){const e=document.querySelector("vaadin-combo-box-overlay");e&&this._removeInert(e),this._observeBody()}else this._bodyMutationObserver?.disconnect(),this._bodyMutationObserver=void 0}},{kind:"method",key:"_observeBody",value:function(){"MutationObserver"in window&&!this._bodyMutationObserver&&(this._bodyMutationObserver=new MutationObserver((e=>{e.forEach((e=>{e.addedNodes.forEach((e=>{"VAADIN-COMBO-BOX-OVERLAY"===e.nodeName&&this._removeInert(e)})),e.removedNodes.forEach((e=>{"VAADIN-COMBO-BOX-OVERLAY"===e.nodeName&&(this._overlayMutationObserver?.disconnect(),this._overlayMutationObserver=void 0)}))}))})),this._bodyMutationObserver.observe(document.body,{childList:!0}))}},{kind:"method",key:"_removeInert",value:function(e){if(e.inert)return e.inert=!1,this._overlayMutationObserver?.disconnect(),void(this._overlayMutationObserver=void 0);"MutationObserver"in window&&!this._overlayMutationObserver&&(this._overlayMutationObserver=new MutationObserver((e=>{e.forEach((e=>{if("inert"===e.attributeName){const t=e.target;t.inert&&(this._overlayMutationObserver?.disconnect(),this._overlayMutationObserver=void 0,t.inert=!1)}}))})),this._overlayMutationObserver.observe(e,{attributes:!0}))}},{kind:"method",key:"_filterChanged",value:function(e){e.stopPropagation(),(0,h.B)(this,"filter-changed",{value:e.detail.value})}},{kind:"method",key:"_valueChanged",value:function(e){e.stopPropagation(),this.allowCustomValue||(this._comboBox._closeOnBlurIsPrevented=!0);const t=e.detail.value;t!==this.value&&(0,h.B)(this,"value-changed",{value:t||void 0})}},{kind:"field",static:!0,key:"styles",value:()=>n.iv`:host{display:block;width:100%}vaadin-combo-box-light{position:relative;--vaadin-combo-box-overlay-max-height:calc(45vh - 56px)}ha-textfield{width:100%}ha-textfield>ha-icon-button{--mdc-icon-button-size:24px;padding:2px;color:var(--secondary-text-color)}ha-svg-icon{color:var(--input-dropdown-icon-color);position:absolute;cursor:pointer}.toggle-button{right:12px;top:-10px;inset-inline-start:initial;inset-inline-end:12px;direction:var(--direction)}:host([opened]) .toggle-button{color:var(--primary-color)}.clear-button{--mdc-icon-size:20px;top:-7px;right:36px;inset-inline-start:initial;inset-inline-end:36px;direction:var(--direction)}`}]}}),n.oi)},73192:function(e,t,i){i.d(t,{R:()=>a});const a=(e,t)=>`https://www.iobroker.net/#${e.language&&e.language.split("-")[0]||"en"}/adapters/adapterref/iobroker.lovelace/README.md#`}}; //# sourceMappingURL=19551.50e50af0fd5cb33b.js.map