vue-data-ui
Version:
A user-empowering data visualization Vue 3 components library for eloquent data storytelling
1,020 lines • 60.5 kB
JavaScript
import { useCssVars as He, computed as m, ref as T, watch as We, onMounted as Ke, createElementBlock as o, openBlock as a, unref as n, normalizeStyle as h, normalizeClass as k, createBlock as K, createCommentVNode as f, renderSlot as S, createSlots as Je, withCtx as B, normalizeProps as J, guardReactiveProps as Q, createVNode as Ce, createElementVNode as s, toDisplayString as c, Fragment as g, renderList as _, createTextVNode as Z, withKeys as Qe, nextTick as Te } from "vue";
import { u as Ze, c as et, t as tt, p as P, a as lt, b as at, g as ne, e as ee, d as re, o as ot, X as st, s as F, w as ze, i as G, f as z, G as Ne, m as Se, j as ut, k as H, n as V, q as nt, r as rt } from "./index-BaaDnc4F.js";
import { u as it, U as ct } from "./usePrinter-y4-4tCWT.js";
import dt from "./vue-ui-skeleton-6RiQNJSb.js";
import vt from "./BaseIcon-rw8rKNKS.js";
import yt from "./vue-ui-accordion-CF9kQTXq.js";
import { u as Fe } from "./useNestedProp-D8vQcOps.js";
import { _ as ht } from "./PackageVersion-D9Lm1C1X.js";
import { P as ft } from "./PenAndPaper-DR58HO_U.js";
import { u as bt } from "./useUserOptionState-BIvW1Kz7.js";
import { u as pt } from "./useChartAccessibility-BWojgys7.js";
import { _ as gt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
const _t = ["id"], xt = {
key: 1,
ref: "noTitle",
class: "vue-data-ui-no-title-space",
style: "height:36px; width: 100%;background:transparent"
}, mt = ["xmlns", "viewBox"], kt = ["width", "height"], wt = { key: 1 }, $t = ["fill", "font-weight", "font-size", "x", "y"], Ct = ["fill", "font-weight", "font-size", "x", "y"], Tt = ["id"], zt = ["stop-color"], Nt = ["stop-color"], St = ["id"], Ft = ["stop-color"], It = ["stop-color"], Lt = ["id"], Pt = ["stop-color"], Vt = ["stop-color"], Rt = ["stop-color"], Ot = ["id"], Mt = ["stop-color"], Bt = ["stop-color"], jt = ["stop-color"], At = ["id"], Xt = ["stop-color"], Gt = ["stop-color"], Et = ["stop-color"], Ut = { key: 2 }, Dt = ["x", "y", "font-size", "font-weight", "fill"], Yt = ["x", "y", "font-size", "font-weight", "fill"], qt = ["d", "stroke"], Ht = ["cx", "cy", "r", "fill"], Wt = ["cx", "cy", "r", "fill", "stroke", "stroke-width", "onClick"], Kt = { key: 3 }, Jt = ["x", "y", "font-size", "fill", "onClick"], Qt = { key: 0 }, Zt = ["x", "y", "fill", "font-size", "font-weight"], el = ["x", "y", "height", "width", "fill", "rx", "onClick"], tl = ["x", "y", "height", "width", "fill", "rx", "stroke", "stroke-width", "onClick"], ll = { key: 4 }, al = ["x", "y", "fill", "font-size", "onClick"], ol = ["d", "stroke"], sl = ["fill", "cx", "cy", "r", "onClick"], ul = { key: 5 }, nl = ["x", "y", "font-size", "font-weight", "fill"], rl = ["x1", "x2", "y1", "y2", "stroke", "stroke-width"], il = ["y", "height", "width"], cl = { style: { width: "100%", height: "100%", display: "flex", "align-items": "center", "justify-content": "center", "flex-direction": "column" } }, dl = { style: { display: "flex", "align-items": "center", "justify-content": "center", gap: "12px", "flex-wrap": "wrap", "flex-direction": "row" } }, vl = {
viewBox: "0 0 20 20",
height: "16",
width: "16"
}, yl = ["fill"], hl = { key: 7 }, fl = ["y", "height", "width"], bl = { style: { width: "100%", height: "100%", display: "flex", "align-items": "center", "justify-content": "center", "flex-direction": "column" } }, pl = { style: { display: "flex", "align-items": "center", "justify-content": "center", gap: "12px", "flex-wrap": "wrap", "flex-direction": "row" } }, gl = {
viewBox: "0 0 20 20",
height: "16",
width: "16"
}, _l = ["fill"], xl = ["cx", "cy", "fill"], ml = ["d", "stroke"], kl = ["cx", "cy", "fill"], wl = ["d", "stroke"], $l = ["cx", "cy", "fill"], Cl = ["cx", "cy", "fill"], Tl = ["x", "y", "fill", "font-size", "font-weight"], zl = ["x", "y", "fill", "font-size", "font-weight"], Nl = ["x", "text-anchor", "y", "fill", "font-size"], Sl = ["x", "text-anchor", "y", "fill", "font-size"], Fl = ["x", "text-anchor", "y", "fill", "font-size"], Il = ["x", "text-anchor", "y", "fill", "font-size"], Ll = ["x", "text-anchor", "y", "fill", "font-size"], Pl = ["x", "y", "font-size", "fill"], Vl = ["x", "y", "font-size", "fill"], Rl = ["x", "y", "font-size", "fill"], Ol = {
key: 4,
class: "vue-data-ui-watermark"
}, Ml = {
key: 6,
ref: "source",
dir: "auto"
}, Bl = { style: { "padding-top": "36px", position: "relative" } }, jl = { class: "vue-ui-data-table" }, Al = { key: 0 }, Xl = ["data-cell"], Gl = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, El = { key: 0 }, Ul = { key: 1 }, Dl = ["data-cell"], Yl = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, ql = { key: 0 }, Hl = { key: 1 }, Wl = ["data-cell"], Kl = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, Jl = { key: 0 }, Ql = { key: 1 }, Zl = ["data-cell"], ea = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, ta = { key: 0 }, la = { key: 1 }, aa = ["data-cell"], oa = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, sa = { key: 0 }, ua = { key: 1 }, na = ["data-cell"], ra = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, ia = { key: 0 }, ca = { key: 1 }, da = ["data-cell"], va = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, ya = { key: 0 }, ha = { key: 1 }, fa = ["data-cell"], ba = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, pa = ["data-cell"], ga = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, _a = ["data-cell"], xa = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, ma = ["data-cell"], ka = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, wa = ["data-cell"], $a = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, Ca = {
__name: "vue-ui-chestnut",
props: {
config: {
type: Object,
default() {
return {};
}
},
dataset: {
type: Array,
default() {
return [];
}
}
},
emits: ["selectRoot", "selectBranch", "selectNut"],
setup(Ie, { expose: Le, emit: Pe }) {
He((l) => ({
"4c4794f5": l.tdo
}));
const { vue_ui_chestnut: Ve } = Ze(), R = Ie, Y = m(() => !!R.dataset && R.dataset.length), w = T(et()), ie = T(null), Re = T(null), ce = T(0), e = m({
get: () => he(),
set: (l) => l
}), { userOptionsVisible: te, setUserOptionsVisibility: de, keepUserOptionState: ve } = bt({ config: e.value }), { svgRef: ye } = pt({ config: e.value.style.chart.layout.title });
function he() {
const l = Fe({
userConfig: R.config,
defaultConfig: Ve
});
return l.theme ? {
...Fe({
userConfig: lt.vue_ui_chestnut[l.theme] || R.config,
defaultConfig: l
}),
customPalette: tt[l.theme] || P
} : l;
}
We(() => R.config, (l) => {
e.value = he(), te.value = !e.value.userOptions.showOnChartHover, E.value.showTable = e.value.table.show, ke();
}, { deep: !0 });
const { isPrinting: fe, isImaging: be, generatePdf: pe, generateImage: ge } = it({
elementId: `vue-ui-chestnut_${w.value}`,
fileName: e.value.style.chart.layout.title.text || "vue-ui-chestnut"
}), Oe = m(() => e.value.userOptions.show), le = m(() => at(e.value.customPalette)), E = T({
showTable: e.value.table.show
}), ae = T(null), _e = T(!1), Me = m(() => e.value.table.responsiveBreakpoint), r = T({
gap: 6,
padding: {
top: 102,
left: 12,
right: 12,
bottom: 96
},
width: 1024,
height: 0,
branchSize: 32,
branchStart: 128
}), C = m(() => ({
left: r.value.padding.left,
top: r.value.padding.top,
right: r.value.width - r.value.padding.right,
bottom: r.value.height - r.value.padding.bottom,
width: r.value.width - (r.value.padding.left + r.value.padding.right),
height: r.value.height - (r.value.padding.top + r.value.padding.bottom),
seedX: r.value.padding.left + 64
})), O = m(() => Y.value ? R.dataset.flatMap((l) => (l.branches || []).map((i) => i.value || 0)).reduce((l, i) => l + i, 0) : 0), N = m(() => (R.dataset.forEach((l, i) => {
ne({
datasetObject: l,
requiredAttributes: ["name", "branches"]
}).forEach((t) => {
ee({
componentName: "VueUiChestnut",
type: "datasetSerieAttribute",
property: t,
index: i
});
}), l.branches && l.branches.forEach((t, u) => {
ne({
datasetObject: t,
requiredAttributes: ["name", "value"]
}).forEach((b) => {
ee({
componentName: "VueUiChestnut",
type: "datasetSerieAttribute",
property: b,
index: `${i} - ${u}`
});
}), t.breakdown && t.breakdown.forEach((b, y) => {
ne({
datasetObject: b,
requiredAttributes: ["name", "value"]
}).forEach((p) => {
ee({
componentName: "VueUiChestnut",
type: "datasetSerieAttribute",
property: p,
index: `${i} - ${u} - ${y}`
});
});
});
});
}), R.dataset.map((l, i) => {
const t = (l.branches || []).map((u) => u.value || 0).reduce((u, b) => u + b, 0);
return {
...l,
color: re(l.color) || le.value[i] || P[i] || P[i % P.length],
id: l.id || `root_${i}_${w.value}`,
type: "root",
total: t,
rootIndex: i,
branches: (l.branches || []).map((u, b) => ({
...u,
rootName: l.name,
rootIndex: i,
color: re(l.color) || le.value[i] || P[i] || P[i % P.length],
value: u.value >= 0 ? u.value : 0,
id: u.id || `branch_${i}_${b}_${w.value}`,
proportionToRoot: u.value / t,
type: "branch",
breakdown: (u.breakdown || []).map((y, p) => ({
table: {
rootName: l.name,
rootValue: t,
rootToTotal: t / O.value,
branchName: u.name,
branchValue: u.value,
branchToTotal: u.value / O.value,
branchToRoot: u.value / t,
nutName: y.name,
nutValue: y.value,
nutToTotal: y.value / O.value,
nutToRoot: y.value / t,
nutToBranch: y.value / u.value
},
...y,
type: "nut",
branchName: u.name,
rootName: l.name,
branchTotal: u.value >= 0 ? u.value : 0,
proportionToBranch: y.value / u.value,
proportionToRoot: y.value / t,
proportionToTree: y.value / O.value,
rootIndex: i,
id: y.id || `nut_${i}_${b}_${p}_${w.value}`,
color: re(y.color) || le.value[p] || P[p] || P[p % P.length],
value: y.value >= 0 ? y.value : 0
}))
}))
};
})));
function Be() {
return N.value;
}
const U = Pe, je = m(() => N.value.flatMap((l) => l.branches).length), Ae = m(() => Math.max(...N.value.map((l) => l.branches.map((i) => i.value).reduce((i, t) => i + t, 0)))), Xe = m(() => Math.max(...N.value.flatMap((l) => l.branches.map((i) => i.value)))), xe = m(() => 256 + r.value.padding.left), j = m(() => N.value.sort((l, i) => i.total - l.total).map((l, i) => {
const t = C.value.height / N.value.length / 2, u = l.total / Ae.value * (t > 64 ? 64 : t);
return {
...l,
x: C.value.seedX,
y: C.value.top + C.value.height / N.value.length * (i + 1) - (C.value.height / N.value.length / 2 + r.value.gap / 2),
r: u < r.value.branchSize / 2 ? r.value.branchSize / 2 : u
};
})), Ge = m(() => e.value.style.chart.layout.branches.widthRatio <= 0 ? 0.1 : e.value.style.chart.layout.branches.widthRatio > 1.8 ? 1.8 : e.value.style.chart.layout.branches.widthRatio), Ee = m(() => j.value.flatMap((l) => l.branches)), A = m(() => Ee.value.sort((l, i) => i.value - l.value).map((l, i) => ({
...l,
y1: i * r.value.branchSize + C.value.top + i * r.value.gap,
y2: i * r.value.branchSize + r.value.branchSize,
x1: xe.value,
x2: 384 * l.value / Xe.value * Ge.value + xe.value
})));
function oe(l) {
const i = j.value.find((t) => t.rootIndex === l.rootIndex);
return { x: i.x, y: i.y, r: i.r };
}
const d = T(null), M = T(null), x = T(null), I = T(null);
function $() {
d.value = null, x.value = null, I.value = null;
}
function L(l) {
return I.value ? I.value === null ? !0 : l.type === "root" ? l.id === I.value.id : l.rootIndex === I.value.rootIndex : d.value === null && x.value === null ? !0 : l.type === "nut" ? d.value.id === l.id : l.type === "branch" ? x.value.id === l.id : l.type === "root" ? x.value && x.value.rootIndex === l.rootIndex || d.value && d.value.rootIndex === l.rootIndex : !1;
}
function Ue(l) {
$(), Te(() => {
d.value = l, x.value = l, M.value = Se(
{ series: l.breakdown, base: 1 },
l.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
l.y1 + r.value.branchSize / 2,
80,
80
), U("selectNut", l.breakdown);
});
}
function X() {
d.value = null, M.value = null, U("selectNut", null);
}
function se(l) {
x.value && x.value.id === l.id ? (x.value = null, $(), U("selectBranch", null)) : ($(), x.value = l, U("selectBranch", l));
}
function me(l) {
I.value && I.value.id === l.id ? ($(), U("selectRoot", null)) : ($(), I.value = l, U("selectRoot", l));
}
function De() {
return C.value.bottom - (d.value.y1 + 180) < 0 ? 0 : C.value.bottom;
}
function D(l) {
return l.proportion * 100 > e.value.style.chart.layout.nuts.selected.labels.dataLabels.hideUnderValue;
}
function Ye() {
const l = new ResizeObserver((i) => {
i.forEach((t) => {
_e.value = t.contentRect.width < Me.value;
});
});
ae.value && l.observe(ae.value);
}
Ke(() => {
ke();
});
function ke() {
ot(R.dataset) && ee({
componentName: "VueUiChestnut",
type: "dataset"
});
const l = je.value * (r.value.branchSize + r.value.gap) + r.value.padding.top + r.value.padding.bottom;
r.value.height = l, Ye();
}
const v = m(() => {
const l = [
e.value.table.th.translations.rootName,
e.value.table.th.translations.rootValue,
e.value.table.th.translations.rootToTotal,
e.value.table.th.translations.branchName,
e.value.table.th.translations.branchValue,
e.value.table.th.translations.branchToRoot,
e.value.table.th.translations.branchToTotal,
e.value.table.th.translations.nutName,
e.value.table.th.translations.nutValue,
e.value.table.th.translations.nutToBranch,
e.value.table.th.translations.nutToRoot,
e.value.table.th.translations.nutToTotal
], i = N.value.flatMap((t, u) => t.branches.flatMap((b, y) => b.breakdown.flatMap((p, Ta) => p.table)));
return { head: l, body: i };
});
function we() {
Te(() => {
const l = [[e.value.style.chart.layout.title.text], [e.value.style.chart.layout.title.subtitle.text], [""], ["Grand total", O.value], [""]], i = v.value.head, t = v.value.body.map((y, p) => [
v.value.body[p - 1] && v.value.body[p - 1].rootName === y.rootName ? "" : y.rootName,
v.value.body[p - 1] && v.value.body[p - 1].rootName === y.rootName ? "" : y.rootValue,
v.value.body[p - 1] && v.value.body[p - 1].rootName === y.rootName ? "" : y.rootToTotal,
v.value.body[p - 1] && v.value.body[p - 1].branchName === y.branchName ? "" : y.branchName,
v.value.body[p - 1] && v.value.body[p - 1].branchName === y.branchName ? "" : y.branchValue,
v.value.body[p - 1] && v.value.body[p - 1].branchName === y.branchName ? "" : y.branchToRoot,
v.value.body[p - 1] && v.value.body[p - 1].branchName === y.branchName ? "" : y.branchToTotal,
y.nutName,
y.nutValue,
y.nutToBranch,
y.nutToRoot,
y.nutToTotal
]), u = l.concat([i]).concat(t), b = nt(u);
rt({ csvContent: b, title: e.value.style.chart.layout.title.text || "vue-ui-chestnut" });
});
}
const q = T(!1);
function qe(l) {
q.value = l, ce.value += 1;
}
function $e() {
E.value.showTable = !E.value.showTable;
}
const W = T(!1);
function ue() {
W.value = !W.value;
}
return Le({
getData: Be,
generatePdf: pe,
generateCsv: we,
generateImage: ge,
toggleTable: $e,
toggleAnnotator: ue
}), (l, i) => (a(), o("div", {
class: k(`vue-ui-chestnut ${q.value ? "vue-data-ui-wrapper-fullscreen" : ""}`),
ref_key: "chestnutChart",
ref: ie,
id: `vue-ui-chestnut_${w.value}`,
style: h(`font-family:${e.value.style.fontFamily};width:100%; text-align:center;background:${e.value.style.chart.backgroundColor}`),
onMouseenter: i[2] || (i[2] = () => n(de)(!0)),
onMouseleave: i[3] || (i[3] = () => n(de)(!1))
}, [
e.value.userOptions.buttons.annotator ? (a(), K(ft, {
key: 0,
svgRef: n(ye),
backgroundColor: e.value.style.chart.backgroundColor,
color: e.value.style.chart.color,
active: W.value,
onClose: ue
}, null, 8, ["svgRef", "backgroundColor", "color", "active"])) : f("", !0),
Oe.value ? (a(), o("div", xt, null, 512)) : f("", !0),
e.value.userOptions.show && Y.value && (n(ve) || n(te)) ? (a(), K(ct, {
ref_key: "details",
ref: Re,
key: `user_options_${ce.value}`,
backgroundColor: e.value.style.chart.backgroundColor,
color: e.value.style.chart.color,
isImaging: n(be),
isPrinting: n(fe),
uid: w.value,
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: q.value,
titles: { ...e.value.userOptions.buttonTitles },
chartElement: ie.value,
position: e.value.userOptions.position,
hasAnnotator: e.value.userOptions.buttons.annotator,
isAnnotation: W.value,
onToggleFullscreen: qe,
onGeneratePdf: n(pe),
onGenerateCsv: we,
onGenerateImage: n(ge),
onToggleTable: $e,
onToggleAnnotator: ue,
style: h({
visibility: n(ve) ? n(te) ? "visible" : "hidden" : "visible"
})
}, Je({ _: 2 }, [
l.$slots.menuIcon ? {
name: "menuIcon",
fn: B(({ isOpen: t, color: u }) => [
S(l.$slots, "menuIcon", J(Q({ isOpen: t, color: u })), void 0, !0)
]),
key: "0"
} : void 0,
l.$slots.optionPdf ? {
name: "optionPdf",
fn: B(() => [
S(l.$slots, "optionPdf", {}, void 0, !0)
]),
key: "1"
} : void 0,
l.$slots.optionCsv ? {
name: "optionCsv",
fn: B(() => [
S(l.$slots, "optionCsv", {}, void 0, !0)
]),
key: "2"
} : void 0,
l.$slots.optionImg ? {
name: "optionImg",
fn: B(() => [
S(l.$slots, "optionImg", {}, void 0, !0)
]),
key: "3"
} : void 0,
l.$slots.optionTable ? {
name: "optionTable",
fn: B(() => [
S(l.$slots, "optionTable", {}, void 0, !0)
]),
key: "4"
} : void 0,
l.$slots.optionFullscreen ? {
name: "optionFullscreen",
fn: B(({ toggleFullscreen: t, isFullscreen: u }) => [
S(l.$slots, "optionFullscreen", J(Q({ toggleFullscreen: t, isFullscreen: u })), void 0, !0)
]),
key: "5"
} : void 0,
l.$slots.optionAnnotator ? {
name: "optionAnnotator",
fn: B(({ toggleAnnotator: t, isAnnotator: u }) => [
S(l.$slots, "optionAnnotator", J(Q({ toggleAnnotator: t, isAnnotator: u })), void 0, !0)
]),
key: "6"
} : void 0
]), 1032, ["backgroundColor", "color", "isImaging", "isPrinting", "uid", "hasPdf", "hasImg", "hasXls", "hasTable", "hasFullscreen", "isFullscreen", "titles", "chartElement", "position", "hasAnnotator", "isAnnotation", "onGeneratePdf", "onGenerateImage", "style"])) : f("", !0),
r.value.height > 0 && Y.value ? (a(), o("svg", {
key: 3,
ref_key: "svgRef",
ref: ye,
xmlns: n(st),
class: k({ "vue-data-ui-fullscreen--on": q.value, "vue-data-ui-fulscreen--off": !q.value }),
viewBox: `0 0 ${r.value.width <= 0 ? 10 : r.value.width} ${r.value.height <= 0 ? 10 : r.value.height}`,
style: h(`overflow:visible;background:transparent;color:${e.value.style.chart.color}`)
}, [
Ce(ht),
l.$slots["chart-background"] ? (a(), o("foreignObject", {
key: 0,
x: 0,
y: 0,
width: r.value.width <= 0 ? 10 : r.value.width,
height: r.value.height <= 0 ? 10 : r.value.height,
style: {
pointerEvents: "none"
}
}, [
S(l.$slots, "chart-background", {}, void 0, !0)
], 8, kt)) : f("", !0),
d.value ? f("", !0) : (a(), o("g", wt, [
e.value.style.chart.layout.title.text ? (a(), o("text", {
key: 0,
"text-anchor": "middle",
fill: e.value.style.chart.layout.title.color,
"font-weight": e.value.style.chart.layout.title.bold ? "bold" : "normal",
"font-size": e.value.style.chart.layout.title.fontSize,
x: r.value.width / 2,
y: 12 + e.value.style.chart.layout.title.fontSize + e.value.style.chart.layout.title.offsetY,
onClick: $
}, c(e.value.style.chart.layout.title.text), 9, $t)) : f("", !0),
e.value.style.chart.layout.title.subtitle.text ? (a(), o("text", {
key: 1,
"text-anchor": "middle",
fill: e.value.style.chart.layout.title.subtitle.color,
"font-weight": e.value.style.chart.layout.title.subtitle.bold ? "bold" : "normal",
"font-size": e.value.style.chart.layout.title.subtitle.fontSize,
x: r.value.width / 2,
y: 48 + e.value.style.chart.layout.title.subtitle.fontSize + e.value.style.chart.layout.title.subtitle.offsetY,
onClick: $
}, c(e.value.style.chart.layout.title.subtitle.text), 9, Ct)) : f("", !0)
])),
s("defs", null, [
(a(!0), o(g, null, _(N.value, (t, u) => (a(), o("radialGradient", {
cx: "50%",
cy: "50%",
r: "50%",
fx: "50%",
fy: "50%",
id: `root_gradient_${w.value}_${t.rootIndex}`
}, [
s("stop", {
offset: "0%",
"stop-color": n(F)(n(ze)(t.color, 0.05), 100 - e.value.style.chart.layout.roots.gradientIntensity)
}, null, 8, zt),
s("stop", {
offset: "100%",
"stop-color": t.color
}, null, 8, Nt)
], 8, Tt))), 256)),
(a(!0), o(g, null, _(N.value, (t) => (a(), o("linearGradient", {
x1: "0%",
y1: "0%",
x2: "100%",
y2: "0%",
id: `branch_gradient_${w.value}_${t.rootIndex}`
}, [
s("stop", {
offset: "0%",
"stop-color": t.color
}, null, 8, Ft),
s("stop", {
offset: "100%",
"stop-color": n(F)(n(ze)(t.color, 0.02), 100 - e.value.style.chart.layout.branches.gradientIntensity)
}, null, 8, It)
], 8, St))), 256)),
s("radialGradient", {
cx: "50%",
cy: "50%",
r: "50%",
fx: "50%",
fy: "50%",
id: `nutpick_${w.value}`
}, [
s("stop", {
offset: "0%",
"stop-color": n(F)("#FFFFFF", 0)
}, null, 8, Pt),
s("stop", {
offset: "80%",
"stop-color": n(F)("#FFFFFF", e.value.style.chart.layout.nuts.selected.gradientIntensity)
}, null, 8, Vt),
s("stop", {
offset: "100%",
"stop-color": n(F)("#FFFFFF", 0)
}, null, 8, Rt)
], 8, Lt),
s("radialGradient", {
cx: "50%",
cy: "50%",
r: "50%",
fx: "50%",
fy: "50%",
id: `nut_${w.value}`
}, [
s("stop", {
offset: "0%",
"stop-color": n(F)("#FFFFFF", 0)
}, null, 8, Mt),
s("stop", {
offset: "80%",
"stop-color": n(F)("#FFFFFF", e.value.style.chart.layout.nuts.gradientIntensity)
}, null, 8, Bt),
s("stop", {
offset: "100%",
"stop-color": n(F)("#FFFFFF", 0)
}, null, 8, jt)
], 8, Ot),
s("radialGradient", {
cx: "50%",
cy: "50%",
r: "50%",
fx: "50%",
fy: "50%",
id: `nut_underlayer_${w.value}`
}, [
s("stop", {
offset: "0%",
"stop-color": n(F)(e.value.style.chart.backgroundColor, 100)
}, null, 8, Xt),
s("stop", {
offset: "80%",
"stop-color": n(F)(e.value.style.chart.backgroundColor, 60)
}, null, 8, Gt),
s("stop", {
offset: "100%",
"stop-color": n(F)(e.value.style.chart.backgroundColor, 0)
}, null, 8, Et)
], 8, At)
]),
e.value.style.chart.layout.grandTotal.show ? (a(), o("g", Ut, [
s("text", {
x: C.value.seedX,
y: 32 + e.value.style.chart.layout.grandTotal.offsetY,
"font-size": e.value.style.chart.layout.grandTotal.fontSize,
"font-weight": e.value.style.chart.layout.grandTotal.bold ? "bold" : "normal",
fill: e.value.style.chart.layout.grandTotal.color,
"text-anchor": "middle",
onClick: $
}, c(e.value.style.chart.layout.grandTotal.text), 9, Dt),
s("text", {
x: C.value.seedX,
y: 38 + e.value.style.chart.layout.grandTotal.fontSize + e.value.style.chart.layout.grandTotal.offsetY,
"font-size": e.value.style.chart.layout.grandTotal.fontSize,
"font-weight": e.value.style.chart.layout.grandTotal.bold ? "bold" : "normal",
fill: e.value.style.chart.layout.grandTotal.color,
"text-anchor": "middle",
onClick: $
}, c(n(G)(
e.value.style.chart.layout.grandTotal.formatter,
O.value,
n(z)({
p: e.value.style.chart.layout.grandTotal.prefix,
v: O.value,
s: e.value.style.chart.layout.grandTotal.suffix,
r: e.value.style.chart.layout.grandTotal.roundingValue
})
)), 9, Yt)
])) : f("", !0),
(a(!0), o(g, null, _(A.value, (t) => (a(), o("g", null, [
(a(!0), o(g, null, _(r.value.branchSize, (u, b) => (a(), o("path", {
d: `M
${t.x1},${t.y1 + b}
C${t.x1 - 20},${t.y1 + b}
${t.x1 - 80},${t.y1 + b}
${oe(t).x + oe(t).r / 2}, ${oe(t).y}
`,
stroke: n(F)(t.color, e.value.style.chart.layout.links.opacity),
fill: "none",
"stroke-width": "2",
"shape-rendering": "cirspEdges",
style: h(`opacity:${L(t) ? 1 : 0}`),
onClick: $
}, null, 12, qt))), 256))
]))), 256)),
(a(!0), o(g, null, _(j.value, (t) => (a(), o("circle", {
cx: t.x,
cy: t.y,
r: t.r,
fill: e.value.style.chart.layout.roots.underlayerColor,
stroke: "none",
style: h(`cursor:pointer; opacity:${L(t) ? 1 : 0.05}`)
}, null, 12, Ht))), 256)),
(a(!0), o(g, null, _(j.value, (t, u) => (a(), o("circle", {
cx: t.x,
cy: t.y,
r: t.r,
fill: e.value.style.chart.layout.roots.useGradient ? `url(#root_gradient_${w.value}_${t.rootIndex})` : t.color,
stroke: e.value.style.chart.layout.roots.stroke,
"stroke-width": e.value.style.chart.layout.roots.strokeWidth,
style: h(`cursor:pointer; opacity:${L(t) ? 1 : 0.05}`),
onClick: (b) => me(t)
}, null, 12, Wt))), 256)),
e.value.style.chart.layout.roots.labels.show ? (a(), o("g", Kt, [
(a(!0), o(g, null, _(j.value, (t, u) => (a(), o("text", {
x: t.x,
y: t.y + e.value.style.chart.layout.roots.labels.fontSize / 2.6,
"text-anchor": "middle",
"font-size": e.value.style.chart.layout.roots.labels.fontSize,
fill: e.value.style.chart.layout.roots.labels.adaptColorToBackground ? n(Ne)(t.color) : e.value.style.chart.layout.roots.labels.color,
"font-weight": "bold",
style: h(`cursor:pointer; opacity:${L(t) ? 1 : 0.05}`),
onClick: (b) => me(t)
}, c(n(G)(
e.value.style.chart.layout.roots.labels.formatter,
t.total,
n(z)({
p: e.value.style.chart.layout.roots.labels.prefix,
v: t.total,
s: e.value.style.chart.layout.roots.labels.suffix,
r: e.value.style.chart.layout.roots.labels.roundingValue
}),
{ datapoint: t }
)), 13, Jt))), 256)),
(a(!0), o(g, null, _(j.value, (t) => (a(), o("g", null, [
d.value && t.rootIndex === d.value.rootIndex || x.value && t.rootIndex === x.value.rootIndex || I.value && t.rootIndex === I.value.rootIndex ? (a(), o("g", Qt, [
s("text", {
x: t.x,
y: t.y + t.r + 24,
"text-anchor": "middle",
fill: e.value.style.chart.layout.roots.labels.name.color,
"font-size": e.value.style.chart.layout.roots.labels.name.fontSize,
"font-weight": e.value.style.chart.layout.roots.labels.name.bold ? "bold" : "normal",
onClick: $
}, c(t.name), 9, Zt)
])) : f("", !0)
]))), 256))
])) : f("", !0),
(a(!0), o(g, null, _(A.value, (t) => (a(), o("rect", {
x: t.x1,
y: t.y1,
height: r.value.branchSize,
width: t.x2 - t.x1,
fill: e.value.style.chart.layout.branches.underlayerColor,
rx: e.value.style.chart.layout.branches.borderRadius,
stroke: "none",
style: h(`opacity:${L(t) ? 1 : 0.05}`),
onClick: (u) => se(t)
}, null, 12, el))), 256)),
(a(!0), o(g, null, _(A.value, (t, u) => (a(), o("rect", {
x: t.x1,
y: t.y1,
height: r.value.branchSize,
width: t.x2 - t.x1,
fill: e.value.style.chart.layout.branches.useGradient ? `url(#branch_gradient_${w.value}_${t.rootIndex})` : t.color,
rx: e.value.style.chart.layout.branches.borderRadius,
stroke: e.value.style.chart.layout.branches.stroke,
"stroke-width": e.value.style.chart.layout.branches.strokeWidth,
style: h(`cursor:pointer; opacity:${L(t) ? 1 : 0.05}`),
onClick: (b) => se(t)
}, null, 12, tl))), 256)),
e.value.style.chart.layout.branches.labels.dataLabels.show ? (a(), o("g", ll, [
(a(!0), o(g, null, _(A.value, (t) => (a(), o("g", null, [
t.proportionToRoot * 100 > e.value.style.chart.layout.branches.labels.dataLabels.hideUnderValue ? (a(), o("text", {
key: 0,
x: t.x1 + 6,
y: t.y1 + r.value.branchSize / 1.5,
"text-anchor": "start",
fill: n(Ne)(t.color),
"font-size": e.value.style.chart.layout.branches.labels.dataLabels.fontSize,
"font-weight": "bold",
style: h(`cursor:pointer; opacity:${L(t) ? 1 : 0.05}`),
onClick: (u) => se(t)
}, c(n(G)(
e.value.style.chart.layout.branches.labels.dataLabels.formatter,
t.value,
n(z)({
p: e.value.style.chart.layout.branches.labels.dataLabels.prefix,
v: t.value,
s: e.value.style.chart.layout.branches.labels.dataLabels.suffix,
r: e.value.style.chart.layout.branches.labels.dataLabels.roundingValue
}),
{ datapoint: t }
)), 13, al)) : f("", !0)
]))), 256))
])) : f("", !0),
(a(!0), o(g, null, _(A.value, (t, u) => (a(), o("g", null, [
(a(!0), o(g, null, _(n(Se)(
{ series: t.breakdown, base: 1 },
t.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
t.y1 + r.value.branchSize / 2,
r.value.branchSize / 3,
r.value.branchSize / 3
), (b, y) => (a(), o("path", {
d: b.path,
stroke: b.color,
"stroke-width": 10,
fill: "none",
style: h(`opacity:${L(t) ? 1 : 0.1}`)
}, null, 12, ol))), 256)),
s("circle", {
fill: e.value.style.chart.layout.nuts.useGradient ? `url(#nut_${w.value})` : "transparent",
cx: t.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
cy: t.y1 + r.value.branchSize / 2,
r: r.value.branchSize / 2 + 2,
onClick: (b) => Ue(t),
style: h(`cursor:pointer;opacity:${L(t) ? 1 : 0.1}`)
}, null, 12, sl)
]))), 256)),
e.value.style.chart.layout.branches.labels.show && !x.value ? (a(), o("g", ul, [
(a(!0), o(g, null, _(A.value, (t) => (a(), o("text", {
x: t.x2 + r.value.branchSize + 24 + e.value.style.chart.layout.nuts.offsetX,
y: t.y1 + r.value.branchSize / 2 + 5,
"font-size": e.value.style.chart.layout.branches.labels.fontSize,
"font-weight": e.value.style.chart.layout.branches.labels.bold ? "bold" : "normal",
fill: e.value.style.chart.layout.branches.labels.color,
"text-anchor": "start",
style: h(`opacity:${L(t) ? 1 : 0.1}`)
}, c(t.name), 13, nl))), 256))
])) : f("", !0),
s("line", {
x1: 256 + r.value.padding.left,
x2: 256 + r.value.padding.left,
y1: C.value.top,
y2: C.value.bottom,
stroke: e.value.style.chart.layout.verticalSeparator.stroke,
"stroke-width": e.value.style.chart.layout.verticalSeparator.strokeWidth
}, null, 8, rl),
!d.value && !x.value ? (a(), o("foreignObject", {
key: 6,
x: 0,
y: C.value.bottom,
height: r.value.height - C.value.bottom,
width: r.value.width,
style: { overflow: "visible" },
onClick: $
}, [
s("div", cl, [
s("div", dl, [
(a(!0), o(g, null, _(j.value, (t) => (a(), o("div", {
style: h(`display:flex;align-items:center;gap:3px;flex-direction:row;font-size:${e.value.style.chart.layout.legend.fontSize}px;`)
}, [
(a(), o("svg", vl, [
s("circle", {
cx: "10",
cy: "10",
r: "10",
fill: t.color,
stroke: "none"
}, null, 8, yl)
])),
s("span", null, c(t.name) + ":", 1),
s("b", null, c(n(G)(
e.value.style.chart.layout.roots.labels.formatter,
t.total,
n(z)({
p: e.value.style.chart.layout.legend.prefix,
v: t.total,
s: e.value.style.chart.layout.legend.suffix,
r: e.value.style.chart.layout.legend.roundingValue
}),
{ datapoint: t }
)), 1),
Z(" (" + c(n(z)({
v: t.total / O.value * 100,
s: "%",
r: e.value.style.chart.layout.legend.roundingPercentage
})) + ") ", 1)
], 4))), 256))
])
])
], 8, il)) : f("", !0),
d.value && M.value ? (a(), o("g", hl, [
(a(), o("foreignObject", {
x: 0,
y: De(),
height: r.value.height - C.value.bottom,
width: r.value.width,
style: { overflow: "visible" },
onClick: $
}, [
s("div", bl, [
s("b", null, c(d.value.name), 1),
s("div", pl, [
(a(!0), o(g, null, _(d.value.breakdown, (t, u) => (a(), o("div", {
style: h(`display:flex;align-items:center;gap:6px;flex-direction:row;font-size:${e.value.style.chart.layout.legend.fontSize}px;`)
}, [
(a(), o("svg", gl, [
s("circle", {
cx: "10",
cy: "10",
r: "10",
fill: t.color,
stroke: "none"
}, null, 8, _l)
])),
s("span", null, [
Z(c(t.name) + ": ", 1),
s("b", null, c(e.value.style.chart.layout.legend.prefix) + " " + c(t.value.toFixed(e.value.style.chart.layout.nuts.selected.labels.roundingValue)) + " " + c(e.value.style.chart.layout.legend.suffix), 1),
Z(" (" + c((t.proportionToBranch * 100).toFixed(e.value.style.chart.layout.nuts.selected.labels.roundingPercentage)) + "%)", 1)
])
], 4))), 256))
])
])
], 8, fl)),
s("circle", {
cx: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
cy: d.value.y1 + r.value.branchSize / 2,
r: 256,
fill: `url(#nut_underlayer_${w.value})`,
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, xl),
(a(!0), o(g, null, _(M.value, (t) => (a(), o("g", null, [
D(t) ? (a(), o("path", {
key: 0,
d: n(ut)(
t,
{
x: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
y: d.value.y1 + r.value.branchSize / 2
},
16,
16,
!1,
!1,
64
),
stroke: t.color,
"stroke-width": "1",
"stroke-linecap": "round",
"stroke-linejoin": "round",
fill: "none",
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, ml)) : f("", !0)
]))), 256)),
s("circle", {
cx: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
cy: d.value.y1 + r.value.branchSize / 2,
r: 118,
fill: e.value.style.chart.backgroundColor,
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, kl),
(a(!0), o(g, null, _(M.value, (t) => (a(), o("path", {
d: t.path,
stroke: t.color,
"stroke-width": 64,
fill: "none",
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, wl))), 256)),
s("circle", {
cx: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
cy: d.value.y1 + r.value.branchSize / 2,
r: 100,
fill: `url(#nutpick_${w.value})`,
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, $l),
s("circle", {
cx: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
cy: d.value.y1 + r.value.branchSize / 2,
r: 48,
fill: e.value.style.chart.backgroundColor,
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, null, 10, Cl),
s("text", {
x: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
y: d.value.y1 + 8,
fill: e.value.style.chart.layout.nuts.selected.labels.core.total.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.core.total.fontSize,
"font-weight": e.value.style.chart.layout.nuts.selected.labels.core.total.bold ? "bold" : "normal",
"text-anchor": "middle",
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(e.value.translations.total), 11, Tl),
s("text", {
x: d.value.x2 + 24 + e.value.style.chart.layout.nuts.offsetX,
y: d.value.y1 + 36,
fill: e.value.style.chart.layout.nuts.selected.labels.core.value.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.core.value.fontSize,
"font-weight": e.value.style.chart.layout.nuts.selected.labels.core.value.bold ? "bold" : "normal",
"text-anchor": "middle",
onClick: X,
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(n(G)(
e.value.style.chart.layout.nuts.selected.labels.dataLabels.formatter,
d.value.value,
n(z)({
p: e.value.style.chart.layout.nuts.selected.labels.core.value.prefix,
v: d.value.value,
s: e.value.style.chart.layout.nuts.selected.labels.core.value.suffix,
r: e.value.style.chart.layout.nuts.selected.roundingValue
}),
{ datapoint: d.value }
)), 11, zl),
(a(!0), o(g, null, _(M.value, (t, u) => (a(), o("g", null, [
D(t) ? (a(), o("text", {
key: 0,
x: n(V)(t).x,
"text-anchor": n(V)(t).anchor,
y: n(H)(t),
fill: t.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
style: h(`font-weight:${e.value.style.chart.layout.nuts.selected.labels.dataLabels.bold ? "bold" : ""}`),
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, " ⬤ ", 14, Nl)) : f("", !0),
D(t) ? (a(), o("text", {
key: 1,
x: n(V)(t, !0).x,
"text-anchor": n(V)(t, !0).anchor,
y: n(H)(t),
fill: e.value.style.chart.layout.nuts.selected.labels.dataLabels.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
style: h(`font-weight:${e.value.style.chart.layout.nuts.selected.labels.dataLabels.bold ? "bold" : ""}`),
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(d.value.breakdown[u].name), 15, Sl)) : f("", !0)
]))), 256)),
(a(!0), o(g, null, _(M.value, (t, u) => (a(), o("g", null, [
D(t) ? (a(), o("text", {
key: 0,
x: n(V)(t, !0).x,
"text-anchor": n(V)(t).anchor,
y: n(H)(t) + e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
fill: e.value.style.chart.layout.nuts.selected.labels.dataLabels.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
style: h(`font-weight:${e.value.style.chart.layout.nuts.selected.labels.dataLabels.bold ? "bold" : ""}`),
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(n(z)({
v: d.value.breakdown[u].value / d.value.value * 100,
s: "%",
r: e.value.style.chart.layout.nuts.selected.labels.roundingPercentage
})) + " " + c(e.value.translations.of) + " " + c(d.value.breakdown[u].branchName) + " " + c(n(G)(
e.value.style.chart.layout.nuts.selected.labels.dataLabels.formatter,
d.value.breakdown[u].value,
n(z)({
p: e.value.style.chart.layout.nuts.selected.labels.dataLabels.prefix,
v: d.value.breakdown[u].value,
s: e.value.style.chart.layout.nuts.selected.labels.dataLabels.suffix,
r: e.value.style.chart.layout.nuts.selected.roundingValue
}),
{ datapoint: M.value, seriesIndex: u }
)), 15, Fl)) : f("", !0),
D(t) ? (a(), o("text", {
key: 1,
x: n(V)(t, !0).x,
"text-anchor": n(V)(t).anchor,
y: n(H)(t) + e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize * 2,
fill: e.value.style.chart.layout.nuts.selected.labels.dataLabels.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
style: h(`font-weight:${e.value.style.chart.layout.nuts.selected.labels.dataLabels.bold ? "bold" : ""}`),
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(n(z)({
v: d.value.breakdown[u].proportionToRoot * 100,
s: "%",
r: e.value.style.chart.layout.nuts.selected.labels.roundingPercentage
})) + " " + c(e.value.translations.of) + " " + c(d.value.breakdown[u].rootName), 15, Il)) : f("", !0),
D(t) ? (a(), o("text", {
key: 2,
x: n(V)(t, !0).x,
"text-anchor": n(V)(t).anchor,
y: n(H)(t) + e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize * 3,
fill: e.value.style.chart.layout.nuts.selected.labels.dataLabels.color,
"font-size": e.value.style.chart.layout.nuts.selected.labels.dataLabels.fontSize,
style: h(`font-weight:${e.value.style.chart.layout.nuts.selected.labels.dataLabels.bold ? "bold" : ""}`),
class: k(e.value.style.chart.layout.nuts.selected.useMotion ? "vue-ui-chestnut-animated" : "")
}, c(n(z)({
v: d.value.breakdown[u].proportionToTree * 100,
s: "%",
r: e.value.style.chart.layout.nuts.selected.labels.roundingPercentage
})) + " " + c(e.value.translations.proportionToTree), 15, Ll)) : f("", !0)
]))), 256))
])) : f("", !0),
(a(!0), o(g, null, _(A.value, (t) => (a(), o("g", null, [
x.value && x.value.id === t.id && !d.value ? (a(), o("text", {
key: 0,
x: t.x1 + 6,
y: t.y1 + r.value.branchSize + 24,
"font-weight": "bold",
"text-anchor": "start",
"font-size": e.value.style.chart.layout.branches.labels.dataLabels.fontSize,
fill: e.value.style.chart.layout.branches.labels.color,
onClick: $
}, c(t.name) + ": " + c(n(G)(
e.value.style.chart.layout.branches.labels.dataLabels.formatter,
t.value,
n(z)({
p: e.value.style.chart.layout.branches.labels.dataLabels.prefix,
v: t.value,
s: e.value.style.chart.layout.branches.labels.dataLabels.suffix,
r: e.value.style.chart.layout.branches.labels.dataLabels.roundingValue
}),
{ datapoint: t }
)), 9, Pl)) : f("", !0),
x.value && x.value.id === t.id && !d.value ? (a(), o("text", {
key: 1,
x: t.x1 + 6,
y: t.y1 + r.value.branchSize + 48,
"text-anchor": "start",
"font-size": e.value.style.chart.layout.branches.labels.dataLabels.fontSize,
fill: e.value.style.chart.layout.branches.labels.color,
onClick: $
}, c(n(z)({
v: t.proportionToRoot * 100,
s: "%",
r: e.value.style.chart.layout.branches.labels.dataLabels.roundingPercentage
})) + " " +