42 lines
1.2 KiB
TypeScript
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)
|
|
}
|
|
|
|
}
|