@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
40 lines • 5.18 kB
JavaScript
import { Injectable } from '@angular/core';
import { AlertService, gettext, ModalService, Status } from '@c8y/ngx-components';
import { DeviceTypeDetailEditedService } from './device-type-detail-edited.service';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/ngx-components";
import * as i2 from "./device-type-detail-edited.service";
export class DeviceProtocolsGuard {
constructor(modal, alert, deviceTypeDetailEditedService) {
this.modal = modal;
this.alert = alert;
this.deviceTypeDetailEditedService = deviceTypeDetailEditedService;
}
async canDeactivate() {
if (this.deviceTypeDetailEditedService.getIsDetailEdited()) {
try {
await this.modal.confirm(gettext('Discard changes'), gettext('You are about to leave this page and discard the changes made. Do you want to proceed?'), Status.WARNING, {
ok: gettext('Discard')
});
this.deviceTypeDetailEditedService.setIsDetailEdited(false);
return true;
}
catch (e) {
if (e) {
this.alert.danger(e);
}
return false;
}
}
return true;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProtocolsGuard, deps: [{ token: i1.ModalService }, { token: i1.AlertService }, { token: i2.DeviceTypeDetailEditedService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProtocolsGuard, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProtocolsGuard, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [{ type: i1.ModalService }, { type: i1.AlertService }, { type: i2.DeviceTypeDetailEditedService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb3RvY29scy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmljZS1wcm90b2NvbHMvZGV2aWNlLXByb3RvY29scy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7OztBQUtwRixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1UsS0FBbUIsRUFDbkIsS0FBbUIsRUFDbkIsNkJBQTREO1FBRjVELFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUNuQixrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBQ25FLENBQUM7SUFFSixLQUFLLENBQUMsYUFBYTtRQUNqQixJQUFJLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7WUFDM0QsSUFBSSxDQUFDO2dCQUNILE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ3RCLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxFQUMxQixPQUFPLENBQ0wsd0ZBQXdGLENBQ3pGLEVBQ0QsTUFBTSxDQUFDLE9BQU8sRUFDZDtvQkFDRSxFQUFFLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztpQkFDdkIsQ0FDRixDQUFDO2dCQUNGLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDNUQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7K0dBOUJVLG9CQUFvQjttSEFBcEIsb0JBQW9CLGNBRm5CLE1BQU07OzRGQUVQLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UsIGdldHRleHQsIE1vZGFsU2VydmljZSwgU3RhdHVzIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZXZpY2VUeXBlRGV0YWlsRWRpdGVkU2VydmljZSB9IGZyb20gJy4vZGV2aWNlLXR5cGUtZGV0YWlsLWVkaXRlZC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGV2aWNlUHJvdG9jb2xzR3VhcmQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1vZGFsOiBNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGV2aWNlVHlwZURldGFpbEVkaXRlZFNlcnZpY2U6IERldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBjYW5EZWFjdGl2YXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0aGlzLmRldmljZVR5cGVEZXRhaWxFZGl0ZWRTZXJ2aWNlLmdldElzRGV0YWlsRWRpdGVkKCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMubW9kYWwuY29uZmlybShcbiAgICAgICAgICBnZXR0ZXh0KCdEaXNjYXJkIGNoYW5nZXMnKSxcbiAgICAgICAgICBnZXR0ZXh0KFxuICAgICAgICAgICAgJ1lvdSBhcmUgYWJvdXQgdG8gbGVhdmUgdGhpcyBwYWdlIGFuZCBkaXNjYXJkIHRoZSBjaGFuZ2VzIG1hZGUuIERvIHlvdSB3YW50IHRvIHByb2NlZWQ/J1xuICAgICAgICAgICksXG4gICAgICAgICAgU3RhdHVzLldBUk5JTkcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgb2s6IGdldHRleHQoJ0Rpc2NhcmQnKVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5kZXZpY2VUeXBlRGV0YWlsRWRpdGVkU2VydmljZS5zZXRJc0RldGFpbEVkaXRlZChmYWxzZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpZiAoZSkge1xuICAgICAgICAgIHRoaXMuYWxlcnQuZGFuZ2VyKGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiJdfQ==