@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
39 lines • 4.68 kB
JavaScript
import { Injectable } from '@angular/core';
import { of } from 'rxjs';
import { gettext } from '@c8y/ngx-components';
import * as i0 from "@angular/core";
export const newDashboardTab = {
featureId: 'newDashboard',
icon: 'th',
label: gettext('New dashboard'),
path: 'dashboard/new-dashboard',
// place tab as last one and hide it so it won't be opened until user initiates adding new dashboard
hide: true,
priority: -Infinity
};
export class NewDashboardGuard {
canActivate(route) {
const tabActive = route.routeConfig.path === newDashboardTab.path;
if (tabActive) {
const dashboard = {
c8y_Dashboard: null
};
route.data = { dashboard };
}
if (!this.tab) {
this.tab = {
...newDashboardTab,
hide: !tabActive,
priority: tabActive ? Infinity : -Infinity
};
}
return of([this.tab]);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewDashboardGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewDashboardGuard, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NewDashboardGuard, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LWRhc2hib2FyZC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NvbnRleHQtZGFzaGJvYXJkL25ldy1kYXNoYm9hcmQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQU8sTUFBTSxxQkFBcUIsQ0FBQzs7QUFJbkQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFnQjtJQUMxQyxTQUFTLEVBQUUsY0FBYztJQUN6QixJQUFJLEVBQUUsSUFBSTtJQUNWLEtBQUssRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQy9CLElBQUksRUFBRSx5QkFBeUI7SUFDL0Isb0dBQW9HO0lBQ3BHLElBQUksRUFBRSxJQUFJO0lBQ1YsUUFBUSxFQUFFLENBQUMsUUFBUTtDQUNwQixDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixXQUFXLENBQUMsS0FBNkI7UUFDdkMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQztRQUNsRSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsTUFBTSxTQUFTLEdBQTJDO2dCQUN4RCxhQUFhLEVBQUUsSUFBSTthQUNwQixDQUFDO1lBQ0YsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzdCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLEdBQUcsR0FBRztnQkFDVCxHQUFHLGVBQWU7Z0JBQ2xCLElBQUksRUFBRSxDQUFDLFNBQVM7Z0JBQ2hCLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRO2FBQzNDLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QixDQUFDOytHQW5CVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGdldHRleHQsIFRhYiB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdCB9IGZyb20gJy4vY29udGV4dC1kYXNoYm9hcmQubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgbmV3RGFzaGJvYXJkVGFiOiBUYWI8c3RyaW5nPiA9IHtcbiAgZmVhdHVyZUlkOiAnbmV3RGFzaGJvYXJkJyxcbiAgaWNvbjogJ3RoJyxcbiAgbGFiZWw6IGdldHRleHQoJ05ldyBkYXNoYm9hcmQnKSxcbiAgcGF0aDogJ2Rhc2hib2FyZC9uZXctZGFzaGJvYXJkJyxcbiAgLy8gcGxhY2UgdGFiIGFzIGxhc3Qgb25lIGFuZCBoaWRlIGl0IHNvIGl0IHdvbid0IGJlIG9wZW5lZCB1bnRpbCB1c2VyIGluaXRpYXRlcyBhZGRpbmcgbmV3IGRhc2hib2FyZFxuICBoaWRlOiB0cnVlLFxuICBwcmlvcml0eTogLUluZmluaXR5XG59O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5ld0Rhc2hib2FyZEd1YXJkIHtcbiAgdGFiOiBUYWI7XG5cbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4gfCBUYWJbXT4ge1xuICAgIGNvbnN0IHRhYkFjdGl2ZSA9IHJvdXRlLnJvdXRlQ29uZmlnLnBhdGggPT09IG5ld0Rhc2hib2FyZFRhYi5wYXRoO1xuICAgIGlmICh0YWJBY3RpdmUpIHtcbiAgICAgIGNvbnN0IGRhc2hib2FyZDogUGFydGlhbDxDb250ZXh0RGFzaGJvYXJkTWFuYWdlZE9iamVjdD4gPSB7XG4gICAgICAgIGM4eV9EYXNoYm9hcmQ6IG51bGxcbiAgICAgIH07XG4gICAgICByb3V0ZS5kYXRhID0geyBkYXNoYm9hcmQgfTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnRhYikge1xuICAgICAgdGhpcy50YWIgPSB7XG4gICAgICAgIC4uLm5ld0Rhc2hib2FyZFRhYixcbiAgICAgICAgaGlkZTogIXRhYkFjdGl2ZSxcbiAgICAgICAgcHJpb3JpdHk6IHRhYkFjdGl2ZSA/IEluZmluaXR5IDogLUluZmluaXR5XG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gb2YoW3RoaXMudGFiXSk7XG4gIH1cbn1cbiJdfQ==