From 33d1bcce8b6e5c3312790a74da503a34a914467a Mon Sep 17 00:00:00 2001 From: Akshat Patel <38994122+Akshat55@users.noreply.github.com> Date: Wed, 14 Sep 2022 12:07:23 -0400 Subject: [PATCH] fix(core): display correct minimum in heatmap axis tooltip when there is missing data (#1434) fix #1423 --- .../core/src/components/graphs/heatmap.ts | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/packages/core/src/components/graphs/heatmap.ts b/packages/core/src/components/graphs/heatmap.ts index 6eaad14592..91197c3df2 100644 --- a/packages/core/src/components/graphs/heatmap.ts +++ b/packages/core/src/components/graphs/heatmap.ts @@ -370,27 +370,43 @@ export class Heatmap extends Component { const mainYScale = this.services.cartesianScales.getMainYScale(); let label = '', - sum = 0, - minimum = 0, - maximum = 0; + sum = null, + minimum = null, + maximum = null; // Check to see where datum belongs if (this.matrix[datum] !== undefined) { label = domainLabel; // Iterate through Object and get sum, min, and max ranges.forEach((element) => { - let value = this.matrix[datum][element].value || 0; - sum += value; - minimum = value < minimum ? value : minimum; - maximum = value > maximum ? value : maximum; + if (typeof this.matrix[datum][element].value === 'number') { + let value = this.matrix[datum][element].value; + if (sum === null) { + sum = value; + minimum = value; + maximum = value; + return; + } + sum += value; + minimum = value < minimum ? value : minimum; + maximum = value > maximum ? value : maximum; + } }); } else { label = rangeLabel; domains.forEach((element) => { - let value = this.matrix[element][datum].value || 0; - sum += value; - minimum = value < minimum ? value : minimum; - maximum = value > maximum ? value : maximum; + if (typeof this.matrix[element][datum].value === 'number') { + let value = this.matrix[element][datum].value; + if (sum === null) { + sum = value; + minimum = value; + maximum = value; + return; + } + sum += value; + minimum = value < minimum ? value : minimum; + maximum = value > maximum ? value : maximum; + } }); } @@ -426,15 +442,15 @@ export class Heatmap extends Component { }, { label: 'Min', - value: minimum, + value: minimum !== null ? minimum : '-', }, { label: 'Max', - value: maximum, + value: maximum !== null ? maximum : '-', }, { label: 'Average', - value: sum / domains.length, + value: sum !== null ? sum / domains.length : '-', }, ], });