import { Pipe } from '@angular/core' ; /**
 * Filesize pipe - will convert byte values into the highest possible whole filesize denomination.
 */ @ Pipe ( { name : 'filesize' , } ) export class FileSizePipe { param { number } bytes returns { string } public transform ( bytes ) { return this . formatBytes ( bytes ) ; } param { number } bytes param { decimals } decimals returns { string } private formatBytes ( bytes , decimals = 2 ) { if ( bytes === 0 ) { return '0 Bytes' ; } const k = 1024 ; const dm = decimals < 0 ? 0 : decimals ; const sizes = [ 'Bytes' , 'KB' , 'MB' , 'GB' , 'TB' , 'PB' , 'EB' , 'ZB' , 'YB' ] ; const i = Math . floor ( Math . log ( bytes ) / Math . log ( k ) ) ; return parseFloat ( ( bytes / Math . pow ( k , i ) ) . toFixed ( dm ) ) + ' ' + sizes [ i ] ; } }