mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-12-20 21:47:01 +01:00
parent
f8c8161a3e
commit
f34202a82a
159 changed files with 3882 additions and 2716 deletions
|
|
@ -22,12 +22,12 @@
|
|||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
* SOFTWARE.
|
||||
*/
|
||||
import { Pipe, PipeTransform } from '@angular/core';
|
||||
import { Pipe, PipeTransform } from '@angular/core'
|
||||
|
||||
type unit = 'bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB';
|
||||
type unit = 'bytes' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB'
|
||||
type unitPrecisionMap = {
|
||||
[u in unit]: number;
|
||||
};
|
||||
[u in unit]: number
|
||||
}
|
||||
|
||||
const defaultPrecisionMap: unitPrecisionMap = {
|
||||
bytes: 0,
|
||||
|
|
@ -35,8 +35,8 @@ const defaultPrecisionMap: unitPrecisionMap = {
|
|||
MB: 1,
|
||||
GB: 1,
|
||||
TB: 2,
|
||||
PB: 2
|
||||
};
|
||||
PB: 2,
|
||||
}
|
||||
|
||||
/*
|
||||
* Convert bytes into largest possible unit.
|
||||
|
|
@ -55,23 +55,26 @@ const defaultPrecisionMap: unitPrecisionMap = {
|
|||
*/
|
||||
@Pipe({ name: 'fileSize' })
|
||||
export class FileSizePipe implements PipeTransform {
|
||||
private readonly units: unit[] = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
||||
private readonly units: unit[] = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
|
||||
|
||||
transform(bytes: number = 0, precision: number | unitPrecisionMap = defaultPrecisionMap): string {
|
||||
if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '?';
|
||||
transform(
|
||||
bytes: number = 0,
|
||||
precision: number | unitPrecisionMap = defaultPrecisionMap
|
||||
): string {
|
||||
if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '?'
|
||||
|
||||
let unitIndex = 0;
|
||||
let unitIndex = 0
|
||||
|
||||
while (bytes >= 1024) {
|
||||
bytes /= 1024;
|
||||
unitIndex++;
|
||||
bytes /= 1024
|
||||
unitIndex++
|
||||
}
|
||||
|
||||
const unit = this.units[unitIndex];
|
||||
const unit = this.units[unitIndex]
|
||||
|
||||
if (typeof precision === 'number') {
|
||||
return `${bytes.toFixed(+precision)} ${unit}`;
|
||||
return `${bytes.toFixed(+precision)} ${unit}`
|
||||
}
|
||||
return `${bytes.toFixed(precision[unit])} ${unit}`;
|
||||
return `${bytes.toFixed(precision[unit])} ${unit}`
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue