import { computed as p, ref as i, watch as He, onMounted as Ye, onBeforeUnmount as Qe, createElementBlock as n, openBlock as r, unref as c, normalizeStyle as W, normalizeClass as M, createBlock as $, createCommentVNode as d, createElementVNode as _, createVNode as ee, createSlots as Je, withCtx as y, renderSlot as f, normalizeProps as N, guardReactiveProps as S, Fragment as T, renderList as P, toDisplayString as U, createTextVNode as xe, nextTick as Ke } from "vue";
import { u as Ze, c as et, t as tt, p as x, a as at, o as ot, e as I, b as lt, g as Ae, d as Oe, Q as Fe, v as rt, i as Ne, f as V, X as st, s as te, w as nt, R as Se, q as ut, r as it, x as ct, y as dt } from "./index-BdV23M_4.js";
import { t as vt, u as ht } from "./useResponsive-vZgZwV-S.js";
import { _ as pt } from "./Title-Dr0O3Ohb.js";
import { u as gt, U as ft } from "./usePrinter-TFomTfxX.js";
import { _ as yt } from "./Tooltip-C8mLFDBp.js";
import mt from "./vue-ui-sparkbar-Bj9M7Klo.js";
import { L as bt } from "./Legend-BCngKEVr.js";
import { D as kt } from "./DataTable-D9wdDVT6.js";
import Ct from "./vue-ui-skeleton-CVnkLuNk.js";
import wt from "./vue-ui-accordion-2_hSAOvX.js";
import { u as Ie } from "./useNestedProp-DyW-iWus.js";
import { _ as $t } from "./PackageVersion-DR6SOSy8.js";
import { P as _t } from "./PenAndPaper-DxsKkGjV.js";
import { u as Tt } from "./useUserOptionState-BIvW1Kz7.js";
import { u as Pt } from "./useChartAccessibility-BWojgys7.js";
import { _ as xt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
const At = ["id"], Ot = ["xmlns", "viewBox"], Ft = ["width", "height"], Nt = ["id"], St = ["stop-color"], It = ["stop-color"], Rt = { key: 1 }, Lt = ["x1", "y1", "x2", "y2", "stroke", "stroke-width"], zt = { key: 0 }, Mt = ["d", "stroke", "stroke-width"], Ut = ["d", "stroke", "stroke-width"], Vt = { key: 2 }, Et = ["x", "y", "text-anchor", "font-size", "fill", "onMouseenter"], Bt = ["points", "stroke", "stroke-width"], Dt = ["points", "stroke", "stroke-width", "fill"], Gt = { key: 3 }, Wt = ["cx", "cy", "fill", "r", "stroke"], Xt = {
  key: 5,
  class: "vue-data-ui-watermark"
}, jt = ["onClick"], qt = {
  key: 0,
  style: { "max-width": "200px", margin: "0 auto" }
}, Ht = {
  __name: "vue-ui-radar",
  props: {
    config: {
      type: Object,
      default() {
        return {};
      }
    },
    dataset: {
      type: Object,
      default() {
        return {};
      }
    }
  },
  emits: ["selectLegend"],
  setup(Re, { expose: Le, emit: ze }) {
    const { vue_ui_radar: Me } = Ze(), g = Re, R = p(() => !!g.dataset && Object.keys(g.dataset).length), w = i(et()), Ue = i(null), X = i(!1), j = i(""), ae = i(0), L = i(null), oe = i(null), le = i(null), re = i(null), se = i(null), ne = i(0), ue = i(0), ie = i(0), e = p({
      get: () => he(),
      set: (t) => t
    }), { userOptionsVisible: q, setUserOptionsVisibility: ce, keepUserOptionState: de } = Tt({ config: e.value }), { svgRef: ve } = Pt({ config: e.value.style.chart.title });
    function he() {
      const t = Ie({
        userConfig: g.config,
        defaultConfig: Me
      });
      return t.theme ? {
        ...Ie({
          userConfig: at.vue_ui_radar[t.theme] || g.config,
          defaultConfig: t
        }),
        customPalette: tt[t.theme] || x
      } : t;
    }
    He(() => g.config, (t) => {
      e.value = he(), q.value = !e.value.userOptions.showOnChartHover, pe(), ne.value += 1, ue.value += 1, ie.value += 1, b.value.dataLabels.show = e.value.style.chart.layout.labels.dataLabels.show, b.value.showTable = e.value.table.show, b.value.showTooltip = e.value.style.chart.tootlip.show;
    }, { deep: !0 });
    const E = i(null);
    function pe() {
      if (ot(g.dataset) && I({
        componentName: "VueUiRadar",
        type: "dataset"
      }), e.value.responsive) {
        const t = vt(() => {
          const { width: a, height: o } = ht({
            chart: L.value,
            title: e.value.style.chart.title.text ? oe.value : null,
            legend: e.value.style.chart.legend.show ? le.value : null,
            source: re.value,
            noTitle: se.value
          });
          requestAnimationFrame(() => {
            u.value.width = a, u.value.height = o;
          });
        });
        E.value = new ResizeObserver(t), E.value.observe(L.value.parentNode);
      }
    }
    Ye(() => {
      pe();
    }), Qe(() => {
      E.value && E.value.disconnect();
    });
    const { isPrinting: ge, isImaging: fe, generatePdf: ye, generateImage: me } = gt({
      elementId: `vue-ui-radar_${w.value}`,
      fileName: e.value.style.chart.title.text || "vue-ui-radar",
      options: e.value.userOptions.print
    }), Ve = p(() => e.value.userOptions.show && !e.value.style.chart.title.text), be = p(() => lt(e.value.customPalette)), b = i({
      dataLabels: {
        show: e.value.style.chart.layout.labels.dataLabels.show
      },
      showTable: e.value.table.show,
      showTooltip: e.value.style.chart.tooltip.show
    }), Ee = p(() => ({
      style: {
        backgroundColor: "#FFFFFF00",
        animation: {
          show: e.value.style.chart.tooltip.animation.show,
          animationFrames: e.value.style.chart.tooltip.animation.animationFrames
        },
        labels: {
          fontSize: e.value.style.chart.tooltip.fontSize,
          name: {
            color: e.value.style.chart.tooltip.color
          }
        },
        gutter: {
          backgroundColor: "#CCCCCC",
          opacity: 30
        }
      }
    })), u = i({
      height: 312,
      width: 512
    }), Be = ze, v = i([]), z = i(null), A = i(!1);
    function ke(t) {
      A.value = !0, v.value.includes(t) ? (z.value = t, v.value = v.value.filter((a) => a !== t), setTimeout(() => {
        A.value = !1, z.value = null;
      }, 500)) : (v.value.push(t), setTimeout(() => {
        A.value = !1;
      }, 500)), Be("selectLegend", O.value.filter((a, o) => !v.value.includes(o)).map((a) => ({
        name: a.name,
        color: a.color,
        proportion: a.totalProportion
      })));
    }
    function De() {
      return O.value.map((t) => ({
        name: t.name,
        color: t.color,
        proportion: t.totalProportion
      }));
    }
    const m = p(() => [null, void 0].includes(g.dataset.categories) ? (I({
      componentName: "VueUiRadar",
      type: "datasetAttribute",
      property: "categories ({ name: string; prefix?: string; suffix?: string}[])"
    }), []) : (g.dataset.categories.length === 0 ? I({
      componentName: "VueUiRadar",
      type: "datasetAttributeEmpty",
      property: "categories"
    }) : g.dataset.categories.forEach((t, a) => {
      Ae({
        datasetObject: t,
        requiredAttributes: ["name"]
      }).forEach((o) => {
        I({
          componentName: "VueUiRadar",
          type: "datasetAttribute",
          property: `category.${o} at index ${a}`,
          index: a
        });
      });
    }), [null, void 0].includes(g.dataset.series) ? I({
      componentName: "VueUiRadar",
      type: "datasetAttribute",
      property: "series ({ name: string; values: number[]; color?: string; target: number}[])"
    }) : g.dataset.series.forEach((t, a) => {
      Ae({
        datasetObject: t,
        requiredAttributes: ["name", "values", "target"]
      }).forEach((o) => {
        I({
          componentName: "VueUiRadar",
          type: "datasetSerieAttribute",
          key: "series",
          property: o,
          index: a
        });
      });
    }), g.dataset.categories.map((t, a) => ({
      name: t.name,
      categoryId: `radar_category_${w.value}_${a}`,
      color: Oe(t.color) || be.value[a] || x[a] || x[a % x.length],
      prefix: t.prefix ?? "",
      suffix: t.suffix ?? ""
    })))), k = p(() => R.value ? g.dataset.series.map((t, a) => ({
      ...t,
      color: Oe(t.color) || be.value[a] || x[a] || x[a % x.length],
      serieId: `radar_serie_${w.value}_${a}`,
      formatter: t.formatter || null
    })) : []), Ce = p(() => Math.max(...k.value.flatMap((t) => t.values))), we = p(() => k.value.length), H = p(() => Math.min(u.value.width, u.value.height) / 3), $e = p(() => Fe({
      plot: { x: u.value.width / 2, y: u.value.height / 2 },
      radius: H.value,
      sides: we.value,
      rotation: 0
    })), Ge = p(() => {
      const t = [];
      for (let a = 0; a < H.value; a += H.value / e.value.style.chart.layout.grid.graduations)
        t.push(a);
      return t;
    }), C = p(() => $e.value.coordinates.map((t, a) => {
      const o = k.value[a].values.map((l) => We({
        centerX: u.value.width / 2,
        centerY: u.value.height / 2,
        apexX: t.x,
        apexY: t.y,
        proportion: l / (k.value[a].target || Ce.value)
      }));
      return {
        ...t,
        ...k.value[a],
        plots: o
      };
    }));
    function Y({ x: t, y: a }) {
      let o = "middle";
      return t = Math.round(t), a = Math.round(a), t > u.value.width / 2 && (t += 12, o = "start"), t < u.value.width / 2 && (t -= 12, o = "end"), a > u.value.height / 2 && (a += 20), a < u.value.height / 2 && (a -= 12), a === u.value.height / 2 && (a += 4), { x: t, y: a, anchor: o };
    }
    function We({ centerX: t, centerY: a, apexX: o, apexY: l, proportion: s }) {
      return {
        x: t + (o - t) * s,
        y: a + (l - a) * s
      };
    }
    const O = p(() => {
      const t = k.value.map((a, o) => a.values.map((l) => l / (a.target || Ce.value)));
      return m.value.map((a, o) => ({
        ...a,
        totalProportion: rt(t.map((l) => l[o]).reduce((l, s) => l + s, 0) / k.value.length),
        shape: "circle",
        opacity: v.value.includes(o) ? 0.5 : 1,
        segregate: () => ke(o),
        isSegregated: v.value.includes(o)
      }));
    }), Xe = p(() => ({
      cy: "radar-div-legend",
      backgroundColor: e.value.style.chart.legend.backgroundColor,
      color: e.value.style.chart.legend.color,
      fontSize: e.value.style.chart.legend.fontSize,
      paddingBottom: 12,
      fontWeight: e.value.style.chart.legend.bold ? "bold" : ""
    })), B = p(() => {
      const t = [
        { name: e.value.translations.datapoint, color: "" },
        { name: e.value.translations.target, color: "" },
        ...O.value
      ], a = g.dataset.series.map((l) => [
        l.name,
        Ne(
          l.formatter,
          l.target,
          V({
            p: l.prefix,
            v: l.target,
            s: l.suffix,
            r: e.value.table.td.roundingValue
          })
        ),
        ...l.values.map((s, h) => `${Ne(
          l.formatter,
          s,
          V({ p: m.value[h].prefix, v: s, s: m.value[h].suffix, r: e.value.table.td.roundingValue })
        )} (${isNaN(s / l.target) ? "" : V({
          v: s / l.target * 100,
          s: "%",
          r: e.value.table.td.roundingPercentage
        })})`)
      ]), o = {
        th: {
          backgroundColor: e.value.table.th.backgroundColor,
          color: e.value.table.th.color,
          outline: e.value.table.th.outline
        },
        td: {
          backgroundColor: e.value.table.td.backgroundColor,
          color: e.value.table.td.color,
          outline: e.value.table.td.outline
        },
        breakpoint: e.value.table.responsiveBreakpoint
      };
      return { head: t, body: a, config: o, colNames: t };
    }), D = i(null), Q = i([]), J = i(null);
    function je(t, a) {
      Q.value = [], D.value = a, X.value = !0;
      let o = "";
      J.value = {
        datapoint: t,
        seriesIndex: a,
        series: {
          categories: m.value,
          datapoints: k.value,
          radar: C.value
        },
        config: e.value
      };
      const l = e.value.style.chart.tooltip.customFormat;
      if (ct(l) && dt(() => l({
        seriesIndex: a,
        datapoint: t,
        series: { categories: m.value, datapoints: k.value, radar: C.value },
        config: e.value
      })))
        j.value = l({
          seriesIndex: a,
          datapoint: t,
          series: { categories: m.value, datapoints: k.value, radar: C.value },
          config: e.value
        });
      else {
        o += `<div style="width:100%;text-align:center;border-bottom:1px solid ${e.value.style.chart.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${t.name}</div>`;
        for (let s = 0; s < t.values.length; s += 1)
          v.value.includes(s) || Q.value.push({
            name: m.value[s].name,
            value: t.values[s] / t.target * 100,
            color: m.value[s].color,
            suffix: "%)",
            prefix: `${V({ p: m.value[s].prefix ?? "", v: t.values[s], s: m.value[s].suffix ?? "", r: e.value.style.chart.tooltip.roundingValue })} (`,
            rounding: e.value.style.chart.tooltip.roundingPercentage,
            formatter: t.formatter
          });
        j.value = o;
      }
    }
    function _e() {
      Ke(() => {
        const t = [[e.value.style.chart.title.text], [e.value.style.chart.title.subtitle.text], [""]], a = [[""], [e.value.translations.target], ...O.value.flatMap((h) => [[h.name], ["%"]])], o = g.dataset.series.map((h, Yt) => [h.name, h.target, ...h.values.flatMap((Z) => [
          Z,
          isNaN(Z / h.target) ? "" : Z / h.target * 100
        ])]), l = t.concat([a]).concat(o), s = ut(l);
        it({ csvContent: s, title: e.value.style.chart.title.text || "vue-ui-radar" });
      });
    }
    const F = i(!1);
    function qe(t) {
      F.value = t, ae.value += 1;
    }
    function Te() {
      b.value.showTable = !b.value.showTable;
    }
    function Pe() {
      b.value.showTooltip = !b.value.showTooltip;
    }
    const G = i(!1);
    function K() {
      G.value = !G.value;
    }
    return Le({
      getData: De,
      generatePdf: ye,
      generateCsv: _e,
      generateImage: me,
      toggleTable: Te,
      toggleTooltip: Pe,
      toggleAnnotator: K
    }), (t, a) => (r(), n("div", {
      class: M(`vue-ui-radar ${F.value ? "vue-data-ui-wrapper-fullscreen" : ""} ${e.value.useCssAnimation ? "" : "vue-ui-dna"}`),
      ref_key: "radarChart",
      ref: L,
      id: `vue-ui-radar_${w.value}`,
      style: W(`font-family:${e.value.style.fontFamily};width:100%; ${e.value.responsive ? "height: 100%;" : ""} text-align:center;background:${e.value.style.chart.backgroundColor}`),
      onMouseenter: a[3] || (a[3] = () => c(ce)(!0)),
      onMouseleave: a[4] || (a[4] = () => c(ce)(!1))
    }, [
      e.value.userOptions.buttons.annotator ? (r(), $(_t, {
        key: 0,
        svgRef: c(ve),
        backgroundColor: e.value.style.chart.backgroundColor,
        color: e.value.style.chart.color,
        active: G.value,
        onClose: K
      }, null, 8, ["svgRef", "backgroundColor", "color", "active"])) : d("", !0),
      Ve.value ? (r(), n("div", {
        key: 1,
        ref_key: "noTitle",
        ref: se,
        class: "vue-data-ui-no-title-space",
        style: "height:36px; width: 100%;background:transparent"
      }, null, 512)) : d("", !0),
      e.value.style.chart.title.text ? (r(), n("div", {
        key: 2,
        ref_key: "chartTitle",
        ref: oe,
        style: "width:100%;background:transparent;padding-bottom:12px"
      }, [
        (r(), $(pt, {
          key: `title_${ne.value}`,
          config: {
            title: {
              cy: "radar-div-title",
              ...e.value.style.chart.title
            },
            subtitle: {
              cy: "radar-div-subtitle",
              ...e.value.style.chart.title.subtitle
            }
          }
        }, null, 8, ["config"]))
      ], 512)) : d("", !0),
      e.value.userOptions.show && R.value && (c(de) || c(q)) ? (r(), $(ft, {
        ref_key: "details",
        ref: Ue,
        key: `user_options_${ae.value}`,
        backgroundColor: e.value.style.chart.backgroundColor,
        color: e.value.style.chart.color,
        isImaging: c(fe),
        isPrinting: c(ge),
        uid: w.value,
        hasTooltip: e.value.userOptions.buttons.tooltip && e.value.style.chart.tooltip.show,
        hasPdf: e.value.userOptions.buttons.pdf,
        hasImg: e.value.userOptions.buttons.img,
        hasXls: e.value.userOptions.buttons.csv,
        hasTable: e.value.userOptions.buttons.table,
        hasFullscreen: e.value.userOptions.buttons.fullscreen,
        isFullscreen: F.value,
        isTooltip: b.value.showTooltip,
        titles: { ...e.value.userOptions.buttonTitles },
        chartElement: L.value,
        position: e.value.userOptions.position,
        hasAnnotator: e.value.userOptions.buttons.annotator,
        isAnnotation: G.value,
        onToggleFullscreen: qe,
        onGeneratePdf: c(ye),
        onGenerateCsv: _e,
        onGenerateImage: c(me),
        onToggleTable: Te,
        onToggleTooltip: Pe,
        onToggleAnnotator: K,
        style: W({
          visibility: c(de) ? c(q) ? "visible" : "hidden" : "visible"
        })
      }, Je({ _: 2 }, [
        t.$slots.menuIcon ? {
          name: "menuIcon",
          fn: y(({ isOpen: o, color: l }) => [
            f(t.$slots, "menuIcon", N(S({ isOpen: o, color: l })), void 0, !0)
          ]),
          key: "0"
        } : void 0,
        t.$slots.optionTooltip ? {
          name: "optionTooltip",
          fn: y(() => [
            f(t.$slots, "optionTooltip", {}, void 0, !0)
          ]),
          key: "1"
        } : void 0,
        t.$slots.optionPdf ? {
          name: "optionPdf",
          fn: y(() => [
            f(t.$slots, "optionPdf", {}, void 0, !0)
          ]),
          key: "2"
        } : void 0,
        t.$slots.optionCsv ? {
          name: "optionCsv",
          fn: y(() => [
            f(t.$slots, "optionCsv", {}, void 0, !0)
          ]),
          key: "3"
        } : void 0,
        t.$slots.optionImg ? {
          name: "optionImg",
          fn: y(() => [
            f(t.$slots, "optionImg", {}, void 0, !0)
          ]),
          key: "4"
        } : void 0,
        t.$slots.optionTable ? {
          name: "optionTable",
          fn: y(() => [
            f(t.$slots, "optionTable", {}, void 0, !0)
          ]),
          key: "5"
        } : void 0,
        t.$slots.optionFullscreen ? {
          name: "optionFullscreen",
          fn: y(({ toggleFullscreen: o, isFullscreen: l }) => [
            f(t.$slots, "optionFullscreen", N(S({ toggleFullscreen: o, isFullscreen: l })), void 0, !0)
          ]),
          key: "6"
        } : void 0,
        t.$slots.optionAnnotator ? {
          name: "optionAnnotator",
          fn: y(({ toggleAnnotator: o, isAnnotator: l }) => [
            f(t.$slots, "optionAnnotator", N(S({ toggleAnnotator: o, isAnnotator: l })), void 0, !0)
          ]),
          key: "7"
        } : void 0
      ]), 1032, ["backgroundColor", "color", "isImaging", "isPrinting", "uid", "hasTooltip", "hasPdf", "hasImg", "hasXls", "hasTable", "hasFullscreen", "isFullscreen", "isTooltip", "titles", "chartElement", "position", "hasAnnotator", "isAnnotation", "onGeneratePdf", "onGenerateImage", "style"])) : d("", !0),
      R.value ? (r(), n("svg", {
        key: 4,
        ref_key: "svgRef",
        ref: ve,
        xmlns: c(st),
        class: M({ "vue-data-ui-fullscreen--on": F.value, "vue-data-ui-fulscreen--off": !F.value }),
        viewBox: `0 0 ${u.value.width <= 0 ? 10 : u.value.width} ${u.value.height <= 0 ? 10 : u.value.height}`,
        style: W(`max-width:100%;overflow:visible;background:transparent;color:${e.value.style.chart.color}`)
      }, [
        ee($t),
        t.$slots["chart-background"] ? (r(), n("foreignObject", {
          key: 0,
          x: 0,
          y: 0,
          width: u.value.width <= 0 ? 10 : u.value.width,
          height: u.value.height <= 0 ? 10 : u.value.height,
          style: {
            pointerEvents: "none"
          }
        }, [
          f(t.$slots, "chart-background", {}, void 0, !0)
        ], 8, Ft)) : d("", !0),
        _("defs", null, [
          (r(!0), n(T, null, P(m.value, (o, l) => (r(), n("radialGradient", {
            cx: "50%",
            cy: "50%",
            r: "50%",
            fx: "50%",
            fy: "50%",
            id: `radar_gradient_${w.value}_${l}`
          }, [
            _("stop", {
              offset: "0%",
              "stop-color": c(te)(c(nt)(o.color, 0.05), e.value.style.chart.layout.dataPolygon.opacity)
            }, null, 8, St),
            _("stop", {
              offset: "100%",
              "stop-color": c(te)(o.color, e.value.style.chart.layout.dataPolygon.opacity)
            }, null, 8, It)
          ], 8, Nt))), 256))
        ]),
        e.value.style.chart.layout.grid.show ? (r(), n("g", Rt, [
          (r(!0), n(T, null, P(C.value, (o) => (r(), n("line", {
            x1: u.value.width / 2,
            y1: u.value.height / 2,
            x2: o.x,
            y2: o.y,
            stroke: e.value.style.chart.layout.grid.stroke,
            "stroke-width": e.value.style.chart.layout.grid.strokeWidth
          }, null, 8, Lt))), 256)),
          e.value.style.chart.layout.grid.graduations > 0 ? (r(), n("g", zt, [
            (r(!0), n(T, null, P(Ge.value, (o) => (r(), n("path", {
              d: c(Fe)({
                plot: { x: u.value.width / 2, y: u.value.height / 2 },
                radius: o,
                sides: we.value,
                rotation: 0
              }).path,
              fill: "none",
              stroke: e.value.style.chart.layout.grid.stroke,
              "stroke-width": e.value.style.chart.layout.grid.strokeWidth
            }, null, 8, Mt))), 256))
          ])) : d("", !0)
        ])) : d("", !0),
        _("path", {
          d: $e.value.path,
          fill: "none",
          stroke: e.value.style.chart.layout.outerPolygon.stroke,
          "stroke-width": e.value.style.chart.layout.outerPolygon.strokeWidth,
          "stroke-linejoin": "round",
          "stroke-linecap": "round"
        }, null, 8, Ut),
        e.value.style.chart.layout.labels.dataLabels.show ? (r(), n("g", Vt, [
          (r(!0), n(T, null, P(C.value, (o, l) => (r(), n("text", {
            x: Y(o).x,
            y: Y(o).y,
            "text-anchor": Y(o).anchor,
            "font-size": e.value.style.chart.layout.labels.dataLabels.fontSize,
            fill: e.value.style.chart.layout.labels.dataLabels.color,
            onMouseenter: (s) => je(o, l),
            onMouseleave: a[0] || (a[0] = (s) => {
              X.value = !1, D.value = null;
            })
          }, U(o.name), 41, Et))), 256))
        ])) : d("", !0),
        (r(!0), n(T, null, P(m.value, (o, l) => (r(), n("g", null, [
          _("g", null, [
            e.value.useCssAnimation || !e.value.useCssAnimation && !v.value.includes(l) ? (r(), n("polygon", {
              key: 0,
              points: c(Se)(C.value.map((s) => s.plots[l]), !1, !0),
              stroke: e.value.style.chart.backgroundColor,
              "stroke-width": e.value.style.chart.layout.dataPolygon.strokeWidth + 1,
              fill: "none",
              class: M({ "animated-out": v.value.includes(l) && e.value.useCssAnimation, "animated-in": A.value && z.value === l && e.value.useCssAnimation })
            }, null, 10, Bt)) : d("", !0),
            e.value.useCssAnimation || !e.value.useCssAnimation && !v.value.includes(l) ? (r(), n("polygon", {
              key: 1,
              points: c(Se)(C.value.map((s) => s.plots[l]), !1, !0),
              stroke: o.color,
              "stroke-width": e.value.style.chart.layout.dataPolygon.strokeWidth,
              fill: e.value.style.chart.layout.dataPolygon.transparent ? "transparent" : e.value.style.chart.layout.dataPolygon.useGradient ? `url(#radar_gradient_${w.value}_${l})` : c(te)(o.color, e.value.style.chart.layout.dataPolygon.opacity),
              class: M({ "animated-out": v.value.includes(l) && e.value.useCssAnimation, "animated-in": A.value && z.value === l && e.value.useCssAnimation })
            }, null, 10, Dt)) : d("", !0)
          ])
        ]))), 256)),
        e.value.style.chart.layout.plots.show ? (r(), n("g", Gt, [
          (r(!0), n(T, null, P(C.value, (o, l) => (r(), n("g", null, [
            (r(!0), n(T, null, P(o.plots, (s, h) => (r(), n("circle", {
              cx: s.x,
              cy: s.y,
              fill: v.value.includes(h) ? "transparent" : m.value[h].color,
              r: D.value !== null && D.value === l ? e.value.style.chart.layout.plots.radius * 1.6 : e.value.style.chart.layout.plots.radius,
              stroke: v.value.includes(h) ? "transparent" : e.value.style.chart.backgroundColor,
              "stroke-width": 0.5,
              class: M({ "animated-out": v.value.includes(h) && e.value.useCssAnimation, "animated-in": A.value && z.value === h && e.value.useCssAnimation })
            }, null, 10, Wt))), 256))
          ]))), 256))
        ])) : d("", !0),
        f(t.$slots, "svg", { svg: u.value }, void 0, !0)
      ], 14, Ot)) : d("", !0),
      t.$slots.watermark ? (r(), n("div", Xt, [
        f(t.$slots, "watermark", N(S({ isPrinting: c(ge) || c(fe) })), void 0, !0)
      ])) : d("", !0),
      R.value ? d("", !0) : (r(), $(Ct, {
        key: 6,
        config: {
          type: "radar",
          style: {
            backgroundColor: e.value.style.chart.backgroundColor,
            radar: {
              grid: {
                color: e.value.style.chart.layout.outerPolygon.stroke
              },
              shapes: {
                color: e.value.style.chart.layout.outerPolygon.stroke
              }
            }
          }
        }
      }, null, 8, ["config"])),
      _("div", {
        ref_key: "chartLegend",
        ref: le
      }, [
        e.value.style.chart.legend.show ? (r(), $(bt, {
          key: `legend_${ie.value}`,
          legendSet: O.value,
          config: Xe.value,
          onClickMarker: a[1] || (a[1] = ({ i: o }) => ke(o))
        }, {
          item: y(({ legend: o, index: l }) => [
            _("div", {
              onClick: (s) => o.segregate(),
              style: W(`opacity:${v.value.includes(l) ? 0.5 : 1}`)
            }, U(o.name) + ": " + U(c(V)({
              v: o.totalProportion * 100,
              s: "%",
              r: e.value.style.chart.legend.roundingPercentage
            })), 13, jt)
          ]),
          _: 1
        }, 8, ["legendSet", "config"])) : f(t.$slots, "legend", {
          key: 1,
          legend: O.value
        }, void 0, !0)
      ], 512),
      t.$slots.source ? (r(), n("div", {
        key: 7,
        ref_key: "source",
        ref: re,
        dir: "auto"
      }, [
        f(t.$slots, "source", {}, void 0, !0)
      ], 512)) : d("", !0),
      ee(yt, {
        show: b.value.showTooltip && X.value,
        backgroundColor: e.value.style.chart.tooltip.backgroundColor,
        color: e.value.style.chart.tooltip.color,
        borderRadius: e.value.style.chart.tooltip.borderRadius,
        borderColor: e.value.style.chart.tooltip.borderColor,
        borderWidth: e.value.style.chart.tooltip.borderWidth,
        backgroundOpacity: e.value.style.chart.tooltip.backgroundOpacity,
        fontSize: e.value.style.chart.tooltip.fontSize,
        position: e.value.style.chart.tooltip.position,
        offsetY: e.value.style.chart.tooltip.offsetY,
        parent: L.value,
        content: j.value,
        isFullscreen: F.value,
        isCustom: e.value.style.chart.tooltip.customFormat && typeof e.value.style.chart.tooltip.customFormat == "function"
      }, {
        "tooltip-before": y(() => [
          f(t.$slots, "tooltip-before", N(S({ ...J.value })), void 0, !0)
        ]),
        "tooltip-after": y(() => [
          ["function"].includes(typeof e.value.style.chart.tooltip.customFormat) ? d("", !0) : (r(), n("div", qt, [
            ee(mt, {
              dataset: Q.value,
              config: Ee.value,
              backgroundOpacity: 0
            }, null, 8, ["dataset", "config"])
          ])),
          f(t.$slots, "tooltip-after", N(S({ ...J.value })), void 0, !0)
        ]),
        _: 3
      }, 8, ["show", "backgroundColor", "color", "borderRadius", "borderColor", "borderWidth", "backgroundOpacity", "fontSize", "position", "offsetY", "parent", "content", "isFullscreen", "isCustom"]),
      R.value ? (r(), $(wt, {
        key: 8,
        hideDetails: "",
        config: {
          open: b.value.showTable,
          maxHeight: 1e4,
          body: {
            backgroundColor: e.value.style.chart.backgroundColor,
            color: e.value.style.chart.color
          },
          head: {
            backgroundColor: e.value.style.chart.backgroundColor,
            color: e.value.style.chart.color
          }
        }
      }, {
        content: y(() => [
          (r(), $(kt, {
            key: `table_${ue.value}`,
            colNames: B.value.colNames,
            head: B.value.head,
            body: B.value.body,
            config: B.value.config,
            title: `${e.value.style.chart.title.text}${e.value.style.chart.title.subtitle.text ? ` : ${e.value.style.chart.title.subtitle.text}` : ""}`,
            onClose: a[2] || (a[2] = (o) => b.value.showTable = !1)
          }, {
            th: y(({ th: o }) => [
              xe(U(o.name), 1)
            ]),
            td: y(({ td: o }) => [
              xe(U(o), 1)
            ]),
            _: 1
          }, 8, ["colNames", "head", "body", "config", "title"]))
        ]),
        _: 1
      }, 8, ["config"])) : d("", !0)
    ], 46, At));
  }
}, ha = /* @__PURE__ */ xt(Ht, [["__scopeId", "data-v-b6116edd"]]);
export {
  ha as default
};
