UNPKG

@rcsb/rcsb-saguaro-app

Version:
23 lines 1.16 kB
import { Assertions } from "../../../../RcsbUtils/Helpers/Assertions"; export var Helper; (function (Helper) { var assertDefined = Assertions.assertDefined; function mergeCharts(charts) { const attributes = Array.from(new Set(charts.map(ch => ch.attribute))); return attributes.map(attr => (mergeChartData(charts.filter(ch => ch.attribute == attr)))); } Helper.mergeCharts = mergeCharts; function mergeChartData(charts) { return Object.assign(Object.assign({}, charts[0]), { data: mergeData(charts.map(ch => ch.data).flat()) }); } function mergeData(data) { const labels = Array.from(new Set(data.map(d => d.label))); return labels.map(label => { var _a, _b; const d = data.find(d => d.label === label); assertDefined(d); return Object.assign(Object.assign({}, d), { population: (_b = (_a = data.filter(d => d.label === label)) === null || _a === void 0 ? void 0 : _a.reduce((prev, curr) => (prev + curr.population), 0)) !== null && _b !== void 0 ? _b : 0 }); }); } })(Helper || (Helper = {})); //# sourceMappingURL=Helper.js.map