diff --git a/dmp-frontend/browserslist b/dmp-frontend/browserslist new file mode 100644 index 000000000..80848532e --- /dev/null +++ b/dmp-frontend/browserslist @@ -0,0 +1,12 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/dmp-frontend/package.json b/dmp-frontend/package.json index 8b88cd0a1..2a69526d8 100644 --- a/dmp-frontend/package.json +++ b/dmp-frontend/package.json @@ -1,63 +1,58 @@ { - "name": "dmp-frontend2", - "version": "0.0.0", - "license": "MIT", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build --prod", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e" - }, - "private": true, - "dependencies": { - "@angular/animations": "^6.1.7", - "@angular/common": "^6.1.7", - "@angular/compiler": "^6.1.7", - "@angular/core": "^6.1.7", - "@angular/flex-layout": "6.0.0-beta.18", - "@angular/forms": "^6.1.7", - "@angular/material-moment-adapter": "^6.4.7", - "@angular/platform-browser": "^6.1.7", - "@ngx-translate/core": "^10.0.2", - "@ngx-translate/http-loader": "^3.0.1", - "@swimlane/ngx-datatable": "^13.1.0", - "bootstrap": "^4.1.3", - "core-js": "^2.5.5", - "file-saver": "^2.0.0-rc.3", - "moment": "^2.22.2", - "moment-timezone": "^0.5.23", - "ngx-cookie-service": "^1.0.10", - "rxjs": "^6.3.2", - "rxjs-compat": "^6.3.2", - "web-animations-js": "^2.3.1", - "zone.js": "^0.8.26" - }, - "devDependencies": { - "@angular-devkit/build-angular": "^0.8.5", - "@angular/cdk": "^6.3.0", - "@angular/material": "^6.4.7", - "@angular/cli": "6.2.5", - "@angular/compiler-cli": "^6.1.10", - "@angular/http": "^6.1.10", - "@angular/platform-browser-dynamic": "^6.1.10", - "@angular/router": "^6.1.10", - "@angular/language-service": "^6.1.10", - "@types/facebook-js-sdk": "^2.8.4", - "@types/file-saver": "^1.3.1", - "@types/gapi": "^0.0.36", - "@types/gapi.auth2": "^0.0.47", - "@types/jasmine": "~2.8.9", - "@types/jasminewd2": "~2.0.5", - "@types/moment-timezone": "^0.5.4", - "@types/node": "^10.11.7", - "codelyzer": "~4.5.0", - "jasmine-core": "^3.2.1", - "jasmine-spec-reporter": "^4.2.1", - "protractor": "~5.4.1", - "ts-node": "~7.0.1", - "tslint": "~5.11.0", - "typescript": "2.9.1" - } + "name": "dmp-frontend2", + "version": "0.0.0", + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build --prod", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@angular/animations": "^8.2.7", + "@angular/common": "^8.2.7", + "@angular/compiler": "^8.2.7", + "@angular/core": "^8.2.7", + "@angular/forms": "^8.2.7", + "@angular/material-moment-adapter": "^8.2.0", + "@angular/platform-browser": "^8.2.7", + "@ngx-translate/core": "^11.0.1", + "@ngx-translate/http-loader": "^4.0.0", + "@swimlane/ngx-datatable": "^16.0.2", + "bootstrap": "^4.3.1", + "core-js": "^2.5.5", + "file-saver": "^2.0.2", + "moment": "^2.24.0", + "moment-timezone": "^0.5.26", + "ngx-cookie-service": "^2.2.0", + "rxjs": "^6.3.2", + "tslib": "^1.10.0", + "web-animations-js": "^2.3.2", + "zone.js": "~0.9.1" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.803.5", + "@angular/cdk": "^8.2.0", + "@angular/material": "^8.2.0", + "@angular/cli": "8.3.5", + "@angular/compiler-cli": "^8.2.7", + "@angular/platform-browser-dynamic": "^8.2.7", + "@angular/router": "^8.2.7", + "@angular/language-service": "^8.2.7", + "@types/facebook-js-sdk": "^3.3.0", + "@types/file-saver": "^2.0.1", + "@types/gapi": "^0.0.39", + "@types/gapi.auth2": "^0.0.50", + "@types/jasmine": "~3.4.0", + "@types/jasminewd2": "~2.0.6", + "@types/moment-timezone": "^0.5.12", + "@types/node": "^10.11.7", + "codelyzer": "^5.1.1", + "ts-node": "~8.4.1", + "tslint": "~5.20.0", + "typescript": "3.5.3" + } } diff --git a/dmp-frontend/src/app/app-routing.module.ts b/dmp-frontend/src/app/app-routing.module.ts index 6e0f16745..5a6f0109c 100644 --- a/dmp-frontend/src/app/app-routing.module.ts +++ b/dmp-frontend/src/app/app-routing.module.ts @@ -14,7 +14,7 @@ const appRoutes: Routes = [ }, { path: 'datasetcreatewizard', - loadChildren: './ui/dataset-create-wizard/dataset-create-wizard.module#DatasetCreateWizardModule', + loadChildren: () => import('./ui/dataset-create-wizard/dataset-create-wizard.module').then(m => m.DatasetCreateWizardModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.DATASETCREATEWIZARD' @@ -22,7 +22,7 @@ const appRoutes: Routes = [ }, { path: 'explore', - loadChildren: './ui/explore-dataset/explore-dataset.module#ExploreDatasetModule', + loadChildren: () => import('./ui/explore-dataset/explore-dataset.module').then(m => m.ExploreDatasetModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.EXPLORE' @@ -30,7 +30,7 @@ const appRoutes: Routes = [ }, { path: 'explore-plans', - loadChildren: './ui/explore-dmp/explore-dmp.module#ExploreDmpModule', + loadChildren: () => import('./ui/explore-dmp/explore-dmp.module').then(m => m.ExploreDmpModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.EXPLORE-PLANS' @@ -38,7 +38,7 @@ const appRoutes: Routes = [ }, { path: 'datasets', - loadChildren: './ui/dataset/dataset.module#DatasetModule', + loadChildren: () => import('./ui/dataset/dataset.module').then(m => m.DatasetModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.DATASETS' @@ -46,7 +46,7 @@ const appRoutes: Routes = [ }, { path: 'about', - loadChildren: './ui/about/about.module#AboutModule', + loadChildren: () => import('./ui/about/about.module').then(m => m.AboutModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.ABOUT' @@ -54,7 +54,7 @@ const appRoutes: Routes = [ }, { path: 'grants', - loadChildren: './ui/grant/grant.module#GrantModule', + loadChildren: () => import('./ui/grant/grant.module').then(m => m.GrantModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.GRANTS' @@ -62,7 +62,7 @@ const appRoutes: Routes = [ }, { path: 'plans', - loadChildren: './ui/dmp/dmp.module#DmpModule', + loadChildren: () => import('./ui/dmp/dmp.module').then(m => m.DmpModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.PLANS' @@ -70,7 +70,7 @@ const appRoutes: Routes = [ }, { path: 'dmp-profiles', - loadChildren: './ui/admin/dmp-profile/dmp-profile.module#DmpProfileModule', + loadChildren: () => import('./ui/admin/dmp-profile/dmp-profile.module').then(m => m.DmpProfileModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.DMP-PROFILES' @@ -78,7 +78,7 @@ const appRoutes: Routes = [ }, { path: 'quick-wizard', - loadChildren: './ui/quick-wizard/quick-wizard.module#OuickWizardModule', + loadChildren: () => import('./ui/quick-wizard/quick-wizard.module').then(m => m.OuickWizardModule), data: { breadcrumb: true, title: "GENERAL.TITLES.QUICK-WIZARD" @@ -86,7 +86,7 @@ const appRoutes: Routes = [ }, { path: 'dataset-profiles', - loadChildren: './ui/admin/dataset-profile/dataset-profile.module#DatasetProfileModule', + loadChildren: () => import('./ui/admin/dataset-profile/dataset-profile.module').then(m => m.DatasetProfileModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.DATASET-PROFILES' @@ -94,21 +94,21 @@ const appRoutes: Routes = [ }, { path: 'home', - loadChildren: './ui/dashboard/dashboard.module#DashboardModule', + loadChildren: () => import('./ui/dashboard/dashboard.module').then(m => m.DashboardModule), data: { breadcrumb: true } }, { path: 'unauthorized', - loadChildren: './ui/misc/unauthorized/unauthorized.module#UnauthorizedModule', + loadChildren: () => import('./ui/misc/unauthorized/unauthorized.module').then(m => m.UnauthorizedModule), data: { breadcrumb: true }, }, { path: 'users', - loadChildren: './ui/admin/user/user.module#UserModule', + loadChildren: () => import('./ui/admin/user/user.module').then(m => m.UserModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.USERS' @@ -116,7 +116,7 @@ const appRoutes: Routes = [ }, { path: 'profile', - loadChildren: './ui/user-profile/user-profile.module#UserProfileModule', + loadChildren: () => import('./ui/user-profile/user-profile.module').then(m => m.UserProfileModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.PROFILE' @@ -124,14 +124,14 @@ const appRoutes: Routes = [ }, { path: 'login/admin', - loadChildren: './ui/auth/admin-login/admin-login.module#AdminLoginModule', + loadChildren: () => import('./ui/auth/admin-login/admin-login.module').then(m => m.AdminLoginModule), data: { breadcrumb: true }, }, { path: 'login', - loadChildren: './ui/auth/login/login.module#LoginModule', + loadChildren: () => import('./ui/auth/login/login.module').then(m => m.LoginModule), data: { breadcrumb: true, title: 'GENERAL.TITLES.LOGIN' diff --git a/dmp-frontend/src/app/app.component.ts b/dmp-frontend/src/app/app.component.ts index 4c0a5ade9..170f52cde 100644 --- a/dmp-frontend/src/app/app.component.ts +++ b/dmp-frontend/src/app/app.component.ts @@ -1,12 +1,14 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {switchMap, filter, map } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { environment } from '../environments/environment'; import { AuthService } from './core/services/auth/auth.service'; import { CultureService } from './core/services/culture/culture-service'; import { BreadCrumbResolverService } from './ui/misc/breadcrumb/service/breadcrumb.service'; -import { filter, map } from 'rxjs/operators'; import { Title } from '@angular/platform-browser'; @@ -20,7 +22,7 @@ declare var $: any; }) export class AppComponent implements OnInit { - hasBreadCrumb = Observable.of(false); + hasBreadCrumb = observableOf(false); sideNavOpen = false; helpContentEnabled = environment.HelpService.Enabled; @@ -46,12 +48,12 @@ export class AppComponent implements OnInit { } ngOnInit() { - this.hasBreadCrumb = this.router.events - .filter(event => event instanceof NavigationEnd) - .map(() => this.route) - .map(route => route.firstChild) - .switchMap(route => route.data) - .map(data => data['breadcrumb']); + this.hasBreadCrumb = this.router.events.pipe( + filter(event => event instanceof NavigationEnd), + map(() => this.route), + map(route => route.firstChild), + switchMap(route => route.data), + map(data => data['breadcrumb']),); const appTitle = this.titleService.getTitle(); this.router diff --git a/dmp-frontend/src/app/app.module.ts b/dmp-frontend/src/app/app.module.ts index 7d4640e5e..aa65a7c4e 100644 --- a/dmp-frontend/src/app/app.module.ts +++ b/dmp-frontend/src/app/app.module.ts @@ -1,7 +1,7 @@ import { OverlayModule } from '@angular/cdk/overlay'; import { HttpClient, HttpClientModule } from '@angular/common/http'; import { LOCALE_ID, NgModule } from '@angular/core'; -import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material'; +import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core'; import { MatMomentDateModule, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter'; import { BrowserModule, Title } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; diff --git a/dmp-frontend/src/app/common/date/moment-utc-date-adapter.ts b/dmp-frontend/src/app/common/date/moment-utc-date-adapter.ts index 722f3ae2f..659926878 100644 --- a/dmp-frontend/src/app/common/date/moment-utc-date-adapter.ts +++ b/dmp-frontend/src/app/common/date/moment-utc-date-adapter.ts @@ -1,5 +1,5 @@ import { Inject, Injectable, Optional } from '@angular/core'; -import { MAT_DATE_LOCALE } from '@angular/material'; +import { MAT_DATE_LOCALE } from '@angular/material/core'; import { MomentDateAdapter } from '@angular/material-moment-adapter'; import * as moment from 'moment'; import { Moment } from 'moment'; diff --git a/dmp-frontend/src/app/common/http/interceptors/response-payload.interceptor.ts b/dmp-frontend/src/app/common/http/interceptors/response-payload.interceptor.ts index 125ac38ce..f34b273d4 100644 --- a/dmp-frontend/src/app/common/http/interceptors/response-payload.interceptor.ts +++ b/dmp-frontend/src/app/common/http/interceptors/response-payload.interceptor.ts @@ -1,6 +1,6 @@ import { HttpHandler, HttpHeaderResponse, HttpProgressEvent, HttpRequest, HttpResponse, HttpSentEvent, HttpUserEvent } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { BaseInterceptor } from './base.interceptor'; diff --git a/dmp-frontend/src/app/common/http/interceptors/status-code.interceptor.ts b/dmp-frontend/src/app/common/http/interceptors/status-code.interceptor.ts index 78a4aa331..867889a96 100644 --- a/dmp-frontend/src/app/common/http/interceptors/status-code.interceptor.ts +++ b/dmp-frontend/src/app/common/http/interceptors/status-code.interceptor.ts @@ -1,3 +1,5 @@ + +import {tap} from 'rxjs/operators'; import { Injectable } from "@angular/core"; import { BaseInterceptor } from "./base.interceptor"; import { InterceptorType } from "./interceptor-type"; @@ -10,11 +12,11 @@ export class StatusCodeInterceptor extends BaseInterceptor { type: InterceptorType; interceptRequest(req: HttpRequest, next: HttpHandler): Observable> { - return next.handle(req).do(event => { }, err => { + return next.handle(req).pipe(tap(event => { }, err => { if (err.status === 480) { this.router.navigate(['confirmation']); } - }); + })); } constructor( diff --git a/dmp-frontend/src/app/common/material/material.module.ts b/dmp-frontend/src/app/common/material/material.module.ts index 909d1ea8e..c450d3ea2 100644 --- a/dmp-frontend/src/app/common/material/material.module.ts +++ b/dmp-frontend/src/app/common/material/material.module.ts @@ -1,37 +1,35 @@ import { NgModule } from '@angular/core'; -import { - MatButtonModule, - MatToolbarModule, - MatIconModule, - MatCardModule, - MatGridListModule, - MatSnackBarModule, - MatSidenavModule, - MatListModule, - MatChipsModule, - MatFormFieldModule, - MatSelectModule, - MatOptionModule, - MatInputModule, - MatExpansionModule, - MatAutocompleteModule, - MatProgressSpinnerModule, - MatTabsModule, - MatDialogModule, - MatMenuModule, - MatRadioModule, - MatStepperModule, - MatTooltipModule, - MatProgressBarModule, - MatCheckboxModule, - MatDatepickerModule, - MatButtonToggleModule, - MatSliderModule, - MatSlideToggleModule, - MatTableModule, - MatPaginatorModule, - MatSortModule, -} from '@angular/material'; +import { MatAutocompleteModule } from '@angular/material/autocomplete'; +import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; +import { MatCardModule } from '@angular/material/card'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatOptionModule } from '@angular/material/core'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatExpansionModule } from '@angular/material/expansion'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatGridListModule } from '@angular/material/grid-list'; +import { MatIconModule } from '@angular/material/icon'; +import { MatInputModule } from '@angular/material/input'; +import { MatListModule } from '@angular/material/list'; +import { MatMenuModule } from '@angular/material/menu'; +import { MatPaginatorModule } from '@angular/material/paginator'; +import { MatProgressBarModule } from '@angular/material/progress-bar'; +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatSelectModule } from '@angular/material/select'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatSliderModule } from '@angular/material/slider'; +import { MatSnackBarModule } from '@angular/material/snack-bar'; +import { MatSortModule } from '@angular/material/sort'; +import { MatStepperModule } from '@angular/material/stepper'; +import { MatTableModule } from '@angular/material/table'; +import { MatTabsModule } from '@angular/material/tabs'; +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatTooltipModule } from '@angular/material/tooltip'; import { CdkTableModule } from '@angular/cdk/table'; @NgModule({ diff --git a/dmp-frontend/src/app/core/model/dmp/dmp-create-wizard/dmp-create-wizard-form.model.ts b/dmp-frontend/src/app/core/model/dmp/dmp-create-wizard/dmp-create-wizard-form.model.ts index f53ef7d9c..a3303ccac 100644 --- a/dmp-frontend/src/app/core/model/dmp/dmp-create-wizard/dmp-create-wizard-form.model.ts +++ b/dmp-frontend/src/app/core/model/dmp/dmp-create-wizard/dmp-create-wizard-form.model.ts @@ -1,10 +1,9 @@ -import { DmpModel } from "../dmp" -import { DatasetProfileModel } from "../../dataset/dataset-profile"; -import { FormGroup } from "@angular/forms/src/model"; -import { ValidationContext } from "../../../../common/forms/validation/validation-context"; -import { Validators, FormBuilder } from "@angular/forms"; +import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { BackendErrorValidator } from "../../../../common/forms/validation/custom-validator"; import { ValidationErrorModel } from "../../../../common/forms/validation/error-model/validation-error-model"; +import { ValidationContext } from "../../../../common/forms/validation/validation-context"; +import { DatasetProfileModel } from "../../dataset/dataset-profile"; +import { DmpModel } from "../dmp"; export class DmpCreateWizardFormModel { dmp: DmpModel; @@ -18,7 +17,7 @@ export class DmpCreateWizardFormModel { return this; } - buildForm(context: ValidationContext = null): FormGroup{ + buildForm(context: ValidationContext = null): FormGroup { if (context == null) { context = this.createValidationContext(); } const formBuilder = new FormBuilder(); const formGroup = formBuilder.group({ @@ -37,6 +36,3 @@ export class DmpCreateWizardFormModel { return baseContext; } } - - - diff --git a/dmp-frontend/src/app/core/services/auth/auth.service.ts b/dmp-frontend/src/app/core/services/auth/auth.service.ts index b08921e01..8f0ef3f5a 100644 --- a/dmp-frontend/src/app/core/services/auth/auth.service.ts +++ b/dmp-frontend/src/app/core/services/auth/auth.service.ts @@ -1,10 +1,12 @@ + +import {of as observableOf, throwError as observableThrowError, Observable } from 'rxjs'; + +import {map, catchError, takeUntil } from 'rxjs/operators'; import { HttpClient, HttpHeaders } from '@angular/common/http'; import { Injectable } from '@angular/core'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { takeUntil } from 'rxjs/operators'; -import { Observable } from 'rxjs/Rx'; import { environment } from '../../../../environments/environment'; import { SnackBarNotificationComponent } from '../../../library/notification/snack-bar/snack-bar-notification.component'; import { BaseService } from '../../common/base/base.service'; @@ -67,31 +69,31 @@ export class AuthService extends BaseService { public login(loginInfo: LoginInfo): Observable { const url = this.actionUrl + 'externallogin'; - return this.http.post(url, loginInfo, { headers: this.headers }) - .map((res: any) => { + return this.http.post(url, loginInfo, { headers: this.headers }).pipe( + map((res: any) => { const principal = this.current(res.payload); //this.loginContextSubject.next(true); return principal; - }) - .catch((error: any) => { + }), + catchError((error: any) => { //this.loginContextSubject.next(false); - return Observable.throw(error); - }); + return observableThrowError(error); + }),); } public nativeLogin(credentials: Credential): Observable { const url = this.actionUrl + 'nativelogin'; - return this.http.post(url, credentials, { headers: this.headers }) - .map((res: any) => { + return this.http.post(url, credentials, { headers: this.headers }).pipe( + map((res: any) => { const principal = this.current(res.payload); //this.loginContextSubject.next(true); return principal; - }) - .catch((error: any) => { + }), + catchError((error: any) => { //this.loginContextSubject.next(false); - return Observable.throw(error); - }); + return observableThrowError(error); + }),); } @@ -116,22 +118,22 @@ export class AuthService extends BaseService { const principal = this.current(); if (!principal) { this.clear(); - return Observable.of(); + return observableOf(); } let headers = this.headers; headers = headers.set('AuthToken', principal.token); - return this.http.post(url, null, { headers: headers }) - .map((res: any) => { + return this.http.post(url, null, { headers: headers }).pipe( + map((res: any) => { const princ = this.current(res.payload); return princ; - }) - .catch((error: any) => { + }), + catchError((error: any) => { //console.warn('could not retrieve me info:\n', error); this.clear(); const princ = this.current(); this.router.navigate(['/login']); - return Observable.of(princ); - }); + return observableOf(princ); + }),); } public onLogOutSuccess(logoutMessage: any) { diff --git a/dmp-frontend/src/app/core/services/dataset-wizard/dataset-wizard.service.ts b/dmp-frontend/src/app/core/services/dataset-wizard/dataset-wizard.service.ts index b08009aad..e11802ccd 100644 --- a/dmp-frontend/src/app/core/services/dataset-wizard/dataset-wizard.service.ts +++ b/dmp-frontend/src/app/core/services/dataset-wizard/dataset-wizard.service.ts @@ -2,17 +2,14 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { environment } from '../../../../environments/environment'; -import { RequestItem } from '../../query/request-item'; +import { BaseHttpParams } from '../../../common/http/base-http-params'; +import { InterceptorType } from '../../../common/http/interceptors/interceptor-type'; import { DatasetProfileDefinitionModel } from '../../model/dataset-profile-definition/dataset-profile-definition'; import { DatasetProfileModel } from '../../model/dataset/dataset-profile'; import { DatasetWizardModel } from '../../model/dataset/dataset-wizard'; -import { DmpModel } from '../../model/dmp/dmp'; import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria'; -import { DmpCriteria } from '../../query/dmp/dmp-criteria'; +import { RequestItem } from '../../query/request-item'; import { BaseHttpService } from '../http/base-http.service'; -import { ContentType } from '@angular/http/src/enums'; -import { BaseHttpParams } from '../../../common/http/base-http-params'; -import { InterceptorType } from '../../../common/http/interceptors/interceptor-type'; @Injectable() export class DatasetWizardService { @@ -70,7 +67,7 @@ export class DatasetWizardService { return this.http.get(this.actionUrl + id + '/unlock', { headers: this.headers }); } - public uploadXml(fileList: FileList, datasetTitle: string, dmpId: string, datasetProfileId: string): Observable { + public uploadXml(fileList: FileList, datasetTitle: string, dmpId: string, datasetProfileId: string): Observable { const formData: FormData = new FormData(); if (fileList instanceof FileList) { for (let i = 0; i < fileList.length; i++) { @@ -90,6 +87,6 @@ export class DatasetWizardService { } public updateDatasetProfile(id: String): Observable { - return this.http.get(this.actionUrl + "profile/"+ id, { headers: this.headers }); + return this.http.get(this.actionUrl + "profile/" + id, { headers: this.headers }); } } diff --git a/dmp-frontend/src/app/core/services/dmp/dmp.service.ts b/dmp-frontend/src/app/core/services/dmp/dmp.service.ts index 4cb45c308..2df142252 100644 --- a/dmp-frontend/src/app/core/services/dmp/dmp.service.ts +++ b/dmp-frontend/src/app/core/services/dmp/dmp.service.ts @@ -2,23 +2,22 @@ import { HttpClient, HttpHeaders, HttpResponse } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { environment } from '../../../../environments/environment'; +import { BaseHttpParams } from '../../../common/http/base-http-params'; +import { InterceptorType } from '../../../common/http/interceptors/interceptor-type'; import { DynamicFieldGrantCriteria } from '../../../models/dynamic-field-grant/DynamicFieldGrantCriteria'; import { DataTableData } from '../../model/data-table/data-table-data'; import { DataTableRequest } from '../../model/data-table/data-table-request'; +import { DatasetListingModel } from '../../model/dataset/dataset-listing'; import { DatasetProfileModel } from '../../model/dataset/dataset-profile'; +import { DatasetsToBeFinalized } from '../../model/dataset/datasets-toBeFinalized'; import { DmpModel } from '../../model/dmp/dmp'; import { DmpListingModel } from '../../model/dmp/dmp-listing'; +import { DmpOverviewModel } from '../../model/dmp/dmp-overview'; import { DatasetProfileCriteria } from '../../query/dataset-profile/dataset-profile-criteria'; import { DmpCriteria } from '../../query/dmp/dmp-criteria'; +import { ExploreDmpCriteriaModel } from '../../query/explore-dmp/explore-dmp-criteria'; import { RequestItem } from '../../query/request-item'; import { BaseHttpService } from '../http/base-http.service'; -import { ContentType } from '@angular/http/src/enums'; -import { BaseHttpParams } from '../../../common/http/base-http-params'; -import { InterceptorType } from '../../../common/http/interceptors/interceptor-type'; -import { ExploreDmpCriteriaModel } from '../../query/explore-dmp/explore-dmp-criteria'; -import { DmpOverviewModel } from '../../model/dmp/dmp-overview'; -import { DatasetListingModel } from '../../model/dataset/dataset-listing'; -import { DatasetsToBeFinalized } from '../../model/dataset/datasets-toBeFinalized'; @Injectable() export class DmpService { @@ -93,7 +92,7 @@ export class DmpService { } getDoi(id: string): Observable { - return this.http.post(this.actionUrl + 'createZenodoDoi/' + id, {headers: this.headers}); + return this.http.post(this.actionUrl + 'createZenodoDoi/' + id, { headers: this.headers }); } getDynamicField(requestItem: RequestItem): any { @@ -119,7 +118,7 @@ export class DmpService { return this.httpClient.get(this.actionUrl + 'rda/' + id, { responseType: 'blob', observe: 'response' }); } - public uploadXml(fileList: FileList, dmpTitle: string): Observable { + public uploadXml(fileList: FileList, dmpTitle: string): Observable { const formData: FormData = new FormData(); if (fileList instanceof FileList) { for (let i = 0; i < fileList.length; i++) { diff --git a/dmp-frontend/src/app/core/services/email-confirmation/email-confirmation.service.ts b/dmp-frontend/src/app/core/services/email-confirmation/email-confirmation.service.ts index fc7673568..29433964f 100644 --- a/dmp-frontend/src/app/core/services/email-confirmation/email-confirmation.service.ts +++ b/dmp-frontend/src/app/core/services/email-confirmation/email-confirmation.service.ts @@ -1,7 +1,7 @@ +import { HttpHeaders } from '@angular/common/http'; import { Injectable } from "@angular/core"; -import { HttpHeaders } from "@angular/common/http/src/headers"; -import { BaseHttpService } from "../http/base-http.service"; import { environment } from "../../../../environments/environment"; +import { BaseHttpService } from "../http/base-http.service"; @Injectable() export class EmailConfirmationService { @@ -17,6 +17,6 @@ export class EmailConfirmationService { } public sendConfirmationEmail(email: string) { - return this.http.post(this.actioUrl, email, {headers: this.headers}); + return this.http.post(this.actioUrl, email, { headers: this.headers }); } } diff --git a/dmp-frontend/src/app/core/services/help-content/help-content.service.ts b/dmp-frontend/src/app/core/services/help-content/help-content.service.ts index 638e289c9..f0397b5b6 100644 --- a/dmp-frontend/src/app/core/services/help-content/help-content.service.ts +++ b/dmp-frontend/src/app/core/services/help-content/help-content.service.ts @@ -1,55 +1,57 @@ +import { HttpClient } from '@angular/common/http'; /** * Created by stefania on 7/17/17. */ import { Injectable } from '@angular/core'; -import { Http, Response } from '@angular/http'; -import { Observable } from 'rxjs/Rx'; +import { Observable, throwError as observableThrowError } from 'rxjs'; +import { catchError, map } from 'rxjs/operators'; import { environment } from '../../../../environments/environment'; import { PageHelpContent } from '../../model/help-content/page-help-content'; import { CachedContentItem } from './cached-content-item'; + @Injectable() export class HelpContentService { private _helpServiceUrl = environment.HelpService.Url; cache = new Map(); - constructor(private http: Http) { + constructor(private http: HttpClient) { } - getActivePageContent(route: string) { - if (!this.cache.get(route) || !this.isValidCachedItem(route)) { - return this.http.get(this._helpServiceUrl + '/page/route?q=' + route) - .map(res => { - this.cache.set(route, { timestamp: Date.now(), content: res.json() }); - return res.json(); - }) - .catch(this.handleError); - } - return Observable.create(observer => observer.next(this.cache.get(route).content)); - } - private extractData(res: Response) { - const body = res.json(); - return body.data || {}; - } - private handleError(error: Response | any) { - // In a real world app, we might use a remote logging infrastructure - // We'd also dig deeper into the error to get a better message - let errMsg = ''; - if (error instanceof Response) { - const body = error.text() || ''; - //const err = body.error || JSON.stringify(body); - errMsg = `${error.status} - ${error.statusText || ''} ${body}`; - } else { - errMsg = (error.message) ? error.message : - error.status ? `${error.status} - ${error.statusText}` : 'Server error'; - console.error(errMsg); // log to console instead - } - return Observable.throw(errMsg); - } + // getActivePageContent(route: string) { + // if (!this.cache.get(route) || !this.isValidCachedItem(route)) { + // return this.http.get(this._helpServiceUrl + '/page/route?q=' + route).pipe( + // map((res: Response) => { + // this.cache.set(route, { timestamp: Date.now(), content: res.json() as PageHelpContent }); + // return res.json(); + // }), + // catchError(this.handleError)); + // } + // return Observable.create(observer => observer.next(this.cache.get(route).content)); + // } + // private extractData(res: Response) { + // const body = res.json(); + // return body. || {}; + // } + // private handleError(error: Response | any) { + // // In a real world app, we might use a remote logging infrastructure + // // We'd also dig deeper into the error to get a better message + // let errMsg = ''; + // if (error instanceof Response) { + // const body = error.text() || ''; + // //const err = body.error || JSON.stringify(body); + // errMsg = `${error.status} - ${error.statusText || ''} ${body}`; + // } else { + // errMsg = (error.message) ? error.message : + // error.status ? `${error.status} - ${error.statusText}` : 'Server error'; + // console.error(errMsg); // log to console instead + // } + // return observableThrowError(errMsg); + // } - isValidCachedItem(route) { - const cachedTimestamp = this.cache.get(route).timestamp; - const currentTimestamp = Date.now(); - if (currentTimestamp - cachedTimestamp > 30000) { return false; } else { return true; } - } + // isValidCachedItem(route) { + // const cachedTimestamp = this.cache.get(route).timestamp; + // const currentTimestamp = Date.now(); + // if (currentTimestamp - cachedTimestamp > 30000) { return false; } else { return true; } + // } } diff --git a/dmp-frontend/src/app/core/services/http/base-http.service.ts b/dmp-frontend/src/app/core/services/http/base-http.service.ts index a3e0aca26..7fe8f473d 100644 --- a/dmp-frontend/src/app/core/services/http/base-http.service.ts +++ b/dmp-frontend/src/app/core/services/http/base-http.service.ts @@ -1,3 +1,5 @@ + +import {map} from 'rxjs/operators'; import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; @@ -39,7 +41,7 @@ export class BaseHttpService { } private interceptRepsonse(observable: Observable): Observable { - return observable + return observable.pipe( // .catch((errorResponse) => { // if (errorResponse.status === 401) { // this.snackBar.openFromComponent(SnackBarNotificationComponent, { @@ -69,7 +71,7 @@ export class BaseHttpService { // } // } // }) - .map(response => { + map(response => { if (response instanceof Blob) { return response; } if (response['statusCode'] === ApiMessageCode.SUCCESS_MESSAGE) { //throw new Error('Request failed'); @@ -83,6 +85,6 @@ export class BaseHttpService { } else { return response['payload']; } - }); + })); } } diff --git a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts index 73763d3e5..a19d1c55d 100644 --- a/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts +++ b/dmp-frontend/src/app/library/auto-complete/multiple/multiple-auto-complete.component.ts @@ -2,7 +2,9 @@ import { FocusMonitor } from '@angular/cdk/a11y'; import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self, ViewChild } from '@angular/core'; import { ControlValueAccessor, NgControl } from '@angular/forms'; -import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger, MatChipInputEvent, MatFormFieldControl } from '@angular/material'; +import { MatAutocompleteSelectedEvent, MatAutocompleteTrigger } from '@angular/material/autocomplete'; +import { MatChipInputEvent } from '@angular/material/chips'; +import { MatFormFieldControl } from '@angular/material/form-field'; import { Observable, of as observableOf, Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators'; import { AutoCompleteGroup } from '../auto-complete-group'; @@ -87,8 +89,8 @@ export class MultipleAutoCompleteComponent implements OnInit, MatFormFieldContro } private _selectedValue; - @ViewChild('textInput') textInput: ElementRef; - @ViewChild(MatAutocompleteTrigger) autocomplete: MatAutocompleteTrigger; + @ViewChild('textInput', { static: true }) textInput: ElementRef; + @ViewChild(MatAutocompleteTrigger, { static: true }) autocomplete: MatAutocompleteTrigger; constructor( private fm: FocusMonitor, diff --git a/dmp-frontend/src/app/library/auto-complete/single/single-auto-complete.component.ts b/dmp-frontend/src/app/library/auto-complete/single/single-auto-complete.component.ts index 7acfe607f..1a49d15c1 100644 --- a/dmp-frontend/src/app/library/auto-complete/single/single-auto-complete.component.ts +++ b/dmp-frontend/src/app/library/auto-complete/single/single-auto-complete.component.ts @@ -2,7 +2,8 @@ import { FocusMonitor } from '@angular/cdk/a11y'; import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Optional, Output, Self } from '@angular/core'; import { ControlValueAccessor, NgControl } from '@angular/forms'; -import { MatAutocompleteSelectedEvent, MatFormFieldControl } from '@angular/material'; +import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; +import { MatFormFieldControl } from '@angular/material/form-field'; import { Observable, of as observableOf, Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged, map, mergeMap, startWith, tap } from 'rxjs/operators'; import { AutoCompleteGroup } from '../auto-complete-group'; diff --git a/dmp-frontend/src/app/library/confirmation-dialog/confirmation-dialog.component.ts b/dmp-frontend/src/app/library/confirmation-dialog/confirmation-dialog.component.ts index 26e1e63f3..55b8ddf8c 100644 --- a/dmp-frontend/src/app/library/confirmation-dialog/confirmation-dialog.component.ts +++ b/dmp-frontend/src/app/library/confirmation-dialog/confirmation-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ selector: 'app-confirmation-dialog', diff --git a/dmp-frontend/src/app/library/contact-dialog/contact-dialog.component.ts b/dmp-frontend/src/app/library/contact-dialog/contact-dialog.component.ts index c886ad48f..d3cbb2ef5 100644 --- a/dmp-frontend/src/app/library/contact-dialog/contact-dialog.component.ts +++ b/dmp-frontend/src/app/library/contact-dialog/contact-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { FormGroup } from '@angular/forms'; @Component({ diff --git a/dmp-frontend/src/app/library/export-method-dialog/export-method-dialog.component.ts b/dmp-frontend/src/app/library/export-method-dialog/export-method-dialog.component.ts index 2658b3ba7..37406942a 100644 --- a/dmp-frontend/src/app/library/export-method-dialog/export-method-dialog.component.ts +++ b/dmp-frontend/src/app/library/export-method-dialog/export-method-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ diff --git a/dmp-frontend/src/app/library/notification/notification.component.ts b/dmp-frontend/src/app/library/notification/notification.component.ts index a42d08a62..20527fe02 100644 --- a/dmp-frontend/src/app/library/notification/notification.component.ts +++ b/dmp-frontend/src/app/library/notification/notification.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { MatDialog, MatSnackBar } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../core/common/base/base.component'; import { UiNotificationService, UiNotificationType, PopupNotification, SnackBarNotification, SnackBarNotificationLevel } from '../../core/services/notification/ui-notification-service'; diff --git a/dmp-frontend/src/app/library/notification/popup/popup-notification.component.ts b/dmp-frontend/src/app/library/notification/popup/popup-notification.component.ts index 84a11666a..b672e34f6 100644 --- a/dmp-frontend/src/app/library/notification/popup/popup-notification.component.ts +++ b/dmp-frontend/src/app/library/notification/popup/popup-notification.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { PopupNotification } from '../../../core/services/notification/ui-notification-service'; @Component({ diff --git a/dmp-frontend/src/app/library/notification/snack-bar/snack-bar-notification.component.ts b/dmp-frontend/src/app/library/notification/snack-bar/snack-bar-notification.component.ts index 2af227f3c..c3c4c97e6 100644 --- a/dmp-frontend/src/app/library/notification/snack-bar/snack-bar-notification.component.ts +++ b/dmp-frontend/src/app/library/notification/snack-bar/snack-bar-notification.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MAT_SNACK_BAR_DATA } from '@angular/material'; +import { MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar'; import { SnackBarNotification } from '../../../core/services/notification/ui-notification-service'; @Component({ diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts index 0f3b1ece8..00840c555 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/editor/dataset-profile-editor.component.ts @@ -1,7 +1,10 @@ -import { HttpErrorResponse } from '@angular/common/http'; + +import {of as observableOf, Observable } from 'rxjs'; +import { HttpErrorResponse } from '@angular/common/http'; import { Component, OnInit, ViewChild } from '@angular/core'; import { FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatHorizontalStepper, MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatHorizontalStepper } from '@angular/material/stepper'; import { ActivatedRoute, ParamMap, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { map, takeUntil } from 'rxjs/operators'; @@ -18,7 +21,6 @@ import { ConfirmationDialogComponent } from '../../../../library/confirmation-di import { DatasetProfileEnum } from '../../../../core/common/enum/dataset-profile'; import * as FileSaver from 'file-saver'; import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item'; -import { Observable } from 'rxjs'; import { DatasetStatus } from '../../../../core/common/enum/dataset-status'; //import * as data from 'src/assets/resources/skipDisable.json'; @@ -42,7 +44,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn newVersionId: string; dataWizardModel: DatasetWizardModel; breadCrumbs: Observable; - @ViewChild('stepper') stepper: MatHorizontalStepper; + @ViewChild('stepper', { static: false }) stepper: MatHorizontalStepper; viewOnly = false; constructor( @@ -88,7 +90,7 @@ export class DatasetProfileEditorComponent extends BaseComponent implements OnIn }, error => this.onCallbackError(error) ); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'DatasetProfileListingComponent', label: this.language.instant('NAV-BAR.TEMPLATE'), url: '/dataset-profiles/' + this.datasetProfileId diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dataset-profile.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dataset-profile.component.ts index 645bbf351..162937600 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dataset-profile.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dataset-profile.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../../../common/forms/validation/error-model/validation-error-model'; diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts index e72e64e55..8db9791c4 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts @@ -1,4 +1,4 @@ -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Inject, Component } from '@angular/core'; diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/dataset-profile-listing.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/dataset-profile-listing.component.ts index 5b6db04b5..b7c05c29f 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/listing/dataset-profile-listing.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/listing/dataset-profile-listing.component.ts @@ -1,9 +1,12 @@ + +import {merge as observableMerge, of as observableOf, Observable } from 'rxjs'; + +import {switchMap, startWith, map, takeUntil } from 'rxjs/operators'; import { DataSource } from '@angular/cdk/table'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatPaginator, MatSort, PageEvent } from '@angular/material'; +import { MatPaginator, PageEvent } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Params, Router } from '@angular/router'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DataTableRequest } from '../../../../core/model/data-table/data-table-request'; import { DatasetListingModel } from '../../../../core/model/dataset/dataset-listing'; @@ -24,9 +27,9 @@ import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-i }) export class DatasetProfileListingComponent extends BaseComponent implements OnInit { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(DatasetProfileCriteriaComponent) criteria: DatasetProfileCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: true }) sort: MatSort; + @ViewChild(DatasetProfileCriteriaComponent, { static: true }) criteria: DatasetProfileCriteriaComponent; breadCrumbs: Observable; dataSource: DatasetDataSource | null; @@ -70,7 +73,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI this.criteria.setCriteria(this.getDefaultCriteria()); this.refresh(); this.criteria.setRefreshCallback(() => this.refresh()); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: null, label: this.language.instant('NAV-BAR.DATASET-TEMPLATES'), url: '/dataset-profiles' @@ -80,7 +83,7 @@ export class DatasetProfileListingComponent extends BaseComponent implements OnI } setDmpTitle(dmpId: String) { - this.dmpService.getSingle(dmpId).map(data => data as DmpModel) + this.dmpService.getSingle(dmpId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.titlePrefix = data.label; @@ -140,9 +143,9 @@ export class DatasetDataSource extends DataSource { //this._sort.matSortChange ]; - return Observable.merge(...displayDataChanges) - .startWith(null) - .switchMap(() => { + return observableMerge(...displayDataChanges).pipe( + startWith(null), + switchMap(() => { const startIndex = this._paginator.pageIndex * this._paginator.pageSize; let fields: Array = new Array(); if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; } @@ -153,7 +156,7 @@ export class DatasetDataSource extends DataSource { request.criteria.allVersions = true; } return this._service.getPaged(request); - }) + }), /*.catch((error: any) => { this._snackBar.openFromComponent(SnackBarNotificationComponent, { data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService }, @@ -163,14 +166,14 @@ export class DatasetDataSource extends DataSource { //this._criteria.criteria.onCallbackError(error); return Observable.of(null); })*/ - .map(result => { + map(result => { return result; - }) - .map(result => { + }), + map(result => { if (!result) { return []; } if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; } return result.data; - }); + }),); } disconnect() { diff --git a/dmp-frontend/src/app/ui/admin/dataset-profile/preview/dataset-profile-preview.component.ts b/dmp-frontend/src/app/ui/admin/dataset-profile/preview/dataset-profile-preview.component.ts index a8daf5820..97ea7d06d 100644 --- a/dmp-frontend/src/app/ui/admin/dataset-profile/preview/dataset-profile-preview.component.ts +++ b/dmp-frontend/src/app/ui/admin/dataset-profile/preview/dataset-profile-preview.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DatasetProfileService } from '../../../../core/services/dataset-profile/dataset-profile.service'; diff --git a/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts b/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts index 0254b95a0..f56b1843f 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-profile/editor/dmp-profile-editor.component.ts @@ -1,9 +1,12 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { AfterViewInit, Component, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import * as FileSaver from 'file-saver'; -import { takeUntil } from 'rxjs/operators'; import { environment } from '../../../../../environments/environment'; import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from '../../../../core/common/base/base.component'; @@ -16,7 +19,6 @@ import { SnackBarNotificationLevel, UiNotificationService } from '../../../../co import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service'; import { DmpProfileEditorModel, DmpProfileFieldEditorModel } from './dmp-profile-editor.model'; import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-item'; -import { Observable } from 'rxjs'; import { DmpProfileExternalAutoCompleteFieldDataEditorModel } from './external-autocomplete/dmp-profile-external-autocomplete-field-editor.model'; @Component({ @@ -53,7 +55,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie if (this.dmpProfileId != null) { this.isNew = false; - this.dmpProfileService.getSingle(this.dmpProfileId).map(data => data as DmpProfile) + this.dmpProfileService.getSingle(this.dmpProfileId).pipe(map(data => data as DmpProfile)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.dmpProfileModel = new DmpProfileEditorModel().fromModel(data); @@ -62,7 +64,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie this.formGroup.disable(); this.viewOnly = true } - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'DmpProfileListingComponent', label: this.language.instant('NAV-BAR.TEMPLATE'), url: '/dmp-profiles/' + this.dmpProfileId @@ -74,7 +76,7 @@ export class DmpProfileEditorComponent extends BaseComponent implements AfterVie this.formGroup = this.dmpProfileModel.buildForm(); this.addField(); }); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'DmpProfileListingComponent', label: this.language.instant('NAV-BAR.TEMPLATE'), url: '/dmp-profiles/' + this.dmpProfileId diff --git a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts index 0846e2896..42a7dfa61 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component.ts @@ -1,4 +1,4 @@ -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Inject, Component } from '@angular/core'; diff --git a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dmp-profile-criteria.component.ts b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dmp-profile-criteria.component.ts index 466097b9e..ee81e6432 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dmp-profile-criteria.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/criteria/dmp-profile-criteria.component.ts @@ -5,7 +5,7 @@ import { DmpCriteria } from '../../../../../core/query/dmp/dmp-criteria'; import { DmpProfileCriteria } from '../../../../../core/query/dmp/dmp-profile-criteria'; import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component'; import { DialodConfirmationUploadDmpProfiles } from './dialog-confirmation-upload-profile/dialog-confirmation-upload-profiles.component'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { takeUntil } from 'rxjs/operators'; import { DmpProfileService } from '../../../../../core/services/dmp/dmp-profile.service'; diff --git a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/dmp-profile-listing.component.ts b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/dmp-profile-listing.component.ts index 4353d5e7f..856548bc0 100644 --- a/dmp-frontend/src/app/ui/admin/dmp-profile/listing/dmp-profile-listing.component.ts +++ b/dmp-frontend/src/app/ui/admin/dmp-profile/listing/dmp-profile-listing.component.ts @@ -1,10 +1,14 @@ + +import {merge as observableMerge, of as observableOf, Observable } from 'rxjs'; + +import {map, switchMap, startWith, takeUntil } from 'rxjs/operators'; import { DataSource } from '@angular/cdk/table'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatPaginator, MatSnackBar, MatSort, PageEvent } from '@angular/material'; +import { MatPaginator, PageEvent } from '@angular/material/paginator'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DmpProfileListing } from '../../../../core/model/dmp-profile/dmp-profile-listing'; import { DmpProfileCriteria } from '../../../../core/query/dmp/dmp-profile-criteria'; @@ -20,9 +24,9 @@ import { BreadcrumbItem } from '../../../misc/breadcrumb/definition/breadcrumb-i }) export class DmpProfileListingComponent extends BaseComponent implements OnInit { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(DmpProfileCriteriaComponent) criteria: DmpProfileCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: true }) sort: MatSort; + @ViewChild(DmpProfileCriteriaComponent, { static: true }) criteria: DmpProfileCriteriaComponent; dataSource: DatasetDataSource | null; displayedColumns: String[] = ['label', 'status', 'created']; @@ -54,7 +58,7 @@ export class DmpProfileListingComponent extends BaseComponent implements OnInit this.criteria.setCriteria(this.getDefaultCriteria()); this.refresh(); this.criteria.setRefreshCallback(() => this.refresh()); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: null, label: this.languageService.instant('NAV-BAR.DMP-TEMPLATES'), url: '/dmp-profiles' @@ -101,16 +105,16 @@ export class DatasetDataSource extends DataSource { //this._sort.matSortChange ]; - return Observable.merge(...displayDataChanges) - .startWith(null) - .switchMap(() => { + return observableMerge(...displayDataChanges).pipe( + startWith(null), + switchMap(() => { const startIndex = this._paginator.pageIndex * this._paginator.pageSize; let fields: Array = new Array(); if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; } const request = new DataTableRequest(startIndex, this._paginator.pageSize, { fields: fields }); request.criteria = this._criteria.criteria; return this._service.getPaged(request); - }) + }), /*.catch((error: any) => { this._snackBar.openFromComponent(SnackBarNotificationComponent, { data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService }, @@ -120,14 +124,14 @@ export class DatasetDataSource extends DataSource { //this._criteria.criteria.onCallbackError(error); return Observable.of(null); })*/ - .map(result => { + map(result => { return result; - }) - .map(result => { + }), + map(result => { if (!result) { return []; } if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; } return result.data; - }); + }),); } disconnect() { diff --git a/dmp-frontend/src/app/ui/admin/user/listing/user-listing.component.ts b/dmp-frontend/src/app/ui/admin/user/listing/user-listing.component.ts index 13b8e43bd..36e12bdad 100644 --- a/dmp-frontend/src/app/ui/admin/user/listing/user-listing.component.ts +++ b/dmp-frontend/src/app/ui/admin/user/listing/user-listing.component.ts @@ -1,8 +1,13 @@ + +import {of as observableOf, merge as observableMerge, Observable } from 'rxjs'; + +import {map, catchError, switchMap, startWith} from 'rxjs/operators'; import { DataSource } from '@angular/cdk/table'; import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core'; -import { MatPaginator, MatSnackBar, MatSort } from '@angular/material'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatSort } from '@angular/material/sort'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { UserListingModel } from '../../../../core/model/user/user-listing'; import { UserCriteria } from '../../../../core/query/user/user-criteria'; import { UserService } from '../../../../core/services/user/user.service'; @@ -41,28 +46,28 @@ export class UsersDataSource extends DataSource { // this._paginator.pageIndex = 0; //}) - return Observable.merge(...displayDataChanges) - .startWith(null) - .switchMap(() => { + return observableMerge(...displayDataChanges).pipe( + startWith(null), + switchMap(() => { const startIndex = this._paginator.pageIndex * this._paginator.pageSize; let fields: Array = new Array(); if (this._sort.active) { fields = this._sort.direction === 'asc' ? ['+' + this._sort.active] : ['-' + this._sort.active]; } const request = new DataTableRequest(startIndex, this._paginator.pageSize, { fields: fields }); request.criteria = this._criteria.getFormData(); return this._service.getPaged(request); - }) - .catch((error: any) => { + }), + catchError((error: any) => { this._snackBar.openFromComponent(SnackBarNotificationComponent, { data: { message: 'GENERAL.SNACK-BAR.FORMS-BAD-REQUEST', language: this._languageService }, duration: 3000, }); this._criteria.onCallbackError(error); - return Observable.of(null); - }) - .map(result => { + return observableOf(null); + }), + map(result => { return result; - }) - .map(result => { + }), + map(result => { if (!result) { return []; } if (this._paginator.pageIndex === 0) { this.totalCount = result.totalCount; } //result.data.forEach((element: any) => { @@ -75,7 +80,7 @@ export class UsersDataSource extends DataSource { // element.roles = roles; //}); return result.data; - }); + }),); } disconnect() { @@ -90,9 +95,9 @@ export class UsersDataSource extends DataSource { }) export class UserListingComponent implements OnInit, AfterViewInit { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(UserCriteriaComponent) criteria: UserCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: true }) sort: MatSort; + @ViewChild(UserCriteriaComponent, { static: true }) criteria: UserCriteriaComponent; breadCrumbs: Observable; dataSource: UsersDataSource | null; @@ -107,7 +112,7 @@ export class UserListingComponent implements OnInit, AfterViewInit { } ngOnInit() { - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: null, label: this.languageService.instant('NAV-BAR.USERS-BREADCRUMB'), url: "/users" diff --git a/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts b/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts index 7d7a429f4..a6d966ea7 100644 --- a/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/dashboard.component.ts @@ -1,7 +1,10 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {mergeMap, takeUntil } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; import { Router, ActivatedRoute, Params } from '@angular/router'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../core/common/base/base.component'; import { RecentActivityType } from '../../core/common/enum/recent-activity-type'; import { DashboardStatisticsModel } from '../../core/model/dashboard/dashboard-statistics-model'; @@ -24,7 +27,6 @@ import { DatasetService } from '../../core/services/dataset/dataset.service'; import { ExploreDatasetCriteriaModel } from '../../core/query/explore-dataset/explore-dataset-criteria'; import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item'; import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent'; -import { Observable } from 'rxjs'; @Component({ selector: 'app-dashboard', @@ -90,7 +92,7 @@ export class DashboardComponent extends BaseComponent implements OnInit, IBreadC // }; const breadCrumbs = []; - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); if (!this.isAuthenticated()) { this.dashboardService.getStatistics() @@ -109,9 +111,9 @@ export class DashboardComponent extends BaseComponent implements OnInit, IBreadC }); } - this.filteredOptions = this.searchControl.valueChanges.flatMap(x => { + this.filteredOptions = this.searchControl.valueChanges.pipe(mergeMap(x => { return this.searchBarService.search(x); - }); + })); } public isAuthenticated(): boolean { diff --git a/dmp-frontend/src/app/ui/dashboard/quick-wizard-create-add/quick-wizard-create-add.component.ts b/dmp-frontend/src/app/ui/dashboard/quick-wizard-create-add/quick-wizard-create-add.component.ts index 74b8cde91..b0a82ffca 100644 --- a/dmp-frontend/src/app/ui/dashboard/quick-wizard-create-add/quick-wizard-create-add.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/quick-wizard-create-add/quick-wizard-create-add.component.ts @@ -2,7 +2,7 @@ import { BaseComponent } from "../../../core/common/base/base.component"; import { OnInit, Component } from "@angular/core"; import { Router, ActivatedRoute } from "@angular/router"; import { TranslateService } from "@ngx-translate/core"; -import { MatSnackBar } from "@angular/material"; +import { MatSnackBar } from "@angular/material/snack-bar"; @Component({ selector: 'app-quick-wizard-create-add-component', diff --git a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts index b0c2f0250..5ff771ebb 100644 --- a/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts +++ b/dmp-frontend/src/app/ui/dashboard/recent-edited-activity/recent-edited-activity.component.ts @@ -10,7 +10,7 @@ import { Router } from '@angular/router'; import { Principal } from '../../../core/model/auth/Principal'; import { TranslateService } from '@ngx-translate/core'; import { ConfirmationDialogComponent } from '../../../library/confirmation-dialog/confirmation-dialog.component'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { ExportMethodDialogComponent } from '../../../library/export-method-dialog/export-method-dialog.component'; import { BaseComponent } from '../../../core/common/base/base.component'; import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service'; diff --git a/dmp-frontend/src/app/ui/dataset-create-wizard/dataset-create-wizard.component.ts b/dmp-frontend/src/app/ui/dataset-create-wizard/dataset-create-wizard.component.ts index f20537d92..573e0ef20 100644 --- a/dmp-frontend/src/app/ui/dataset-create-wizard/dataset-create-wizard.component.ts +++ b/dmp-frontend/src/app/ui/dataset-create-wizard/dataset-create-wizard.component.ts @@ -1,12 +1,14 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from '@angular/core'; import { FormBuilder, FormGroup, FormArray } from '@angular/forms'; -import { MatStepper, MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatStepper } from '@angular/material/stepper'; import { Router } from '@angular/router'; import { BaseComponent } from '../../core/common/base/base.component'; import { QuickWizardService } from '../../core/services/quick-wizard/quick-wizard.service'; import { DatasetCreateWizardModel } from './dataset-create-wizard.model'; import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item'; import { SnackBarNotificationLevel, UiNotificationService } from '../../core/services/notification/ui-notification-service'; @@ -22,14 +24,14 @@ import { ConfirmationDialogComponent } from '../../library/confirmation-dialog/c }) export class DatasetCreateWizard extends BaseComponent implements OnInit, IBreadCrumbComponent { breadCrumbs: Observable; - @ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent; + @ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent; isLinear = false; isNew = true; formGroup: FormGroup; datasetCreateWizardModel: DatasetCreateWizardModel; - @ViewChild('stepper') stepper: MatStepper; + @ViewChild('stepper', { static: true }) stepper: MatStepper; constructor( private router: Router, @@ -46,7 +48,7 @@ export class DatasetCreateWizard extends BaseComponent implements OnInit, IBread this.datasetCreateWizardModel = new DatasetCreateWizardModel(); this.formGroup = this.datasetCreateWizardModel.buildForm(); this.language.get('NAV-BAR.DATASET-DESCRIPTION-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: 'Dashboard', label: x, diff --git a/dmp-frontend/src/app/ui/dataset-create-wizard/dmp-selector/dataset-dmp-selector.component.ts b/dmp-frontend/src/app/ui/dataset-create-wizard/dmp-selector/dataset-dmp-selector.component.ts index 9736f9d4b..5cd431fe7 100644 --- a/dmp-frontend/src/app/ui/dataset-create-wizard/dmp-selector/dataset-dmp-selector.component.ts +++ b/dmp-frontend/src/app/ui/dataset-create-wizard/dmp-selector/dataset-dmp-selector.component.ts @@ -1,25 +1,23 @@ -import { Component, OnInit, ViewChild, Input } from '@angular/core'; -import { BaseComponent } from '../../../core/common/base/base.component'; -import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent'; + +import { Component, Input, OnInit } from '@angular/core'; +import { FormArray, FormControl, FormGroup } from '@angular/forms'; +import { MatStepper } from '@angular/material/stepper'; +import { ActivatedRoute, Router } from '@angular/router'; import { Observable } from 'rxjs'; -import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item'; -import { MatStepper, MatSnackBar } from '@angular/material'; -import { FormGroup, FormArray } from '@angular/forms'; -import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile'; -import { takeUntil } from 'rxjs/operators'; -import { RequestItem } from '../../../core/query/request-item'; -import { DmpCriteria } from '../../../core/query/dmp/dmp-criteria'; -import { Params, ActivatedRoute, Router } from '@angular/router'; -import { DatasetProfileCriteria } from '../../../core/query/dataset-profile/dataset-profile-criteria'; +import { map, takeUntil } from 'rxjs/operators'; +import { BaseComponent } from '../../../core/common/base/base.component'; +import { DmpStatus } from '../../../core/common/enum/dmp-status'; import { DataTableRequest } from '../../../core/model/data-table/data-table-request'; +import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile'; import { DmpListingModel } from '../../../core/model/dmp/dmp-listing'; -import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; -import { SingleAutoCompleteConfiguration } from '../../../library/auto-complete/single/single-auto-complete-configuration'; +import { DatasetProfileCriteria } from '../../../core/query/dataset-profile/dataset-profile-criteria'; +import { DmpCriteria } from '../../../core/query/dmp/dmp-criteria'; +import { RequestItem } from '../../../core/query/request-item'; import { DatasetWizardService } from '../../../core/services/dataset-wizard/dataset-wizard.service'; -import { TranslateService } from '@ngx-translate/core'; import { DmpService } from '../../../core/services/dmp/dmp.service'; -import { FormControl } from '@angular/forms/src/model'; -import { DmpStatus } from '../../../core/common/enum/dmp-status'; +import { SingleAutoCompleteConfiguration } from '../../../library/auto-complete/single/single-auto-complete-configuration'; +import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item'; +import { IBreadCrumbComponent } from '../../misc/breadcrumb/definition/IBreadCrumbComponent'; @Component({ selector: 'dataset-dmp-selector-component', @@ -79,8 +77,8 @@ export class DatasetDmpSelector extends BaseComponent implements OnInit, IBreadC dmpDataTableRequest.criteria.status = DmpStatus.Draft; dmpDataTableRequest.criteria.like = query; - return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete") - .map(y => y.data); + return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe( + map(y => y.data)); } loadDatasetProfiles() { diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts index 6ac820ac8..8457cd3e6 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-copy-dialogue/dataset-copy-dialogue.component.ts @@ -1,5 +1,7 @@ + +import {map} from 'rxjs/operators'; import { Component } from "@angular/core"; -import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material"; +import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; import { SingleAutoCompleteConfiguration } from "../../../../library/auto-complete/single/single-auto-complete-configuration"; import { Observable } from "rxjs"; import { DataTableRequest } from "../../../../core/model/data-table/data-table-request"; @@ -57,19 +59,19 @@ export class DatasetCopyDialogueComponent { const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dmpDataTableRequest.criteria = new DmpCriteria(); dmpDataTableRequest.criteria.like = query; - return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").map(x => x.data); + return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(map(x => x.data)); } datasetProfileValidate() { - return this.dmpService.getSingle(this.data.formControl.value.id).map(result => result as DmpModel) - .map(result => { + return this.dmpService.getSingle(this.data.formControl.value.id).pipe(map(result => result as DmpModel), + map(result => { this.dmpModel = result this.dmpModel.profiles.forEach((element) => { if (element.id == this.data.datasetProfileId) { this.data.datasetProfileExist = true; } }) - }); + }),); } getErrorMessage() { diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts index 8653f846d..4d0433a42 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard.component.ts @@ -1,11 +1,15 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, catchError, takeUntil } from 'rxjs/operators'; import { Component, OnInit, ViewChild } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; -import { MatDialog, MatSnackBar, MatStepper } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatStepper } from '@angular/material/stepper'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import * as FileSaver from 'file-saver'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DatasetStatus } from '../../../core/common/enum/dataset-status'; @@ -40,7 +44,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr breadCrumbs: Observable; viewOnly = false; - @ViewChild('stepper') stepper: MatStepper; + @ViewChild('stepper', { static: false }) stepper: MatStepper; editMode = false; publicMode = false; @@ -109,7 +113,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr .subscribe(data => { this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data); this.needsUpdate(); - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.datasetWizardModel.label, @@ -140,11 +144,11 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr error => { this.uiNotificationService.snackBarNotification(this.language.instant('DATASET-WIZARD.MESSAGES.DATAESET-NOT-FOUND'), SnackBarNotificationLevel.Error); this.router.navigate(['/plans']); - return Observable.of(null); + return observableOf(null); }); } else if (dmpId != null) { this.isNew = true; - this.dmpService.getSingle(dmpId).map(data => data as DmpModel) + this.dmpService.getSingle(dmpId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.datasetWizardModel = new DatasetWizardEditorModel(); @@ -158,7 +162,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr this.registerFormListeners(); // this.availableProfiles = data.profiles; - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'), @@ -186,7 +190,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data); this.formGroup = this.datasetWizardModel.buildForm(); this.formGroup.get('id').setValue(null); - this.dmpService.getSingle(newDmpId).map(data => data as DmpModel) + this.dmpService.getSingle(newDmpId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { setTimeout(() => { @@ -194,7 +198,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr this.formGroup.get('dmp').setValue(this.datasetWizardModel.dmp); this.loadDatasetProfiles(); - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'), @@ -226,12 +230,12 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr } else if (this.publicId != null) { // For Finalized -> Public Datasets this.isNew = false; this.datasetWizardService.getSinglePublic(this.publicId) - .pipe(takeUntil(this._destroyed)) - .catch((error: any) => { + .pipe(takeUntil(this._destroyed)).pipe( + catchError((error: any) => { this.uiNotificationService.snackBarNotification(error.error.message, SnackBarNotificationLevel.Error); this.router.navigate(['/explore']); - return Observable.of(null); - }) + return observableOf(null); + })) .subscribe(data => { if (data) { this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data); @@ -246,7 +250,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr const breadcrumbs = []; breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC DATASETS'), url: '/explore' }); breadcrumbs.push({ parentComponentName: null, label: this.datasetWizardModel.label, url: '/datasets/publicEdit/' + this.datasetWizardModel.id }); - this.breadCrumbs = Observable.of(breadcrumbs); + this.breadCrumbs = observableOf(breadcrumbs); } }); this.publicMode = true; @@ -256,7 +260,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr .subscribe(data => { this.datasetWizardModel = new DatasetWizardEditorModel().fromModel(data); this.needsUpdate(); - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'), @@ -294,7 +298,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr //if (this.viewOnly) { this.formGroup.disable(); } // For future use, to make Dataset edit like DMP. this.registerFormListeners(); this.dmpValueChanged(null); - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.language.instant('DATASET-LISTING.ACTIONS.CREATE-NEW').toUpperCase(), @@ -349,7 +353,7 @@ export class DatasetWizardComponent extends BaseComponent implements OnInit, IBr const dmpDataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dmpDataTableRequest.criteria = new DmpCriteria(); dmpDataTableRequest.criteria.like = query; - return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").map(x => x.data); + return this.dmpService.getPaged(dmpDataTableRequest, "autocomplete").pipe(map(x => x.data)); } loadDatasetProfiles() { diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts index d68a70254..a3c3f31c9 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts @@ -1,6 +1,6 @@ import { Component, Input, OnInit } from '@angular/core'; import { FormArray, FormGroup } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/data-repository/dataset-external-data-repository-dialog-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/data-repository/dataset-external-data-repository-dialog-editor.component.ts index 450c3fb39..dc1f802b1 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/data-repository/dataset-external-data-repository-dialog-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/data-repository/dataset-external-data-repository-dialog-editor.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../../../core/common/base/base.component'; import { ExternalDataRepositoryService } from '../../../../../../core/services/external-sources/data-repository/extternal-data-repository.service'; diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/external-dataset/dataset-external-dataset-dialog-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/external-dataset/dataset-external-dataset-dialog-editor.component.ts index 2f9a97d9e..7d91c8498 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/external-dataset/dataset-external-dataset-dialog-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/external-dataset/dataset-external-dataset-dialog-editor.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../../../core/common/base/base.component'; import { ExternalDatasetService } from '../../../../../../core/services/external-sources/dataset/external-dataset.service'; diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.ts index bfdb4e797..32341d400 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/registry/dataset-external-registry-dialog-editor.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../../../core/common/base/base.component'; import { ExternalRegistryService } from '../../../../../../core/services/external-sources/registry/external-registry.service'; diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.ts index ac12d5369..7f9d22ace 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/editors/service/dataset-external-service-dialog-editor.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../../../core/common/base/base.component'; import { ExternalServiceService } from '../../../../../../core/services/external-sources/service/external-service.service'; diff --git a/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-criteria.component.ts b/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-criteria.component.ts index c25d3a896..cfcee2add 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-criteria.component.ts +++ b/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-criteria.component.ts @@ -1,39 +1,38 @@ -import { Component, OnInit } from '@angular/core'; + +import { Component, Input, OnInit } from '@angular/core'; +import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { Router } from '@angular/router'; +import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; +import { map, takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model'; import { DatasetStatus } from '../../../../core/common/enum/dataset-status'; +import { DataTableData } from '../../../../core/model/data-table/data-table-data'; +import { DataTableRequest } from '../../../../core/model/data-table/data-table-request'; +import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing'; import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item'; +import { DatasetProfileCriteria } from '../../../../core/query/dataset-profile/dataset-profile-criteria'; import { DatasetCriteria } from '../../../../core/query/dataset/dataset-criteria'; +import { DmpCriteria } from '../../../../core/query/dmp/dmp-criteria'; +import { GrantCriteria } from '../../../../core/query/grant/grant-criteria'; +import { OrganisationCriteria } from '../../../../core/query/organisation/organisation-criteria'; +import { RequestItem } from '../../../../core/query/request-item'; import { TagCriteria } from '../../../../core/query/tag/tag-criteria'; +import { UserCriteria } from '../../../../core/query/user/user-criteria'; +import { DatasetWizardService } from '../../../../core/services/dataset-wizard/dataset-wizard.service'; +import { DatasetService } from '../../../../core/services/dataset/dataset.service'; +import { DmpService } from '../../../../core/services/dmp/dmp.service'; import { ExternalSourcesService } from '../../../../core/services/external-sources/external-sources.service'; +import { GrantService } from '../../../../core/services/grant/grant.service'; +import { SnackBarNotificationLevel, UiNotificationService } from '../../../../core/services/notification/ui-notification-service'; +import { OrganisationService } from '../../../../core/services/organisation/organisation.service'; +import { UserService } from '../../../../core/services/user/user.service'; import { EnumUtils } from '../../../../core/services/utilities/enum-utils.service'; -import { RequestItem } from '../../../../core/query/request-item'; +import { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration'; import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component'; -import { DmpCriteria } from '../../../../core/query/dmp/dmp-criteria'; -import { DmpService } from '../../../../core/services/dmp/dmp.service'; -import { DataTableRequest } from '../../../../core/model/data-table/data-table-request'; -import { DataTableData } from '../../../../core/model/data-table/data-table-data'; -import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing'; -import { Input } from '@angular/core'; -import { MatDialog, MatSnackBar } from '@angular/material'; import { DatasetUploadDialogue } from './dataset-upload-dialogue/dataset-upload-dialogue.component'; -import { takeUntil } from 'rxjs/operators'; -import { reserveSlots } from '@angular/core/src/render3/instructions'; -import { DatasetWizardService } from '../../../../core/services/dataset-wizard/dataset-wizard.service'; -import { ViewChild } from '@angular/core'; -import { UiNotificationService, SnackBarNotificationLevel } from '../../../../core/services/notification/ui-notification-service'; -import { Router } from '@angular/router'; -import { TranslateService } from '@ngx-translate/core'; -import { FormGroup, FormBuilder, FormControl } from '@angular/forms'; -import { MultipleAutoCompleteConfiguration } from '../../../../library/auto-complete/multiple/multiple-auto-complete-configuration'; -import { OrganisationCriteria } from '../../../../core/query/organisation/organisation-criteria'; -import { OrganisationService } from '../../../../core/services/organisation/organisation.service'; -import { GrantCriteria } from '../../../../core/query/grant/grant-criteria'; -import { GrantService } from '../../../../core/services/grant/grant.service'; -import { UserCriteria } from '../../../../core/query/user/user-criteria'; -import { UserService } from '../../../../core/services/user/user.service'; -import { DatasetProfileCriteria } from '../../../../core/query/dataset-profile/dataset-profile-criteria'; -import { DatasetService } from '../../../../core/services/dataset/dataset.service'; @Component({ selector: 'app-dataset-criteria-component', @@ -65,43 +64,43 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O tagsAutoCompleteConfiguration = { filterFn: this.filterTags.bind(this), - initialItems: (excludedItems: any[]) => this.filterTags('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterTags('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterDatasetTemplate.bind(this), - initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'], subtitleFn: (item) => item['description'] }; dmpAutoCompleteConfiguration = { - filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data), - initialItems: (extraData) => this.filterDmps('').map(x => x.data), + filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)), + initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterCollaborators.bind(this), - initialItems: (excludedItems: any[]) => this.filterCollaborators('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterCollaborators('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterGrant.bind(this), - initialItems: (excludedItems: any[]) => this.filterGrant('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterGrant('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterOrganisations.bind(this), - initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] } @@ -200,7 +199,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O const datasetTemplateRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); datasetTemplateRequestItem.criteria = new DatasetProfileCriteria(); datasetTemplateRequestItem.criteria.like = query; - return this.datasetService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).map(x => x.data); + return this.datasetService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).pipe(map(x => x.data)); } filterDmps(value: string): Observable> { @@ -218,7 +217,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O const grantRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); grantRequestItem.criteria = new GrantCriteria(); grantRequestItem.criteria.like = query; - return this.grantService.getPaged(grantRequestItem, "autocomplete").map(x => x.data); + return this.grantService.getPaged(grantRequestItem, "autocomplete").pipe(map(x => x.data)); } filterOrganisations(value: string) { @@ -227,7 +226,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchInternalOrganisations(dataTableRequest).pipe(map(x => x.data)); } filterCollaborators(query: string) { @@ -236,7 +235,7 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O const collaboratorsRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); collaboratorsRequestItem.criteria = new UserCriteria(); collaboratorsRequestItem.criteria.collaboratorLike = query; - return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).map(x => x.data); + return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).pipe(map(x => x.data)); } fileImport(event) { @@ -256,8 +255,8 @@ export class DatasetCriteriaComponent extends BaseCriteriaComponent implements O this.datasetWizardService.uploadXml(result.fileList, result.datasetTitle, result.dmpId, result.datasetProfileId) .pipe(takeUntil(this._destroyed)) .subscribe( - complete => this.onCallbackSuccess(), - error => this.onCallbackError(error) + complete => this.onCallbackSuccess(), + error => this.onCallbackError(error) ); } }) diff --git a/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-upload-dialogue/dataset-upload-dialogue.component.ts b/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-upload-dialogue/dataset-upload-dialogue.component.ts index eb3d34ed1..d4aeef786 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-upload-dialogue/dataset-upload-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dataset/listing/criteria/dataset-upload-dialogue/dataset-upload-dialogue.component.ts @@ -1,5 +1,7 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { Component, Inject, OnInit } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Observable } from 'rxjs'; import { DataTableData } from '../../../../../core/model/data-table/data-table-data'; import { DmpListingModel } from '../../../../../core/model/dmp/dmp-listing'; @@ -10,7 +12,6 @@ import { ValidationErrorModel } from '../../../../../common/forms/validation/err import { BaseCriteriaComponent } from '../../../../misc/criteria/base-criteria.component'; import { DmpModel } from '../../../../../core/model/dmp/dmp'; import { DatasetProfileModel } from '../../../../../core/model/dataset/dataset-profile'; -import { takeUntil } from 'rxjs/operators'; import { DatasetWizardService } from '../../../../../core/services/dataset-wizard/dataset-wizard.service'; import { RequestItem } from '../../../../../core/query/request-item'; import { DatasetProfileCriteria } from '../../../../../core/query/dataset-profile/dataset-profile-criteria'; @@ -31,8 +32,8 @@ export class DatasetUploadDialogue extends BaseCriteriaComponent implements OnIn availableProfiles: DatasetProfileModel[] = []; dmpAutoCompleteConfiguration = { - filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data), - initialItems: (extraData) => this.filterDmps('').map(x => x.data), + filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)), + initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; diff --git a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts index 0cd581f27..2092b99ae 100644 --- a/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts +++ b/dmp-frontend/src/app/ui/dataset/listing/dataset-listing.component.ts @@ -1,7 +1,9 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatPaginator, MatSort, PageEvent } from '@angular/material'; +import { MatPaginator, PageEvent } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Params, Router } from '@angular/router'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DataTableRequest } from '../../../core/model/data-table/data-table-request'; @@ -22,9 +24,9 @@ import { DatasetStatus } from '../../../core/common/enum/dataset-status'; }) export class DatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(DatasetCriteriaComponent, { static: true }) criteria: DatasetCriteriaComponent; breadCrumbs: Observable; @@ -60,7 +62,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB this.criteria.setCriteria(this.getDefaultCriteria(dmp)); this.refresh(); this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages)); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'DmpEditorComponent', label: dmp.label, url: '/plans/edit/' + this.dmpId @@ -72,7 +74,7 @@ export class DatasetListingComponent extends BaseComponent implements OnInit, IB this.criteria.setCriteria(this.getDefaultCriteria()); this.refresh(); this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages)); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DATASET-DESCRIPTIONS'), url: "/datasets" diff --git a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts index 4629561db..f9c8bd81d 100644 --- a/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts +++ b/dmp-frontend/src/app/ui/dmp/clone/dmp-clone.component.ts @@ -1,13 +1,15 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { DmpWizardEditorModel } from '../wizard/dmp-wizard-editor.model'; import { FormGroup } from '@angular/forms'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { DmpModel } from '../../../core/model/dmp/dmp'; import { TranslateService } from '@ngx-translate/core'; import { DmpService } from '../../../core/services/dmp/dmp.service'; -import { Observable } from 'rxjs'; import { BreadcrumbItem } from '../../misc/breadcrumb/definition/breadcrumb-item'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { UiNotificationService, SnackBarNotificationLevel } from '../../../core/services/notification/ui-notification-service'; @@ -48,7 +50,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit { .pipe(takeUntil(this._destroyed)) .subscribe((params: Params) => { this.itemId = params['id']; - this.dmpService.getSingle(this.itemId).map(data => data as DmpModel) + this.dmpService.getSingle(this.itemId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.dmp = new DmpWizardEditorModel(); @@ -72,7 +74,7 @@ export class DmpCloneComponent extends BaseComponent implements OnInit { const breadCrumbs = []; breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" }); breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/clone/' + this.dmp.id }); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); }); }); } diff --git a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts index 1647a569d..08d3940aa 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/add-researcher/add-researcher.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { ExternalResearcherService } from '../../../../core/services/external-sources/researcher/external-researcher.service'; diff --git a/dmp-frontend/src/app/ui/dmp/editor/available-profiles/available-profiles.component.ts b/dmp-frontend/src/app/ui/dmp/editor/available-profiles/available-profiles.component.ts index bb653a32d..98272ef85 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/available-profiles/available-profiles.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/available-profiles/available-profiles.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile'; diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts index f0b415685..cf0edf5d4 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-editor.component.ts @@ -1,11 +1,14 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { Component, OnInit, ViewContainerRef } from '@angular/core'; import { FormGroup, FormControl, FormArray, AbstractControl } from '@angular/forms'; -import { MatDialog, MatSnackBar } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import * as FileSaver from 'file-saver'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DmpStatus } from '../../../core/common/enum/dmp-status'; @@ -102,7 +105,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC if (itemId != null) { this.isNew = false; if (tabToNav == "datasetDescriptions") this.selectedTab = 2 - this.dmpService.getSingle(itemId).map(data => data as DmpModel) + this.dmpService.getSingle(itemId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(async data => { this.dmp = new DmpEditorModel(); @@ -131,7 +134,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC // notFoundResolver: [await this.grantService.getSingle(this.dmp.grant.id).map(x => ({ label: x.label, url: '/grants/edit/' + x.id }) as BreadcrumbItem).toPromise()] } ); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); } this.associatedUsers = data.associatedUsers; this.people = data.users; @@ -139,7 +142,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC } else if (publicId != null) { this.isNew = false; this.isPublic = true; - this.dmpService.getSinglePublic(publicId).map(data => data as DmpModel) + this.dmpService.getSinglePublic(publicId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(async data => { this.dmp = new DmpEditorModel(); @@ -154,7 +157,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC const breadcrumbs = []; breadcrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS').toUpperCase(), url: '/plans' }); breadcrumbs.push({ parentComponentName: null, label: this.dmp.label, url: '/plans/publicEdit/' + this.dmp.id }); - this.breadCrumbs = Observable.of(breadcrumbs); + this.breadCrumbs = observableOf(breadcrumbs); // this.breadCrumbs = Observable.of([ // { // parentComponentName: 'DmpListingComponent', @@ -175,7 +178,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC this.registerFormEventsForNewItem(); if (this.isAuthenticated) { this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: x, @@ -205,7 +208,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC } registerFormEventsForNewItem() { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: 'DmpListingComponent', label: this.language.instant('NAV-BAR.MY-DMPS'), @@ -218,7 +221,7 @@ export class DmpEditorComponent extends BaseComponent implements OnInit, IBreadC let fields: Array = new Array(); var request = new DataTableRequest(0, 10, { fields: fields }); request.criteria = new DmpProfileCriteria(); - return this.dmpProfileService.getPaged(request).map(x => x.data); + return this.dmpProfileService.getPaged(request).pipe(map(x => x.data)); } // searchGrant(query: string) { diff --git a/dmp-frontend/src/app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component.ts b/dmp-frontend/src/app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component.ts index 1e52540cd..9708fff9a 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/dmp-finalize-dialog/dmp-finalize-dialog.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, OnInit } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DatasetStatus } from '../../../../core/common/enum/dataset-status'; diff --git a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts index d5dcb8a95..dff382cfd 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/general-tab/general-tab.component.ts @@ -1,8 +1,9 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DataTableRequest } from '../../../../core/model/data-table/data-table-request'; import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile'; @@ -72,7 +73,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { this.profilesAutoCompleteConfiguration = { filterFn: this.filterProfiles.bind(this), - initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'], subtitleFn: (item) => item['description'] @@ -80,7 +81,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { this.organisationsAutoCompleteConfiguration = { filterFn: this.filterOrganisations.bind(this), - initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'], subtitleFn: (item) => item ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['tag'] : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') @@ -88,7 +89,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { this.researchersAutoCompleteConfiguration = { filterFn: this.filterResearchers.bind(this), - initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterResearchers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'], subtitleFn: (item) => item ? this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.SOURCE:') + item['tag'] : this.language.instant('TYPES.EXTERNAL-DATASET-TYPE.NO-SOURCE') @@ -118,7 +119,7 @@ export class GeneralTabComponent extends BaseComponent implements OnInit { let fields: Array = new Array(); var request = new DataTableRequest(0, 10, { fields: fields }); request.criteria = new DmpProfileCriteria(); - return this.dmpProfileService.getPaged(request).map(x => x.data); + return this.dmpProfileService.getPaged(request).pipe(map(x => x.data)); } // onCallbackSuccess(): void { diff --git a/dmp-frontend/src/app/ui/dmp/editor/people-tab/people-tab.component.ts b/dmp-frontend/src/app/ui/dmp/editor/people-tab/people-tab.component.ts index 941bb915d..33678428f 100644 --- a/dmp-frontend/src/app/ui/dmp/editor/people-tab/people-tab.component.ts +++ b/dmp-frontend/src/app/ui/dmp/editor/people-tab/people-tab.component.ts @@ -1,6 +1,6 @@ import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { Principal } from '../../../../core/model/auth/Principal'; import { UserInfoListingModel } from '../../../../core/model/user/user-info-listing'; diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts index 1f72b3798..ed144faf8 100644 --- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts +++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts @@ -1,10 +1,12 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatChipInputEvent, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatChipInputEvent } from '@angular/material/chips'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DmpInvitation } from '../../../core/model/dmp/invitation/dmp-invitation'; import { DmpInvitationUser } from '../../../core/model/dmp/invitation/dmp-invitation-user'; @@ -36,7 +38,7 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni usersAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterUsers.bind(this), - initialItems: (excludedItems: any[]) => this.filterUsers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterUsers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item.name, titleFn: (item) => item.name }; diff --git a/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts b/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts index 482edba58..88b4a0940 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/criteria/dmp-criteria.component.ts @@ -1,8 +1,9 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { Component, Input, OnInit } from '@angular/core'; import { FormBuilder, FormControl } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; -import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../../common/forms/validation/error-model/validation-error-model'; import { DataTableRequest } from '../../../../core/model/data-table/data-table-request'; import { GrantListingModel } from '../../../../core/model/grant/grant-listing'; @@ -46,14 +47,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni collaboratorsAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterCollaborators.bind(this), - initialItems: (excludedItems: any[]) => this.filterCollaborators('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterCollaborators('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; datasetTemplateAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterDatasetTemplate.bind(this), - initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterDatasetTemplate('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'], subtitleFn: (item) => item['description'] @@ -61,14 +62,14 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterGrant.bind(this), - initialItems: (excludedItems: any[]) => this.filterGrant('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterGrant('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; organisationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterOrganisations.bind(this), - initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] } @@ -140,7 +141,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni const grantRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); grantRequestItem.criteria = new GrantCriteria(); grantRequestItem.criteria.like = query; - return this.grantService.getPaged(grantRequestItem, "autocomplete").map(x => x.data); + return this.grantService.getPaged(grantRequestItem, "autocomplete").pipe(map(x => x.data)); } filterOrganisations(value: string) { @@ -151,7 +152,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchInternalOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchInternalOrganisations(dataTableRequest).pipe(map(x => x.data)); } filterCollaborators(query: string) { @@ -160,7 +161,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni const collaboratorsRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); collaboratorsRequestItem.criteria = new UserCriteria(); collaboratorsRequestItem.criteria.collaboratorLike = query; - return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).map(x => x.data); + return this.userService.getCollaboratorsPaged(collaboratorsRequestItem).pipe(map(x => x.data)); } filterDatasetTemplate(query: string) { @@ -169,7 +170,7 @@ export class DmpCriteriaComponent extends BaseCriteriaComponent implements OnIni const datasetTemplateRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); datasetTemplateRequestItem.criteria = new DatasetProfileCriteria(); datasetTemplateRequestItem.criteria.like = query; - return this.dmpService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).map(x => x.data); + return this.dmpService.getDatasetProfilesUsedPaged(datasetTemplateRequestItem).pipe(map(x => x.data)); } fileSave(event) { diff --git a/dmp-frontend/src/app/ui/dmp/listing/criteria/upload-dialogue/dmp-upload-dialogue.component.ts b/dmp-frontend/src/app/ui/dmp/listing/criteria/upload-dialogue/dmp-upload-dialogue.component.ts index 6e6101276..9a9dd31ad 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/criteria/upload-dialogue/dmp-upload-dialogue.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/criteria/upload-dialogue/dmp-upload-dialogue.component.ts @@ -1,5 +1,5 @@ import { Component, Inject } from '@angular/core'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { DmpService } from '../../../../../core/services/dmp/dmp.service'; @Component({ diff --git a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts index 8ab68e0a3..c12a22c0d 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/dmp-listing.component.ts @@ -1,7 +1,10 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatDialog, MatPaginator, MatSort } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Router } from '@angular/router'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DataTableRequest } from '../../../core/model/data-table/data-table-request'; @@ -23,11 +26,11 @@ import { TranslateService } from '@ngx-translate/core'; }) export class DmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(DmpCriteriaComponent) criteria: DmpCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(DmpCriteriaComponent, { static: true }) criteria: DmpCriteriaComponent; - breadCrumbs: Observable = Observable.of([{ parentComponentName: null, label: 'DMPs', url: "/plans" }]); + breadCrumbs: Observable = observableOf([{ parentComponentName: null, label: 'DMPs', url: "/plans" }]); itemId: string; grantId: string; showGrant: boolean; @@ -78,7 +81,7 @@ export class DmpListingComponent extends BaseComponent implements OnInit, IBread // else this.language.get('NAV-BAR.MY-DMPS').pipe(takeUntil(this._destroyed)).subscribe(x => { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: x, diff --git a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts index e1069718b..d0bd76246 100644 --- a/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts +++ b/dmp-frontend/src/app/ui/dmp/listing/listing-item/dmp-listing-item.component.ts @@ -1,6 +1,6 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { DmpListingModel } from '../../../../core/model/dmp/dmp-listing'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { DmpInvitationDialogComponent } from '../../invitation/dmp-invitation.component'; import { Router, ActivatedRoute } from '@angular/router'; import { GrantListingModel } from '../../../../core/model/grant/grant-listing'; diff --git a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts index 9e0f1d821..ff15a9094 100644 --- a/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts +++ b/dmp-frontend/src/app/ui/dmp/overview/dmp-overview.component.ts @@ -1,9 +1,10 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import * as FileSaver from 'file-saver'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DatasetStatus } from '../../../core/common/enum/dataset-status'; @@ -33,7 +34,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { isFinalized = false; isPublicView = true; hasPublishButton: boolean = true; - breadCrumbs: Observable = Observable.of(); + breadCrumbs: Observable = observableOf(); constructor( private route: ActivatedRoute, @@ -65,7 +66,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { const breadCrumbs = []; breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" }); breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/overview/' + this.dmp.id }); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); }) } else if (publicId != null) { @@ -79,7 +80,7 @@ export class DmpOverviewComponent extends BaseComponent implements OnInit { const breadCrumbs = []; breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.PUBLIC-DMPS'), url: "/explore-plans" }); breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/publicOverview/' + this.dmp.id }); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); }); } }); diff --git a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard.component.ts b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard.component.ts index edef9da14..10d9901b8 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard.component.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/dmp-wizard.component.ts @@ -1,10 +1,12 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DmpModel } from '../../../core/model/dmp/dmp'; @@ -46,7 +48,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC .pipe(takeUntil(this._destroyed)) .subscribe((params: Params) => { this.itemId = params['id']; - this.dmpService.getSingle(this.itemId).map(data => data as DmpModel) + this.dmpService.getSingle(this.itemId).pipe(map(data => data as DmpModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.dmp = new DmpWizardEditorModel(); @@ -68,7 +70,7 @@ export class DmpWizardComponent extends BaseComponent implements OnInit, IBreadC const breadCrumbs = []; breadCrumbs.push({ parentComponentName: null, label: this.language.instant('NAV-BAR.MY-DMPS'), url: "/plans" }); breadCrumbs.push({ parentComponentName: 'DmpListingComponent', label: this.dmp.label, url: '/plans/clone/' + this.dmp.id }); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); }); }); } diff --git a/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts b/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts index 550487887..f62972f4e 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/editor/dmp-wizard-editor.component.ts @@ -1,10 +1,11 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../core/common/base/base.component'; import { DatasetProfileModel } from '../../../../core/model/dataset/dataset-profile'; import { ExternalSourceItemModel } from '../../../../core/model/external-sources/external-source-item'; @@ -72,21 +73,21 @@ export class DmpWizardEditorComponent extends BaseComponent implements OnInit { this.profilesAutoCompleteConfiguration = { filterFn: this.filterProfiles.bind(this), - initialItems: (excludedItems: any[]) => this.filterProfiles('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterProfiles('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; this.organisationsAutoCompleteConfiguration = { filterFn: this.filterOrganisations.bind(this), - initialItems: (excludedItems: any[]) => this.filterOrganisations('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterOrganisations('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; this.researchersAutoCompleteConfiguration = { filterFn: this.filterResearchers.bind(this), - initialItems: (excludedItems: any[]) => this.filterResearchers('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterResearchers('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; diff --git a/dmp-frontend/src/app/ui/dmp/wizard/listing/dmp-wizard-dataset-listing.component.ts b/dmp-frontend/src/app/ui/dmp/wizard/listing/dmp-wizard-dataset-listing.component.ts index 196132600..5d1d7c131 100644 --- a/dmp-frontend/src/app/ui/dmp/wizard/listing/dmp-wizard-dataset-listing.component.ts +++ b/dmp-frontend/src/app/ui/dmp/wizard/listing/dmp-wizard-dataset-listing.component.ts @@ -1,7 +1,9 @@ import { SelectionModel } from '@angular/cdk/collections'; import { Component, Input, OnInit, ViewChild } from '@angular/core'; import { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms'; -import { MatPaginator, MatSnackBar, MatSort } from '@angular/material'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import { takeUntil } from 'rxjs/operators'; @@ -20,9 +22,9 @@ import { DatasetCriteriaComponent } from '../../../dataset/listing/criteria/data }) export class DmpWizardDatasetListingComponent extends BaseComponent implements OnInit { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(DatasetCriteriaComponent) criteria: DatasetCriteriaComponent; + @ViewChild(MatPaginator, { static: false }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(DatasetCriteriaComponent, { static: false }) criteria: DatasetCriteriaComponent; titlePrefix: String; diff --git a/dmp-frontend/src/app/ui/explore-dataset/explore-dataset-listing.component.ts b/dmp-frontend/src/app/ui/explore-dataset/explore-dataset-listing.component.ts index 07cf35a9f..8dd78e956 100644 --- a/dmp-frontend/src/app/ui/explore-dataset/explore-dataset-listing.component.ts +++ b/dmp-frontend/src/app/ui/explore-dataset/explore-dataset-listing.component.ts @@ -1,5 +1,8 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild, ɵConsole } from '@angular/core'; -import { MatPaginator, MatSort } from '@angular/material'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; import { Router, ActivatedRoute, Params } from '@angular/router'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../core/common/base/base.component'; @@ -9,7 +12,6 @@ import { ExploreDatasetCriteriaModel } from '../../core/query/explore-dataset/ex import { DatasetService } from '../../core/services/dataset/dataset.service'; import { IBreadCrumbComponent } from '../misc/breadcrumb/definition/IBreadCrumbComponent'; import { BreadcrumbItem } from '../misc/breadcrumb/definition/breadcrumb-item'; -import { Observable } from 'rxjs'; import { TranslateService } from '@ngx-translate/core'; import { DmpService } from '../../core/services/dmp/dmp.service'; import { DatasetCriteriaComponent } from '../dataset/listing/criteria/dataset-criteria.component'; @@ -24,8 +26,8 @@ import { DatasetCriteria } from '../../core/query/dataset/dataset-criteria'; }) export class ExploreDatasetListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; totalCount: number; listingItems: DatasetListingModel[] = []; @@ -78,7 +80,7 @@ export class ExploreDatasetListingComponent extends BaseComponent implements OnI label: this.language.instant('NAV-BAR.PUBLIC DATASETS'), url: "/explore" }) - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); } refresh(resetPages = false) { diff --git a/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filter-item/explore-dataset-filter-item.component.ts b/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filter-item/explore-dataset-filter-item.component.ts index d50a69234..718f7baea 100644 --- a/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filter-item/explore-dataset-filter-item.component.ts +++ b/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filter-item/explore-dataset-filter-item.component.ts @@ -1,9 +1,11 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators'; import { SelectionModel } from '@angular/cdk/collections'; import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { FormControl } from '@angular/forms'; -import { MatListOption, MatSelectionList } from '@angular/material'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { MatListOption, MatSelectionList } from '@angular/material/list'; import { BaseComponent } from '../../../../core/common/base/base.component'; @Component({ @@ -26,7 +28,7 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements filterOptions: (value) => Observable; @Input() - options: Observable = Observable.of([]); + options: Observable = observableOf([]); @Input() displayTitleFunc: (value) => string; @@ -44,14 +46,14 @@ export class ExploreDatasetFilterItemComponent extends BaseComponent implements private selectedOptions: any[] = []; - @ViewChild('optionsList') selectionList: MatSelectionList; + @ViewChild('optionsList', { static: true }) selectionList: MatSelectionList; constructor() { super(); } ngOnInit(): void { if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel(this.multipleSelect); } - this.optionSearchControl.valueChanges.debounceTime(this.requestDelay) - .distinctUntilChanged() + this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay), + distinctUntilChanged(),) .pipe(takeUntil(this._destroyed)) .subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } }); } diff --git a/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filters.component.ts b/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filters.component.ts index 0b167651b..3b4115f32 100644 --- a/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filters.component.ts +++ b/dmp-frontend/src/app/ui/explore-dataset/filters/explore-dataset-filters.component.ts @@ -1,8 +1,11 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; -import { MatAccordion } from '@angular/material'; +import { MatAccordion } from '@angular/material/expansion'; import { ActivatedRoute, Params } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { BaseComponent } from '../../../core/common/base/base.component'; import { GrantStateType } from '../../../core/common/enum/grant-state-type'; import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile'; @@ -28,7 +31,6 @@ import { ExploreDmpCriteriaModel } from '../../../core/query/explore-dmp/explore import { DmpModel } from '../../../core/model/dmp/dmp'; import { BaseCriteriaComponent } from '../../misc/criteria/base-criteria.component'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; -import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'app-explore-dataset-filters-component', @@ -49,7 +51,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI grantOptions: Observable; grantStateOptions: Observable; filteringOrganisationsAsync = false; - @ViewChild('facetAccordion') accordion: MatAccordion; + @ViewChild('facetAccordion', { static: false }) accordion: MatAccordion; displayGrantStateValue = (option) => option['value']; displayGrantStateLabel = (option) => option['label']; @@ -65,14 +67,14 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI tagsAutoCompleteConfiguration = { filterFn: this.filterTags.bind(this), - initialItems: (excludedItems: any[]) => this.filterTags('').map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + initialItems: (excludedItems: any[]) => this.filterTags('').pipe(map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] }; dmpAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { - filterFn: (x, excluded) => this.filterDmps(x).map(x => x.data), - initialItems: (extraData) => this.filterDmps('').map(x => x.data), + filterFn: (x, excluded) => this.filterDmps(x).pipe(map(x => x.data)), + initialItems: (extraData) => this.filterDmps('').pipe(map(x => x.data)), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; @@ -80,8 +82,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterGrant.bind(this), initialItems: (excludedItems: any[]) => - this.filterGrant('') - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.filterGrant('').pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] } @@ -89,8 +91,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterProfile.bind(this), initialItems: (excludedItems: any[]) => - this.getProfiles() - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.getProfiles().pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; @@ -98,8 +100,8 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterOrganisation.bind(this), initialItems: (excludedItems: any[]) => - this.getOrganisations() - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.getOrganisations().pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] } @@ -117,7 +119,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI ngOnInit() { setTimeout(x => { - this.grantStateOptions = Observable.of( + this.grantStateOptions = observableOf( [ { label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.INACTIVE'), value: GrantStateType.Finished }, { label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing }, @@ -135,7 +137,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI this.facetCriteria.grantStatus = event.value; if (event.value === 'null') { this.facetCriteria.grantStatus = null; - this.grants = Observable.of([]); + this.grants = observableOf([]); this.facetCriteria.grants = []; } // if (event.option.selected) { @@ -151,7 +153,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus; dataTableRequest.criteria['length'] = 10; - this.grants = this.grantService.getPublicPaged(dataTableRequest).map(x => x.data); + this.grants = this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data)); this.facetCriteria.grants = []; } this.facetCriteriaChange.emit(this.facetCriteria); @@ -199,7 +201,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = ''; - return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data)); } public dmpOrganisationChanged(event: any) { @@ -226,7 +228,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI dataTableRequest.criteria = grantCriteria; //const dataTableRequest: RequestItem = { criteria: grantCriteria }; //return this.grantService.getPaged(dataTableRequest, "autocomplete").map(x => x.data); - return this.grantService.getPublicPaged(dataTableRequest).map(x => x.data); + return this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data)); } public dmpOrganisationSearch(value: string): Observable { @@ -331,7 +333,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI const grantRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); grantRequestItem.criteria = new GrantCriteria(); grantRequestItem.criteria.like = query; - return this.grantService.getPublicPaged(grantRequestItem).map(x => x.data); + return this.grantService.getPublicPaged(grantRequestItem).pipe(map(x => x.data)); } filterProfile(query: string) { @@ -341,7 +343,7 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI profileRequestItem.criteria = new ExploreDatasetCriteriaModel(); profileRequestItem.criteria.like = query; - return this.dmpService.getPublicPaged(profileRequestItem, "listing").map(x => x.data); + return this.dmpService.getPublicPaged(profileRequestItem, "listing").pipe(map(x => x.data)); } filterOrganisation(value: string) { @@ -352,6 +354,6 @@ export class ExploreDatasetFiltersComponent extends BaseComponent implements OnI dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data)); } } diff --git a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filter-item/explore-dmp-filter-item.component.ts b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filter-item/explore-dmp-filter-item.component.ts index 505b5bd24..5be70ac9f 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filter-item/explore-dmp-filter-item.component.ts +++ b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filter-item/explore-dmp-filter-item.component.ts @@ -1,9 +1,11 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators'; import { SelectionModel } from '@angular/cdk/collections'; import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core'; import { FormControl } from '@angular/forms'; -import { MatListOption, MatSelectionList } from '@angular/material'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; +import { MatListOption, MatSelectionList } from '@angular/material/list'; import { BaseComponent } from '../../../../core/common/base/base.component'; @Component({ @@ -21,7 +23,7 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn @Input() filterOptions: (value) => Observable; @Input() - options: Observable = Observable.of([]); + options: Observable = observableOf([]); @Input() displayTitleFunc: (value) => string; @Input() @@ -35,14 +37,14 @@ export class ExploreDmpFilterItemComponent extends BaseComponent implements OnIn optionSearchControl = new FormControl(''); private selectedOptions: any[] = []; - @ViewChild('optionsList') selectionList: MatSelectionList; + @ViewChild('optionsList', { static: true }) selectionList: MatSelectionList; constructor() { super(); } ngOnInit(): void { if (!this.multipleSelect) { this.selectionList.selectedOptions = new SelectionModel(this.multipleSelect); } - this.optionSearchControl.valueChanges.debounceTime(this.requestDelay) - .distinctUntilChanged() + this.optionSearchControl.valueChanges.pipe(debounceTime(this.requestDelay), + distinctUntilChanged(),) .pipe(takeUntil(this._destroyed)) .subscribe(x => { if (this.filterOptions) { this.options = this.filterOptions(x); } }); } diff --git a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts index 657872315..fa7b3abfa 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts +++ b/dmp-frontend/src/app/ui/explore-dmp/dmp-explore-filters/explore-dmp-filters.component.ts @@ -1,10 +1,14 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, ViewChild } from "@angular/core"; import { FormBuilder, FormControl, FormGroup } from "@angular/forms"; -import { MatAccordion, fadeInItems, MatGridTileHeaderCssMatStyler } from "@angular/material"; +import { MatAccordion } from "@angular/material/expansion"; +import { MatGridTileHeaderCssMatStyler } from "@angular/material/grid-list"; +import { fadeInItems } from "@angular/material/menu"; import { ActivatedRoute } from "@angular/router"; import { TranslateService } from "@ngx-translate/core"; -import { Observable } from "rxjs"; -import { takeUntil } from "rxjs/operators"; import { ValidationErrorModel } from "../../../common/forms/validation/error-model/validation-error-model"; import { GrantStateType } from '../../../core/common/enum/grant-state-type'; import { DataTableRequest } from "../../../core/model/data-table/data-table-request"; @@ -50,7 +54,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements Active: string; Inactive: string; - @ViewChild('facetAccordion') accordion: MatAccordion; + @ViewChild('facetAccordion', { static: false }) accordion: MatAccordion; displayGrantStateValue = (option) => option['value']; displayGrantStateLabel = (option) => option['label']; @@ -67,8 +71,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements profileAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterProfile.bind(this), initialItems: (excludedItems: any[]) => - this.getProfiles() - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.getProfiles().pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] }; @@ -76,8 +80,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements organizationAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterOrganisation.bind(this), initialItems: (excludedItems: any[]) => - this.getOrganisations() - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.getOrganisations().pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['name'], titleFn: (item) => item['name'] } @@ -85,8 +89,8 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements grantAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = { filterFn: this.filterGrant.bind(this), initialItems: (excludedItems: any[]) => - this.filterGrant('') - .map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1)), + this.filterGrant('').pipe( + map(result => result.filter(resultItem => excludedItems.map(x => x.id).indexOf(resultItem.id) === -1))), displayFn: (item) => item['label'], titleFn: (item) => item['label'] } @@ -111,7 +115,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements ngOnInit() { setTimeout(x => { - this.grantStateOptions = Observable.of( + this.grantStateOptions = observableOf( [ { label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.INACTIVE'), value: GrantStateType.Finished }, { label: this.languageService.instant('FACET-SEARCH.GRANT-STATUS.OPTIONS.ACTIVE'), value: GrantStateType.OnGoing }, @@ -120,7 +124,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements this.profiles = this.datasetProfileService.getDatasetProfiles(); const fields: Array = new Array(); fields.push('asc'); - this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest(0, null, { fields: fields })).map(x => x.data); + this.dmpOrganisations = this.organisationService.searchPublicOrganisations(new DataTableRequest(0, null, { fields: fields })).pipe(map(x => x.data)); } ngAfterViewInit(): void { @@ -150,7 +154,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dataTableRequest.criteria = grantCriteria; - return this.grantService.getPublicPaged(dataTableRequest).map(x => x.data); + return this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data)); } grantStatusChanged(event) { @@ -160,7 +164,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements // if (!event.source.checked) { if (event.value === 'null') { this.facetCriteria.grantStatus = null; - this.grants = Observable.of([]); + this.grants = observableOf([]); this.facetCriteria.grants = []; } // if (event.checked) { @@ -174,7 +178,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements dataTableRequest.criteria.grantStateType = this.facetCriteria.grantStatus; dataTableRequest.criteria['length'] = 10; - this.grants = this.grantService.getPublicPaged(dataTableRequest).map(x => x.data); + this.grants = this.grantService.getPublicPaged(dataTableRequest).pipe(map(x => x.data)); this.facetCriteria.grants = []; } this.facetCriteriaChange.emit(this.facetCriteria); @@ -274,7 +278,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data)); } removeOrganisation(organisation) { @@ -292,7 +296,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements const dataTableRequest: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = ''; - return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data)); } filterGrant(query: string) { @@ -301,7 +305,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements const grantRequestItem: DataTableRequest = new DataTableRequest(0, null, { fields: fields }); grantRequestItem.criteria = new GrantCriteria(); grantRequestItem.criteria.like = query; - return this.grantService.getPublicPaged(grantRequestItem).map(x => x.data); + return this.grantService.getPublicPaged(grantRequestItem).pipe(map(x => x.data)); } filterProfile(query: string) { @@ -311,7 +315,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements profileRequestItem.criteria = new ExploreDatasetCriteriaModel(); profileRequestItem.criteria.like = query; - return this.dmpService.getPublicPaged(profileRequestItem, "listing").map(x => x.data); + return this.dmpService.getPublicPaged(profileRequestItem, "listing").pipe(map(x => x.data)); } filterOrganisation(value: string) { @@ -322,7 +326,7 @@ export class ExploreDmpFiltersComponent extends BaseCriteriaComponent implements dataTableRequest.criteria = new OrganisationCriteria(); dataTableRequest.criteria.labelLike = value; - return this.organisationService.searchPublicOrganisations(dataTableRequest).map(x => x.data); + return this.organisationService.searchPublicOrganisations(dataTableRequest).pipe(map(x => x.data)); } displayLabel(value) { diff --git a/dmp-frontend/src/app/ui/explore-dmp/explore-dmp-listing.component.ts b/dmp-frontend/src/app/ui/explore-dmp/explore-dmp-listing.component.ts index 1e32b2e17..6a3068e67 100644 --- a/dmp-frontend/src/app/ui/explore-dmp/explore-dmp-listing.component.ts +++ b/dmp-frontend/src/app/ui/explore-dmp/explore-dmp-listing.component.ts @@ -1,5 +1,8 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from "@angular/core"; -import { MatPaginator, MatSort } from "@angular/material"; +import { MatPaginator } from "@angular/material/paginator"; +import { MatSort } from "@angular/material/sort"; import { Router, ActivatedRoute } from "@angular/router"; import { takeUntil } from "rxjs/operators"; import { BaseComponent } from "../../core/common/base/base.component"; @@ -7,7 +10,6 @@ import { DataTableRequest } from "../../core/model/data-table/data-table-request import { DmpListingModel } from "../../core/model/dmp/dmp-listing"; import { ExploreDmpCriteriaModel } from "../../core/query/explore-dmp/explore-dmp-criteria"; import { DmpService } from "../../core/services/dmp/dmp.service"; -import { Observable } from "rxjs"; import { IBreadCrumbComponent } from "../misc/breadcrumb/definition/IBreadCrumbComponent"; import { BreadcrumbItem } from "../misc/breadcrumb/definition/breadcrumb-item"; import { TranslateService } from "@ngx-translate/core"; @@ -19,8 +21,8 @@ import { TranslateService } from "@ngx-translate/core"; }) export class ExploreDmpListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; exploreDmpCriteriaModel: ExploreDmpCriteriaModel; titlePrefix: string; @@ -46,7 +48,7 @@ export class ExploreDmpListingComponent extends BaseComponent implements OnInit, label: this.language.instant('NAV-BAR.PUBLIC-DMPS'), url: "/explore-plans" }) - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); } refresh() { diff --git a/dmp-frontend/src/app/ui/grant/editor/grant-editor.component.ts b/dmp-frontend/src/app/ui/grant/editor/grant-editor.component.ts index a893eb3d7..04358f8b7 100644 --- a/dmp-frontend/src/app/ui/grant/editor/grant-editor.component.ts +++ b/dmp-frontend/src/app/ui/grant/editor/grant-editor.component.ts @@ -1,10 +1,13 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {map, takeUntil } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatDialog, MatSnackBar } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { environment } from '../../../../environments/environment'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from '../../../core/common/base/base.component'; @@ -26,7 +29,7 @@ import { SnackBarNotificationLevel, UiNotificationService } from '../../../core/ }) export class GrantEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - breadCrumbs: Observable = Observable.of([]); + breadCrumbs: Observable = observableOf([]); isNew = true; grant: GrantEditorModel; formGroup: FormGroup = null; @@ -55,7 +58,7 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea if (itemId != null) { this.isNew = false; - this.grantService.getSingle(itemId).map(data => data as GrantListingModel) + this.grantService.getSingle(itemId).pipe(map(data => data as GrantListingModel)) .pipe(takeUntil(this._destroyed)) .subscribe(data => { this.grant = new GrantEditorModel().fromModel(data); @@ -71,11 +74,11 @@ export class GrantEditorComponent extends BaseComponent implements OnInit, IBrea label: this.grant.label, url: '/grants/edit/' + this.grant.id }); - this.breadCrumbs = Observable.of(breadCrumbs); + this.breadCrumbs = observableOf(breadCrumbs); }); } else { this.language.get('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.ACTIONS.CREATE-NEW-GRANT').pipe(takeUntil(this._destroyed)).subscribe(x => { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: null, label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(), diff --git a/dmp-frontend/src/app/ui/grant/listing/criteria/grant-criteria.component.ts b/dmp-frontend/src/app/ui/grant/listing/criteria/grant-criteria.component.ts index 2e6906705..7f960926a 100644 --- a/dmp-frontend/src/app/ui/grant/listing/criteria/grant-criteria.component.ts +++ b/dmp-frontend/src/app/ui/grant/listing/criteria/grant-criteria.component.ts @@ -5,7 +5,7 @@ import { ValidationErrorModel } from '../../../../common/forms/validation/error- import { GrantStateType } from '../../../../core/common/enum/grant-state-type'; import { GrantCriteria } from '../../../../core/query/grant/grant-criteria'; import { BaseCriteriaComponent } from '../../../misc/criteria/base-criteria.component'; -import { ErrorStateMatcher } from '@angular/material'; +import { ErrorStateMatcher } from '@angular/material/core'; @Component({ selector: 'app-grant-criteria-component', diff --git a/dmp-frontend/src/app/ui/grant/listing/grant-listing.component.ts b/dmp-frontend/src/app/ui/grant/listing/grant-listing.component.ts index 966bbb642..75716efba 100644 --- a/dmp-frontend/src/app/ui/grant/listing/grant-listing.component.ts +++ b/dmp-frontend/src/app/ui/grant/listing/grant-listing.component.ts @@ -1,7 +1,9 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatPaginator, MatSort } from '@angular/material'; +import { MatPaginator } from '@angular/material/paginator'; +import { MatSort } from '@angular/material/sort'; import { Router, ActivatedRoute, Params } from '@angular/router'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { DataTableRequest } from '../../../core/model/data-table/data-table-request'; @@ -20,9 +22,9 @@ import { TranslateService } from '@ngx-translate/core'; }) export class GrantListingComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - @ViewChild(MatPaginator) _paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - @ViewChild(GrantCriteriaComponent) criteria: GrantCriteriaComponent; + @ViewChild(MatPaginator, { static: true }) _paginator: MatPaginator; + @ViewChild(MatSort, { static: false }) sort: MatSort; + @ViewChild(GrantCriteriaComponent, { static: true }) criteria: GrantCriteriaComponent; breadCrumbs: Observable; totalCount: number; @@ -43,7 +45,7 @@ export class GrantListingComponent extends BaseComponent implements OnInit, IBre this.refresh(); this.criteria.setRefreshCallback((resetPages) => this.refresh(resetPages)); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: null, label: this.language.instant('NAV-BAR.GRANTS').toUpperCase(), url: '/grants' diff --git a/dmp-frontend/src/app/ui/misc/breadcrumb/breadcrumb.component.ts b/dmp-frontend/src/app/ui/misc/breadcrumb/breadcrumb.component.ts index c0cff89a4..b84757738 100644 --- a/dmp-frontend/src/app/ui/misc/breadcrumb/breadcrumb.component.ts +++ b/dmp-frontend/src/app/ui/misc/breadcrumb/breadcrumb.component.ts @@ -1,6 +1,9 @@ + +import {of as observableOf, Observable } from 'rxjs'; + +import {filter, mergeMap, distinctUntilChanged, map} from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { ActivatedRoute, NavigationEnd, Router } from '@angular/router'; -import { Observable } from 'rxjs'; import { BreadcrumbItem } from './definition/breadcrumb-item'; import { BreadCrumbResolverService } from './service/breadcrumb.service'; import { TranslateService } from '@ngx-translate/core'; @@ -11,10 +14,10 @@ import { TranslateService } from '@ngx-translate/core'; styleUrls: ['./breadcrumb.component.scss'] }) export class BreadcrumbComponent implements OnInit { - breadcrumbs$ = this.router.events - .filter(event => event instanceof NavigationEnd) - .distinctUntilChanged() - .flatMap(event => this.buildBreadCrumb(this.activatedRoute.root)); + breadcrumbs$ = this.router.events.pipe( + filter(event => event instanceof NavigationEnd), + distinctUntilChanged(), + mergeMap(event => this.buildBreadCrumb(this.activatedRoute.root)),); constructor( @@ -30,15 +33,15 @@ export class BreadcrumbComponent implements OnInit { buildBreadCrumb(route: ActivatedRoute): Observable { if (this.breadCrumbService.resolve(route)) { - return this.breadCrumbService.resolve(route).map(x => { + return this.breadCrumbService.resolve(route).pipe(map(x => { x.unshift({ label: this.language.instant('NAV-BAR.HOME'), url: '/home', icon: 'dashboard' }); return x; - }); + })); } - return Observable.of([]); + return observableOf([]); } navigate(url, params) { diff --git a/dmp-frontend/src/app/ui/misc/breadcrumb/service/breadcrumb.service.ts b/dmp-frontend/src/app/ui/misc/breadcrumb/service/breadcrumb.service.ts index ed6071b93..184a50a6a 100644 --- a/dmp-frontend/src/app/ui/misc/breadcrumb/service/breadcrumb.service.ts +++ b/dmp-frontend/src/app/ui/misc/breadcrumb/service/breadcrumb.service.ts @@ -1,6 +1,7 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Injectable, NgZone } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { BaseService } from '../../../../core/common/base/base.service'; import { BreadcrumbItem } from '../definition/breadcrumb-item'; @@ -11,7 +12,7 @@ export class BreadCrumbResolverService extends BaseService { private activeComponents = []; private parentComponents = []; - private breadCrumbs: Observable = Observable.of([]); + private breadCrumbs: Observable = observableOf([]); constructor( private router: Router, private zone: NgZone @@ -25,7 +26,7 @@ export class BreadCrumbResolverService extends BaseService { public clear() { this.activeComponents.length = 0; - this.breadCrumbs = Observable.of([]); + this.breadCrumbs = observableOf([]); } public resolve(activatedRoute: ActivatedRoute): Observable { @@ -34,7 +35,7 @@ export class BreadCrumbResolverService extends BaseService { this.activeComponents.filter(x => routeComponents.indexOf(x.constructor.name) !== -1).forEach(x => { if (x.hasOwnProperty('breadCrumbs')) { const componentItems = this.resolveDependentComponents((x).breadCrumbs, []); - this.breadCrumbs = Observable.of(componentItems); + this.breadCrumbs = observableOf(componentItems); } }); return this.breadCrumbs; diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts index 160955cb6..95c618d6a 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/components/form-field/form-field.component.ts @@ -1,6 +1,7 @@ + +import {map, takeUntil } from 'rxjs/operators'; import { Component, Input, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../../../core/common/base/base.component'; import { DatasetProfileComboBoxType } from '../../../../../core/common/enum/dataset-profile-combo-box-type'; import { DatasetProfileFieldViewStyle } from '../../../../../core/common/enum/dataset-profile-field-view-style'; @@ -137,7 +138,7 @@ export class FormFieldComponent extends BaseComponent implements OnInit { const datasetsAutocompleteRequestItem: DataTableRequest = new DataTableRequest(0, 25, { fields: fields }); datasetsAutocompleteRequestItem.criteria = new DatasetCriteria(); datasetsAutocompleteRequestItem.criteria.like = query; - return this.datasetService.getPaged(datasetsAutocompleteRequestItem).map(item => item.data); + return this.datasetService.getPaged(datasetsAutocompleteRequestItem).pipe(map(item => item.data)); } searchDmps(query: string) { @@ -145,7 +146,7 @@ export class FormFieldComponent extends BaseComponent implements OnInit { const dmpsAutocompleteRequestItem: DataTableRequest = new DataTableRequest(0, 25, { fields: fields }); dmpsAutocompleteRequestItem.criteria = new DmpCriteria(); dmpsAutocompleteRequestItem.criteria.like = query; - return this.dmpService.getPaged(dmpsAutocompleteRequestItem).map(item => item.data); + return this.dmpService.getPaged(dmpsAutocompleteRequestItem).pipe(map(item => item.data)); } makeAutocompleteConfiguration(myfunc: Function, title: string, subtitle?: string): void { diff --git a/dmp-frontend/src/app/ui/misc/dataset-description-form/dataset-description-form.component.ts b/dmp-frontend/src/app/ui/misc/dataset-description-form/dataset-description-form.component.ts index 0b873b888..771943929 100644 --- a/dmp-frontend/src/app/ui/misc/dataset-description-form/dataset-description-form.component.ts +++ b/dmp-frontend/src/app/ui/misc/dataset-description-form/dataset-description-form.component.ts @@ -1,8 +1,8 @@ -import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core'; +import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatStepper } from '@angular/material'; +import { MatStepper } from '@angular/material/stepper'; import { ActivatedRoute, Router } from '@angular/router'; -import 'rxjs/add/operator/switchMap'; + import { takeUntil } from 'rxjs/operators'; import { Pair } from '../../../common/types/pair'; import { BaseComponent } from '../../../core/common/base/base.component'; diff --git a/dmp-frontend/src/app/ui/misc/help-content/help-content.component.ts b/dmp-frontend/src/app/ui/misc/help-content/help-content.component.ts index bb566812a..fa4aa9f41 100644 --- a/dmp-frontend/src/app/ui/misc/help-content/help-content.component.ts +++ b/dmp-frontend/src/app/ui/misc/help-content/help-content.component.ts @@ -32,11 +32,11 @@ export class HelpContentComponent extends BaseComponent implements OnInit { .pipe(takeUntil(this._destroyed)) .subscribe(event => { if (event instanceof NavigationStart) { - this._helpContentService.getActivePageContent(event['url']) - .pipe(takeUntil(this._destroyed)) - .subscribe( - pageContent => this.shiftThroughContent(pageContent), - error => this.handleError(error)); + // this._helpContentService.getActivePageContent(event['url']) + // .pipe(takeUntil(this._destroyed)) + // .subscribe( + // pageContent => this.shiftThroughContent(pageContent), + // error => this.handleError(error)); } }); } diff --git a/dmp-frontend/src/app/ui/misc/navigation/navigation.component.ts b/dmp-frontend/src/app/ui/misc/navigation/navigation.component.ts index 50799203a..f3a288b66 100644 --- a/dmp-frontend/src/app/ui/misc/navigation/navigation.component.ts +++ b/dmp-frontend/src/app/ui/misc/navigation/navigation.component.ts @@ -1,9 +1,10 @@ + +import {mergeMap, distinctUntilChanged, debounceTime, takeUntil } from 'rxjs/operators'; import { Component, OnInit } from '@angular/core'; import { FormControl } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { Observable } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../../core/common/base/base.component'; import { AppRole } from '../../../core/common/enum/app-role'; import { SearchBarItem } from '../../../core/model/dashboard/search-bar-item'; @@ -59,9 +60,9 @@ export class NavigationComponent extends BaseComponent implements OnInit { titleFn: (item) => item['label'] }; - this.filteredOptions = this.searchControl.valueChanges.debounceTime(500).distinctUntilChanged().flatMap(x => { + this.filteredOptions = this.searchControl.valueChanges.pipe(debounceTime(500),distinctUntilChanged(),mergeMap(x => { return this.searchBarService.search(x); - }); + }),); } searchGrant(query: string) { diff --git a/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts b/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts index cef11698d..1486663fa 100644 --- a/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts +++ b/dmp-frontend/src/app/ui/misc/navigation/user-dialog/user-dialog.component.ts @@ -1,6 +1,6 @@ import { Component, Inject, OnInit } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { Principal } from '../../../../core/model/auth/Principal'; import { AuthService } from '../../../../core/services/auth/auth.service'; diff --git a/dmp-frontend/src/app/ui/misc/search/search.component.ts b/dmp-frontend/src/app/ui/misc/search/search.component.ts index 137eaf4d0..f12184af2 100644 --- a/dmp-frontend/src/app/ui/misc/search/search.component.ts +++ b/dmp-frontend/src/app/ui/misc/search/search.component.ts @@ -1,3 +1,5 @@ + +import {mergeMap, distinctUntilChanged, debounceTime} from 'rxjs/operators'; import { Component, OnInit } from "@angular/core"; import { AuthService } from '../../../core/services/auth/auth.service'; import { FormControl } from "@angular/forms"; @@ -25,9 +27,9 @@ export class SearchComponent implements OnInit { constructor(private authentication: AuthService, private router: Router, private searchBarService: SearchBarService) {} ngOnInit() { - this.filteredOptions = this.searchControl.valueChanges.debounceTime(500).distinctUntilChanged().flatMap(x => { + this.filteredOptions = this.searchControl.valueChanges.pipe(debounceTime(500),distinctUntilChanged(),mergeMap(x => { return this.searchBarService.search(x); - }); + }),); } public isAuthenticated(): boolean { diff --git a/dmp-frontend/src/app/ui/navbar/navbar.component.ts b/dmp-frontend/src/app/ui/navbar/navbar.component.ts index 7a746226c..4bb6d9652 100644 --- a/dmp-frontend/src/app/ui/navbar/navbar.component.ts +++ b/dmp-frontend/src/app/ui/navbar/navbar.component.ts @@ -4,7 +4,7 @@ import { GENERAL_ROUTES, DMP_ROUTES, DATASETS_ROUTES } from '../sidebar/sidebar. import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common'; import { Router } from '@angular/router'; import { AuthService } from '../../core/services/auth/auth.service'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component'; import { AppRole } from '../../core/common/enum/app-role'; import { ProgressIndicationService } from '../../core/services/progress-indication/progress-indication-service'; diff --git a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts index 244c44097..7f4fbea97 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/dmp-editor/dmp-editor-wizard.component.ts @@ -1,9 +1,10 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, Input, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from "../../../core/common/base/base.component"; import { DatasetProfileModel } from '../../../core/model/dataset/dataset-profile'; @@ -24,7 +25,7 @@ import { DmpEditorWizardModel } from './dmp-editor-wizard-model'; }) export class DmpEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - breadCrumbs: Observable = Observable.of([]); + breadCrumbs: Observable = observableOf([]); isNew = true; dmp: DmpEditorWizardModel; @@ -65,7 +66,7 @@ export class DmpEditorWizardComponent extends BaseComponent implements OnInit, I this.formGroup.get('label').setValue(this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.SECOND-STEP.DMP-NAME') + this.dmpLabel); this.formGroup.get('label').setValue(this.language.instant('QUICKWIZARD.CREATE-ADD.CREATE.QUICKWIZARD_CREATE.SECOND-STEP.DMP-NAME') + this.dmpLabel); - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'grant', label: this.language.instant('NAV-BAR.DMP'), url: '/quick-wizard/dmp' diff --git a/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard.component.ts b/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard.component.ts index 338a5b98e..cdfa6e73b 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard.component.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/grant-editor/grant-editor-wizard.component.ts @@ -1,9 +1,10 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, Input, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatSnackBar } from '@angular/material'; +import { MatSnackBar } from '@angular/material/snack-bar'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from "../../../core/common/base/base.component"; import { GrantCriteria } from '../../../core/query/grant/grant-criteria'; @@ -21,7 +22,7 @@ import { GrantEditorWizardModel } from './grant-editor-wizard-model'; styleUrls: ['./grant-editor-wizard.component.scss'] }) export class GrantEditorWizardComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - breadCrumbs: Observable = Observable.of([]); + breadCrumbs: Observable = observableOf([]); isNew = false; grant: GrantEditorWizardModel; @@ -42,7 +43,7 @@ export class GrantEditorWizardComponent extends BaseComponent implements OnInit, } ngOnInit() { - this.breadCrumbs = Observable.of([{ + this.breadCrumbs = observableOf([{ parentComponentName: 'QuickCreate', label: this.language.instant('NAV-BAR.GRANT'), url: '/quick-wizard/grant' diff --git a/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.component.ts b/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.component.ts index fcaddc47f..2edef3209 100644 --- a/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.component.ts +++ b/dmp-frontend/src/app/ui/quick-wizard/quick-wizard-editor/quick-wizard-editor.component.ts @@ -1,9 +1,12 @@ + +import {of as observableOf, Observable } from 'rxjs'; import { Component, OnInit, ViewChild } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatDialog, MatSnackBar, MatStepper } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; +import { MatSnackBar } from '@angular/material/snack-bar'; +import { MatStepper } from '@angular/material/stepper'; import { ActivatedRoute, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; -import { Observable } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; import { BaseComponent } from "../../../core/common/base/base.component"; @@ -29,9 +32,9 @@ import { ProjectFormModel } from '../../dmp/editor/grant-tab/project-form-model' }) export class QuickWizardEditorComponent extends BaseComponent implements OnInit, IBreadCrumbComponent { - breadCrumbs: Observable = Observable.of([]); - @ViewChild('stepper') stepper: MatStepper; - @ViewChild(DatasetEditorWizardComponent) datasetEditorWizardComponent: DatasetEditorWizardComponent; + breadCrumbs: Observable = observableOf([]); + @ViewChild('stepper', { static: true }) stepper: MatStepper; + @ViewChild(DatasetEditorWizardComponent, { static: false }) datasetEditorWizardComponent: DatasetEditorWizardComponent; isNew = true; quickWizard: QuickWizardEditorWizardModel; allDatasets: DmpFinalizeDialogDataset[] = []; @@ -57,7 +60,7 @@ export class QuickWizardEditorComponent extends BaseComponent implements OnInit, this.quickWizard.project = new ProjectFormModel(); this.formGroup = this.quickWizard.buildForm(); this.language.get('NAV-BAR.DMP-WIZARD').pipe(takeUntil(this._destroyed)).subscribe(x => { - this.breadCrumbs = Observable.of([ + this.breadCrumbs = observableOf([ { parentComponentName: 'Dashboard', label: x, diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/faq/faq-dialog.component.ts b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/faq/faq-dialog.component.ts index 8b680044f..4a0795f26 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/faq/faq-dialog.component.ts +++ b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/faq/faq-dialog.component.ts @@ -1,6 +1,6 @@ import { Component, Inject } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ selector: 'app-faq-dialog', diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/glossary/glossary-dialog.component.ts b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/glossary/glossary-dialog.component.ts index b2d7c36e1..cdd4c3967 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/glossary/glossary-dialog.component.ts +++ b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/glossary/glossary-dialog.component.ts @@ -1,6 +1,6 @@ import { Component, Inject } from '@angular/core'; import { FormGroup } from '@angular/forms'; -import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; @Component({ selector: 'app-glossary-dialog', diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.ts b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.ts index b3e69608a..ecc9546cf 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.ts +++ b/dmp-frontend/src/app/ui/sidebar/sidebar-footer/sidebar-footer.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit } from '@angular/core'; import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { takeUntil } from 'rxjs/operators'; import { ValidationErrorModel } from '../../../common/forms/validation/error-model/validation-error-model'; diff --git a/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts b/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts index bc45ba34f..4b7e6c281 100644 --- a/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts +++ b/dmp-frontend/src/app/ui/sidebar/sidebar.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material'; +import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; import { AuthService } from '../../core/services/auth/auth.service'; import { UserDialogComponent } from '../misc/navigation/user-dialog/user-dialog.component'; diff --git a/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts b/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts index a25e82b14..a5e847417 100644 --- a/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts +++ b/dmp-frontend/src/app/ui/user-profile/user-profile.component.ts @@ -3,15 +3,15 @@ import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms' import { ActivatedRoute, Params, Router } from '@angular/router'; import { TranslateService } from '@ngx-translate/core'; import * as moment from 'moment-timezone'; -import { takeUntil } from 'rxjs/operators'; -import { Observable } from 'rxjs/Rx'; +import { Observable, of } from 'rxjs'; +import { map, takeUntil } from 'rxjs/operators'; import { BaseComponent } from '../../core/common/base/base.component'; import { CultureInfo } from '../../core/model/culture-info'; +import { DmpModel } from '../../core/model/dmp/dmp'; import { UserListingModel } from '../../core/model/user/user-listing'; import { AuthService } from '../../core/services/auth/auth.service'; import { CultureService } from '../../core/services/culture/culture-service'; import { UserService } from '../../core/services/user/user.service'; -import { DmpModel } from '../../core/model/dmp/dmp'; const availableLanguages: any[] = require('../../../assets/resources/language.json'); @@ -47,7 +47,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes .subscribe((params: Params) => { this.currentUserId = this.authService.current().id; const userId = !params['id'] ? 'me' : params['id']; - this.user = this.userService.getUser(userId).map(result => { + this.user = this.userService.getUser(userId).pipe(map(result => { result['additionalinfo'] = JSON.parse(result['additionalinfo']); this.formGroup = new FormBuilder().group({ language: new FormControl(result['additionalinfo']['language'] ? availableLanguages.filter(x => x.value === result['additionalinfo']['language']['value']).pop() : '', [Validators.required]), @@ -63,7 +63,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes .subscribe(x => { if (x) { this.cultures = this._filterCulture(x); } }); this.formGroup.disable(); return result; - }); + })); }); } @@ -91,18 +91,18 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes private _filterTimezone(value: string): Observable { if (value && typeof value === 'string') { const filterValue = value.toLowerCase(); - return Observable.of(moment.tz.names().filter(option => option.toLowerCase().includes(filterValue))); + return of(moment.tz.names().filter(option => option.toLowerCase().includes(filterValue))); } else { - return Observable.of(moment.tz.names()); + return of(moment.tz.names()); } } private _filterCulture(value: string): Observable { if (value && typeof value === 'string') { const filterValue = value.toLowerCase(); - return Observable.of(this.cultureService.getCultureValues().filter(option => option.displayName.toLowerCase().includes(filterValue))); + return of(this.cultureService.getCultureValues().filter(option => option.displayName.toLowerCase().includes(filterValue))); } else { - return Observable.of(this.cultureService.getCultureValues()); + return of(this.cultureService.getCultureValues()); } } @@ -132,7 +132,7 @@ export class UserProfileComponent extends BaseComponent implements OnInit, OnDes this.authService.me() .pipe(takeUntil(this._destroyed)) .subscribe(result => this.router.navigate(['/profile'])); - // .subscribe(result => window.location.reload()); + // .subscribe(result => window.location.reload()); }, error => { console.log(error); diff --git a/dmp-frontend/src/polyfills.ts b/dmp-frontend/src/polyfills.ts index 1c0925f52..fa3cd0117 100644 --- a/dmp-frontend/src/polyfills.ts +++ b/dmp-frontend/src/polyfills.ts @@ -11,36 +11,20 @@ * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * - * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html + * Learn more in https://angular.io/guide/browser-support */ /*************************************************************************************************** - * BROWSER POLYFILLS - */ +* BROWSER POLYFILLS +*/ -/** IE9, IE10 and IE11 requires all of the following polyfills. **/ -import 'core-js/es6/symbol'; -import 'core-js/es6/object'; -import 'core-js/es6/function'; -import 'core-js/es6/parse-int'; -import 'core-js/es6/parse-float'; -import 'core-js/es6/number'; -import 'core-js/es6/math'; -import 'core-js/es6/string'; -import 'core-js/es6/date'; -import 'core-js/es6/array'; -import 'core-js/es7/array'; //for array.includes -import 'core-js/es6/regexp'; -import 'core-js/es6/map'; -import 'core-js/es6/weak-map'; -import 'core-js/es6/set'; +import 'core-js/es7/array'; /** IE10 and IE11 requires the following for NgClass support on SVG elements */ //import 'classlist.js'; // Run `npm install --save classlist.js`. /** Evergreen browsers require these. **/ import 'core-js/es6/reflect'; -import 'core-js/es7/reflect'; /** diff --git a/dmp-frontend/src/tsconfig.spec.json b/dmp-frontend/src/tsconfig.spec.json index 18bad40ed..c89454bef 100644 --- a/dmp-frontend/src/tsconfig.spec.json +++ b/dmp-frontend/src/tsconfig.spec.json @@ -3,8 +3,6 @@ "compilerOptions": { "outDir": "../out-tsc/spec", "baseUrl": "./", - "module": "commonjs", - "target": "es5", "types": [ "jasmine", "node" diff --git a/dmp-frontend/tsconfig.json b/dmp-frontend/tsconfig.json index c670a34f6..bfd2e9604 100644 --- a/dmp-frontend/tsconfig.json +++ b/dmp-frontend/tsconfig.json @@ -1,7 +1,9 @@ { "compilerOptions": { - "target": "es5", - "module": "commonjs", + "downlevelIteration": true, + "importHelpers": true, + "target": "es2015", + "module": "esnext", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, diff --git a/dmp-frontend/tslint.json b/dmp-frontend/tslint.json index 4d352749b..b82bc955a 100644 --- a/dmp-frontend/tslint.json +++ b/dmp-frontend/tslint.json @@ -136,12 +136,12 @@ "app", "kebab-case" ], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, + "no-inputs-metadata-property": true, + "no-outputs-metadata-property": true, + "no-host-metadata-property": true, "no-input-rename": true, "no-output-rename": true, - "use-life-cycle-interface": true, + "use-lifecycle-interface": true, "use-pipe-transform-interface": true, "component-class-suffix": true, "directive-class-suffix": true