UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

66 lines 8.42 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { AppStateService } from '../common'; import { VERSION_MODULE_CONFIG } from './version.model'; import { of } from 'rxjs'; import { distinctUntilChanged, filter, map } from 'rxjs/operators'; import { PluginsService } from '../plugins'; import * as i0 from "@angular/core"; import * as i1 from "../common"; import * as i2 from "../plugins"; /** * Will provide the version of plugins installed to the current application. */ export class WebSDKPluginVersionFactory { constructor(config, appState, plugins) { this.config = config; this.appState = appState; this.plugins = plugins; this.webSDKPluginVersions$ = of([]); if (this.config?.disableWebSDKPluginVersionFactory) { return; } this.webSDKPluginVersions$ = this.appState.currentApplication.pipe(map(app => this.plugins.getMFRemotes(app)), filter(remotes => !!remotes), distinctUntilChanged(), map(remotes => this.getVersionsFromRemotes(remotes))); } get() { return this.webSDKPluginVersions$; } getVersionsFromRemotes(remotes) { const versions = new Array(); for (const key of Object.keys(remotes)) { const modules = remotes[key]; if (!modules?.length) { continue; } const [contextPath, version] = key.split('@', 2); const versionsBehindKey = modules.map(module => { return { label: `${contextPath} => ${module}`, version: version || 'latest', type: 'INSTALLED_MF_PLUGINS', hidden: true, custom: { key, contextPath, module } }; }); versions.push(...versionsBehindKey); } return versions; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSDKPluginVersionFactory, deps: [{ token: VERSION_MODULE_CONFIG, optional: true }, { token: i1.AppStateService }, { token: i2.PluginsService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSDKPluginVersionFactory, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: WebSDKPluginVersionFactory, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [VERSION_MODULE_CONFIG] }] }, { type: i1.AppStateService }, { type: i2.PluginsService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2RrLXBsdWdpbi12ZXJzaW9uLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3ZlcnNpb24vd2Vic2RrLXBsdWdpbi12ZXJzaW9uLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0sV0FBVyxDQUFDO0FBQzlELE9BQU8sRUFBZ0MscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7OztBQUc1Qzs7R0FFRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFHckMsWUFDcUQsTUFBMkIsRUFDdEUsUUFBeUIsRUFDekIsT0FBdUI7UUFGb0IsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFDdEUsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFMakMsMEJBQXFCLEdBQTBCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQU9wRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsaUNBQWlDLEVBQUUsQ0FBQztZQUNuRCxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FDaEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDMUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUM1QixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQWlDO1FBQ3RELE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFXLENBQUM7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkMsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3JCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsTUFBTSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUVqRCxNQUFNLGlCQUFpQixHQUFjLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hELE9BQU87b0JBQ0wsS0FBSyxFQUFFLEdBQUcsV0FBVyxPQUFPLE1BQU0sRUFBRTtvQkFDcEMsT0FBTyxFQUFFLE9BQU8sSUFBSSxRQUFRO29CQUM1QixJQUFJLEVBQUUsc0JBQXNCO29CQUM1QixNQUFNLEVBQUUsSUFBSTtvQkFDWixNQUFNLEVBQUU7d0JBQ04sR0FBRzt3QkFDSCxXQUFXO3dCQUNYLE1BQU07cUJBQ1A7aUJBQ0YsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBaERVLDBCQUEwQixrQkFJZixxQkFBcUI7bUhBSmhDLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSwgRXh0ZW5zaW9uRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBWZXJzaW9uLCBWZXJzaW9uTW9kdWxlQ29uZmlnLCBWRVJTSU9OX01PRFVMRV9DT05GSUcgfSBmcm9tICcuL3ZlcnNpb24ubW9kZWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFBsdWdpbnNTZXJ2aWNlIH0gZnJvbSAnLi4vcGx1Z2lucyc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblJlbW90ZVBsdWdpbnMgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5cbi8qKlxuICogV2lsbCBwcm92aWRlIHRoZSB2ZXJzaW9uIG9mIHBsdWdpbnMgaW5zdGFsbGVkIHRvIHRoZSBjdXJyZW50IGFwcGxpY2F0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXZWJTREtQbHVnaW5WZXJzaW9uRmFjdG9yeSBpbXBsZW1lbnRzIEV4dGVuc2lvbkZhY3Rvcnk8VmVyc2lvbj4ge1xuICB3ZWJTREtQbHVnaW5WZXJzaW9ucyQ6IE9ic2VydmFibGU8VmVyc2lvbltdPiA9IG9mKFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZFUlNJT05fTU9EVUxFX0NPTkZJRykgcHJpdmF0ZSBjb25maWc6IFZlcnNpb25Nb2R1bGVDb25maWcsXG4gICAgcHJpdmF0ZSBhcHBTdGF0ZTogQXBwU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGx1Z2luczogUGx1Z2luc1NlcnZpY2VcbiAgKSB7XG4gICAgaWYgKHRoaXMuY29uZmlnPy5kaXNhYmxlV2ViU0RLUGx1Z2luVmVyc2lvbkZhY3RvcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy53ZWJTREtQbHVnaW5WZXJzaW9ucyQgPSB0aGlzLmFwcFN0YXRlLmN1cnJlbnRBcHBsaWNhdGlvbi5waXBlKFxuICAgICAgbWFwKGFwcCA9PiB0aGlzLnBsdWdpbnMuZ2V0TUZSZW1vdGVzKGFwcCkpLFxuICAgICAgZmlsdGVyKHJlbW90ZXMgPT4gISFyZW1vdGVzKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBtYXAocmVtb3RlcyA9PiB0aGlzLmdldFZlcnNpb25zRnJvbVJlbW90ZXMocmVtb3RlcykpXG4gICAgKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFZlcnNpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLndlYlNES1BsdWdpblZlcnNpb25zJDtcbiAgfVxuXG4gIGdldFZlcnNpb25zRnJvbVJlbW90ZXMocmVtb3RlczogQXBwbGljYXRpb25SZW1vdGVQbHVnaW5zKTogVmVyc2lvbltdIHtcbiAgICBjb25zdCB2ZXJzaW9ucyA9IG5ldyBBcnJheTxWZXJzaW9uPigpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHJlbW90ZXMpKSB7XG4gICAgICBjb25zdCBtb2R1bGVzID0gcmVtb3Rlc1trZXldO1xuICAgICAgaWYgKCFtb2R1bGVzPy5sZW5ndGgpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBjb25zdCBbY29udGV4dFBhdGgsIHZlcnNpb25dID0ga2V5LnNwbGl0KCdAJywgMik7XG5cbiAgICAgIGNvbnN0IHZlcnNpb25zQmVoaW5kS2V5OiBWZXJzaW9uW10gPSBtb2R1bGVzLm1hcChtb2R1bGUgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGxhYmVsOiBgJHtjb250ZXh0UGF0aH0gPT4gJHttb2R1bGV9YCxcbiAgICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8ICdsYXRlc3QnLFxuICAgICAgICAgIHR5cGU6ICdJTlNUQUxMRURfTUZfUExVR0lOUycsXG4gICAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICAgIGN1c3RvbToge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgY29udGV4dFBhdGgsXG4gICAgICAgICAgICBtb2R1bGVcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICAgIHZlcnNpb25zLnB1c2goLi4udmVyc2lvbnNCZWhpbmRLZXkpO1xuICAgIH1cbiAgICByZXR1cm4gdmVyc2lvbnM7XG4gIH1cbn1cbiJdfQ==