UNPKG

recharts

Version:
119 lines (118 loc) 5.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getTooltipCSSClassName = getTooltipCSSClassName; exports.getTooltipTranslate = getTooltipTranslate; exports.getTooltipTranslateXY = getTooltipTranslateXY; exports.getTransformStyle = getTransformStyle; var _clsx2 = _interopRequireDefault(require("clsx")); var _reactSmooth = require("react-smooth"); var _DataUtils = require("../DataUtils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); } function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper'; var TOOLTIP_HIDDEN = { visibility: 'hidden' }; function getTooltipCSSClassName(_ref) { var _clsx; var coordinate = _ref.coordinate, translateX = _ref.translateX, translateY = _ref.translateY; return (0, _clsx2["default"])(CSS_CLASS_PREFIX, (_clsx = {}, _defineProperty(_clsx, "".concat(CSS_CLASS_PREFIX, "-right"), (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX >= coordinate.x), _defineProperty(_clsx, "".concat(CSS_CLASS_PREFIX, "-left"), (0, _DataUtils.isNumber)(translateX) && coordinate && (0, _DataUtils.isNumber)(coordinate.x) && translateX < coordinate.x), _defineProperty(_clsx, "".concat(CSS_CLASS_PREFIX, "-bottom"), (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY >= coordinate.y), _defineProperty(_clsx, "".concat(CSS_CLASS_PREFIX, "-top"), (0, _DataUtils.isNumber)(translateY) && coordinate && (0, _DataUtils.isNumber)(coordinate.y) && translateY < coordinate.y), _clsx)); } function getTooltipTranslateXY(_ref2) { var allowEscapeViewBox = _ref2.allowEscapeViewBox, coordinate = _ref2.coordinate, key = _ref2.key, offsetTopLeft = _ref2.offsetTopLeft, position = _ref2.position, reverseDirection = _ref2.reverseDirection, tooltipDimension = _ref2.tooltipDimension, viewBox = _ref2.viewBox, viewBoxDimension = _ref2.viewBoxDimension; if (position && (0, _DataUtils.isNumber)(position[key])) { return position[key]; } var negative = coordinate[key] - tooltipDimension - offsetTopLeft; var positive = coordinate[key] + offsetTopLeft; if (allowEscapeViewBox[key]) { return reverseDirection[key] ? negative : positive; } if (reverseDirection[key]) { var _tooltipBoundary = negative; var _viewBoxBoundary = viewBox[key]; if (_tooltipBoundary < _viewBoxBoundary) { return Math.max(positive, viewBox[key]); } return Math.max(negative, viewBox[key]); } var tooltipBoundary = positive + tooltipDimension; var viewBoxBoundary = viewBox[key] + viewBoxDimension; if (tooltipBoundary > viewBoxBoundary) { return Math.max(negative, viewBox[key]); } return Math.max(positive, viewBox[key]); } function getTransformStyle(_ref3) { var translateX = _ref3.translateX, translateY = _ref3.translateY, useTranslate3d = _ref3.useTranslate3d; return (0, _reactSmooth.translateStyle)({ transform: useTranslate3d ? "translate3d(".concat(translateX, "px, ").concat(translateY, "px, 0)") : "translate(".concat(translateX, "px, ").concat(translateY, "px)") }); } function getTooltipTranslate(_ref4) { var allowEscapeViewBox = _ref4.allowEscapeViewBox, coordinate = _ref4.coordinate, offsetTopLeft = _ref4.offsetTopLeft, position = _ref4.position, reverseDirection = _ref4.reverseDirection, tooltipBox = _ref4.tooltipBox, useTranslate3d = _ref4.useTranslate3d, viewBox = _ref4.viewBox; var cssProperties, translateX, translateY; if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) { translateX = getTooltipTranslateXY({ allowEscapeViewBox: allowEscapeViewBox, coordinate: coordinate, key: 'x', offsetTopLeft: offsetTopLeft, position: position, reverseDirection: reverseDirection, tooltipDimension: tooltipBox.width, viewBox: viewBox, viewBoxDimension: viewBox.width }); translateY = getTooltipTranslateXY({ allowEscapeViewBox: allowEscapeViewBox, coordinate: coordinate, key: 'y', offsetTopLeft: offsetTopLeft, position: position, reverseDirection: reverseDirection, tooltipDimension: tooltipBox.height, viewBox: viewBox, viewBoxDimension: viewBox.height }); cssProperties = getTransformStyle({ translateX: translateX, translateY: translateY, useTranslate3d: useTranslate3d }); } else { cssProperties = TOOLTIP_HIDDEN; } return { cssProperties: cssProperties, cssClasses: getTooltipCSSClassName({ translateX: translateX, translateY: translateY, coordinate: coordinate }) }; }