import { Tooltip as Tooltip$2 } from 'antd';
import cs from 'classnames';
import React__default, { useRef, useMemo, useCallback, useEffect } from 'react';
import EllipsisTooltipContent from './EllipsisTooltipContent.js';

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
  enumerable: true,
  configurable: true,
  writable: true,
  value
}) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) {
    if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]);
  }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
var __objRest = (source, exclude) => {
  var target = {};
  for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop];
  if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) {
    if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop];
  }
  return target;
};
let componentId = 0;
const TooltipDefaultClass = "E_4100_0_7_t1m2x205";
const InternalTooltip = props => {
  const _a = props,
    {
      followMouse,
      overlayClassName,
      overlayStyle,
      children
    } = _a,
    restProps = __objRest(_a, ["followMouse", "overlayClassName", "overlayStyle", "children"]);
  const id = useRef(++componentId);
  const uniquePopupClass = `kit-popup-${id.current}`;
  const uniqueContainerClass = `kit-tooltip-${id.current}`;
  const _children = useMemo(() => {
    if (followMouse) {
      const child = React__default.isValidElement(children) ? children : /* @__PURE__ */React__default.createElement("span", null, children);
      return React__default.cloneElement(child, {
        className: cs(child.props.className, uniqueContainerClass)
      });
    } else {
      return children;
    }
  }, [children, followMouse, uniqueContainerClass]);
  const onmousemove = useCallback(event => {
    const popup = document.querySelector(`.${uniquePopupClass}`);
    if (!popup) return;
    popup.style.left = event.pageX + "px";
    popup.style.top = event.pageY + "px";
  }, [uniquePopupClass]);
  useEffect(() => {
    if (followMouse) {
      const container = document.querySelector(`.${uniqueContainerClass}`);
      container == null ? void 0 : container.addEventListener("mousemove", onmousemove);
      return () => {
        container == null ? void 0 : container.removeEventListener("mousemove", onmousemove);
      };
    }
  }, [followMouse, onmousemove, uniqueContainerClass]);
  return /* @__PURE__ */React__default.createElement(Tooltip$2, __spreadProps(__spreadValues({}, restProps), {
    overlayClassName: cs({
      [uniquePopupClass]: followMouse
    }, TooltipDefaultClass, overlayClassName),
    children: _children,
    overlayStyle: followMouse ? __spreadValues({
      transform: "translate(-50%, -100%)",
      pointerEvents: "none"
    }, overlayStyle) : overlayStyle
  }));
};
const Tooltip = InternalTooltip;
Tooltip.EllipsisContent = EllipsisTooltipContent;
var Tooltip$1 = Tooltip;

export { Tooltip$1 as default };
