diff --git a/.storybook/preview.ts b/.storybook/preview.ts
index 716b440..e4f4d1e 100644
--- a/.storybook/preview.ts
+++ b/.storybook/preview.ts
@@ -9,8 +9,19 @@ const preview: Preview = {
date: /Date$/,
},
},
+ viewport: {
+ viewports: {
+ website: {
+ name: 'Website',
+ styles: {
+ width: '766px',
+ height: '600px',
+ },
+ type: 'desktop',
+ },
+ },
+ },
},
-
tags: ['autodocs']
};
diff --git a/package.json b/package.json
index 78cc7fc..d0e7932 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@statisticsfinland/pxvisualizer",
- "version": "1.2.1",
+ "version": "1.2.2",
"description": "Component library for visualizing PxGraf data",
"main": "./dist/pxv.cjs",
"jestSonar": {
diff --git a/src/core/chartOptions/Utility/fixtures/linechartViews.ts b/src/core/chartOptions/Utility/fixtures/linechartViews.ts
index e22aea8..4ee1481 100644
--- a/src/core/chartOptions/Utility/fixtures/linechartViews.ts
+++ b/src/core/chartOptions/Utility/fixtures/linechartViews.ts
@@ -2083,4 +2083,1354 @@ export const combinationValuesLinechartViewFixture: View = {
"cutValueAxis": false
},
"seriesType": 0
+}
+
+export const multiselectableLineChartViewFixture: View =
+{
+ "header": {
+ "fi": "Neliövuokra (eur/m2), Vapaarahoitteinen 2015Q1-2022Q4 muuttujina Alue, Huoneluku",
+ "sv": "Kvadratmeterspris (eur/m2), Fri finansierad 2015Q1-2022Q4 efter Område, Antal rum",
+ "en": "Rents per square meter (eur/m2), Non subsidised 2015Q1-2022Q4 by Region, Number of rooms"
+ },
+ "tableReferenceName": "table.px",
+ "subheaderValues": [],
+ "units": [
+ {
+ "name": {
+ "fi": "Neliövuokra (eur/m2)",
+ "sv": "Kvadratmeterspris (eur/m2)",
+ "en": "Rents per square meter (eur/m2)"
+ },
+ "unit": {
+ "fi": "eur / m2",
+ "sv": "eur / m2",
+ "en": "eur / m2"
+ }
+ }
+ ],
+ "sources": [
+ {
+ "fi": "PxVisualizer-fi",
+ "sv": "PxVisualizer-sv",
+ "en": "PxVisualizer-en"
+ }
+ ],
+ "columnNameGroups": [
+ [
+ {
+ "fi": "2015Q1",
+ "sv": "2015Q1",
+ "en": "2015Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2015Q2",
+ "sv": "2015Q2",
+ "en": "2015Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2015Q3",
+ "sv": "2015Q3",
+ "en": "2015Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2015Q4",
+ "sv": "2015Q4",
+ "en": "2015Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2016Q1",
+ "sv": "2016Q1",
+ "en": "2016Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2016Q2",
+ "sv": "2016Q2",
+ "en": "2016Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2016Q3",
+ "sv": "2016Q3",
+ "en": "2016Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2016Q4",
+ "sv": "2016Q4",
+ "en": "2016Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2017Q1",
+ "sv": "2017Q1",
+ "en": "2017Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2017Q2",
+ "sv": "2017Q2",
+ "en": "2017Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2017Q3",
+ "sv": "2017Q3",
+ "en": "2017Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2017Q4",
+ "sv": "2017Q4",
+ "en": "2017Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2018Q1",
+ "sv": "2018Q1",
+ "en": "2018Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2018Q2",
+ "sv": "2018Q2",
+ "en": "2018Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2018Q3",
+ "sv": "2018Q3",
+ "en": "2018Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2018Q4",
+ "sv": "2018Q4",
+ "en": "2018Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2019Q1",
+ "sv": "2019Q1",
+ "en": "2019Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2019Q2",
+ "sv": "2019Q2",
+ "en": "2019Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2019Q3",
+ "sv": "2019Q3",
+ "en": "2019Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2019Q4",
+ "sv": "2019Q4",
+ "en": "2019Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2020Q1",
+ "sv": "2020Q1",
+ "en": "2020Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2020Q2",
+ "sv": "2020Q2",
+ "en": "2020Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2020Q3",
+ "sv": "2020Q3",
+ "en": "2020Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2020Q4",
+ "sv": "2020Q4",
+ "en": "2020Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2021Q1",
+ "sv": "2021Q1",
+ "en": "2021Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2021Q2",
+ "sv": "2021Q2",
+ "en": "2021Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2021Q3",
+ "sv": "2021Q3",
+ "en": "2021Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2021Q4",
+ "sv": "2021Q4",
+ "en": "2021Q4"
+ }
+ ],
+ [
+ {
+ "fi": "2022Q1",
+ "sv": "2022Q1",
+ "en": "2022Q1"
+ }
+ ],
+ [
+ {
+ "fi": "2022Q2",
+ "sv": "2022Q2",
+ "en": "2022Q2"
+ }
+ ],
+ [
+ {
+ "fi": "2022Q3",
+ "sv": "2022Q3",
+ "en": "2022Q3"
+ }
+ ],
+ [
+ {
+ "fi": "2022Q4",
+ "sv": "2022Q4",
+ "en": "2022Q4"
+ }
+ ]
+ ],
+ "series": [
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Yksiöt",
+ "sv": "Enrumslägenhet",
+ "en": "One-room flat"
+ },
+ {
+ "fi": "Helsinki",
+ "sv": "Helsingfors",
+ "en": "Helsinki"
+ }
+ ],
+ "series": [
+ {
+ "value": 22.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 22.87,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.1,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.23,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.5,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.78,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 23.89,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.07,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.08,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.45,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.55,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.54,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.65,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 24.72,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 25.13,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 25.09,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 25.22,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 25.44,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 25.87,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.15,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.27,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.36,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.51,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.59,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.72,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.75,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.64,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.82,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 26.93,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ },
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Yksiöt",
+ "sv": "Enrumslägenhet",
+ "en": "One-room flat"
+ },
+ {
+ "fi": "Turku",
+ "sv": "Åbo",
+ "en": "Turku"
+ }
+ ],
+ "series": [
+ {
+ "value": 15.15,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.18,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.32,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.41,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.56,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.58,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.72,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.8,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.96,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.11,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.24,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.18,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.25,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.4,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.62,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.71,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.83,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.2,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.45,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.48,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.57,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.64,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.76,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.88,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.95,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.01,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.16,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.32,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.44,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.53,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ },
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Yksiöt",
+ "sv": "Enrumslägenhet",
+ "en": "One-room flat"
+ },
+ {
+ "fi": "Tampere",
+ "sv": "Tammerfors",
+ "en": "Tampere"
+ }
+ ],
+ "series": [
+ {
+ "value": 16.34,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.38,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.49,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.54,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.32,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.7,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.92,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.98,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.48,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.58,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.67,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.71,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.48,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.62,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.71,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.91,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.9,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.97,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.11,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.33,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.59,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.61,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.7,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.78,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.14,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.2,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.21,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.39,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.6,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.73,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.87,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ },
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Kaksiot",
+ "sv": "Tvårumslägenhet",
+ "en": "Two-room flat"
+ },
+ {
+ "fi": "Helsinki",
+ "sv": "Helsingfors",
+ "en": "Helsinki"
+ }
+ ],
+ "series": [
+ {
+ "value": 15.77,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.95,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.12,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.04,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.4,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.71,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.85,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 16.82,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.14,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 17.3,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.63,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.71,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.83,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.11,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 18.9,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.02,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.21,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.72,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.85,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 19.92,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.02,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.1,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.01,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.14,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.21,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.19,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.22,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.45,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.59,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 20.66,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ },
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Kaksiot",
+ "sv": "Tvårumslägenhet",
+ "en": "Two-room flat"
+ },
+ {
+ "fi": "Turku",
+ "sv": "Åbo",
+ "en": "Turku"
+ }
+ ],
+ "series": [
+ {
+ "value": 10.5,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 10.57,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 10.65,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 10.64,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 10.85,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.1,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.23,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.24,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.42,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.44,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.53,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.83,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.67,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.74,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.79,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.12,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.11,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.52,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.57,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.61,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.65,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.73,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.76,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.88,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.93,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.98,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.07,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.27,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.37,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.48,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ },
+ {
+ "rowNameGroup": [
+ {
+ "fi": "Kaksiot",
+ "sv": "Tvårumslägenhet",
+ "en": "Two-room flat"
+ },
+ {
+ "fi": "Tampere",
+ "sv": "Tammerfors",
+ "en": "Tampere"
+ }
+ ],
+ "series": [
+ {
+ "value": 11.56,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.61,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.69,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.74,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.76,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 11.96,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.07,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.09,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.52,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 12.64,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.48,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.45,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.5,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.57,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.85,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.67,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.77,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 13.85,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.16,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.25,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.26,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.31,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.35,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.38,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.52,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.57,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.58,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.68,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.87,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 14.95,
+ "precision": 2,
+ "preliminary": false
+ },
+ {
+ "value": 15.09,
+ "precision": 2,
+ "preliminary": false
+ }
+ ]
+ }
+ ],
+ "colVarNames": [
+ {
+ "fi": "Vuosineljännes",
+ "sv": "Kvartal",
+ "en": "Quarter"
+ }
+ ],
+ "rowVarNames": [
+ {
+ "fi": "Huoneluku",
+ "sv": "Antal rum",
+ "en": "Number of rooms"
+ },
+ {
+ "fi": "Alue",
+ "sv": "Område",
+ "en": "Region"
+ }
+ ],
+ "selectableVarNames": [
+ {
+ "fi": "Huoneluku",
+ "sv": "Antal rum",
+ "en": "Number of rooms"
+ }
+ ],
+ "visualizationSettings": {
+ "visualizationType": EVisualizationType.LineChart,
+ "multiselectableVariableCode": "Huoneluku",
+ "timeVariableIntervals": ETimeVariableInterval.Quarter,
+ "timeSeriesStartingPoint": "2015-01-01T00:00:00",
+ "cutValueAxis": false
+ },
+ "seriesType": 0
}
\ No newline at end of file
diff --git a/src/core/chartOptions/Utility/formatters.test.ts b/src/core/chartOptions/Utility/formatters.test.ts
index d745d39..faa118a 100644
--- a/src/core/chartOptions/Utility/formatters.test.ts
+++ b/src/core/chartOptions/Utility/formatters.test.ts
@@ -1,6 +1,6 @@
import { DataLabelsOptions, Point, Tooltip } from "highcharts";
import { formatLocale, getDataFormattedForChartType, getDataLabelFormatterFunction, getLineChartToolTipFormatterFunction, getToolTipFormatterFunction, parseScreenReaderFriendlyTimePeriods, shortenStringValue } from "./formatters";
-import { combinationValuesLinechartViewFixture, simpleQuarterLinechartViewFixture } from "./fixtures/linechartViews";
+import { combinationValuesLinechartViewFixture, multiselectableLineChartViewFixture, simpleQuarterLinechartViewFixture } from "./fixtures/linechartViews";
import { simpleHorizontalBarchartViewFixture } from "./fixtures/horizontalbarchartViews";
import { simpleGroupHorizontalBarchartViewFixture } from "./fixtures/grouphorizontalbarchartViews";
import { View } from "../../types/view";
@@ -296,6 +296,25 @@ describe('getLineChartToolTipFormatterFunction tests', () => {
const expectedtooltipString = "Alue: Helsinki
Huoneluku: Kaksiot
Vuosineljännes: testPointName
";
expect(formatter.apply(mockPoint, [mockTooltip])).toEqual(expectedtooltipString);
});
+
+ it('The returned formatter function should return tooltip with names of multiselected selectable values', () => {
+ const mockTooltip: Tooltip = {} as unknown as Tooltip;
+ const mockPoint = {
+ series: {
+ name: 'testSeriesName',
+ index: 1
+ },
+ name: 'testPointName',
+ options: {
+ custom: {
+ "preliminary": false
+ }
+ }
+ } as unknown as Point;
+ const formatter = getLineChartToolTipFormatterFunction(multiselectableLineChartViewFixture, 'fi');
+ const expectedtooltipString = "Huoneluku: Yksiöt
Alue: Turku
Vuosineljännes: testPointName
";
+ expect(formatter.apply(mockPoint, [mockTooltip])).toEqual(expectedtooltipString);
+ });
});
describe('getDataFormattedForChartType tests', () => {
diff --git a/src/core/conversion/viewUtils.test.ts b/src/core/conversion/viewUtils.test.ts
index 9e99d09..b936219 100644
--- a/src/core/conversion/viewUtils.test.ts
+++ b/src/core/conversion/viewUtils.test.ts
@@ -2456,6 +2456,11 @@ describe('line chart view conversion', () => {
}
],
rowVarNames: [
+ {
+ "en": "Number of rooms",
+ "fi": "Huoneluku",
+ "sv": "Antal rum",
+ },
{
"en": "Region",
"fi": "Alue",
diff --git a/src/core/conversion/viewUtils.ts b/src/core/conversion/viewUtils.ts
index 9260c6e..e33eea2 100644
--- a/src/core/conversion/viewUtils.ts
+++ b/src/core/conversion/viewUtils.ts
@@ -64,6 +64,13 @@ function convert(responseObj: IQueryVisualizationResponse, selectedValueCodes: T
const selectableVariables = getSelectableVariables(metaData, selectableVariableCodes);
const contentVar = getContentVariable(metaData);
const unsortedSeries = buildSeries(responseObj, selectedValueCodes);
+ // Row variable names are derived from both directionless multiselected selectable and row variables
+ const directionlessMultiselectVarNames = responseObj.selectableVariableCodes.filter(code =>
+ selectedValueAmounts[code] > 1 &&
+ !responseObj.rowVariableCodes.includes(code) &&
+ !responseObj.columnVariableCodes.includes(code));
+ const rowVarNames = getVariableNames(directionlessMultiselectVarNames, metaData)
+ .concat(getVariableNames(responseObj.rowVariableCodes, responseObj.metaData));
return {
header: responseObj.header,
@@ -73,8 +80,8 @@ function convert(responseObj: IQueryVisualizationResponse, selectedValueCodes: T
sources: getContentProperty(contentVar, selectedValueCodes, (cc) => cc?.source ?? Translations.empty),
columnNameGroups: unsortedSeries.columnNameGroups,
series: unsortedSeries.series,
+ rowVarNames: rowVarNames,
colVarNames: getVariableNames(responseObj.columnVariableCodes, responseObj.metaData),
- rowVarNames: getVariableNames(responseObj.rowVariableCodes, responseObj.metaData),
selectableVarNames: getVariableNames(responseObj.selectableVariableCodes, responseObj.metaData),
visualizationSettings: responseObj.visualizationSettings,
seriesType: getSeriesType(responseObj.columnVariableCodes, responseObj.metaData)
diff --git a/src/core/highcharts/themes.ts b/src/core/highcharts/themes.ts
index 120e326..961d356 100644
--- a/src/core/highcharts/themes.ts
+++ b/src/core/highcharts/themes.ts
@@ -26,7 +26,8 @@ export const defaultTheme: (locale: string) => Highcharts.Options = (locale) =>
},
exporting: {
enabled: false,
- fallbackToExportServer: false
+ fallbackToExportServer: false,
+ allowHTML: true,
},
lang: {
accessibility: {