29 lines
916 B
JavaScript
29 lines
916 B
JavaScript
|
import Chartkick from 'chartkick';
|
||
|
|
||
|
export function toggleChart(event, chartClass) {
|
||
|
const nextSelectorItem = $(event.target),
|
||
|
nextChart = $(chartClass),
|
||
|
nextChartId = nextChart
|
||
|
.children()
|
||
|
.first()
|
||
|
.attr('id'),
|
||
|
currentSelectorItem = nextSelectorItem
|
||
|
.parent()
|
||
|
.find('.segmented-control-item-active'),
|
||
|
currentChart = nextSelectorItem
|
||
|
.parent()
|
||
|
.parent()
|
||
|
.find('.chart:not(.hidden)');
|
||
|
|
||
|
// Change the current selector and the next selector states
|
||
|
currentSelectorItem.toggleClass('segmented-control-item-active');
|
||
|
nextSelectorItem.toggleClass('segmented-control-item-active');
|
||
|
|
||
|
// Hide the currently shown chart and show the new one
|
||
|
currentChart.toggleClass('hidden');
|
||
|
nextChart.toggleClass('hidden');
|
||
|
|
||
|
// Reflow needed, see https://github.com/highcharts/highcharts/issues/1979
|
||
|
Chartkick.charts[nextChartId].getChartObject().reflow();
|
||
|
}
|