@netdata/charts
Version:
Netdata frontend SDK and chart utilities
51 lines (50 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _dygraphs = _interopRequireDefault(require("dygraphs"));
var _dygraphUtils = require("dygraphs/src/dygraph-utils");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
var _default = exports["default"] = function _default(chartUI) {
var startY;
var endY;
var mousedown = function mousedown(event, g, context) {
chartUI.sdk.trigger("highlightVerticalStart", chartUI.chart);
context.initializeMouseDown(event, g, context);
_dygraphs["default"].startZoom(event, g, context);
startY = context.dragStartY;
endY = -1;
chartUI.on("mousemove", mousemove).on("mouseup", _mouseup);
};
var mousemove = function mousemove(event, g, context) {
if (!context.isZooming) return;
var ctx = g.canvas_ctx_,
canvas = g.canvas_;
var rect = canvas.getBoundingClientRect();
if (event.pageY < rect.top || event.pageY > rect.bottom) return;
context.zoomMoved = true;
context.dragEndY = (0, _dygraphUtils.dragGetY_)(event, context);
var dragStartY = context.dragStartY,
dragEndY = context.dragEndY;
var area = g.getArea();
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = "rgba(128,128,128,0.3)";
ctx.fillRect(area.x, Math.min(dragStartY, dragEndY), area.w, Math.abs(dragEndY - dragStartY));
context.prevEndY = dragEndY;
endY = dragEndY;
};
var _mouseup = function mouseup(event, g, context) {
if (context.isZooming) {
g.clearZoomRect_();
context.destroy();
var range = endY === -1 || Math.abs(startY - endY) < 5 ? null : [g.toDataYCoord(startY), g.toDataYCoord(endY)].sort(function (a, b) {
return a - b;
});
chartUI.sdk.trigger("highlightVerticalEnd", chartUI.chart, range);
}
chartUI.off("mousemove", mousemove);
chartUI.off("mouseup", _mouseup);
};
return chartUI.on("mousedown", mousedown);
};