[Library|Trunk]
code clean up - Connect related: -remove unused imports, code, files (Old search pages for results, dataproviders, map search page, etc) -remove Freeguard from modules -unsubscribe all subscriptions - remove old properties json files git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@59825 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
parent
8569010477
commit
7ca179f3e8
|
@ -1,6 +1,6 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {HttpClient, HttpHeaders} from '@angular/common/http';
|
import {HttpClient, HttpHeaders} from '@angular/common/http';
|
||||||
import {BehaviorSubject, Observable} from 'rxjs';
|
import {BehaviorSubject, Observable, Subscriber} from 'rxjs';
|
||||||
import {Affiliation} from '../../utils/entities/CuratorInfo';
|
import {Affiliation} from '../../utils/entities/CuratorInfo';
|
||||||
import {properties} from "../../../../environments/environment";
|
import {properties} from "../../../../environments/environment";
|
||||||
|
|
||||||
|
@ -8,13 +8,20 @@ import {properties} from "../../../../environments/environment";
|
||||||
export class AffiliationService {
|
export class AffiliationService {
|
||||||
|
|
||||||
private affiliationsSubject: BehaviorSubject<Affiliation[]> = new BehaviorSubject([]);
|
private affiliationsSubject: BehaviorSubject<Affiliation[]> = new BehaviorSubject([]);
|
||||||
|
sub;
|
||||||
constructor(private http: HttpClient) {
|
constructor(private http: HttpClient) {
|
||||||
}
|
}
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.clearSubscriptions();
|
||||||
|
}
|
||||||
|
clearSubscriptions(){
|
||||||
|
if (this.sub instanceof Subscriber) {
|
||||||
|
this.sub.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
public initAffiliations(communityId: string): void {
|
public initAffiliations(communityId: string): void {
|
||||||
let url = properties.communityAPI + communityId + "/organizations";
|
let url = properties.communityAPI + communityId + "/organizations";
|
||||||
this.http.get<Affiliation[]>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url).subscribe((affiliations) => {
|
this.sub = this.http.get<Affiliation[]>((properties.useCache) ? (properties.cacheUrl + encodeURIComponent(url)) : url).subscribe((affiliations) => {
|
||||||
this.affiliationsSubject.next(affiliations);
|
this.affiliationsSubject.next(affiliations);
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import { Component, Input } from '@angular/core';
|
import { Component, Input } from '@angular/core';
|
||||||
import { Location } from '@angular/common';
|
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { EnvProperties} from '../../utils/properties/env-properties';
|
import { EnvProperties} from '../../utils/properties/env-properties';
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {HttpClient} from "@angular/common/http";
|
||||||
|
|
||||||
import {CommunityInfo} from '../community/communityInfo';
|
import {CommunityInfo} from '../community/communityInfo';
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
import {EnvProperties} from '../../utils/properties/env-properties';
|
||||||
import {BehaviorSubject} from "rxjs";
|
import {BehaviorSubject, Subscriber} from "rxjs";
|
||||||
import {map} from "rxjs/operators";
|
import {map} from "rxjs/operators";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
@ -14,9 +14,17 @@ export class CommunitiesService {
|
||||||
constructor(private http: HttpClient) {
|
constructor(private http: HttpClient) {
|
||||||
this.communities = new BehaviorSubject([]);
|
this.communities = new BehaviorSubject([]);
|
||||||
}
|
}
|
||||||
|
sub;
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.clearSubscriptions();
|
||||||
|
}
|
||||||
|
clearSubscriptions(){
|
||||||
|
if (this.sub instanceof Subscriber) {
|
||||||
|
this.sub.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
updateCommunities(properties: EnvProperties, url: string) {
|
updateCommunities(properties: EnvProperties, url: string) {
|
||||||
this.getCommunities(properties, url).subscribe(res => {
|
this.sub = this.getCommunities(properties, url).subscribe(res => {
|
||||||
this.communities.next(res);
|
this.communities.next(res);
|
||||||
}, error => {
|
}, error => {
|
||||||
this.communities.error(error);
|
this.communities.error(error);
|
||||||
|
|
|
@ -3,7 +3,7 @@ import {HttpClient, HttpHeaders} from "@angular/common/http";
|
||||||
import { CommunityInfo } from './communityInfo';
|
import { CommunityInfo } from './communityInfo';
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
import {EnvProperties} from '../../utils/properties/env-properties';
|
||||||
import {map} from "rxjs/operators";
|
import {map} from "rxjs/operators";
|
||||||
import {BehaviorSubject, from} from "rxjs";
|
import {BehaviorSubject, from, Subscriber} from "rxjs";
|
||||||
import {properties} from "../../../../environments/environment";
|
import {properties} from "../../../../environments/environment";
|
||||||
|
|
||||||
@Injectable({ providedIn: 'root' })
|
@Injectable({ providedIn: 'root' })
|
||||||
|
@ -15,10 +15,18 @@ export class CommunityService {
|
||||||
constructor(private http: HttpClient) {
|
constructor(private http: HttpClient) {
|
||||||
this.community = new BehaviorSubject(null);
|
this.community = new BehaviorSubject(null);
|
||||||
}
|
}
|
||||||
|
sub;
|
||||||
|
ngOnDestroy() {
|
||||||
|
this.clearSubscriptions();
|
||||||
|
}
|
||||||
|
clearSubscriptions(){
|
||||||
|
if (this.sub instanceof Subscriber) {
|
||||||
|
this.sub.unsubscribe();
|
||||||
|
}
|
||||||
|
}
|
||||||
getCommunityByService(properties: EnvProperties, url: string) {
|
getCommunityByService(properties: EnvProperties, url: string) {
|
||||||
this.promise = new Promise<any>(resolve => {
|
this.promise = new Promise<any>(resolve => {
|
||||||
this.getCommunity(properties, url).subscribe(res => {
|
this.sub = this.getCommunity(properties, url).subscribe(res => {
|
||||||
this.community.next(res);
|
this.community.next(res);
|
||||||
resolve();
|
resolve();
|
||||||
},
|
},
|
||||||
|
@ -35,6 +43,7 @@ export class CommunityService {
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.promise;
|
await this.promise;
|
||||||
|
this.clearSubscriptions();
|
||||||
return this.community.getValue();
|
return this.community.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,53 +1,29 @@
|
||||||
import {filter, map, mergeMap, take, tap} from 'rxjs/operators';
|
import {take, tap} from 'rxjs/operators';
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
|
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
|
||||||
import {Observable, of} from 'rxjs';
|
import {Observable} from 'rxjs';
|
||||||
import {Session} from '../../login/utils/helper.class';
|
|
||||||
import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
|
import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
|
||||||
import {CommunityService} from '../community/community.service';
|
|
||||||
import {ConnectHelper} from '../connectHelper';
|
|
||||||
import {UserManagementService} from "../../services/user-management.service";
|
|
||||||
import {SubscribeService} from "../../utils/subscribe/subscribe.service";
|
import {SubscribeService} from "../../utils/subscribe/subscribe.service";
|
||||||
import {properties} from "../../../../environments/environment";
|
import {properties} from "../../../../environments/environment";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ConnectSubscriberGuard implements CanActivate {
|
export class ConnectSubscriberGuard implements CanActivate {
|
||||||
constructor(private router: Router,
|
constructor(private router: Router,
|
||||||
private communityService: CommunityService,
|
private subscribeService: SubscribeService) {
|
||||||
private subscribeService: SubscribeService,
|
|
||||||
private userManagementService: UserManagementService) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
check(community: string, path: string): Observable<boolean> | boolean {
|
check(community: string, path: string): Observable<boolean> {
|
||||||
let errorCode = LoginErrorCodes.NOT_LOGIN;
|
let errorCode = LoginErrorCodes.NOT_SUBSCRIBER;
|
||||||
let email = null;
|
return this.subscribeService.isSubscribedToCommunity(properties, community).pipe(take(1), tap(subscribed =>{
|
||||||
const subscribed = this.userManagementService.getUserInfo(false).pipe(take(1),map(user => {
|
if(!subscribed){
|
||||||
if (user) {
|
this.router.navigate(['/user-info'], {
|
||||||
errorCode = LoginErrorCodes.NOT_SUBSCRIBER;
|
queryParams: {
|
||||||
email = user.email;
|
'errorCode': errorCode,
|
||||||
let communityDomain = ConnectHelper.getCommunityFromDomain(properties.domain);
|
'redirectUrl': path
|
||||||
if (communityDomain) {
|
}
|
||||||
community = communityDomain;
|
});
|
||||||
}
|
|
||||||
if (Session.isSubscribedTo('community', community, user)) {
|
|
||||||
return of(true);
|
|
||||||
}
|
|
||||||
return this.subscribeService.isSubscribedToCommunity(properties, community).pipe(take(1));
|
|
||||||
} else {
|
|
||||||
return of(false);
|
|
||||||
}
|
}
|
||||||
}), mergeMap(authorized => {
|
|
||||||
return authorized;
|
|
||||||
}));
|
}));
|
||||||
subscribed.pipe(filter(subscribed => !subscribed)).subscribe(() => {
|
|
||||||
this.router.navigate(['/user-info'], {
|
|
||||||
queryParams: {
|
|
||||||
'errorCode': errorCode,
|
|
||||||
'redirectUrl': path
|
|
||||||
}
|
|
||||||
})
|
|
||||||
});
|
|
||||||
return subscribed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
|
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
|
import {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot} from '@angular/router';
|
||||||
import {Observable} from 'rxjs';
|
import {Observable} from 'rxjs';
|
||||||
import {filter, map, mergeMap} from "rxjs/operators";
|
import {filter, map, mergeMap, take} from "rxjs/operators";
|
||||||
import {UserManagementService} from "../../services/user-management.service";
|
import {UserManagementService} from "../../services/user-management.service";
|
||||||
import {EnvironmentSpecificService} from "../../utils/properties/environment-specific.service";
|
import {EnvironmentSpecificService} from "../../utils/properties/environment-specific.service";
|
||||||
import {Session} from "../../login/utils/helper.class";
|
import {Session} from "../../login/utils/helper.class";
|
||||||
|
@ -13,7 +13,19 @@ export class IsCommunityOrAdmin implements CanActivate {
|
||||||
private userManagementService: UserManagementService,
|
private userManagementService: UserManagementService,
|
||||||
private propertiesService: EnvironmentSpecificService) {
|
private propertiesService: EnvironmentSpecificService) {
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
//TODO add login guard and simplify this method
|
||||||
|
check(community: string): Observable<boolean> | boolean {
|
||||||
|
return this.userManagementService.getUserInfo(false).pipe(take(1),map(user => {
|
||||||
|
if (community && community !== 'undefined' || Session.isPortalAdministrator(user)) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
this.router.navigate(['/errorCommunity']);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
*/
|
||||||
check(community: string): Observable<boolean> | boolean {
|
check(community: string): Observable<boolean> | boolean {
|
||||||
if (community && community !== 'undefined') {
|
if (community && community !== 'undefined') {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Http} from '@angular/http';
|
|
||||||
import {HttpClient} from "@angular/common/http";
|
import {HttpClient} from "@angular/common/http";
|
||||||
import{EnvProperties} from '../../utils/properties/env-properties';
|
import{EnvProperties} from '../../utils/properties/env-properties';
|
||||||
import {map} from "rxjs/operators";
|
import {map} from "rxjs/operators";
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/*
|
||||||
export class ResultInfo {
|
export class ResultInfo {
|
||||||
title: string;
|
title: string;
|
||||||
id: string;
|
id: string;
|
||||||
|
@ -7,3 +8,4 @@ export class ResultInfo {
|
||||||
description: string;
|
description: string;
|
||||||
type: string;
|
type: string;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
import {Component, ViewChild, Input} from '@angular/core';
|
import {Component, Input} from '@angular/core';
|
||||||
import {Location} from '@angular/common';
|
import {Location} from '@angular/common';
|
||||||
import {Observable} from 'rxjs';
|
|
||||||
import {ActivatedRoute, Router} from '@angular/router';
|
import {ActivatedRoute, Router} from '@angular/router';
|
||||||
import {ModalLoading} from '../../utils/modal/loading.component';
|
|
||||||
import {AlertModal} from '../../utils/modal/alert';
|
|
||||||
import {Session} from '../../login/utils/helper.class';
|
import {Session} from '../../login/utils/helper.class';
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
import {EnvProperties} from '../../utils/properties/env-properties';
|
||||||
import {MailPrefsService} from './mailPrefs.service';
|
import {MailPrefsService} from './mailPrefs.service';
|
||||||
|
@ -11,6 +8,8 @@ import {ConnectHelper} from '../connectHelper';
|
||||||
import {ErrorCodes} from '../../utils/properties/errorCodes';
|
import {ErrorCodes} from '../../utils/properties/errorCodes';
|
||||||
import {ErrorMessagesComponent} from '../../utils/errorMessages.component';
|
import {ErrorMessagesComponent} from '../../utils/errorMessages.component';
|
||||||
import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
|
import {LoginErrorCodes} from '../../login/utils/guardHelper.class';
|
||||||
|
import {properties} from "../../../../environments/environment";
|
||||||
|
import {Subscriber} from "rxjs";
|
||||||
|
|
||||||
declare var UIkit: any;
|
declare var UIkit: any;
|
||||||
|
|
||||||
|
@ -22,7 +21,7 @@ declare var UIkit: any;
|
||||||
})
|
})
|
||||||
export class MailPrefsComponent {
|
export class MailPrefsComponent {
|
||||||
properties:EnvProperties;
|
properties:EnvProperties;
|
||||||
sub: any;
|
subscriptions = [];
|
||||||
public communityId: string;
|
public communityId: string;
|
||||||
public preferencesFor: string = "community";
|
public preferencesFor: string = "community";
|
||||||
public status: number;
|
public status: number;
|
||||||
|
@ -47,19 +46,15 @@ export class MailPrefsComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.route.data
|
this.properties = properties;
|
||||||
.subscribe((data: { envSpecific: EnvProperties }) => {
|
this.subscriptions.push(this.route.queryParams.subscribe(params => {
|
||||||
this.properties = data.envSpecific;
|
this.communityId = ConnectHelper.getCommunityFromDomain(this.properties.domain);
|
||||||
this.sub = this.route.queryParams.subscribe(params => {
|
if(!this.communityId) {
|
||||||
this.communityId = ConnectHelper.getCommunityFromDomain(this.properties.domain);
|
this.communityId = params['communityId'];
|
||||||
if(!this.communityId) {
|
}
|
||||||
this.communityId = params['communityId'];
|
this.getEmailPreferences();
|
||||||
}
|
}));
|
||||||
|
|
||||||
this.getEmailPreferences();
|
|
||||||
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +70,7 @@ export class MailPrefsComponent {
|
||||||
|
|
||||||
if(this.communityId && this.communityId != "openaire") {
|
if(this.communityId && this.communityId != "openaire") {
|
||||||
this.preferencesFor = "community";
|
this.preferencesFor = "community";
|
||||||
this._mailPrefsService.getUserEmailPreferencesForCommunity(this.communityId, this.properties.claimsAPIURL).subscribe(
|
this.subscriptions.push(this._mailPrefsService.getUserEmailPreferencesForCommunity(this.communityId, this.properties.claimsAPIURL).subscribe(
|
||||||
data => {
|
data => {
|
||||||
if(data.code == "204") {
|
if(data.code == "204") {
|
||||||
this.status = this.errorCodes.NONE;
|
this.status = this.errorCodes.NONE;
|
||||||
|
@ -90,10 +85,10 @@ export class MailPrefsComponent {
|
||||||
this.handleErrors(err);
|
this.handleErrors(err);
|
||||||
this.handleError("Error getting user email preferences for community with id: "+this.communityId, err);
|
this.handleError("Error getting user email preferences for community with id: "+this.communityId, err);
|
||||||
}
|
}
|
||||||
);
|
));
|
||||||
} else {
|
} else {
|
||||||
this.preferencesFor = "project";
|
this.preferencesFor = "project";
|
||||||
this._mailPrefsService.getUserEmailPreferencesForOpenaire(this.properties.claimsAPIURL).subscribe(
|
this.subscriptions.push(this._mailPrefsService.getUserEmailPreferencesForOpenaire(this.properties.claimsAPIURL).subscribe(
|
||||||
data => {
|
data => {
|
||||||
|
|
||||||
if(data.code == "204") {
|
if(data.code == "204") {
|
||||||
|
@ -113,7 +108,7 @@ export class MailPrefsComponent {
|
||||||
this.handleErrors(err);
|
this.handleErrors(err);
|
||||||
this.handleError("Error getting user email preferences for openaire", err);
|
this.handleError("Error getting user email preferences for openaire", err);
|
||||||
}
|
}
|
||||||
);
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,7 +155,7 @@ export class MailPrefsComponent {
|
||||||
this.status = this.errorCodes.LOADING;
|
this.status = this.errorCodes.LOADING;
|
||||||
this.savedMessage = "";
|
this.savedMessage = "";
|
||||||
|
|
||||||
this._mailPrefsService.saveUserEmailPreferences(this.notifications[index], this.properties.claimsAPIURL).subscribe(
|
this.subscriptions.push(this._mailPrefsService.saveUserEmailPreferences(this.notifications[index], this.properties.claimsAPIURL).subscribe(
|
||||||
data => {
|
data => {
|
||||||
this.initialNotifications[index] = JSON.parse(JSON.stringify( this.notifications[index] ));
|
this.initialNotifications[index] = JSON.parse(JSON.stringify( this.notifications[index] ));
|
||||||
|
|
||||||
|
@ -179,7 +174,7 @@ export class MailPrefsComponent {
|
||||||
this.handleError("Error saving user email preferences: "+JSON.stringify(this.notifications[index]), err);
|
this.handleError("Error saving user email preferences: "+JSON.stringify(this.notifications[index]), err);
|
||||||
this.status = this.errorCodes.NOT_SAVED;
|
this.status = this.errorCodes.NOT_SAVED;
|
||||||
}
|
}
|
||||||
);
|
));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/*UIkit.notification({
|
/*UIkit.notification({
|
||||||
|
@ -221,11 +216,14 @@ export class MailPrefsComponent {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
ngOnDestroy() {
|
ngOnDestroy() {
|
||||||
if(this.sub) {
|
this.subscriptions.forEach(subscription => {
|
||||||
this.sub.unsubscribe();
|
if (subscription instanceof Subscriber) {
|
||||||
}
|
subscription.unsubscribe();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
handleErrors(err){
|
handleErrors(err){
|
||||||
//this.showErrorMessage = true;
|
//this.showErrorMessage = true;
|
||||||
//try{
|
//try{
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Http, RequestOptions, Headers, Response} from '@angular/http';
|
|
||||||
import {HttpClient, HttpErrorResponse} from "@angular/common/http";
|
import {HttpClient, HttpErrorResponse} from "@angular/common/http";
|
||||||
import {Observable, throwError} from 'rxjs';
|
import {throwError} from 'rxjs';
|
||||||
//import { HttpErrorResponse } from '@angular/common/http';
|
|
||||||
|
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
|
||||||
import { CustomOptions } from '../../services/servicesUtils/customOptions.class';
|
import { CustomOptions } from '../../services/servicesUtils/customOptions.class';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Http} from '@angular/http';
|
|
||||||
import {HttpClient} from "@angular/common/http";
|
import {HttpClient} from "@angular/common/http";
|
||||||
import{EnvProperties} from '../../utils/properties/env-properties';
|
import{EnvProperties} from '../../utils/properties/env-properties';
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
import {Injectable} from '@angular/core';
|
import {Injectable} from '@angular/core';
|
||||||
import {Http, Response} from '@angular/http';
|
|
||||||
import {Headers, RequestOptions} from '@angular/http';
|
|
||||||
import {HttpClient} from "@angular/common/http";
|
import {HttpClient} from "@angular/common/http";
|
||||||
import {Observable} from 'rxjs';
|
|
||||||
|
|
||||||
import {ZenodoCommunityInfo} from './zenodoCommunityInfo';
|
import {ZenodoCommunityInfo} from './zenodoCommunityInfo';
|
||||||
import {EnvProperties} from '../../utils/properties/env-properties';
|
import {EnvProperties} from '../../utils/properties/env-properties';
|
||||||
|
|
Loading…
Reference in New Issue