angular-material-datatransfer-lib
Version:
A HTML5 datatransfer UI for handling upload and download of multiple simultaneous files.
124 lines • 11.6 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/utils/decimal-byte-unit.util.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import { EnumExtension } from '../extensions/enum.extension';
import { DecimalByteUnit } from '../enums/decimal-byte-unit.enum';
export class DecimalByteUnitUtil {
constructor() {
this.C_KB = Math.pow(10, 3);
this.C_MB = Math.pow(10, 6);
this.C_GB = Math.pow(10, 9);
this.C_TB = Math.pow(10, 12);
this.C_PB = Math.pow(10, 15);
this.MAX = Number.MAX_VALUE;
this.byteUnits = EnumExtension.getNames(DecimalByteUnit);
}
/**
* @private
* @param {?} number
* @param {?} multiplier
* @return {?}
*/
multiply(number, multiplier) {
/** @type {?} */
const limit = this.MAX / multiplier;
if (number > limit) {
return Number.MAX_VALUE;
}
if (number < -limit) {
return Number.MIN_VALUE;
}
return number * multiplier;
}
/**
* @param {?} number
* @param {?} fromUnit
* @param {?} toUnit
* @return {?}
*/
convert(number, fromUnit, toUnit) {
/** @type {?} */
const bytes = this.toBytes(number, fromUnit);
switch (toUnit) {
case DecimalByteUnit.Byte:
return bytes;
case DecimalByteUnit.KB:
return bytes / this.C_KB;
case DecimalByteUnit.MB:
return bytes / this.C_MB;
case DecimalByteUnit.GB:
return bytes / this.C_GB;
case DecimalByteUnit.TB:
return bytes / this.C_TB;
case DecimalByteUnit.PB:
return bytes / this.C_PB;
}
return number;
}
/**
* @param {?} number
* @param {?} fromUnit
* @return {?}
*/
toBytes(number, fromUnit) {
switch (fromUnit) {
case DecimalByteUnit.Byte:
return number;
case DecimalByteUnit.KB:
return this.multiply(number, this.C_KB);
case DecimalByteUnit.MB:
return this.multiply(number, this.C_MB);
case DecimalByteUnit.GB:
return this.multiply(number, this.C_GB);
case DecimalByteUnit.TB:
return this.multiply(number, this.C_TB);
case DecimalByteUnit.PB:
return this.multiply(number, this.C_PB);
}
return number;
}
/**
* @param {?} number
* @param {?} fromUnit
* @return {?}
*/
format(number, fromUnit) {
/** @type {?} */
let result;
result = [DecimalByteUnit.Byte, this.toBytes(number, fromUnit)];
for (const currentUnit of this.byteUnits) {
if (Math.abs(result[1]) < 1000) {
result[0] = DecimalByteUnit[currentUnit];
break;
}
else {
result[1] /= 1000;
}
}
result[1] = Number(result[1].toFixed(2));
return result;
}
}
DecimalByteUnitUtil.decorators = [
{ type: Injectable }
];
if (false) {
/** @type {?} */
DecimalByteUnitUtil.prototype.C_KB;
/** @type {?} */
DecimalByteUnitUtil.prototype.C_MB;
/** @type {?} */
DecimalByteUnitUtil.prototype.C_GB;
/** @type {?} */
DecimalByteUnitUtil.prototype.C_TB;
/** @type {?} */
DecimalByteUnitUtil.prototype.C_PB;
/** @type {?} */
DecimalByteUnitUtil.prototype.MAX;
/** @type {?} */
DecimalByteUnitUtil.prototype.byteUnits;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC1ieXRlLXVuaXQudXRpbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItbWF0ZXJpYWwtZGF0YXRyYW5zZmVyLWxpYi8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9kZWNpbWFsLWJ5dGUtdW5pdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBR2xFLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFSSxTQUFJLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0IsU0FBSSxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQy9CLFNBQUksR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixTQUFJLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsU0FBSSxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLFFBQUcsR0FBVyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBa0V4RCxDQUFDOzs7Ozs7O0lBaEVXLFFBQVEsQ0FBQyxNQUFjLEVBQUUsVUFBa0I7O2NBQ3pDLEtBQUssR0FBVyxJQUFJLENBQUMsR0FBRyxHQUFHLFVBQVU7UUFFM0MsSUFBSSxNQUFNLEdBQUcsS0FBSyxFQUFFO1lBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQztTQUMzQjtRQUNELElBQUksTUFB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O0lBQy9CLG1DQUErQjs7SUFDL0IsbUNBQStCOztJQUMvQixtQ0FBZ0M7O0lBQ2hDLG1DQUFnQzs7SUFFaEMsa0NBQStCOztJQUUvQix3Q0FBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVudW1FeHRlbnNpb24gfSBmcm9tICcuLi9leHRlbnNpb25zL2VudW0uZXh0ZW5zaW9uJztcclxuaW1wb3J0IHsgRGVjaW1hbEJ5dGVVbml0IH0gZnJvbSAnLi4vZW51bXMvZGVjaW1hbC1ieXRlLXVuaXQuZW51bSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZWNpbWFsQnl0ZVVuaXRVdGlsIHtcclxuICAgIENfS0I6IG51bWJlciA9IE1hdGgucG93KDEwLCAzKTtcclxuICAgIENfTUI6IG51bWJlciA9IE1hdGgucG93KDEwLCA2KTtcclxuICAgIENfR0I6IG51bWJlciA9IE1hdGgucG93KDEwLCA5KTtcclxuICAgIENfVEI6IG51bWJlciA9IE1hdGgucG93KDEwLCAxMik7XHJcbiAgICBDX1BCOiBudW1iZXIgPSBNYXRoLnBvdygxMCwgMTUpO1xyXG5cclxuICAgIE1BWDogbnVtYmVyID0gTnVtYmVyLk1BWF9WQUxVRTtcclxuXHJcbiAgICBieXRlVW5pdHMgPSBFbnVtRXh0ZW5zaW9uLmdldE5hbWVzKERlY2ltYWxCeXRlVW5pdCk7XHJcblxyXG4gICAgcHJpdmF0ZSBtdWx0aXBseShudW1iZXI6IG51bWJlciwgbXVsdGlwbGllcjogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBsaW1pdDogbnVtYmVyID0gdGhpcy5NQVggLyBtdWx0aXBsaWVyO1xyXG5cclxuICAgICAgICBpZiAobnVtYmVyID4gbGltaXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5NQVhfVkFMVUU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChudW1iZXIgPCAtbGltaXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5NSU5fVkFMVUU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbnVtYmVyICogbXVsdGlwbGllcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29udmVydChudW1iZXI6IG51bWJlciwgZnJvbVVuaXQ6IERlY2ltYWxCeXRlVW5pdCwgdG9Vbml0OiBEZWNpbWFsQnl0ZVVuaXQpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGJ5dGVzOiBudW1iZXIgPSB0aGlzLnRvQnl0ZXMobnVtYmVyLCBmcm9tVW5pdCk7XHJcbiAgICAgICAgc3dpdGNoICh0b1VuaXQpIHtcclxuICAgICAgICAgICAgY2FzZSBEZWNpbWFsQnl0ZVVuaXQuQnl0ZTpcclxuICAgICAgICAgICAgICAgIHJldHVybiBieXRlcztcclxuICAgICAgICAgICAgY2FzZSBEZWNpbWFsQnl0ZVVuaXQuS0I6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYnl0ZXMgLyB0aGlzLkNfS0I7XHJcbiAgICAgICAgICAgIGNhc2UgRGVjaW1hbEJ5dGVVbml0Lk1COlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ5dGVzIC8gdGhpcy5DX01CO1xyXG4gICAgICAgICAgICBjYXNlIERlY2ltYWxCeXRlVW5pdC5HQjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBieXRlcyAvIHRoaXMuQ19HQjtcclxuICAgICAgICAgICAgY2FzZSBEZWNpbWFsQnl0ZVVuaXQuVEI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYnl0ZXMgLyB0aGlzLkNfVEI7XHJcbiAgICAgICAgICAgIGNhc2UgRGVjaW1hbEJ5dGVVbml0LlBCOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGJ5dGVzIC8gdGhpcy5DX1BCO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVtYmVyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB0b0J5dGVzKG51bWJlcjogbnVtYmVyLCBmcm9tVW5pdDogRGVjaW1hbEJ5dGVVbml0KTogbnVtYmVyIHtcclxuICAgICAgICBzd2l0Y2ggKGZyb21Vbml0KSB7XHJcbiAgICAgICAgICAgIGNhc2UgRGVjaW1hbEJ5dGVVbml0LkJ5dGU6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyO1xyXG4gICAgICAgICAgICBjYXNlIERlY2ltYWxCeXRlVW5pdC5LQjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpcGx5KG51bWJlciwgdGhpcy5DX0tCKTtcclxuICAgICAgICAgICAgY2FzZSBEZWNpbWFsQnl0ZVVuaXQuTUI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBseShudW1iZXIsIHRoaXMuQ19NQik7XHJcbiAgICAgICAgICAgIGNhc2UgRGVjaW1hbEJ5dGVVbml0LkdCOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubXVsdGlwbHkobnVtYmVyLCB0aGlzLkNfR0IpO1xyXG4gICAgICAgICAgICBjYXNlIERlY2ltYWxCeXRlVW5pdC5UQjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm11bHRpcGx5KG51bWJlciwgdGhpcy5DX1RCKTtcclxuICAgICAgICAgICAgY2FzZSBEZWNpbWFsQnl0ZVVuaXQuUEI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBseShudW1iZXIsIHRoaXMuQ19QQik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudW1iZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdChudW1iZXI6IG51bWJlciwgZnJvbVVuaXQ6IERlY2ltYWxCeXRlVW5pdCk6IFtEZWNpbWFsQnl0ZVVuaXQsIG51bWJlcl0ge1xyXG4gICAgICAgIGxldCByZXN1bHQ6IFtEZWNpbWFsQnl0ZVVuaXQsIG51bWJlcl07XHJcbiAgICAgICAgcmVzdWx0ID0gW0RlY2ltYWxCeXRlVW5pdC5CeXRlLCB0aGlzLnRvQnl0ZXMobnVtYmVyLCBmcm9tVW5pdCldO1xyXG4gICAgICAgIGZvciAoY29uc3QgY3VycmVudFVuaXQgb2YgdGhpcy5ieXRlVW5pdHMpIHtcclxuICAgICAgICAgICAgaWYgKE1hdGguYWJzKHJlc3VsdFsxXSkgPCAxMDAwKSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbMF0gPSBEZWNpbWFsQnl0ZVVuaXRbY3VycmVudFVuaXRdO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXN1bHRbMV0gLz0gMTAwMDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXN1bHRbMV0gPSBOdW1iZXIocmVzdWx0WzFdLnRvRml4ZWQoMikpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbn1cclxuIl19