diff --git a/modules/dynamic/overview/charts-overview.js b/modules/dynamic/overview/charts-overview.js index 5a29a97d..3fe5464e 100644 --- a/modules/dynamic/overview/charts-overview.js +++ b/modules/dynamic/overview/charts-overview.js @@ -1,5 +1,4 @@ -import {rollup, rollups} from "../../../utils/functionUtils.js"; -import {stack} from "https://cdn.skypack.dev/d3-shape@3"; +import {rollups} from "../../../utils/functionUtils.js"; const entitiesMap = { states: { @@ -434,16 +433,17 @@ function createStackedBarChart(data, {sorting, colors, tooltip, offset, formatX} const height = yDomain.size * 25 + margin.top + margin.bottom; const yRange = [height - margin.bottom, margin.top]; - const rolled = rollup(...[I, ([i]) => i, i => Y[i], i => Z[i]]); + const rolled = rollups(...[I, ([i]) => i, i => Y[i], i => Z[i]]); - const series = stack() - .keys(zDomain) - .value(([, I], z) => X[I.get(z)]) + const series = d3 + .stack() + .keys(groups) + .value(([, I], z) => X[new Map(I).get(z)]) .order(d3.stackOrderNone) .offset(offset)(rolled) .map(s => { const defined = s.filter(d => !isNaN(d[1])); - const data = defined.map(d => Object.assign(d, {i: d.data[1].get(s.key)})); + const data = defined.map(d => Object.assign(d, {i: new Map(d.data[1]).get(s.key)})); return {key: s.key, data}; }); diff --git a/utils/functionUtils.js b/utils/functionUtils.js index e62641ee..845673a8 100644 --- a/utils/functionUtils.js +++ b/utils/functionUtils.js @@ -1,14 +1,5 @@ -function identity(x) { - return x; -} - -export function group(values, ...keys) { - return nest(values, identity, identity, keys); -} - -export function rollup(values, reduce, ...keys) { - return nest(values, identity, reduce, keys); -} +// extracted d3 code to bypass version conflicts +// https://github.com/d3/d3-array/blob/main/src/group.js export function rollups(values, reduce, ...keys) { return nest(values, Array.from, reduce, keys);