Merged PR 1463: Node 18.x and NPM 8.x Update, Removed ngx-platform-detection

Node 18.x and NPM 8.x Update, Removed ngx-platform-detection
This commit is contained in:
Nino Righi
2023-01-10 12:33:53 +00:00
committed by Lorenz Hilpert
parent ae08e46b30
commit fdca2ecfee
10 changed files with 84 additions and 109 deletions

View File

@@ -1,5 +1,5 @@
#stage 1
FROM node:14 as base
FROM node:18 as base
ARG IS_PRODUCTION=false
ARG SEMVERSION=1.0.0
ARG BuildUniqueID

View File

@@ -1,6 +1,6 @@
import { Injectable, isDevMode } from '@angular/core';
import { EnvironmentService } from '@core/environment';
import { PromptModalData, UiModalService, UiPromptModalComponent } from '@ui/modal';
import { DeviceDetectorService } from 'ngx-device-detector';
import { Observable } from 'rxjs';
import { ScanAdapter } from './scan-adapter';
@@ -8,10 +8,10 @@ import { ScanAdapter } from './scan-adapter';
export class DevScanAdapter implements ScanAdapter {
readonly name = 'Dev';
constructor(private _modal: UiModalService, private _deviceDetectorService: DeviceDetectorService) {}
constructor(private _modal: UiModalService, private _environmentService: EnvironmentService) {}
async init(): Promise<boolean> {
if (this._deviceDetectorService.isTablet()) {
if (this._environmentService.isTablet()) {
return new Promise((resolve, reject) => {
resolve(isDevMode());
});

View File

@@ -8,16 +8,16 @@ import { configure } from 'scandit-sdk';
import { Config } from '@core/config';
import { ComponentPortal } from '@angular/cdk/portal';
import { ScanditOverlayComponent } from './scandit-overlay.component';
import { DeviceDetectorService } from 'ngx-device-detector';
import { EnvironmentService } from '@core/environment';
@Injectable()
export class ScanditScanAdapter implements ScanAdapter {
readonly name = 'Scandit';
constructor(private readonly _config: Config, private _overlay: Overlay, private _deviceDetectorService: DeviceDetectorService) {}
constructor(private readonly _config: Config, private _overlay: Overlay, private _environmentService: EnvironmentService) {}
async init(): Promise<boolean> {
if (this._deviceDetectorService.isTablet()) {
if (this._environmentService.isTablet()) {
await configure(this._config.get('licence.scandit'), {
engineLocation: '/scandit/',
});

View File

@@ -1,32 +1,21 @@
import { Injectable } from '@angular/core';
import { fromEvent } from 'rxjs';
import { map, take, tap } from 'rxjs/operators';
import { Platform } from '@angular/cdk/platform';
@Injectable({
providedIn: 'root',
})
export class EnvironmentService {
constructor() {}
constructor(private _platform: Platform) {}
// /** Returns whether app is used within native container*/
// isNative(): Promise<boolean> {
// return fromEvent(window, 'message')
// .pipe(
// map((evt: MessageEvent) => evt.data),
// tap(console.log.bind(window)),
// map((data) => data.status === 'INIT'),
// take(1)
// )
// .toPromise();
// }
/** Returns whether current device is mobile phone or tablet */
async isMobile(): Promise<boolean> {
return 'orientation' in window;
isDesktop(): boolean {
return !this.isTablet();
}
/** Returns whether current device is desktop */
async isDesktop(): Promise<boolean> {
return !(await this.isMobile());
isTablet(): boolean {
return this._platform.ANDROID || this._platform.IOS;
}
isSafari(): boolean {
return this._platform.SAFARI;
}
}

View File

@@ -4,7 +4,7 @@ import { AuthService } from '@core/auth';
import { ScanAdapterService } from '@adapter/scan';
import { AuthService as IsaAuthService } from '@swagger/isa';
import { UiConfirmModalComponent, UiErrorModalComponent, UiModalService } from '@ui/modal';
import { DeviceDetectorService } from 'ngx-device-detector';
import { EnvironmentService } from '@core/environment';
@Injectable({ providedIn: 'root' })
export class IsAuthenticatedGuard implements CanActivate {
@@ -13,7 +13,7 @@ export class IsAuthenticatedGuard implements CanActivate {
private _scanService: ScanAdapterService,
private _isaAuthService: IsaAuthService,
private _modal: UiModalService,
private _deviceDetector: DeviceDetectorService
private _environmentService: EnvironmentService
) {}
async canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
@@ -32,7 +32,7 @@ export class IsAuthenticatedGuard implements CanActivate {
}
async scanAndGetToken(): Promise<string> {
if (this._deviceDetector.isDesktop()) {
if (this._environmentService.isDesktop()) {
return undefined;
}

View File

@@ -1,9 +1,9 @@
import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject, fromEvent, Subject } from 'rxjs';
import { filter, map, take, takeUntil, takeWhile } from 'rxjs/operators';
import { Observable, fromEvent, Subject } from 'rxjs';
import { map } from 'rxjs/operators';
import { WindowRef } from './window-ref.service';
import { ScanRequestType } from './scan-request.type';
import { DeviceDetectorService } from 'ngx-device-detector';
import { EnvironmentService } from '@core/environment';
@Injectable({
providedIn: 'root',
})
@@ -15,7 +15,7 @@ export class NativeContainerService {
private webViewEventRecieved = false;
private browserDetected = false;
constructor(private windowRef: WindowRef, private deviceDetector: DeviceDetectorService) {
constructor(private windowRef: WindowRef, private _environmentService: EnvironmentService) {
this.defineWindowCallback();
this.wm = fromEvent(this.windowRef.nativeWindow, 'message').pipe(
@@ -68,7 +68,7 @@ export class NativeContainerService {
// this.browserDetected = !standalone && (safari || chrome) && !crios;
return {
isSafari: this.deviceDetector.browser === 'Safari',
isSafari: this._environmentService.isSafari(),
isNative: this.webViewEventRecieved,
};
}

View File

@@ -10,7 +10,7 @@
.content-wrapper {
@apply grid grid-flow-row;
grid-template-row: auto;
grid-template-rows: auto;
}
.actual-numbers {

View File

@@ -12,8 +12,8 @@ import {
HostListener,
} from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
import { EnvironmentService } from '@core/environment';
import { UiFormControlDirective } from '@ui/form-control';
import { DeviceDetectorService } from 'ngx-device-detector';
import { UiSelectOptionComponent } from './ui-select-option.component';
@Component({
@@ -67,7 +67,7 @@ export class UiSelectComponent extends UiFormControlDirective<any> implements Co
onTouched = () => {};
constructor(private cdr: ChangeDetectorRef, private deviceService: DeviceDetectorService) {
constructor(private cdr: ChangeDetectorRef, private _environmentService: EnvironmentService) {
super();
}
@@ -80,7 +80,7 @@ export class UiSelectComponent extends UiFormControlDirective<any> implements Co
if (this.readonly) {
return;
}
if (this.deviceService.isDesktop()) {
if (this._environmentService.isDesktop()) {
this.open();
}
}

109
package-lock.json generated
View File

@@ -21,11 +21,11 @@
"@angular/service-worker": "^15.0.0",
"@mdi/js": "^7.0.96",
"@microsoft/signalr": "^7.0.0",
"@ngrx/component-store": "^14.3.2",
"@ngrx/effects": "^14.3.2",
"@ngrx/entity": "^14.3.2",
"@ngrx/store": "^14.3.2",
"@ngrx/store-devtools": "^14.3.2",
"@ngrx/component-store": "^15.0.0",
"@ngrx/effects": "^15.0.0",
"@ngrx/entity": "^15.0.0",
"@ngrx/store": "^15.0.0",
"@ngrx/store-devtools": "^15.0.0",
"@paragondata/ngx-ui": "^12.0.0-beta.23",
"angular-oauth2-oidc": "^15.0.1",
"angular-oauth2-oidc-jwks": "^15.0.1",
@@ -34,7 +34,6 @@
"lodash": "^4.17.21",
"moment": "^2.29.4",
"ng2-pdf-viewer": "^9.1.3",
"ngx-device-detector": "^4.0.1",
"rxjs": "^6.6.7",
"scandit-sdk": "^5.12.1",
"socket.io": "^4.5.4",
@@ -87,6 +86,10 @@
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~4.8.4"
},
"engines": {
"node": "18.x",
"npm": "8.x"
}
},
"node_modules/@ampproject/remapping": {
@@ -2927,64 +2930,64 @@
}
},
"node_modules/@ngrx/component-store": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/component-store/-/component-store-14.3.2.tgz",
"integrity": "sha512-qdh0COdMU6LmrycoIIZg678DbsNXWR05Y6pVz+t7/LszGC4+UGuXoS6CR8gSNGGMWwLVw5yh+5MXsjuqTvp3ww==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/component-store/-/component-store-15.1.0.tgz",
"integrity": "sha512-aqNxZHWdHAgnxz5cdBLKmWq83PVKw9F4ZMVddsZ7d8Ow2j3BWZiYP65hPVgVpzTHuigpE4OX0cutwGC38iu1GA==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "^14.0.0",
"@angular/core": "^15.0.0",
"rxjs": "^6.5.3 || ^7.5.0"
}
},
"node_modules/@ngrx/effects": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-14.3.2.tgz",
"integrity": "sha512-6bpGfA44jzwhBcmNaTwVgnFmYOX9iKPFpXyetDe41tVESo1CsNhUBPTmISDXKN9Mx2mwGbsMxrn6QFRypSsKAQ==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-15.1.0.tgz",
"integrity": "sha512-/8YnhzyAOTdI9RYJAqmIIvh8ip4M4x4DrRyrdDDc62oFM3TrVOvknUUpMp5NxKpKph8hSpevAwaeEBDWGnKkjg==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "^14.0.0",
"@ngrx/store": "14.3.2",
"@angular/core": "^15.0.0",
"@ngrx/store": "15.1.0",
"rxjs": "^6.5.3 || ^7.5.0"
}
},
"node_modules/@ngrx/entity": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-14.3.2.tgz",
"integrity": "sha512-Uyb36oVEiTbBJcb6TJ3OTseJdeamNKSxkvqw/uLHt+My87QaRaTEQceDWCsVCBEO4Q4Vgf2g0vbdPZdtGUZcbg==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-15.1.0.tgz",
"integrity": "sha512-CvE51HR+m5Nhbh4Sr3rDcm93kGZBkbrsVsRf1HR0V7e03Y87IycAEM2loveT7pELLO3+LlZAwWUxVl1HIO/7hg==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "^14.0.0",
"@ngrx/store": "14.3.2",
"@angular/core": "^15.0.0",
"@ngrx/store": "15.1.0",
"rxjs": "^6.5.3 || ^7.5.0"
}
},
"node_modules/@ngrx/store": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/store/-/store-14.3.2.tgz",
"integrity": "sha512-XGHjr0arh6gClo8Ce+xqJLvW9PkeXPW2tCo9Z5qMtHFI/z5dUppLVKGmMgD/fQBDyoqWTK5xu+89tDkdeZfRjQ==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/store/-/store-15.1.0.tgz",
"integrity": "sha512-Wxjme7yJnxD6il6fGZdFTdSs9gL+6OFW8/II9vApFokUb0E7UQBm8RYb9dYJ2IQJvWXwO+2ItSaecRUZgt39kA==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": "^14.0.0",
"@angular/core": "^15.0.0",
"rxjs": "^6.5.3 || ^7.5.0"
}
},
"node_modules/@ngrx/store-devtools": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-14.3.2.tgz",
"integrity": "sha512-lm1BobiHXzBC3tqYNAghCRNfBdIbs4JyfaTO9wqOEoDCh6COvzGLi7tAo9Zjls1REZC1NiIwSw4vKK8OMc+tfA==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-15.1.0.tgz",
"integrity": "sha512-InEFdjg2cE0nLgdWWcjXa50SFlzxSVOoeudRqkqQlJlpJ/0RPljlRXHXT63E5cUpryTxYdK2QcE4n5vngq/48g==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@ngrx/store": "14.3.2",
"@ngrx/store": "15.1.0",
"rxjs": "^6.5.3 || ^7.5.0"
}
},
@@ -11925,18 +11928,6 @@
"@ngrx/store": ">=4.0.0"
}
},
"node_modules/ngx-device-detector": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-4.0.1.tgz",
"integrity": "sha512-n0c9nOs7900r0pL/m4L0vaDvyf72xhKIC6bpr4BZYazWeRxankO1SqJZijqoMGxiUZnZAQqXkyhRkBIErgoKVg==",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": "^14.0.0",
"@angular/core": "^14.0.0"
}
},
"node_modules/nice-napi": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",
@@ -20549,41 +20540,41 @@
}
},
"@ngrx/component-store": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/component-store/-/component-store-14.3.2.tgz",
"integrity": "sha512-qdh0COdMU6LmrycoIIZg678DbsNXWR05Y6pVz+t7/LszGC4+UGuXoS6CR8gSNGGMWwLVw5yh+5MXsjuqTvp3ww==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/component-store/-/component-store-15.1.0.tgz",
"integrity": "sha512-aqNxZHWdHAgnxz5cdBLKmWq83PVKw9F4ZMVddsZ7d8Ow2j3BWZiYP65hPVgVpzTHuigpE4OX0cutwGC38iu1GA==",
"requires": {
"tslib": "^2.0.0"
}
},
"@ngrx/effects": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-14.3.2.tgz",
"integrity": "sha512-6bpGfA44jzwhBcmNaTwVgnFmYOX9iKPFpXyetDe41tVESo1CsNhUBPTmISDXKN9Mx2mwGbsMxrn6QFRypSsKAQ==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/effects/-/effects-15.1.0.tgz",
"integrity": "sha512-/8YnhzyAOTdI9RYJAqmIIvh8ip4M4x4DrRyrdDDc62oFM3TrVOvknUUpMp5NxKpKph8hSpevAwaeEBDWGnKkjg==",
"requires": {
"tslib": "^2.0.0"
}
},
"@ngrx/entity": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-14.3.2.tgz",
"integrity": "sha512-Uyb36oVEiTbBJcb6TJ3OTseJdeamNKSxkvqw/uLHt+My87QaRaTEQceDWCsVCBEO4Q4Vgf2g0vbdPZdtGUZcbg==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/entity/-/entity-15.1.0.tgz",
"integrity": "sha512-CvE51HR+m5Nhbh4Sr3rDcm93kGZBkbrsVsRf1HR0V7e03Y87IycAEM2loveT7pELLO3+LlZAwWUxVl1HIO/7hg==",
"requires": {
"tslib": "^2.0.0"
}
},
"@ngrx/store": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/store/-/store-14.3.2.tgz",
"integrity": "sha512-XGHjr0arh6gClo8Ce+xqJLvW9PkeXPW2tCo9Z5qMtHFI/z5dUppLVKGmMgD/fQBDyoqWTK5xu+89tDkdeZfRjQ==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/store/-/store-15.1.0.tgz",
"integrity": "sha512-Wxjme7yJnxD6il6fGZdFTdSs9gL+6OFW8/II9vApFokUb0E7UQBm8RYb9dYJ2IQJvWXwO+2ItSaecRUZgt39kA==",
"requires": {
"tslib": "^2.0.0"
}
},
"@ngrx/store-devtools": {
"version": "14.3.2",
"resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-14.3.2.tgz",
"integrity": "sha512-lm1BobiHXzBC3tqYNAghCRNfBdIbs4JyfaTO9wqOEoDCh6COvzGLi7tAo9Zjls1REZC1NiIwSw4vKK8OMc+tfA==",
"version": "15.1.0",
"resolved": "https://registry.npmjs.org/@ngrx/store-devtools/-/store-devtools-15.1.0.tgz",
"integrity": "sha512-InEFdjg2cE0nLgdWWcjXa50SFlzxSVOoeudRqkqQlJlpJ/0RPljlRXHXT63E5cUpryTxYdK2QcE4n5vngq/48g==",
"requires": {
"tslib": "^2.0.0"
}
@@ -27343,14 +27334,6 @@
"deep-freeze-strict": "^1.1.1"
}
},
"ngx-device-detector": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/ngx-device-detector/-/ngx-device-detector-4.0.1.tgz",
"integrity": "sha512-n0c9nOs7900r0pL/m4L0vaDvyf72xhKIC6bpr4BZYazWeRxankO1SqJZijqoMGxiUZnZAQqXkyhRkBIErgoKVg==",
"requires": {
"tslib": "^2.0.0"
}
},
"nice-napi": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz",

View File

@@ -129,11 +129,11 @@
"@angular/service-worker": "^15.0.0",
"@mdi/js": "^7.0.96",
"@microsoft/signalr": "^7.0.0",
"@ngrx/component-store": "^14.3.2",
"@ngrx/effects": "^14.3.2",
"@ngrx/entity": "^14.3.2",
"@ngrx/store": "^14.3.2",
"@ngrx/store-devtools": "^14.3.2",
"@ngrx/component-store": "^15.0.0",
"@ngrx/effects": "^15.0.0",
"@ngrx/entity": "^15.0.0",
"@ngrx/store": "^15.0.0",
"@ngrx/store-devtools": "^15.0.0",
"@paragondata/ngx-ui": "^12.0.0-beta.23",
"angular-oauth2-oidc": "^15.0.1",
"angular-oauth2-oidc-jwks": "^15.0.1",
@@ -142,7 +142,6 @@
"lodash": "^4.17.21",
"moment": "^2.29.4",
"ng2-pdf-viewer": "^9.1.3",
"ngx-device-detector": "^4.0.1",
"rxjs": "^6.6.7",
"scandit-sdk": "^5.12.1",
"socket.io": "^4.5.4",
@@ -195,5 +194,9 @@
"ts-node": "~7.0.0",
"tslint": "~6.1.0",
"typescript": "~4.8.4"
},
"engines": {
"node": "18.x",
"npm": "8.x"
}
}