vue-data-ui 3.25.8 → 3.25.9

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