import { computed as T, ref as j, watch as Ue, onMounted as Ee, openBlock as n, createElementBlock as i, normalizeClass as Pe, normalizeStyle as D, unref as d, createBlock as G, createCommentVNode as y, createSlots as He, withCtx as O, renderSlot as S, normalizeProps as q, guardReactiveProps as X, createVNode as Ze, createElementVNode as u, Fragment as _, renderList as m, toDisplayString as P, createTextVNode as qe, nextTick as Xe, pushScopeId as Re, popScopeId as Ye } from "vue";
import { u as Je, c as Se, t as Ke, a as Qe, p as Q, b as et, d as tt, o as lt, e as ee, g as de, l as U, m as je, f as z, X as ot, s as g, h as te, i as le, j as Te, k as I, n as oe, q as st, r as at } from "./index-CxkSLqkR.js";
import { _ as nt } from "./Title-DlWf9Ddn.js";
import { u as rt, U as ut } from "./usePrinter-C6iBjau1.js";
import it from "./vue-ui-skeleton-BNcyfNtG.js";
import { D as dt } from "./DataTable-BE81z-1L.js";
import ct from "./vue-ui-accordion-ElsMWD7y.js";
import { u as ze } from "./useNestedProp-Cl0RLl8U.js";
import { _ as ht } from "./PackageVersion-CZWTAkjP.js";
import { P as vt } from "./PenAndPaper-B-Xy37LR.js";
import { u as ft } from "./useUserOptionState-BIvW1Kz7.js";
import { _ as pt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
const se = (E) => (Re("data-v-acc3d2f2"), E = E(), Ye(), E), yt = ["id"], kt = {
  key: 1,
  style: "width:100%;background:transparent"
}, gt = ["xmlns", "viewBox"], $t = ["width", "height"], _t = ["id"], mt = ["stop-color"], bt = ["stop-color"], xt = ["id"], wt = ["stop-color"], Ct = ["stop-color"], Ft = ["id"], Mt = ["stop-color"], Pt = ["stop-color"], St = ["id"], jt = ["stop-color"], Tt = ["stop-color"], zt = ["stop-color"], Dt = { key: 1 }, Ot = ["id"], Nt = ["stop-color"], Bt = ["stop-color"], It = ["id"], At = ["stop-color"], Lt = ["stop-color"], Wt = ["id"], Vt = ["stop-color"], Gt = ["stop-color"], Ut = ["id"], Et = /* @__PURE__ */ se(() => /* @__PURE__ */ u("stop", {
  offset: "0%",
  "stop-color": "#FFFFFF"
}, null, -1)), Ht = /* @__PURE__ */ se(() => /* @__PURE__ */ u("stop", {
  offset: "100%",
  "stop-color": "#FFFFFF33"
}, null, -1)), Zt = [
  Et,
  Ht
], qt = ["x", "y", "font-size", "font-weight", "fill"], Xt = ["x", "y"], Rt = ["d", "stroke"], Yt = ["d", "stroke"], Jt = { key: 4 }, Kt = { key: 0 }, Qt = ["stroke-dasharray", "d", "stroke", "stroke-width"], el = ["stroke-dasharray", "d", "stroke", "stroke-width"], tl = ["stroke-dasharray", "d", "stroke", "stroke-width"], ll = ["stroke-dasharray", "d", "stroke", "stroke-width"], ol = { key: 1 }, sl = ["d", "stroke", "stroke-width", "fill"], al = ["d", "stroke", "stroke-width", "fill"], nl = ["d", "stroke", "stroke-width", "fill"], rl = { key: 2 }, ul = ["d", "fill", "onMouseenter", "onClick"], il = ["d", "fill", "onMouseenter", "onClick"], dl = ["d", "fill", "onMouseenter", "onClick"], cl = ["d", "onMouseenter", "onClick"], hl = ["d"], vl = ["d", "stroke"], fl = ["onClick"], pl = ["stroke", "d"], yl = ["cx", "cy", "fill", "stroke"], kl = ["x", "y", "width", "height"], gl = { key: 1 }, $l = ["d", "stroke"], _l = ["d", "fill", "stroke"], ml = ["id"], bl = ["stop-color"], xl = /* @__PURE__ */ se(() => /* @__PURE__ */ u("stop", {
  offset: "77%",
  "stop-color": "#FFFFFF20"
}, null, -1)), wl = ["stop-color"], Cl = ["cx", "cy", "fill"], Fl = ["cx", "cy", "fill"], Ml = { key: 0 }, Pl = ["text-anchor", "x", "y", "fill", "font-size"], Sl = ["text-anchor", "x", "y", "fill", "font-size"], jl = { key: 2 }, Tl = ["d", "fill", "stroke"], zl = { key: 5 }, Dl = { key: 0 }, Ol = ["stroke-dasharray", "d", "stroke", "stroke-width"], Nl = ["stroke-dasharray", "d", "stroke", "stroke-width"], Bl = ["stroke-dasharray", "d", "stroke", "stroke-width"], Il = ["stroke-dasharray", "d", "stroke", "stroke-width"], Al = ["d", "stroke", "stroke-width", "fill"], Ll = ["d", "stroke", "stroke-width", "fill"], Wl = { key: 1 }, Vl = ["onClick"], Gl = ["id"], Ul = ["stop-color"], El = ["stop-color"], Hl = ["id"], Zl = ["stop-color"], ql = ["stop-color"], Xl = ["stop-color"], Rl = ["stop-color"], Yl = ["stop-color"], Jl = ["onMouseenter", "onClick", "d", "fill"], Kl = ["onMouseenter", "onClick", "d"], Ql = ["onMouseenter", "onClick", "d", "fill"], eo = ["onClick"], to = ["stroke", "d"], lo = ["cx", "cy", "fill", "stroke"], oo = ["x", "y", "width", "height"], so = { key: 1 }, ao = ["d", "stroke"], no = ["d", "fill", "stroke"], ro = ["id"], uo = ["stop-color"], io = /* @__PURE__ */ se(() => /* @__PURE__ */ u("stop", {
  offset: "77%",
  "stop-color": "#FFFFFF20"
}, null, -1)), co = ["stop-color"], ho = ["cx", "cy", "fill"], vo = ["cx", "cy", "fill"], fo = { key: 0 }, po = ["text-anchor", "x", "y", "fill", "font-size"], yo = ["text-anchor", "x", "y", "fill", "font-size"], ko = { key: 2 }, go = ["d", "fill", "stroke"], $o = {
  key: 4,
  class: "vue-data-ui-watermark"
}, _o = {
  key: 6,
  ref: "source",
  dir: "auto"
}, mo = ["innerHTML"], bo = {
  __name: "vue-ui-3d-bar",
  props: {
    config: {
      type: Object,
      default() {
        return {};
      }
    },
    dataset: {
      type: Object,
      default() {
        return {};
      }
    }
  },
  emits: ["selectDatapoint"],
  setup(E, { expose: De, emit: R }) {
    const $ = E, { vue_ui_3d_bar: Oe } = Je(), Y = T(() => !!$.dataset && Object.keys($.dataset).length), b = j(Se()), Ne = j(null), ae = j(null), A = j(!1), ce = j(0), he = j(0), t = T({
      get: () => pe(),
      set: (a) => a
    }), { userOptionsVisible: ne, setUserOptionsVisibility: ve, keepUserOptionState: fe } = ft({ config: t.value });
    function pe() {
      const a = ze({
        userConfig: $.config,
        defaultConfig: Oe
      });
      return a.theme ? {
        ...ze({
          userConfig: Ke.vue_ui_3d_bar[a.theme] || $.config,
          defaultConfig: a
        }),
        customPalette: Qe[a.theme] || Q
      } : a;
    }
    Ue(() => $.config, (a) => {
      t.value = pe(), ne.value = !t.value.userOptions.showOnChartHover, _e(), ce.value += 1, he.value += 1, H.value.showTable = t.value.table.show;
    }, { deep: !0 });
    const { isPrinting: ye, isImaging: ke, generatePdf: ge, generateImage: $e } = rt({
      elementId: `3d_bar_${b.value}`,
      fileName: t.value.style.chart.title.text || "vue-ui-3d-bar"
    }), Be = T(() => et(t.value.customPalette)), H = j({
      showTable: t.value.table.show
    }), F = T(() => $.dataset.series && $.dataset.series.length), o = T(() => ({
      height: t.value.style.chart.box.dimensions.height,
      width: t.value.style.chart.box.dimensions.width,
      absoluteWidth: t.value.style.chart.box.dimensions.width * (F.value ? 2 : 1),
      top: t.value.style.chart.box.dimensions.top,
      bottom: t.value.style.chart.box.dimensions.bottom,
      left: t.value.style.chart.box.dimensions.left,
      right: t.value.style.chart.box.dimensions.right,
      perspective: t.value.style.chart.box.dimensions.perspective
    })), C = T(() => {
      if (F.value) {
        const a = $.dataset.series.map((l) => l.value || 0).reduce((l, r) => l + r, 0), s = $.dataset.series.map((l, r) => ({
          ...l,
          id: Se(),
          proportion: (l.value || 0) / a,
          color: tt(l.color) || Be.value[r] || Q[r] || Q[r % Q.length],
          breakdown: l.breakdown ? l.breakdown.sort((c, k) => k.value - c.value) : null
        })).sort((l, r) => r.value - l.value), e = [];
        let h = 0;
        for (let l = 0; l < s.length; l += 1)
          e.push({
            ...s[l],
            fill: Ie(h, s[l].proportion, s[l].breakdown, s[l].color)
          }), h += s[l].proportion;
        return e;
      }
      return null;
    }), N = T(() => ({
      right: `M${o.value.width / 2},${o.value.top} ${o.value.width - o.value.right}, ${o.value.top + o.value.perspective} ${o.value.width - o.value.right},${o.value.height - o.value.bottom - o.value.perspective} ${o.value.width / 2},${o.value.height - o.value.bottom}`,
      left: `M${o.value.width / 2},${o.value.top} ${o.value.left},${o.value.top + o.value.perspective} ${o.value.left},${o.value.height - o.value.bottom - o.value.perspective} ${o.value.width / 2},${o.value.height - o.value.bottom}`,
      side: `M${o.value.width / 2},${o.value.height - o.value.bottom} ${o.value.width / 2},${o.value.top + o.value.perspective * 2}`,
      topSides: `M${o.value.left},${o.value.top + o.value.perspective} ${o.value.width / 2},${o.value.top + o.value.perspective * 2} ${o.value.width - o.value.right},${o.value.top + o.value.perspective}`,
      tubeTop: `M${o.value.left},${o.value.top + o.value.perspective} C ${o.value.left},${o.value.top - o.value.perspective / 3} ${o.value.width - o.value.right},${o.value.top - o.value.perspective / 3} ${o.value.width - o.value.right},${o.value.top + o.value.perspective} C ${o.value.width - o.value.right},${o.value.top + o.value.perspective * 2.3} ${o.value.left},${o.value.top + o.value.perspective * 2.3} ${o.value.left},${o.value.top + o.value.perspective}`,
      tubeLeft: `M${o.value.left},${o.value.top + o.value.perspective} ${o.value.left},${o.value.height - o.value.bottom - o.value.perspective}`,
      tubeRight: `M${o.value.width - o.value.right},${o.value.top + o.value.perspective} ${o.value.width - o.value.right},${o.value.height - o.value.bottom - o.value.perspective}`,
      tubeBottom: `M${o.value.width - o.value.right},${o.value.height - o.value.bottom - o.value.perspective} C ${o.value.width - o.value.right},${o.value.height} ${o.value.left},${o.value.height} ${o.value.left},${o.value.height - o.value.bottom - o.value.perspective}`
    })), W = j(t.value.style.chart.animation.use ? 0 : $.dataset.percentage);
    Ee(() => {
      _e();
      let a = 0, s = t.value.style.chart.animation.speed, e = 5e-3 * t.value.style.chart.animation.acceleration;
      function h() {
        W.value += s + a, a += e, W.value < $.dataset.percentage ? requestAnimationFrame(h) : W.value = $.dataset.percentage;
      }
      t.value.style.chart.animation.use && (W.value = 0, h());
    });
    function _e() {
      lt($.dataset) ? ee({
        componentName: "VueUi3dBar",
        type: "dataset"
      }) : $.dataset.series ? $.dataset.series.forEach((a, s) => {
        de({
          datasetObject: a,
          requiredAttributes: ["name", "value"]
        }).forEach((e) => {
          ee({
            componentName: "VueUi3dBar",
            type: "datasetSerieAttribute",
            property: e,
            index: s
          });
        }), a.breakdown && a.breakdown.forEach((e, h) => {
          de({
            datasetObject: e,
            requiredAttributes: ["name", "value"]
          }).forEach((l) => {
            ee({
              componentName: "VueUi3dBar",
              type: "datasetSerieAttribute",
              property: l,
              index: `${s} - ${h}`
            });
          });
        });
      }) : de({
        datasetObject: $.dataset,
        requiredAttributes: ["percentage"]
      }).forEach((a) => {
        ee({
          componentName: "VueUi3dBar",
          type: "datasetAttribute",
          property: a
        });
      });
    }
    function Ie(a, s, e, h) {
      const l = o.value.height - o.value.bottom - o.value.top - o.value.perspective * 2, { width: r, height: c, bottom: k, right: w, left: f, perspective: p } = o.value, v = k + l * a, ie = c - v - p - l * s / 2, We = ie > o.value.height / 2 ? "top" : "bottom", we = 64, Ve = !!e;
      let Ce = null, Fe = null;
      return Ve && (e = e.map((Me, Ge) => ({
        ...Me,
        value: Me.value || 0,
        color: U(h, Ge / e.length)
      })), Ce = je(
        { series: e },
        r + o.value.absoluteWidth / 4 - 14,
        We === "top" ? ie - we : ie + we,
        28,
        28,
        1.99999,
        2,
        1,
        360,
        105.25,
        14
      ), Fe = je(
        { series: e },
        r - w + 20,
        c - v - p - l * s / 2,
        6,
        6,
        1.99999,
        2,
        1,
        360,
        105.25,
        6
      )), {
        donut: Ce,
        miniDonut: Fe,
        sidePointer: {
          x: r - w,
          y: c - v - p - l * s / 2,
          topY: c - v - p - l * s,
          height: l * s
        },
        apexBottom: { y: c - v, x: r / 2 },
        apexTop: { y: c - v - l * s, x: r / 2 },
        right: `M${r / 2},${c - v} ${r / 2},${c - v - l * s} ${r - w},${c - v - p - l * s} ${r - w},${c - v - p}Z`,
        left: `M${r / 2},${c - v} ${r / 2},${c - v - l * s} ${f}, ${c - v - p - l * s} ${f},${c - v - p}Z`,
        liningTop: `M${f},${c - v - p - l * s} ${r / 2},${c - v - l * s} ${r - w},${c - v - p - l * s}`,
        liningTopShade: `M${f},${c - v - p - l * s - 0.5} ${r / 2},${c - v - l * s - 0.5} ${r - w},${c - v - p - l * s - 0.5}`,
        top: `M${r / 2},${c - v - l * s} ${f},${c - v - p - l * s} ${r / 2},${c - v - p * 2 - l * s} ${r - w},${c - v - p - l * s} Z`,
        tubeTop: `M${f},${c - v - l * s - p} C ${f},${c - v - l * s - p * 2.5} ${r - w},${c - v - l * s - p * 2.5} ${r - w},${c - v - l * s - p} C ${r - w},${c - v - l * s + p / 2} ${f},${c - v - l * s + p / 2} ${f},${c - v - l * s - p}`,
        bottomTubeTop: `M ${r - w - 0.5},${c - v - p} C ${r - w - 0.5},${c - v + p / 2} ${f},${c - v + p / 2} ${f + 0.5},${c - v - p}`,
        tubeBody: `M
        ${f},${c - v - l * s - p} 
        C ${f},${c - v - l * s + p / 2} 
        ${r - w},${c - v - l * s + p / 2} 
        ${r - w},${c - v - l * s - p} 
        L${r - w},${c - v - p}
        C 
        ${r - w},${c - v + p / 2}
        ${f},${c - v + p / 2}
        ${f},${c - v - p}Z`
      };
    }
    const Z = T(() => {
      const a = W.value / 100, s = o.value.height - o.value.bottom - o.value.top - o.value.perspective * 2, { width: e, height: h, bottom: l, right: r, left: c, perspective: k } = o.value, f = l + s * 0;
      return {
        right: `M${e / 2},${h - f} ${e / 2},${h - f - s * a} ${e - r},${h - f - k - s * a} ${e - r},${h - f - k}Z`,
        left: `M${e / 2},${h - f} ${e / 2},${h - f - s * a} ${c}, ${h - f - k - s * a} ${c},${h - f - k}Z`,
        top: `M${e / 2},${h - f - s * a} ${c},${h - f - k - s * a} ${e / 2},${h - f - k * 2 - s * a} ${e - r},${h - f - k - s * a} Z`,
        tubeTop: `M${c},${h - f - s * a - k} C ${c},${h - f - s * a - k * 2.5} ${e - r},${h - f - s * a - k * 2.5} ${e - r},${h - f - s * a - k} C ${e - r},${h - f - s * a + k / 2} ${c},${h - f - s * a + k / 2} ${c},${h - f - s * a - k}`,
        tubeBody: `M
        ${c},${h - f - s * a - k} 
        C ${c},${h - f - s * a + k / 2} 
        ${e - r},${h - f - s * a + k / 2} 
        ${e - r},${h - f - s * a - k} 
        L${e - r},${h - k * 1.5}
        C 
        ${e - r},${h}
        ${c},${h}
        ${c},${h - f - k}Z`
      };
    }), x = j(null);
    function M(a, s = !1) {
      R("selectDatapoint", a), s || (x.value = a.id), s && A.value && (A.value = !1), s && !A.value && (A.value = !0);
    }
    function L() {
      A.value || (x.value = null);
    }
    function V(a, s, e = !1) {
      const h = $.dataset.series.map((c) => c.value || 0).reduce((c, k) => c + k, 0), l = isNaN(a.value / h) ? 0 : a.value / h * 100, r = isNaN(a.value / me(s)) ? 0 : a.value / me(s) * 100;
      return e ? r : l.toFixed(0) + "%";
    }
    function me(a) {
      return [...a].map((s) => s.value).reduce((s, e) => s + e, 0);
    }
    const re = j(!1);
    function Ae(a) {
      re.value = a;
    }
    function Le() {
      return F.value ? C.value : $.dataset.percentage;
    }
    const B = T(() => {
      if (F.value) {
        const a = C.value.flatMap((e) => e.breakdown && e.breakdown.length ? [{ name: e.name, color: e.color }, ...e.breakdown.map((h, l) => ({
          name: h.name,
          color: U(e.color, l / e.breakdown.length)
        }))] : {
          name: e.name,
          color: e.color
        }), s = C.value.flatMap((e) => e.breakdown && e.breakdown.length ? [e.value, ...e.breakdown.map((h) => h.value)] : e.value);
        return { head: a, body: s };
      } else
        return null;
    });
    function be() {
      if (!F.value) {
        console.warn("VueUi3dBar : CSV download is only available in stack mode (providing dataset.series instead of dataset.percentage)");
        return;
      }
      Xe(() => {
        const a = C.value.map((l) => l.value).reduce((l, r) => l + r, 0), s = B.value.head.map((l, r) => [[
          l.name
        ], [B.value.body[r]], [isNaN(B.value.body[r] / a) ? "-" : B.value.body[r] / a * 100]]), e = [[t.value.style.chart.title.text], [t.value.style.chart.title.subtitle.text], [[""], ["val"], ["%"]]].concat(s), h = st(e);
        at({ csvContent: h, title: t.value.style.chart.title.text || "vue-ui-3d-bar" });
      });
    }
    const J = T(() => {
      const a = C.value.map((r) => r.value).reduce((r, c) => r + c, 0), s = [
        ' <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 16v2a1 1 0 0 1 -1 1h-11l6 -7l-6 -7h11a1 1 0 0 1 1 1v2" /></svg>',
        z({ p: t.value.style.chart.legend.prefix, v: a, s: t.value.style.chart.legend.suffix, r: t.value.table.td.roundingValue }),
        "100%"
      ], e = B.value.head.map((r, c) => {
        const k = z({ p: t.value.style.chart.legend.prefix, v: B.value.body[c], s: t.value.style.chart.legend.suffix, r: t.value.table.td.roundingValue });
        return [
          {
            color: r.color,
            name: r.name
          },
          k,
          isNaN(B.value.body[c] / a) ? "-" : z({
            v: B.value.body[c] / a * 100,
            s: "%",
            r: t.value.table.td.roundingPercentage
          })
        ];
      }), h = {
        th: {
          backgroundColor: t.value.table.th.backgroundColor,
          color: t.value.table.th.color,
          outline: t.value.table.th.outline
        },
        td: {
          backgroundColor: t.value.table.td.backgroundColor,
          color: t.value.table.td.color,
          outline: t.value.table.td.outline
        },
        breakpoint: t.value.table.responsiveBreakpoint,
        shape: t.value.style.shape === "tube" ? "circle" : "square"
      };
      return {
        colNames: [
          t.value.table.columnNames.series,
          t.value.table.columnNames.value,
          t.value.table.columnNames.percentage
        ],
        head: s,
        body: e,
        config: h
      };
    });
    function xe() {
      H.value.showTable = !H.value.showTable;
    }
    const K = j(!1);
    function ue() {
      K.value = !K.value;
    }
    return De({
      generateCsv: be,
      generatePdf: ge,
      generateImage: $e,
      getData: Le,
      toggleTable: xe,
      toggleAnnotator: ue
    }), (a, s) => (n(), i("div", {
      ref_key: "bar3dChart",
      ref: ae,
      class: Pe("vue-ui-3d-bar"),
      style: D(`font-family:${t.value.style.fontFamily};width:100%; text-align:center;background:${t.value.style.chart.backgroundColor}`),
      id: `3d_bar_${b.value}`,
      onMouseenter: s[2] || (s[2] = () => d(ve)(!0)),
      onMouseleave: s[3] || (s[3] = () => d(ve)(!1))
    }, [
      t.value.userOptions.buttons.annotator ? (n(), G(vt, {
        key: 0,
        parent: ae.value,
        backgroundColor: t.value.style.chart.backgroundColor,
        color: t.value.style.chart.color,
        active: K.value,
        onClose: ue
      }, null, 8, ["parent", "backgroundColor", "color", "active"])) : y("", !0),
      t.value.style.chart.title.text ? (n(), i("div", kt, [
        (n(), G(nt, {
          key: `title_${ce.value}`,
          config: {
            title: {
              cy: "3dBar-div-title",
              ...t.value.style.chart.title
            },
            subtitle: {
              cy: "3dBar-div-subtitle",
              ...t.value.style.chart.title.subtitle
            }
          }
        }, null, 8, ["config"]))
      ])) : y("", !0),
      t.value.userOptions.show && Y.value && (d(fe) || d(ne)) ? (n(), G(ut, {
        key: 2,
        ref_key: "details",
        ref: Ne,
        backgroundColor: t.value.style.chart.backgroundColor,
        color: t.value.style.chart.color,
        isPrinting: d(ye),
        isImaging: d(ke),
        uid: b.value,
        hasPdf: t.value.userOptions.buttons.pdf,
        hasTable: !!F.value && t.value.userOptions.buttons.table,
        hasXls: !!F.value && t.value.userOptions.buttons.csv,
        hasImg: t.value.userOptions.buttons.img,
        hasFullscreen: t.value.userOptions.buttons.fullscreen,
        titles: { ...t.value.userOptions.buttonTitles },
        chartElement: ae.value,
        position: t.value.userOptions.position,
        hasAnnotator: t.value.userOptions.buttons.annotator,
        isAnnotation: K.value,
        onToggleFullscreen: Ae,
        onGeneratePdf: d(ge),
        onGenerateCsv: be,
        onGenerateImage: d($e),
        onToggleTable: xe,
        onToggleAnnotator: ue,
        style: D({
          visibility: d(fe) ? d(ne) ? "visible" : "hidden" : "visible"
        })
      }, He({ _: 2 }, [
        a.$slots.optionPdf ? {
          name: "optionPdf",
          fn: O(() => [
            S(a.$slots, "optionPdf", {}, void 0, !0)
          ]),
          key: "0"
        } : void 0,
        a.$slots.optionCsv ? {
          name: "optionCsv",
          fn: O(() => [
            S(a.$slots, "optionCsv", {}, void 0, !0)
          ]),
          key: "1"
        } : void 0,
        a.$slots.optionImg ? {
          name: "optionImg",
          fn: O(() => [
            S(a.$slots, "optionImg", {}, void 0, !0)
          ]),
          key: "2"
        } : void 0,
        a.$slots.optionTable ? {
          name: "optionTable",
          fn: O(() => [
            S(a.$slots, "optionTable", {}, void 0, !0)
          ]),
          key: "3"
        } : void 0,
        a.$slots.optionFullscreen ? {
          name: "optionFullscreen",
          fn: O(({ toggleFullscreen: e, isFullscreen: h }) => [
            S(a.$slots, "optionFullscreen", q(X({ toggleFullscreen: e, isFullscreen: h })), void 0, !0)
          ]),
          key: "4"
        } : void 0,
        a.$slots.optionAnnotator ? {
          name: "optionAnnotator",
          fn: O(({ toggleAnnotator: e, isAnnotator: h }) => [
            S(a.$slots, "optionAnnotator", q(X({ toggleAnnotator: e, isAnnotator: h })), void 0, !0)
          ]),
          key: "5"
        } : void 0
      ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasPdf", "hasTable", "hasXls", "hasImg", "hasFullscreen", "titles", "chartElement", "position", "hasAnnotator", "isAnnotation", "onGeneratePdf", "onGenerateImage", "style"])) : y("", !0),
      Y.value ? (n(), i("svg", {
        key: 3,
        xmlns: d(ot),
        class: Pe({ "vue-data-ui-fullscreen--on": re.value, "vue-data-ui-fulscreen--off": !re.value }),
        viewBox: `0 0 ${o.value.absoluteWidth} ${o.value.height}`,
        style: D(`max-width:100%; overflow: visible; background:transparent;color:${t.value.style.chart.color}`)
      }, [
        Ze(ht),
        a.$slots["chart-background"] ? (n(), i("foreignObject", {
          key: 0,
          x: 0,
          y: 0,
          width: o.value.absoluteWidth,
          height: o.value.height,
          style: {
            pointerEvents: "none"
          }
        }, [
          S(a.$slots, "chart-background", {}, void 0, !0)
        ], 8, $t)) : y("", !0),
        u("defs", null, [
          u("radialGradient", {
            id: `gradient_top${b.value}`
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
            }, null, 8, mt),
            u("stop", {
              offset: "100%",
              "stop-color": t.value.style.chart.bar.color
            }, null, 8, bt)
          ], 8, _t),
          u("radialGradient", {
            id: `gradient_left${b.value}`
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
            }, null, 8, wt),
            u("stop", {
              offset: "100%",
              "stop-color": d(g)(t.value.style.chart.bar.color, 20)
            }, null, 8, Ct)
          ], 8, xt),
          u("radialGradient", {
            id: `gradient_right${b.value}`
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
            }, null, 8, Mt),
            u("stop", {
              offset: "100%",
              "stop-color": d(g)(t.value.style.chart.bar.color, 20)
            }, null, 8, Pt)
          ], 8, Ft),
          u("linearGradient", {
            id: `gradient_tube_body${b.value}`,
            x1: "0%",
            y1: "0%",
            x2: "100%",
            y2: "0%"
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": `${t.value.style.chart.bar.color}`
            }, null, 8, jt),
            u("stop", {
              offset: "75%",
              "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
            }, null, 8, Tt),
            u("stop", {
              offset: "100%",
              "stop-color": d(g)(t.value.style.chart.bar.color, 40)
            }, null, 8, zt)
          ], 8, St)
        ]),
        F.value ? (n(), i("defs", Dt, [
          (n(!0), i(_, null, m(C.value, (e) => (n(), i("radialGradient", {
            id: `grad_top_${e.id}`
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": d(g)(d(U)(e.color, 0.5), 80)
            }, null, 8, Nt),
            u("stop", {
              offset: "100%",
              "stop-color": e.color
            }, null, 8, Bt)
          ], 8, Ot))), 256)),
          (n(!0), i(_, null, m(C.value, (e) => (n(), i("linearGradient", {
            id: `grad_left_${e.id}`
          }, [
            u("stop", {
              offset: "0%",
              "stop-color": d(g)(e.color, 80)
            }, null, 8, At),
            u("stop", {
              offset: "100%",
              "stop-color": d(g)(d(te)(e.color, 0.5), 100)
            }, null, 8, Lt)
          ], 8, It))), 256)),
          (n(!0), i(_, null, m(C.value, (e) => (n(), i("linearGradient", {
            id: `grad_right_${e.id}`
          }, [
            u("stop", {
              offset: "2%",
              "stop-color": d(g)(d(U)(e.color, 0.5), 100)
            }, null, 8, Vt),
            u("stop", {
              offset: "100%",
              "stop-color": d(g)(e.color, 80)
            }, null, 8, Gt)
          ], 8, Wt))), 256)),
          u("linearGradient", {
            x1: "0%",
            y1: "0%",
            x2: "0%",
            y2: "100%",
            id: `vertical_line_${b.value}`
          }, Zt, 8, Ut)
        ])) : y("", !0),
        t.value.style.chart.dataLabel.show && ![null, void 0].includes($.dataset.percentage) && [null, void 0].includes($.dataset.series) ? (n(), i("text", {
          key: 2,
          x: o.value.width / 2,
          y: o.value.top - t.value.style.chart.dataLabel.fontSize / 2,
          "font-size": t.value.style.chart.dataLabel.fontSize,
          "font-weight": t.value.style.chart.dataLabel.bold ? "bold" : "normal",
          fill: t.value.style.chart.dataLabel.color,
          "text-anchor": "middle"
        }, P(d(z)({
          v: W.value,
          s: "%",
          r: t.value.style.chart.dataLabel.rounding
        })), 9, qt)) : y("", !0),
        A.value ? (n(), i("g", {
          key: 3,
          onClick: s[0] || (s[0] = (e) => {
            A.value = !1, x.value = null;
          }),
          "data-html2canvas-ignore": "",
          style: { cursor: "pointer" }
        }, [
          u("rect", {
            x: o.value.width / 2 - 6,
            y: o.value.top - 20,
            height: 12,
            width: 12,
            fill: "transparent"
          }, null, 8, Xt),
          u("path", {
            d: `M${o.value.width / 2 - 6},${o.value.top - 20} ${o.value.width / 2 + 6},${o.value.top - 9}`,
            stroke: t.value.style.chart.color,
            "stroke-linecap": "round",
            "stroke-width": "1"
          }, null, 8, Rt),
          u("path", {
            d: `M${o.value.width / 2 + 6},${o.value.top - 20} ${o.value.width / 2 - 6},${o.value.top - 9}`,
            stroke: t.value.style.chart.color,
            "stroke-linecap": "round",
            "stroke-width": "1"
          }, null, 8, Yt)
        ])) : y("", !0),
        !t.value.style.shape || t.value.style.shape === "bar" ? (n(), i("g", Jt, [
          F.value ? y("", !0) : (n(), i("g", Kt, [
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.right,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, Qt),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.left,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, el),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.side,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, tl),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.topSides,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, ll)
          ])),
          F.value ? y("", !0) : (n(), i("g", ol, [
            u("path", {
              d: Z.value.right,
              stroke: t.value.style.chart.bar.stroke,
              "stroke-width": t.value.style.chart.bar.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: `url(#gradient_right${b.value})`
            }, null, 8, sl),
            u("path", {
              d: Z.value.left,
              stroke: t.value.style.chart.bar.stroke,
              "stroke-width": t.value.style.chart.bar.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: `url(#gradient_left${b.value})`
            }, null, 8, al),
            u("path", {
              d: Z.value.top,
              stroke: t.value.style.chart.bar.stroke,
              "stroke-width": t.value.style.chart.bar.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: `url(#gradient_top${b.value})`
            }, null, 8, nl)
          ])),
          F.value ? (n(), i("g", rl, [
            (n(!0), i(_, null, m(C.value, (e, h) => (n(), i("g", {
              style: D(`opacity:${x.value ? x.value === e.id ? 1 : 0.3 : 1}`),
              class: "vue-ui-3d-bar-stack"
            }, [
              u("path", {
                d: e.fill.right,
                fill: `url(#grad_right_${e.id})`,
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L
              }, null, 40, ul),
              u("path", {
                d: e.fill.left,
                fill: `url(#grad_left_${e.id})`,
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L
              }, null, 40, il),
              u("path", {
                d: e.fill.top,
                fill: `url(#grad_top_${e.id})`,
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L
              }, null, 40, dl),
              u("path", {
                d: e.fill.liningTop,
                stroke: "#FFFFFF",
                "stroke-width": "0.5",
                "stroke-linecap": "round",
                fill: "none",
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L
              }, null, 40, cl),
              u("path", {
                d: `M ${e.fill.apexTop.x},${e.fill.apexTop.y} ${e.fill.apexBottom.x},${e.fill.apexBottom.y}`,
                stroke: "#FFFFFF",
                "stroke-width": "0.5",
                "stroke-linecap": "round"
              }, null, 8, hl)
            ], 4))), 256)),
            (n(!0), i(_, null, m(C.value, (e, h) => (n(), i("g", null, [
              h !== C.value.length - 1 ? (n(), i("path", {
                key: 0,
                d: e.fill.liningTopShade,
                stroke: t.value.style.chart.bar.shadeColor,
                "stroke-width": "0.5",
                "stroke-linecap": "round",
                fill: "none",
                style: { "pointer-events": "none" }
              }, null, 8, vl)) : y("", !0)
            ]))), 256)),
            (n(!0), i(_, null, m(C.value, (e, h) => (n(), i("g", {
              style: D(`opacity:${x.value ? x.value === e.id ? 1 : 0 : e.proportion * 100 > t.value.style.chart.legend.hideUnderPercentage ? 1 : 0}`),
              onClick: (l) => R("selectDatapoint", e)
            }, [
              u("path", {
                stroke: t.value.style.chart.color,
                "stroke-dasharray": "1",
                "stroke-width": "0.5",
                "stroke-linecap": "round",
                d: `M${e.fill.sidePointer.x},${e.fill.sidePointer.y} ${e.fill.sidePointer.x + 20},${e.fill.sidePointer.y}`
              }, null, 8, pl),
              !e.fill.miniDonut || x.value ? (n(), i("circle", {
                key: 0,
                cx: e.fill.sidePointer.x + 20,
                cy: e.fill.sidePointer.y,
                r: 2,
                fill: e.color,
                stroke: t.value.style.chart.backgroundColor
              }, null, 8, yl)) : y("", !0),
              (n(), i("foreignObject", {
                x: e.fill.sidePointer.x + 30,
                y: e.fill.sidePointer.y - t.value.style.chart.legend.fontSize,
                width: o.value.absoluteWidth / 2 - 12,
                height: t.value.style.chart.legend.fontSize * 2,
                style: { overflow: "visible", position: "relative" }
              }, [
                t.value.style.chart.legend.showDefault ? (n(), i("div", {
                  key: 0,
                  style: D(`height: 100%; width: 100%; display: flex; flex-direction: row; flex-wrap: wrap; align-items:center;justify-content: flex-start; font-size:${t.value.style.chart.legend.fontSize}px; text-align:left; line-height: ${t.value.style.chart.legend.fontSize}px; color:${t.value.style.chart.legend.color}`)
                }, P(e.name) + ": " + P(d(z)({ v: e.proportion * 100, s: "%", r: t.value.style.chart.legend.roundingPercentage })) + " (" + P(d(le)(
                  t.value.style.chart.dataLabel.formatter,
                  e.value,
                  d(z)({
                    p: t.value.style.chart.legend.prefix,
                    v: e.value,
                    s: t.value.style.chart.legend.suffix,
                    r: t.value.style.chart.legend.roundingValue
                  }),
                  { datapoint: e, seriesIndex: h }
                )) + ") ", 5)) : y("", !0),
                S(a.$slots, "legend", q(X({ datapoint: e, config: t.value, dataset: C.value })), void 0, !0)
              ], 8, kl)),
              e.fill.donut && x.value === e.id ? (n(), i("g", gl, [
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("g", null, [
                  V(l, e.fill.donut, !0) > 6 ? (n(), i("path", {
                    key: 0,
                    d: d(Te)(l, { x: l.cx, y: l.cy }, 0, 8, !1, !0, 10),
                    stroke: l.color,
                    class: "vue-ui-donut-arc-path",
                    "stroke-width": "0.5",
                    "stroke-linecap": "round",
                    "stroke-linejoin": "round",
                    fill: "none"
                  }, null, 8, $l)) : y("", !0)
                ]))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("path", {
                  class: "vue-ui-donut-arc-path",
                  d: l.arcSlice,
                  fill: `${l.color}`,
                  stroke: t.value.style.chart.backgroundColor,
                  "stroke-width": 1
                }, null, 8, _l))), 256)),
                u("defs", null, [
                  u("radialGradient", {
                    id: `hollow_gradient_${b.value}`
                  }, [
                    u("stop", {
                      offset: "0%",
                      "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
                    }, null, 8, bl),
                    xl,
                    u("stop", {
                      offset: "100%",
                      "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
                    }, null, 8, wl)
                  ], 8, ml)
                ]),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("circle", {
                  class: "vue-ui-donut-arc-path",
                  cx: l.cx,
                  cy: l.cy,
                  r: 28,
                  fill: `url(#hollow_gradient_${b.value})`
                }, null, 8, Cl))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("circle", {
                  class: "vue-ui-donut-arc-path",
                  cx: l.cx,
                  cy: l.cy,
                  r: 14,
                  fill: t.value.style.chart.backgroundColor
                }, null, 8, Fl))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("g", null, [
                  V(l, e.fill.donut, !0) > 6 ? (n(), i("g", Ml, [
                    u("text", {
                      "text-anchor": d(I)(l, !0, 0).anchor,
                      x: d(I)(l, !0, 2).x,
                      y: d(oe)(l, 12, 12),
                      fill: t.value.style.chart.legend.color,
                      "font-size": t.value.style.chart.legend.fontSize / 1.5
                    }, P(V(l, e.fill.donut)) + " (" + P(d(le)(
                      t.value.style.chart.dataLabel.formatter,
                      l.value,
                      d(z)({
                        p: t.value.style.chart.legend.prefix,
                        v: l.value,
                        s: t.value.style.chart.legend.suffix,
                        r: t.value.style.chart.legend.roundingValue
                      }),
                      { datapoint: l, seriesIndex: r }
                    )) + ") ", 9, Pl),
                    u("text", {
                      "text-anchor": d(I)(l).anchor,
                      x: d(I)(l, !0, 2).x,
                      y: d(oe)(l, 12, 12) + t.value.style.chart.legend.fontSize / 1.5,
                      fill: t.value.style.chart.legend.color,
                      "font-size": t.value.style.chart.legend.fontSize / 1.5
                    }, P(l.name), 9, Sl)
                  ])) : y("", !0)
                ]))), 256))
              ])) : y("", !0),
              e.fill.miniDonut && !x.value ? (n(), i("g", jl, [
                (n(!0), i(_, null, m(e.fill.miniDonut, (l, r) => (n(), i("path", {
                  class: "vue-ui-donut-arc-path",
                  d: l.arcSlice,
                  fill: `${l.color}`,
                  stroke: t.value.style.chart.backgroundColor,
                  "stroke-width": 0.5
                }, null, 8, Tl))), 256))
              ])) : y("", !0)
            ], 12, fl))), 256))
          ])) : y("", !0)
        ])) : y("", !0),
        t.value.style.shape === "tube" ? (n(), i("g", zl, [
          F.value ? y("", !0) : (n(), i("g", Dl, [
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.tubeTop,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, Ol),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.tubeLeft,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, Nl),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.tubeRight,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, Bl),
            u("path", {
              "stroke-dasharray": t.value.style.chart.box.strokeDasharray,
              d: N.value.tubeBottom,
              stroke: t.value.style.chart.box.stroke,
              "stroke-width": t.value.style.chart.box.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: "none"
            }, null, 8, Il),
            u("path", {
              d: Z.value.tubeTop,
              stroke: t.value.style.chart.bar.stroke,
              "stroke-width": t.value.style.chart.bar.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: `url(#gradient_top${b.value})`
            }, null, 8, Al),
            u("path", {
              d: Z.value.tubeBody,
              stroke: t.value.style.chart.bar.stroke,
              "stroke-width": t.value.style.chart.bar.strokeWidth,
              "stroke-linejoin": "round",
              "stroke-linecap": "round",
              fill: `url(#gradient_tube_body${b.value})`
            }, null, 8, Ll)
          ])),
          F.value ? (n(), i("g", Wl, [
            (n(!0), i(_, null, m(C.value, (e, h) => (n(), i("g", {
              style: D(`opacity:${x.value ? x.value === e.id ? 1 : 0.3 : 1}`),
              class: "vue-ui-3d-bar-stack",
              onClick: (l) => R("selectDatapoint", e)
            }, [
              u("defs", null, [
                u("radialGradient", {
                  id: `gradient_tube_top_${e.id}`,
                  fx: "10%",
                  cy: "55%"
                }, [
                  u("stop", {
                    offset: "0%",
                    "stop-color": d(g)(d(U)(e.color, 0.5), 80)
                  }, null, 8, Ul),
                  u("stop", {
                    offset: "100%",
                    "stop-color": d(g)(d(te)(e.color, 0.1), 80)
                  }, null, 8, El)
                ], 8, Gl),
                u("linearGradient", {
                  id: `gradient_tube_body_${e.id}`,
                  x1: "0%",
                  y1: "0%",
                  x2: "100%",
                  y2: "0%"
                }, [
                  u("stop", {
                    offset: "0%",
                    "stop-color": `${e.color}`
                  }, null, 8, Zl),
                  u("stop", {
                    offset: "10%",
                    "stop-color": d(g)(d(te)(e.color, 0.7), 100)
                  }, null, 8, ql),
                  u("stop", {
                    offset: "25%",
                    "stop-color": d(g)(d(te)(e.color, 0.5), 100)
                  }, null, 8, Xl),
                  u("stop", {
                    offset: "75%",
                    "stop-color": d(g)(e.color, 80)
                  }, null, 8, Rl),
                  u("stop", {
                    offset: "100%",
                    "stop-color": d(g)(d(U)(e.color, 0.7), 100)
                  }, null, 8, Yl)
                ], 8, Hl)
              ]),
              u("path", {
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L,
                d: e.fill.tubeBody,
                stroke: "#FFFFFF",
                "stroke-width": 0.5,
                "stroke-linejoin": "round",
                "stroke-linecap": "round",
                fill: `url(#gradient_tube_body_${e.id})`
              }, null, 40, Jl),
              h > 0 ? (n(), i("path", {
                key: 0,
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L,
                d: e.fill.bottomTubeTop,
                stroke: "#000000",
                "stroke-width": 0.5,
                "stroke-linejoin": "round",
                "stroke-linecap": "round",
                fill: "none"
              }, null, 40, Kl)) : y("", !0),
              u("path", {
                onMouseenter: (l) => M(e),
                onClick: (l) => M(e, !0),
                onMouseout: L,
                d: e.fill.tubeTop,
                stroke: "#FFFFFF",
                "stroke-width": 0.5,
                "stroke-linejoin": "round",
                "stroke-linecap": "round",
                fill: `url(#gradient_tube_top_${e.id})`
              }, null, 40, Ql)
            ], 12, Vl))), 256)),
            (n(!0), i(_, null, m(C.value, (e, h) => (n(), i("g", {
              style: D(`opacity:${x.value ? x.value === e.id ? 1 : 0 : e.proportion * 100 > t.value.style.chart.legend.hideUnderPercentage ? 1 : 0}`),
              onClick: (l) => R("selectDatapoint", e)
            }, [
              u("path", {
                stroke: t.value.style.chart.color,
                "stroke-dasharray": "1",
                "stroke-width": "0.5",
                "stroke-linecap": "round",
                d: `M${e.fill.sidePointer.x},${e.fill.sidePointer.y} ${e.fill.sidePointer.x + 20},${e.fill.sidePointer.y}`
              }, null, 8, to),
              !e.fill.miniDonut || x.value ? (n(), i("circle", {
                key: 0,
                cx: e.fill.sidePointer.x + 20,
                cy: e.fill.sidePointer.y,
                r: 2,
                fill: e.color,
                stroke: t.value.style.chart.backgroundColor
              }, null, 8, lo)) : y("", !0),
              (n(), i("foreignObject", {
                x: e.fill.sidePointer.x + 30,
                y: e.fill.sidePointer.y - t.value.style.chart.legend.fontSize,
                width: o.value.absoluteWidth / 2 - 12,
                height: t.value.style.chart.legend.fontSize * 2,
                style: { overflow: "visible", position: "relative" }
              }, [
                t.value.style.chart.legend.showDefault ? (n(), i("div", {
                  key: 0,
                  style: D(`height: 100%; width: 100%; display: flex; flex-direction: row; flex-wrap: wrap; align-items:center;justify-content: flex-start; font-size:${t.value.style.chart.legend.fontSize}px; text-align:left; line-height: ${t.value.style.chart.legend.fontSize}px; color:${t.value.style.chart.legend.color}`)
                }, P(e.name) + ": " + P(d(z)({ v: e.proportion * 100, s: "%", r: t.value.style.chart.legend.roundingPercentage })) + " (" + P(d(le)(
                  t.value.style.chart.dataLabel.formatter,
                  e.value,
                  d(z)({
                    p: t.value.style.chart.legend.prefix,
                    v: e.value,
                    s: t.value.style.chart.legend.suffix,
                    r: t.value.style.chart.legend.roundingValue
                  }),
                  { datapoint: e, seriesIndex: h }
                )) + ") ", 5)) : y("", !0),
                S(a.$slots, "legend", q(X({ datapoint: e, config: t.value, dataset: C.value })), void 0, !0)
              ], 8, oo)),
              e.fill.donut && x.value === e.id ? (n(), i("g", so, [
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("g", null, [
                  V(l, e.fill.donut, !0) > 6 ? (n(), i("path", {
                    key: 0,
                    d: d(Te)(l, { x: l.cx, y: l.cy }, 0, 8, !1, !0, 10),
                    stroke: l.color,
                    class: "vue-ui-donut-arc-path",
                    "stroke-width": "0.5",
                    "stroke-linecap": "round",
                    "stroke-linejoin": "round",
                    fill: "none"
                  }, null, 8, ao)) : y("", !0)
                ]))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("path", {
                  class: "vue-ui-donut-arc-path",
                  d: l.arcSlice,
                  fill: `${l.color}`,
                  stroke: t.value.style.chart.backgroundColor,
                  "stroke-width": 1
                }, null, 8, no))), 256)),
                u("defs", null, [
                  u("radialGradient", {
                    id: `hollow_gradient_${b.value}`
                  }, [
                    u("stop", {
                      offset: "0%",
                      "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
                    }, null, 8, uo),
                    io,
                    u("stop", {
                      offset: "100%",
                      "stop-color": d(g)(t.value.style.chart.backgroundColor, 0)
                    }, null, 8, co)
                  ], 8, ro)
                ]),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("circle", {
                  class: "vue-ui-donut-arc-path",
                  cx: l.cx,
                  cy: l.cy,
                  r: 28,
                  fill: `url(#hollow_gradient_${b.value})`
                }, null, 8, ho))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("circle", {
                  class: "vue-ui-donut-arc-path",
                  cx: l.cx,
                  cy: l.cy,
                  r: 14,
                  fill: t.value.style.chart.backgroundColor
                }, null, 8, vo))), 256)),
                (n(!0), i(_, null, m(e.fill.donut, (l, r) => (n(), i("g", null, [
                  V(l, e.fill.donut, !0) > 6 ? (n(), i("g", fo, [
                    u("text", {
                      "text-anchor": d(I)(l, !0, 0).anchor,
                      x: d(I)(l, !0, 2).x,
                      y: d(oe)(l, 12, 12),
                      fill: t.value.style.chart.legend.color,
                      "font-size": t.value.style.chart.legend.fontSize / 1.5
                    }, P(V(l, e.fill.donut)) + " (" + P(d(le)(
                      t.value.style.chart.dataLabel.formatter,
                      l.value,
                      d(z)({
                        p: t.value.style.chart.legend.prefix,
                        v: l.value,
                        s: t.value.style.chart.legend.suffix,
                        r: t.value.style.chart.legend.roundingValue
                      }),
                      { datapoint: l, seriesIndex: r }
                    )) + ") ", 9, po),
                    u("text", {
                      "text-anchor": d(I)(l).anchor,
                      x: d(I)(l, !0, 2).x,
                      y: d(oe)(l, 12, 12) + t.value.style.chart.legend.fontSize / 1.5,
                      fill: t.value.style.chart.legend.color,
                      "font-size": t.value.style.chart.legend.fontSize / 1.5
                    }, P(l.name), 9, yo)
                  ])) : y("", !0)
                ]))), 256))
              ])) : y("", !0),
              e.fill.miniDonut && !x.value ? (n(), i("g", ko, [
                (n(!0), i(_, null, m(e.fill.miniDonut, (l, r) => (n(), i("path", {
                  class: "vue-ui-donut-arc-path",
                  d: l.arcSlice,
                  fill: `${l.color}`,
                  stroke: t.value.style.chart.backgroundColor,
                  "stroke-width": 0.5
                }, null, 8, go))), 256))
              ])) : y("", !0)
            ], 12, eo))), 256))
          ])) : y("", !0)
        ])) : y("", !0),
        S(a.$slots, "svg", { svg: o.value }, void 0, !0)
      ], 14, gt)) : y("", !0),
      a.$slots.watermark ? (n(), i("div", $o, [
        S(a.$slots, "watermark", q(X({ isPrinting: d(ye) || d(ke) })), void 0, !0)
      ])) : y("", !0),
      Y.value ? y("", !0) : (n(), G(it, {
        key: 5,
        config: {
          type: "bar3d",
          style: {
            backgroundColor: t.value.style.chart.backgroundColor,
            bar3d: {
              color: "#CCCCCC"
            }
          }
        }
      }, null, 8, ["config"])),
      a.$slots.source ? (n(), i("div", _o, [
        S(a.$slots, "source", {}, void 0, !0)
      ], 512)) : y("", !0),
      Y.value && F.value ? (n(), G(ct, {
        key: 7,
        hideDetails: "",
        config: {
          open: H.value.showTable,
          maxHeight: 1e4,
          body: {
            backgroundColor: t.value.style.chart.backgroundColor,
            color: t.value.style.chart.color
          },
          head: {
            backgroundColor: t.value.style.chart.backgroundColor,
            color: t.value.style.chart.color
          }
        }
      }, {
        content: O(() => [
          (n(), G(dt, {
            key: `table_${he.value}`,
            colNames: J.value.colNames,
            head: J.value.head,
            body: J.value.body,
            config: J.value.config,
            title: `${t.value.style.chart.title.text}${t.value.style.chart.title.subtitle.text ? ` : ${t.value.style.chart.title.subtitle.text}` : ""}`,
            onClose: s[1] || (s[1] = (e) => H.value.showTable = !1)
          }, {
            th: O(({ th: e }) => [
              u("div", {
                innerHTML: e,
                style: { display: "flex", "align-items": "center" }
              }, null, 8, mo)
            ]),
            td: O(({ td: e }) => [
              qe(P(e.name || e), 1)
            ]),
            _: 1
          }, 8, ["colNames", "head", "body", "config", "title"]))
        ]),
        _: 1
      }, 8, ["config"])) : y("", !0)
    ], 44, yt));
  }
}, No = /* @__PURE__ */ pt(bo, [["__scopeId", "data-v-acc3d2f2"]]);
export {
  No as default
};
