@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
45 lines • 6.86 kB
JavaScript
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