UNPKG

recharts

Version:
132 lines (131 loc) 3.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTooltipCSSClassName = getTooltipCSSClassName; exports.getTooltipTranslate = getTooltipTranslate; exports.getTooltipTranslateXY = getTooltipTranslateXY; exports.getTransformStyle = getTransformStyle; var _clsx = require("clsx"); var _DataUtils = require("../DataUtils"); var CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper'; var TOOLTIP_HIDDEN = { visibility: 'hidden' }; function getTooltipCSSClassName(_ref) { var { coordinate, translateX, translateY } = _ref; return (0, _clsx.clsx)(CSS_CLASS_PREFIX, { ["".concat(CSS_CLASS_PREFIX, "-right")]: (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX >= coordinate.x, ["".concat(CSS_CLASS_PREFIX, "-left")]: (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX < coordinate.x, ["".concat(CSS_CLASS_PREFIX, "-bottom")]: (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY >= coordinate.y, ["".concat(CSS_CLASS_PREFIX, "-top")]: (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY < coordinate.y }); } function getTooltipTranslateXY(_ref2) { var { allowEscapeViewBox, coordinate, key, offsetTopLeft, position, reverseDirection, tooltipDimension, viewBox, viewBoxDimension } = _ref2; if (position && (0, _DataUtils.isNumber)(position[key])) { return position[key]; } var negative = coordinate[key] - tooltipDimension - (offsetTopLeft > 0 ? offsetTopLeft : 0); var positive = coordinate[key] + offsetTopLeft; if (allowEscapeViewBox[key]) { return reverseDirection[key] ? negative : positive; } var viewBoxKey = viewBox[key]; if (viewBoxKey == null) { return 0; } if (reverseDirection[key]) { var _tooltipBoundary = negative; var _viewBoxBoundary = viewBoxKey; if (_tooltipBoundary < _viewBoxBoundary) { return Math.max(positive, viewBoxKey); } return Math.max(negative, viewBoxKey); } if (viewBoxDimension == null) { return 0; } var tooltipBoundary = positive + tooltipDimension; var viewBoxBoundary = viewBoxKey + viewBoxDimension; if (tooltipBoundary > viewBoxBoundary) { return Math.max(negative, viewBoxKey); } return Math.max(positive, viewBoxKey); } function getTransformStyle(_ref3) { var { translateX, translateY, useTranslate3d } = _ref3; return { transform: useTranslate3d ? "translate3d(".concat(translateX, "px, ").concat(translateY, "px, 0)") : "translate(".concat(translateX, "px, ").concat(translateY, "px)") }; } function getTooltipTranslate(_ref4) { var { allowEscapeViewBox, coordinate, offsetTopLeft, position, reverseDirection, tooltipBox, useTranslate3d, viewBox } = _ref4; var cssProperties, translateX, translateY; if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) { translateX = getTooltipTranslateXY({ allowEscapeViewBox, coordinate, key: 'x', offsetTopLeft, position, reverseDirection, tooltipDimension: tooltipBox.width, viewBox, viewBoxDimension: viewBox.width }); translateY = getTooltipTranslateXY({ allowEscapeViewBox, coordinate, key: 'y', offsetTopLeft, position, reverseDirection, tooltipDimension: tooltipBox.height, viewBox, viewBoxDimension: viewBox.height }); cssProperties = getTransformStyle({ translateX, translateY, useTranslate3d }); } else { cssProperties = TOOLTIP_HIDDEN; } return { cssProperties, cssClasses: getTooltipCSSClassName({ translateX, translateY, coordinate }) }; }