vue-data-ui 3.22.0 → 3.22.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/dist/{Arrow-_pDGXl76.js → Arrow-BGhJI-qh.js} +1 -1
  2. package/dist/{BaseDraggableDialog-O8jn9Lvi.js → BaseDraggableDialog-a9xCKjW-.js} +2 -2
  3. package/dist/{BaseIcon-CWXbczu_.js → BaseIcon-DEtwcvEH.js} +1 -1
  4. package/dist/{BaseLegendToggle-CUYal8mC.js → BaseLegendToggle-B-lM0iV1.js} +1 -1
  5. package/dist/{BaseZoomControls-JwSGzoKi.js → BaseZoomControls-BjjT6vtB.js} +2 -2
  6. package/dist/{ColorPicker-CCqmzGGo.js → ColorPicker-DMLahA2S.js} +2 -2
  7. package/dist/{DataTable-G9aclxhk.js → DataTable-DJZgdnIn.js} +2 -2
  8. package/dist/{Legend-CAStwHdx.js → Legend-BVDhEEsC.js} +2 -2
  9. package/dist/{NonSvgPenAndPaper-BLy8zMox.js → NonSvgPenAndPaper-Dwq_M6Bz.js} +13 -13
  10. package/dist/{PackageVersion-DxBQctV8.js → PackageVersion-Dx81ZIAL.js} +1 -1
  11. package/dist/{PenAndPaper-z1woaB1V.js → PenAndPaper-DJIIG6dv.js} +13 -13
  12. package/dist/{Shape-BubavoqO.js → Shape-C5OvuwII.js} +1 -1
  13. package/dist/{Slicer-JCOpjPU7.js → Slicer-ClR833cP.js} +2 -2
  14. package/dist/{SlicerPreview-BA_RDgVn.js → SlicerPreview-CAhqG_ZQ.js} +12 -12
  15. package/dist/{SparkTooltip-DMFXQmFi.js → SparkTooltip-DTzo8Sah.js} +6 -6
  16. package/dist/{Title-DH6G8_cZ.js → Title-CVYf1f8m.js} +1 -1
  17. package/dist/{Tooltip-979Ytd8R.js → Tooltip-BmGCBJuU.js} +1 -1
  18. package/dist/{UserOptions-rx9hUnOy.js → UserOptions-xqbNpHi2.js} +2 -2
  19. package/dist/components/arrow.js +1 -1
  20. package/dist/components/vue-ui-3d-bar.js +1 -1
  21. package/dist/components/vue-ui-accordion.js +1 -1
  22. package/dist/components/vue-ui-age-pyramid.js +1 -1
  23. package/dist/components/vue-ui-annotator.js +1 -1
  24. package/dist/components/vue-ui-bullet.js +1 -1
  25. package/dist/components/vue-ui-bump.js +1 -1
  26. package/dist/components/vue-ui-candlestick.js +1 -1
  27. package/dist/components/vue-ui-carousel-table.js +1 -1
  28. package/dist/components/vue-ui-chestnut.js +1 -1
  29. package/dist/components/vue-ui-chord.js +1 -1
  30. package/dist/components/vue-ui-circle-pack.js +1 -1
  31. package/dist/components/vue-ui-cursor.js +1 -1
  32. package/dist/components/vue-ui-dag.js +1 -1
  33. package/dist/components/vue-ui-dashboard.js +1 -1
  34. package/dist/components/vue-ui-digits.js +1 -1
  35. package/dist/components/vue-ui-donut-evolution.js +1 -1
  36. package/dist/components/vue-ui-donut.js +1 -1
  37. package/dist/components/vue-ui-dumbbell.js +1 -1
  38. package/dist/components/vue-ui-flow.js +1 -1
  39. package/dist/components/vue-ui-funnel.js +1 -1
  40. package/dist/components/vue-ui-galaxy.js +1 -1
  41. package/dist/components/vue-ui-gauge.js +1 -1
  42. package/dist/components/vue-ui-geo.js +1 -1
  43. package/dist/components/vue-ui-gizmo.js +1 -1
  44. package/dist/components/vue-ui-heatmap.js +1 -1
  45. package/dist/components/vue-ui-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-CtV3uxDJ.js → dom-to-png-rjAIVHxa.js} +1 -1
  89. package/dist/exposedLib-CffbQxjN.js +19 -0
  90. package/dist/{img-C_RNNswI.js → img-BCAOkqfM.js} +1 -1
  91. package/dist/{labelUtils-Bycs-017.js → labelUtils-C0D1tjig.js} +1 -1
  92. package/dist/{lib-AJRHFE5U.js → lib-CXicicWN.js} +155 -126
  93. package/dist/{package-0oRlvBuX.js → package-CILLITOI.js} +1 -1
  94. package/dist/{pdf-CdX23zf1.js → pdf-ChYv2jb6.js} +1 -1
  95. package/dist/{render-common-DSiH7qj-.js → render-common-bMAFQ_qf.js} +2 -2
  96. package/dist/ssr/vue-ui-donut.js +1 -1
  97. package/dist/ssr/vue-ui-xy.js +1 -1
  98. package/dist/ssr.js +2 -2
  99. package/dist/style.css +1 -1
  100. package/dist/types/vue-data-ui.d.ts +7 -10
  101. package/dist/{useAutoSizeLabelsInsideViewbox-kjVKQz36.js → useAutoSizeLabelsInsideViewbox-B4-0yo3K.js} +1 -1
  102. package/dist/{useConfig-Br1uzq_L.js → useConfig-Bf_EBbe3.js} +4 -1
  103. package/dist/{useNestedProp-DtcXIg7n.js → useNestedProp-APyFoLCQ.js} +1 -1
  104. package/dist/{useObjectBindings-CxQ6A5pi.js → useObjectBindings-Byts-nf-.js} +1 -1
  105. package/dist/{usePrinter-6n2MzVyV.js → usePrinter-Dng0UK-G.js} +2 -2
  106. package/dist/utils.js +3 -3
  107. package/dist/{vue-data-ui-DoViN_4r.js → vue-data-ui-DD-txoS1.js} +68 -68
  108. package/dist/vue-data-ui.js +72 -72
  109. package/dist/vue-ui-3d-bar-DxfNdF2e.js +1757 -0
  110. package/dist/{vue-ui-accordion-HvsT8_RM.js → vue-ui-accordion-Di_givzQ.js} +4 -4
  111. package/dist/vue-ui-age-pyramid-CTwMfsqS.js +1238 -0
  112. package/dist/{vue-ui-annotator-7s5ly6XJ.js → vue-ui-annotator-tRkLFMQ9.js} +60 -60
  113. package/dist/{vue-ui-bullet-B-bWGz6d.js → vue-ui-bullet-9gtGJaGb.js} +23 -23
  114. package/dist/{vue-ui-bump-DM-hF-AK.js → vue-ui-bump-BJ5O8Mps.js} +400 -400
  115. package/dist/{vue-ui-candlestick-BfOvntqR.js → vue-ui-candlestick-CJ_VVYbJ.js} +50 -50
  116. package/dist/vue-ui-carousel-table-8s8BSy-K.js +455 -0
  117. package/dist/vue-ui-chestnut-D3-ck2h2.js +2010 -0
  118. package/dist/vue-ui-chord-1BitQtEw.js +1391 -0
  119. package/dist/{vue-ui-circle-pack-BBaRLELd.js → vue-ui-circle-pack-DVMhDFKU.js} +44 -44
  120. package/dist/{vue-ui-cursor-DWlKtcab.js → vue-ui-cursor-D7yh10hX.js} +61 -61
  121. package/dist/{vue-ui-dag-BAKU4jBj.js → vue-ui-dag--LFEAAf_.js} +18 -18
  122. package/dist/{vue-ui-dashboard-DE4R55nU.js → vue-ui-dashboard-COeO878g.js} +70 -70
  123. package/dist/{vue-ui-digits-B416Mj46.js → vue-ui-digits-C50FVr7C.js} +4 -4
  124. package/dist/{vue-ui-donut-BuGSF4pM.js → vue-ui-donut-BzKXqQA2.js} +160 -160
  125. package/dist/{vue-ui-donut-BugVAUHv.js → vue-ui-donut-NHjQzFO5.js} +474 -474
  126. package/dist/vue-ui-donut-evolution-lPkwit2C.js +1510 -0
  127. package/dist/vue-ui-dumbbell-hlEfvbbf.js +1530 -0
  128. package/dist/{vue-ui-flow-BoEP6hmg.js → vue-ui-flow-Bg_OSszc.js} +43 -43
  129. package/dist/vue-ui-funnel-B_bK0jJB.js +777 -0
  130. package/dist/{vue-ui-galaxy-CB5F8Q-u.js → vue-ui-galaxy-WVCUzcYc.js} +301 -301
  131. package/dist/vue-ui-gauge-Cqeko0wA.js +920 -0
  132. package/dist/{vue-ui-geo-BAy4kNv-.js → vue-ui-geo-DtzXRvmx.js} +22 -22
  133. package/dist/{vue-ui-gizmo-DjA8cqcl.js → vue-ui-gizmo-hIFd7qck.js} +4 -4
  134. package/dist/{vue-ui-heatmap-CMlxUI7Q.js → vue-ui-heatmap-yPlwc3l_.js} +95 -95
  135. package/dist/vue-ui-history-plot-BGmcDg2w.js +1554 -0
  136. package/dist/{vue-ui-horizontal-bar-XgzEVwOK.js → vue-ui-horizontal-bar-CJciNHpT.js} +264 -264
  137. package/dist/{vue-ui-kpi-B5Lu5U1S.js → vue-ui-kpi-DmSe1QGb.js} +4 -4
  138. package/dist/{vue-ui-mini-loader-CyYpLcrt.js → vue-ui-mini-loader-CqxI6DwN.js} +3 -3
  139. package/dist/{vue-ui-molecule-DzpgAmZn.js → vue-ui-molecule-w-94Uktn.js} +181 -181
  140. package/dist/{vue-ui-mood-radar-DMgYQtOw.js → vue-ui-mood-radar-B3OGWGHR.js} +29 -29
  141. package/dist/{vue-ui-nested-donuts-BHX0QqvR.js → vue-ui-nested-donuts-Dv_yE5EV.js} +211 -211
  142. package/dist/{vue-ui-onion-CYh7tdS0.js → vue-ui-onion-BQbI0Vxd.js} +34 -34
  143. package/dist/{vue-ui-parallel-coordinate-plot-BTaG92hV.js → vue-ui-parallel-coordinate-plot-ColST3Jj.js} +40 -40
  144. package/dist/vue-ui-quadrant-BB7qdXK0.js +1978 -0
  145. package/dist/{vue-ui-quick-chart-CHSUGLTx.js → vue-ui-quick-chart-CGDeo3Fx.js} +358 -358
  146. package/dist/vue-ui-radar-DqDn14DL.js +1281 -0
  147. package/dist/{vue-ui-rating-BoBLJm55.js → vue-ui-rating-ChDwpol2.js} +34 -34
  148. package/dist/vue-ui-relation-circle-BvfZqcK0.js +924 -0
  149. package/dist/{vue-ui-ridgeline-q_UhtM4M.js → vue-ui-ridgeline-Cq8z57xB.js} +219 -219
  150. package/dist/{vue-ui-rings-VOjUZu2b.js → vue-ui-rings-Ds-sgNPK.js} +36 -36
  151. package/dist/{vue-ui-scatter-DETMofE2.js → vue-ui-scatter-BgOVUzQ3.js} +75 -75
  152. package/dist/{vue-ui-skeleton-D36VILNm.js → vue-ui-skeleton-DJ5KAbfV.js} +42 -42
  153. package/dist/{vue-ui-smiley-CPbUSUTQ.js → vue-ui-smiley-fFrNX-Gl.js} +17 -17
  154. package/dist/{vue-ui-spark-trend-XpEbgNeK.js → vue-ui-spark-trend-D6OBWxmg.js} +92 -92
  155. package/dist/{vue-ui-sparkbar-Dq1hnBhL.js → vue-ui-sparkbar-CtCP8O44.js} +78 -78
  156. package/dist/{vue-ui-sparkgauge-CbAakuhB.js → vue-ui-sparkgauge-CZDkyViI.js} +38 -38
  157. package/dist/vue-ui-sparkhistogram-DgruLf33.js +560 -0
  158. package/dist/vue-ui-sparkline-CJKE7Xcl.js +1547 -0
  159. package/dist/{vue-ui-sparkstackbar-OprYrGQQ.js → vue-ui-sparkstackbar-BSV0M-2u.js} +162 -162
  160. package/dist/{vue-ui-stackbar-Bt0FKlf7.js → vue-ui-stackbar-pnlYCnTj.js} +67 -67
  161. package/dist/vue-ui-stackline-DS_MPmc1.js +2398 -0
  162. package/dist/{vue-ui-strip-plot-DdzflSOm.js → vue-ui-strip-plot-DSKOrJZX.js} +49 -49
  163. package/dist/{vue-ui-table-BZbLau0d.js → vue-ui-table-c1FPEwLM.js} +87 -87
  164. package/dist/{vue-ui-table-heatmap-DX80uRHe.js → vue-ui-table-heatmap-CMQJXnP8.js} +17 -17
  165. package/dist/vue-ui-table-sparkline-CAS9Pk60.js +712 -0
  166. package/dist/vue-ui-thermometer-w3eeJv9s.js +763 -0
  167. package/dist/{vue-ui-timer-smc39MBP.js → vue-ui-timer-CSP48eS-.js} +6 -6
  168. package/dist/{vue-ui-tiremarks-MwPUc9H4.js → vue-ui-tiremarks-DJvXj1P3.js} +19 -19
  169. package/dist/vue-ui-treemap-BaOMXTR1.js +1587 -0
  170. package/dist/vue-ui-waffle-Bo22Ph8n.js +1362 -0
  171. package/dist/{vue-ui-wheel-VQ5Sc_Kt.js → vue-ui-wheel-CbL52G-w.js} +51 -51
  172. package/dist/vue-ui-word-cloud-BqOCyp7c.js +1723 -0
  173. package/dist/{vue-ui-world-Dq9I3omC.js → vue-ui-world-BkjzCcVh.js} +445 -445
  174. package/dist/{vue-ui-xy-BRITAMZZ.js → vue-ui-xy-CVDNhnDY.js} +162 -162
  175. package/dist/{vue-ui-xy-D4D9tjiY.js → vue-ui-xy-DuwLRfr4.js} +537 -534
  176. package/dist/{vue-ui-xy-canvas-CYQF5hVa.js → vue-ui-xy-canvas-CXqGVMeQ.js} +65 -65
  177. package/package.json +2 -2
  178. package/dist/exposedLib-BJbE_A8E.js +0 -19
  179. package/dist/vue-ui-3d-bar-BUEcrSrc.js +0 -1757
  180. package/dist/vue-ui-age-pyramid-Zw5otO78.js +0 -1238
  181. package/dist/vue-ui-carousel-table-CrmVyfym.js +0 -455
  182. package/dist/vue-ui-chestnut-BQq65pNh.js +0 -2010
  183. package/dist/vue-ui-chord-BA2jFRMP.js +0 -1391
  184. package/dist/vue-ui-donut-evolution-C6fXP7QH.js +0 -1510
  185. package/dist/vue-ui-dumbbell-1K5kOirf.js +0 -1530
  186. package/dist/vue-ui-funnel-CheSqvyj.js +0 -777
  187. package/dist/vue-ui-gauge-Cjtovl1s.js +0 -920
  188. package/dist/vue-ui-history-plot-PkrNUPpp.js +0 -1554
  189. package/dist/vue-ui-quadrant-C00cEk5o.js +0 -1978
  190. package/dist/vue-ui-radar-jNxRTIur.js +0 -1281
  191. package/dist/vue-ui-relation-circle-Ne_rI2jS.js +0 -924
  192. package/dist/vue-ui-sparkhistogram-DpPjIA7n.js +0 -560
  193. package/dist/vue-ui-sparkline-DLay6Hog.js +0 -1513
  194. package/dist/vue-ui-stackline-CrUTz-k1.js +0 -2398
  195. package/dist/vue-ui-table-sparkline-C3_J575b.js +0 -707
  196. package/dist/vue-ui-thermometer-Bo32hwAO.js +0 -763
  197. package/dist/vue-ui-treemap-BNG7Zc04.js +0 -1587
  198. package/dist/vue-ui-waffle-D-9Ny9vN.js +0 -1362
  199. package/dist/vue-ui-word-cloud-BqsUdsCY.js +0 -1656
@@ -1,2398 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { Bt as t, D as n, G as r, H as i, Ht as a, I as o, J as s, Ot as c, P as l, Pt as u, Rt as d, S as f, St as p, Tt as m, X as h, ct as g, g as _, gt as ee, h as te, ht as ne, i as re, it as ie, k as ae, nt as oe, s as se, t as ce, v as le, x as ue, y as de, zt as fe } from "./lib-AJRHFE5U.js";
3
- import { n as pe, r as me, t as he } from "./useTimeLabels-BmBRv27Y.js";
4
- import { t as ge } from "./useConfig-Br1uzq_L.js";
5
- import { t as _e } from "./usePrinter-6n2MzVyV.js";
6
- import { n as ve, t as ye } from "./BaseScanner-DZvpgOjM.js";
7
- import { t as be } from "./useSvgExport-SVIsDot8.js";
8
- import { t as xe } from "./useNestedProp-DtcXIg7n.js";
9
- import { t as Se } from "./useThemeCheck-C43Tcqmk.js";
10
- import { t as Ce } from "./useStableElementSize-C7KADDKj.js";
11
- import { t as we } from "./useTimeLabelCollider-AEcY4Ioe.js";
12
- import { t as Te } from "./img-C_RNNswI.js";
13
- import { n as Ee } from "./Title-DH6G8_cZ.js";
14
- import { t as De } from "./Shape-BubavoqO.js";
15
- import { t as Oe } from "./_plugin-vue_export-helper-B3ysoDQm.js";
16
- import { c as ke } from "./canvas-lib-BOP_HS11.js";
17
- import { t as Ae } from "./useResponsive-BfnK0KxU.js";
18
- import { t as je } from "./SlicerPreview-BA_RDgVn.js";
19
- import { t as Me } from "./BaseLegendToggle-CUYal8mC.js";
20
- import { t as Ne } from "./A11yDataTable-DdRsVULz.js";
21
- import { t as Pe } from "./useUserOptionState-DK-_1ddE.js";
22
- import { t as Fe } from "./useChartAccessibility-DYqac8yF.js";
23
- import { t as Ie } from "./Legend-CAStwHdx.js";
24
- import { t as Le } from "./vue_ui_stackline-DQqKPA9z.js";
25
- import { Fragment as v, Teleport as Re, computed as y, createBlock as b, createCommentVNode as x, createElementBlock as S, createElementVNode as C, createSlots as ze, createTextVNode as Be, createVNode as Ve, defineAsyncComponent as He, guardReactiveProps as w, mergeProps as Ue, nextTick as We, normalizeClass as Ge, normalizeProps as T, normalizeStyle as Ke, onBeforeUnmount as qe, onMounted as Je, openBlock as E, ref as D, renderList as O, renderSlot as k, resolveDynamicComponent as Ye, shallowRef as Xe, toDisplayString as A, toRefs as Ze, unref as j, useSlots as Qe, watch as $e, watchEffect as et, withCtx as M } from "vue";
26
- //#region src/components/vue-ui-stackline.vue
27
- var tt = /* @__PURE__ */ e({ default: () => Vt }), nt = ["id"], rt = ["id"], it = ["id"], at = { style: { position: "relative" } }, ot = [
28
- "aria-describedby",
29
- "xmlns",
30
- "viewBox"
31
- ], st = { key: 0 }, ct = [
32
- "x",
33
- "y",
34
- "width",
35
- "height"
36
- ], lt = { key: 1 }, ut = ["id"], dt = ["stop-color"], ft = ["stop-color"], pt = [
37
- "x1",
38
- "x2",
39
- "y1",
40
- "y2",
41
- "stroke",
42
- "stroke-width",
43
- "stroke-dasharray"
44
- ], mt = [
45
- "x1",
46
- "x2",
47
- "y1",
48
- "y2",
49
- "stroke",
50
- "stroke-width",
51
- "stroke-dasharray"
52
- ], ht = [
53
- "x1",
54
- "x2",
55
- "y1",
56
- "y2",
57
- "stroke",
58
- "stroke-width"
59
- ], gt = [
60
- "x1",
61
- "x2",
62
- "y1",
63
- "y2",
64
- "stroke",
65
- "stroke-width"
66
- ], _t = [
67
- "x",
68
- "y",
69
- "font-size",
70
- "fill",
71
- "font-weight"
72
- ], vt = [
73
- "transform",
74
- "font-size",
75
- "fill",
76
- "font-weight"
77
- ], yt = [
78
- "x",
79
- "y",
80
- "width",
81
- "height",
82
- "stroke",
83
- "stroke-width",
84
- "stroke-linecap",
85
- "stroke-linejoin",
86
- "stroke-dasharray"
87
- ], bt = [
88
- "d",
89
- "fill",
90
- "opacity"
91
- ], xt = [
92
- "d",
93
- "stroke",
94
- "stroke-width"
95
- ], St = [
96
- "x1",
97
- "x2",
98
- "y1",
99
- "y2",
100
- "stroke"
101
- ], Ct = [
102
- "x",
103
- "y",
104
- "font-size",
105
- "font-weight",
106
- "fill",
107
- "text-anchor"
108
- ], wt = { key: 0 }, Tt = { key: 1 }, Et = [
109
- "text-anchor",
110
- "font-size",
111
- "font-weight",
112
- "fill",
113
- "transform",
114
- "onClick"
115
- ], Dt = [
116
- "text-anchor",
117
- "font-size",
118
- "fill",
119
- "transform",
120
- "innerHTML",
121
- "onClick"
122
- ], Ot = [
123
- "x",
124
- "y",
125
- "height",
126
- "width",
127
- "fill"
128
- ], kt = { key: 0 }, At = [
129
- "x1",
130
- "x2",
131
- "y1",
132
- "y2",
133
- "stroke",
134
- "stroke-width",
135
- "stroke-dasharray"
136
- ], jt = { key: 0 }, Mt = [
137
- "x",
138
- "y",
139
- "font-size",
140
- "fill",
141
- "font-weight"
142
- ], Nt = [
143
- "x",
144
- "y",
145
- "font-size",
146
- "font-weight",
147
- "fill"
148
- ], Pt = ["data-start", "data-end"], Ft = {
149
- key: 0,
150
- style: {
151
- position: "absolute",
152
- top: "100%",
153
- left: "0",
154
- width: "100%"
155
- },
156
- "data-dom-to-png-ignore": "",
157
- "aria-hidden": "true"
158
- }, It = {
159
- key: 5,
160
- class: "vue-data-ui-watermark"
161
- }, Lt = ["onClick"], Rt = ["innerHTML"], zt = ["innerHTML"], Bt = ["id"], Vt = /*#__PURE__*/ Oe({
162
- __name: "vue-ui-stackline",
163
- props: {
164
- config: {
165
- type: Object,
166
- default() {
167
- return {};
168
- }
169
- },
170
- dataset: {
171
- type: Array,
172
- default() {
173
- return [];
174
- }
175
- },
176
- selectedXIndex: {
177
- type: Number,
178
- default: void 0
179
- }
180
- },
181
- emits: [
182
- "selectDatapoint",
183
- "selectLegend",
184
- "selectTimeLabel",
185
- "selectX",
186
- "copyAlt"
187
- ],
188
- setup(e, { expose: Oe, emit: tt }) {
189
- let Vt = He(() => import("./Tooltip-979Ytd8R.js")), Ht = He(() => import("./BaseIcon-CWXbczu_.js").then((e) => e.n)), Ut = He(() => import("./vue-ui-accordion-HvsT8_RM.js").then((e) => e.n)), Wt = He(() => import("./DataTable-G9aclxhk.js")), Gt = He(() => import("./PenAndPaper-z1woaB1V.js").then((e) => e.t)), Kt = He(() => import("./UserOptions-rx9hUnOy.js").then((e) => e.n)), qt = He(() => import("./PackageVersion-DxBQctV8.js").then((e) => e.t)), Jt = He(() => import("./BaseDraggableDialog-O8jn9Lvi.js").then((e) => e.n)), { vue_ui_stackline: Yt } = ge(), { isThemeValid: Xt, warnInvalidTheme: Zt } = Se(), Qt = Qe(), N = e, $t = tt, en = y({
190
- get() {
191
- return !!N.dataset && N.dataset.length;
192
- },
193
- set(e) {
194
- return e;
195
- }
196
- }), tn = D(null), P = D(i()), nn = D(!1), F = D([]), rn = D(0), an = D(null), on = D(null), sn = D(null), cn = D(null), ln = D(null), un = D(!1), dn = D(!1), fn = D(0), pn = D(0), mn = D(0), hn = D(!1), gn = D(null), _n = D(null), vn = D(!1), yn = D(!1), bn = D(!1), xn = D(null), Sn = D(null), Cn = D(null), wn = D(null), Tn = D(null), En = Xe(null), Dn = D(!1), On = D(0), kn = D(0), I = D(null), An = D({
197
- x: 0,
198
- y: 0
199
- }), jn = D("pointer"), Mn = Ce({
200
- elementRef: En,
201
- minimumWidth: 2,
202
- minimumHeight: 2,
203
- stableFramesRequired: 2,
204
- once: !1,
205
- onSizeAccepted: () => {
206
- Fn();
207
- }
208
- });
209
- function Nn() {
210
- En.value = tn.value?.parentNode ?? null;
211
- }
212
- function Pn() {
213
- return new Promise((e) => {
214
- requestAnimationFrame(() => {
215
- requestAnimationFrame(e);
216
- });
217
- });
218
- }
219
- async function Fn() {
220
- let e = ++kn.value;
221
- Dn.value = !1, await We(), await Pn(), await Pn(), e === kn.value && (On.value += 1, Dn.value = !0);
222
- }
223
- let In = D(null), Ln = D(!1);
224
- function Rn() {
225
- Ln.value = !Ln.value;
226
- }
227
- Je(() => {
228
- Nn(), Mn.start(), hn.value = !0, or(), Fn();
229
- });
230
- let L = D(qn()), R = y(() => L.value.userOptions.useCursorPointer), zn = y(() => a({
231
- defaultConfig: {
232
- userOptions: { show: !1 },
233
- useCssAnimation: !1,
234
- table: { show: !1 },
235
- tooltip: { show: !1 },
236
- style: { chart: {
237
- backgroundColor: "#99999930",
238
- lines: {
239
- totalValues: { show: !1 },
240
- dataLabels: { show: !1 }
241
- },
242
- grid: {
243
- frame: { stroke: "#6A6A6A" },
244
- scale: {
245
- scaleMin: 0,
246
- scaleMax: 144
247
- },
248
- x: {
249
- axisColor: "#6A6A6A",
250
- linesColor: "#6A6A6A",
251
- axisName: { show: !1 },
252
- timeLabels: { show: !1 }
253
- },
254
- y: {
255
- axisColor: "#6A6A6A",
256
- linesColor: "#6A6A6A",
257
- axisName: { show: !1 },
258
- axisLabels: { show: !1 }
259
- }
260
- },
261
- legend: { backgroundColor: "transparent" },
262
- padding: {
263
- left: 24,
264
- right: 24,
265
- bottom: 12
266
- },
267
- zoom: {
268
- show: !1,
269
- startIndex: null,
270
- endIndex: null,
271
- keepState: !1
272
- }
273
- } }
274
- },
275
- userConfig: L.value.skeletonConfig ?? {}
276
- })), { loading: z, FINAL_DATASET: Bn, manualLoading: Vn } = ve({
277
- ...Ze(N),
278
- FINAL_CONFIG: L,
279
- prepareConfig: qn,
280
- callback: () => {
281
- Promise.resolve().then(async () => {
282
- (!L.value.style.chart.zoom.keepState || !Zr.value || K.value.start === 0 && K.value.end === 0) && await $r();
283
- });
284
- },
285
- skeletonDataset: N.config?.skeletonDataset ?? [{
286
- name: "",
287
- series: [
288
- 3,
289
- 2,
290
- 1,
291
- 5,
292
- 13,
293
- 21,
294
- 8,
295
- 89,
296
- 34,
297
- 55
298
- ],
299
- color: "#8A8A8A"
300
- }, {
301
- name: "",
302
- series: [
303
- 1,
304
- 2,
305
- 3,
306
- 5,
307
- 8,
308
- 13,
309
- 21,
310
- 34,
311
- 55,
312
- 89
313
- ],
314
- color: "#CACACA"
315
- }],
316
- skeletonConfig: a({
317
- defaultConfig: L.value,
318
- userConfig: zn.value
319
- })
320
- }), { userOptionsVisible: Hn, setUserOptionsVisibility: Un, keepUserOptionState: Wn } = Pe({ config: L.value }), { svgRef: B } = Fe({ config: L.value.style.chart.title });
321
- function Gn() {
322
- vn.value = !0, Un(!0);
323
- }
324
- function Kn() {
325
- Un(!1), vn.value = !1, I.value = null, jn.value = "pointer", nn.value = !1, $.value = null, $t("selectX", {
326
- index: null,
327
- indexLabel: null,
328
- dataset: null
329
- });
330
- }
331
- function qn() {
332
- let e = xe({
333
- userConfig: N.config,
334
- defaultConfig: Yt
335
- }), n = {}, r = e.theme;
336
- if (r) if (!Xt.value(e)) Zt(e), n = e;
337
- else {
338
- let i = xe({
339
- userConfig: Le[r] || N.config,
340
- defaultConfig: e
341
- });
342
- n = {
343
- ...xe({
344
- userConfig: N.config,
345
- defaultConfig: i
346
- }),
347
- customPalette: e.customPalette.length ? e.customPalette : t[r] || c
348
- };
349
- }
350
- else n = e;
351
- return n;
352
- }
353
- let Jn = y(() => L.value.style.chart.lines.dataLabels.hideUnderValue !== null), Yn = y(() => L.value.style.chart.lines.dataLabels.hideUnderPercentage !== null);
354
- $e(() => N.config, (e) => {
355
- z.value || (L.value = qn()), Hn.value = !L.value.userOptions.showOnChartHover, or({ resetSlicer: !L.value.style.chart.zoom.keepState }), fn.value += 1, pn.value += 1, mn.value += 1, V.value.dataLabels.show = L.value.style.chart.lines.dataLabels.show, V.value.showTable = L.value.table.show, V.value.showTooltip = L.value.style.chart.tooltip.show, H.value.width = L.value.style.chart.width, H.value.height = L.value.style.chart.height, H.value.paddingRatio = {
356
- top: L.value.style.chart.padding.top / L.value.style.chart.height,
357
- right: L.value.style.chart.padding.right / L.value.style.chart.width,
358
- bottom: L.value.style.chart.padding.bottom / L.value.style.chart.height,
359
- left: L.value.style.chart.padding.left / L.value.style.chart.width
360
- }, Nn(), Fn(), !L.value.style.chart.zoom.keepState || !Zr.value || K.value.start === 0 && K.value.end === 0 ? $r() : Sr();
361
- }, { deep: !0 }), $e(() => N.dataset, (e) => {
362
- Array.isArray(e) && e.length > 0 && (Vn.value = !1), L.value.style.chart.zoom.keepState ? Sr() : Tr(), Nn(), Fn();
363
- }, { deep: !0 });
364
- let V = D({
365
- dataLabels: { show: L.value.style.chart.lines.dataLabels.show },
366
- showTable: L.value.table.show,
367
- showTooltip: L.value.style.chart.tooltip.show
368
- });
369
- $e(L, () => {
370
- V.value = {
371
- dataLabels: { show: L.value.style.chart.lines.dataLabels.show },
372
- showTable: L.value.table.show,
373
- showTooltip: L.value.style.chart.tooltip.show
374
- };
375
- }, { immediate: !0 });
376
- let { isPrinting: Xn, isImaging: Zn, generatePdf: Qn, generateImage: $n } = _e({
377
- elementId: `stackline_${P.value}`,
378
- fileName: L.value.style.chart.title.text || "vue-ui-stackline",
379
- options: L.value.userOptions.print
380
- }), er = y(() => L.value.userOptions.show && !L.value.style.chart.title.text), H = D({
381
- width: L.value.style.chart.width,
382
- height: L.value.style.chart.height,
383
- paddingRatio: {
384
- top: L.value.style.chart.padding.top / L.value.style.chart.height,
385
- right: L.value.style.chart.padding.right / L.value.style.chart.width,
386
- bottom: L.value.style.chart.padding.bottom / L.value.style.chart.height,
387
- left: L.value.style.chart.padding.left / L.value.style.chart.width
388
- }
389
- }), tr = y(() => ue(L.value.customPalette)), nr = Xe(null), rr = Xe(null), ir = D(null), ar = y(() => !!L.value.debug);
390
- function or({ resetSlicer: e = !0 } = {}) {
391
- if (m(N.dataset) ? (h({
392
- componentName: "VueUiStackline",
393
- type: "dataset",
394
- debug: ar.value
395
- }), Vn.value = !0) : N.dataset.forEach((e, t) => {
396
- g({
397
- datasetObject: e,
398
- requiredAttributes: ["name", "series"]
399
- }).forEach((e) => {
400
- en.value = !1, h({
401
- componentName: "VueUiStackline",
402
- type: "datasetSerieAttribute",
403
- property: e,
404
- index: t,
405
- debug: ar.value
406
- }), Vn.value = !0;
407
- });
408
- }), m(N.dataset) || (Vn.value = L.value.loading), setTimeout(() => {
409
- dn.value = !0;
410
- }, 10), L.value.responsive) {
411
- let e = ke(() => {
412
- dn.value = !1;
413
- let { width: e, height: t } = Ae({
414
- chart: tn.value,
415
- noTitle: cn.value,
416
- title: L.value.style.chart.title.text ? an.value : null,
417
- legend: L.value.style.chart.legend.show ? on.value : null,
418
- slicer: L.value.style.chart.zoom.show && G.value > 6 ? sn.value.$el : null,
419
- source: ln.value
420
- });
421
- requestAnimationFrame(() => {
422
- H.value.width = e, H.value.height = t - 12, clearTimeout(ir.value), ir.value = setTimeout(() => {
423
- dn.value = !0;
424
- }, 10);
425
- });
426
- });
427
- nr.value && (rr.value && nr.value.unobserve(rr.value), nr.value.disconnect()), nr.value = new ResizeObserver(e), rr.value = tn.value.parentNode, nr.value.observe(rr.value);
428
- }
429
- e && $r();
430
- }
431
- qe(() => {
432
- Mn.stop(), nr.value && (rr.value && nr.value.unobserve(rr.value), nr.value.disconnect());
433
- });
434
- let sr = y(() => L.value.style.chart.grid.y.position === "right");
435
- function cr() {
436
- let e = 0;
437
- Cn.value && (e = Array.from(Cn.value.querySelectorAll("text")).reduce((e, t) => {
438
- let n = t.getComputedTextLength();
439
- return n > e ? n : e;
440
- }, 0));
441
- let t = Sn.value ? Sn.value.getBoundingClientRect().width + L.value.style.chart.grid.y.axisName.fontSize + L.value.style.chart.grid.y.axisName.offsetX : 0;
442
- return {
443
- left: sr.value ? 0 : e + t,
444
- right: sr.value ? e + t : 0,
445
- scaleLabelsWidth: e,
446
- yAxisLabelWidth: t
447
- };
448
- }
449
- let lr = D(0), ur = D(0), dr = D(0);
450
- function fr() {
451
- let e = wn.value;
452
- if (!e) {
453
- ur.value = 0;
454
- return;
455
- }
456
- try {
457
- let t = e.getBBox();
458
- ur.value = Number.isFinite(t?.height) ? t.height : 0;
459
- } catch {
460
- ur.value = 0;
461
- }
462
- }
463
- function pr() {
464
- dr.value && cancelAnimationFrame(dr.value), dr.value = requestAnimationFrame(() => {
465
- requestAnimationFrame(() => {
466
- fr();
467
- });
468
- });
469
- }
470
- qe(() => {
471
- dr.value && cancelAnimationFrame(dr.value), ur.value = 0, lr.value = 0;
472
- });
473
- let mr = y(() => {
474
- let e = 0;
475
- if (xn.value) try {
476
- e = xn.value.getBBox().height;
477
- } catch {
478
- e = 0;
479
- }
480
- let t = L.value.style.chart.grid.x.timeLabels.show ? ur.value : 0;
481
- return e + t;
482
- }), U = y(() => {
483
- On.value;
484
- let { height: e, width: t } = H.value, { right: n } = H.value.paddingRatio, r = L.value.style.chart.lines.totalValues.show && N.dataset && N.dataset.length > 1 ? L.value.style.chart.lines.totalValues.fontSize * 1.3 : 0, i = 0, a = 0, o = 0, s = 0;
485
- if (L.value.style.chart.grid.y.axisLabels.show) {
486
- let e = cr();
487
- i = e.left, a = e.right, o = e.scaleLabelsWidth, s = e.yAxisLabelWidth;
488
- }
489
- let c = L.value.style.chart.padding.top + r, l = t - t * n - lr.value - a, u = e - L.value.style.chart.padding.bottom - mr.value - r, d = L.value.style.chart.padding.left + i, f = t - d - t * n - lr.value - a, p = e - c - L.value.style.chart.padding.bottom - mr.value - r;
490
- return {
491
- chartHeight: Math.max(0, e),
492
- chartWidth: Math.max(0, t),
493
- top: c,
494
- right: Math.max(0, l),
495
- bottom: Math.max(0, u),
496
- left: Math.max(0, d),
497
- width: Math.max(0, f),
498
- height: Math.max(0, p),
499
- offsetLeftAxis: i,
500
- offsetRightAxis: a,
501
- scaleLabelsWidth: o,
502
- yAxisLabelWidth: s
503
- };
504
- }), hr = y(() => {
505
- let { left: e, top: t, width: n, height: r } = U.value, i = K.value.start, a = K.value.end, o = Math.max(1, a - i), s = Math.max(0, Math.min(o, (q.value.start ?? i) - i)), c = Math.max(0, Math.min(o, (q.value.end ?? a) - i)), l = Math.max(0, c - s), u = {
506
- fill: L.value.style.chart.zoom.preview.fill,
507
- stroke: L.value.style.chart.zoom.preview.stroke,
508
- "stroke-width": L.value.style.chart.zoom.preview.strokeWidth,
509
- "stroke-dasharray": L.value.style.chart.zoom.preview.strokeDasharray,
510
- "stroke-linecap": "round",
511
- "stroke-linejoin": "round",
512
- style: {
513
- pointerEvents: "none",
514
- transition: "none !important",
515
- animation: "none !important"
516
- }
517
- }, d = n / o;
518
- return {
519
- x: e + s * d,
520
- y: t,
521
- width: l * d,
522
- height: r,
523
- ...u
524
- };
525
- }), W = y(() => Bn.value.map((e, t) => {
526
- let n = `stackline_serie_${t}`, r = de(e.color) || tr.value[t] || c[t] || c[t % c.length];
527
- return {
528
- ...e,
529
- shape: e.shape || "circle",
530
- standalone: !!e.standalone,
531
- series: JSON.parse(JSON.stringify(e.series)).map((e) => L.value.style.chart.lines.distributed ? Math.abs(e) : e),
532
- seriesSource: e.series,
533
- signedSeries: e.series.map((e) => e >= 0 ? 1 : -1),
534
- absoluteIndex: t,
535
- id: n,
536
- color: r
537
- };
538
- })), gr = y(() => W.value.filter((e) => !F.value.includes(e.id) && !e.standalone)), _r = y(() => W.value.filter((e) => !F.value.includes(e.id) && e.standalone)), G = y(() => {
539
- let e = Math.max(...W.value.filter((e) => !F.value.includes(e.id)).map((e) => e.series.length));
540
- return isFinite(e) ? e : Math.max(...W.value.map((e) => e.series.length));
541
- });
542
- function vr(e) {
543
- In.value = e;
544
- }
545
- let K = D({
546
- start: 0,
547
- end: Math.max(...Bn.value.map((e) => e.series.length))
548
- }), q = D({
549
- start: 0,
550
- end: Math.max(...Bn.value.map((e) => e.series.length))
551
- });
552
- function yr(e) {
553
- return (K.value.start ?? 0) + (e ?? 0);
554
- }
555
- let br = y(() => L.value.style.chart.zoom.preview.enable && (q.value.start !== K.value.start || q.value.end !== K.value.end));
556
- function xr(e, t) {
557
- q.value[e] = t;
558
- }
559
- function Sr() {
560
- let e = G.value, t = Math.max(0, Math.min(K.value.start ?? 0, e - 1)), n = Math.max(t + 1, Math.min(K.value.end ?? e, e));
561
- (!Number.isFinite(t) || !Number.isFinite(n) || n <= t) && (t = 0, n = e), K.value.start = t, K.value.end = n, q.value.start = t, q.value.end = n, sn.value && (sn.value.setStartValue(t), sn.value.setEndValue(n));
562
- }
563
- let Cr = D(null);
564
- function wr() {
565
- return new Promise((e) => requestAnimationFrame(() => requestAnimationFrame(() => e())));
566
- }
567
- qe(() => {
568
- Cr.value && cancelAnimationFrame(Cr.value);
569
- });
570
- async function Tr({ force: e = !1 } = {}) {
571
- if (L.value.style.chart.zoom.keepState && !e && Zr.value && !(K.value.start === 0 && K.value.end === 0)) {
572
- Sr();
573
- return;
574
- }
575
- $r(), await We(), Cr.value && cancelAnimationFrame(Cr.value), Cr.value = requestAnimationFrame(async () => {
576
- await wr(), $r();
577
- });
578
- }
579
- let Er = y(() => Math.max(0, U.value.width / (K.value.end - K.value.start))), Dr = y(() => d(gr.value.map((e) => ({
580
- ...e,
581
- series: e.series.map((e) => e ?? 0)
582
- }))).slice(K.value.start, K.value.end)), Or = y(() => F.value.length === W.value.length), kr = y(() => {
583
- if (!L.value.style.chart.zoom.minimap.show) return [];
584
- let e = W.value.filter((e) => Or.value ? !0 : !F.value.includes(e.id) && !e.standalone);
585
- if (e.length) return d(e.map((e) => ({
586
- ...e,
587
- series: (e.series || []).map((e) => e ?? 0)
588
- })));
589
- let t = _r.value;
590
- if (!t.length) return [];
591
- let n = Math.max(...t.map((e) => e.series.length || 0));
592
- return Array.from({ length: n }, (e, n) => t.reduce((e, t) => e + Math.abs(t.series[n] ?? 0), 0));
593
- }), Ar = y(() => {
594
- if (!L.value.style.chart.zoom.minimap.show) return [];
595
- let e = W.value.filter((e) => Or.value ? !0 : !F.value.includes(e.id) && !e.standalone), t = _r.value, n = e.length ? [{
596
- name: "",
597
- series: kr.value,
598
- color: "#000000",
599
- isVisible: !0
600
- }] : [], r = t.map((e) => ({
601
- name: e.name || "",
602
- series: (e.series || []).map((e) => e ?? 0),
603
- color: e.color,
604
- isVisible: !0
605
- }));
606
- return n.concat(r);
607
- }), jr = y(() => d(gr.value.filter((e) => !F.value.includes(e.id)).map((e) => ({
608
- ...e,
609
- series: e.series.map((t, n) => {
610
- let r = t ?? 0;
611
- return e.signedSeries[n] === -1 && r >= 0 ? -r : r;
612
- })
613
- }))).slice(K.value.start, K.value.end)), Mr = y(() => {
614
- let e = gr.value.filter((e) => !F.value.includes(e.id));
615
- return {
616
- positive: d(e.map((e) => ({
617
- ...e,
618
- series: e.series.slice(K.value.start, K.value.end).map((e) => (e ?? 0) >= 0 ? e ?? 0 : 0)
619
- }))),
620
- negative: d(e.map((e) => ({
621
- ...e,
622
- series: e.series.slice(K.value.start, K.value.end).map((e) => (e ?? 0) < 0 ? e ?? 0 : 0)
623
- })))
624
- };
625
- }), Nr = y(() => {
626
- let e = Math.max(0, K.value.end - K.value.start), t = Array(e).fill(0), n = Array(e).fill(0);
627
- return _r.value.forEach((r) => {
628
- for (let i = 0; i < e; i += 1) {
629
- let e = r.series[K.value.start + i] ?? 0;
630
- e > 0 && (t[i] = Math.max(t[i], e)), e < 0 && (n[i] = Math.min(n[i], e));
631
- }
632
- }), {
633
- positive: t,
634
- negative: n
635
- };
636
- }), Pr = y(() => jr.value.map((e, t) => ({
637
- value: e,
638
- sign: e >= 0 ? 1 : -1
639
- })));
640
- function Fr() {
641
- return { y0: Lr.value?.[0]?.zero ?? U.value.bottom };
642
- }
643
- function Ir(e) {
644
- let { y0: t } = Fr(), n = L.value.style.chart.lines.totalValues, r = Math.max(2, n.fontSize * 1.3 + n.offsetY), i = (e) => Math.min(Math.max(e, U.value.top - L.value.style.chart.lines.totalValues.fontSize * 1.3), U.value.bottom + L.value.style.chart.lines.totalValues.fontSize * 2);
645
- if ((Pr.value?.[e]?.value ?? 0) >= 0 || L.value.style.chart.lines.distributed) {
646
- let n = Infinity;
647
- for (let t of Y.value || []) {
648
- let r = t?.series?.[e], i = t?.topY?.[e];
649
- (r ?? 0) > 0 && Number.isFinite(i) && i < n && (n = i);
650
- }
651
- return i((Number.isFinite(n) ? n : t) - r - L.value.style.chart.lines.totalValues.offsetY);
652
- } else {
653
- let a = -Infinity;
654
- for (let t of Y.value || []) {
655
- let n = t?.series?.[e], r = t?.topY?.[e];
656
- (n ?? 0) < 0 && Number.isFinite(r) && r > a && (a = r);
657
- }
658
- return i((Number.isFinite(a) ? a : t) + r + n.fontSize * .7 + L.value.style.chart.lines.totalValues.offsetY);
659
- }
660
- }
661
- let Lr = y(() => {
662
- let e = Math.max(...Mr.value.positive, 0), t = Math.min(...Mr.value.negative, 0), n = Math.max(...Nr.value.positive, 0), r = Math.min(...Nr.value.negative, 0), i = Math.max(e, n), a = Math.min(t, r), o = [
663
- -Infinity,
664
- Infinity,
665
- NaN,
666
- void 0,
667
- null
668
- ].includes(a) ? 0 : a, s = L.value.style.chart.grid.scale.scaleMin, c = L.value.style.chart.grid.scale.scaleMax, l = !L.value.style.chart.lines.distributed && (s !== null || c !== null), u = s !== null && !L.value.style.chart.lines.distributed ? s : o > 0 ? 0 : o, d = c !== null && !L.value.style.chart.lines.distributed ? c : i < 0 ? 0 : i, f = l ? _(u, d, L.value.style.chart.grid.scale.ticks) : te(u, d, L.value.style.chart.grid.scale.ticks), p = Math.abs(Number(f.min) || 0), m = (Number(f.max) || 0) + p, h = m === 0 || !Number.isFinite(m) ? 1 : m, g = Array.isArray(f.ticks) && f.ticks.length ? f.ticks : [0], ee = U.value.bottom - U.value.height * (p / h);
669
- return g.map((e) => {
670
- let t = Number(e) || 0;
671
- return {
672
- zero: ee,
673
- y: U.value.bottom - U.value.height * ((t + p) / h),
674
- x: sr.value ? X.value.right + 8 : X.value.left - 8,
675
- value: t
676
- };
677
- });
678
- }), J = D([]), Rr = D([]), zr = 0;
679
- et(() => {
680
- let e = ++zr;
681
- (async () => {
682
- let t = await he({
683
- values: L.value.style.chart.grid.x.timeLabels.values,
684
- maxDatapoints: G.value,
685
- formatter: L.value.style.chart.grid.x.timeLabels.datetimeFormatter,
686
- start: K.value.start,
687
- end: K.value.end
688
- });
689
- e === zr && (J.value = t);
690
- })();
691
- });
692
- let Br = 0;
693
- et(() => {
694
- let e = ++Br;
695
- (async () => {
696
- let t = await he({
697
- values: L.value.style.chart.grid.x.timeLabels.values,
698
- maxDatapoints: G.value,
699
- formatter: L.value.style.chart.grid.x.timeLabels.datetimeFormatter,
700
- start: 0,
701
- end: G.value
702
- });
703
- e === Br && (Rr.value = t);
704
- })();
705
- });
706
- let Vr = y(() => {
707
- let e = L.value.style.chart.grid.x.timeLabels.modulo;
708
- return J.value.length ? Math.min(e, [...new Set(J.value.map((e) => e.text))].length) : e;
709
- }), Hr = y(() => {
710
- let e = L.value.style.chart.grid.x.timeLabels, t = J.value || [], n = Rr.value || [], r = K.value.start ?? 0, i = $.value, a = G.value, o = t.map((e) => e?.text ?? ""), s = n.map((e) => e?.text ?? "");
711
- return se(!!e.showOnlyFirstAndLast, !!e.showOnlyAtModulo, Math.max(1, Vr.value || 1), o, s, r, i, a);
712
- });
713
- et(() => {
714
- L.value.style.chart.grid.x.timeLabels.show, L.value.style.chart.grid.x.timeLabels.fontSize, L.value.style.chart.grid.x.timeLabels.rotation, L.value.style.chart.grid.x.timeLabels.offsetY, (Hr.value || []).map((e) => e?.text ?? "").join("|"), H.value.width, H.value.height, wn.value, xn.value, pr();
715
- }, { flush: "post" });
716
- let Ur = D({
717
- months: [],
718
- shortMonths: [],
719
- days: [],
720
- shortDays: []
721
- }), Wr = 0;
722
- et(() => {
723
- let e = ++Wr, t = L.value.style.chart.grid.x.timeLabels.datetimeFormatter;
724
- (async () => {
725
- let n = await me(t.locale).catch(() => me("en"));
726
- e === Wr && (Ur.value = n.data);
727
- })();
728
- });
729
- let Gr = y(() => {
730
- let e = L.value.style.chart.grid.x.timeLabels.datetimeFormatter, t = pe({
731
- useUTC: e.useUTC,
732
- locale: Ur.value,
733
- januaryAsYear: e.januaryAsYear
734
- });
735
- return (e, n) => {
736
- let r = L.value.style.chart.grid.x.timeLabels.values?.[e];
737
- return r == null ? "" : t.formatDate(new Date(r), n);
738
- };
739
- }), Kr = y(() => (L.value.style.chart.grid.x.timeLabels.values || []).map((e, t) => ({
740
- text: Gr.value(t, L.value.style.chart.zoom.timeFormat),
741
- absoluteIndex: t
742
- }))), qr = y(() => (L.value.style.chart.grid.x.timeLabels.values || []).map((e, t) => ({
743
- text: Gr.value(t, L.value.style.chart.tooltip.timeFormat),
744
- absoluteIndex: t
745
- }))), Jr = y(() => {
746
- if (!en.value && !z.value) return [];
747
- let e = U.value.height, t = Lr.value[0] ? Lr.value[0].zero : U.value.bottom, n = K.value.start ?? 0, r = K.value.end ?? 0, i = Math.max(1, r - n), a = Math.max(...Mr.value.positive, 0), o = Math.min(...Mr.value.negative, 0), s = Math.max(...Nr.value.positive, 0), c = Math.min(...Nr.value.negative, 0), l = Math.max(a, s), u = Math.min(o, c), { min: d, max: f } = !L.value.style.chart.lines.distributed && (L.value.style.chart.grid.scale.scaleMax !== null || L.value.style.chart.grid.scale.scaleMin !== null) ? _(L.value.style.chart.grid.scale.scaleMin === null ? u > 0 ? 0 : u : L.value.style.chart.grid.scale.scaleMin, L.value.style.chart.grid.scale.scaleMax === null ? l < 0 ? 0 : l : L.value.style.chart.grid.scale.scaleMax, L.value.style.chart.grid.scale.ticks) : te(L.value.style.chart.grid.scale.scaleMin === null ? u > 0 ? 0 : u : L.value.style.chart.grid.scale.scaleMin, L.value.style.chart.grid.scale.scaleMax === null ? l < 0 ? 0 : l : L.value.style.chart.grid.scale.scaleMax, L.value.style.chart.grid.scale.ticks), p = f + (d >= 0 ? 0 : Math.abs(d)) || 1, m = Array(i).fill(0), h = Array(i).fill(0), g = (e) => i <= 1 ? U.value.left + U.value.width / 2 : U.value.left + e / (i - 1) * U.value.width;
748
- return W.value.filter((e) => !F.value.includes(e.id)).map((r) => {
749
- let a = [], o = [], s = [], c = Array(i).fill(null), l = Array(i).fill(null);
750
- for (let u = 0; u < i; u += 1) {
751
- let i = n + u, d = r.series?.[i], f = r.signedSeries?.[i], g = d == null || Number.isNaN(d) ? 0 : d, _ = r.standalone ? g / p : L.value.style.chart.lines.distributed ? g / (Dr.value[u] || 1) : g / p;
752
- if (g >= 0) {
753
- let n = e * Math.abs(_);
754
- if (r.standalone) c[u] = t, l[u] = t - n;
755
- else {
756
- let e = m[u], r = e + n;
757
- c[u] = t - e, l[u] = t - r, m[u] = r;
758
- }
759
- } else {
760
- let n = e * Math.abs(_);
761
- if (r.standalone) c[u] = t, l[u] = t + n;
762
- else {
763
- let e = h[u], r = e + n;
764
- c[u] = t + e, l[u] = t + r, h[u] = r;
765
- }
766
- }
767
- a.push(u), o.push(g), s.push(f ?? (g >= 0 ? 1 : -1));
768
- }
769
- let u = a.map((e) => ({
770
- x: g(e),
771
- y: l[e]
772
- })), d = u.map((e) => e.x), f = o.reduce((e, t) => e + Math.abs(t || 0), 0), _ = f === 0 ? 1 : f, ee = o.map((e, t) => {
773
- if (L.value.style.chart.lines.distributed && !r.standalone) {
774
- let n = a[t], r = Dr.value[n] || 1;
775
- return (e || 0) / r;
776
- }
777
- return (e || 0) / _;
778
- });
779
- return {
780
- ...r,
781
- x: d,
782
- points: u,
783
- baseY: a.map((e) => c[e]),
784
- topY: a.map((e) => l[e]),
785
- series: o,
786
- signedSeries: s,
787
- proportions: ee,
788
- rel: a,
789
- fullSeries: Array.isArray(r.fullSeries) ? r.fullSeries : r.series
790
- };
791
- });
792
- }), Y = y(() => {
793
- let e = (e) => typeof e == "string" ? e.replace(/^M\s*[-+]?[\d.]+(?:e[-+]?\d+)?\s*,?\s*[-+]?[\d.]+(?:e[-+]?\d+)?\s*/i, "").trim() : "", t = Math.max(...Mr.value.positive, 0), n = Math.min(...Mr.value.negative, 0), r = Math.max(...Nr.value.positive, 0), i = Math.min(...Nr.value.negative, 0), a = Math.max(t, r), s = Math.min(n, i), c = !L.value.style.chart.lines.distributed && (L.value.style.chart.grid.scale.scaleMax !== null || L.value.style.chart.grid.scale.scaleMin !== null) ? _(L.value.style.chart.grid.scale.scaleMin === null ? s > 0 ? 0 : s : L.value.style.chart.grid.scale.scaleMin, L.value.style.chart.grid.scale.scaleMax === null ? a < 0 ? 0 : a : L.value.style.chart.grid.scale.scaleMax, L.value.style.chart.grid.scale.ticks) : te(L.value.style.chart.grid.scale.scaleMin === null ? s > 0 ? 0 : s : L.value.style.chart.grid.scale.scaleMin, L.value.style.chart.grid.scale.scaleMax === null ? a < 0 ? 0 : a : L.value.style.chart.grid.scale.scaleMax, L.value.style.chart.grid.scale.ticks), l = Number(c.min) || 0, u = Number(c.max) || 0, d = Math.abs(l), f = u + d || 1, p = (e) => {
794
- if (L.value.style.chart.lines.distributed) {
795
- let t = Math.max(0, Math.min(1, e));
796
- return minimapH - minimapH * t;
797
- }
798
- return clampY(minimapH - minimapH * (((e ?? 0) + d) / f));
799
- };
800
- return Jr.value.map((t) => {
801
- let n = t.x.length, r = Array.isArray(t.fullSeries) ? t.fullSeries : t.series, i = ({ left: e = 0, unitW: t }) => {
802
- let n = r.length;
803
- return !Number.isFinite(t) || t <= 0 || n <= 0 ? [] : n === 1 ? [e + t * .5] : r.map((n, r) => e + r * t);
804
- }, a = ({ minimapH: e }) => !Number.isFinite(e) || e <= 0 ? [] : r.map((t) => p(t || 0, e)), s = ({ minimapH: e }) => {
805
- if (!Number.isFinite(e) || e <= 0) return [];
806
- let t = p(0, e);
807
- return r.map(() => t);
808
- };
809
- if (n === 0) return {
810
- ...t,
811
- points: [],
812
- smoothPath: "",
813
- straightPath: "",
814
- smoothArea: "",
815
- straightArea: "",
816
- xMinimap: i,
817
- yMinimap: a,
818
- yMinimapBase: s
819
- };
820
- let c = t.x.map((e, n) => ({
821
- x: e,
822
- y: t.topY[n]
823
- })), l = t.x.map((e, n) => ({
824
- x: e,
825
- y: t.baseY[n]
826
- })), u = n >= 2 ? ae(c) : `M${c[0].x},${c[0].y}`, d = n >= 2 ? o(c) : `M${c[0].x},${c[0].y}`, f = n >= 2 ? `M${e(u)}` : u, m = n >= 2 ? `M${e(d)}` : d, h = "", g = "";
827
- if (L.value.style.chart.lines.useArea && n >= 2) {
828
- let t = ae([...l].reverse()), n = o([...l].reverse()), r = l[l.length - 1];
829
- h = `M${c[0].x},${c[0].y} ${e(u)} L${r.x},${r.y} ${e(t)} Z`, g = `M${c[0].x},${c[0].y} ${e(d)} L${r.x},${r.y} ${e(n)} Z`;
830
- }
831
- return {
832
- ...t,
833
- points: c,
834
- smoothPath: f,
835
- straightPath: m,
836
- smoothArea: h,
837
- straightArea: g,
838
- xMinimap: i,
839
- yMinimap: a,
840
- yMinimapBase: s
841
- };
842
- });
843
- }), Yr = y(() => $.value === null || $.value === void 0 ? null : {
844
- timeLabel: pi($.value),
845
- absoluteIndex: $.value + K.value.start,
846
- seriesIndex: $.value,
847
- datapoint: fi.value,
848
- series: Y.value,
849
- config: L.value
850
- }), Xr = D(!1), Zr = D(!1);
851
- function Qr(e) {
852
- let t = G.value;
853
- return e > t ? t : e < 0 || e < K.value.start ? L.value.style.chart.zoom.startIndex === null ? 1 : K.value.start + 1 : e;
854
- }
855
- function $r() {
856
- if (!Xr.value) {
857
- Xr.value = !0;
858
- try {
859
- let { startIndex: e, endIndex: t, keepState: n } = L.value.style.chart.zoom, r = n ? Math.max(0, G.value) : G.value;
860
- if (n && r <= 0) return;
861
- let i = e ?? 0, a = t == null ? r : Math.min(Qr(t + 1), r);
862
- ni.value = !0, K.value.start = i, K.value.end = a, q.value.start = i, q.value.end = a, Sr(), Zr.value = !0;
863
- } finally {
864
- queueMicrotask(() => {
865
- ni.value = !1;
866
- }), Xr.value = !1;
867
- }
868
- }
869
- }
870
- function ei(e) {
871
- Xr.value || ni.value || e !== K.value.start && (K.value.start = e, q.value.start = e, Sr());
872
- }
873
- function ti(e) {
874
- if (Xr.value || ni.value) return;
875
- let t = Qr(e);
876
- t !== K.value.end && (K.value.end = t, q.value.end = t, Sr());
877
- }
878
- let X = y(() => ({
879
- left: U.value.left,
880
- right: U.value.right,
881
- width: U.value.width
882
- })), ni = D(!1);
883
- we({
884
- timeLabelsEls: wn,
885
- timeLabels: J,
886
- slicer: K,
887
- configRef: L,
888
- rotationPath: [
889
- "style",
890
- "chart",
891
- "grid",
892
- "x",
893
- "timeLabels",
894
- "rotation"
895
- ],
896
- autoRotatePath: [
897
- "style",
898
- "chart",
899
- "grid",
900
- "x",
901
- "timeLabels",
902
- "autoRotate",
903
- "enable"
904
- ],
905
- isAutoSize: !1,
906
- width: y(() => H.value.width),
907
- height: y(() => H.value.height),
908
- rotation: L.value.style.chart.grid.x.timeLabels.autoRotate.angle
909
- });
910
- let ri = D(null);
911
- function ii(e) {
912
- let t = B.value;
913
- if (!t) return null;
914
- if (t.createSVGPoint && t.getScreenCTM) {
915
- let n = t.createSVGPoint();
916
- n.x = e.clientX, n.y = e.clientY;
917
- let r = t.getScreenCTM();
918
- if (r) {
919
- let e = n.matrixTransform(r.inverse());
920
- return {
921
- x: e.x,
922
- y: e.y,
923
- ok: !0
924
- };
925
- }
926
- }
927
- let n = t.getBoundingClientRect(), r = t.viewBox?.baseVal || {
928
- x: 0,
929
- y: 0,
930
- width: n.width,
931
- height: n.height
932
- }, i = Math.min(n.width / r.width, n.height / r.height), a = r.width * i, o = r.height * i, s = (n.width - a) / 2, c = (n.height - o) / 2;
933
- return {
934
- x: (e.clientX - n.left - s) / i + r.x,
935
- y: (e.clientY - n.top - c) / i + r.y,
936
- ok: !0
937
- };
938
- }
939
- let ai = 0, Z = y(() => Math.max(1, K.value.end - K.value.start)), oi = y(() => Z.value > 1 ? U.value.width / (Z.value - 1) : 0);
940
- function Q(e) {
941
- return Z.value <= 1 ? U.value.left + U.value.width / 2 : U.value.left + e * oi.value;
942
- }
943
- function si(e) {
944
- if (Z.value <= 1) return {
945
- x: U.value.left,
946
- width: U.value.width
947
- };
948
- let t = e === 0 ? U.value.left : (Q(e - 1) + Q(e)) / 2, n = e === Z.value - 1 ? U.value.left + U.value.width : (Q(e) + Q(e + 1)) / 2;
949
- return {
950
- x: t,
951
- width: Math.max(0, n - t)
952
- };
953
- }
954
- function ci(e) {
955
- Ln.value || (ai && cancelAnimationFrame(ai), ai = requestAnimationFrame(() => {
956
- ai = 0;
957
- let t = ii(e);
958
- if (!t || !B.value) {
959
- di();
960
- return;
961
- }
962
- let { left: n, right: r, top: i, bottom: a } = U.value;
963
- if (t.x < n || t.x > r || t.y < i || t.y > a) {
964
- di();
965
- return;
966
- }
967
- let o = 0;
968
- if (Z.value > 1) {
969
- let e = (t.x - n) / oi.value;
970
- o = Math.round(e);
971
- } else o = 0;
972
- o < 0 && (o = 0), o > Z.value - 1 && (o = Z.value - 1), ri.value !== o && (ri.value = o, hi(!0, o));
973
- }));
974
- }
975
- function li(e) {
976
- let t = ii(e);
977
- if (!t || !B.value) return;
978
- let { left: n, right: r, top: i, bottom: a } = U.value;
979
- if (t.x < n || t.x > r || t.y < i || t.y > a) return;
980
- let o = 0;
981
- if (Z.value > 1) {
982
- let e = (t.x - n) / oi.value;
983
- o = Math.round(e);
984
- } else o = 0;
985
- o < 0 && (o = 0), o > Z.value - 1 && (o = Z.value - 1), Ji({
986
- seriesIndex: o,
987
- datapoint: Bi(o)
988
- }), ui(o);
989
- }
990
- function ui(e) {
991
- let t = JSON.parse(JSON.stringify(Y.value)).map((t) => ({
992
- name: t.name,
993
- value: t.series[e] === 0 ? 0 : t.series[e] || null,
994
- proportion: t.proportions[e] || null,
995
- color: t.color,
996
- id: t.id
997
- }));
998
- L.value.events.datapointClick && L.value.events.datapointClick({
999
- datapoint: t,
1000
- seriesIndex: e + K.value.start
1001
- }), $t("selectDatapoint", {
1002
- datapoint: t,
1003
- period: J.value[e]
1004
- });
1005
- }
1006
- $e(() => [
1007
- K.value.start,
1008
- K.value.end,
1009
- Y.value.length
1010
- ], () => {
1011
- let e = Z.value;
1012
- if ($.value != null) {
1013
- if (e <= 0) {
1014
- $.value = null;
1015
- return;
1016
- }
1017
- $.value < 0 && ($.value = 0), $.value > e - 1 && ($.value = e - 1);
1018
- }
1019
- });
1020
- function di() {
1021
- ai &&= (cancelAnimationFrame(ai), 0), ri.value = null, hi(!1, null);
1022
- }
1023
- let $ = D(null), fi = y(() => {
1024
- let e = $.value, t = e == null ? null : yr(e);
1025
- return Y.value.map((n) => ({
1026
- slotAbsoluteIndex: n.absoluteIndex,
1027
- shape: n.shape || "circle",
1028
- name: n.name,
1029
- color: n.color,
1030
- value: e == null ? null : n.series.find((t, n) => n === e),
1031
- sourceValue: t == null ? null : n.seriesSource?.[t],
1032
- comments: n.comments || [],
1033
- id: n.id,
1034
- standalone: !!n.standalone
1035
- }));
1036
- });
1037
- function pi(e) {
1038
- if (e == null || !L.value.style.chart.tooltip.showTimeLabel) return null;
1039
- let t = J.value?.[e]?.text || null, n = qr.value?.[e]?.text || null, r = Rr.value?.[e]?.text || null;
1040
- return L.value.style.chart.tooltip.useDefaultTimeFormat ? t : n || r;
1041
- }
1042
- let mi = y(() => {
1043
- let e = L.value.style.chart.tooltip.customFormat, t = [...fi.value].reverse(), i = t.filter((e) => !e.standalone), a = t.filter((e) => e.standalone), o = i.map((e) => e.value).filter((e) => ee(e) && e !== null).reduce((e, t) => Math.abs(e) + Math.abs(t), 0);
1044
- if (ne(e) && ie(() => e({
1045
- absoluteIndex: $.value + K.value.start,
1046
- seriesIndex: $.value,
1047
- datapoint: fi.value,
1048
- series: W.value,
1049
- config: L.value
1050
- }))) return e({
1051
- absoluteIndex: $.value + K.value.start,
1052
- seriesIndex: $.value,
1053
- datapoint: fi.value,
1054
- series: W.value,
1055
- config: L.value
1056
- });
1057
- let { showValue: s, showTotal: c, totalTranslation: u, showPercentage: d, borderColor: f, roundingValue: p, roundingPercentage: m } = L.value.style.chart.tooltip, h = (e) => !e.shape || ![
1058
- "star",
1059
- "triangle",
1060
- "square",
1061
- "diamond",
1062
- "pentagon",
1063
- "hexagon"
1064
- ].includes(e.shape) ? `<svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" fill="${e.color}" /></svg>` : e.shape === "star" ? `<svg viewBox="0 0 12 12" height="14" width="14" style="overflow:visible"><polygon stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" fill="${e.color}" points="${l({
1065
- plot: {
1066
- x: 6,
1067
- y: 6
1068
- },
1069
- radius: 5
1070
- })}" /></svg>` : e.shape === "triangle" ? `<svg viewBox="0 0 12 12" height="14" width="14" style="overflow:visible"><path d="${n({
1071
- plot: {
1072
- x: 6,
1073
- y: 6
1074
- },
1075
- radius: 6,
1076
- sides: 3,
1077
- rotation: .52
1078
- }).path}" fill="${e.color}" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>` : e.shape === "square" ? `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${n({
1079
- plot: {
1080
- x: 6,
1081
- y: 6
1082
- },
1083
- radius: 6,
1084
- sides: 4,
1085
- rotation: .8
1086
- }).path}" fill="${e.color}" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>` : e.shape === "diamond" ? `<svg viewBox="0 0 12 12" height="14" width="14" style="overflow:visible"><path d="${n({
1087
- plot: {
1088
- x: 6,
1089
- y: 6
1090
- },
1091
- radius: 5,
1092
- sides: 4,
1093
- rotation: 0
1094
- }).path}" fill="${e.color}" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>` : e.shape === "pentagon" ? `<svg viewBox="0 0 12 12" height="14" width="14" style="overflow:visible"><path d="${n({
1095
- plot: {
1096
- x: 6,
1097
- y: 6
1098
- },
1099
- radius: 5,
1100
- sides: 5,
1101
- rotation: .95
1102
- }).path}" fill="${e.color}" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>` : `<svg viewBox="0 0 12 12" height="14" width="14" style="overflow:visible"><path d="${n({
1103
- plot: {
1104
- x: 6,
1105
- y: 6
1106
- },
1107
- radius: 5,
1108
- sides: 6,
1109
- rotation: 0
1110
- }).path}" fill="${e.color}" stroke="${L.value.style.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`, g = (e, t) => {
1111
- let n = t ? r({
1112
- v: isNaN((e.value ?? 0) / (o || 1)) ? 0 : Math.abs(e.value ?? 0) / (o || 1) * 100,
1113
- s: "%",
1114
- r: m
1115
- }) : "", i = s && t ? "(" : "", a = s && t ? ")" : "";
1116
- return `
1117
- <div style="display:flex;flex-direction:row;align-items:center;gap:4px">
1118
- <div style="width:20px;height:20px;display:flex;align-items:center;justify-content:center;">${h(e)}</div>
1119
- ${e.name}${s || t ? ":" : ""}
1120
- ${s ? re(L.value.style.chart.lines.dataLabels.formatter, e.sourceValue, r({
1121
- p: L.value.style.chart.lines.dataLabels.prefix,
1122
- v: e.sourceValue,
1123
- s: L.value.style.chart.lines.dataLabels.suffix,
1124
- r: p
1125
- }, { datapoint: e })) : ""} ${i}${n}${a}
1126
- </div>
1127
- `;
1128
- }, _ = "", te = pi($.value);
1129
- return te && (_ += `<div style="width:100%;text-align:center;border-bottom:1px solid ${f};padding-bottom:6px;margin-bottom:3px;">${te}</div>`), c && i.length > 1 && (_ += `<div class="vue-data-ui-tooltip-total" style="display:flex;flex-direction:row;align-items:center;gap:4px">
1130
- <span>${u}:</span>
1131
- <span>${re(L.value.style.chart.lines.dataLabels.formatter, oe(o), r({
1132
- p: L.value.style.chart.lines.dataLabels.prefix,
1133
- v: oe(o),
1134
- s: L.value.style.chart.lines.dataLabels.suffix,
1135
- r: p
1136
- }), { datapoint: {
1137
- name: u,
1138
- value: oe(o)
1139
- } })}</span>
1140
- </div>`), i.forEach((e) => {
1141
- _ += g(e, d);
1142
- }), a.length && (_ += `<div style="border-top:1px solid ${gr.value.length ? f : "transparent"}; margin:${gr.value.length ? "6px 0" : "0"};"></div>`, a.forEach((e) => {
1143
- _ += g(e, !1);
1144
- })), `<div>${_}</div>`;
1145
- });
1146
- function hi(e, t = null, n = "pointer") {
1147
- if (Or.value) return;
1148
- jn.value = n, nn.value = e;
1149
- let r = Y.value.map((e) => ({
1150
- name: e.name,
1151
- value: [
1152
- null,
1153
- void 0,
1154
- NaN
1155
- ].includes(e.series[t]) ? null : e.series[t],
1156
- color: e.color
1157
- }));
1158
- e ? (I.value = t, $.value = t, Ji({
1159
- seriesIndex: t,
1160
- datapoint: r
1161
- }), L.value.events.datapointEnter && L.value.events.datapointEnter({
1162
- datapoint: r,
1163
- seriesIndex: t + K.value.start
1164
- })) : (I.value = null, $.value = null, $t("selectX", {
1165
- index: null,
1166
- indexLabel: null,
1167
- dataset: null
1168
- }), L.value.events.datapointLeave && L.value.events.datapointLeave({
1169
- datapoint: r,
1170
- seriesIndex: t + K.value.start
1171
- }));
1172
- }
1173
- function gi(e, t) {
1174
- $t("selectTimeLabel", {
1175
- datapoint: JSON.parse(JSON.stringify(Y.value)).map((e) => ({
1176
- name: e.name,
1177
- value: e.series[t] === 0 ? 0 : (e.signedSeries[t] === -1 && e.series[t] >= 0 ? -e.series[t] : e.series[t]) || null,
1178
- proportion: e.proportions[t] || null,
1179
- color: e.color,
1180
- id: e.id
1181
- })),
1182
- absoluteIndex: e.absoluteIndex,
1183
- label: e.text
1184
- });
1185
- }
1186
- function _i() {
1187
- F.value.length ? F.value = [] : yi.value.forEach((e) => {
1188
- F.value.push(e.id);
1189
- }), $t("selectLegend", Y.value);
1190
- }
1191
- function vi(e) {
1192
- if (F.value.includes(e.id)) F.value = F.value.filter((t) => t !== e.id);
1193
- else {
1194
- if (F.value.length === W.value.length - 1) return;
1195
- F.value.push(e.id);
1196
- }
1197
- $t("selectLegend", Y.value);
1198
- }
1199
- let yi = y(() => W.value.map((e) => ({
1200
- ...e,
1201
- opacity: F.value.includes(e.id) ? .5 : 1,
1202
- segregate: () => vi(e),
1203
- isSegregated: F.value.includes(e.id)
1204
- }))), bi = y(() => ({
1205
- cy: "stackline-legend",
1206
- backgroundColor: L.value.style.chart.legend.backgroundColor,
1207
- color: L.value.style.chart.legend.color,
1208
- fontSize: L.value.style.chart.legend.fontSize,
1209
- paddingBottom: 12,
1210
- fontWeight: L.value.style.chart.legend.bold ? "bold" : ""
1211
- }));
1212
- function xi(e) {
1213
- return W.value.length ? W.value.find((t) => t.name === e) || (L.value.debug && console.warn(`VueUiStackline - Series name not found "${e}"`), null) : (L.value.debug && console.warn("VueUiStackline - There are no series to show."), null);
1214
- }
1215
- function Si(e) {
1216
- let t = xi(e);
1217
- t !== null && F.value.includes(t.id) && vi({ id: t.id });
1218
- }
1219
- function Ci(e) {
1220
- let t = xi(e);
1221
- t !== null && (F.value.includes(t.id) || vi({ id: t.id }));
1222
- }
1223
- let wi = y(() => {
1224
- if (Y.value.length === 0) return {
1225
- head: [],
1226
- body: [],
1227
- config: {},
1228
- columnNames: []
1229
- };
1230
- let e = Y.value.map(({ name: e, color: t }) => ({
1231
- label: e,
1232
- color: t
1233
- })), t = [];
1234
- return Hr.value.forEach((e) => {
1235
- let n = e.absoluteIndex, r = [L.value.style.chart.grid.x.timeLabels.values?.[n] ? e.text : n + 1];
1236
- W.value.forEach((e) => {
1237
- let t = e.series?.[n], i = Number((t ?? 0).toFixed(L.value.table.td.roundingValue));
1238
- r.push(i);
1239
- }), t.push(r);
1240
- }), {
1241
- head: e,
1242
- body: t
1243
- };
1244
- });
1245
- function Ti(e = null) {
1246
- let t = [
1247
- [L.value.style.chart.title.text],
1248
- [L.value.style.chart.title.subtitle.text],
1249
- [""]
1250
- ], n = ["", ...wi.value.head.map((e) => e.label)], r = wi.value.body, i = f(t.concat([n]).concat(r));
1251
- e ? e(i) : s({
1252
- csvContent: i,
1253
- title: L.value.style.chart.title.text || "vue-ui-stackline"
1254
- });
1255
- }
1256
- let Ei = y(() => {
1257
- let e = [""].concat(Y.value.map((e) => e.name), " <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" stroke-width=\"1.5\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M18 16v2a1 1 0 0 1 -1 1h-11l6 -7l-6 -7h11a1 1 0 0 1 1 1v2\" /></svg>"), t = [], n = Math.max(0, K.value.end - K.value.start);
1258
- for (let e = 0; e < n; e += 1) {
1259
- let n = yr(e), r = L.value.style.chart.grid.x.timeLabels.values?.[n] ? J.value?.[e]?.text ?? n + 1 : n + 1, i = Y.value.map((t) => {
1260
- let n = t.series?.[e] ?? 0;
1261
- return Number(n.toFixed(L.value.table.td.roundingValue));
1262
- }), a = Y.value.filter((e) => !e.standalone).map((t) => t.series?.[e] ?? 0).reduce((e, t) => e + t, 0);
1263
- t.push([r].concat(i, Number(a.toFixed(L.value.table.td.roundingValue))));
1264
- }
1265
- return {
1266
- head: e,
1267
- body: t,
1268
- config: {
1269
- th: {
1270
- backgroundColor: L.value.table.th.backgroundColor,
1271
- color: L.value.table.th.color,
1272
- outline: L.value.table.th.outline
1273
- },
1274
- td: {
1275
- backgroundColor: L.value.table.td.backgroundColor,
1276
- color: L.value.table.td.color,
1277
- outline: L.value.table.td.outline
1278
- },
1279
- breakpoint: L.value.table.responsiveBreakpoint
1280
- },
1281
- colNames: [L.value.table.columnNames.period].concat(Y.value.map((e) => e.name), L.value.table.columnNames.total)
1282
- };
1283
- }), Di = y(() => L.value.style.chart.backgroundColor), Oi = y(() => L.value.style.chart.legend), { exportSvg: ki, getSvg: Ai } = be({
1284
- svg: B,
1285
- title: y(() => L.value.style.chart.title),
1286
- legend: Oi,
1287
- legendItems: yi,
1288
- backgroundColor: Di
1289
- });
1290
- async function ji({ isCb: e }) {
1291
- bn.value = !0, await We();
1292
- try {
1293
- if (e) {
1294
- let { blob: e, url: t, text: n, dataUrl: r } = await Ai();
1295
- await Promise.resolve(L.value.userOptions.callbacks.svg({
1296
- blob: e,
1297
- url: t,
1298
- text: n,
1299
- dataUrl: r
1300
- }));
1301
- } else await Promise.resolve(ki());
1302
- } finally {
1303
- bn.value = !1;
1304
- }
1305
- }
1306
- async function Mi({ scale: e = 2 } = {}) {
1307
- if (!tn.value) return;
1308
- let { width: t, height: n } = tn.value.getBoundingClientRect(), r = t / n, { imageUri: i, base64: a } = await Te({
1309
- domElement: tn.value,
1310
- base64: !0,
1311
- img: !0,
1312
- scale: e
1313
- });
1314
- return {
1315
- imageUri: i,
1316
- base64: a,
1317
- title: L.value.style.chart.title.text,
1318
- width: t,
1319
- height: n,
1320
- aspectRatio: r
1321
- };
1322
- }
1323
- let Ni = y(() => {
1324
- let e = L.value.table.useDialog && !L.value.table.show, t = V.value.showTable;
1325
- return {
1326
- component: e ? Jt : Ut,
1327
- title: `${L.value.style.chart.title.text}${L.value.style.chart.title.subtitle.text ? `: ${L.value.style.chart.title.subtitle.text}` : ""}`,
1328
- props: e ? {
1329
- backgroundColor: L.value.table.th.backgroundColor,
1330
- color: L.value.table.th.color,
1331
- headerColor: L.value.table.th.color,
1332
- headerBg: L.value.table.th.backgroundColor,
1333
- isFullscreen: un.value,
1334
- fullscreenParent: tn.value,
1335
- forcedWidth: Math.min(800, window.innerWidth * .8),
1336
- isCursorPointer: R.value
1337
- } : {
1338
- hideDetails: !0,
1339
- config: {
1340
- open: t,
1341
- maxHeight: 1e4,
1342
- body: {
1343
- backgroundColor: L.value.style.chart.backgroundColor,
1344
- color: L.value.style.chart.color
1345
- },
1346
- head: {
1347
- backgroundColor: L.value.style.chart.backgroundColor,
1348
- color: L.value.style.chart.color
1349
- }
1350
- }
1351
- }
1352
- };
1353
- });
1354
- $e(() => V.value.showTable, (e) => {
1355
- L.value.table.show || (e && L.value.table.useDialog && gn.value ? gn.value.open() : "close" in gn.value && gn.value.close());
1356
- });
1357
- function Pi() {
1358
- V.value.showTable = !1, _n.value && _n.value.setTableIconState(!1);
1359
- }
1360
- function Fi(e) {
1361
- un.value = e, rn.value += 1;
1362
- }
1363
- function Ii() {
1364
- V.value.showTable = !V.value.showTable;
1365
- }
1366
- function Li() {
1367
- V.value.dataLabels.show = !V.value.dataLabels.show;
1368
- }
1369
- function Ri() {
1370
- V.value.showTooltip = !V.value.showTooltip;
1371
- }
1372
- function zi() {
1373
- return Y.value;
1374
- }
1375
- function Bi(e) {
1376
- let t = e ?? 0, n = yr(t);
1377
- return JSON.parse(JSON.stringify(Y.value)).map((e) => {
1378
- let r = e.series[t], i = e.signedSeries?.[t], a = r === 0 ? 0 : (i === -1 && r >= 0 ? -r : r) || null;
1379
- return {
1380
- name: e.name,
1381
- absoluteIndex: e.absoluteIndex,
1382
- value: a,
1383
- proportion: e.proportions?.[t] || null,
1384
- color: e.color,
1385
- id: e.id,
1386
- timeLabel: Rr.value?.[n] || null
1387
- };
1388
- });
1389
- }
1390
- let Vi = y(() => Array(G.value).fill(0).map((e, t) => Bi(t)));
1391
- $e(() => N.selectedXIndex, (e) => {
1392
- if ([null, void 0].includes(N.selectedXIndex)) {
1393
- $.value = null;
1394
- return;
1395
- }
1396
- let t = e - K.value.start;
1397
- t < 0 || e >= K.value.end ? $.value = null : $.value = t ?? null;
1398
- }, { immediate: !0 });
1399
- let Hi = y(() => {
1400
- if (L.value.style.chart.lines.distributed) return {
1401
- min: -1,
1402
- max: 1
1403
- };
1404
- let e = gr.value, t = _r.value, n = Math.max(1, ...[...e, ...t].map((e) => e.series?.length || 0)), r = Array(n).fill(0), i = Array(n).fill(0);
1405
- e.forEach((e) => {
1406
- for (let t = 0; t < n; t += 1) {
1407
- let n = e.series[t] ?? 0;
1408
- n >= 0 ? r[t] += n : i[t] += n;
1409
- }
1410
- });
1411
- let a = Array(n).fill(0), o = Array(n).fill(0);
1412
- t.forEach((e) => {
1413
- for (let t = 0; t < n; t += 1) {
1414
- let n = e.series[t] ?? 0;
1415
- n > 0 && (a[t] = Math.max(a[t], n)), n < 0 && (o[t] = Math.min(o[t], n));
1416
- }
1417
- });
1418
- let s = Math.max(0, ...r, ...a), c = Math.min(0, ...i, ...o), l = L.value.style.chart.grid.scale.scaleMin, u = L.value.style.chart.grid.scale.scaleMax, d = L.value.style.chart.grid.scale.ticks, f = !L.value.style.chart.lines.distributed && (l !== null || u !== null) ? _(l === null ? c > 0 ? 0 : c : l, u === null ? s < 0 ? 0 : s : u, d) : te(l === null ? c > 0 ? 0 : c : l, u === null ? s < 0 ? 0 : s : u, d);
1419
- return {
1420
- min: Number(f.min) || 0,
1421
- max: Number(f.max) || 0
1422
- };
1423
- });
1424
- function Ui({ minimapH: e, unitW: t }) {
1425
- let n = (e) => typeof e == "string" ? e.replace(/^M\s*[-+]?[\d.]+(?:e[-+]?\d+)?\s*,?\s*[-+]?[\d.]+(?:e[-+]?\d+)?\s*/i, "").trim() : "";
1426
- if (!Number.isFinite(e) || e <= 0 || !Number.isFinite(t) || t <= 0) return "";
1427
- let r = Y.value.filter((e) => !e.standalone), i = Y.value.filter((e) => e.standalone), a = Math.max(0, ...Y.value.map((e) => Array.isArray(e.fullSeries) ? e.fullSeries.length : e.series.length));
1428
- if (a <= 0) return "";
1429
- let s = a === 1 ? [t * .5] : Array.from({ length: a }, (e, n) => n * t);
1430
- if (L.value.style.chart.lines.distributed) {
1431
- let t = Array.from({ length: a }, (e, t) => {
1432
- let n = 0;
1433
- return r.forEach((e) => {
1434
- let r = (Array.isArray(e.fullSeries) ? e.fullSeries : e.series)?.[t];
1435
- r != null && !Number.isNaN(r) && (n += Math.abs(r));
1436
- }), n || 1;
1437
- }), c = (t) => e - e * Math.max(0, Math.min(1, t || 0)), l = [], u = Array(a).fill(0);
1438
- return r.forEach((e) => {
1439
- let r = Array.isArray(e.fullSeries) ? e.fullSeries : e.series, i = Array(a), d = Array(a);
1440
- for (let e = 0; e < a; e += 1) {
1441
- let n = r?.[e], a = n == null || Number.isNaN(n) ? 0 : Math.abs(n) / t[e];
1442
- d[e] = u[e], u[e] += a, i[e] = u[e];
1443
- }
1444
- let f = i.map(c), p = d.map(c), m = s.map((e, t) => ({
1445
- x: e,
1446
- y: f[t]
1447
- })), h = s.map((e, t) => ({
1448
- x: e,
1449
- y: p[t]
1450
- })), g = ae(m), _ = ae([...h].reverse()), ee = o(m), te = o([...h].reverse()), ne = h[h.length - 1];
1451
- if (L.value.style.chart.lines.useArea) {
1452
- let t = L.value.style.chart.lines.smooth ? `M${m[0].x},${m[0].y} ${n(g)} L${ne.x},${ne.y} ${n(_)} Z` : `M${m[0].x},${m[0].y} ${n(ee)} L${ne.x},${ne.y} ${n(te)} Z`;
1453
- l.push(`<path d="${t}"
1454
- fill="${Qt.pattern ? `url(#pattern_${P.value}_${e.absoluteIndex})` : (L.value.style.chart.lines.gradient.show, e.color)}"
1455
- opacity="${L.value.style.chart.lines.areaOpacity}"
1456
- stroke="none" />`);
1457
- }
1458
- let re = L.value.style.chart.lines.smooth ? `M${m[0].x},${m[0].y} ${n(g)}` : `M${m[0].x},${m[0].y} ${n(ee)}`;
1459
- l.push(`<path d="${re}"
1460
- fill="none"
1461
- stroke="${e.color}"
1462
- stroke-width="${L.value.style.chart.lines.strokeWidth}"
1463
- stroke-linecap="round" />`);
1464
- }), i.length && i.forEach((e) => {
1465
- let r = Array.isArray(e.fullSeries) ? e.fullSeries : e.series, i = Array.from({ length: a }, (e, n) => c(Math.abs(r?.[n] ?? 0) / t[n])), u = s.map((e, t) => ({
1466
- x: e,
1467
- y: i[t]
1468
- })), d = ae(u), f = o(u), p = L.value.style.chart.lines.smooth ? `M${u[0].x},${u[0].y} ${n(d)}` : `M${u[0].x},${u[0].y} ${n(f)}`;
1469
- l.push(`<path d="${p}"
1470
- fill="none"
1471
- stroke="${e.color}"
1472
- stroke-width="${L.value.style.chart.lines.strokeWidth}"
1473
- stroke-linecap="round" />`);
1474
- }), l.join("");
1475
- }
1476
- let c = Hi.value.min, l = Hi.value.max, u = Math.abs(c), d = l + u || 1, f = (t) => Math.max(0, Math.min(e, t)), p = (t) => f(e - e * (((t ?? 0) + u) / d)), m = [];
1477
- if (r.length) {
1478
- let e = Array(a).fill(0), t = Array(a).fill(0);
1479
- r.forEach((r) => {
1480
- let i = Array.isArray(r.fullSeries) ? r.fullSeries : r.series, c = Array(a), l = Array(a);
1481
- for (let n = 0; n < a; n += 1) {
1482
- let r = i?.[n] ?? 0;
1483
- r >= 0 ? (l[n] = e[n], e[n] += r, c[n] = e[n]) : (l[n] = t[n], t[n] += r, c[n] = t[n]);
1484
- }
1485
- let u = c.map(p), d = l.map(p), f = s.map((e, t) => ({
1486
- x: e,
1487
- y: u[t]
1488
- })), h = s.map((e, t) => ({
1489
- x: e,
1490
- y: d[t]
1491
- })), g = ae(f), _ = ae([...h].reverse()), ee = o(f), te = o([...h].reverse()), ne = h[h.length - 1];
1492
- if (L.value.style.chart.lines.useArea) {
1493
- let e = L.value.style.chart.lines.smooth ? `M${f[0].x},${f[0].y} ${n(g)} L${ne.x},${ne.y} ${n(_)} Z` : `M${f[0].x},${f[0].y} ${n(ee)} L${ne.x},${ne.y} ${n(te)} Z`;
1494
- m.push(`<path d="${e}"
1495
- fill="${Qt.pattern ? `url(#pattern_${P.value}_${r.absoluteIndex})` : (L.value.style.chart.lines.gradient.show, r.color)}"
1496
- opacity="${L.value.style.chart.lines.areaOpacity}"
1497
- stroke="none" />`);
1498
- }
1499
- let re = L.value.style.chart.lines.smooth ? `M${f[0].x},${f[0].y} ${n(g)}` : `M${f[0].x},${f[0].y} ${n(ee)}`;
1500
- m.push(`<path d="${re}"
1501
- fill="none"
1502
- stroke="${r.color}"
1503
- stroke-width="${L.value.style.chart.lines.strokeWidth}"
1504
- stroke-linecap="round" />`);
1505
- });
1506
- }
1507
- return i.length && i.forEach((e) => {
1508
- let t = (Array.isArray(e.fullSeries) ? e.fullSeries : e.series).map(p), r = s.map((e, n) => ({
1509
- x: e,
1510
- y: t[n]
1511
- })), i = ae(r), a = o(r), c = L.value.style.chart.lines.smooth ? `M${r[0].x},${r[0].y} ${n(i)}` : `M${r[0].x},${r[0].y} ${n(a)}`;
1512
- m.push(`<path d="${c}"
1513
- fill="none"
1514
- stroke="${e.color}"
1515
- stroke-width="${L.value.style.chart.lines.strokeWidth}"
1516
- stroke-linecap="round" />`);
1517
- }), m.join("");
1518
- }
1519
- function Wi(e, t) {
1520
- let n = L.value.style.chart.lines, r = n.dataLabels;
1521
- return n.showDistributedPercentage && n.distributed ? Yn.value ? t === 0 ? !r.hideEmptyPercentages : Math.abs(t) * 100 >= r.hideUnderPercentage : r.hideEmptyPercentages ? Math.abs(t) > 0 : !0 : Yn.value ? (Jn.value && ar.value && console.warn("Vue Data UI - VueUiStackline - You cannot set both dataLabels.hideUnderPercentage and dataLabels.hideUnderValue. Note that dataLabels.hideUnderPercentage takes precedence in this case."), Math.abs(e) > Gi.value * r.hideUnderPercentage / 100) : Jn.value ? Math.abs(e) >= r.hideUnderValue : r.hideEmptyValues ? e !== 0 : !0;
1522
- }
1523
- let Gi = y(() => Math.max(...Y.value.flatMap((e) => e.series)));
1524
- function Ki(e, t, n, i, a) {
1525
- let o = a === -1 && e >= 0 ? -e : e;
1526
- return re(L.value.style.chart.lines.dataLabels.formatter, o, r({
1527
- p: L.value.style.chart.lines.dataLabels.prefix,
1528
- v: o,
1529
- s: L.value.style.chart.lines.dataLabels.suffix,
1530
- r: L.value.style.chart.lines.dataLabels.rounding
1531
- }), {
1532
- datapoint: t,
1533
- seriesIndex: n,
1534
- datapointIndex: i
1535
- });
1536
- }
1537
- function qi(e, t, n, i) {
1538
- return re(L.value.style.chart.lines.dataLabels.formatter, e, r({
1539
- v: isNaN(e) ? 0 : e,
1540
- s: "%",
1541
- r: L.value.style.chart.lines.dataLabels.rounding
1542
- }), {
1543
- datapoint: t,
1544
- seriesIndex: n,
1545
- datapointIndex: i
1546
- });
1547
- }
1548
- function Ji({ seriesIndex: e, datapoint: t }) {
1549
- let n = K.value.start + e;
1550
- $t("selectX", {
1551
- dataset: t,
1552
- index: n,
1553
- indexLabel: L.value.style.chart.grid.x.timeLabels.values[n]
1554
- });
1555
- }
1556
- function Yi(e) {
1557
- if (e?.stage === "start") {
1558
- yn.value = !0;
1559
- return;
1560
- }
1561
- if (e?.stage === "end") {
1562
- yn.value = !1;
1563
- return;
1564
- }
1565
- $n();
1566
- }
1567
- async function Xi() {
1568
- if ($t("copyAlt", {
1569
- config: L.value,
1570
- dataset: Y.value
1571
- }), !L.value.userOptions.callbacks.altCopy) {
1572
- console.warn("Vue Data UI - A callback must be set for `altCopy` in userOptions.");
1573
- return;
1574
- }
1575
- await Promise.resolve(L.value.userOptions.callbacks.altCopy({
1576
- config: L.value,
1577
- dataset: Y.value
1578
- }));
1579
- }
1580
- let Zi = D(!1);
1581
- function Qi() {
1582
- I.value = null, Zi.value = !0;
1583
- }
1584
- function $i() {
1585
- I.value = null, jn.value = "pointer", nn.value = !1, $.value = null, $t("selectX", {
1586
- index: null,
1587
- indexLabel: null,
1588
- dataset: null
1589
- }), Zi.value = !1;
1590
- }
1591
- function ea(e) {
1592
- if (!B.value || Ln.value || document.activeElement !== B.value || Or.value || !Z.value) return;
1593
- let t = e.key === "ArrowLeft", n = e.key === "ArrowRight", r = e.key === "Enter" || e.key === " ", i = e.key === "Escape";
1594
- if (!t && !n && !r && !i) return;
1595
- if (e.preventDefault(), e.stopPropagation(), i) {
1596
- I.value = null, jn.value = "pointer", nn.value = !1, $.value = null, $t("selectX", {
1597
- index: null,
1598
- indexLabel: null,
1599
- dataset: null
1600
- });
1601
- return;
1602
- }
1603
- if (r) {
1604
- if (I.value === null) return;
1605
- ui(I.value);
1606
- return;
1607
- }
1608
- let a = I.value, o = ri.value, s = a !== null && a >= 0 && a < Z.value, c = o !== null && o >= 0 && o < Z.value;
1609
- s ? n ? (a += 1, a >= Z.value && (a = 0)) : t && (--a, a < 0 && (a = Z.value - 1)) : c ? (a = n ? o + 1 : o - 1, a >= Z.value && (a = 0), a < 0 && (a = Z.value - 1)) : a = n ? 0 : Z.value - 1, I.value = a, ta(a), hi(!0, a, "keyboard");
1610
- }
1611
- function ta(e) {
1612
- if (!Number.isFinite(e) || !B.value) return;
1613
- let t = fe(U.value.left + e * oi.value, U.value.top + U.value.height / 2, B.value);
1614
- t && (An.value = t);
1615
- }
1616
- let na = y(() => ({
1617
- headers: Ei.value?.colNames ?? [],
1618
- rows: Ei.value?.body ?? []
1619
- }));
1620
- return Oe({
1621
- getData: zi,
1622
- getImage: Mi,
1623
- generatePdf: Qn,
1624
- generateCsv: Ti,
1625
- generateImage: $n,
1626
- generateSvg: ji,
1627
- hideSeries: Ci,
1628
- showSeries: Si,
1629
- toggleTable: Ii,
1630
- toggleLabels: Li,
1631
- toggleTooltip: Ri,
1632
- toggleAnnotator: Rn,
1633
- toggleFullscreen: Fi,
1634
- copyAlt: Xi
1635
- }), (t, n) => (E(), S("div", {
1636
- id: `stackline_${P.value}`,
1637
- ref_key: "stacklineChart",
1638
- ref: tn,
1639
- class: Ge({
1640
- "vue-data-ui-component": !0,
1641
- "vue-ui-stackline": !0,
1642
- "vue-data-ui-wrapper-fullscreen": un.value
1643
- }),
1644
- style: Ke(`background:${L.value.style.chart.backgroundColor};color:${L.value.style.chart.color};font-family:${L.value.style.fontFamily}; position: relative; ${L.value.responsive ? "height: 100%" : ""}`),
1645
- onMouseenter: Gn,
1646
- onMouseleave: Kn
1647
- }, [
1648
- C("div", {
1649
- id: `chart-instructions-${P.value}`,
1650
- class: "sr-only"
1651
- }, [C("p", null, A(L.value.a11y.translations.keyboardNavigation), 1)], 8, rt),
1652
- na.value?.rows?.length ? (E(), b(Ne, {
1653
- key: 0,
1654
- uid: P.value,
1655
- head: na.value.headers,
1656
- body: na.value.rows,
1657
- notice: L.value.a11y.translations.tableAvailable,
1658
- caption: L.value.a11y.translations.tableCaption
1659
- }, null, 8, [
1660
- "uid",
1661
- "head",
1662
- "body",
1663
- "notice",
1664
- "caption"
1665
- ])) : x("", !0),
1666
- L.value.userOptions.buttons.annotator ? (E(), b(j(Gt), {
1667
- key: 1,
1668
- svgRef: j(B),
1669
- backgroundColor: L.value.style.chart.backgroundColor,
1670
- color: L.value.style.chart.color,
1671
- active: Ln.value,
1672
- isCursorPointer: R.value,
1673
- onClose: Rn
1674
- }, {
1675
- "annotator-action-close": M(() => [k(t.$slots, "annotator-action-close", {}, void 0, !0)]),
1676
- "annotator-action-color": M(({ color: e }) => [k(t.$slots, "annotator-action-color", T(w({ color: e })), void 0, !0)]),
1677
- "annotator-action-draw": M(({ mode: e }) => [k(t.$slots, "annotator-action-draw", T(w({ mode: e })), void 0, !0)]),
1678
- "annotator-action-undo": M(({ disabled: e }) => [k(t.$slots, "annotator-action-undo", T(w({ disabled: e })), void 0, !0)]),
1679
- "annotator-action-redo": M(({ disabled: e }) => [k(t.$slots, "annotator-action-redo", T(w({ disabled: e })), void 0, !0)]),
1680
- "annotator-action-delete": M(({ disabled: e }) => [k(t.$slots, "annotator-action-delete", T(w({ disabled: e })), void 0, !0)]),
1681
- _: 3
1682
- }, 8, [
1683
- "svgRef",
1684
- "backgroundColor",
1685
- "color",
1686
- "active",
1687
- "isCursorPointer"
1688
- ])) : x("", !0),
1689
- k(t.$slots, "userConfig", {}, void 0, !0),
1690
- er.value ? (E(), S("div", {
1691
- key: 2,
1692
- ref_key: "noTitle",
1693
- ref: cn,
1694
- class: "vue-data-ui-no-title-space",
1695
- style: "height:36px; width: 100%;background:transparent"
1696
- }, null, 512)) : x("", !0),
1697
- L.value.style.chart.title.text ? (E(), S("div", {
1698
- key: 3,
1699
- ref_key: "chartTitle",
1700
- ref: an,
1701
- style: "width:100%;background:transparent;"
1702
- }, [(E(), b(Ee, {
1703
- key: `title_${fn.value}`,
1704
- config: {
1705
- title: {
1706
- cy: "stackline-title",
1707
- ...L.value.style.chart.title
1708
- },
1709
- subtitle: {
1710
- cy: "stackline-subtitle",
1711
- ...L.value.style.chart.title.subtitle
1712
- }
1713
- }
1714
- }, null, 8, ["config"]))], 512)) : x("", !0),
1715
- C("div", { id: `legend-top-${P.value}` }, null, 8, it),
1716
- L.value.userOptions.show && en.value && (j(Wn) || j(Hn)) ? (E(), b(j(Kt), {
1717
- ref_key: "userOptionsRef",
1718
- ref: _n,
1719
- key: `user_option_${rn.value}`,
1720
- backgroundColor: L.value.style.chart.backgroundColor,
1721
- color: L.value.style.chart.color,
1722
- isPrinting: j(Xn),
1723
- isImaging: j(Zn),
1724
- uid: P.value,
1725
- hasTooltip: L.value.style.chart.tooltip.show && L.value.userOptions.buttons.tooltip,
1726
- hasPdf: L.value.userOptions.buttons.pdf,
1727
- hasImg: L.value.userOptions.buttons.img,
1728
- hasSvg: L.value.userOptions.buttons.svg,
1729
- hasXls: L.value.userOptions.buttons.csv,
1730
- hasTable: L.value.userOptions.buttons.table,
1731
- hasLabel: L.value.userOptions.buttons.labels,
1732
- hasFullscreen: L.value.userOptions.buttons.fullscreen,
1733
- hasAltCopy: L.value.userOptions.buttons.altCopy,
1734
- isFullscreen: un.value,
1735
- chartElement: tn.value,
1736
- position: L.value.userOptions.position,
1737
- isTooltip: V.value.showTooltip,
1738
- titles: { ...L.value.userOptions.buttonTitles },
1739
- hasAnnotator: L.value.userOptions.buttons.annotator,
1740
- isAnnotation: Ln.value,
1741
- callbacks: L.value.userOptions.callbacks,
1742
- printScale: L.value.userOptions.print.scale,
1743
- tableDialog: L.value.table.useDialog,
1744
- isCursorPointer: R.value,
1745
- onToggleFullscreen: Fi,
1746
- onGeneratePdf: j(Qn),
1747
- onGenerateCsv: Ti,
1748
- onGenerateImage: Yi,
1749
- onGenerateSvg: ji,
1750
- onToggleTable: Ii,
1751
- onToggleLabels: Li,
1752
- onToggleTooltip: Ri,
1753
- onToggleAnnotator: Rn,
1754
- onCopyAlt: Xi,
1755
- style: Ke({ visibility: j(Wn) ? j(Hn) ? "visible" : "hidden" : "visible" })
1756
- }, ze({ _: 2 }, [
1757
- t.$slots.menuIcon ? {
1758
- name: "menuIcon",
1759
- fn: M(({ isOpen: e, color: n }) => [k(t.$slots, "menuIcon", T(w({
1760
- isOpen: e,
1761
- color: n
1762
- })), void 0, !0)]),
1763
- key: "0"
1764
- } : void 0,
1765
- t.$slots.optionTooltip ? {
1766
- name: "optionTooltip",
1767
- fn: M(() => [k(t.$slots, "optionTooltip", {}, void 0, !0)]),
1768
- key: "1"
1769
- } : void 0,
1770
- t.$slots.optionPdf ? {
1771
- name: "optionPdf",
1772
- fn: M(() => [k(t.$slots, "optionPdf", {}, void 0, !0)]),
1773
- key: "2"
1774
- } : void 0,
1775
- t.$slots.optionCsv ? {
1776
- name: "optionCsv",
1777
- fn: M(() => [k(t.$slots, "optionCsv", {}, void 0, !0)]),
1778
- key: "3"
1779
- } : void 0,
1780
- t.$slots.optionImg ? {
1781
- name: "optionImg",
1782
- fn: M(() => [k(t.$slots, "optionImg", {}, void 0, !0)]),
1783
- key: "4"
1784
- } : void 0,
1785
- t.$slots.optionSvg ? {
1786
- name: "optionSvg",
1787
- fn: M(() => [k(t.$slots, "optionSvg", {}, void 0, !0)]),
1788
- key: "5"
1789
- } : void 0,
1790
- t.$slots.optionTable ? {
1791
- name: "optionTable",
1792
- fn: M(() => [k(t.$slots, "optionTable", {}, void 0, !0)]),
1793
- key: "6"
1794
- } : void 0,
1795
- t.$slots.optionLabels ? {
1796
- name: "optionLabels",
1797
- fn: M(() => [k(t.$slots, "optionLabels", {}, void 0, !0)]),
1798
- key: "7"
1799
- } : void 0,
1800
- t.$slots.optionFullscreen ? {
1801
- name: "optionFullscreen",
1802
- fn: M(({ toggleFullscreen: e, isFullscreen: n }) => [k(t.$slots, "optionFullscreen", T(w({
1803
- toggleFullscreen: e,
1804
- isFullscreen: n
1805
- })), void 0, !0)]),
1806
- key: "8"
1807
- } : void 0,
1808
- t.$slots.optionAnnotator ? {
1809
- name: "optionAnnotator",
1810
- fn: M(({ toggleAnnotator: e, isAnnotator: n }) => [k(t.$slots, "optionAnnotator", T(w({
1811
- toggleAnnotator: e,
1812
- isAnnotator: n
1813
- })), void 0, !0)]),
1814
- key: "9"
1815
- } : void 0,
1816
- t.$slots.optionAltCopy ? {
1817
- name: "optionAltCopy",
1818
- fn: M(({ altCopy: e }) => [k(t.$slots, "optionAltCopy", T(w({ altCopy: e })), void 0, !0)]),
1819
- key: "10"
1820
- } : void 0,
1821
- t.$slots["custom-menu-before"] ? {
1822
- name: "custom-menu-before",
1823
- fn: M(() => [k(t.$slots, "custom-menu-before", {}, void 0, !0)]),
1824
- key: "11"
1825
- } : void 0,
1826
- t.$slots["custom-menu-after"] ? {
1827
- name: "custom-menu-after",
1828
- fn: M(() => [k(t.$slots, "custom-menu-after", {}, void 0, !0)]),
1829
- key: "12"
1830
- } : void 0
1831
- ]), 1032, /* @__PURE__ */ "backgroundColor.color.isPrinting.isImaging.uid.hasTooltip.hasPdf.hasImg.hasSvg.hasXls.hasTable.hasLabel.hasFullscreen.hasAltCopy.isFullscreen.chartElement.position.isTooltip.titles.hasAnnotator.isAnnotation.callbacks.printScale.tableDialog.isCursorPointer.onGeneratePdf.style".split("."))) : x("", !0),
1832
- C("div", at, [(E(), S("svg", {
1833
- ref_key: "svgRef",
1834
- ref: B,
1835
- "aria-describedby": `chart-instructions-${P.value}`,
1836
- xmlns: j(ce),
1837
- viewBox: `0 0 ${U.value.chartWidth <= 0 ? 10 : U.value.chartWidth} ${U.value.chartHeight <= 0 ? 10 : U.value.chartHeight}`,
1838
- class: Ge({
1839
- "vue-data-ui-loading": j(z),
1840
- "no-transition": !L.value.useCssAnimation
1841
- }),
1842
- style: Ke(`max-width:100%;overflow:visible;background:transparent;color:${L.value.style.chart.color}`),
1843
- role: "img",
1844
- "aria-live": "polite",
1845
- tabindex: "0",
1846
- preserveAspectRatio: "xMidYMid",
1847
- onMousemove: ci,
1848
- onMouseleave: di,
1849
- onClick: li,
1850
- onFocus: Qi,
1851
- onBlur: $i,
1852
- onKeydown: ea
1853
- }, [
1854
- Ve(j(qt)),
1855
- (E(!0), S(v, null, O(gr.value, (e) => (E(), S(v, null, [t.$slots.pattern ? (E(), S("defs", st, [k(t.$slots, "pattern", Ue({ ref_for: !0 }, {
1856
- seriesIndex: e.absoluteIndex,
1857
- patternId: `pattern_${P.value}_${e.absoluteIndex}`
1858
- }), void 0, !0)])) : x("", !0)], 64))), 256)),
1859
- t.$slots["chart-background"] ? (E(), S("foreignObject", {
1860
- key: 0,
1861
- x: X.value.left,
1862
- y: U.value.top,
1863
- width: X.value.width,
1864
- height: U.value.height,
1865
- style: { pointerEvents: "none" }
1866
- }, [k(t.$slots, "chart-background", {}, void 0, !0)], 8, ct)) : x("", !0),
1867
- L.value.style.chart.lines.gradient.show ? (E(), S("defs", lt, [(E(!0), S(v, null, O(Y.value, (e, t) => (E(), S("linearGradient", {
1868
- id: `gradient_${e.id}`,
1869
- x1: "0%",
1870
- y1: "0%",
1871
- x2: "0%",
1872
- y2: "100%"
1873
- }, [C("stop", {
1874
- offset: "0%",
1875
- "stop-color": e.color
1876
- }, null, 8, dt), C("stop", {
1877
- offset: "100%",
1878
- "stop-color": j(p)(e.color, L.value.style.chart.lines.gradient.intensity / 100)
1879
- }, null, 8, ft)], 8, ut))), 256))])) : x("", !0),
1880
- L.value.style.chart.grid.x.showHorizontalLines ? (E(!0), S(v, { key: 2 }, O(Lr.value, (e, t) => (E(), S("line", {
1881
- x1: X.value.left,
1882
- x2: X.value.right,
1883
- y1: e.y,
1884
- y2: e.y,
1885
- stroke: L.value.style.chart.grid.x.linesColor,
1886
- "stroke-width": L.value.style.chart.grid.x.linesThickness,
1887
- "stroke-dasharray": L.value.style.chart.grid.x.linesStrokeDasharray,
1888
- "stroke-linecap": "round"
1889
- }, null, 8, pt))), 256)) : x("", !0),
1890
- L.value.style.chart.grid.y.showVerticalLines ? (E(!0), S(v, { key: 3 }, O(K.value.end - K.value.start, (e, t) => (E(), S("line", {
1891
- x1: Q(t),
1892
- x2: Q(t),
1893
- y1: U.value.top,
1894
- y2: U.value.bottom,
1895
- stroke: L.value.style.chart.grid.y.linesColor,
1896
- "stroke-width": L.value.style.chart.grid.y.linesThickness,
1897
- "stroke-dasharray": L.value.style.chart.grid.y.linesStrokeDasharray,
1898
- "stroke-linecap": "round"
1899
- }, null, 8, mt))), 256)) : x("", !0),
1900
- L.value.style.chart.grid.x.showAxis ? (E(), S("line", {
1901
- key: 4,
1902
- x1: X.value.left,
1903
- x2: X.value.right,
1904
- y1: U.value.bottom,
1905
- y2: U.value.bottom,
1906
- stroke: L.value.style.chart.grid.x.axisColor,
1907
- "stroke-width": L.value.style.chart.grid.x.axisThickness,
1908
- "stroke-linecap": "round",
1909
- "stroke-linejoin": "round"
1910
- }, null, 8, ht)) : x("", !0),
1911
- L.value.style.chart.grid.y.showAxis && !L.value.style.chart.lines.distributed ? (E(), S("line", {
1912
- key: 5,
1913
- x1: sr.value ? X.value.right : X.value.left,
1914
- x2: sr.value ? X.value.right : X.value.left,
1915
- y1: U.value.top,
1916
- y2: U.value.bottom,
1917
- stroke: L.value.style.chart.grid.y.axisColor,
1918
- "stroke-width": L.value.style.chart.grid.y.axisThickness,
1919
- "stroke-linecap": "round",
1920
- "stroke-linejoin": "round"
1921
- }, null, 8, gt)) : x("", !0),
1922
- L.value.style.chart.grid.x.axisName.show && L.value.style.chart.grid.x.axisName.text ? (E(), S("text", {
1923
- key: 6,
1924
- ref_key: "xAxisLabel",
1925
- ref: xn,
1926
- x: U.value.left + U.value.width / 2,
1927
- y: U.value.chartHeight - 3,
1928
- "font-size": L.value.style.chart.grid.x.axisName.fontSize,
1929
- fill: L.value.style.chart.grid.x.axisName.color,
1930
- "font-weight": L.value.style.chart.grid.x.axisName.bold ? "bold" : "normal",
1931
- "text-anchor": "middle"
1932
- }, A(L.value.style.chart.grid.x.axisName.text), 9, _t)) : x("", !0),
1933
- L.value.style.chart.grid.y.axisName.show && L.value.style.chart.grid.y.axisName.text ? (E(), S("text", {
1934
- key: 7,
1935
- ref_key: "yAxisLabel",
1936
- ref: Sn,
1937
- transform: `translate(${sr.value ? U.value.chartWidth - L.value.style.chart.grid.y.axisName.fontSize / 2 - L.value.style.chart.grid.y.axisName.offsetX : L.value.style.chart.grid.y.axisName.fontSize + L.value.style.chart.grid.y.axisName.offsetX}, ${U.value.top + U.value.height / 2}) rotate(-90)`,
1938
- "font-size": L.value.style.chart.grid.y.axisName.fontSize,
1939
- fill: L.value.style.chart.grid.y.axisName.color,
1940
- "font-weight": L.value.style.chart.grid.y.axisName.bold ? "bold" : "normal",
1941
- "text-anchor": "middle"
1942
- }, A(L.value.style.chart.grid.y.axisName.text), 9, vt)) : x("", !0),
1943
- L.value.style.chart.grid.frame.show ? (E(), S("rect", {
1944
- key: 8,
1945
- style: {
1946
- pointerEvents: "none",
1947
- transition: "none",
1948
- animation: "none !important"
1949
- },
1950
- x: X.value.left,
1951
- y: U.value.top,
1952
- width: X.value.width,
1953
- height: U.value.height,
1954
- fill: "transparent",
1955
- stroke: L.value.style.chart.grid.frame.stroke,
1956
- "stroke-width": L.value.style.chart.grid.frame.strokeWidth,
1957
- "stroke-linecap": L.value.style.chart.grid.frame.strokeLinecap,
1958
- "stroke-linejoin": L.value.style.chart.grid.frame.strokeLinejoin,
1959
- "stroke-dasharray": L.value.style.chart.grid.frame.strokeDasharray
1960
- }, null, 8, yt)) : x("", !0),
1961
- (E(!0), S(v, null, O(Y.value, (e) => (E(), S(v, null, [L.value.style.chart.lines.useArea && !e.standalone ? (E(), S("path", {
1962
- key: 0,
1963
- d: L.value.style.chart.lines.smooth ? e.smoothArea : e.straightArea,
1964
- fill: t.$slots.pattern ? `url(#pattern_${P.value}_${e.absoluteIndex})` : L.value.style.chart.lines.gradient.show ? `url(#gradient_${e.id})` : e.color,
1965
- opacity: L.value.style.chart.lines.areaOpacity,
1966
- style: Ke({ transition: j(z) || !L.value.useCssAnimation ? void 0 : "all 0.3s ease-in-out" })
1967
- }, null, 12, bt)) : x("", !0)], 64))), 256)),
1968
- (E(!0), S(v, null, O(Y.value, (e) => (E(), S("path", {
1969
- d: L.value.style.chart.lines.smooth ? e.smoothPath : e.straightPath,
1970
- stroke: L.value.style.chart.lines.path.useSerieColor ? e.color : L.value.style.chart.lines.path.stroke,
1971
- "stroke-width": L.value.style.chart.lines.strokeWidth,
1972
- fill: "none",
1973
- "stroke-linecap": "round",
1974
- style: Ke({ transition: j(z) || !L.value.useCssAnimation ? void 0 : "all 0.3s ease-in-out" })
1975
- }, null, 12, xt))), 256)),
1976
- L.value.style.chart.grid.y.axisLabels.show && !L.value.style.chart.lines.distributed ? (E(), S("g", {
1977
- key: 9,
1978
- ref_key: "scaleLabels",
1979
- ref: Cn
1980
- }, [(E(!0), S(v, null, O(Lr.value, (e, t) => (E(), S("line", {
1981
- x1: sr.value ? X.value.right : X.value.left,
1982
- x2: sr.value ? X.value.right + 6 : X.value.left - 6,
1983
- y1: e.y,
1984
- y2: e.y,
1985
- stroke: L.value.style.chart.grid.x.axisColor,
1986
- "stroke-width": 1
1987
- }, null, 8, St))), 256)), (E(!0), S(v, null, O(Lr.value, (e, t) => (E(), S("text", {
1988
- x: e.x,
1989
- y: e.y + L.value.style.chart.grid.y.axisLabels.fontSize / 3,
1990
- "font-size": L.value.style.chart.grid.y.axisLabels.fontSize,
1991
- "font-weight": L.value.style.chart.grid.y.axisLabels.bold ? "bold" : "normal",
1992
- fill: L.value.style.chart.grid.y.axisLabels.color,
1993
- "text-anchor": sr.value ? "start" : "end"
1994
- }, A(j(re)(L.value.style.chart.grid.y.axisLabels.formatter, e.value, j(r)({
1995
- p: L.value.style.chart.lines.dataLabels.prefix,
1996
- v: e.value,
1997
- s: L.value.style.chart.lines.dataLabels.suffix,
1998
- r: L.value.style.chart.grid.y.axisLabels.rounding
1999
- }), { datapoint: e })), 9, Ct))), 256))], 512)) : x("", !0),
2000
- L.value.style.chart.grid.x.timeLabels.show ? (E(), S("g", {
2001
- key: 10,
2002
- ref_key: "timeLabelsEls",
2003
- ref: wn
2004
- }, [t.$slots["time-label"] ? (E(), S("g", wt, [(E(!0), S(v, null, O(Hr.value, (e, n) => (E(), S("g", null, [k(t.$slots, "time-label", Ue({ ref_for: !0 }, {
2005
- x: U.value.left + Er.value * n + Er.value / 2,
2006
- y: U.value.bottom + L.value.style.chart.grid.x.timeLabels.fontSize * 1.3 + L.value.style.chart.grid.x.timeLabels.offsetY,
2007
- fontSize: L.value.style.chart.grid.x.timeLabels.fontSize,
2008
- fill: L.value.style.chart.grid.x.timeLabels.color,
2009
- transform: `translate(${U.value.left + Er.value * n + Er.value / 2}, ${U.value.bottom + L.value.style.chart.grid.x.timeLabels.fontSize * 1.3 + L.value.style.chart.grid.x.timeLabels.offsetY}), rotate(${L.value.style.chart.grid.x.timeLabels.rotation})`,
2010
- absoluteIndex: e.absoluteIndex,
2011
- content: e.text,
2012
- textAnchor: L.value.style.chart.grid.x.timeLabels.rotation > 0 ? "start" : L.value.style.chart.grid.x.timeLabels.rotation < 0 ? "end" : "middle",
2013
- show: !0
2014
- }), void 0, !0)]))), 256))])) : (E(), S("g", Tt, [(E(!0), S(v, null, O(Hr.value, (e, n) => (E(), S("g", null, [String(e.text).includes("\n") ? (E(), S("text", {
2015
- key: n + "-multi",
2016
- "text-anchor": L.value.style.chart.grid.x.timeLabels.rotation > 0 ? "start" : L.value.style.chart.grid.x.timeLabels.rotation < 0 ? "end" : "middle",
2017
- "font-size": L.value.style.chart.grid.x.timeLabels.fontSize,
2018
- fill: L.value.style.chart.grid.x.timeLabels.color,
2019
- transform: `
2020
- translate(
2021
- ${Q(n)},
2022
- ${U.value.bottom + L.value.style.chart.grid.x.timeLabels.fontSize * 1.3 + L.value.style.chart.grid.x.timeLabels.offsetY}
2023
- ),
2024
- rotate(${L.value.style.chart.grid.x.timeLabels.rotation})
2025
- `,
2026
- style: Ke({ cursor: R.value ? "pointer" : "default" }),
2027
- innerHTML: t.createTSpansFromLineBreaksOnX({
2028
- content: String(e.text),
2029
- fontSize: L.value.style.chart.grid.x.timeLabels.fontSize,
2030
- fill: L.value.style.chart.grid.x.timeLabels.color,
2031
- x: 0,
2032
- y: 0
2033
- }),
2034
- onClick: () => gi(e, n)
2035
- }, null, 12, Dt)) : (E(), S("text", {
2036
- class: "vue-data-ui-time-label",
2037
- key: n,
2038
- "text-anchor": L.value.style.chart.grid.x.timeLabels.rotation > 0 ? "start" : L.value.style.chart.grid.x.timeLabels.rotation < 0 ? "end" : "middle",
2039
- "font-size": L.value.style.chart.grid.x.timeLabels.fontSize,
2040
- "font-weight": L.value.style.chart.grid.x.timeLabels.bold ? "bold" : "normal",
2041
- fill: L.value.style.chart.grid.x.timeLabels.color,
2042
- transform: `translate(${Q(n)}, ${U.value.bottom + L.value.style.chart.grid.x.timeLabels.fontSize * 1.3 + L.value.style.chart.grid.x.timeLabels.offsetY}), rotate(${L.value.style.chart.grid.x.timeLabels.rotation})`,
2043
- style: Ke({ cursor: R.value ? "pointer" : "default" }),
2044
- onClick: () => gi(e, n)
2045
- }, A(e.text), 13, Et))]))), 256))]))], 512)) : x("", !0),
2046
- (vn.value || ![null, void 0].includes($.value)) && !L.value.style.chart.highlighter.useLine ? (E(!0), S(v, { key: 11 }, O(K.value.end - K.value.start, (e, t) => (E(), S("g", { key: `tooltip_trap_highlighter_${t}` }, [C("rect", {
2047
- x: si(t).x,
2048
- y: U.value.top,
2049
- height: U.value.height,
2050
- width: si(t).width,
2051
- fill: [In.value, $.value].includes(t) ? j(u)(L.value.style.chart.highlighter.color, L.value.style.chart.highlighter.opacity) : "transparent",
2052
- style: {
2053
- transition: "none !important",
2054
- animation: "none !important"
2055
- }
2056
- }, null, 8, Ot)]))), 128)) : x("", !0),
2057
- (vn.value || ![null, void 0].includes($.value)) && L.value.style.chart.highlighter.useLine ? (E(), S(v, { key: 12 }, [![null, void 0].includes($.value) || ![null, void 0].includes(In.value) ? (E(), S("g", kt, [C("line", {
2058
- x1: Q(($.value ?? In.value) || 0),
2059
- x2: Q(($.value ?? In.value) || 0),
2060
- y1: j(oe)(U.value.top),
2061
- y2: j(oe)(U.value.bottom),
2062
- stroke: L.value.style.chart.highlighter.color,
2063
- "stroke-width": L.value.style.chart.highlighter.lineWidth,
2064
- "stroke-dasharray": L.value.style.chart.highlighter.lineDasharray,
2065
- "stroke-linecap": "round",
2066
- style: {
2067
- transition: "none !important",
2068
- animation: "none !important",
2069
- "pointer-events": "none"
2070
- }
2071
- }, null, 8, At)])) : x("", !0)], 64)) : x("", !0),
2072
- (E(!0), S(v, null, O(Y.value, (e) => (E(), S(v, null, [vn.value && K.value.end - K.value.start > L.value.style.chart.lines.dot.hideAboveMaxSerieLength ? (E(), S("g", jt, [$.value == null ? x("", !0) : (E(), S(v, { key: 0 }, [e.rel.includes($.value) && e.fullSeries?.[K.value.start + $.value] != null && !Number.isNaN(e.fullSeries?.[K.value.start + $.value]) ? (E(), b(De, {
2073
- key: 0,
2074
- shape: [
2075
- "triangle",
2076
- "square",
2077
- "diamond",
2078
- "pentagon",
2079
- "hexagon",
2080
- "star"
2081
- ].includes(e.shape) ? e.shape : "circle",
2082
- color: L.value.style.chart.lines.dot.useSerieColor ? e.color : L.value.style.chart.lines.dot.fill,
2083
- plot: {
2084
- x: j(le)(e.points[e.rel.indexOf($.value)].x),
2085
- y: j(le)(e.points[e.rel.indexOf($.value)].y)
2086
- },
2087
- radius: L.value.style.chart.lines.dot.radius * 1.3,
2088
- stroke: L.value.style.chart.lines.dot.useSerieColor ? L.value.style.chart.lines.dot.stroke : e.color,
2089
- strokeWidth: L.value.style.chart.lines.dot.strokeWidth,
2090
- transition: j(z) ? void 0 : `all ${L.value.style.chart.lines.transitionDurationMs}ms ease-in-out`
2091
- }, null, 8, [
2092
- "shape",
2093
- "color",
2094
- "plot",
2095
- "radius",
2096
- "stroke",
2097
- "strokeWidth",
2098
- "transition"
2099
- ])) : x("", !0)], 64))])) : x("", !0)], 64))), 256)),
2100
- (E(!0), S(v, null, O(Y.value, (e) => (E(), S(v, null, [K.value.end - K.value.start < L.value.style.chart.lines.dot.hideAboveMaxSerieLength ? (E(!0), S(v, { key: 0 }, O(e.points, (t, n) => (E(), S("g", { key: n }, [e.fullSeries?.[K.value.start + e.rel[n]] != null && !Number.isNaN(e.fullSeries?.[K.value.start + e.rel[n]]) ? (E(), b(De, {
2101
- key: 0,
2102
- shape: [
2103
- "triangle",
2104
- "square",
2105
- "diamond",
2106
- "pentagon",
2107
- "hexagon",
2108
- "star"
2109
- ].includes(e.shape) ? e.shape : "circle",
2110
- color: L.value.style.chart.lines.dot.useSerieColor ? e.color : L.value.style.chart.lines.dot.fill,
2111
- plot: {
2112
- x: t.x,
2113
- y: t.y
2114
- },
2115
- radius: vn.value && $.value === e.rel[n] ? L.value.style.chart.lines.dot.radius * 1.3 : L.value.style.chart.lines.dot.radius,
2116
- stroke: L.value.style.chart.lines.dot.useSerieColor ? L.value.style.chart.lines.dot.stroke : e.color,
2117
- strokeWidth: L.value.style.chart.lines.dot.strokeWidth,
2118
- transition: j(z) ? void 0 : `all ${L.value.style.chart.lines.transitionDurationMs}ms ease-in-out`
2119
- }, null, 8, [
2120
- "shape",
2121
- "color",
2122
- "plot",
2123
- "radius",
2124
- "stroke",
2125
- "strokeWidth",
2126
- "transition"
2127
- ])) : x("", !0)]))), 128)) : x("", !0)], 64))), 256)),
2128
- V.value.dataLabels.show && L.value.style.chart.lines.dataLabels.hideAboveMaxSerieLength > K.value.end - K.value.start ? (E(), S(v, { key: 13 }, [(E(!0), S(v, null, O(Y.value, (e, t) => (E(), S("g", { key: t }, [(E(!0), S(v, null, O(e.points, (n, r) => (E(), S(v, { key: r }, [Wi(e.series[r], e.proportions[r]) ? (E(), S("text", {
2129
- key: 0,
2130
- x: n.x,
2131
- y: n.y + (e.series[r] >= 0 ? -L.value.style.chart.lines.dataLabels.fontSize / 2 + L.value.style.chart.lines.dataLabels.offsetY : L.value.style.chart.lines.dataLabels.fontSize * 1.2 - L.value.style.chart.lines.dataLabels.offsetY),
2132
- "font-size": L.value.style.chart.lines.dataLabels.fontSize,
2133
- fill: L.value.style.chart.lines.dataLabels.color,
2134
- "font-weight": L.value.style.chart.lines.dataLabels.bold ? "bold" : "normal",
2135
- "text-anchor": "middle"
2136
- }, A(L.value.style.chart.lines.showDistributedPercentage && L.value.style.chart.lines.distributed ? qi(e.proportions[r] * 100, e, t, e.rel[r]) : Ki(e.series[r], e, t, e.rel[r], e.signedSeries[r])), 9, Mt)) : x("", !0)], 64))), 128))]))), 128)), L.value.style.chart.lines.totalValues.show && Y.value.length > 1 ? (E(), S("g", {
2137
- key: 0,
2138
- ref_key: "sumTop",
2139
- ref: Tn
2140
- }, [(E(!0), S(v, null, O(Pr.value, (e, t) => (E(), S(v, null, [!L.value.style.chart.lines.dataLabels.hideEmptyValues || e.value !== 0 ? (E(), S("text", {
2141
- key: 0,
2142
- x: Q(t),
2143
- y: Ir(t),
2144
- "text-anchor": "middle",
2145
- "font-size": L.value.style.chart.lines.totalValues.fontSize,
2146
- "font-weight": L.value.style.chart.lines.totalValues.bold ? "bold" : "normal",
2147
- fill: L.value.style.chart.lines.totalValues.color
2148
- }, A(Ki(e.value, e, t, t, e.sign)), 9, Nt)) : x("", !0)], 64))), 256))], 512)) : x("", !0)], 64)) : x("", !0),
2149
- br.value ? (E(), S("rect", Ue({ key: 14 }, hr.value, {
2150
- "data-start": K.value.start,
2151
- "data-end": K.value.end
2152
- }), null, 16, Pt)) : x("", !0),
2153
- k(t.$slots, "svg", { svg: {
2154
- drawingArea: U.value,
2155
- data: Y.value,
2156
- isPrintingImg: j(Xn) || j(Zn) || yn.value,
2157
- isPrintingSvg: bn.value
2158
- } }, void 0, !0)
2159
- ], 46, ot)), t.$slots.hint ? (E(), S("div", Ft, [k(t.$slots, "hint", T(w({
2160
- hint: L.value.a11y.translations.keyboardNavigation,
2161
- isVisible: Zi.value
2162
- })), void 0, !0)])) : x("", !0)]),
2163
- t.$slots.watermark ? (E(), S("div", It, [k(t.$slots, "watermark", T(w({ isPrinting: j(Xn) || j(Zn) || yn.value || bn.value })), void 0, !0)])) : x("", !0),
2164
- hn.value && (L.value.style.chart.legend.show || t.$slots.legend) ? (E(), b(Re, {
2165
- key: 6,
2166
- to: L.value.style.chart.legend.position === "top" ? `#legend-top-${P.value}` : `#legend-bottom-${P.value}`
2167
- }, [C("div", {
2168
- ref_key: "chartLegend",
2169
- ref: on
2170
- }, [k(t.$slots, "legend", { legend: yi.value }, () => [L.value.style.chart.legend.show ? (E(), b(Ie, {
2171
- key: 0,
2172
- legendSet: yi.value,
2173
- config: bi.value,
2174
- isCursorPointer: R.value,
2175
- onClickMarker: n[0] ||= ({ legend: e }) => e.segregate()
2176
- }, ze({
2177
- item: M(({ legend: e }) => [j(z) ? x("", !0) : (E(), S("div", {
2178
- key: 0,
2179
- onClick: (t) => e.segregate(),
2180
- style: Ke(`opacity:${F.value.includes(e.id) ? .5 : 1}`)
2181
- }, A(e.name), 13, Lt))]),
2182
- legendToggle: M(() => [yi.value.length > 2 && L.value.style.chart.legend.selectAllToggle.show && !j(z) ? (E(), b(Me, {
2183
- key: 0,
2184
- backgroundColor: L.value.style.chart.legend.selectAllToggle.backgroundColor,
2185
- color: L.value.style.chart.legend.selectAllToggle.color,
2186
- fontSize: L.value.style.chart.legend.fontSize,
2187
- checked: F.value.length > 0,
2188
- isCursorPointer: R.value,
2189
- onToggle: _i
2190
- }, null, 8, [
2191
- "backgroundColor",
2192
- "color",
2193
- "fontSize",
2194
- "checked",
2195
- "isCursorPointer"
2196
- ])) : x("", !0)]),
2197
- _: 2
2198
- }, [t.$slots.pattern ? {
2199
- name: "legend-pattern",
2200
- fn: M(({ legend: e, index: t }) => [Ve(De, {
2201
- shape: e.shape,
2202
- radius: 30,
2203
- stroke: "none",
2204
- plot: {
2205
- x: 30,
2206
- y: 30
2207
- },
2208
- fill: `url(#pattern_${P.value}_${t})`
2209
- }, null, 8, ["shape", "fill"])]),
2210
- key: "0"
2211
- } : void 0]), 1032, [
2212
- "legendSet",
2213
- "config",
2214
- "isCursorPointer"
2215
- ])) : x("", !0)], !0)], 512)], 8, ["to"])) : x("", !0),
2216
- en.value && L.value.userOptions.buttons.table ? (E(), b(Ye(Ni.value.component), Ue({ key: 7 }, Ni.value.props, {
2217
- ref_key: "tableUnit",
2218
- ref: gn,
2219
- onClose: Pi
2220
- }), ze({
2221
- content: M(() => [Ve(j(Wt), {
2222
- colNames: Ei.value.colNames,
2223
- head: Ei.value.head,
2224
- body: Ei.value.body,
2225
- config: Ei.value.config,
2226
- title: L.value.table.useDialog ? "" : Ni.value.title,
2227
- withCloseButton: !L.value.table.useDialog,
2228
- isCursorPointer: R.value,
2229
- onClose: Pi
2230
- }, {
2231
- th: M(({ th: e }) => [C("div", { innerHTML: e }, null, 8, Rt)]),
2232
- td: M(({ td: e }) => [Be(A(isNaN(Number(e)) ? e : j(r)({
2233
- p: L.value.style.chart.lines.dataLabels.prefix,
2234
- v: e,
2235
- s: L.value.style.chart.lines.dataLabels.suffix,
2236
- r: L.value.table.td.roundingValue
2237
- })), 1)]),
2238
- _: 1
2239
- }, 8, [
2240
- "colNames",
2241
- "head",
2242
- "body",
2243
- "config",
2244
- "title",
2245
- "withCloseButton",
2246
- "isCursorPointer"
2247
- ])]),
2248
- _: 2
2249
- }, [L.value.table.useDialog ? {
2250
- name: "title",
2251
- fn: M(() => [Be(A(Ni.value.title), 1)]),
2252
- key: "0"
2253
- } : void 0, L.value.table.useDialog ? {
2254
- name: "actions",
2255
- fn: M(() => [C("button", {
2256
- tabindex: "0",
2257
- class: "vue-ui-user-options-button",
2258
- onClick: n[1] ||= (e) => Ti(L.value.userOptions.callbacks.csv),
2259
- style: Ke({ cursor: R.value ? "pointer" : "default" })
2260
- }, [Ve(j(Ht), {
2261
- name: "fileCsv",
2262
- stroke: Ni.value.props.color
2263
- }, null, 8, ["stroke"])], 4)]),
2264
- key: "1"
2265
- } : void 0]), 1040)) : x("", !0),
2266
- L.value.style.chart.zoom.show && en.value && Zr.value && G.value > 6 ? (E(), b(je, {
2267
- key: 8,
2268
- ref_key: "chartSlicer",
2269
- ref: sn,
2270
- allMinimaps: Ar.value,
2271
- background: L.value.style.chart.zoom.color,
2272
- borderColor: L.value.style.chart.backgroundColor,
2273
- customFormat: L.value.style.chart.zoom.customFormat,
2274
- cutNullValues: !1,
2275
- enableRangeHandles: L.value.style.chart.zoom.enableRangeHandles,
2276
- enableSelectionDrag: L.value.style.chart.zoom.enableSelectionDrag,
2277
- end: K.value.end,
2278
- focusOnDrag: L.value.style.chart.zoom.focusOnDrag,
2279
- focusRangeRatio: L.value.style.chart.zoom.focusRangeRatio,
2280
- fontSize: L.value.style.chart.zoom.fontSize,
2281
- immediate: !L.value.style.chart.zoom.preview.enable,
2282
- inputColor: L.value.style.chart.zoom.color,
2283
- isPreview: br.value,
2284
- labelLeft: L.value.style.chart.grid.x.timeLabels.values[K.value.start] ? J.value?.[0]?.text ?? "" : "",
2285
- labelRight: L.value.style.chart.grid.x.timeLabels.values[K.value.end - 1] ? J.value?.at(-1)?.text ?? "" : "",
2286
- max: Math.max(...e.dataset.map((e) => e.series.length)),
2287
- min: 0,
2288
- minimap: kr.value,
2289
- minimapCompact: L.value.style.chart.zoom.minimap.compact,
2290
- minimapFrameColor: L.value.style.chart.zoom.minimap.frameColor,
2291
- minimapIndicatorColor: L.value.style.chart.zoom.minimap.indicatorColor,
2292
- minimapMerged: !1,
2293
- minimapSelectedColor: L.value.style.chart.zoom.minimap.selectedColor,
2294
- minimapSelectedColorOpacity: L.value.style.chart.zoom.minimap.selectedColorOpacity,
2295
- minimapSelectedIndex: $.value,
2296
- minimapSelectionRadius: 1,
2297
- preciseLabels: Kr.value.length ? Kr.value : Rr.value,
2298
- refreshEndPoint: L.value.style.chart.zoom.endIndex === null ? Math.max(...e.dataset.map((e) => e.series.length)) : L.value.style.chart.zoom.endIndex + 1,
2299
- refreshStartPoint: L.value.style.chart.zoom.startIndex === null ? 0 : L.value.style.chart.zoom.startIndex,
2300
- selectColor: L.value.style.chart.zoom.highlightColor,
2301
- selectedSeries: Vi.value,
2302
- smoothMinimap: !1,
2303
- start: K.value.start,
2304
- textColor: L.value.style.chart.color,
2305
- timeLabels: Rr.value,
2306
- usePreciseLabels: L.value.style.chart.grid.x.timeLabels.datetimeFormatter.enable && !L.value.style.chart.zoom.useDefaultFormat,
2307
- valueEnd: K.value.end,
2308
- valueStart: K.value.start,
2309
- verticalHandles: L.value.style.chart.zoom.minimap.verticalHandles,
2310
- maxWidth: L.value.style.chart.zoom.maxWidth,
2311
- isCursorPointer: R.value,
2312
- additionalMinimapHeight: L.value.style.chart.zoom.minimap.additionalHeight,
2313
- handleType: L.value.style.chart.zoom.minimap.handleType,
2314
- handleIconColor: L.value.style.chart.zoom.minimap.handleIconColor,
2315
- handleBorderWidth: L.value.style.chart.zoom.minimap.handleBorderWidth,
2316
- handleBorderColor: L.value.style.chart.zoom.minimap.handleBorderColor,
2317
- handleFill: L.value.style.chart.zoom.minimap.handleFill,
2318
- handleWidth: L.value.style.chart.zoom.minimap.handleWidth,
2319
- "onUpdate:end": ti,
2320
- "onUpdate:start": ei,
2321
- onTrapMouse: vr,
2322
- onReset: n[2] ||= () => Tr({ force: !0 }),
2323
- onFutureEnd: n[3] ||= (e) => xr("end", e),
2324
- onFutureStart: n[4] ||= (e) => xr("start", e)
2325
- }, {
2326
- "reset-action": M(({ reset: e }) => [k(t.$slots, "reset-action", T(w({ reset: e })), void 0, !0)]),
2327
- slotMap: M(({ width: e, height: t, unitW: n }) => [C("g", { innerHTML: Ui({
2328
- minimapW: e,
2329
- minimapH: t,
2330
- unitW: n
2331
- }) }, null, 8, zt)]),
2332
- _: 3
2333
- }, 8, /* @__PURE__ */ "allMinimaps.background.borderColor.customFormat.enableRangeHandles.enableSelectionDrag.end.focusOnDrag.focusRangeRatio.fontSize.immediate.inputColor.isPreview.labelLeft.labelRight.max.minimap.minimapCompact.minimapFrameColor.minimapIndicatorColor.minimapSelectedColor.minimapSelectedColorOpacity.minimapSelectedIndex.preciseLabels.refreshEndPoint.refreshStartPoint.selectColor.selectedSeries.start.textColor.timeLabels.usePreciseLabels.valueEnd.valueStart.verticalHandles.maxWidth.isCursorPointer.additionalMinimapHeight.handleType.handleIconColor.handleBorderWidth.handleBorderColor.handleFill.handleWidth".split("."))) : x("", !0),
2334
- C("div", { id: `legend-bottom-${P.value}` }, null, 8, Bt),
2335
- Ve(j(Vt), {
2336
- teleportTo: L.value.style.chart.tooltip.teleportTo,
2337
- show: V.value.showTooltip && nn.value,
2338
- backgroundColor: L.value.style.chart.tooltip.backgroundColor,
2339
- color: L.value.style.chart.tooltip.color,
2340
- fontSize: L.value.style.chart.tooltip.fontSize,
2341
- borderRadius: L.value.style.chart.tooltip.borderRadius,
2342
- borderColor: L.value.style.chart.tooltip.borderColor,
2343
- borderWidth: L.value.style.chart.tooltip.borderWidth,
2344
- backgroundOpacity: L.value.style.chart.tooltip.backgroundOpacity,
2345
- position: L.value.style.chart.tooltip.position,
2346
- offsetX: L.value.style.chart.tooltip.offsetX,
2347
- offsetY: L.value.style.chart.tooltip.offsetY,
2348
- parent: tn.value,
2349
- content: mi.value,
2350
- isFullscreen: un.value,
2351
- isCustom: L.value.style.chart.tooltip.customFormat && typeof L.value.style.chart.tooltip.customFormat == "function",
2352
- smooth: L.value.style.chart.tooltip.smooth,
2353
- backdropFilter: L.value.style.chart.tooltip.backdropFilter,
2354
- smoothForce: L.value.style.chart.tooltip.smoothForce,
2355
- smoothSnapThreshold: L.value.style.chart.tooltip.smoothSnapThreshold,
2356
- isA11yMode: jn.value === "keyboard",
2357
- a11yPosition: An.value
2358
- }, {
2359
- "tooltip-before": M(() => [k(t.$slots, "tooltip-before", T(w({ ...Yr.value })), void 0, !0)]),
2360
- tooltip: M(() => [k(t.$slots, "tooltip", T(w({ ...Yr.value })), void 0, !0)]),
2361
- "tooltip-after": M(() => [k(t.$slots, "tooltip-after", T(w({ ...Yr.value })), void 0, !0)]),
2362
- _: 3
2363
- }, 8, [
2364
- "teleportTo",
2365
- "show",
2366
- "backgroundColor",
2367
- "color",
2368
- "fontSize",
2369
- "borderRadius",
2370
- "borderColor",
2371
- "borderWidth",
2372
- "backgroundOpacity",
2373
- "position",
2374
- "offsetX",
2375
- "offsetY",
2376
- "parent",
2377
- "content",
2378
- "isFullscreen",
2379
- "isCustom",
2380
- "smooth",
2381
- "backdropFilter",
2382
- "smoothForce",
2383
- "smoothSnapThreshold",
2384
- "isA11yMode",
2385
- "a11yPosition"
2386
- ]),
2387
- t.$slots.source ? (E(), S("div", {
2388
- key: 9,
2389
- ref_key: "source",
2390
- ref: ln,
2391
- dir: "auto"
2392
- }, [k(t.$slots, "source", {}, void 0, !0)], 512)) : x("", !0),
2393
- k(t.$slots, "skeleton", {}, () => [j(z) ? (E(), b(ye, { key: 0 })) : x("", !0)], !0)
2394
- ], 46, nt));
2395
- }
2396
- }, [["__scopeId", "data-v-ad320f18"]]);
2397
- //#endregion
2398
- export { tt as n, Vt as t };