UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

45 lines 6.86 kB
import { Injectable, Injector } from '@angular/core'; import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators'; import { ExtensionPointForPlugins, fromTriggerOnce, getInjectedHooks, sortByPriority, stateToFactory } from '../common'; import { HOOK_VERSION } from './version.model'; import { pick } from 'lodash-es'; import { PluginsResolveService } from '../plugins'; import * as i0 from "@angular/core"; import * as i1 from "../plugins"; export class VersionService extends ExtensionPointForPlugins { constructor(rootInjector, pluginService) { super(rootInjector, pluginService); this.items$ = this.setupItemsObservable(); this.nonHiddenItems$ = this.items$.pipe(map(versions => versions.filter(version => !version.hidden))); } get state() { return this.state$.value; } add(version) { this.state.add(version); this.emitNewState(); } remove(version) { this.state.delete(version); this.emitNewState(); } cleanUpVersions(versions) { return versions.map(version => pick(version, 'label', 'version', 'type', 'custom')); } setupItemsObservable() { return fromTriggerOnce(undefined, this.refresh$, [ getInjectedHooks(HOOK_VERSION, this.injectors), () => this.factories, stateToFactory(this.state$) ]).pipe(distinctUntilChanged(), map(versions => sortByPriority(versions)), shareReplay(1)); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionService, deps: [{ token: i0.Injector }, { token: i1.PluginsResolveService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: VersionService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.PluginsResolveService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS92ZXJzaW9uL3ZlcnNpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsY0FBYyxFQUNmLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBa0IsWUFBWSxFQUFXLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxZQUFZLENBQUM7OztBQUtuRCxNQUFNLE9BQU8sY0FBZSxTQUFRLHdCQUFpQztJQUluRSxZQUFZLFlBQXNCLEVBQUUsYUFBb0M7UUFDdEUsS0FBSyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELEdBQUcsQ0FBQyxPQUFnQjtRQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFnQjtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFtQjtRQUNqQyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixPQUFPLGVBQWUsQ0FBVSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN4RCxnQkFBZ0IsQ0FBVSxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN2RCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNwQixjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QixDQUFDLENBQUMsSUFBSSxDQUNMLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUN6QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7K0dBekNVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgRXh0ZW5zaW9uUG9pbnRGb3JQbHVnaW5zLFxuICBmcm9tVHJpZ2dlck9uY2UsXG4gIGdldEluamVjdGVkSG9va3MsXG4gIHNvcnRCeVByaW9yaXR5LFxuICBzdGF0ZVRvRmFjdG9yeVxufSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgQ2xlYW5lZFZlcnNpb24sIEhPT0tfVkVSU0lPTiwgVmVyc2lvbiB9IGZyb20gJy4vdmVyc2lvbi5tb2RlbCc7XG5pbXBvcnQgeyBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IFBsdWdpbnNSZXNvbHZlU2VydmljZSB9IGZyb20gJy4uL3BsdWdpbnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBWZXJzaW9uU2VydmljZSBleHRlbmRzIEV4dGVuc2lvblBvaW50Rm9yUGx1Z2luczxWZXJzaW9uPiB7XG4gIGl0ZW1zJDogT2JzZXJ2YWJsZTxWZXJzaW9uW10+O1xuICBub25IaWRkZW5JdGVtcyQ6IE9ic2VydmFibGU8VmVyc2lvbltdPjtcblxuICBjb25zdHJ1Y3Rvcihyb290SW5qZWN0b3I6IEluamVjdG9yLCBwbHVnaW5TZXJ2aWNlOiBQbHVnaW5zUmVzb2x2ZVNlcnZpY2UpIHtcbiAgICBzdXBlcihyb290SW5qZWN0b3IsIHBsdWdpblNlcnZpY2UpO1xuICAgIHRoaXMuaXRlbXMkID0gdGhpcy5zZXR1cEl0ZW1zT2JzZXJ2YWJsZSgpO1xuXG4gICAgdGhpcy5ub25IaWRkZW5JdGVtcyQgPSB0aGlzLml0ZW1zJC5waXBlKFxuICAgICAgbWFwKHZlcnNpb25zID0+IHZlcnNpb25zLmZpbHRlcih2ZXJzaW9uID0+ICF2ZXJzaW9uLmhpZGRlbikpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBzdGF0ZSgpOiBTZXQ8VmVyc2lvbj4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlJC52YWx1ZTtcbiAgfVxuXG4gIGFkZCh2ZXJzaW9uOiBWZXJzaW9uKSB7XG4gICAgdGhpcy5zdGF0ZS5hZGQodmVyc2lvbik7XG4gICAgdGhpcy5lbWl0TmV3U3RhdGUoKTtcbiAgfVxuXG4gIHJlbW92ZSh2ZXJzaW9uOiBWZXJzaW9uKSB7XG4gICAgdGhpcy5zdGF0ZS5kZWxldGUodmVyc2lvbik7XG4gICAgdGhpcy5lbWl0TmV3U3RhdGUoKTtcbiAgfVxuXG4gIGNsZWFuVXBWZXJzaW9ucyh2ZXJzaW9uczogVmVyc2lvbltdKTogQ2xlYW5lZFZlcnNpb25bXSB7XG4gICAgcmV0dXJuIHZlcnNpb25zLm1hcCh2ZXJzaW9uID0+IHBpY2sodmVyc2lvbiwgJ2xhYmVsJywgJ3ZlcnNpb24nLCAndHlwZScsICdjdXN0b20nKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0dXBJdGVtc09ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxWZXJzaW9uW10+IHtcbiAgICByZXR1cm4gZnJvbVRyaWdnZXJPbmNlPFZlcnNpb24+KHVuZGVmaW5lZCwgdGhpcy5yZWZyZXNoJCwgW1xuICAgICAgZ2V0SW5qZWN0ZWRIb29rczxWZXJzaW9uPihIT09LX1ZFUlNJT04sIHRoaXMuaW5qZWN0b3JzKSxcbiAgICAgICgpID0+IHRoaXMuZmFjdG9yaWVzLFxuICAgICAgc3RhdGVUb0ZhY3RvcnkodGhpcy5zdGF0ZSQpXG4gICAgXSkucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBtYXAodmVyc2lvbnMgPT4gc29ydEJ5UHJpb3JpdHkodmVyc2lvbnMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19