@ngx-file-upload/ui
Version:
Angular 16 file upload components for @ngx-file-upload/core
54 lines • 5.57 kB
JavaScript
import { Pipe } from "@angular/core";
import * as i0 from "@angular/core";
/**
* format byte value into human readable value
*
* @example
* <span>{{1024 | fileSize}}</span>
* // prints out 1Kb
*
*/
export class FileSizePipe {
constructor() {
this.units = ["Byte", "Kb", "Mb", "Gb"];
}
transform(size) {
let bytes = isNaN(size) ? parseFloat(size.toString()) : size;
let unit = 0;
while (bytes >= 1024 && this.units.length > unit) {
bytes = bytes / 1024;
unit++;
}
/**
* sets a max precision to 2, remove trailing zeros, toFixed was not working
* since this will fill up number with trailing zeros.
*
* steps:
* 1. find all until this is not a .
* 2. only match . if this is not followed by 2 zeros
* 3. match any number
* 4. match any char which is not a zero (0,1)
*
* will only works with numbers which will converted to string
* and not with string
*
* @example
* 123.001 becomes 123
* 123.10 becomes 123.1
* 123.01 becomes 123.01
* 123.01231 becomes 123.01
*/
const formatter = /^[^\.]+(\.(?!0{2})\d[^0]?)?/g;
const total = bytes.toString().match(formatter)?.[0] ?? bytes.toString();
return `${total} ${this.units[unit]}`;
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
/** @nocollapse */ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.2", ngImport: i0, type: FileSizePipe, name: "fileSize" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: FileSizePipe, decorators: [{
type: Pipe,
args: [{
name: "fileSize"
}]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbW1vbi9zcmMvZmlsZS1zaXplLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBEOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUtZLFVBQUssR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBa0M5QztJQWhDRyxTQUFTLENBQUMsSUFBWTtRQUNsQixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksSUFBSSxHQUFJLENBQUMsQ0FBQztRQUVkLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLEVBQUU7WUFDOUMsS0FBSyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxFQUFFLENBQUM7U0FDVjtRQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7V0FrQkc7UUFDSCxNQUFNLFNBQVMsR0FBRyw4QkFBOEIsQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pFLE9BQU8sR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQzFDLENBQUM7aUlBbkNRLFlBQVk7K0hBQVosWUFBWTs7MkZBQVosWUFBWTtrQkFIeEIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsVUFBVTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8qKlxyXG4gKiBmb3JtYXQgYnl0ZSB2YWx1ZSBpbnRvIGh1bWFuIHJlYWRhYmxlIHZhbHVlXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIDxzcGFuPnt7MTAyNCB8IGZpbGVTaXplfX08L3NwYW4+XHJcbiAqIC8vIHByaW50cyBvdXQgMUtiXHJcbiAqXHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiBcImZpbGVTaXplXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVTaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAgIHByaXZhdGUgdW5pdHMgPSBbXCJCeXRlXCIsIFwiS2JcIiwgXCJNYlwiLCBcIkdiXCJdO1xyXG5cclxuICAgIHRyYW5zZm9ybShzaXplOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBieXRlcyA9IGlzTmFOKHNpemUgYXMgbnVtYmVyKSA/IHBhcnNlRmxvYXQoc2l6ZS50b1N0cmluZygpKSA6IHNpemU7XHJcbiAgICAgICAgbGV0IHVuaXQgID0gMDtcclxuXHJcbiAgICAgICAgd2hpbGUgKGJ5dGVzID49IDEwMjQgJiYgdGhpcy51bml0cy5sZW5ndGggPiB1bml0KSB7XHJcbiAgICAgICAgICAgIGJ5dGVzID0gYnl0ZXMgLyAxMDI0O1xyXG4gICAgICAgICAgICB1bml0Kys7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBzZXRzIGEgbWF4IHByZWNpc2lvbiB0byAyLCByZW1vdmUgdHJhaWxpbmcgemVyb3MsIHRvRml4ZWQgd2FzIG5vdCB3b3JraW5nXHJcbiAgICAgICAgICogc2luY2UgdGhpcyB3aWxsIGZpbGwgdXAgbnVtYmVyIHdpdGggdHJhaWxpbmcgemVyb3MuXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiBzdGVwczpcclxuICAgICAgICAgKiAxLiBmaW5kIGFsbCB1bnRpbCB0aGlzIGlzIG5vdCBhIC5cclxuICAgICAgICAgKiAyLiBvbmx5IG1hdGNoIC4gaWYgdGhpcyBpcyBub3QgZm9sbG93ZWQgYnkgMiB6ZXJvc1xyXG4gICAgICAgICAqIDMuIG1hdGNoIGFueSBudW1iZXJcclxuICAgICAgICAgKiA0LiBtYXRjaCBhbnkgY2hhciB3aGljaCBpcyBub3QgYSB6ZXJvICgwLDEpXHJcbiAgICAgICAgICpcclxuICAgICAgICAgKiB3aWxsIG9ubHkgd29ya3Mgd2l0aCBudW1iZXJzIHdoaWNoIHdpbGwgY29udmVydGVkIHRvIHN0cmluZ1xyXG4gICAgICAgICAqIGFuZCBub3Qgd2l0aCBzdHJpbmdcclxuICAgICAgICAgKlxyXG4gICAgICAgICAqIEBleGFtcGxlXHJcbiAgICAgICAgICogMTIzLjAwMSBiZWNvbWVzIDEyM1xyXG4gICAgICAgICAqIDEyMy4xMCBiZWNvbWVzIDEyMy4xXHJcbiAgICAgICAgICogMTIzLjAxIGJlY29tZXMgMTIzLjAxXHJcbiAgICAgICAgICogMTIzLjAxMjMxIGJlY29tZXMgMTIzLjAxXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gL15bXlxcLl0rKFxcLig/ITB7Mn0pXFxkW14wXT8pPy9nO1xyXG4gICAgICAgIGNvbnN0IHRvdGFsID0gYnl0ZXMudG9TdHJpbmcoKS5tYXRjaChmb3JtYXR0ZXIpPy5bMF0gPz8gYnl0ZXMudG9TdHJpbmcoKTtcclxuICAgICAgICByZXR1cm4gYCR7dG90YWx9ICR7dGhpcy51bml0c1t1bml0XX1gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==