1export const __rspack_esm_id=96264;export const __rspack_esm_ids=[96264];export const __webpack_modules__={99201(t,e,i){const a=(t,e=2)=>{let i=""+t;for(let t=1;t<e;t++)i=parseInt(i)<10**t?`0${i}`:i;return i};function s(t){const e=Math.floor(t/1e3/3600),i=Math.floor(t/1e3%3600/60),s=Math.floor(t/1e3%3600%60),o=Math.floor(t%1e3);return e>0?`${e}:${a(i)}:${a(s)}`:i>0?`${i}:${a(s)}`:s>0||o>0?`${s}${o>0?`.${a(o,3)}`:""}`:null}i.d(e,{A:()=>s})},61186(t,e,i){i.a(t,async function(t,a){try{var s=i(25136),o=i(12293),r=t([s,o]);function n(t,e,i){return"month"===t?{formatter:t=>{const a=new Date(t);return 0===a.getMonth()?`{bold|${(0,s.fr)(a,e,i)}}`:(0,s.Wq)(a,e,i)}}:"year"===t?{formatter:t=>(0,s.Pm)(new Date(t),e,i)}:void 0}function h(t,e,i,a){const r=a/60/24,n=new Date(t);if(r>88)return 0===n.getMonth()?`{bold|${(0,s.fr)(n,e,i)}}`:(0,s.Wq)(n,e,i);if(r>35)return 1===n.getDate()?`{bold|${(0,s.sl)(n,e,i)}}`:(0,s.sl)(n,e,i);if(r>7){const t=(0,s.sl)(n,e,i);return 1===n.getDate()?`{bold|${t}}`:t}return r>2?(0,s.gu)(n,e,i):a&&a<5?(0,o.ie)(n,e,i):0===n.getHours()&&0===n.getMinutes()&&0===n.getSeconds()?`{bold|${(0,s.sl)(n,e,i)}}`:(0,o.fU)(n,e,i)}[s,o]=r.then?(await r)():r,i.d(e,{d:()=>n,n:()=>h}),a()}catch(l){a(l)}})},78734(t,e,i){const a=(t,e,i,a)=>{const s=e instanceof HTMLElement&&"rtl"===getComputedStyle(e).direction,o=t+12,r=t-12-a;let n=s?r:o;return(n+a>i||n<0)&&(n=s?o:r),Math.max(0,Math.min(n,i-a))};i.d(e,{},{mJ:(t,e,i,s,o)=>{const[r]=t,[n,h]=o.viewSize,[l,d]=o.contentSize;return[a(r,i,n,l),Math.max(0,Math.min(10,h-d))]},wO:(t,e,i,s,o)=>{const[r,n]=t,[h,l]=o.viewSize,[d,c]=o.contentSize;return[a(r,i,h,d),Math.max(0,Math.min(n-c/2,l-c))]}})},96639(t,e,i){var a=i(28861),s=i(11467),o=i(82476);class r extends s.WF{willUpdate(t){t.has("color")&&(this.style.backgroundColor=this.color)}render(){return s.s6}constructor(...t){super(...t),this.color="",this.rtl=!1}}r.styles=s.AH`:host{vertical-align:middle;border-radius:10px;width:10px;height:10px;margin-inline-start:initial;margin-inline-end:4px;display:inline-block}:host([rtl]){direction:rtl}`,(0,a.Cg)([(0,o.MZ)()],r.prototype,"color",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],r.prototype,"rtl",void 0),r=(0,a.Cg)([(0,o.EM)("ha-chart-tooltip-marker")],r)},97672(t,e,i){i(18111),i(22489),i(7588),i(13579);var a=i(46786),s=i(28202),o=i(55049);const r=t=>{const e=parseFloat(t);return isFinite(e)?e:null},n=[{mode:"heat",action:"heating",cssVar:"--state-climate-heat-color"},{mode:"cool",action:"cooling",cssVar:"--state-climate-cool-color"},{mode:"dry",action:"drying",cssVar:"--state-climate-dry-color"},{mode:"fan_only",action:"fan",cssVar:"--state-climate-fan_only-color"}];function h(t){const{hass:e,computedStyles:i,endTime:h}=t,l=h.getTime();let d=0;const c=t.data,m=[],u=[],p=[];let y=1/0,g=-1/0;const _=t=>{"number"==typeof t&&Number.isFinite(t)&&(t<y&&(y=t),t>g&&(g=t))};if(0===c.length)return;const f=t.names||{},x=t.colors||{};c.forEach((o,h)=>{const c=o.domain,y=f[o.entity_id]||o.name,g=x[o.entity_id];let v=null;const b=[],w=(t,e)=>{e&&(t>l||(b.forEach((i,a)=>{null===e[a]&&v&&null!==v[a]&&i.data.push([t,v[a]]),i.data.push([t,e[a]]),_(e[a])}),v=e))},M=(t,e,s,r=!1)=>{s||(s=(0,a.fI)(d,i),d++),b.push({id:t,data:[],type:"line",cursor:"default",name:e,color:s,symbol:"circle",symbolSize:1,step:"end",sampling:"minmax",animationDurationUpdate:0,lineStyle:{width:r?0:1.5},areaStyle:r?{color:s+"7F"}:void 0,tooltip:{show:!r}}),u.push(o.entity_id),p.push(h)};if("thermostat"===c||"climate"===c||"water_heater"===c){const a=o.states.some(t=>t.attributes?.hvac_action),h=n.map(({mode:t,action:e,cssVar:i})=>({action:e,cssVar:i,isActive:"climate"===c&&a?e=>s.sx[e.attributes?.hvac_action]===t:e=>e.state===t})).filter(({isActive:t})=>o.states.some(t)),l=o.states.some(t=>t.attributes&&t.attributes.target_temp_high!==t.attributes.target_temp_low);M(o.entity_id+"-current_temperature",t.showNames?e.localize("ui.card.climate.current_temperature",{name:y}):e.localize("component.climate.entity_component._.state_attributes.current_temperature.name"));for(const{action:a,cssVar:s}
1of h)M(`${o.entity_id}-${a}`,t.showNames?e.localize(`ui.card.climate.${a}`,{name:y}):e.localize(`component.climate.entity_component._.state_attributes.hvac_action.state.${a}`),i.getPropertyValue(s),!0);l?(M(o.entity_id+"-target_temperature_mode",t.showNames?e.localize("ui.card.climate.target_temperature_mode",{name:y,mode:e.localize("ui.card.climate.high")}):e.localize("component.climate.entity_component._.state_attributes.target_temp_high.name")),M(o.entity_id+"-target_temperature_mode_low",t.showNames?e.localize("ui.card.climate.target_temperature_mode",{name:y,mode:e.localize("ui.card.climate.low")}):e.localize("component.climate.entity_component._.state_attributes.target_temp_low.name"))):M(o.entity_id+"-target_temperature",t.showNames?e.localize("ui.card.climate.target_temperature_entity",{name:y}):e.localize("component.climate.entity_component._.state_attributes.temperature.name")),o.states.forEach(t=>{if(!t.attributes)return;const e=r(t.attributes.current_temperature),i=[e];for(const{isActive:a}of h)i.push(a(t)?e:null);if(l){const e=r(t.attributes.target_temp_high),a=r(t.attributes.target_temp_low);i.push(e,a),w(t.last_changed,i)}else{const e=r(t.attributes.temperature);i.push(e),w(t.last_changed,i)}})}else if("humidifier"===c){const a=o.states.some(t=>t.attributes?.action),s=o.states.some(t=>t.attributes?.current_humidity),n=a&&o.states.some(t=>"humidifying"===t.attributes?.action),h=a&&o.states.some(t=>"drying"===t.attributes?.action);M(o.entity_id+"-target_humidity",t.showNames?e.localize("ui.card.humidifier.target_humidity_entity",{name:y}):e.localize("component.humidifier.entity_component._.state_attributes.humidity.name")),s&&M(o.entity_id+"-current_humidity",t.showNames?e.localize("ui.card.humidifier.current_humidity_entity",{name:y}):e.localize("component.humidifier.entity_component._.state_attributes.current_humidity.name")),n?M(o.entity_id+"-humidifying",t.showNames?e.localize("ui.card.humidifier.humidifying",{name:y}):e.localize("component.humidifier.entity_component._.state_attributes.action.state.humidifying"),i.getPropertyValue("--state-humidifier-on-color"),!0):h?M(o.entity_id+"-drying",t.showNames?e.localize("ui.card.humidifier.drying",{name:y}):e.localize("component.humidifier.entity_component._.state_attributes.action.state.drying"),i.getPropertyValue("--state-humidifier-on-color"),!0):M(o.entity_id+"-on",t.showNames?e.localize("ui.card.humidifier.on_entity",{name:y}):e.localize("component.humidifier.entity_component._.state.on"),void 0,!0),o.states.forEach(t=>{if(!t.attributes)return;const e=r(t.attributes.humidity),i=s?r(t.attributes?.current_humidity):e,a=[e];s&&a.push(i),n?a.push("humidifying"===t.attributes?.action?i:null):h?a.push("drying"===t.attributes?.action?i:null):a.push("on"===t.state?i:null),w(t.last_changed,a)})}else{let t,e;M(o.entity_id,y,g);let i=null;const a=a=>{const s=r(a.state),o=a.last_changed;if(null!==s&&i){w(i,[(i-e)/(o-e)*(s-t)+t]),w(i+1,[null]),w(o,[s]),e=o,t=s,i=null}else null!==s&&null===i?(w(o,[s]),e=o,t=s):null===s&&null===i&&void 0!==t&&(i=o)};if(o.statistics){const t=o.states&&0!==o.states.length?o.states[0].last_changed:0;for(const e of o.statistics){if(t&&e.last_changed>=t)break;a(e)}}o.states.forEach(t=>{a(t)}),null!==i&&w(i,[null])}w(l,v);const C=t.now.getTime();if("sensor"===c&&C-l<=1e3&&1===b.length){const t=e.states[o.entity_id],i=t?r(t.state):null;null!==i&&(b[0].data.push([C,i]),_(i))}Array.prototype.push.apply(m,b)});const v=[];return m.forEach((t,e)=>{const i=p[e],a=c[i];if(!a.statistics||0===a.statistics.length)return;const s=a.states[0]?.last_changed??h.getTime();v.push({show:!1,seriesIndex:e,dimension:0,pieces:[{max:s-.01,colorAlpha:.5},{min:s,colorAlpha:1}]})}),{datasets:m,entityIds:u,datasetToDataIndex:p,visualMap:v.length>0?v:void 0,yAxisFractionDigits:(0,o.G)(y,g)}}i.d(e,{$:()=>h},{Y:n})},27218(t,e,i){i.a(t,async function(t,e){try{i(18111),i(22489),i(7588),i(61701),i(13579),i(45367),i(92731),i(17642),i(15024),i(31698);var a=i(28861),s=i(11467),o=i(82476),r=i(52973),n=i(53821),h=i(75206),l=i(78734),d=(i(96639),i(97672)),c=i(55049),m=i(87258),u=i(58541),p=i(6806),y=i(62228),g=i(85482),_=i(3701),f=t([h,_,m,u]);[h,_,m,u]=f.then?(await f)():f;const x=25,v=["-current_temperature","-target_temperature","-target_temperature_mode","-target_temperature_mode_low",...d.Y.map(t=>`-${t.action}`),"-current_humidity","-target_humidity","-humidifying","-on"];class b extends s.WF{render(){return s.qy` <ha-chart-base .hass=${this.hass} .data=${this._chartData} .options=${this._chartOptions} .height=${this.height} style=${(0,r.W)({height:this.height})}; @dataset-hidden=${this._datasetHidden} @dataset-unhidden=${this._datasetUnhidden}
1 @chart-zoom=${this._handleDataZoom} .expandLegend=${this.expandLegend} .hideResetButton=${this.hideResetButton} .clickLabelForMoreInfo=${this.clickForMoreInfo} @legend-label-click=${this._handleLegendLabelClick}></ha-chart-base> `}_datasetHidden(t){this._hiddenStats.add(t.detail.id)}_datasetUnhidden(t){this._hiddenStats.delete(t.detail.id)}zoom(t,e){this.shadowRoot.querySelector("ha-chart-base").zoom(t,e,!0)}_handleDataZoom(t){(0,y.r)(this,"chart-zoom-with-index",{start:t.detail.start??0,end:t.detail.end??100,chartIndex:this.chartIndex})}_handleLegendLabelClick(t){const e=t.detail.id;let i=e;if(!this.hass.states[i])for(const t of v)if(e.endsWith(t)){i=e.slice(0,-t.length);break}this.hass.states[i]&&(0,y.r)(this,"hass-more-info",{entityId:i})}willUpdate(t){if((t.has("data")||t.has("startTime")||t.has("endTime")||this._chartTime<new Date(this.endTime.getTime()-3e5))&&this._generateData(),!this.hasUpdated||t.has("showNames")||t.has("startTime")||t.has("endTime")||t.has("unit")||t.has("logarithmicScale")||t.has("minYAxis")||t.has("maxYAxis")||t.has("fitYData")||t.has("paddingYAxis")||t.has("_visualMap")||t.has("_yWidth")||t.has("hass")&&this._hasEntityStatesChanged(t.get("hass"))){const t=(0,n.qC)(this.hass.language,this.hass.translationMetadata.translations);let e=this.minYAxis,i=this.maxYAxis;"number"==typeof e?this.fitYData&&(e=({min:t})=>Math.min(this._roundYAxis(t,Math.floor),this.minYAxis)):this.logarithmicScale&&(e=({min:t})=>{const e=t>0?.95*t:1.05*t;return this._roundYAxis(e,Math.floor)}),"number"==typeof i?this.fitYData&&(i=({max:t})=>Math.max(this._roundYAxis(t,Math.ceil),this.maxYAxis)):this.logarithmicScale&&(i=({max:t})=>{const e=t>0?1.05*t:.95*t;return this._roundYAxis(e,Math.ceil)}),this._chartOptions={xAxis:{type:"time",min:this.startTime,max:this.endTime},yAxis:{type:this.logarithmicScale?"log":"value",name:this.unit,...(0,c.O)({min:this._clampYAxis(e),max:this._clampYAxis(i),onFractionDigits:t=>{t!==this._yAxisFractionDigits&&(this._yAxisFractionDigits=t,this._yWidth=0)}}),position:t?"right":"left",scale:!0,nameGap:2,nameTextStyle:{align:"left"},axisLine:{show:!1},axisLabel:{margin:5,formatter:this._formatYAxisLabel}},legend:{type:"custom",show:this.showNames,data:this._chartData.map((t,e)=>({dataset:t,entityId:this._entityIds[e]})).filter(t=>!t.dataset.areaStyle).map(t=>{const e=this.hass.states[t.entityId];let i;if(e){const a=t.dataset.id;if(a?.endsWith("-current_temperature")||a?.endsWith("-target_temperature")||a?.endsWith("-target_temperature_mode")||a?.endsWith("-target_temperature_mode_low")){let t;t=a.endsWith("-current_temperature")?"current_temperature":a.endsWith("-target_temperature_mode_low")?"target_temp_low":a.endsWith("-target_temperature_mode")?"target_temp_high":"temperature",i=(0,_.computeAttributeValueDisplay)(this.hass.localize,e,this.hass.locale,this.hass.config,this.hass.entities,t)}void 0===i&&(i=this.hass.formatEntityState(e))}return{id:t.dataset.id,name:t.dataset.name,value:i}})},grid:{top:15,left:t?1:Math.max(this.paddingYAxis,this._yWidth),right:t?Math.max(this.paddingYAxis,this._yWidth):1,bottom:20},visualMap:this._visualMap,tooltip:{trigger:"axis",renderMode:"html",position:l.mJ,confine:!0,formatter:this._renderTooltip}}}}_hasEntityStatesChanged(t){return this._entityIds.some(e=>this.hass.states[e]?.state!==t.states[e]?.state)}_generateData(){if(0===this.data.length)return;this._chartTime=new Date;const t=(0,d.$)({hass:this.hass,data:this.data,endTime:this.endTime,names:this.names,colors:this.colors,showNames:this.showNames,computedStyles:getComputedStyle(this),now:new Date});t&&(this._yAxisFractionDigits=t.yAxisFractionDigits,this._chartData=t.datasets,this._entityIds=t.entityIds,this._datasetToDataIndex=t.datasetToDataIndex,this._visualMap=t.visualMap)}_clampYAxis(t){if(this.logarithmicScale){if("number"==typeof t)return Math.max(t,Number.EPSILON);if("function"==typeof t)return e=>Math.max(t(e),Number.EPSILON)}return t}_roundYAxis(t,e){return Math.abs(t)<1?t:e(t)}constructor(...t){super(...t),this.data=[],this.showNames=!0,this.clickForMoreInfo=!0,this.paddingYAxis=0,this.logarithmicScale=!1,this.fitYData=!1,this._chartData=[],this._entityIds=[],this._datasetToDataIndex=[],this._hiddenStats=new Set,this._yWidth=x,this._chartTime=new Date,this._yAxisFractionDigits=1,this._renderTooltip=t=>{const e=t[0].axisValue,i=(0,m.yg)(new Date(e),this.hass.locale,this.hass.config),a=[],o=new Map;for(const e of t)o.has(e.seriesIndex)||o.set(e.seriesIndex,e);this._chartData.forEach((t,i)=>{if(!1===t.tooltip?.show||this._hiddenStats.has(t.id))return;const s=o.get(i);if(s)return void a.push(s);let r;const n=t.data||[];for(let t=n.length-1;t>=0;t--){const i=n[t];if(i&&i[0]<=e&&"number"==typeof i[1]){r=i;break}}r&&a.push({seriesName:t.name,seriesIndex:i,value:r,color:t.color})});const r=this.unit?`${(0,g.A)(this.unit,this.hass.locale)}${this.unit}`:"";return s.qy`${i}${a.map(t=>{const e=this._entityIds[t.seriesIndex],i=this.hass.states[e],a=this.hass.entities[e],o=String(t.value[1]),n=i?this.hass.formatEntityState(i,o):`${(0,u.ZV)(o,this.hass.locale,(0,u.ZQ)(void 0,a))}${r}`,h=this._datasetToDataIndex[t.seriesIndex],l=this.data[h];let d=s.s6;if(l.statistics&&l.statistics.length>0){const e=0===l.states.length||t.value[0]<l.states[0].last_changed?this.hass.localize("ui.components.history_charts.source_stats"):this.hass.localize("ui.components.history_charts.source_history");d=s.qy`<br/>${"Â ".repeat(5)}${e}`}return s.qy`<br/><ha-chart-tooltip-marker .color=${String(t.color??"")}></ha-chart-tooltip-marker> ${t.seriesName?s.qy`${t.seriesName}: `:s.s6}${n}${d}`})}`},this._formatYAxisLabel=t=>{const e=(0,u.ZV)(t,this.hass.locale,{minimumFractionDigits:0===t?0:this._yAxisFractionDigits,maximumFractionDigits:this._yAxisFractionDigits}),i=Math.max((0,p.W)(e,12)+5,x);return i>this._yWidth&&(this._yWidth=i,(0,y.r)(this,"y-width-changed",{value:this._yWidth,chartIndex:this.chartIndex})),e}}}(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"data",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"names",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"colors",void 0),(0,a.Cg)([(0,o.MZ)()],b.prototype,"unit",void 0),(0,a.Cg)([(0,o.MZ)()],b.prototype,"identifier",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"show-names",type:Boolean})],b.prototype,"showNames",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"click-for-more-info",type:Boolean})],b.prototype,"clickForMoreInfo",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"startTime",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"endTime",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"paddingYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"chartIndex",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"logarithmic-scale",type:Boolean})],b.prototype,"logarithmicScale",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"minYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],b.prototype,"maxYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"fit-y-data",type:Boolean})],b.prototype,"fitYData",void 0),(0,a.Cg)([(0,o.MZ)({type:String})],b.prototype,"height",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"expand-legend",type:Boolean})],b.prototype,"expandLegend",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"hide-reset-button",type:Boolean})],b.prototype,"hideResetButton",void 0),(0,a.Cg)([(0,o.wk)()],b.prototype,"_chartData",void 0),(0,a.Cg)([(0,o.wk)()],b.prototype,"_entity
1Ids",void 0),(0,a.Cg)([(0,o.wk)()],b.prototype,"_chartOptions",void 0),(0,a.Cg)([(0,o.wk)()],b.prototype,"_yWidth",void 0),(0,a.Cg)([(0,o.wk)()],b.prototype,"_visualMap",void 0),b=(0,a.Cg)([(0,o.EM)("state-history-chart-line")],b),e()}catch(t){e(t)}})},93451(t,e,i){i.a(t,async function(t,e){try{i(18111),i(20116),i(7588);var a=i(28861),s=i(11467),o=i(82476),r=i(87258),n=i(99201),h=i(53821),l=i(75206),d=i(78734),c=(i(96639),i(8429)),m=i(51141),u=i(72411),p=i(61717),y=i(6806),g=i(62228),_=t([l,r]);[l,r]=_.then?(await _)():_;const f=30,x=30;class v extends s.WF{render(){return s.qy` <ha-chart-base .hass=${this.hass} .options=${this._chartOptions} .height=${`${this.data.length*f+x}px`} .data=${this._chartData} small-controls @chart-click=${this._handleChartClick} @chart-zoom=${this._handleDataZoom} .hideResetButton=${this.hideResetButton}></ha-chart-base> `}willUpdate(t){this.isConnected&&(t.has("startTime")||t.has("endTime")||t.has("data")||this._chartTime<new Date(this.endTime.getTime()-3e5))&&this._generateData(),(!this.hasUpdated||t.has("startTime")||t.has("endTime")||t.has("showNames")||t.has("paddingYAxis")||t.has("_yWidth"))&&this._createOptions()}_createOptions(){const t=this.narrow,e=this.chunked||this.showNames,i=t?105:185,a=e?Math.max(this.paddingYAxis,this._yWidth):0,s=(0,h.qC)(this.hass.language,this.hass.translationMetadata.translations);this._chartOptions={xAxis:{type:"time",min:this.startTime,max:this.endTime,axisTick:{show:!0},splitLine:{show:!1}},yAxis:{type:"category",inverse:!0,position:s?"right":"left",triggerEvent:!0,axisTick:{show:!1},axisLine:{show:!1},axisLabel:{show:e,width:a,overflow:"truncate",margin:5,formatter:t=>{const e=this._chartData.find(e=>e.id===t)?.name,a=e?Math.min((0,y.W)(e,12)+5,i):0;return a>this._yWidth&&(this._yWidth=a,(0,g.r)(this,"y-width-changed",{value:this._yWidth,chartIndex:this.chartIndex})),e},hideOverlap:!0}},grid:{top:10,bottom:x,left:s?1:a,right:s?a:1},tooltip:{renderMode:"html",position:d.wO,confine:!0,formatter:this._renderTooltip}}}zoom(t,e){this.shadowRoot.querySelector("ha-chart-base").zoom(t,e,!0)}_handleDataZoom(t){(0,g.r)(this,"chart-zoom-with-index",{start:t.detail.start??0,end:t.detail.end??100,chartIndex:this.chartIndex})}_generateData(){const t=getComputedStyle(this);let e=this.data;e||(e=[]),this._chartTime=new Date;const i=this.startTime,a=this.endTime,s=[],o=this.names||{};e.forEach(e=>{let r,n=null,h=null,l=i;const d=this.showNames?o[e.entity_id]||e.name||e.entity_id:"",m=[];if(e.data.forEach(i=>{let s=i.state;if(s||(s=null),!(new Date(i.last_changed)>a))if(null===n)n=s,h=i.state_localize,l=new Date(i.last_changed);else if(s!==n){r=new Date(i.last_changed);const a=(0,c.c)(n,t,this.hass.states[e.entity_id]);m.push({value:[e.entity_id,l,r,h,a,(0,u.EP)((0,p.xp)(a))>.5?"#000":"#fff"],itemStyle:{color:a}}),n=s,h=i.state_localize,l=r}}),null!==n){const i=(0,c.c)(n,t,this.hass.states[e.entity_id]);m.push({value:[e.entity_id,l,a,h,i,(0,u.EP)((0,p.xp)(i))>.5?"#000":"#fff"],itemStyle:{color:i}})}s.push({id:e.entity_id,data:m,name:d,dimensions:["id","start","end","name","color","textColor"],type:"custom",encode:{x:[1,2],y:0,itemName:3},renderItem:this._renderItem,progressive:0})}),this._chartData=s}_handleChartClick(t){if("axisLabel"===t.detail.targetType){const e=this._chartData[t.detail.dataIndex];e&&(0,g.r)(this,"hass-more-info",{entityId:e.id})}}constructor(...t){super(...t),this.data=[],this.narrow=!1,this.showNames=!0,this.clickForMoreInfo=!0,this.chunked=!1,this.paddingYAxis=0,this._chartData=[],this._yWidth=0,this._chartTime=new Date,this._renderItem=(t,e)=>{const i=e.value(0),a=e.coord([e.value(1),i]),s=e.coord([e.value(2),i]),o=t.coordSys,r=m.default.graphic.clipRectByRect({x:a[0],y:a[1]-10,width:s[0]-a[0],height:20},{x:o.x,y:o.y,width:o.width,height:o.height});if(!r)return null;const n={type:"rect",transition:"shape",shape:r,style:{fill:e.value(4)}},h=e.value(3).replaceAll("\n"," ");return(0,y.W)(h,12)<r.width-8?{type:"group",children:[n,{type:"text",style:{...r,x:r.x+4,text:h,fill:e.value(5),fontSize:12,lineHeight:r.height}}]}:n},this._renderTooltip=t=>{const{value:e,name:i,seriesName:a,color:o}=Array.isArray(t)?t[0]:t,l=e[2]-e[1],d=`${this.hass.localize("ui.components.history_charts.duration")}: ${(0,n.A)(l)}`,c=(0,h.qC)(this.hass.language,this.hass.translationMetadata.translations);return s.qy`${a?s.qy`<h4 style="text-align:center;margin:0">${a}</h4>`:s.s6}<ha-chart-tooltip-marker .color=${String(o??"")} .rtl=${c}></ha-chart-tooltip-marker>${i}<br/>${(0,r.yg)(new Date(e[1]),this.hass.locale,this.hass.config)}<br/>${(0,r.yg)(new Date(e[2]),this.hass.locale,this.hass.config)}<br/>${d}`}}}v.styles=s.AH`ha-chart-base{--chart-max-height:none}`,(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"data",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],v.prototype,"narrow",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"names",void 0),(0,a.Cg)([(0,o.MZ)()],v.prototype,"unit",void 0),(0,a.Cg)([(0,o.MZ)()],v.prototype,"identifier",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"show-names",type:Boolean})],v.prototype,"showNames",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"click-for-more-info",type:Boolean})],v.prototype,"clickForMoreInfo",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],v.prototype,"chunked",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"startTime",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"endTime",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"paddingYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],v.prototype,"chartIndex",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"hide-reset-button",type:Boolean})],v.prototype,"hideResetButton",void 0),(0,a.Cg)([(0,o.wk)()],v.prototype,"_chartData",void 0),(0,a.Cg)([(0,o.wk)()],v.prototype,"_chartOptions",void 0),(0,a.Cg)([(0,o.wk)()],v.prototype,"_yWidth",void 0),v=(0,a.Cg)([(0,o.EM)("state-history-chart-timeline")],v),e()}catch(t){e(t)}})},12678(t,e,i){i.a(t,async function(t,e){try{i(74423),i(18111),i(7588),i(61701),i(18237);var a=i(28861),s=i(11467),o=i(82476),r=i(5399),n=i(25807),h=i(95921),l=i(69595),d=(i(47551),i(27218)),c=i(93451),m=t([l,d,c]);[l,d,c]=m.then?(await m)():m;const u="M12,4C14.1,4 16.1,4.8 17.6,6.3C20.7,9.4 20.7,14.5 17.6,17.6C15.8,19.5 13.3,20.2 10.9,19.9L11.4,17.9C13.1,18.1 14.9,17.5 16.2,16.2C18.5,13.9 18.5,10.1 16.2,7.7C15.1,6.6 13.5,6 12,6V10.6L7,5.6L12,0.6V4M6.3,17.6C3.7,15 3.3,11 5.1,7.9L6.6,9.4C5.5,11.6 5.9,14.4 7.8,16.2C8.3,16.7 8.9,17.1 9.6,17.4L9,19.4C8,19 7.1,18.4 6.3,17.6Z",p=10,y=(t,e)=>t.reduce((t,i,a)=>{const s=Math.floor(a/e);
1return t[s]||(t[s]=[]),t[s].push(i),t},[]);class g extends s.WF{render(){if(!(0,r.x)(this.hass.config,"history"))return s.qy`<div class="info"> ${this.hass.localize("ui.components.history_charts.history_disabled")} </div>`;if(this.isLoadingData&&!this.historyData)return s.qy`<div class="info"> ${this.hass.localize("ui.components.history_charts.loading_history")} </div>`;if(this._isHistoryEmpty())return s.qy`<div class="info"> ${this.hass.localize("ui.components.history_charts.no_history_found")} </div>`;const t=this.historyData.timeline.length?(this.virtualize?y(this.historyData.timeline,p):[this.historyData.timeline]).concat(this.historyData.line):this.historyData.line;return this._chartCount=t.length,s.qy` ${this.virtualize?s.qy`<div class="container ha-scrollbar" @scroll=${this._saveScrollPos}> <lit-virtualizer scroller class="ha-scrollbar" .items=${t} .renderItem=${this._renderHistoryItem}> </lit-virtualizer> </div>`:s.qy`${t.map((t,e)=>this._renderHistoryItem(t,e))}`} ${this.syncCharts&&this._hasZoomedCharts?s.qy`<ha-button size="l" class="reset-button" @click=${this._handleGlobalZoomReset}> <ha-svg-icon slot="start" .path=${u}></ha-svg-icon> ${this.hass.localize("ui.components.history_charts.zoom_reset")} </ha-button>`:s.s6} `}shouldUpdate(t){return(1!==t.size||!t.has("hass"))&&(1!==t.size||!t.has("_maxYWidth")||t.get("_maxYWidth")!==this._maxYWidth)}willUpdate(t){if(this.hasUpdated||(0,h.i)(),[...t.keys()].some(t=>!["_maxYWidth","_childYWidths","_chartCount"].includes(t))){const t=new Date;if(this._computedEndTime=this.upToNow||!this.endTime||this.endTime>t?t:this.endTime,this.startTime)this._computedStartTime=this.startTime;else if(this.hoursToShow)this._computedStartTime=new Date((new Date).getTime()-3600*this.hoursToShow*1e3);else{let t=(this.historyData?.timeline??[]).reduce((t,e)=>Math.min(t,new Date(e.data[0].last_changed).getTime()),(new Date).getTime());t=(this.historyData?.line??[]).reduce((t,e)=>Math.min(t,e.data.reduce((t,e)=>Math.min(t,new Date(e.states[0].last_changed).getTime()),t)),t),this._computedStartTime=new Date(t)}}}updated(t){t.has("_chartCount")&&this._chartCount<this._childYWidths.length&&(this._childYWidths.length=this._chartCount,this._maxYWidth=Math.max(...Object.values(this._childYWidths),0))}_yWidthChanged(t){this._childYWidths[t.detail.chartIndex]=t.detail.value,this._maxYWidth=Math.max(...Object.values(this._childYWidths),0)}_handleTimelineSync(t){if(!this.syncCharts||this._isSyncing)return;const{start:e,end:i,chartIndex:a}=t.detail;this._hasZoomedCharts=0!==e||100!==i,this._syncZoomToAllCharts(e,i,a)}_syncZoomToAllCharts(t,e,i){this._isSyncing=!0,requestAnimationFrame(()=>{this._chartComponents.forEach((a,s)=>{s!==i&&"zoom"in a&&a.zoom(t,e)}),this._isSyncing=!1})}_handleGlobalZoomReset(){this._hasZoomedCharts=!1,this._isSyncing=!0,requestAnimationFrame(()=>{this._chartComponents.forEach(t=>{const e=t.renderRoot?.querySelector("ha-chart-base");e&&e.chart&&e.zoom(0,100)}),this._isSyncing=!1})}_isHistoryEmpty(){const t=!this.historyData||!this.historyData.timeline||!this.historyData.line||0===this.historyData.timeline.length&&0===this.historyData.line.length;return!this.isLoadingData&&t}_saveScrollPos(t){this._savedScrollPos=t.target.scrollTop}constructor(...t){super(...t),this.narrow=!1,this.virtualize=!1,this.upToNow=!1,this.showNames=!0,this.clickForMoreInfo=!0,this.isLoadingData=!1,this.logarithmicScale=!1,this.fitYData=!1,this.syncCharts=!1,this._maxYWidth=0,this._childYWidths=[],this._chartCount=0,this._hasZoomedCharts=!1,this._isSyncing=!1,this._renderHistoryItem=(t,e)=>t&&void 0!==e?Array.isArray(t)?s.qy`<div class="entry-container timeline"> <state-history-chart-timeline .hass=${this.hass} .data=${t} .startTime=${this._computedStartTime} .endTime=${this._computedEndTime} .showNames=${this.showNames} .names=${this.names} .narrow=${this.narrow} .chunked=${this.virtualize} .paddingYAxis=${this._maxYWidth} .chartIndex=${e} .clickForMoreInfo=${this.clickForMoreInfo} @y-width-changed=${this._yWidthChanged} @chart-zoom-with-index=${this._handleTimelineSync} ?hide-reset-button=${this.syncCharts}></state-history-chart-timeline> </div> `:s.qy`<div class="entry-container line"> <state-history-chart-line .hass=${this.hass} .unit=${t.unit} .data=${t.data} .identifier=${t.identifier} .showNames=${this.showNames} .startTime=${this._computedStartTime} .endTime=${this._computedEndTime} .paddingYAxis=${this._maxYWidth} .names=${this.names} .colors=${this.colors} .chartIndex=${e} .clickForMoreInfo=${this.clickForMoreInfo} .logarithmicScale=${this.logarithmicScale} .minYAxis=${this.minYAxis} .maxYAxis=${this.maxYAxis} .fitYData=${this.fitYData} @y-width-changed=${this._yWidthChanged}
1 @chart-zoom-with-index=${this._handleTimelineSync} .height=${this.virtualize?void 0:this.height} .expandLegend=${this.expandLegend} ?hide-reset-button=${this.syncCharts}></state-history-chart-line> </div> `:s.qy``}}g.styles=s.AH`:host{flex-direction:column;min-height:60px;display:flex}:host([virtualize]){height:100%}.info{text-align:center;color:var(--secondary-text-color);line-height:60px}.container{max-height:var(--history-max-height)}.entry-container{width:100%;overflow:visible}.entry-container.line{flex:1;padding-top:8px}.entry-container:hover{z-index:1}:host([virtualize]) .entry-container{padding-left:1px;padding-right:1px;padding-inline:1px}.entry-container.timeline:first-child{margin-top:var(--timeline-top-margin)}.entry-container:not(:first-child){border-top:2px solid var(--divider-color);margin-top:16px}.container,lit-virtualizer{width:100%;height:100%}lit-virtualizer{contain:size layout!important}state-history-chart-timeline,state-history-chart-line{width:100%}.reset-button{bottom:calc(24px + var(--safe-area-inset-bottom));right:calc(24px + var(--safe-area-inset-bottom));z-index:1;--ha-button-box-shadow:var(--ha-box-shadow-l);position:fixed}`,(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"historyData",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],g.prototype,"narrow",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"names",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"colors",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],g.prototype,"virtualize",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"endTime",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"startTime",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean,attribute:"up-to-now"})],g.prototype,"upToNow",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"hoursToShow",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"show-names",type:Boolean})],g.prototype,"showNames",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"click-for-more-info",type:Boolean})],g.prototype,"clickForMoreInfo",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"is-loading-data",type:Boolean})],g.prototype,"isLoadingData",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"logarithmic-scale",type:Boolean})],g.prototype,"logarithmicScale",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"minYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"maxYAxis",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"fit-y-data",type:Boolean})],g.prototype,"fitYData",void 0),(0,a.Cg)([(0,o.MZ)({type:String})],g.prototype,"height",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"expand-legend",type:Boolean})],g.prototype,"expandLegend",void 0),(0,a.Cg)([(0,o.MZ)({attribute:"sync-charts",type:Boolean})],g.prototype,"syncCharts",void 0),(0,a.Cg)([(0,o.wk)()],g.prototype,"_maxYWidth",void 0),(0,a.Cg)([(0,o.wk)()],g.prototype,"_childYWidths",void 0),(0,a.Cg)([(0,o.wk)()],g.prototype,"_chartCount",void 0),(0,a.Cg)([(0,o.wk)()],g.prototype,"_hasZoomedCharts",void 0),(0,a.Cg)([(0,o.YG)("state-history-chart-line, state-history-chart-timeline")],g.prototype,"_chartComponents",void 0),(0,a.Cg)([(0,n.a)(".container")],g.prototype,"_savedScrollPos",void 0),(0,a.Cg)([(0,o.Ls)({passive:!0})],g.prototype,"_saveScrollPos",null),g=(0,a.Cg)([(0,o.EM)("state-history-charts")],g),e()}catch(t){e(t)}})},55049(t,e,i){function a(t,e,i=!1){const a=i?Math.min(t,0):t,s=i?Math.max(e,0):e,o=s-a;if(!Number.isFinite(o)||o<=0)return 1;if(o<=1e-10*Math.max(Math.abs(a),Math.abs(s)))return 1;const r=o/5,n=Math.floor(Math.log10(r)),h=r/10**n>=7?n+1:n;return Math.max(0,-h)}const s=(t,e)=>"function"==typeof t?t(e):t;function o(t){const{min:e,max:i,includeZero:o,onFractionDigits:r}=t;return{min:t=>{const n=s(e,t),h=s(i,t),l=n??t.min,d=h??t.max;return r(a(l,d,o)),n},max:t=>s(i,t)}}i.d(e,{G:()=>a,O:()=>o})},51141(t,e,i){i.d(e,{W:()=>x.A,default:()=>s});
1var a=i(81525),s=i(81496),o=i(93707),r=i(34522),n=i(6329),h=i(53095),l=i(74004),d=i(34985),c=i(29638),m=i(40883),u=i(11983),p=i(86293),y=i(91632),g=i(91365),_=i(61402),f=i(1067),x=i(32782),v=i(29305);const b=v.A.prototype.filterData;v.A.prototype.filterData=function(t,e){if("boundaryFilter"!==t.get("filterMode"))return void b.call(this,t,e);if(!this.hostedBy(t))return;const i=this._dimName,a=this._window.value,s=this.getTargetSeriesModels();for(const t of s){const e=t.getData(),s=e.mapDimensionsAll(i);if(!s.length)continue;const o=e.getStore(),r=e.getDimensionIndex(s[0]),n=e.count();let h=-1,l=-1;for(let t=0;t<n;t++){const e=o.get(r,t);isNaN(e)||(e<a[0]?h=t:e>a[1]&&-1===l&&(l=t))}e.filterSelf(t=>{if(t===h||t===l)return!0;const e=o.get(r,t);return!isNaN(e)&&e>=a[0]&&e<=a[1]});for(const t of s)e.setApproximateExtent(a,t)}},a.Y([o.a,r.a,n.a,h.a,l.a,d.a,c.a,m.a,u.a,p.a,g._,_.i,f.a,y.a])},6806(t,e,i){let a;function s(t,e,i="Roboto, Noto, sans-serif"){a||(a=document.createElement("canvas"));const s=a.getContext("2d");if(!s)return 0;s.font=`${e}px ${i}`;const o=s.measureText(t);return Math.ceil(Math.max(o.actualBoundingBoxRight+o.actualBoundingBoxLeft,o.width))}i.d(e,{W:()=>s})}}; 2//# sourceMappingURL=96264.4fe88a75333eb280.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.