UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

55 lines 7.8 kB
import { Injectable } from '@angular/core'; import { InventoryService } from '@c8y/client'; import { gettext, ViewContext } from '@c8y/ngx-components'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/client"; export class ServicesBreadcrumbFactory { constructor(inventoryService) { this.inventoryService = inventoryService; } async get(route) { const { context, contextData } = route.snapshot.data; const { routeConfig } = route.snapshot; this.contextData = contextData || this.contextData; if ((context === ViewContext.Service || routeConfig?.context === ViewContext.Service) && !!this.contextData) { const serviceMO = (await this.inventoryService.detail(this.contextData, { withParents: true }))?.data; const breadcrumb = { items: [] }; const breadcrumbItems = []; const device = serviceMO?.additionParents?.references[0]?.managedObject; if (device) { breadcrumbItems.push({ label: gettext('Devices'), icon: 'exchange' }); breadcrumbItems.push({ label: gettext('All devices'), path: '/device' }); breadcrumbItems.push({ label: device.name, path: `/device/${device.id}` }); breadcrumbItems.push({ label: gettext('Services'), path: `/device/${device.id}/services` }); breadcrumbItems.push({ label: serviceMO.name }); const label = routeConfig?.label; if (!!label) { breadcrumbItems.push({ label }); } } breadcrumb.items = breadcrumbItems; return breadcrumb; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServicesBreadcrumbFactory, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServicesBreadcrumbFactory }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServicesBreadcrumbFactory, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: i1.InventoryService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuYnJlYWRjcnVtYi1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc2VydmljZXMvc2VydmljZXMtZGV2aWNlLXRhYi9zZXJ2aWNlcy5icmVhZGNydW1iLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQVcsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUlMLE9BQU8sRUFDUCxXQUFXLEVBQ1osTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRzdCLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFELEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBcUI7UUFDN0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNyRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUV2QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRW5ELElBQ0UsQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLE9BQU8sSUFBSyxXQUFtQixFQUFFLE9BQU8sS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDO1lBQzFGLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUNsQixDQUFDO1lBQ0QsTUFBTSxTQUFTLEdBQUcsQ0FDaEIsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDNUUsRUFBRSxJQUFJLENBQUM7WUFDUixNQUFNLFVBQVUsR0FBZSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3QyxNQUFNLGVBQWUsR0FBcUIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sTUFBTSxHQUFZLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQztZQUVqRixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUN6QixJQUFJLEVBQUUsVUFBVTtpQkFDQyxDQUFDLENBQUM7Z0JBRXJCLGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDO29CQUM3QixJQUFJLEVBQUUsU0FBUztpQkFDaEIsQ0FBQyxDQUFDO2dCQUVILGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSTtvQkFDbEIsSUFBSSxFQUFFLFdBQVcsTUFBTSxDQUFDLEVBQUUsRUFBRTtpQkFDN0IsQ0FBQyxDQUFDO2dCQUNILGVBQWUsQ0FBQyxJQUFJLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDO29CQUMxQixJQUFJLEVBQUUsV0FBVyxNQUFNLENBQUMsRUFBRSxXQUFXO2lCQUN0QyxDQUFDLENBQUM7Z0JBQ0gsZUFBZSxDQUFDLElBQUksQ0FBQztvQkFDbkIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO2lCQUNKLENBQUMsQ0FBQztnQkFFckIsTUFBTSxLQUFLLEdBQUksV0FBaUMsRUFBRSxLQUFLLENBQUM7Z0JBRXhELElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNaLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQW9CLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztZQUNILENBQUM7WUFFRCxVQUFVLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQztZQUNuQyxPQUFPLFVBQVUsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQzsrR0F2RFUseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlLCBJU291cmNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQnJlYWRjcnVtYixcbiAgQnJlYWRjcnVtYkZhY3RvcnksXG4gIEJyZWFkY3J1bWJJdGVtLFxuICBnZXR0ZXh0LFxuICBWaWV3Q29udGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VzQnJlYWRjcnVtYkZhY3RvcnkgaW1wbGVtZW50cyBCcmVhZGNydW1iRmFjdG9yeSB7XG4gIHByaXZhdGUgY29udGV4dERhdGE7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbnZlbnRvcnlTZXJ2aWNlOiBJbnZlbnRvcnlTZXJ2aWNlKSB7fVxuXG4gIGFzeW5jIGdldChyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcbiAgICBjb25zdCB7IGNvbnRleHQsIGNvbnRleHREYXRhIH0gPSByb3V0ZS5zbmFwc2hvdC5kYXRhO1xuICAgIGNvbnN0IHsgcm91dGVDb25maWcgfSA9IHJvdXRlLnNuYXBzaG90O1xuXG4gICAgdGhpcy5jb250ZXh0RGF0YSA9IGNvbnRleHREYXRhIHx8IHRoaXMuY29udGV4dERhdGE7XG5cbiAgICBpZiAoXG4gICAgICAoY29udGV4dCA9PT0gVmlld0NvbnRleHQuU2VydmljZSB8fCAocm91dGVDb25maWcgYXMgYW55KT8uY29udGV4dCA9PT0gVmlld0NvbnRleHQuU2VydmljZSkgJiZcbiAgICAgICEhdGhpcy5jb250ZXh0RGF0YVxuICAgICkge1xuICAgICAgY29uc3Qgc2VydmljZU1PID0gKFxuICAgICAgICBhd2FpdCB0aGlzLmludmVudG9yeVNlcnZpY2UuZGV0YWlsKHRoaXMuY29udGV4dERhdGEsIHsgd2l0aFBhcmVudHM6IHRydWUgfSlcbiAgICAgICk/LmRhdGE7XG4gICAgICBjb25zdCBicmVhZGNydW1iOiBCcmVhZGNydW1iID0geyBpdGVtczogW10gfTtcbiAgICAgIGNvbnN0IGJyZWFkY3J1bWJJdGVtczogQnJlYWRjcnVtYkl0ZW1bXSA9IFtdO1xuICAgICAgY29uc3QgZGV2aWNlOiBJU291cmNlID0gc2VydmljZU1PPy5hZGRpdGlvblBhcmVudHM/LnJlZmVyZW5jZXNbMF0/Lm1hbmFnZWRPYmplY3Q7XG5cbiAgICAgIGlmIChkZXZpY2UpIHtcbiAgICAgICAgYnJlYWRjcnVtYkl0ZW1zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdEZXZpY2VzJyksXG4gICAgICAgICAgaWNvbjogJ2V4Y2hhbmdlJ1xuICAgICAgICB9IGFzIEJyZWFkY3J1bWJJdGVtKTtcblxuICAgICAgICBicmVhZGNydW1iSXRlbXMucHVzaCh7XG4gICAgICAgICAgbGFiZWw6IGdldHRleHQoJ0FsbCBkZXZpY2VzJyksXG4gICAgICAgICAgcGF0aDogJy9kZXZpY2UnXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogZGV2aWNlLm5hbWUsXG4gICAgICAgICAgcGF0aDogYC9kZXZpY2UvJHtkZXZpY2UuaWR9YFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWRjcnVtYkl0ZW1zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdTZXJ2aWNlcycpLFxuICAgICAgICAgIHBhdGg6IGAvZGV2aWNlLyR7ZGV2aWNlLmlkfS9zZXJ2aWNlc2BcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHtcbiAgICAgICAgICBsYWJlbDogc2VydmljZU1PLm5hbWVcbiAgICAgICAgfSBhcyBCcmVhZGNydW1iSXRlbSk7XG5cbiAgICAgICAgY29uc3QgbGFiZWwgPSAocm91dGVDb25maWcgYXMgeyBsYWJlbDogc3RyaW5nIH0pPy5sYWJlbDtcblxuICAgICAgICBpZiAoISFsYWJlbCkge1xuICAgICAgICAgIGJyZWFkY3J1bWJJdGVtcy5wdXNoKHsgbGFiZWwgfSBhcyBCcmVhZGNydW1iSXRlbSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgYnJlYWRjcnVtYi5pdGVtcyA9IGJyZWFkY3J1bWJJdGVtcztcbiAgICAgIHJldHVybiBicmVhZGNydW1iO1xuICAgIH1cbiAgfVxufVxuIl19