@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
57 lines • 12.4 kB
JavaScript
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { AuditRecordType } from '@c8y/client';
import { gettext } from '@c8y/ngx-components';
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/bulk-single-operations-list";
import * as i4 from "./operation-details.component";
export class OperationDetailsTabsComponent {
constructor() {
this.AuditRecordType = AuditRecordType;
this.readOnly = false;
this.onRetryFailedOperations = new EventEmitter();
this.showFailedOperation = new EventEmitter();
this.tabs = [];
}
ngOnInit() {
this.template = this.detailsTemplate;
this.tabs = [
{
label: gettext('Details'),
path: null,
icon: 'asterisk',
template: this.detailsTemplate
},
{
label: gettext('History of changes'),
path: null,
icon: 'archive',
template: this.auditTemplate
}
];
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationDetailsTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OperationDetailsTabsComponent, selector: "c8y-operation-details-tabs", inputs: { operation: "operation", readOnly: "readOnly", bulkOperationModalDetailsService: "bulkOperationModalDetailsService" }, outputs: { onRetryFailedOperations: "onRetryFailedOperations", showFailedOperation: "showFailedOperation" }, viewQueries: [{ propertyName: "detailsTemplate", first: true, predicate: ["details"], descendants: true, static: true }, { propertyName: "auditTemplate", first: true, predicate: ["audit"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"tabContainer\"\n #container\n>\n <ul class=\"nav nav-tabs nav-tabsc8y\">\n <li\n [ngClass]=\"{ active: tab.template === template }\"\n *ngFor=\"let tab of tabs\"\n >\n <button\n class=\"btn\"\n [title]=\"tab.label | translate\"\n (click)=\"template = tab.template\"\n >\n <i [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.label | translate }}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<ng-container *ngTemplateOutlet=\"template\"></ng-container>\n\n<ng-template #details>\n <c8y-operation-li-details\n [operation]=\"operation\"\n (showFailedOperation)=\"showFailedOperation.emit($event)\"\n [bulkOperationModalDetailsService]=\"bulkOperationModalDetailsService\"\n ></c8y-operation-li-details>\n</ng-template>\n\n<ng-template #audit>\n <c8y-audit-log\n [source]=\"operation.id\"\n [type]=\"\n !!operation.operationPrototype ? AuditRecordType.BULK_OPERATION : AuditRecordType.OPERATION\n \"\n ></c8y-audit-log>\n</ng-template>\n\n<c8y-single-operations-list\n class=\"d-flex d-col\"\n *ngIf=\"operation.operationPrototype\"\n [bulkOperation]=\"operation\"\n [readOnly]=\"readOnly\"\n (onRetryFailedOperations)=\"onRetryFailedOperations.emit($event)\"\n></c8y-single-operations-list>\n", dependencies: [{ kind: "component", type: i1.AuditLogComponent, selector: "c8y-audit-log", inputs: ["source", "type"] }, { kind: "directive", type: i1.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.SingleOperationsListComponent, selector: "c8y-single-operations-list", inputs: ["bulkOperation", "readOnly"], outputs: ["onRetryFailedOperations"] }, { kind: "component", type: i4.OperationListItemDetailsComponent, selector: "c8y-operation-li-details", inputs: ["operation", "bulkOperationModalDetailsService"], outputs: ["showFailedOperation"] }, { kind: "pipe", type: i1.C8yTranslatePipe, name: "translate" }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationDetailsTabsComponent, decorators: [{
type: Component,
args: [{ selector: 'c8y-operation-details-tabs', template: "<div\n class=\"tabContainer\"\n #container\n>\n <ul class=\"nav nav-tabs nav-tabsc8y\">\n <li\n [ngClass]=\"{ active: tab.template === template }\"\n *ngFor=\"let tab of tabs\"\n >\n <button\n class=\"btn\"\n [title]=\"tab.label | translate\"\n (click)=\"template = tab.template\"\n >\n <i [c8yIcon]=\"tab.icon\"></i>\n <span class=\"txt\">{{ tab.label | translate }}</span>\n </button>\n </li>\n </ul>\n</div>\n\n<ng-container *ngTemplateOutlet=\"template\"></ng-container>\n\n<ng-template #details>\n <c8y-operation-li-details\n [operation]=\"operation\"\n (showFailedOperation)=\"showFailedOperation.emit($event)\"\n [bulkOperationModalDetailsService]=\"bulkOperationModalDetailsService\"\n ></c8y-operation-li-details>\n</ng-template>\n\n<ng-template #audit>\n <c8y-audit-log\n [source]=\"operation.id\"\n [type]=\"\n !!operation.operationPrototype ? AuditRecordType.BULK_OPERATION : AuditRecordType.OPERATION\n \"\n ></c8y-audit-log>\n</ng-template>\n\n<c8y-single-operations-list\n class=\"d-flex d-col\"\n *ngIf=\"operation.operationPrototype\"\n [bulkOperation]=\"operation\"\n [readOnly]=\"readOnly\"\n (onRetryFailedOperations)=\"onRetryFailedOperations.emit($event)\"\n></c8y-single-operations-list>\n" }]
}], propDecorators: { operation: [{
type: Input
}], readOnly: [{
type: Input
}], bulkOperationModalDetailsService: [{
type: Input
}], onRetryFailedOperations: [{
type: Output
}], showFailedOperation: [{
type: Output
}], detailsTemplate: [{
type: ViewChild,
args: ['details', { static: true }]
}], auditTemplate: [{
type: ViewChild,
args: ['audit', { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLWRldGFpbHMtdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL29wZXJhdGlvbnMtbGlzdC1pdGVtLWRldGFpbHMvb3BlcmF0aW9uLWRldGFpbHMtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9vcGVyYXRpb25zL29wZXJhdGlvbnMtbGlzdC1pdGVtLWRldGFpbHMvb3BlcmF0aW9uLWRldGFpbHMtdGFicy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUE4QixNQUFNLGFBQWEsQ0FBQztBQUMxRSxPQUFPLEVBQUUsT0FBTyxFQUFPLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQU9uRCxNQUFNLE9BQU8sNkJBQTZCO0lBSjFDO1FBS0Usb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFLbEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUlQLDRCQUF1QixHQUEwQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3BGLHdCQUFtQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBS3pFLFNBQUksR0FBVSxFQUFFLENBQUM7S0FxQmxCO0lBbEJDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFFckMsSUFBSSxDQUFDLElBQUksR0FBRztZQUNWO2dCQUNFLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUN6QixJQUFJLEVBQUUsSUFBSTtnQkFDVixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlO2FBQy9CO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztnQkFDcEMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhO2FBQzdCO1NBQ0YsQ0FBQztJQUNKLENBQUM7K0dBcENVLDZCQUE2QjttR0FBN0IsNkJBQTZCLGdoQkNqQjFDLHV5Q0ErQ0E7OzRGRDlCYSw2QkFBNkI7a0JBSnpDLFNBQVM7K0JBQ0UsNEJBQTRCOzhCQU90QyxTQUFTO3NCQURSLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGdDQUFnQztzQkFEL0IsS0FBSztnQkFFSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUVpQyxlQUFlO3NCQUF0RCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsYUFBYTtzQkFBbEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXVkaXRSZWNvcmRUeXBlLCBJT3BlcmF0aW9uLCBJT3BlcmF0aW9uQnVsayB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IGdldHRleHQsIFRhYiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQnVsa09wZXJhdGlvbk1vZGFsRGV0YWlsc1NlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL29wZXJhdGlvbnMvYnVsay1vcGVyYXRpb24tbW9kYWwtZGV0YWlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1vcGVyYXRpb24tZGV0YWlscy10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL29wZXJhdGlvbi1kZXRhaWxzLXRhYnMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbkRldGFpbHNUYWJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQXVkaXRSZWNvcmRUeXBlID0gQXVkaXRSZWNvcmRUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIG9wZXJhdGlvbjogUGFydGlhbDxJT3BlcmF0aW9uICYgSU9wZXJhdGlvbkJ1bGs+O1xuICBASW5wdXQoKVxuICByZWFkT25seSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGJ1bGtPcGVyYXRpb25Nb2RhbERldGFpbHNTZXJ2aWNlOiBCdWxrT3BlcmF0aW9uTW9kYWxEZXRhaWxzU2VydmljZTtcbiAgQE91dHB1dCgpIG9uUmV0cnlGYWlsZWRPcGVyYXRpb25zOiBFdmVudEVtaXR0ZXI8UGFydGlhbDxJT3BlcmF0aW9uQnVsaz4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2hvd0ZhaWxlZE9wZXJhdGlvbjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnZGV0YWlscycsIHsgc3RhdGljOiB0cnVlIH0pIGRldGFpbHNUZW1wbGF0ZTogYW55O1xuICBAVmlld0NoaWxkKCdhdWRpdCcsIHsgc3RhdGljOiB0cnVlIH0pIGF1ZGl0VGVtcGxhdGU6IGFueTtcblxuICB0YWJzOiBUYWJbXSA9IFtdO1xuICB0ZW1wbGF0ZTogVmlld0NvbnRhaW5lclJlZjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlbXBsYXRlID0gdGhpcy5kZXRhaWxzVGVtcGxhdGU7XG5cbiAgICB0aGlzLnRhYnMgPSBbXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXRhaWxzJyksXG4gICAgICAgIHBhdGg6IG51bGwsXG4gICAgICAgIGljb246ICdhc3RlcmlzaycsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmRldGFpbHNUZW1wbGF0ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6IGdldHRleHQoJ0hpc3Rvcnkgb2YgY2hhbmdlcycpLFxuICAgICAgICBwYXRoOiBudWxsLFxuICAgICAgICBpY29uOiAnYXJjaGl2ZScsXG4gICAgICAgIHRlbXBsYXRlOiB0aGlzLmF1ZGl0VGVtcGxhdGVcbiAgICAgIH1cbiAgICBdO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwidGFiQ29udGFpbmVyXCJcbiAgI2NvbnRhaW5lclxuPlxuICA8dWwgY2xhc3M9XCJuYXYgbmF2LXRhYnMgbmF2LXRhYnNjOHlcIj5cbiAgICA8bGlcbiAgICAgIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiB0YWIudGVtcGxhdGUgPT09IHRlbXBsYXRlIH1cIlxuICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYnRuXCJcbiAgICAgICAgW3RpdGxlXT1cInRhYi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJ0ZW1wbGF0ZSA9IHRhYi50ZW1wbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxpIFtjOHlJY29uXT1cInRhYi5pY29uXCI+PC9pPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInR4dFwiPnt7IHRhYi5sYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbGk+XG4gIDwvdWw+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlscz5cbiAgPGM4eS1vcGVyYXRpb24tbGktZGV0YWlsc1xuICAgIFtvcGVyYXRpb25dPVwib3BlcmF0aW9uXCJcbiAgICAoc2hvd0ZhaWxlZE9wZXJhdGlvbik9XCJzaG93RmFpbGVkT3BlcmF0aW9uLmVtaXQoJGV2ZW50KVwiXG4gICAgW2J1bGtPcGVyYXRpb25Nb2RhbERldGFpbHNTZXJ2aWNlXT1cImJ1bGtPcGVyYXRpb25Nb2RhbERldGFpbHNTZXJ2aWNlXCJcbiAgPjwvYzh5LW9wZXJhdGlvbi1saS1kZXRhaWxzPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhdWRpdD5cbiAgPGM4eS1hdWRpdC1sb2dcbiAgICBbc291cmNlXT1cIm9wZXJhdGlvbi5pZFwiXG4gICAgW3R5cGVdPVwiXG4gICAgICAhIW9wZXJhdGlvbi5vcGVyYXRpb25Qcm90b3R5cGUgPyBBdWRpdFJlY29yZFR5cGUuQlVMS19PUEVSQVRJT04gOiBBdWRpdFJlY29yZFR5cGUuT1BFUkFUSU9OXG4gICAgXCJcbiAgPjwvYzh5LWF1ZGl0LWxvZz5cbjwvbmctdGVtcGxhdGU+XG5cbjxjOHktc2luZ2xlLW9wZXJhdGlvbnMtbGlzdFxuICBjbGFzcz1cImQtZmxleCBkLWNvbFwiXG4gICpuZ0lmPVwib3BlcmF0aW9uLm9wZXJhdGlvblByb3RvdHlwZVwiXG4gIFtidWxrT3BlcmF0aW9uXT1cIm9wZXJhdGlvblwiXG4gIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gIChvblJldHJ5RmFpbGVkT3BlcmF0aW9ucyk9XCJvblJldHJ5RmFpbGVkT3BlcmF0aW9ucy5lbWl0KCRldmVudClcIlxuPjwvYzh5LXNpbmdsZS1vcGVyYXRpb25zLWxpc3Q+XG4iXX0=