From 976fe73964a8e2940ca8b30df5eebdbd513c1ce5 Mon Sep 17 00:00:00 2001 From: "stefania.martziou" Date: Fri, 5 Jun 2020 00:29:16 +0000 Subject: [PATCH] Working on the new version of the oso - almost done with tha data part of the pages --- src/app/app-routing.module.ts | 2 +- src/app/domain/overview-map-data.ts | 20 + src/app/domain/raw-data.ts | 2 +- .../continent-overview.component.html | 245 +++++++++--- .../continent-overview.component.ts | 76 +++- .../countrypage/country-page.component.html | 141 +++---- .../countrypage/country-page.component.ts | 66 ++-- .../pages/home/countries-table.component.html | 18 +- src/app/pages/home/data-view.component.html | 3 +- src/app/pages/home/data-view.component.ts | 20 +- .../home/europe-map-overview.component.ts | 14 +- src/app/services/data-handler.service.ts | 361 +++++++++++++++++- src/app/services/data.service.ts | 24 +- src/assets/css/os-observatory-custom.css | 99 +++++ src/assets/img/icons/datasets-icon-white.svg | 1 + src/assets/img/icons/other-icon-white.svg | 1 + .../img/icons/publications-icon-white.svg | 1 + src/assets/img/icons/software-icon-white.svg | 9 + 18 files changed, 922 insertions(+), 181 deletions(-) create mode 100644 src/assets/img/icons/datasets-icon-white.svg create mode 100644 src/assets/img/icons/other-icon-white.svg create mode 100644 src/assets/img/icons/publications-icon-white.svg create mode 100644 src/assets/img/icons/software-icon-white.svg diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index c4520ad0a..a01fee7be 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -25,7 +25,7 @@ const routes: Routes = [ component: ContinentOverviewComponent }, { - path: 'countryDashboard/:countryName', + path: 'countryDashboard/:countryCode', component: CountryPageComponent }, { diff --git a/src/app/domain/overview-map-data.ts b/src/app/domain/overview-map-data.ts index dc32cc71d..b49f4f8b1 100644 --- a/src/app/domain/overview-map-data.ts +++ b/src/app/domain/overview-map-data.ts @@ -19,6 +19,9 @@ export class JoinedMapData { countryCode: string; affiliated: number; deposited: number; + doar_re3data: number; + doaj: number; + simple: number; } export class SelectedCountry { @@ -41,6 +44,8 @@ export class CountryOverviewData { export class EuropeData { publications: Indicator; datasets: Indicator; + software: Indicator; + other: Indicator; repositories: Indicator; journals: Indicator; policies: Indicator; @@ -57,3 +62,18 @@ export class CountryTableData { journals: number = null; policies: number = null; } + +export class CountryPageOverviewData { + name: string = null; + code: string = null; + publicationsAffiliated: Indicator; + publicationsDeposited: Indicator ; + datasetsAffiliated: Indicator; + datasetsDeposited: Indicator; + repositories: Indicator; + journals: Indicator; + policies: number = null; + funders: number = null; + fundingOrganizations: number = null; + ec_fundedOrganizations: number = null; +} diff --git a/src/app/domain/raw-data.ts b/src/app/domain/raw-data.ts index f274a2b89..abc9d4a9d 100644 --- a/src/app/domain/raw-data.ts +++ b/src/app/domain/raw-data.ts @@ -13,7 +13,7 @@ export class SeriesItem { export class Query { name: string; - parameters: string; + parameters: string[]; filters: string; select: string; entity: string; diff --git a/src/app/pages/continentoverview/continent-overview.component.html b/src/app/pages/continentoverview/continent-overview.component.html index 1beba476f..0cc1ce196 100644 --- a/src/app/pages/continentoverview/continent-overview.component.html +++ b/src/app/pages/continentoverview/continent-overview.component.html @@ -1,66 +1,193 @@ -
-
+
+
+
-
    -
  • Home
  • -
  • {{continentName | titlecase}}
  • -
- - -
- -
- -
-
- - - - -
-
- -
-
+
+ +
+
+ +
+
+ + + +
+
+ + + {{europeOverviewData.publications.percentage | number :'1.0-1'}}% + + Publications +
+
+
+ +
+ +
+
+ + + +
+
+ + + {{europeOverviewData.datasets.percentage | number :'1.0-1'}}% + + Datasets +
+
+
+ +
+ +
+
+ + + +
+
+ + + {{europeOverviewData.software.percentage | number :'1.0-1'}}% + + Software +
+
+
+ +
+ +
+
+ + + +
+
+ + + {{europeOverviewData.other.percentage | number :'1.0-1'}}% + + Other +
+
+
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+
+ Lorem Ipsum Lorem Ipsum Lorem Ipsum +
+
+
+
+
+ Lorem Ipsum Lorem Ipsum Lorem Ipsum +
+
+
+
+
+ Lorem Ipsum Lorem Ipsum Lorem Ipsum +
+
+
+
+
+ Lorem Ipsum Lorem Ipsum Lorem Ipsum +
+
+ +
+
+
+ + +
+
+ +
+ + +
    + +
  • +
    + + +
    +
  • + + + + + +
+
+ +
+
+
+ -
-
diff --git a/src/app/pages/continentoverview/continent-overview.component.ts b/src/app/pages/continentoverview/continent-overview.component.ts index 3dff34b9f..138450d4a 100644 --- a/src/app/pages/continentoverview/continent-overview.component.ts +++ b/src/app/pages/continentoverview/continent-overview.component.ts @@ -1,7 +1,9 @@ import { Component, OnInit } from '@angular/core'; -import {ActivatedRoute} from '@angular/router'; -import {DomSanitizer} from '@angular/platform-browser'; -import {DataService} from '../../services/data.service'; +import { ActivatedRoute } from '@angular/router'; +import { DomSanitizer } from '@angular/platform-browser'; +import { DataService } from '../../services/data.service'; +import { DataHandlerService } from '../../services/data-handler.service'; +import { EuropeData } from '../../domain/overview-map-data'; @Component({ selector: 'app-continent-overview', @@ -12,11 +14,79 @@ export class ContinentOverviewComponent implements OnInit { continentName: string; + europeOverviewData: EuropeData; + constructor(private dataService: DataService, + private dataHandlerService: DataHandlerService, private route: ActivatedRoute, private sanitizer: DomSanitizer) { } ngOnInit(): void { this.continentName = this.route.snapshot.paramMap.get('continentName'); + + this.dataService.getEuropeOAPercentages().subscribe( + rawData => { + this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData); + }, error => { + console.log(error); + } + ); } + + getHeight(percentage: number) { + if (percentage < 50) { + return Math.round(percentage) * 1.5; + } else { + return Math.round(percentage); + } + } + + getNumberFontSize(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 45 / 100) * 1.5; + } else { + return Math.round(percentage * 45 / 100); + } + } + + getEntityNameFontSize(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 30 / 100) * 1.5; + } else { + return Math.round(percentage * 30 / 100); + } + } + + getPublicationsIconWidth(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 60 / 100) * 1.5; + } else { + return Math.round(percentage * 60 / 100); + } + } + + getDatasetsIconWidth(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 45 / 100) * 1.5; + } else { + return Math.round(percentage * 45 / 100); + } + } + + getSoftwareIconWidth(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 50 / 100) * 1.5; + } else { + return Math.round(percentage * 50 / 100); + } + } + + getOtherIconWidth(percentage: number) { + if (percentage < 50) { + return Math.round(percentage * 45 / 100) * 1.5; + } else { + return Math.round(percentage * 45 / 100); + } + } + } diff --git a/src/app/pages/countrypage/country-page.component.html b/src/app/pages/countrypage/country-page.component.html index b55309119..2e49386d2 100644 --- a/src/app/pages/countrypage/country-page.component.html +++ b/src/app/pages/countrypage/country-page.component.html @@ -2,25 +2,36 @@
-
+
  • Home
  • {{countryName}}
+ + +
+
+ +
+

{{countryPageOverviewData.name}}

+ Info Last Updated: 21 May 2020 +
+
+ + +
+
-
- -
@@ -34,21 +45,21 @@
-
- -
+ + +

- -- - {{countryData.publications.oa | number}} + -- + {{countryPageOverviewData.publicationsAffiliated.oa | number}}

- OA publications from institutional repositories + OA publications affiliated to an organization in the country
-
- {{countryData.publications.percentage | number :'1.0-1'}}% OA +
+ {{countryPageOverviewData.publicationsAffiliated.percentage | number :'1.0-1'}}% OA
-
+
@@ -56,23 +67,24 @@
- - - +
+ +

- -- - {{countryData.publications.oa | number}} + -- + {{countryPageOverviewData.publicationsDeposited.oa | number}}

- OA publications affiliated to an organization in the country + OA publications from institutional repositories
-
- {{countryData.publications.percentage | number :'1.0-1'}}% OA +
+ {{countryPageOverviewData.publicationsDeposited.percentage | number :'1.0-1'}}% OA
-
+
+
@@ -83,21 +95,21 @@
-
- -
+ + +

- -- - {{countryData.datasets.oa | number}} + -- + {{countryPageOverviewData.datasetsAffiliated.oa | number}}

- OA datasets from institutional repositories + OA datasets affiliated to an organization in the country
-
- {{countryData.datasets.percentage | number :'1.0-1'}}% OA +
+ {{countryPageOverviewData.datasetsAffiliated.percentage | number :'1.0-1'}}% OA
-
+
@@ -105,21 +117,21 @@
- - - +
+ +

- -- - {{countryData.datasets.oa | number}} + -- + {{countryPageOverviewData.datasetsDeposited.oa | number}}

- OA datasets affiliated to an organization in the country + OA datasets from institutional repositories
-
- {{countryData.datasets.percentage | number :'1.0-1'}}% OA +
+ {{countryPageOverviewData.datasetsDeposited.percentage | number :'1.0-1'}}% OA
-
+
@@ -135,17 +147,17 @@

- -- - {{countryData.repositories.oa | number}} + -- + {{countryPageOverviewData.repositories.oa | number}}

repositories from openDOAR & re3data
-
- {{countryData.repositories.percentage | number :'1.0-1'}}% Certified +
+ {{countryPageOverviewData.repositories.percentage | number :'1.0-1'}}% Validated
-
+
@@ -158,8 +170,8 @@

- -- - {{countryData.journals.oa | number}} + -- + {{countryPageOverviewData.journals.oa | number}}

@@ -167,10 +179,10 @@
OA journals from DOAJ
-
- {{countryData.journals.percentage | number :'1.0-1'}}% Certified +
+ {{countryPageOverviewData.journals.percentage | number :'1.0-1'}}% Validated
-
+
@@ -503,7 +515,7 @@

- {{countryName | uppercase}} + Research overview

@@ -518,24 +530,24 @@
- {{countryData.funders.oa}} - -- + {{countryPageOverviewData.funders}} + -- funding sources

- {{countryData.funders.total}} - -- + {{countryPageOverviewData.fundingOrganizations}} + -- funding organizations

- {{countryData.ecFundedOrganizations.oa}} - -- + {{countryPageOverviewData.ec_fundedOrganizations}} + -- organizations funded by the European commission since 2013
@@ -552,13 +564,6 @@ Country page in OpenAIRE
-
- - - - Powered by OpenAIRE Open Research Graph -
- diff --git a/src/app/pages/countrypage/country-page.component.ts b/src/app/pages/countrypage/country-page.component.ts index 70a12a479..e8007bd22 100644 --- a/src/app/pages/countrypage/country-page.component.ts +++ b/src/app/pages/countrypage/country-page.component.ts @@ -1,22 +1,24 @@ -import { Component, OnInit, ViewEncapsulation } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { DataService } from '../../services/data.service'; import { ActivatedRoute } from '@angular/router'; import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; import { CountryOverview, OverviewData } from '../../domain/overview-data'; +import { DataHandlerService } from '../../services/data-handler.service'; +import { CountryPageOverviewData } from '../../domain/overview-map-data'; @Component({ selector: 'app-country-page', templateUrl: './country-page.component.html', - // styleUrls: ['./top-menu.component.css'], - encapsulation: ViewEncapsulation.None }) export class CountryPageComponent implements OnInit { - countryName: string; + countryCode: string; linkToCountryInOpenAIRE: string; + countryPageOverviewData: CountryPageOverviewData; + greenGoldLineChartURL: SafeResourceUrl; goldOrganisationsChartURL: SafeResourceUrl; greenOrganisationsChartURL: SafeResourceUrl; @@ -31,42 +33,58 @@ export class CountryPageComponent implements OnInit { overviewData: OverviewData; countryData: CountryOverview; - // countrySelectedName: string = null; constructor(private dataService: DataService, + private dataHandlerService: DataHandlerService, private route: ActivatedRoute, private sanitizer: DomSanitizer) { } ngOnInit(): void { - window.scroll(0,0); + window.scroll(0, 0); - this.countryName = this.route.snapshot.paramMap.get('countryName'); - this.linkToCountryInOpenAIRE = 'https://www.openaire.eu/item/' + this.countryName.replace(' ', '-'); + this.countryCode = this.route.snapshot.paramMap.get('countryCode'); - this.dataService.getCountryData(this.countryName).subscribe( - overviewData => { - this.overviewData = overviewData; - this.countryData = this.overviewData.countries.filter(x => x.country === this.countryName)[0]; - }, - error => { + this.dataService.getCountryPageOverviewData(this.countryCode).subscribe( + rawData => { + this.countryPageOverviewData = this.dataHandlerService.convertRawDataToCountryPageOverviewData(rawData); + if (this.countryPageOverviewData && this.countryPageOverviewData.name) { + this.linkToCountryInOpenAIRE = 'https://www.openaire.eu/item/' + this.countryPageOverviewData.name.replace(' ', '-'); + this.createChartURLs(); + } + }, error => { console.log(error); } ); + // this.linkToCountryInOpenAIRE = 'https://www.openaire.eu/item/' + this.countryName.replace(' ', '-'); + + // this.dataService.getCountryData(this.countryName).subscribe( + // overviewData => { + // this.overviewData = overviewData; + // this.countryData = this.overviewData.countries.filter(x => x.country === this.countryName)[0]; + // }, + // error => { + // console.log(error); + // } + // ); + + } + + createChartURLs() { // green: #98A886, gold: #D3BF3B - this.greenGoldLineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Green%20OA%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.green.year.` + this.countryName.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Gold%20OA%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.gold.year.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Green%20vs%20Gold%20Publications%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2398A886%22%2C%22%23D3BF3B%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.goldOrganisationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Gold%20OA%22%2C%22type%22%3A%22bar%22%2C%22color%22%3A%22%23D3BF3B%22%2C%22query%22%3A%7B%22name%22%3A%22oso.gold.organization.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Gold%20Open%20Access%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22Top%2015%20Organizations%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Organizations%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`); - this.greenOrganisationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Green%20OA%22%2C%22type%22%3A%22bar%22%2C%22color%22%3A%22%2398A886%22%2C%22query%22%3A%7B%22name%22%3A%22oso.green.organization.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Green%20Open%20Access%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22Top%2015%20Organizations%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Organizations%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`); + this.greenGoldLineChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Green%20OA%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.green.year.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Gold%20OA%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.gold.year.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Green%20vs%20Gold%20Publications%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22year%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2398A886%22%2C%22%23D3BF3B%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.goldOrganisationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Gold%20OA%22%2C%22type%22%3A%22bar%22%2C%22color%22%3A%22%23D3BF3B%22%2C%22query%22%3A%7B%22name%22%3A%22oso.gold.organization.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Gold%20Open%20Access%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22Top%2015%20Organizations%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Organizations%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`); + this.greenOrganisationsChartURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Green%20OA%22%2C%22type%22%3A%22bar%22%2C%22color%22%3A%22%2398A886%22%2C%22query%22%3A%7B%22name%22%3A%22oso.green.organization.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Green%20Open%20Access%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22Top%2015%20Organizations%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22Organizations%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%7D%7D`); // publications: #19647E, datasets: #019A85, software: #99B2DD - this.publicationsDataSetsSoftwareByYearGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oapublications.` + this.countryName.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oadatasets.` + this.countryName.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oasoftwares.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Publications%20vs%20Datasets%20vs%20Software%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22somethings%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%23019A85%22%2C%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.publicationsDataSetsSoftwareByFunderGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oapublications.funder.` + this.countryName.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oadatasets.funder.` + this.countryName.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oasoftwares.funder.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Publications%20vs%20Datasets%20vs%20Software%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20funder%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22somethings%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22funder%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%23019A85%22%2C%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.topProjectsByPublicationsGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.publications.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20publications%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.topProjectsByDatasetsGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.datasets.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20datasets%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22datasets%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%23019A85%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.topProjectsBySoftwareGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.software.` + this.countryName.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20software%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22software%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.publicationsDataSetsSoftwareByYearGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oapublications.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oadatasets.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22line%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oasoftwares.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Publications%20vs%20Datasets%20vs%20Software%22%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22somethings%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%23019A85%22%2C%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.publicationsDataSetsSoftwareByFunderGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oapublications.funder.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oadatasets.funder.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%2C%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.oasoftwares.funder.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Publications%20vs%20Datasets%20vs%20Software%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20funder%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22somethings%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22funder%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Atrue%2C%22align%22%3A%22center%22%2C%22verticalAlign%22%3A%22bottom%22%2C%22layout%22%3A%22horizontal%22%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%23019A85%22%2C%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.topProjectsByPublicationsGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Publications%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.publications.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20publications%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22publications%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2319647E%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.topProjectsByDatasetsGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Datasets%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.datasets.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20datasets%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22datasets%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%23019A85%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); + this.topProjectsBySoftwareGraphURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/chart?json=%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22Software%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22name%22%3A%22oso.top10.projects.software.` + this.countryPageOverviewData.name.replace(' ', '') + `%22%7D%7D%5D%2C%22chart%22%3A%7B%22backgroundColor%22%3A%22%23FFFFFFFF%22%2C%22borderColor%22%3A%22%23335cadff%22%2C%22borderRadius%22%3A0%2C%22borderWidth%22%3A0%2C%22plotBorderColor%22%3A%22%23ccccccff%22%2C%22plotBorderWidth%22%3A0%7D%2C%22title%22%3A%7B%22text%22%3A%22Top%2010%20Projects%22%7D%2C%22subtitle%22%3A%7B%22text%22%3A%22by%20software%22%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22software%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22projects%22%7D%7D%2C%22lang%22%3A%7B%22noData%22%3A%22No%20Data%20available%20for%20the%20Query%22%7D%2C%22exporting%22%3A%7B%22enabled%22%3Afalse%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%7D%7D%2C%22legend%22%3A%7B%22enabled%22%3Afalse%7D%2C%22credits%22%3A%7B%22href%22%3Anull%2C%22enabled%22%3Atrue%2C%22text%22%3A%22Created%20by%20OpenAIRE%20via%20HighCharts%22%7D%2C%22colors%22%3A%5B%22%2399B2DD%22%2C%22%232f7ed8%22%2C%22%230d233a%22%2C%22%238bbc21%22%2C%22%23910000%22%2C%22%231aadce%22%2C%22%23492970%22%2C%22%23f28f43%22%2C%22%2377a1e5%22%2C%22%23c42525%22%2C%22%23a6c96a%22%5D%7D%7D`); - this.publicationsDataSetsSoftwareByOrganisationTableURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/table?json=%7B%22library%22%3A%22GoogleCharts%22%2C%22tableDescription%22%3A%7B%22queriesInfo%22%3A%5B%7B%22name%22%3A%22Data%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22select%22%3A%5B%7B%22field%22%3A%22result%22%2C%22aggregate%22%3A%22count%22%7D%2C%7B%22field%22%3A%22result.datasource.organization.name%22%2C%22aggregate%22%3Anull%7D%2C%7B%22field%22%3A%22result.type%22%2C%22aggregate%22%3Anull%7D%5D%2C%22filters%22%3A%5B%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.datasource.organization.country.name%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22` + this.countryName + `%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Access%22%5D%7D%2C%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Source%22%5D%7D%5D%2C%22op%22%3A%22OR%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.type%22%2C%22type%22%3A%22!%3D%22%2C%22values%22%3A%5B%22other%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%5D%2C%22entity%22%3A%22result%22%2C%22profile%22%3A%22OpenAIRE%20original%22%2C%22limit%22%3A%220%22%7D%7D%5D%2C%22columns%22%3A%5B%5D%2C%22options%22%3A%7B%22hAxis%22%3A%7B%7D%2C%22vAxis%22%3A%7B%7D%2C%22chartArea%22%3A%7B%7D%2C%22series%22%3A%5B%5D%2C%22exporting%22%3Afalse%2C%22pageSize%22%3A30%2C%22isStacked%22%3A%22false%22%7D%7D%7D`); - this.publicationsDataSetsSoftwareByRepoTableURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/table?json=%7B%22library%22%3A%22GoogleCharts%22%2C%22tableDescription%22%3A%7B%22queriesInfo%22%3A%5B%7B%22name%22%3A%22Data%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22select%22%3A%5B%7B%22field%22%3A%22result%22%2C%22aggregate%22%3A%22count%22%7D%2C%7B%22field%22%3A%22result.datasource.name%22%2C%22aggregate%22%3Anull%7D%2C%7B%22field%22%3A%22result.type%22%2C%22aggregate%22%3Anull%7D%5D%2C%22filters%22%3A%5B%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.datasource.organization.country.name%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22` + this.countryName + `%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Access%22%5D%7D%2C%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Source%22%5D%7D%5D%2C%22op%22%3A%22OR%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.type%22%2C%22type%22%3A%22!%3D%22%2C%22values%22%3A%5B%22other%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%5D%2C%22entity%22%3A%22result%22%2C%22profile%22%3A%22OpenAIRE%20original%22%2C%22limit%22%3A%220%22%7D%7D%5D%2C%22columns%22%3A%5B%5D%2C%22options%22%3A%7B%22hAxis%22%3A%7B%7D%2C%22vAxis%22%3A%7B%7D%2C%22chartArea%22%3A%7B%7D%2C%22series%22%3A%5B%5D%2C%22exporting%22%3Afalse%2C%22pageSize%22%3A30%2C%22isStacked%22%3A%22false%22%7D%7D%7D`); + this.publicationsDataSetsSoftwareByOrganisationTableURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/table?json=%7B%22library%22%3A%22GoogleCharts%22%2C%22tableDescription%22%3A%7B%22queriesInfo%22%3A%5B%7B%22name%22%3A%22Data%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22select%22%3A%5B%7B%22field%22%3A%22result%22%2C%22aggregate%22%3A%22count%22%7D%2C%7B%22field%22%3A%22result.datasource.organization.name%22%2C%22aggregate%22%3Anull%7D%2C%7B%22field%22%3A%22result.type%22%2C%22aggregate%22%3Anull%7D%5D%2C%22filters%22%3A%5B%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.datasource.organization.country.name%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22` + this.countryPageOverviewData.name + `%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Access%22%5D%7D%2C%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Source%22%5D%7D%5D%2C%22op%22%3A%22OR%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.type%22%2C%22type%22%3A%22!%3D%22%2C%22values%22%3A%5B%22other%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%5D%2C%22entity%22%3A%22result%22%2C%22profile%22%3A%22OpenAIRE%20original%22%2C%22limit%22%3A%220%22%7D%7D%5D%2C%22columns%22%3A%5B%5D%2C%22options%22%3A%7B%22hAxis%22%3A%7B%7D%2C%22vAxis%22%3A%7B%7D%2C%22chartArea%22%3A%7B%7D%2C%22series%22%3A%5B%5D%2C%22exporting%22%3Afalse%2C%22pageSize%22%3A30%2C%22isStacked%22%3A%22false%22%7D%7D%7D`); + this.publicationsDataSetsSoftwareByRepoTableURL = this.sanitizer.bypassSecurityTrustResourceUrl(`http://88.197.53.71:8080/stats-api/table?json=%7B%22library%22%3A%22GoogleCharts%22%2C%22tableDescription%22%3A%7B%22queriesInfo%22%3A%5B%7B%22name%22%3A%22Data%22%2C%22type%22%3A%22bar%22%2C%22query%22%3A%7B%22select%22%3A%5B%7B%22field%22%3A%22result%22%2C%22aggregate%22%3A%22count%22%7D%2C%7B%22field%22%3A%22result.datasource.name%22%2C%22aggregate%22%3Anull%7D%2C%7B%22field%22%3A%22result.type%22%2C%22aggregate%22%3Anull%7D%5D%2C%22filters%22%3A%5B%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.datasource.organization.country.name%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22` + this.countryPageOverviewData.name + `%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Access%22%5D%7D%2C%7B%22field%22%3A%22result.access%20mode%22%2C%22type%22%3A%22%3D%22%2C%22values%22%3A%5B%22Open%20Source%22%5D%7D%5D%2C%22op%22%3A%22OR%22%7D%2C%7B%22groupFilters%22%3A%5B%7B%22field%22%3A%22result.type%22%2C%22type%22%3A%22!%3D%22%2C%22values%22%3A%5B%22other%22%5D%7D%5D%2C%22op%22%3A%22AND%22%7D%5D%2C%22entity%22%3A%22result%22%2C%22profile%22%3A%22OpenAIRE%20original%22%2C%22limit%22%3A%220%22%7D%7D%5D%2C%22columns%22%3A%5B%5D%2C%22options%22%3A%7B%22hAxis%22%3A%7B%7D%2C%22vAxis%22%3A%7B%7D%2C%22chartArea%22%3A%7B%7D%2C%22series%22%3A%5B%5D%2C%22exporting%22%3Afalse%2C%22pageSize%22%3A30%2C%22isStacked%22%3A%22false%22%7D%7D%7D`); } } diff --git a/src/app/pages/home/countries-table.component.html b/src/app/pages/home/countries-table.component.html index 1e3ee9cc3..045060cff 100644 --- a/src/app/pages/home/countries-table.component.html +++ b/src/app/pages/home/countries-table.component.html @@ -57,13 +57,15 @@ -- - {{countryOverview.repositories | number}}% + {{countryOverview.repositories | number :'1.0-1'}}% + {{countryOverview.repositories | number}} -- - {{countryOverview.journals | number}}% + {{countryOverview.journals | number :'1.0-1'}}% + {{countryOverview.journals | number}} @@ -73,7 +75,8 @@ -- - {{countryOverview.publications | number}}% + {{countryOverview.publications | number :'1.0-1'}}% + {{countryOverview.publications | number}} @@ -87,19 +90,22 @@ -- - {{countryOverview.datasets | number}}% + {{countryOverview.datasets | number :'1.0-1'}}% + {{countryOverview.datasets | number}} -- - {{countryOverview.software | number}}% + {{countryOverview.software | number :'1.0-1'}}% + {{countryOverview.software | number}} -- - {{countryOverview.other | number}}% + {{countryOverview.other | number :'1.0-1'}}% + {{countryOverview.other | number}} diff --git a/src/app/pages/home/data-view.component.html b/src/app/pages/home/data-view.component.html index 20d6c6d43..97238f543 100644 --- a/src/app/pages/home/data-view.component.html +++ b/src/app/pages/home/data-view.component.html @@ -35,7 +35,7 @@ -
+
@@ -52,6 +52,7 @@ +
diff --git a/src/app/pages/home/data-view.component.ts b/src/app/pages/home/data-view.component.ts index 5fca7fce2..13bb480ad 100644 --- a/src/app/pages/home/data-view.component.ts +++ b/src/app/pages/home/data-view.component.ts @@ -22,7 +22,8 @@ export class DataViewComponent implements OnInit { tableAbsoluteData: CountryTableData[]; tablePercentageData: CountryTableData[]; - loading: boolean = true; + loadingAbsoluteTable: boolean = true; + loadingPercentageTable: boolean = true; oaPublicationsURL: SafeResourceUrl; oaRepositoriesURL: SafeResourceUrl; @@ -37,30 +38,31 @@ export class DataViewComponent implements OnInit { ngOnInit(): void { this.getAbsoluteData(); + this.getPercentageData(); } getAbsoluteData() { - this.loading = true; + this.loadingAbsoluteTable = true; this.dataService.getOverviewTableAbsoluteData(this.contentAbsoluteSelection).subscribe( rawData => { this.tableAbsoluteData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData); - this.loading = false; + this.loadingAbsoluteTable = false; }, error => { console.log(error); - this.loading = false; + this.loadingAbsoluteTable = false; } ); } getPercentageData() { - this.loading = true; - this.dataService.getOverviewTableAbsoluteData(this.contentPercentageSelection).subscribe( + this.loadingPercentageTable = true; + this.dataService.getOverviewTablePercentageData(this.contentPercentageSelection).subscribe( rawData => { - this.tablePercentageData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData); - this.loading = false; + this.tablePercentageData = this.dataHandlerService.convertRawDataToPercentageTableData(rawData); + this.loadingPercentageTable = false; }, error => { console.log(error); - this.loading = false; + this.loadingPercentageTable = false; } ); } diff --git a/src/app/pages/home/europe-map-overview.component.ts b/src/app/pages/home/europe-map-overview.component.ts index c2f820d64..d70e5e7ac 100644 --- a/src/app/pages/home/europe-map-overview.component.ts +++ b/src/app/pages/home/europe-map-overview.component.ts @@ -42,6 +42,8 @@ export class EuropeMapOverviewComponent implements OnInit { joinedPublicationsMap: Map; joinedDatasetsMap: Map; + joinedRepositoriesMap: Map; + joinedJournalsMap: Map; constructor(private dataService: DataService, private dataHandlerService: DataHandlerService, @@ -62,6 +64,8 @@ export class EuropeMapOverviewComponent implements OnInit { this.overviewMapData = this.dataHandlerService.convertRawMapDataToMapData(rawData); this.joinedPublicationsMap = this.dataHandlerService.createJoinedPublicationsCountryMap(rawData); this.joinedDatasetsMap = this.dataHandlerService.createJoinedDatasetsCountryMap(rawData); + this.joinedRepositoriesMap = this.dataHandlerService.createJoinedRepositoriesCountryMap(rawData); + this.joinedJournalsMap = this.dataHandlerService.createJoinedJournalsCountryMap(rawData); // console.log('Country map data', this.overviewMapData[this.activeView]); this.loadMap(this.overviewMapData[this.activeView], this.seriesColor, this.seriesColor); @@ -329,6 +333,10 @@ export class EuropeMapOverviewComponent implements OnInit { '' + params.data.value[2].toLocaleString() + '' + 'repositories from
openDOAR & re3data
'; + tooltip += '
' + + '' + this.joinedRepositoriesMap.get(params.name).simple.toLocaleString() + '' + + 'repositories
'; + tooltip += ''; } else if (this.activeView === 'journals') { @@ -336,7 +344,11 @@ export class EuropeMapOverviewComponent implements OnInit { tooltip += '
'; tooltip += '
' + '' + params.data.value[2].toLocaleString() + '' + - 'journals from
DOAJ
'; + 'journals from DOAJ
'; + + tooltip += '
' + + '' + this.joinedJournalsMap.get(params.name).simple.toLocaleString() + '' + + 'journals
'; tooltip += ''; diff --git a/src/app/services/data-handler.service.ts b/src/app/services/data-handler.service.ts index 24c50f507..768373bfe 100644 --- a/src/app/services/data-handler.service.ts +++ b/src/app/services/data-handler.service.ts @@ -1,6 +1,13 @@ import { Injectable } from '@angular/core'; import { RawData, Row } from '../domain/raw-data'; -import {CountryOverviewData, CountryMapData, EuropeData, OverviewMapData, CountryTableData} from '../domain/overview-map-data'; +import { + CountryOverviewData, + CountryMapData, + EuropeData, + OverviewMapData, + CountryTableData, + CountryPageOverviewData +} from '../domain/overview-map-data'; import {Indicator} from '../domain/overview-data'; @Injectable () @@ -16,9 +23,9 @@ export class DataHandlerService { overviewMapData.publications = this.rawResultToCountryMapData(series.series.result); } else if (series.series.query.name === 'new.oso.datasets.affiliated') { overviewMapData.datasets = this.rawResultToCountryMapData(series.series.result); - } else if (series.series.query.name === 'new.oso.repositories') { + } else if (series.series.query.name === 'new.oso.repositories.doar_re3data') { overviewMapData.repositories = this.rawResultToCountryMapData(series.series.result); - } else if (series.series.query.name === 'new.oso.journals') { + } else if (series.series.query.name === 'new.oso.journals.doaj') { overviewMapData.journals = this.rawResultToCountryMapData(series.series.result); } else if (series.series.query.name === 'new.oso.oa_policies') { overviewMapData.policies = this.rawResultToCountryMapData(series.series.result); @@ -105,6 +112,82 @@ export class DataHandlerService { } + public createJoinedRepositoriesCountryMap(rawData: RawData) { + + const joinedRepositoriesMap = new Map(); + + for (const series of rawData.datasets) { + if (series.series.query.name === 'new.oso.repositories.doar_re3data') { + + for (const rowResult of series.series.result) { + if (joinedRepositoriesMap.has(rowResult.row[1])) { + const simple = joinedRepositoriesMap.get(rowResult.row[1]).simple; + joinedRepositoriesMap.delete(rowResult.row[1]); + joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doar_re3data: Number(rowResult.row[0]), simple: simple}); + } else { + joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doar_re3data: Number(rowResult.row[0]), simple: 0}); + } + } + + } else if (series.series.query.name === 'new.oso.repositories') { + + for (const rowResult of series.series.result) { + if (joinedRepositoriesMap.has(rowResult.row[1])) { + const doar_re3data = joinedRepositoriesMap.get(rowResult.row[1]).doar_re3data; + joinedRepositoriesMap.delete(rowResult.row[1]); + joinedRepositoriesMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doar_re3data: doar_re3data, simple: Number(rowResult.row[0])}); + } + joinedRepositoriesMap.set(rowResult.row[1], { countryName: rowResult.row[1], countryCode: rowResult.row[2], + doar_re3data: 0, simple: Number(rowResult.row[0])}); + } + } + } + + return joinedRepositoriesMap; + + } + + public createJoinedJournalsCountryMap(rawData: RawData) { + + const joinedJournalsMap = new Map(); + + for (const series of rawData.datasets) { + if (series.series.query.name === 'new.oso.journals.doaj') { + + for (const rowResult of series.series.result) { + if (joinedJournalsMap.has(rowResult.row[1])) { + const simple = joinedJournalsMap.get(rowResult.row[1]).simple; + joinedJournalsMap.delete(rowResult.row[1]); + joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doaj: Number(rowResult.row[0]), simple: simple}); + } else { + joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doaj: Number(rowResult.row[0]), simple: 0}); + } + } + + } else if (series.series.query.name === 'new.oso.journals') { + + for (const rowResult of series.series.result) { + if (joinedJournalsMap.has(rowResult.row[1])) { + const doaj = joinedJournalsMap.get(rowResult.row[1]).doaj; + joinedJournalsMap.delete(rowResult.row[1]); + joinedJournalsMap.set(rowResult.row[1], {countryName: rowResult.row[1], countryCode: rowResult.row[2], + doaj: doaj, simple: Number(rowResult.row[0])}); + } + joinedJournalsMap.set(rowResult.row[1], { countryName: rowResult.row[1], countryCode: rowResult.row[2], + doaj: 0, simple: Number(rowResult.row[0])}); + } + } + } + + return joinedJournalsMap; + + } + public convertRawDataToCountryOverviewData(rawData: RawData) { const countryData: CountryOverviewData = new CountryOverviewData(); @@ -153,6 +236,22 @@ export class DataHandlerService { datasetsIndicator.total = Number(series.series.result[0].row[2]); europeData.datasets = datasetsIndicator; + } else if (series.series.query.name === 'new.oso.software.oa_percentage') { + + const softwareIndicator: Indicator = new Indicator(); + softwareIndicator.percentage = Number(series.series.result[0].row[0]); + softwareIndicator.oa = Number(series.series.result[0].row[1]); + softwareIndicator.total = Number(series.series.result[0].row[2]); + europeData.software = softwareIndicator; + + } else if (series.series.query.name === 'new.oso.other.oa_percentage') { + + const otherIndicator: Indicator = new Indicator(); + otherIndicator.percentage = Number(series.series.result[0].row[0]); + otherIndicator.oa = Number(series.series.result[0].row[1]); + otherIndicator.total = Number(series.series.result[0].row[2]); + europeData.other = otherIndicator; + } else if (series.series.query.name === 'new.oso.repositories.doar_re3data.validated') { const repositoriesIndicator: Indicator = new Indicator(); @@ -322,6 +421,262 @@ export class DataHandlerService { return tableData; } + public convertRawDataToPercentageTableData(rawData: RawData) { + + const mapTableData: Map = new Map(); + + for (const series of rawData.datasets) { + + if (series.series.query.name.includes('new.oso.results') + && series.series.query.parameters && series.series.query.parameters[0] === 'publication') { + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + if (rowResult.row[0] !== 'NaN') { + countryTableData.publications = Number(rowResult.row[0]); + } + } else { + const countryTableData: CountryTableData = new CountryTableData(); + if (rowResult.row[0] !== 'NaN') { + countryTableData.publications = Number(rowResult.row[0]); + } + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + + } else if (series.series.query.name.includes('new.oso.results') + && series.series.query.parameters && series.series.query.parameters[0] === 'dataset') { + + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + if (rowResult.row[0] !== 'NaN') { + countryTableData.datasets = Number(rowResult.row[0]); + } + } else { + const countryTableData: CountryTableData = new CountryTableData(); + if (rowResult.row[0] !== 'NaN') { + countryTableData.datasets = Number(rowResult.row[0]); + } + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + } else if (series.series.query.name.includes('new.oso.results') + && series.series.query.parameters && series.series.query.parameters[0] === 'software') { + + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + if (rowResult.row[0] !== 'NaN') { + countryTableData.software = Number(rowResult.row[0]); + } + } else { + const countryTableData: CountryTableData = new CountryTableData(); + if (rowResult.row[0] !== 'NaN') { + countryTableData.software = Number(rowResult.row[0]); + } + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + } else if (series.series.query.name.includes('new.oso.results') + && series.series.query.parameters && series.series.query.parameters[0] === 'other') { + + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + if (rowResult.row[0] !== 'NaN') { + countryTableData.other = Number(rowResult.row[0]); + } + } else { + const countryTableData: CountryTableData = new CountryTableData(); + if (rowResult.row[0] !== 'NaN') { + countryTableData.other = Number(rowResult.row[0]); + } + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + } else if (series.series.query.name.includes('new.oso.repositories')) { + + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + countryTableData.repositories = Number(rowResult.row[0]); + } else { + const countryTableData: CountryTableData = new CountryTableData(); + countryTableData.repositories = Number(rowResult.row[0]); + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + } else if (series.series.query.name.includes('new.oso.journals')) { + + for (const rowResult of series.series.result) { + + // remove unwanted countries + if (this.isCountryToBeRemoved(rowResult.row[4])) { + continue; + } + + if (mapTableData.has(rowResult.row[4])) { + const countryTableData = mapTableData.get(rowResult.row[4]); + countryTableData.journals = Number(rowResult.row[0]); + } else { + const countryTableData: CountryTableData = new CountryTableData(); + countryTableData.journals = Number(rowResult.row[0]); + countryTableData.name = rowResult.row[3]; + countryTableData.code = rowResult.row[4]; + mapTableData.set(rowResult.row[4], countryTableData); + } + } + } + } + + const tableData: CountryTableData[] = []; + + mapTableData.forEach((value: CountryTableData, key: string) => { + // console.log(key, value); + tableData.push(value); + }); + + return tableData; + } + + public convertRawDataToCountryPageOverviewData(rawData: RawData) { + + const countryPageOverviewData: CountryPageOverviewData = new CountryPageOverviewData(); + + for (const series of rawData.datasets) { + + if ((series.series.query.name === 'new.oso.results.oa_percentage.country') + && series.series.query.parameters && series.series.query.parameters[0] === 'publication') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const publicationsAffiliatedIndicator: Indicator = new Indicator(); + publicationsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]); + publicationsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]); + publicationsAffiliatedIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.publicationsAffiliated = publicationsAffiliatedIndicator; + + } else if ((series.series.query.name === 'new.oso.results.oa_percentage.deposited.country') + && series.series.query.parameters && series.series.query.parameters[0] === 'publication') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const publicationsDepositedIndicator: Indicator = new Indicator(); + publicationsDepositedIndicator.percentage = Number(series.series.result[0].row[0]); + publicationsDepositedIndicator.oa = Number(series.series.result[0].row[1]); + publicationsDepositedIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.publicationsDeposited = publicationsDepositedIndicator; + + } if ((series.series.query.name === 'new.oso.results.oa_percentage.country') + && series.series.query.parameters && series.series.query.parameters[0] === 'dataset') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const datasetsAffiliatedIndicator: Indicator = new Indicator(); + datasetsAffiliatedIndicator.percentage = Number(series.series.result[0].row[0]); + datasetsAffiliatedIndicator.oa = Number(series.series.result[0].row[1]); + datasetsAffiliatedIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.datasetsAffiliated = datasetsAffiliatedIndicator; + + } else if ((series.series.query.name === 'new.oso.results.oa_percentage.deposited.country') + && series.series.query.parameters && series.series.query.parameters[0] === 'dataset') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const datasetsDepositedIndicator: Indicator = new Indicator(); + datasetsDepositedIndicator.percentage = Number(series.series.result[0].row[0]); + datasetsDepositedIndicator.oa = Number(series.series.result[0].row[1]); + datasetsDepositedIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.datasetsDeposited = datasetsDepositedIndicator; + + } else if (series.series.query.name === 'new.oso.repositories.doar_re3data.validated.country') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const repositoriesIndicator: Indicator = new Indicator(); + repositoriesIndicator.percentage = Number(series.series.result[0].row[0]); + repositoriesIndicator.oa = Number(series.series.result[0].row[1]); + repositoriesIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.repositories = repositoriesIndicator; + + } else if (series.series.query.name === 'new.oso.journals.doaj.validated.country') { + + countryPageOverviewData.name = series.series.result[0].row[3]; + countryPageOverviewData.code = series.series.result[0].row[4]; + + const journalsIndicator: Indicator = new Indicator(); + journalsIndicator.percentage = Number(series.series.result[0].row[0]); + journalsIndicator.oa = Number(series.series.result[0].row[1]); + journalsIndicator.total = Number(series.series.result[0].row[2]); + countryPageOverviewData.journals = journalsIndicator; + + } else if (series.series.query.name === 'new.oso.oa_policies.country') { + + countryPageOverviewData.policies = Number(series.series.result[0].row[0]); + + } else if (series.series.query.name === 'new.oso.funder.country') { + + countryPageOverviewData.funders = Number(series.series.result[0].row[0]); + + } else if (series.series.query.name === 'new.oso.funding_organizations.country') { + + countryPageOverviewData.fundingOrganizations = Number(series.series.result[0].row[0]); + + } else if (series.series.query.name === 'new.oso.ec_funded_organizations.country') { + + countryPageOverviewData.ec_fundedOrganizations = Number(series.series.result[0].row[0]); + } + } + + return countryPageOverviewData; + } + private rawResultToCountryMapData(result: Row[]) { const entityMapData: CountryMapData[] = []; diff --git a/src/app/services/data.service.ts b/src/app/services/data.service.ts index 7780e4ed6..b74558344 100644 --- a/src/app/services/data.service.ts +++ b/src/app/services/data.service.ts @@ -21,7 +21,7 @@ export class DataService { } public getOverviewMapData(): Observable { - const mapDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.publications.affiliated%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.publications.deposited%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.datasets.affiliated%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.datasets.deposited%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.oa_policies%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; + const mapDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.publications.affiliated%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.publications.deposited%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.datasets.affiliated%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.datasets.deposited%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.oa_policies%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; return this.httpClient.get(this.apiURL + mapDataQuery, headerOptions); } @@ -52,17 +52,31 @@ export class DataService { public getOverviewTablePercentageData(content: string): Observable { let overviewTablePercentageDataQuery = ''; if (content === 'affiliated') { - overviewTablePercentageDataQuery = ''; + overviewTablePercentageDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.bycountry%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.bycountry%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.bycountry%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.bycountry%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data.validated.bycountry%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj.validated.bycountry%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; } else if (content === 'affiliated_peer_reviewed') { - overviewTablePercentageDataQuery = ''; + overviewTablePercentageDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.affiliated.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data.validated.bycountry%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj.validated.bycountry%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; } else if (content === 'deposited') { - overviewTablePercentageDataQuery = ''; + overviewTablePercentageDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.bycountry%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.bycountry%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.bycountry%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.bycountry%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data.validated.bycountry%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj.validated.bycountry%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; } else if (content === 'deposited_peer_reviewed') { - overviewTablePercentageDataQuery = ''; + overviewTablePercentageDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.peer_reviewed.bycountry%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data.validated.bycountry%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj.validated.bycountry%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; } return this.httpClient.get(this.apiURL + overviewTablePercentageDataQuery, headerOptions); } + public getEuropeOAPercentages(): Observable { + const europeOAPercentagesQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.publications.oa_percentage%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.datasets.oa_percentage%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.software.oa_percentage%22%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.other.oa_percentage%22%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; + return this.httpClient.get(this.apiURL + europeOAPercentagesQuery, headerOptions); + } + + public getCountryPageOverviewData(countryCode: string): Observable { + const countryPageOverviewDataQuery = '%7B%22series%22%3A%5B%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.country%22%2C%20%22parameters%22%3A%5B%22publication%22%2C%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.country%22%2C%20%22parameters%22%3A%5B%22publication%22%2C%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.country%22%2C%20%22parameters%22%3A%5B%22dataset%22%2C%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.results.oa_percentage.deposited.country%22%2C%20%22parameters%22%3A%5B%22dataset%22%2C%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.repositories.doar_re3data.validated.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.journals.doaj.validated.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.oa_policies.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.funder.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.funding_organizations.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%2C%7B%22query%22%3A%7B%22name%22%3A%22new.oso.ec_funded_organizations.country%22%2C%20%22parameters%22%3A%5B%22DE%22%5D%7D%7D%5D%2C%22verbose%22%3Atrue%7D'; + return this.httpClient.get(this.apiURL + countryPageOverviewDataQuery, headerOptions); + } + + + + + public getOverviewData(): Observable { return this.httpClient.get(this._jsonURl, headerOptions); } diff --git a/src/assets/css/os-observatory-custom.css b/src/assets/css/os-observatory-custom.css index 55a17331e..5442e7757 100644 --- a/src/assets/css/os-observatory-custom.css +++ b/src/assets/css/os-observatory-custom.css @@ -736,3 +736,102 @@ div.indicator span { align-items: center; } /**************************/ + +.lastUpdateInfo { + opacity: 0.4; + color: #000; + letter-spacing: 0px; +} + +.entitiesContainer { + height: 300px; + display: flex; + align-items: flex-end; +} + +.publicationsColumn { + background-color: #f181ae; + box-shadow: 3px 3px 6px #00000029; + opacity: 1; + z-index: 10; +} + +.publicationsDot { + background-color: #f181ae; + width: 50px; + height: 33px; + border-radius: 50%; +} + +.datasetsColumn { + background-color: #ae91d6; + box-shadow: 3px 3px 6px #00000029; + opacity: 1; + z-index: 8; +} + +.datasetsDot { + background-color: #ae91d6; + width: 50px; + height: 33px; + border-radius: 50%; +} + +.softwareColumn { + background-color: #8f1043; + box-shadow: 3px 3px 6px #00000029; + opacity: 1; + z-index: 6; +} + +.softwareDot { + background-color: #8f1043; + width: 50px; + height: 33px; + border-radius: 50%; +} + +.otherColumn { + background-color: #00a1c2; + box-shadow: 3px 3px 6px #00000029; + opacity: 1; + z-index: 4; +} + +.otherDot { + background-color: #00a1c2; + width: 50px; + height: 33px; + border-radius: 50%; +} + +.entityColumnContent { + color: #fff; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + text-align: center; +} + +hr.entitiesDivider { + border: 2px solid #B4B4B4; + margin-left: -90px; + margin-right: -50px; + margin-top: 0px; +} + +.entityLegendContent { + display: flex; + padding-right: 40px; + +} + + + + +.countryPageHeader { + display: flex; + justify-content: space-between; +} diff --git a/src/assets/img/icons/datasets-icon-white.svg b/src/assets/img/icons/datasets-icon-white.svg new file mode 100644 index 000000000..e310dec9c --- /dev/null +++ b/src/assets/img/icons/datasets-icon-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/icons/other-icon-white.svg b/src/assets/img/icons/other-icon-white.svg new file mode 100644 index 000000000..005592699 --- /dev/null +++ b/src/assets/img/icons/other-icon-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/icons/publications-icon-white.svg b/src/assets/img/icons/publications-icon-white.svg new file mode 100644 index 000000000..73270d915 --- /dev/null +++ b/src/assets/img/icons/publications-icon-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/img/icons/software-icon-white.svg b/src/assets/img/icons/software-icon-white.svg new file mode 100644 index 000000000..e7797c865 --- /dev/null +++ b/src/assets/img/icons/software-icon-white.svg @@ -0,0 +1,9 @@ + + + + + + + + +