UNPKG

@ngx-file-upload/ui

Version:

Angular 16 file upload components for @ngx-file-upload/core

54 lines 5.57 kB
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==