UNPKG

ng-zorro-antd

Version:

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

58 lines 8.4 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 { 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; } } NzBytesPipe.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' } }; NzBytesPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); NzBytesPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzBytesPipe, name: "nzBytes" }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: NzBytesPipe, decorators: [{ type: Pipe, args: [{ name: 'nzBytes' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnotYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbXBvbmVudHMvcGlwZXMvbnotYnl0ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFFSCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sV0FBVztJQVV0QixTQUFTLENBQUMsS0FBZ0IsRUFBRSxVQUFrQixDQUFDLEVBQUUsT0FBaUIsR0FBRyxFQUFFLEVBQWE7UUFDbEYsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDNUYsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsT0FBTyxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQ25CLEtBQUssSUFBSSxJQUFJLENBQUM7WUFDZCxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFLLENBQUM7U0FDeEM7UUFFRCxJQUFJLEVBQUUsRUFBRTtZQUNOLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFdkMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTlFLE9BQU8sV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDN0M7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUU7WUFDckMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFlLENBQUMsQ0FBQztnQkFDcEQsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDdEIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUU5RSxPQUFPLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUM5QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUM5QyxPQUFPLEdBQUcsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQXdDLEVBQUUsS0FBYTtRQUM1RSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7O0FBaERNLG1CQUFPLEdBQTREO0lBQ3hFLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7SUFDaEIsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7SUFDekMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7SUFDekMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7SUFDMUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7SUFDMUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0NBQ2hELENBQUE7d0dBUlMsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vTkctWk9SUk8vbmctem9ycm8tYW50ZC9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuaW1wb3J0IHsgaXNOdW1iZXJGaW5pdGUsIHRvRGVjaW1hbCB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS91dGlsJztcblxuZXhwb3J0IHR5cGUgQnl0ZVVuaXQgPSAnQicgfCAna0InIHwgJ0tCJyB8ICdNQicgfCAnR0InIHwgJ1RCJztcblxuQFBpcGUoe1xuICBuYW1lOiAnbnpCeXRlcydcbn0pXG5leHBvcnQgY2xhc3MgTnpCeXRlc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgc3RhdGljIGZvcm1hdHM6IHsgW2tleSBpbiBCeXRlVW5pdF06IHsgbWF4OiBudW1iZXI7IHByZXY/OiBCeXRlVW5pdCB9IH0gPSB7XG4gICAgQjogeyBtYXg6IDEwMjQgfSxcbiAgICBrQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSxcbiAgICBLQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSxcbiAgICBNQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDMpLCBwcmV2OiAna0InIH0sXG4gICAgR0I6IHsgbWF4OiBNYXRoLnBvdygxMDI0LCA0KSwgcHJldjogJ01CJyB9LFxuICAgIFRCOiB7IG1heDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIHByZXY6ICdHQicgfVxuICB9O1xuXG4gIHRyYW5zZm9ybShpbnB1dDogTnpTYWZlQW55LCBkZWNpbWFsOiBudW1iZXIgPSAwLCBmcm9tOiBCeXRlVW5pdCA9ICdCJywgdG8/OiBCeXRlVW5pdCk6IE56U2FmZUFueSB7XG4gICAgaWYgKCEoaXNOdW1iZXJGaW5pdGUoaW5wdXQpICYmIGlzTnVtYmVyRmluaXRlKGRlY2ltYWwpICYmIGRlY2ltYWwgJSAxID09PSAwICYmIGRlY2ltYWwgPj0gMCkpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG5cbiAgICBsZXQgYnl0ZXMgPSBpbnB1dDtcbiAgICBsZXQgdW5pdCA9IGZyb207XG4gICAgd2hpbGUgKHVuaXQgIT09ICdCJykge1xuICAgICAgYnl0ZXMgKj0gMTAyNDtcbiAgICAgIHVuaXQgPSBOekJ5dGVzUGlwZS5mb3JtYXRzW3VuaXRdLnByZXYhO1xuICAgIH1cblxuICAgIGlmICh0bykge1xuICAgICAgY29uc3QgZm9ybWF0ID0gTnpCeXRlc1BpcGUuZm9ybWF0c1t0b107XG5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRvRGVjaW1hbChOekJ5dGVzUGlwZS5jYWxjdWxhdGVSZXN1bHQoZm9ybWF0LCBieXRlcyksIGRlY2ltYWwpO1xuXG4gICAgICByZXR1cm4gTnpCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwgdG8pO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IGluIE56Qnl0ZXNQaXBlLmZvcm1hdHMpIHtcbiAgICAgIGlmIChOekJ5dGVzUGlwZS5mb3JtYXRzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gTnpCeXRlc1BpcGUuZm9ybWF0c1trZXkgYXMgQnl0ZVVuaXRdO1xuICAgICAgICBpZiAoYnl0ZXMgPCBmb3JtYXQubWF4KSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdG9EZWNpbWFsKE56Qnl0ZXNQaXBlLmNhbGN1bGF0ZVJlc3VsdChmb3JtYXQsIGJ5dGVzKSwgZGVjaW1hbCk7XG5cbiAgICAgICAgICByZXR1cm4gTnpCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwga2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRSZXN1bHQocmVzdWx0OiBudW1iZXIsIHVuaXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3Jlc3VsdH0gJHt1bml0fWA7XG4gIH1cblxuICBzdGF0aWMgY2FsY3VsYXRlUmVzdWx0KGZvcm1hdDogeyBtYXg6IG51bWJlcjsgcHJldj86IEJ5dGVVbml0IH0sIGJ5dGVzOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IHByZXYgPSBmb3JtYXQucHJldiA/IE56Qnl0ZXNQaXBlLmZvcm1hdHNbZm9ybWF0LnByZXZdIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiBwcmV2ID8gYnl0ZXMgLyBwcmV2Lm1heCA6IGJ5dGVzO1xuICB9XG59XG4iXX0=