UNPKG

ng-zorro-antd

Version:

An enterprise-class UI components based on Ant Design and Angular

59 lines 8.65 kB
/** * 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=