@netdata/charts
Version:
Netdata frontend SDK and chart utilities
44 lines • 1.37 kB
JavaScript
var getMoveX = function getMoveX(after) {
var before = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var autoPlay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
if (after < 0) return {
after: after,
before: before
};
if (autoPlay && before > Math.ceil(Date.now() / 1000)) {
return {
after: Math.floor(after - before + 1),
before: 0
};
}
return {
after: Math.floor(after),
before: Math.ceil(before)
};
};
export default (function (sdk) {
var offAfter;
return sdk.on("moveX", function (chart, after, before) {
var autoPlay = chart.getAttribute("autoPlay");
var move = getMoveX(after, before, autoPlay);
chart.getApplicableNodes({
syncPanning: true
}).forEach(function (node) {
node.updateAttributes(move);
if (!node.getAttribute("active")) node.updateAttribute("loaded", false);
});
}).on("moveY", function (chart, min, max) {
chart.updateStaticValueRange([min, max]);
var after = chart.getAttribute("after");
if (after < 0) {
var now = Date.now() / 1000 - 1;
chart.moveX(now + after, now);
}
if (offAfter) offAfter();
offAfter = chart.onAttributeChange("after", function (after) {
if (after > 0) return;
chart.resetStaticValueRange();
offAfter();
});
});
});