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