import { jsxs as I, jsx as z } from "react/jsx-runtime";
import { Fragment as B } from "react";
import { line as L } from "d3-shape";
import * as O from "d3";
import { formatContent as R } from "./Tooltip.js";
import { injectIntl as W } from "react-intl";
const X = (r, m, t, S, c, g, j, w) => W((l) => {
  const { intl: A } = l;
  let o = S === "grouped";
  if (r) {
    const { bars: y, xScale: u, yScale: x, innerWidth: M, innerHeight: E } = l;
    let s = /* @__PURE__ */ new Set(), d = [], n = 0;
    y && y.length > 0 ? (s = new Set(l.bars.map((e) => e.data.indexValue)), d = r.data.filter((e) => Array.from(s).find((p) => p == e[0])), n = t === "horizontal" ? l.bars[0].height : l.bars[0].width) : (o = !1, r.data && (r.data.forEach((e) => {
      e && s.add(e[0]);
    }), d = r.data, n = t === "horizontal" ? E / s.size : M / s.size));
    let a, h;
    t === "horizontal" ? (h = 1, a = 0) : (h = 0, a = 1);
    const b = L();
    b.x((e) => t === "horizontal" ? u(e[h]) : u(e[h]) + n * (o ? c.length : 1) / 2).y((e) => t === "horizontal" ? x(e[a]) + n * (o ? c.length : 1) / 2 : x(e[a]));
    const i = O.select("#root").append("div").attr("class", "chart tooltip").style("transition", "all 1s ease-out;").style("background-color", m).style("position", "absolute").style("visibility", "hidden");
    return /* @__PURE__ */ I(B, { children: [
      /* @__PURE__ */ z(
        "path",
        {
          d: b(d),
          fill: "none",
          "stroke-width": "4",
          stroke: `${m}`,
          style: { pointerEvents: "none" }
        }
      ),
      d.map((e) => {
        const v = t === "horizontal" ? n * (o ? c.length : 1) / 2 : 0, p = t === "horizontal" ? 0 : n * (o ? c.length : 1) / 2;
        return /* @__PURE__ */ z(
          "circle",
          {
            onMouseOver: (f) => {
              i.style("visibility", "visible");
            },
            onMouseMove: (f) => {
              g && g.trim().length > 0 && (i.html(
                R(
                  g,
                  {
                    x: e[0],
                    y: e[1],
                    title: j,
                    measure: w
                  },
                  A
                )
              ), i.style(
                "top",
                f.pageY - i.node().getBoundingClientRect().height + "px"
              ).style(
                "left",
                f.pageX - i.node().getBoundingClientRect().width + "px"
              ));
            },
            onMouseOut: (f) => i.style("visibility", "hidden"),
            cx: u(e[h]) + p,
            cy: x(e[a]) + v,
            r: 7,
            fill: m,
            style: { pointerEvents: "all", cursor: "pointer" }
          },
          e.index
        );
      })
    ] });
  } else
    return null;
});
export {
  X as default
};
