ng-units
Version:
Angular component library for units of measurement.
42 lines • 5.18 kB
JavaScript
import { Pipe } from '@angular/core';
import { defaultPrint } from './quantity';
import * as i0 from "@angular/core";
import * as i1 from "./system-of-units.service";
export class QuantityPipe {
system;
constructor(system) {
this.system = system;
}
transform(value, quantity, addSymbolOrUnit, addSymbol) {
if (typeof quantity === 'string') {
quantity = this.system.get(quantity);
}
let unit;
if (typeof addSymbolOrUnit === 'boolean') {
addSymbol = addSymbolOrUnit;
}
else {
unit = addSymbolOrUnit;
}
if (value === null || value === undefined) {
if (!quantity || !addSymbol) {
return '';
}
if (unit) {
return quantity.findUnit(unit)?.symbol;
}
return quantity.unit.symbol;
}
return quantity ? quantity.print(quantity.fromBase(value, unit), addSymbol, unit) : defaultPrint(value);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: QuantityPipe, deps: [{ token: i1.SystemOfUnits }], target: i0.ɵɵFactoryTarget.Pipe });
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.2", ngImport: i0, type: QuantityPipe, name: "ngQuantity", pure: false });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: QuantityPipe, decorators: [{
type: Pipe,
args: [{
name: 'ngQuantity',
pure: false
}]
}], ctorParameters: function () { return [{ type: i1.SystemOfUnits }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnRpdHkucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXVuaXRzL3NyYy9saWIvcXVhbnRpdHkucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sWUFBWSxDQUFDOzs7QUFRcEQsTUFBTSxPQUFPLFlBQVk7SUFFRDtJQUFwQixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO0lBQ3pDLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBeUMsRUFDL0MsUUFBNEIsRUFDNUIsZUFBcUMsRUFDckMsU0FBbUI7UUFFbkIsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDOUIsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsSUFBSSxJQUEyQixDQUFDO1FBQ2hDLElBQUksT0FBTyxlQUFlLEtBQUssU0FBUyxFQUFFO1lBQ3RDLFNBQVMsR0FBRyxlQUFlLENBQUM7U0FDL0I7YUFDSTtZQUNELElBQUksR0FBRyxlQUFlLENBQUM7U0FDMUI7UUFFRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUN6QixPQUFPLEVBQUUsQ0FBQzthQUNiO1lBQ0QsSUFBSSxJQUFJLEVBQUU7Z0JBQ04sT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQzthQUMxQztZQUNELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDL0I7UUFDRCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RyxDQUFDO3VHQWhDUSxZQUFZO3FHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBSnhCLElBQUk7bUJBQUM7b0JBQ0YsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSxLQUFLO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBkZWZhdWx0UHJpbnQsIFF1YW50aXR5IH0gZnJvbSAnLi9xdWFudGl0eSc7XHJcbmltcG9ydCB7IFN5c3RlbU9mVW5pdHMgfSBmcm9tICcuL3N5c3RlbS1vZi11bml0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVW5pdCB9IGZyb20gJy4vdW5pdCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgICBuYW1lOiAnbmdRdWFudGl0eScsXHJcbiAgICBwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUXVhbnRpdHlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzeXN0ZW06IFN5c3RlbU9mVW5pdHMpIHtcclxuICAgIH1cclxuXHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsXHJcbiAgICAgICAgcXVhbnRpdHk/OiBRdWFudGl0eSB8IHN0cmluZyxcclxuICAgICAgICBhZGRTeW1ib2xPclVuaXQ/OiBib29sZWFufFVuaXR8c3RyaW5nLFxyXG4gICAgICAgIGFkZFN5bWJvbD86IGJvb2xlYW4pOiBzdHJpbmd8dW5kZWZpbmVkXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBxdWFudGl0eSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgcXVhbnRpdHkgPSB0aGlzLnN5c3RlbS5nZXQocXVhbnRpdHkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVuaXQ6IHN0cmluZ3xVbml0fHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAodHlwZW9mIGFkZFN5bWJvbE9yVW5pdCA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgICAgIGFkZFN5bWJvbCA9IGFkZFN5bWJvbE9yVW5pdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHVuaXQgPSBhZGRTeW1ib2xPclVuaXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBpZiAoIXF1YW50aXR5IHx8ICFhZGRTeW1ib2wpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAodW5pdCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHF1YW50aXR5LmZpbmRVbml0KHVuaXQpPy5zeW1ib2w7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHF1YW50aXR5LnVuaXQuc3ltYm9sO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcXVhbnRpdHkgPyBxdWFudGl0eS5wcmludChxdWFudGl0eS5mcm9tQmFzZSh2YWx1ZSwgdW5pdCksIGFkZFN5bWJvbCwgdW5pdCkgOiBkZWZhdWx0UHJpbnQodmFsdWUpO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=