UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

241 lines (240 loc) 8.66 kB
"use strict"; 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"); } } } };