vue-data-ui 3.23.0 → 3.23.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/{Arrow-o2qHNvrC.js → Arrow-CF0VFcBH.js} +1 -1
  2. package/dist/{BaseDraggableDialog-qTnfhLBz.js → BaseDraggableDialog-LoqqwRtV.js} +2 -2
  3. package/dist/{BaseIcon-91MZoczJ.js → BaseIcon-BfndwIWE.js} +1 -1
  4. package/dist/{BaseLegendToggle-CtAPwzr2.js → BaseLegendToggle-DZVucLnv.js} +1 -1
  5. package/dist/{BaseZoomControls-rdzlicuz.js → BaseZoomControls-BZvCnZEi.js} +2 -2
  6. package/dist/{ColorPicker-CIAkdPrj.js → ColorPicker--ayG2YHf.js} +2 -2
  7. package/dist/{DataTable-D4tM9s5Y.js → DataTable-BbKgJ5UI.js} +2 -2
  8. package/dist/{HillActions-BWhxHlrj.js → HillActions-BD9j_sOU.js} +1 -1
  9. package/dist/{Legend-CQTRlzK-.js → Legend-CQxUgOd-.js} +2 -2
  10. package/dist/{NonSvgPenAndPaper-Cawacw1W.js → NonSvgPenAndPaper-4ypecDg1.js} +6 -6
  11. package/dist/{PackageVersion--QCMh5k_.js → PackageVersion-DXU7nRr9.js} +1 -1
  12. package/dist/{PenAndPaper-cE4J8-rA.js → PenAndPaper-DAE-tnEQ.js} +6 -6
  13. package/dist/{Shape-BPMV94Ij.js → Shape-C21CMlWS.js} +1 -1
  14. package/dist/SlicerPreview-wUw1hFwe.js +1703 -0
  15. package/dist/{SparkTooltip-BaYtEKS6.js → SparkTooltip-CjsbIhzi.js} +1 -1
  16. package/dist/{Title-BODtwViI.js → Title-BE3qg9xl.js} +1 -1
  17. package/dist/{Tooltip-CMTGxeYO.js → Tooltip-DhjyfHwz.js} +2 -2
  18. package/dist/{UserOptions-3ujTo3LD.js → UserOptions-Dt98of5H.js} +2 -2
  19. package/dist/components/arrow.js +1 -1
  20. package/dist/components/vue-ui-3d-bar.js +1 -1
  21. package/dist/components/vue-ui-accordion.js +1 -1
  22. package/dist/components/vue-ui-age-pyramid.js +1 -1
  23. package/dist/components/vue-ui-annotator.js +1 -1
  24. package/dist/components/vue-ui-bullet.js +1 -1
  25. package/dist/components/vue-ui-bump.js +1 -1
  26. package/dist/components/vue-ui-candlestick.js +1 -1
  27. package/dist/components/vue-ui-carousel-table.js +1 -1
  28. package/dist/components/vue-ui-chestnut.js +1 -1
  29. package/dist/components/vue-ui-chord.js +1 -1
  30. package/dist/components/vue-ui-circle-pack.js +1 -1
  31. package/dist/components/vue-ui-cursor.js +1 -1
  32. package/dist/components/vue-ui-dag.js +1 -1
  33. package/dist/components/vue-ui-dashboard.js +1 -1
  34. package/dist/components/vue-ui-digits.js +1 -1
  35. package/dist/components/vue-ui-donut-evolution.js +1 -1
  36. package/dist/components/vue-ui-donut.js +1 -1
  37. package/dist/components/vue-ui-dumbbell.js +1 -1
  38. package/dist/components/vue-ui-flow.js +1 -1
  39. package/dist/components/vue-ui-funnel.js +1 -1
  40. package/dist/components/vue-ui-galaxy.js +1 -1
  41. package/dist/components/vue-ui-gauge.js +1 -1
  42. package/dist/components/vue-ui-geo.js +1 -1
  43. package/dist/components/vue-ui-gizmo.js +1 -1
  44. package/dist/components/vue-ui-heatmap.js +1 -1
  45. package/dist/components/vue-ui-hill.js +1 -1
  46. package/dist/components/vue-ui-history-plot.js +1 -1
  47. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  48. package/dist/components/vue-ui-icon.js +1 -1
  49. package/dist/components/vue-ui-kpi.js +1 -1
  50. package/dist/components/vue-ui-mini-loader.js +1 -1
  51. package/dist/components/vue-ui-molecule.js +1 -1
  52. package/dist/components/vue-ui-mood-radar.js +1 -1
  53. package/dist/components/vue-ui-nested-donuts.js +1 -1
  54. package/dist/components/vue-ui-onion.js +1 -1
  55. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  56. package/dist/components/vue-ui-quadrant.js +1 -1
  57. package/dist/components/vue-ui-quick-chart.js +1 -1
  58. package/dist/components/vue-ui-radar.js +1 -1
  59. package/dist/components/vue-ui-rating.js +1 -1
  60. package/dist/components/vue-ui-relation-circle.js +1 -1
  61. package/dist/components/vue-ui-ridgeline.js +1 -1
  62. package/dist/components/vue-ui-rings.js +1 -1
  63. package/dist/components/vue-ui-scatter.js +1 -1
  64. package/dist/components/vue-ui-skeleton.js +1 -1
  65. package/dist/components/vue-ui-smiley.js +1 -1
  66. package/dist/components/vue-ui-spark-trend.js +1 -1
  67. package/dist/components/vue-ui-sparkbar.js +1 -1
  68. package/dist/components/vue-ui-sparkgauge.js +1 -1
  69. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  70. package/dist/components/vue-ui-sparkline.js +1 -1
  71. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  72. package/dist/components/vue-ui-stackbar.js +1 -1
  73. package/dist/components/vue-ui-stackline.js +1 -1
  74. package/dist/components/vue-ui-strip-plot.js +1 -1
  75. package/dist/components/vue-ui-table-heatmap.js +1 -1
  76. package/dist/components/vue-ui-table-sparkline.js +1 -1
  77. package/dist/components/vue-ui-table.js +1 -1
  78. package/dist/components/vue-ui-thermometer.js +1 -1
  79. package/dist/components/vue-ui-timer.js +1 -1
  80. package/dist/components/vue-ui-tiremarks.js +1 -1
  81. package/dist/components/vue-ui-treemap.js +1 -1
  82. package/dist/components/vue-ui-vertical-bar.js +1 -1
  83. package/dist/components/vue-ui-waffle.js +1 -1
  84. package/dist/components/vue-ui-wheel.js +1 -1
  85. package/dist/components/vue-ui-word-cloud.js +1 -1
  86. package/dist/components/vue-ui-world.js +1 -1
  87. package/dist/components/vue-ui-xy-canvas.js +1 -1
  88. package/dist/components/vue-ui-xy.js +1 -1
  89. package/dist/composables.js +1 -1
  90. package/dist/{dom-to-png-4tdMNGPX.js → dom-to-png-BYIvdTe8.js} +1 -1
  91. package/dist/{exposedLib-DWLRqRhv.js → exposedLib-C0DPCgFj.js} +7 -4
  92. package/dist/{geoProjections-BCP_PoiB.js → geoProjections-CEo3dVaL.js} +1 -1
  93. package/dist/{img-DIQG5q8T.js → img-Bnokohej.js} +1 -1
  94. package/dist/{labelUtils-C5lnc_xc.js → labelUtils-BeVpDvTJ.js} +1 -1
  95. package/dist/{lib-BuMGJ_a0.js → lib-Bttd6u5E.js} +21 -11
  96. package/dist/{package-BMc_ZieJ.js → package-bsfpO6y3.js} +1 -1
  97. package/dist/{pdf-Cnz4NKM9.js → pdf-CVIDfCrS.js} +1 -1
  98. package/dist/{render-common-Ktg2LZFG.js → render-common-C0PEe9so.js} +2 -2
  99. package/dist/ssr/vue-ui-donut.js +1 -1
  100. package/dist/ssr/vue-ui-xy.js +1 -1
  101. package/dist/ssr.js +2 -2
  102. package/dist/style.css +1 -1
  103. package/dist/types/vue-data-ui.d.ts +9 -0
  104. package/dist/{useSvgExport-Ba9qBr9M.js → useChartExport-DNiwdPmb.js} +48 -2
  105. package/dist/{useConfig-BilxnBNr.js → useConfig-DlNpz6P8.js} +13 -1
  106. package/dist/{useNestedProp--NSEmhOH.js → useNestedProp-vPNvh7rV.js} +5 -3
  107. package/dist/{useObjectBindings-Cwq7NcQz.js → useObjectBindings-BeWS5v0i.js} +1 -1
  108. package/dist/{usePrinter-BFvi4jVy.js → usePrinter-DN5bYhTG.js} +2 -2
  109. package/dist/{useTimeLabels-B9CEuiLZ.js → useTimeLabels-d2f-W1L4.js} +2 -4
  110. package/dist/{useTooltipPosition-BsRysTrw.js → useTooltipPosition-DifeoeQW.js} +13 -13
  111. package/dist/utils.js +3 -3
  112. package/dist/{vue-data-ui-EsawKe_W.js → vue-data-ui-BNxtW8pK.js} +69 -69
  113. package/dist/vue-data-ui.js +74 -74
  114. package/dist/{vue-ui-3d-bar-RSUS2xpL.js → vue-ui-3d-bar-BYumVxZG.js} +147 -165
  115. package/dist/{vue-ui-accordion-61MlW-Ge.js → vue-ui-accordion-DegI2lzR.js} +4 -4
  116. package/dist/vue-ui-age-pyramid-tJx_hCsS.js +1241 -0
  117. package/dist/{vue-ui-annotator-DBRT85HG.js → vue-ui-annotator-DfG79D4r.js} +41 -68
  118. package/dist/vue-ui-bullet-DrWG4jRy.js +700 -0
  119. package/dist/{vue-ui-bump-Dvv3iSKr.js → vue-ui-bump-mKysp0KO.js} +222 -272
  120. package/dist/vue-ui-candlestick-PgKcBZdy.js +1837 -0
  121. package/dist/vue-ui-carousel-table-DRvycNBl.js +467 -0
  122. package/dist/{vue-ui-chestnut-ArloORzP.js → vue-ui-chestnut-Dpklo-VE.js} +311 -365
  123. package/dist/vue-ui-chord-7PPVH_iG.js +1345 -0
  124. package/dist/vue-ui-circle-pack-DW4Os6_8.js +1636 -0
  125. package/dist/{vue-ui-cursor-CxgE6Phh.js → vue-ui-cursor-DIt7vOwc.js} +4 -4
  126. package/dist/{vue-ui-dag-C9Sf9vH7.js → vue-ui-dag-Cl0WdSLb.js} +812 -840
  127. package/dist/{vue-ui-dashboard-bGmaglAj.js → vue-ui-dashboard-BwxRLR4E.js} +70 -70
  128. package/dist/{vue-ui-digits-DgDE-_Fn.js → vue-ui-digits-Bp1OH_t1.js} +5 -5
  129. package/dist/{vue-ui-donut-B_n6wF6B.js → vue-ui-donut-BZUT7QYt.js} +352 -377
  130. package/dist/vue-ui-donut-evolution-CQy3ZKXk.js +1549 -0
  131. package/dist/{vue-ui-donut-Bmo149AR.js → vue-ui-donut-y6tOAVyY.js} +18 -17
  132. package/dist/{vue-ui-dumbbell-BX4Ao_wR.js → vue-ui-dumbbell-BtKZcAOV.js} +370 -420
  133. package/dist/{vue-ui-flow-Bshw8pT_.js → vue-ui-flow-BF_cndsv.js} +191 -216
  134. package/dist/vue-ui-funnel-z3AeiDu6.js +750 -0
  135. package/dist/{vue-ui-galaxy-CvXgy-dy.js → vue-ui-galaxy-ClWaSOmM.js} +276 -302
  136. package/dist/vue-ui-gauge-CJstpakj.js +932 -0
  137. package/dist/{vue-ui-geo-C-gSZL2q.js → vue-ui-geo-B1tOD3HC.js} +398 -449
  138. package/dist/{vue-ui-gizmo-CJdxyPID.js → vue-ui-gizmo-foatosAv.js} +4 -4
  139. package/dist/{vue-ui-heatmap-DEEKv8ip.js → vue-ui-heatmap-By33A9dZ.js} +479 -502
  140. package/dist/{vue-ui-hill-D7LYAgAL.js → vue-ui-hill-ewqkK9s5.js} +570 -593
  141. package/dist/vue-ui-history-plot-FEIwXlsz.js +1698 -0
  142. package/dist/{vue-ui-horizontal-bar-CfFye5tL.js → vue-ui-horizontal-bar-D51sAeVu.js} +307 -332
  143. package/dist/{vue-ui-kpi-DCBnNfTb.js → vue-ui-kpi-y3EkgqJQ.js} +4 -4
  144. package/dist/{vue-ui-mini-loader-CtWpqnLW.js → vue-ui-mini-loader-CtTewZJG.js} +3 -3
  145. package/dist/vue-ui-molecule-paWHp18h.js +935 -0
  146. package/dist/{vue-ui-mood-radar-sl6DMxqR.js → vue-ui-mood-radar-wBRTZI5k.js} +341 -390
  147. package/dist/vue-ui-nested-donuts-CB-HOLo2.js +1503 -0
  148. package/dist/vue-ui-onion-B2Q2n55x.js +1233 -0
  149. package/dist/{vue-ui-parallel-coordinate-plot-DE9wTmQQ.js → vue-ui-parallel-coordinate-plot-GpkXiIZA.js} +189 -214
  150. package/dist/{vue-ui-quadrant-SaY_RPSE.js → vue-ui-quadrant-DOPuejDE.js} +254 -284
  151. package/dist/{vue-ui-quick-chart-CJ9rejnj.js → vue-ui-quick-chart-CgHX9njq.js} +108 -109
  152. package/dist/{vue-ui-radar-CaNen5Fj.js → vue-ui-radar-BLvG-_zE.js} +407 -434
  153. package/dist/{vue-ui-rating--K7rX2an.js → vue-ui-rating-BDVSVFA0.js} +10 -11
  154. package/dist/vue-ui-relation-circle-plOXwxJ5.js +903 -0
  155. package/dist/vue-ui-ridgeline-BbrnXvBo.js +1614 -0
  156. package/dist/{vue-ui-rings-BevKD8P-.js → vue-ui-rings-B3cKfMWy.js} +419 -444
  157. package/dist/vue-ui-scatter-BY7waF2T.js +2403 -0
  158. package/dist/{vue-ui-skeleton-B9ZP1w-i.js → vue-ui-skeleton-DwKxd7fk.js} +4 -4
  159. package/dist/{vue-ui-smiley-DYnqqk6u.js → vue-ui-smiley-5iHJeTPc.js} +64 -65
  160. package/dist/{vue-ui-spark-trend-R0ebpg-G.js → vue-ui-spark-trend-MpvrV5Wd.js} +11 -11
  161. package/dist/{vue-ui-sparkbar-DYC3By0v.js → vue-ui-sparkbar-s-2rBmEz.js} +97 -100
  162. package/dist/{vue-ui-sparkgauge-Bw6no-In.js → vue-ui-sparkgauge-B-BYVv4p.js} +4 -4
  163. package/dist/{vue-ui-sparkhistogram-DvRKy8rq.js → vue-ui-sparkhistogram-D7D4NHdi.js} +18 -19
  164. package/dist/{vue-ui-sparkline-Dz1uzBos.js → vue-ui-sparkline-RbeYtLWp.js} +11 -11
  165. package/dist/{vue-ui-sparkstackbar-DlnPdZih.js → vue-ui-sparkstackbar-ohN7mtbg.js} +194 -198
  166. package/dist/{vue-ui-stackbar-B-THcavY.js → vue-ui-stackbar-D2bpvQYt.js} +530 -552
  167. package/dist/{vue-ui-stackline-3dBPoI0h.js → vue-ui-stackline-Bo1oE8yq.js} +592 -614
  168. package/dist/vue-ui-strip-plot-CZ-C4a5x.js +1734 -0
  169. package/dist/vue-ui-table-3PPiJPV6.js +1352 -0
  170. package/dist/{vue-ui-table-heatmap-DVwMqzje.js → vue-ui-table-heatmap-D1bbPXKG.js} +56 -57
  171. package/dist/{vue-ui-table-sparkline-CABJzK8p.js → vue-ui-table-sparkline-l1cUX3ny.js} +13 -15
  172. package/dist/{vue-ui-thermometer-CVQ-H69Q.js → vue-ui-thermometer-DltAELO7.js} +240 -261
  173. package/dist/{vue-ui-timer-Bm8LpsnI.js → vue-ui-timer-DWNdx47q.js} +6 -6
  174. package/dist/vue-ui-tiremarks-GYhji_fa.js +538 -0
  175. package/dist/{vue-ui-treemap-DP0Sx8Y8.js → vue-ui-treemap-DjNlnOG5.js} +521 -547
  176. package/dist/vue-ui-waffle-BAA9EX6O.js +1386 -0
  177. package/dist/vue-ui-wheel-DrefGLos.js +871 -0
  178. package/dist/{vue-ui-word-cloud-B2sxtel9.js → vue-ui-word-cloud-CQZ8AyOi.js} +382 -405
  179. package/dist/{vue-ui-world-BBQZLnzm.js → vue-ui-world-Y7a3VEjq.js} +426 -451
  180. package/dist/{vue-ui-xy-DZj5DT-q.js → vue-ui-xy-CJcdttNL.js} +879 -905
  181. package/dist/{vue-ui-xy-ChZg7AtI.js → vue-ui-xy-DPxtkYGc.js} +329 -326
  182. package/dist/{vue-ui-xy-canvas-BN2u0bOJ.js → vue-ui-xy-canvas-1rbwMA1m.js} +30 -27
  183. package/package.json +4 -4
  184. package/dist/Slicer-5yIrdoJv.js +0 -1149
  185. package/dist/SlicerPreview-DvjLV2TW.js +0 -1689
  186. package/dist/vue-ui-age-pyramid-CgnPWA93.js +0 -1263
  187. package/dist/vue-ui-bullet-Bc3-WaN1.js +0 -724
  188. package/dist/vue-ui-candlestick-DvvsrIdp.js +0 -1864
  189. package/dist/vue-ui-carousel-table-DtsNVim8.js +0 -463
  190. package/dist/vue-ui-chord-xX5gWZy8.js +0 -1396
  191. package/dist/vue-ui-circle-pack-D8wykmqg.js +0 -1638
  192. package/dist/vue-ui-donut-evolution-D6vH_hfx.js +0 -1598
  193. package/dist/vue-ui-funnel-CjYosIik.js +0 -797
  194. package/dist/vue-ui-gauge-CByT0_vF.js +0 -953
  195. package/dist/vue-ui-history-plot-BhcU94Pt.js +0 -1722
  196. package/dist/vue-ui-molecule-D3igGyOy.js +0 -958
  197. package/dist/vue-ui-nested-donuts-aS4YzaB3.js +0 -1528
  198. package/dist/vue-ui-onion-EhPTZpW_.js +0 -1258
  199. package/dist/vue-ui-relation-circle-FLs8vOxQ.js +0 -925
  200. package/dist/vue-ui-ridgeline-Beg5hshN.js +0 -1663
  201. package/dist/vue-ui-scatter-CNA7jF-o.js +0 -2428
  202. package/dist/vue-ui-strip-plot-ACeYOoHj.js +0 -1757
  203. package/dist/vue-ui-table-rFy16bp0.js +0 -1347
  204. package/dist/vue-ui-tiremarks-DB3f5qiz.js +0 -559
  205. package/dist/vue-ui-waffle-iPpdk1Bm.js +0 -1412
  206. package/dist/vue-ui-wheel-BJkEYfLj.js +0 -892
@@ -0,0 +1,1503 @@
1
+ import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
+ import { $ as t, Bt as n, D as r, Ft as i, Jt as a, Kt as o, Pt as s, Rt as c, S as l, X as u, b as ee, ct as te, et as ne, f as re, i as d, jt as ie, kt as ae, n as oe, p as se, q as ce, t as le, tt as ue, w as de, xt as fe } from "./lib-Bttd6u5E.js";
3
+ import { n as pe, t as me } from "./useHints-Dq_w2E8B.js";
4
+ import { t as he } from "./useConfig-DlNpz6P8.js";
5
+ import { t as ge } from "./usePrinter-DN5bYhTG.js";
6
+ import { n as _e, t as ve } from "./BaseScanner-DZvpgOjM.js";
7
+ import { t as ye } from "./useNestedProp-vPNvh7rV.js";
8
+ import { t as be } from "./useThemeCheck-C43Tcqmk.js";
9
+ import { t as xe } from "./useChartExport-DNiwdPmb.js";
10
+ import { t as Se } from "./img-Bnokohej.js";
11
+ import { n as Ce } from "./Title-BE3qg9xl.js";
12
+ import { t as we } from "./_plugin-vue_export-helper-B3ysoDQm.js";
13
+ import { l as Te, t as Ee } from "./useResponsive-ZtArZtUf.js";
14
+ import { t as De } from "./DefGrad-DVBqDjhO.js";
15
+ import { t as Oe } from "./BaseLegendToggle-DZVucLnv.js";
16
+ import { t as ke } from "./A11yDataTable-DdRsVULz.js";
17
+ import { t as Ae } from "./useUserOptionState-DK-_1ddE.js";
18
+ import { t as je } from "./useChartAccessibility-DYqac8yF.js";
19
+ import { t as Me } from "./labelUtils-BeVpDvTJ.js";
20
+ import { t as Ne } from "./Legend-CQxUgOd-.js";
21
+ import { t as Pe } from "./vue_ui_nested_donuts-B8csIoVO.js";
22
+ import { Fragment as f, Teleport as Fe, computed as p, createBlock as m, createCommentVNode as h, createElementBlock as g, createElementVNode as _, createSlots as Ie, createTextVNode as Le, createVNode as Re, defineAsyncComponent as v, guardReactiveProps as y, mergeProps as ze, nextTick as Be, normalizeClass as Ve, normalizeProps as b, normalizeStyle as He, onBeforeUnmount as Ue, onMounted as We, openBlock as x, ref as S, renderList as C, renderSlot as w, resolveDynamicComponent as Ge, shallowRef as Ke, toDisplayString as T, toRefs as qe, unref as E, vShow as Je, watch as Ye, withCtx as D, withDirectives as Xe } from "vue";
23
+ //#region src/components/vue-ui-nested-donuts.vue
24
+ var Ze = /* @__PURE__ */ e({ default: () => Ot }), Qe = ["id"], $e = ["id"], et = ["id"], tt = { style: { position: "relative" } }, nt = [
25
+ "xmlns",
26
+ "aria-describedby",
27
+ "viewBox"
28
+ ], rt = ["width", "height"], it = ["id"], at = ["id"], ot = ["id"], st = ["flood-color"], ct = ["id", "d"], lt = [
29
+ "d",
30
+ "fill",
31
+ "stroke",
32
+ "stroke-width",
33
+ "filter"
34
+ ], ut = [
35
+ "d",
36
+ "fill",
37
+ "stroke",
38
+ "stroke-width"
39
+ ], dt = { key: 1 }, ft = ["d", "fill"], pt = { key: 2 }, mt = [
40
+ "font-size",
41
+ "font-weight",
42
+ "fill",
43
+ "dy"
44
+ ], ht = ["href"], gt = [
45
+ "x",
46
+ "y",
47
+ "font-size",
48
+ "font-weight",
49
+ "fill"
50
+ ], _t = { key: 3 }, vt = ["filter"], yt = [
51
+ "opacity",
52
+ "text-anchor",
53
+ "x",
54
+ "y",
55
+ "fill",
56
+ "font-size",
57
+ "font-weight"
58
+ ], bt = [
59
+ "opacity",
60
+ "text-anchor",
61
+ "x",
62
+ "y",
63
+ "fill",
64
+ "font-size",
65
+ "font-weight"
66
+ ], xt = [
67
+ "d",
68
+ "fill",
69
+ "onMouseenter",
70
+ "onClick",
71
+ "onMouseleave"
72
+ ], St = {
73
+ key: 0,
74
+ style: {
75
+ position: "absolute",
76
+ top: "100%",
77
+ left: "0",
78
+ width: "100%"
79
+ },
80
+ "data-dom-to-png-ignore": "",
81
+ "aria-hidden": "true"
82
+ }, Ct = {
83
+ key: 5,
84
+ class: "vue-data-ui-watermark"
85
+ }, wt = ["id"], Tt = {
86
+ key: 0,
87
+ class: "vue-ui-nested-donuts-legend-title"
88
+ }, Et = ["onClick"], Dt = ["innerHTML"], Ot = /*#__PURE__*/ we({
89
+ __name: "vue-ui-nested-donuts",
90
+ props: {
91
+ config: {
92
+ type: Object,
93
+ default() {
94
+ return {};
95
+ }
96
+ },
97
+ dataset: {
98
+ type: Array,
99
+ default() {
100
+ return [];
101
+ }
102
+ }
103
+ },
104
+ emits: [
105
+ "selectLegend",
106
+ "selectDatapoint",
107
+ "copyAlt"
108
+ ],
109
+ setup(e, { expose: we, emit: Ze }) {
110
+ let Ot = v(() => import("./Tooltip-DhjyfHwz.js")), kt = v(() => import("./BaseIcon-BfndwIWE.js").then((e) => e.n)), At = v(() => import("./vue-ui-accordion-DegI2lzR.js").then((e) => e.n)), jt = v(() => import("./DataTable-BbKgJ5UI.js")), Mt = v(() => import("./UserOptions-Dt98of5H.js").then((e) => e.n)), Nt = v(() => import("./PenAndPaper-DAE-tnEQ.js").then((e) => e.t)), Pt = v(() => import("./PackageVersion-DXU7nRr9.js").then((e) => e.t)), Ft = v(() => import("./BaseDraggableDialog-LoqqwRtV.js").then((e) => e.n)), { vue_ui_nested_donuts: It } = he(), { isThemeValid: Lt, warnInvalidTheme: Rt } = be(), O = e, zt = p({
111
+ get() {
112
+ return !!O.dataset && O.dataset.length;
113
+ },
114
+ set(e) {
115
+ return e;
116
+ }
117
+ }), k = S(ce()), Bt = S(!1), Vt = S(""), Ht = S(null), Ut = S(0), A = S(null), Wt = S(null), Gt = S(null), Kt = S(null), qt = S(null), Jt = S(0), Yt = S(0), Xt = S(0), j = S(!0), M = S([]), Zt = S([]), Qt = S(!1), $t = S(null), en = S(null), N = S(null), tn = S({
118
+ x: 0,
119
+ y: 0
120
+ }), nn = S("pointer"), rn = S(!1), P = S(!1);
121
+ function an(e) {
122
+ P.value = e, Ut.value += 1;
123
+ }
124
+ let F = S(pn());
125
+ pe({
126
+ config: () => F.value,
127
+ dataset: () => O.dataset,
128
+ component: "VueUiNestedDonuts",
129
+ rules: [
130
+ me.emptyArray,
131
+ {
132
+ test: (e) => e.some((e) => e.series.length > 6),
133
+ message: [
134
+ "👀 Some series have > 6 data points. Consider:",
135
+ "",
136
+ "▶️ Grouping small values dynamically into a single \"Other\" data point.",
137
+ "",
138
+ "▶️ Using filters to let users choose a maximum number of data points to display.",
139
+ "",
140
+ "▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read."
141
+ ]
142
+ },
143
+ {
144
+ test: (e) => e.length === 1,
145
+ message: [
146
+ "👀 There is only one series in your dataset. Consider:",
147
+ "",
148
+ "▶️ Using VueUiDonut instead."
149
+ ]
150
+ },
151
+ {
152
+ test: (e) => e.length > 6,
153
+ message: [
154
+ "👀 The number of series in your dataset > 6. Consider:",
155
+ "",
156
+ "▶️ Using filters to let users choose a maximum number of series to display",
157
+ "",
158
+ "▶️ Using VueUiHorizontalBar instead to make the dataset breakdown easier to read."
159
+ ]
160
+ }
161
+ ]
162
+ });
163
+ let I = p(() => F.value.userOptions.useCursorPointer), on = {
164
+ name: "",
165
+ series: [
166
+ {
167
+ name: "",
168
+ values: [3],
169
+ color: "#BABABA"
170
+ },
171
+ {
172
+ name: "",
173
+ values: [2],
174
+ color: "#AAAAAA"
175
+ },
176
+ {
177
+ name: "",
178
+ values: [1],
179
+ color: "#CACACA"
180
+ }
181
+ ]
182
+ }, sn = p(() => a({
183
+ defaultConfig: {
184
+ useCssAnimation: !1,
185
+ table: { show: !1 },
186
+ startAnimation: { show: !1 },
187
+ userOptions: { show: !1 },
188
+ style: { chart: {
189
+ backgroundColor: "#99999930",
190
+ layout: { labels: { dataLabels: { show: !1 } } },
191
+ legend: {
192
+ backgroundColor: "transparent",
193
+ showValue: !1,
194
+ showPercentage: !1
195
+ },
196
+ title: {
197
+ color: "#1A1A1A",
198
+ subtitle: { color: "#5A5A5A" }
199
+ }
200
+ } }
201
+ },
202
+ userConfig: F.value.skeletonConfig ?? {}
203
+ })), { loading: cn, FINAL_DATASET: L, manualLoading: ln } = _e({
204
+ ...qe(O),
205
+ FINAL_CONFIG: F,
206
+ prepareConfig: pn,
207
+ callback: () => {
208
+ Promise.resolve().then(async () => {
209
+ await gn();
210
+ });
211
+ },
212
+ skeletonDataset: O.config?.skeletonDataset ?? [on, on],
213
+ skeletonConfig: a({
214
+ defaultConfig: F.value,
215
+ userConfig: sn.value
216
+ })
217
+ }), { userOptionsVisible: un, setUserOptionsVisibility: dn, keepUserOptionState: fn } = Ae({ config: F.value }), { svgRef: R } = je({ config: F.value.style.chart.title });
218
+ function pn() {
219
+ let e = ye({
220
+ userConfig: O.config,
221
+ defaultConfig: It
222
+ }), t = {}, n = e.theme;
223
+ if (n) if (!Lt.value(e)) Rt(e), t = e;
224
+ else {
225
+ let r = ye({
226
+ userConfig: Pe[n] || O.config,
227
+ defaultConfig: e
228
+ });
229
+ t = {
230
+ ...ye({
231
+ userConfig: O.config,
232
+ defaultConfig: r
233
+ }),
234
+ customPalette: e.customPalette.length ? e.customPalette : o[n] || s
235
+ };
236
+ }
237
+ else t = e;
238
+ return t;
239
+ }
240
+ Ye(() => O.config, (e) => {
241
+ cn.value || (F.value = pn()), un.value = !F.value.userOptions.showOnChartHover, vn(), Jt.value += 1, Yt.value += 1, Xt.value += 1, V.value.dataLabels.show = F.value.style.chart.layout.labels.dataLabels.show, V.value.showTable = F.value.table.show, V.value.showTooltip = F.value.style.chart.tooltip.show, H.value.width = F.value.style.chart.width, H.value.height = F.value.style.chart.height;
242
+ }, { deep: !0 });
243
+ let mn = p(() => {
244
+ let { top: e, right: t, bottom: n, left: r } = F.value.style.chart.padding;
245
+ return {
246
+ css: `padding:${e}px ${t}px ${n}px ${r}px`,
247
+ top: e,
248
+ right: t,
249
+ bottom: n,
250
+ left: r
251
+ };
252
+ });
253
+ function hn(e, t = 1e3, n = 50) {
254
+ return new Promise((r) => {
255
+ let i = e.length;
256
+ M.value = Array(i).fill(0), Zt.value = [];
257
+ let a = 0;
258
+ e.forEach((e, o) => {
259
+ setTimeout(() => {
260
+ let n = performance.now();
261
+ function s(l) {
262
+ let u = Math.min((l - n) / t, 1), te = e * ne(u);
263
+ M.value[o] = te, M.value = [...M.value];
264
+ let re = [], d = 0;
265
+ O.dataset.forEach((e, t) => {
266
+ let n = ee(e.series.reduce((e, t) => e + ee(c(t.values).reduce((e, t) => e + t, 0)), 0)) - ee(M.value.slice(d, d + e.series.length).reduce((e, t) => e + t, 0));
267
+ n > Number.MIN_VALUE && re.push({
268
+ name: "__ghost__",
269
+ arcOf: e.name,
270
+ arcOfId: `${k.value}_${t}`,
271
+ id: `ghost_${k.value}_${t}`,
272
+ seriesIndex: -1,
273
+ datasetIndex: t,
274
+ color: "transparent",
275
+ value: n,
276
+ fullValue: n,
277
+ absoluteValues: [],
278
+ ghost: !0
279
+ }), d += e.series.length;
280
+ }), Zt.value = re, u < 1 ? requestAnimationFrame(s) : (a += 1, a === i && r());
281
+ }
282
+ requestAnimationFrame(s);
283
+ }, o * n);
284
+ });
285
+ });
286
+ }
287
+ async function gn() {
288
+ if (F.value.startAnimation?.show) {
289
+ let e = L.value.flatMap((e) => e.series).map((e) => c(e.values).reduce((e, t) => e + t, 0));
290
+ M.value = e.map(() => 0), j.value = !0, Zt.value = L.value.map((e, t) => {
291
+ let n = e.series.reduce((e, t) => e + c(t.values).reduce((e, t) => e + t, 0), 0);
292
+ return {
293
+ name: "__ghost__",
294
+ arcOf: e.name,
295
+ arcOfId: `${k.value}_${t}`,
296
+ id: `ghost_${k.value}_${t}`,
297
+ seriesIndex: -1,
298
+ datasetIndex: t,
299
+ color: "transparent",
300
+ value: n,
301
+ fullValue: n,
302
+ absoluteValues: [],
303
+ ghost: !0
304
+ };
305
+ }), await Be(), hn(e, F.value.startAnimation.durationMs, F.value.startAnimation.staggerMs).then(() => {
306
+ j.value = !1, Zt.value = [];
307
+ });
308
+ } else j.value = !1;
309
+ }
310
+ We(async () => {
311
+ Qt.value = !0, vn(), await gn();
312
+ });
313
+ let z = Ke(null), _n = Ke(null), B = p(() => F.value.debug);
314
+ function vn() {
315
+ if (ie(O.dataset) ? (ue({
316
+ componentName: "VueUiNestedDonuts",
317
+ type: "dataset",
318
+ debug: B.value
319
+ }), zt.value = !1, ln.value = !0) : ln.value = F.value.loading, F.value.responsive) {
320
+ let e = Te(() => {
321
+ let { width: e, height: t } = Ee({
322
+ chart: A.value,
323
+ title: F.value.style.chart.title.text ? Wt.value : null,
324
+ legend: F.value.style.chart.legend.show ? Gt.value : null,
325
+ source: Kt.value,
326
+ noTitle: qt.value,
327
+ padding: mn.value
328
+ });
329
+ requestAnimationFrame(() => {
330
+ H.value.width = e, H.value.height = t;
331
+ });
332
+ });
333
+ z.value && (_n.value && z.value.unobserve(_n.value), z.value.disconnect()), z.value = new ResizeObserver(e), _n.value = A.value.parentNode, z.value.observe(_n.value);
334
+ }
335
+ }
336
+ Ue(() => {
337
+ z.value && (_n.value && z.value.unobserve(_n.value), z.value.disconnect());
338
+ });
339
+ let { isPrinting: yn, isImaging: bn, generatePdf: xn, generateImage: Sn } = ge({
340
+ elementId: `nested_donuts_${k.value}`,
341
+ fileName: F.value.style.chart.title.text || "vue-ui-nested-donuts",
342
+ options: F.value.userOptions.print
343
+ }), Cn = p(() => F.value.userOptions.show && !F.value.style.chart.title.text), wn = p(() => de(F.value.customPalette)), V = S({
344
+ dataLabels: { show: F.value.style.chart.layout.labels.dataLabels.show },
345
+ showTable: F.value.table.show,
346
+ showTooltip: F.value.style.chart.tooltip.show
347
+ });
348
+ Ye(F, () => {
349
+ V.value = {
350
+ dataLabels: { show: F.value.style.chart.layout.labels.dataLabels.show },
351
+ showTable: F.value.table.show,
352
+ showTooltip: F.value.style.chart.tooltip.show
353
+ };
354
+ }, { immediate: !0 });
355
+ let H = S({
356
+ width: F.value.style.chart.width,
357
+ height: F.value.style.chart.height
358
+ }), U = Ze;
359
+ function Tn({ datapoint: e, index: t, seriesIndex: n }) {
360
+ F.value.events.datapointClick && F.value.events.datapointClick({
361
+ datapoint: e,
362
+ seriesIndex: n
363
+ }), U("selectDatapoint", {
364
+ datapoint: e,
365
+ index: t
366
+ });
367
+ }
368
+ function En({ from: e, to: t, duration: n, onUpdate: r, onDone: i, easing: a = ne }) {
369
+ let o = performance.now();
370
+ function s(c) {
371
+ let l = Math.min((c - o) / n, 1), u = a(l);
372
+ r(e + (t - e) * u, l), l < 1 ? requestAnimationFrame(s) : (r(t, 1), i && i());
373
+ }
374
+ requestAnimationFrame(s);
375
+ }
376
+ let W = S([]), G = p(() => {
377
+ cn.value, L.value.forEach((e, t) => {
378
+ [null, void 0].includes(e.name) && ue({
379
+ componentName: "VueUiNestedDonuts",
380
+ type: "datasetSerieAttribute",
381
+ property: "name",
382
+ index: t,
383
+ debug: B.value
384
+ }), [null, void 0].includes(e.series) ? ue({
385
+ componentName: "VueUiNestedDonuts",
386
+ type: "datasetSerieAttribute",
387
+ property: "series",
388
+ index: t,
389
+ debug: B.value
390
+ }) : e.series.length === 0 ? ue({
391
+ componentName: "VueUiNestedDonuts",
392
+ type: "datasetAttributeEmpty",
393
+ property: `series at index ${t}`,
394
+ debug: B.value
395
+ }) : e.series.forEach((e, t) => {
396
+ [null, void 0].includes(e.name) && ue({
397
+ componentName: "VueUiNestedDonuts",
398
+ type: "datasetSerieAttribute",
399
+ property: "name",
400
+ index: t,
401
+ key: "serie",
402
+ debug: B.value
403
+ }), [null, void 0].includes(e.values) && ue({
404
+ componentName: "VueUiNestedDonuts",
405
+ type: "datasetSerieAttribute",
406
+ property: "values",
407
+ index: t,
408
+ key: "serie",
409
+ debug: B.value
410
+ });
411
+ });
412
+ });
413
+ let e = 0;
414
+ return L.value.map((t, n) => ({
415
+ ...t,
416
+ total: t.series.filter((e) => !W.value.includes(e.id)).map((e) => c(e.values).reduce((e, t) => e + t, 0)).reduce((e, t) => e + t, 0),
417
+ datasetIndex: n,
418
+ id: `${k.value}_${n}`,
419
+ series: t.series.map((r, i) => {
420
+ let a = c(r.values).reduce((e, t) => e + t, 0);
421
+ return {
422
+ name: r.name,
423
+ arcOf: t.name,
424
+ arcOfId: `${k.value}_${n}`,
425
+ id: `${k.value}_${n}_${i}`,
426
+ seriesIndex: i,
427
+ datasetIndex: n,
428
+ color: l(r.color) || wn.value[i] || s[i % s.length],
429
+ value: j.value ? M.value[e++] ?? 0 : a,
430
+ absoluteValues: r.values || []
431
+ };
432
+ })
433
+ }));
434
+ });
435
+ Ye(() => O.dataset, (e) => {
436
+ Array.isArray(e) && e.length > 0 && (ln.value = !1);
437
+ }, { immediate: !0 });
438
+ let K = p(() => Math.min(H.value.height, H.value.width) * (F.value.style.chart.layout.donut.strokeWidth / 512)), q = p(() => [...G.value].map((e, t) => {
439
+ let n = e.series.filter((e) => !W.value.includes(e.id)).map((e) => e.value).reduce((e, t) => e + t, 0);
440
+ return {
441
+ ...e,
442
+ total: n,
443
+ series: e.series.filter((e) => !W.value.includes(e.id)).map((e) => ({
444
+ ...e,
445
+ proportion: e.value / n
446
+ }))
447
+ };
448
+ }));
449
+ function Dn(e, t, n) {
450
+ let r = 0;
451
+ for (let t = 0; t < e.length; t += 1) n.includes(e[t]) && (r += 1);
452
+ return r < t;
453
+ }
454
+ let J = S(q.value);
455
+ Ye(() => q.value, (e) => J.value = e);
456
+ function On(e) {
457
+ let t = e.map((e) => e.id);
458
+ if (e.some((e) => W.value.includes(e.id))) {
459
+ let e = new Set(t);
460
+ W.value = W.value.filter((t) => !e.has(t));
461
+ } else W.value.push(...t);
462
+ U("selectLegend", q.value);
463
+ }
464
+ function Y(e) {
465
+ let t = O.dataset.flatMap((e, t) => e.series.map((e, n) => ({
466
+ value: c(e.values).reduce((e, t) => e + t, 0),
467
+ id: `${k.value}_${t}_${n}`,
468
+ arcOfId: `${k.value}_${t}`
469
+ }))).find((t) => t.id === e.id);
470
+ if (!t) return;
471
+ let n = G.value.flatMap((e) => e.series).find((t) => t.id === e.id)?.value ?? 0, r = J.value.flatMap((e) => e.series).find((t) => t.id === e.id), i = r ? r.value : 0, a = G.value.find((e) => e.id === t.arcOfId);
472
+ if (!a) return;
473
+ let o = a.series.map((e) => e.id), s = Dn(o, o.length - 1, W.value);
474
+ W.value.includes(e.id) ? (W.value = W.value.filter((t) => t !== e.id), F.value.serieToggleAnimation.show ? En({
475
+ from: i,
476
+ to: n,
477
+ duration: F.value.serieToggleAnimation.durationMs,
478
+ onUpdate: (t) => {
479
+ J.value = J.value.map((n) => ({
480
+ ...n,
481
+ series: n.series.map((n) => n.id === e.id ? {
482
+ ...n,
483
+ value: t
484
+ } : n)
485
+ }));
486
+ },
487
+ onDone: () => {
488
+ U("selectLegend", q.value);
489
+ }
490
+ }) : (J.value = J.value.map((t) => ({
491
+ ...t,
492
+ series: t.series.map((t) => t.id === e.id ? {
493
+ ...t,
494
+ value: n
495
+ } : t)
496
+ })), U("selectLegend", q.value))) : s && (F.value.serieToggleAnimation.show ? En({
497
+ from: i,
498
+ to: 0,
499
+ duration: F.value.serieToggleAnimation.durationMs,
500
+ onUpdate: (t) => {
501
+ J.value = J.value.map((n) => ({
502
+ ...n,
503
+ series: n.series.map((n) => n.id === e.id ? {
504
+ ...n,
505
+ value: t
506
+ } : n)
507
+ }));
508
+ },
509
+ onDone: () => {
510
+ W.value.push(e.id), U("selectLegend", q.value);
511
+ }
512
+ }) : (J.value = J.value.map((t) => ({
513
+ ...t,
514
+ series: t.series.map((t) => t.id === e.id ? {
515
+ ...t,
516
+ value: 0
517
+ } : t)
518
+ })), W.value.push(e.id), U("selectLegend", q.value)));
519
+ }
520
+ function kn(e) {
521
+ return G.value.length ? G.value.flatMap((e) => e.series).filter((t) => t.name === e) || (B.value && console.warn(`VueUiNestedDonuts - Series name not found "${e}"`), null) : (B.value && console.warn("VueUiNestedDonuts - There are no series to show."), null);
522
+ }
523
+ function An(e) {
524
+ let t = kn(e);
525
+ t !== null && (Array.isArray(t) ? t.forEach((e) => {
526
+ W.value.includes(e.id) && Y({ id: e.id });
527
+ }) : W.value.includes(t.id) && Y({ id: t.id }));
528
+ }
529
+ function jn(e) {
530
+ let t = kn(e);
531
+ t !== null && (Array.isArray(t) ? t.forEach((e) => {
532
+ W.value.includes(e.id) || Y({ id: e.id });
533
+ }) : W.value.includes(t.id) || Y({ id: t.id }));
534
+ }
535
+ let Mn = p(() => K.value / G.value.length * F.value.style.chart.layout.donut.spacingRatio), Nn = p(() => J.value.map((e, t) => K.value - t * K.value / G.value.length)), X = p(() => J.value.map((e, t) => {
536
+ let n = Math.abs(e.series.map((e) => e.value).reduce((e, t) => e + t, 0)) > 0, r = K.value - t * K.value / J.value.length, i = j.value ? Zt.value.find((e) => e.datasetIndex === t) : null, a = [...e.series, ...i ? [i] : []].map((e) => ({
537
+ ...e,
538
+ value: e.value < 1e-11 ? Number.MIN_VALUE : e.value
539
+ })), o = ae({ series: [{
540
+ name: "_",
541
+ color: F.value.style.chart.layout.donut.emptyFill,
542
+ value: 1
543
+ }] }, H.value.width / 2, H.value.height / 2, r, r, 1.99999, 2, 1, 360, 105.25, Mn.value), s = `M ${H.value.width / 2},${H.value.height / 2 + r}
544
+ a ${r},${r} 0 1,1 0,${-2 * r}
545
+ a ${r},${r} 0 1,1 0,${2 * r}`;
546
+ return {
547
+ ...e,
548
+ hasData: n,
549
+ radius: r,
550
+ skeleton: o,
551
+ fullCirclePath: s,
552
+ donut: ae({ series: a }, H.value.width / 2, H.value.height / 2, r, r, 1.99999, 2, 1, 360, 105.25, Mn.value)
553
+ };
554
+ })), Pn = p(() => [...G.value].map((e, t) => {
555
+ let n = t * K.value / G.value.length;
556
+ return {
557
+ sizeRatio: n,
558
+ donut: ae({ series: [{ value: 1 }] }, H.value.width / 2, H.value.height / 2, K.value - n, K.value - n, 1.99999, 2, 1, 360, 105.25, K.value / G.value.length * F.value.style.chart.layout.donut.spacingRatio)[0]
559
+ };
560
+ })), Fn = S(null), In = S(null), Z = S(null), Ln = S(null);
561
+ function Rn({ datapoint: e, seriesIndex: t }) {
562
+ F.value.events.datapointLeave && F.value.events.datapointLeave({
563
+ datapoint: e,
564
+ seriesIndex: t
565
+ }), Bt.value = !1, Fn.value = null, Ht.value = null, In.value = null, Z.value = null, N.value = null, nn.value = "pointer";
566
+ }
567
+ function zn({ val: e, percentage: t, showVal: n, showPercentage: r, config: i }) {
568
+ return Me({
569
+ config: i,
570
+ val: e,
571
+ percentage: t,
572
+ showVal: n,
573
+ showPercentage: r
574
+ });
575
+ }
576
+ function Bn({ datapoint: e, _relativeIndex: t, seriesIndex: n, triggerMode: r = "pointer" }) {
577
+ F.value.events.datapointEnter && F.value.events.datapointEnter({
578
+ datapoint: e,
579
+ seriesIndex: n
580
+ }), nn.value = r, N.value = n, Fn.value = e.arcOfId, In.value = e.id, Z.value = n, Ht.value = e.id, Ln.value = {
581
+ datapoint: e,
582
+ seriesIndex: n,
583
+ series: J.value,
584
+ config: F.value
585
+ };
586
+ let i = F.value.style.chart.tooltip.customFormat;
587
+ if (fe(i) && te(() => i({
588
+ seriesIndex: n,
589
+ datapoint: e,
590
+ series: J.value,
591
+ config: F.value
592
+ }))) Vt.value = i({
593
+ seriesIndex: n,
594
+ datapoint: e,
595
+ series: J.value,
596
+ config: F.value
597
+ });
598
+ else {
599
+ let t = "";
600
+ if (F.value.style.chart.tooltip.showAllItemsAtIndex && W.value.length === 0) {
601
+ let r = J.value.map((e) => e.series.find((e) => e.seriesIndex === n));
602
+ r.forEach((i, a) => {
603
+ if (!i) return "";
604
+ t += `
605
+ <div style="display:flex; flex-direction: column; justify-content:flex-start; align-items:flex-start;padding:6px 0; ${a < r.length - 1 ? `border-bottom:1px solid ${F.value.style.chart.tooltip.borderColor}` : ""}">
606
+ <div style="display:flex; flex-direction: row; gap: 3px; justify-content:flex-start; align-items:center;">
607
+ <svg viewBox="0 0 20 20" height="${F.value.style.chart.tooltip.fontSize}" width="${F.value.style.chart.tooltip.fontSize}">
608
+ <circle cx="10" cy="10" r="10" fill="${i.color}"/>
609
+ </svg>
610
+ <span>
611
+ ${i.arcOf ?? ""} - ${i.name}
612
+ </span>
613
+ </div>
614
+ <span>
615
+ <b>
616
+ ${zn({
617
+ config: F.value.style.chart.tooltip,
618
+ showVal: F.value.style.chart.tooltip.showValue,
619
+ showPercentage: F.value.style.chart.tooltip.showPercentage,
620
+ val: d(F.value.style.chart.layout.labels.dataLabels.formatter, e.value, u({
621
+ p: F.value.style.chart.layout.labels.dataLabels.prefix,
622
+ v: e.value,
623
+ s: F.value.style.chart.layout.labels.dataLabels.suffix,
624
+ r: F.value.style.chart.tooltip.roundingValue
625
+ }), {
626
+ datapoint: e,
627
+ seriesIndex: n
628
+ }),
629
+ percentage: u({
630
+ v: i.proportion * 100,
631
+ s: "%",
632
+ r: F.value.style.chart.tooltip.roundingPercentage
633
+ })
634
+ })}
635
+ </b>
636
+ </span>
637
+ </div>
638
+ `;
639
+ });
640
+ } else t += `<div style="width:100%;text-align:center;border-bottom:1px solid ${F.value.style.chart.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${e.arcOf ?? ""} - ${e.name}</div>`, t += `<div style="display:flex;flex-direction:row;gap:6px;align-items:center;"><svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="none" fill="${e.color}"/></svg>`, F.value.style.chart.tooltip.showValue && (t += `<b>${d(F.value.style.chart.layout.labels.dataLabels.formatter, e.value, u({
641
+ p: F.value.style.chart.layout.labels.dataLabels.prefix,
642
+ v: e.value,
643
+ s: F.value.style.chart.layout.labels.dataLabels.suffix,
644
+ r: F.value.style.chart.tooltip.roundingValue
645
+ }), {
646
+ datapoint: e,
647
+ seriesIndex: n
648
+ })}</b>`), F.value.style.chart.tooltip.showPercentage && (F.value.style.chart.tooltip.showValue ? t += `<span>(${u({
649
+ v: e.proportion * 100,
650
+ s: "%",
651
+ r: F.value.style.chart.tooltip.roundingPercentage
652
+ })})</span></div>` : t += `<b>${u({
653
+ v: e.proportion * 100,
654
+ s: "%",
655
+ r: F.value.style.chart.tooltip.roundingPercentage
656
+ })}</b></div>`);
657
+ Vt.value = `<div style="font-size:${F.value.style.chart.tooltip.fontSize}px">${t}</div>`;
658
+ }
659
+ Bt.value = !0;
660
+ }
661
+ function Vn(e) {
662
+ return e.proportion * 100 > F.value.style.chart.layout.labels.dataLabels.hideUnderValue;
663
+ }
664
+ function Hn(e, t) {
665
+ if (!F.value.useBlurOnHover) return "";
666
+ if (F.value.style.chart.tooltip.showAllItemsAtIndex && W.value.length === 0) return [null, void 0].includes(Z.value) || Z.value === t ? "" : `url(#blur_${k.value})`;
667
+ if (!F.value.style.chart.tooltip.showAllItemsAtIndex || W.value.length) return [null, void 0].includes(In.value) || In.value === e.id ? "" : `url(#blur_${k.value})`;
668
+ }
669
+ let Un = p(() => G.value.map((e, t) => {
670
+ let n = e.series.filter((e) => !W.value.includes(e.id)), r = j.value ? n.map((e) => {
671
+ let n = L.value[t].series.findIndex((t) => t.name === e.name);
672
+ return c(L.value[t].series[n].values).reduce((e, t) => e + t, 0);
673
+ }).reduce((e, t) => e + t, 0) : n.map((e) => e.value).reduce((e, t) => e + t, 0);
674
+ return e.series.map((e, n) => {
675
+ let i = c(L.value[t].series[n].values).reduce((e, t) => e + t, 0), a = j.value ? i : e.value, o = zn({
676
+ val: d(F.value.style.chart.layout.labels.dataLabels.formatter, a, u({
677
+ p: F.value.style.chart.layout.labels.dataLabels.prefix,
678
+ v: a,
679
+ s: F.value.style.chart.layout.labels.dataLabels.suffix,
680
+ r: F.value.style.chart.legend.roundingValue
681
+ }), {
682
+ datapoint: e,
683
+ seriesIndex: n
684
+ }),
685
+ percentage: isNaN(a / r) || W.value.includes(e.id) ? "-" : u({
686
+ v: a / r * 100,
687
+ s: "%",
688
+ r: F.value.style.chart.legend.roundingPercentage
689
+ }),
690
+ showVal: F.value.style.chart.legend.showValue,
691
+ showPercentage: F.value.style.chart.legend.showPercentage,
692
+ config: F.value.style.chart.legend
693
+ }), s = `${e.name}${F.value.style.chart.legend.showPercentage || F.value.style.chart.legend.showValue ? ": " : ""}${o}`;
694
+ return {
695
+ name: e.name,
696
+ color: e.color,
697
+ value: a,
698
+ display: s,
699
+ svgDisplay: `${e.arcOf ? `${e.arcOf} - ` : ""}${s}`,
700
+ shape: "circle",
701
+ arcOf: e.arcOf,
702
+ id: e.id,
703
+ seriesIndex: n,
704
+ datasetIndex: t,
705
+ total: r,
706
+ opacity: W.value.includes(e.id) ? .5 : 1,
707
+ segregate: () => Y(e),
708
+ isSegregated: W.value.includes(e.id)
709
+ };
710
+ });
711
+ })), Wn = p(() => ({
712
+ cy: "nested-donuts-legend",
713
+ backgroundColor: F.value.style.chart.legend.backgroundColor,
714
+ color: F.value.style.chart.legend.color,
715
+ fontSize: F.value.style.chart.legend.fontSize,
716
+ paddingBottom: 12,
717
+ fontWeight: F.value.style.chart.legend.bold ? "bold" : ""
718
+ })), Q = p(() => ({
719
+ head: J.value.flatMap((e) => e.series.map((t) => ({
720
+ name: `${e.name} - ${t.name}`,
721
+ color: t.color,
722
+ total: e.total
723
+ }))),
724
+ body: J.value.flatMap((e) => e.series.map((e) => e.value))
725
+ }));
726
+ function Gn(e = null) {
727
+ Be(() => {
728
+ let n = Q.value.head.map((e, t) => [
729
+ [e.name],
730
+ [Q.value.body[t]],
731
+ [isNaN(Q.value.body[t] / e.total) ? "-" : Q.value.body[t] / e.total * 100]
732
+ ]), i = [
733
+ [F.value.style.chart.title.text],
734
+ [F.value.style.chart.title.subtitle.text],
735
+ [
736
+ [""],
737
+ ["val"],
738
+ ["%"]
739
+ ]
740
+ ].concat(n), a = r(i);
741
+ e ? e(a) : t({
742
+ csvContent: a,
743
+ title: F.value.style.chart.title.text || "vue-ui-nested-donuts"
744
+ });
745
+ });
746
+ }
747
+ let Kn = p(() => {
748
+ let e = [
749
+ F.value.table.columnNames.series,
750
+ F.value.table.columnNames.value,
751
+ F.value.table.columnNames.percentage
752
+ ], t = Q.value.head.map((e, t) => {
753
+ let n = u({
754
+ p: F.value.style.chart.layout.labels.dataLabels.prefix,
755
+ v: Q.value.body[t],
756
+ s: F.value.style.chart.layout.labels.dataLabels.suffix,
757
+ r: F.value.table.td.roundingValue
758
+ });
759
+ return [
760
+ {
761
+ color: e.color,
762
+ name: e.name
763
+ },
764
+ n,
765
+ isNaN(Q.value.body[t] / e.total) ? "-" : u({
766
+ v: Q.value.body[t] / e.total * 100,
767
+ s: "%",
768
+ r: F.value.table.td.roundingPercentage
769
+ })
770
+ ];
771
+ }), n = t.map((e) => e.map((e, t) => t === 0 ? e.name : e)), r = {
772
+ th: {
773
+ backgroundColor: F.value.table.th.backgroundColor,
774
+ color: F.value.table.th.color,
775
+ outline: F.value.table.th.outline
776
+ },
777
+ td: {
778
+ backgroundColor: F.value.table.td.backgroundColor,
779
+ color: F.value.table.td.color,
780
+ outline: F.value.table.td.outline
781
+ },
782
+ breakpoint: F.value.table.responsiveBreakpoint
783
+ };
784
+ return {
785
+ colNames: [
786
+ F.value.table.columnNames.series,
787
+ F.value.table.columnNames.value,
788
+ F.value.table.columnNames.percentage
789
+ ],
790
+ head: e,
791
+ body: t,
792
+ a11yBody: n,
793
+ config: r
794
+ };
795
+ });
796
+ function qn() {
797
+ return G.value;
798
+ }
799
+ function Jn() {
800
+ V.value.showTable = !V.value.showTable;
801
+ }
802
+ function Yn() {
803
+ V.value.dataLabels.show = !V.value.dataLabels.show;
804
+ }
805
+ function Xn() {
806
+ V.value.showTooltip = !V.value.showTooltip;
807
+ }
808
+ let Zn = S(!1);
809
+ function Qn() {
810
+ Zn.value = !Zn.value;
811
+ }
812
+ async function $n({ scale: e = 2 } = {}) {
813
+ if (!A.value) return;
814
+ let { width: t, height: n } = A.value.getBoundingClientRect(), r = t / n, { imageUri: i, base64: a } = await Se({
815
+ domElement: A.value,
816
+ base64: !0,
817
+ img: !0,
818
+ scale: e
819
+ });
820
+ return {
821
+ imageUri: i,
822
+ base64: a,
823
+ title: F.value.style.chart.title.text,
824
+ width: t,
825
+ height: n,
826
+ aspectRatio: r
827
+ };
828
+ }
829
+ let er = S(null);
830
+ function tr() {
831
+ if (!er.value) return;
832
+ let { x: e, y: t, width: n, height: r } = er.value.getBBox();
833
+ R.value && R.value.setAttribute("viewBox", `${e} ${t} ${n + Math.min(0, e)} ${r + Math.min(0, t)}`);
834
+ }
835
+ let nr = p(() => {
836
+ let e = F.value.table.useDialog && !F.value.table.show, t = V.value.showTable;
837
+ return {
838
+ component: e ? Ft : At,
839
+ title: `${F.value.style.chart.title.text}${F.value.style.chart.title.subtitle.text ? `: ${F.value.style.chart.title.subtitle.text}` : ""}`,
840
+ props: e ? {
841
+ backgroundColor: F.value.table.th.backgroundColor,
842
+ color: F.value.table.th.color,
843
+ headerColor: F.value.table.th.color,
844
+ headerBg: F.value.table.th.backgroundColor,
845
+ isFullscreen: P.value,
846
+ fullscreenParent: A.value,
847
+ forcedWidth: Math.min(800, window.innerWidth * .8),
848
+ isCursorPointer: I.value
849
+ } : {
850
+ hideDetails: !0,
851
+ config: {
852
+ open: t,
853
+ maxHeight: 1e4,
854
+ body: {
855
+ backgroundColor: F.value.style.chart.backgroundColor,
856
+ color: F.value.style.chart.color
857
+ },
858
+ head: {
859
+ backgroundColor: F.value.style.chart.backgroundColor,
860
+ color: F.value.style.chart.color
861
+ }
862
+ }
863
+ }
864
+ };
865
+ });
866
+ Ye(() => V.value.showTable, (e) => {
867
+ F.value.table.show || (e && F.value.table.useDialog && $t.value ? $t.value.open() : "close" in $t.value && $t.value.close());
868
+ });
869
+ function rr() {
870
+ V.value.showTable = !1, en.value && en.value.setTableIconState(!1);
871
+ }
872
+ let ir = p(() => F.value.style.chart.backgroundColor), ar = p(() => F.value.style.chart.legend), or = p(() => F.value.style.chart.title), sr = p(() => Un.value.flat().map((e) => ({
873
+ ...e,
874
+ name: e.svgDisplay
875
+ }))), { isCallbackImaging: cr, isCallbackSvg: lr, generateSvg: ur, onGenerateImage: dr } = xe({
876
+ svg: R,
877
+ title: or,
878
+ legend: ar,
879
+ legendItems: sr,
880
+ backgroundColor: ir,
881
+ getSvgCallback: () => F.value.userOptions.callbacks.svg,
882
+ generateImage: Sn
883
+ });
884
+ async function fr() {
885
+ if (U("copyAlt", {
886
+ config: F.value,
887
+ dataset: J.value
888
+ }), !F.value.userOptions.callbacks.altCopy) {
889
+ console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.");
890
+ return;
891
+ }
892
+ await Promise.resolve(F.value.userOptions.callbacks.altCopy({
893
+ config: F.value,
894
+ dataset: J.value
895
+ }));
896
+ }
897
+ let $ = p(() => X.value.flatMap((e) => e.donut.filter((e) => !e.ghost)));
898
+ function pr() {
899
+ N.value = null, rn.value = !0;
900
+ }
901
+ function mr() {
902
+ N.value = null, nn.value = "pointer", Bt.value = !1, Fn.value = null, Ht.value = null, In.value = null, Z.value = null, rn.value = !1;
903
+ }
904
+ function hr(e) {
905
+ if (!R.value || Zn.value || document.activeElement !== R.value || !$.value.length) return;
906
+ let t = ["ArrowLeft", "ArrowUp"].includes(e.key), n = ["ArrowRight", "ArrowDown"].includes(e.key), r = e.key === "Enter" || e.key === " ", i = e.key === "Escape";
907
+ if (!t && !n && !r && !i) return;
908
+ if (e.preventDefault(), e.stopPropagation(), i) {
909
+ N.value = null, nn.value = "pointer", Bt.value = !1, Fn.value = null, Ht.value = null, In.value = null, Z.value = null;
910
+ return;
911
+ }
912
+ if (r) {
913
+ if (N.value === null) return;
914
+ let e = $.value[N.value];
915
+ if (!e) return;
916
+ Tn({
917
+ datapoint: e,
918
+ index: N.value,
919
+ seriesIndex: e.seriesIndex
920
+ });
921
+ return;
922
+ }
923
+ let a = N.value, o = Z.value, s = a !== null && a >= 0 && a < $.value.length, c = o !== null && o >= 0 && o < $.value.length;
924
+ s ? n ? (a += 1, a >= $.value.length && (a = 0)) : t && (--a, a < 0 && (a = $.value.length - 1)) : c ? (a = n ? o + 1 : o - 1, a >= $.value.length && (a = 0), a < 0 && (a = $.value.length - 1)) : a = n ? 0 : $.value.length - 1;
925
+ let l = $.value[a];
926
+ l && (N.value = a, gr(), Bn({
927
+ datapoint: l,
928
+ relativeIndex: a,
929
+ seriesIndex: l.seriesIndex,
930
+ show: !0,
931
+ triggerMode: "keyboard"
932
+ }));
933
+ }
934
+ function gr() {
935
+ if (!R.value) return;
936
+ let e = R.value.getBoundingClientRect();
937
+ tn.value = {
938
+ x: e.left + e.width / 2,
939
+ y: e.top + e.height / 2
940
+ };
941
+ }
942
+ let _r = p(() => ({
943
+ headers: Kn.value?.colNames ?? [],
944
+ rows: Kn.value?.a11yBody ?? []
945
+ }));
946
+ return we({
947
+ autoSize: tr,
948
+ getData: qn,
949
+ getImage: $n,
950
+ generatePdf: xn,
951
+ generateCsv: Gn,
952
+ generateImage: Sn,
953
+ generateSvg: ur,
954
+ hideSeries: jn,
955
+ showSeries: An,
956
+ toggleTable: Jn,
957
+ toggleLabels: Yn,
958
+ toggleTooltip: Xn,
959
+ toggleAnnotator: Qn,
960
+ toggleFullscreen: an,
961
+ copyAlt: fr
962
+ }), (e, t) => (x(), g("div", {
963
+ ref_key: "nestedDonutsChart",
964
+ ref: A,
965
+ class: Ve(`vue-data-ui-component vue-ui-nested-donuts ${P.value ? "vue-data-ui-wrapper-fullscreen" : ""} ${F.value.useCssAnimation ? "" : "vue-ui-dna"}`),
966
+ style: He(`font-family:${F.value.style.fontFamily};width:100%; text-align:center;background:${F.value.style.chart.backgroundColor}`),
967
+ id: `nested_donuts_${k.value}`,
968
+ onMouseenter: t[2] ||= () => E(dn)(!0),
969
+ onMouseleave: t[3] ||= () => E(dn)(!1)
970
+ }, [
971
+ _("div", {
972
+ id: `chart-instructions-${k.value}`,
973
+ class: "sr-only"
974
+ }, [_("p", null, T(F.value.a11y.translations.keyboardNavigation), 1)], 8, $e),
975
+ _r.value?.rows?.length ? (x(), m(ke, {
976
+ key: 0,
977
+ uid: k.value,
978
+ head: _r.value.headers,
979
+ body: _r.value.rows,
980
+ notice: F.value.a11y.translations.tableAvailable,
981
+ caption: F.value.a11y.translations.tableCaption
982
+ }, null, 8, [
983
+ "uid",
984
+ "head",
985
+ "body",
986
+ "notice",
987
+ "caption"
988
+ ])) : h("", !0),
989
+ F.value.userOptions.buttons.annotator ? (x(), m(E(Nt), {
990
+ key: 1,
991
+ svgRef: E(R),
992
+ backgroundColor: F.value.style.chart.backgroundColor,
993
+ color: F.value.style.chart.color,
994
+ active: Zn.value,
995
+ isCursorPointer: I.value,
996
+ onClose: Qn
997
+ }, {
998
+ "annotator-action-close": D(() => [w(e.$slots, "annotator-action-close", {}, void 0, !0)]),
999
+ "annotator-action-color": D(({ color: t }) => [w(e.$slots, "annotator-action-color", b(y({ color: t })), void 0, !0)]),
1000
+ "annotator-action-draw": D(({ mode: t }) => [w(e.$slots, "annotator-action-draw", b(y({ mode: t })), void 0, !0)]),
1001
+ "annotator-action-undo": D(({ disabled: t }) => [w(e.$slots, "annotator-action-undo", b(y({ disabled: t })), void 0, !0)]),
1002
+ "annotator-action-redo": D(({ disabled: t }) => [w(e.$slots, "annotator-action-redo", b(y({ disabled: t })), void 0, !0)]),
1003
+ "annotator-action-delete": D(({ disabled: t }) => [w(e.$slots, "annotator-action-delete", b(y({ disabled: t })), void 0, !0)]),
1004
+ _: 3
1005
+ }, 8, [
1006
+ "svgRef",
1007
+ "backgroundColor",
1008
+ "color",
1009
+ "active",
1010
+ "isCursorPointer"
1011
+ ])) : h("", !0),
1012
+ Cn.value ? (x(), g("div", {
1013
+ key: 2,
1014
+ ref_key: "noTitle",
1015
+ ref: qt,
1016
+ class: "vue-data-ui-no-title-space",
1017
+ style: "height:36px; width: 100%;background:transparent"
1018
+ }, null, 512)) : h("", !0),
1019
+ F.value.style.chart.title.text ? (x(), g("div", {
1020
+ key: 3,
1021
+ ref_key: "chartTitle",
1022
+ ref: Wt
1023
+ }, [(x(), m(Ce, {
1024
+ key: `title_${Jt.value}`,
1025
+ config: {
1026
+ title: {
1027
+ cy: "donut-div-title",
1028
+ ...F.value.style.chart.title
1029
+ },
1030
+ subtitle: {
1031
+ cy: "donut-div-subtitle",
1032
+ ...F.value.style.chart.title.subtitle
1033
+ }
1034
+ }
1035
+ }, null, 8, ["config"]))], 512)) : h("", !0),
1036
+ _("div", { id: `legend-top-${k.value}` }, null, 8, et),
1037
+ F.value.userOptions.show && zt.value && (E(fn) || E(un)) ? (x(), m(E(Mt), {
1038
+ ref_key: "userOptionsRef",
1039
+ ref: en,
1040
+ key: `user_option_${Ut.value}`,
1041
+ backgroundColor: F.value.style.chart.backgroundColor,
1042
+ color: F.value.style.chart.color,
1043
+ isPrinting: E(yn),
1044
+ isImaging: E(bn),
1045
+ uid: k.value,
1046
+ hasTooltip: F.value.userOptions.buttons.tooltip && F.value.style.chart.tooltip.show,
1047
+ hasPdf: F.value.userOptions.buttons.pdf,
1048
+ hasXls: F.value.userOptions.buttons.csv,
1049
+ hasImg: F.value.userOptions.buttons.img,
1050
+ hasSvg: F.value.userOptions.buttons.svg,
1051
+ hasTable: F.value.userOptions.buttons.table,
1052
+ hasLabel: F.value.userOptions.buttons.labels,
1053
+ hasFullscreen: F.value.userOptions.buttons.fullscreen,
1054
+ hasAltCopy: F.value.userOptions.buttons.altCopy,
1055
+ isFullscreen: P.value,
1056
+ isTooltip: V.value.showTooltip,
1057
+ titles: { ...F.value.userOptions.buttonTitles },
1058
+ chartElement: A.value,
1059
+ position: F.value.userOptions.position,
1060
+ hasAnnotator: F.value.userOptions.buttons.annotator,
1061
+ isAnnotation: Zn.value,
1062
+ callbacks: F.value.userOptions.callbacks,
1063
+ printScale: F.value.userOptions.print.scale,
1064
+ tableDialog: F.value.table.useDialog,
1065
+ isCursorPointer: I.value,
1066
+ onToggleFullscreen: an,
1067
+ onGeneratePdf: E(xn),
1068
+ onGenerateCsv: Gn,
1069
+ onGenerateImage: E(dr),
1070
+ onGenerateSvg: E(ur),
1071
+ onToggleTable: Jn,
1072
+ onToggleLabels: Yn,
1073
+ onToggleTooltip: Xn,
1074
+ onToggleAnnotator: Qn,
1075
+ onCopyAlt: fr,
1076
+ style: He({ visibility: E(fn) ? E(un) ? "visible" : "hidden" : "visible" })
1077
+ }, Ie({ _: 2 }, [
1078
+ e.$slots.menuIcon ? {
1079
+ name: "menuIcon",
1080
+ fn: D(({ isOpen: t, color: n }) => [w(e.$slots, "menuIcon", b(y({
1081
+ isOpen: t,
1082
+ color: n
1083
+ })), void 0, !0)]),
1084
+ key: "0"
1085
+ } : void 0,
1086
+ e.$slots.optionTooltip ? {
1087
+ name: "optionTooltip",
1088
+ fn: D(() => [w(e.$slots, "optionTooltip", {}, void 0, !0)]),
1089
+ key: "1"
1090
+ } : void 0,
1091
+ e.$slots.optionPdf ? {
1092
+ name: "optionPdf",
1093
+ fn: D(() => [w(e.$slots, "optionPdf", {}, void 0, !0)]),
1094
+ key: "2"
1095
+ } : void 0,
1096
+ e.$slots.optionCsv ? {
1097
+ name: "optionCsv",
1098
+ fn: D(() => [w(e.$slots, "optionCsv", {}, void 0, !0)]),
1099
+ key: "3"
1100
+ } : void 0,
1101
+ e.$slots.optionImg ? {
1102
+ name: "optionImg",
1103
+ fn: D(() => [w(e.$slots, "optionImg", {}, void 0, !0)]),
1104
+ key: "4"
1105
+ } : void 0,
1106
+ e.$slots.optionSvg ? {
1107
+ name: "optionSvg",
1108
+ fn: D(() => [w(e.$slots, "optionSvg", {}, void 0, !0)]),
1109
+ key: "5"
1110
+ } : void 0,
1111
+ e.$slots.optionTable ? {
1112
+ name: "optionTable",
1113
+ fn: D(() => [w(e.$slots, "optionTable", {}, void 0, !0)]),
1114
+ key: "6"
1115
+ } : void 0,
1116
+ e.$slots.optionLabels ? {
1117
+ name: "optionLabels",
1118
+ fn: D(() => [w(e.$slots, "optionLabels", {}, void 0, !0)]),
1119
+ key: "7"
1120
+ } : void 0,
1121
+ e.$slots.optionFullscreen ? {
1122
+ name: "optionFullscreen",
1123
+ fn: D(({ toggleFullscreen: t, isFullscreen: n }) => [w(e.$slots, "optionFullscreen", b(y({
1124
+ toggleFullscreen: t,
1125
+ isFullscreen: n
1126
+ })), void 0, !0)]),
1127
+ key: "8"
1128
+ } : void 0,
1129
+ e.$slots.optionAnnotator ? {
1130
+ name: "optionAnnotator",
1131
+ fn: D(({ toggleAnnotator: t, isAnnotator: n }) => [w(e.$slots, "optionAnnotator", b(y({
1132
+ toggleAnnotator: t,
1133
+ isAnnotator: n
1134
+ })), void 0, !0)]),
1135
+ key: "9"
1136
+ } : void 0,
1137
+ e.$slots.optionAltCopy ? {
1138
+ name: "optionAltCopy",
1139
+ fn: D(({ altCopy: t }) => [w(e.$slots, "optionAltCopy", b(y({ altCopy: t })), void 0, !0)]),
1140
+ key: "10"
1141
+ } : void 0,
1142
+ e.$slots["custom-menu-before"] ? {
1143
+ name: "custom-menu-before",
1144
+ fn: D(() => [w(e.$slots, "custom-menu-before", {}, void 0, !0)]),
1145
+ key: "11"
1146
+ } : void 0,
1147
+ e.$slots["custom-menu-after"] ? {
1148
+ name: "custom-menu-after",
1149
+ fn: D(() => [w(e.$slots, "custom-menu-after", {}, void 0, !0)]),
1150
+ key: "12"
1151
+ } : void 0
1152
+ ]), 1032, /* @__PURE__ */ "backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasXls.hasImg.hasSvg.hasTable.hasLabel.hasFullscreen.hasAltCopy.isFullscreen.isTooltip.titles.chartElement.position.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.onGenerateImage.onGenerateSvg.style".split("."))) : h("", !0),
1153
+ _("div", tt, [(x(), g("svg", {
1154
+ ref_key: "svgRef",
1155
+ ref: R,
1156
+ xmlns: E(le),
1157
+ "aria-describedby": `chart-instructions-${k.value}`,
1158
+ class: Ve({
1159
+ "vue-data-ui-fullscreen--on": P.value,
1160
+ "vue-data-ui-fulscreen--off": !P.value,
1161
+ "vue-data-ui-svg": !0
1162
+ }),
1163
+ viewBox: `0 0 ${H.value.width <= 0 ? .001 : H.value.width} ${H.value.height < 0 ? .001 : H.value.height}`,
1164
+ style: He(`max-width:100%; overflow: visible; background:transparent;color:${F.value.style.chart.color};${mn.value.css}`),
1165
+ tabindex: "0",
1166
+ onFocus: pr,
1167
+ onBlur: mr,
1168
+ onKeydown: hr
1169
+ }, [_("g", {
1170
+ ref_key: "G",
1171
+ ref: er,
1172
+ class: "vue-data-ui-g"
1173
+ }, [
1174
+ Re(E(Pt)),
1175
+ e.$slots["chart-background"] ? (x(), g("foreignObject", {
1176
+ key: 0,
1177
+ x: 0,
1178
+ y: 0,
1179
+ width: H.value.width <= 0 ? .001 : H.value.width,
1180
+ height: H.value.height < 0 ? .001 : H.value.height,
1181
+ style: { pointerEvents: "none" }
1182
+ }, [w(e.$slots, "chart-background", {}, void 0, !0)], 8, rt)) : h("", !0),
1183
+ _("defs", null, [(x(!0), g(f, null, C(Pn.value, (e, t) => (x(), m(De, {
1184
+ t: "radial",
1185
+ id: `radial_${k.value}_${t}`,
1186
+ key: `radial_${k.value}_${t}`,
1187
+ stops: [
1188
+ [
1189
+ "0%",
1190
+ "#FFFFFF",
1191
+ 0
1192
+ ],
1193
+ [
1194
+ `${(1 - Mn.value / Nn.value[t]) * 100}%`,
1195
+ E(n)("#FFFFFF", 0),
1196
+ 0
1197
+ ],
1198
+ [
1199
+ `${(1 - Mn.value / Nn.value[t] / 2) * 100}%`,
1200
+ "#FFFFFF",
1201
+ F.value.style.chart.gradientIntensity / 100
1202
+ ],
1203
+ [
1204
+ "100%",
1205
+ "#FFFFFF",
1206
+ 0
1207
+ ]
1208
+ ]
1209
+ }, null, 8, ["id", "stops"]))), 128))]),
1210
+ _("defs", null, [_("filter", {
1211
+ id: `blur_${k.value}`,
1212
+ x: "-50%",
1213
+ y: "-50%",
1214
+ width: "200%",
1215
+ height: "200%"
1216
+ }, [_("feGaussianBlur", {
1217
+ in: "SourceGraphic",
1218
+ stdDeviation: 2,
1219
+ id: `blur_std_${k.value}`
1220
+ }, null, 8, at), t[4] ||= _("feColorMatrix", {
1221
+ type: "saturate",
1222
+ values: "0"
1223
+ }, null, -1)], 8, it), _("filter", {
1224
+ id: `shadow_${k.value}`,
1225
+ "color-interpolation-filters": "sRGB"
1226
+ }, [_("feDropShadow", {
1227
+ dx: "0",
1228
+ dy: "0",
1229
+ stdDeviation: "10",
1230
+ "flood-opacity": "0.5",
1231
+ "flood-color": F.value.style.chart.layout.donut.shadowColor
1232
+ }, null, 8, st)], 8, ot)]),
1233
+ _("defs", null, [(x(!0), g(f, null, C(X.value, (e, t) => (x(), g("path", {
1234
+ key: `path-full-${t}`,
1235
+ id: `path-full-${t}-${k.value}`,
1236
+ d: e.fullCirclePath,
1237
+ fill: "none"
1238
+ }, null, 8, ct))), 128))]),
1239
+ (x(!0), g(f, null, C(X.value, (e, t) => (x(), g("g", null, [e.hasData ? (x(!0), g(f, { key: 0 }, C(e.donut.filter((e) => !e.ghost), (e, t) => (x(), g("g", null, [_("path", {
1240
+ class: "vue-ui-donut-arc-path",
1241
+ d: e.arcSlice,
1242
+ fill: e.color,
1243
+ stroke: F.value.style.chart.layout.donut.borderColorAuto ? F.value.style.chart.backgroundColor : F.value.style.chart.layout.donut.borderColor,
1244
+ "stroke-width": F.value.style.chart.layout.donut.borderWidth,
1245
+ filter: Hn(e, t)
1246
+ }, null, 8, lt)]))), 256)) : (x(!0), g(f, { key: 1 }, C(e.skeleton, (e, t) => (x(), g("g", null, [_("path", {
1247
+ class: "vue-ui-donut-arc-path",
1248
+ d: e.arcSlice,
1249
+ fill: e.color,
1250
+ stroke: F.value.style.chart.layout.donut.borderColorAuto ? F.value.style.chart.backgroundColor : F.value.style.chart.layout.donut.borderColor,
1251
+ "stroke-width": F.value.style.chart.layout.donut.borderWidth
1252
+ }, null, 8, ut)]))), 256))]))), 256)),
1253
+ F.value.style.chart.useGradient ? (x(), g("g", dt, [(x(!0), g(f, null, C(Pn.value, (e, t) => (x(), g("g", null, [_("path", {
1254
+ d: e.donut.arcSlice,
1255
+ fill: `url(#radial_${k.value}_${t})`,
1256
+ stroke: "transparent",
1257
+ "stroke-width": "0"
1258
+ }, null, 8, ft)]))), 256))])) : h("", !0),
1259
+ F.value.style.chart.layout.labels.dataLabels.showDonutName ? (x(), g("g", pt, [F.value.style.chart.layout.labels.dataLabels.curvedDonutName ? (x(!0), g(f, { key: 0 }, C(X.value, (e, t) => (x(), g("g", null, [(x(!0), g(f, null, C(e.donut, (n, r) => (x(), g("g", null, [r === 0 && H.value.width && H.value.height ? (x(), g("text", {
1260
+ key: 0,
1261
+ "text-anchor": "middle",
1262
+ "font-size": F.value.style.chart.layout.labels.dataLabels.fontSize,
1263
+ "font-weight": F.value.style.chart.layout.labels.dataLabels.boldDonutName ? "bold" : "normal",
1264
+ fill: F.value.style.chart.layout.labels.dataLabels.color,
1265
+ dy: F.value.style.chart.layout.labels.dataLabels.donutNameOffsetY
1266
+ }, [_("textPath", {
1267
+ href: `#path-full-${t}-${k.value}`,
1268
+ startOffset: "50%",
1269
+ "text-anchor": "middle",
1270
+ method: "align",
1271
+ spacing: "auto"
1272
+ }, T(F.value.style.chart.layout.labels.dataLabels.donutNameAbbreviation ? E(oe)({
1273
+ source: e.name,
1274
+ length: F.value.style.chart.layout.labels.dataLabels.donutNameMaxAbbreviationSize
1275
+ }) : e.name), 9, ht)], 8, mt)) : h("", !0)]))), 256))]))), 256)) : (x(!0), g(f, { key: 1 }, C(X.value, (e, t) => (x(), g("g", null, [(x(!0), g(f, null, C(e.donut, (t, n) => (x(), g("g", null, [n === 0 && H.value.width && H.value.height ? (x(), g("text", {
1276
+ key: 0,
1277
+ x: H.value.width / 2,
1278
+ y: t.startY - F.value.style.chart.layout.labels.dataLabels.fontSize + F.value.style.chart.layout.labels.dataLabels.donutNameOffsetY,
1279
+ "text-anchor": "middle",
1280
+ "font-size": F.value.style.chart.layout.labels.dataLabels.fontSize,
1281
+ "font-weight": F.value.style.chart.layout.labels.dataLabels.boldDonutName ? "bold" : "normal",
1282
+ fill: F.value.style.chart.layout.labels.dataLabels.color
1283
+ }, T(F.value.style.chart.layout.labels.dataLabels.donutNameAbbreviation ? E(oe)({
1284
+ source: e.name,
1285
+ length: F.value.style.chart.layout.labels.dataLabels.donutNameMaxAbbreviationSize
1286
+ }) : e.name), 9, gt)) : h("", !0)]))), 256))]))), 256))])) : h("", !0),
1287
+ F.value.style.chart.layout.labels.dataLabels.show ? (x(), g("g", _t, [(x(!0), g(f, null, C(X.value, (e, t) => (x(), g("g", null, [(x(!0), g(f, null, C(e.donut.filter((e) => !e.ghost), (e, n) => (x(), g("g", { filter: Hn(e, n) }, [Xe(_("text", {
1288
+ opacity: +!!Vn(e),
1289
+ "text-anchor": E(re)(e, !0).anchor,
1290
+ x: E(re)(e, !1, F.value.style.chart.layout.labels.dataLabels.offsetX).x || 0,
1291
+ y: E(se)(e, F.value.style.chart.layout.labels.dataLabels.offsetY, F.value.style.chart.layout.labels.dataLabels.offsetY) + (F.value.style.chart.layout.labels.dataLabels.showValueFirst && F.value.style.chart.layout.labels.dataLabels.showValue ? F.value.style.chart.layout.labels.dataLabels.fontSize : 0),
1292
+ fill: F.value.style.chart.layout.labels.dataLabels.useSerieColor ? e.color : F.value.style.chart.layout.labels.dataLabels.color,
1293
+ "font-size": F.value.style.chart.layout.labels.dataLabels.fontSize,
1294
+ "font-weight": F.value.style.chart.layout.labels.dataLabels.boldPercentage ? "bold" : "normal"
1295
+ }, T(E(i)(E(u)({
1296
+ v: e.proportion * 100,
1297
+ s: "%",
1298
+ r: F.value.style.chart.layout.labels.dataLabels.roundingPercentage
1299
+ }), F.value.style.chart.layout.labels.dataLabels.usePercentageParens ? "(" : "", F.value.style.chart.layout.labels.dataLabels.usePercentageParens ? ")" : "")), 9, yt), [[Je, V.value.dataLabels.show && F.value.style.chart.layout.labels.dataLabels.showPercentage]]), Xe(_("text", {
1300
+ opacity: +!!Vn(e),
1301
+ "text-anchor": E(re)(e, !0).anchor,
1302
+ x: E(re)(e, !1, F.value.style.chart.layout.labels.dataLabels.offsetX).x || 0,
1303
+ y: E(se)(e, F.value.style.chart.layout.labels.dataLabels.offsetY, F.value.style.chart.layout.labels.dataLabels.offsetY) + (F.value.style.chart.layout.labels.dataLabels.showValueFirst || !F.value.style.chart.layout.labels.dataLabels.showPercentage ? 0 : F.value.style.chart.layout.labels.dataLabels.fontSize),
1304
+ fill: F.value.style.chart.layout.labels.dataLabels.useSerieColor ? e.color : F.value.style.chart.layout.labels.dataLabels.color,
1305
+ "font-size": F.value.style.chart.layout.labels.dataLabels.fontSize,
1306
+ "font-weight": F.value.style.chart.layout.labels.dataLabels.boldValue ? "bold" : "normal"
1307
+ }, T(E(i)(E(d)(F.value.style.chart.layout.labels.dataLabels.formatter, e.value, E(u)({
1308
+ p: F.value.style.chart.layout.labels.dataLabels.prefix,
1309
+ v: e.value,
1310
+ s: F.value.style.chart.layout.labels.dataLabels.suffix,
1311
+ r: F.value.style.chart.layout.labels.dataLabels.roundingValue
1312
+ }), {
1313
+ datapoint: e,
1314
+ seriesIndex: t,
1315
+ datapointIndex: n
1316
+ }), F.value.style.chart.layout.labels.dataLabels.useValueParens ? "(" : "", F.value.style.chart.layout.labels.dataLabels.useValueParens ? ")" : "")), 9, bt), [[Je, V.value.dataLabels.show && F.value.style.chart.layout.labels.dataLabels.showValue]])], 8, vt))), 256))]))), 256))])) : h("", !0),
1317
+ (x(!0), g(f, null, C(X.value, (e, t) => (x(), g("g", null, [(x(!0), g(f, null, C(e.donut, (e, t) => (x(), g("g", null, [_("path", {
1318
+ d: e.arcSlice,
1319
+ fill: Ht.value === e.id ? F.value.style.chart.layout.donut.selectedColor : "transparent",
1320
+ onMouseenter: (t) => Bn({
1321
+ datapoint: e,
1322
+ relativeIndex: $.value.findIndex((t) => t.id === e.id),
1323
+ seriesIndex: e.seriesIndex
1324
+ }),
1325
+ onClick: (n) => Tn({
1326
+ datapoint: e,
1327
+ index: t,
1328
+ seriesIndex: e.seriesIndex
1329
+ }),
1330
+ onMouseleave: (t) => Rn({
1331
+ datapoint: e,
1332
+ seriesIndex: e.seriesIndex
1333
+ })
1334
+ }, null, 40, xt)]))), 256))]))), 256)),
1335
+ w(e.$slots, "svg", { svg: {
1336
+ ...H.value,
1337
+ isPrintingImg: E(yn) || E(bn) || E(cr),
1338
+ isPrintingSvg: E(lr)
1339
+ } }, void 0, !0)
1340
+ ], 512)], 46, nt)), e.$slots.hint ? (x(), g("div", St, [w(e.$slots, "hint", b(y({
1341
+ hint: F.value.a11y.translations.keyboardNavigation,
1342
+ isVisible: rn.value
1343
+ })), void 0, !0)])) : h("", !0)]),
1344
+ e.$slots.watermark ? (x(), g("div", Ct, [w(e.$slots, "watermark", b(y({ isPrinting: E(yn) || E(bn) || E(cr) || E(lr) })), void 0, !0)])) : h("", !0),
1345
+ Re(E(Ot), {
1346
+ teleportTo: F.value.style.chart.tooltip.teleportTo,
1347
+ show: V.value.showTooltip && Bt.value,
1348
+ backgroundColor: F.value.style.chart.tooltip.backgroundColor,
1349
+ color: F.value.style.chart.tooltip.color,
1350
+ borderRadius: F.value.style.chart.tooltip.borderRadius,
1351
+ borderColor: F.value.style.chart.tooltip.borderColor,
1352
+ borderWidth: F.value.style.chart.tooltip.borderWidth,
1353
+ fontSize: F.value.style.chart.tooltip.fontSize,
1354
+ backgroundOpacity: F.value.style.chart.tooltip.backgroundOpacity,
1355
+ position: F.value.style.chart.tooltip.position,
1356
+ offsetX: F.value.style.chart.tooltip.offsetX,
1357
+ offsetY: F.value.style.chart.tooltip.offsetY,
1358
+ parent: A.value,
1359
+ content: Vt.value,
1360
+ isFullscreen: P.value,
1361
+ isCustom: E(fe)(F.value.style.chart.tooltip.customFormat),
1362
+ smooth: F.value.style.chart.tooltip.smooth,
1363
+ backdropFilter: F.value.style.chart.tooltip.backdropFilter,
1364
+ smoothForce: F.value.style.chart.tooltip.smoothForce,
1365
+ smoothSnapThreshold: F.value.style.chart.tooltip.smoothSnapThreshold,
1366
+ isA11yMode: nn.value === "keyboard",
1367
+ a11yPosition: tn.value
1368
+ }, {
1369
+ "tooltip-before": D(() => [w(e.$slots, "tooltip-before", b(y({ ...Ln.value })), void 0, !0)]),
1370
+ tooltip: D(() => [w(e.$slots, "tooltip", b(y({ ...Ln.value })), void 0, !0)]),
1371
+ "tooltip-after": D(() => [w(e.$slots, "tooltip-after", b(y({ ...Ln.value })), void 0, !0)]),
1372
+ _: 3
1373
+ }, 8, [
1374
+ "teleportTo",
1375
+ "show",
1376
+ "backgroundColor",
1377
+ "color",
1378
+ "borderRadius",
1379
+ "borderColor",
1380
+ "borderWidth",
1381
+ "fontSize",
1382
+ "backgroundOpacity",
1383
+ "position",
1384
+ "offsetX",
1385
+ "offsetY",
1386
+ "parent",
1387
+ "content",
1388
+ "isFullscreen",
1389
+ "isCustom",
1390
+ "smooth",
1391
+ "backdropFilter",
1392
+ "smoothForce",
1393
+ "smoothSnapThreshold",
1394
+ "isA11yMode",
1395
+ "a11yPosition"
1396
+ ]),
1397
+ _("div", { id: `legend-bottom-${k.value}` }, null, 8, wt),
1398
+ Qt.value && (F.value.style.chart.legend.show || e.$slots.legend) ? (x(), m(Fe, {
1399
+ key: 6,
1400
+ to: F.value.style.chart.legend.position === "top" ? `#legend-top-${k.value}` : `#legend-bottom-${k.value}`
1401
+ }, [F.value.style.chart.legend.show ? (x(), g("div", {
1402
+ key: 0,
1403
+ ref_key: "chartLegend",
1404
+ ref: Gt,
1405
+ class: Ve({ "vue-ui-nested-donuts-legend": Un.value.length > 1 })
1406
+ }, [w(e.$slots, "legend", { legend: Un.value }, () => [(x(!0), g(f, null, C(Un.value, (e, n) => (x(), m(Ne, {
1407
+ key: `legend_${n}_${Xt.value}`,
1408
+ legendSet: e,
1409
+ config: Wn.value,
1410
+ isCursorPointer: I.value,
1411
+ onClickMarker: t[0] ||= ({ legend: e }) => Y(e)
1412
+ }, {
1413
+ legendTitle: D(({ titleSet: e }) => [e[0] && e[0].arcOf ? (x(), g("div", Tt, T(e[0].arcOf), 1)) : h("", !0)]),
1414
+ item: D(({ legend: e, index: t }) => [_("div", {
1415
+ onClick: (t) => Y(e),
1416
+ style: He(`opacity:${W.value.includes(e.id) ? .5 : 1}`)
1417
+ }, T(e.display), 13, Et)]),
1418
+ legendToggle: D(() => [e.length > 2 && F.value.style.chart.legend.selectAllToggle.show && !E(cn) ? (x(), m(Oe, {
1419
+ key: `toggle-${n}`,
1420
+ backgroundColor: F.value.style.chart.legend.selectAllToggle.backgroundColor,
1421
+ color: F.value.style.chart.legend.selectAllToggle.color,
1422
+ fontSize: F.value.style.chart.legend.fontSize,
1423
+ checked: e.some((e) => W.value.includes(e.id)),
1424
+ isCursorPointer: I.value,
1425
+ onToggle: (t) => On(e)
1426
+ }, null, 8, [
1427
+ "backgroundColor",
1428
+ "color",
1429
+ "fontSize",
1430
+ "checked",
1431
+ "isCursorPointer",
1432
+ "onToggle"
1433
+ ])) : h("", !0)]),
1434
+ _: 2
1435
+ }, 1032, [
1436
+ "legendSet",
1437
+ "config",
1438
+ "isCursorPointer"
1439
+ ]))), 128))], !0)], 2)) : h("", !0)], 8, ["to"])) : h("", !0),
1440
+ e.$slots.source ? (x(), g("div", {
1441
+ key: 7,
1442
+ ref_key: "source",
1443
+ ref: Kt,
1444
+ dir: "auto"
1445
+ }, [w(e.$slots, "source", {}, void 0, !0)], 512)) : h("", !0),
1446
+ zt.value && F.value.userOptions.buttons.table ? (x(), m(Ge(nr.value.component), ze({ key: 8 }, nr.value.props, {
1447
+ ref_key: "tableUnit",
1448
+ ref: $t,
1449
+ onClose: rr
1450
+ }), Ie({
1451
+ content: D(() => [(x(), m(E(jt), {
1452
+ key: `table_${Yt.value}`,
1453
+ colNames: Kn.value.colNames,
1454
+ head: Kn.value.head,
1455
+ body: Kn.value.body,
1456
+ config: Kn.value.config,
1457
+ title: F.value.table.useDialog ? "" : nr.value.title,
1458
+ withCloseButton: !F.value.table.useDialog,
1459
+ isCursorPointer: I.value,
1460
+ onClose: rr
1461
+ }, {
1462
+ th: D(({ th: e }) => [_("div", {
1463
+ innerHTML: e,
1464
+ style: {
1465
+ display: "flex",
1466
+ "align-items": "center"
1467
+ }
1468
+ }, null, 8, Dt)]),
1469
+ td: D(({ td: e }) => [Le(T(e.name || e), 1)]),
1470
+ _: 1
1471
+ }, 8, [
1472
+ "colNames",
1473
+ "head",
1474
+ "body",
1475
+ "config",
1476
+ "title",
1477
+ "withCloseButton",
1478
+ "isCursorPointer"
1479
+ ]))]),
1480
+ _: 2
1481
+ }, [F.value.table.useDialog ? {
1482
+ name: "title",
1483
+ fn: D(() => [Le(T(nr.value.title), 1)]),
1484
+ key: "0"
1485
+ } : void 0, F.value.table.useDialog ? {
1486
+ name: "actions",
1487
+ fn: D(() => [_("button", {
1488
+ tabindex: "0",
1489
+ class: "vue-ui-user-options-button",
1490
+ onClick: t[1] ||= (e) => Gn(F.value.userOptions.callbacks.csv),
1491
+ style: He({ cursor: I.value ? "pointer" : "default" })
1492
+ }, [Re(E(kt), {
1493
+ name: "fileCsv",
1494
+ stroke: nr.value.props.color
1495
+ }, null, 8, ["stroke"])], 4)]),
1496
+ key: "1"
1497
+ } : void 0]), 1040)) : h("", !0),
1498
+ w(e.$slots, "skeleton", {}, () => [E(cn) ? (x(), m(ve, { key: 0 })) : h("", !0)], !0)
1499
+ ], 46, Qe));
1500
+ }
1501
+ }, [["__scopeId", "data-v-d80ff98e"]]);
1502
+ //#endregion
1503
+ export { Ze as n, Ot as t };