Files
scrutiny/webapp/frontend/src/app/shared/temperature.pipe.ts
T

42 lines
1.2 KiB
TypeScript

import { Pipe, PipeTransform } from '@angular/core';
import {formatNumber} from '@angular/common';
@Pipe({
name: 'temperature'
})
export class TemperaturePipe implements PipeTransform {
static celsiusToFahrenheit(celsiusTemp: number): number {
return celsiusTemp * 9/5 + 32;
}
static formatTemperature(temp: number, unit: string, includeUnits: boolean): number|string {
let unitSuffix
switch (unit) {
case 'celsius':
unitSuffix = '°C'
break
case 'fahrenheit':
unitSuffix = '°F'
break
}
if(includeUnits){
return formatNumber(temp, 'en-US') + unitSuffix
} else {
return formatNumber(temp, 'en-US',)
}
}
transform(celsiusTemp: number, unit = 'celsius', includeUnits = false): number|string {
let temperature;
switch (unit) {
case 'celsius':
temperature = celsiusTemp;
break
case 'fahrenheit':
temperature = TemperaturePipe.celsiusToFahrenheit(celsiusTemp)
break
}
return TemperaturePipe.formatTemperature(temperature, unit, includeUnits)
}
}