+
+ @for (cell of topRowCells; track $index) {
+ 1 ? 'heatmap-cell-double' : 'heatmap-cell'"
+ [value]="cell.value"
+ [booleanValue]="cell.boolValue"
+ [color]="getColor(cell)"
+ [currentView]="view"
+ [boxShadowColor]="isSelected(cell.reading)"
+ [cellNumber]="cell.cellNum"
+ (click)="cellClicked(cell)"
+ />
+ }
+
+
+ @for (cell of bottomRowCells; track $index) {
+ 1 ? 'heatmap-cell-double' : 'heatmap-cell'"
+ [value]="cell.value"
+ [booleanValue]="cell.boolValue"
+ [color]="getColor(cell)"
+ [currentView]="view"
+ [boxShadowColor]="isSelected(cell.reading)"
+ [cellNumber]="cell.cellNum"
+ (click)="cellClicked(cell)"
+ />
+ }
+
+
diff --git a/angular-client/src/pages/bms-debug-page/components/segment-heatmap/segment-heatmap.component.ts b/angular-client/src/pages/bms-debug-page/components/segment-heatmap/segment-heatmap.component.ts
new file mode 100644
index 00000000..f857d79a
--- /dev/null
+++ b/angular-client/src/pages/bms-debug-page/components/segment-heatmap/segment-heatmap.component.ts
@@ -0,0 +1,196 @@
+import { Component, effect, inject, input, OnDestroy, OnInit } from '@angular/core';
+import { Subscription } from 'rxjs';
+import { Chip, Segment } from 'src/utils/bms.utils';
+import { HeatMapService, HeatMapView, SelectedCellInfo } from 'src/services/heat-map.service';
+import { CellReading, CellService } from 'src/services/cell.service';
+import { ALPHA_THERM_CELL_MAP, BETA_THERM_CELL_MAP } from 'src/utils/bms.config';
+import { DialogService } from 'primeng/dynamicdialog';
+import { CellViewComponent } from '../cell-view/cell-view.component';
+import { HexTileComponent } from '../hex-tile/hex-tile.component';
+
+export interface DisplayCell {
+ reading: CellReading;
+ value: number | undefined;
+ boolValue: boolean | undefined;
+ cellNum: string;
+ cellCount: number;
+}
+
+@Component({
+ selector: 'segment-heatmap',
+ templateUrl: './segment-heatmap.component.html',
+ styleUrl: './segment-heatmap.component.css',
+ standalone: true,
+ imports: [HexTileComponent]
+})
+export class SegmentHeatmapComponent implements OnInit, OnDestroy {
+ private cellService = inject(CellService);
+ private heatMapService = inject(HeatMapService);
+ private dialogService = inject(DialogService);
+ private subscriptions: Subscription[] = [];
+
+ segment = input.required