1
|
import { Component, OnInit } from '@angular/core';
|
2
|
import { printPage } from '../../shared/reusablecomponents/print-function';
|
3
|
import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
|
4
|
import { DataService } from '../../services/data.service';
|
5
|
import { DataHandlerService } from '../../services/data-handler.service';
|
6
|
import {CountryTableData, EuropeData} from '../../domain/overview-map-data';
|
7
|
import {environment} from '../../../environments/environment';
|
8
|
import {TreemapHighchartsData} from '../../domain/treemap-highcharts-data';
|
9
|
|
10
|
@Component({
|
11
|
selector: 'app-data-view',
|
12
|
templateUrl: './data-view.component.html',
|
13
|
})
|
14
|
|
15
|
export class DataViewComponent implements OnInit {
|
16
|
|
17
|
// @Input() type: string;
|
18
|
// @Input() countries: CountryOverview[];
|
19
|
|
20
|
private chartsURL = environment.API_ENDPOINT + 'chart?json=';
|
21
|
|
22
|
activeView: string = 'absolute';
|
23
|
contentAbsoluteSelection: string = 'affiliated';
|
24
|
contentPercentageSelection: string = 'affiliated';
|
25
|
|
26
|
tableAbsoluteData: CountryTableData[];
|
27
|
tablePercentageData: CountryTableData[];
|
28
|
|
29
|
loadingAbsoluteTable: boolean = true;
|
30
|
loadingPercentageTable: boolean = true;
|
31
|
|
32
|
europeOverviewData: EuropeData;
|
33
|
|
34
|
oaNoaPublicationsTimelineURL: SafeResourceUrl;
|
35
|
oaNoaDatasetsTimelineURL: SafeResourceUrl;
|
36
|
oaNoaSoftwareTimelineURL: SafeResourceUrl;
|
37
|
oaNoaOtherTimelineURL: SafeResourceUrl;
|
38
|
|
39
|
fundersResultsData: TreemapHighchartsData[];
|
40
|
|
41
|
constructor(private sanitizer: DomSanitizer,
|
42
|
private dataService: DataService,
|
43
|
private dataHandlerService: DataHandlerService) {}
|
44
|
|
45
|
ngOnInit(): void {
|
46
|
this.getAbsoluteData();
|
47
|
this.getPercentageData();
|
48
|
this.getEuropeOverviewData();
|
49
|
this.getFundersResults();
|
50
|
}
|
51
|
|
52
|
getAbsoluteData() {
|
53
|
this.loadingAbsoluteTable = true;
|
54
|
this.dataService.getOverviewTableAbsoluteData(this.contentAbsoluteSelection).subscribe(
|
55
|
rawData => {
|
56
|
this.tableAbsoluteData = this.dataHandlerService.convertRawDataToAbsoluteTableData(rawData);
|
57
|
this.loadingAbsoluteTable = false;
|
58
|
}, error => {
|
59
|
console.log(error);
|
60
|
this.loadingAbsoluteTable = false;
|
61
|
}
|
62
|
);
|
63
|
}
|
64
|
|
65
|
getPercentageData() {
|
66
|
this.loadingPercentageTable = true;
|
67
|
this.dataService.getOverviewTablePercentageData(this.contentPercentageSelection).subscribe(
|
68
|
rawData => {
|
69
|
this.tablePercentageData = this.dataHandlerService.convertRawDataToPercentageTableData(rawData);
|
70
|
this.loadingPercentageTable = false;
|
71
|
}, error => {
|
72
|
console.log(error);
|
73
|
this.loadingPercentageTable = false;
|
74
|
}
|
75
|
);
|
76
|
}
|
77
|
|
78
|
getEuropeOverviewData() {
|
79
|
this.dataService.getEuropeOAPercentages().subscribe(
|
80
|
rawData => {
|
81
|
this.europeOverviewData = this.dataHandlerService.convertRawDataToEuropeOverviewData(rawData);
|
82
|
}, error => {
|
83
|
console.log(error);
|
84
|
}
|
85
|
);
|
86
|
}
|
87
|
|
88
|
getFundersResults() {
|
89
|
this.dataService.getFundersResults().subscribe(
|
90
|
rawData => {
|
91
|
this.fundersResultsData = this.dataHandlerService.convertRawDataToTreemapHighchartsData(rawData);
|
92
|
}, error => {
|
93
|
console.log(error);
|
94
|
}
|
95
|
);
|
96
|
}
|
97
|
|
98
|
getContentAbsolute(contentSelection: string): void {
|
99
|
this.contentAbsoluteSelection = contentSelection;
|
100
|
this.getAbsoluteData();
|
101
|
}
|
102
|
|
103
|
getContentPercentage(contentSelection: string): void {
|
104
|
this.contentPercentageSelection = contentSelection;
|
105
|
this.getPercentageData();
|
106
|
}
|
107
|
|
108
|
changeView(view: string) {
|
109
|
this.activeView = view;
|
110
|
if (view === 'graph') {
|
111
|
|
112
|
if (!this.oaNoaPublicationsTimelineURL) {
|
113
|
this.oaNoaPublicationsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22publication%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22publication%22%5D%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%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%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%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%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%3Afalse%7D%2C%22colors%22%3A%5B%22%23F181AE%22%2C%22%23787878%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`);
|
114
|
}
|
115
|
if (!this.oaNoaDatasetsTimelineURL) {
|
116
|
this.oaNoaDatasetsTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22dataset%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22dataset%22%5D%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%22Datasets%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%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%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%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%3Afalse%7D%2C%22colors%22%3A%5B%22%23A98BD4%22%2C%22%23787878%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`);
|
117
|
}
|
118
|
if (!this.oaNoaSoftwareTimelineURL) {
|
119
|
this.oaNoaSoftwareTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22software%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22software%22%5D%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%22Software%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%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%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%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%3Afalse%7D%2C%22colors%22%3A%5B%22%23C2155A%22%2C%22%23787878%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`);
|
120
|
}
|
121
|
if (!this.oaNoaOtherTimelineURL) {
|
122
|
this.oaNoaOtherTimelineURL = this.sanitizer.bypassSecurityTrustResourceUrl(this.chartsURL + `%7B%22library%22%3A%22HighCharts%22%2C%22chartDescription%22%3A%7B%22queries%22%3A%5B%7B%22name%22%3A%22OA%20Other%20Research%20Products%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.oa%22%2C%22parameters%22%3A%5B%22other%22%5D%7D%7D%2C%7B%22name%22%3A%22Non-OA%20Other%20Research%20Products%22%2C%22type%22%3A%22column%22%2C%22query%22%3A%7B%22name%22%3A%22new.oso.result_timeline.results.non_oa%22%2C%22parameters%22%3A%5B%22other%22%5D%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%22Other%20Research%20Products%22%2C%22align%22%3A%22left%22%2C%22margin%22%3A50%7D%2C%22subtitle%22%3A%7B%7D%2C%22yAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%22%7D%7D%2C%22xAxis%22%3A%7B%22title%22%3A%7B%22text%22%3A%22%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%3Atrue%7D%2C%22plotOptions%22%3A%7B%22series%22%3A%7B%22dataLabels%22%3A%7B%22enabled%22%3Afalse%7D%2C%22stacking%22%3A%22normal%22%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%3Afalse%7D%2C%22colors%22%3A%5B%22%2300CCCC%22%2C%22%23787878%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`);
|
123
|
}
|
124
|
}
|
125
|
}
|
126
|
|
127
|
printOverviewData(sectionID: string) {
|
128
|
printPage(sectionID);
|
129
|
}
|
130
|
}
|