UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

60 lines 8.97 kB
// © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. import { Pipe } from "@angular/core"; import { unitConversionBases, } from "../constants/unit-conversion.constants"; import { UnitConversionService } from "../services/unit-conversion.service"; import * as i0 from "@angular/core"; import * as i1 from "../services/unit-conversion.service"; /** * <example-url>./../examples/index.html#/pipes/unit-conversion</example-url> * * Pipe for converting a large quantity of a small basic unit to a smaller approximation of the same quantity in a larger unit. This can be useful for * displaying larger values in a limited amount of space. */ export class UnitConversionPipe { constructor(unitConversionService) { this.unitConversionService = unitConversionService; } /** * Gets a string representation of the conversion of a large quantity of a small basic unit to a smaller quantity of a larger unit. * For example, a quantity of 1024 in bytes is output as "1 KB". * * @param value The value to convert * @param scale The number of significant digits to the right of the decimal to include in the converted value * @param plusSign Specify whether to prefix positive values with a '+' * @param unit The basic unit to use for the conversion result's unit label * * @returns {string} The conversion result appended with the converted unit label */ transform(value, scale = 0, plusSign = false, unit = "bytes") { const base = unitConversionBases[unit]; const result = this.unitConversionService.convert(value, base, scale); return this.unitConversionService.getFullDisplay(result, unit, plusSign); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnitConversionPipe, deps: [{ token: i1.UnitConversionService }], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: UnitConversionPipe, name: "unitConversion" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UnitConversionPipe, decorators: [{ type: Pipe, args: [{ name: "unitConversion", }] }], ctorParameters: () => [{ type: i1.UnitConversionService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pdC1jb252ZXJzaW9uLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGlwZXMvdW5pdC1jb252ZXJzaW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBQ3pELEVBQUU7QUFDRiwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLDhFQUE4RTtBQUM5RSwrRUFBK0U7QUFDL0UsOEVBQThFO0FBQzlFLDREQUE0RDtBQUM1RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLHVEQUF1RDtBQUN2RCxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLDRFQUE0RTtBQUM1RSwrRUFBK0U7QUFDL0UsMEVBQTBFO0FBQzFFLGlGQUFpRjtBQUNqRiw2RUFBNkU7QUFDN0UsaUJBQWlCO0FBRWpCLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRXBELE9BQU8sRUFDSCxtQkFBbUIsR0FFdEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTVFOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLGtCQUFrQjtJQUMzQixZQUFvQixxQkFBNEM7UUFBNUMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUFHLENBQUM7SUFFcEU7Ozs7Ozs7Ozs7T0FVRztJQUNILFNBQVMsQ0FDTCxLQUFVLEVBQ1YsUUFBZ0IsQ0FBQyxFQUNqQixXQUFvQixLQUFLLEVBQ3pCLE9BQW1CLE9BQU87UUFFMUIsTUFBTSxJQUFJLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FDN0MsS0FBZSxFQUNmLElBQUksRUFDSixLQUFLLENBQ1IsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FDNUMsTUFBTSxFQUNOLElBQUksRUFDSixRQUFRLENBQ1gsQ0FBQztJQUNOLENBQUM7K0dBaENRLGtCQUFrQjs2R0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUg5QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gwqkgMjAyMiBTb2xhcldpbmRzIFdvcmxkd2lkZSwgTExDLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vICBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0b1xuLy8gIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlXG4vLyAgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yXG4vLyAgc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyAgYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vICBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vICBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge1xuICAgIHVuaXRDb252ZXJzaW9uQmFzZXMsXG4gICAgVW5pdE9wdGlvbixcbn0gZnJvbSBcIi4uL2NvbnN0YW50cy91bml0LWNvbnZlcnNpb24uY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBVbml0Q29udmVyc2lvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdW5pdC1jb252ZXJzaW9uLnNlcnZpY2VcIjtcblxuLyoqXG4gKiA8ZXhhbXBsZS11cmw+Li8uLi9leGFtcGxlcy9pbmRleC5odG1sIy9waXBlcy91bml0LWNvbnZlcnNpb248L2V4YW1wbGUtdXJsPlxuICpcbiAqIFBpcGUgZm9yIGNvbnZlcnRpbmcgYSBsYXJnZSBxdWFudGl0eSBvZiBhIHNtYWxsIGJhc2ljIHVuaXQgdG8gYSBzbWFsbGVyIGFwcHJveGltYXRpb24gb2YgdGhlIHNhbWUgcXVhbnRpdHkgaW4gYSBsYXJnZXIgdW5pdC4gVGhpcyBjYW4gYmUgdXNlZnVsIGZvclxuICogZGlzcGxheWluZyBsYXJnZXIgdmFsdWVzIGluIGEgbGltaXRlZCBhbW91bnQgb2Ygc3BhY2UuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiBcInVuaXRDb252ZXJzaW9uXCIsXG59KVxuZXhwb3J0IGNsYXNzIFVuaXRDb252ZXJzaW9uUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdW5pdENvbnZlcnNpb25TZXJ2aWNlOiBVbml0Q29udmVyc2lvblNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb252ZXJzaW9uIG9mIGEgbGFyZ2UgcXVhbnRpdHkgb2YgYSBzbWFsbCBiYXNpYyB1bml0IHRvIGEgc21hbGxlciBxdWFudGl0eSBvZiBhIGxhcmdlciB1bml0LlxuICAgICAqIEZvciBleGFtcGxlLCBhIHF1YW50aXR5IG9mIDEwMjQgaW4gYnl0ZXMgaXMgb3V0cHV0IGFzIFwiMSBLQlwiLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0XG4gICAgICogQHBhcmFtIHNjYWxlIFRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIHRvIHRoZSByaWdodCBvZiB0aGUgZGVjaW1hbCB0byBpbmNsdWRlIGluIHRoZSBjb252ZXJ0ZWQgdmFsdWVcbiAgICAgKiBAcGFyYW0gcGx1c1NpZ24gU3BlY2lmeSB3aGV0aGVyIHRvIHByZWZpeCBwb3NpdGl2ZSB2YWx1ZXMgd2l0aCBhICcrJ1xuICAgICAqIEBwYXJhbSB1bml0IFRoZSBiYXNpYyB1bml0IHRvIHVzZSBmb3IgdGhlIGNvbnZlcnNpb24gcmVzdWx0J3MgdW5pdCBsYWJlbFxuICAgICAqXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbnZlcnNpb24gcmVzdWx0IGFwcGVuZGVkIHdpdGggdGhlIGNvbnZlcnRlZCB1bml0IGxhYmVsXG4gICAgICovXG4gICAgdHJhbnNmb3JtKFxuICAgICAgICB2YWx1ZTogYW55LFxuICAgICAgICBzY2FsZTogbnVtYmVyID0gMCxcbiAgICAgICAgcGx1c1NpZ246IGJvb2xlYW4gPSBmYWxzZSxcbiAgICAgICAgdW5pdDogVW5pdE9wdGlvbiA9IFwiYnl0ZXNcIlxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSB1bml0Q29udmVyc2lvbkJhc2VzW3VuaXRdO1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnVuaXRDb252ZXJzaW9uU2VydmljZS5jb252ZXJ0KFxuICAgICAgICAgICAgdmFsdWUgYXMgbnVtYmVyLFxuICAgICAgICAgICAgYmFzZSxcbiAgICAgICAgICAgIHNjYWxlXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudW5pdENvbnZlcnNpb25TZXJ2aWNlLmdldEZ1bGxEaXNwbGF5KFxuICAgICAgICAgICAgcmVzdWx0LFxuICAgICAgICAgICAgdW5pdCxcbiAgICAgICAgICAgIHBsdXNTaWduXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19