@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
48 lines • 13.5 kB
JavaScript
import { Component, Input } from '@angular/core';
import { defaultPackageTypes, EcosystemService } from '@c8y/ngx-components/ecosystem/shared';
import { BsModalRef } from 'ngx-bootstrap/modal';
import { BehaviorSubject, map, Observable } from 'rxjs';
import * as i0 from "@angular/core";
import * as i1 from "ngx-bootstrap/modal";
import * as i2 from "@c8y/ngx-components/ecosystem/shared";
import * as i3 from "@c8y/ngx-components";
import * as i4 from "@angular/common";
import * as i5 from "./plugin-list.component";
import * as i6 from "./only-latest-filter/only-latest-filter.component";
export class InstallPluginComponent {
constructor(bsModalRef, ecosystemService) {
this.bsModalRef = bsModalRef;
this.ecosystemService = ecosystemService;
this.filteredPlugins$ = new BehaviorSubject([]);
this.selectedPlugins = [];
this.packageTypes = defaultPackageTypes;
this.result = new Promise((resolve, reject) => {
this._install = resolve;
this._cancel = reject;
});
this.onlyLatestPluginVersion = true;
}
setFilterPipe(filterPipe) {
this.filteredPlugins$ = this.plugins$.pipe(map(plugins => plugins.map(plugin => {
plugin.filterProps = this.ecosystemService.getAppFilterProps(plugin.originApp);
return plugin;
})), src => filterPipe(src));
}
cancel() {
this.bsModalRef.hide();
this._cancel();
}
install() {
this._install(this.selectedPlugins);
this.bsModalRef.hide();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InstallPluginComponent, deps: [{ token: i1.BsModalRef }, { token: i2.EcosystemService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InstallPluginComponent, selector: "c8y-install-plugin", inputs: { plugins$: "plugins$" }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'plugin'\"></i>\n <div\n class=\"modal-title h4\"\n id=\"modal-title\"\n translate\n >\n Available plugins\n </div>\n </div>\n <div class=\"p-t-8 p-16 text-center separator-bottom flex-no-shrink\">\n <p\n class=\"text-medium m-b-8\"\n translate\n >\n Select the compatible plugins to install\n </p>\n <c8y-list-filters\n (filterPipeChange)=\"setFilterPipe($event)\"\n [packageTypes]=\"packageTypes\"\n >\n <c8y-archived-filter></c8y-archived-filter>\n <c8y-only-latest-filter></c8y-only-latest-filter>\n </c8y-list-filters>\n </div>\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <c8y-plugin-list\n class=\"m-t-16\"\n (selectedItems)=\"selectedPlugins = $event\"\n [emptyListText]=\"'No plugins available' | translate\"\n [plugins$]=\"filteredPlugins$\"\n [selectable]=\"true\"\n ></c8y-plugin-list>\n </div>\n\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n data-cy=\"install-plugin--cancel-button\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Install' | translate }}\"\n type=\"button\"\n (click)=\"install()\"\n [disabled]=\"selectedPlugins.length === 0\"\n data-cy=\"install-plugin--install-button\"\n >\n {{ 'Install' | translate }}\n <span\n class=\"badge\"\n *ngIf=\"selectedPlugins.length as length\"\n >\n {{ length }}\n </span>\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i3.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ListFiltersComponent, selector: "c8y-list-filters", inputs: ["packageTypes", "packageAvailabilities", "packageContents"], outputs: ["filterPipeChange"] }, { kind: "component", type: i2.ArchivedFilterComponent, selector: "c8y-archived-filter" }, { kind: "component", type: i5.PluginListComponent, selector: "c8y-plugin-list", inputs: ["plugins$", "emptyListText", "selectable", "hideSource", "installable", "package"], outputs: ["selectedItems"] }, { kind: "component", type: i6.OnlyLatestFilterComponent, selector: "c8y-only-latest-filter" }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InstallPluginComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-install-plugin', template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'plugin'\"></i>\n <div\n class=\"modal-title h4\"\n id=\"modal-title\"\n translate\n >\n Available plugins\n </div>\n </div>\n <div class=\"p-t-8 p-16 text-center separator-bottom flex-no-shrink\">\n <p\n class=\"text-medium m-b-8\"\n translate\n >\n Select the compatible plugins to install\n </p>\n <c8y-list-filters\n (filterPipeChange)=\"setFilterPipe($event)\"\n [packageTypes]=\"packageTypes\"\n >\n <c8y-archived-filter></c8y-archived-filter>\n <c8y-only-latest-filter></c8y-only-latest-filter>\n </c8y-list-filters>\n </div>\n <div\n class=\"modal-inner-scroll\"\n id=\"modal-body\"\n >\n <c8y-plugin-list\n class=\"m-t-16\"\n (selectedItems)=\"selectedPlugins = $event\"\n [emptyListText]=\"'No plugins available' | translate\"\n [plugins$]=\"filteredPlugins$\"\n [selectable]=\"true\"\n ></c8y-plugin-list>\n </div>\n\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"cancel()\"\n data-cy=\"install-plugin--cancel-button\"\n >\n {{ 'Cancel' | translate }}\n </button>\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Install' | translate }}\"\n type=\"button\"\n (click)=\"install()\"\n [disabled]=\"selectedPlugins.length === 0\"\n data-cy=\"install-plugin--install-button\"\n >\n {{ 'Install' | translate }}\n <span\n class=\"badge\"\n *ngIf=\"selectedPlugins.length as length\"\n >\n {{ length }}\n </span>\n </button>\n </div>\n</div>\n" }]
}], ctorParameters: () => [{ type: i1.BsModalRef }, { type: i2.EcosystemService }], propDecorators: { plugins$: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFsbC1wbHVnaW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvaW5zdGFsbC1wbHVnaW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL2FwcGxpY2F0aW9uLXBsdWdpbnMvaW5zdGFsbC1wbHVnaW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFHakIsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU14RCxNQUFNLE9BQU8sc0JBQXNCO0lBYWpDLFlBQ1UsVUFBc0IsRUFDdEIsZ0JBQWtDO1FBRGxDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWI1QyxxQkFBZ0IsR0FBd0MsSUFBSSxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEYsb0JBQWUsR0FBd0IsRUFBRSxDQUFDO1FBQzFDLGlCQUFZLEdBQUcsbUJBQW1CLENBQUM7UUFDbkMsV0FBTSxHQUFpQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyRSxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztZQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUNILDRCQUF1QixHQUFHLElBQUksQ0FBQztJQU81QixDQUFDO0lBRUosYUFBYSxDQUFDLFVBQXNCO1FBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQixNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0UsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsRUFDRCxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBdENVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDRGQ2ZuQywwdkRBbUVBOzs0RkRwRGEsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNFLG9CQUFvQjs4R0FJckIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUGx1Z2luIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBkZWZhdWx0UGFja2FnZVR5cGVzLFxuICBFY29zeXN0ZW1TZXJ2aWNlLFxuICBGaWx0ZXJhYmxlQXBwT3JQbHVnaW4sXG4gIEZpbHRlclBpcGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9lY29zeXN0ZW0vc2hhcmVkJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1pbnN0YWxsLXBsdWdpbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnN0YWxsLXBsdWdpbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSW5zdGFsbFBsdWdpbkNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHBsdWdpbnMkOiBPYnNlcnZhYmxlPEZpbHRlcmFibGVBcHBPclBsdWdpbltdPjtcbiAgZmlsdGVyZWRQbHVnaW5zJDogT2JzZXJ2YWJsZTxGaWx0ZXJhYmxlQXBwT3JQbHVnaW5bXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcbiAgc2VsZWN0ZWRQbHVnaW5zOiBBcHBsaWNhdGlvblBsdWdpbltdID0gW107XG4gIHBhY2thZ2VUeXBlcyA9IGRlZmF1bHRQYWNrYWdlVHlwZXM7XG4gIHJlc3VsdDogUHJvbWlzZTxBcHBsaWNhdGlvblBsdWdpbltdPiA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICB0aGlzLl9pbnN0YWxsID0gcmVzb2x2ZTtcbiAgICB0aGlzLl9jYW5jZWwgPSByZWplY3Q7XG4gIH0pO1xuICBvbmx5TGF0ZXN0UGx1Z2luVmVyc2lvbiA9IHRydWU7XG4gIHByaXZhdGUgX2luc3RhbGw7XG4gIHByaXZhdGUgX2NhbmNlbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlXG4gICkge31cblxuICBzZXRGaWx0ZXJQaXBlKGZpbHRlclBpcGU6IEZpbHRlclBpcGUpIHtcbiAgICB0aGlzLmZpbHRlcmVkUGx1Z2lucyQgPSB0aGlzLnBsdWdpbnMkLnBpcGUoXG4gICAgICBtYXAocGx1Z2lucyA9PlxuICAgICAgICBwbHVnaW5zLm1hcChwbHVnaW4gPT4ge1xuICAgICAgICAgIHBsdWdpbi5maWx0ZXJQcm9wcyA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBGaWx0ZXJQcm9wcyhwbHVnaW4ub3JpZ2luQXBwKTtcbiAgICAgICAgICByZXR1cm4gcGx1Z2luO1xuICAgICAgICB9KVxuICAgICAgKSxcbiAgICAgIHNyYyA9PiBmaWx0ZXJQaXBlKHNyYylcbiAgICApO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gICAgdGhpcy5fY2FuY2VsKCk7XG4gIH1cblxuICBpbnN0YWxsKCkge1xuICAgIHRoaXMuX2luc3RhbGwodGhpcy5zZWxlY3RlZFBsdWdpbnMpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3cG9ydC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aSBbYzh5SWNvbl09XCIncGx1Z2luJ1wiPjwvaT5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm1vZGFsLXRpdGxlIGg0XCJcbiAgICAgIGlkPVwibW9kYWwtdGl0bGVcIlxuICAgICAgdHJhbnNsYXRlXG4gICAgPlxuICAgICAgQXZhaWxhYmxlIHBsdWdpbnNcbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwLXQtOCBwLTE2IHRleHQtY2VudGVyIHNlcGFyYXRvci1ib3R0b20gZmxleC1uby1zaHJpbmtcIj5cbiAgICA8cFxuICAgICAgY2xhc3M9XCJ0ZXh0LW1lZGl1bSBtLWItOFwiXG4gICAgICB0cmFuc2xhdGVcbiAgICA+XG4gICAgICBTZWxlY3QgdGhlIGNvbXBhdGlibGUgcGx1Z2lucyB0byBpbnN0YWxsXG4gICAgPC9wPlxuICAgIDxjOHktbGlzdC1maWx0ZXJzXG4gICAgICAoZmlsdGVyUGlwZUNoYW5nZSk9XCJzZXRGaWx0ZXJQaXBlKCRldmVudClcIlxuICAgICAgW3BhY2thZ2VUeXBlc109XCJwYWNrYWdlVHlwZXNcIlxuICAgID5cbiAgICAgIDxjOHktYXJjaGl2ZWQtZmlsdGVyPjwvYzh5LWFyY2hpdmVkLWZpbHRlcj5cbiAgICAgIDxjOHktb25seS1sYXRlc3QtZmlsdGVyPjwvYzh5LW9ubHktbGF0ZXN0LWZpbHRlcj5cbiAgICA8L2M4eS1saXN0LWZpbHRlcnM+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJtb2RhbC1pbm5lci1zY3JvbGxcIlxuICAgIGlkPVwibW9kYWwtYm9keVwiXG4gID5cbiAgICA8Yzh5LXBsdWdpbi1saXN0XG4gICAgICBjbGFzcz1cIm0tdC0xNlwiXG4gICAgICAoc2VsZWN0ZWRJdGVtcyk9XCJzZWxlY3RlZFBsdWdpbnMgPSAkZXZlbnRcIlxuICAgICAgW2VtcHR5TGlzdFRleHRdPVwiJ05vIHBsdWdpbnMgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbcGx1Z2lucyRdPVwiZmlsdGVyZWRQbHVnaW5zJFwiXG4gICAgICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAgICA+PC9jOHktcGx1Z2luLWxpc3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgICB0aXRsZT1cInt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgIGRhdGEtY3k9XCJpbnN0YWxsLXBsdWdpbi0tY2FuY2VsLWJ1dHRvblwiXG4gICAgPlxuICAgICAge3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgICB0aXRsZT1cInt7ICdJbnN0YWxsJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJpbnN0YWxsKClcIlxuICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdGVkUGx1Z2lucy5sZW5ndGggPT09IDBcIlxuICAgICAgZGF0YS1jeT1cImluc3RhbGwtcGx1Z2luLS1pbnN0YWxsLWJ1dHRvblwiXG4gICAgPlxuICAgICAge3sgJ0luc3RhbGwnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImJhZGdlXCJcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFBsdWdpbnMubGVuZ3RoIGFzIGxlbmd0aFwiXG4gICAgICA+XG4gICAgICAgIHt7IGxlbmd0aCB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19