@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
32 lines • 4.95 kB
JavaScript
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