viewof lineChartTooltip = {
const dimensions = lineChartDimensions;
const visible = highlightedYear !== null;
const year = visible ? highlightedYear : defaultYear;
const x = xScale(highlightedYear) + dimensions.margin.left;
const regions = selectedRegions.filter(
(region) => !isNaN(region.valuesByYear[year])
);
const maxXRight = width - tooltipMaxWidth;
const minXLeft = tooltipMaxWidth;
const xPos =
x > width / 2
? `${Math.max(minXLeft, x)}px - 100%`
: `${Math.min(maxXRight, x)}px`;
const dataPoints = regions
.sort((a, b) => b.valuesByYear[year] - a.valuesByYear[year])
.map((region, i) => ({
label: region.year,
value: isNaN(region.valuesByYear[year])
? "keine Daten"
: valueFormat(region.valuesByYear[year]),
symbol: getRegionColor(region.year)
}));
return createTooltip(
{
dataPoints: [{ label: "Datum", value: dateFormat(year) }, ...dataPoints],
visible,
x: `calc(${xPos})`,
y: `calc(${dimensions.margin.top}px - 100% - .25rem)`
},
this
);
}