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,1500 @@
1
+ import { watchEffect as pt, nextTick as xe, useCssVars as Ul, defineAsyncComponent as be, computed as f, ref as v, shallowRef as Gl, toRefs as Wl, watch as Be, onBeforeUnmount as qt, onMounted as Kl, reactive as jt, openBlock as u, createElementBlock as i, normalizeStyle as L, normalizeClass as Oe, createElementVNode as p, toDisplayString as I, createBlock as me, createCommentVNode as g, unref as n, withCtx as C, renderSlot as m, normalizeProps as H, guardReactiveProps as E, createSlots as Jt, createVNode as Ue, Fragment as O, renderList as U, withDirectives as Qt, createTextVNode as dt, vShow as Yl, resolveDynamicComponent as ql, mergeProps as jl, withKeys as Jl } from "vue";
2
+ import { j as yt, t as Zt, o as el, q as tl, ao as Me, r as Ql, l as q, X as Zl, W as Ge, k as le, K as ae, aB as ea, a0 as ta, a1 as la, T as aa, U as oa } from "./lib-DBptbyyI.js";
3
+ import { t as We, u as sa } from "./useResponsive-DfdjqQps.js";
4
+ import { u as ua } from "./useConfig-DO94Aj5s.js";
5
+ import { u as na } from "./usePrinter-CEpYU3r5.js";
6
+ import { u as ia, B as ra } from "./BaseScanner-BhhkKVoj.js";
7
+ import { u as va } from "./useSvgExport-ByUukOZt.js";
8
+ import { u as ht } from "./useNestedProp-Bf5XFbs8.js";
9
+ import { u as ll } from "./useTimeLabels-C-A2uZKi.js";
10
+ import { u as ca } from "./useThemeCheck-D1ZYXUwG.js";
11
+ import { u as da } from "./useTableResponsive-Cbx-ACcP.js";
12
+ import { u as ya } from "./useUserOptionState-BIvW1Kz7.js";
13
+ import { u as al } from "./useTimeLabelCollider-CIsgDrl9.js";
14
+ import { u as ha } from "./useChartAccessibility-9icAAmYg.js";
15
+ import fa from "./img-LXxMLmCg.js";
16
+ import pa from "./Title-BeMKE1cj.js";
17
+ import ga from "./vue_ui_heatmap-C9u993qE.js";
18
+ import ba from "./vue-ui-accordion-nvggWcGN.js";
19
+ import { A as ma } from "./A11yDataTable-KcVAX2cP.js";
20
+ import { _ as xa } from "./_plugin-vue_export-helper-CHgC5LLL.js";
21
+ function ft({
22
+ elementRef: h,
23
+ callback: G,
24
+ attr: oe,
25
+ earlyReturn: J = !1,
26
+ retryFrames: se = 12,
27
+ alsoAfterFontsReady: N = !0
28
+ }) {
29
+ if (J) return;
30
+ const W = (z) => {
31
+ if (!z) return;
32
+ let S;
33
+ if (typeof z.getBBox == "function")
34
+ try {
35
+ const F = z.getBBox();
36
+ S = oe === "width" ? F.width : F.height;
37
+ } catch {
38
+ }
39
+ if (typeof S != "number" || Number.isNaN(S))
40
+ try {
41
+ const F = z.getBoundingClientRect();
42
+ S = oe === "width" ? F.width : F.height;
43
+ } catch {
44
+ S = void 0;
45
+ }
46
+ typeof S == "number" && !Number.isNaN(S) && G(S);
47
+ };
48
+ pt((z) => {
49
+ const S = h.value;
50
+ if (!S) return;
51
+ let F = !1;
52
+ (async () => {
53
+ await xe();
54
+ for (let T = 0; T < se; T += 1) {
55
+ if (F) return;
56
+ await new Promise((K) => requestAnimationFrame(K));
57
+ const X = h.value;
58
+ if (!X) return;
59
+ W(X);
60
+ }
61
+ if (N && typeof document < "u" && document.fonts && document.fonts.ready) {
62
+ try {
63
+ await document.fonts.ready;
64
+ } catch {
65
+ }
66
+ !F && h.value && W(h.value);
67
+ }
68
+ })();
69
+ const ue = new MutationObserver(() => {
70
+ h.value && requestAnimationFrame(() => {
71
+ h.value && W(h.value);
72
+ });
73
+ });
74
+ ue.observe(S, {
75
+ childList: !0,
76
+ subtree: !0,
77
+ characterData: !0,
78
+ attributes: !0,
79
+ attributeFilter: ["transform", "style", "class"]
80
+ });
81
+ let A;
82
+ if (typeof ResizeObserver < "u") {
83
+ const T = S.ownerSVGElement ? S.ownerSVGElement : S;
84
+ A = new ResizeObserver(() => {
85
+ const X = h.value;
86
+ X && W(X);
87
+ }), A.observe(T);
88
+ }
89
+ z(() => {
90
+ F = !0, ue.disconnect(), A && A.disconnect();
91
+ });
92
+ }, { flush: "post" });
93
+ }
94
+ const wa = {
95
+ mounted(h, G) {
96
+ ol(h, G.value);
97
+ },
98
+ updated(h, G) {
99
+ ol(h, G.value);
100
+ }
101
+ };
102
+ function ol(h, {
103
+ cellWidth: G,
104
+ cellHeight: oe,
105
+ maxFontSize: J,
106
+ minFontSize: se,
107
+ index: N,
108
+ reportRotation: W,
109
+ reportHide: z,
110
+ rotateAll: S,
111
+ hideAll: F
112
+ }) {
113
+ h.removeAttribute("transform"), h.removeAttribute("visibility");
114
+ let fe = !1, ue = !1;
115
+ h.setAttribute("font-size", J);
116
+ const A = h.getComputedTextLength();
117
+ if (A <= G)
118
+ W(N, !1), z(N, !1);
119
+ else {
120
+ const T = Math.floor(J * G / A);
121
+ T >= se ? (h.setAttribute("font-size", T), W(N, !1), z(N, !1)) : (W(N, !0), z(N, !1), fe = !0);
122
+ }
123
+ if (S && (fe = !0), fe) {
124
+ h.setAttribute("font-size", J);
125
+ const T = h.getBBox(), X = T.x + T.width / 2, K = T.y + T.height / 2;
126
+ h.setAttribute("transform", `rotate(-90 ${X} ${K})`);
127
+ const M = h.getBBox().width;
128
+ if (M <= oe)
129
+ z(N, !1);
130
+ else {
131
+ const ne = Math.floor(J * oe / M);
132
+ ne >= se ? (h.setAttribute("font-size", ne), z(N, !1)) : (ue = !0, z(N, !0));
133
+ }
134
+ }
135
+ (F || ue) && h.setAttribute("visibility", "hidden");
136
+ }
137
+ const ka = ["id"], Ca = ["id"], Aa = ["xmlns", "aria-describedby", "viewBox"], La = ["x", "y", "width", "height"], Sa = ["x", "y", "height", "width", "fill", "stroke", "stroke-width"], Ta = ["x", "y", "height", "width", "fill", "stroke", "stroke-width"], $a = ["x", "y", "width", "height", "fill", "stroke", "stroke-width"], za = ["data-a11y-cell-id", "x", "y", "width", "height", "fill", "stroke", "stroke-width", "aria-label", "onMouseover", "onMouseout", "onClick"], _a = ["font-size", "font-weight", "fill", "x", "y"], Ia = ["x", "y", "width", "height", "fill", "stroke", "stroke-width"], Oa = ["x", "y", "width", "height", "fill", "stroke", "stroke-width"], Ma = ["font-size", "fill", "x", "y", "font-weight"], Na = ["font-size", "fill", "x", "y", "font-weight"], Fa = ["text-anchor", "font-size", "fill", "font-weight", "transform"], Ra = ["text-anchor", "font-size", "fill", "font-weight", "transform"], Pa = { key: 6 }, Da = ["x", "y", "width", "height", "stroke", "stroke-width"], Ha = { key: 7 }, Ea = ["x1", "x2", "y1", "y2", "stroke", "stroke-width", "stroke-dasharray"], Va = ["x1", "x2", "y1", "y2", "stroke", "stroke-width", "stroke-dasharray"], Xa = { class: "vue-ui-heatmap-legend-gauge-right" }, Ba = ["data-value"], Ua = { class: "vue-ui-heatmap-gauge-indicator-value" }, Ga = {
138
+ key: 1,
139
+ style: { position: "absolute", top: "100%", left: "0", width: "100%" },
140
+ "data-dom-to-png-ignore": "",
141
+ "aria-hidden": "true"
142
+ }, Wa = {
143
+ key: 5,
144
+ class: "vue-data-ui-watermark"
145
+ }, Ka = { class: "vue-ui-data-table" }, Ya = { key: 0 }, qa = ["data-cell"], ja = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, Ja = ["data-cell"], Qa = { style: { display: "flex", "align-items": "center", gap: "5px", "justify-content": "flex-end", width: "100%", "padding-right": "3px" } }, Za = {
146
+ __name: "vue-ui-heatmap",
147
+ props: {
148
+ config: {
149
+ type: Object,
150
+ default() {
151
+ return {};
152
+ }
153
+ },
154
+ dataset: {
155
+ type: Array,
156
+ default() {
157
+ return [];
158
+ }
159
+ }
160
+ },
161
+ emits: ["selectDatapoint", "copyAlt"],
162
+ setup(h, { expose: G, emit: oe }) {
163
+ Ul((t) => ({
164
+ v2aac18d7: t.tdo
165
+ }));
166
+ const J = be(() => import("./Tooltip-Bf-kM3_A.js")), se = be(() => import("./BaseIcon-Cb3zzG6s.js")), N = be(() => import("./PenAndPaper-Ct3qJ4lA.js")), W = be(() => import("./UserOptions-rW2fRf3V.js")), z = be(() => import("./PackageVersion-DPO-OOVI.js")), S = be(() => import("./BaseDraggableDialog-CIb-iD9g.js")), { vue_ui_heatmap: F } = ua(), { isThemeValid: fe, warnInvalidTheme: ue } = ca(), A = h, T = oe, X = f({
167
+ get() {
168
+ return !!A.dataset && A.dataset.length;
169
+ },
170
+ set(t) {
171
+ return t;
172
+ }
173
+ }), K = v(yt()), M = v(null), ne = v(!1), Ke = v(""), we = v(void 0), R = v(null), gt = v(0), bt = v(null), mt = v(0), sl = v(null), ke = v(null), Ye = v(null), Ne = v(!1), Fe = v(!1), xt = v(null), wt = v(null), ul = v(null), kt = v(null), nl = v(null), qe = v(null), je = v(null), il = v(null), Ct = v(null), pe = Gl(null), ie = v(null), Re = v(null), At = v({ x: 0, y: 0 }), Je = v("pointer"), Pe = v(!1), e = v(et()), De = f(() => e.value.userOptions.useCursorPointer);
174
+ function rl() {
175
+ const t = Array(7).fill("_"), o = [], l = 14, s = t.length;
176
+ for (let r = 0; r < s; r += 1) {
177
+ const c = [];
178
+ for (let b = 0; b < l; b += 1)
179
+ c.push(r + b * 2);
180
+ o.push({
181
+ name: `${t[r]}`,
182
+ values: c
183
+ });
184
+ }
185
+ return o;
186
+ }
187
+ const vl = f(() => Zt({
188
+ defaultConfig: {
189
+ table: { show: !1 },
190
+ userOptions: { show: !1 },
191
+ style: {
192
+ backgroundColor: "#99999930",
193
+ layout: {
194
+ cells: {
195
+ colors: {
196
+ hot: "#999999",
197
+ cold: "#CACACA"
198
+ },
199
+ columnTotal: { value: { show: !1 } },
200
+ rowTotal: { value: { show: !1 } },
201
+ value: { show: !1 }
202
+ },
203
+ dataLabels: {
204
+ xAxis: { show: !1 },
205
+ yAxis: { show: !1 }
206
+ }
207
+ }
208
+ }
209
+ },
210
+ userConfig: e.value.skeletonConfig ?? {}
211
+ })), { loading: He, FINAL_DATASET: k, manualLoading: Qe } = ia({
212
+ ...Wl(A),
213
+ FINAL_CONFIG: e,
214
+ prepareConfig: et,
215
+ callback: () => {
216
+ Promise.resolve().then(async () => {
217
+ await xe(), M.value && ea(M.value, { delta: 0.1, delay: 250 });
218
+ });
219
+ },
220
+ skeletonDataset: A.config?.skeletonDataset ?? rl(),
221
+ skeletonConfig: Zt({
222
+ defaultConfig: e.value,
223
+ userConfig: vl.value
224
+ })
225
+ }), { userOptionsVisible: Ze, setUserOptionsVisibility: cl, keepUserOptionState: Lt } = ya({ config: e.value }), { svgRef: re } = ha({ config: e.value.style.title });
226
+ function St(t) {
227
+ cl(t);
228
+ }
229
+ function et() {
230
+ const t = ht({
231
+ userConfig: A.config,
232
+ defaultConfig: F
233
+ });
234
+ let o = {};
235
+ const l = t.theme;
236
+ if (l)
237
+ if (!fe.value(t))
238
+ ue(t), o = t;
239
+ else {
240
+ const s = ht({
241
+ userConfig: ga[l] || A.config,
242
+ defaultConfig: t
243
+ });
244
+ o = {
245
+ ...ht({
246
+ userConfig: A.config,
247
+ defaultConfig: s
248
+ })
249
+ };
250
+ }
251
+ else
252
+ o = t;
253
+ return o;
254
+ }
255
+ Be(() => A.config, (t) => {
256
+ He.value || (e.value = et()), Ze.value = !e.value.userOptions.showOnChartHover, at(), mt.value += 1, P.value.showTable = e.value.table.show, P.value.showTooltip = e.value.style.tooltip.show, Ce.value = e.value.style.layout.width, Ae.value = e.value.style.layout.height;
257
+ }, { deep: !0 }), Be(() => A.dataset, (t) => {
258
+ Array.isArray(t) && t.length > 0 && (Qe.value = !1), at();
259
+ }, { deep: !0 });
260
+ const { isPrinting: tt, isImaging: lt, generatePdf: Tt, generateImage: $t } = na({
261
+ elementId: `heatmap__${K.value}`,
262
+ fileName: e.value.style.title.text || "vue-ui-heatmap",
263
+ options: e.value.userOptions.print
264
+ }), dl = f(() => e.value.userOptions.show && !e.value.style.title.text), P = v({
265
+ showTable: e.value.table.show,
266
+ showTooltip: e.value.style.tooltip.show
267
+ });
268
+ Be(e, () => {
269
+ P.value = {
270
+ showTable: e.value.table.show,
271
+ showTooltip: e.value.style.tooltip.show
272
+ };
273
+ }, { immediate: !0 });
274
+ const yl = f(() => e.value.table.responsiveBreakpoint), Q = v(null), zt = f(() => !!e.value.debug);
275
+ function at() {
276
+ if (el(A.dataset) && (tl({
277
+ componentName: "VueUiHeatmap",
278
+ type: "dataset",
279
+ debug: zt.value
280
+ }), X.value = !1, Qe.value = !0), el(A.dataset) || (Qe.value = e.value.loading), e.value.responsive) {
281
+ const t = We(() => {
282
+ const { width: o, height: l } = sa({
283
+ chart: M.value,
284
+ title: e.value.style.title.text ? xt.value : null,
285
+ // add legend hirizontal in legend attr
286
+ // add legend vertical in some other attr and modify composable to subtract width
287
+ source: Ct.value,
288
+ noTitle: wt.value
289
+ });
290
+ requestAnimationFrame(() => {
291
+ Ce.value = o, Ae.value = l;
292
+ });
293
+ });
294
+ Q.value && (pe.value && Q.value.unobserve(pe.value), Q.value.disconnect()), Q.value = new ResizeObserver(t), pe.value = M.value.parentNode, Q.value.observe(pe.value);
295
+ }
296
+ }
297
+ qt(() => {
298
+ Q.value && (pe.value && Q.value.unobserve(pe.value), Q.value.disconnect());
299
+ }), Kl(() => {
300
+ at();
301
+ });
302
+ const Y = f(() => Math.max(...k.value.flatMap((t) => (t.values || []).length))), Ce = v(e.value.style.layout.width), Ae = v(e.value.style.layout.height), D = f(() => ({
303
+ width: Math.max(10, Ce.value),
304
+ height: Math.max(10, Ae.value)
305
+ })), ge = v(0), hl = We((t) => {
306
+ t !== ge.value && (ge.value = t);
307
+ }, 100);
308
+ ft({ elementRef: qe, callback: hl, attr: "height" });
309
+ const ve = v(0), fl = We((t) => {
310
+ t !== ve.value && (ve.value = t);
311
+ }, 100);
312
+ ft({ elementRef: kt, callback: fl, attr: "width" });
313
+ const Le = v(0), pl = We((t) => {
314
+ t !== Le.value && (Le.value = t);
315
+ }, 100);
316
+ ft({ elementRef: je, callback: pl, attr: "height" }), qt(() => {
317
+ ge.value = 0, ve.value = 0, Le.value = 0;
318
+ });
319
+ const d = f(() => Math.min(D.value.height, D.value.width) / 1e3 * e.value.style.layout.cells.spacing), a = f(() => {
320
+ let t = 0;
321
+ e.value.style.legend.show && (t = e.value.style.legend.width);
322
+ const o = e.value.style.layout.padding, l = e.value.style.layout.dataLabels.xAxis.fontSize / 3, s = e.value.style.layout.dataLabels.xAxis.fontSize / 2, r = D.value.height - o.top - o.bottom - ge.value - l, c = D.value.width / 60, b = {
323
+ x: d.value * Y.value,
324
+ y: d.value * ((k.value || []).length + 1)
325
+ }, _ = D.value.width - o.left - o.right - b.x - c * 2 - 2 - t - ve.value, y = r - c - b.y - Le.value - s - e.value.style.layout.cells.columnTotal.value.offsetY, w = {
326
+ width: Math.max(3, _ / Y.value),
327
+ height: Math.max(3, y / (k.value.length ?? 1))
328
+ };
329
+ return {
330
+ top: o.top + ge.value + c + l,
331
+ topLabelsHeight: ge.value,
332
+ sumCellXHeight: c,
333
+ height: y,
334
+ left: o.left + ve.value + c / 2,
335
+ right: o.right - t,
336
+ bottom: D.value.height - o.bottom - Le.value,
337
+ width: _,
338
+ cellSize: w
339
+ };
340
+ }), Z = f(() => Math.max(...k.value.flatMap((t) => t.values))), Se = f(() => Math.min(...k.value.flatMap((t) => t.values))), ce = f(() => {
341
+ const t = k.value.flatMap((l) => l.values);
342
+ return t.reduce((l, s) => l + s, 0) / t.length;
343
+ }), _t = v([]), It = v([]);
344
+ let Ot = 0;
345
+ pt(() => {
346
+ const t = ++Ot;
347
+ (async () => {
348
+ const o = e.value.style.layout.dataLabels.yAxis, l = await ll({
349
+ values: o.values.length ? o.values : k.value.map((s) => s.name),
350
+ maxDatapoints: k.value.length,
351
+ formatter: o.datetimeFormatter,
352
+ start: 0,
353
+ end: k.value.length
354
+ });
355
+ t === Ot && (_t.value = l);
356
+ })();
357
+ });
358
+ let Mt = 0;
359
+ pt(() => {
360
+ const t = ++Mt;
361
+ (async () => {
362
+ const o = e.value.style.layout.dataLabels.xAxis, l = await ll({
363
+ values: o.values,
364
+ maxDatapoints: Y.value,
365
+ formatter: o.datetimeFormatter,
366
+ start: 0,
367
+ end: Y.value
368
+ });
369
+ t === Mt && (It.value = l);
370
+ })();
371
+ });
372
+ const x = f(() => {
373
+ const t = _t.value.map((y) => y.text), o = It.value.map((y) => y.text), l = k.value.map((y) => y.values.reduce((w, B) => w + B, 0)), s = Math.max(...l), r = Math.min(...l), c = [];
374
+ for (let y = 0; y < Y.value; y += 1)
375
+ c.push(k.value.map((w) => w.values[y] || 0).reduce((w, B) => w + B, 0));
376
+ const b = Math.max(...c), _ = Math.min(...c);
377
+ return {
378
+ yTotals: l.map((y) => {
379
+ const w = isNaN(y / s) ? 0 : y / s;
380
+ return {
381
+ total: y,
382
+ proportion: w,
383
+ color: Me(e.value.style.layout.cells.colors.cold, e.value.style.layout.cells.colors.hot, r, s, y)
384
+ };
385
+ }),
386
+ xTotals: c.map((y) => {
387
+ const w = isNaN(y / b) ? 0 : y / b;
388
+ return {
389
+ total: y,
390
+ proportion: w,
391
+ color: Me(e.value.style.layout.cells.colors.cold, e.value.style.layout.cells.colors.hot, _, b, y)
392
+ };
393
+ }),
394
+ yLabels: t,
395
+ xLabels: o.slice(0, Y.value)
396
+ };
397
+ }), $ = f(() => (k.value.forEach((t, o) => {
398
+ Ql({
399
+ datasetObject: t,
400
+ requiredAttributes: ["values"]
401
+ }).forEach((l) => {
402
+ tl({
403
+ componentName: "VueUiHeatmap",
404
+ type: "datasetSerieAttribute",
405
+ property: "values",
406
+ index: o,
407
+ debug: zt.value
408
+ });
409
+ });
410
+ }), k.value.map((t, o) => ({
411
+ ...t,
412
+ temperatures: (t.values || []).map((l, s) => l >= ce.value ? {
413
+ side: "up",
414
+ color: Me(e.value.style.layout.cells.colors.cold, e.value.style.layout.cells.colors.hot, Se.value, Z.value, l),
415
+ ratio: Math.abs(Math.abs(l - ce.value) / Math.abs(Z.value - ce.value)) > 1 ? 1 : Math.abs(Math.abs(l - ce.value) / Math.abs(Z.value - ce.value)),
416
+ value: l,
417
+ yAxisName: x.value.yLabels[o],
418
+ xAxisName: x.value.xLabels[s],
419
+ id: `vue-data-ui-heatmap-cell-${yt()}`
420
+ } : {
421
+ side: "down",
422
+ ratio: Math.abs(1 - Math.abs(l) / Math.abs(ce.value)) > 1 ? 1 : Math.abs(1 - Math.abs(l) / Math.abs(ce.value)),
423
+ color: Me(e.value.style.layout.cells.colors.cold, e.value.style.layout.cells.colors.hot, Se.value, Z.value, l),
424
+ value: l,
425
+ yAxisName: x.value.yLabels[o],
426
+ xAxisName: x.value.xLabels[s],
427
+ id: `vue-data-ui-heatmap-cell-${yt()}`
428
+ })
429
+ })))), Nt = f(() => k.value.length), Ft = jt(Array(Nt.value * Y.value || 1).fill(!1)), gl = f(() => Ft.some((t) => t));
430
+ function bl(t, o) {
431
+ Ft[t] = o;
432
+ }
433
+ const Rt = jt(Array(Nt.value * Y.value || 1).fill(!1)), ml = f(() => Rt.some((t) => t));
434
+ function xl(t, o) {
435
+ Rt[t] = o;
436
+ }
437
+ const V = v(null), Ee = v(null);
438
+ function ot() {
439
+ ne.value = !1, we.value = void 0, V.value = null, R.value = null, ie.value = null, Re.value = null;
440
+ }
441
+ function wl(t) {
442
+ if (!re.value || !t) return;
443
+ const o = re.value.querySelector(`[data-a11y-cell-id="${t}"]`);
444
+ if (!o) return;
445
+ const l = o.getBoundingClientRect();
446
+ At.value = {
447
+ x: l.left + l.width / 2,
448
+ y: l.top + l.height / 2
449
+ };
450
+ }
451
+ function Ve(t, o, l, s, r = "pointer", c = null) {
452
+ if (e.value.events.datapointEnter && e.value.events.datapointEnter({ datapoint: t, seriesIndex: o }), !P.value.showTooltip) return;
453
+ Je.value = r, ie.value = c, Re.value = t.id, R.value = { x: l, y: s };
454
+ const { value: b, yAxisName: _, xAxisName: y, id: w } = t;
455
+ we.value = w, V.value = b, Ee.value = {
456
+ datapoint: t,
457
+ seriesIndex: o,
458
+ series: $.value,
459
+ config: e.value
460
+ }, ne.value = !0;
461
+ let B = "";
462
+ const he = e.value.style.tooltip.customFormat;
463
+ aa(he) && oa(() => he({
464
+ datapoint: t,
465
+ seriesIndex: o,
466
+ series: $.value,
467
+ config: e.value
468
+ })) ? Ke.value = he({
469
+ datapoint: t,
470
+ seriesIndex: o,
471
+ series: $.value,
472
+ config: e.value
473
+ }) : (B += `<div>${_} ${y ? _ ? ` - ${y}` : `${y}` : ""}</div>`, B += `<div style="margin-top:6px;padding-top:6px;border-top:1px solid ${e.value.style.tooltip.borderColor};font-weight:bold;display:flex;flex-direction:row;gap:12px;align-items:center;justify-content:center"><span style="color:${Me(e.value.style.layout.cells.colors.cold, e.value.style.layout.cells.colors.hot, Se.value, Z.value, b)}">⬤</span><span>${isNaN(b) ? "-" : le(
474
+ e.value.style.layout.cells.value.formatter,
475
+ b,
476
+ q({
477
+ p: e.value.style.layout.dataLabels.prefix,
478
+ v: b,
479
+ s: e.value.style.layout.dataLabels.suffix,
480
+ r: e.value.style.tooltip.roundingValue
481
+ }),
482
+ { datapoint: t, seriesIndex: o }
483
+ )}</span></div>`, Ke.value = `<div style="font-size:${e.value.style.tooltip.fontSize}px">${B}</div>`), r === "keyboard" && xe(() => {
484
+ wl(t.id);
485
+ });
486
+ }
487
+ function kl({ datapoint: t, seriesIndex: o }) {
488
+ e.value.events.datapointLeave && e.value.events.datapointLeave({ datapoint: t, seriesIndex: o }), !(Re.value === t.id && Je.value === "keyboard") && (ne.value = !1, we.value = void 0, V.value = null, R.value = null);
489
+ }
490
+ function Cl(t) {
491
+ return le(
492
+ e.value.style.layout.cells.value.formatter,
493
+ x.value.yTotals[t].total,
494
+ q({
495
+ p: e.value.style.layout.dataLabels.prefix,
496
+ v: x.value.yTotals[t].total,
497
+ s: e.value.style.layout.dataLabels.suffix,
498
+ r: e.value.style.layout.cells.value.roundingValue
499
+ }),
500
+ { datapoint: x.value.yTotals[t], rowIndex: t }
501
+ );
502
+ }
503
+ function Al(t) {
504
+ return le(
505
+ e.value.style.layout.cells.value.formatter,
506
+ x.value.xTotals[t].total,
507
+ q({
508
+ p: e.value.style.layout.dataLabels.prefix,
509
+ v: x.value.xTotals[t].total,
510
+ s: e.value.style.layout.dataLabels.suffix,
511
+ r: e.value.style.layout.cells.value.roundingValue
512
+ }),
513
+ { datapoint: x.value.xTotals[t], colIndex: t }
514
+ );
515
+ }
516
+ f(() => {
517
+ const t = k.value.map((l) => ({
518
+ name: l.name
519
+ })), o = k.value.map((l) => l.values);
520
+ return { head: t, body: o };
521
+ });
522
+ function st(t = null) {
523
+ xe(() => {
524
+ const o = ["", ...k.value.map((c, b) => c.name)], l = [];
525
+ for (let c = 0; c < x.value.xLabels.length; c += 1) {
526
+ const b = [x.value.xLabels[c]];
527
+ for (let _ = 0; _ < k.value.length; _ += 1)
528
+ b.push([k.value[_].values[c]]);
529
+ l.push(b);
530
+ }
531
+ const s = [[e.value.style.title.text], [e.value.style.title.subtitle.text], [[""], [""], [""]]].concat([o]).concat(l), r = ta(s);
532
+ t ? t(r) : la({ csvContent: r, title: e.value.style.title.text || "vue-ui-heatmap" });
533
+ });
534
+ }
535
+ const de = v(!1);
536
+ function Pt(t) {
537
+ de.value = t, gt.value += 1;
538
+ }
539
+ function Dt() {
540
+ P.value.showTable = !P.value.showTable;
541
+ }
542
+ function Ht() {
543
+ P.value.showTooltip = !P.value.showTooltip;
544
+ }
545
+ const Te = v(!1);
546
+ function ut() {
547
+ Te.value = !Te.value;
548
+ }
549
+ function Et(t, o) {
550
+ e.value.events.datapointClick && e.value.events.datapointClick({ datapoint: t, seriesIndex: o }), T("selectDatapoint", t);
551
+ }
552
+ function Ll() {
553
+ return $.value;
554
+ }
555
+ async function Sl({ scale: t = 2 } = {}) {
556
+ if (!M.value) return;
557
+ const { width: o, height: l } = M.value.getBoundingClientRect(), s = o / l, { imageUri: r, base64: c } = await fa({ domElement: M.value, base64: !0, img: !0, scale: t });
558
+ return {
559
+ imageUri: r,
560
+ base64: c,
561
+ title: e.value.style.title.text,
562
+ width: o,
563
+ height: l,
564
+ aspectRatio: s
565
+ };
566
+ }
567
+ const Vt = f(() => ({
568
+ start: 0,
569
+ end: Y.value
570
+ })), Xt = f(() => x.value.xLabels);
571
+ al({
572
+ timeLabelsEls: qe,
573
+ timeLabels: Xt,
574
+ slicer: Vt,
575
+ configRef: e,
576
+ rotationPath: ["style", "layout", "dataLabels", "xAxis", "rotation"],
577
+ autoRotatePath: ["style", "layout", "dataLabels", "xAxis", "autoRotate", "enable"],
578
+ isAutoSize: !1,
579
+ targetClass: ".vue-ui-heatmap-col-name",
580
+ rotation: e.value.style.layout.dataLabels.xAxis.autoRotate.angle,
581
+ width: Ce,
582
+ height: Ae
583
+ }), al({
584
+ timeLabelsEls: je,
585
+ timeLabels: Xt,
586
+ slicer: Vt,
587
+ configRef: e,
588
+ rotationPath: ["style", "layout", "cells", "columnTotal", "value", "rotation"],
589
+ autoRotatePath: ["style", "layout", "cells", "columnTotal", "value", "autoRotate", "enable"],
590
+ isAutoSize: !1,
591
+ targetClass: ".vue-ui-heatmap-col-total",
592
+ rotation: e.value.style.layout.cells.columnTotal.value.autoRotate.angle,
593
+ width: Ce,
594
+ height: Ae
595
+ });
596
+ const Xe = f(() => {
597
+ const t = e.value.table.useDialog && !e.value.table.show, o = P.value.showTable;
598
+ return {
599
+ component: t ? S : ba,
600
+ title: `${e.value.style.title.text}${e.value.style.title.subtitle.text ? `: ${e.value.style.title.subtitle.text}` : ""}`,
601
+ props: t ? {
602
+ backgroundColor: e.value.table.th.backgroundColor,
603
+ color: e.value.table.th.color,
604
+ headerColor: e.value.table.th.color,
605
+ headerBg: e.value.table.th.backgroundColor,
606
+ isFullscreen: de.value,
607
+ fullscreenParent: M.value,
608
+ forcedWidth: Math.min(800, window.innerWidth * 0.8),
609
+ isCursorPointer: De.value
610
+ } : {
611
+ hideDetails: !0,
612
+ config: {
613
+ open: o,
614
+ maxHeight: 1e4,
615
+ body: {
616
+ backgroundColor: e.value.style.backgroundColor,
617
+ color: e.value.style.color
618
+ },
619
+ head: {
620
+ backgroundColor: e.value.style.backgroundColor,
621
+ color: e.value.style.color
622
+ }
623
+ }
624
+ }
625
+ };
626
+ });
627
+ Be(() => P.value.showTable, async (t) => {
628
+ e.value.table.show || (t && e.value.table.useDialog && ke.value ? (await xe(), ke.value.open()) : "close" in ke.value && ke.value.close());
629
+ });
630
+ const { isResponsive: Tl } = da(bt, yl);
631
+ function nt() {
632
+ P.value.showTable = !1, Ye.value && Ye.value.setTableIconState(!1);
633
+ }
634
+ const $l = f(() => e.value.style.backgroundColor), zl = f(() => e.value.style.title), { exportSvg: _l, getSvg: Il } = va({
635
+ svg: re,
636
+ title: zl,
637
+ backgroundColor: $l
638
+ });
639
+ async function Bt({ isCb: t }) {
640
+ Fe.value = !0, await xe();
641
+ try {
642
+ if (t) {
643
+ const { blob: o, url: l, text: s, dataUrl: r } = await Il();
644
+ await Promise.resolve(e.value.userOptions.callbacks.svg({ blob: o, url: l, text: s, dataUrl: r }));
645
+ } else
646
+ await Promise.resolve(_l());
647
+ } finally {
648
+ Fe.value = !1;
649
+ }
650
+ }
651
+ function Ol(t) {
652
+ if (t?.stage === "start") {
653
+ Ne.value = !0;
654
+ return;
655
+ }
656
+ if (t?.stage === "end") {
657
+ Ne.value = !1;
658
+ return;
659
+ }
660
+ $t();
661
+ }
662
+ async function Ut() {
663
+ if (T("copyAlt", {
664
+ config: e.value,
665
+ dataset: $.value
666
+ }), !e.value.userOptions.callbacks.altCopy) {
667
+ console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.");
668
+ return;
669
+ }
670
+ await Promise.resolve(e.value.userOptions.callbacks.altCopy({
671
+ config: e.value,
672
+ dataset: $.value
673
+ }));
674
+ }
675
+ function Gt(t, o) {
676
+ const l = $.value[t];
677
+ if (!l) return null;
678
+ const s = l.temperatures[o];
679
+ return s ? {
680
+ cell: s,
681
+ rowIndex: t,
682
+ columnIndex: o
683
+ } : null;
684
+ }
685
+ function it(t, o) {
686
+ let l = 0;
687
+ for (let s = 0; s < t; s += 1)
688
+ l += $.value[s]?.temperatures?.length || 0;
689
+ return l + o;
690
+ }
691
+ function Ml() {
692
+ ie.value = null, Re.value = null, Pe.value = !0;
693
+ }
694
+ function Nl() {
695
+ ot(), Pe.value = !1;
696
+ }
697
+ function Fl(t) {
698
+ if (!re.value || Te.value || document.activeElement !== re.value || !ye.value.length) return;
699
+ const o = t.key === "ArrowLeft", l = t.key === "ArrowRight", s = t.key === "ArrowUp", r = t.key === "ArrowDown", c = t.key === "Enter" || t.key === " ", b = t.key === "Escape";
700
+ if (!o && !l && !s && !r && !c && !b) return;
701
+ if (t.preventDefault(), t.stopPropagation(), b) {
702
+ ot();
703
+ return;
704
+ }
705
+ if (c) {
706
+ if (ie.value === null) return;
707
+ const ee = ye.value[ie.value];
708
+ if (!ee) return;
709
+ Et(ee.cell, ee.rowIndex);
710
+ return;
711
+ }
712
+ let _ = ie.value === null ? null : ye.value[ie.value];
713
+ if (!_) {
714
+ const ee = we.value ? ye.value.findIndex((_e) => _e.cell.id === we.value) : null;
715
+ if (ee !== null && ee >= 0 && ee < ye.value.length) {
716
+ const _e = ye.value[ee];
717
+ if (!_e) return;
718
+ let j = _e.rowIndex, te = _e.columnIndex;
719
+ l ? te += 1 : o ? te -= 1 : r ? j += 1 : s && (j -= 1);
720
+ const vt = Wt.value.rowCount;
721
+ if (vt <= 0) return;
722
+ j < 0 && (j = vt - 1), j >= vt && (j = 0);
723
+ const ct = $.value[j];
724
+ if (!ct || !ct.temperatures.length) return;
725
+ const Yt = ct.temperatures.length;
726
+ te < 0 && (te = Yt - 1), te >= Yt && (te = 0);
727
+ const Ie = Gt(j, te);
728
+ if (!Ie) return;
729
+ const Vl = it(j, te), Xl = a.value.left + a.value.cellSize.width * Ie.columnIndex, Bl = a.value.top + a.value.cellSize.height * Ie.rowIndex;
730
+ Ve(Ie.cell, Ie.rowIndex, Xl, Bl, "keyboard", Vl);
731
+ return;
732
+ }
733
+ const ze = ye.value[0];
734
+ if (!ze) return;
735
+ const Hl = a.value.left + a.value.cellSize.width * ze.columnIndex, El = a.value.top + a.value.cellSize.height * ze.rowIndex;
736
+ Ve(ze.cell, ze.rowIndex, Hl, El, "keyboard", 0);
737
+ return;
738
+ }
739
+ let y = _.rowIndex, w = _.columnIndex;
740
+ l ? w += 1 : o ? w -= 1 : r ? y += 1 : s && (y -= 1);
741
+ const B = Wt.value.rowCount;
742
+ if (B <= 0) return;
743
+ y < 0 && (y = B - 1), y >= B && (y = 0);
744
+ const he = $.value[y];
745
+ if (!he || !he.temperatures.length) return;
746
+ const Kt = he.temperatures.length;
747
+ w < 0 && (w = Kt - 1), w >= Kt && (w = 0);
748
+ const $e = Gt(y, w);
749
+ if (!$e) return;
750
+ const Rl = it(y, w), Pl = a.value.left + a.value.cellSize.width * $e.columnIndex, Dl = a.value.top + a.value.cellSize.height * $e.rowIndex;
751
+ Ve($e.cell, $e.rowIndex, Pl, Dl, "keyboard", Rl);
752
+ }
753
+ const rt = f(() => {
754
+ const t = [
755
+ e.value.table.colNames.xAxis,
756
+ ...k.value.map((l) => l.name)
757
+ ], o = x.value.xLabels.map((l, s) => [
758
+ l,
759
+ ...k.value.map((r) => {
760
+ const c = r.values?.[s];
761
+ return isNaN(c) ? "-" : q({
762
+ p: e.value.style.layout.dataLabels.prefix,
763
+ v: c,
764
+ s: e.value.style.layout.dataLabels.suffix,
765
+ r: e.value.table.td.roundingValue
766
+ });
767
+ })
768
+ ]);
769
+ return { headers: t, rows: o };
770
+ }), Wt = f(() => {
771
+ const t = $.value.length, o = Math.max(
772
+ 0,
773
+ ...$.value.map((l) => l.temperatures.length)
774
+ );
775
+ return {
776
+ rowCount: t,
777
+ columnCount: o
778
+ };
779
+ }), ye = f(() => $.value.flatMap((t, o) => t.temperatures.map((l, s) => ({
780
+ cell: l,
781
+ rowIndex: o,
782
+ columnIndex: s
783
+ }))));
784
+ return G({
785
+ getData: Ll,
786
+ getImage: Sl,
787
+ generatePdf: Tt,
788
+ generateCsv: st,
789
+ generateImage: $t,
790
+ generateSvg: Bt,
791
+ toggleTable: Dt,
792
+ toggleTooltip: Ht,
793
+ toggleAnnotator: ut,
794
+ toggleFullscreen: Pt,
795
+ copyAlt: Ut
796
+ }), (t, o) => (u(), i("div", {
797
+ ref_key: "heatmapChart",
798
+ ref: M,
799
+ class: Oe(`vue-data-ui-component vue-ui-heatmap ${de.value ? "vue-data-ui-wrapper-fullscreen" : ""}`),
800
+ style: L(`font-family:${e.value.style.fontFamily};width:100%;${e.value.responsive ? "height: 100%;" : ""} text-align:center;background:${e.value.style.backgroundColor}`),
801
+ id: `heatmap__${K.value}`,
802
+ onMouseenter: o[1] || (o[1] = () => St(!0)),
803
+ onMouseleave: o[2] || (o[2] = () => {
804
+ St(!1), Pe.value || ot();
805
+ })
806
+ }, [
807
+ p("div", {
808
+ id: `chart-instructions-${K.value}`,
809
+ class: "sr-only"
810
+ }, [
811
+ p("p", null, I(e.value.a11y.translations.keyboardNavigation), 1)
812
+ ], 8, Ca),
813
+ rt.value?.rows?.length ? (u(), me(ma, {
814
+ key: 0,
815
+ uid: K.value,
816
+ head: rt.value.headers,
817
+ body: rt.value.rows,
818
+ notice: e.value.a11y.translations.tableAvailable,
819
+ caption: e.value.a11y.translations.tableCaption
820
+ }, null, 8, ["uid", "head", "body", "notice", "caption"])) : g("", !0),
821
+ e.value.userOptions.buttons.annotator ? (u(), me(n(N), {
822
+ key: 1,
823
+ svgRef: n(re),
824
+ backgroundColor: e.value.style.backgroundColor,
825
+ color: e.value.style.color,
826
+ active: Te.value,
827
+ isCursorPointer: De.value,
828
+ onClose: ut
829
+ }, {
830
+ "annotator-action-close": C(() => [
831
+ m(t.$slots, "annotator-action-close", {}, void 0, !0)
832
+ ]),
833
+ "annotator-action-color": C(({ color: l }) => [
834
+ m(t.$slots, "annotator-action-color", H(E({ color: l })), void 0, !0)
835
+ ]),
836
+ "annotator-action-draw": C(({ mode: l }) => [
837
+ m(t.$slots, "annotator-action-draw", H(E({ mode: l })), void 0, !0)
838
+ ]),
839
+ "annotator-action-undo": C(({ disabled: l }) => [
840
+ m(t.$slots, "annotator-action-undo", H(E({ disabled: l })), void 0, !0)
841
+ ]),
842
+ "annotator-action-redo": C(({ disabled: l }) => [
843
+ m(t.$slots, "annotator-action-redo", H(E({ disabled: l })), void 0, !0)
844
+ ]),
845
+ "annotator-action-delete": C(({ disabled: l }) => [
846
+ m(t.$slots, "annotator-action-delete", H(E({ disabled: l })), void 0, !0)
847
+ ]),
848
+ _: 3
849
+ }, 8, ["svgRef", "backgroundColor", "color", "active", "isCursorPointer"])) : g("", !0),
850
+ dl.value ? (u(), i("div", {
851
+ key: 2,
852
+ ref_key: "noTitle",
853
+ ref: wt,
854
+ class: "vue-data-ui-no-title-space",
855
+ style: "height:36px; width: 100%;background:transparent"
856
+ }, null, 512)) : g("", !0),
857
+ e.value.style.title.text ? (u(), i("div", {
858
+ key: 3,
859
+ ref_key: "chartTitle",
860
+ ref: xt,
861
+ style: "width:100%;background:transparent"
862
+ }, [
863
+ (u(), me(pa, {
864
+ key: `title_${mt.value}`,
865
+ config: {
866
+ title: {
867
+ cy: "heatmap-div-title",
868
+ ...e.value.style.title
869
+ },
870
+ subtitle: {
871
+ cy: "heatmap-div-subtitle",
872
+ ...e.value.style.title.subtitle
873
+ }
874
+ }
875
+ }, null, 8, ["config"]))
876
+ ], 512)) : g("", !0),
877
+ e.value.userOptions.show && X.value && (n(Lt) || n(Ze)) ? (u(), me(n(W), {
878
+ ref_key: "userOptionsRef",
879
+ ref: Ye,
880
+ key: `user_options_${gt.value}`,
881
+ backgroundColor: e.value.style.backgroundColor,
882
+ color: e.value.style.color,
883
+ isImaging: n(lt),
884
+ isPrinting: n(tt),
885
+ uid: K.value,
886
+ hasTooltip: e.value.userOptions.buttons.tooltip && e.value.style.tooltip.show,
887
+ hasPdf: e.value.userOptions.buttons.pdf,
888
+ hasImg: e.value.userOptions.buttons.img,
889
+ hasSvg: e.value.userOptions.buttons.svg,
890
+ hasXls: e.value.userOptions.buttons.csv,
891
+ hasTable: e.value.userOptions.buttons.table,
892
+ hasFullscreen: e.value.userOptions.buttons.fullscreen,
893
+ hasAltCopy: e.value.userOptions.buttons.altCopy,
894
+ isFullscreen: de.value,
895
+ isTooltip: P.value.showTooltip,
896
+ titles: { ...e.value.userOptions.buttonTitles },
897
+ chartElement: M.value,
898
+ position: e.value.userOptions.position,
899
+ hasAnnotator: e.value.userOptions.buttons.annotator,
900
+ isAnnotation: Te.value,
901
+ callbacks: e.value.userOptions.callbacks,
902
+ printScale: e.value.userOptions.print.scale,
903
+ tableDialog: e.value.table.useDialog,
904
+ isCursorPointer: De.value,
905
+ onToggleFullscreen: Pt,
906
+ onGeneratePdf: n(Tt),
907
+ onGenerateCsv: st,
908
+ onGenerateImage: Ol,
909
+ onGenerateSvg: Bt,
910
+ onToggleTable: Dt,
911
+ onToggleTooltip: Ht,
912
+ onToggleAnnotator: ut,
913
+ onCopyAlt: Ut,
914
+ style: L({
915
+ visibility: n(Lt) ? n(Ze) ? "visible" : "hidden" : "visible"
916
+ })
917
+ }, Jt({ _: 2 }, [
918
+ t.$slots.menuIcon ? {
919
+ name: "menuIcon",
920
+ fn: C(({ isOpen: l, color: s }) => [
921
+ m(t.$slots, "menuIcon", H(E({ isOpen: l, color: s })), void 0, !0)
922
+ ]),
923
+ key: "0"
924
+ } : void 0,
925
+ t.$slots.optionTooltip ? {
926
+ name: "optionTooltip",
927
+ fn: C(() => [
928
+ m(t.$slots, "optionTooltip", {}, void 0, !0)
929
+ ]),
930
+ key: "1"
931
+ } : void 0,
932
+ t.$slots.optionPdf ? {
933
+ name: "optionPdf",
934
+ fn: C(() => [
935
+ m(t.$slots, "optionPdf", {}, void 0, !0)
936
+ ]),
937
+ key: "2"
938
+ } : void 0,
939
+ t.$slots.optionCsv ? {
940
+ name: "optionCsv",
941
+ fn: C(() => [
942
+ m(t.$slots, "optionCsv", {}, void 0, !0)
943
+ ]),
944
+ key: "3"
945
+ } : void 0,
946
+ t.$slots.optionImg ? {
947
+ name: "optionImg",
948
+ fn: C(() => [
949
+ m(t.$slots, "optionImg", {}, void 0, !0)
950
+ ]),
951
+ key: "4"
952
+ } : void 0,
953
+ t.$slots.optionSvg ? {
954
+ name: "optionSvg",
955
+ fn: C(() => [
956
+ m(t.$slots, "optionSvg", {}, void 0, !0)
957
+ ]),
958
+ key: "5"
959
+ } : void 0,
960
+ t.$slots.optionTable ? {
961
+ name: "optionTable",
962
+ fn: C(() => [
963
+ m(t.$slots, "optionTable", {}, void 0, !0)
964
+ ]),
965
+ key: "6"
966
+ } : void 0,
967
+ t.$slots.optionFullscreen ? {
968
+ name: "optionFullscreen",
969
+ fn: C(({ toggleFullscreen: l, isFullscreen: s }) => [
970
+ m(t.$slots, "optionFullscreen", H(E({ toggleFullscreen: l, isFullscreen: s })), void 0, !0)
971
+ ]),
972
+ key: "7"
973
+ } : void 0,
974
+ t.$slots.optionAnnotator ? {
975
+ name: "optionAnnotator",
976
+ fn: C(({ toggleAnnotator: l, isAnnotator: s }) => [
977
+ m(t.$slots, "optionAnnotator", H(E({ toggleAnnotator: l, isAnnotator: s })), void 0, !0)
978
+ ]),
979
+ key: "8"
980
+ } : void 0,
981
+ t.$slots.optionAltCopy ? {
982
+ name: "optionAltCopy",
983
+ fn: C(({ altCopy: l }) => [
984
+ m(t.$slots, "optionAltCopy", H(E({ altCopy: l })), void 0, !0)
985
+ ]),
986
+ key: "9"
987
+ } : void 0
988
+ ]), 1032, ["backgroundColor", "color", "isImaging", "isPrinting", "uid", "hasTooltip", "hasPdf", "hasImg", "hasSvg", "hasXls", "hasTable", "hasFullscreen", "hasAltCopy", "isFullscreen", "isTooltip", "titles", "chartElement", "position", "hasAnnotator", "isAnnotation", "callbacks", "printScale", "tableDialog", "isCursorPointer", "onGeneratePdf", "style"])) : g("", !0),
989
+ p("div", {
990
+ class: Oe({
991
+ "vue-ui-heatmap-chart-wrapper": !0,
992
+ "vue-ui-heatmap-chart-wrapper-legend-right": e.value.style.legend.show
993
+ })
994
+ }, [
995
+ (u(), i("svg", {
996
+ ref_key: "svgRef",
997
+ ref: re,
998
+ xmlns: n(Zl),
999
+ "aria-describedby": `chart-instructions-${K.value}`,
1000
+ class: Oe({ "vue-data-ui-fullscreen--on": de.value, "vue-data-ui-fulscreen--off": !de.value }),
1001
+ viewBox: `0 0 ${D.value.width} ${D.value.height}`,
1002
+ width: "100%",
1003
+ style: L(`overflow: visible; background:transparent;color:${e.value.style.color}`),
1004
+ "aria-live": "polite",
1005
+ role: "img",
1006
+ preserveAspectRatio: "xMidYMid",
1007
+ tabindex: "0",
1008
+ onFocus: Ml,
1009
+ onBlur: Nl,
1010
+ onKeydown: Fl
1011
+ }, [
1012
+ Ue(n(z)),
1013
+ t.$slots["chart-background"] ? (u(), i("foreignObject", {
1014
+ key: 0,
1015
+ x: a.value.left,
1016
+ y: a.value.top,
1017
+ width: a.value.width,
1018
+ height: a.value.height,
1019
+ style: {
1020
+ pointerEvents: "none"
1021
+ }
1022
+ }, [
1023
+ m(t.$slots, "chart-background", {}, void 0, !0)
1024
+ ], 8, La)) : g("", !0),
1025
+ e.value.style.layout.cells.columnTotal.color.show ? (u(), i("g", {
1026
+ key: 1,
1027
+ ref_key: "xAxisSumRects",
1028
+ ref: il
1029
+ }, [
1030
+ (u(!0), i(O, null, U(x.value.xTotals, (l, s) => (u(), i("rect", {
1031
+ x: a.value.left + a.value.cellSize.width * s + d.value / 2 + a.value.sumCellXHeight,
1032
+ y: a.value.top - a.value.sumCellXHeight + d.value * (D.value.height / D.value.width),
1033
+ height: a.value.sumCellXHeight,
1034
+ width: a.value.cellSize.width - d.value,
1035
+ fill: e.value.style.layout.cells.colors.underlayer,
1036
+ stroke: e.value.style.backgroundColor,
1037
+ "stroke-width": d.value
1038
+ }, null, 8, Sa))), 256)),
1039
+ (u(!0), i(O, null, U(x.value.xTotals, (l, s) => (u(), i("rect", {
1040
+ x: a.value.left + a.value.cellSize.width * s + d.value / 2 + a.value.sumCellXHeight,
1041
+ y: a.value.top - a.value.sumCellXHeight + d.value * (D.value.height / D.value.width),
1042
+ height: a.value.sumCellXHeight,
1043
+ width: a.value.cellSize.width - d.value,
1044
+ fill: l.color,
1045
+ stroke: e.value.style.backgroundColor,
1046
+ "stroke-width": d.value
1047
+ }, null, 8, Ta))), 256))
1048
+ ], 512)) : g("", !0),
1049
+ p("g", {
1050
+ ref_key: "datapoints",
1051
+ ref: sl
1052
+ }, [
1053
+ (u(!0), i(O, null, U($.value, (l, s) => (u(), i(O, null, [
1054
+ (u(!0), i(O, null, U(l.temperatures, (r, c) => (u(), i("g", null, [
1055
+ p("rect", {
1056
+ x: a.value.left + a.value.cellSize.width * c + d.value / 2 + a.value.sumCellXHeight,
1057
+ y: a.value.top + a.value.cellSize.height * s + d.value / 2,
1058
+ width: a.value.cellSize.width - d.value,
1059
+ height: a.value.cellSize.height - d.value,
1060
+ fill: e.value.style.layout.cells.colors.underlayer,
1061
+ stroke: e.value.style.backgroundColor,
1062
+ "stroke-width": d.value
1063
+ }, null, 8, $a),
1064
+ p("rect", {
1065
+ "data-a11y-cell-id": r.id,
1066
+ x: a.value.left + a.value.cellSize.width * c + d.value / 2 + a.value.sumCellXHeight,
1067
+ y: a.value.top + a.value.cellSize.height * s + d.value / 2,
1068
+ width: a.value.cellSize.width - d.value,
1069
+ height: a.value.cellSize.height - d.value,
1070
+ fill: r.color,
1071
+ stroke: e.value.style.backgroundColor,
1072
+ "stroke-width": d.value,
1073
+ "aria-label": `${r.yAxisName}${r.xAxisName ? ` - ${r.xAxisName}` : ""}: ${isNaN(r.value) ? "-" : r.value}`,
1074
+ onMouseover: (b) => Ve(
1075
+ r,
1076
+ s,
1077
+ a.value.left + a.value.cellSize.width * c,
1078
+ a.value.top + a.value.cellSize.height * s,
1079
+ "pointer",
1080
+ it(s, c)
1081
+ ),
1082
+ onMouseout: () => kl({ datapoint: r, seriesIndex: s }),
1083
+ onClick: () => Et(r, s)
1084
+ }, null, 40, za),
1085
+ e.value.style.layout.cells.value.show ? Qt((u(), i("text", {
1086
+ key: 0,
1087
+ "text-anchor": "middle",
1088
+ "font-size": e.value.style.layout.cells.value.fontSize,
1089
+ "font-weight": e.value.style.layout.cells.value.bold ? "bold" : "normal",
1090
+ fill: n(Ge)(r.color),
1091
+ x: a.value.left + a.value.cellSize.width * c + a.value.cellSize.width / 2 + a.value.sumCellXHeight,
1092
+ y: a.value.top + a.value.cellSize.height * s + a.value.cellSize.height / 2 + e.value.style.layout.cells.value.fontSize / 3,
1093
+ style: { pointerEvents: "none", userSelect: "none" }
1094
+ }, [
1095
+ dt(I(n(le)(
1096
+ e.value.style.layout.cells.value.formatter,
1097
+ r.value,
1098
+ n(q)({
1099
+ p: e.value.style.layout.dataLabels.prefix,
1100
+ v: r.value,
1101
+ s: e.value.style.layout.dataLabels.suffix,
1102
+ r: e.value.style.layout.cells.value.roundingValue
1103
+ }),
1104
+ { datapoint: r }
1105
+ )), 1)
1106
+ ], 8, _a)), [
1107
+ [n(wa), {
1108
+ cellWidth: a.value.cellSize.width - d.value,
1109
+ cellHeight: a.value.cellSize.height - d.value,
1110
+ maxFontSize: e.value.style.layout.cells.value.fontSize,
1111
+ minFontSize: 10,
1112
+ index: s * Y.value + c,
1113
+ reportHide: xl,
1114
+ reportRotation: bl,
1115
+ hideAll: ml.value,
1116
+ rotateAll: gl.value
1117
+ }]
1118
+ ]) : g("", !0)
1119
+ ]))), 256))
1120
+ ], 64))), 256))
1121
+ ], 512),
1122
+ e.value.style.layout.cells.rowTotal.color.show ? (u(), i("g", {
1123
+ key: 2,
1124
+ ref_key: "yAxisSumRects",
1125
+ ref: nl
1126
+ }, [
1127
+ (u(!0), i(O, null, U($.value, (l, s) => (u(), i(O, null, [
1128
+ p("rect", {
1129
+ x: a.value.left,
1130
+ y: a.value.top + a.value.cellSize.height * s,
1131
+ width: a.value.sumCellXHeight,
1132
+ height: a.value.cellSize.height - d.value,
1133
+ fill: e.value.style.layout.cells.colors.underlayer,
1134
+ stroke: e.value.style.backgroundColor,
1135
+ "stroke-width": d.value
1136
+ }, null, 8, Ia),
1137
+ p("rect", {
1138
+ x: a.value.left,
1139
+ y: a.value.top + a.value.cellSize.height * s + d.value / 2,
1140
+ width: a.value.sumCellXHeight,
1141
+ height: a.value.cellSize.height - d.value,
1142
+ fill: x.value.yTotals[s].color,
1143
+ stroke: e.value.style.backgroundColor,
1144
+ "stroke-width": d.value
1145
+ }, null, 8, Oa)
1146
+ ], 64))), 256))
1147
+ ], 512)) : g("", !0),
1148
+ e.value.style.layout.dataLabels.yAxis.show ? (u(), i("g", {
1149
+ key: 3,
1150
+ ref_key: "yAxisLabels",
1151
+ ref: kt
1152
+ }, [
1153
+ (u(!0), i(O, null, U($.value, (l, s) => (u(), i(O, null, [
1154
+ p("text", {
1155
+ class: "vue-ui-heatmap-row-name",
1156
+ "font-size": e.value.style.layout.dataLabels.yAxis.fontSize,
1157
+ fill: e.value.style.layout.dataLabels.yAxis.color,
1158
+ x: ve.value,
1159
+ y: a.value.top + a.value.cellSize.height * s + a.value.cellSize.height / 2 + e.value.style.layout.dataLabels.yAxis.fontSize / 3 + e.value.style.layout.dataLabels.yAxis.offsetY - (e.value.style.layout.cells.rowTotal.value.show ? e.value.style.layout.dataLabels.yAxis.fontSize / 1.5 : 0),
1160
+ "text-anchor": "end",
1161
+ "font-weight": e.value.style.layout.dataLabels.yAxis.bold ? "bold" : "normal"
1162
+ }, I(x.value.yLabels[s]), 9, Ma),
1163
+ e.value.style.layout.cells.rowTotal.value.show ? (u(), i("text", {
1164
+ key: 0,
1165
+ class: "vue-ui-heatmap-row-total",
1166
+ "font-size": e.value.style.layout.dataLabels.yAxis.fontSize,
1167
+ fill: e.value.style.layout.dataLabels.yAxis.color,
1168
+ x: ve.value,
1169
+ y: a.value.top + a.value.cellSize.height * s + a.value.cellSize.height / 2 + e.value.style.layout.dataLabels.yAxis.fontSize + e.value.style.layout.dataLabels.yAxis.offsetY,
1170
+ "text-anchor": "end",
1171
+ "font-weight": e.value.style.layout.dataLabels.yAxis.bold ? "bold" : "normal"
1172
+ }, I(Cl(s)), 9, Na)) : g("", !0)
1173
+ ], 64))), 256))
1174
+ ], 512)) : g("", !0),
1175
+ e.value.style.layout.dataLabels.xAxis.show ? (u(), i("g", {
1176
+ key: 4,
1177
+ ref_key: "xAxisLabels",
1178
+ ref: qe
1179
+ }, [
1180
+ (u(!0), i(O, null, U(x.value.xLabels, (l, s) => (u(), i(O, null, [
1181
+ !e.value.style.layout.dataLabels.xAxis.showOnlyAtModulo || e.value.style.layout.dataLabels.xAxis.showOnlyAtModulo && s % e.value.style.layout.dataLabels.xAxis.showOnlyAtModulo === 0 ? (u(), i("text", {
1182
+ key: 0,
1183
+ class: "vue-ui-heatmap-col-name",
1184
+ "text-anchor": e.value.style.layout.dataLabels.xAxis.rotation === 0 ? "middle" : e.value.style.layout.dataLabels.xAxis.rotation < 0 ? "start" : "end",
1185
+ "font-size": e.value.style.layout.dataLabels.xAxis.fontSize,
1186
+ fill: e.value.style.layout.dataLabels.xAxis.color,
1187
+ "font-weight": e.value.style.layout.dataLabels.xAxis.bold ? "bold" : "normal",
1188
+ transform: `translate(${a.value.left + a.value.cellSize.width / 2 + a.value.width / x.value.xLabels.length * s + e.value.style.layout.dataLabels.xAxis.offsetX + a.value.sumCellXHeight}, ${a.value.topLabelsHeight}), rotate(${e.value.style.layout.dataLabels.xAxis.rotation})`
1189
+ }, I(l), 9, Fa)) : g("", !0)
1190
+ ], 64))), 256))
1191
+ ], 512)) : g("", !0),
1192
+ e.value.style.layout.cells.columnTotal.value.show ? (u(), i("g", {
1193
+ key: 5,
1194
+ ref_key: "xAxisSums",
1195
+ ref: je
1196
+ }, [
1197
+ (u(!0), i(O, null, U(x.value.xLabels, (l, s) => (u(), i("text", {
1198
+ class: "vue-ui-heatmap-col-total",
1199
+ "text-anchor": e.value.style.layout.cells.columnTotal.value.rotation === 0 ? "middle" : e.value.style.layout.cells.columnTotal.value.rotation < 0 ? "end" : "start",
1200
+ "font-size": e.value.style.layout.dataLabels.xAxis.fontSize,
1201
+ fill: e.value.style.layout.dataLabels.xAxis.color,
1202
+ "font-weight": e.value.style.layout.dataLabels.xAxis.bold ? "bold" : "normal",
1203
+ transform: `translate(${a.value.left + a.value.cellSize.width / 2 + a.value.width / x.value.xLabels.length * s + e.value.style.layout.dataLabels.xAxis.offsetX + e.value.style.layout.cells.columnTotal.value.offsetX + a.value.sumCellXHeight}, ${a.value.bottom + e.value.style.layout.dataLabels.xAxis.fontSize / 2}), rotate(${e.value.style.layout.cells.columnTotal.value.rotation})`
1204
+ }, I(Al(s)), 9, Ra))), 256))
1205
+ ], 512)) : g("", !0),
1206
+ R.value ? (u(), i("g", Pa, [
1207
+ p("rect", {
1208
+ style: { "pointer-events": "none" },
1209
+ x: R.value.x - e.value.style.layout.cells.selected.border / 2 + d.value + a.value.sumCellXHeight,
1210
+ y: R.value.y - e.value.style.layout.cells.selected.border / 2 + d.value,
1211
+ width: a.value.cellSize.width - d.value + e.value.style.layout.cells.selected.border - d.value,
1212
+ height: a.value.cellSize.height - d.value + e.value.style.layout.cells.selected.border - d.value,
1213
+ fill: "transparent",
1214
+ stroke: e.value.style.layout.cells.selected.color,
1215
+ "stroke-width": e.value.style.layout.cells.selected.border,
1216
+ rx: 1
1217
+ }, null, 8, Da)
1218
+ ])) : g("", !0),
1219
+ e.value.style.layout.crosshairs.show && R.value ? (u(), i("g", Ha, [
1220
+ p("line", {
1221
+ x1: a.value.left + a.value.sumCellXHeight,
1222
+ x2: R.value.x + a.value.sumCellXHeight,
1223
+ y1: R.value.y + (a.value.cellSize.height - d.value) / 2,
1224
+ y2: R.value.y + (a.value.cellSize.height - d.value) / 2,
1225
+ stroke: e.value.style.layout.crosshairs.stroke,
1226
+ "stroke-width": e.value.style.layout.crosshairs.strokeWidth,
1227
+ "stroke-dasharray": e.value.style.layout.crosshairs.strokeDasharray,
1228
+ "stroke-linecap": "round"
1229
+ }, null, 8, Ea),
1230
+ p("line", {
1231
+ x1: R.value.x + a.value.sumCellXHeight + (a.value.cellSize.width - d.value) / 2,
1232
+ x2: R.value.x + a.value.sumCellXHeight + (a.value.cellSize.width - d.value) / 2,
1233
+ y1: R.value.y,
1234
+ y2: a.value.top,
1235
+ stroke: e.value.style.layout.crosshairs.stroke,
1236
+ "stroke-width": e.value.style.layout.crosshairs.strokeWidth,
1237
+ "stroke-dasharray": e.value.style.layout.crosshairs.strokeDasharray,
1238
+ "stroke-linecap": "round"
1239
+ }, null, 8, Va)
1240
+ ])) : g("", !0),
1241
+ m(t.$slots, "svg", {
1242
+ svg: {
1243
+ ...D.value,
1244
+ isPrintingImg: n(tt) | n(lt) | Ne.value,
1245
+ isPrintingSvg: Fe.value
1246
+ }
1247
+ }, void 0, !0)
1248
+ ], 46, Aa)),
1249
+ e.value.style.legend.show ? (u(), i("div", {
1250
+ key: 0,
1251
+ ref_key: "legendRight",
1252
+ ref: ul,
1253
+ class: "vue-ui-heatmap-legend-right",
1254
+ style: L({
1255
+ "--legend-width": e.value.style.legend.width + "px"
1256
+ })
1257
+ }, [
1258
+ n(He) ? g("", !0) : (u(), i("div", {
1259
+ key: 0,
1260
+ class: "vue-ui-heatmap-legend-label-max",
1261
+ style: L({
1262
+ fontSize: e.value.style.legend.fontSize + "px",
1263
+ color: e.value.style.legend.color
1264
+ })
1265
+ }, I(n(le)(
1266
+ e.value.style.layout.cells.value.formatter,
1267
+ n(ae)(Z.value),
1268
+ n(q)({
1269
+ p: e.value.style.layout.dataLabels.prefix,
1270
+ v: n(ae)(Z.value),
1271
+ s: e.value.style.layout.dataLabels.suffix,
1272
+ r: e.value.style.legend.roundingValue
1273
+ })
1274
+ )), 5)),
1275
+ p("div", Xa, [
1276
+ p("div", {
1277
+ class: "vue-ui-heatmap-gauge",
1278
+ style: L({
1279
+ background: `linear-gradient(to bottom, ${e.value.style.layout.cells.colors.hot}, ${e.value.style.layout.cells.colors.cold})`
1280
+ })
1281
+ }, [
1282
+ Qt(p("div", {
1283
+ class: "vue-ui-heatmap-gauge-indicator",
1284
+ "data-value": n(le)(
1285
+ e.value.style.layout.cells.value.formatter,
1286
+ n(ae)(V.value),
1287
+ n(q)({
1288
+ p: e.value.style.layout.dataLabels.prefix,
1289
+ v: n(ae)(V.value),
1290
+ s: e.value.style.layout.dataLabels.suffix,
1291
+ r: e.value.style.legend.roundingValue
1292
+ })
1293
+ ),
1294
+ style: L({
1295
+ position: "absolute",
1296
+ width: "100%",
1297
+ height: "2px",
1298
+ background: [void 0, null].includes(V.value) ? "transparent" : n(Ge)(Ee.value.datapoint.color),
1299
+ top: `${[void 0, null].includes(V.value) ? 0 : (1 - V.value / Z.value) * 100}%`,
1300
+ transition: "all 0.2s ease-in-out",
1301
+ "--background-color": e.value.style.backgroundColor,
1302
+ "--gauge-arrow-color": n(Ge)(e.value.style.backgroundColor),
1303
+ "--gauge-arrow-text-color": n(Ge)(e.value.style.backgroundColor),
1304
+ "--gauge-arrow-value": V.value,
1305
+ "--gauge-arrow-font-size": e.value.style.legend.fontSize + "px"
1306
+ })
1307
+ }, [
1308
+ p("div", Ua, I(n(le)(
1309
+ e.value.style.layout.cells.value.formatter,
1310
+ n(ae)(V.value),
1311
+ n(q)({
1312
+ p: e.value.style.layout.dataLabels.prefix,
1313
+ v: n(ae)(V.value),
1314
+ s: e.value.style.layout.dataLabels.suffix,
1315
+ r: e.value.style.legend.roundingValue
1316
+ })
1317
+ )), 1)
1318
+ ], 12, Ba), [
1319
+ [Yl, ![void 0, null].includes(V.value)]
1320
+ ])
1321
+ ], 4)
1322
+ ]),
1323
+ n(He) ? g("", !0) : (u(), i("div", {
1324
+ key: 1,
1325
+ class: "vue-ui-heatmap-legend-label-min",
1326
+ style: L({
1327
+ fontSize: e.value.style.legend.fontSize + "px",
1328
+ color: e.value.style.legend.color
1329
+ })
1330
+ }, I(n(le)(
1331
+ e.value.style.layout.cells.value.formatter,
1332
+ n(ae)(Se.value),
1333
+ n(q)({
1334
+ p: e.value.style.layout.dataLabels.prefix,
1335
+ v: n(ae)(Se.value),
1336
+ s: e.value.style.layout.dataLabels.suffix,
1337
+ r: e.value.style.legend.roundingValue
1338
+ })
1339
+ )), 5))
1340
+ ], 4)) : g("", !0),
1341
+ t.$slots.hint ? (u(), i("div", Ga, [
1342
+ m(t.$slots, "hint", H(E({ hint: e.value.a11y.translations.keyboardNavigation, isVisible: Pe.value })), void 0, !0)
1343
+ ])) : g("", !0)
1344
+ ], 2),
1345
+ t.$slots.watermark ? (u(), i("div", Wa, [
1346
+ m(t.$slots, "watermark", H(E({ isPrinting: n(tt) || n(lt) || Ne.value || Fe.value })), void 0, !0)
1347
+ ])) : g("", !0),
1348
+ t.$slots.source ? (u(), i("div", {
1349
+ key: 6,
1350
+ ref_key: "source",
1351
+ ref: Ct,
1352
+ dir: "auto"
1353
+ }, [
1354
+ m(t.$slots, "source", {}, void 0, !0)
1355
+ ], 512)) : g("", !0),
1356
+ Ue(n(J), {
1357
+ teleportTo: e.value.style.tooltip.teleportTo,
1358
+ show: P.value.showTooltip && ne.value,
1359
+ backgroundColor: e.value.style.tooltip.backgroundColor,
1360
+ color: e.value.style.tooltip.color,
1361
+ borderRadius: e.value.style.tooltip.borderRadius,
1362
+ borderColor: e.value.style.tooltip.borderColor,
1363
+ borderWidth: e.value.style.tooltip.borderWidth,
1364
+ fontSize: e.value.style.tooltip.fontSize,
1365
+ backgroundOpacity: e.value.style.tooltip.backgroundOpacity,
1366
+ position: e.value.style.tooltip.position,
1367
+ offsetY: e.value.style.tooltip.offsetY,
1368
+ parent: M.value,
1369
+ content: Ke.value,
1370
+ isFullscreen: de.value,
1371
+ isCustom: e.value.style.tooltip.customFormat && typeof e.value.style.tooltip.customFormat == "function",
1372
+ smooth: e.value.style.tooltip.smooth,
1373
+ backdropFilter: e.value.style.tooltip.backdropFilter,
1374
+ smoothForce: e.value.style.tooltip.smoothForce,
1375
+ smoothSnapThreshold: e.value.style.tooltip.smoothSnapThreshold,
1376
+ isA11yMode: Je.value === "keyboard",
1377
+ a11yPosition: At.value
1378
+ }, {
1379
+ "tooltip-before": C(() => [
1380
+ m(t.$slots, "tooltip-before", H(E({ ...Ee.value })), void 0, !0)
1381
+ ]),
1382
+ "tooltip-after": C(() => [
1383
+ m(t.$slots, "tooltip-after", H(E({ ...Ee.value })), void 0, !0)
1384
+ ]),
1385
+ _: 3
1386
+ }, 8, ["teleportTo", "show", "backgroundColor", "color", "borderRadius", "borderColor", "borderWidth", "fontSize", "backgroundOpacity", "position", "offsetY", "parent", "content", "isFullscreen", "isCustom", "smooth", "backdropFilter", "smoothForce", "smoothSnapThreshold", "isA11yMode", "a11yPosition"]),
1387
+ X.value && e.value.userOptions.buttons.table ? (u(), me(ql(Xe.value.component), jl({ key: 7 }, Xe.value.props, {
1388
+ ref_key: "tableUnit",
1389
+ ref: ke,
1390
+ onClose: nt
1391
+ }), Jt({
1392
+ content: C(() => [
1393
+ p("div", {
1394
+ ref_key: "tableContainer",
1395
+ ref: bt,
1396
+ class: "vue-ui-heatmap-table atom-data-table",
1397
+ style: L(`${e.value.table.useDialog ? "" : "max-height: 300px; margin-top: 24px;"}`)
1398
+ }, [
1399
+ p("div", {
1400
+ style: L(`width:100%;overflow-x:auto;position:relative;${e.value.table.useDialog ? "" : "padding-top:36px"};`),
1401
+ class: Oe({ "vue-ui-responsive": n(Tl) })
1402
+ }, [
1403
+ e.value.table.useDialog ? g("", !0) : (u(), i("div", {
1404
+ key: 0,
1405
+ role: "button",
1406
+ tabindex: "0",
1407
+ style: L(`width:32px; position: absolute; top: 0; left:4px; padding: 0 0px; display: flex; align-items:center;justify-content:center;height: 36px; width: 32px; cursor:pointer; background:${e.value.table.th.backgroundColor};`),
1408
+ onClick: nt,
1409
+ onKeypress: Jl(nt, ["enter"])
1410
+ }, [
1411
+ Ue(n(se), {
1412
+ name: "close",
1413
+ stroke: e.value.table.th.color,
1414
+ "stroke-width": 2
1415
+ }, null, 8, ["stroke"])
1416
+ ], 36)),
1417
+ p("table", Ka, [
1418
+ e.value.table.useDialog ? g("", !0) : (u(), i("caption", {
1419
+ key: 0,
1420
+ style: L(`backgroundColor:${e.value.table.th.backgroundColor};color:${e.value.table.th.color};outline:${e.value.table.th.outline}`)
1421
+ }, [
1422
+ dt(I(e.value.style.title.text) + " ", 1),
1423
+ e.value.style.title.subtitle.text ? (u(), i("span", Ya, I(e.value.style.title.subtitle.text), 1)) : g("", !0)
1424
+ ], 4)),
1425
+ p("thead", null, [
1426
+ p("tr", {
1427
+ role: "row",
1428
+ style: L(`background:${e.value.table.th.backgroundColor};color:${e.value.table.th.color}`)
1429
+ }, [
1430
+ p("th", {
1431
+ style: L(`outline:${e.value.table.th.outline};padding-right:6px`)
1432
+ }, null, 4),
1433
+ (u(!0), i(O, null, U(h.dataset, (l, s) => (u(), i("th", {
1434
+ align: "right",
1435
+ style: L(`outline:${e.value.table.th.outline};padding-right:6px`)
1436
+ }, I(l.name), 5))), 256))
1437
+ ], 4)
1438
+ ]),
1439
+ p("tbody", null, [
1440
+ (u(!0), i(O, null, U(x.value.xLabels, (l, s) => (u(), i("tr", {
1441
+ role: "row",
1442
+ class: Oe({ "vue-ui-data-table__tbody__row": !0, "vue-ui-data-table__tbody__row-even": s % 2 === 0, "vue-ui-data-table__tbody__row-odd": s % 2 !== 0 }),
1443
+ style: L(`background:${e.value.table.td.backgroundColor};color:${e.value.table.td.color}`)
1444
+ }, [
1445
+ p("td", {
1446
+ "data-cell": e.value.table.colNames.xAxis,
1447
+ class: "vue-ui-data-table__tbody__td",
1448
+ style: L(`outline:${e.value.table.td.outline}`)
1449
+ }, [
1450
+ p("div", ja, I(l), 1)
1451
+ ], 12, qa),
1452
+ (u(!0), i(O, null, U(h.dataset, (r, c) => (u(), i("td", {
1453
+ class: "vue-ui-data-table__tbody__td",
1454
+ "data-cell": h.dataset[c].name,
1455
+ style: L(`outline:${e.value.table.td.outline}`)
1456
+ }, [
1457
+ p("div", Qa, I(isNaN(r.values[s]) ? "-" : n(q)({ p: e.value.style.layout.dataLabels.prefix, v: r.values[s], s: e.value.style.layout.dataLabels.suffix, r: e.value.table.td.roundingValue })), 1)
1458
+ ], 12, Ja))), 256))
1459
+ ], 6))), 256))
1460
+ ])
1461
+ ])
1462
+ ], 6)
1463
+ ], 4)
1464
+ ]),
1465
+ _: 2
1466
+ }, [
1467
+ e.value.table.useDialog ? {
1468
+ name: "title",
1469
+ fn: C(() => [
1470
+ dt(I(Xe.value.title), 1)
1471
+ ]),
1472
+ key: "0"
1473
+ } : void 0,
1474
+ e.value.table.useDialog ? {
1475
+ name: "actions",
1476
+ fn: C(() => [
1477
+ p("button", {
1478
+ tabindex: "0",
1479
+ class: "vue-ui-user-options-button",
1480
+ onClick: o[0] || (o[0] = (l) => st(e.value.userOptions.callbacks.csv)),
1481
+ style: L({ cursor: De.value ? "pointer" : "default" })
1482
+ }, [
1483
+ Ue(n(se), {
1484
+ name: "fileCsv",
1485
+ stroke: Xe.value.props.color
1486
+ }, null, 8, ["stroke"])
1487
+ ], 4)
1488
+ ]),
1489
+ key: "1"
1490
+ } : void 0
1491
+ ]), 1040)) : g("", !0),
1492
+ m(t.$slots, "skeleton", {}, () => [
1493
+ n(He) ? (u(), me(ra, { key: 0 })) : g("", !0)
1494
+ ], !0)
1495
+ ], 46, ka));
1496
+ }
1497
+ }, ko = /* @__PURE__ */ xa(Za, [["__scopeId", "data-v-2ff442c5"]]);
1498
+ export {
1499
+ ko as default
1500
+ };