UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

32 lines 4.95 kB
import { Injectable } from '@angular/core'; import { ContextDashboardService, ContextDashboardType } from '@c8y/ngx-components/context-dashboard'; import { tap } from 'rxjs/operators'; import { from, of } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "@c8y/ngx-components/context-dashboard"; export class ReportDashboardGuard { constructor(contextDashboardService) { this.contextDashboardService = contextDashboardService; } canActivate(route) { const reportId = route.data.contextData && route.data.contextData.id; return from(this.contextDashboardService.activateDashboards(route, [ContextDashboardType.Named])).pipe(tap(res => { return Array.isArray(res) && res.length === 0 ? this.createDashboardIfNotExist(reportId) : of(true); })); } createDashboardIfNotExist(reportId) { const dashboardCfg = {}; return this.contextDashboardService .create(dashboardCfg, undefined, `report_${reportId}`) .then(() => true); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportDashboardGuard, deps: [{ token: i1.ContextDashboardService }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportDashboardGuard, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ReportDashboardGuard, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.ContextDashboardService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhc2hib2FyZC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3JlcG9ydC1kYXNoYm9hcmQvcmVwb3J0LWRhc2hib2FyZC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3JCLE1BQU0sdUNBQXVDLENBQUM7QUFDL0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFJNUMsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQix1QkFBZ0Q7UUFBaEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtJQUFHLENBQUM7SUFFeEUsV0FBVyxDQUFDLEtBQTZCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FDVCxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDckYsQ0FBQyxJQUFJLENBQ0osR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELHlCQUF5QixDQUFDLFFBQVE7UUFDaEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QjthQUNoQyxNQUFNLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLFFBQVEsRUFBRSxDQUFDO2FBQ3JELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDOytHQXJCVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBDb250ZXh0RGFzaGJvYXJkU2VydmljZSxcbiAgQ29udGV4dERhc2hib2FyZFR5cGVcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9jb250ZXh0LWRhc2hib2FyZCc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGFiIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUmVwb3J0RGFzaGJvYXJkR3VhcmQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRleHREYXNoYm9hcmRTZXJ2aWNlOiBDb250ZXh0RGFzaGJvYXJkU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFRhYltdPiB7XG4gICAgY29uc3QgcmVwb3J0SWQgPSByb3V0ZS5kYXRhLmNvbnRleHREYXRhICYmIHJvdXRlLmRhdGEuY29udGV4dERhdGEuaWQ7XG4gICAgcmV0dXJuIGZyb20oXG4gICAgICB0aGlzLmNvbnRleHREYXNoYm9hcmRTZXJ2aWNlLmFjdGl2YXRlRGFzaGJvYXJkcyhyb3V0ZSwgW0NvbnRleHREYXNoYm9hcmRUeXBlLk5hbWVkXSlcbiAgICApLnBpcGUoXG4gICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzKSAmJiByZXMubGVuZ3RoID09PSAwXG4gICAgICAgICAgPyB0aGlzLmNyZWF0ZURhc2hib2FyZElmTm90RXhpc3QocmVwb3J0SWQpXG4gICAgICAgICAgOiBvZih0cnVlKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNyZWF0ZURhc2hib2FyZElmTm90RXhpc3QocmVwb3J0SWQpIHtcbiAgICBjb25zdCBkYXNoYm9hcmRDZmcgPSB7fTtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0RGFzaGJvYXJkU2VydmljZVxuICAgICAgLmNyZWF0ZShkYXNoYm9hcmRDZmcsIHVuZGVmaW5lZCwgYHJlcG9ydF8ke3JlcG9ydElkfWApXG4gICAgICAudGhlbigoKSA9PiB0cnVlKTtcbiAgfVxufVxuIl19