{
const ALL_CLUSTERS = 'all-clusters'
const CLUSTER_1_KEY = '1'
const CLUSTER_CHART_INFO = {
'1': {
name: 'HR-LC',
color: '#1A73E8'
},
'2': {
name: 'HR-HC',
color: '#1A73E9'
},
'3': {
name: 'LR-HC',
color: '#1A73E5'
},
'4': {
name: 'LR-LC',
color: '#1A73E2'
},
}
const getSeriesAndData = (cluster, data) => {
return {
color: CLUSTER_CHART_INFO[cluster].color,
seriesInfo: {
name: CLUSTER_CHART_INFO[cluster].name,
data: data[cluster].map(elem => Number(elem.value))
}
}
}
const getChartData = (selection, data) => {
if (selection === ALL_CLUSTERS) {
return {
colors: Object.keys(CLUSTER_CHART_INFO).map(clusterKey => getSeriesAndData(clusterKey, data).color),
series: Object.keys(CLUSTER_CHART_INFO).map(clusterKey => getSeriesAndData(clusterKey, data).seriesInfo),
}
} else {
const seriesAndData = getSeriesAndData(selection, data)
return {
colors: [seriesAndData.color],
series: [seriesAndData.seriesInfo]
}
}
}
const sorted_cluster_data = Object.fromEntries(Object.keys(cluster_data).map(clusterKey => {
const sortedSingleClusterData = cluster_data[clusterKey].map(elem => ({
...elem,
trueDate: moment(elem.date, 'DD/MM/yyyy').format('yyyy/MM/DD')
}))
.sort((a, b) => a.trueDate === b.trueDate
? 0
: a.trueDate > b.trueDate
? 1
: -1);
return [clusterKey, sortedSingleClusterData]
}))
return {
categories: sorted_cluster_data[CLUSTER_1_KEY].map(elem => moment(elem.date, 'DD/MM/yyyy').format('MMM yyyy')),
chartsData: getChartData(ALL_CLUSTERS, sorted_cluster_data)
}
}