@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
39 lines • 13.7 kB
JavaScript
import { Component, Input } from '@angular/core';
import { gettext } from '@c8y/ngx-components';
import { has, uniq } from 'lodash-es';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components";
import * as i2 from "@angular/common";
import * as i3 from "@c8y/ngx-components/operations/stepper-frames";
export class ConfirmSoftwareSelectionStepComponent {
ngOnChanges(changes) {
if (changes.selectedItems) {
const deviceTypes = this.deviceTypes;
this.title =
deviceTypes && deviceTypes.length
? deviceTypes.join(', ')
: gettext('Undefined`device type`');
}
}
get selectedToInstall() {
return this.selectedItems.filter(software => software.action === 'install');
}
get selectedToDelete() {
return this.selectedItems.filter(software => software.action === 'delete');
}
get deviceTypes() {
return uniq(this.selectedItems
.filter(val => has(val, ['software', 'c8y_Filter', 'type']))
.map(val => val.software.c8y_Filter.type)
.filter(val => !!val));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConfirmSoftwareSelectionStepComponent, selector: "c8y-confirm-software-selection-step", inputs: { selectedItems: "selectedItems" }, usesOnChanges: true, ngImport: i0, template: "<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n", dependencies: [{ kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i1.C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.ListGroupComponent, selector: "c8y-list-group" }, { kind: "component", type: i1.ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "component", type: i1.ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: i1.ListItemBodyComponent, selector: "c8y-list-item-body, c8y-li-body", inputs: ["body"] }, { kind: "component", type: i3.PreviewSelectionFrameComponent, selector: "c8y-preview-selection-frame", inputs: ["header", "name", "description", "type"] }, { kind: "directive", type: i3.PreviewBlockDirective, selector: "[previewBlock]", inputs: ["previewBlock", "previewBlockIf"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfirmSoftwareSelectionStepComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-confirm-software-selection-step', template: "<c8y-preview-selection-frame [header]=\"'Confirm selection' | translate\">\n <ng-container *previewBlock=\"'Device type' | translate\">\n <ng-container *ngIf=\"deviceTypes.length > 0; else noType\">\n <span *ngFor=\"let deviceType of deviceTypes; let last = last\"\n >{{ deviceType }}{{ last ? '' : ', ' }}</span\n >\n </ng-container>\n <ng-template #noType>\n <em class=\"text-muted\" translate>Undefined`device type`</em>\n </ng-template>\n </ng-container>\n <c8y-list-group\n *previewBlock=\"'Installations/updates`software`' | translate; if: !!selectedToInstall.length\"\n >\n <c8y-li *ngFor=\"let selectedItem of selectedToInstall\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6 text-truncate\" title=\"{{ selectedItem.software.name }}\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\" *ngIf=\"!!selectedItem?.version?.c8y_Software?.version\">\n <span class=\"text-label-small m-r-4\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n <c8y-list-group *previewBlock=\"'Removals`software`' | translate; if: !!selectedToDelete.length\">\n <c8y-li *ngFor=\"let selectedItem of selectedToDelete\">\n <c8y-li-icon>\n <i c8yIcon=\"c8y-tools\"></i>\n </c8y-li-icon>\n <c8y-li-body class=\"content-flex-10\">\n <div class=\"col-6\">\n {{ selectedItem.software.name }}\n </div>\n <div class=\"col-6 text-right\">\n <span class=\"text-label-small m-r-8\" translate> Version </span>\n <span>\n {{ selectedItem.version.c8y_Software.version }}\n </span>\n </div>\n </c8y-li-body>\n </c8y-li>\n </c8y-list-group>\n</c8y-preview-selection-frame>\n" }]
}], propDecorators: { selectedItems: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1zb2Z0d2FyZS1zZWxlY3Rpb24tc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL3N0ZXBwZXItYnVsay10eXBlLXNvZnR3YXJlL2NvbmZpcm0tc29mdHdhcmUtc2VsZWN0aW9uLXN0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vb3BlcmF0aW9ucy9zdGVwcGVyLWJ1bGstdHlwZS1zb2Z0d2FyZS9jb25maXJtLXNvZnR3YXJlLXNlbGVjdGlvbi1zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7O0FBT3RDLE1BQU0sT0FBTyxxQ0FBcUM7SUFJaEQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLE1BQU0sV0FBVyxHQUFhLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDL0MsSUFBSSxDQUFDLEtBQUs7Z0JBQ1IsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNO29CQUMvQixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQ1QsSUFBSSxDQUFDLGFBQWE7YUFDZixNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO2FBQzNELEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQzthQUN4QyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQ3hCLENBQUM7SUFDSixDQUFDOytHQTdCVSxxQ0FBcUM7bUdBQXJDLHFDQUFxQyw0SUNUbEQsaytEQWtEQTs7NEZEekNhLHFDQUFxQztrQkFKakQsU0FBUzsrQkFDRSxxQ0FBcUM7OEJBSXRDLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IGhhcywgdW5pcSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBJU2VsZWN0ZWRTb2Z0d2FyZSB9IGZyb20gJy4vc2VsZWN0LXNvZnR3YXJlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LWNvbmZpcm0tc29mdHdhcmUtc2VsZWN0aW9uLXN0ZXAnLFxuICB0ZW1wbGF0ZVVybDogJ2NvbmZpcm0tc29mdHdhcmUtc2VsZWN0aW9uLXN0ZXAuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpcm1Tb2Z0d2FyZVNlbGVjdGlvblN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBJU2VsZWN0ZWRTb2Z0d2FyZVtdO1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zZWxlY3RlZEl0ZW1zKSB7XG4gICAgICBjb25zdCBkZXZpY2VUeXBlczogc3RyaW5nW10gPSB0aGlzLmRldmljZVR5cGVzO1xuICAgICAgdGhpcy50aXRsZSA9XG4gICAgICAgIGRldmljZVR5cGVzICYmIGRldmljZVR5cGVzLmxlbmd0aFxuICAgICAgICAgID8gZGV2aWNlVHlwZXMuam9pbignLCAnKVxuICAgICAgICAgIDogZ2V0dGV4dCgnVW5kZWZpbmVkYGRldmljZSB0eXBlYCcpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzZWxlY3RlZFRvSW5zdGFsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihzb2Z0d2FyZSA9PiBzb2Z0d2FyZS5hY3Rpb24gPT09ICdpbnN0YWxsJyk7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRUb0RlbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihzb2Z0d2FyZSA9PiBzb2Z0d2FyZS5hY3Rpb24gPT09ICdkZWxldGUnKTtcbiAgfVxuXG4gIGdldCBkZXZpY2VUeXBlcygpIHtcbiAgICByZXR1cm4gdW5pcShcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1xuICAgICAgICAuZmlsdGVyKHZhbCA9PiBoYXModmFsLCBbJ3NvZnR3YXJlJywgJ2M4eV9GaWx0ZXInLCAndHlwZSddKSlcbiAgICAgICAgLm1hcCh2YWwgPT4gdmFsLnNvZnR3YXJlLmM4eV9GaWx0ZXIudHlwZSlcbiAgICAgICAgLmZpbHRlcih2YWwgPT4gISF2YWwpXG4gICAgKTtcbiAgfVxufVxuIiwiPGM4eS1wcmV2aWV3LXNlbGVjdGlvbi1mcmFtZSBbaGVhZGVyXT1cIidDb25maXJtIHNlbGVjdGlvbicgfCB0cmFuc2xhdGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqcHJldmlld0Jsb2NrPVwiJ0RldmljZSB0eXBlJyB8IHRyYW5zbGF0ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXZpY2VUeXBlcy5sZW5ndGggPiAwOyBlbHNlIG5vVHlwZVwiPlxuICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRldmljZVR5cGUgb2YgZGV2aWNlVHlwZXM7IGxldCBsYXN0ID0gbGFzdFwiXG4gICAgICAgID57eyBkZXZpY2VUeXBlIH19e3sgbGFzdCA/ICcnIDogJywgJyB9fTwvc3BhblxuICAgICAgPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9UeXBlPlxuICAgICAgPGVtIGNsYXNzPVwidGV4dC1tdXRlZFwiIHRyYW5zbGF0ZT5VbmRlZmluZWRgZGV2aWNlIHR5cGVgPC9lbT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGM4eS1saXN0LWdyb3VwXG4gICAgKnByZXZpZXdCbG9jaz1cIidJbnN0YWxsYXRpb25zL3VwZGF0ZXNgc29mdHdhcmVgJyB8IHRyYW5zbGF0ZTsgaWY6ICEhc2VsZWN0ZWRUb0luc3RhbGwubGVuZ3RoXCJcbiAgPlxuICAgIDxjOHktbGkgKm5nRm9yPVwibGV0IHNlbGVjdGVkSXRlbSBvZiBzZWxlY3RlZFRvSW5zdGFsbFwiPlxuICAgICAgPGM4eS1saS1pY29uPlxuICAgICAgICA8aSBjOHlJY29uPVwiYzh5LXRvb2xzXCI+PC9pPlxuICAgICAgPC9jOHktbGktaWNvbj5cbiAgICAgIDxjOHktbGktYm9keSBjbGFzcz1cImNvbnRlbnQtZmxleC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTYgdGV4dC10cnVuY2F0ZVwiIHRpdGxlPVwie3sgc2VsZWN0ZWRJdGVtLnNvZnR3YXJlLm5hbWUgfX1cIj5cbiAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW0uc29mdHdhcmUubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHRleHQtcmlnaHRcIiAqbmdJZj1cIiEhc2VsZWN0ZWRJdGVtPy52ZXJzaW9uPy5jOHlfU29mdHdhcmU/LnZlcnNpb25cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGFiZWwtc21hbGwgbS1yLTRcIiB0cmFuc2xhdGU+IFZlcnNpb24gPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtLnZlcnNpb24uYzh5X1NvZnR3YXJlLnZlcnNpb24gfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGktYm9keT5cbiAgICA8L2M4eS1saT5cbiAgPC9jOHktbGlzdC1ncm91cD5cbiAgPGM4eS1saXN0LWdyb3VwICpwcmV2aWV3QmxvY2s9XCInUmVtb3ZhbHNgc29mdHdhcmVgJyB8IHRyYW5zbGF0ZTsgaWY6ICEhc2VsZWN0ZWRUb0RlbGV0ZS5sZW5ndGhcIj5cbiAgICA8Yzh5LWxpICpuZ0Zvcj1cImxldCBzZWxlY3RlZEl0ZW0gb2Ygc2VsZWN0ZWRUb0RlbGV0ZVwiPlxuICAgICAgPGM4eS1saS1pY29uPlxuICAgICAgICA8aSBjOHlJY29uPVwiYzh5LXRvb2xzXCI+PC9pPlxuICAgICAgPC9jOHktbGktaWNvbj5cbiAgICAgIDxjOHktbGktYm9keSBjbGFzcz1cImNvbnRlbnQtZmxleC0xMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW0uc29mdHdhcmUubmFtZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02IHRleHQtcmlnaHRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbGFiZWwtc21hbGwgbS1yLThcIiB0cmFuc2xhdGU+IFZlcnNpb24gPC9zcGFuPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtLnZlcnNpb24uYzh5X1NvZnR3YXJlLnZlcnNpb24gfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jOHktbGktYm9keT5cbiAgICA8L2M4eS1saT5cbiAgPC9jOHktbGlzdC1ncm91cD5cbjwvYzh5LXByZXZpZXctc2VsZWN0aW9uLWZyYW1lPlxuIl19