vue-data-ui 3.15.12 → 3.16.1

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 (218) hide show
  1. package/README.md +132 -59
  2. package/dist/A11yDataTable-KcVAX2cP.js +54 -0
  3. package/dist/{Arrow-DlPyR6HQ.js → Arrow-Bn-9n3bm.js} +1 -1
  4. package/dist/{BaseDraggableDialog-DSpKTn3R.js → BaseDraggableDialog-CIb-iD9g.js} +2 -2
  5. package/dist/{BaseIcon-CNx8Tzl5.js → BaseIcon-Cb3zzG6s.js} +1 -1
  6. package/dist/{BaseLegendToggle-Y61xahI4.js → BaseLegendToggle-BQVIawmA.js} +1 -1
  7. package/dist/{BaseZoomControls-CoFievy9.js → BaseZoomControls-DievbOeJ.js} +2 -2
  8. package/dist/ColorPicker-B0mV4xzu.js +255 -0
  9. package/dist/{DataTable-Bo1pmAqG.js → DataTable-DT2kIdQ6.js} +2 -2
  10. package/dist/Legend-CS7Xo5LK.js +101 -0
  11. package/dist/{NonSvgPenAndPaper-CGk_xThe.js → NonSvgPenAndPaper-VyJFyJ6X.js} +3 -3
  12. package/dist/{PackageVersion-DN9d0ME5.js → PackageVersion-DPO-OOVI.js} +1 -1
  13. package/dist/{PenAndPaper-DWV1FMIi.js → PenAndPaper-Ct3qJ4lA.js} +109 -101
  14. package/dist/{Shape-CSyWYgXc.js → Shape-BKRUOeKk.js} +1 -1
  15. package/dist/{Slicer-DZJA9IG-.js → Slicer-DUycDH_N.js} +2 -2
  16. package/dist/{SlicerPreview-I2J0UUF_.js → SlicerPreview-DTjwV0iY.js} +2 -2
  17. package/dist/{SparkTooltip-BiseJed3.js → SparkTooltip-BorBpltj.js} +1 -1
  18. package/dist/{Title-BfyrP-jp.js → Title-BeMKE1cj.js} +1 -1
  19. package/dist/{Tooltip-DL3QgjZf.js → Tooltip-Bf-kM3_A.js} +86 -68
  20. package/dist/{UserOptions-CrLqEimB.js → UserOptions-rW2fRf3V.js} +228 -222
  21. package/dist/components/arrow.js +1 -1
  22. package/dist/components/vue-ui-3d-bar.js +1 -1
  23. package/dist/components/vue-ui-accordion.js +1 -1
  24. package/dist/components/vue-ui-age-pyramid.js +1 -1
  25. package/dist/components/vue-ui-annotator.js +1 -1
  26. package/dist/components/vue-ui-bullet.js +1 -1
  27. package/dist/components/vue-ui-bump.js +1 -1
  28. package/dist/components/vue-ui-candlestick.js +1 -1
  29. package/dist/components/vue-ui-carousel-table.js +1 -1
  30. package/dist/components/vue-ui-chestnut.js +1 -1
  31. package/dist/components/vue-ui-chord.js +1 -1
  32. package/dist/components/vue-ui-circle-pack.js +1 -1
  33. package/dist/components/vue-ui-cursor.js +1 -1
  34. package/dist/components/vue-ui-dag.js +1 -1
  35. package/dist/components/vue-ui-dashboard.js +1 -1
  36. package/dist/components/vue-ui-digits.js +1 -1
  37. package/dist/components/vue-ui-donut-evolution.js +1 -1
  38. package/dist/components/vue-ui-donut.js +1 -1
  39. package/dist/components/vue-ui-dumbbell.js +1 -1
  40. package/dist/components/vue-ui-flow.js +1 -1
  41. package/dist/components/vue-ui-funnel.js +1 -1
  42. package/dist/components/vue-ui-galaxy.js +1 -1
  43. package/dist/components/vue-ui-gauge.js +1 -1
  44. package/dist/components/vue-ui-geo.js +1 -1
  45. package/dist/components/vue-ui-gizmo.js +1 -1
  46. package/dist/components/vue-ui-heatmap.js +1 -1
  47. package/dist/components/vue-ui-history-plot.js +1 -1
  48. package/dist/components/vue-ui-horizontal-bar.js +1 -1
  49. package/dist/components/vue-ui-icon.js +1 -1
  50. package/dist/components/vue-ui-kpi.js +1 -1
  51. package/dist/components/vue-ui-mini-loader.js +1 -1
  52. package/dist/components/vue-ui-molecule.js +1 -1
  53. package/dist/components/vue-ui-mood-radar.js +1 -1
  54. package/dist/components/vue-ui-nested-donuts.js +1 -1
  55. package/dist/components/vue-ui-onion.js +1 -1
  56. package/dist/components/vue-ui-parallel-coordinate-plot.js +1 -1
  57. package/dist/components/vue-ui-quadrant.js +1 -1
  58. package/dist/components/vue-ui-quick-chart.js +1 -1
  59. package/dist/components/vue-ui-radar.js +1 -1
  60. package/dist/components/vue-ui-rating.js +1 -1
  61. package/dist/components/vue-ui-relation-circle.js +1 -1
  62. package/dist/components/vue-ui-ridgeline.js +1 -1
  63. package/dist/components/vue-ui-rings.js +1 -1
  64. package/dist/components/vue-ui-scatter.js +1 -1
  65. package/dist/components/vue-ui-skeleton.js +1 -1
  66. package/dist/components/vue-ui-smiley.js +1 -1
  67. package/dist/components/vue-ui-spark-trend.js +1 -1
  68. package/dist/components/vue-ui-sparkbar.js +1 -1
  69. package/dist/components/vue-ui-sparkgauge.js +1 -1
  70. package/dist/components/vue-ui-sparkhistogram.js +1 -1
  71. package/dist/components/vue-ui-sparkline.js +1 -1
  72. package/dist/components/vue-ui-sparkstackbar.js +1 -1
  73. package/dist/components/vue-ui-stackbar.js +1 -1
  74. package/dist/components/vue-ui-stackline.js +1 -1
  75. package/dist/components/vue-ui-strip-plot.js +1 -1
  76. package/dist/components/vue-ui-table-heatmap.js +1 -1
  77. package/dist/components/vue-ui-table-sparkline.js +1 -1
  78. package/dist/components/vue-ui-table.js +1 -1
  79. package/dist/components/vue-ui-thermometer.js +1 -1
  80. package/dist/components/vue-ui-timer.js +1 -1
  81. package/dist/components/vue-ui-tiremarks.js +1 -1
  82. package/dist/components/vue-ui-treemap.js +1 -1
  83. package/dist/components/vue-ui-vertical-bar.js +1 -1
  84. package/dist/components/vue-ui-waffle.js +1 -1
  85. package/dist/components/vue-ui-wheel.js +1 -1
  86. package/dist/components/vue-ui-word-cloud.js +1 -1
  87. package/dist/components/vue-ui-world.js +1 -1
  88. package/dist/components/vue-ui-xy-canvas.js +1 -1
  89. package/dist/components/vue-ui-xy.js +1 -1
  90. package/dist/{dom-to-png-BAqzNjb1.js → dom-to-png-CtxhhdWb.js} +1 -1
  91. package/dist/{exposedLib-H4lmBl1t.js → exposedLib-DlqmhBx3.js} +1 -1
  92. package/dist/{img-BYYzY_QU.js → img-LXxMLmCg.js} +1 -1
  93. package/dist/{labelUtils-CTXUc3V9.js → labelUtils-CqTHa20R.js} +1 -1
  94. package/dist/{lib-GwPnJSrY.js → lib-DBptbyyI.js} +106 -84
  95. package/dist/{pdf-z-YiJeJQ.js → pdf-B4tTdfvl.js} +1 -1
  96. package/dist/style.css +1 -1
  97. package/dist/types/vue-data-ui.d.ts +59 -0
  98. package/dist/{useAutoSizeLabelsInsideViewbox-80fzdfxt.js → useAutoSizeLabelsInsideViewbox-DX7LdvFX.js} +1 -1
  99. package/dist/{useConfig-CIgyKZ6R.js → useConfig-DO94Aj5s.js} +953 -700
  100. package/dist/{useNestedProp-BBT0mbHh.js → useNestedProp-Bf5XFbs8.js} +1 -1
  101. package/dist/{useObjectBindings-BlXBVtRa.js → useObjectBindings-DQ8g8Jwi.js} +1 -1
  102. package/dist/usePrefersMotion-CUKm8_t8.js +15 -0
  103. package/dist/{usePrinter-DiK5R6k-.js → usePrinter-CEpYU3r5.js} +2 -2
  104. package/dist/utils.js +3 -3
  105. package/dist/{vue-data-ui-C2kPofmi.js → vue-data-ui-DXGkXRnC.js} +68 -68
  106. package/dist/vue-data-ui.js +72 -72
  107. package/dist/vue-ui-3d-bar-BaFpQnd5.js +1597 -0
  108. package/dist/{vue-ui-accordion-BGHTqIBt.js → vue-ui-accordion-nvggWcGN.js} +4 -4
  109. package/dist/vue-ui-age-pyramid-CRM498Pc.js +1069 -0
  110. package/dist/{vue-ui-annotator-B1GWVtPp.js → vue-ui-annotator-CkPi9moo.js} +7 -7
  111. package/dist/{vue-ui-bullet-DPoGGtaG.js → vue-ui-bullet-BBiwof3c.js} +158 -150
  112. package/dist/vue-ui-bump-Brxpu4xV.js +1147 -0
  113. package/dist/vue-ui-candlestick-DAnZv77-.js +1587 -0
  114. package/dist/{vue-ui-carousel-table-CmiHTJ8E.js → vue-ui-carousel-table-BHRZBYY0.js} +168 -160
  115. package/dist/vue-ui-chestnut-CbrYnRgm.js +1812 -0
  116. package/dist/vue-ui-chord-CaX_IUVs.js +1326 -0
  117. package/dist/vue-ui-circle-pack-CR3h53sc.js +988 -0
  118. package/dist/{vue-ui-cursor-B4mHR7QC.js → vue-ui-cursor-Cjfazw7Z.js} +4 -4
  119. package/dist/vue-ui-dag-B9vH3c66.js +3047 -0
  120. package/dist/{vue-ui-dashboard-Bo5FX73U.js → vue-ui-dashboard-DWll05qs.js} +70 -70
  121. package/dist/{vue-ui-digits-mpo2IcM5.js → vue-ui-digits-DcM67rMx.js} +76 -66
  122. package/dist/vue-ui-donut-Be5G38P5.js +2229 -0
  123. package/dist/vue-ui-donut-evolution-BLSesj3c.js +1358 -0
  124. package/dist/vue-ui-dumbbell-DIMiCY4r.js +1380 -0
  125. package/dist/vue-ui-flow-zvZylhgr.js +1202 -0
  126. package/dist/{vue-ui-funnel-BRkaEkBb.js → vue-ui-funnel-CSri-oWm.js} +7 -7
  127. package/dist/vue-ui-galaxy-CGykxsAI.js +1012 -0
  128. package/dist/{vue-ui-gauge-J2VYHsQe.js → vue-ui-gauge-D1MNB9Jq.js} +8 -8
  129. package/dist/vue-ui-geo-DdJDGhG2.js +1437 -0
  130. package/dist/{vue-ui-gizmo-DEec3-v9.js → vue-ui-gizmo-BZYRHGFm.js} +77 -68
  131. package/dist/vue-ui-heatmap-CryOx6XK.js +1500 -0
  132. package/dist/vue-ui-history-plot-C85iw9Kl.js +1449 -0
  133. package/dist/vue-ui-horizontal-bar-BoBZOybC.js +1637 -0
  134. package/dist/vue-ui-kpi-DHrolXw6.js +109 -0
  135. package/dist/{vue-ui-mini-loader-CoOHvZUk.js → vue-ui-mini-loader-Bc3fEQ9j.js} +3 -3
  136. package/dist/{vue-ui-molecule-Chq1qWDK.js → vue-ui-molecule-DJ_BQ4DK.js} +6 -6
  137. package/dist/vue-ui-mood-radar-CBE02TpQ.js +1086 -0
  138. package/dist/vue-ui-nested-donuts-YTFtb4CL.js +1595 -0
  139. package/dist/vue-ui-onion-B9l81-PS.js +1124 -0
  140. package/dist/vue-ui-parallel-coordinate-plot-C1e_rs8J.js +1252 -0
  141. package/dist/vue-ui-quadrant-C1qsLCRn.js +1759 -0
  142. package/dist/vue-ui-quick-chart-DFoz3WiA.js +2216 -0
  143. package/dist/vue-ui-radar-Cmo3p-UA.js +1139 -0
  144. package/dist/{vue-ui-rating-zV58MDQh.js → vue-ui-rating-BAHhYt_A.js} +3 -3
  145. package/dist/vue-ui-relation-circle-BqwznVwf.js +782 -0
  146. package/dist/vue-ui-ridgeline-CDk9eXJq.js +1473 -0
  147. package/dist/vue-ui-rings-BRkGoQdL.js +1156 -0
  148. package/dist/vue-ui-scatter-BxDtWASQ.js +1831 -0
  149. package/dist/{vue-ui-skeleton-CbqNz9IE.js → vue-ui-skeleton-D6kTb9aO.js} +4 -4
  150. package/dist/{vue-ui-smiley-BK5EKp9u.js → vue-ui-smiley-CzVaLlpB.js} +3 -3
  151. package/dist/vue-ui-spark-trend-D8Mf2A1w.js +378 -0
  152. package/dist/{vue-ui-sparkbar-DUDWvTo-.js → vue-ui-sparkbar-BbYj56c3.js} +86 -84
  153. package/dist/vue-ui-sparkgauge-DXzOSLRb.js +256 -0
  154. package/dist/vue-ui-sparkhistogram-DMfSx1iH.js +474 -0
  155. package/dist/vue-ui-sparkline-D-rQ9PsC.js +1327 -0
  156. package/dist/vue-ui-sparkstackbar-DK5n8IKP.js +621 -0
  157. package/dist/vue-ui-stackbar-BHthy6jf.js +2070 -0
  158. package/dist/vue-ui-stackline-C6-WNpKD.js +2164 -0
  159. package/dist/vue-ui-strip-plot-CHu-1ilI.js +1183 -0
  160. package/dist/{vue-ui-table-BHuXI4Eq.js → vue-ui-table-DW9JGsLq.js} +6 -6
  161. package/dist/{vue-ui-table-heatmap-y88sBfu3.js → vue-ui-table-heatmap-LYqoBit9.js} +6 -6
  162. package/dist/{vue-ui-table-sparkline-ClpLLKi2.js → vue-ui-table-sparkline-CXK1dFr-.js} +5 -5
  163. package/dist/{vue-ui-thermometer-sjruUGQx.js → vue-ui-thermometer-BN8tflOz.js} +272 -256
  164. package/dist/{vue-ui-timer-CgdgMKIc.js → vue-ui-timer-DGT0UBOF.js} +6 -6
  165. package/dist/{vue-ui-tiremarks-UBDpAIVr.js → vue-ui-tiremarks-BZ-osQqY.js} +204 -191
  166. package/dist/vue-ui-treemap-98KaVRyd.js +1723 -0
  167. package/dist/vue-ui-waffle-Cb7oJnIc.js +1321 -0
  168. package/dist/vue-ui-wheel-sfew1fjw.js +738 -0
  169. package/dist/vue-ui-word-cloud-vq1t9JHr.js +1548 -0
  170. package/dist/{vue-ui-world-D-3wgoTn.js → vue-ui-world-CN0f6elD.js} +8 -8
  171. package/dist/vue-ui-xy-BdzEiImZ.js +3877 -0
  172. package/dist/vue-ui-xy-canvas-CWQzUQzY.js +1810 -0
  173. package/package.json +2 -2
  174. package/dist/ColorPicker-j0ySewhI.js +0 -244
  175. package/dist/Legend-1LMMsPxL.js +0 -90
  176. package/dist/vue-ui-3d-bar-BhNgFaJA.js +0 -1484
  177. package/dist/vue-ui-age-pyramid-CuYRf5v-.js +0 -997
  178. package/dist/vue-ui-bump-C_fKharc.js +0 -1059
  179. package/dist/vue-ui-candlestick-BY-_E7eZ.js +0 -1487
  180. package/dist/vue-ui-chestnut-C-bQYaNI.js +0 -1557
  181. package/dist/vue-ui-chord-uQYQgyGM.js +0 -1220
  182. package/dist/vue-ui-circle-pack-CdbDcuDw.js +0 -907
  183. package/dist/vue-ui-dag-DsHUvjvm.js +0 -2885
  184. package/dist/vue-ui-donut-CzCgCVsx.js +0 -2139
  185. package/dist/vue-ui-donut-evolution-C_ck_TOR.js +0 -1297
  186. package/dist/vue-ui-dumbbell-CVSA90b2.js +0 -1293
  187. package/dist/vue-ui-flow-CsbSaFnu.js +0 -1075
  188. package/dist/vue-ui-galaxy-DWKHDciu.js +0 -914
  189. package/dist/vue-ui-geo-DykhEWVq.js +0 -1331
  190. package/dist/vue-ui-heatmap-BEDirv8T.js +0 -1334
  191. package/dist/vue-ui-history-plot-Bs96PebH.js +0 -1292
  192. package/dist/vue-ui-horizontal-bar-ClQcB9nL.js +0 -1522
  193. package/dist/vue-ui-kpi-DlUEHKuw.js +0 -101
  194. package/dist/vue-ui-mood-radar-A2LBLgUi.js +0 -967
  195. package/dist/vue-ui-nested-donuts-DFX251aT.js +0 -1513
  196. package/dist/vue-ui-onion-CW0YO9Ro.js +0 -1045
  197. package/dist/vue-ui-parallel-coordinate-plot-UFg10bHP.js +0 -1134
  198. package/dist/vue-ui-quadrant-C1pLW2zA.js +0 -1647
  199. package/dist/vue-ui-quick-chart-FaxttnJY.js +0 -2030
  200. package/dist/vue-ui-radar-DE70LPBZ.js +0 -1067
  201. package/dist/vue-ui-relation-circle-iuRXIyRU.js +0 -704
  202. package/dist/vue-ui-ridgeline-CwvDh5pG.js +0 -1385
  203. package/dist/vue-ui-rings-80ZUki42.js +0 -1083
  204. package/dist/vue-ui-scatter-FdAAYJOK.js +0 -1670
  205. package/dist/vue-ui-spark-trend-C68p8-Xp.js +0 -349
  206. package/dist/vue-ui-sparkgauge-DdRtHQDe.js +0 -245
  207. package/dist/vue-ui-sparkhistogram-C9DvzQae.js +0 -396
  208. package/dist/vue-ui-sparkline-B2RDrdiR.js +0 -1273
  209. package/dist/vue-ui-sparkstackbar-BsIOHUE5.js +0 -475
  210. package/dist/vue-ui-stackbar-BZl0kEkb.js +0 -2001
  211. package/dist/vue-ui-stackline-2VKxwFei.js +0 -2099
  212. package/dist/vue-ui-strip-plot-B9nBSRyY.js +0 -1080
  213. package/dist/vue-ui-treemap-BS5EilZf.js +0 -1645
  214. package/dist/vue-ui-waffle-CbX5K9Q2.js +0 -1211
  215. package/dist/vue-ui-wheel-BIJ09H5D.js +0 -723
  216. package/dist/vue-ui-word-cloud-DJmJ-oYT.js +0 -1466
  217. package/dist/vue-ui-xy-canvas-4auyhlTr.js +0 -1717
  218. package/dist/vue-ui-xy-f67V1xjd.js +0 -3713
@@ -0,0 +1,1595 @@
1
+ import { defineAsyncComponent as G, computed as $, ref as h, toRefs as Ol, watch as fe, onMounted as Fl, shallowRef as Ft, onBeforeUnmount as Dl, openBlock as u, createElementBlock as r, unref as v, normalizeStyle as pe, normalizeClass as Z, createElementVNode as g, toDisplayString as E, createBlock as V, createCommentVNode as A, withCtx as y, renderSlot as w, normalizeProps as P, guardReactiveProps as S, createSlots as Dt, createVNode as Xe, Fragment as T, renderList as _, withDirectives as Nt, vShow as Vt, Teleport as Nl, resolveDynamicComponent as Vl, mergeProps as Ml, createTextVNode as Mt, nextTick as He } from "vue";
2
+ import { j as zl, t as zt, m as Bl, p as qe, o as El, q as oe, n as Ul, a8 as Y, s as Rl, a4 as je, k as Ae, l as D, X as Gl, u as Yl, a as Bt, a6 as Et, a7 as Le, B as Ut, T as Rt, a0 as Wl, a1 as Kl, U as Xl, ai as Gt, K as Je } from "./lib-DBptbyyI.js";
3
+ import { b as Hl } from "./labelUtils-CqTHa20R.js";
4
+ import { t as ql, u as jl } from "./useResponsive-DfdjqQps.js";
5
+ import { u as Jl } from "./useConfig-DO94Aj5s.js";
6
+ import { u as Ql, B as Zl } from "./BaseScanner-BhhkKVoj.js";
7
+ import { u as ea } from "./usePrinter-CEpYU3r5.js";
8
+ import { u as ta } from "./useSvgExport-ByUukOZt.js";
9
+ import { u as Qe } from "./useNestedProp-Bf5XFbs8.js";
10
+ import { u as la } from "./useThemeCheck-D1ZYXUwG.js";
11
+ import { u as aa } from "./useUserOptionState-BIvW1Kz7.js";
12
+ import { u as oa } from "./useChartAccessibility-9icAAmYg.js";
13
+ import sa from "./img-LXxMLmCg.js";
14
+ import na from "./Title-BeMKE1cj.js";
15
+ import ua from "./vue_ui_nested_donuts-DvTrWT_C.js";
16
+ import ra from "./Legend-CS7Xo5LK.js";
17
+ import { A as ia } from "./A11yDataTable-KcVAX2cP.js";
18
+ import { B as da } from "./BaseLegendToggle-BQVIawmA.js";
19
+ import { _ as ca } from "./_plugin-vue_export-helper-CHgC5LLL.js";
20
+ const va = ["id"], ha = ["id"], fa = ["id"], pa = { style: { position: "relative" } }, ga = ["xmlns", "aria-describedby", "viewBox"], ya = ["width", "height"], ba = ["id"], ma = ["offset", "stop-color"], wa = ["offset", "stop-opacity"], ka = ["id"], $a = ["id"], Ca = ["id"], Aa = ["flood-color"], La = ["id", "d"], xa = ["d", "fill", "stroke", "stroke-width", "filter"], Ta = ["d", "fill", "stroke", "stroke-width"], _a = { key: 1 }, Pa = ["d", "fill"], Sa = { key: 2 }, Ia = ["font-size", "font-weight", "fill", "dy"], Oa = ["href"], Fa = ["x", "y", "font-size", "font-weight", "fill"], Da = { key: 3 }, Na = ["filter"], Va = ["opacity", "text-anchor", "x", "y", "fill", "font-size", "font-weight"], Ma = ["opacity", "text-anchor", "x", "y", "fill", "font-size", "font-weight"], za = ["d", "fill", "onMouseenter", "onClick", "onMouseleave"], Ba = {
21
+ key: 0,
22
+ style: { position: "absolute", top: "100%", left: "0", width: "100%" },
23
+ "data-dom-to-png-ignore": "",
24
+ "aria-hidden": "true"
25
+ }, Ea = {
26
+ key: 5,
27
+ class: "vue-data-ui-watermark"
28
+ }, Ua = ["id"], Ra = {
29
+ key: 0,
30
+ class: "vue-ui-nested-donuts-legend-title"
31
+ }, Ga = ["onClick"], Ya = ["innerHTML"], Wa = {
32
+ __name: "vue-ui-nested-donuts",
33
+ props: {
34
+ config: {
35
+ type: Object,
36
+ default() {
37
+ return {};
38
+ }
39
+ },
40
+ dataset: {
41
+ type: Array,
42
+ default() {
43
+ return [];
44
+ }
45
+ }
46
+ },
47
+ emits: ["selectLegend", "selectDatapoint", "copyAlt"],
48
+ setup(Yt, { expose: Wt, emit: Kt }) {
49
+ const Xt = G(() => import("./Tooltip-Bf-kM3_A.js")), Ht = G(() => import("./BaseIcon-Cb3zzG6s.js")), qt = G(() => import("./vue-ui-accordion-nvggWcGN.js")), jt = G(() => import("./DataTable-DT2kIdQ6.js")), Jt = G(() => import("./UserOptions-rW2fRf3V.js")), Qt = G(() => import("./PenAndPaper-Ct3qJ4lA.js")), Zt = G(() => import("./PackageVersion-DPO-OOVI.js")), el = G(() => import("./BaseDraggableDialog-CIb-iD9g.js")), { vue_ui_nested_donuts: tl } = Jl(), { isThemeValid: ll, warnInvalidTheme: al } = la(), I = Yt, xe = $({
50
+ get() {
51
+ return !!I.dataset && I.dataset.length;
52
+ },
53
+ set(t) {
54
+ return t;
55
+ }
56
+ }), f = h(zl()), se = h(!1), Te = h(""), ne = h(null), Ze = h(0), M = h(null), et = h(null), _e = h(null), tt = h(null), lt = h(null), at = h(0), ot = h(0), st = h(0), W = h(!0), K = h([]), ue = h([]), nt = h(!1), re = h(null), Pe = h(null), ge = h(!1), ye = h(!1), N = h(null), ut = h({ x: 0, y: 0 }), ie = h("pointer"), Se = h(!1), X = h(!1);
57
+ function rt(t) {
58
+ X.value = t, Ze.value += 1;
59
+ }
60
+ const e = h(Fe()), H = $(() => e.value.userOptions.useCursorPointer), it = {
61
+ name: "",
62
+ series: [
63
+ {
64
+ name: "",
65
+ values: [3],
66
+ color: "#BABABA"
67
+ },
68
+ {
69
+ name: "",
70
+ values: [2],
71
+ color: "#AAAAAA"
72
+ },
73
+ {
74
+ name: "",
75
+ values: [1],
76
+ color: "#CACACA"
77
+ }
78
+ ]
79
+ }, ol = $(() => zt({
80
+ defaultConfig: {
81
+ useCssAnimation: !1,
82
+ table: { show: !1 },
83
+ startAnimation: { show: !1 },
84
+ userOptions: { show: !1 },
85
+ style: {
86
+ chart: {
87
+ backgroundColor: "#99999930",
88
+ layout: {
89
+ labels: {
90
+ dataLabels: { show: !1 }
91
+ }
92
+ },
93
+ legend: { backgroundColor: "transparent", showValue: !1, showPercentage: !1 },
94
+ title: {
95
+ color: "#1A1A1A",
96
+ subtitle: {
97
+ color: "#5A5A5A"
98
+ }
99
+ }
100
+ }
101
+ }
102
+ },
103
+ userConfig: e.value.skeletonConfig ?? {}
104
+ })), { loading: be, FINAL_DATASET: q, manualLoading: Ie } = Ql({
105
+ ...Ol(I),
106
+ FINAL_CONFIG: e,
107
+ prepareConfig: Fe,
108
+ callback: () => {
109
+ Promise.resolve().then(async () => {
110
+ await ht();
111
+ });
112
+ },
113
+ skeletonDataset: I.config?.skeletonDataset ?? [it, it],
114
+ skeletonConfig: zt({
115
+ defaultConfig: e.value,
116
+ userConfig: ol.value
117
+ })
118
+ }), { userOptionsVisible: Oe, setUserOptionsVisibility: dt, keepUserOptionState: ct } = aa({ config: e.value }), { svgRef: z } = oa({
119
+ config: e.value.style.chart.title
120
+ });
121
+ function Fe() {
122
+ const t = Qe({
123
+ userConfig: I.config,
124
+ defaultConfig: tl
125
+ });
126
+ let s = {};
127
+ const l = t.theme;
128
+ if (l)
129
+ if (!ll.value(t))
130
+ al(t), s = t;
131
+ else {
132
+ const o = Qe({
133
+ userConfig: ua[l] || I.config,
134
+ defaultConfig: t
135
+ });
136
+ s = {
137
+ ...Qe({
138
+ userConfig: I.config,
139
+ defaultConfig: o
140
+ }),
141
+ customPalette: t.customPalette.length ? t.customPalette : Bl[l] || qe
142
+ };
143
+ }
144
+ else
145
+ s = t;
146
+ return s;
147
+ }
148
+ fe(
149
+ () => I.config,
150
+ (t) => {
151
+ be.value || (e.value = Fe()), Oe.value = !e.value.userOptions.showOnChartHover, ft(), at.value += 1, ot.value += 1, st.value += 1, L.value.dataLabels.show = e.value.style.chart.layout.labels.dataLabels.show, L.value.showTable = e.value.table.show, L.value.showTooltip = e.value.style.chart.tooltip.show, p.value.width = e.value.style.chart.width, p.value.height = e.value.style.chart.height;
152
+ },
153
+ { deep: !0 }
154
+ );
155
+ const vt = $(() => {
156
+ const { top: t, right: s, bottom: l, left: o } = e.value.style.chart.padding;
157
+ return {
158
+ css: `padding:${t}px ${s}px ${l}px ${o}px`,
159
+ top: t,
160
+ right: s,
161
+ bottom: l,
162
+ left: o
163
+ };
164
+ });
165
+ function sl(t, s = 1e3, l = 50) {
166
+ return new Promise((o) => {
167
+ const a = t.length;
168
+ K.value = Array(a).fill(0), ue.value = [];
169
+ let n = 0;
170
+ t.forEach((d, c) => {
171
+ setTimeout(() => {
172
+ const k = performance.now();
173
+ function i(m) {
174
+ const x = Math.min((m - k) / s, 1), ve = Gt(x), he = d * ve;
175
+ K.value[c] = he, K.value = [...K.value];
176
+ const $e = [];
177
+ let Re = 0;
178
+ I.dataset.forEach((Ce, Ge) => {
179
+ const _l = Je(Ce.series.reduce(
180
+ (We, Ke) => We + Je(Y(Ke.values).reduce((Sl, Il) => Sl + Il, 0)),
181
+ 0
182
+ )), Pl = Je(K.value.slice(Re, Re + Ce.series.length).reduce((We, Ke) => We + Ke, 0)), Ye = _l - Pl;
183
+ Ye > Number.MIN_VALUE && $e.push({
184
+ name: "__ghost__",
185
+ arcOf: Ce.name,
186
+ arcOfId: `${f.value}_${Ge}`,
187
+ id: `ghost_${f.value}_${Ge}`,
188
+ seriesIndex: -1,
189
+ datasetIndex: Ge,
190
+ color: "transparent",
191
+ value: Ye,
192
+ fullValue: Ye,
193
+ absoluteValues: [],
194
+ ghost: !0
195
+ }), Re += Ce.series.length;
196
+ }), ue.value = $e, x < 1 ? requestAnimationFrame(i) : (n += 1, n === a && o());
197
+ }
198
+ requestAnimationFrame(i);
199
+ }, c * l);
200
+ });
201
+ });
202
+ }
203
+ async function ht() {
204
+ if (e.value.startAnimation?.show) {
205
+ const s = q.value.flatMap((l) => l.series).map(
206
+ (l) => Y(l.values).reduce((o, a) => o + a, 0)
207
+ );
208
+ K.value = s.map(() => 0), W.value = !0, ue.value = q.value.map((l, o) => {
209
+ const a = l.series.reduce(
210
+ (n, d) => n + Y(d.values).reduce((c, k) => c + k, 0),
211
+ 0
212
+ );
213
+ return {
214
+ name: "__ghost__",
215
+ arcOf: l.name,
216
+ arcOfId: `${f.value}_${o}`,
217
+ id: `ghost_${f.value}_${o}`,
218
+ seriesIndex: -1,
219
+ datasetIndex: o,
220
+ color: "transparent",
221
+ value: a,
222
+ fullValue: a,
223
+ absoluteValues: [],
224
+ ghost: !0
225
+ };
226
+ }), await He(), sl(
227
+ s,
228
+ e.value.startAnimation.durationMs,
229
+ e.value.startAnimation.staggerMs
230
+ ).then(() => {
231
+ W.value = !1, ue.value = [];
232
+ });
233
+ } else
234
+ W.value = !1;
235
+ }
236
+ Fl(async () => {
237
+ nt.value = !0, ft(), await ht();
238
+ });
239
+ const U = Ft(null), ee = Ft(null), te = $(() => !!e.value.debug);
240
+ function ft() {
241
+ if (El(I.dataset) ? (oe({
242
+ componentName: "VueUiNestedDonuts",
243
+ type: "dataset",
244
+ debug: te.value
245
+ }), xe.value = !1, Ie.value = !0) : Ie.value = e.value.loading, e.value.responsive) {
246
+ const t = ql(() => {
247
+ const { width: s, height: l } = jl({
248
+ chart: M.value,
249
+ title: e.value.style.chart.title.text ? et.value : null,
250
+ legend: e.value.style.chart.legend.show ? _e.value : null,
251
+ source: tt.value,
252
+ noTitle: lt.value,
253
+ padding: vt.value
254
+ });
255
+ requestAnimationFrame(() => {
256
+ p.value.width = s, p.value.height = l;
257
+ });
258
+ });
259
+ U.value && (ee.value && U.value.unobserve(ee.value), U.value.disconnect()), U.value = new ResizeObserver(t), ee.value = M.value.parentNode, U.value.observe(ee.value);
260
+ }
261
+ }
262
+ Dl(() => {
263
+ U.value && (ee.value && U.value.unobserve(ee.value), U.value.disconnect());
264
+ });
265
+ const { isPrinting: De, isImaging: Ne, generatePdf: pt, generateImage: gt } = ea({
266
+ elementId: `nested_donuts_${f.value}`,
267
+ fileName: e.value.style.chart.title.text || "vue-ui-nested-donuts",
268
+ options: e.value.userOptions.print
269
+ }), nl = $(() => e.value.userOptions.show && !e.value.style.chart.title.text), ul = $(() => Ul(e.value.customPalette)), L = h({
270
+ dataLabels: {
271
+ show: e.value.style.chart.layout.labels.dataLabels.show
272
+ },
273
+ showTable: e.value.table.show,
274
+ showTooltip: e.value.style.chart.tooltip.show
275
+ });
276
+ fe(e, () => {
277
+ L.value = {
278
+ dataLabels: {
279
+ show: e.value.style.chart.layout.labels.dataLabels.show
280
+ },
281
+ showTable: e.value.table.show,
282
+ showTooltip: e.value.style.chart.tooltip.show
283
+ };
284
+ }, { immediate: !0 });
285
+ const p = h({
286
+ width: e.value.style.chart.width,
287
+ height: e.value.style.chart.height
288
+ }), Ve = Kt;
289
+ function yt({ datapoint: t, index: s, seriesIndex: l }) {
290
+ e.value.events.datapointClick && e.value.events.datapointClick({ datapoint: t, seriesIndex: l }), Ve("selectDatapoint", { datapoint: t, index: s });
291
+ }
292
+ function bt({
293
+ from: t,
294
+ to: s,
295
+ duration: l,
296
+ onUpdate: o,
297
+ onDone: a,
298
+ easing: n = Gt
299
+ }) {
300
+ const d = performance.now();
301
+ function c(k) {
302
+ const i = Math.min((k - d) / l, 1), m = n(i), x = t + (s - t) * m;
303
+ o(x, i), i < 1 ? requestAnimationFrame(c) : (o(s, 1), a && a());
304
+ }
305
+ requestAnimationFrame(c);
306
+ }
307
+ const b = h([]), O = $(() => {
308
+ be.value, q.value.forEach((s, l) => {
309
+ [null, void 0].includes(s.name) && oe({
310
+ componentName: "VueUiNestedDonuts",
311
+ type: "datasetSerieAttribute",
312
+ property: "name",
313
+ index: l,
314
+ debug: te.value
315
+ }), [null, void 0].includes(s.series) ? oe({
316
+ componentName: "VueUiNestedDonuts",
317
+ type: "datasetSerieAttribute",
318
+ property: "series",
319
+ index: l,
320
+ debug: te.value
321
+ }) : s.series.length === 0 ? oe({
322
+ componentName: "VueUiNestedDonuts",
323
+ type: "datasetAttributeEmpty",
324
+ property: `series at index ${l}`,
325
+ debug: te.value
326
+ }) : s.series.forEach((o, a) => {
327
+ [null, void 0].includes(o.name) && oe({
328
+ componentName: "VueUiNestedDonuts",
329
+ type: "datasetSerieAttribute",
330
+ property: "name",
331
+ index: a,
332
+ key: "serie",
333
+ debug: te.value
334
+ }), [null, void 0].includes(o.values) && oe({
335
+ componentName: "VueUiNestedDonuts",
336
+ type: "datasetSerieAttribute",
337
+ property: "values",
338
+ index: a,
339
+ key: "serie",
340
+ debug: te.value
341
+ });
342
+ });
343
+ });
344
+ let t = 0;
345
+ return q.value.map((s, l) => ({
346
+ ...s,
347
+ total: s.series.filter((o) => !b.value.includes(o.id)).map((o) => Y(o.values).reduce((a, n) => a + n, 0)).reduce((o, a) => o + a, 0),
348
+ datasetIndex: l,
349
+ id: `${f.value}_${l}`,
350
+ series: s.series.map((o, a) => {
351
+ const n = Y(o.values).reduce((d, c) => d + c, 0);
352
+ return {
353
+ name: o.name,
354
+ arcOf: s.name,
355
+ arcOfId: `${f.value}_${l}`,
356
+ id: `${f.value}_${l}_${a}`,
357
+ seriesIndex: a,
358
+ datasetIndex: l,
359
+ color: Rl(o.color) || ul.value[a] || qe[a % qe.length],
360
+ value: W.value ? K.value[t++] ?? 0 : n,
361
+ absoluteValues: o.values || []
362
+ };
363
+ })
364
+ }));
365
+ });
366
+ fe(() => I.dataset, (t) => {
367
+ Array.isArray(t) && t.length > 0 && (Ie.value = !1);
368
+ }, { immediate: !0 });
369
+ const B = $(() => Math.min(p.value.height, p.value.width) * (e.value.style.chart.layout.donut.strokeWidth / 512)), mt = $(() => [...O.value].map((t, s) => {
370
+ const l = t.series.filter((o) => !b.value.includes(o.id)).map((o) => o.value).reduce((o, a) => o + a, 0);
371
+ return {
372
+ ...t,
373
+ total: l,
374
+ series: t.series.filter((o) => !b.value.includes(o.id)).map((o) => ({
375
+ ...o,
376
+ proportion: o.value / l
377
+ }))
378
+ };
379
+ }));
380
+ function rl(t, s, l) {
381
+ let o = 0;
382
+ for (let a = 0; a < t.length; a += 1)
383
+ l.includes(t[a]) && (o += 1);
384
+ return o < s;
385
+ }
386
+ const C = h(mt.value);
387
+ fe(
388
+ () => mt.value,
389
+ (t) => C.value = t
390
+ );
391
+ function il(t) {
392
+ const s = t.map((l) => l.id);
393
+ if (t.some((l) => b.value.includes(l.id))) {
394
+ const l = new Set(s);
395
+ b.value = b.value.filter((o) => !l.has(o));
396
+ } else
397
+ b.value.push(...s);
398
+ }
399
+ function j(t) {
400
+ Ve("selectLegend", t);
401
+ const s = I.dataset.flatMap(
402
+ (i, m) => i.series.map((x, ve) => ({
403
+ value: Y(x.values).reduce((he, $e) => he + $e, 0),
404
+ id: `${f.value}_${m}_${ve}`,
405
+ arcOfId: `${f.value}_${m}`
406
+ }))
407
+ ).find((i) => i.id === t.id);
408
+ if (!s) return;
409
+ const l = O.value.flatMap((i) => i.series).find((i) => i.id === t.id)?.value ?? 0, o = C.value.flatMap((i) => i.series).find((i) => i.id === t.id);
410
+ let n = o ? o.value : 0;
411
+ const d = O.value.find(
412
+ (i) => i.id === s.arcOfId
413
+ );
414
+ if (!d) return;
415
+ const c = d.series.map((i) => i.id), k = rl(
416
+ c,
417
+ c.length - 1,
418
+ b.value
419
+ );
420
+ b.value.includes(t.id) ? (b.value = b.value.filter((i) => i !== t.id), e.value.serieToggleAnimation.show ? bt({
421
+ from: n,
422
+ to: l,
423
+ duration: e.value.serieToggleAnimation.durationMs,
424
+ onUpdate: (i) => {
425
+ C.value = C.value.map((m) => ({
426
+ ...m,
427
+ series: m.series.map((x) => x.id === t.id ? { ...x, value: i } : x)
428
+ }));
429
+ }
430
+ }) : C.value = C.value.map((i) => ({
431
+ ...i,
432
+ series: i.series.map((m) => m.id === t.id ? { ...m, value: l } : m)
433
+ }))) : k && (e.value.serieToggleAnimation.show ? bt({
434
+ from: n,
435
+ to: 0,
436
+ duration: e.value.serieToggleAnimation.durationMs,
437
+ onUpdate: (i) => {
438
+ C.value = C.value.map((m) => ({
439
+ ...m,
440
+ series: m.series.map((x) => x.id === t.id ? { ...x, value: i } : x)
441
+ }));
442
+ },
443
+ onDone: () => {
444
+ b.value.push(t.id);
445
+ }
446
+ }) : (C.value = C.value.map((i) => ({
447
+ ...i,
448
+ series: i.series.map((m) => m.id === t.id ? { ...m, value: 0 } : m)
449
+ })), b.value.push(t.id)));
450
+ }
451
+ function wt(t) {
452
+ if (!O.value.length)
453
+ return e.value.debug && console.warn("VueUiNestedDonuts - There are no series to show."), null;
454
+ const s = O.value.flatMap((l) => l.series).filter((l) => l.name === t);
455
+ return s || (e.value.debug && console.warn(`VueUiNestedDonuts - Series name not found "${t}"`), null);
456
+ }
457
+ function dl(t) {
458
+ const s = wt(t);
459
+ s !== null && (Array.isArray(s) ? s.forEach((l) => {
460
+ b.value.includes(l.id) && j({ id: l.id });
461
+ }) : b.value.includes(s.id) && j({ id: s.id }));
462
+ }
463
+ function cl(t) {
464
+ const s = wt(t);
465
+ s !== null && (Array.isArray(s) ? s.forEach((l) => {
466
+ b.value.includes(l.id) || j({ id: l.id });
467
+ }) : b.value.includes(s.id) || j({ id: s.id }));
468
+ }
469
+ const me = $(() => B.value / O.value.length * e.value.style.chart.layout.donut.spacingRatio), kt = $(() => C.value.map((t, s) => B.value - s * B.value / O.value.length)), J = $(() => C.value.map((t, s) => {
470
+ const l = Math.abs(t.series.map((k) => k.value).reduce((k, i) => k + i, 0)) > 0, o = B.value - s * B.value / C.value.length, a = W.value ? ue.value.find((k) => k.datasetIndex === s) : null, n = [...t.series, ...a ? [a] : []].map((k) => ({
471
+ ...k,
472
+ value: k.value < 1e-11 ? Number.MIN_VALUE : k.value
473
+ })), d = je(
474
+ { series: [
475
+ { name: "_", color: e.value.style.chart.layout.donut.emptyFill, value: 1 }
476
+ ] },
477
+ p.value.width / 2,
478
+ p.value.height / 2,
479
+ o,
480
+ o,
481
+ 1.99999,
482
+ 2,
483
+ 1,
484
+ 360,
485
+ 105.25,
486
+ me.value
487
+ ), c = `M ${p.value.width / 2},${p.value.height / 2 + o}
488
+ a ${o},${o} 0 1,1 0,${-2 * o}
489
+ a ${o},${o} 0 1,1 0,${2 * o}`;
490
+ return {
491
+ ...t,
492
+ hasData: l,
493
+ radius: o,
494
+ skeleton: d,
495
+ fullCirclePath: c,
496
+ donut: je(
497
+ { series: n },
498
+ p.value.width / 2,
499
+ p.value.height / 2,
500
+ o,
501
+ o,
502
+ 1.99999,
503
+ 2,
504
+ 1,
505
+ 360,
506
+ 105.25,
507
+ me.value
508
+ )
509
+ };
510
+ })), $t = $(() => [...O.value].map((t, s) => {
511
+ const l = s * B.value / O.value.length;
512
+ return {
513
+ sizeRatio: l,
514
+ donut: je(
515
+ { series: [{ value: 1 }] },
516
+ p.value.width / 2,
517
+ p.value.height / 2,
518
+ B.value - l,
519
+ B.value - l,
520
+ 1.99999,
521
+ 2,
522
+ 1,
523
+ 360,
524
+ 105.25,
525
+ B.value / O.value.length * e.value.style.chart.layout.donut.spacingRatio
526
+ )[0]
527
+ };
528
+ })), we = h(null), le = h(null), Q = h(null), Me = h(null);
529
+ function vl({ datapoint: t, seriesIndex: s }) {
530
+ e.value.events.datapointLeave && e.value.events.datapointLeave({ datapoint: t, seriesIndex: s }), se.value = !1, we.value = null, ne.value = null, le.value = null, Q.value = null, N.value = null, ie.value = "pointer";
531
+ }
532
+ function Ct({
533
+ val: t,
534
+ percentage: s,
535
+ showVal: l,
536
+ showPercentage: o,
537
+ config: a
538
+ }) {
539
+ return Hl({
540
+ config: a,
541
+ val: t,
542
+ percentage: s,
543
+ showVal: l,
544
+ showPercentage: o
545
+ });
546
+ }
547
+ function At({ datapoint: t, _relativeIndex: s, seriesIndex: l, triggerMode: o = "pointer" }) {
548
+ e.value.events.datapointEnter && e.value.events.datapointEnter({ datapoint: t, seriesIndex: l }), ie.value = o, N.value = l, we.value = t.arcOfId, le.value = t.id, Q.value = l, ne.value = t.id, Me.value = {
549
+ datapoint: t,
550
+ seriesIndex: l,
551
+ series: C.value,
552
+ config: e.value
553
+ };
554
+ const a = e.value.style.chart.tooltip.customFormat;
555
+ if (Rt(a) && Xl(
556
+ () => a({
557
+ seriesIndex: l,
558
+ datapoint: t,
559
+ series: C.value,
560
+ config: e.value
561
+ })
562
+ ))
563
+ Te.value = a({
564
+ seriesIndex: l,
565
+ datapoint: t,
566
+ series: C.value,
567
+ config: e.value
568
+ });
569
+ else {
570
+ let n = "";
571
+ if (e.value.style.chart.tooltip.showAllItemsAtIndex && b.value.length === 0) {
572
+ const d = C.value.map((c) => c.series.find((k) => k.seriesIndex === l));
573
+ d.forEach((c, k) => {
574
+ if (!c) return "";
575
+ n += `
576
+ <div style="display:flex; flex-direction: column; justify-content:flex-start; align-items:flex-start;padding:6px 0; ${k < d.length - 1 ? `border-bottom:1px solid ${e.value.style.chart.tooltip.borderColor}` : ""}">
577
+ <div style="display:flex; flex-direction: row; gap: 3px; justify-content:flex-start; align-items:center;">
578
+ <svg viewBox="0 0 20 20" height="${e.value.style.chart.tooltip.fontSize}" width="${e.value.style.chart.tooltip.fontSize}">
579
+ <circle cx="10" cy="10" r="10" fill="${c.color}"/>
580
+ </svg>
581
+ <span>
582
+ ${c.arcOf ?? ""} - ${c.name}
583
+ </span>
584
+ </div>
585
+ <span>
586
+ <b>
587
+ ${Ct({
588
+ config: e.value.style.chart.tooltip,
589
+ showVal: e.value.style.chart.tooltip.showValue,
590
+ showPercentage: e.value.style.chart.tooltip.showPercentage,
591
+ val: Ae(
592
+ e.value.style.chart.layout.labels.dataLabels.formatter,
593
+ t.value,
594
+ D({
595
+ p: e.value.style.chart.layout.labels.dataLabels.prefix,
596
+ v: t.value,
597
+ s: e.value.style.chart.layout.labels.dataLabels.suffix,
598
+ r: e.value.style.chart.tooltip.roundingValue
599
+ }),
600
+ { datapoint: t, seriesIndex: l }
601
+ ),
602
+ percentage: D({
603
+ v: c.proportion * 100,
604
+ s: "%",
605
+ r: e.value.style.chart.tooltip.roundingPercentage
606
+ })
607
+ })}
608
+ </b>
609
+ </span>
610
+ </div>
611
+ `;
612
+ });
613
+ } else
614
+ n += `<div style="width:100%;text-align:center;border-bottom:1px solid ${e.value.style.chart.tooltip.borderColor};padding-bottom:6px;margin-bottom:3px;">${t.arcOf ?? ""} - ${t.name}</div>`, n += `<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="${t.color}"/></svg>`, e.value.style.chart.tooltip.showValue && (n += `<b>${Ae(
615
+ e.value.style.chart.layout.labels.dataLabels.formatter,
616
+ t.value,
617
+ D({
618
+ p: e.value.style.chart.layout.labels.dataLabels.prefix,
619
+ v: t.value,
620
+ s: e.value.style.chart.layout.labels.dataLabels.suffix,
621
+ r: e.value.style.chart.tooltip.roundingValue
622
+ }),
623
+ { datapoint: t, seriesIndex: l }
624
+ )}</b>`), e.value.style.chart.tooltip.showPercentage && (e.value.style.chart.tooltip.showValue ? n += `<span>(${D({
625
+ v: t.proportion * 100,
626
+ s: "%",
627
+ r: e.value.style.chart.tooltip.roundingPercentage
628
+ })})</span></div>` : n += `<b>${D({
629
+ v: t.proportion * 100,
630
+ s: "%",
631
+ r: e.value.style.chart.tooltip.roundingPercentage
632
+ })}</b></div>`);
633
+ Te.value = `<div style="font-size:${e.value.style.chart.tooltip.fontSize}px">${n}</div>`;
634
+ }
635
+ se.value = !0;
636
+ }
637
+ function Lt(t) {
638
+ return t.proportion * 100 > e.value.style.chart.layout.labels.dataLabels.hideUnderValue;
639
+ }
640
+ function xt(t, s) {
641
+ if (!e.value.useBlurOnHover)
642
+ return "";
643
+ if (e.value.style.chart.tooltip.showAllItemsAtIndex && b.value.length === 0)
644
+ return [null, void 0].includes(Q.value) || Q.value === s ? "" : `url(#blur_${f.value})`;
645
+ if (!e.value.style.chart.tooltip.showAllItemsAtIndex || b.value.length)
646
+ return [null, void 0].includes(le.value) || le.value === t.id ? "" : `url(#blur_${f.value})`;
647
+ }
648
+ const ke = $(() => O.value.map((t, s) => {
649
+ const l = t.series.filter(
650
+ (a) => !b.value.includes(a.id)
651
+ ), o = W.value ? l.map((a) => {
652
+ const n = q.value[s].series.findIndex(
653
+ (d) => d.name === a.name
654
+ );
655
+ return Y(
656
+ q.value[s].series[n].values
657
+ ).reduce((d, c) => d + c, 0);
658
+ }).reduce((a, n) => a + n, 0) : l.map((a) => a.value).reduce((a, n) => a + n, 0);
659
+ return t.series.map((a, n) => {
660
+ const d = Y(q.value[s].series[n].values).reduce(
661
+ (ve, he) => ve + he,
662
+ 0
663
+ ), c = W.value ? d : a.value, k = Ae(
664
+ e.value.style.chart.layout.labels.dataLabels.formatter,
665
+ c,
666
+ D({
667
+ p: e.value.style.chart.layout.labels.dataLabels.prefix,
668
+ v: c,
669
+ s: e.value.style.chart.layout.labels.dataLabels.suffix,
670
+ r: e.value.style.chart.legend.roundingValue
671
+ }),
672
+ { datapoint: a, seriesIndex: n }
673
+ ), i = isNaN(c / o) || b.value.includes(a.id) ? "-" : D({
674
+ v: c / o * 100,
675
+ s: "%",
676
+ r: e.value.style.chart.legend.roundingPercentage
677
+ }), m = Ct({
678
+ val: k,
679
+ percentage: i,
680
+ showVal: e.value.style.chart.legend.showValue,
681
+ showPercentage: e.value.style.chart.legend.showPercentage,
682
+ config: e.value.style.chart.legend
683
+ }), x = `${a.name}${e.value.style.chart.legend.showPercentage || e.value.style.chart.legend.showValue ? ": " : ""}${m}`;
684
+ return {
685
+ name: a.name,
686
+ color: a.color,
687
+ value: c,
688
+ display: x,
689
+ svgDisplay: `${a.arcOf ? `${a.arcOf} - ` : ""}${x}`,
690
+ shape: "circle",
691
+ arcOf: a.arcOf,
692
+ id: a.id,
693
+ seriesIndex: n,
694
+ datasetIndex: s,
695
+ total: o,
696
+ opacity: b.value.includes(a.id) ? 0.5 : 1,
697
+ segregate: () => j(a),
698
+ isSegregated: b.value.includes(a.id)
699
+ };
700
+ });
701
+ })), hl = $(() => ({
702
+ cy: "nested-donuts-legend",
703
+ backgroundColor: e.value.style.chart.legend.backgroundColor,
704
+ color: e.value.style.chart.legend.color,
705
+ fontSize: e.value.style.chart.legend.fontSize,
706
+ paddingBottom: 12,
707
+ fontWeight: e.value.style.chart.legend.bold ? "bold" : ""
708
+ })), R = $(() => {
709
+ const t = C.value.flatMap((l) => l.series.map((o) => ({
710
+ name: `${l.name} - ${o.name}`,
711
+ color: o.color,
712
+ total: l.total
713
+ }))), s = C.value.flatMap((l) => l.series.map((o) => o.value));
714
+ return { head: t, body: s };
715
+ });
716
+ function ze(t = null) {
717
+ He(() => {
718
+ const s = R.value.head.map((a, n) => [
719
+ [a.name],
720
+ [R.value.body[n]],
721
+ [
722
+ isNaN(R.value.body[n] / a.total) ? "-" : R.value.body[n] / a.total * 100
723
+ ]
724
+ ]), l = [
725
+ [e.value.style.chart.title.text],
726
+ [e.value.style.chart.title.subtitle.text],
727
+ [[""], ["val"], ["%"]]
728
+ ].concat(s), o = Wl(l);
729
+ t ? t(o) : Kl({
730
+ csvContent: o,
731
+ title: e.value.style.chart.title.text || "vue-ui-nested-donuts"
732
+ });
733
+ });
734
+ }
735
+ const ae = $(() => {
736
+ const t = [
737
+ e.value.table.columnNames.series,
738
+ e.value.table.columnNames.value,
739
+ e.value.table.columnNames.percentage
740
+ ], s = R.value.head.map((n, d) => {
741
+ const c = D({
742
+ p: e.value.style.chart.layout.labels.dataLabels.prefix,
743
+ v: R.value.body[d],
744
+ s: e.value.style.chart.layout.labels.dataLabels.suffix,
745
+ r: e.value.table.td.roundingValue
746
+ });
747
+ return [
748
+ {
749
+ color: n.color,
750
+ name: n.name
751
+ },
752
+ c,
753
+ isNaN(R.value.body[d] / n.total) ? "-" : D({
754
+ v: R.value.body[d] / n.total * 100,
755
+ s: "%",
756
+ r: e.value.table.td.roundingPercentage
757
+ })
758
+ ];
759
+ }), l = s.map((n) => n.map((d, c) => c === 0 ? d.name : d)), o = {
760
+ th: {
761
+ backgroundColor: e.value.table.th.backgroundColor,
762
+ color: e.value.table.th.color,
763
+ outline: e.value.table.th.outline
764
+ },
765
+ td: {
766
+ backgroundColor: e.value.table.td.backgroundColor,
767
+ color: e.value.table.td.color,
768
+ outline: e.value.table.td.outline
769
+ },
770
+ breakpoint: e.value.table.responsiveBreakpoint
771
+ };
772
+ return {
773
+ colNames: [
774
+ e.value.table.columnNames.series,
775
+ e.value.table.columnNames.value,
776
+ e.value.table.columnNames.percentage
777
+ ],
778
+ head: t,
779
+ body: s,
780
+ a11yBody: l,
781
+ config: o
782
+ };
783
+ });
784
+ function fl() {
785
+ return O.value;
786
+ }
787
+ function Tt() {
788
+ L.value.showTable = !L.value.showTable;
789
+ }
790
+ function _t() {
791
+ L.value.dataLabels.show = !L.value.dataLabels.show;
792
+ }
793
+ function Pt() {
794
+ L.value.showTooltip = !L.value.showTooltip;
795
+ }
796
+ const de = h(!1);
797
+ function Be() {
798
+ de.value = !de.value;
799
+ }
800
+ async function pl({ scale: t = 2 } = {}) {
801
+ if (!M.value) return;
802
+ const { width: s, height: l } = M.value.getBoundingClientRect(), o = s / l, { imageUri: a, base64: n } = await sa({ domElement: M.value, base64: !0, img: !0, scale: t });
803
+ return {
804
+ imageUri: a,
805
+ base64: n,
806
+ title: e.value.style.chart.title.text,
807
+ width: s,
808
+ height: l,
809
+ aspectRatio: o
810
+ };
811
+ }
812
+ const Ee = h(null);
813
+ function gl() {
814
+ if (!Ee.value) return;
815
+ const { x: t, y: s, width: l, height: o } = Ee.value.getBBox();
816
+ z.value && z.value.setAttribute("viewBox", `${t} ${s} ${l + Math.min(0, t)} ${o + Math.min(0, s)}`);
817
+ }
818
+ const ce = $(() => {
819
+ const t = e.value.table.useDialog && !e.value.table.show, s = L.value.showTable;
820
+ return {
821
+ component: t ? el : qt,
822
+ title: `${e.value.style.chart.title.text}${e.value.style.chart.title.subtitle.text ? `: ${e.value.style.chart.title.subtitle.text}` : ""}`,
823
+ props: t ? {
824
+ backgroundColor: e.value.table.th.backgroundColor,
825
+ color: e.value.table.th.color,
826
+ headerColor: e.value.table.th.color,
827
+ headerBg: e.value.table.th.backgroundColor,
828
+ isFullscreen: X.value,
829
+ fullscreenParent: M.value,
830
+ forcedWidth: Math.min(800, window.innerWidth * 0.8),
831
+ isCursorPointer: H.value
832
+ } : {
833
+ hideDetails: !0,
834
+ config: {
835
+ open: s,
836
+ maxHeight: 1e4,
837
+ body: {
838
+ backgroundColor: e.value.style.chart.backgroundColor,
839
+ color: e.value.style.chart.color
840
+ },
841
+ head: {
842
+ backgroundColor: e.value.style.chart.backgroundColor,
843
+ color: e.value.style.chart.color
844
+ }
845
+ }
846
+ }
847
+ };
848
+ });
849
+ fe(() => L.value.showTable, (t) => {
850
+ e.value.table.show || (t && e.value.table.useDialog && re.value ? re.value.open() : "close" in re.value && re.value.close());
851
+ });
852
+ function St() {
853
+ L.value.showTable = !1, Pe.value && Pe.value.setTableIconState(!1);
854
+ }
855
+ const yl = $(() => e.value.style.chart.backgroundColor), bl = $(() => e.value.style.chart.legend), ml = $(() => e.value.style.chart.title), wl = $(() => ke.value.flat().map((t) => ({
856
+ ...t,
857
+ name: t.svgDisplay
858
+ }))), { exportSvg: kl, getSvg: $l } = ta({
859
+ svg: z,
860
+ title: ml,
861
+ legend: bl,
862
+ legendItems: wl,
863
+ backgroundColor: yl
864
+ });
865
+ async function It({ isCb: t }) {
866
+ ye.value = !0, await He();
867
+ try {
868
+ if (t) {
869
+ const { blob: s, url: l, text: o, dataUrl: a } = await $l();
870
+ await Promise.resolve(e.value.userOptions.callbacks.svg({ blob: s, url: l, text: o, dataUrl: a }));
871
+ } else
872
+ await Promise.resolve(kl());
873
+ } finally {
874
+ ye.value = !1;
875
+ }
876
+ }
877
+ function Cl(t) {
878
+ if (t?.stage === "start") {
879
+ ge.value = !0;
880
+ return;
881
+ }
882
+ if (t?.stage === "end") {
883
+ ge.value = !1;
884
+ return;
885
+ }
886
+ gt();
887
+ }
888
+ async function Ot() {
889
+ if (Ve("copyAlt", {
890
+ config: e.value,
891
+ dataset: C.value
892
+ }), !e.value.userOptions.callbacks.altCopy) {
893
+ console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.");
894
+ return;
895
+ }
896
+ await Promise.resolve(e.value.userOptions.callbacks.altCopy({
897
+ config: e.value,
898
+ dataset: C.value
899
+ }));
900
+ }
901
+ const F = $(() => J.value.flatMap((t) => t.donut.filter((s) => !s.ghost)));
902
+ function Al() {
903
+ N.value = null, Se.value = !0;
904
+ }
905
+ function Ll() {
906
+ N.value = null, ie.value = "pointer", se.value = !1, we.value = null, ne.value = null, le.value = null, Q.value = null, Se.value = !1;
907
+ }
908
+ function xl(t) {
909
+ if (!z.value || de.value || document.activeElement !== z.value || !F.value.length) return;
910
+ const s = ["ArrowLeft", "ArrowUp"].includes(t.key), l = ["ArrowRight", "ArrowDown"].includes(t.key), o = t.key === "Enter" || t.key === " ", a = t.key === "Escape";
911
+ if (!s && !l && !o && !a) return;
912
+ if (t.preventDefault(), t.stopPropagation(), a) {
913
+ N.value = null, ie.value = "pointer", se.value = !1, we.value = null, ne.value = null, le.value = null, Q.value = null;
914
+ return;
915
+ }
916
+ if (o) {
917
+ if (N.value === null) return;
918
+ const m = F.value[N.value];
919
+ if (!m) return;
920
+ yt({
921
+ datapoint: m,
922
+ index: N.value,
923
+ seriesIndex: m.seriesIndex
924
+ });
925
+ return;
926
+ }
927
+ let n = N.value;
928
+ const d = Q.value, c = n !== null && n >= 0 && n < F.value.length, k = d !== null && d >= 0 && d < F.value.length;
929
+ c ? l ? (n += 1, n >= F.value.length && (n = 0)) : s && (n -= 1, n < 0 && (n = F.value.length - 1)) : k ? (n = l ? d + 1 : d - 1, n >= F.value.length && (n = 0), n < 0 && (n = F.value.length - 1)) : l ? n = 0 : n = F.value.length - 1;
930
+ const i = F.value[n];
931
+ i && (N.value = n, Tl(), At({
932
+ datapoint: i,
933
+ seriesIndex: i.seriesIndex,
934
+ triggerMode: "keyboard"
935
+ }));
936
+ }
937
+ function Tl() {
938
+ if (!z.value) return;
939
+ const t = z.value.getBoundingClientRect();
940
+ ut.value = {
941
+ x: t.left + t.width / 2,
942
+ y: t.top + t.height / 2
943
+ };
944
+ }
945
+ const Ue = $(() => {
946
+ const t = ae.value?.colNames ?? [], s = ae.value?.a11yBody ?? [];
947
+ return { headers: t, rows: s };
948
+ });
949
+ return Wt({
950
+ autoSize: gl,
951
+ getData: fl,
952
+ getImage: pl,
953
+ generatePdf: pt,
954
+ generateCsv: ze,
955
+ generateImage: gt,
956
+ generateSvg: It,
957
+ hideSeries: cl,
958
+ showSeries: dl,
959
+ toggleTable: Tt,
960
+ toggleLabels: _t,
961
+ toggleTooltip: Pt,
962
+ toggleAnnotator: Be,
963
+ toggleFullscreen: rt,
964
+ copyAlt: Ot
965
+ }), (t, s) => (u(), r("div", {
966
+ ref_key: "nestedDonutsChart",
967
+ ref: M,
968
+ class: Z(`vue-data-ui-component vue-ui-nested-donuts ${X.value ? "vue-data-ui-wrapper-fullscreen" : ""} ${e.value.useCssAnimation ? "" : "vue-ui-dna"}`),
969
+ style: pe(`font-family:${e.value.style.fontFamily};width:100%; text-align:center;background:${e.value.style.chart.backgroundColor}`),
970
+ id: `nested_donuts_${f.value}`,
971
+ onMouseenter: s[2] || (s[2] = () => v(dt)(!0)),
972
+ onMouseleave: s[3] || (s[3] = () => v(dt)(!1))
973
+ }, [
974
+ g("div", {
975
+ id: `chart-instructions-${f.value}`,
976
+ class: "sr-only"
977
+ }, [
978
+ g("p", null, E(e.value.a11y.translations.keyboardNavigation), 1)
979
+ ], 8, ha),
980
+ Ue.value?.rows?.length ? (u(), V(ia, {
981
+ key: 0,
982
+ uid: f.value,
983
+ head: Ue.value.headers,
984
+ body: Ue.value.rows,
985
+ notice: e.value.a11y.translations.tableAvailable,
986
+ caption: e.value.a11y.translations.tableCaption
987
+ }, null, 8, ["uid", "head", "body", "notice", "caption"])) : A("", !0),
988
+ e.value.userOptions.buttons.annotator ? (u(), V(v(Qt), {
989
+ key: 1,
990
+ svgRef: v(z),
991
+ backgroundColor: e.value.style.chart.backgroundColor,
992
+ color: e.value.style.chart.color,
993
+ active: de.value,
994
+ isCursorPointer: H.value,
995
+ onClose: Be
996
+ }, {
997
+ "annotator-action-close": y(() => [
998
+ w(t.$slots, "annotator-action-close", {}, void 0, !0)
999
+ ]),
1000
+ "annotator-action-color": y(({ color: l }) => [
1001
+ w(t.$slots, "annotator-action-color", P(S({ color: l })), void 0, !0)
1002
+ ]),
1003
+ "annotator-action-draw": y(({ mode: l }) => [
1004
+ w(t.$slots, "annotator-action-draw", P(S({ mode: l })), void 0, !0)
1005
+ ]),
1006
+ "annotator-action-undo": y(({ disabled: l }) => [
1007
+ w(t.$slots, "annotator-action-undo", P(S({ disabled: l })), void 0, !0)
1008
+ ]),
1009
+ "annotator-action-redo": y(({ disabled: l }) => [
1010
+ w(t.$slots, "annotator-action-redo", P(S({ disabled: l })), void 0, !0)
1011
+ ]),
1012
+ "annotator-action-delete": y(({ disabled: l }) => [
1013
+ w(t.$slots, "annotator-action-delete", P(S({ disabled: l })), void 0, !0)
1014
+ ]),
1015
+ _: 3
1016
+ }, 8, ["svgRef", "backgroundColor", "color", "active", "isCursorPointer"])) : A("", !0),
1017
+ nl.value ? (u(), r("div", {
1018
+ key: 2,
1019
+ ref_key: "noTitle",
1020
+ ref: lt,
1021
+ class: "vue-data-ui-no-title-space",
1022
+ style: "height:36px; width: 100%;background:transparent"
1023
+ }, null, 512)) : A("", !0),
1024
+ e.value.style.chart.title.text ? (u(), r("div", {
1025
+ key: 3,
1026
+ ref_key: "chartTitle",
1027
+ ref: et
1028
+ }, [
1029
+ (u(), V(na, {
1030
+ key: `title_${at.value}`,
1031
+ config: {
1032
+ title: {
1033
+ cy: "donut-div-title",
1034
+ ...e.value.style.chart.title
1035
+ },
1036
+ subtitle: {
1037
+ cy: "donut-div-subtitle",
1038
+ ...e.value.style.chart.title.subtitle
1039
+ }
1040
+ }
1041
+ }, null, 8, ["config"]))
1042
+ ], 512)) : A("", !0),
1043
+ g("div", {
1044
+ id: `legend-top-${f.value}`
1045
+ }, null, 8, fa),
1046
+ e.value.userOptions.show && xe.value && (v(ct) || v(Oe)) ? (u(), V(v(Jt), {
1047
+ ref_key: "userOptionsRef",
1048
+ ref: Pe,
1049
+ key: `user_option_${Ze.value}`,
1050
+ backgroundColor: e.value.style.chart.backgroundColor,
1051
+ color: e.value.style.chart.color,
1052
+ isPrinting: v(De),
1053
+ isImaging: v(Ne),
1054
+ uid: f.value,
1055
+ hasTooltip: e.value.userOptions.buttons.tooltip && e.value.style.chart.tooltip.show,
1056
+ hasPdf: e.value.userOptions.buttons.pdf,
1057
+ hasXls: e.value.userOptions.buttons.csv,
1058
+ hasImg: e.value.userOptions.buttons.img,
1059
+ hasSvg: e.value.userOptions.buttons.svg,
1060
+ hasTable: e.value.userOptions.buttons.table,
1061
+ hasLabel: e.value.userOptions.buttons.labels,
1062
+ hasFullscreen: e.value.userOptions.buttons.fullscreen,
1063
+ hasAltCopy: e.value.userOptions.buttons.altCopy,
1064
+ isFullscreen: X.value,
1065
+ isTooltip: L.value.showTooltip,
1066
+ titles: { ...e.value.userOptions.buttonTitles },
1067
+ chartElement: M.value,
1068
+ position: e.value.userOptions.position,
1069
+ hasAnnotator: e.value.userOptions.buttons.annotator,
1070
+ isAnnotation: de.value,
1071
+ callbacks: e.value.userOptions.callbacks,
1072
+ printScale: e.value.userOptions.print.scale,
1073
+ tableDialog: e.value.table.useDialog,
1074
+ isCursorPointer: H.value,
1075
+ onToggleFullscreen: rt,
1076
+ onGeneratePdf: v(pt),
1077
+ onGenerateCsv: ze,
1078
+ onGenerateImage: Cl,
1079
+ onGenerateSvg: It,
1080
+ onToggleTable: Tt,
1081
+ onToggleLabels: _t,
1082
+ onToggleTooltip: Pt,
1083
+ onToggleAnnotator: Be,
1084
+ onCopyAlt: Ot,
1085
+ style: pe({
1086
+ visibility: v(ct) ? v(Oe) ? "visible" : "hidden" : "visible"
1087
+ })
1088
+ }, Dt({ _: 2 }, [
1089
+ t.$slots.menuIcon ? {
1090
+ name: "menuIcon",
1091
+ fn: y(({ isOpen: l, color: o }) => [
1092
+ w(t.$slots, "menuIcon", P(S({ isOpen: l, color: o })), void 0, !0)
1093
+ ]),
1094
+ key: "0"
1095
+ } : void 0,
1096
+ t.$slots.optionTooltip ? {
1097
+ name: "optionTooltip",
1098
+ fn: y(() => [
1099
+ w(t.$slots, "optionTooltip", {}, void 0, !0)
1100
+ ]),
1101
+ key: "1"
1102
+ } : void 0,
1103
+ t.$slots.optionPdf ? {
1104
+ name: "optionPdf",
1105
+ fn: y(() => [
1106
+ w(t.$slots, "optionPdf", {}, void 0, !0)
1107
+ ]),
1108
+ key: "2"
1109
+ } : void 0,
1110
+ t.$slots.optionCsv ? {
1111
+ name: "optionCsv",
1112
+ fn: y(() => [
1113
+ w(t.$slots, "optionCsv", {}, void 0, !0)
1114
+ ]),
1115
+ key: "3"
1116
+ } : void 0,
1117
+ t.$slots.optionImg ? {
1118
+ name: "optionImg",
1119
+ fn: y(() => [
1120
+ w(t.$slots, "optionImg", {}, void 0, !0)
1121
+ ]),
1122
+ key: "4"
1123
+ } : void 0,
1124
+ t.$slots.optionSvg ? {
1125
+ name: "optionSvg",
1126
+ fn: y(() => [
1127
+ w(t.$slots, "optionSvg", {}, void 0, !0)
1128
+ ]),
1129
+ key: "5"
1130
+ } : void 0,
1131
+ t.$slots.optionTable ? {
1132
+ name: "optionTable",
1133
+ fn: y(() => [
1134
+ w(t.$slots, "optionTable", {}, void 0, !0)
1135
+ ]),
1136
+ key: "6"
1137
+ } : void 0,
1138
+ t.$slots.optionLabels ? {
1139
+ name: "optionLabels",
1140
+ fn: y(() => [
1141
+ w(t.$slots, "optionLabels", {}, void 0, !0)
1142
+ ]),
1143
+ key: "7"
1144
+ } : void 0,
1145
+ t.$slots.optionFullscreen ? {
1146
+ name: "optionFullscreen",
1147
+ fn: y(({ toggleFullscreen: l, isFullscreen: o }) => [
1148
+ w(t.$slots, "optionFullscreen", P(S({ toggleFullscreen: l, isFullscreen: o })), void 0, !0)
1149
+ ]),
1150
+ key: "8"
1151
+ } : void 0,
1152
+ t.$slots.optionAnnotator ? {
1153
+ name: "optionAnnotator",
1154
+ fn: y(({ toggleAnnotator: l, isAnnotator: o }) => [
1155
+ w(t.$slots, "optionAnnotator", P(S({ toggleAnnotator: l, isAnnotator: o })), void 0, !0)
1156
+ ]),
1157
+ key: "9"
1158
+ } : void 0,
1159
+ t.$slots.optionAltCopy ? {
1160
+ name: "optionAltCopy",
1161
+ fn: y(({ altCopy: l }) => [
1162
+ w(t.$slots, "optionAltCopy", P(S({ altCopy: l })), void 0, !0)
1163
+ ]),
1164
+ key: "10"
1165
+ } : void 0
1166
+ ]), 1032, ["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", "style"])) : A("", !0),
1167
+ g("div", pa, [
1168
+ (u(), r("svg", {
1169
+ ref_key: "svgRef",
1170
+ ref: z,
1171
+ xmlns: v(Gl),
1172
+ "aria-describedby": `chart-instructions-${f.value}`,
1173
+ class: Z({
1174
+ "vue-data-ui-fullscreen--on": X.value,
1175
+ "vue-data-ui-fulscreen--off": !X.value,
1176
+ "vue-data-ui-svg": !0
1177
+ }),
1178
+ viewBox: `0 0 ${p.value.width <= 0 ? 1e-3 : p.value.width} ${p.value.height < 0 ? 1e-3 : p.value.height}`,
1179
+ style: pe(`max-width:100%; overflow: visible; background:transparent;color:${e.value.style.chart.color};${vt.value.css}`),
1180
+ tabindex: "0",
1181
+ onFocus: Al,
1182
+ onBlur: Ll,
1183
+ onKeydown: xl
1184
+ }, [
1185
+ g("g", {
1186
+ ref_key: "G",
1187
+ ref: Ee,
1188
+ class: "vue-data-ui-g"
1189
+ }, [
1190
+ Xe(v(Zt)),
1191
+ t.$slots["chart-background"] ? (u(), r("foreignObject", {
1192
+ key: 0,
1193
+ x: 0,
1194
+ y: 0,
1195
+ width: p.value.width <= 0 ? 1e-3 : p.value.width,
1196
+ height: p.value.height < 0 ? 1e-3 : p.value.height,
1197
+ style: {
1198
+ pointerEvents: "none"
1199
+ }
1200
+ }, [
1201
+ w(t.$slots, "chart-background", {}, void 0, !0)
1202
+ ], 8, ya)) : A("", !0),
1203
+ g("defs", null, [
1204
+ (u(!0), r(T, null, _($t.value, (l, o) => (u(), r("radialGradient", {
1205
+ id: `radial_${f.value}_${o}`
1206
+ }, [
1207
+ s[4] || (s[4] = g("stop", {
1208
+ offset: "0%",
1209
+ "stop-color": "#FFFFFF",
1210
+ "stop-opacity": "0"
1211
+ }, null, -1)),
1212
+ g("stop", {
1213
+ offset: `${(1 - me.value / kt.value[o]) * 100}%`,
1214
+ "stop-color": v(Yl)("#FFFFFF", 0),
1215
+ "stop-opacity": "0"
1216
+ }, null, 8, ma),
1217
+ g("stop", {
1218
+ offset: `${(1 - me.value / kt.value[o] / 2) * 100}%`,
1219
+ "stop-color": "#FFFFFF",
1220
+ "stop-opacity": e.value.style.chart.gradientIntensity / 100
1221
+ }, null, 8, wa),
1222
+ s[5] || (s[5] = g("stop", {
1223
+ offset: "100%",
1224
+ "stop-color": "#FFFFFF",
1225
+ "stop-opacity": "0"
1226
+ }, null, -1))
1227
+ ], 8, ba))), 256))
1228
+ ]),
1229
+ g("defs", null, [
1230
+ g("filter", {
1231
+ id: `blur_${f.value}`,
1232
+ x: "-50%",
1233
+ y: "-50%",
1234
+ width: "200%",
1235
+ height: "200%"
1236
+ }, [
1237
+ g("feGaussianBlur", {
1238
+ in: "SourceGraphic",
1239
+ stdDeviation: 2,
1240
+ id: `blur_std_${f.value}`
1241
+ }, null, 8, $a),
1242
+ s[6] || (s[6] = g("feColorMatrix", {
1243
+ type: "saturate",
1244
+ values: "0"
1245
+ }, null, -1))
1246
+ ], 8, ka),
1247
+ g("filter", {
1248
+ id: `shadow_${f.value}`,
1249
+ "color-interpolation-filters": "sRGB"
1250
+ }, [
1251
+ g("feDropShadow", {
1252
+ dx: "0",
1253
+ dy: "0",
1254
+ stdDeviation: "10",
1255
+ "flood-opacity": "0.5",
1256
+ "flood-color": e.value.style.chart.layout.donut.shadowColor
1257
+ }, null, 8, Aa)
1258
+ ], 8, Ca)
1259
+ ]),
1260
+ g("defs", null, [
1261
+ (u(!0), r(T, null, _(J.value, (l, o) => (u(), r("path", {
1262
+ key: `path-full-${o}`,
1263
+ id: `path-full-${o}-${f.value}`,
1264
+ d: l.fullCirclePath,
1265
+ fill: "none"
1266
+ }, null, 8, La))), 128))
1267
+ ]),
1268
+ (u(!0), r(T, null, _(J.value, (l, o) => (u(), r("g", null, [
1269
+ l.hasData ? (u(!0), r(T, { key: 0 }, _(l.donut.filter((a) => !a.ghost), (a, n) => (u(), r("g", null, [
1270
+ g("path", {
1271
+ class: "vue-ui-donut-arc-path",
1272
+ d: a.arcSlice,
1273
+ fill: a.color,
1274
+ stroke: e.value.style.chart.layout.donut.borderColorAuto ? e.value.style.chart.backgroundColor : e.value.style.chart.layout.donut.borderColor,
1275
+ "stroke-width": e.value.style.chart.layout.donut.borderWidth,
1276
+ filter: xt(a, n)
1277
+ }, null, 8, xa)
1278
+ ]))), 256)) : (u(!0), r(T, { key: 1 }, _(l.skeleton, (a, n) => (u(), r("g", null, [
1279
+ g("path", {
1280
+ class: "vue-ui-donut-arc-path",
1281
+ d: a.arcSlice,
1282
+ fill: a.color,
1283
+ stroke: e.value.style.chart.layout.donut.borderColorAuto ? e.value.style.chart.backgroundColor : e.value.style.chart.layout.donut.borderColor,
1284
+ "stroke-width": e.value.style.chart.layout.donut.borderWidth
1285
+ }, null, 8, Ta)
1286
+ ]))), 256))
1287
+ ]))), 256)),
1288
+ e.value.style.chart.useGradient ? (u(), r("g", _a, [
1289
+ (u(!0), r(T, null, _($t.value, (l, o) => (u(), r("g", null, [
1290
+ g("path", {
1291
+ d: l.donut.arcSlice,
1292
+ fill: `url(#radial_${f.value}_${o})`,
1293
+ stroke: "transparent",
1294
+ "stroke-width": "0"
1295
+ }, null, 8, Pa)
1296
+ ]))), 256))
1297
+ ])) : A("", !0),
1298
+ e.value.style.chart.layout.labels.dataLabels.showDonutName ? (u(), r("g", Sa, [
1299
+ e.value.style.chart.layout.labels.dataLabels.curvedDonutName ? (u(!0), r(T, { key: 0 }, _(J.value, (l, o) => (u(), r("g", null, [
1300
+ (u(!0), r(T, null, _(l.donut, (a, n) => (u(), r("g", null, [
1301
+ n === 0 && p.value.width && p.value.height ? (u(), r("text", {
1302
+ key: 0,
1303
+ class: Z({ animated: e.value.useCssAnimation }),
1304
+ "text-anchor": "middle",
1305
+ "font-size": e.value.style.chart.layout.labels.dataLabels.fontSize,
1306
+ "font-weight": e.value.style.chart.layout.labels.dataLabels.boldDonutName ? "bold" : "normal",
1307
+ fill: e.value.style.chart.layout.labels.dataLabels.color,
1308
+ dy: e.value.style.chart.layout.labels.dataLabels.donutNameOffsetY
1309
+ }, [
1310
+ g("textPath", {
1311
+ href: `#path-full-${o}-${f.value}`,
1312
+ startOffset: "50%",
1313
+ "text-anchor": "middle",
1314
+ method: "align",
1315
+ spacing: "auto"
1316
+ }, E(e.value.style.chart.layout.labels.dataLabels.donutNameAbbreviation ? v(Bt)({
1317
+ source: l.name,
1318
+ length: e.value.style.chart.layout.labels.dataLabels.donutNameMaxAbbreviationSize
1319
+ }) : l.name), 9, Oa)
1320
+ ], 10, Ia)) : A("", !0)
1321
+ ]))), 256))
1322
+ ]))), 256)) : (u(!0), r(T, { key: 1 }, _(J.value, (l, o) => (u(), r("g", null, [
1323
+ (u(!0), r(T, null, _(l.donut, (a, n) => (u(), r("g", null, [
1324
+ n === 0 && p.value.width && p.value.height ? (u(), r("text", {
1325
+ key: 0,
1326
+ class: Z({ animated: e.value.useCssAnimation }),
1327
+ x: p.value.width / 2,
1328
+ y: a.startY - e.value.style.chart.layout.labels.dataLabels.fontSize + e.value.style.chart.layout.labels.dataLabels.donutNameOffsetY,
1329
+ "text-anchor": "middle",
1330
+ "font-size": e.value.style.chart.layout.labels.dataLabels.fontSize,
1331
+ "font-weight": e.value.style.chart.layout.labels.dataLabels.boldDonutName ? "bold" : "normal",
1332
+ fill: e.value.style.chart.layout.labels.dataLabels.color
1333
+ }, E(e.value.style.chart.layout.labels.dataLabels.donutNameAbbreviation ? v(Bt)({
1334
+ source: l.name,
1335
+ length: e.value.style.chart.layout.labels.dataLabels.donutNameMaxAbbreviationSize
1336
+ }) : l.name), 11, Fa)) : A("", !0)
1337
+ ]))), 256))
1338
+ ]))), 256))
1339
+ ])) : A("", !0),
1340
+ e.value.style.chart.layout.labels.dataLabels.show ? (u(), r("g", Da, [
1341
+ (u(!0), r(T, null, _(J.value, (l, o) => (u(), r("g", null, [
1342
+ (u(!0), r(T, null, _(l.donut.filter((a) => !a.ghost), (a, n) => (u(), r("g", {
1343
+ filter: xt(a, n)
1344
+ }, [
1345
+ Nt(g("text", {
1346
+ class: Z({ animated: e.value.useCssAnimation }),
1347
+ opacity: Lt(a) ? 1 : 0,
1348
+ "text-anchor": v(Le)(a, !0).anchor,
1349
+ x: v(Le)(
1350
+ a,
1351
+ !1,
1352
+ e.value.style.chart.layout.labels.dataLabels.offsetX
1353
+ ).x || 0,
1354
+ y: v(Et)(
1355
+ a,
1356
+ e.value.style.chart.layout.labels.dataLabels.offsetY,
1357
+ e.value.style.chart.layout.labels.dataLabels.offsetY
1358
+ ) + (e.value.style.chart.layout.labels.dataLabels.showValueFirst && e.value.style.chart.layout.labels.dataLabels.showValue ? e.value.style.chart.layout.labels.dataLabels.fontSize : 0),
1359
+ fill: e.value.style.chart.layout.labels.dataLabels.useSerieColor ? a.color : e.value.style.chart.layout.labels.dataLabels.color,
1360
+ "font-size": e.value.style.chart.layout.labels.dataLabels.fontSize,
1361
+ "font-weight": e.value.style.chart.layout.labels.dataLabels.boldPercentage ? "bold" : "normal"
1362
+ }, E(v(Ut)(
1363
+ v(D)({
1364
+ v: a.proportion * 100,
1365
+ s: "%",
1366
+ r: e.value.style.chart.layout.labels.dataLabels.roundingPercentage
1367
+ }),
1368
+ e.value.style.chart.layout.labels.dataLabels.usePercentageParens ? "(" : "",
1369
+ e.value.style.chart.layout.labels.dataLabels.usePercentageParens ? ")" : ""
1370
+ )), 11, Va), [
1371
+ [Vt, L.value.dataLabels.show && e.value.style.chart.layout.labels.dataLabels.showPercentage]
1372
+ ]),
1373
+ Nt(g("text", {
1374
+ class: Z({ animated: e.value.useCssAnimation }),
1375
+ opacity: Lt(a) ? 1 : 0,
1376
+ "text-anchor": v(Le)(a, !0).anchor,
1377
+ x: v(Le)(
1378
+ a,
1379
+ !1,
1380
+ e.value.style.chart.layout.labels.dataLabels.offsetX
1381
+ ).x || 0,
1382
+ y: v(Et)(
1383
+ a,
1384
+ e.value.style.chart.layout.labels.dataLabels.offsetY,
1385
+ e.value.style.chart.layout.labels.dataLabels.offsetY
1386
+ ) + (e.value.style.chart.layout.labels.dataLabels.showValueFirst || !e.value.style.chart.layout.labels.dataLabels.showPercentage ? 0 : e.value.style.chart.layout.labels.dataLabels.fontSize),
1387
+ fill: e.value.style.chart.layout.labels.dataLabels.useSerieColor ? a.color : e.value.style.chart.layout.labels.dataLabels.color,
1388
+ "font-size": e.value.style.chart.layout.labels.dataLabels.fontSize,
1389
+ "font-weight": e.value.style.chart.layout.labels.dataLabels.boldValue ? "bold" : "normal"
1390
+ }, E(v(Ut)(
1391
+ v(Ae)(
1392
+ e.value.style.chart.layout.labels.dataLabels.formatter,
1393
+ a.value,
1394
+ v(D)({
1395
+ p: e.value.style.chart.layout.labels.dataLabels.prefix,
1396
+ v: a.value,
1397
+ s: e.value.style.chart.layout.labels.dataLabels.suffix,
1398
+ r: e.value.style.chart.layout.labels.dataLabels.roundingValue
1399
+ }),
1400
+ { datapoint: a, seriesIndex: o, datapointIndex: n }
1401
+ ),
1402
+ e.value.style.chart.layout.labels.dataLabels.useValueParens ? "(" : "",
1403
+ e.value.style.chart.layout.labels.dataLabels.useValueParens ? ")" : ""
1404
+ )), 11, Ma), [
1405
+ [Vt, L.value.dataLabels.show && e.value.style.chart.layout.labels.dataLabels.showValue]
1406
+ ])
1407
+ ], 8, Na))), 256))
1408
+ ]))), 256))
1409
+ ])) : A("", !0),
1410
+ (u(!0), r(T, null, _(J.value, (l, o) => (u(), r("g", null, [
1411
+ (u(!0), r(T, null, _(l.donut, (a, n) => (u(), r("g", null, [
1412
+ g("path", {
1413
+ d: a.arcSlice,
1414
+ fill: ne.value === a.id ? e.value.style.chart.layout.donut.selectedColor : "transparent",
1415
+ onMouseenter: (d) => At({
1416
+ datapoint: a,
1417
+ relativeIndex: F.value.findIndex((c) => c.id === a.id),
1418
+ seriesIndex: a.seriesIndex
1419
+ }),
1420
+ onClick: (d) => yt({ datapoint: a, index: n, seriesIndex: a.seriesIndex }),
1421
+ onMouseleave: (d) => vl({ datapoint: a, seriesIndex: a.seriesIndex })
1422
+ }, null, 40, za)
1423
+ ]))), 256))
1424
+ ]))), 256)),
1425
+ w(t.$slots, "svg", {
1426
+ svg: {
1427
+ ...p.value,
1428
+ isPrintingImg: v(De) | v(Ne) | ge.value,
1429
+ isPrintingSvg: ye.value
1430
+ }
1431
+ }, void 0, !0)
1432
+ ], 512)
1433
+ ], 46, ga)),
1434
+ t.$slots.hint ? (u(), r("div", Ba, [
1435
+ w(t.$slots, "hint", P(S({ hint: e.value.a11y.translations.keyboardNavigation, isVisible: Se.value })), void 0, !0)
1436
+ ])) : A("", !0)
1437
+ ]),
1438
+ t.$slots.watermark ? (u(), r("div", Ea, [
1439
+ w(t.$slots, "watermark", P(S({ isPrinting: v(De) || v(Ne) || ge.value || ye.value })), void 0, !0)
1440
+ ])) : A("", !0),
1441
+ Xe(v(Xt), {
1442
+ teleportTo: e.value.style.chart.tooltip.teleportTo,
1443
+ show: L.value.showTooltip && se.value,
1444
+ backgroundColor: e.value.style.chart.tooltip.backgroundColor,
1445
+ color: e.value.style.chart.tooltip.color,
1446
+ borderRadius: e.value.style.chart.tooltip.borderRadius,
1447
+ borderColor: e.value.style.chart.tooltip.borderColor,
1448
+ borderWidth: e.value.style.chart.tooltip.borderWidth,
1449
+ fontSize: e.value.style.chart.tooltip.fontSize,
1450
+ backgroundOpacity: e.value.style.chart.tooltip.backgroundOpacity,
1451
+ position: e.value.style.chart.tooltip.position,
1452
+ offsetY: e.value.style.chart.tooltip.offsetY,
1453
+ parent: M.value,
1454
+ content: Te.value,
1455
+ isFullscreen: X.value,
1456
+ isCustom: v(Rt)(e.value.style.chart.tooltip.customFormat),
1457
+ smooth: e.value.style.chart.tooltip.smooth,
1458
+ backdropFilter: e.value.style.chart.tooltip.backdropFilter,
1459
+ smoothForce: e.value.style.chart.tooltip.smoothForce,
1460
+ smoothSnapThreshold: e.value.style.chart.tooltip.smoothSnapThreshold,
1461
+ isA11yMode: ie.value === "keyboard",
1462
+ a11yPosition: ut.value
1463
+ }, {
1464
+ "tooltip-before": y(() => [
1465
+ w(t.$slots, "tooltip-before", P(S({ ...Me.value })), void 0, !0)
1466
+ ]),
1467
+ "tooltip-after": y(() => [
1468
+ w(t.$slots, "tooltip-after", P(S({ ...Me.value })), void 0, !0)
1469
+ ]),
1470
+ _: 3
1471
+ }, 8, ["teleportTo", "show", "backgroundColor", "color", "borderRadius", "borderColor", "borderWidth", "fontSize", "backgroundOpacity", "position", "offsetY", "parent", "content", "isFullscreen", "isCustom", "smooth", "backdropFilter", "smoothForce", "smoothSnapThreshold", "isA11yMode", "a11yPosition"]),
1472
+ g("div", {
1473
+ id: `legend-bottom-${f.value}`
1474
+ }, null, 8, Ua),
1475
+ nt.value ? (u(), V(Nl, {
1476
+ key: 6,
1477
+ to: e.value.style.chart.legend.position === "top" ? `#legend-top-${f.value}` : `#legend-bottom-${f.value}`
1478
+ }, [
1479
+ e.value.style.chart.legend.show ? (u(), r("div", {
1480
+ key: 0,
1481
+ ref_key: "chartLegend",
1482
+ ref: _e,
1483
+ class: Z({ "vue-ui-nested-donuts-legend": ke.value.length > 1 })
1484
+ }, [
1485
+ (u(!0), r(T, null, _(ke.value, (l, o) => (u(), V(ra, {
1486
+ key: `legend_${o}_${st.value}`,
1487
+ legendSet: l,
1488
+ config: hl.value,
1489
+ isCursorPointer: H.value,
1490
+ onClickMarker: s[0] || (s[0] = ({ legend: a }) => j(a))
1491
+ }, {
1492
+ legendTitle: y(({ titleSet: a }) => [
1493
+ a[0] && a[0].arcOf ? (u(), r("div", Ra, E(a[0].arcOf), 1)) : A("", !0)
1494
+ ]),
1495
+ item: y(({ legend: a, index: n }) => [
1496
+ g("div", {
1497
+ onClick: (d) => j(a),
1498
+ style: pe(`opacity:${b.value.includes(a.id) ? 0.5 : 1}`)
1499
+ }, E(a.display), 13, Ga)
1500
+ ]),
1501
+ legendToggle: y(() => [
1502
+ l.length > 2 && e.value.style.chart.legend.selectAllToggle.show && !v(be) ? (u(), V(da, {
1503
+ key: `toggle-${o}`,
1504
+ backgroundColor: e.value.style.chart.legend.selectAllToggle.backgroundColor,
1505
+ color: e.value.style.chart.legend.selectAllToggle.color,
1506
+ fontSize: e.value.style.chart.legend.fontSize,
1507
+ checked: l.some((a) => b.value.includes(a.id)),
1508
+ isCursorPointer: H.value,
1509
+ onToggle: (a) => il(l)
1510
+ }, null, 8, ["backgroundColor", "color", "fontSize", "checked", "isCursorPointer", "onToggle"])) : A("", !0)
1511
+ ]),
1512
+ _: 2
1513
+ }, 1032, ["legendSet", "config", "isCursorPointer"]))), 128))
1514
+ ], 2)) : A("", !0)
1515
+ ], 8, ["to"])) : A("", !0),
1516
+ e.value.style.chart.legend.show ? A("", !0) : (u(), r("div", {
1517
+ key: 7,
1518
+ ref_key: "chartLegend",
1519
+ ref: _e
1520
+ }, [
1521
+ w(t.$slots, "legend", { legend: ke.value }, void 0, !0)
1522
+ ], 512)),
1523
+ t.$slots.source ? (u(), r("div", {
1524
+ key: 8,
1525
+ ref_key: "source",
1526
+ ref: tt,
1527
+ dir: "auto"
1528
+ }, [
1529
+ w(t.$slots, "source", {}, void 0, !0)
1530
+ ], 512)) : A("", !0),
1531
+ xe.value && e.value.userOptions.buttons.table ? (u(), V(Vl(ce.value.component), Ml({ key: 9 }, ce.value.props, {
1532
+ ref_key: "tableUnit",
1533
+ ref: re,
1534
+ onClose: St
1535
+ }), Dt({
1536
+ content: y(() => [
1537
+ (u(), V(v(jt), {
1538
+ key: `table_${ot.value}`,
1539
+ colNames: ae.value.colNames,
1540
+ head: ae.value.head,
1541
+ body: ae.value.body,
1542
+ config: ae.value.config,
1543
+ title: e.value.table.useDialog ? "" : ce.value.title,
1544
+ withCloseButton: !e.value.table.useDialog,
1545
+ isCursorPointer: H.value,
1546
+ onClose: St
1547
+ }, {
1548
+ th: y(({ th: l }) => [
1549
+ g("div", {
1550
+ innerHTML: l,
1551
+ style: { display: "flex", "align-items": "center" }
1552
+ }, null, 8, Ya)
1553
+ ]),
1554
+ td: y(({ td: l }) => [
1555
+ Mt(E(l.name || l), 1)
1556
+ ]),
1557
+ _: 1
1558
+ }, 8, ["colNames", "head", "body", "config", "title", "withCloseButton", "isCursorPointer"]))
1559
+ ]),
1560
+ _: 2
1561
+ }, [
1562
+ e.value.table.useDialog ? {
1563
+ name: "title",
1564
+ fn: y(() => [
1565
+ Mt(E(ce.value.title), 1)
1566
+ ]),
1567
+ key: "0"
1568
+ } : void 0,
1569
+ e.value.table.useDialog ? {
1570
+ name: "actions",
1571
+ fn: y(() => [
1572
+ g("button", {
1573
+ tabindex: "0",
1574
+ class: "vue-ui-user-options-button",
1575
+ onClick: s[1] || (s[1] = (l) => ze(e.value.userOptions.callbacks.csv)),
1576
+ style: pe({ cursor: H.value ? "pointer" : "default" })
1577
+ }, [
1578
+ Xe(v(Ht), {
1579
+ name: "fileCsv",
1580
+ stroke: ce.value.props.color
1581
+ }, null, 8, ["stroke"])
1582
+ ], 4)
1583
+ ]),
1584
+ key: "1"
1585
+ } : void 0
1586
+ ]), 1040)) : A("", !0),
1587
+ w(t.$slots, "skeleton", {}, () => [
1588
+ v(be) ? (u(), V(Zl, { key: 0 })) : A("", !0)
1589
+ ], !0)
1590
+ ], 46, va));
1591
+ }
1592
+ }, vo = /* @__PURE__ */ ca(Wa, [["__scopeId", "data-v-37af710e"]]);
1593
+ export {
1594
+ vo as default
1595
+ };