@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
29 lines • 3.52 kB
JavaScript
import { Injectable } from '@angular/core';
import { InventoryService } from '@c8y/client';
import { isEmpty } from 'lodash-es';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/client";
export class ChildDevicesTabGuard {
constructor(inventory) {
this.inventory = inventory;
}
async canActivate(route) {
const contextData = route.data.contextData;
const filter = {
pageSize: 1
};
if (isEmpty(contextData)) {
return true;
}
const device = await this.inventory.childDevicesList(contextData.id, filter);
const hasChildren = device.data.length;
return !!hasChildren;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChildDevicesTabGuard, deps: [{ token: i1.InventoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChildDevicesTabGuard, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ChildDevicesTabGuard, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}], ctorParameters: () => [{ type: i1.InventoryService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpbGQtZGV2aWNlcy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2NoaWxkLWRldmljZXMvY2hpbGQtZGV2aWNlcy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFHcEMsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUE2QjtRQUM3QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUUzQyxNQUFNLE1BQU0sR0FBVztZQUNyQixRQUFRLEVBQUUsQ0FBQztTQUNaLENBQUM7UUFFRixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzdFLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUN2QixDQUFDOytHQWhCVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJbnZlbnRvcnlTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ2hpbGREZXZpY2VzVGFiR3VhcmQge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGludmVudG9yeTogSW52ZW50b3J5U2VydmljZSkge31cblxuICBhc3luYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvbnRleHREYXRhID0gcm91dGUuZGF0YS5jb250ZXh0RGF0YTtcblxuICAgIGNvbnN0IGZpbHRlcjogb2JqZWN0ID0ge1xuICAgICAgcGFnZVNpemU6IDFcbiAgICB9O1xuXG4gICAgaWYgKGlzRW1wdHkoY29udGV4dERhdGEpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgZGV2aWNlID0gYXdhaXQgdGhpcy5pbnZlbnRvcnkuY2hpbGREZXZpY2VzTGlzdChjb250ZXh0RGF0YS5pZCwgZmlsdGVyKTtcbiAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGRldmljZS5kYXRhLmxlbmd0aDtcbiAgICByZXR1cm4gISFoYXNDaGlsZHJlbjtcbiAgfVxufVxuIl19