openaire-library/utils/pipes/number-round.pipe.ts

29 lines
876 B
TypeScript
Raw Normal View History

2022-12-21 12:37:16 +01:00
import {Pipe, PipeTransform} from "@angular/core";
import {Level, NumberSize, NumberUtils} from "../number-utils.class";
2022-12-21 12:37:16 +01:00
import {DecimalPipe} from "@angular/common";
@Pipe({name: 'numberRound'})
export class NumberRoundPipe implements PipeTransform {
decimalPipe: DecimalPipe = new DecimalPipe("en");
constructor() {
}
/**
* Args: Level: 0 (default): ALL, 1: K, 2: M, 3:B
* Decimal: how many decimals should be shown (e.g 1 -> 62.1)
* */
transform(value: number | string, ...args: any[]): any {
let level = Level.ALL;
let decimal = 0;
if (args[0]) {
level = args[0];
}
if (args[1]) {
decimal = args[1];
}
let size: NumberSize = NumberUtils.roundNumber(value, level, decimal);
return this.decimalPipe.transform(size.number) + (size.size ? '<span class="number-size">' + size.size + '</span>' : '');
2022-12-21 12:37:16 +01:00
}
}