rumble-charts
Version:
Truly declarative React charts components
78 lines (75 loc) • 2.39 kB
JavaScript
import { __assign } from '../external/tslib/tslib.es6.js';
import { isNumber } from './isNumber.js';
import { isUndefined } from './isUndefined.js';
import { omitBy } from './omitBy.js';
var isInvalidLimit = function (value) {
return isUndefined(value) || value === Infinity || value === -Infinity;
};
function normalizeSeries(props) {
var _a;
var maxX = -Infinity, maxY = -Infinity, minX = Infinity, minY = Infinity;
var series = (_a = props === null || props === void 0 ? void 0 : props.series) === null || _a === void 0 ? void 0 : _a.map(function (series) {
var _a;
var data = (_a = series.data) === null || _a === void 0 ? void 0 : _a.map(function (item, index) {
var d;
if (!props.seriesNormalized) {
d = {};
if (isNumber(item)) {
d.x = index;
d.y = item;
}
else if (Array.isArray(item)) {
d.x = item[0];
d.y = item[1];
}
else {
d = item || {};
if (isUndefined(d.x)) {
d.x = index;
}
}
}
else {
d = item;
}
if (isUndefined(props.maxX)) {
maxX = Math.max(maxX, d.x || 0);
}
if (isUndefined(props.maxY)) {
maxY = Math.max(maxY, d.y || 0);
}
if (isUndefined(props.minX)) {
minX = Math.min(minX, d.x || 0);
}
if (isUndefined(props.minY)) {
minY = Math.min(minY, d.y || 0);
}
return d;
});
return __assign(__assign({}, series), { data: data });
});
if (series && series.length === 0) {
series = undefined;
}
if (!isUndefined(props.maxX)) {
maxX = props.maxX;
}
if (!isUndefined(props.maxY)) {
maxY = props.maxY;
}
if (!isUndefined(props.minX)) {
minX = props.minX;
}
if (!isUndefined(props.minY)) {
minY = props.minY;
}
return omitBy({
seriesNormalized: true,
series: series,
maxX: maxX,
maxY: maxY,
minX: minX,
minY: minY
}, isInvalidLimit);
}
export { normalizeSeries };