ng-zorro-antd
Version:
An enterprise-class UI components based on Ant Design and Angular
59 lines • 8.65 kB
JavaScript
/**
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE
*/
import { Pipe } from '@angular/core';
import { isNumberFinite, toDecimal } from 'ng-zorro-antd/core/util';
import * as i0 from "@angular/core";
export class NzBytesPipe {
static { this.formats = {
B: { max: 1024 },
kB: { max: Math.pow(1024, 2), prev: 'B' },
KB: { max: Math.pow(1024, 2), prev: 'B' },
MB: { max: Math.pow(1024, 3), prev: 'kB' },
GB: { max: Math.pow(1024, 4), prev: 'MB' },
TB: { max: Number.MAX_SAFE_INTEGER, prev: 'GB' }
}; }
transform(input, decimal = 0, from = 'B', to) {
if (!(isNumberFinite(input) && isNumberFinite(decimal) && decimal % 1 === 0 && decimal >= 0)) {
return input;
}
let bytes = input;
let unit = from;
while (unit !== 'B') {
bytes *= 1024;
unit = NzBytesPipe.formats[unit].prev;
}
if (to) {
const format = NzBytesPipe.formats[to];
const result = toDecimal(NzBytesPipe.calculateResult(format, bytes), decimal);
return NzBytesPipe.formatResult(result, to);
}
for (const key in NzBytesPipe.formats) {
if (NzBytesPipe.formats.hasOwnProperty(key)) {
const format = NzBytesPipe.formats[key];
if (bytes < format.max) {
const result = toDecimal(NzBytesPipe.calculateResult(format, bytes), decimal);
return NzBytesPipe.formatResult(result, key);
}
}
}
}
static formatResult(result, unit) {
return `${result} ${unit}`;
}
static calculateResult(format, bytes) {
const prev = format.prev ? NzBytesPipe.formats[format.prev] : undefined;
return prev ? bytes / prev.max : bytes;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NzBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: NzBytesPipe, isStandalone: true, name: "nzBytes" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: NzBytesPipe, decorators: [{
type: Pipe,
args: [{
name: 'nzBytes',
standalone: true
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvcGlwZXMvbnotYnl0ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVFwRSxNQUFNLE9BQU8sV0FBVzthQUNmLFlBQU8sR0FBNEQ7UUFDeEUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtRQUNoQixFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtRQUN6QyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRTtRQUN6QyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtRQUMxQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtRQUMxQyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7S0FDakQsQUFQYSxDQU9aO0lBRUYsU0FBUyxDQUFDLEtBQWdCLEVBQUUsVUFBa0IsQ0FBQyxFQUFFLE9BQWlCLEdBQUcsRUFBRSxFQUFhO1FBQ2xGLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDN0YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQztRQUNoQixPQUFPLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNwQixLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2QsSUFBSSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUV2QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFOUUsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdEMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM1QyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQWUsQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFFOUUsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBYyxFQUFFLElBQVk7UUFDOUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUF3QyxFQUFFLEtBQWE7UUFDNUUsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDOzhHQWpEVSxXQUFXOzRHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgaXNOdW1iZXJGaW5pdGUsIHRvRGVjaW1hbCB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS91dGlsJztcblxuZXhwb3J0IHR5cGUgQnl0ZVVuaXQgPSAnQicgfCAna0InIHwgJ0tCJyB8ICdNQicgfCAnR0InIHwgJ1RCJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnpCeXRlcycsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTnpCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgc3RhdGljIGZvcm1hdHM6IHsgW2tleSBpbiBCeXRlVW5pdF06IHsgbWF4OiBudW1iZXI7IHByZXY/OiBCeXRlVW5pdCB9IH0gPSB7XG4gICAgQjogeyBtYXg6IDEwMjQgfSxcbiAgICBrQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSxcbiAgICBLQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSxcbiAgICBNQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDMpLCBwcmV2OiAna0InIH0sXG4gICAgR0I6IHsgbWF4OiBNYXRoLnBvdygxMDI0LCA0KSwgcHJldjogJ01CJyB9LFxuICAgIFRCOiB7IG1heDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIHByZXY6ICdHQicgfVxuICB9O1xuXG4gIHRyYW5zZm9ybShpbnB1dDogTnpTYWZlQW55LCBkZWNpbWFsOiBudW1iZXIgPSAwLCBmcm9tOiBCeXRlVW5pdCA9ICdCJywgdG8/OiBCeXRlVW5pdCk6IE56U2FmZUFueSB7XG4gICAgaWYgKCEoaXNOdW1iZXJGaW5pdGUoaW5wdXQpICYmIGlzTnVtYmVyRmluaXRlKGRlY2ltYWwpICYmIGRlY2ltYWwgJSAxID09PSAwICYmIGRlY2ltYWwgPj0gMCkpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG5cbiAgICBsZXQgYnl0ZXMgPSBpbnB1dDtcbiAgICBsZXQgdW5pdCA9IGZyb207XG4gICAgd2hpbGUgKHVuaXQgIT09ICdCJykge1xuICAgICAgYnl0ZXMgKj0gMTAyNDtcbiAgICAgIHVuaXQgPSBOekJ5dGVzUGlwZS5mb3JtYXRzW3VuaXRdLnByZXYhO1xuICAgIH1cblxuICAgIGlmICh0bykge1xuICAgICAgY29uc3QgZm9ybWF0ID0gTnpCeXRlc1BpcGUuZm9ybWF0c1t0b107XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRvRGVjaW1hbChOekJ5dGVzUGlwZS5jYWxjdWxhdGVSZXN1bHQoZm9ybWF0LCBieXRlcyksIGRlY2ltYWwpO1xuXG4gICAgICByZXR1cm4gTnpCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwgdG8pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IGluIE56Qnl0ZXNQaXBlLmZvcm1hdHMpIHtcbiAgICAgIGlmIChOekJ5dGVzUGlwZS5mb3JtYXRzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gTnpCeXRlc1BpcGUuZm9ybWF0c1trZXkgYXMgQnl0ZVVuaXRdO1xuICAgICAgICBpZiAoYnl0ZXMgPCBmb3JtYXQubWF4KSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdG9EZWNpbWFsKE56Qnl0ZXNQaXBlLmNhbGN1bGF0ZVJlc3VsdChmb3JtYXQsIGJ5dGVzKSwgZGVjaW1hbCk7XG5cbiAgICAgICAgICByZXR1cm4gTnpCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRSZXN1bHQocmVzdWx0OiBudW1iZXIsIHVuaXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3Jlc3VsdH0gJHt1bml0fWA7XG4gIH1cblxuICBzdGF0aWMgY2FsY3VsYXRlUmVzdWx0KGZvcm1hdDogeyBtYXg6IG51bWJlcjsgcHJldj86IEJ5dGVVbml0IH0sIGJ5dGVzOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHByZXYgPSBmb3JtYXQucHJldiA/IE56Qnl0ZXNQaXBlLmZvcm1hdHNbZm9ybWF0LnByZXZdIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBwcmV2ID8gYnl0ZXMgLyBwcmV2Lm1heCA6IGJ5dGVzO1xuICB9XG59XG4iXX0=