@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
21 lines • 2.5 kB
JavaScript
import { distinctUntilChanged, map } from 'rxjs/operators';
/**
* A abstract state which should be included in each state.
* @abstract
*/
export class StateService {
/**
* Maps to a property and just returns that property.
* @param mappedProperty The property to map to.
*/
map(mappedProperty) {
return this.state$.pipe(map(mappedProperty), distinctUntilChanged());
}
/**
* Emits a new state.
*/
emitNewState() {
this.state$.next(this.state);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc2VydmljZS5hYnN0cmFjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvY29tbW9uL3N0YXRlLXNlcnZpY2UuYWJzdHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNEOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsWUFBWTtJQVloQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsY0FBc0M7UUFDeEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqXG4gKiBBIGFic3RyYWN0IHN0YXRlIHdoaWNoIHNob3VsZCBiZSBpbmNsdWRlZCBpbiBlYWNoIHN0YXRlLlxuICogQGFic3RyYWN0XG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdGF0ZVNlcnZpY2Uge1xuICAvKipcbiAgICogU2F2ZXMgdGhlIHN0YXRlLiBTaG91bGQgbm90IGJlIGFjY2Vzc2libGUgZGlyZWN0bHkuIFVzZSBtYXAgb3IgdGhlIGdldHRlciB0byBhY2Nlc3NcbiAgICogdGhlIHN0YXRlLiBVc2UgZnVuY3Rpb25zIGluIHRoZSBpbXBsZW1lbnRhdGlvbiB0byBjaGFuZ2UgdGhlIHN0YXRlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IHN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gfCBhbnk7XG5cbiAgLyoqXG4gICAqIFNob3VsZCByZXR1cm4gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBTdGF0ZVNlcnZpY2VcbiAgICovXG4gIGFic3RyYWN0IGdldCBzdGF0ZSgpO1xuXG4gIC8qKlxuICAgKiBNYXBzIHRvIGEgcHJvcGVydHkgYW5kIGp1c3QgcmV0dXJucyB0aGF0IHByb3BlcnR5LlxuICAgKiBAcGFyYW0gbWFwcGVkUHJvcGVydHkgVGhlIHByb3BlcnR5IHRvIG1hcCB0by5cbiAgICovXG4gIG1hcChtYXBwZWRQcm9wZXJ0eTogKHN0YXRlUHJvcGVydHkpID0+IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUobWFwKG1hcHBlZFByb3BlcnR5KSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBuZXcgc3RhdGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgZW1pdE5ld1N0YXRlKCkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQodGhpcy5zdGF0ZSk7XG4gIH1cbn1cbiJdfQ==