From 92488d015bcb98e96a8fb8f1f0b509893cf45e90 Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Wed, 21 Dec 2022 13:37:16 +0200 Subject: [PATCH] Add number-rounf pipe --- utils/number-utils.class.ts | 8 ++++++-- utils/pipes/number-round.module.ts | 11 +++++++++++ utils/pipes/number-round.pipe.ts | 18 ++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 utils/pipes/number-round.module.ts create mode 100644 utils/pipes/number-round.pipe.ts diff --git a/utils/number-utils.class.ts b/utils/number-utils.class.ts index 4fc2964f..5abe2ce5 100644 --- a/utils/number-utils.class.ts +++ b/utils/number-utils.class.ts @@ -1,6 +1,6 @@ export interface NumberSize { number: number; - size: "M" | "K" | ""; + size: "B" | "M" | "K" | ""; count: number; } @@ -10,7 +10,11 @@ export class NumberUtils{ //console.log("Trying to round number: "+ num); var roundNum: NumberSize = null; var initialNum = num; - if(num >= 1000000){ + if (num >= 1000000000) { + num = num / 1000000; + num = Math.round(num); + roundNum = {number: num, size: "B", count: initialNum}; + } else if(num >= 1000000) { num=num/1000000; num= Math.round(num); roundNum = { number: num, size: "M", count: initialNum}; diff --git a/utils/pipes/number-round.module.ts b/utils/pipes/number-round.module.ts new file mode 100644 index 00000000..951da877 --- /dev/null +++ b/utils/pipes/number-round.module.ts @@ -0,0 +1,11 @@ +import {NgModule} from "@angular/core"; +import {NumberRoundPipe} from "./number-round.pipe"; + +@NgModule({ + declarations: [NumberRoundPipe], + exports: [NumberRoundPipe] + +}) +export class NumberRoundModule { + +} diff --git a/utils/pipes/number-round.pipe.ts b/utils/pipes/number-round.pipe.ts new file mode 100644 index 00000000..d714f472 --- /dev/null +++ b/utils/pipes/number-round.pipe.ts @@ -0,0 +1,18 @@ +import {Pipe, PipeTransform} from "@angular/core"; +import {NumberSize, NumberUtils} from "../number-utils.class"; +import {DecimalPipe} from "@angular/common"; + +@Pipe({name: 'numberRound'}) +export class NumberRoundPipe implements PipeTransform { + decimalPipe: DecimalPipe = new DecimalPipe("en"); + + + constructor() { + + } + + transform(value: number): any { + let size: NumberSize = NumberUtils.roundNumber(value); + return this.decimalPipe.transform(size.number) + size.size; + } +}