diff --git a/package-lock.json b/package-lock.json index fd7de6331..8cf9342a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2968,6 +2968,14 @@ "safer-buffer": "^2.1.0" } }, + "echarts": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-4.8.0.tgz", + "integrity": "sha512-YwShpug8fWngj/RlgxDaYrLBoD+LsZUArrusjNPHpAF+is+gGe38xx4W848AwWMGoi745t3OXM52JedNrv+F6g==", + "requires": { + "zrender": "4.3.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6869,6 +6877,11 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "ngx-echarts": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ngx-echarts/-/ngx-echarts-5.0.0.tgz", + "integrity": "sha512-Ln+ex5PJJt+yztQIybTM2vf5JPHe36IrhdCNZL/FCYbIzHjnjXeK1ImCwh7GfpmlaT62B/3ZASBwouhsPOplRQ==" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -11217,6 +11230,11 @@ "version": "0.8.29", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" + }, + "zrender": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-4.3.1.tgz", + "integrity": "sha512-CeH2TpJeCdG0TAGYoPSAcFX2ogdug1K7LIn9UO/q9HWqQ54gWhrMAlDP9AwWYMUDhrPe4VeazQ4DW3msD96nUQ==" } } } diff --git a/package.json b/package.json index 7b87eca66..d27923a59 100644 --- a/package.json +++ b/package.json @@ -23,11 +23,13 @@ "@highcharts/map-collection": "^1.1.2", "core-js": "^2.5.4", "dom-to-image": "^2.6.0", + "echarts": "^4.8.0", "font-awesome": "^4.7.0", "highcharts": "^7.2.0", "highcharts-angular": "^2.4.0", "jquery": "^3.4.1", "jspdf": "^1.5.3", + "ngx-echarts": "^5.0.0", "proj4": "^2.5.0", "rxjs": "~6.3.3", "uikit": "^3.2.1", diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 269a1ddde..c4520ad0a 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -4,6 +4,7 @@ import { HomeComponent } from './pages/home/home.component'; import { CountriesMapOverviewComponent } from './pages/home/countries-map-overview.component'; import { CountryPageComponent } from './pages/countrypage/country-page.component'; import { MethodologyPageComponent } from './pages/methodology/methodology.component'; +import { ContinentOverviewComponent } from './pages/continentoverview/continent-overview.component'; const routes: Routes = [ { @@ -19,6 +20,10 @@ const routes: Routes = [ path: 'overview-map-embed', component: CountriesMapOverviewComponent }, + { + path: 'overview/:continentName', + component: ContinentOverviewComponent + }, { path: 'countryDashboard/:countryName', component: CountryPageComponent diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d338cc0e6..2b8097022 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -14,14 +14,22 @@ import { CountryPageComponent } from './pages/countrypage/country-page.component import { CountryMapComponent } from './pages/countrypage/country-map.component'; import { GaugeChartComponent } from './pages/home/gauge-chart.component'; import { MethodologyPageComponent } from './pages/methodology/methodology.component'; +import { ContinentOverviewComponent } from './pages/continentoverview/continent-overview.component'; +import { EuropeMapOverviewComponent } from './pages/home/europe-map-overview.component'; +import { DataHandlerService } from './services/data-handler.service'; + +import { NgxEchartsModule } from 'ngx-echarts'; +import * as echarts from 'echarts'; @NgModule({ declarations: [ AppComponent, HomeComponent, + ContinentOverviewComponent, CountriesTableComponent, DataViewComponent, CountriesMapOverviewComponent, + EuropeMapOverviewComponent, CountryPageComponent, CountryMapComponent, GaugeChartComponent, @@ -31,10 +39,14 @@ import { MethodologyPageComponent } from './pages/methodology/methodology.compon BrowserModule, AppRoutingModule, ReusableComponentsModule, + NgxEchartsModule.forRoot({ + echarts + }), HighchartsChartModule ], providers: [ - DataService + DataService, + DataHandlerService ], bootstrap: [AppComponent] }) diff --git a/src/app/domain/countries-lat-lon.ts b/src/app/domain/countries-lat-lon.ts new file mode 100644 index 000000000..c11674554 --- /dev/null +++ b/src/app/domain/countries-lat-lon.ts @@ -0,0 +1,243 @@ +export const latlong = new Map() + .set('AD', {latitude: 42.5, longitude: 1.5}) + .set('AE', {latitude: 24, longitude: 54}) + .set('AD', {latitude: 42.5, longitude: 1.5}) + .set('AE', {latitude: 24, longitude: 54}) + .set('AF', {latitude: 33, longitude: 65}) + .set('AG', {latitude: 17.05, longitude: -61.8}) + .set('AI', {latitude: 18.25, longitude: -63.1667}) + .set('AL', {latitude: 41, longitude: 20}) + .set('AM', {latitude: 40, longitude: 45}) + .set('AN', {latitude: 12.25, longitude: -68.75}) + .set('AO', {latitude: -12.5, longitude: 18.5}) + .set('AP', {latitude: 35, longitude: 105}) + .set('AQ', {latitude: -90, longitude: 0}) + .set('AR', {latitude: -34, longitude: -64}) + .set('AS', {latitude: -14.3333, longitude: -170}) + .set('AT', {latitude: 47.3333, longitude: 13.3333}) + .set('AU', {latitude: -27, longitude: 133}) + .set('AW', {latitude: 12.5, longitude: -69.9667}) + .set('AZ', {latitude: 40.5, longitude: 47.5}) + .set('BA', {latitude: 44, longitude: 18}) + .set('BB', {latitude: 13.1667, longitude: -59.5333}) + .set('BD', {latitude: 24, longitude: 90}) + .set('BE', {latitude: 50.8333, longitude: 4}) + .set('BF', {latitude: 13, longitude: -2}) + .set('BG', {latitude: 43, longitude: 25}) + .set('BH', {latitude: 26, longitude: 50.55}) + .set('BI', {latitude: -3.5, longitude: 30}) + .set('BJ', {latitude: 9.5, longitude: 2.25}) + .set('BM', {latitude: 32.3333, longitude: -64.75}) + .set('BN', {latitude: 4.5, longitude: 114.6667}) + .set('BO', {latitude: -17, longitude: -65}) + .set('BR', {latitude: -10, longitude: -55}) + .set('BS', {latitude: 24.25, longitude: -76}) + .set('BT', {latitude: 27.5, longitude: 90.5}) + .set('BV', {latitude: -54.4333, longitude: 3.4}) + .set('BW', {latitude: -22, longitude: 24}) + .set('BY', {latitude: 53, longitude: 28}) + .set('BZ', {latitude: 17.25, longitude: -88.75}) + .set('CA', {latitude: 54, longitude: -100}) + .set('CC', {latitude: -12.5, longitude: 96.8333}) + .set('CD', {latitude: 0, longitude: 25}) + .set('CF', {latitude: 7, longitude: 21}) + .set('CG', {latitude: -1, longitude: 15}) + .set('CH', {latitude: 47, longitude: 8}) + .set('CI', {latitude: 8, longitude: -5}) + .set('CK', {latitude: -21.2333, longitude: -159.7667}) + .set('CL', {latitude: -30, longitude: -71}) + .set('CM', {latitude: 6, longitude: 12}) + .set('CN', {latitude: 35, longitude: 105}) + .set('CO', {latitude: 4, longitude: -72}) + .set('CR', {latitude: 10, longitude: -84}) + .set('CU', {latitude: 21.5, longitude: -80}) + .set('CV', {latitude: 16, longitude: -24}) + .set('CX', {latitude: -10.5, longitude: 105.6667}) + .set('CY', {latitude: 35, longitude: 33}) + .set('CZ', {latitude: 49.75, longitude: 15.5}) + .set('DE', {latitude: 51, longitude: 9}) + .set('DJ', {latitude: 11.5, longitude: 43}) + .set('DK', {latitude: 56, longitude: 10}) + .set('DM', {latitude: 15.4167, longitude: -61.3333}) + .set('DO', {latitude: 19, longitude: -70.6667}) + .set('DZ', {latitude: 28, longitude: 3}) + .set('EC', {latitude: -2, longitude: -77.5}) + .set('EE', {latitude: 59, longitude: 26}) + .set('EG', {latitude: 27, longitude: 30}) + .set('EH', {latitude: 24.5, longitude: -13}) + .set('ER', {latitude: 15, longitude: 39}) + .set('ES', {latitude: 40, longitude: -4}) + .set('ET', {latitude: 8, longitude: 38}) + .set('EU', {latitude: 47, longitude: 8}) + .set('FI', {latitude: 62, longitude: 26}) + .set('FJ', {latitude: -18, longitude: 175}) + .set('FK', {latitude: -51.75, longitude: -59}) + .set('FM', {latitude: 6.9167, longitude: 158.25}) + .set('FO', {latitude: 62, longitude: -7}) + .set('FR', {latitude: 46, longitude: 2}) + .set('GA', {latitude: -1, longitude: 11.75}) + .set('GB', {latitude: 54, longitude: -2}) + .set('GD', {latitude: 12.1167, longitude: -61.6667}) + .set('GE', {latitude: 42, longitude: 43.5}) + .set('GF', {latitude: 4, longitude: -53}) + .set('GH', {latitude: 8, longitude: -2}) + .set('GI', {latitude: 36.1833, longitude: -5.3667}) + .set('GL', {latitude: 72, longitude: -40}) + .set('GM', {latitude: 13.4667, longitude: -16.5667}) + .set('GN', {latitude: 11, longitude: -10}) + .set('GP', {latitude: 16.25, longitude: -61.5833}) + .set('GQ', {latitude: 2, longitude: 10}) + .set('GR', {latitude: 39, longitude: 22}) + .set('GS', {latitude: -54.5, longitude: -37}) + .set('GT', {latitude: 15.5, longitude: -90.25}) + .set('GU', {latitude: 13.4667, longitude: 144.7833}) + .set('GW', {latitude: 12, longitude: -15}) + .set('GY', {latitude: 5, longitude: -59}) + .set('HK', {latitude: 22.25, longitude: 114.1667}) + .set('HM', {latitude: -53.1, longitude: 72.5167}) + .set('HN', {latitude: 15, longitude: -86.5}) + .set('HR', {latitude: 45.1667, longitude: 15.5}) + .set('HT', {latitude: 19, longitude: -72.4167}) + .set('HU', {latitude: 47, longitude: 20}) + .set('ID', {latitude: -5, longitude: 120}) + .set('IE', {latitude: 53, longitude: -8}) + .set('IL', {latitude: 31.5, longitude: 34.75}) + .set('IN', {latitude: 20, longitude: 77}) + .set('IO', {latitude: -6, longitude: 71.5}) + .set('IQ', {latitude: 33, longitude: 44}) + .set('IR', {latitude: 32, longitude: 53}) + .set('IS', {latitude: 65, longitude: -18}) + .set('IT', {latitude: 42.8333, longitude: 12.8333}) + .set('JM', {latitude: 18.25, longitude: -77.5}) + .set('JO', {latitude: 31, longitude: 36}) + .set('JP', {latitude: 36, longitude: 138}) + .set('KE', {latitude: 1, longitude: 38}) + .set('KG', {latitude: 41, longitude: 75}) + .set('KH', {latitude: 13, longitude: 105}) + .set('KI', {latitude: 1.4167, longitude: 173}) + .set('KM', {latitude: -12.1667, longitude: 44.25}) + .set('KN', {latitude: 17.3333, longitude: -62.75}) + .set('KP', {latitude: 40, longitude: 127}) + .set('KR', {latitude: 37, longitude: 127.5}) + .set('KW', {latitude: 29.3375, longitude: 47.6581}) + .set('KY', {latitude: 19.5, longitude: -80.5}) + .set('KZ', {latitude: 48, longitude: 68}) + .set('LA', {latitude: 18, longitude: 105}) + .set('LB', {latitude: 33.8333, longitude: 35.8333}) + .set('LC', {latitude: 13.8833, longitude: -61.1333}) + .set('LI', {latitude: 47.1667, longitude: 9.5333}) + .set('LK', {latitude: 7, longitude: 81}) + .set('LR', {latitude: 6.5, longitude: -9.5}) + .set('LS', {latitude: -29.5, longitude: 28.5}) + .set('LT', {latitude: 55, longitude: 24}) + .set('LU', {latitude: 49.75, longitude: 6}) + .set('LV', {latitude: 57, longitude: 25}) + .set('LY', {latitude: 25, longitude: 17}) + .set('MA', {latitude: 32, longitude: -5}) + .set('MC', {latitude: 43.7333, longitude: 7.4}) + .set('MD', {latitude: 47, longitude: 29}) + .set('ME', {latitude: 42.5, longitude: 19.4}) + .set('MG', {latitude: -20, longitude: 47}) + .set('MH', {latitude: 9, longitude: 168}) + .set('MK', {latitude: 41.8333, longitude: 22}) + .set('ML', {latitude: 17, longitude: -4}) + .set('MM', {latitude: 22, longitude: 98}) + .set('MN', {latitude: 46, longitude: 105}) + .set('MO', {latitude: 22.1667, longitude: 113.55}) + .set('MP', {latitude: 15.2, longitude: 145.75}) + .set('MQ', {latitude: 14.6667, longitude: -61}) + .set('MR', {latitude: 20, longitude: -12}) + .set('MS', {latitude: 16.75, longitude: -62.2}) + .set('MT', {latitude: 35.8333, longitude: 14.5833}) + .set('MU', {latitude: -20.2833, longitude: 57.55}) + .set('MV', {latitude: 3.25, longitude: 73}) + .set('MW', {latitude: -13.5, longitude: 34}) + .set('MX', {latitude: 23, longitude: -102}) + .set('MY', {latitude: 2.5, longitude: 112.5}) + .set('MZ', {latitude: -18.25, longitude: 35}) + .set('NA', {latitude: -22, longitude: 17}) + .set('NC', {latitude: -21.5, longitude: 165.5}) + .set('NE', {latitude: 16, longitude: 8}) + .set('NF', {latitude: -29.0333, longitude: 167.95}) + .set('NG', {latitude: 10, longitude: 8}) + .set('NI', {latitude: 13, longitude: -85}) + .set('NL', {latitude: 52.5, longitude: 5.75}) + .set('NO', {latitude: 62, longitude: 10}) + .set('NP', {latitude: 28, longitude: 84}) + .set('NR', {latitude: -0.5333, longitude: 166.9167}) + .set('NU', {latitude: -19.0333, longitude: -169.8667}) + .set('NZ', {latitude: -41, longitude: 174}) + .set('OM', {latitude: 21, longitude: 57}) + .set('PA', {latitude: 9, longitude: -80}) + .set('PE', {latitude: -10, longitude: -76}) + .set('PF', {latitude: -15, longitude: -140}) + .set('PG', {latitude: -6, longitude: 147}) + .set('PH', {latitude: 13, longitude: 122}) + .set('PK', {latitude: 30, longitude: 70}) + .set('PL', {latitude: 52, longitude: 20}) + .set('PM', {latitude: 46.8333, longitude: -56.3333}) + .set('PR', {latitude: 18.25, longitude: -66.5}) + .set('PS', {latitude: 32, longitude: 35.25}) + .set('PT', {latitude: 39.5, longitude: -8}) + .set('PW', {latitude: 7.5, longitude: 134.5}) + .set('PY', {latitude: -23, longitude: -58}) + .set('QA', {latitude: 25.5, longitude: 51.25}) + .set('RE', {latitude: -21.1, longitude: 55.6}) + .set('RO', {latitude: 46, longitude: 25}) + .set('RS', {latitude: 44, longitude: 21}) + .set('RU', {latitude: 60, longitude: 100}) + .set('RW', {latitude: -2, longitude: 30}) + .set('SA', {latitude: 25, longitude: 45}) + .set('SB', {latitude: -8, longitude: 159}) + .set('SC', {latitude: -4.5833, longitude: 55.6667}) + .set('SD', {latitude: 15, longitude: 30}) + .set('SE', {latitude: 62, longitude: 15}) + .set('SG', {latitude: 1.3667, longitude: 103.8}) + .set('SH', {latitude: -15.9333, longitude: -5.7}) + .set('SI', {latitude: 46, longitude: 15}) + .set('SJ', {latitude: 78, longitude: 20}) + .set('SK', {latitude: 48.6667, longitude: 19.5}) + .set('SL', {latitude: 8.5, longitude: -11.5}) + .set('SM', {latitude: 43.7667, longitude: 12.4167}) + .set('SN', {latitude: 14, longitude: -14}) + .set('SO', {latitude: 10, longitude: 49}) + .set('SR', {latitude: 4, longitude: -56}) + .set('ST', {latitude: 1, longitude: 7}) + .set('SV', {latitude: 13.8333, longitude: -88.9167}) + .set('SY', {latitude: 35, longitude: 38}) + .set('SZ', {latitude: -26.5, longitude: 31.5}) + .set('TC', {latitude: 21.75, longitude: -71.5833}) + .set('TD', {latitude: 15, longitude: 19}) + .set('TF', {latitude: -43, longitude: 67}) + .set('TG', {latitude: 8, longitude: 1.1667}) + .set('TH', {latitude: 15, longitude: 100}) + .set('TJ', {latitude: 39, longitude: 71}) + .set('TK', {latitude: -9, longitude: -172}) + .set('TM', {latitude: 40, longitude: 60}) + .set('TN', {latitude: 34, longitude: 9}) + .set('TO', {latitude: -20, longitude: -175}) + .set('TR', {latitude: 39, longitude: 35}) + .set('TT', {latitude: 11, longitude: -61}) + .set('TV', {latitude: -8, longitude: 178}) + .set('TW', {latitude: 23.5, longitude: 121}) + .set('TZ', {latitude: -6, longitude: 35}) + .set('UA', {latitude: 49, longitude: 32}) + .set('UG', {latitude: 1, longitude: 32}) + .set('UM', {latitude: 19.2833, longitude: 166.6}) + .set('US', {latitude: 38, longitude: -97}) + .set('UY', {latitude: -33, longitude: -56}) + .set('UZ', {latitude: 41, longitude: 64}) + .set('VA', {latitude: 41.9, longitude: 12.45}) + .set('VC', {latitude: 13.25, longitude: -61.2}) + .set('VE', {latitude: 8, longitude: -66}) + .set('VG', {latitude: 18.5, longitude: -64.5}) + .set('VI', {latitude: 18.3333, longitude: -64.8333}) + .set('VN', {latitude: 16, longitude: 106}) + .set('VU', {latitude: -16, longitude: 167}) + .set('WF', {latitude: -13.3, longitude: -176.2}) + .set('WS', {latitude: -13.5833, longitude: -172.3333}) + .set('YE', {latitude: 15, longitude: 48}) + .set('YT', {latitude: -12.8333, longitude: 45.1667}) + .set('ZA', {latitude: -29, longitude: 24}) + .set('ZM', {latitude: -15, longitude: 30}) + .set('ZW', {latitude: -20, longitude: 30}); diff --git a/src/app/domain/overview-map-data.ts b/src/app/domain/overview-map-data.ts new file mode 100644 index 000000000..dc32cc71d --- /dev/null +++ b/src/app/domain/overview-map-data.ts @@ -0,0 +1,59 @@ +import {Indicator} from './overview-data'; + +export class OverviewMapData { + publications: CountryMapData[]; + datasets: CountryMapData[]; + repositories: CountryMapData[]; + journals: CountryMapData[]; + policies: CountryMapData[]; +} + +export class CountryMapData { + code: string; + name: string; + value: number; +} + +export class JoinedMapData { + countryName: string; + countryCode: string; + affiliated: number; + deposited: number; +} + +export class SelectedCountry { + name: string; + code: string; +} + +export class CountryOverviewData { + name: string = null; + code: string = null; + publicationsAffiliated: number = null; + publicationsDeposited: number = null; + datasetsAffiliated: number = null; + datasetsDeposited: number = null; + repositories: number = null; + journals: number = null; + policies: number = null; +} + +export class EuropeData { + publications: Indicator; + datasets: Indicator; + repositories: Indicator; + journals: Indicator; + policies: Indicator; +} + +export class CountryTableData { + name: string = null; + code: string = null; + publications: number = null; + datasets: number = null; + software: number = null; + other: number = null; + repositories: number = null; + journals: number = null; + policies: number = null; +} diff --git a/src/app/domain/raw-data.ts b/src/app/domain/raw-data.ts new file mode 100644 index 000000000..f274a2b89 --- /dev/null +++ b/src/app/domain/raw-data.ts @@ -0,0 +1,27 @@ +export class RawData { + datasets: Series[]; +} + +export class Series { + series: SeriesItem; +} + +export class SeriesItem { + query: Query; + result: Row[]; +} + +export class Query { + name: string; + parameters: string; + filters: string; + select: string; + entity: string; + profile: string; + limit: number; + orderBy: string; +} + +export class Row { + row: string[]; +} diff --git a/src/app/pages/continentoverview/continent-overview.component.html b/src/app/pages/continentoverview/continent-overview.component.html new file mode 100644 index 000000000..1beba476f --- /dev/null +++ b/src/app/pages/continentoverview/continent-overview.component.html @@ -0,0 +1,66 @@ +
+
+ + + + +
+ +
+ +
+
+ + + + +
+
+ +
+ + +
    + +
  • +
    + + +
    +
  • + + + + + +
+
+ +
+
+ + diff --git a/src/app/pages/continentoverview/continent-overview.component.ts b/src/app/pages/continentoverview/continent-overview.component.ts new file mode 100644 index 000000000..3dff34b9f --- /dev/null +++ b/src/app/pages/continentoverview/continent-overview.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit } from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {DomSanitizer} from '@angular/platform-browser'; +import {DataService} from '../../services/data.service'; + +@Component({ + selector: 'app-continent-overview', + templateUrl: './continent-overview.component.html', +}) + +export class ContinentOverviewComponent implements OnInit { + + continentName: string; + + constructor(private dataService: DataService, + private route: ActivatedRoute, + private sanitizer: DomSanitizer) { } + + ngOnInit(): void { + this.continentName = this.route.snapshot.paramMap.get('continentName'); + } +} diff --git a/src/app/pages/countrypage/country-page.component.ts b/src/app/pages/countrypage/country-page.component.ts index fd213083f..70a12a479 100644 --- a/src/app/pages/countrypage/country-page.component.ts +++ b/src/app/pages/countrypage/country-page.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit, ViewEncapsulation } 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 { CountryOverview, OverviewData } from '../../domain/overview-data'; @Component({ selector: 'app-country-page', diff --git a/src/app/pages/home/countries-map-overview.component.ts b/src/app/pages/home/countries-map-overview.component.ts index 963679ecc..d3f873f5e 100644 --- a/src/app/pages/home/countries-map-overview.component.ts +++ b/src/app/pages/home/countries-map-overview.component.ts @@ -161,7 +161,7 @@ export class CountriesMapOverviewComponent implements OnInit { click: event => { if (event.target.hasOwnProperty('point')) { console.log(event.target['point']['name']); - // this.countrySelected(event.target['point']['name']); + // this.selectedCountry(event.target['point']['name']); } } } @@ -178,6 +178,7 @@ export class CountriesMapOverviewComponent implements OnInit { cursor: 'pointer', events: { click: event => { + console.log(event); this.countrySelected(event.point.name); } } diff --git a/src/app/pages/home/countries-table.component.html b/src/app/pages/home/countries-table.component.html index 4174cdf43..1e3ee9cc3 100644 --- a/src/app/pages/home/countries-table.component.html +++ b/src/app/pages/home/countries-table.component.html @@ -2,201 +2,106 @@ + + + Country - - - - OA repositories - - + + + + + OA repositories - - OA journals - - + + + + + OA journals - - OA policies - - + + + + + + + + + + + OA publications - - OA publications - - + + + + + OA data - - OA data - - + + + + + OA software - - OA software - - - - - OA other research products - - + + + + + OA other - - - {{countryOverview.country}} - - {{countryOverview.repositories.oa | number}} - -- - - - {{countryOverview.journals.oa | number}} - -- - - - {{countryOverview.policies.oa | number}} - -- - - - -- - - {{countryOverview.publications.percentage | number}}% - - - - - - - - - - - - - -- - - {{countryOverview.datasets.percentage | number}}% - - - - - - - - - - - - - -- - - {{countryOverview.software.percentage | number}}% - - - - - - - - - - - - - -- - - {{countryOverview.otherProducts.percentage | number}}% - - - - - - - - - - - - - - - - {{countryOverview.country}} - - {{countryOverview.repositories.oa | number}} - -- - - - {{countryOverview.journals.oa | number}} - -- - - - {{countryOverview.policies.oa | number}} - -- - - - -- - - {{countryOverview.publications.oa | number}} - - - - - - - - - - - - - -- - - {{countryOverview.datasets.oa | number}} - - - - - - - - - - - - - -- - - {{countryOverview.software.oa | number}} - - - - - - - - - - - - - -- - - {{countryOverview.otherProducts.oa | number}} - - - - - - - - - - - - - + + {{countryOverview.name}} + + -- + + {{countryOverview.repositories | number}}% + + + + -- + + {{countryOverview.journals | number}}% + + + + + + + + -- + + {{countryOverview.publications | number}}% + + + + + + + + + + + + -- + + {{countryOverview.datasets | number}}% + + + + -- + + {{countryOverview.software | number}}% + + + + -- + + {{countryOverview.other | number}}% + + + diff --git a/src/app/pages/home/countries-table.component.ts b/src/app/pages/home/countries-table.component.ts index db208366d..dbffdafaf 100644 --- a/src/app/pages/home/countries-table.component.ts +++ b/src/app/pages/home/countries-table.component.ts @@ -1,18 +1,15 @@ -import { Component, Input, OnChanges, ViewEncapsulation } from '@angular/core'; -import { CountryOverview } from '../../domain/overview-data'; +import { Component, Input, OnChanges } from '@angular/core'; +import { CountryTableData } from '../../domain/overview-map-data'; @Component({ selector: 'app-countries-table', templateUrl: './countries-table.component.html', - // styleUrls: ['./top-menu.component.css'], - encapsulation: ViewEncapsulation.None }) export class CountriesTableComponent implements OnChanges { @Input() isPercentage: boolean; - @Input() type: string; - @Input() countries: CountryOverview[]; + @Input() countries: CountryTableData[]; isSortedBy: string; isDescending: boolean = true; @@ -20,7 +17,7 @@ export class CountriesTableComponent implements OnChanges { constructor() {} ngOnChanges() { - this.countries.sort((a, b) => (a['country'] > b['country']) ? 1 : -1); + this.countries.sort((a, b) => (a['name'] > b['name']) ? 1 : -1); } sortBy(field: string) { @@ -34,24 +31,16 @@ export class CountriesTableComponent implements OnChanges { this.isSortedBy = field; if (field !== 'country') { - if (this.isPercentage) { - if (this.isDescending) { - this.countries.sort((a, b) => b[field].percentage - a[field].percentage); - } else { - this.countries.sort((a, b) => a[field].percentage - b[field].percentage); - } + if (this.isDescending) { + this.countries.sort((a, b) => b[field] - a[field]); } else { - if (this.isDescending) { - this.countries.sort((a, b) => b[field].oa - a[field].oa); - } else { - this.countries.sort((a, b) => a[field].oa - b[field].oa); - } + this.countries.sort((a, b) => a[field] - b[field]); } } else { if (this.isDescending) { - this.countries.sort((a, b) => (a[field] < b[field]) ? 1 : -1); + this.countries.sort((a, b) => (a['name'] < b['name']) ? 1 : -1); } else { - this.countries.sort((a, b) => (a[field] > b[field]) ? 1 : -1); + this.countries.sort((a, b) => (a['name'] > b['name']) ? 1 : -1); } } diff --git a/src/app/pages/home/data-view.component.html b/src/app/pages/home/data-view.component.html index 5c687f910..20d6c6d43 100644 --- a/src/app/pages/home/data-view.component.html +++ b/src/app/pages/home/data-view.component.html @@ -1,29 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - Print report in PDF - - Download report + +