@data-ui/xy-chart
Version:
A package of charts with standard x- and y- axes. https://williaster.github.io/data-ui
30 lines (26 loc) • 1.05 kB
JavaScript
import { Children } from 'react';
import AreaDifferenceSeries from '../series/AreaDifferenceSeries';
import { isSeries, isDefined, componentName } from './chartUtils'; // this function collects all data from child series to defines a voronoi overlay
// because x,y coordinates are required to define a voronoi, it filters any points
// with undefined x or y values
export default function collectVoronoiData(_ref) {
var children = _ref.children,
getX = _ref.getX,
getY = _ref.getY;
return Children.toArray(children).reduce(function (result, Child) {
var name = componentName(Child);
if (isSeries(name) && !Child.props.disableMouseEvents) {
if (name === AreaDifferenceSeries.displayName) {
return result.concat(collectVoronoiData({
children: Child.props.children,
getX: getX,
getY: getY
}));
}
return result.concat(Child.props.data.filter(function (d) {
return isDefined(getX(d)) && isDefined(getY(d));
}));
}
return result;
}, []);
}