@netdata/charts
Version:
Netdata frontend SDK and chart utilities
241 lines (240 loc) • 8.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.makeConversableKey = exports.keys = exports["default"] = void 0;
var _zeropad = _interopRequireDefault(require("../zeropad"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var makeConversableKey = exports.makeConversableKey = function makeConversableKey(unit, scale) {
return "".concat(unit, "-").concat(scale);
};
var seconds2time = function seconds2time(seconds, maxTimeUnit) {
var minTimeUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "MS";
// todo maybe we should resign from MS, if we're only showing zeroes. we just need to properly
// annotate units in this case (not to show "HH:MM:SS.ms")
var secondsReturn = Math.abs(seconds);
var years = Math.floor(secondsReturn / (86400 * 365));
var yearsString = "".concat(years, "yr");
secondsReturn -= years * (86400 * 365);
var months = Math.floor(secondsReturn / (86400 * 30));
var monthsString = "".concat(months, "mo");
secondsReturn -= months * (86400 * 30);
var days = Math.floor(secondsReturn / 86400);
var daysString = "".concat(days, "d");
if (maxTimeUnit === "YEARS") return "".concat(yearsString, ":").concat(monthsString, ":").concat(daysString);
secondsReturn -= days * 86400;
var hours = Math.floor(secondsReturn / 3600);
var hoursString = (0, _zeropad["default"])(hours);
if (maxTimeUnit === "MONTHS") return "".concat(monthsString, ":").concat(daysString, " ").concat(hoursString, "h");
secondsReturn -= hours * 3600;
var minutes = Math.floor(secondsReturn / 60);
var minutesString = (0, _zeropad["default"])(minutes);
if (maxTimeUnit === "DAYS") return "".concat(daysString, " ").concat(hoursString, ":").concat(minutesString);
secondsReturn -= minutes * 60;
var secondsString = (0, _zeropad["default"])(minTimeUnit === "MS" ? secondsReturn.toFixed(2) : Math.round(secondsReturn));
if (maxTimeUnit === "HOURS") return "".concat(hoursString, ":").concat(minutesString, ":").concat(secondsString);
if (maxTimeUnit === "MINUTES") return "".concat(minutesString, ":").concat(secondsString);
return "".concat(secondsString, "s");
};
var twoFixed = function twoFixed() {
var multiplier = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
return function (value) {
return value * multiplier;
};
};
var keys = exports.keys = {
Cel: ["[degF]"],
ns: ["ns", "us", "ms", "s"],
ms: ["us", "ms", "s", "a:mo:d", "mo:d:h", "d:h:mm", "h:mm:ss", "mm:ss"],
s: ["us", "ms", "s", "a:mo:d", "mo:d:h", "d:h:mm", "h:mm:ss", "mm:ss", "dHH:MM:ss"]
};
var _default = exports["default"] = {
Cel: {
"[degF]": {
check: function check(chart) {
return chart.getAttribute("temperature") === "fahrenheit";
},
convert: function convert(value) {
return value * 9 / 5 + 32;
}
}
},
ns: {
ns: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max < 1000;
},
convert: function convert(nanoseconds) {
var tms = Math.round(nanoseconds * 10);
nanoseconds = Math.floor(tms / 10);
tms -= nanoseconds * 10;
return "".concat(nanoseconds, ".").concat((0, _zeropad["default"])(tms));
}
},
us: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1000 && max < 1000 * 1000;
},
convert: function convert(nanoseconds) {
nanoseconds = Math.round(nanoseconds);
var microseconds = Math.floor(nanoseconds / 1000);
nanoseconds -= microseconds * 1000;
nanoseconds = Math.round(nanoseconds / 10);
return "".concat(microseconds, ".").concat((0, _zeropad["default"])(nanoseconds));
}
},
ms: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1000 * 1000 && max < 1000 * 1000 * 1000;
},
convert: function convert(nanoseconds) {
nanoseconds = Math.round(nanoseconds);
var milliseconds = Math.floor(nanoseconds / 1000 / 1000);
nanoseconds -= milliseconds * 1000 * 1000;
nanoseconds = Math.round(nanoseconds / 1000 / 10);
return "".concat(milliseconds, ".").concat((0, _zeropad["default"])(nanoseconds));
}
},
s: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1000 * 1000 * 1000;
},
convert: function convert(nanoseconds) {
nanoseconds = Math.round(nanoseconds);
var seconds = Math.floor(nanoseconds / 1000 / 1000 / 1000);
nanoseconds -= seconds * 1000 * 1000 * 1000;
nanoseconds = Math.round(nanoseconds / 1000 / 1000 / 10);
return "".concat(seconds, ".").concat((0, _zeropad["default"])(nanoseconds));
}
}
},
ms: {
us: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max < 1;
},
convert: twoFixed(1000)
},
ms: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1 && max < 1000;
},
convert: twoFixed()
},
s: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1000 && max < 60000;
},
convert: twoFixed(0.001)
},
"mm:ss": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 60000 && max < 3600000;
},
convert: function convert(value) {
return seconds2time(value / 1000, "MINUTES");
}
},
"h:mm:ss": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 3600000 && max < 86400000;
},
convert: function convert(value) {
return seconds2time(value / 1000, "HOURS");
}
},
"d:h:mm": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400000;
},
convert: function convert(value) {
return seconds2time(value / 1000, "DAYS");
}
},
"mo:d:h": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400000 * 30;
},
convert: function convert(value) {
return seconds2time(value / 1000, "MONTHS");
}
},
"a:mo:d": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400000 * 365;
},
convert: function convert(value) {
return seconds2time(value / 1000, "YEARS");
}
}
},
s: {
us: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max < 0.001;
},
convert: twoFixed(1000000)
},
ms: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 0.001 && max < 1;
},
convert: twoFixed(1000)
},
s: {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 1 && max < 60;
},
convert: twoFixed(1)
},
"mm:ss": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 60 && max < 3600;
},
convert: function convert(value) {
return seconds2time(value, "MINUTES");
}
},
"h:mm:ss": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 3600 && max < 86400;
},
convert: function convert(value) {
return seconds2time(value, "HOURS");
}
},
"d:h:mm": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400;
},
convert: function convert(value) {
return seconds2time(value, "DAYS");
}
},
"mo:d:h": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400 * 30;
},
convert: function convert(value) {
return seconds2time(value, "MONTHS");
}
},
"a:mo:d": {
check: function check(chart, max) {
return chart.getAttribute("secondsAsTime") && max >= 86400 * 365;
},
convert: function convert(value) {
return seconds2time(value, "YEARS");
}
},
"dHH:MM:ss": {
check: function check() {
return false;
},
// only accepting desiredUnits
convert: function convert(value) {
return seconds2time(value, "DAYS", "SECONDS");
}
}
}
};