mirror of https://github.com/Squidex/squidex.git
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.
54 lines
1.1 KiB
54 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) {
|
|
let u = 0, s = 1024;
|
|
|
|
while (value >= s || -value >= s) {
|
|
value /= s;
|
|
u++;
|
|
}
|
|
|
|
return (u ? value.toFixed(1) + ' ' : value) + ' kMGTPEZY'[u] + 'B';
|
|
|
|
}
|