react-sleek
Version:
React Sleek Component Library
80 lines (79 loc) • 2.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var ChartUtils = /** @class */ (function () {
function ChartUtils() {
}
ChartUtils.getMinX = function (data) {
var onlyX = ChartUtils.getOnlyX(data);
return Math.min.apply(null, onlyX);
};
ChartUtils.getMinY = function (data) {
var onlyY = ChartUtils.getOnlyY(data);
return Math.min.apply(null, onlyY);
};
ChartUtils.getMaxX = function (data) {
var onlyX = ChartUtils.getOnlyX(data);
return Math.max.apply(null, onlyX);
};
ChartUtils.getMaxY = function (data) {
var onlyY = ChartUtils.getOnlyY(data);
return Math.max.apply(null, onlyY);
};
ChartUtils.getYAxisData = function (data) {
var minY = ChartUtils.getMinY(data);
var maxY = ChartUtils.getMaxY(data);
var range = maxY - minY;
var rangePart = range / 5;
var roundTo = 10;
if (rangePart > 10000) {
roundTo = 1000;
}
else if (rangePart > 1000) {
roundTo = 100;
}
else {
roundTo = 50;
}
var minYRound = ChartUtils.roundMin(minY, roundTo);
var maxYRound = ChartUtils.roundMax(maxY, roundTo);
var rangeRound = maxYRound - minYRound;
var rangePartRound = rangeRound / 5;
var lines = [];
for (var i = 0; i <= 5; i++) {
lines.push(minYRound + i * rangePartRound);
}
return lines.reverse();
};
ChartUtils.roundMax = function (y, roundTo) {
return Math.ceil(y / roundTo) * roundTo;
};
ChartUtils.roundMin = function (y, roundTo) {
return Math.floor(y / roundTo) * roundTo;
};
ChartUtils.getOnlyX = function (data) {
var onlyX = [];
var onlyPoints = data.map(function (obj) { return obj.points; });
for (var _i = 0, onlyPoints_1 = onlyPoints; _i < onlyPoints_1.length; _i++) {
var points = onlyPoints_1[_i];
for (var _a = 0, points_1 = points; _a < points_1.length; _a++) {
var point = points_1[_a];
onlyX.push(point.x);
}
}
return onlyX;
};
ChartUtils.getOnlyY = function (data) {
var onlyY = [];
var onlyPoints = data.map(function (obj) { return obj.points; });
for (var _i = 0, onlyPoints_2 = onlyPoints; _i < onlyPoints_2.length; _i++) {
var points = onlyPoints_2[_i];
for (var _a = 0, points_2 = points; _a < points_2.length; _a++) {
var point = points_2[_a];
onlyY.push(point.y);
}
}
return onlyY;
};
return ChartUtils;
}());
exports.default = ChartUtils;