@data-ui/xy-chart
Version:
A package of charts with standard x- and y- axes. https://williaster.github.io/data-ui
40 lines (31 loc) • 1.3 kB
JavaScript
;
exports.__esModule = true;
exports.default = collectVoronoiData;
var _react = require("react");
var _AreaDifferenceSeries = _interopRequireDefault(require("../series/AreaDifferenceSeries"));
var _chartUtils = require("./chartUtils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// 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
function collectVoronoiData(_ref) {
var children = _ref.children,
getX = _ref.getX,
getY = _ref.getY;
return _react.Children.toArray(children).reduce(function (result, Child) {
var name = (0, _chartUtils.componentName)(Child);
if ((0, _chartUtils.isSeries)(name) && !Child.props.disableMouseEvents) {
if (name === _AreaDifferenceSeries.default.displayName) {
return result.concat(collectVoronoiData({
children: Child.props.children,
getX: getX,
getY: getY
}));
}
return result.concat(Child.props.data.filter(function (d) {
return (0, _chartUtils.isDefined)(getX(d)) && (0, _chartUtils.isDefined)(getY(d));
}));
}
return result;
}, []);
}