UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

51 lines (50 loc) 2 kB
"use strict"; 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); };