From 752bc192cd11b96b74cc008237fda171b0eab0ee Mon Sep 17 00:00:00 2001 From: karwosts <32912880+karwosts@users.noreply.github.com> Date: Wed, 21 Jun 2023 08:10:00 -0700 Subject: [PATCH] Fix types selection for statistics-graph-card (#16988) --- src/data/recorder.ts | 4 ++-- .../hui-statistics-graph-card-editor.ts | 16 ++++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/data/recorder.ts b/src/data/recorder.ts index 23752d16f2..32b471f4a7 100644 --- a/src/data/recorder.ts +++ b/src/data/recorder.ts @@ -260,10 +260,10 @@ export const calculateStatisticsSumGrowth = ( export const statisticsHaveType = ( stats: StatisticValue[], type: StatisticType -) => stats.some((stat) => stat[type] !== null); +) => stats.some((stat) => stat[type] !== undefined && stat[type] !== null); const mean_stat_types: readonly StatisticType[] = ["mean", "min", "max"]; -const sum_stat_types: readonly StatisticType[] = ["sum"]; +const sum_stat_types: readonly StatisticType[] = ["sum", "state", "change"]; export const statisticsMetaHasType = ( metadata: StatisticsMetaData, diff --git a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts index e16a629b8f..8cb52183c5 100644 --- a/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts +++ b/src/panels/lovelace/editor/config-elements/hui-statistics-graph-card-editor.ts @@ -187,7 +187,7 @@ export class HuiStatisticsGraphCardEditor ), disabled: !metaDatas || - !metaDatas.every((metaData) => + !metaDatas.some((metaData) => statisticsMetaHasType( metaData, supportedStatTypeMap[stat_type] @@ -246,12 +246,10 @@ export class HuiStatisticsGraphCardEditor ); const configured_stat_types = this._config!.stat_types ? ensureArray(this._config.stat_types) - : stat_types.filter( - (stat_type) => - stat_type !== "change" && - this._metaDatas?.every((metaData) => - statisticsMetaHasType(metaData, stat_type) - ) + : stat_types.filter((stat_type) => + this._metaDatas?.some((metaData) => + statisticsMetaHasType(metaData, stat_type) + ) ); const data = { chart_type: "line", @@ -320,9 +318,7 @@ export class HuiStatisticsGraphCardEditor : undefined; if (config.stat_types && config.entities.length) { config.stat_types = ensureArray(config.stat_types).filter((stat_type) => - metadata!.every((metaData) => - statisticsMetaHasType(metaData, stat_type) - ) + metadata!.some((metaData) => statisticsMetaHasType(metaData, stat_type)) ); if (!config.stat_types.length) { delete config.stat_types;