From 879e0ed3d5e701e252fdeed3454e3c0bca1131d2 Mon Sep 17 00:00:00 2001 From: Petar Petrov Date: Mon, 21 Jul 2025 11:57:13 +0300 Subject: [PATCH] Show more details in statistics legend when only 1 entity (#26241) --- src/components/chart/statistics-chart.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/chart/statistics-chart.ts b/src/components/chart/statistics-chart.ts index 341decfd3d..a92ae83a50 100644 --- a/src/components/chart/statistics-chart.ts +++ b/src/components/chart/statistics-chart.ts @@ -97,7 +97,7 @@ export class StatisticsChart extends LitElement { @state() private _chartData: (LineSeriesOption | BarSeriesOption)[] = []; - @state() private _legendData: NonNullable = []; + @state() private _legendData: CustomLegendOption["data"]; @state() private _statisticIds: string[] = []; @@ -184,11 +184,17 @@ export class StatisticsChart extends LitElement { } private _datasetHidden(ev: CustomEvent) { + if (!this._legendData) { + return; + } this._hiddenStats.add(ev.detail.id); this.requestUpdate("_hiddenStats"); } private _datasetUnhidden(ev: CustomEvent) { + if (!this._legendData) { + return; + } this._hiddenStats.delete(ev.detail.id); this.requestUpdate("_hiddenStats"); } @@ -617,9 +623,13 @@ export class StatisticsChart extends LitElement { }); this._chartData = totalDataSets; - if (legendData.length !== this._legendData.length) { + if (legendData.length !== this._legendData?.length) { // only update the legend if it has changed or it will trigger options update - this._legendData = legendData.map(({ id, name }) => ({ id, name })); + this._legendData = + legendData.length > 1 + ? legendData.map(({ id, name }) => ({ id, name })) + : // if there is only one entity, let the base chart handle the legend + undefined; } this._statisticIds = statisticIds; }