UNPKG

apt-maintenance-account

Version:

Apartment Maintenance Account Tracking Application - Client Side in Angular

55 lines (49 loc) 1.62 kB
/** * Below Pipe is taken from * Fuel Travel Angular2 Sortable Table - Plunker * embed.plnkr.co/4eXHag * */ import { Pipe, PipeTransform } from '@angular/core'; import { DatePipe, DecimalPipe } from '@angular/common'; @Pipe({ name: 'format' }) export class Format implements PipeTransform { datePipe: DatePipe = new DatePipe('en-US'); decimalPipe: DecimalPipe = new DecimalPipe('en-US'); transform(input: string, args: any): any { var format = ''; var parsedFloat = 0; var pipeArgs = args.split(':'); for (var i = 0; i < pipeArgs.length; i++) { pipeArgs[i] = pipeArgs[i].trim(' '); } switch (pipeArgs[0].toLowerCase()) { case 'text': return input; case 'decimal': case 'number': parsedFloat = !isNaN(parseFloat(input)) ? parseFloat(input) : 0; format = pipeArgs.length > 1 ? pipeArgs[1] : null; return this.decimalPipe.transform(parsedFloat, format); case 'percentage': parsedFloat = !isNaN(parseFloat(input)) ? parseFloat(input) : 0; format = pipeArgs.length > 1 ? pipeArgs[1] : null; return this.decimalPipe.transform(parsedFloat, format) + '%'; case 'date': case 'datetime': var date = !isNaN(parseInt(input)) ? parseInt(input) : new Date(input); format = 'MMM d, y h:mm:ss a'; if (pipeArgs.length > 1) { format = ''; for (var i = 1; i < pipeArgs.length; i++) { format += pipeArgs[i]; } } return this.datePipe.transform(date, format); default: return input; } } }