@semcore/chart
Version:
Semrush Chart Component
33 lines (32 loc) • 1.02 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = computeDefinedSegments;
var _hasNull = _interopRequireDefault(require("./hasNull"));
/**
* Divides an array of plot points into an array with arrays of points
* separated by segments of no data points 🤯
* @param {Point[]} points - array of points
* @param {String} dataKey - data key
* @return {Point[][]}
*/
function computeDefinedSegments(points, dataKey) {
var startNewSegment = true;
return points.reduce(function (segments, point) {
if ((0, _hasNull["default"])(point, dataKey)) {
startNewSegment = true;
return segments;
}
if (startNewSegment) {
segments.push([point]);
startNewSegment = false;
} else {
var lastSegment = segments[segments.length - 1];
lastSegment.push(point);
}
return segments;
}, []);
}
//# sourceMappingURL=computeDefinedSegments.js.map