vue-data-ui 3.0.0-next.1 → 3.0.0-next.3

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 (95) hide show
  1. package/README.md +16 -1
  2. package/dist/{Arrow-BKKETqRi.js → Arrow-C8ztMhxn.js} +1 -1
  3. package/dist/{BaseDraggableDialog-Duz4Bd3A.js → BaseDraggableDialog-DoA1cXmQ.js} +2 -2
  4. package/dist/{BaseIcon-BAHAKjob.js → BaseIcon-TJm1JI2f.js} +1 -1
  5. package/dist/{ColorPicker-oPTO1J9Q.js → ColorPicker-DwhabPvD.js} +2 -2
  6. package/dist/{DataTable-vByThHdN.js → DataTable-DObwKftY.js} +2 -2
  7. package/dist/{Legend-CIElSUHU.js → Legend-C-EDWcHp.js} +19 -18
  8. package/dist/{NonSvgPenAndPaper-CsY6Bf4e.js → NonSvgPenAndPaper-Cmy4Opaq.js} +3 -3
  9. package/dist/{PackageVersion-B0wGS6pw.js → PackageVersion-B_SVQo0g.js} +1 -1
  10. package/dist/{PenAndPaper-7o0xS-d4.js → PenAndPaper-CFbTGuB_.js} +3 -3
  11. package/dist/{Shape-Blrp5ZfP.js → Shape-DGduPk8q.js} +1 -1
  12. package/dist/{Slicer-CcM8hzCn.js → Slicer-VumiAmDi.js} +2 -2
  13. package/dist/{SparkTooltip-iaouYun8.js → SparkTooltip-DrRmoIkR.js} +1 -1
  14. package/dist/{Title-CWxjC3bE.js → Title-Dahu_Ia-.js} +1 -1
  15. package/dist/Tooltip-j8grOyYT.js +157 -0
  16. package/dist/{UserOptions-BEBaPSlU.js → UserOptions-BOIQ8NtD.js} +2 -2
  17. package/dist/{dom-to-png-CrAOuxmd.js → dom-to-png-00aHI4Vj.js} +1 -1
  18. package/dist/{img-D3JvqNF8.js → img-DFeNRkbq.js} +1 -1
  19. package/dist/{index-BSa4GlHG.js → index-DKjAxJY6.js} +1180 -1130
  20. package/dist/{pdf-DROWzopj.js → pdf-COmwjbLG.js} +1 -1
  21. package/dist/style.css +1 -1
  22. package/dist/types/vue-data-ui.d.cts +41 -51
  23. package/dist/types/vue-data-ui.d.ts +41 -51
  24. package/dist/useLoading-Bt5Doa8m.js +28 -0
  25. package/dist/{useNestedProp-uR74_CFG.js → useNestedProp-Cmx8ApWu.js} +1 -1
  26. package/dist/{usePrinter-j3g1L2nh.js → usePrinter-BefhLUKK.js} +2 -2
  27. package/dist/{vue-data-ui-BzMRz9Un.js → vue-data-ui-kdcEQgS0.js} +63 -63
  28. package/dist/vue-data-ui.js +13 -13
  29. package/dist/{vue-ui-3d-bar-BAOGEe-m.js → vue-ui-3d-bar-Lv9eoXpT.js} +6 -6
  30. package/dist/{vue-ui-accordion-DzF-SPaZ.js → vue-ui-accordion-BhrF0D_h.js} +3 -3
  31. package/dist/{vue-ui-age-pyramid-BRdQ44O4.js → vue-ui-age-pyramid-DN94DM1L.js} +6 -6
  32. package/dist/{vue-ui-annotator-mjIKrhYa.js → vue-ui-annotator-D-YFzFco.js} +2 -2
  33. package/dist/{vue-ui-bullet-CLYmLvSB.js → vue-ui-bullet--c-hIC1J.js} +7 -7
  34. package/dist/{vue-ui-candlestick-BFLmoEEN.js → vue-ui-candlestick-Dz0D7t8f.js} +7 -7
  35. package/dist/{vue-ui-carousel-table-V89TMa5p.js → vue-ui-carousel-table-Bg4_nEqO.js} +4 -4
  36. package/dist/{vue-ui-chestnut-C7eNjkFo.js → vue-ui-chestnut-D9BP8n-D.js} +6 -6
  37. package/dist/{vue-ui-chord-BuYDLE7K.js → vue-ui-chord-DDa4TTtv.js} +8 -8
  38. package/dist/{vue-ui-circle-pack-CCMbsOpk.js → vue-ui-circle-pack-DWxEHCSN.js} +26 -26
  39. package/dist/{vue-ui-cursor-BrKIImfp.js → vue-ui-cursor-BtLD4k-n.js} +2 -2
  40. package/dist/{vue-ui-dashboard-WMKjx3iE.js → vue-ui-dashboard-DvyNEYA8.js} +62 -62
  41. package/dist/{vue-ui-digits-BoYPIuXn.js → vue-ui-digits-XkSs-Fvw.js} +2 -2
  42. package/dist/vue-ui-donut-BO2QuXBj.js +1532 -0
  43. package/dist/{vue-ui-donut-evolution-DSG8NUG0.js → vue-ui-donut-evolution-CQDtCf7k.js} +8 -8
  44. package/dist/{vue-ui-dumbbell-BMveoLd_.js → vue-ui-dumbbell-jtJmPKky.js} +7 -7
  45. package/dist/{vue-ui-flow-Dnsik-8f.js → vue-ui-flow-D1hSlRXa.js} +7 -7
  46. package/dist/{vue-ui-funnel-CQ0nHCvy.js → vue-ui-funnel-BlLlAOtx.js} +6 -6
  47. package/dist/{vue-ui-galaxy-D5L31IXm.js → vue-ui-galaxy-BZAhXSnB.js} +5 -5
  48. package/dist/{vue-ui-gauge-BnuDe4Wj.js → vue-ui-gauge-FdnYVol9.js} +6 -6
  49. package/dist/{vue-ui-gizmo-DYYw-JEs.js → vue-ui-gizmo-BXiMNDNp.js} +3 -3
  50. package/dist/{vue-ui-heatmap-9KJYiKzE.js → vue-ui-heatmap-BUmZvmK0.js} +7 -7
  51. package/dist/{vue-ui-history-plot-QOaVWh5L.js → vue-ui-history-plot-CTT0NO2g.js} +7 -7
  52. package/dist/{vue-ui-kpi-EtTBwHGS.js → vue-ui-kpi-BNNqPORJ.js} +3 -3
  53. package/dist/{vue-ui-mini-loader-CRnUCpsm.js → vue-ui-mini-loader-wa4WjqZj.js} +2 -2
  54. package/dist/{vue-ui-molecule-Bfk3Vhbi.js → vue-ui-molecule-NGbWYvw-.js} +5 -5
  55. package/dist/{vue-ui-mood-radar-BfRkWvgp.js → vue-ui-mood-radar-Dz2YUYPG.js} +7 -7
  56. package/dist/{vue-ui-nested-donuts-Ck9Zm1UU.js → vue-ui-nested-donuts-ywwGdEJO.js} +269 -269
  57. package/dist/{vue-ui-onion-DF7Z21x-.js → vue-ui-onion-DUeU3zvH.js} +7 -7
  58. package/dist/{vue-ui-parallel-coordinate-plot-JVogg7k5.js → vue-ui-parallel-coordinate-plot-5158EX3T.js} +8 -8
  59. package/dist/{vue-ui-quadrant-DpFjMZoK.js → vue-ui-quadrant-BEaCxPxR.js} +8 -8
  60. package/dist/{vue-ui-quick-chart-NfXEFkoL.js → vue-ui-quick-chart-C3yTivjK.js} +6 -6
  61. package/dist/{vue-ui-radar-Dg8UovnR.js → vue-ui-radar-CwRo-de_.js} +7 -7
  62. package/dist/{vue-ui-rating-D3cpdLRt.js → vue-ui-rating-nHTBjTie.js} +2 -2
  63. package/dist/{vue-ui-relation-circle-BZTTPLCi.js → vue-ui-relation-circle-w7TYrdHz.js} +6 -6
  64. package/dist/{vue-ui-ridgeline-CtY_J3hk.js → vue-ui-ridgeline-Dk9xpHSw.js} +8 -8
  65. package/dist/{vue-ui-rings-BiA-bRgU.js → vue-ui-rings-tCL5utj_.js} +8 -8
  66. package/dist/{vue-ui-scatter-C3sCChYD.js → vue-ui-scatter-BJUJRCto.js} +8 -8
  67. package/dist/{vue-ui-skeleton-DY48gQ96.js → vue-ui-skeleton-Cf09cngz.js} +3 -3
  68. package/dist/{vue-ui-smiley-DopwmgcY.js → vue-ui-smiley-BvoOjmJx.js} +2 -2
  69. package/dist/{vue-ui-spark-trend-DO7P-2x8.js → vue-ui-spark-trend-Bdz2gHnU.js} +3 -3
  70. package/dist/{vue-ui-sparkbar-mqLbTvAg.js → vue-ui-sparkbar-CS1FzyFk.js} +3 -3
  71. package/dist/{vue-ui-sparkgauge-CdfZYUAZ.js → vue-ui-sparkgauge-auWy_YMm.js} +3 -3
  72. package/dist/{vue-ui-sparkhistogram-DAy--kFA.js → vue-ui-sparkhistogram-yA_F8Ls5.js} +4 -4
  73. package/dist/{vue-ui-sparkline-KkG0FnmI.js → vue-ui-sparkline-B-sCAUEL.js} +3 -3
  74. package/dist/{vue-ui-sparkstackbar-LDRannBB.js → vue-ui-sparkstackbar-BhqOPIZT.js} +3 -3
  75. package/dist/{vue-ui-stackbar-Bys4yWs_.js → vue-ui-stackbar-CZzqF-ZH.js} +9 -9
  76. package/dist/{vue-ui-strip-plot-DUBqioS2.js → vue-ui-strip-plot-D7KgSU5y.js} +7 -7
  77. package/dist/{vue-ui-table-CPWgP-71.js → vue-ui-table-BDJg5T9l.js} +3 -3
  78. package/dist/{vue-ui-table-heatmap-DfrMVDEE.js → vue-ui-table-heatmap-Pp2gbL5G.js} +5 -5
  79. package/dist/{vue-ui-table-sparkline-CNC7Lp0t.js → vue-ui-table-sparkline-CmZBjiWv.js} +4 -4
  80. package/dist/{vue-ui-thermometer-Bby5nWIi.js → vue-ui-thermometer-ClY99Umm.js} +6 -6
  81. package/dist/{vue-ui-timer-ym9etXUy.js → vue-ui-timer-_Bck3rxo.js} +5 -5
  82. package/dist/{vue-ui-tiremarks-C0V_XedF.js → vue-ui-tiremarks-C2CtoJT_.js} +6 -6
  83. package/dist/{vue-ui-treemap-B5k0NEO3.js → vue-ui-treemap-CM-zqI6U.js} +8 -8
  84. package/dist/{vue-ui-vertical-bar-DRmHFEMu.js → vue-ui-vertical-bar-CET-9MDi.js} +279 -273
  85. package/dist/{vue-ui-waffle-DrEQsTIO.js → vue-ui-waffle-B21kT4HO.js} +8 -8
  86. package/dist/{vue-ui-wheel-BOTBLBOr.js → vue-ui-wheel-Dqv-ta7L.js} +6 -6
  87. package/dist/{vue-ui-word-cloud-Btay9XOs.js → vue-ui-word-cloud-DHjvCwD8.js} +6 -6
  88. package/dist/{vue-ui-world-zBvIXrWH.js → vue-ui-world-h3Csu0YN.js} +6 -6
  89. package/dist/vue-ui-xy-CZ7mScyg.js +2958 -0
  90. package/dist/{vue-ui-xy-canvas-CDjYeEkq.js → vue-ui-xy-canvas-sIRUM_Be.js} +8 -8
  91. package/package.json +2 -2
  92. package/dist/Tooltip-Cq9HywcX.js +0 -149
  93. package/dist/useMouse-AicQS8Vf.js +0 -13
  94. package/dist/vue-ui-donut-DJVqqXEb.js +0 -1338
  95. package/dist/vue-ui-xy-C7uPPKm9.js +0 -3149
@@ -1,3149 +0,0 @@
1
- import { R as q, _ as re, a8 as ue, a9 as ce, aa as de, ab as ge, ac as fe, ad as Ie, ae as xe, c as ne, A as Ne, E as me, w as be, s as Fe, o as _e, a2 as ye, af as Ae, x as Le, C as Ce, y as Se, a7 as we, e as ke, r as Oe, f as oe, I as Ge, ag as ve, U as pe, V as ze, q as Me, b as Te, z as Pe, d as Ve, ah as Re, v as Be, ai as He, D as De, a5 as We, aj as Ee, i as Ye, F as Xe, L as qe, u as Ue, p as Ze, B as Je, a as Ke, t as Qe } from "./index-BSa4GlHG.js";
2
- import { u as je } from "./useMouse-AicQS8Vf.js";
3
- import { u as ae } from "./useNestedProp-uR74_CFG.js";
4
- import { u as $e } from "./useTimeLabels-Mrr0jrpL.js";
5
- import { defineAsyncComponent as Z, resolveComponent as X, createElementBlock as s, openBlock as a, normalizeStyle as _, normalizeClass as j, createBlock as U, createCommentVNode as u, createVNode as le, createSlots as et, withCtx as D, renderSlot as G, normalizeProps as $, guardReactiveProps as ee, createElementVNode as I, Fragment as d, renderList as x, toDisplayString as V, mergeProps as se, withDirectives as tt, vModelCheckbox as lt, createTextVNode as it } from "vue";
6
- import { S as rt } from "./Slicer-CcM8hzCn.js";
7
- import at from "./Title-CWxjC3bE.js";
8
- import { _ as st } from "./Shape-Blrp5ZfP.js";
9
- import nt from "./img-D3JvqNF8.js";
10
- import { _ as ct } from "./_plugin-vue_export-helper-CHgC5LLL.js";
11
- const ot = ne(), ht = {
12
- name: "vue-ui-xy",
13
- props: {
14
- config: {
15
- type: Object,
16
- default() {
17
- return {};
18
- }
19
- },
20
- dataset: {
21
- type: Array,
22
- default() {
23
- return [];
24
- }
25
- }
26
- },
27
- components: {
28
- Slicer: rt,
29
- // Must be ready in responsive mode
30
- Title: at,
31
- // Must be ready in responsive mode
32
- Shape: st,
33
- DataTable: Z(() => import("./DataTable-vByThHdN.js")),
34
- Tooltip: Z(() => import("./Tooltip-Cq9HywcX.js")),
35
- UserOptions: Z(() => import("./UserOptions-BEBaPSlU.js")),
36
- BaseIcon: Z(() => import("./BaseIcon-BAHAKjob.js")),
37
- TableSparkline: Z(() => import("./vue-ui-table-sparkline-CNC7Lp0t.js")),
38
- Skeleton: Z(() => import("./vue-ui-skeleton-DY48gQ96.js")),
39
- Accordion: Z(() => import("./vue-ui-accordion-DzF-SPaZ.js")),
40
- PackageVersion: Z(() => import("./PackageVersion-B0wGS6pw.js")),
41
- PenAndPaper: Z(() => import("./PenAndPaper-7o0xS-d4.js"))
42
- },
43
- data() {
44
- this.dataset.forEach((f, l) => {
45
- [null, void 0].includes(f.series) && this.error({
46
- componentName: "VueUiXy",
47
- type: "datasetSerieAttribute",
48
- property: "series (number[])",
49
- index: l
50
- });
51
- });
52
- const i = this.config.downsample && this.config.downsample.threshold ? this.config.downsample.threshold : 500, n = Math.max(...this.dataset.map((f) => this.largestTriangleThreeBucketsArray({ data: f.series, threshold: i }).length)), h = {
53
- start: 0,
54
- end: n
55
- };
56
- return {
57
- resizeObserver: null,
58
- observedEl: null,
59
- themePalettes: Qe,
60
- themes: Ke,
61
- slicerStep: 0,
62
- selectedScale: null,
63
- CTX: null,
64
- CANVAS: null,
65
- opacity: Je,
66
- useSafeValues: !0,
67
- palette: Ze,
68
- height: 600,
69
- width: 1e3,
70
- viewBox: "0 0 1000 600",
71
- clientPosition: {
72
- x: 0,
73
- y: 0
74
- },
75
- canvasClientPosition: {
76
- x: 0,
77
- y: 0
78
- },
79
- icons: {
80
- line: "line",
81
- bar: "bar",
82
- plot: "plot"
83
- },
84
- isAnnotator: !1,
85
- isFullscreen: !1,
86
- isPrinting: !1,
87
- isImaging: !1,
88
- isTooltip: !1,
89
- mutableConfig: {
90
- dataLabels: {
91
- show: !0
92
- },
93
- showTooltip: !0,
94
- showTable: !1,
95
- isStacked: !1,
96
- useIndividualScale: !1
97
- },
98
- selectedSerieIndex: null,
99
- selectedRowIndex: null,
100
- segregatedSeries: [],
101
- uniqueId: ne(),
102
- step: 0,
103
- tableStep: 0,
104
- titleStep: 0,
105
- slicer: h,
106
- __to__: null,
107
- maxX: n,
108
- showSparklineTable: !0,
109
- segregateStep: 0,
110
- sliderId: ot,
111
- fontSizes: {
112
- xAxis: 18,
113
- yAxis: 12,
114
- dataLabels: 20,
115
- plotLabels: 10
116
- },
117
- plotRadii: {
118
- plot: 3,
119
- line: 3
120
- },
121
- selectedMinimapIndex: null,
122
- showUserOptionsOnChartHover: !1,
123
- keepUserOptionState: !0,
124
- userOptionsVisible: !0,
125
- svgRef: null,
126
- tagRefs: {},
127
- _textMeasurer: null,
128
- remainingHeight: 0,
129
- svgAspectRatio: 1
130
- };
131
- },
132
- watch: {
133
- "mutableConfig.isStacked": {
134
- async handler(i) {
135
- await this.$nextTick(), this.setViewBox(), this.forceResizeObserver();
136
- }
137
- },
138
- dataset: {
139
- handler(i, n) {
140
- this.maxX = Math.max(...this.dataset.map((h) => this.largestTriangleThreeBucketsArray({
141
- data: h.series,
142
- threshold: this.FINAL_CONFIG.downsample.threshold
143
- }).length)), this.slicer = {
144
- start: 0,
145
- end: this.maxX
146
- }, this.slicerStep += 1, this.segregateStep += 1;
147
- },
148
- deep: !0
149
- },
150
- config: {
151
- handler(i, n) {
152
- this.FINAL_CONFIG = this.prepareConfig(), this.prepareChart(), this.titleStep += 1, this.tableStep += 1, this.mutableConfig = {
153
- dataLabels: {
154
- show: !0
155
- },
156
- showTooltip: this.FINAL_CONFIG.chart.tooltip.show === !0,
157
- showTable: this.FINAL_CONFIG.showTable === !0,
158
- isStacked: this.FINAL_CONFIG.chart.grid.labels.yAxis.stacked,
159
- useIndividualScale: this.FINAL_CONFIG.chart.grid.labels.yAxis.useIndividualScale
160
- };
161
- },
162
- deep: !0
163
- }
164
- },
165
- computed: {
166
- viewBoxParts() {
167
- const [i, n, h, f] = this.viewBox.split(" ").map(Number);
168
- return { x: i, y: n, width: h, height: f };
169
- },
170
- locale() {
171
- return this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.formatter.locale;
172
- },
173
- chartAriaLabel() {
174
- const i = this.FINAL_CONFIG.chart.title.text || "Chart visualization", n = this.FINAL_CONFIG.chart.title.subtitle.text || "";
175
- return `${i}. ${n}`;
176
- },
177
- optimize() {
178
- return {
179
- linePlot: this.maxSeries > this.FINAL_CONFIG.line.dot.hideAboveMaxSerieLength
180
- };
181
- },
182
- hasOptionsNoTitle() {
183
- return this.FINAL_CONFIG.chart.userOptions.show && (!this.FINAL_CONFIG.chart.title.show || !this.FINAL_CONFIG.chart.title.text);
184
- },
185
- minimap() {
186
- if (!this.FINAL_CONFIG.chart.zoom.minimap.show) return [];
187
- const i = this.datasetWithIds.filter((l) => !this.segregatedSeries.includes(l.id)), n = Math.max(...i.map((l) => l.series.length)), h = [];
188
- for (let l = 0; l < n; l += 1)
189
- h.push(i.map((e) => e.series[l] || 0).reduce((e, r) => (e || 0) + (r || 0), 0));
190
- const f = Math.min(...h);
191
- return h.map((l) => l + (f < 0 ? Math.abs(f) : 0));
192
- },
193
- customPalette() {
194
- return this.convertCustomPalette(this.FINAL_CONFIG.customPalette);
195
- },
196
- backgroundColor() {
197
- return this.FINAL_CONFIG.chart.backgroundColor;
198
- },
199
- slicerColor() {
200
- return this.FINAL_CONFIG.chart.zoom.color;
201
- },
202
- allScales() {
203
- const i = this.lineSet.map((l) => ({
204
- name: l.name,
205
- color: l.color,
206
- scale: l.individualScale,
207
- scaleYLabels: l.scaleYLabels,
208
- zero: l.zeroPosition,
209
- max: l.individualMax,
210
- scaleLabel: l.scaleLabel || "",
211
- id: l.id,
212
- yOffset: l.yOffset || 0,
213
- individualHeight: l.individualHeight || this.drawingArea.height,
214
- autoScaleYLabels: l.autoScaleYLabels
215
- })), n = this.barSet.map((l) => ({
216
- name: l.name,
217
- color: l.color,
218
- scale: l.individualScale,
219
- scaleYLabels: l.scaleYLabels,
220
- zero: l.zeroPosition,
221
- max: l.individualMax,
222
- scaleLabel: l.scaleLabel || "",
223
- id: l.id,
224
- yOffset: l.yOffset || 0,
225
- individualHeight: l.individualHeight || this.drawingArea.height
226
- })), h = this.plotSet.map((l) => ({
227
- name: l.name,
228
- color: l.color,
229
- scale: l.individualScale,
230
- scaleYLabels: l.scaleYLabels,
231
- // FIX
232
- zero: l.zeroPosition,
233
- max: l.individualMax,
234
- scaleLabel: l.scaleLabel || "",
235
- id: l.id,
236
- yOffset: l.yOffset || 0,
237
- individualHeight: l.individualHeight || this.drawingArea.height
238
- })), f = this.mutableConfig.useIndividualScale && !this.mutableConfig.isStacked ? Object.values(this.scaleGroups) : [...i, ...n, ...h];
239
- return f.flatMap((l) => l).length, f.flatMap((l, e) => ({
240
- unique: l.unique,
241
- id: l.id,
242
- groupId: l.groupId,
243
- scaleLabel: l.scaleLabel,
244
- name: this.mutableConfig.useIndividualScale && !this.mutableConfig.isStacked ? l.unique ? l.name : l.groupName : l.name,
245
- color: this.mutableConfig.useIndividualScale && !this.mutableConfig.isStacked ? l.unique ? l.color : l.groupColor : l.color,
246
- scale: l.scale,
247
- yOffset: l.yOffset,
248
- individualHeight: l.individualHeight,
249
- x: this.mutableConfig.isStacked ? this.drawingArea.left : this.drawingArea.left - e * (this.FINAL_CONFIG.chart.grid.labels.yAxis.labelWidth + this.fontSizes.dataLabels * 2),
250
- yLabels: l.scaleYLabels || l.scale.ticks.map((r) => ({
251
- y: r >= 0 ? l.zero - l.individualHeight * (r / l.max) : l.zero + l.individualHeight * Math.abs(r) / l.max,
252
- value: r
253
- }))
254
- }));
255
- },
256
- isDataset() {
257
- return !!this.dataset && this.dataset.length;
258
- },
259
- chartFont() {
260
- const i = document.getElementById(`vue-ui-xy_${this.uniqueId}`);
261
- return window.getComputedStyle(i, null).getPropertyValue("font-family");
262
- },
263
- FINAL_CONFIG: {
264
- get: function() {
265
- return this.prepareConfig();
266
- },
267
- set: function(i) {
268
- return i;
269
- }
270
- },
271
- hasHighlightArea() {
272
- return Array.isArray(this.FINAL_CONFIG.chart.highlightArea) ? this.FINAL_CONFIG.chart.highlightArea.some((i) => i.show) : this.FINAL_CONFIG.chart.highlightArea && this.FINAL_CONFIG.chart.highlightArea.show;
273
- },
274
- highlightAreas() {
275
- if (Array.isArray(this.FINAL_CONFIG.chart.highlightArea))
276
- return this.FINAL_CONFIG.chart.highlightArea.map((n) => ({
277
- ...n,
278
- span: n.from === n.to ? 1 : n.to < n.from ? 0 : n.to - n.from + 1
279
- }));
280
- const i = this.FINAL_CONFIG.chart.highlightArea;
281
- return [{ ...i, span: i.from === i.to ? 1 : i.to < i.from ? 0 : i.to - i.from + 1 }];
282
- },
283
- xPadding() {
284
- return this.FINAL_CONFIG.chart.grid.position === "middle" ? 0 : this.drawingArea.width / this.maxSeries / 2;
285
- },
286
- relativeZero() {
287
- return [null, void 0].includes(this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMin) ? this.niceScale.min >= 0 ? 0 : Math.abs(this.niceScale.min) : -this.niceScale.min;
288
- },
289
- absoluteMax() {
290
- return this.niceScale.max + this.relativeZero;
291
- },
292
- datasetWithIds() {
293
- return this.useSafeValues ? this.dataset.map((i, n) => ({
294
- ...i,
295
- series: this.largestTriangleThreeBucketsArray({
296
- data: i.series,
297
- threshold: this.FINAL_CONFIG.downsample.threshold
298
- }),
299
- id: `uniqueId_${n}`
300
- })) : this.dataset;
301
- },
302
- safeDataset() {
303
- return this.useSafeValues ? this.dataset.map((i, n) => {
304
- const h = this.largestTriangleThreeBucketsArray({
305
- data: i.series,
306
- threshold: this.FINAL_CONFIG.downsample.threshold
307
- }), f = `uniqueId_${n}`;
308
- return {
309
- ...i,
310
- slotAbsoluteIndex: n,
311
- series: h.map((l) => this.isSafeValue(l) ? l : null).slice(this.slicer.start, this.slicer.end),
312
- color: this.convertColorToHex(i.color ? i.color : this.customPalette[n] ? this.customPalette[n] : this.palette[n]),
313
- id: f,
314
- scaleLabel: i.scaleLabel || f
315
- };
316
- }) : this.dataset;
317
- },
318
- relativeDataset() {
319
- return this.safeDataset.map((i, n) => ({
320
- ...i,
321
- series: i.series.map((h) => h + this.relativeZero),
322
- absoluteValues: i.series
323
- })).filter((i) => !this.segregatedSeries.includes(i.id));
324
- },
325
- tableSparklineDataset() {
326
- return this.relativeDataset.map((i) => {
327
- const n = i.absoluteValues.map((h) => [void 0, null].includes(h) ? 0 : h);
328
- return {
329
- id: i.id,
330
- name: i.name,
331
- color: i.color,
332
- values: this.fillArray(this.maxSeries, n)
333
- };
334
- });
335
- },
336
- tableSparklineConfig() {
337
- return {
338
- responsiveBreakpoint: this.FINAL_CONFIG.table.responsiveBreakpoint,
339
- roundingValues: this.FINAL_CONFIG.table.rounding,
340
- showAverage: !1,
341
- showMedian: !1,
342
- showTotal: !1,
343
- fontFamily: this.FINAL_CONFIG.chart.fontFamily,
344
- prefix: this.FINAL_CONFIG.chart.labels.prefix,
345
- suffix: this.FINAL_CONFIG.chart.labels.suffix,
346
- colNames: this.timeLabels.map((i) => i.text),
347
- thead: {
348
- backgroundColor: this.FINAL_CONFIG.table.th.backgroundColor,
349
- color: this.FINAL_CONFIG.table.th.color,
350
- outline: this.FINAL_CONFIG.table.th.outline
351
- },
352
- tbody: {
353
- backgroundColor: this.FINAL_CONFIG.table.td.backgroundColor,
354
- color: this.FINAL_CONFIG.table.td.color,
355
- outline: this.FINAL_CONFIG.table.td.outline
356
- },
357
- userOptions: {
358
- show: !1
359
- }
360
- };
361
- },
362
- absoluteDataset() {
363
- return this.safeDataset.map((i, n) => ({
364
- absoluteIndex: n,
365
- ...i,
366
- series: i.series.map((h) => h + this.relativeZero),
367
- absoluteValues: i.series,
368
- segregate: () => this.segregate(i),
369
- isSegregated: this.segregatedSeries.includes(i.id)
370
- }));
371
- },
372
- activeSeriesLength() {
373
- return this.absoluteDataset.length;
374
- },
375
- activeSeriesWithStackRatios() {
376
- return this.assignStackRatios(this.absoluteDataset.filter((i) => !this.segregatedSeries.includes(i.id)));
377
- },
378
- scaleGroups() {
379
- const i = Object.groupBy(this.activeSeriesWithStackRatios, (h) => h.scaleLabel), n = {};
380
- for (const [h, f] of Object.entries(i)) {
381
- const l = f.flatMap((e) => e.absoluteValues);
382
- n[h] = {
383
- min: Math.min(...l) || 0,
384
- max: Math.max(...l) || 1,
385
- groupId: `scale_group_${this.createUid()}`
386
- };
387
- }
388
- return n;
389
- },
390
- barSet() {
391
- const i = this.activeSeriesWithStackRatios.filter((r) => ["bar", "line", "plot"].includes(r.type)), n = i.length, h = this.FINAL_CONFIG.chart.grid.labels.yAxis.gap, f = this.mutableConfig.isStacked, l = f ? h * (n - 1) : 0, e = this.drawingArea.height - l;
392
- return i.filter((r) => r.type === "bar").map((r, w) => {
393
- this.checkAutoScaleError(r);
394
- const z = this.scaleGroups[r.scaleLabel].min, O = this.scaleGroups[r.scaleLabel].max;
395
- r.absoluteValues.filter((L) => ![null, void 0].includes(L)).map((L) => (L - z) / (O - z));
396
- const N = {
397
- valueMin: z,
398
- valueMax: O < 0 ? 0 : O
399
- }, F = {
400
- max: r.scaleMax || Math.max(...r.absoluteValues) || 1,
401
- min: r.scaleMin || Math.min(...r.absoluteValues.filter((L) => ![void 0, null].includes(L))) > 0 ? 0 : Math.min(...r.absoluteValues.filter((L) => ![null, void 0].includes(L)))
402
- }, v = r.scaleSteps || this.FINAL_CONFIG.chart.grid.labels.yAxis.commonScaleSteps, m = 1.0000001, A = this.FINAL_CONFIG.chart.grid.labels.yAxis.useNiceScale ? this.calculateNiceScale(F.min, F.max === F.min ? F.max * m : F.max, v) : this.calculateNiceScaleWithExactExtremes(F.min, F.max === F.min ? F.max * m : F.max, v), b = this.FINAL_CONFIG.chart.grid.labels.yAxis.useNiceScale ? this.calculateNiceScale(N.valueMin, N.valueMax === N.valueMin ? N.valueMax * m : N.valueMax, v) : this.calculateNiceScaleWithExactExtremes(N.valueMin, N.valueMax === N.valueMin ? N.valueMax * m : N.valueMax, v), M = A.min >= 0 ? 0 : Math.abs(A.min), B = 0, t = A.max + M, o = b.max + Math.abs(B), c = r.stackIndex, g = n - 1 - c, p = f ? 1 - r.cumulatedStackRatio : 0, C = f ? e * p + h * g : 0, S = f ? e * r.stackRatio : this.drawingArea.height, T = this.drawingArea.bottom - C - S * M / t, Y = this.drawingArea.bottom - C - S * B / o, W = this.absoluteDataset.filter((L) => L.type === "bar").filter((L) => !this.segregatedSeries.includes(L.id)).length, te = r.series.map((L, R) => {
403
- const K = this.mutableConfig.useIndividualScale ? (r.absoluteValues[R] + M) / t : this.ratioToMax(L), Q = this.mutableConfig.useIndividualScale && this.mutableConfig.isStacked ? this.drawingArea.left + this.drawingArea.width / this.maxSeries * R : this.drawingArea.left + this.slot.bar * w + this.slot.bar * R * W - this.barSlot / 2 - w * this.barPeriodGap;
404
- return {
405
- yOffset: this.checkNaN(C),
406
- individualHeight: this.checkNaN(S),
407
- x: this.checkNaN(Q),
408
- y: this.drawingArea.bottom - C - S * K,
409
- value: r.absoluteValues[R],
410
- zeroPosition: this.checkNaN(T),
411
- individualMax: this.checkNaN(t),
412
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[R] || ""
413
- };
414
- }), E = r.absoluteValues.map((L) => b.min >= 0 ? (L - Math.abs(b.min)) / (b.max - Math.abs(b.min)) : (L + Math.abs(b.min)) / (b.max + Math.abs(b.min))), J = r.series.map((L, R) => {
415
- const K = this.mutableConfig.useIndividualScale && this.mutableConfig.isStacked ? this.drawingArea.left + this.drawingArea.width / this.maxSeries * R : this.drawingArea.left - this.slot.bar / 2 + this.slot.bar * w + this.slot.bar * R * this.absoluteDataset.filter((Q) => Q.type === "bar").filter((Q) => !this.segregatedSeries.includes(Q.id)).length;
416
- return {
417
- yOffset: this.checkNaN(C),
418
- individualHeight: this.checkNaN(S),
419
- x: this.checkNaN(K),
420
- y: this.checkNaN(this.drawingArea.bottom - this.checkNaN(C) - (this.checkNaN(S) * E[R] || 0)),
421
- value: r.absoluteValues[R],
422
- zeroPosition: this.checkNaN(T),
423
- individualMax: this.checkNaN(t),
424
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[R] || ""
425
- };
426
- }), k = A.ticks.map((L) => ({
427
- y: L >= 0 ? T - S * (L / t) : T + S * Math.abs(L) / t,
428
- value: L,
429
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
430
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
431
- datapoint: r
432
- })), P = b.ticks.map((L) => {
433
- const R = (L - b.min) / (b.max - b.min);
434
- return {
435
- y: L >= 0 ? Y - S * R : Y + S * R,
436
- value: L,
437
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
438
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
439
- datapoint: r
440
- };
441
- });
442
- return this.scaleGroups[r.scaleLabel].name = r.name, this.scaleGroups[r.scaleLabel].groupName = r.scaleLabel, this.scaleGroups[r.scaleLabel].groupColor = this.FINAL_CONFIG.chart.grid.labels.yAxis.groupColor || r.color, this.scaleGroups[r.scaleLabel].color = r.color, this.scaleGroups[r.scaleLabel].scaleYLabels = r.autoScaling ? P : k, this.scaleGroups[r.scaleLabel].zeroPosition = r.autoScaling ? Y : T, this.scaleGroups[r.scaleLabel].individualMax = r.autoScaling ? o : t, this.scaleGroups[r.scaleLabel].scaleLabel = r.scaleLabel, this.scaleGroups[r.scaleLabel].id = r.id, this.scaleGroups[r.scaleLabel].yOffset = C, this.scaleGroups[r.scaleLabel].individualHeight = S, this.scaleGroups[r.scaleLabel].autoScaleYLabels = P, this.scaleGroups[r.scaleLabel].unique = this.activeSeriesWithStackRatios.filter((L) => L.scaleLabel === r.scaleLabel).length === 1, {
443
- ...r,
444
- yOffset: C,
445
- autoScaleYLabels: P,
446
- individualHeight: S,
447
- scaleYLabels: r.autoScaling ? P : k,
448
- individualScale: r.autoScaling ? b : A,
449
- individualMax: r.autoScaling ? o : t,
450
- zeroPosition: r.autoScaling ? Y : T,
451
- plots: r.autoScaling ? J : te,
452
- groupId: this.scaleGroups[r.scaleLabel].groupId
453
- };
454
- });
455
- },
456
- lineSet() {
457
- const i = this.activeSeriesWithStackRatios.filter((r) => ["bar", "line", "plot"].includes(r.type)), n = i.length, h = this.FINAL_CONFIG.chart.grid.labels.yAxis.gap, f = this.mutableConfig.isStacked, l = f ? h * (n - 1) : 0, e = this.drawingArea.height - l;
458
- return i.filter((r) => r.type === "line").map((r, w) => {
459
- this.checkAutoScaleError(r);
460
- const z = this.scaleGroups[r.scaleLabel].min, O = this.scaleGroups[r.scaleLabel].max;
461
- r.absoluteValues.filter((y) => ![null, void 0].includes(y)).map((y) => (y - z) / (O - z));
462
- const N = {
463
- valueMin: z,
464
- valueMax: O
465
- }, F = {
466
- max: r.scaleMax || Math.max(...r.absoluteValues) || 1,
467
- min: r.scaleMin || (Math.min(...r.absoluteValues) > 0 ? 0 : Math.min(...r.absoluteValues))
468
- }, v = r.scaleSteps || this.FINAL_CONFIG.chart.grid.labels.yAxis.commonScaleSteps, m = 1.0000001, A = this.FINAL_CONFIG.chart.grid.labels.yAxis.useNiceScale ? this.calculateNiceScale(F.min, F.max === F.min ? F.max * m : F.max, v) : this.calculateNiceScaleWithExactExtremes(F.min, F.max === F.min ? F.max * m : F.max, v), b = this.FINAL_CONFIG.chart.grid.labels.yAxis.useNiceScale ? this.calculateNiceScale(N.valueMin, N.valueMax === N.valueMin ? N.valueMax * m : N.valueMax, v) : this.calculateNiceScaleWithExactExtremes(N.valueMin, N.valueMax === N.valueMin ? N.valueMax * m : N.valueMax, v), M = A.min >= 0 ? 0 : Math.abs(A.min), B = 0, t = A.max + Math.abs(M), o = b.max + Math.abs(B), c = r.stackIndex, g = n - 1 - c, p = f ? 1 - r.cumulatedStackRatio : 0, C = f ? e * p + h * g : 0, S = f ? e * r.stackRatio : this.drawingArea.height, T = this.drawingArea.bottom - C - S * M / t, Y = this.drawingArea.bottom - C - S * B / o, W = r.series.map((y, H) => {
469
- const he = this.mutableConfig.useIndividualScale ? (r.absoluteValues[H] + Math.abs(M)) / t : this.ratioToMax(y);
470
- return {
471
- x: this.checkNaN(this.drawingArea.left + this.slot.line / 2 + this.slot.line * H),
472
- y: this.checkNaN(this.drawingArea.bottom - C - S * he),
473
- value: r.absoluteValues[H],
474
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[H] || ""
475
- };
476
- }), te = r.absoluteValues.map((y) => b.min >= 0 ? (y - Math.abs(b.min)) / (b.max - Math.abs(b.min)) : (y + Math.abs(b.min)) / (b.max + Math.abs(b.min))), E = r.series.map((y, H) => [void 0, null].includes(r.absoluteValues[H]) ? {
477
- x: this.checkNaN(this.drawingArea.left + this.slot.line / 2 + this.slot.line * H),
478
- y: T,
479
- value: r.absoluteValues[H],
480
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[H] || ""
481
- } : {
482
- x: this.checkNaN(this.drawingArea.left + this.slot.line / 2 + this.slot.line * H),
483
- y: this.checkNaN(this.drawingArea.bottom - C - (S * te[H] || 0)),
484
- value: r.absoluteValues[H],
485
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[H] || ""
486
- }), J = this.FINAL_CONFIG.line.cutNullValues ? this.createSmoothPathWithCuts(W) : this.createSmoothPath(W.filter((y) => y.value !== null)), k = this.FINAL_CONFIG.line.cutNullValues ? this.createSmoothPathWithCuts(E) : this.createSmoothPath(E.filter((y) => y.value !== null)), P = this.FINAL_CONFIG.line.cutNullValues ? this.createStraightPathWithCuts(W) : this.createStraightPath(W.filter((y) => y.value !== null)), L = this.FINAL_CONFIG.line.cutNullValues ? this.createStraightPathWithCuts(E) : this.createStraightPath(E.filter((y) => y.value !== null)), R = A.ticks.map((y) => ({
487
- y: y >= 0 ? T - S * (y / t) : T + S * Math.abs(y) / t,
488
- value: y,
489
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
490
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
491
- datapoint: r
492
- })), K = b.ticks.map((y) => {
493
- const H = (y - b.min) / (b.max - b.min);
494
- return {
495
- y: y >= 0 ? Y - S * H : Y + S * H,
496
- value: y,
497
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
498
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
499
- datapoint: r
500
- };
501
- });
502
- this.scaleGroups[r.scaleLabel].name = r.name, this.scaleGroups[r.scaleLabel].groupName = r.scaleLabel, this.scaleGroups[r.scaleLabel].groupColor = this.FINAL_CONFIG.chart.grid.labels.yAxis.groupColor || r.color, this.scaleGroups[r.scaleLabel].color = r.color, this.scaleGroups[r.scaleLabel].scaleYLabels = r.autoScaling ? K : R, this.scaleGroups[r.scaleLabel].zeroPosition = r.autoScaling ? Y : T, this.scaleGroups[r.scaleLabel].individualMax = r.autoScaling ? o : t, this.scaleGroups[r.scaleLabel].scaleLabel = r.scaleLabel, this.scaleGroups[r.scaleLabel].id = r.id, this.scaleGroups[r.scaleLabel].yOffset = C, this.scaleGroups[r.scaleLabel].individualHeight = S, this.scaleGroups[r.scaleLabel].autoScaleYLabels = K, this.scaleGroups[r.scaleLabel].unique = this.activeSeriesWithStackRatios.filter((y) => y.scaleLabel === r.scaleLabel).length === 1;
503
- const Q = this.mutableConfig.useIndividualScale ? r.autoScaling ? Y : T : this.zero, ie = Math.max(Math.max(r.autoScaling ? Y : R.at(-1).y || 0, this.drawingArea.top), Q);
504
- return {
505
- ...r,
506
- yOffset: C,
507
- autoScaleYLabels: K,
508
- individualHeight: S,
509
- scaleYLabels: r.autoScaling ? K : R,
510
- individualScale: r.autoScaling ? b : A,
511
- individualMax: r.autoScaling ? o : t,
512
- zeroPosition: r.autoScaling ? Y : T,
513
- curve: r.autoScaling ? k : J,
514
- plots: r.autoScaling ? E : W,
515
- area: r.useArea ? this.mutableConfig.useIndividualScale ? this.FINAL_CONFIG.line.cutNullValues ? this.createIndividualAreaWithCuts(
516
- r.autoScaling ? E : W,
517
- ie
518
- ) : this.createIndividualArea(
519
- r.autoScaling ? E.filter((y) => y.value !== null) : W.filter((y) => y.value !== null),
520
- ie
521
- ) : this.createIndividualArea(W.filter((y) => y.value !== null), ie) : "",
522
- curveAreas: r.useArea ? ce(
523
- r.autoScaling ? this.FINAL_CONFIG.line.cutNullValues ? E : E.filter((y) => y.value !== null) : this.FINAL_CONFIG.line.cutNullValues ? W : W.filter((y) => y.value !== null),
524
- ie,
525
- this.FINAL_CONFIG.line.cutNullValues
526
- ) : [],
527
- straight: r.autoScaling ? L : P,
528
- groupId: this.scaleGroups[r.scaleLabel].groupId
529
- };
530
- });
531
- },
532
- plotSet() {
533
- const i = this.activeSeriesWithStackRatios.filter((r) => ["bar", "line", "plot"].includes(r.type)), n = i.length, h = this.FINAL_CONFIG.chart.grid.labels.yAxis.gap, f = this.mutableConfig.isStacked, l = f ? h * (n - 1) : 0, e = this.drawingArea.height - l;
534
- return i.filter((r) => r.type === "plot").map((r) => {
535
- this.checkAutoScaleError(r);
536
- const w = this.scaleGroups[r.scaleLabel].min, z = this.scaleGroups[r.scaleLabel].max;
537
- r.absoluteValues.filter((k) => ![null, void 0].includes(k)).map((k) => (k - w) / (z - w));
538
- const O = {
539
- valueMin: w,
540
- valueMax: z
541
- }, N = {
542
- max: r.scaleMax || Math.max(...r.absoluteValues) || 1,
543
- min: r.scaleMin || Math.min(...r.absoluteValues) > 0 ? 0 : Math.min(...r.absoluteValues)
544
- }, F = r.scaleSteps || this.FINAL_CONFIG.chart.grid.labels.yAxis.commonScaleSteps, v = 1.0000001, m = this.calculateNiceScaleWithExactExtremes(N.min, N.max === N.min ? N.max * v : N.max, F), A = this.calculateNiceScaleWithExactExtremes(O.valueMin, O.valueMax === O.valueMin ? O.valueMax * v : O.valueMax, F), b = m.min >= 0 ? 0 : Math.abs(m.min), M = 0, B = m.max + b, t = A.max + Math.abs(M), o = r.stackIndex, c = n - 1 - o, g = f ? 1 - r.cumulatedStackRatio : 0, p = f ? e * g + h * c : 0, C = f ? e * r.stackRatio : this.drawingArea.height, S = this.drawingArea.bottom - p - C * b / B, T = this.drawingArea.bottom - p - C * M / t, Y = r.series.map((k, P) => {
545
- const L = this.mutableConfig.useIndividualScale ? (r.absoluteValues[P] + Math.abs(b)) / B : this.ratioToMax(k);
546
- return {
547
- x: this.checkNaN(this.drawingArea.left + this.slot.plot / 2 + this.slot.plot * P),
548
- y: this.checkNaN(this.drawingArea.bottom - p - C * L),
549
- value: r.absoluteValues[P],
550
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[P] || ""
551
- };
552
- }), W = r.absoluteValues.map((k) => A.min >= 0 ? (k - Math.abs(A.min)) / (A.max - Math.abs(A.min)) : (k + Math.abs(A.min)) / (A.max + Math.abs(A.min))), te = r.series.map((k, P) => ({
553
- x: this.checkNaN(this.drawingArea.left + this.slot.plot / 2 + this.slot.plot * P),
554
- y: this.checkNaN(this.drawingArea.bottom - p - (C * W[P] || 0)),
555
- value: r.absoluteValues[P],
556
- comment: r.comments && r.comments.slice(this.slicer.start, this.slicer.end)[P] || ""
557
- })), E = m.ticks.map((k) => ({
558
- y: k >= 0 ? S - C * (k / B) : S + C * Math.abs(k) / B,
559
- value: k,
560
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
561
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
562
- datapoint: r
563
- })), J = A.ticks.map((k) => {
564
- const P = (k - A.min) / (A.max - A.min);
565
- return {
566
- y: k >= 0 ? T - C * P : T + C * P,
567
- value: k,
568
- prefix: r.prefix || this.FINAL_CONFIG.chart.labels.prefix,
569
- suffix: r.suffix || this.FINAL_CONFIG.chart.labels.suffix,
570
- datapoint: r
571
- };
572
- });
573
- return this.scaleGroups[r.scaleLabel].name = r.name, this.scaleGroups[r.scaleLabel].groupName = r.scaleLabel, this.scaleGroups[r.scaleLabel].groupColor = this.FINAL_CONFIG.chart.grid.labels.yAxis.groupColor || r.color, this.scaleGroups[r.scaleLabel].color = r.color, this.scaleGroups[r.scaleLabel].scaleYLabels = r.autoScaling ? J : E, this.scaleGroups[r.scaleLabel].zeroPosition = r.autoScaling ? T : S, this.scaleGroups[r.scaleLabel].individualMax = r.autoScaling ? t : B, this.scaleGroups[r.scaleLabel].scaleLabel = r.scaleLabel, this.scaleGroups[r.scaleLabel].id = r.id, this.scaleGroups[r.scaleLabel].yOffset = p, this.scaleGroups[r.scaleLabel].individualHeight = C, this.scaleGroups[r.scaleLabel].autoScaleYLabels = J, this.scaleGroups[r.scaleLabel].unique = this.activeSeriesWithStackRatios.filter((k) => k.scaleLabel === r.scaleLabel).length === 1, {
574
- ...r,
575
- yOffset: p,
576
- autoScaleYLabels: J,
577
- individualHeight: C,
578
- scaleYLabels: r.autoScaling ? J : E,
579
- individualScale: r.autoScaling ? A : m,
580
- individualMax: r.autoScaling ? t : B,
581
- zeroPosition: r.autoScaling ? T : S,
582
- plots: r.autoScaling ? te : Y,
583
- groupId: this.scaleGroups[r.scaleLabel].groupId
584
- };
585
- });
586
- },
587
- drawingArea() {
588
- function i(f) {
589
- const l = /* @__PURE__ */ new Set();
590
- return f.forEach((e) => {
591
- const r = e.scaleLabel || "__noScaleLabel__";
592
- l.add(r);
593
- }), l.size;
594
- }
595
- const n = i(this.absoluteDataset.filter((f) => !this.segregatedSeries.includes(f.id))), h = this.mutableConfig.useIndividualScale && this.FINAL_CONFIG.chart.grid.labels.show ? n * (this.mutableConfig.isStacked ? 0 : this.FINAL_CONFIG.chart.grid.labels.yAxis.labelWidth) : 0;
596
- return {
597
- top: 0,
598
- right: this.width,
599
- bottom: this.height,
600
- left: h,
601
- height: this.height,
602
- width: this.width - h
603
- };
604
- },
605
- max() {
606
- return this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMax ? this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMax : Math.max(...this.safeDataset.filter((i) => !this.segregatedSeries.includes(i.id)).map((i) => Math.max(...i.series)));
607
- },
608
- min() {
609
- if (this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMin !== null)
610
- return this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMin;
611
- const i = Math.min(...this.safeDataset.filter((n) => !this.segregatedSeries.includes(n.id)).map((n) => Math.min(...n.series)));
612
- return i > 0 ? 0 : i;
613
- },
614
- niceScale() {
615
- return this.FINAL_CONFIG.chart.grid.labels.yAxis.useNiceScale ? this.calculateNiceScale(this.min, this.max < 0 ? 0 : this.max, this.FINAL_CONFIG.chart.grid.labels.yAxis.commonScaleSteps) : this.calculateNiceScaleWithExactExtremes(this.min, this.max < 0 ? 0 : this.max, this.FINAL_CONFIG.chart.grid.labels.yAxis.commonScaleSteps);
616
- },
617
- maxSeries() {
618
- return this.slicer.end - this.slicer.start;
619
- },
620
- timeLabels() {
621
- const i = Math.max(...this.dataset.map((n) => this.largestTriangleThreeBucketsArray({ data: n.series, threshold: this.FINAL_CONFIG.downsample.threshold }).length));
622
- return $e({
623
- values: this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.values,
624
- maxDatapoints: i,
625
- formatter: this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.datetimeFormatter,
626
- start: this.slicer.start,
627
- end: this.slicer.end
628
- });
629
- },
630
- slot() {
631
- return {
632
- bar: this.drawingArea.width / this.maxSeries / this.safeDataset.filter((i) => i.type === "bar").filter((i) => !this.segregatedSeries.includes(i.id)).length,
633
- plot: this.drawingArea.width / this.maxSeries,
634
- line: this.drawingArea.width / this.maxSeries
635
- };
636
- },
637
- barSlot() {
638
- const i = this.safeDataset.filter((n) => n.type === "bar").filter((n) => !this.segregatedSeries.includes(n.id)).length;
639
- return this.drawingArea.width / this.maxSeries / i - this.barPeriodGap * i;
640
- },
641
- barPeriodGap() {
642
- return this.slot.line * this.FINAL_CONFIG.bar.periodGap;
643
- },
644
- maxSlot() {
645
- return Math.max(...Object.values(this.slot).filter((i) => i !== 1 / 0));
646
- },
647
- table() {
648
- if (this.safeDataset.length === 0) return { head: [], body: [], config: {}, columnNames: [] };
649
- const i = this.relativeDataset.map((h) => ({
650
- label: h.name,
651
- color: h.color,
652
- type: h.type
653
- })), n = [];
654
- return this.timeLabels.forEach((h, f) => {
655
- const l = [h.text];
656
- this.relativeDataset.forEach((e) => {
657
- l.push(this.canShowValue(e.absoluteValues[f]) ? Number(e.absoluteValues[f].toFixed(this.FINAL_CONFIG.table.rounding)) : "");
658
- }), n.push(l);
659
- }), { head: i, body: n };
660
- },
661
- dataTable() {
662
- const i = this.FINAL_CONFIG.table.showSum;
663
- let n = [""].concat(this.relativeDataset.map((e) => e.name));
664
- i && (n = n.concat(' <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M18 16v2a1 1 0 0 1 -1 1h-11l6 -7l-6 -7h11a1 1 0 0 1 1 1v2" /></svg>'));
665
- let h = [];
666
- for (let e = 0; e < this.maxSeries; e += 1) {
667
- const r = this.relativeDataset.map((w) => w.absoluteValues[e] ?? 0).reduce((w, z) => w + z, 0);
668
- h.push(
669
- [
670
- this.timeLabels[e].text ?? "-"
671
- ].concat(this.relativeDataset.map(
672
- (w) => this.applyDataLabel(
673
- w.type === "line" ? this.FINAL_CONFIG.line.labels.formatter : w.type === "bar" ? this.FINAL_CONFIG.bar.labels.formatter : this.FINAL_CONFIG.plot.labels.formatter,
674
- w.absoluteValues[e] ?? 0,
675
- this.dataLabel({
676
- p: w.prefix || this.FINAL_CONFIG.chart.labels.prefix,
677
- v: w.absoluteValues[e] ?? 0,
678
- s: w.suffix || this.FINAL_CONFIG.chart.labels.suffix,
679
- r: this.FINAL_CONFIG.table.rounding
680
- })
681
- )
682
- )).concat(i ? (r ?? 0).toFixed(this.FINAL_CONFIG.table.rounding) : [])
683
- );
684
- }
685
- const f = {
686
- th: {
687
- backgroundColor: this.FINAL_CONFIG.table.th.backgroundColor,
688
- color: this.FINAL_CONFIG.table.th.color,
689
- outline: this.FINAL_CONFIG.table.th.outline
690
- },
691
- td: {
692
- backgroundColor: this.FINAL_CONFIG.table.td.backgroundColor,
693
- color: this.FINAL_CONFIG.table.td.color,
694
- outline: this.FINAL_CONFIG.table.td.outline
695
- },
696
- breakpoint: this.FINAL_CONFIG.table.responsiveBreakpoint
697
- }, l = [this.FINAL_CONFIG.table.columnNames.period].concat(this.relativeDataset.map((e) => e.name)).concat(this.FINAL_CONFIG.table.columnNames.total);
698
- return { head: n, body: h, config: f, colNames: l };
699
- },
700
- dataTooltipSlot() {
701
- return {
702
- datapoint: this.selectedSeries,
703
- seriesIndex: this.selectedSerieIndex,
704
- series: this.absoluteDataset,
705
- bars: this.barSet,
706
- lines: this.lineSet,
707
- plots: this.plotSet,
708
- config: this.FINAL_CONFIG
709
- };
710
- },
711
- selectedSeries() {
712
- return this.relativeDataset.map((i) => ({
713
- slotAbsoluteIndex: i.slotAbsoluteIndex,
714
- shape: i.shape || null,
715
- name: i.name,
716
- color: i.color,
717
- type: i.type,
718
- value: i.absoluteValues.find((n, h) => h === this.selectedSerieIndex),
719
- comments: i.comments || [],
720
- prefix: i.prefix || this.FINAL_CONFIG.chart.labels.prefix,
721
- suffix: i.suffix || this.FINAL_CONFIG.chart.labels.suffix
722
- }));
723
- },
724
- tooltipContent() {
725
- let i = "", n = this.selectedSeries.map((l) => l.value).filter((l) => this.isSafeValue(l) && l !== null).reduce((l, e) => Math.abs(l) + Math.abs(e), 0);
726
- const h = this.timeLabels[this.selectedSerieIndex], f = this.FINAL_CONFIG.chart.tooltip.customFormat;
727
- return this.isFunction(f) && this.functionReturnsString(() => f({
728
- seriesIndex: this.selectedSerieIndex,
729
- datapoint: this.selectedSeries,
730
- series: this.absoluteDataset,
731
- bars: this.barSet,
732
- lines: this.lineSet,
733
- plots: this.plotSet,
734
- config: this.FINAL_CONFIG
735
- })) ? f({
736
- seriesIndex: this.selectedSerieIndex,
737
- datapoint: this.selectedSeries,
738
- series: this.absoluteDataset,
739
- bars: this.barSet,
740
- lines: this.lineSet,
741
- plots: this.plotSet,
742
- config: this.FINAL_CONFIG
743
- }) : (h && h.text && this.FINAL_CONFIG.chart.tooltip.showTimeLabel && (i += `<div style="padding-bottom: 6px; margin-bottom: 4px; border-bottom: 1px solid ${this.FINAL_CONFIG.chart.tooltip.borderColor}; width:100%">${h.text}</div>`), this.selectedSeries.forEach((l) => {
744
- if (this.isSafeValue(l.value)) {
745
- let e = "", r = "";
746
- switch (this.icons[l.type]) {
747
- case "bar":
748
- e = `<svg viewBox="0 0 40 40" height="14" width="14">${this.$slots.pattern ? `<rect x="0" y="0" rx="1" stroke="none" height="40" width="40" fill="${l.color}" />` : ""}<rect x="0" y="0" rx="1" stroke="none" height="40" width="40" fill="${this.$slots.pattern ? `url(#pattern_${this.uniqueId}_${l.slotAbsoluteIndex}` : l.color}" /></svg>`;
749
- break;
750
- case "line":
751
- !l.shape || !["star", "triangle", "square", "diamond", "pentagon", "hexagon"].includes(l.shape) ? r = `<circle cx="10" cy="8" r="4" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" fill="${l.color}" />` : l.shape === "triangle" ? r = `<path d="${q({ plot: { x: 10, y: 8 }, radius: 4, sides: 3, rotation: 0.52 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" />` : l.shape === "square" ? r = `<path d="${q({ plot: { x: 10, y: 8 }, radius: 4, sides: 4, rotation: 0.8 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" />` : l.shape === "diamond" ? r = `<path d="${q({ plot: { x: 10, y: 8 }, radius: 4, sides: 4, rotation: 0 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" />` : l.shape === "pentagon" ? r = `<path d="${q({ plot: { x: 10, y: 8 }, radius: 4, sides: 5, rotation: 0.95 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" />` : l.shape === "hexagon" ? r = `<path d="${q({ plot: { x: 10, y: 8 }, radius: 4, sides: 6, rotation: 0 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" />` : l.shape === "star" && (r = `<polygon stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" fill="${l.color}" points="${re({ plot: { x: 10, y: 8 }, radius: 4 })}" />`), e = `<svg viewBox="0 0 20 12" height="14" width="20"><rect rx="1.5" x="0" y="6.5" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="0.5" height="3" width="20" fill="${l.color}" />${r}</svg>`;
752
- break;
753
- case "plot":
754
- if (!l.shape || !["star", "triangle", "square", "diamond", "pentagon", "hexagon"].includes(l.shape)) {
755
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><circle cx="6" cy="6" r="6" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" fill="${l.color}" /></svg>`;
756
- break;
757
- }
758
- if (l.shape === "star") {
759
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><polygon stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" fill="${l.color}" points="${re({ plot: { x: 6, y: 6 }, radius: 5 })}" /></svg>`;
760
- break;
761
- }
762
- if (l.shape === "triangle") {
763
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${q({ plot: { x: 6, y: 6 }, radius: 6, sides: 3, rotation: 0.52 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`;
764
- break;
765
- }
766
- if (l.shape === "square") {
767
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${q({ plot: { x: 6, y: 6 }, radius: 6, sides: 4, rotation: 0.8 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`;
768
- break;
769
- }
770
- if (l.shape === "diamond") {
771
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${q({ plot: { x: 6, y: 6 }, radius: 5, sides: 4, rotation: 0 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`;
772
- break;
773
- }
774
- if (l.shape === "pentagon") {
775
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${q({ plot: { x: 6, y: 6 }, radius: 5, sides: 5, rotation: 0.95 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`;
776
- break;
777
- }
778
- if (l.shape === "hexagon") {
779
- e = `<svg viewBox="0 0 12 12" height="14" width="14"><path d="${q({ plot: { x: 6, y: 6 }, radius: 5, sides: 6, rotation: 0 }).path}" fill="${l.color}" stroke="${this.FINAL_CONFIG.chart.tooltip.backgroundColor}" stroke-width="1" /></svg>`;
780
- break;
781
- }
782
- }
783
- i += `<div style="display:flex;flex-direction:row; align-items:center;gap:3px;"><div style="width:20px">${e}</div> ${l.name}: <b>${this.FINAL_CONFIG.chart.tooltip.showValue ? this.applyDataLabel(
784
- l.type === "line" ? this.FINAL_CONFIG.line.labels.formatter : l.type === "bar" ? this.FINAL_CONFIG.bar.labels.formatter : this.FINAL_CONFIG.plot.labels.formatter,
785
- l.value,
786
- this.dataLabel({
787
- p: l.prefix,
788
- v: l.value,
789
- s: l.suffix,
790
- r: this.FINAL_CONFIG.chart.tooltip.roundingValue
791
- }),
792
- { datapoint: l }
793
- ) : ""}</b> ${this.FINAL_CONFIG.chart.tooltip.showPercentage ? `(${oe({
794
- v: this.checkNaN(Math.abs(l.value) / n * 100),
795
- s: "%",
796
- r: this.FINAL_CONFIG.chart.tooltip.roundingPercentage
797
- })})` : ""}</div>`, this.FINAL_CONFIG.chart.comments.showInTooltip && l.comments.length && l.comments.slice(this.slicer.start, this.slicer.end)[this.selectedSerieIndex] && (i += `<div class="vue-data-ui-tooltip-comment" style="background:${l.color}20; padding: 6px; margin-bottom: 6px; border-left: 1px solid ${l.color}">${l.comments.slice(this.slicer.start, this.slicer.end)[this.selectedSerieIndex]}</div>`);
798
- }
799
- }), `<div style="border-radius:4px;padding:12px;font-variant-numeric: tabular-nums;color:${this.FINAL_CONFIG.chart.tooltip.color}">${i}</div>`);
800
- },
801
- svg() {
802
- return {
803
- height: this.height,
804
- width: this.width
805
- };
806
- },
807
- yLabels() {
808
- return this.niceScale.ticks.map((i) => ({
809
- y: i >= 0 ? this.zero - this.drawingArea.height * this.ratioToMax(i) : this.zero + this.drawingArea.height * this.ratioToMax(Math.abs(i)),
810
- value: i,
811
- prefix: this.FINAL_CONFIG.chart.labels.prefix,
812
- suffix: this.FINAL_CONFIG.chart.labels.suffix
813
- }));
814
- },
815
- zero() {
816
- return isNaN(this.ratioToMax(this.relativeZero)) ? this.drawingArea.bottom : this.drawingArea.bottom - this.drawingArea.height * this.ratioToMax(this.relativeZero);
817
- },
818
- annotationsY() {
819
- const i = this.FINAL_CONFIG.chart.annotations;
820
- if (!i || !Array.isArray(i) || i.every((N) => !N.show)) return [];
821
- const n = i.filter(
822
- (N) => N.show && (N.yAxis.yTop != null || N.yAxis.yBottom != null)
823
- );
824
- if (!n.length) return [];
825
- const { left: h, right: f } = this.drawingArea, l = this.zero, e = this.drawingArea.height, r = this.niceScale.min, z = this.niceScale.max - r, O = (N) => {
826
- const F = (N - 0) / z;
827
- return l - F * e;
828
- };
829
- return n.map((N) => {
830
- const { yAxis: { yTop: F, yBottom: v, label: m } } = N, A = F != null && v != null && F !== v, b = F == null ? null : O(F), M = v == null ? null : O(v), B = this.getTextMeasurer(m.fontSize);
831
- B.font = `${m.fontSize}px sans-serif`;
832
- const t = B.measureText(m.text).width, o = m.fontSize, c = (m.position === "start" ? h + m.padding.left : f - m.padding.right) + m.offsetX, p = (b != null && M != null ? Math.min(b, M) : b ?? M) - m.fontSize / 3 + m.offsetY - m.padding.top;
833
- let C;
834
- m.textAnchor === "middle" ? C = c - t / 2 - m.padding.left : m.textAnchor === "end" ? C = c - t - m.padding.right : C = c - m.padding.left;
835
- const S = p - o * 0.75 - m.padding.top;
836
- return {
837
- show: ![b, M, S].includes(NaN),
838
- id: `annotation_y_${this.createUid()}`,
839
- hasArea: A,
840
- areaHeight: A ? Math.abs(b - M) : 0,
841
- yTop: b,
842
- yBottom: M,
843
- config: N.yAxis,
844
- x1: h,
845
- x2: f,
846
- _text: { x: c, y: p },
847
- _box: {
848
- x: C,
849
- y: S,
850
- width: t + m.padding.left + m.padding.right,
851
- height: o + m.padding.top + m.padding.bottom,
852
- fill: m.backgroundColor,
853
- stroke: m.border.stroke,
854
- rx: m.border.rx,
855
- ry: m.border.ry,
856
- strokeWidth: m.border.strokeWidth
857
- }
858
- };
859
- });
860
- }
861
- },
862
- mounted() {
863
- this.svgRef = this.$refs.svgRef, this.prepareChart(), this.setupSlicer(), document.addEventListener("mousemove", (i) => {
864
- this.clientPosition = {
865
- x: i.clientX,
866
- y: i.clientY
867
- };
868
- }), document.addEventListener("scroll", this.hideTags);
869
- },
870
- beforeUnmount() {
871
- document.removeEventListener("scroll", this.hideTags), this.resizeObserver && (this.resizeObserver.unobserve(this.observedEl), this.resizeObserver.disconnect());
872
- },
873
- methods: {
874
- abbreviate: qe,
875
- adaptColorToBackground: Xe,
876
- applyDataLabel: Ye,
877
- assignStackRatios: Ee,
878
- calcLinearProgression: We,
879
- calculateNiceScale: De,
880
- calculateNiceScaleWithExactExtremes: He,
881
- checkNaN: Be,
882
- closestDecimal: Re,
883
- convertColorToHex: Ve,
884
- convertConfigColors: Pe,
885
- convertCustomPalette: Te,
886
- createCsvContent: Me,
887
- createSmoothPath: ze,
888
- createStraightPath: pe,
889
- createTSpans: ve,
890
- createTSpansFromLineBreaksOnX: Ge,
891
- dataLabel: oe,
892
- downloadCsv: Oe,
893
- error: ke,
894
- forceValidValue: we,
895
- functionReturnsString: Se,
896
- hasDeepProperty: Ce,
897
- isFunction: Le,
898
- isSafeValue: Ae,
899
- largestTriangleThreeBucketsArray: ye,
900
- objectIsEmpty: _e,
901
- setOpacity: Fe,
902
- shiftHue: be,
903
- translateSize: me,
904
- treeShake: Ne,
905
- useMouse: je,
906
- useNestedProp: ae,
907
- createUid: ne,
908
- placeXYTag: xe,
909
- createSmoothPathWithCuts: Ie,
910
- createStraightPathWithCuts: fe,
911
- createAreaWithCuts: ge,
912
- createIndividualAreaWithCuts: de,
913
- createSmoothAreaSegments: ce,
914
- createIndividualArea: ue,
915
- forceResizeObserver() {
916
- if (!this.FINAL_CONFIG.responsive) return;
917
- const i = this.$refs.chart;
918
- if (i) {
919
- const n = i.parentNode;
920
- if (n) {
921
- const h = n.getBoundingClientRect().width;
922
- n.style.width = h - 0.1 + "px", setTimeout(() => {
923
- n.style.width = h + "px";
924
- }, 0);
925
- }
926
- }
927
- },
928
- async setViewBox() {
929
- await this.$nextTick();
930
- const i = this.$refs.G;
931
- if (!i) return;
932
- const { x: n, y: h, width: f, height: l } = i.getBBox();
933
- this.setYAxisLabel(), this.setXAxisLabel(), await this.$nextTick();
934
- const e = i.getBBox();
935
- this.viewBox = `${e.x - this.FINAL_CONFIG.chart.padding.left} ${e.y - this.fontSizes.plotLabels - this.FINAL_CONFIG.chart.padding.top} ${e.width + this.FINAL_CONFIG.chart.padding.left + this.FINAL_CONFIG.chart.padding.right} ${e.height + this.fontSizes.plotLabels + this.FINAL_CONFIG.chart.padding.top + this.FINAL_CONFIG.chart.padding.bottom}`, await this.$nextTick(), this.$refs.chart.classList.remove("no-transition");
936
- },
937
- async setYAxisLabel() {
938
- const i = this.$refs.yAxisLabel;
939
- i && (await this.$nextTick(), i.setAttribute("transform", `translate(${this.viewBoxParts.x + this.FINAL_CONFIG.chart.grid.labels.axis.yLabelOffsetX + this.fontSizes.yAxis}, ${this.drawingArea.top + this.drawingArea.height / 2}) rotate(-90)`));
940
- },
941
- async setXAxisLabel() {
942
- const i = this.$refs.xAxisLabel;
943
- if (!i) return;
944
- await this.$nextTick();
945
- const n = this.$refs.timeLabels;
946
- let h = this.drawingArea.bottom;
947
- n && (h += n.getBBox().height), i.setAttribute("y", h + this.fontSizes.xAxis * 1.3 + this.FINAL_CONFIG.chart.grid.labels.axis.xLabelOffsetY);
948
- },
949
- usesSelectTimeLabelEvent() {
950
- return !!this.$.vnode.props?.onSelectTimeLabel;
951
- },
952
- getTextMeasurer(i, n, h) {
953
- if (!this._textMeasurer) {
954
- const f = document.createElement("canvas");
955
- this._textMeasurer = f.getContext("2d");
956
- }
957
- return this._textMeasurer.font = `${h || "normal"} ${i}px ${n || "sans-serif"}`, this._textMeasurer;
958
- },
959
- hideTags() {
960
- const i = document.querySelectorAll(".vue-ui-xy-tag");
961
- i.length && Array.from(i).forEach((n) => n.style.opacity = "0");
962
- },
963
- setTagRef(i, n, h, f, l) {
964
- h && (this.tagRefs[`${i}_${n}_${f}_${l}`] = h);
965
- },
966
- setUserOptionsVisibility(i = !1) {
967
- this.showUserOptionsOnChartHover && (this.userOptionsVisible = i);
968
- },
969
- toggleAnnotator() {
970
- this.isAnnotator = !this.isAnnotator;
971
- },
972
- selectTimeLabel(i, n) {
973
- const h = this.relativeDataset.map((f) => ({
974
- shape: f.shape || null,
975
- name: f.name,
976
- color: f.color,
977
- type: f.type,
978
- value: f.absoluteValues.find((l, e) => e === n),
979
- comments: f.comments || [],
980
- prefix: f.prefix || this.FINAL_CONFIG.chart.labels.prefix,
981
- suffix: f.suffix || this.FINAL_CONFIG.chart.labels.suffix
982
- }));
983
- this.$emit("selectTimeLabel", {
984
- datapoint: h,
985
- absoluteIndex: i.absoluteIndex,
986
- label: i.text
987
- });
988
- },
989
- getHighlightAreaPosition(i) {
990
- const n = this.drawingArea.left + this.drawingArea.width / this.maxSeries * (i.from - this.slicer.start), h = this.drawingArea.width / (this.slicer.end - this.slicer.start) * i.span < 0 ? 1e-5 : this.drawingArea.width / (this.slicer.end - this.slicer.start) * i.span;
991
- return {
992
- x: n < this.drawingArea.left ? this.drawingArea.left : n,
993
- width: h
994
- };
995
- },
996
- prepareConfig() {
997
- const i = Ue().vue_ui_xy;
998
- if (!Object.keys(this.config || {}).length)
999
- return i;
1000
- const n = this.useNestedProp({
1001
- userConfig: this.config,
1002
- defaultConfig: i
1003
- });
1004
- return this.config && this.hasDeepProperty(this.config, "chart.highlightArea") && (Array.isArray(this.config.chart.highlightArea) ? n.chart.highlightArea = this.config.chart.highlightArea : n.chart.highlightArea = [this.config.chart.highlightArea]), this.config && this.hasDeepProperty(this.config, "chart.grid.labels.yAxis.scaleMin") ? n.chart.grid.labels.yAxis.scaleMin = this.config.chart.grid.labels.yAxis.scaleMin : n.chart.grid.labels.yAxis.scaleMin = null, this.config && this.hasDeepProperty(this.config, "chart.grid.labels.yAxis.scaleMax") ? n.chart.grid.labels.yAxis.scaleMax = this.config.chart.grid.labels.yAxis.scaleMax : n.chart.grid.labels.yAxis.scaleMax = null, this.config && this.hasDeepProperty(this.config, "chart.zoom.startIndex") ? n.chart.zoom.startIndex = this.config.chart.zoom.startIndex : n.chart.zoom.startIndex = null, this.config && this.hasDeepProperty(this.config, "chart.zoom.endIndex") ? n.chart.zoom.endIndex = this.config.chart.zoom.endIndex : n.chart.zoom.endIndex = null, this.config && this.hasDeepProperty(this.config, "chart.grid.labels.yAxis.groupColor") ? n.chart.grid.labels.yAxis.groupColor = this.config.chart.grid.labels.yAxis.groupColor : n.chart.grid.labels.yAxis.groupColor = null, this.config && this.config.chart.annotations && Array.isArray(this.config.chart.annotations) && this.config.chart.annotations.length ? n.chart.annotations = this.config.chart.annotations.map((h) => ae({
1005
- defaultConfig: i.chart.annotations[0],
1006
- userConfig: h
1007
- })) : n.chart.annotations = [], n.theme ? {
1008
- ...ae({
1009
- userConfig: this.themes.vue_ui_xy[n.theme] || this.config,
1010
- defaultConfig: n
1011
- }),
1012
- customPalette: this.themePalettes[n.theme] || this.palette
1013
- } : n;
1014
- },
1015
- prepareChart() {
1016
- if (this.objectIsEmpty(this.dataset) ? this.error({
1017
- componentName: "VueUiXy",
1018
- type: "dataset"
1019
- }) : this.dataset.forEach((i, n) => {
1020
- [null, void 0].includes(i.name) && this.error({
1021
- componentName: "VueUiXy",
1022
- type: "datasetSerieAttribute",
1023
- property: "name (string)",
1024
- index: n
1025
- });
1026
- }), this.FINAL_CONFIG.showWarnings && this.dataset.forEach((i) => {
1027
- i.series.forEach((n, h) => {
1028
- this.isSafeValue(n) || console.warn(`VueUiXy has detected an unsafe value in your dataset:
1029
- -----> The serie '${i.name}' contains the value '${n}' at index ${h}.
1030
- '${n}' was converted to null to allow the chart to display.`);
1031
- });
1032
- }), this.showUserOptionsOnChartHover = this.FINAL_CONFIG.chart.userOptions.showOnChartHover, this.keepUserOptionState = this.FINAL_CONFIG.chart.userOptions.keepStateOnChartLeave, this.userOptionsVisible = !this.FINAL_CONFIG.chart.userOptions.showOnChartHover, this.mutableConfig = {
1033
- dataLabels: {
1034
- show: !0
1035
- },
1036
- showTooltip: this.FINAL_CONFIG.chart.tooltip.show === !0,
1037
- showTable: this.FINAL_CONFIG.showTable === !0,
1038
- isStacked: this.FINAL_CONFIG.chart.grid.labels.yAxis.stacked,
1039
- useIndividualScale: this.FINAL_CONFIG.chart.grid.labels.yAxis.useIndividualScale
1040
- }, this.FINAL_CONFIG.responsive) {
1041
- const n = this.$refs.chart.parentNode;
1042
- this.resizeObserver && (this.resizeObserver.unobserve(this.observedEl), this.resizeObserver.disconnect());
1043
- const { height: h, width: f } = n.getBoundingClientRect();
1044
- let l = null, e = 0;
1045
- this.FINAL_CONFIG.chart.title.show && this.$refs.chartTitle && (l = this.$refs.chartTitle, e = l.getBoundingClientRect().height);
1046
- let r = null, w = 0;
1047
- this.FINAL_CONFIG.chart.zoom.show && this.maxX > 6 && this.isDataset && this.$refs.chartSlicer && this.$refs.chartSlicer.$el && (r = this.$refs.chartSlicer.$el, w = r.getBoundingClientRect().height);
1048
- let z = null, O = 0;
1049
- this.FINAL_CONFIG.chart.legend.show && this.$refs.chartLegend && (z = this.$refs.chartLegend, O = z.getBoundingClientRect().height);
1050
- let N = 0;
1051
- this.$refs.source && (N = this.$refs.source.getBoundingClientRect().height);
1052
- let F = 0;
1053
- this.$refs.noTitle && (F = this.$refs.noTitle.getBoundingClientRect().height), this.height = h - e - O - w - N - F, this.width = f, this.setViewBox(0, 0, Math.max(10, this.width), Math.max(10, this.height)), this.convertSizes();
1054
- const v = new ResizeObserver((m) => {
1055
- for (const A of m)
1056
- this.FINAL_CONFIG.chart.title.show && this.$refs.chartTitle ? e = this.$refs.chartTitle.getBoundingClientRect().height : e = 0, this.$refs.chartSlicer && this.$refs.chartSlicer.$el ? w = this.$refs.chartSlicer.$el.getBoundingClientRect().height : w = 0, this.$refs.chartLegend ? O = this.$refs.chartLegend.getBoundingClientRect().height : O = 0, this.$refs.source ? N = this.$refs.source.getBoundingClientRect().height : N = 0, this.$refs.noTitle ? F = this.$refs.noTitle.getBoundingClientRect().height : F = 0, this.$refs.chart.classList.add("no-transition"), requestAnimationFrame(() => {
1057
- this.height = A.contentRect.height - e - O - w - N - F - 48, this.remainingHeight = A.contentRect.height - this.height, this.width = A.contentBoxSize[0].inlineSize, this.svgAspectRatio = this.width / this.remainingHeight, this.setViewBox(0, 0, Math.max(10, this.width), Math.max(10, this.height)), this.convertSizes();
1058
- });
1059
- });
1060
- this.resizeObserver = v, this.observedEl = n, v.observe(n);
1061
- } else
1062
- this.height = this.FINAL_CONFIG.chart.height, this.width = this.FINAL_CONFIG.chart.width, this.setViewBox(0, 0, Math.max(10, this.width), Math.max(10, this.height)), this.fontSizes.dataLabels = this.FINAL_CONFIG.chart.grid.labels.fontSize, this.fontSizes.yAxis = this.FINAL_CONFIG.chart.grid.labels.axis.fontSize, this.fontSizes.xAxis = this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.fontSize, this.fontSizes.plotLabels = this.FINAL_CONFIG.chart.labels.fontSize, this.plotRadii.plot = this.FINAL_CONFIG.plot.radius, this.plotRadii.line = this.FINAL_CONFIG.line.radius;
1063
- },
1064
- selectMinimapIndex(i) {
1065
- this.selectedMinimapIndex = i;
1066
- },
1067
- convertSizes() {
1068
- if (!this.FINAL_CONFIG.responsiveProportionalSizing) {
1069
- this.fontSizes.dataLabels = this.FINAL_CONFIG.chart.grid.labels.fontSize, this.fontSizes.yAxis = this.FINAL_CONFIG.chart.grid.labels.axis.fontSize, this.fontSizes.xAxis = this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.fontSize, this.fontSizes.plotLabels = this.FINAL_CONFIG.chart.labels.fontSize, this.plotRadii.plot = this.FINAL_CONFIG.plot.radius, this.plotRadii.line = this.FINAL_CONFIG.line.radius;
1070
- return;
1071
- }
1072
- this.fontSizes.dataLabels = this.translateSize({
1073
- relator: this.height,
1074
- adjuster: 400,
1075
- source: this.FINAL_CONFIG.chart.grid.labels.fontSize,
1076
- threshold: 10,
1077
- fallback: 10
1078
- }), this.fontSizes.yAxis = this.translateSize({
1079
- relator: this.width,
1080
- adjuster: 1e3,
1081
- source: this.FINAL_CONFIG.chart.grid.labels.axis.fontSize,
1082
- threshold: 10,
1083
- fallback: 10
1084
- }), this.fontSizes.xAxis = this.translateSize({
1085
- relator: this.width,
1086
- adjuster: 1e3,
1087
- source: this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.fontSize,
1088
- threshold: 10,
1089
- fallback: 10
1090
- }), this.fontSizes.plotLabels = this.translateSize({
1091
- relator: this.width,
1092
- adjuster: 800,
1093
- source: this.FINAL_CONFIG.chart.labels.fontSize,
1094
- threshold: 10,
1095
- fallback: 10
1096
- }), this.plotRadii.plot = this.translateSize({
1097
- relator: this.width,
1098
- adjuster: 800,
1099
- source: this.FINAL_CONFIG.plot.radius,
1100
- threshold: 1,
1101
- fallback: 1
1102
- }), this.plotRadii.line = this.translateSize({
1103
- relator: this.width,
1104
- adjuster: 800,
1105
- source: this.FINAL_CONFIG.line.radius,
1106
- threshold: 1,
1107
- fallback: 1
1108
- });
1109
- },
1110
- toggleStack() {
1111
- this.mutableConfig.isStacked = !this.mutableConfig.isStacked, this.mutableConfig.isStacked ? this.mutableConfig.useIndividualScale = !0 : this.mutableConfig.useIndividualScale = this.FINAL_CONFIG.chart.grid.labels.yAxis.useIndividualScale;
1112
- },
1113
- toggleTable() {
1114
- this.mutableConfig.showTable = !this.mutableConfig.showTable;
1115
- },
1116
- toggleLabels() {
1117
- this.mutableConfig.dataLabels.show = !this.mutableConfig.dataLabels.show;
1118
- },
1119
- toggleTooltip() {
1120
- this.mutableConfig.showTooltip = !this.mutableConfig.showTooltip;
1121
- },
1122
- checkAutoScaleError(i) {
1123
- i.autoScaling && (this.FINAL_CONFIG.chart.grid.labels.yAxis.useIndividualScale || console.warn(`VueUiXy (datapoint: ${i.name}) : autoScaling only works when config.chart.grid.labels.yAxis.useIndividualScale is set to true`), this.FINAL_CONFIG.chart.grid.labels.yAxis.stacked || console.warn(`VueUiXy (datapoint: ${i.name}) : autoScaling only works when config.chart.grid.labels.yAxis.stacked is set to true`));
1124
- },
1125
- createArea(i, n) {
1126
- if (!i[0]) return [-10, -10, "", -10, -10];
1127
- const h = { x: i[0].x, y: n }, f = { x: i.at(-1).x, y: n }, l = [];
1128
- return i.forEach((e) => {
1129
- l.push(`${e.x},${e.y} `);
1130
- }), [h.x, h.y, ...l, f.x, f.y].toString();
1131
- },
1132
- createStar: re,
1133
- createPolygonPath: q,
1134
- fillArray(i, n) {
1135
- let h = Array(i).fill(0);
1136
- for (let f = 0; f < n.length && f < i; f += 1)
1137
- h[f] = n[f];
1138
- return h;
1139
- },
1140
- async setupSlicer() {
1141
- (this.FINAL_CONFIG.chart.zoom.startIndex !== null || this.FINAL_CONFIG.chart.zoom.endIndex !== null) && this.$refs.chartSlicer ? (this.FINAL_CONFIG.chart.zoom.startIndex !== null && (await this.$nextTick(), await this.$nextTick(), this.$refs.chartSlicer.setStartValue(this.FINAL_CONFIG.chart.zoom.startIndex)), this.FINAL_CONFIG.chart.zoom.endIndex !== null && (await this.$nextTick(), await this.$nextTick(), this.$refs.chartSlicer.setEndValue(this.validSlicerEnd(this.FINAL_CONFIG.chart.zoom.endIndex + 1)))) : (this.slicer = {
1142
- start: 0,
1143
- end: Math.max(...this.dataset.map((i) => this.largestTriangleThreeBucketsArray({ data: i.series, threshold: this.FINAL_CONFIG.downsample.threshold }).length))
1144
- }, this.slicerStep += 1);
1145
- },
1146
- refreshSlicer() {
1147
- this.setupSlicer();
1148
- },
1149
- validSlicerEnd(i) {
1150
- const n = Math.max(...this.dataset.map((h) => this.largestTriangleThreeBucketsArray({ data: h.series, threshold: this.FINAL_CONFIG.downsample.threshold }).length));
1151
- return i > n ? n : i < 0 || this.FINAL_CONFIG.chart.zoom.startIndex !== null && i < this.FINAL_CONFIG.chart.zoom.startIndex ? this.FINAL_CONFIG.chart.zoom.startIndex !== null ? this.FINAL_CONFIG.chart.zoom.startIndex + 1 : 1 : i;
1152
- },
1153
- calcRectHeight(i) {
1154
- const n = ![null, void 0].includes(this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMin) && this.FINAL_CONFIG.chart.grid.labels.yAxis.scaleMin > 0 && this.min >= 0 ? this.drawingArea.bottom : this.zero;
1155
- return i.value >= 0 ? this.checkNaN(n - i.y <= 0 ? 1e-5 : n - i.y) : this.checkNaN(i.y - this.zero <= 0 ? 1e-5 : i.y - this.zero);
1156
- },
1157
- calcIndividualHeight(i) {
1158
- return i.value >= 0 ? this.checkNaN(i.zeroPosition - i.y <= 0 ? 1e-5 : i.zeroPosition - i.y) : this.checkNaN(i.y - i.zeroPosition <= 0 ? 1e-5 : i.zeroPosition - i.y);
1159
- },
1160
- calcRectWidth() {
1161
- return this.mutableConfig.useIndividualScale && this.mutableConfig.isStacked ? this.slot.line - this.drawingArea.width / this.maxSeries * 0.1 : this.slot.bar;
1162
- },
1163
- calcRectX(i) {
1164
- return this.mutableConfig.useIndividualScale && this.mutableConfig.isStacked ? i.x + this.drawingArea.width / this.maxSeries * 0.05 : i.x + this.slot.bar / 2;
1165
- },
1166
- calcRectY(i) {
1167
- return i.value >= 0 ? i.y : [null, void 0, NaN, 1 / 0, -1 / 0].includes(this.zero) ? this.drawingArea.bottom : this.zero;
1168
- },
1169
- calcIndividualRectY(i) {
1170
- return i.value >= 0 ? i.y : [null, void 0, NaN, 1 / 0, -1 / 0].includes(i.zeroPosition) ? 0 : i.zeroPosition;
1171
- },
1172
- canShowValue(i) {
1173
- return ![null, void 0, NaN, 1 / 0, -1 / 0].includes(i);
1174
- },
1175
- findClosestValue(i, n) {
1176
- let h = n[0], f = Math.abs(i - n[0]);
1177
- for (let l = 1; l < n.length; l += 1) {
1178
- const e = Math.abs(i - n[l]);
1179
- e < f && n[l] < i && (h = n[l], f = e);
1180
- }
1181
- return h;
1182
- },
1183
- ratioToMax(i) {
1184
- return i / (this.canShowValue(this.absoluteMax) ? this.absoluteMax : 1);
1185
- },
1186
- selectX(i) {
1187
- this.$emit(
1188
- "selectX",
1189
- {
1190
- dataset: this.relativeDataset.map((n) => ({
1191
- name: n.name,
1192
- value: [null, void 0, NaN].includes(n.absoluteValues[i]) ? null : n.absoluteValues[i],
1193
- color: n.color,
1194
- type: n.type
1195
- })),
1196
- index: i,
1197
- indexLabel: this.FINAL_CONFIG.chart.grid.labels.xAxisLabels.values[i]
1198
- }
1199
- );
1200
- },
1201
- getData() {
1202
- return this.absoluteDataset.map((i) => ({
1203
- values: i.absoluteValues,
1204
- color: i.color,
1205
- name: i.name,
1206
- type: i.type
1207
- }));
1208
- },
1209
- async getImage({ scale: i = 2 } = {}) {
1210
- if (!this.$refs.chart) return;
1211
- const { width: n, height: h } = this.$refs.chart.getBoundingClientRect(), f = n / h, { imageUri: l, base64: e } = await nt({ domElement: this.$refs.chart, base64: !0, img: !0, scale: i });
1212
- return {
1213
- imageUri: l,
1214
- base64: e,
1215
- title: this.FINAL_CONFIG.chart.title.text,
1216
- width: n,
1217
- height: h,
1218
- aspectRatio: f
1219
- };
1220
- },
1221
- segregate(i) {
1222
- if (this.segregatedSeries.includes(i.id))
1223
- this.segregatedSeries = this.segregatedSeries.filter((n) => n !== i.id);
1224
- else {
1225
- if (this.segregatedSeries.length + 1 === this.safeDataset.length) return;
1226
- this.segregatedSeries.push(i.id);
1227
- }
1228
- this.$emit("selectLegend", this.relativeDataset.map((n) => ({
1229
- name: n.name,
1230
- values: n.absoluteValues,
1231
- color: n.color,
1232
- type: n.type
1233
- }))), this.segregateStep += 1;
1234
- },
1235
- toggleTooltipVisibility(i, n = null) {
1236
- this.isTooltip = i, i ? this.selectedSerieIndex = n : this.selectedSerieIndex = null;
1237
- },
1238
- toggleFullscreen(i) {
1239
- this.isFullscreen = i, this.step += 1;
1240
- },
1241
- showSpinnerPdf() {
1242
- this.isPrinting = !0;
1243
- },
1244
- async generatePdf() {
1245
- this.showSpinnerPdf(), clearTimeout(this.__to__), this.isPrinting = !0, this.__to__ = setTimeout(async () => {
1246
- try {
1247
- const { default: i } = await import("./pdf-DROWzopj.js");
1248
- await i({
1249
- domElement: document.getElementById(`vue-ui-xy_${this.uniqueId}`),
1250
- fileName: this.FINAL_CONFIG.chart.title.text || "vue-ui-xy",
1251
- options: this.FINAL_CONFIG.chart.userOptions.print
1252
- });
1253
- } catch (i) {
1254
- console.error("Error generating PDF:", i);
1255
- } finally {
1256
- this.isPrinting = !1;
1257
- }
1258
- }, 100);
1259
- },
1260
- generateCsv(i = null) {
1261
- const n = [[this.FINAL_CONFIG.chart.title.text], [this.FINAL_CONFIG.chart.title.subtitle.text], [""]], h = ["", ...this.table.head.map((r) => r.label)], f = this.table.body, l = n.concat([h]).concat(f), e = this.createCsvContent(l);
1262
- i ? i(e) : this.downloadCsv({ csvContent: e, title: this.FINAL_CONFIG.chart.title.text || "vue-ui-xy" });
1263
- },
1264
- showSpinnerImage() {
1265
- this.isImaging = !0;
1266
- },
1267
- async generateImage() {
1268
- this.showSpinnerImage(), clearTimeout(this.__to__), this.isImaging = !0, this.__to__ = setTimeout(async () => {
1269
- try {
1270
- const { default: i } = await import("./img-D3JvqNF8.js");
1271
- await i({
1272
- domElement: document.getElementById(`vue-ui-xy_${this.uniqueId}`),
1273
- fileName: this.FINAL_CONFIG.chart.title.text || "vue-ui-xy",
1274
- format: "png",
1275
- options: this.FINAL_CONFIG.chart.userOptions.print
1276
- });
1277
- } catch (i) {
1278
- console.error("Error generating image:", i);
1279
- } finally {
1280
- this.isImaging = !1;
1281
- }
1282
- }, 100);
1283
- }
1284
- }
1285
- }, ut = ["id"], dt = {
1286
- key: 1,
1287
- ref: "noTitle",
1288
- class: "vue-data-ui-no-title-space",
1289
- style: "height:36px; width: 100%; background:transparent"
1290
- }, gt = ["viewBox", "aria-label"], ft = { ref: "G" }, It = ["x", "y", "width", "height"], xt = { key: 1 }, Nt = { class: "vue-ui-xy-grid" }, mt = ["stroke", "x1", "x2", "y1", "y2"], bt = ["stroke", "x1", "x2", "y1", "y2"], Ft = { key: 1 }, _t = ["x1", "x2", "y1", "y2", "stroke"], yt = ["x1", "x2", "y1", "y2", "stroke"], At = ["x1", "x2", "y1", "y2", "stroke"], Lt = { key: 3 }, Ct = ["x1", "x2", "y1", "y2", "stroke"], St = { key: 4 }, wt = ["y1", "y2", "x1", "x2", "stroke"], kt = ["id"], Ot = ["stop-color"], Gt = ["stop-color"], vt = ["stop-color"], pt = ["id"], zt = ["stop-color"], Mt = ["stop-color"], Tt = ["stop-color"], Pt = ["id"], Vt = ["stop-color"], Rt = ["stop-color"], Bt = ["id"], Ht = ["stop-color"], Dt = ["stop-color"], Wt = ["id"], Et = ["stop-color"], Yt = ["stop-color"], Xt = ["x", "y", "height", "width", "fill"], qt = ["x", "y", "width"], Ut = ["x", "y", "height", "width", "fill"], Zt = ["x", "y", "height", "width", "rx", "fill", "stroke", "stroke-width"], Jt = ["x", "y", "height", "width", "rx", "fill", "stroke", "stroke-width"], Kt = ["width", "x", "y"], Qt = { key: 0 }, jt = ["id"], $t = ["fill"], el = ["x1", "x2", "y1", "y2", "stroke", "marker-end"], tl = ["x", "y", "font-size", "fill"], ll = ["stroke", "x1", "x2", "y1", "y2"], il = { key: 2 }, rl = ["x1", "x2", "y1", "y2", "stroke", "stroke-width", "stroke-dasharray"], al = ["x", "y", "width", "height", "stroke", "stroke-width", "stroke-linecap", "stroke-linejoin", "stroke-dasharray"], sl = {
1291
- key: 4,
1292
- ref: "scaleLabels"
1293
- }, nl = ["x1", "x2", "y1", "y2", "stroke", "stroke-width"], cl = ["fill", "font-size", "transform"], ol = ["x1", "x2", "y1", "y2", "stroke"], hl = ["x", "y", "font-size", "fill"], ul = ["x1", "x2", "y1", "y2", "stroke"], dl = ["x", "y", "font-size", "fill"], gl = ["width", "x", "y"], fl = { style: { width: "100%" } }, Il = { key: 0 }, xl = ["id"], Nl = ["fill"], ml = ["x1", "x2", "y1", "y2", "stroke", "marker-end"], bl = ["x", "y", "font-size", "fill"], Fl = ["d", "stroke", "stroke-width", "stroke-dasharray"], _l = ["d", "stroke", "stroke-width", "stroke-dasharray"], yl = { key: 5 }, Al = { key: 0 }, Ll = ["d", "fill"], Cl = ["d", "fill"], Sl = ["d", "fill"], wl = ["d", "fill"], kl = ["d", "stroke", "stroke-width", "stroke-dasharray"], Ol = ["d", "stroke", "stroke-width", "stroke-dasharray"], Gl = ["width", "x", "y"], vl = { style: { width: "100%" } }, pl = { key: 3 }, zl = ["id"], Ml = ["fill"], Tl = ["x1", "x2", "y1", "y2", "stroke", "marker-end"], Pl = ["x", "y", "font-size", "fill"], Vl = { key: 6 }, Rl = ["x", "y", "font-size", "fill"], Bl = ["x", "y", "font-size", "fill", "font-weight"], Hl = { key: 7 }, Dl = ["x", "y", "font-size", "fill"], Wl = { key: 8 }, El = ["x", "y"], Yl = ["innerHTML"], Xl = ["x", "y"], ql = ["innerHTML"], Ul = ["x1", "x2", "y1", "y2", "stroke"], Zl = { key: 9 }, Jl = ["x", "y", "font-size", "fill"], Kl = { key: 10 }, Ql = ["x", "y"], jl = ["innerHTML"], $l = ["x", "y"], ei = ["innerHTML"], ti = ["x1", "x2", "y1", "y2", "stroke"], li = ["x", "y", "font-size", "fill", "innerHTML"], ii = ["x", "y", "font-size", "fill", "innerHTML"], ri = ["x", "y", "font-size", "fill", "innerHTML"], ai = ["x", "y", "font-size", "fill", "innerHTML"], si = ["id"], ni = ["stop-color"], ci = ["stop-color"], oi = ["x", "y", "width", "height", "fill", "onMouseenter"], hi = ["font-size", "fill"], ui = ["x", "font-size", "fill"], di = {
1294
- key: 12,
1295
- ref: "timeLabels"
1296
- }, gi = ["text-anchor", "font-size", "fill", "transform", "onClick"], fi = ["text-anchor", "font-size", "fill", "transform", "innerHTML", "onClick"], Ii = { key: 13 }, xi = ["x1", "y1", "x2", "y2", "stroke", "stroke-width", "stroke-dasharray"], Ni = ["x1", "y1", "x2", "y2", "stroke", "stroke-width", "stroke-dasharray"], mi = ["y", "x", "width", "height", "fill"], bi = ["id", "x", "y", "font-size", "fill", "text-anchor"], Fi = ["x", "y", "height", "width", "onMouseenter", "onClick"], _i = {
1297
- key: 14,
1298
- style: { "pointer-events": "none" }
1299
- }, yi = ["x", "y"], Ai = ["cx", "cy", "r", "fill"], Li = {
1300
- key: 5,
1301
- class: "vue-data-ui-watermark"
1302
- }, Ci = {
1303
- class: "vue-ui-xy-tag-arrow",
1304
- height: "20",
1305
- viewBox: "0 0 10 20",
1306
- style: { position: "absolute", right: "100%", top: "50%", transform: "translateY(-50%)" }
1307
- }, Si = ["fill"], wi = ["innerHTML"], ki = {
1308
- class: "vue-ui-xy-tag-arrow",
1309
- height: "100%",
1310
- viewBox: "0 0 10 20",
1311
- style: { position: "absolute", left: "100%", top: "50%", transform: "translateY(-50%)" }
1312
- }, Oi = ["fill"], Gi = ["innerHTML"], vi = {
1313
- class: "vue-ui-xy-tag-arrow",
1314
- height: "20",
1315
- viewBox: "0 0 10 20",
1316
- style: { position: "absolute", right: "100%", top: "50%", transform: "translateY(-50%)" }
1317
- }, pi = ["fill"], zi = ["innerHTML"], Mi = {
1318
- class: "vue-ui-xy-tag-arrow",
1319
- height: "100%",
1320
- viewBox: "0 0 10 20",
1321
- style: { position: "absolute", left: "100%", top: "50%", transform: "translateY(-50%)" }
1322
- }, Ti = ["fill"], Pi = ["innerHTML"], Vi = ["onClick"], Ri = {
1323
- key: 0,
1324
- viewBox: "0 0 20 12",
1325
- height: "14",
1326
- width: "20"
1327
- }, Bi = ["stroke", "fill"], Hi = {
1328
- key: 1,
1329
- viewBox: "0 0 40 40",
1330
- height: "14",
1331
- width: "14"
1332
- }, Di = ["fill"], Wi = ["fill"], Ei = {
1333
- key: 2,
1334
- viewBox: "0 0 12 12",
1335
- height: "14",
1336
- width: "14"
1337
- }, Yi = {
1338
- key: 9,
1339
- ref: "chartLegend"
1340
- }, Xi = {
1341
- key: 10,
1342
- ref: "source",
1343
- dir: "auto"
1344
- }, qi = {
1345
- style: { display: "flex", "flex-direction": "row", gap: "6px", "align-items": "center", "padding-left": "6px" },
1346
- "data-dom-to-png-ignore": ""
1347
- }, Ui = ["innerHTML"];
1348
- function Zi(i, n, h, f, l, e) {
1349
- const r = X("PenAndPaper"), w = X("Title"), z = X("UserOptions"), O = X("PackageVersion"), N = X("Shape"), F = X("Skeleton"), v = X("Slicer"), m = X("Tooltip"), A = X("BaseIcon"), b = X("TableSparkline"), M = X("DataTable"), B = X("Accordion");
1350
- return a(), s("div", {
1351
- id: `vue-ui-xy_${l.uniqueId}`,
1352
- class: j(`vue-ui-xy ${l.isFullscreen ? "vue-data-ui-wrapper-fullscreen" : ""} ${e.FINAL_CONFIG.useCssAnimation ? "" : "vue-ui-dna"}`),
1353
- ref: "chart",
1354
- style: _(`background:${e.FINAL_CONFIG.chart.backgroundColor}; color:${e.FINAL_CONFIG.chart.color};width:100%;font-family:${e.FINAL_CONFIG.chart.fontFamily};${e.FINAL_CONFIG.responsive ? "height: 100%" : ""}`),
1355
- onMouseenter: n[7] || (n[7] = () => e.setUserOptionsVisibility(!0)),
1356
- onMouseleave: n[8] || (n[8] = () => e.setUserOptionsVisibility(!1))
1357
- }, [
1358
- e.FINAL_CONFIG.chart.userOptions.buttons.annotator && l.svgRef ? (a(), U(r, {
1359
- key: 0,
1360
- svgRef: l.svgRef,
1361
- backgroundColor: e.FINAL_CONFIG.chart.backgroundColor,
1362
- color: e.FINAL_CONFIG.chart.color,
1363
- active: l.isAnnotator,
1364
- onClose: e.toggleAnnotator
1365
- }, null, 8, ["svgRef", "backgroundColor", "color", "active", "onClose"])) : u("", !0),
1366
- e.hasOptionsNoTitle ? (a(), s("div", dt, null, 512)) : u("", !0),
1367
- e.FINAL_CONFIG.chart.title.show ? (a(), s("div", {
1368
- key: 2,
1369
- ref: "chartTitle",
1370
- class: "vue-ui-xy-title",
1371
- style: _(`font-family:${e.FINAL_CONFIG.chart.fontFamily}`)
1372
- }, [
1373
- (a(), U(w, {
1374
- key: `title_${l.titleStep}`,
1375
- config: {
1376
- title: {
1377
- cy: "xy-div-title",
1378
- ...e.FINAL_CONFIG.chart.title
1379
- },
1380
- subtitle: {
1381
- cy: "xy-div-subtitle",
1382
- ...e.FINAL_CONFIG.chart.title.subtitle
1383
- }
1384
- }
1385
- }, null, 8, ["config"]))
1386
- ], 4)) : u("", !0),
1387
- e.FINAL_CONFIG.chart.userOptions.show && e.isDataset && (l.keepUserOptionState || l.userOptionsVisible) ? (a(), U(z, {
1388
- ref: "defails",
1389
- key: `user_options_${l.step}`,
1390
- backgroundColor: e.FINAL_CONFIG.chart.backgroundColor,
1391
- color: e.FINAL_CONFIG.chart.color,
1392
- isPrinting: l.isPrinting,
1393
- isImaging: l.isImaging,
1394
- uid: l.uniqueId,
1395
- hasTooltip: e.FINAL_CONFIG.chart.userOptions.buttons.tooltip && e.FINAL_CONFIG.chart.tooltip.show,
1396
- hasPdf: e.FINAL_CONFIG.chart.userOptions.buttons.pdf,
1397
- hasXls: e.FINAL_CONFIG.chart.userOptions.buttons.csv,
1398
- hasImg: e.FINAL_CONFIG.chart.userOptions.buttons.img,
1399
- hasLabel: e.FINAL_CONFIG.chart.userOptions.buttons.labels,
1400
- hasTable: e.FINAL_CONFIG.chart.userOptions.buttons.table,
1401
- hasStack: h.dataset.length > 1 && e.FINAL_CONFIG.chart.userOptions.buttons.stack,
1402
- hasFullscreen: e.FINAL_CONFIG.chart.userOptions.buttons.fullscreen,
1403
- isStacked: l.mutableConfig.isStacked,
1404
- isFullscreen: l.isFullscreen,
1405
- chartElement: i.$refs.chart,
1406
- position: e.FINAL_CONFIG.chart.userOptions.position,
1407
- isTooltip: l.mutableConfig.showTooltip,
1408
- titles: { ...e.FINAL_CONFIG.chart.userOptions.buttonTitles },
1409
- hasAnnotator: e.FINAL_CONFIG.chart.userOptions.buttons.annotator,
1410
- isAnnotation: l.isAnnotator,
1411
- callbacks: e.FINAL_CONFIG.chart.userOptions.callbacks,
1412
- printScale: e.FINAL_CONFIG.chart.userOptions.print.scale,
1413
- onToggleFullscreen: e.toggleFullscreen,
1414
- onGeneratePdf: e.generatePdf,
1415
- onGenerateCsv: e.generateCsv,
1416
- onGenerateImage: e.generateImage,
1417
- onToggleTable: e.toggleTable,
1418
- onToggleLabels: e.toggleLabels,
1419
- onToggleStack: e.toggleStack,
1420
- onToggleTooltip: e.toggleTooltip,
1421
- onToggleAnnotator: e.toggleAnnotator,
1422
- style: _({
1423
- visibility: l.keepUserOptionState ? l.userOptionsVisible ? "visible" : "hidden" : "visible"
1424
- })
1425
- }, et({ _: 2 }, [
1426
- i.$slots.menuIcon ? {
1427
- name: "menuIcon",
1428
- fn: D(({ isOpen: t, color: o }) => [
1429
- G(i.$slots, "menuIcon", $(ee({ isOpen: t, color: o })), void 0, !0)
1430
- ]),
1431
- key: "0"
1432
- } : void 0,
1433
- i.$slots.optionTooltip ? {
1434
- name: "optionTooltip",
1435
- fn: D(() => [
1436
- G(i.$slots, "optionTooltip", {}, void 0, !0)
1437
- ]),
1438
- key: "1"
1439
- } : void 0,
1440
- i.$slots.optionPdf ? {
1441
- name: "optionPdf",
1442
- fn: D(() => [
1443
- G(i.$slots, "optionPdf", {}, void 0, !0)
1444
- ]),
1445
- key: "2"
1446
- } : void 0,
1447
- i.$slots.optionCsv ? {
1448
- name: "optionCsv",
1449
- fn: D(() => [
1450
- G(i.$slots, "optionCsv", {}, void 0, !0)
1451
- ]),
1452
- key: "3"
1453
- } : void 0,
1454
- i.$slots.optionImg ? {
1455
- name: "optionImg",
1456
- fn: D(() => [
1457
- G(i.$slots, "optionImg", {}, void 0, !0)
1458
- ]),
1459
- key: "4"
1460
- } : void 0,
1461
- i.$slots.optionTable ? {
1462
- name: "optionTable",
1463
- fn: D(() => [
1464
- G(i.$slots, "optionTable", {}, void 0, !0)
1465
- ]),
1466
- key: "5"
1467
- } : void 0,
1468
- i.$slots.optionLabels ? {
1469
- name: "optionLabels",
1470
- fn: D(() => [
1471
- G(i.$slots, "optionLabels", {}, void 0, !0)
1472
- ]),
1473
- key: "6"
1474
- } : void 0,
1475
- i.$slots.optionStack ? {
1476
- name: "optionStack",
1477
- fn: D(() => [
1478
- G(i.$slots, "optionStack", {}, void 0, !0)
1479
- ]),
1480
- key: "7"
1481
- } : void 0,
1482
- i.$slots.optionFullscreen ? {
1483
- name: "optionFullscreen",
1484
- fn: D(({ toggleFullscreen: t, isFullscreen: o }) => [
1485
- G(i.$slots, "optionFullscreen", $(ee({ toggleFullscreen: t, isFullscreen: o })), void 0, !0)
1486
- ]),
1487
- key: "8"
1488
- } : void 0,
1489
- i.$slots.optionAnnotator ? {
1490
- name: "optionAnnotator",
1491
- fn: D(({ toggleAnnotator: t, isAnnotator: o }) => [
1492
- G(i.$slots, "optionAnnotator", $(ee({ toggleAnnotator: t, isAnnotator: o })), void 0, !0)
1493
- ]),
1494
- key: "9"
1495
- } : void 0
1496
- ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasTooltip", "hasPdf", "hasXls", "hasImg", "hasLabel", "hasTable", "hasStack", "hasFullscreen", "isStacked", "isFullscreen", "chartElement", "position", "isTooltip", "titles", "hasAnnotator", "isAnnotation", "callbacks", "printScale", "onToggleFullscreen", "onGeneratePdf", "onGenerateCsv", "onGenerateImage", "onToggleTable", "onToggleLabels", "onToggleStack", "onToggleTooltip", "onToggleAnnotator", "style"])) : u("", !0),
1497
- e.isDataset ? (a(), s("svg", {
1498
- key: 4,
1499
- ref: "svgRef",
1500
- xmlns: "http://www.w3.org/2000/svg",
1501
- class: j([{ "vue-data-ui-fullscreen--on": l.isFullscreen, "vue-data-ui-fulscreen--off": !l.isFullscreen }, "vue-ui-xy-svg"]),
1502
- viewBox: l.viewBox,
1503
- style: _(`background: transparent; color:${e.FINAL_CONFIG.chart.color}; font-family:${e.FINAL_CONFIG.chart.fontFamily}`),
1504
- "aria-label": e.chartAriaLabel,
1505
- role: "img",
1506
- "aria-live": "polite",
1507
- preserveAspectRatio: "xMidYMid"
1508
- }, [
1509
- I("g", ft, [
1510
- le(O),
1511
- i.$slots["chart-background"] ? (a(), s("foreignObject", {
1512
- key: 0,
1513
- x: e.drawingArea.left + e.xPadding < 0 ? 0 : e.drawingArea.left + e.xPadding,
1514
- y: e.drawingArea.top,
1515
- width: e.drawingArea.width - (e.FINAL_CONFIG.chart.grid.position === "middle" ? 0 : e.drawingArea.width / e.maxSeries) < 0 ? 0 : e.drawingArea.width - (e.FINAL_CONFIG.chart.grid.position === "middle" ? 0 : e.drawingArea.width / e.maxSeries),
1516
- height: e.drawingArea.height < 0 ? 0 : e.drawingArea.height,
1517
- style: {
1518
- pointerEvents: "none"
1519
- }
1520
- }, [
1521
- G(i.$slots, "chart-background", {}, void 0, !0)
1522
- ], 8, It)) : u("", !0),
1523
- e.maxSeries > 0 ? (a(), s("g", xt, [
1524
- I("g", Nt, [
1525
- e.FINAL_CONFIG.chart.grid.labels.xAxis.showBaseline ? (a(), s("line", {
1526
- key: 0,
1527
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1528
- "stroke-width": "1",
1529
- x1: e.drawingArea.left + e.xPadding,
1530
- x2: e.drawingArea.right - e.xPadding,
1531
- y1: e.forceValidValue(e.drawingArea.bottom),
1532
- y2: e.forceValidValue(e.drawingArea.bottom),
1533
- "stroke-linecap": "round",
1534
- style: { animation: "none !important" }
1535
- }, null, 8, mt)) : u("", !0),
1536
- l.mutableConfig.useIndividualScale ? e.FINAL_CONFIG.chart.grid.showHorizontalLines ? (a(!0), s(d, { key: 2 }, x(e.allScales, (t) => (a(), s("g", null, [
1537
- t.id === l.selectedScale && t.yLabels.length ? (a(!0), s(d, { key: 0 }, x(t.yLabels, (o) => (a(), s("line", {
1538
- x1: e.drawingArea.left + e.xPadding,
1539
- x2: e.drawingArea.right - e.xPadding,
1540
- y1: e.forceValidValue(o.y),
1541
- y2: e.forceValidValue(o.y),
1542
- stroke: t.color,
1543
- "stroke-width": 0.5,
1544
- "stroke-linecap": "round",
1545
- style: { animation: "none !important" }
1546
- }, null, 8, yt))), 256)) : t.yLabels.length ? (a(!0), s(d, { key: 1 }, x(t.yLabels, (o) => (a(), s("line", {
1547
- x1: e.drawingArea.left + e.xPadding,
1548
- x2: e.drawingArea.right - e.xPadding,
1549
- y1: e.forceValidValue(o.y),
1550
- y2: e.forceValidValue(o.y),
1551
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1552
- "stroke-width": 0.5,
1553
- "stroke-linecap": "round",
1554
- style: { animation: "none !important" }
1555
- }, null, 8, At))), 256)) : u("", !0)
1556
- ]))), 256)) : u("", !0) : (a(), s(d, { key: 1 }, [
1557
- e.FINAL_CONFIG.chart.grid.labels.yAxis.showBaseline ? (a(), s("line", {
1558
- key: 0,
1559
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1560
- "stroke-width": "1",
1561
- x1: e.drawingArea.left + e.xPadding,
1562
- x2: e.drawingArea.left + e.xPadding,
1563
- y1: e.forceValidValue(e.drawingArea.top),
1564
- y2: e.forceValidValue(e.drawingArea.bottom),
1565
- "stroke-linecap": "round",
1566
- style: { animation: "none !important" }
1567
- }, null, 8, bt)) : u("", !0),
1568
- e.FINAL_CONFIG.chart.grid.showHorizontalLines ? (a(), s("g", Ft, [
1569
- (a(!0), s(d, null, x(e.yLabels, (t) => (a(), s("line", {
1570
- x1: e.drawingArea.left + e.xPadding,
1571
- x2: e.drawingArea.right - e.xPadding,
1572
- y1: e.forceValidValue(t.y),
1573
- y2: e.forceValidValue(t.y),
1574
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1575
- "stroke-width": 0.5,
1576
- "stroke-linecap": "round",
1577
- style: { animation: "none !important" }
1578
- }, null, 8, _t))), 256))
1579
- ])) : u("", !0)
1580
- ], 64)),
1581
- e.FINAL_CONFIG.chart.grid.showVerticalLines ? (a(), s("g", Lt, [
1582
- (a(!0), s(d, null, x(e.maxSeries + (e.FINAL_CONFIG.chart.grid.position === "middle" ? 1 : 0), (t, o) => (a(), s("line", {
1583
- key: `grid_vertical_line_${o}`,
1584
- x1: e.drawingArea.width / e.maxSeries * o + e.drawingArea.left + e.xPadding,
1585
- x2: e.drawingArea.width / e.maxSeries * o + e.drawingArea.left + e.xPadding,
1586
- y1: e.forceValidValue(e.drawingArea.top),
1587
- y2: e.forceValidValue(e.drawingArea.bottom),
1588
- "stroke-width": "0.5",
1589
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1590
- style: { animation: "none !important" }
1591
- }, null, 8, Ct))), 128))
1592
- ])) : u("", !0),
1593
- e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.show ? (a(), s("g", St, [
1594
- (a(!0), s(d, null, x(e.timeLabels, (t, o) => (a(), s("g", {
1595
- key: `time_label_${o}`
1596
- }, [
1597
- t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && (o === 0 || o === e.timeLabels.length - 1) && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && l.selectedSerieIndex === o && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo && o % Math.floor((this.slicer.end - this.slicer.start) / e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.modulo) === 0 ? (a(), s(d, { key: 0 }, [
1598
- e.FINAL_CONFIG.chart.grid.labels.xAxis.showCrosshairs ? (a(), s("line", {
1599
- key: 0,
1600
- y1: e.FINAL_CONFIG.chart.grid.labels.xAxis.crosshairsAlwaysAtZero ? e.zero - (e.zero === e.drawingArea.bottom ? 0 : e.FINAL_CONFIG.chart.grid.labels.xAxis.crosshairSize / 2) : e.drawingArea.bottom,
1601
- y2: e.FINAL_CONFIG.chart.grid.labels.xAxis.crosshairsAlwaysAtZero ? e.zero + e.FINAL_CONFIG.chart.grid.labels.xAxis.crosshairSize / (e.zero === e.drawingArea.bottom ? 1 : 2) : e.drawingArea.bottom + e.FINAL_CONFIG.chart.grid.labels.xAxis.crosshairSize,
1602
- x1: e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2,
1603
- x2: e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2,
1604
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1605
- "stroke-width": 1,
1606
- "stroke-linecap": "round",
1607
- style: { animation: "none !important" }
1608
- }, null, 8, wt)) : u("", !0)
1609
- ], 64)) : u("", !0)
1610
- ]))), 128))
1611
- ])) : u("", !0)
1612
- ]),
1613
- (a(!0), s(d, null, x(e.barSet, (t, o) => (a(), s("defs", {
1614
- key: `def_rect_${o}`
1615
- }, [
1616
- I("linearGradient", {
1617
- id: `rectGradient_pos_${o}_${l.uniqueId}`,
1618
- x2: "0%",
1619
- y2: "100%"
1620
- }, [
1621
- I("stop", {
1622
- offset: "0%",
1623
- "stop-color": t.color
1624
- }, null, 8, Ot),
1625
- I("stop", {
1626
- offset: "62%",
1627
- "stop-color": `${e.shiftHue(t.color, 0.02)}`
1628
- }, null, 8, Gt),
1629
- I("stop", {
1630
- offset: "100%",
1631
- "stop-color": `${e.shiftHue(t.color, 0.05)}`
1632
- }, null, 8, vt)
1633
- ], 8, kt),
1634
- I("linearGradient", {
1635
- id: `rectGradient_neg_${o}_${l.uniqueId}`,
1636
- x2: "0%",
1637
- y2: "100%"
1638
- }, [
1639
- I("stop", {
1640
- offset: "0%",
1641
- "stop-color": `${e.shiftHue(t.color, 0.05)}`
1642
- }, null, 8, zt),
1643
- I("stop", {
1644
- offset: "38%",
1645
- "stop-color": `${e.shiftHue(t.color, 0.02)}`
1646
- }, null, 8, Mt),
1647
- I("stop", {
1648
- offset: "100%",
1649
- "stop-color": t.color
1650
- }, null, 8, Tt)
1651
- ], 8, pt)
1652
- ]))), 128)),
1653
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s("defs", {
1654
- key: `def_plot_${o}`
1655
- }, [
1656
- I("radialGradient", {
1657
- id: `plotGradient_${o}_${l.uniqueId}`,
1658
- cx: "50%",
1659
- cy: "50%",
1660
- r: "50%",
1661
- fx: "50%",
1662
- fy: "50%"
1663
- }, [
1664
- I("stop", {
1665
- offset: "0%",
1666
- "stop-color": `${e.shiftHue(t.color, 0.05)}`
1667
- }, null, 8, Vt),
1668
- I("stop", {
1669
- offset: "100%",
1670
- "stop-color": t.color
1671
- }, null, 8, Rt)
1672
- ], 8, Pt)
1673
- ]))), 128)),
1674
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s("defs", {
1675
- key: `def_line_${o}`
1676
- }, [
1677
- I("radialGradient", {
1678
- id: `lineGradient_${o}_${l.uniqueId}`,
1679
- cx: "50%",
1680
- cy: "50%",
1681
- r: "50%",
1682
- fx: "50%",
1683
- fy: "50%"
1684
- }, [
1685
- I("stop", {
1686
- offset: "0%",
1687
- "stop-color": `${e.shiftHue(t.color, 0.05)}`
1688
- }, null, 8, Ht),
1689
- I("stop", {
1690
- offset: "100%",
1691
- "stop-color": t.color
1692
- }, null, 8, Dt)
1693
- ], 8, Bt),
1694
- I("linearGradient", {
1695
- id: `areaGradient_${o}_${l.uniqueId}`,
1696
- x1: "0%",
1697
- x2: "100%",
1698
- y1: "0%",
1699
- y2: "0%"
1700
- }, [
1701
- I("stop", {
1702
- offset: "0%",
1703
- "stop-color": `${e.setOpacity(e.shiftHue(t.color, 0.03), e.FINAL_CONFIG.line.area.opacity)}`
1704
- }, null, 8, Et),
1705
- I("stop", {
1706
- offset: "100%",
1707
- "stop-color": `${e.setOpacity(t.color, e.FINAL_CONFIG.line.area.opacity)}`
1708
- }, null, 8, Yt)
1709
- ], 8, Wt)
1710
- ]))), 128)),
1711
- (a(!0), s(d, null, x(e.highlightAreas, (t) => (a(), s("g", null, [
1712
- t.show ? (a(), s(d, { key: 0 }, [
1713
- (a(!0), s(d, null, x(t.span, (o, c) => (a(), s("g", null, [
1714
- I("rect", {
1715
- style: _({
1716
- transition: "none",
1717
- opacity: t.from + c >= l.slicer.start && t.from + c <= l.slicer.end - 1 ? 1 : 0
1718
- }),
1719
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * (t.from + c - l.slicer.start),
1720
- y: e.drawingArea.top,
1721
- height: e.drawingArea.height < 0 ? 10 : e.drawingArea.height,
1722
- width: e.drawingArea.width / e.maxSeries < 0 ? 1e-5 : e.drawingArea.width / e.maxSeries,
1723
- fill: e.setOpacity(t.color, t.opacity)
1724
- }, null, 12, Xt)
1725
- ]))), 256)),
1726
- (a(!0), s(d, null, x(t.span, (o, c) => (a(), s("g", null, [
1727
- t.caption.text && c === 0 ? (a(), s("foreignObject", {
1728
- key: 0,
1729
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * (t.from + c - l.slicer.start) - (t.caption.width === "auto" ? 0 : t.caption.width / 2 - e.drawingArea.width / e.maxSeries * t.span / 2),
1730
- y: e.drawingArea.top + t.caption.offsetY,
1731
- style: _({
1732
- overflow: "visible",
1733
- opacity: t.to >= l.slicer.start && t.from < l.slicer.end ? 1 : 0
1734
- }),
1735
- height: "1",
1736
- width: t.caption.width === "auto" ? e.drawingArea.width / e.maxSeries * t.span : t.caption.width
1737
- }, [
1738
- I("div", {
1739
- style: _(`padding:${t.caption.padding}px;text-align:${t.caption.textAlign};font-size:${t.caption.fontSize}px;color:${t.caption.color};font-weight:${t.caption.bold ? "bold" : "normal"}`)
1740
- }, V(t.caption.text), 5)
1741
- ], 12, qt)) : u("", !0)
1742
- ]))), 256))
1743
- ], 64)) : u("", !0)
1744
- ]))), 256)),
1745
- I("g", null, [
1746
- (a(!0), s(d, null, x(e.maxSeries, (t, o) => (a(), s("g", {
1747
- key: `tooltip_trap_highlighter_${o}`
1748
- }, [
1749
- I("rect", {
1750
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * o,
1751
- y: e.drawingArea.top,
1752
- height: e.drawingArea.height < 0 ? 10 : e.drawingArea.height,
1753
- width: e.drawingArea.width / e.maxSeries < 0 ? 1e-5 : e.drawingArea.width / e.maxSeries,
1754
- fill: [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(o) ? e.setOpacity(e.FINAL_CONFIG.chart.highlighter.color, e.FINAL_CONFIG.chart.highlighter.opacity) : "transparent"
1755
- }, null, 8, Ut)
1756
- ]))), 128))
1757
- ]),
1758
- e.barSet.length ? (a(!0), s(d, { key: 0 }, x(e.barSet, (t, o) => (a(), s("g", {
1759
- key: `serie_bar_${o}`,
1760
- class: j(`serie_bar_${o}`),
1761
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
1762
- }, [
1763
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s("g", {
1764
- key: `bar_plot_${o}_${g}`
1765
- }, [
1766
- e.canShowValue(c.value) ? (a(), s("rect", {
1767
- key: 0,
1768
- x: e.calcRectX(c),
1769
- y: l.mutableConfig.useIndividualScale ? e.calcIndividualRectY(c) : e.calcRectY(c),
1770
- height: l.mutableConfig.useIndividualScale ? Math.abs(e.calcIndividualHeight(c)) : Math.abs(e.calcRectHeight(c)),
1771
- width: e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap) < 0 ? 1e-5 : e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap),
1772
- rx: e.FINAL_CONFIG.bar.borderRadius,
1773
- fill: e.FINAL_CONFIG.bar.useGradient ? c.value >= 0 ? `url(#rectGradient_pos_${o}_${l.uniqueId})` : `url(#rectGradient_neg_${o}_${l.uniqueId})` : t.color,
1774
- stroke: e.FINAL_CONFIG.bar.border.useSerieColor ? t.color : e.FINAL_CONFIG.bar.border.stroke,
1775
- "stroke-width": e.FINAL_CONFIG.bar.border.strokeWidth
1776
- }, null, 8, Zt)) : u("", !0),
1777
- e.canShowValue(c.value) && i.$slots.pattern ? (a(), s("rect", {
1778
- key: 1,
1779
- x: e.calcRectX(c),
1780
- y: l.mutableConfig.useIndividualScale ? e.calcIndividualRectY(c) : e.calcRectY(c),
1781
- height: l.mutableConfig.useIndividualScale ? Math.abs(e.calcIndividualHeight(c)) : Math.abs(e.calcRectHeight(c)),
1782
- width: e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap) < 0 ? 1e-5 : e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap),
1783
- rx: e.FINAL_CONFIG.bar.borderRadius,
1784
- fill: `url(#pattern_${l.uniqueId}_${t.slotAbsoluteIndex})`,
1785
- stroke: e.FINAL_CONFIG.bar.border.useSerieColor ? t.color : e.FINAL_CONFIG.bar.border.stroke,
1786
- "stroke-width": e.FINAL_CONFIG.bar.border.strokeWidth
1787
- }, null, 8, Jt)) : u("", !0),
1788
- c.comment && e.FINAL_CONFIG.chart.comments.show ? (a(), s("foreignObject", {
1789
- key: 2,
1790
- style: { overflow: "visible" },
1791
- height: "12",
1792
- width: (e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap) < 0 ? 1e-5 : e.calcRectWidth() - (l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? 0 : e.barPeriodGap) / 2) + e.FINAL_CONFIG.chart.comments.width,
1793
- x: e.calcRectX(c) - e.FINAL_CONFIG.chart.comments.width / 2 + e.FINAL_CONFIG.chart.comments.offsetX,
1794
- y: e.checkNaN(c.y) + e.FINAL_CONFIG.chart.comments.offsetY + 6
1795
- }, [
1796
- G(i.$slots, "plot-comment", {
1797
- plot: { ...c, color: t.color, seriesIndex: o, datapointIndex: g }
1798
- }, void 0, !0)
1799
- ], 8, Kt)) : u("", !0)
1800
- ]))), 128)),
1801
- Object.hasOwn(t, "useProgression") && t.useProgression === !0 && !isNaN(e.calcLinearProgression(t.plots).trend) ? (a(), s("g", Qt, [
1802
- I("defs", null, [
1803
- I("marker", {
1804
- id: `bar_arrow_${o}`,
1805
- markerWidth: 7,
1806
- markerHeight: 7,
1807
- refX: "0",
1808
- refY: 7 / 2,
1809
- orient: "auto"
1810
- }, [
1811
- I("polygon", {
1812
- points: `0 0, 7 ${7 / 2}, 0 7`,
1813
- fill: t.color
1814
- }, null, 8, $t)
1815
- ], 8, jt)
1816
- ]),
1817
- t.plots.length > 1 ? (a(), s("line", {
1818
- key: 0,
1819
- x1: e.calcLinearProgression(t.plots).x1 + e.calcRectWidth(),
1820
- x2: e.calcLinearProgression(t.plots).x2 + e.calcRectWidth(),
1821
- y1: e.forceValidValue(e.calcLinearProgression(t.plots).y1),
1822
- y2: e.forceValidValue(e.calcLinearProgression(t.plots).y2),
1823
- "stroke-width": 1,
1824
- stroke: t.color,
1825
- "stroke-dasharray": 2,
1826
- "marker-end": `url(#bar_arrow_${o})`
1827
- }, null, 8, el)) : u("", !0),
1828
- t.plots.length > 1 ? (a(), s("text", {
1829
- key: 1,
1830
- "text-anchor": "middle",
1831
- x: e.calcLinearProgression(t.plots).x2 + e.calcRectWidth(),
1832
- y: e.calcLinearProgression(t.plots).y2 - 6,
1833
- "font-size": l.fontSizes.plotLabels,
1834
- fill: t.color
1835
- }, V(e.dataLabel({
1836
- v: e.calcLinearProgression(t.plots).trend * 100,
1837
- s: "%",
1838
- r: 2
1839
- })), 9, tl)) : u("", !0)
1840
- ])) : u("", !0)
1841
- ], 6))), 128)) : u("", !0),
1842
- !l.mutableConfig.useIndividualScale && e.FINAL_CONFIG.chart.grid.labels.zeroLine.show ? (a(), s("line", {
1843
- key: 1,
1844
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1845
- "stroke-width": "1",
1846
- x1: e.drawingArea.left + e.xPadding,
1847
- x2: e.drawingArea.right - e.xPadding,
1848
- y1: e.forceValidValue(e.zero),
1849
- y2: e.forceValidValue(e.zero),
1850
- "stroke-linecap": "round",
1851
- style: { animation: "none !important" }
1852
- }, null, 8, ll)) : u("", !0),
1853
- e.FINAL_CONFIG.chart.highlighter.useLine && (![null, void 0].includes(l.selectedSerieIndex) || ![null, void 0].includes(l.selectedMinimapIndex)) ? (a(), s("g", il, [
1854
- I("line", {
1855
- x1: e.drawingArea.left + e.drawingArea.width / e.maxSeries * ((l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)) + e.drawingArea.width / e.maxSeries / 2,
1856
- x2: e.drawingArea.left + e.drawingArea.width / e.maxSeries * ((l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)) + e.drawingArea.width / e.maxSeries / 2,
1857
- y1: e.forceValidValue(e.drawingArea.top),
1858
- y2: e.forceValidValue(e.drawingArea.bottom),
1859
- stroke: e.FINAL_CONFIG.chart.highlighter.color,
1860
- "stroke-width": e.FINAL_CONFIG.chart.highlighter.lineWidth,
1861
- "stroke-dasharray": e.FINAL_CONFIG.chart.highlighter.lineDasharray,
1862
- "stroke-linecap": "round",
1863
- style: { transition: "none !important", animation: "none !important", "pointer-events": "none" }
1864
- }, null, 8, rl)
1865
- ])) : u("", !0),
1866
- e.FINAL_CONFIG.chart.grid.frame.show ? (a(), s("rect", {
1867
- key: 3,
1868
- style: { pointerEvents: "none", transition: "none", animation: "none !important" },
1869
- x: e.drawingArea.left + e.xPadding < 0 ? 0 : e.drawingArea.left + e.xPadding,
1870
- y: e.drawingArea.top,
1871
- width: e.drawingArea.width - (e.FINAL_CONFIG.chart.grid.position === "middle" ? 0 : e.drawingArea.width / e.maxSeries) < 0 ? 0 : e.drawingArea.width - (e.FINAL_CONFIG.chart.grid.position === "middle" ? 0 : e.drawingArea.width / e.maxSeries),
1872
- height: e.drawingArea.height < 0 ? 0 : e.drawingArea.height,
1873
- fill: "transparent",
1874
- stroke: e.FINAL_CONFIG.chart.grid.frame.stroke,
1875
- "stroke-width": e.FINAL_CONFIG.chart.grid.frame.strokeWidth,
1876
- "stroke-linecap": e.FINAL_CONFIG.chart.grid.frame.strokeLinecap,
1877
- "stroke-linejoin": e.FINAL_CONFIG.chart.grid.frame.strokeLinejoin,
1878
- "stroke-dasharray": e.FINAL_CONFIG.chart.grid.frame.strokeDasharray
1879
- }, null, 8, al)) : u("", !0),
1880
- e.FINAL_CONFIG.chart.grid.labels.show ? (a(), s("g", sl, [
1881
- l.mutableConfig.useIndividualScale ? (a(), s(d, { key: 0 }, [
1882
- (a(!0), s(d, null, x(e.allScales, (t) => (a(), s("g", null, [
1883
- I("line", {
1884
- x1: t.x + e.xPadding,
1885
- x2: t.x + e.xPadding,
1886
- y1: l.mutableConfig.isStacked ? e.forceValidValue(e.drawingArea.bottom - t.yOffset - t.individualHeight) : e.forceValidValue(e.drawingArea.top),
1887
- y2: l.mutableConfig.isStacked ? e.forceValidValue(e.drawingArea.bottom - t.yOffset) : e.forceValidValue(e.drawingArea.bottom),
1888
- stroke: t.color,
1889
- "stroke-width": e.FINAL_CONFIG.chart.grid.stroke,
1890
- "stroke-linecap": "round",
1891
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.3 : 1};transition:opacity 0.2s ease-in-out; animation: none !important`)
1892
- }, null, 12, nl)
1893
- ]))), 256)),
1894
- (a(!0), s(d, null, x(e.allScales, (t) => (a(), s("g", {
1895
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.3 : 1};transition:opacity 0.2s ease-in-out`)
1896
- }, [
1897
- I("text", {
1898
- fill: t.color,
1899
- "font-size": l.fontSizes.dataLabels,
1900
- "text-anchor": "middle",
1901
- transform: `translate(${t.x - e.FINAL_CONFIG.chart.grid.labels.yAxis.labelWidth + 5 + e.xPadding + e.FINAL_CONFIG.chart.grid.labels.yAxis.scaleLabelOffsetX}, ${l.mutableConfig.isStacked ? e.drawingArea.bottom - t.yOffset - t.individualHeight / 2 : e.drawingArea.top + e.drawingArea.height / 2}) rotate(-90)`
1902
- }, V(t.name) + " " + V(t.scaleLabel && t.unique && t.scaleLabel !== t.id ? `- ${t.scaleLabel}` : ""), 9, cl),
1903
- (a(!0), s(d, null, x(t.yLabels, (o, c) => (a(), s(d, null, [
1904
- e.FINAL_CONFIG.chart.grid.labels.yAxis.showCrosshairs ? (a(), s("line", {
1905
- key: 0,
1906
- x1: t.x + 3 + e.xPadding - e.FINAL_CONFIG.chart.grid.labels.yAxis.crosshairSize,
1907
- x2: t.x + e.xPadding,
1908
- y1: e.forceValidValue(o.y),
1909
- y2: e.forceValidValue(o.y),
1910
- stroke: t.color,
1911
- "stroke-width": 1,
1912
- "stroke-linecap": "round",
1913
- style: { animation: "none !important" }
1914
- }, null, 8, ol)) : u("", !0)
1915
- ], 64))), 256)),
1916
- (a(!0), s(d, null, x(t.yLabels, (o, c) => (a(), s("text", {
1917
- x: t.x - l.fontSizes.dataLabels / 2 + e.xPadding + e.FINAL_CONFIG.chart.grid.labels.yAxis.scaleValueOffsetX,
1918
- y: e.forceValidValue(o.y) + l.fontSizes.dataLabels / 3,
1919
- "font-size": l.fontSizes.dataLabels,
1920
- "text-anchor": "end",
1921
- fill: t.color
1922
- }, V(e.applyDataLabel(
1923
- e.FINAL_CONFIG.chart.grid.labels.yAxis.formatter,
1924
- o.value,
1925
- e.dataLabel({
1926
- p: o.prefix,
1927
- v: o.value,
1928
- s: o.suffix,
1929
- r: 1
1930
- }),
1931
- { datapoint: o.datapoint, seriesIndex: c }
1932
- )), 9, hl))), 256))
1933
- ], 4))), 256))
1934
- ], 64)) : (a(!0), s(d, { key: 1 }, x(e.yLabels, (t, o) => (a(), s("g", {
1935
- key: `yLabel_${o}`
1936
- }, [
1937
- e.canShowValue(t) && t.value >= e.niceScale.min && t.value <= e.niceScale.max && e.FINAL_CONFIG.chart.grid.labels.yAxis.showCrosshairs ? (a(), s("line", {
1938
- key: 0,
1939
- x1: e.drawingArea.left + e.xPadding,
1940
- x2: e.drawingArea.left - e.FINAL_CONFIG.chart.grid.labels.yAxis.crosshairSize + e.xPadding,
1941
- y1: e.forceValidValue(t.y),
1942
- y2: e.forceValidValue(t.y),
1943
- stroke: e.FINAL_CONFIG.chart.grid.stroke,
1944
- "stroke-width": "1",
1945
- "stroke-linecap": "round",
1946
- style: { animation: "none !important" }
1947
- }, null, 8, ul)) : u("", !0),
1948
- t.value >= e.niceScale.min && t.value <= e.niceScale.max ? (a(), s("text", {
1949
- key: 1,
1950
- x: e.drawingArea.left - 7 + e.xPadding,
1951
- y: e.checkNaN(t.y + l.fontSizes.dataLabels / 3),
1952
- "font-size": l.fontSizes.dataLabels,
1953
- "text-anchor": "end",
1954
- fill: e.FINAL_CONFIG.chart.grid.labels.color
1955
- }, V(e.canShowValue(t.value) ? e.applyDataLabel(
1956
- e.FINAL_CONFIG.chart.grid.labels.yAxis.formatter,
1957
- t.value,
1958
- e.dataLabel({
1959
- p: t.prefix,
1960
- v: t.value,
1961
- s: t.suffix,
1962
- r: 1
1963
- })
1964
- ) : ""), 9, dl)) : u("", !0)
1965
- ]))), 128))
1966
- ], 512)) : u("", !0),
1967
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s("g", {
1968
- key: `serie_plot_${o}`,
1969
- class: j(`serie_plot_${o}`),
1970
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
1971
- }, [
1972
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s("g", {
1973
- key: `circle_plot_${o}_${g}`
1974
- }, [
1975
- c && e.canShowValue(c.value) ? (a(), U(N, {
1976
- key: 0,
1977
- shape: ["triangle", "square", "diamond", "pentagon", "hexagon", "star"].includes(t.shape) ? t.shape : "circle",
1978
- color: e.FINAL_CONFIG.plot.useGradient ? `url(#plotGradient_${o}_${l.uniqueId})` : e.FINAL_CONFIG.plot.dot.useSerieColor ? t.color : e.FINAL_CONFIG.plot.dot.fill,
1979
- plot: { x: e.checkNaN(c.x), y: e.checkNaN(c.y) },
1980
- radius: l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g ? (l.plotRadii.plot || 6) * 1.5 : l.plotRadii.plot || 6,
1981
- stroke: e.FINAL_CONFIG.plot.dot.useSerieColor ? e.FINAL_CONFIG.chart.backgroundColor : t.color,
1982
- strokeWidth: e.FINAL_CONFIG.plot.dot.strokeWidth
1983
- }, null, 8, ["shape", "color", "plot", "radius", "stroke", "strokeWidth"])) : u("", !0),
1984
- c.comment && e.FINAL_CONFIG.chart.comments.show ? (a(), s("foreignObject", {
1985
- key: 1,
1986
- style: { overflow: "visible" },
1987
- height: "12",
1988
- width: e.FINAL_CONFIG.chart.comments.width,
1989
- x: c.x - e.FINAL_CONFIG.chart.comments.width / 2 + e.FINAL_CONFIG.chart.comments.offsetX,
1990
- y: c.y + e.FINAL_CONFIG.chart.comments.offsetY + 6
1991
- }, [
1992
- I("div", fl, [
1993
- G(i.$slots, "plot-comment", {
1994
- plot: { ...c, color: t.color, seriesIndex: o, datapointIndex: g }
1995
- }, void 0, !0)
1996
- ])
1997
- ], 8, gl)) : u("", !0)
1998
- ]))), 128)),
1999
- Object.hasOwn(t, "useProgression") && t.useProgression === !0 && !isNaN(e.calcLinearProgression(t.plots).trend) ? (a(), s("g", Il, [
2000
- I("defs", null, [
2001
- I("marker", {
2002
- id: `plot_arrow_${o}`,
2003
- markerWidth: 7,
2004
- markerHeight: 7,
2005
- refX: "0",
2006
- refY: 7 / 2,
2007
- orient: "auto"
2008
- }, [
2009
- I("polygon", {
2010
- points: `0 0, 7 ${7 / 2}, 0 7`,
2011
- fill: t.color
2012
- }, null, 8, Nl)
2013
- ], 8, xl)
2014
- ]),
2015
- t.plots.length > 1 ? (a(), s("line", {
2016
- key: 0,
2017
- x1: e.calcLinearProgression(t.plots).x1,
2018
- x2: e.calcLinearProgression(t.plots).x2,
2019
- y1: e.forceValidValue(e.calcLinearProgression(t.plots).y1),
2020
- y2: e.forceValidValue(e.calcLinearProgression(t.plots).y2),
2021
- "stroke-width": 1,
2022
- stroke: t.color,
2023
- "stroke-dasharray": 2,
2024
- "marker-end": `url(#plot_arrow_${o})`
2025
- }, null, 8, ml)) : u("", !0),
2026
- t.plots.length > 1 ? (a(), s("text", {
2027
- key: 1,
2028
- "text-anchor": "middle",
2029
- x: e.calcLinearProgression(t.plots).x2,
2030
- y: e.calcLinearProgression(t.plots).y2 - 6,
2031
- "font-size": l.fontSizes.plotLabels,
2032
- fill: t.color
2033
- }, V(e.dataLabel({
2034
- v: e.calcLinearProgression(t.plots).trend * 100,
2035
- s: "%",
2036
- r: 2
2037
- })), 9, bl)) : u("", !0)
2038
- ])) : u("", !0)
2039
- ], 6))), 128)),
2040
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s("g", {
2041
- key: `serie_line_${o}`,
2042
- class: j(`serie_line_${o}`),
2043
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2044
- }, [
2045
- t.smooth && t.plots.length > 1 && t.curve ? (a(), s("path", {
2046
- key: 0,
2047
- d: `M${t.curve}`,
2048
- stroke: e.FINAL_CONFIG.chart.backgroundColor,
2049
- "stroke-width": e.FINAL_CONFIG.line.strokeWidth + 1,
2050
- "stroke-dasharray": t.dashed ? e.FINAL_CONFIG.line.strokeWidth * 2 : 0,
2051
- fill: "none"
2052
- }, null, 8, Fl)) : t.plots.length > 1 && t.straight ? (a(), s("path", {
2053
- key: 1,
2054
- d: `M${t.straight}`,
2055
- stroke: e.FINAL_CONFIG.chart.backgroundColor,
2056
- "stroke-width": e.FINAL_CONFIG.line.strokeWidth + 1,
2057
- "stroke-dasharray": t.dashed ? e.FINAL_CONFIG.line.strokeWidth * 2 : 0,
2058
- fill: "none",
2059
- "stroke-linecap": "round",
2060
- "stroke-linejoin": "round"
2061
- }, null, 8, _l)) : u("", !0)
2062
- ], 6))), 128)),
2063
- i.$slots.pattern ? (a(), s("defs", yl, [
2064
- (a(!0), s(d, null, x(e.safeDataset, (t, o) => G(i.$slots, "pattern", se({
2065
- key: `serie_pattern_slot_${o}`
2066
- }, { ref_for: !0 }, { ...t, seriesIndex: t.slotAbsoluteIndex, patternId: `pattern_${l.uniqueId}_${o}` }), void 0, !0)), 128))
2067
- ])) : u("", !0),
2068
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s("g", {
2069
- key: `serie_line_${o}`,
2070
- class: j(`serie_line_${o}`),
2071
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2072
- }, [
2073
- t.useArea && t.plots.length > 1 ? (a(), s("g", Al, [
2074
- t.smooth ? (a(!0), s(d, { key: 0 }, x(t.curveAreas, (c, g) => (a(), s(d, { key: g }, [
2075
- I("path", {
2076
- d: c,
2077
- fill: e.FINAL_CONFIG.line.area.useGradient ? `url(#areaGradient_${o}_${l.uniqueId})` : e.setOpacity(t.color, e.FINAL_CONFIG.line.area.opacity)
2078
- }, null, 8, Ll),
2079
- i.$slots.pattern ? (a(), s("path", {
2080
- key: 0,
2081
- d: c,
2082
- fill: `url(#pattern_${l.uniqueId}_${t.slotAbsoluteIndex})`
2083
- }, null, 8, Cl)) : u("", !0)
2084
- ], 64))), 128)) : (a(!0), s(d, { key: 1 }, x(t.area.split(";"), (c, g) => (a(), s(d, { key: g }, [
2085
- I("path", {
2086
- d: `M${c}Z`,
2087
- fill: e.FINAL_CONFIG.line.area.useGradient ? `url(#areaGradient_${o}_${l.uniqueId})` : e.setOpacity(t.color, e.FINAL_CONFIG.line.area.opacity)
2088
- }, null, 8, Sl),
2089
- i.$slots.pattern ? (a(), s("path", {
2090
- key: 0,
2091
- d: `M${c}Z`,
2092
- fill: `url(#pattern_${l.uniqueId}_${t.slotAbsoluteIndex})`
2093
- }, null, 8, wl)) : u("", !0)
2094
- ], 64))), 128))
2095
- ])) : u("", !0),
2096
- t.smooth && t.plots.length > 1 && t.curve ? (a(), s("path", {
2097
- key: 1,
2098
- d: `M${t.curve}`,
2099
- stroke: t.color,
2100
- "stroke-width": e.FINAL_CONFIG.line.strokeWidth,
2101
- "stroke-dasharray": t.dashed ? e.FINAL_CONFIG.line.strokeWidth * 2 : 0,
2102
- fill: "none",
2103
- "stroke-linecap": "round"
2104
- }, null, 8, kl)) : t.plots.length > 1 && t.straight ? (a(), s("path", {
2105
- key: 2,
2106
- d: `M${t.straight}`,
2107
- stroke: t.color,
2108
- "stroke-width": e.FINAL_CONFIG.line.strokeWidth,
2109
- "stroke-dasharray": t.dashed ? e.FINAL_CONFIG.line.strokeWidth * 2 : 0,
2110
- fill: "none",
2111
- "stroke-linecap": "round",
2112
- "stroke-linejoin": "round"
2113
- }, null, 8, Ol)) : u("", !0),
2114
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2115
- key: `circle_line_${o}_${g}`
2116
- }, [
2117
- !e.optimize.linePlot && c && e.canShowValue(c.value) || e.optimize.linePlot && c && e.canShowValue(c.value) && (l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g) ? (a(), U(N, {
2118
- key: 0,
2119
- shape: ["triangle", "square", "diamond", "pentagon", "hexagon", "star"].includes(t.shape) ? t.shape : "circle",
2120
- color: e.FINAL_CONFIG.line.useGradient ? `url(#lineGradient_${o}_${l.uniqueId})` : e.FINAL_CONFIG.line.dot.useSerieColor ? t.color : e.FINAL_CONFIG.line.dot.fill,
2121
- plot: { x: e.checkNaN(c.x), y: e.checkNaN(c.y) },
2122
- radius: l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g ? (l.plotRadii.line || 6) * 1.5 : l.plotRadii.line || 6,
2123
- stroke: e.FINAL_CONFIG.line.dot.useSerieColor ? e.FINAL_CONFIG.chart.backgroundColor : t.color,
2124
- strokeWidth: e.FINAL_CONFIG.line.dot.strokeWidth
2125
- }, null, 8, ["shape", "color", "plot", "radius", "stroke", "strokeWidth"])) : u("", !0),
2126
- c.comment && e.FINAL_CONFIG.chart.comments.show ? (a(), s("foreignObject", {
2127
- key: 1,
2128
- style: { overflow: "visible" },
2129
- height: "12",
2130
- width: e.FINAL_CONFIG.chart.comments.width,
2131
- x: c.x - e.FINAL_CONFIG.chart.comments.width / 2 + e.FINAL_CONFIG.chart.comments.offsetX,
2132
- y: c.y + e.FINAL_CONFIG.chart.comments.offsetY + 6
2133
- }, [
2134
- I("div", vl, [
2135
- G(i.$slots, "plot-comment", {
2136
- plot: { ...c, color: t.color, seriesIndex: o, datapointIndex: g }
2137
- }, void 0, !0)
2138
- ])
2139
- ], 8, Gl)) : u("", !0)
2140
- ], 64))), 128)),
2141
- Object.hasOwn(t, "useProgression") && t.useProgression === !0 && !isNaN(e.calcLinearProgression(t.plots).trend) ? (a(), s("g", pl, [
2142
- I("defs", null, [
2143
- I("marker", {
2144
- id: `line_arrow_${o}`,
2145
- markerWidth: 7,
2146
- markerHeight: 7,
2147
- refX: "0",
2148
- refY: 7 / 2,
2149
- orient: "auto"
2150
- }, [
2151
- I("polygon", {
2152
- points: `0 0, 7 ${7 / 2}, 0 7`,
2153
- fill: t.color
2154
- }, null, 8, Ml)
2155
- ], 8, zl)
2156
- ]),
2157
- t.plots.length > 1 ? (a(), s("line", {
2158
- key: 0,
2159
- x1: e.calcLinearProgression(t.plots).x1,
2160
- x2: e.calcLinearProgression(t.plots).x2,
2161
- y1: e.forceValidValue(e.calcLinearProgression(t.plots).y1),
2162
- y2: e.forceValidValue(e.calcLinearProgression(t.plots).y2),
2163
- "stroke-width": 1,
2164
- stroke: t.color,
2165
- "stroke-dasharray": 2,
2166
- "marker-end": `url(#line_arrow_${o})`
2167
- }, null, 8, Tl)) : u("", !0),
2168
- t.plots.length > 1 ? (a(), s("text", {
2169
- key: 1,
2170
- "text-anchor": "middle",
2171
- x: e.calcLinearProgression(t.plots).x2,
2172
- y: e.calcLinearProgression(t.plots).y2 - 6,
2173
- "font-size": l.fontSizes.plotLabels,
2174
- fill: t.color
2175
- }, V(e.dataLabel({
2176
- v: e.calcLinearProgression(t.plots).trend * 100,
2177
- s: "%",
2178
- r: 2
2179
- })), 9, Pl)) : u("", !0)
2180
- ])) : u("", !0)
2181
- ], 6))), 128)),
2182
- (e.FINAL_CONFIG.bar.labels.show || e.FINAL_CONFIG.bar.serieName.show) && l.mutableConfig.dataLabels.show ? (a(), s("g", Vl, [
2183
- (a(!0), s(d, null, x(e.barSet, (t, o) => (a(), s(d, {
2184
- key: `xLabel_bar_${o}`
2185
- }, [
2186
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2187
- key: `xLabel_bar_${o}_${g}`
2188
- }, [
2189
- c && (!Object.hasOwn(t, "dataLabels") || t.dataLabels === !0 || l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g) && e.FINAL_CONFIG.bar.labels.show ? (a(), s("text", {
2190
- key: 0,
2191
- x: l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? c.x + e.slot.line / 2 : e.calcRectX(c) + e.calcRectWidth() / 2 - e.barPeriodGap / 2,
2192
- y: e.checkNaN(c.y) + (c.value >= 0 ? e.FINAL_CONFIG.bar.labels.offsetY : -e.FINAL_CONFIG.bar.labels.offsetY * 3),
2193
- "text-anchor": "middle",
2194
- "font-size": l.fontSizes.plotLabels,
2195
- fill: e.FINAL_CONFIG.bar.labels.color,
2196
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2197
- }, V(e.canShowValue(c.value) ? e.applyDataLabel(
2198
- e.FINAL_CONFIG.bar.labels.formatter,
2199
- c.value,
2200
- e.dataLabel({
2201
- p: t.prefix || e.FINAL_CONFIG.chart.labels.prefix,
2202
- v: c.value,
2203
- s: t.suffix || e.FINAL_CONFIG.chart.labels.suffix,
2204
- r: e.FINAL_CONFIG.bar.labels.rounding
2205
- }),
2206
- {
2207
- datapoint: c,
2208
- serie: t
2209
- }
2210
- ) : ""), 13, Rl)) : u("", !0),
2211
- c && e.FINAL_CONFIG.bar.serieName.show ? (a(), s("text", {
2212
- key: 1,
2213
- x: l.mutableConfig.useIndividualScale && l.mutableConfig.isStacked ? c.x + e.slot.line / 2 : c.x + e.calcRectWidth() * 1.1,
2214
- y: c.y + (c.value > 0 ? e.FINAL_CONFIG.bar.serieName.offsetY : -e.FINAL_CONFIG.bar.serieName.offsetY * 3),
2215
- "text-anchor": "middle",
2216
- "font-size": l.fontSizes.plotLabels,
2217
- fill: e.FINAL_CONFIG.bar.serieName.useSerieColor ? t.color : e.FINAL_CONFIG.bar.serieName.color,
2218
- "font-weight": e.FINAL_CONFIG.bar.serieName.bold ? "bold" : "normal",
2219
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2220
- }, V(e.FINAL_CONFIG.bar.serieName.useAbbreviation ? e.abbreviate({ source: t.name, length: e.FINAL_CONFIG.bar.serieName.abbreviationSize }) : t.name), 13, Bl)) : u("", !0)
2221
- ], 64))), 128))
2222
- ], 64))), 128))
2223
- ])) : u("", !0),
2224
- e.FINAL_CONFIG.plot.labels.show && l.mutableConfig.dataLabels.show ? (a(), s("g", Hl, [
2225
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s(d, {
2226
- key: `xLabel_plot_${o}`
2227
- }, [
2228
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2229
- key: `xLabel_plot_${o}_${g}`
2230
- }, [
2231
- c && !Object.hasOwn(t, "dataLabels") || t.dataLabels === !0 || l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g ? (a(), s("text", {
2232
- key: 0,
2233
- x: c.x,
2234
- y: c.y + e.FINAL_CONFIG.plot.labels.offsetY,
2235
- "text-anchor": "middle",
2236
- "font-size": l.fontSizes.plotLabels,
2237
- fill: e.FINAL_CONFIG.plot.labels.color,
2238
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2239
- }, V(e.canShowValue(c.value) ? e.applyDataLabel(
2240
- e.FINAL_CONFIG.plot.labels.formatter,
2241
- c.value,
2242
- e.dataLabel({
2243
- p: t.prefix || e.FINAL_CONFIG.chart.labels.prefix,
2244
- v: c.value,
2245
- s: t.suffix || e.FINAL_CONFIG.chart.labels.suffix,
2246
- r: e.FINAL_CONFIG.plot.labels.rounding
2247
- }),
2248
- {
2249
- datapoint: c,
2250
- serie: t
2251
- }
2252
- ) : ""), 13, Dl)) : u("", !0)
2253
- ], 64))), 128))
2254
- ], 64))), 128))
2255
- ])) : (a(), s("g", Wl, [
2256
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s(d, {
2257
- key: `xLabel_plot_${o}`
2258
- }, [
2259
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2260
- key: `xLabel_plot_${o}_${g}`
2261
- }, [
2262
- e.FINAL_CONFIG.plot.tag.followValue ? (a(), s(d, { key: 1 }, [
2263
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag ? (a(), s("line", {
2264
- key: 0,
2265
- class: "vue-ui-xy-tag-plot",
2266
- x1: e.drawingArea.left,
2267
- x2: e.drawingArea.right,
2268
- y1: c.y,
2269
- y2: c.y,
2270
- "stroke-width": 1,
2271
- "stroke-linecap": "round",
2272
- "stroke-dasharray": "2",
2273
- stroke: t.color
2274
- }, null, 8, Ul)) : u("", !0)
2275
- ], 64)) : (a(), s(d, { key: 0 }, [
2276
- c && g === 0 && t.useTag && t.useTag === "start" ? (a(), s("foreignObject", {
2277
- key: 0,
2278
- x: c.x,
2279
- y: c.y - 20,
2280
- height: 24,
2281
- width: "150",
2282
- style: _(`overflow: visible; opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2283
- }, [
2284
- I("div", {
2285
- style: _(`padding: 3px; background:${e.setOpacity(t.color, 80)};color:${e.adaptColorToBackground(t.color)};width:fit-content;font-size:${l.fontSizes.plotLabels}px;border-radius: 2px;`),
2286
- innerHTML: e.applyDataLabel(
2287
- e.FINAL_CONFIG.plot.tag.formatter,
2288
- c.value,
2289
- t.name,
2290
- {
2291
- datapoint: c,
2292
- seriesIndex: g,
2293
- serieName: t.name
2294
- }
2295
- )
2296
- }, null, 12, Yl)
2297
- ], 12, El)) : u("", !0),
2298
- c && g === t.plots.length - 1 && t.useTag && t.useTag === "end" ? (a(), s("foreignObject", {
2299
- key: 1,
2300
- x: c.x - t.name.length * (l.fontSizes.plotLabels / 2),
2301
- y: c.y - 20,
2302
- height: 24,
2303
- width: "150",
2304
- style: _(`overflow: visible; opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2305
- }, [
2306
- I("div", {
2307
- style: _(`padding: 3px; background:${e.setOpacity(t.color, 80)};color:${e.adaptColorToBackground(t.color)};width:fit-content;font-size:${l.fontSizes.plotLabels}px;border-radius: 2px;`),
2308
- innerHTML: e.applyDataLabel(
2309
- e.FINAL_CONFIG.plot.tag.formatter,
2310
- c.value,
2311
- t.name,
2312
- {
2313
- datapoint: c,
2314
- seriesIndex: g,
2315
- serieName: t.name
2316
- }
2317
- )
2318
- }, null, 12, ql)
2319
- ], 12, Xl)) : u("", !0)
2320
- ], 64))
2321
- ], 64))), 128))
2322
- ], 64))), 128))
2323
- ])),
2324
- e.FINAL_CONFIG.line.labels.show && l.mutableConfig.dataLabels.show ? (a(), s("g", Zl, [
2325
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s(d, {
2326
- key: `xLabel_line_${o}`
2327
- }, [
2328
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2329
- key: `xLabel_line_${o}_${g}`
2330
- }, [
2331
- c && !Object.hasOwn(t, "dataLabels") || t.dataLabels === !0 || l.selectedSerieIndex !== null && l.selectedSerieIndex === g || l.selectedMinimapIndex !== null && l.selectedMinimapIndex === g ? (a(), s("text", {
2332
- key: 0,
2333
- x: c.x,
2334
- y: c.y + (c.value >= 0 ? e.FINAL_CONFIG.line.labels.offsetY : -e.FINAL_CONFIG.line.labels.offsetY * 3),
2335
- "text-anchor": "middle",
2336
- "font-size": l.fontSizes.plotLabels,
2337
- fill: e.FINAL_CONFIG.line.labels.color,
2338
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2339
- }, V(e.canShowValue(c.value) ? e.applyDataLabel(
2340
- e.FINAL_CONFIG.line.labels.formatter,
2341
- c.value,
2342
- e.dataLabel({
2343
- p: t.prefix || e.FINAL_CONFIG.chart.labels.prefix,
2344
- v: c.value,
2345
- s: t.suffix || e.FINAL_CONFIG.chart.labels.suffix,
2346
- r: e.FINAL_CONFIG.line.labels.rounding
2347
- }),
2348
- {
2349
- datapoint: c,
2350
- serie: t
2351
- }
2352
- ) : ""), 13, Jl)) : u("", !0)
2353
- ], 64))), 128))
2354
- ], 64))), 128))
2355
- ])) : (a(), s("g", Kl, [
2356
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s(d, {
2357
- key: `xLabel_line_${o}`
2358
- }, [
2359
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2360
- key: `xLabel_line_${o}_${g}`
2361
- }, [
2362
- e.FINAL_CONFIG.line.tag.followValue ? (a(), s(d, { key: 1 }, [
2363
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag ? (a(), s("line", {
2364
- key: 0,
2365
- class: "vue-ui-xy-tag-line",
2366
- x1: e.drawingArea.left,
2367
- x2: e.drawingArea.right,
2368
- y1: c.y,
2369
- y2: c.y,
2370
- "stroke-width": 1,
2371
- "stroke-linecap": "round",
2372
- "stroke-dasharray": "2",
2373
- stroke: t.color
2374
- }, null, 8, ti)) : u("", !0)
2375
- ], 64)) : (a(), s(d, { key: 0 }, [
2376
- c && g === 0 && t.useTag && t.useTag === "start" ? (a(), s("foreignObject", {
2377
- key: 0,
2378
- x: c.x,
2379
- y: c.y - 20,
2380
- height: 24,
2381
- width: "150",
2382
- style: _(`overflow: visible; opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2383
- }, [
2384
- I("div", {
2385
- style: _(`padding: 3px; background:${e.setOpacity(t.color, 80)};color:${e.adaptColorToBackground(t.color)};width:fit-content;font-size:${l.fontSizes.plotLabels}px;border-radius: 2px;`),
2386
- innerHTML: e.applyDataLabel(
2387
- e.FINAL_CONFIG.line.tag.formatter,
2388
- c.value,
2389
- t.name,
2390
- {
2391
- datapoint: c,
2392
- seriesIndex: g,
2393
- serieName: t.name
2394
- }
2395
- )
2396
- }, null, 12, jl)
2397
- ], 12, Ql)) : u("", !0),
2398
- c && g === t.plots.length - 1 && t.useTag && t.useTag === "end" ? (a(), s("foreignObject", {
2399
- key: 1,
2400
- x: c.x,
2401
- y: c.y - 20,
2402
- height: 24,
2403
- width: "150",
2404
- style: _(`overflow: visible; opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2405
- }, [
2406
- I("div", {
2407
- style: _(`padding: 3px; background:${e.setOpacity(t.color, 80)};color:${e.adaptColorToBackground(t.color)};width:fit-content;font-size:${l.fontSizes.plotLabels}px;border-radius: 2px;`),
2408
- innerHTML: e.applyDataLabel(
2409
- e.FINAL_CONFIG.line.tag.formatter,
2410
- c.value,
2411
- t.name,
2412
- {
2413
- datapoint: c,
2414
- seriesIndex: g,
2415
- serieName: t.name
2416
- }
2417
- )
2418
- }, null, 12, ei)
2419
- ], 12, $l)) : u("", !0)
2420
- ], 64))
2421
- ], 64))), 128))
2422
- ], 64))), 128))
2423
- ])),
2424
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s(d, {
2425
- key: `xLabel_line_${o}`
2426
- }, [
2427
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2428
- key: `xLabel_line_${o}_${g}`
2429
- }, [
2430
- c && g === 0 && t.showSerieName && t.showSerieName === "start" ? (a(), s("text", {
2431
- key: 0,
2432
- x: c.x - l.fontSizes.plotLabels,
2433
- y: c.y,
2434
- "font-size": l.fontSizes.plotLabels,
2435
- "text-anchor": "end",
2436
- fill: t.color,
2437
- innerHTML: e.createTSpans({
2438
- content: t.name,
2439
- fontSize: l.fontSizes.plotLabels,
2440
- fill: t.color,
2441
- x: c.x - l.fontSizes.plotLabels,
2442
- y: c.y,
2443
- maxWords: 2
2444
- }),
2445
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2446
- }, null, 12, li)) : u("", !0),
2447
- c && g === t.plots.length - 1 && t.showSerieName && t.showSerieName === "end" ? (a(), s("text", {
2448
- key: 1,
2449
- x: c.x + l.fontSizes.plotLabels,
2450
- y: c.y,
2451
- "font-size": l.fontSizes.plotLabels,
2452
- "text-anchor": "start",
2453
- fill: t.color,
2454
- innerHTML: e.createTSpans({
2455
- content: t.name,
2456
- fontSize: l.fontSizes.plotLabels,
2457
- fill: t.color,
2458
- x: c.x + l.fontSizes.plotLabels,
2459
- y: c.y,
2460
- maxWords: 2
2461
- }),
2462
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2463
- }, null, 12, ii)) : u("", !0)
2464
- ], 64))), 128))
2465
- ], 64))), 128)),
2466
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s(d, {
2467
- key: `xLabel_plot_${o}`
2468
- }, [
2469
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2470
- key: `xLabel_plot_${o}_${g}`
2471
- }, [
2472
- c && g === 0 && t.showSerieName && t.showSerieName === "start" ? (a(), s("text", {
2473
- key: 0,
2474
- x: c.x - l.fontSizes.plotLabels,
2475
- y: c.y,
2476
- "font-size": l.fontSizes.plotLabels,
2477
- "text-anchor": "end",
2478
- fill: t.color,
2479
- innerHTML: e.createTSpans({
2480
- content: t.name,
2481
- fontSize: l.fontSizes.plotLabels,
2482
- fill: t.color,
2483
- x: c.x - l.fontSizes.plotLabels,
2484
- y: c.y,
2485
- maxWords: 2
2486
- }),
2487
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2488
- }, null, 12, ri)) : u("", !0),
2489
- c && g === t.plots.length - 1 && t.showSerieName && t.showSerieName === "end" ? (a(), s("text", {
2490
- key: 1,
2491
- x: c.x + l.fontSizes.plotLabels,
2492
- y: c.y,
2493
- "font-size": l.fontSizes.plotLabels,
2494
- "text-anchor": "start",
2495
- fill: t.color,
2496
- innerHTML: e.createTSpans({
2497
- content: t.name,
2498
- fontSize: l.fontSizes.plotLabels,
2499
- fill: t.color,
2500
- x: c.x + l.fontSizes.plotLabels,
2501
- y: c.y,
2502
- maxWords: 2
2503
- }),
2504
- style: _(`opacity:${l.selectedScale ? l.selectedScale === t.groupId ? 1 : 0.2 : 1};transition:opacity 0.2s ease-in-out`)
2505
- }, null, 12, ai)) : u("", !0)
2506
- ], 64))), 128))
2507
- ], 64))), 128)),
2508
- l.mutableConfig.useIndividualScale && !l.mutableConfig.isStacked ? (a(), s(d, { key: 11 }, [
2509
- I("defs", null, [
2510
- (a(!0), s(d, null, x(e.allScales, (t, o) => (a(), s("linearGradient", {
2511
- id: `individual_scale_gradient_${l.uniqueId}_${o}`,
2512
- x1: "0%",
2513
- x2: "100%",
2514
- y1: "0%",
2515
- y2: "0%"
2516
- }, [
2517
- I("stop", {
2518
- offset: "0%",
2519
- "stop-color": e.FINAL_CONFIG.chart.backgroundColor,
2520
- "stop-opacity": "0"
2521
- }, null, 8, ni),
2522
- I("stop", {
2523
- offset: "100%",
2524
- "stop-color": t.color,
2525
- "stop-opacity": "0.2"
2526
- }, null, 8, ci)
2527
- ], 8, si))), 256))
2528
- ]),
2529
- (a(!0), s(d, null, x(e.allScales, (t, o) => (a(), s("rect", {
2530
- x: t.x - e.FINAL_CONFIG.chart.grid.labels.yAxis.labelWidth + e.xPadding,
2531
- y: e.drawingArea.top,
2532
- width: e.FINAL_CONFIG.chart.grid.labels.yAxis.labelWidth,
2533
- height: e.drawingArea.height < 0 ? 10 : e.drawingArea.height,
2534
- fill: l.selectedScale === t.groupId ? `url(#individual_scale_gradient_${l.uniqueId}_${o})` : "transparent",
2535
- onMouseenter: (c) => l.selectedScale = t.groupId,
2536
- onMouseleave: n[0] || (n[0] = (c) => l.selectedScale = null)
2537
- }, null, 40, oi))), 256))
2538
- ], 64)) : u("", !0),
2539
- I("g", null, [
2540
- e.FINAL_CONFIG.chart.grid.labels.axis.yLabel && !l.mutableConfig.useIndividualScale ? (a(), s("text", {
2541
- key: 0,
2542
- ref: "yAxisLabel",
2543
- "font-size": l.fontSizes.yAxis,
2544
- fill: e.FINAL_CONFIG.chart.grid.labels.color,
2545
- "text-anchor": "middle",
2546
- style: { transition: "none" }
2547
- }, V(e.FINAL_CONFIG.chart.grid.labels.axis.yLabel), 9, hi)) : u("", !0),
2548
- e.FINAL_CONFIG.chart.grid.labels.axis.xLabel ? (a(), s("text", {
2549
- key: 1,
2550
- ref: "xAxisLabel",
2551
- "text-anchor": "middle",
2552
- x: e.viewBoxParts.width / 2 - Math.abs(e.viewBoxParts.x),
2553
- "font-size": l.fontSizes.yAxis,
2554
- fill: e.FINAL_CONFIG.chart.grid.labels.color
2555
- }, V(e.FINAL_CONFIG.chart.grid.labels.axis.xLabel), 9, ui)) : u("", !0)
2556
- ]),
2557
- e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.show ? (a(), s("g", di, [
2558
- i.$slots["time-label"] ? (a(!0), s(d, { key: 0 }, x(e.timeLabels, (t, o) => G(i.$slots, "time-label", se({
2559
- key: `time_label_${o}`,
2560
- ref_for: !0
2561
- }, {
2562
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2,
2563
- y: e.drawingArea.bottom + e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.yOffset,
2564
- fontSize: l.fontSizes.xAxis,
2565
- fill: e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.color,
2566
- transform: `translate(${e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2}, ${e.drawingArea.bottom + e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.yOffset}), rotate(${e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation})`,
2567
- absoluteIndex: t.absoluteIndex,
2568
- content: t.text,
2569
- textAnchor: e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation > 0 ? "start" : e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation < 0 ? "end" : "middle",
2570
- show: t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && (o === 0 || o === e.timeLabels.length - 1) && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && l.selectedSerieIndex === o && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo && o % Math.floor((this.slicer.end - this.slicer.start) / e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.modulo) === 0
2571
- }), void 0, !0)), 128)) : (a(!0), s(d, { key: 1 }, x(e.timeLabels, (t, o) => (a(), s("g", {
2572
- key: `time_label_${o}`
2573
- }, [
2574
- t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && (o === 0 || o === e.timeLabels.length - 1) && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && l.selectedSerieIndex === o && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo || t && !e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyFirstAndLast && e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.showOnlyAtModulo && o % Math.floor((this.slicer.end - this.slicer.start) / e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.modulo) === 0 ? (a(), s(d, { key: 0 }, [
2575
- String(t.text).includes(`
2576
- `) ? (a(), s("text", {
2577
- key: 1,
2578
- "text-anchor": e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation > 0 ? "start" : e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation < 0 ? "end" : "middle",
2579
- "font-size": l.fontSizes.xAxis,
2580
- fill: e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.color,
2581
- transform: `translate(${e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2}, ${e.drawingArea.bottom + e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.yOffset}), rotate(${e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation})`,
2582
- style: _({
2583
- cursor: e.usesSelectTimeLabelEvent() ? "pointer" : "default"
2584
- }),
2585
- innerHTML: e.createTSpansFromLineBreaksOnX({
2586
- content: String(t.text),
2587
- fontSize: l.fontSizes.xAxis,
2588
- fill: e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.color,
2589
- x: 0,
2590
- y: 0
2591
- }),
2592
- onClick: () => e.selectTimeLabel(t, o)
2593
- }, null, 12, fi)) : (a(), s("text", {
2594
- key: 0,
2595
- "text-anchor": e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation > 0 ? "start" : e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation < 0 ? "end" : "middle",
2596
- "font-size": l.fontSizes.xAxis,
2597
- fill: e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.color,
2598
- transform: `translate(${e.drawingArea.left + e.drawingArea.width / e.maxSeries * o + e.drawingArea.width / e.maxSeries / 2}, ${e.drawingArea.bottom + e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.yOffset}), rotate(${e.FINAL_CONFIG.chart.grid.labels.xAxisLabels.rotation})`,
2599
- style: _({
2600
- cursor: e.usesSelectTimeLabelEvent() ? "pointer" : "default"
2601
- }),
2602
- onClick: () => e.selectTimeLabel(t, o)
2603
- }, V(t.text || ""), 13, gi))
2604
- ], 64)) : u("", !0)
2605
- ]))), 128))
2606
- ], 512)) : u("", !0),
2607
- e.annotationsY.length && !l.mutableConfig.isStacked ? (a(), s("g", Ii, [
2608
- (a(!0), s(d, null, x(e.annotationsY, (t) => (a(), s("g", {
2609
- key: t.uid
2610
- }, [
2611
- t.yTop && t.show && isFinite(t.yTop) ? (a(), s("line", {
2612
- key: 0,
2613
- x1: t.x1,
2614
- y1: t.yTop,
2615
- x2: t.x2,
2616
- y2: t.yTop,
2617
- stroke: t.config.line.stroke,
2618
- "stroke-width": t.config.line.strokeWidth,
2619
- "stroke-dasharray": t.config.line.strokeDasharray,
2620
- "stroke-linecap": "round",
2621
- style: { animation: "none !important" }
2622
- }, null, 8, xi)) : u("", !0),
2623
- t.yBottom && t.show && isFinite(t.yBottom) ? (a(), s("line", {
2624
- key: 1,
2625
- x1: t.x1,
2626
- y1: t.yBottom,
2627
- x2: t.x2,
2628
- y2: t.yBottom,
2629
- stroke: t.config.line.stroke,
2630
- "stroke-width": t.config.line.strokeWidth,
2631
- "stroke-dasharray": t.config.line.strokeDasharray,
2632
- "stroke-linecap": "round",
2633
- style: { animation: "none !important" }
2634
- }, null, 8, Ni)) : u("", !0),
2635
- t.hasArea && t.show && isFinite(t.yTop) && isFinite(t.yBottom) ? (a(), s("rect", {
2636
- key: 2,
2637
- y: Math.min(t.yTop, t.yBottom),
2638
- x: t.x1,
2639
- width: e.drawingArea.width,
2640
- height: e.checkNaN(t.areaHeight, 0),
2641
- fill: e.setOpacity(t.config.area.fill, t.config.area.opacity),
2642
- style: { animation: "none !important" }
2643
- }, null, 8, mi)) : u("", !0),
2644
- t.config.label.text && t.show && isFinite(t._box.y) ? (a(), s("rect", se({
2645
- key: 3,
2646
- class: "vue-ui-xy-annotation-label-box"
2647
- }, { ref_for: !0 }, t._box, { style: { animation: "none !important", transition: "none !important" } }), null, 16)) : u("", !0),
2648
- t.config.label.text && t.show && isFinite(t._text.y) ? (a(), s("text", {
2649
- key: 4,
2650
- id: t.id,
2651
- class: "vue-ui-xy-annotation-label",
2652
- x: t._text.x,
2653
- y: t._text.y,
2654
- "font-size": t.config.label.fontSize,
2655
- fill: t.config.label.color,
2656
- "text-anchor": t.config.label.textAnchor
2657
- }, V(t.config.label.text), 9, bi)) : u("", !0)
2658
- ]))), 128))
2659
- ])) : u("", !0),
2660
- I("g", null, [
2661
- (a(!0), s(d, null, x(e.maxSeries, (t, o) => (a(), s("rect", {
2662
- key: `tooltip_trap_${o}`,
2663
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * o,
2664
- y: e.drawingArea.top,
2665
- height: e.drawingArea.height < 0 ? 10 : e.drawingArea.height,
2666
- width: e.drawingArea.width / e.maxSeries < 0 ? 1e-5 : e.drawingArea.width / e.maxSeries,
2667
- fill: "transparent",
2668
- onMouseenter: (c) => e.toggleTooltipVisibility(!0, o),
2669
- onMouseleave: n[1] || (n[1] = (c) => e.toggleTooltipVisibility(!1)),
2670
- onClick: (c) => e.selectX(o)
2671
- }, null, 40, Fi))), 128))
2672
- ]),
2673
- e.FINAL_CONFIG.chart.timeTag.show && (![null, void 0].includes(l.selectedSerieIndex) || ![null, void 0].includes(l.selectedMinimapIndex)) ? (a(), s("g", _i, [
2674
- (a(), s("foreignObject", {
2675
- x: e.drawingArea.left + e.drawingArea.width / e.maxSeries * ((l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)) - 100 + e.drawingArea.width / e.maxSeries / 2,
2676
- y: e.drawingArea.bottom,
2677
- width: "200",
2678
- height: "40",
2679
- style: { overflow: "visible !important" }
2680
- }, [
2681
- I("div", {
2682
- class: "vue-ui-xy-time-tag",
2683
- style: _(`width: fit-content;margin: 0 auto;text-align:center;padding:3px 12px;background:${e.FINAL_CONFIG.chart.timeTag.backgroundColor};color:${e.FINAL_CONFIG.chart.timeTag.color};font-size:${e.FINAL_CONFIG.chart.timeTag.fontSize}px`)
2684
- }, V(e.timeLabels[(l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)].text || (l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)), 5)
2685
- ], 8, yi)),
2686
- I("circle", {
2687
- cx: e.drawingArea.left + e.drawingArea.width / e.maxSeries * ((l.selectedSerieIndex !== null ? l.selectedSerieIndex : 0) || (l.selectedMinimapIndex !== null ? l.selectedMinimapIndex : 0)) + e.drawingArea.width / e.maxSeries / 2,
2688
- cy: e.drawingArea.bottom,
2689
- r: e.FINAL_CONFIG.chart.timeTag.circleMarker.radius,
2690
- fill: e.FINAL_CONFIG.chart.timeTag.circleMarker.color
2691
- }, null, 8, Ai)
2692
- ])) : u("", !0)
2693
- ])) : u("", !0),
2694
- G(i.$slots, "svg", { svg: e.svg }, void 0, !0)
2695
- ], 512)
2696
- ], 14, gt)) : u("", !0),
2697
- i.$slots.watermark ? (a(), s("div", Li, [
2698
- G(i.$slots, "watermark", $(ee({ isPrinting: l.isPrinting || l.isImaging })), void 0, !0)
2699
- ])) : u("", !0),
2700
- (a(!0), s(d, null, x(e.lineSet, (t, o) => (a(), s(d, {
2701
- key: `tag_line_${o}`
2702
- }, [
2703
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2704
- key: `tag_line_${o}_${g}`
2705
- }, [
2706
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag && t.useTag === "end" && e.FINAL_CONFIG.line.tag.followValue ? (a(), s("div", {
2707
- key: 0,
2708
- ref_for: !0,
2709
- ref: (p) => e.setTagRef(o, g, p, "right", "line"),
2710
- class: "vue-ui-xy-tag",
2711
- "data-tag": "right",
2712
- style: _({
2713
- position: "fixed",
2714
- top: e.placeXYTag({
2715
- svgElement: l.svgRef,
2716
- x: e.drawingArea.right + e.FINAL_CONFIG.line.tag.fontSize / 1.5,
2717
- y: c.y,
2718
- element: l.tagRefs[`${o}_${g}_right_line`],
2719
- position: "right"
2720
- }).top + "px",
2721
- left: e.placeXYTag({
2722
- svgElement: l.svgRef,
2723
- x: e.drawingArea.right + e.FINAL_CONFIG.line.tag.fontSize / 1.5,
2724
- y: c.y,
2725
- element: l.tagRefs[`${o}_${g}_right_line`],
2726
- position: "right"
2727
- }).left + "px",
2728
- height: "fit-content",
2729
- width: "fit-content",
2730
- background: t.color,
2731
- color: e.adaptColorToBackground(t.color),
2732
- padding: "0 6px",
2733
- fontSize: e.FINAL_CONFIG.line.tag.fontSize + "px",
2734
- opacity: 1
2735
- })
2736
- }, [
2737
- (a(), s("svg", Ci, [
2738
- I("path", {
2739
- d: "M 0,10 10,0 10,20 Z",
2740
- fill: t.color,
2741
- stroke: "none"
2742
- }, null, 8, Si)
2743
- ])),
2744
- I("div", {
2745
- class: "vue-ui-xy-tag-content",
2746
- innerHTML: e.applyDataLabel(
2747
- e.FINAL_CONFIG.line.tag.formatter,
2748
- c.value,
2749
- t.name,
2750
- {
2751
- datapoint: c,
2752
- seriesIndex: g,
2753
- serieName: t.name
2754
- }
2755
- )
2756
- }, null, 8, wi)
2757
- ], 4)) : u("", !0),
2758
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag && t.useTag === "start" && e.FINAL_CONFIG.line.tag.followValue ? (a(), s("div", {
2759
- key: 1,
2760
- ref_for: !0,
2761
- ref: (p) => e.setTagRef(o, g, p, "left", "line"),
2762
- class: "vue-ui-xy-tag",
2763
- "data-tag": "left",
2764
- style: _({
2765
- position: "fixed",
2766
- top: e.placeXYTag({
2767
- svgElement: l.svgRef,
2768
- x: e.drawingArea.left - e.FINAL_CONFIG.line.tag.fontSize / 1.5,
2769
- y: c.y,
2770
- element: l.tagRefs[`${o}_${g}_left_line`],
2771
- position: "left"
2772
- }).top + "px",
2773
- left: e.placeXYTag({
2774
- svgElement: l.svgRef,
2775
- x: e.drawingArea.left - e.FINAL_CONFIG.line.tag.fontSize / 1.5,
2776
- y: c.y,
2777
- element: l.tagRefs[`${o}_${g}_left_line`],
2778
- position: "left"
2779
- }).left + "px",
2780
- height: "fit-content",
2781
- width: "fit-content",
2782
- background: t.color,
2783
- color: e.adaptColorToBackground(t.color),
2784
- padding: "0 6px",
2785
- fontSize: e.FINAL_CONFIG.line.tag.fontSize + "px",
2786
- opacity: 1
2787
- })
2788
- }, [
2789
- (a(), s("svg", ki, [
2790
- I("path", {
2791
- d: "M 0,0 10,10 0,20 Z",
2792
- fill: t.color,
2793
- stroke: "none"
2794
- }, null, 8, Oi)
2795
- ])),
2796
- I("div", {
2797
- class: "vue-ui-xy-tag-content",
2798
- innerHTML: e.applyDataLabel(
2799
- e.FINAL_CONFIG.line.tag.formatter,
2800
- c.value,
2801
- t.name,
2802
- {
2803
- datapoint: c,
2804
- seriesIndex: g,
2805
- serieName: t.name
2806
- }
2807
- )
2808
- }, null, 8, Gi)
2809
- ], 4)) : u("", !0)
2810
- ], 64))), 128))
2811
- ], 64))), 128)),
2812
- (a(!0), s(d, null, x(e.plotSet, (t, o) => (a(), s(d, {
2813
- key: `tag_plot_${o}`
2814
- }, [
2815
- (a(!0), s(d, null, x(t.plots, (c, g) => (a(), s(d, {
2816
- key: `tag_plot_${o}_${g}`
2817
- }, [
2818
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag && t.useTag === "end" && e.FINAL_CONFIG.plot.tag.followValue ? (a(), s("div", {
2819
- key: 0,
2820
- ref_for: !0,
2821
- ref: (p) => e.setTagRef(o, g, p, "right", "plot"),
2822
- class: "vue-ui-xy-tag",
2823
- "data-tag": "right",
2824
- style: _({
2825
- position: "fixed",
2826
- top: e.placeXYTag({
2827
- svgElement: l.svgRef,
2828
- x: e.drawingArea.right + e.FINAL_CONFIG.plot.tag.fontSize / 1.5,
2829
- y: c.y,
2830
- element: l.tagRefs[`${o}_${g}_right_plot`],
2831
- position: "right"
2832
- }).top + "px",
2833
- left: e.placeXYTag({
2834
- svgElement: l.svgRef,
2835
- x: e.drawingArea.right + e.FINAL_CONFIG.plot.tag.fontSize / 1.5,
2836
- y: c.y,
2837
- element: l.tagRefs[`${o}_${g}_right_plot`],
2838
- position: "right"
2839
- }).left + "px",
2840
- height: "fit-content",
2841
- width: "fit-content",
2842
- background: t.color,
2843
- color: e.adaptColorToBackground(t.color),
2844
- padding: "0 6px",
2845
- fontSize: e.FINAL_CONFIG.plot.tag.fontSize + "px",
2846
- opacity: 1
2847
- })
2848
- }, [
2849
- (a(), s("svg", vi, [
2850
- I("path", {
2851
- d: "M 0,10 10,0 10,20 Z",
2852
- fill: t.color,
2853
- stroke: "none"
2854
- }, null, 8, pi)
2855
- ])),
2856
- I("div", {
2857
- class: "vue-ui-xy-tag-content",
2858
- innerHTML: e.applyDataLabel(
2859
- e.FINAL_CONFIG.plot.tag.formatter,
2860
- c.value,
2861
- t.name,
2862
- {
2863
- datapoint: c,
2864
- seriesIndex: g,
2865
- serieName: t.name
2866
- }
2867
- )
2868
- }, null, 8, zi)
2869
- ], 4)) : u("", !0),
2870
- [l.selectedMinimapIndex, l.selectedSerieIndex, l.selectedRowIndex].includes(g) && t.useTag && t.useTag === "start" && e.FINAL_CONFIG.plot.tag.followValue ? (a(), s("div", {
2871
- key: 1,
2872
- ref_for: !0,
2873
- ref: (p) => e.setTagRef(o, g, p, "left", "plot"),
2874
- class: "vue-ui-xy-tag",
2875
- "data-tag": "left",
2876
- style: _({
2877
- position: "fixed",
2878
- top: e.placeXYTag({
2879
- svgElement: l.svgRef,
2880
- x: e.drawingArea.left - e.FINAL_CONFIG.plot.tag.fontSize / 1.5,
2881
- y: c.y,
2882
- element: l.tagRefs[`${o}_${g}_left_plot`],
2883
- position: "left"
2884
- }).top + "px",
2885
- left: e.placeXYTag({
2886
- svgElement: l.svgRef,
2887
- x: e.drawingArea.left - e.FINAL_CONFIG.plot.tag.fontSize / 1.5,
2888
- y: c.y,
2889
- element: l.tagRefs[`${o}_${g}_left_plot`],
2890
- position: "left"
2891
- }).left + "px",
2892
- height: "fit-content",
2893
- width: "fit-content",
2894
- background: t.color,
2895
- color: e.adaptColorToBackground(t.color),
2896
- padding: "0 6px",
2897
- fontSize: e.FINAL_CONFIG.plot.tag.fontSize + "px",
2898
- opacity: 1
2899
- })
2900
- }, [
2901
- (a(), s("svg", Mi, [
2902
- I("path", {
2903
- d: "M 0,0 10,10 0,20 Z",
2904
- fill: t.color,
2905
- stroke: "none"
2906
- }, null, 8, Ti)
2907
- ])),
2908
- I("div", {
2909
- class: "vue-ui-xy-tag-content",
2910
- innerHTML: e.applyDataLabel(
2911
- e.FINAL_CONFIG.plot.tag.formatter,
2912
- c.value,
2913
- t.name,
2914
- {
2915
- datapoint: c,
2916
- seriesIndex: g,
2917
- serieName: t.name
2918
- }
2919
- )
2920
- }, null, 8, Pi)
2921
- ], 4)) : u("", !0)
2922
- ], 64))), 128))
2923
- ], 64))), 128)),
2924
- e.isDataset ? u("", !0) : (a(), U(F, {
2925
- key: 6,
2926
- config: {
2927
- type: "line",
2928
- style: {
2929
- backgroundColor: e.FINAL_CONFIG.chart.backgroundColor,
2930
- line: {
2931
- axis: {
2932
- color: e.FINAL_CONFIG.chart.grid.stroke
2933
- },
2934
- path: {
2935
- color: e.FINAL_CONFIG.chart.grid.stroke,
2936
- strokeWidth: 0.5
2937
- }
2938
- }
2939
- }
2940
- }
2941
- }, null, 8, ["config"])),
2942
- e.FINAL_CONFIG.chart.zoom.show && l.maxX > 6 && e.isDataset ? (a(), U(v, {
2943
- ref: "chartSlicer",
2944
- key: `slicer_${l.slicerStep}`,
2945
- background: e.FINAL_CONFIG.chart.zoom.color,
2946
- fontSize: e.FINAL_CONFIG.chart.zoom.fontSize,
2947
- useResetSlot: e.FINAL_CONFIG.chart.zoom.useResetSlot,
2948
- labelLeft: e.timeLabels[0].text,
2949
- labelRight: e.timeLabels.at(-1).text,
2950
- textColor: e.FINAL_CONFIG.chart.color,
2951
- inputColor: e.FINAL_CONFIG.chart.zoom.color,
2952
- selectColor: e.FINAL_CONFIG.chart.zoom.highlightColor,
2953
- borderColor: e.FINAL_CONFIG.chart.backgroundColor,
2954
- minimap: e.minimap,
2955
- smoothMinimap: e.FINAL_CONFIG.chart.zoom.minimap.smooth,
2956
- minimapSelectedColor: e.FINAL_CONFIG.chart.zoom.minimap.selectedColor,
2957
- minimapSelectionRadius: e.FINAL_CONFIG.chart.zoom.minimap.selectionRadius,
2958
- minimapLineColor: e.FINAL_CONFIG.chart.zoom.minimap.lineColor,
2959
- minimapSelectedColorOpacity: e.FINAL_CONFIG.chart.zoom.minimap.selectedColorOpacity,
2960
- minimapSelectedIndex: l.selectedSerieIndex,
2961
- minimapIndicatorColor: e.FINAL_CONFIG.chart.zoom.minimap.indicatorColor,
2962
- verticalHandles: e.FINAL_CONFIG.chart.zoom.minimap.verticalHandles,
2963
- max: l.maxX,
2964
- min: 0,
2965
- valueStart: l.slicer.start,
2966
- valueEnd: l.slicer.end,
2967
- start: l.slicer.start,
2968
- "onUpdate:start": n[2] || (n[2] = (t) => l.slicer.start = t),
2969
- end: l.slicer.end,
2970
- "onUpdate:end": n[3] || (n[3] = (t) => l.slicer.end = t),
2971
- refreshStartPoint: e.FINAL_CONFIG.chart.zoom.startIndex !== null ? e.FINAL_CONFIG.chart.zoom.startIndex : 0,
2972
- refreshEndPoint: e.FINAL_CONFIG.chart.zoom.endIndex !== null ? e.FINAL_CONFIG.chart.zoom.endIndex + 1 : Math.max(...h.dataset.map((t) => e.largestTriangleThreeBucketsArray({ data: t.series, threshold: e.FINAL_CONFIG.downsample.threshold }).length)),
2973
- enableRangeHandles: e.FINAL_CONFIG.chart.zoom.enableRangeHandles,
2974
- enableSelectionDrag: e.FINAL_CONFIG.chart.zoom.enableSelectionDrag,
2975
- onReset: e.refreshSlicer,
2976
- onTrapMouse: e.selectMinimapIndex
2977
- }, {
2978
- "reset-action": D(({ reset: t }) => [
2979
- G(i.$slots, "reset-action", $(ee({ reset: t })), void 0, !0)
2980
- ]),
2981
- _: 3
2982
- }, 8, ["background", "fontSize", "useResetSlot", "labelLeft", "labelRight", "textColor", "inputColor", "selectColor", "borderColor", "minimap", "smoothMinimap", "minimapSelectedColor", "minimapSelectionRadius", "minimapLineColor", "minimapSelectedColorOpacity", "minimapSelectedIndex", "minimapIndicatorColor", "verticalHandles", "max", "valueStart", "valueEnd", "start", "end", "refreshStartPoint", "refreshEndPoint", "enableRangeHandles", "enableSelectionDrag", "onReset", "onTrapMouse"])) : u("", !0),
2983
- e.FINAL_CONFIG.chart.legend.show ? (a(), s("div", {
2984
- key: 8,
2985
- ref: "chartLegend",
2986
- class: "vue-ui-xy-legend",
2987
- style: _(`font-size:${e.FINAL_CONFIG.chart.legend.fontSize}px`)
2988
- }, [
2989
- (a(!0), s(d, null, x(e.absoluteDataset, (t, o) => (a(), s("div", {
2990
- key: `div_legend_item_${o}`,
2991
- onClick: (c) => e.segregate(t),
2992
- class: j({ "vue-ui-xy-legend-item": !0, "vue-ui-xy-legend-item-segregated": l.segregatedSeries.includes(t.id) })
2993
- }, [
2994
- l.icons[t.type] === "line" ? (a(), s("svg", Ri, [
2995
- I("rect", {
2996
- x: "0",
2997
- y: "7.5",
2998
- rx: "1.5",
2999
- stroke: e.FINAL_CONFIG.chart.backgroundColor,
3000
- "stroke-width": 0.5,
3001
- height: "3",
3002
- width: "20",
3003
- fill: t.color
3004
- }, null, 8, Bi),
3005
- le(N, {
3006
- plot: { x: 10, y: 9 },
3007
- radius: 4,
3008
- color: t.color,
3009
- shape: ["triangle", "square", "diamond", "pentagon", "hexagon", "star"].includes(t.shape) ? t.shape : "circle",
3010
- stroke: e.FINAL_CONFIG.chart.backgroundColor,
3011
- strokeWidth: 0.5
3012
- }, null, 8, ["color", "shape", "stroke"])
3013
- ])) : l.icons[t.type] === "bar" ? (a(), s("svg", Hi, [
3014
- l.icons[t.type] === "bar" && i.$slots.pattern ? (a(), s("rect", {
3015
- key: 0,
3016
- x: "0",
3017
- y: "0",
3018
- rx: "1",
3019
- height: "40",
3020
- width: "40",
3021
- stroke: "none",
3022
- fill: t.color
3023
- }, null, 8, Di)) : u("", !0),
3024
- l.icons[t.type] === "bar" ? (a(), s("rect", {
3025
- key: 1,
3026
- x: "0",
3027
- y: "0",
3028
- rx: "1",
3029
- height: "40",
3030
- width: "40",
3031
- stroke: "none",
3032
- fill: i.$slots.pattern ? `url(#pattern_${l.uniqueId}_${t.slotAbsoluteIndex})` : t.color
3033
- }, null, 8, Wi)) : u("", !0)
3034
- ])) : (a(), s("svg", Ei, [
3035
- le(N, {
3036
- plot: { x: 6, y: 6 },
3037
- radius: 5,
3038
- color: t.color,
3039
- shape: ["triangle", "square", "diamond", "pentagon", "hexagon", "star"].includes(t.shape) ? t.shape : "circle"
3040
- }, null, 8, ["color", "shape"])
3041
- ])),
3042
- I("span", {
3043
- style: _(`color:${e.FINAL_CONFIG.chart.legend.color}`)
3044
- }, V(t.name), 5)
3045
- ], 10, Vi))), 128))
3046
- ], 4)) : (a(), s("div", Yi, [
3047
- G(i.$slots, "legend", { legend: e.absoluteDataset }, void 0, !0)
3048
- ], 512)),
3049
- i.$slots.source ? (a(), s("div", Xi, [
3050
- G(i.$slots, "source", {}, void 0, !0)
3051
- ], 512)) : u("", !0),
3052
- le(m, {
3053
- show: l.mutableConfig.showTooltip && l.isTooltip,
3054
- backgroundColor: e.FINAL_CONFIG.chart.tooltip.backgroundColor,
3055
- color: e.FINAL_CONFIG.chart.tooltip.color,
3056
- fontSize: e.FINAL_CONFIG.chart.tooltip.fontSize,
3057
- borderRadius: e.FINAL_CONFIG.chart.tooltip.borderRadius,
3058
- borderColor: e.FINAL_CONFIG.chart.tooltip.borderColor,
3059
- borderWidth: e.FINAL_CONFIG.chart.tooltip.borderWidth,
3060
- backgroundOpacity: e.FINAL_CONFIG.chart.tooltip.backgroundOpacity,
3061
- position: e.FINAL_CONFIG.chart.tooltip.position,
3062
- offsetY: e.FINAL_CONFIG.chart.tooltip.offsetY,
3063
- parent: i.$refs.chart,
3064
- content: e.tooltipContent,
3065
- isFullscreen: l.isFullscreen,
3066
- isCustom: e.FINAL_CONFIG.chart.tooltip.customFormat && typeof e.FINAL_CONFIG.chart.tooltip.customFormat == "function"
3067
- }, {
3068
- "tooltip-before": D(() => [
3069
- G(i.$slots, "tooltip-before", $(ee({ ...e.dataTooltipSlot })), void 0, !0)
3070
- ]),
3071
- "tooltip-after": D(() => [
3072
- G(i.$slots, "tooltip-after", $(ee({ ...e.dataTooltipSlot })), void 0, !0)
3073
- ]),
3074
- _: 3
3075
- }, 8, ["show", "backgroundColor", "color", "fontSize", "borderRadius", "borderColor", "borderWidth", "backgroundOpacity", "position", "offsetY", "parent", "content", "isFullscreen", "isCustom"]),
3076
- e.isDataset ? (a(), U(B, {
3077
- key: 11,
3078
- hideDetails: "",
3079
- config: {
3080
- open: l.mutableConfig.showTable,
3081
- maxHeight: 1e4,
3082
- body: {
3083
- backgroundColor: e.FINAL_CONFIG.chart.backgroundColor,
3084
- color: e.FINAL_CONFIG.chart.color
3085
- },
3086
- head: {
3087
- backgroundColor: e.FINAL_CONFIG.chart.backgroundColor,
3088
- color: e.FINAL_CONFIG.chart.color
3089
- }
3090
- }
3091
- }, {
3092
- content: D(() => [
3093
- I("div", {
3094
- style: _(`${l.isPrinting ? "" : "max-height:400px"};overflow:auto;width:100%;margin-top:48px`)
3095
- }, [
3096
- I("div", qi, [
3097
- tt(I("input", {
3098
- type: "checkbox",
3099
- "onUpdate:modelValue": n[4] || (n[4] = (t) => l.showSparklineTable = t)
3100
- }, null, 512), [
3101
- [lt, l.showSparklineTable]
3102
- ]),
3103
- I("div", {
3104
- onClick: n[5] || (n[5] = (t) => l.showSparklineTable = !l.showSparklineTable),
3105
- style: { cursor: "pointer" }
3106
- }, [
3107
- le(A, {
3108
- name: "chartLine",
3109
- size: 20,
3110
- stroke: e.FINAL_CONFIG.chart.color
3111
- }, null, 8, ["stroke"])
3112
- ])
3113
- ]),
3114
- l.showSparklineTable ? (a(), U(b, {
3115
- key: `sparkline_${l.segregateStep}`,
3116
- dataset: e.tableSparklineDataset,
3117
- config: e.tableSparklineConfig
3118
- }, null, 8, ["dataset", "config"])) : (a(), U(M, {
3119
- key: `table_${l.tableStep}`,
3120
- colNames: e.dataTable.colNames,
3121
- head: e.dataTable.head,
3122
- body: e.dataTable.body,
3123
- config: e.dataTable.config,
3124
- title: `${e.FINAL_CONFIG.chart.title.text}${e.FINAL_CONFIG.chart.title.subtitle.text ? ` : ${e.FINAL_CONFIG.chart.title.subtitle.text}` : ""}`,
3125
- onClose: n[6] || (n[6] = (t) => l.mutableConfig.showTable = !1)
3126
- }, {
3127
- th: D(({ th: t }) => [
3128
- I("div", { innerHTML: t }, null, 8, Ui)
3129
- ]),
3130
- td: D(({ td: t }) => [
3131
- it(V(isNaN(Number(t)) ? t : e.dataLabel({
3132
- p: e.FINAL_CONFIG.chart.labels.prefix,
3133
- v: t,
3134
- s: e.FINAL_CONFIG.chart.labels.suffix,
3135
- r: e.FINAL_CONFIG.table.rounding
3136
- })), 1)
3137
- ]),
3138
- _: 1
3139
- }, 8, ["colNames", "head", "body", "config", "title"]))
3140
- ], 4)
3141
- ]),
3142
- _: 1
3143
- }, 8, ["config"])) : u("", !0)
3144
- ], 46, ut);
3145
- }
3146
- const ar = /* @__PURE__ */ ct(ht, [["render", Zi], ["__scopeId", "data-v-e3c8cee0"]]);
3147
- export {
3148
- ar as default
3149
- };