UNPKG

angular-pipes

Version:
71 lines 8.9 kB
import * as tslib_1 from "tslib"; import { Pipe, NgModule } from '@angular/core'; import { isNumberFinite, isPositive, isInteger, toDecimal } from '../utils/utils'; var BytesPipe = /** @class */ (function () { function BytesPipe() { } BytesPipe_1 = BytesPipe; BytesPipe.prototype.transform = function (input, decimal, from, to) { if (decimal === void 0) { decimal = 0; } if (from === void 0) { from = 'B'; } if (!(isNumberFinite(input) && isNumberFinite(decimal) && isInteger(decimal) && isPositive(decimal))) { return input; } var bytes = input; var unit = from; while (unit !== 'B') { bytes *= 1024; unit = BytesPipe_1.formats[unit].prev; } if (to) { var format = BytesPipe_1.formats[to]; var result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal); return BytesPipe_1.formatResult(result, to); } for (var key in BytesPipe_1.formats) { if (BytesPipe_1.formats.hasOwnProperty(key)) { var format = BytesPipe_1.formats[key]; if (bytes < format.max) { var result = toDecimal(BytesPipe_1.calculateResult(format, bytes), decimal); return BytesPipe_1.formatResult(result, key); } } } }; BytesPipe.formatResult = function (result, unit) { return result + " " + unit; }; BytesPipe.calculateResult = function (format, bytes) { var prev = format.prev ? BytesPipe_1.formats[format.prev] : undefined; return prev ? bytes / prev.max : bytes; }; var BytesPipe_1; BytesPipe.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' }, }; BytesPipe = BytesPipe_1 = tslib_1.__decorate([ Pipe({ name: 'bytes', }) ], BytesPipe); return BytesPipe; }()); export { BytesPipe }; var NgBytesPipeModule = /** @class */ (function () { function NgBytesPipeModule() { } NgBytesPipeModule = tslib_1.__decorate([ NgModule({ declarations: [BytesPipe], exports: [BytesPipe], }) ], NgBytesPipeModule); return NgBytesPipeModule; }()); export { NgBytesPipeModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJtYXRoL2J5dGVzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFPbEY7SUFBQTtJQWtEQSxDQUFDO2tCQWxEWSxTQUFTO0lBVXBCLDZCQUFTLEdBQVQsVUFBVSxLQUFVLEVBQUUsT0FBbUIsRUFBRSxJQUFvQixFQUFFLEVBQWE7UUFBeEQsd0JBQUEsRUFBQSxXQUFtQjtRQUFFLHFCQUFBLEVBQUEsVUFBb0I7UUFDN0QsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7WUFDcEcsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsT0FBTyxJQUFJLEtBQUssR0FBRyxFQUFFO1lBQ25CLEtBQUssSUFBSSxJQUFJLENBQUM7WUFDZCxJQUFJLEdBQUcsV0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFLLENBQUM7U0FDdEM7UUFFRCxJQUFJLEVBQUUsRUFBRTtZQUNOLElBQU0sTUFBTSxHQUFHLFdBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFckMsSUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFdBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRTVFLE9BQU8sV0FBUyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFFRCxLQUFLLElBQU0sR0FBRyxJQUFJLFdBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxXQUFTLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDekMsSUFBTSxNQUFNLEdBQUcsV0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDdEIsSUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLFdBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUU1RSxPQUFPLFdBQVMsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2lCQUM1QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sc0JBQVksR0FBbkIsVUFBb0IsTUFBYyxFQUFFLElBQVk7UUFDOUMsT0FBVSxNQUFNLFNBQUksSUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFTSx5QkFBZSxHQUF0QixVQUF1QixNQUF3QyxFQUFFLEtBQWE7UUFDNUUsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDOztJQWhETSxpQkFBTyxHQUF3RDtRQUNwRSxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1FBQ2hCLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFO1FBQ3pDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQzFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1FBQzFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtLQUNqRCxDQUFDO0lBUlMsU0FBUztRQUhyQixJQUFJLENBQUM7WUFDSixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUM7T0FDVyxTQUFTLENBa0RyQjtJQUFELGdCQUFDO0NBQUEsQUFsREQsSUFrREM7U0FsRFksU0FBUztBQXdEdEI7SUFBQTtJQUFnQyxDQUFDO0lBQXBCLGlCQUFpQjtRQUo3QixRQUFRLENBQUM7WUFDUixZQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDekIsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1NBQ3JCLENBQUM7T0FDVyxpQkFBaUIsQ0FBRztJQUFELHdCQUFDO0NBQUEsQUFBakMsSUFBaUM7U0FBcEIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNOdW1iZXJGaW5pdGUsIGlzUG9zaXRpdmUsIGlzSW50ZWdlciwgdG9EZWNpbWFsIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQnl0ZVVuaXQgPSAnQicgfCAna0InIHwgJ0tCJyB8ICdNQicgfCAnR0InIHwgJ1RCJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYnl0ZXMnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnl0ZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgc3RhdGljIGZvcm1hdHM6IHsgW2tleTogc3RyaW5nXTogeyBtYXg6IG51bWJlcjsgcHJldj86IEJ5dGVVbml0IH0gfSA9IHtcclxuICAgIEI6IHsgbWF4OiAxMDI0IH0sXHJcbiAgICBrQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDIpLCBwcmV2OiAnQicgfSxcclxuICAgIEtCOiB7IG1heDogTWF0aC5wb3coMTAyNCwgMiksIHByZXY6ICdCJyB9LCAvLyBCYWNrd2FyZCBjb21wYXRpYmxlXHJcbiAgICBNQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDMpLCBwcmV2OiAna0InIH0sXHJcbiAgICBHQjogeyBtYXg6IE1hdGgucG93KDEwMjQsIDQpLCBwcmV2OiAnTUInIH0sXHJcbiAgICBUQjogeyBtYXg6IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSLCBwcmV2OiAnR0InIH0sXHJcbiAgfTtcclxuXHJcbiAgdHJhbnNmb3JtKGlucHV0OiBhbnksIGRlY2ltYWw6IG51bWJlciA9IDAsIGZyb206IEJ5dGVVbml0ID0gJ0InLCB0bz86IEJ5dGVVbml0KTogYW55IHtcclxuICAgIGlmICghKGlzTnVtYmVyRmluaXRlKGlucHV0KSAmJiBpc051bWJlckZpbml0ZShkZWNpbWFsKSAmJiBpc0ludGVnZXIoZGVjaW1hbCkgJiYgaXNQb3NpdGl2ZShkZWNpbWFsKSkpIHtcclxuICAgICAgcmV0dXJuIGlucHV0O1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBieXRlcyA9IGlucHV0O1xyXG4gICAgbGV0IHVuaXQgPSBmcm9tO1xyXG4gICAgd2hpbGUgKHVuaXQgIT09ICdCJykge1xyXG4gICAgICBieXRlcyAqPSAxMDI0O1xyXG4gICAgICB1bml0ID0gQnl0ZXNQaXBlLmZvcm1hdHNbdW5pdF0ucHJldiE7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRvKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1hdCA9IEJ5dGVzUGlwZS5mb3JtYXRzW3RvXTtcclxuXHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRvRGVjaW1hbChCeXRlc1BpcGUuY2FsY3VsYXRlUmVzdWx0KGZvcm1hdCwgYnl0ZXMpLCBkZWNpbWFsKTtcclxuXHJcbiAgICAgIHJldHVybiBCeXRlc1BpcGUuZm9ybWF0UmVzdWx0KHJlc3VsdCwgdG8pO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3Qga2V5IGluIEJ5dGVzUGlwZS5mb3JtYXRzKSB7XHJcbiAgICAgIGlmIChCeXRlc1BpcGUuZm9ybWF0cy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgY29uc3QgZm9ybWF0ID0gQnl0ZXNQaXBlLmZvcm1hdHNba2V5XTtcclxuICAgICAgICBpZiAoYnl0ZXMgPCBmb3JtYXQubWF4KSB7XHJcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSB0b0RlY2ltYWwoQnl0ZXNQaXBlLmNhbGN1bGF0ZVJlc3VsdChmb3JtYXQsIGJ5dGVzKSwgZGVjaW1hbCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIEJ5dGVzUGlwZS5mb3JtYXRSZXN1bHQocmVzdWx0LCBrZXkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdGljIGZvcm1hdFJlc3VsdChyZXN1bHQ6IG51bWJlciwgdW5pdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtyZXN1bHR9ICR7dW5pdH1gO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGNhbGN1bGF0ZVJlc3VsdChmb3JtYXQ6IHsgbWF4OiBudW1iZXI7IHByZXY/OiBCeXRlVW5pdCB9LCBieXRlczogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwcmV2ID0gZm9ybWF0LnByZXYgPyBCeXRlc1BpcGUuZm9ybWF0c1tmb3JtYXQucHJldl0gOiB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gcHJldiA/IGJ5dGVzIC8gcHJldi5tYXggOiBieXRlcztcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbQnl0ZXNQaXBlXSxcclxuICBleHBvcnRzOiBbQnl0ZXNQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nQnl0ZXNQaXBlTW9kdWxlIHt9XHJcbiJdfQ==