1
0
This repository has been archived on 2026-06-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
MSE-PI-E2EEDA-Plein-de-eeee…/ui/src/app/config/co2-levels.config.ts
khalil-bot da890abc13 feat(ui): interactive room map, detail panel redesign and polling
- Pan/zoom SVG map with CO₂ badge overlay and tooltip (#28)
- Room detail page: full-page layout, 24h history table (#28)
- 30s/15s polling with last-updated timestamp (#29)
- Responsive design (1100/768/480px breakpoints) (#29)
- Fix memory leaks, SCSS tokens, env polling config

Closes #28, #29
2026-05-27 22:00:11 +02:00

28 lines
940 B
TypeScript

/**
* CO2 Level Thresholds Configuration
* Defines air quality levels with their PPM ranges and display colors
*/
export interface CO2Level {
label: string;
range: string;
color: string;
maxPpm: number;
}
export const CO2_LEVELS: CO2Level[] = [
{ label: 'Excellent', range: '< 800 ppm', color: '#4caf50', maxPpm: 800 },
{ label: 'Good', range: '800-1000 ppm', color: '#8bc34a', maxPpm: 1000 },
{ label: 'Moderate', range: '1000-1400 ppm', color: '#ffc107', maxPpm: 1400 },
{ label: 'Poor', range: '1400-2000 ppm', color: '#ff9800', maxPpm: 2000 },
{ label: 'Critical', range: '> 2000 ppm', color: '#f44336', maxPpm: Infinity },
];
export function getCO2Color(ppm: number): string {
return (CO2_LEVELS.find(l => ppm < l.maxPpm) ?? CO2_LEVELS[CO2_LEVELS.length - 1]).color;
}
export function getCO2Level(ppm: number): CO2Level {
return CO2_LEVELS.find(l => ppm < l.maxPpm) ?? CO2_LEVELS[CO2_LEVELS.length - 1];
}