@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
31 lines • 4.07 kB
JavaScript
import { Injectable } from '@angular/core';
import { ApplicationType } from '@c8y/client';
import { EcosystemService } from '@c8y/ngx-components/ecosystem/shared';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components/ecosystem/shared";
export class ApplicationPluginsGuard {
constructor(ecosystemService) {
this.ecosystemService = ecosystemService;
}
canActivate(route) {
const app = route.data.contextData || route.parent.data.contextData;
if (!app) {
return false;
}
const manifest = app.manifest;
if (!manifest) {
return false;
}
return (app.type === ApplicationType.HOSTED &&
this.ecosystemService.isOwner(app) &&
!this.ecosystemService.isPackage(app) &&
// apps like e.g. the public-options should not have the plugins tab
!manifest.noAppSwitcher);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationPluginsGuard, deps: [{ token: i1.EcosystemService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationPluginsGuard }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApplicationPluginsGuard, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.EcosystemService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tcGx1Z2lucy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi1wbHVnaW5zL2FwcGxpY2F0aW9uLXBsdWdpbnMuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7O0FBR3hFLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRTFELFdBQVcsQ0FBQyxLQUE2QjtRQUN2QyxNQUFNLEdBQUcsR0FBaUIsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxDQUNMLEdBQUcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLE1BQU07WUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDbEMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNyQyxvRUFBb0U7WUFDcEUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUN4QixDQUFDO0lBQ0osQ0FBQzsrR0FuQlUsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVHlwZSwgSUFwcGxpY2F0aW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblBsdWdpbnNHdWFyZCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSkge31cblxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCkge1xuICAgIGNvbnN0IGFwcDogSUFwcGxpY2F0aW9uID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YSB8fCByb3V0ZS5wYXJlbnQuZGF0YS5jb250ZXh0RGF0YTtcbiAgICBpZiAoIWFwcCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBtYW5pZmVzdCA9IGFwcC5tYW5pZmVzdDtcbiAgICBpZiAoIW1hbmlmZXN0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICBhcHAudHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLkhPU1RFRCAmJlxuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzT3duZXIoYXBwKSAmJlxuICAgICAgIXRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1BhY2thZ2UoYXBwKSAmJlxuICAgICAgLy8gYXBwcyBsaWtlIGUuZy4gdGhlIHB1YmxpYy1vcHRpb25zIHNob3VsZCBub3QgaGF2ZSB0aGUgcGx1Z2lucyB0YWJcbiAgICAgICFtYW5pZmVzdC5ub0FwcFN3aXRjaGVyXG4gICAgKTtcbiAgfVxufVxuIl19