createSegments = (property) => {
const groups = d3.groups(
deu.filter((d) => d.year > 1949),
(d) => d.period
);
return groups.map(([period, periodData], groupIndex) => {
return periodData.reduce((acc, cur, i) => {
const endX =
i < periodData.length - 1
? periodData[i + 1].pop
: +period < 6
? groups[groupIndex + 1][1][0].pop
: null;
const endY =
i < periodData.length - 1
? periodData[i + 1][property]
: +period < 6
? `${groups[groupIndex + 1][1][0][property]} @stroke:${
colorMatch[cur.period]
} @width:8 @opacity:0.3 @color:transparent`
: `@stroke:${
colorMatch[cur.period]
} @width:8 @opacity:0.3 @color:transparent`;
return [...acc, cur.pop, cur[property], endX, endY];
}, []);
});
}