diff --git a/src/core/chartOptions/chartOptions.ts b/src/core/chartOptions/chartOptions.ts
index ec8bf13..7c81414 100644
--- a/src/core/chartOptions/chartOptions.ts
+++ b/src/core/chartOptions/chartOptions.ts
@@ -12,39 +12,13 @@ export const commonChartOptions = (view: View, locale: string, options?: IChartO
const sourceText = Translations.source[locale];
let creditsText = `${sourceText}: ${view.sources.map(s => s[locale]).join(', ')}`;
- let creditsConfig: any = {
- enabled: true,
- text: creditsText
- };
-
const hasLastUpdated = options?.showLastUpdated && view.lastUpdated;
if (hasLastUpdated) {
const lastUpdatedText = getFormattedLastUpdatedText(view.lastUpdated, locale);
if (lastUpdatedText) {
creditsText = `${lastUpdatedText}
${sourceText}: ${view.sources.map(s => s[locale]).join(', ')}`;
- creditsConfig = {
- enabled: true,
- text: creditsText,
- useHTML: true,
- position: {
- x: 5,
- y: -30 // More space needed for two-line credits
- }
- };
}
- } else {
- // Single line credits, less spacing needed
- creditsConfig = {
- enabled: true,
- text: creditsText,
- position: {
- align: 'left',
- verticalAlign: 'bottom',
- x: 5,
- y: -10 // Less space needed for single line
- }
- };
}
return {
@@ -58,7 +32,8 @@ export const commonChartOptions = (view: View, locale: string, options?: IChartO
},
title: { text: showTitles ? view.header[locale] : undefined },
subtitle: { text: view.subheaderValues.map(sv => sv[locale]).join(' | ') },
- credits: creditsConfig,
+ credits: { enabled: false },
+ caption: { text: creditsText },
tooltip: {
formatter: getToolTipFormatterFunction(view, locale)
},
diff --git a/src/core/conversion/pxGrafDataConverter.test.ts b/src/core/conversion/pxGrafDataConverter.test.ts
index a3db30b..cbef156 100644
--- a/src/core/conversion/pxGrafDataConverter.test.ts
+++ b/src/core/conversion/pxGrafDataConverter.test.ts
@@ -207,7 +207,7 @@ describe('PxGrafDataConverter tests, VerticalBarChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('column');
expect(result.title?.text).toBe('Lukumäärä 2015Q1 muuttujina Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('2015Q1 | Pääkaupunkiseutu (PKS) | Vapaarahoitteinen');
});
@@ -217,7 +217,7 @@ describe('PxGrafDataConverter tests, VerticalBarChart', () => {
const result = convertPxGraphDataToChartOptions('sv', mockView);
expect(result.chart?.type).toBe('column');
expect(result.title?.text).toBe('Antal 2015Q1 efter Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('2015Q1 | Huvudstadsregionen | Fri finansierad');
});
});
@@ -229,7 +229,7 @@ describe('PxGrafDataConverter tests, BasicHorizontalBarChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('bar');
expect(result.title?.text).toBe('Tiedot 2022Q4 muuttujina Tiedot, Alue, Huoneluku');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Yksiöt | Lukumäärä');
});
@@ -239,7 +239,7 @@ describe('PxGrafDataConverter tests, BasicHorizontalBarChart', () => {
const result = convertPxGraphDataToChartOptions('en', mockView);
expect(result.chart?.type).toBe('bar');
expect(result.title?.text).toBe('Information 2022Q4 by Information, Region, Number of rooms');
- expect(result.credits?.text).toBe('Source: PxVisualizer-en');
+ expect(result.caption?.text).toBe('Source: PxVisualizer-en');
expect(result.subtitle?.text).toBe('One-room flat | Number');
});
});
@@ -251,7 +251,7 @@ describe('PxGrafDataConverter tests, GroupHorizontalBarChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('bar');
expect(result.title?.text).toBe('Tiedot 2015Q1-2015Q2 muuttujina Tiedot, Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Pääkaupunkiseutu (PKS) | Yksiöt | Lukumäärä');
});
@@ -261,7 +261,7 @@ describe('PxGrafDataConverter tests, GroupHorizontalBarChart', () => {
const result = convertPxGraphDataToChartOptions('en', mockView);
expect(result.chart?.type).toBe('bar');
expect(result.title?.text).toBe('Information 2015Q1-2015Q2 by Information, Region, Number of rooms, Type of funding');
- expect(result.credits?.text).toBe('Source: PxVisualizer-en');
+ expect(result.caption?.text).toBe('Source: PxVisualizer-en');
expect(result.subtitle?.text).toBe('Greater Helsinki | One-room flat | Number');
});
});
@@ -273,7 +273,7 @@ describe('PxGrafDataConverter tests, PieBarChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('pie');
expect(result.title?.text).toBe('Lukumäärä, Yksiöt 2022Q4 muuttujana Alue');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('');
});
@@ -283,7 +283,7 @@ describe('PxGrafDataConverter tests, PieBarChart', () => {
const result = convertPxGraphDataToChartOptions('en', mockView);
expect(result.chart?.type).toBe('pie');
expect(result.title?.text).toBe('Number, One-room flat 2022Q4 by Region');
- expect(result.credits?.text).toBe('Source: PxVisualizer-en');
+ expect(result.caption?.text).toBe('Source: PxVisualizer-en');
expect(result.subtitle?.text).toBe('');
});
});
@@ -295,7 +295,7 @@ describe('PxGrafDataConverter tests, GroupVerticalBarChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('column');
expect(result.title?.text).toBe('Tiedot 2015Q1-2015Q2 muuttujina Tiedot, Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Pääkaupunkiseutu (PKS) | Yksiöt | Lukumäärä');
});
@@ -305,7 +305,7 @@ describe('PxGrafDataConverter tests, GroupVerticalBarChart', () => {
const result = convertPxGraphDataToChartOptions('sv', mockView);
expect(result.chart?.type).toBe('column');
expect(result.title?.text).toBe('Uppgifter 2015Q1-2015Q2 efter Uppgifter, Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('Huvudstadsregionen | Enrumslägenhet | Antal');
});
});
@@ -318,7 +318,7 @@ describe('PxGrafDataConverter tests, StackedVerticalBarChart', () => {
expect(result.chart?.type).toBe('column');
expect(result.plotOptions?.column?.stacking).toBe('normal');
expect(result.title?.text).toBe('Tiedot 2015Q1-2015Q2 muuttujina Tiedot, Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Pääkaupunkiseutu (PKS) | Yksiöt | Lukumäärä');
});
@@ -329,7 +329,7 @@ describe('PxGrafDataConverter tests, StackedVerticalBarChart', () => {
expect(result.chart?.type).toBe('column');
expect(result.plotOptions?.column?.stacking).toBe('normal');
expect(result.title?.text).toBe('Uppgifter 2015Q1-2015Q2 efter Uppgifter, Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('Huvudstadsregionen | Enrumslägenhet | Antal');
});
});
@@ -342,7 +342,7 @@ describe('PxGrafDataConverter tests, StackedHorizontalBarChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.bar?.stacking).toBe('normal');
expect(result.title?.text).toBe('Tiedot 2015Q1 muuttujina Tiedot, Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('2015Q1 | Pääkaupunkiseutu (PKS) | Yksiöt');
});
@@ -353,7 +353,7 @@ describe('PxGrafDataConverter tests, StackedHorizontalBarChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.bar?.stacking).toBe('normal');
expect(result.title?.text).toBe('Uppgifter 2015Q1 efter Uppgifter, Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('2015Q1 | Huvudstadsregionen | Enrumslägenhet');
});
});
@@ -371,7 +371,7 @@ describe('PxGrafDataConverter tests, PercentVerticalBarChart', () => {
expect(result.chart?.type).toBe('column');
expect(result.plotOptions?.column?.stacking).toBe('percent');
expect(result.title?.text).toBe('Lukumäärä 2021Q4 muuttujina Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('2022Q1 | Yksiöt');
});
@@ -387,7 +387,7 @@ describe('PxGrafDataConverter tests, PercentVerticalBarChart', () => {
expect(result.chart?.type).toBe('column');
expect(result.plotOptions?.column?.stacking).toBe('percent');
expect(result.title?.text).toBe('Antal 2021Q4 efter Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('2022Q1 | Enrumslägenhet');
});
});
@@ -405,7 +405,7 @@ describe('PxGrafDataConverter tests, PercentHorizontalBarChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.bar?.stacking).toBe('percent');
expect(result.title?.text).toBe('Lukumäärä 2022Q4 muuttujina Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Kaksiot');
});
@@ -421,7 +421,7 @@ describe('PxGrafDataConverter tests, PercentHorizontalBarChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.bar?.stacking).toBe('percent');
expect(result.title?.text).toBe('Antal 2022Q4 efter Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('Tvårumslägenhet');
});
});
@@ -434,7 +434,7 @@ describe('PxGrafDataConverter tests, PyramidChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.series?.stacking).toBe('normal');
expect(result.title?.text).toBe('Väestö 31.12. 2020 muuttujina Alue, Ikä, Sukupuoli');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('KOKO MAA | 2020');
});
@@ -445,7 +445,7 @@ describe('PxGrafDataConverter tests, PyramidChart', () => {
expect(result.chart?.type).toBe('bar');
expect(result.plotOptions?.series?.stacking).toBe('normal');
expect(result.title?.text).toBe('Befolkning 31.12. 2020 efter Område, Ålder, Kön');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('HELA LANDET | 2020');
});
});
@@ -457,7 +457,7 @@ describe('PxGrafDataConverter tests, ScatterPlot', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('scatter');
expect(result.title?.text).toBe('Tiedot 2015Q1-2022Q4 muuttujina Tiedot, Alue, Huoneluku, Rahoitusmuoto');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('Pääkaupunkiseutu (PKS) | Yksiöt | Vapaarahoitteinen');
});
@@ -467,7 +467,7 @@ describe('PxGrafDataConverter tests, ScatterPlot', () => {
const result = convertPxGraphDataToChartOptions('sv', mockView);
expect(result.chart?.type).toBe('scatter');
expect(result.title?.text).toBe('Uppgifter 2015Q1-2022Q4 efter Uppgifter, Område, Antal rum, Finansieringssätt');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('Huvudstadsregionen | Enrumslägenhet | Fri finansierad');
});
});
@@ -479,7 +479,7 @@ describe('PxGrafDataConverter tests, LineChart', () => {
const result = convertPxGraphDataToChartOptions('fi', mockView);
expect(result.chart?.type).toBe('line');
expect(result.title?.text).toBe('Neliövuokra (eur/m2), Yksiöt, Vapaarahoitteinen 2015Q1-2022Q4 muuttujana Alue');
- expect(result.credits?.text).toBe('Lähde: PxVisualizer-fi');
+ expect(result.caption?.text).toBe('Lähde: PxVisualizer-fi');
expect(result.subtitle?.text).toBe('');
});
@@ -489,7 +489,7 @@ describe('PxGrafDataConverter tests, LineChart', () => {
const result = convertPxGraphDataToChartOptions('sv', mockView);
expect(result.chart?.type).toBe('line');
expect(result.title?.text).toBe('Kvadratmeterspris (eur/m2), Enrumslägenhet, Fri finansierad 2015Q1-2022Q4 efter Område');
- expect(result.credits?.text).toBe('Källa: PxVisualizer-sv');
+ expect(result.caption?.text).toBe('Källa: PxVisualizer-sv');
expect(result.subtitle?.text).toBe('');
});
});
\ No newline at end of file
diff --git a/src/core/highcharts/themes.ts b/src/core/highcharts/themes.ts
index 56aa077..846c768 100644
--- a/src/core/highcharts/themes.ts
+++ b/src/core/highcharts/themes.ts
@@ -42,6 +42,7 @@ export const defaultTheme: (locale: string, fontFamily?: string) => Highcharts.O
accessibility: {
thousandsSep: Translations.thousandsSepAccessibility[locale],
credits: Translations.credits[locale],
+ caption: Translations.credits[locale],
chartTypes: {
barMultiple: Translations.barMultiple[locale],
barSingle: Translations.barSingle[locale],
@@ -154,7 +155,7 @@ export const defaultTheme: (locale: string, fontFamily?: string) => Highcharts.O
},
align: 'left',
},
- credits: {
+ caption: {
position: {
align: "left",
x: 5
diff --git a/src/core/tables/__snapshots__/htmlTable.test.ts.snap b/src/core/tables/__snapshots__/htmlTable.test.ts.snap
index 1bf7786..0bb1359 100644
--- a/src/core/tables/__snapshots__/htmlTable.test.ts.snap
+++ b/src/core/tables/__snapshots__/htmlTable.test.ts.snap
@@ -4,14 +4,16 @@ exports[`Html table render tests should match snapshot: Table with column variab
"[36m
[39m + [0mAdoptiot 1987-1989 muuttujina Syntymävaltio, Ikä[0m + [36m
[39m [36m| [39m
+ [36m [39m
+ [0mNeliöhinta (EUR/m2), Helsinki 2020Q1-2023Q2* muuttujina Talotyyppi, Huoneluku[0m
+ [36m
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|