UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

45 lines 6.35 kB
import { inject, Injectable } from '@angular/core'; import { sleep } from '@iotize/common/utility'; import { ADMIN_USER } from '@iotize/tap/configurator'; import { map, shareReplay } from 'rxjs/operators'; import { FACTORY_RESET_MODE_VERSION } from './config-version'; import { CurrentDeviceService } from './current-device.service'; import { TapInfo } from './tap-info/keys'; import { TapInfoCacheService } from './tap-info/tap-info-cache.service'; import * as i0 from "@angular/core"; export class TapAdministrationService { _deviceService = inject(CurrentDeviceService); tapInfoCacheService = inject(TapInfoCacheService); isLoggedAsAdmin = this._deviceService.sessionState.pipe(map((sessionState) => { return sessionState.name === ADMIN_USER.username; })); factoryResetStateChange = this.tapInfoCacheService .valueChange(TapInfo.configVersion) .pipe(map((v) => { return v === FACTORY_RESET_MODE_VERSION; }), shareReplay(1)); async factoryReset() { await this._deviceService.executeFactoryReset(); this.tapInfoCacheService.reset(); } async reboot() { await this._deviceService.reboot(); this.tapInfoCacheService.reset(); } async rebootAndReconnect() { await this._deviceService.reboot(); await sleep(5000); try { await this._deviceService.connect(); } catch (err) { console.warn('Failed to reconnect after reboot', err); } } /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapAdministrationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); /** @nocollapse */ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapAdministrationService }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapAdministrationService, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWFkbWluaXN0cmF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvc3JjL2xpYi90YXAtYWRtaW5pc3RyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXRELE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUd4RSxNQUFNLE9BQU8sd0JBQXdCO0lBQzNCLGNBQWMsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUU5QyxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUUxRCxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNyRCxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtRQUNuQixPQUFPLFlBQVksQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLFFBQVEsQ0FBQztJQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsdUJBQXVCLEdBQXdCLElBQUksQ0FBQyxtQkFBbUI7U0FDcEUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDbEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1IsT0FBTyxDQUFDLEtBQUssMEJBQTBCLENBQUM7SUFDMUMsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFSixLQUFLLENBQUMsWUFBWTtRQUNoQixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNO1FBQ1YsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQjtRQUN0QixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbkMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQzsySEF0Q1Usd0JBQXdCOytIQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnQGlvdGl6ZS9jb21tb24vdXRpbGl0eSc7XG5pbXBvcnQgeyBBRE1JTl9VU0VSIH0gZnJvbSAnQGlvdGl6ZS90YXAvY29uZmlndXJhdG9yJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGQUNUT1JZX1JFU0VUX01PREVfVkVSU0lPTiB9IGZyb20gJy4vY29uZmlnLXZlcnNpb24nO1xuaW1wb3J0IHsgQ3VycmVudERldmljZVNlcnZpY2UgfSBmcm9tICcuL2N1cnJlbnQtZGV2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFwSW5mbyB9IGZyb20gJy4vdGFwLWluZm8va2V5cyc7XG5pbXBvcnQgeyBUYXBJbmZvQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi90YXAtaW5mby90YXAtaW5mby1jYWNoZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRhcEFkbWluaXN0cmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgX2RldmljZVNlcnZpY2UgPSBpbmplY3QoQ3VycmVudERldmljZVNlcnZpY2UpO1xuXG4gIHByaXZhdGUgdGFwSW5mb0NhY2hlU2VydmljZSA9IGluamVjdChUYXBJbmZvQ2FjaGVTZXJ2aWNlKTtcblxuICBpc0xvZ2dlZEFzQWRtaW4gPSB0aGlzLl9kZXZpY2VTZXJ2aWNlLnNlc3Npb25TdGF0ZS5waXBlKFxuICAgIG1hcCgoc2Vzc2lvblN0YXRlKSA9PiB7XG4gICAgICByZXR1cm4gc2Vzc2lvblN0YXRlLm5hbWUgPT09IEFETUlOX1VTRVIudXNlcm5hbWU7XG4gICAgfSlcbiAgKTtcblxuICBmYWN0b3J5UmVzZXRTdGF0ZUNoYW5nZTogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMudGFwSW5mb0NhY2hlU2VydmljZVxuICAgIC52YWx1ZUNoYW5nZShUYXBJbmZvLmNvbmZpZ1ZlcnNpb24pXG4gICAgLnBpcGUoXG4gICAgICBtYXAoKHYpID0+IHtcbiAgICAgICAgcmV0dXJuIHYgPT09IEZBQ1RPUllfUkVTRVRfTU9ERV9WRVJTSU9OO1xuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG5cbiAgYXN5bmMgZmFjdG9yeVJlc2V0KCkge1xuICAgIGF3YWl0IHRoaXMuX2RldmljZVNlcnZpY2UuZXhlY3V0ZUZhY3RvcnlSZXNldCgpO1xuICAgIHRoaXMudGFwSW5mb0NhY2hlU2VydmljZS5yZXNldCgpO1xuICB9XG5cbiAgYXN5bmMgcmVib290KCkge1xuICAgIGF3YWl0IHRoaXMuX2RldmljZVNlcnZpY2UucmVib290KCk7XG4gICAgdGhpcy50YXBJbmZvQ2FjaGVTZXJ2aWNlLnJlc2V0KCk7XG4gIH1cblxuICBhc3luYyByZWJvb3RBbmRSZWNvbm5lY3QoKSB7XG4gICAgYXdhaXQgdGhpcy5fZGV2aWNlU2VydmljZS5yZWJvb3QoKTtcbiAgICBhd2FpdCBzbGVlcCg1MDAwKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fZGV2aWNlU2VydmljZS5jb25uZWN0KCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0ZhaWxlZCB0byByZWNvbm5lY3QgYWZ0ZXIgcmVib290JywgZXJyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==