UNPKG

@netdata/charts

Version:

Netdata frontend SDK and chart utilities

56 lines (55 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _utilities = require("./utilities"); var _default = exports["default"] = function _default(el, columns, total, _ref) { var onMouseenter = _ref.onMouseenter, onMouseout = _ref.onMouseout; var _ref2 = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}, cellSize = _ref2.cellSize, cellPadding = _ref2.cellPadding; var hoveredIndex = -1; var getEvent = function getEvent(index) { var rect = el.getBoundingClientRect(); var offsetX = (0, _utilities.getXPosition)(columns, index, cellSize); var offsetY = (0, _utilities.getYPosition)(columns, index, cellSize); var left = rect.left + offsetX; var top = rect.top + offsetY; var cellBoxSize = (0, _utilities.getCellBoxSize)(cellSize, cellPadding); return { index: index, left: left, top: top, right: left + cellBoxSize, bottom: top + cellBoxSize, width: cellBoxSize, height: cellBoxSize, offsetX: offsetX, offsetY: offsetY }; }; var mouseout = function mouseout() { onMouseout(getEvent(hoveredIndex)); hoveredIndex = -1; }; var mousemove = function mousemove(e) { var offsetX = e.offsetX, offsetY = e.offsetY; var x = (0, _utilities.getOffsetPosition)(offsetX, cellSize); var y = (0, _utilities.getOffsetPosition)(offsetY, cellSize); var nextHoveredIndex = y * columns + x; if (nextHoveredIndex === hoveredIndex) return; if (hoveredIndex !== -1) mouseout(); if (nextHoveredIndex >= total) return; onMouseenter(getEvent(nextHoveredIndex)); hoveredIndex = nextHoveredIndex; }; el.addEventListener("mousemove", mousemove); el.addEventListener("mouseout", mouseout); return function () { el.removeEventListener("mousemove", mousemove); el.removeEventListener("mouseout", mouseout); }; };