Headless CMS and Content Managment Hub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

53 lines
1.1 KiB

/*
* Squidex Headless CMS
*
* @license
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
*/
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sqxKNumber',
pure: true
})
export class KNumberPipe implements PipeTransform {
public transform(value: number) {
if (value > 1000) {
value = value / 1000;
if (value < 10) {
value = Math.round(value * 10) / 10;
} else {
value = Math.round(value);
}
return value + 'k';
} else if (value < 0) {
return '';
} else {
return value.toString();
}
}
}
@Pipe({
name: 'sqxFileSize',
pure: true
})
export class FileSizePipe implements PipeTransform {
public transform(value: number) {
return calculateFileSize(value);
}
}
export function calculateFileSize(value: number, factor = 1024) {
let u = 0;
while (value >= factor || -value >= factor) {
value /= factor;
u++;
}
return (u ? value.toFixed(1) + ' ' : value) + ' kMGTPEZY'[u] + 'B';
}