vue-data-ui 3.22.9 → 3.22.11

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