UNPKG

ng-units

Version:

Angular component library for units of measurement.

45 lines 5.44 kB
import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { filter } from 'rxjs/operators'; import * as i0 from "@angular/core"; export class QuantityMessage { quantity; } export class SystemOfUnits { quantities = []; quantityChange = new Subject(); changes$ = this.quantityChange.asObservable(); add(...quantities) { this.quantities.push(...quantities); } get(quantityName) { const quantity = this.quantities.find(q => q.name === quantityName); return quantity; } selectUnit(quantity, unit) { quantity.selectUnit(unit); this.broadcast(quantity); } /** * @depracted since 11.0.0. Use changes$ instead. */ changes() { return this.changes$; } /** * @depracted since 11.0.0. Use changes$ instead. */ subscribe(quantity, callback) { return this.quantityChange.pipe(filter(m => m.quantity === quantity)) .subscribe(callback); } broadcast(quantity) { this.quantityChange.next({ quantity }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: SystemOfUnits, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: SystemOfUnits }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImport: i0, type: SystemOfUnits, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLW9mLXVuaXRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy11bml0cy9zcmMvbGliL3N5c3RlbS1vZi11bml0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFnQixPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd4QyxNQUFNLE9BQU8sZUFBZTtJQUN4QixRQUFRLENBQVk7Q0FDdkI7QUFHRCxNQUFNLE9BQU8sYUFBYTtJQUV0QixVQUFVLEdBQWUsRUFBRSxDQUFDO0lBRVgsY0FBYyxHQUFHLElBQUksT0FBTyxFQUFtQixDQUFDO0lBQ2pELFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBRzlELEdBQUcsQ0FBQyxHQUFHLFVBQXNCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEdBQUcsQ0FBQyxZQUFvQjtRQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7UUFDcEUsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFrQixFQUFFLElBQWlCO1FBQzVDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxRQUFrQixFQUFFLFFBQXlDO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBa0I7UUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBeENRLGFBQWE7MkdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUXVhbnRpdHkgfSBmcm9tICcuL3F1YW50aXR5JztcclxuaW1wb3J0IHsgVW5pdCB9IGZyb20gJy4vdW5pdCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFF1YW50aXR5TWVzc2FnZSB7XHJcbiAgICBxdWFudGl0eT86IFF1YW50aXR5O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTeXN0ZW1PZlVuaXRzIHtcclxuXHJcbiAgICBxdWFudGl0aWVzOiBRdWFudGl0eVtdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBxdWFudGl0eUNoYW5nZSA9IG5ldyBTdWJqZWN0PFF1YW50aXR5TWVzc2FnZT4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBjaGFuZ2VzJCA9IHRoaXMucXVhbnRpdHlDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG5cclxuICAgIGFkZCguLi5xdWFudGl0aWVzOiBRdWFudGl0eVtdKSB7XHJcbiAgICAgICAgdGhpcy5xdWFudGl0aWVzLnB1c2goLi4ucXVhbnRpdGllcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0KHF1YW50aXR5TmFtZTogc3RyaW5nKTogUXVhbnRpdHl8dW5kZWZpbmVkIHtcclxuICAgICAgICBjb25zdCBxdWFudGl0eSA9IHRoaXMucXVhbnRpdGllcy5maW5kKHEgPT4gcS5uYW1lID09PSBxdWFudGl0eU5hbWUpO1xyXG4gICAgICAgIHJldHVybiBxdWFudGl0eTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RVbml0KHF1YW50aXR5OiBRdWFudGl0eSwgdW5pdDogc3RyaW5nfFVuaXQpIHtcclxuICAgICAgICBxdWFudGl0eS5zZWxlY3RVbml0KHVuaXQpO1xyXG4gICAgICAgIHRoaXMuYnJvYWRjYXN0KHF1YW50aXR5KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXByYWN0ZWQgc2luY2UgMTEuMC4wLiBVc2UgY2hhbmdlcyQgaW5zdGVhZC5cclxuICAgICAqL1xyXG4gICAgY2hhbmdlcygpOiBPYnNlcnZhYmxlPFF1YW50aXR5TWVzc2FnZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNoYW5nZXMkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlcHJhY3RlZCBzaW5jZSAxMS4wLjAuIFVzZSBjaGFuZ2VzJCBpbnN0ZWFkLlxyXG4gICAgICovXHJcbiAgICBzdWJzY3JpYmUocXVhbnRpdHk6IFF1YW50aXR5LCBjYWxsYmFjazogKG06IFF1YW50aXR5TWVzc2FnZSkgPT4gdW5rbm93bik6IFN1YnNjcmlwdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucXVhbnRpdHlDaGFuZ2UucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKG0gPT4gbS5xdWFudGl0eSA9PT0gcXVhbnRpdHkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGNhbGxiYWNrKTtcclxuICAgIH1cclxuXHJcbiAgICBicm9hZGNhc3QocXVhbnRpdHk6IFF1YW50aXR5KSB7XHJcbiAgICAgICAgdGhpcy5xdWFudGl0eUNoYW5nZS5uZXh0KHsgcXVhbnRpdHkgfSk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==