@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
48 lines • 5.56 kB
JavaScript
import { Injectable } from '@angular/core';
import { AlertDialogService } from '@iotize/app-common';
import { CurrentDeviceService } from './current-device.service';
import * as i0 from "@angular/core";
import * as i1 from "./current-device.service";
import * as i2 from "@iotize/app-common";
export class DisconnectCurrentTapGuard {
tapService;
alertDialog;
constructor(tapService, alertDialog) {
this.tapService = tapService;
this.alertDialog = alertDialog;
}
async canDeactivate(_component, currentRoute) {
const showConfirmExitTap = currentRoute.data.showConfirmExitTapDialog;
if (showConfirmExitTap) {
const confirm = await this.confirmExitDevice();
if (!confirm) {
return false;
}
}
await this.tapService.remove();
return true;
}
async confirmExitDevice() {
try {
return await this.alertDialog.confirm({
message: 'Are you sure you want to disconnect and go back to home page ?',
header: 'Disconnect device',
okText: 'Quit',
cancelText: 'Cancel',
});
}
catch (err) {
console.warn(`Failed to display confirm exit device dialog`, err);
return true;
}
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisconnectCurrentTapGuard, deps: [{ token: i1.CurrentDeviceService }, { token: i2.AlertDialogService }], target: i0.ɵɵFactoryTarget.Injectable });
/** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisconnectCurrentTapGuard, providedIn: 'root' });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DisconnectCurrentTapGuard, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: () => [{ type: i1.CurrentDeviceService }, { type: i2.AlertDialogService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzY29ubmVjdC1jdXJyZW50LXRhcC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9zcmMvbGliL2Rpc2Nvbm5lY3QtY3VycmVudC10YXAuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUtoRSxNQUFNLE9BQU8seUJBQXlCO0lBRTFCO0lBQ0E7SUFGVixZQUNVLFVBQWdDLEVBQ2hDLFdBQStCO1FBRC9CLGVBQVUsR0FBVixVQUFVLENBQXNCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUN0QyxDQUFDO0lBRUosS0FBSyxDQUFDLGFBQWEsQ0FDakIsVUFBbUIsRUFDbkIsWUFBb0M7UUFFcEMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDYixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO2dCQUNwQyxPQUFPLEVBQ0wsZ0VBQWdFO2dCQUNsRSxNQUFNLEVBQUUsbUJBQW1CO2dCQUMzQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsUUFBUTthQUNyQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsOENBQThDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbEUsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzsySEFsQ1UseUJBQXlCOytIQUF6Qix5QkFBeUIsY0FGeEIsTUFBTTs7NEZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkRlYWN0aXZhdGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWxlcnREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlvdGl6ZS9hcHAtY29tbW9uJztcbmltcG9ydCB7IEN1cnJlbnREZXZpY2VTZXJ2aWNlIH0gZnJvbSAnLi9jdXJyZW50LWRldmljZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIERpc2Nvbm5lY3RDdXJyZW50VGFwR3VhcmQgaW1wbGVtZW50cyBDYW5EZWFjdGl2YXRlPHVua25vd24+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0YXBTZXJ2aWNlOiBDdXJyZW50RGV2aWNlU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0RGlhbG9nOiBBbGVydERpYWxvZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIGNhbkRlYWN0aXZhdGUoXG4gICAgX2NvbXBvbmVudDogdW5rbm93bixcbiAgICBjdXJyZW50Um91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3RcbiAgKSB7XG4gICAgY29uc3Qgc2hvd0NvbmZpcm1FeGl0VGFwID0gY3VycmVudFJvdXRlLmRhdGEuc2hvd0NvbmZpcm1FeGl0VGFwRGlhbG9nO1xuICAgIGlmIChzaG93Q29uZmlybUV4aXRUYXApIHtcbiAgICAgIGNvbnN0IGNvbmZpcm0gPSBhd2FpdCB0aGlzLmNvbmZpcm1FeGl0RGV2aWNlKCk7XG4gICAgICBpZiAoIWNvbmZpcm0pIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBhd2FpdCB0aGlzLnRhcFNlcnZpY2UucmVtb3ZlKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBjb25maXJtRXhpdERldmljZSgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuYWxlcnREaWFsb2cuY29uZmlybSh7XG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkaXNjb25uZWN0IGFuZCBnbyBiYWNrIHRvIGhvbWUgcGFnZSA/JyxcbiAgICAgICAgaGVhZGVyOiAnRGlzY29ubmVjdCBkZXZpY2UnLFxuICAgICAgICBva1RleHQ6ICdRdWl0JyxcbiAgICAgICAgY2FuY2VsVGV4dDogJ0NhbmNlbCcsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUud2FybihgRmFpbGVkIHRvIGRpc3BsYXkgY29uZmlybSBleGl0IGRldmljZSBkaWFsb2dgLCBlcnIpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG59XG4iXX0=