vue-data-ui 2.2.90 → 2.2.91

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 (58) hide show
  1. package/dist/data-table-d-VcuH-r.js +1488 -0
  2. package/dist/{index.es-Cgqo-FBk.js → index.es-Dc9Fd4o6.js} +1 -1
  3. package/dist/legend-DJCYLsl_.js +61 -0
  4. package/dist/style.css +1 -1
  5. package/dist/themes-lgjsYHsH.js +4967 -0
  6. package/dist/title-BF-9Qcni.js +56 -0
  7. package/dist/tooltip-D85WEOKi.js +94 -0
  8. package/dist/user-options-DZgCz8UA.js +415 -0
  9. package/dist/vue-data-ui.js +455 -61
  10. package/dist/vue-ui-3d-bar-DW7kGJSz.js +20360 -0
  11. package/dist/vue-ui-age-pyramid-4hcuKpFY.js +781 -0
  12. package/dist/vue-ui-annotator-C83FVvl8.js +2175 -0
  13. package/dist/vue-ui-candlestick-diclGj95.js +807 -0
  14. package/dist/vue-ui-chestnut-ACetHLdG.js +1049 -0
  15. package/dist/vue-ui-cursor-Rx7UNaYT.js +229 -0
  16. package/dist/vue-ui-dashboard-B3PlN0ks.js +231 -0
  17. package/dist/vue-ui-digits-CxMXID42.js +154 -0
  18. package/dist/vue-ui-donut-DMiwVXNd.js +1534 -0
  19. package/dist/vue-ui-dumbbell-B_X1T8TR.js +621 -0
  20. package/dist/vue-ui-flow-B72wzQ6V.js +451 -0
  21. package/dist/vue-ui-galaxy-DXX5yivT.js +482 -0
  22. package/dist/vue-ui-gauge-Cs9PDurH.js +466 -0
  23. package/dist/vue-ui-heatmap-PcoNSLdN.js +581 -0
  24. package/dist/vue-ui-kpi-DchEmPtB.js +55 -0
  25. package/dist/vue-ui-mini-loader-DltJLkqy.js +131 -0
  26. package/dist/vue-ui-molecule-CWvukBzs.js +746 -0
  27. package/dist/vue-ui-mood-radar-DEfdtIi8.js +544 -0
  28. package/dist/vue-ui-nested-donuts-9URpqgXE.js +768 -0
  29. package/dist/vue-ui-onion-C0eowUT6.js +551 -0
  30. package/dist/vue-ui-parallel-coordinate-plot-Bc_pAaPJ.js +647 -0
  31. package/dist/vue-ui-quadrant-_ddVAm9V.js +1174 -0
  32. package/dist/vue-ui-quick-chart-Cio0hDYO.js +1310 -0
  33. package/dist/vue-ui-radar-Dyg38i33.js +853 -0
  34. package/dist/vue-ui-rating-CE1Lmwd2.js +271 -0
  35. package/dist/vue-ui-relation-circle-BMlB3k3d.js +303 -0
  36. package/dist/vue-ui-rings-BuXeijvb.js +507 -0
  37. package/dist/vue-ui-scatter-B1hZfOua.js +870 -0
  38. package/dist/vue-ui-screenshot-0QXgxzGs.js +160 -0
  39. package/dist/vue-ui-smiley-B7kR7exr.js +763 -0
  40. package/dist/vue-ui-spark-trend-BmL2KiYL.js +245 -0
  41. package/dist/vue-ui-sparkgauge-BMzFv14L.js +158 -0
  42. package/dist/vue-ui-sparkhistogram-DWpOXqHm.js +243 -0
  43. package/dist/vue-ui-sparkstackbar-DB9VQXlc.js +244 -0
  44. package/dist/vue-ui-strip-plot-DyN6P0JO.js +614 -0
  45. package/dist/vue-ui-table-DM3zL89q.js +2180 -0
  46. package/dist/vue-ui-table-heatmap-gWx0Nslu.js +237 -0
  47. package/dist/vue-ui-thermometer-Bcqv5kd_.js +384 -0
  48. package/dist/vue-ui-timer-BIFxjujK.js +451 -0
  49. package/dist/vue-ui-tiremarks-zBwHpED_.js +248 -0
  50. package/dist/vue-ui-treemap-BaplVc_z.js +719 -0
  51. package/dist/vue-ui-vertical-bar-CdK6ZJPM.js +734 -0
  52. package/dist/vue-ui-waffle-COOzH7M3.js +635 -0
  53. package/dist/vue-ui-wheel-BEpuVTBk.js +226 -0
  54. package/dist/vue-ui-word-cloud-DNqxAAiX.js +344 -0
  55. package/dist/vue-ui-xy-_mHq-czW.js +2058 -0
  56. package/dist/vue-ui-xy-canvas-DqX8Gee5.js +1003 -0
  57. package/package.json +1 -1
  58. package/dist/index-DZlxUin4.js +0 -57288
@@ -0,0 +1,2180 @@
1
+ import { computed as O, ref as M, onMounted as fe, openBlock as o, createElementBlock as i, normalizeStyle as g, renderSlot as K, normalizeProps as me, guardReactiveProps as _e, createElementVNode as u, toDisplayString as c, createCommentVNode as y, unref as G, Fragment as k, renderList as L, createBlock as oe, useCssVars as Ae, normalizeClass as A, createSlots as De, withCtx as ne, nextTick as Me, createTextVNode as P, withDirectives as q, vModelText as $, withKeys as ee, withModifiers as te, vModelSelect as Ge, createStaticVNode as Te, pushScopeId as ze, popScopeId as Pe } from "vue";
2
+ import { t as pe } from "./themes-lgjsYHsH.js";
3
+ import { u as ie } from "./title-BF-9Qcni.js";
4
+ import { _ as de, e as Ne, i as ke, j as ue, k as Ce, x as re, R as Ie, S as Fe, X as Ee, o as ae, N as ve, n as be, f as Be, p as se, g as Re, h as we, B as He, v as Se, w as xe, t as Ue, m as Ve, c as We } from "./data-table-d-VcuH-r.js";
5
+ import { u as he, S as je, a as Xe } from "./vue-ui-3d-bar-DW7kGJSz.js";
6
+ import { U as Ye } from "./user-options-DZgCz8UA.js";
7
+ const Ze = ["id"], qe = ["xmlns", "viewBox"], Ke = ["id"], Je = ["stop-color"], Qe = ["stop-color"], $e = ["id"], et = ["stop-color"], tt = ["stop-color"], st = ["id"], lt = ["stop-color"], nt = ["stop-color"], rt = { key: 0 }, at = ["d", "fill"], ot = ["d", "fill"], it = ["d", "stroke", "stroke-width"], ut = ["x1", "x2", "y1", "y2", "stroke", "stroke-width"], ct = ["x", "y", "width", "height", "fill", "rx"], dt = ["x1", "x2", "y1", "y2", "stroke", "stroke-width", "stroke-dasharray"], ht = ["x1", "x2", "y1", "y2", "stroke", "stroke-dasharray", "stroke-width"], gt = ["cx", "cy", "r", "fill", "stroke", "stroke-width"], yt = ["x", "y", "font-size", "font-weight", "fill"], vt = ["x", "y", "height", "width", "onMouseenter", "onClick"], bt = {
8
+ __name: "vue-ui-sparkline",
9
+ props: {
10
+ config: {
11
+ type: Object,
12
+ default() {
13
+ return {};
14
+ }
15
+ },
16
+ dataset: {
17
+ type: Array,
18
+ default() {
19
+ return [];
20
+ }
21
+ },
22
+ showInfo: {
23
+ type: Boolean,
24
+ default: !0
25
+ },
26
+ selectedIndex: {
27
+ type: Number,
28
+ default: void 0
29
+ }
30
+ },
31
+ emits: ["hoverIndex", "selectDatapoint"],
32
+ setup(n, { emit: r }) {
33
+ const a = n, { vue_ui_sparkline: d } = he(), t = O(() => !!a.dataset && a.dataset.length), e = M(Ne()), l = O(() => {
34
+ const _ = ie({
35
+ userConfig: a.config,
36
+ defaultConfig: d
37
+ });
38
+ return _.theme ? {
39
+ ...ie({
40
+ userConfig: pe.vue_ui_sparkline[_.theme] || a.config,
41
+ defaultConfig: _
42
+ })
43
+ } : _;
44
+ }), s = M(a.dataset.map((_) => l.value.style.animation.show ? {
45
+ ..._,
46
+ value: null
47
+ } : {
48
+ ..._,
49
+ value: [void 0].includes(_.value) ? null : _.value
50
+ }));
51
+ fe(() => {
52
+ if (ke(a.dataset) ? ue({
53
+ componentName: "VueUiSparkline",
54
+ type: "dataset"
55
+ }) : a.dataset.forEach((_, I) => {
56
+ Ce({
57
+ datasetObject: _,
58
+ requiredAttributes: ["period", "value"]
59
+ }).forEach((b) => {
60
+ ue({
61
+ componentName: "VueUiSparkline",
62
+ type: "datasetSerieAttribute",
63
+ property: b,
64
+ index: I
65
+ });
66
+ });
67
+ }), l.value.style.animation.show && a.dataset.length > 1) {
68
+ let b = function() {
69
+ I < a.dataset.length ? (s.value.push(a.dataset[I]), setTimeout(() => {
70
+ requestAnimationFrame(b);
71
+ }, _)) : s.value = a.dataset, I += 1;
72
+ };
73
+ s.value = [];
74
+ const _ = l.value.style.animation.animationFrames / a.dataset.length;
75
+ let I = 0;
76
+ b();
77
+ }
78
+ });
79
+ const h = M({
80
+ height: 80,
81
+ width: 500
82
+ }), f = M(6), m = O(() => ({
83
+ top: 12,
84
+ left: 0,
85
+ right: h.value.width,
86
+ bottom: h.value.height - 3,
87
+ start: a.showInfo && l.value.style.dataLabel.show && l.value.style.dataLabel.position === "left" ? h.value.width - l.value.style.chartWidth : 30,
88
+ width: a.showInfo && l.value.style.dataLabel.show ? l.value.style.chartWidth : h.value.width - 30,
89
+ height: h.value.height - 12
90
+ })), B = O(() => Math.min(...s.value.map((_) => isNaN(_.value) || [void 0, null, "NaN", NaN, 1 / 0, -1 / 0].includes(_.value) ? 0 : _.value || 0))), D = O(() => Math.max(...s.value.map((_) => isNaN(_.value) || [void 0, null, "NaN", NaN, 1 / 0, -1 / 0].includes(_.value) ? 0 : _.value || 0))), T = O(() => {
91
+ const _ = B.value >= 0 ? 0 : B.value;
92
+ return Math.abs(_);
93
+ }), j = O(() => D.value + T.value + f.value), z = O(() => m.value.bottom - m.value.height * X(T.value));
94
+ function X(_) {
95
+ return _ / j.value;
96
+ }
97
+ const H = O(() => a.dataset.length - 1), C = O(() => s.value.map((_, I) => {
98
+ const b = isNaN(_.value) || [void 0, null, "NaN", NaN, 1 / 0, -1 / 0].includes(_.value) ? 0 : _.value || 0;
99
+ return {
100
+ absoluteValue: b,
101
+ period: _.period,
102
+ plotValue: b + T.value,
103
+ toMax: X(b + T.value),
104
+ x: m.value.start + I * (m.value.width / (H.value + 1) > 30 ? 30 : m.value.width / (H.value + 1)),
105
+ y: m.value.bottom - m.value.height * X(b + T.value),
106
+ id: `plot_${e.value}_${I}`,
107
+ color: W.value ? l.value.style.bar.color : l.value.style.area.useGradient ? re(l.value.style.line.color, 0.05 * (1 - I / H.value)) : l.value.style.line.color,
108
+ width: m.value.width / (H.value + 1) > 30 ? 30 : m.value.width / (H.value + 1)
109
+ };
110
+ })), Y = O(() => {
111
+ const _ = { x: C.value[0].x, y: h.value.height - 6 }, I = { x: C.value[C.value.length - 1].x, y: h.value.height - 6 }, b = [];
112
+ return C.value.forEach((w) => {
113
+ b.push(`${w.x},${w.y} `);
114
+ }), [_.x, _.y, ...b, I.x, I.y].toString();
115
+ }), E = M(void 0);
116
+ function Z(_, I) {
117
+ E.value = _, r("hoverIndex", { index: I });
118
+ }
119
+ function J() {
120
+ E.value = void 0, r("hoverIndex", { index: void 0 });
121
+ }
122
+ const R = O(() => {
123
+ if (t.value) {
124
+ const _ = C.value.map((b) => b.absoluteValue), I = _.reduce((b, w) => b + w, 0);
125
+ return {
126
+ latest: C.value[C.value.length - 1].absoluteValue,
127
+ sum: I,
128
+ average: I / C.value.length,
129
+ median: Ie(_),
130
+ trend: Fe(C.value.map(({ x: b, y: w, absoluteValue: le }) => ({
131
+ x: b,
132
+ y: w,
133
+ value: le
134
+ }))).trend
135
+ };
136
+ } else
137
+ return {
138
+ latest: null,
139
+ sum: null,
140
+ average: null,
141
+ median: null,
142
+ trend: null
143
+ };
144
+ }), Q = O(() => t.value ? l.value.style.dataLabel.valueType === "latest" ? R.value.latest : l.value.style.dataLabel.valueType === "sum" ? R.value.sum : l.value.style.dataLabel.valueType === "average" ? R.value.average : 0 : 0), W = O(() => l.value.type && l.value.type === "bar");
145
+ function ce(_, I) {
146
+ r("selectDatapoint", { datapoint: _, index: I });
147
+ }
148
+ return (_, I) => (o(), i("div", {
149
+ class: "vue-ui-sparkline",
150
+ id: e.value,
151
+ style: g(`width:100%;font-family:${l.value.style.fontFamily}`)
152
+ }, [
153
+ K(_.$slots, "before", me(_e({
154
+ selected: E.value,
155
+ latest: R.value.latest,
156
+ sum: R.value.sum,
157
+ average: R.value.average,
158
+ median: R.value.median,
159
+ trend: R.value.trend
160
+ })), void 0, !0),
161
+ l.value.style.title.show && n.showInfo ? (o(), i("div", {
162
+ key: 0,
163
+ class: "vue-ui-sparkline-title",
164
+ style: g(`display:flex;align-items:center;width:100%;color:${l.value.style.title.color};background:${l.value.style.backgroundColor};justify-content:${l.value.style.title.textAlign === "left" ? "flex-start" : l.value.style.title.textAlign === "right" ? "flex-end" : "center"};height:${l.value.style.title.fontSize * 2}px;font-size:${l.value.style.title.fontSize}px;font-weight:${l.value.style.title.bold ? "bold" : "normal"};`)
165
+ }, [
166
+ u("span", {
167
+ style: g(`padding:${l.value.style.title.textAlign === "left" ? "0 0 0 12px" : l.value.style.title.textAlign === "right" ? "0 12px 0 0" : "0"}`)
168
+ }, c(E.value ? E.value.period : l.value.style.title.text), 5)
169
+ ], 4)) : y("", !0),
170
+ t.value ? (o(), i("svg", {
171
+ key: 1,
172
+ xmlns: G(Ee),
173
+ viewBox: `0 0 ${h.value.width} ${h.value.height}`,
174
+ style: g(`background:${l.value.style.backgroundColor};overflow:visible`)
175
+ }, [
176
+ u("defs", null, [
177
+ u("linearGradient", {
178
+ x1: "0%",
179
+ y1: "0%",
180
+ x2: "100%",
181
+ y2: "0%",
182
+ id: `sparkline_gradient_${e.value}`
183
+ }, [
184
+ u("stop", {
185
+ offset: "0%",
186
+ "stop-color": `${G(re)(l.value.style.area.color, 0.05)}${G(ae)[l.value.style.area.opacity]}`
187
+ }, null, 8, Je),
188
+ u("stop", {
189
+ offset: "100%",
190
+ "stop-color": l.value.style.area.color + G(ae)[l.value.style.area.opacity]
191
+ }, null, 8, Qe)
192
+ ], 8, Ke),
193
+ u("linearGradient", {
194
+ x2: "0%",
195
+ y2: "100%",
196
+ id: `sparkline_bar_gradient_pos_${e.value}`
197
+ }, [
198
+ u("stop", {
199
+ offset: "0%",
200
+ "stop-color": l.value.style.bar.color
201
+ }, null, 8, et),
202
+ u("stop", {
203
+ offset: "100%",
204
+ "stop-color": `${G(re)(l.value.style.bar.color, 0.05)}`
205
+ }, null, 8, tt)
206
+ ], 8, $e),
207
+ u("linearGradient", {
208
+ x2: "0%",
209
+ y2: "100%",
210
+ id: `sparkline_bar_gradient_neg_${e.value}`
211
+ }, [
212
+ u("stop", {
213
+ offset: "0%",
214
+ "stop-color": `${G(re)(l.value.style.bar.color, 0.05)}`
215
+ }, null, 8, lt),
216
+ u("stop", {
217
+ offset: "100%",
218
+ "stop-color": l.value.style.bar.color
219
+ }, null, 8, nt)
220
+ ], 8, st)
221
+ ]),
222
+ l.value.style.area.show && !W.value && C.value[0] ? (o(), i("g", rt, [
223
+ l.value.style.line.smooth ? (o(), i("path", {
224
+ key: 0,
225
+ d: `M ${C.value[0].x},${m.value.bottom} ${G(ve)(C.value)} L ${C.value.at(-1).x},${m.value.bottom} Z`,
226
+ fill: l.value.style.area.useGradient ? `url(#sparkline_gradient_${e.value})` : `${l.value.style.area.color}${G(ae)[l.value.style.area.opacity]}`
227
+ }, null, 8, at)) : (o(), i("path", {
228
+ key: 1,
229
+ d: `M${Y.value}Z`,
230
+ fill: l.value.style.area.useGradient ? `url(#sparkline_gradient_${e.value})` : `${l.value.style.area.color}${G(ae)[l.value.style.area.opacity]}`
231
+ }, null, 8, ot))
232
+ ])) : y("", !0),
233
+ l.value.style.line.smooth && !W.value ? (o(), i("path", {
234
+ key: 1,
235
+ d: `M ${G(ve)(C.value)}`,
236
+ stroke: l.value.style.line.color,
237
+ fill: "none",
238
+ "stroke-width": l.value.style.line.strokeWidth,
239
+ "stroke-linecap": "round"
240
+ }, null, 8, it)) : y("", !0),
241
+ (o(!0), i(k, null, L(C.value, (b, w) => (o(), i("g", null, [
242
+ w < C.value.length - 1 && !l.value.style.line.smooth && !W.value ? (o(), i("line", {
243
+ key: 0,
244
+ x1: b.x,
245
+ x2: C.value[w + 1].x,
246
+ y1: b.y,
247
+ y2: C.value[w + 1].y,
248
+ stroke: b.color,
249
+ "stroke-width": l.value.style.line.strokeWidth,
250
+ "stroke-linecap": "round",
251
+ "stroke-linejoin": "round",
252
+ "shape-rendering": "geometricPrecision"
253
+ }, null, 8, ut)) : y("", !0),
254
+ W.value ? (o(), i("rect", {
255
+ key: 1,
256
+ x: b.x - b.width / 2,
257
+ y: b.absoluteValue > 0 ? b.y : z.value,
258
+ width: b.width,
259
+ height: Math.abs(b.y - z.value),
260
+ fill: b.absoluteValue > 0 ? `url(#sparkline_bar_gradient_pos_${e.value})` : `url(#sparkline_bar_gradient_neg_${e.value})`,
261
+ rx: l.value.style.bar.borderRadius
262
+ }, null, 8, ct)) : y("", !0),
263
+ l.value.style.verticalIndicator.show && (E.value && b.id === E.value.id || n.selectedIndex === w) ? (o(), i("line", {
264
+ key: 2,
265
+ x1: b.x,
266
+ x2: b.x,
267
+ y1: m.value.top - 6,
268
+ y2: m.value.bottom,
269
+ stroke: l.value.style.verticalIndicator.color || b.color,
270
+ "stroke-width": l.value.style.verticalIndicator.strokeWidth,
271
+ "stroke-linecap": "round",
272
+ "stroke-dasharray": l.value.style.verticalIndicator.strokeDasharray || 0
273
+ }, null, 8, dt)) : y("", !0)
274
+ ]))), 256)),
275
+ B.value < 0 ? (o(), i("line", {
276
+ key: 2,
277
+ x1: m.value.start,
278
+ x2: m.value.start + m.value.width - 16,
279
+ y1: z.value,
280
+ y2: z.value,
281
+ stroke: l.value.style.zeroLine.color,
282
+ "stroke-dasharray": l.value.style.zeroLine.strokeWidth * 2,
283
+ "stroke-width": l.value.style.zeroLine.strokeWidth,
284
+ "stroke-linecap": "round"
285
+ }, null, 8, ht)) : y("", !0),
286
+ l.value.style.plot.show ? (o(!0), i(k, { key: 3 }, L(C.value, (b, w) => (o(), i("g", null, [
287
+ E.value && b.id === E.value.id || n.selectedIndex === w ? (o(), i("circle", {
288
+ key: 0,
289
+ cx: b.x,
290
+ cy: b.y,
291
+ r: l.value.style.plot.radius,
292
+ fill: b.color,
293
+ stroke: l.value.style.plot.stroke,
294
+ "stroke-width": l.value.style.plot.strokeWidth
295
+ }, null, 8, gt)) : y("", !0)
296
+ ]))), 256)) : y("", !0),
297
+ n.showInfo && l.value.style.dataLabel.show ? (o(), i("text", {
298
+ key: 4,
299
+ x: l.value.style.dataLabel.position === "left" ? 12 + l.value.style.dataLabel.offsetX : m.value.width + 12 + l.value.style.dataLabel.offsetX,
300
+ y: h.value.height / 2 + l.value.style.dataLabel.fontSize / 2.5 + l.value.style.dataLabel.offsetY,
301
+ "font-size": l.value.style.dataLabel.fontSize,
302
+ "font-weight": l.value.style.dataLabel.bold ? "bold" : "normal",
303
+ fill: l.value.style.dataLabel.color
304
+ }, c(E.value ? G(be)({ p: l.value.style.dataLabel.prefix, v: E.value.absoluteValue, s: l.value.style.dataLabel.suffix, r: l.value.style.dataLabel.roundingValue }) : G(be)({ p: l.value.style.dataLabel.prefix, v: Q.value, s: l.value.style.dataLabel.suffix, r: l.value.style.dataLabel.roundingValue })), 9, yt)) : y("", !0),
305
+ (o(!0), i(k, null, L(C.value, (b, w) => (o(), i("rect", {
306
+ x: b.x - (m.value.width / (H.value + 1) > 30 ? 30 : m.value.width / (H.value + 1)) / 2,
307
+ y: m.value.top - 6,
308
+ height: m.value.height + 6,
309
+ width: m.value.width / (H.value + 1) > 30 ? 30 : m.value.width / (H.value + 1),
310
+ fill: "transparent",
311
+ onMouseenter: (le) => Z(b, w),
312
+ onMouseleave: J,
313
+ onClick: () => ce(b, w)
314
+ }, null, 40, vt))), 256)),
315
+ K(_.$slots, "svg", { svg: h.value }, void 0, !0)
316
+ ], 12, qe)) : y("", !0),
317
+ t.value ? y("", !0) : (o(), oe(je, {
318
+ key: 2,
319
+ config: {
320
+ type: "sparkline",
321
+ style: {
322
+ backgroundColor: l.value.style.backgroundColor,
323
+ sparkline: {
324
+ color: "#CCCCCC"
325
+ }
326
+ }
327
+ }
328
+ }, null, 8, ["config"]))
329
+ ], 12, Ze));
330
+ }
331
+ }, Le = /* @__PURE__ */ de(bt, [["__scopeId", "data-v-ee68f40e"]]), on = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
332
+ __proto__: null,
333
+ default: Le
334
+ }, Symbol.toStringTag, { value: "Module" })), ft = ["id"], mt = { style: { "z-index": "1", "padding-right": "24px" } }, _t = ["onClick"], pt = { style: { display: "flex", "flex-direction": "row", gap: "3px", "align-items": "center" } }, Nt = ["data-cell"], kt = { style: { display: "flex", "flex-direction": "row", "align-items": "center", gap: "6px" } }, Ct = ["data-cell", "onPointerenter"], It = ["data-cell"], Ft = ["data-cell"], wt = ["data-cell"], St = ["data-cell"], xt = {
335
+ __name: "vue-ui-table-sparkline",
336
+ props: {
337
+ config: {
338
+ type: Object,
339
+ default() {
340
+ return {};
341
+ }
342
+ },
343
+ dataset: {
344
+ type: Array,
345
+ default() {
346
+ return [];
347
+ }
348
+ }
349
+ },
350
+ setup(n, { expose: r }) {
351
+ const a = n;
352
+ Ae((v) => ({
353
+ "2af6bd52": v.tdo
354
+ }));
355
+ const { vue_ui_table_sparkline: d } = he(), t = M(Ne()), e = M(0), l = M(0), s = O(() => {
356
+ const v = ie({
357
+ userConfig: a.config,
358
+ defaultConfig: d
359
+ });
360
+ return v.theme ? {
361
+ ...ie({
362
+ userConfig: pe.vue_ui_table_sparkline[v.theme] || a.config,
363
+ defaultConfig: v
364
+ }),
365
+ customPalette: Be[v.theme] || se
366
+ } : v;
367
+ }), { isPrinting: h, isImaging: f, generatePdf: m, generateImage: B } = Xe({
368
+ elementId: `table_${t.value}`,
369
+ fileName: s.value.title.text || "vue-ui-table-sparkline"
370
+ }), D = O(() => Re(s.value.customPalette)), T = M(null), j = M(!1), z = O(() => s.value.responsiveBreakpoint);
371
+ fe(() => {
372
+ ke(a.dataset) && ue({
373
+ componentName: "VueUiTableSparkline",
374
+ type: "dataset"
375
+ });
376
+ const v = new ResizeObserver((S) => {
377
+ S.forEach((p) => {
378
+ j.value = p.contentRect.width < z.value;
379
+ });
380
+ });
381
+ T.value && v.observe(T.value);
382
+ });
383
+ const X = O(() => (a.dataset.forEach((v, S) => {
384
+ Ce({
385
+ datasetObject: v,
386
+ requiredAttributes: ["name", "values"]
387
+ }).forEach((p) => {
388
+ ue({
389
+ componentName: "VueUiTableSparkline",
390
+ type: "datasetSerieAttribute",
391
+ property: p,
392
+ index: S
393
+ });
394
+ });
395
+ }), a.dataset.map((v, S) => {
396
+ const p = (v.values || []).map((F) => isNaN(F) ? 0 : F ?? 0), x = p.reduce((F, N) => F + N, 0);
397
+ return {
398
+ ...v,
399
+ values: v.values || [],
400
+ color: we(v.color) || D.value[S] || se[S] || se[S % se.length],
401
+ sum: x,
402
+ average: x / p.length,
403
+ median: Ie(p),
404
+ sparklineDataset: p.map((F, N) => ({
405
+ period: s.value.colNames[N] || `col ${N}`,
406
+ value: F || 0
407
+ }))
408
+ };
409
+ })));
410
+ function H(v) {
411
+ const p = (v[0].values || []).map(
412
+ (F, N) => v.map((V) => V.values[N] || [])
413
+ ).map(
414
+ (F) => F.map((N, V) => [N, V]).sort((N, V) => V[0] - N[0]).map((N) => N[1])
415
+ );
416
+ return v.map((F, N) => ({
417
+ ...F,
418
+ values: F.values || [],
419
+ orders: p[N]
420
+ }));
421
+ }
422
+ const C = O(() => H(X.value)), Y = M(C.value), E = O(() => Math.max(...Y.value.map((v) => (v.values || []).length))), Z = M(void 0), J = M(!1), R = M(void 0), Q = M(-1);
423
+ function W() {
424
+ J.value = !1, R.value = void 0, Q.value = -1, Y.value = C.value;
425
+ }
426
+ function ce(v) {
427
+ J.value = !0, R.value = v;
428
+ const S = C.value.map((N) => N.values[v] || []), p = Z.value === v ? 1 : -1;
429
+ Q.value = p, v === Z.value ? Z.value = void 0 : Z.value = v;
430
+ const F = S.map((N, V) => [V, N]).sort((N, V) => p * (V[1] - N[1])).map((N) => N[0]).map((N) => C.value[N]);
431
+ Y.value = F, l.value += 1;
432
+ }
433
+ const _ = O(() => Math.max(...a.dataset.map((v) => (v.values || []).length))), I = O(() => {
434
+ let v = s.value.colNames;
435
+ if (!v.length)
436
+ for (let p = 0; p < _.value; p += 1)
437
+ v.push(`col ${p + 1}`);
438
+ s.value.showTotal && (v = [...v, s.value.translations.total]);
439
+ let S;
440
+ return s.value.showAverage && s.value.showMedian ? S = [
441
+ ...v,
442
+ s.value.translations.average,
443
+ s.value.translations.median
444
+ ] : s.value.showAverage && !s.value.showMedian ? S = [...v, s.value.translations.average] : !s.value.showAverage && s.value.showMedian ? S = [...v, s.value.translations.median] : S = v, s.value.showSparklines ? [...S, s.value.translations.chart] : S;
445
+ }), b = M(void 0), w = M(void 0);
446
+ function le({ dataIndex: v, serieIndex: S }) {
447
+ b.value = v, w.value = S;
448
+ }
449
+ const ge = M(!1);
450
+ function Oe(v) {
451
+ ge.value = v, e.value += 1;
452
+ }
453
+ function ye() {
454
+ Me(() => {
455
+ const v = [s.value.translations.serie].concat(I.value), S = X.value.map((F, N) => [
456
+ [F.name],
457
+ F.values,
458
+ [F.sum],
459
+ [F.average],
460
+ [F.median]
461
+ ]), p = [v].concat(S), x = Se(p);
462
+ xe({
463
+ csvContent: x,
464
+ title: s.value.title.text || "vue-ui-table-sparkline"
465
+ });
466
+ });
467
+ }
468
+ return r({
469
+ generatePdf: m,
470
+ generateImage: B,
471
+ generateCsv: ye,
472
+ restoreOrder: W
473
+ }), (v, S) => (o(), i("div", {
474
+ ref_key: "tableContainer",
475
+ ref: T,
476
+ class: A({ "vue-ui-responsive": j.value }),
477
+ style: { overflow: "hidden" },
478
+ id: `table_${t.value}`
479
+ }, [
480
+ u("div", {
481
+ style: { overflow: "auto" },
482
+ onPointerleave: S[0] || (S[0] = (p) => {
483
+ w.value = void 0, b.value = void 0;
484
+ })
485
+ }, [
486
+ u("table", {
487
+ class: "vue-ui-data-table",
488
+ style: g({ fontFamily: s.value.fontFamily, position: "relative" })
489
+ }, [
490
+ s.value.title.text ? (o(), i("caption", {
491
+ key: 0,
492
+ style: g({ backgroundColor: s.value.title.backgroundColor })
493
+ }, [
494
+ u("div", {
495
+ style: g({
496
+ fontSize: `${s.value.title.fontSize}px`,
497
+ fontWeight: s.value.title.bold ? "bold" : "normal",
498
+ color: s.value.title.color,
499
+ textAlign: s.value.title.textAlign
500
+ })
501
+ }, c(s.value.title.text), 5),
502
+ s.value.title.subtitle.text ? (o(), i("div", {
503
+ key: 0,
504
+ style: g({
505
+ fontSize: `${s.value.title.subtitle.fontSize}px`,
506
+ fontWeight: s.value.title.subtitle.bold ? "bold" : "normal",
507
+ color: s.value.title.subtitle.color,
508
+ textAlign: s.value.title.textAlign
509
+ })
510
+ }, c(s.value.title.subtitle.text), 5)) : y("", !0)
511
+ ], 4)) : y("", !0),
512
+ u("thead", mt, [
513
+ u("tr", {
514
+ role: "row",
515
+ class: "vue-ui-data-table__thead-row",
516
+ style: g({
517
+ backgroundColor: s.value.thead.backgroundColor,
518
+ color: s.value.thead.color
519
+ })
520
+ }, [
521
+ u("th", {
522
+ role: "cell",
523
+ style: g({
524
+ backgroundColor: s.value.thead.backgroundColor,
525
+ outline: s.value.thead.outline,
526
+ textAlign: s.value.thead.textAlign,
527
+ fontWeight: s.value.thead.bold ? "bold" : "normal"
528
+ }),
529
+ class: "sticky-col-first"
530
+ }, c(s.value.translations.serie), 5),
531
+ (o(!0), i(k, null, L(I.value, (p, x) => (o(), i("th", {
532
+ role: "cell",
533
+ style: g({
534
+ background: s.value.thead.backgroundColor,
535
+ outline: s.value.thead.outline,
536
+ textAlign: s.value.thead.textAlign,
537
+ fontWeight: s.value.thead.bold ? "bold" : "normal",
538
+ minWidth: x === I.value.length - 1 ? "150px" : "",
539
+ cursor: C.value[0].values[x] !== void 0 ? "pointer" : "default"
540
+ }),
541
+ onClick: () => ce(x),
542
+ class: A({ "sticky-col": x === I.value.length - 1 && s.value.showSparklines })
543
+ }, [
544
+ u("div", pt, [
545
+ u("span", null, c(p), 1),
546
+ J.value && x === R.value && C.value[0].values[x] !== void 0 ? (o(), oe(He, {
547
+ key: 0,
548
+ size: 18,
549
+ name: Q.value === 1 ? "sort" : "sortReverse",
550
+ stroke: s.value.thead.color
551
+ }, null, 8, ["name", "stroke"])) : y("", !0)
552
+ ]),
553
+ s.value.userOptions.show && x === I.value.length - 1 ? (o(), oe(Ye, {
554
+ ref_for: !0,
555
+ ref: "details",
556
+ key: `user_option_${e.value}`,
557
+ backgroundColor: s.value.thead.backgroundColor,
558
+ color: s.value.thead.color,
559
+ isPrinting: G(h),
560
+ isImaging: G(f),
561
+ uid: t.value,
562
+ hasPdf: s.value.userOptions.buttons.pdf,
563
+ hasXls: s.value.userOptions.buttons.csv,
564
+ hasImg: s.value.userOptions.buttons.img,
565
+ hasFullscreen: s.value.userOptions.buttons.fullscreen,
566
+ isFullscreen: ge.value,
567
+ titles: { ...s.value.userOptions.buttonTitles },
568
+ chartElement: T.value,
569
+ onToggleFullscreen: Oe,
570
+ onGeneratePdf: G(m),
571
+ onGenerateImage: G(B),
572
+ onGenerateCsv: ye
573
+ }, De({ _: 2 }, [
574
+ v.$slots.optionPdf ? {
575
+ name: "optionPdf",
576
+ fn: ne(() => [
577
+ K(v.$slots, "optionPdf", {}, void 0, !0)
578
+ ]),
579
+ key: "0"
580
+ } : void 0,
581
+ v.$slots.optionCsv ? {
582
+ name: "optionCsv",
583
+ fn: ne(() => [
584
+ K(v.$slots, "optionCsv", {}, void 0, !0)
585
+ ]),
586
+ key: "1"
587
+ } : void 0,
588
+ v.$slots.optionImg ? {
589
+ name: "optionImg",
590
+ fn: ne(() => [
591
+ K(v.$slots, "optionImg", {}, void 0, !0)
592
+ ]),
593
+ key: "2"
594
+ } : void 0,
595
+ v.$slots.optionFullscreen ? {
596
+ name: "optionFullscreen",
597
+ fn: ne(({ toggleFullscreen: F, isFullscreen: N }) => [
598
+ K(v.$slots, "optionFullscreen", me(_e({ toggleFullscreen: F, isFullscreen: N })), void 0, !0)
599
+ ]),
600
+ key: "3"
601
+ } : void 0
602
+ ]), 1032, ["backgroundColor", "color", "isPrinting", "isImaging", "uid", "hasPdf", "hasXls", "hasImg", "hasFullscreen", "isFullscreen", "titles", "chartElement", "onGeneratePdf", "onGenerateImage"])) : y("", !0)
603
+ ], 14, _t))), 256))
604
+ ], 4)
605
+ ]),
606
+ u("tbody", null, [
607
+ (o(!0), i(k, null, L(Y.value, (p, x) => (o(), i("tr", {
608
+ role: "row",
609
+ style: g({
610
+ backgroundColor: s.value.tbody.backgroundColor,
611
+ color: s.value.tbody.color
612
+ }),
613
+ class: A({ "vue-ui-data-table__tbody__row": !0, "vue-ui-data-table__tbody__row-even": x % 2 === 0, "vue-ui-data-table__tbody__row-odd": x % 2 !== 0 })
614
+ }, [
615
+ u("td", {
616
+ role: "cell",
617
+ style: g({
618
+ backgroundColor: s.value.tbody.backgroundColor,
619
+ outline: s.value.tbody.outline,
620
+ fontSize: `${s.value.tbody.fontSize}px`,
621
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
622
+ textAlign: s.value.tbody.textAlign
623
+ }),
624
+ "data-cell": s.value.translations.serie,
625
+ class: "vue-ui-data-table__tbody__td sticky-col-first"
626
+ }, [
627
+ u("div", kt, [
628
+ u("span", {
629
+ style: g({ color: p.color })
630
+ }, "⬤", 4),
631
+ u("span", null, c(p.name ?? "-"), 1)
632
+ ])
633
+ ], 12, Nt),
634
+ (o(!0), i(k, null, L(E.value, (F, N) => (o(), i("td", {
635
+ role: "cell",
636
+ style: g({
637
+ outline: s.value.tbody.outline,
638
+ fontSize: `${s.value.tbody.fontSize}px`,
639
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
640
+ textAlign: s.value.tbody.textAlign,
641
+ backgroundColor: b.value !== void 0 && w.value !== void 0 && N === b.value && w.value === x ? `${p.color}33` : "",
642
+ borderRadius: b.value !== void 0 && w.value !== void 0 && N === b.value && w.value === x ? "3px" : ""
643
+ }),
644
+ "data-cell": I.value[N],
645
+ class: "vue-ui-data-table__tbody__td",
646
+ onPointerenter: (V) => {
647
+ w.value = x, b.value = N;
648
+ }
649
+ }, c([null, void 0].includes(p.values[N]) ? "-" : Number(p.values[N].toFixed(s.value.roundingValues)).toLocaleString()), 45, Ct))), 256)),
650
+ s.value.showTotal ? (o(), i("td", {
651
+ key: 0,
652
+ role: "cell",
653
+ style: g({
654
+ outline: s.value.tbody.outline,
655
+ fontSize: `${s.value.tbody.fontSize}px`,
656
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
657
+ textAlign: s.value.tbody.textAlign
658
+ }),
659
+ "data-cell": s.value.translations.total,
660
+ class: "vue-ui-data-table__tbody__td"
661
+ }, c(Number(p.sum.toFixed(s.value.roundingTotal)).toLocaleString()), 13, It)) : y("", !0),
662
+ s.value.showAverage ? (o(), i("td", {
663
+ key: 1,
664
+ role: "cell",
665
+ style: g({
666
+ outline: s.value.tbody.outline,
667
+ fontSize: `${s.value.tbody.fontSize}px`,
668
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
669
+ textAlign: s.value.tbody.textAlign
670
+ }),
671
+ "data-cell": s.value.translations.average,
672
+ class: "vue-ui-data-table__tbody__td"
673
+ }, c(Number(p.average.toFixed(s.value.roundingAverage)).toLocaleString()), 13, Ft)) : y("", !0),
674
+ s.value.showMedian ? (o(), i("td", {
675
+ key: 2,
676
+ role: "cell",
677
+ style: g({
678
+ outline: s.value.tbody.outline,
679
+ fontSize: `${s.value.tbody.fontSize}px`,
680
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
681
+ textAlign: s.value.tbody.textAlign
682
+ }),
683
+ "data-cell": s.value.translations.median,
684
+ class: "vue-ui-data-table__tbody__td"
685
+ }, c(Number(p.median.toFixed(s.value.roundingMedian)).toLocaleString()), 13, wt)) : y("", !0),
686
+ s.value.showSparklines ? (o(), i("td", {
687
+ key: 3,
688
+ role: "cell",
689
+ "data-cell": s.value.translations.chart,
690
+ style: g({
691
+ outline: s.value.tbody.outline,
692
+ fontSize: `${s.value.tbody.fontSize}px`,
693
+ fontWeight: s.value.tbody.bold ? "bold" : "normal",
694
+ textAlign: s.value.tbody.textAlign
695
+ }),
696
+ class: "vue-ui-data-table__tbody__td sticky-col"
697
+ }, [
698
+ (o(), oe(Le, {
699
+ key: `sparkline_${x}_${l.value}`,
700
+ onHoverIndex: ({ index: F }) => le({ dataIndex: F, serieIndex: x }),
701
+ dataset: p.sparklineDataset,
702
+ showInfo: !1,
703
+ selectedIndex: b.value,
704
+ config: {
705
+ type: s.value.sparkline.type,
706
+ style: {
707
+ backgroundColor: s.value.tbody.backgroundColor,
708
+ animation: {
709
+ show: s.value.sparkline.animation.show && !G(h) && !G(f),
710
+ animationFrames: s.value.sparkline.animation.animationFrames
711
+ },
712
+ line: {
713
+ color: p.color,
714
+ smooth: s.value.sparkline.smooth,
715
+ strokeWidth: s.value.sparkline.strokeWidth
716
+ },
717
+ bar: {
718
+ color: p.color
719
+ },
720
+ area: {
721
+ color: p.color,
722
+ opacity: s.value.sparkline.showArea ? 16 : 0,
723
+ useGradient: s.value.sparkline.useGradient
724
+ },
725
+ verticalIndicator: {
726
+ color: p.color
727
+ },
728
+ plot: {
729
+ radius: 9,
730
+ stroke: s.value.tbody.backgroundColor,
731
+ strokeWidth: 3
732
+ }
733
+ }
734
+ }
735
+ }, null, 8, ["onHoverIndex", "dataset", "selectedIndex", "config"]))
736
+ ], 12, St)) : y("", !0)
737
+ ], 6))), 256))
738
+ ])
739
+ ], 4)
740
+ ], 32)
741
+ ], 10, ft));
742
+ }
743
+ }, Lt = /* @__PURE__ */ de(xt, [["__scopeId", "data-v-3af92d54"]]), un = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
744
+ __proto__: null,
745
+ default: Lt
746
+ }, Symbol.toStringTag, { value: "Module" })), Ot = {
747
+ name: "vue-ui-table",
748
+ props: {
749
+ config: {
750
+ type: Object,
751
+ default() {
752
+ return {};
753
+ }
754
+ },
755
+ dataset: {
756
+ type: Object,
757
+ default() {
758
+ return {};
759
+ }
760
+ }
761
+ },
762
+ data() {
763
+ return {
764
+ uid: `vue-ui-table-${Math.random()}`,
765
+ bodyCopy: JSON.parse(JSON.stringify(this.dataset.body)).map((r, a) => ({
766
+ ...r,
767
+ absoluteIndex: a
768
+ })),
769
+ buttonTimeout: null,
770
+ canMoveChart: !1,
771
+ chart: {
772
+ height: 316,
773
+ type: "bar",
774
+ width: 512
775
+ },
776
+ constants: {
777
+ ASC: 1,
778
+ BAR: "bar",
779
+ DATE: "date",
780
+ DESC: -1,
781
+ DONUT: "donut",
782
+ LINE: "line",
783
+ NUMERIC: "numeric",
784
+ PERCENTAGE: "percentage",
785
+ TEXT: "text"
786
+ },
787
+ clientX: 100,
788
+ clientY: 100,
789
+ cssClass: {
790
+ CELL: "smart-td-selected",
791
+ FIRST_TD: "smart-td-selected-first",
792
+ LAST_TD: "smart-td-selected-last",
793
+ ROW: "smart-td-selected-neighbor"
794
+ },
795
+ currentDonut: void 0,
796
+ currentFilter: void 0,
797
+ currentSearch: void 0,
798
+ currentSelectionSpan: {
799
+ col: void 0,
800
+ rows: []
801
+ },
802
+ currentPage: 0,
803
+ dates: {},
804
+ filteredDatesIndexes: {},
805
+ hasNaN: {},
806
+ iconColor: "#2D353C",
807
+ iconSize: 20,
808
+ immutableRangeFilters: {},
809
+ isExportRequest: !1,
810
+ isLoading: !1,
811
+ itemsPerPage: this.config.rowsPerPage ? this.config.rowsPerPage : 25,
812
+ multiselects: {},
813
+ paginatorOptions: [.../* @__PURE__ */ new Set([10, 25, 50, 100, 250, 500, this.config.rowsPerPage ? this.config.rowsPerPage : 25, this.dataset.body.length])].sort((r, a) => r - a),
814
+ palette: se,
815
+ percentages: {},
816
+ rafId: null,
817
+ rangeFilters: {},
818
+ searches: {},
819
+ selectedColumn: void 0,
820
+ selectedDonutCategory: void 0,
821
+ selectedPlot: void 0,
822
+ showChart: !1,
823
+ showDonutOptions: !1,
824
+ sorts: {},
825
+ tableBody: JSON.parse(JSON.stringify(this.dataset.body)).map((r, a) => ({
826
+ ...r,
827
+ absoluteIndex: a
828
+ })),
829
+ tableHead: JSON.parse(JSON.stringify(this.dataset.header)).map((r) => ({
830
+ average: Object.hasOwn(r, "average") ? r.average : !1,
831
+ decimals: Object.hasOwn(r, "decimals") ? r.decimals : 0,
832
+ isMultiselect: Object.hasOwn(r, "isMultiselect") ? r.isMultiselect : !1,
833
+ isPercentage: Object.hasOwn(r, "isPercentage") ? r.isPercentage : !1,
834
+ isSearch: Object.hasOwn(r, "isSearch") ? r.isSearch : !1,
835
+ isSort: Object.hasOwn(r, "isSort") ? r.isSort : !1,
836
+ name: r.name,
837
+ // this attribute is mandatory
838
+ percentageTo: Object.hasOwn(r, "percentageTo") ? r.percentageTo : void 0,
839
+ prefix: Object.hasOwn(r, "prefix") ? r.prefix : "",
840
+ rangeFilter: Object.hasOwn(r, "rangeFilter") ? r.rangeFilter : !1,
841
+ suffix: Object.hasOwn(r, "suffix") ? r.suffix : "",
842
+ sum: Object.hasOwn(r, "sum") ? r.sum : !1,
843
+ type: r.type
844
+ // this attribute is mandatory
845
+ }))
846
+ };
847
+ },
848
+ mounted() {
849
+ if (this.dataset.header.length === 0)
850
+ throw new Error(`vue-ui-table error: missing header data.
851
+ Provide an array of objects of type:
852
+ {
853
+ name: string;
854
+ type: string; ('text' | 'numeric' | 'date')
855
+ average: boolean;
856
+ decimals: number | undefined;
857
+ sum: boolean;
858
+ isSort:boolean;
859
+ isSearch: boolean;
860
+ isMultiselect: boolean;
861
+ isPercentage: boolean;
862
+ percentageTo: string; (or '')
863
+ }`);
864
+ if (this.dataset.body.length === 0)
865
+ throw new Error("vue-ui-table error: missing body data");
866
+ this.isLoading = !0, this.promiseWithAsyncFunction(this.prepareBodyCopy, () => {
867
+ this.$forceUpdate(), this.isLoading = !1;
868
+ }), document.addEventListener("keydown", (n) => {
869
+ const r = document.activeElement;
870
+ (r && Array.from(r.classList).includes("td-focusable") && n.key.includes("Arrow") || n.code === "Space") && n.preventDefault();
871
+ });
872
+ },
873
+ watch: {
874
+ showChart: function(n) {
875
+ n && this.$nextTick(() => {
876
+ this.closeDragElement();
877
+ const r = this.$refs.chartModal;
878
+ r.onmousedown = this.dragMouseDown;
879
+ });
880
+ }
881
+ },
882
+ computed: {
883
+ availableDonutCategories() {
884
+ return Object.keys(this.multiselects).map((n) => ({
885
+ index: n,
886
+ name: this.dataset.header[n].name,
887
+ options: this.multiselects[n]
888
+ }));
889
+ },
890
+ canChart() {
891
+ return this.FINAL_CONFIG.useChart && this.currentSelectionSpan.rows.length > 1;
892
+ },
893
+ chartData() {
894
+ if (!this.canChart) return [];
895
+ const n = 316, r = 512, a = this.currentSelectionSpan.rows.length, d = r / a, t = Math.max(...this.currentSelectionSpan.rows.map((D) => D.value)), e = Math.min(...this.currentSelectionSpan.rows.map((D) => D.value)), l = e >= 0 ? 0 : Math.abs(e), s = t + l, h = t < 0 && e < 0, f = this.dataset.header[this.currentSelectionSpan.col].isPercentage, m = this.currentSelectionSpan.rows.map((D, T) => ({
896
+ x: d * T + d / 2,
897
+ y: (1 - (D.value + l) / s) * n,
898
+ value: f ? D.value * 100 : D.value,
899
+ suffix: f ? "%" : this.dataset.header[this.currentSelectionSpan.col].suffix ? this.dataset.header[this.currentSelectionSpan.col].suffix : "",
900
+ prefix: this.dataset.header[this.currentSelectionSpan.col].prefix ? this.dataset.header[this.currentSelectionSpan.col].prefix : "",
901
+ index: D.index,
902
+ absoluteValue: f ? Math.abs(D.value) * 100 : Math.abs(D.value)
903
+ })), B = n - n * (l / s);
904
+ return { isAllNegative: h, zero: B, plots: m, slot: d, progression: m.length >= 2 ? this.calcLinearProgression(m) : !1 };
905
+ },
906
+ donutHollowLabels() {
907
+ return {
908
+ total: Number((this.currentDonut.map((n) => n.absoluteValue).reduce((n, r) => n + r, 0) * (this.dataset.header[this.currentSelectionSpan.col].isPercentage ? 100 : 1)).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
909
+ average: Number((this.currentDonut.map((n) => n.absoluteValue).reduce((n, r) => n + r, 0) / this.currentSelectionSpan.rows.length * (this.dataset.header[this.currentSelectionSpan.col].isPercentage ? 100 : 1)).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString()
910
+ };
911
+ },
912
+ hasNumericTypes() {
913
+ return this.dataset.header.map((n) => n.type).includes(this.constants.NUMERIC);
914
+ },
915
+ icons() {
916
+ return {
917
+ arrowSort: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M3 9l4 -4l4 4m-4 -4v14" /><path d="M21 15l-4 4l-4 -4m4 4v-14" /></svg>`,
918
+ bar: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M3 12m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M9 8m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M15 4m0 1a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z" /><path d="M4 20l14 0" /></svg>`,
919
+ chart: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M4 19l16 0" /><path d="M4 15l4 -6l4 2l4 -5l4 4" /></svg>`,
920
+ chevronDown: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M6 9l6 6l6 -6" /></svg>`,
921
+ chevronLeft: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 1.6}" height="${this.iconSize * 1.6}" 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="M15 6l-6 6l6 6" /></svg>`,
922
+ chevronRight: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 1.6}" height="${this.iconSize * 1.6}" 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="M9 6l6 6l-6 6" /></svg>`,
923
+ donut: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 0.8}" height="${this.iconSize * 0.8}" 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="M12 3v5m4 4h5" /><path d="M8.929 14.582l-3.429 2.918" /><path d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0" /><path d="M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0" /></svg>`,
924
+ export: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M12.5 21h-7.5a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v7.5" /><path d="M3 10h18" /><path d="M10 3v18" /><path d="M16 19h6" /><path d="M19 16l3 3l-3 3" /></svg>`,
925
+ fileDownload: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M14 3v4a1 1 0 0 0 1 1h4" /><path d="M17 21h-10a2 2 0 0 1 -2 -2v-14a2 2 0 0 1 2 -2h7l5 5v11a2 2 0 0 1 -2 2z" /><path d="M12 17v-6" /><path d="M9.5 14.5l2.5 2.5l2.5 -2.5" /></svg>`,
926
+ filter: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z" /></svg>`,
927
+ move: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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 9l3 3l-3 3" /><path d="M15 12h6" /><path d="M6 9l-3 3l3 3" /><path d="M3 12h6" /><path d="M9 18l3 3l3 -3" /><path d="M12 15v6" /><path d="M15 6l-3 -3l-3 3" /><path d="M12 3v6" /></svg>`,
928
+ sort09: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M4 15l3 3l3 -3" /><path d="M7 6v12" /><path d="M17 3a2 2 0 0 1 2 2v3a2 2 0 1 1 -4 0v-3a2 2 0 0 1 2 -2z" /><path d="M17 16m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M19 16v3a2 2 0 0 1 -2 2h-1.5" /></svg>`,
929
+ sort90: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M4 15l3 3l3 -3" /><path d="M7 6v12" /><path d="M17 14a2 2 0 0 1 2 2v3a2 2 0 1 1 -4 0v-3a2 2 0 0 1 2 -2z" /><path d="M17 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0" /><path d="M19 5v3a2 2 0 0 1 -2 2h-1.5" /></svg>`,
930
+ sortAZ: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M15 10v-5c0 -1.38 .62 -2 2 -2s2 .62 2 2v5m0 -3h-4" /><path d="M19 21h-4l4 -7h-4" /><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /></svg>`,
931
+ sortZA: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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="M15 21v-5c0 -1.38 .62 -2 2 -2s2 .62 2 2v5m0 -3h-4" /><path d="M19 10h-4l4 -7h-4" /><path d="M4 15l3 3l3 -3" /><path d="M7 6v12" /></svg>`,
932
+ sum: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" 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>`,
933
+ table: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize}" height="${this.iconSize}" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" fill="white" d="M 10 2, 21 2, 21 21, 10 21Z"/><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z" /><path d="M3 10h18" /><path d="M10 3v18" /></svg>`,
934
+ warning: `<svg xmlns="http://www.w3.org/2000/svg" width="${this.iconSize * 0.8}" height="${this.iconSize * 0.8}" 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="M10.24 3.957l-8.422 14.06a1.989 1.989 0 0 0 1.7 2.983h16.845a1.989 1.989 0 0 0 1.7 -2.983l-8.423 -14.06a1.989 1.989 0 0 0 -3.4 0z" /><path d="M12 9v4" /><path d="M12 17h.01" /></svg>`
935
+ };
936
+ },
937
+ pages() {
938
+ const n = [];
939
+ if (this.bodyCopy.length)
940
+ for (let r = 0; r < this.bodyCopy.length; r += this.itemsPerPage)
941
+ n.push(this.bodyCopy.slice(r, r + this.itemsPerPage));
942
+ return n;
943
+ },
944
+ rows() {
945
+ return this.bodyCopy.map((n) => n.td);
946
+ },
947
+ selectedCellsCalculations() {
948
+ return {
949
+ sumPercentage: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, r) => n + r, 0) * 100).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
950
+ sumRegular: Number(this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, r) => n + r, 0).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
951
+ averagePercentage: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, r) => n + r, 0) / this.currentSelectionSpan.rows.length * 100).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString(),
952
+ averageRegular: Number((this.currentSelectionSpan.rows.map((n) => n.value).reduce((n, r) => n + r, 0) / this.currentSelectionSpan.rows.length).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString()
953
+ };
954
+ },
955
+ FINAL_CONFIG() {
956
+ const { vue_ui_table: n } = he();
957
+ if (!Object.keys(this.config || {}).length)
958
+ return n;
959
+ const r = this.treeShake({
960
+ defaultConfig: n,
961
+ userConfig: this.config
962
+ });
963
+ return this.convertConfigColors(r);
964
+ },
965
+ visibleRows() {
966
+ return this.pages[this.currentPage];
967
+ }
968
+ },
969
+ methods: {
970
+ // lib
971
+ treeShake: Ue,
972
+ makeDonut: Ve,
973
+ convertColorToHex: we,
974
+ convertConfigColors: We,
975
+ createCsvContent: Se,
976
+ downloadCsv: xe,
977
+ // specific
978
+ applyDonutOption() {
979
+ const n = this.selectedDonutCategory.options.map((r, a) => ({
980
+ name: r,
981
+ color: this.palette[a] || this.palette[a % this.palette.length],
982
+ value: this.visibleRows.filter((d, t) => d.td[this.selectedDonutCategory.index] === r && this.currentSelectionSpan.rows.map((e) => e.index).includes(t)).map((d) => d.td[this.currentSelectionSpan.col]).reduce((d, t) => Math.abs(d) + Math.abs(t), 0),
983
+ absoluteValue: this.visibleRows.filter((d, t) => d.td[this.selectedDonutCategory.index] === r && this.currentSelectionSpan.rows.map((e) => e.index).includes(t)).map((d) => d.td[this.currentSelectionSpan.col]).reduce((d, t) => d + t, 0)
984
+ })).sort((r, a) => a.value - r.value);
985
+ this.currentDonut = this.makeDonut({ series: n }, 50, 50, 30, 30), this.$nextTick(() => {
986
+ this.chart.type = this.constants.DONUT, this.showDonutOptions = !1;
987
+ });
988
+ },
989
+ calcRectY(n, r) {
990
+ return n >= 0 ? r : this.chartData.zero;
991
+ },
992
+ canResetColumn(n, r) {
993
+ return !this.hasNaN[n] && (r.isSort || r.isSearch || r.isMultiselect || r.rangeFilter) && ![this.constants.DATE].includes(r.type);
994
+ },
995
+ createXls(n = "all") {
996
+ const r = this.dataset.header.map((e) => e.name), a = n === "all" ? this.bodyCopy.map((e) => e.td) : this.visibleRows.map((e) => e.td), d = [r].concat(a), t = this.createCsvContent(d);
997
+ this.downloadCsv({ csvContent: t, title: "vue-ui-table" });
998
+ },
999
+ calcLinearProgression: Fe,
1000
+ closeAllDropdowns() {
1001
+ const n = document.getElementsByClassName("th-dropdown");
1002
+ n.length && Array.from(n).forEach((r) => {
1003
+ r.dataset.isOpen = !1;
1004
+ });
1005
+ },
1006
+ debounce(n, r) {
1007
+ let a;
1008
+ clearTimeout(a), a = setTimeout(n, r);
1009
+ },
1010
+ filterBody() {
1011
+ this.bodyCopy = this.tableBody.filter((n) => {
1012
+ for (const r in this.searches)
1013
+ if (!n.td[r].toUpperCase().includes(this.searches[r].toUpperCase()))
1014
+ return !1;
1015
+ for (const r in this.multiselects)
1016
+ if (!this.multiselects[r].some((d) => d === n.td[r]))
1017
+ return !1;
1018
+ for (const r in this.dates) {
1019
+ const a = new Date(n.td[r]), d = new Date(this.dates[r].from), t = new Date(this.dates[r].to);
1020
+ if (a < d || a > t)
1021
+ return !1;
1022
+ }
1023
+ return !0;
1024
+ }), this.sortBody();
1025
+ },
1026
+ getAverage(n) {
1027
+ return this.rows.map((r) => r[n]).map((r) => isNaN(Number(r)) ? 0 : r).reduce((r, a) => r + a, 0) / this.bodyCopy.length;
1028
+ },
1029
+ getDatesRange(n) {
1030
+ const r = this.dataset.body.map((D) => new Date(D.td[n])), a = new Date(Math.min(...r)), d = new Date(Math.max(...r)), t = a.getFullYear(), e = d.getFullYear(), l = String(a.getMonth() + 1).padStart(2, "0"), s = String(d.getMonth() + 1).padStart(2, "0"), h = String(a.getDate()).padStart(2, "0"), f = String(d.getDate()).padStart(2, "0"), m = `${t}-${l}-${h}`, B = `${e}-${s}-${f}`;
1031
+ return {
1032
+ from: m,
1033
+ to: B
1034
+ };
1035
+ },
1036
+ getDonutLegendValue(n) {
1037
+ return Number((n * (this.dataset.header[this.currentSelectionSpan.col].isPercentage ? 100 : 1)).toFixed(this.dataset.header[this.currentSelectionSpan.col].decimals)).toLocaleString();
1038
+ },
1039
+ getDropdownOptions(n) {
1040
+ return [...new Set(this.dataset.body.map((r) => r.td[n]))];
1041
+ },
1042
+ getSum(n) {
1043
+ return this.rows.map((r) => r[n]).map((r) => isNaN(Number(r)) ? 0 : r).reduce((r, a) => r + a, 0);
1044
+ },
1045
+ includesNaN(n) {
1046
+ return n.includes(NaN);
1047
+ },
1048
+ isDropdownOptionSelected(n, r) {
1049
+ return this.multiselects[r] ? this.multiselects[r].includes(n) : !0;
1050
+ },
1051
+ isNumeric(n) {
1052
+ return !isNaN(Number(String(n).replaceAll("%", "")));
1053
+ },
1054
+ isResetDisabled(n, r) {
1055
+ const a = r.isSort, d = r.isSearch, t = r.isMultiselect && this.multiselects[n], e = r.rangeFilter, l = (s) => {
1056
+ if (e && this.rangeFilters[s])
1057
+ return Math.round(this.rangeFilters[s].min) === this.immutableRangeFilters[s].min && Math.round(this.rangeFilters[s].max) === this.immutableRangeFilters[s].max;
1058
+ };
1059
+ if (a && d && t && e)
1060
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && l(n);
1061
+ if (a && d && t)
1062
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
1063
+ if (a && d && e)
1064
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]) && l(n);
1065
+ if (a && d)
1066
+ return ["", void 0].includes(this.searches[n]) && [void 0].includes(this.sorts[n]);
1067
+ if (a && t && e)
1068
+ return [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && l(n);
1069
+ if (a && t)
1070
+ return [void 0].includes(this.sorts[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
1071
+ if (d && t && e)
1072
+ return ["", void 0].includes(this.searches[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length && l(n);
1073
+ if (d && t)
1074
+ return ["", void 0].includes(this.searches[n]) && this.multiselects[n].length === this.getDropdownOptions(n).length;
1075
+ if (d && e)
1076
+ return ["", void 0].includes(this.searches[n]) && l(n);
1077
+ if (d)
1078
+ return ["", void 0].includes(this.searches[n]);
1079
+ if (a && e)
1080
+ return [void 0].includes(this.sorts[n]) && l(n);
1081
+ if (a)
1082
+ return [void 0].includes(this.sorts[n]);
1083
+ if (t && e)
1084
+ return this.multiselects[n].length === this.getDropdownOptions(n).length && l(n);
1085
+ if (t)
1086
+ return this.multiselects[n].length === this.getDropdownOptions(n).length;
1087
+ },
1088
+ navigate(n) {
1089
+ this.resetSelection(), n === "next" && this.currentPage < this.pages.length ? this.currentPage += 1 : n === "previous" && this.currentPage >= 1 ? this.currentPage -= 1 : this.currentPage = n - 1, this.$refs.tableWrapper.scrollTo({
1090
+ top: 0,
1091
+ left: 0,
1092
+ behavior: "smooth"
1093
+ });
1094
+ },
1095
+ navigateCell(n) {
1096
+ n.preventDefault();
1097
+ const r = n.keyCode, a = 38, d = 40, t = 37, e = 39;
1098
+ if (![a, d, t, e].includes(r)) return;
1099
+ const l = n.target.id, s = /cell_(\d+)_(\d+)_vue-ui-table-(\d+)/, h = l.match(s), f = parseInt(h[1]), m = parseInt(h[2]), B = document.getElementById(`cell_${f}_${m + 1}_${this.uid}`), D = document.getElementById(`cell_${f}_${m - 1}_${this.uid}`), T = document.getElementById(`cell_${f + 1}_${m}_${this.uid}`), j = document.getElementById(`cell_${f - 1}_${m}_${this.uid}`);
1100
+ let z;
1101
+ switch (!0) {
1102
+ case r === e:
1103
+ z = B;
1104
+ break;
1105
+ case r === t:
1106
+ z = D;
1107
+ break;
1108
+ case r === a:
1109
+ z = j;
1110
+ break;
1111
+ case r === d:
1112
+ z = T;
1113
+ break;
1114
+ default:
1115
+ return;
1116
+ }
1117
+ z && (z.focus(), z.scrollIntoView({ behavior: "smooth", block: "center" }));
1118
+ },
1119
+ openDonutOptions() {
1120
+ this.selectedDonutCategory = this.availableDonutCategories[0], this.showDonutOptions = !0;
1121
+ },
1122
+ placeLabelOnTopOrBottom({ previousPlot: n, currentPlot: r, nextPlot: a }) {
1123
+ const d = r.y - 38, t = r.y + 16;
1124
+ return n && a ? n.value < r.value && a.value < r.value ? d : n.value > r.value && a.value > r.value ? t : (n.value > r.value && a.value < r.value || n.value < r.value && a.value > r.value, d) : n && !a ? n.value > r.value ? t : d : !n && a && a.value > r.value ? t : d;
1125
+ },
1126
+ async prepareBodyCopy() {
1127
+ return new Promise((n) => {
1128
+ const r = [];
1129
+ this.tableHead.forEach((a, d) => {
1130
+ if (a.isSearch && Object.assign(this.searches, { [d]: "" }), a.isMultiselect && Object.assign(this.multiselects, { [d]: this.getDropdownOptions(d) }), a.type === this.constants.DATE && (Object.assign(this.dates, { [d]: this.getDatesRange(d) }), Object.assign(this.filteredDatesIndexes, { [d]: !1 })), (a.isPercentage || a.percentageTo) && Object.assign(this.percentages, { [d]: {
1131
+ reference: a.percentageTo,
1132
+ referenceIndex: this.dataset.header.map((t) => t.name).indexOf(a.percentageTo)
1133
+ } }), a.rangeFilter && (Object.assign(this.rangeFilters, { [d]: {
1134
+ min: Math.round(Math.min(...this.dataset.body.map((t) => t.td).map((t) => t[d]))),
1135
+ max: Math.round(Math.max(...this.dataset.body.map((t) => t.td).map((t) => t[d])))
1136
+ } }), Object.assign(this.immutableRangeFilters, { [d]: {
1137
+ min: Math.round(Math.min(...this.dataset.body.map((t) => t.td).map((t) => t[d]))),
1138
+ max: Math.round(Math.max(...this.dataset.body.map((t) => t.td).map((t) => t[d])))
1139
+ } })), a.isPercentage) {
1140
+ const t = this.dataset.header.map((l) => l.name).indexOf(a.percentageTo), e = this.dataset.body.map((l) => l.td[t]).reduce((l, s) => l + s, 0);
1141
+ r.push([d, t, e]);
1142
+ }
1143
+ a.type === this.constants.NUMERIC && !a.isPercentage && Object.assign(this.hasNaN, { [d]: this.includesNaN(this.dataset.body.map((t) => Number(t.td[d]))) });
1144
+ }), this.bodyCopy.forEach((a, d) => {
1145
+ r.map((t) => {
1146
+ const [e, l, s] = t;
1147
+ a.td[e] = a.td[l] / s;
1148
+ }), a.td.forEach((t, e) => {
1149
+ this.dataset.header[e].type === this.constants.TEXT && this.dataset.header[e].isSearch && (a[e] = this.stringToNumber(t)), this.dataset.header[e].type === this.constants.DATE && (a[e] = new Date(t).getTime()), this.dataset.header[e].type === this.constants.NUMERIC && (a[e] = isNaN(Number(t)) ? e : t), this.tableBody[d][e] = a[e];
1150
+ });
1151
+ }), n(!0);
1152
+ });
1153
+ },
1154
+ promiseWithAsyncFunction(n, r) {
1155
+ return new Promise((a, d) => {
1156
+ n().then((t) => {
1157
+ try {
1158
+ const e = r(t);
1159
+ a(e);
1160
+ } catch (e) {
1161
+ d(e);
1162
+ }
1163
+ }).catch((t) => {
1164
+ d(t);
1165
+ });
1166
+ });
1167
+ },
1168
+ resetDates(n) {
1169
+ this.dates[n] = {
1170
+ from: this.getDatesRange(n).from,
1171
+ to: this.getDatesRange(n).to
1172
+ }, this.filteredDatesIndexes[n] = !1, this.$forceUpdate(), this.filterBody();
1173
+ },
1174
+ resetFilter(n, r, a) {
1175
+ const d = a.currentTarget;
1176
+ clearTimeout(this.buttonTimeout), d.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
1177
+ d.classList.remove("clicked");
1178
+ }, 200), this.currentFilter = void 0, r.rangeFilter && (this.rangeFilters[n].min = this.immutableRangeFilters[n].min, this.rangeFilters[n].max = this.immutableRangeFilters[n].max), r.isMultiselect ? (this.multiselects[n] = this.getDropdownOptions(n), r.type === this.constants.TEXT && (this.sorts[n] = void 0), r.isSearch && (this.searches[n] = "")) : r.type === this.constants.NUMERIC ? this.sorts[n] = void 0 : r.type === this.constants.TEXT ? (this.sorts[n] = void 0, this.searches[n] = "") : r.type === this.constants.DATE && (this.sorts[n] = void 0), this.filterBody();
1179
+ },
1180
+ resetSelection() {
1181
+ const n = document.getElementsByClassName(`tr_${this.uid}`);
1182
+ Array.from(n).forEach((r) => {
1183
+ Array.from(r.getElementsByTagName("td")).forEach((a) => {
1184
+ a.dataset.row === "even" ? (a.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, a.style.color = this.FINAL_CONFIG.style.rows.even.color) : (a.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, a.style.color = this.FINAL_CONFIG.style.rows.odd.color);
1185
+ });
1186
+ }), Array.from(n).forEach((r) => r.dataset.selected = "false"), this.currentPage > this.pages.length - 1 && (this.currentPage = this.pages.length - 1), this.showChart = !1, this.currentDonut = void 0, this.selectedColumn = void 0, this.chart.type = this.constants.BAR, this.currentSelectionSpan = {
1187
+ col: void 0,
1188
+ rows: []
1189
+ }, this.clientX = 100, this.clientY = 100;
1190
+ },
1191
+ selectColumn(n) {
1192
+ this.currentSelectionSpan.col !== n ? (this.visibleRows.forEach((r, a) => {
1193
+ this.selectTd({
1194
+ td: r.td[n],
1195
+ rowIndex: a,
1196
+ colIndex: n,
1197
+ headerType: this.constants.NUMERIC,
1198
+ event: {
1199
+ currentTarget: document.getElementById(`cell_${a}_${n}_${this.uid}`)
1200
+ }
1201
+ });
1202
+ }), this.selectedColumn = n) : (this.selectedColumn = void 0, this.resetSelection());
1203
+ },
1204
+ selectDropdownOption(n, r) {
1205
+ this.multiselects[r].includes(n) ? this.multiselects[r] = this.multiselects[r].filter((a) => a !== n) : this.multiselects[r].push(n), this.$forceUpdate(), this.filterBody();
1206
+ },
1207
+ selectTd({ td: n, rowIndex: r, colIndex: a, headerType: d, event: t }) {
1208
+ if (d !== this.constants.NUMERIC || isNaN(Number(n))) {
1209
+ this.resetSelection();
1210
+ return;
1211
+ }
1212
+ this.currentSelectionSpan.col !== a && this.resetSelection();
1213
+ const e = t.currentTarget.parentNode;
1214
+ this.currentSelectionSpan.col = a, this.currentSelectionSpan.rows.map((l) => l.index).includes(r) ? (e.dataset.selected = "false", this.currentSelectionSpan.rows = this.currentSelectionSpan.rows.filter((l) => l.index !== r), t.currentTarget.classList.remove(this.cssClass.CELL), Array.from(e.children).forEach((l, s) => {
1215
+ l.dataset.row === "even" ? (l.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, l.style.color = this.FINAL_CONFIG.style.rows.even.olor) : (l.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, l.style.color = this.FINAL_CONFIG.style.rows.odd.color);
1216
+ }), t.currentTarget.dataset.row === "even" ? (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.even.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.even.color) : (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.odd.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.odd.color)) : (e.dataset.selected = "true", this.currentSelectionSpan.rows.push({
1217
+ index: r,
1218
+ value: n
1219
+ }), Array.from(e.children).forEach((l, s) => {
1220
+ l.dataset.row === "even" ? (l.style.background = this.FINAL_CONFIG.style.rows.even.selectedNeighbors.backgroundColor, l.style.color = this.FINAL_CONFIG.style.rows.even.selectedNeighbors.color) : (l.style.background = this.FINAL_CONFIG.style.rows.odd.selectedNeighbors.backgroundColor, l.style.color = this.FINAL_CONFIG.style.rows.odd.selectedNeighbors.color);
1221
+ }), t.currentTarget.dataset.row === "odd" ? (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.odd.selectedCell.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.odd.selectedCell.color) : (t.currentTarget.style.background = this.FINAL_CONFIG.style.rows.even.selectedCell.backgroundColor, t.currentTarget.style.color = this.FINAL_CONFIG.style.rows.even.selectedCell.color)), this.currentSelectionSpan.rows = this.currentSelectionSpan.rows.sort((l, s) => l.index - s.index), this.chart.type === this.constants.DONUT && this.currentSelectionSpan.rows.length > 0 && this.applyDonutOption();
1222
+ },
1223
+ setFilterDatesIndexes(n) {
1224
+ this.filteredDatesIndexes[n] = !(this.getDatesRange(n).from === this.dates[n].from && this.getDatesRange(n).to === this.dates[n].to);
1225
+ },
1226
+ sortBody() {
1227
+ this.resetSelection(), Object.keys(this.rangeFilters).forEach((n) => {
1228
+ this.filterByRange(this.bodyCopy, n);
1229
+ }), Object.keys(this.sorts).forEach((n) => {
1230
+ this.sortByNumber(this.bodyCopy, n);
1231
+ }), this.currentFilter !== void 0 && this.sortByNumber(this.bodyCopy, this.currentFilter), this.dataset.header.forEach((n, r) => {
1232
+ if (n.isPercentage) {
1233
+ const a = this.percentages[r].referenceIndex, d = this.bodyCopy.map((t) => t.td[a]).reduce((t, e) => t + e, 0);
1234
+ this.bodyCopy.forEach((t) => {
1235
+ t.td[r] = t.td[a] / d;
1236
+ });
1237
+ }
1238
+ }), this.currentPage > this.pages.length - 1 && (this.currentPage = this.pages.length - 1), [-1].includes(this.currentPage) && (this.currentPage = 0), this.$forceUpdate();
1239
+ },
1240
+ filterByRange(n, r) {
1241
+ this.bodyCopy = n.filter((a) => a.td[r] >= this.rangeFilters[r].min && a[r] <= this.rangeFilters[r].max);
1242
+ },
1243
+ sortByNumber(n, r) {
1244
+ if (this.sorts[r] === this.constants.ASC && (n = n.sort((a, d) => a[r] - d[r])), this.sorts[r] === this.constants.DESC)
1245
+ n = n.sort((a, d) => d[r] - a[r]);
1246
+ else
1247
+ return 0;
1248
+ },
1249
+ sortTh(n, r) {
1250
+ this.currentFilter = n;
1251
+ const a = r.currentTarget;
1252
+ clearTimeout(this.buttonTimeout), a.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
1253
+ a.classList.remove("clicked");
1254
+ }, 200), this.sorts[n] === 1 ? this.sorts[n] = this.constants.DESC : this.sorts[n] = this.constants.ASC, this.sortBody();
1255
+ },
1256
+ stringToNumber(n) {
1257
+ let r = 0;
1258
+ for (let a = 0; a < n.length; a += 1)
1259
+ r += n.charCodeAt(a);
1260
+ return r;
1261
+ },
1262
+ toggleMultiselect(n, r, a) {
1263
+ const d = a.currentTarget;
1264
+ clearTimeout(this.buttonTimeout), d.classList.add("clicked"), this.buttonTimeout = setTimeout(() => {
1265
+ d.classList.remove("clicked");
1266
+ }, 200);
1267
+ const t = document.getElementById(`th_dropdown_${n}`);
1268
+ t.dataset.isOpen === "false" ? t.dataset.isOpen = "true" : t.dataset.isOpen = "false";
1269
+ },
1270
+ updateCurrentPage(n) {
1271
+ this.resetSelection(), this.currentPage = Number(n.target.value);
1272
+ },
1273
+ // DONUTS
1274
+ calcDonutMarkerConnectorColor(n) {
1275
+ return n.proportion * 100 > 3 ? n.color : "transparent";
1276
+ },
1277
+ calcDonutMarkerLabelPositionX(n) {
1278
+ return n.center.endX + this.calcMarkerOffset(n, 50);
1279
+ },
1280
+ calcMarkerOffset(n, r) {
1281
+ return n.center.endX - r >= 0 ? 3 : -2;
1282
+ },
1283
+ displayArcPercentage(n, r) {
1284
+ return isNaN(n.value / this.sumValues(r)) ? 0 : (n.value / this.sumValues(r) * 100).toFixed(0) + "%";
1285
+ },
1286
+ isArcBigEnough(n) {
1287
+ return n.proportion * 100 > 3;
1288
+ },
1289
+ sumValues(n) {
1290
+ return [...n].map((r) => r.value).reduce((r, a) => r + a, 0);
1291
+ },
1292
+ // CHART DRAGGING METHODS
1293
+ closeDragElement() {
1294
+ document.onmouseup = null, document.onmousemove = null;
1295
+ },
1296
+ dragMouseDown(n) {
1297
+ n = n || window.event, n.preventDefault(), document.onmouseup = this.closeDragElement, document.onmousemove = this.elementDrag;
1298
+ },
1299
+ elementDrag(n) {
1300
+ this.rafId || (this.rafId = window.requestAnimationFrame(() => this.onElementDrag(n)));
1301
+ },
1302
+ onElementDrag(n) {
1303
+ n = n || window.event, n.preventDefault();
1304
+ const a = this.$refs.chartModal.getBoundingClientRect();
1305
+ this.clientX = n.clientX - a.width / 2, this.clientY = n.clientY - a.height / 2, this.rafId = null;
1306
+ }
1307
+ }
1308
+ }, U = (n) => (ze("data-v-5a108fbd"), n = n(), Pe(), n), At = { class: "vue-ui-table-export-hub" }, Dt = ["innerHTML"], Mt = ["data-is-open"], Gt = /* @__PURE__ */ U(() => /* @__PURE__ */ u("b", { class: "vue-ui-table-export-hub-title" }, " Export ", -1)), Tt = { class: "vue-ui-table-export-hub-options" }, zt = { class: "vue-ui-table-export-hub-option-wrapper" }, Pt = { class: "label" }, Et = ["innerHTML"], Bt = { class: "vue-ui-table-export-hub-option-wrapper" }, Rt = { class: "label" }, Ht = ["innerHTML"], Ut = { class: "vue-ui-table" }, Vt = { id: "tableHead" }, Wt = /* @__PURE__ */ U(() => /* @__PURE__ */ u("th", { class: "invisible-cell" }, null, -1)), jt = { key: 0 }, Xt = { key: 0 }, Yt = { key: 1 }, Zt = /* @__PURE__ */ U(() => /* @__PURE__ */ u("th", { class: "invisible-cell" }, null, -1)), qt = {
1309
+ key: 0,
1310
+ style: { display: "flex", "align-items": "center", "justify-content": "flex-end" }
1311
+ }, Kt = ["innerHTML"], Jt = {
1312
+ key: 0,
1313
+ style: { "margin-left": "3px" }
1314
+ }, Qt = /* @__PURE__ */ U(() => /* @__PURE__ */ u("th", { class: "invisible-cell" }, null, -1)), $t = { key: 0 }, es = /* @__PURE__ */ U(() => /* @__PURE__ */ u("th", { class: "invisible-cell" }, null, -1)), ts = { class: "th-filter" }, ss = {
1315
+ key: 0,
1316
+ class: "th-date"
1317
+ }, ls = { class: "date-wrapper--inputs" }, ns = { class: "date-fieldset" }, rs = ["for"], as = ["id", "onUpdate:modelValue", "onInput"], os = { class: "date-fieldset" }, is = ["for"], us = ["id", "onUpdate:modelValue", "onInput"], cs = { class: "date-wrapper--button" }, ds = ["onClick"], hs = ["innerHTML"], gs = ["innerHTML"], ys = ["innerHTML"], vs = ["onClick", "disabled"], bs = ["placeholder", "onUpdate:modelValue", "name"], fs = ["onClick"], ms = ["innerHTML"], _s = ["innerHTML"], ps = ["innerHTML"], Ns = ["onClick", "innerHTML"], ks = ["innerHTML"], Cs = {
1318
+ key: 5,
1319
+ class: "th-range-filter"
1320
+ }, Is = ["for"], Fs = /* @__PURE__ */ U(() => /* @__PURE__ */ u("span", { style: { color: "grey" } }, "ᒥ", -1)), ws = /* @__PURE__ */ U(() => /* @__PURE__ */ u("span", { style: { color: "grey" } }, "ᒣ", -1)), Ss = ["id", "max", "min", "onUpdate:modelValue"], xs = ["id", "max", "min", "onUpdate:modelValue"], Ls = ["for"], Os = /* @__PURE__ */ U(() => /* @__PURE__ */ u("span", { style: { color: "grey" } }, "ᒪ", -1)), As = /* @__PURE__ */ U(() => /* @__PURE__ */ u("span", { style: { color: "grey" } }, "ᒧ", -1)), Ds = ["onClick", "disabled"], Ms = ["id"], Gs = ["onClick"], Ts = ["onClick", "onKeyup"], zs = /* @__PURE__ */ U(() => /* @__PURE__ */ u("th", { class: "invisible-cell" }, null, -1)), Ps = ["innerHTML", "onClick", "onKeyup"], Es = ["data-row"], Bs = ["data-row"], Rs = ["data-row", "onClick", "onKeyup", "id"], Hs = ["innerHTML"], Us = { key: 1 }, Vs = { key: 2 }, Ws = { key: 5 }, js = ["innerHTML"], Xs = { key: 0 }, Ys = { style: { "margin-left": "12px" } }, Zs = { class: "format-num" }, qs = { style: { "margin-left": "12px" } }, Ks = {
1321
+ key: 0,
1322
+ class: "format-num"
1323
+ }, Js = {
1324
+ key: 1,
1325
+ class: "format-num"
1326
+ }, Qs = { key: 2 }, $s = { style: { "margin-left": "12px" } }, el = {
1327
+ key: 0,
1328
+ class: "format-num"
1329
+ }, tl = {
1330
+ key: 1,
1331
+ class: "format-num"
1332
+ }, sl = { key: 2 }, ll = {
1333
+ key: 0,
1334
+ class: "vue-ui-table-paginator format-num"
1335
+ }, nl = {
1336
+ key: 1,
1337
+ class: "vue-ui-table-size-warning"
1338
+ }, rl = ["innerHTML"], al = {
1339
+ key: 3,
1340
+ class: "vue-ui-table-pagination format-num"
1341
+ }, ol = ["innerHTML", "disabled"], il = ["disabled"], ul = {
1342
+ key: 0,
1343
+ class: "vue-ui-table-page-scroller-wrapper"
1344
+ }, cl = {
1345
+ for: "pageScroller",
1346
+ style: { "font-size": "14px" }
1347
+ }, dl = ["max", "value"], hl = { key: 1 }, gl = ["disabled"], yl = ["innerHTML", "disabled"], vl = { class: "chart-modal-options" }, bl = ["innerHTML"], fl = ["innerHTML"], ml = ["innerHTML"], _l = { style: { "margin-bottom": "12px" } }, pl = { key: 0 }, Nl = { key: 1 }, kl = {
1348
+ style: { width: "100%", height: "fit-content", cursor: "move" },
1349
+ ref: "chartModal"
1350
+ }, Cl = { class: "vue-ui-table-fieldset" }, Il = { class: "vue-ui-table-fieldset-wrapper" }, Fl = ["name", "id", "checked", "onInput"], wl = ["for"], Sl = ["disabled"], xl = ["innerHTML"], Ll = ["viewBox"], Ol = ["markerWidth", "markerHeight", "refY"], Al = ["points", "fill"], Dl = ["x2", "y1", "y2", "stroke", "stroke-width"], Ml = ["y2", "stroke", "stroke-width"], Gl = ["x", "width", "height", "fill"], Tl = /* @__PURE__ */ Te('<linearGradient id="barGradientSelected" x2="0%" y2="100%" data-v-5a108fbd><stop offset="0.2" stop-color="#6376DD" data-v-5a108fbd></stop><stop offset="1" stop-color="#6376DD80" data-v-5a108fbd></stop></linearGradient><linearGradient id="barGradientSelectedNeg" x2="0%" y2="100%" data-v-5a108fbd><stop offset="0.2" stop-color="#6376DD80" data-v-5a108fbd></stop><stop offset="1" stop-color="#6376DD" data-v-5a108fbd></stop></linearGradient><linearGradient id="barGradient" x2="0%" y2="100%" data-v-5a108fbd><stop offset="0.2" stop-color="#6376DDB3" data-v-5a108fbd></stop><stop offset="1" stop-color="#6376DD66" data-v-5a108fbd></stop></linearGradient><linearGradient id="barGradientNeg" x2="0%" y2="100%" data-v-5a108fbd><stop offset="0.2" stop-color="#6376DD66" data-v-5a108fbd></stop><stop offset="1" stop-color="#6376DDB3" data-v-5a108fbd></stop></linearGradient>', 4), zl = ["x", "y", "height", "width", "fill", "stroke"], Pl = ["x", "y", "width"], El = ["x1", "y1", "x2", "y2", "stroke-width", "stroke"], Bl = ["x1", "y1", "x2", "y2", "stroke", "stroke-width", "stroke-dasharray"], Rl = ["cx", "cy", "r", "fill", "stroke", "stroke-width"], Hl = ["x", "y", "width"], Ul = ["x", "width", "height", "onMouseenter"], Vl = ["x1", "y1", "x2", "y2", "stroke", "stroke-width", "stroke-dasharray"], Wl = /* @__PURE__ */ U(() => /* @__PURE__ */ u("span", null, "---", -1)), jl = ["d", "stroke"], Xl = ["x", "y"], Yl = { class: "vue-ui-table-donut-label-name" }, Zl = ["fill"], ql = ["fill"], Kl = ["fill"], Jl = ["fill"], Ql = { class: "vue-ui-table-donut-legend" };
1351
+ function $l(n, r, a, d, t, e) {
1352
+ return o(), i("div", {
1353
+ class: "vue-ui-table-main",
1354
+ style: g(`font-family: ${e.FINAL_CONFIG.fontFamily}`)
1355
+ }, [
1356
+ u("div", At, [
1357
+ u("button", {
1358
+ onClick: r[0] || (r[0] = (l) => t.isExportRequest = !t.isExportRequest),
1359
+ innerHTML: e.icons.export,
1360
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.color}`)
1361
+ }, null, 12, Dt),
1362
+ u("div", {
1363
+ class: "vue-ui-table-export-hub-dropdown",
1364
+ "data-is-open": t.isExportRequest || "false",
1365
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.color}`)
1366
+ }, [
1367
+ Gt,
1368
+ u("button", {
1369
+ class: "close-dropdown",
1370
+ onClick: r[1] || (r[1] = (l) => t.isExportRequest = !1),
1371
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`)
1372
+ }, " ✖ ", 4),
1373
+ u("div", Tt, [
1374
+ u("div", zt, [
1375
+ u("div", Pt, c(e.FINAL_CONFIG.translations.exportAllLabel) + " (" + c(t.bodyCopy.length) + ") ", 1),
1376
+ u("button", {
1377
+ id: "exportAll",
1378
+ onClick: r[2] || (r[2] = (l) => e.createXls("all")),
1379
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.buttons.color}`)
1380
+ }, [
1381
+ u("div", {
1382
+ innerHTML: e.icons.fileDownload
1383
+ }, null, 8, Et),
1384
+ u("span", null, c(e.FINAL_CONFIG.translations.exportAllButton), 1)
1385
+ ], 4)
1386
+ ]),
1387
+ u("div", Bt, [
1388
+ u("div", Rt, c(e.FINAL_CONFIG.translations.exportPageLabel), 1),
1389
+ u("button", {
1390
+ id: "exportPage",
1391
+ onClick: r[3] || (r[3] = (l) => e.createXls("page")),
1392
+ style: g(`background:${e.FINAL_CONFIG.style.exportMenu.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.exportMenu.buttons.color}`)
1393
+ }, [
1394
+ u("div", {
1395
+ innerHTML: e.icons.fileDownload
1396
+ }, null, 8, Ht),
1397
+ u("span", null, c(e.FINAL_CONFIG.translations.exportPageButton), 1)
1398
+ ], 4)
1399
+ ])
1400
+ ])
1401
+ ], 12, Mt)
1402
+ ]),
1403
+ u("div", {
1404
+ class: "vue-ui-table__wrapper",
1405
+ style: g(`max-height:${e.FINAL_CONFIG.maxHeight}px`),
1406
+ ref: "tableWrapper"
1407
+ }, [
1408
+ u("table", Ut, [
1409
+ u("thead", Vt, [
1410
+ u("tr", null, [
1411
+ Wt,
1412
+ (o(!0), i(k, null, L(t.tableHead, (l, s) => (o(), i("th", {
1413
+ key: `thead_${s}`,
1414
+ style: g(`overflow: visible;background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`),
1415
+ class: A({ "th-has-nan": t.hasNaN[s] })
1416
+ }, [
1417
+ e.hasNumericTypes && ([t.constants.TEXT, t.constants.DATE].includes(l.type) || l.isPercentage) ? (o(), i("span", jt, [
1418
+ P(c(l.name) + " ", 1),
1419
+ l.isPercentage ? (o(), i("span", Xt, " / " + c(l.percentageTo), 1)) : y("", !0)
1420
+ ])) : (o(), i("span", Yt, c(l.name), 1))
1421
+ ], 6))), 128))
1422
+ ]),
1423
+ e.hasNumericTypes ? (o(), i(k, { key: 0 }, [
1424
+ u("tr", null, [
1425
+ Zt,
1426
+ (o(!0), i(k, null, L(t.tableHead, (l, s) => (o(), i("th", {
1427
+ key: `thead_${s}`,
1428
+ class: A({ "th-numeric": !0, "th-has-nan": t.hasNaN[s] }),
1429
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
1430
+ }, [
1431
+ l.sum && !t.hasNaN[s] ? (o(), i("span", qt, [
1432
+ u("span", {
1433
+ innerHTML: e.icons.sum,
1434
+ style: { "margin-bottom": "-4px", "margin-right": "3px" }
1435
+ }, null, 8, Kt),
1436
+ P(" " + c(l.prefix) + " " + c(Number(e.getSum(s).toFixed(l.decimals)).toLocaleString()) + " " + c(l.suffix) + " ", 1),
1437
+ t.percentages[s] && l.percentageTo && !l.isPercentage ? (o(), i("span", Jt, " (" + c(isNaN(e.getSum(s) / e.getSum(t.percentages[s].referenceIndex)) ? "-" : (e.getSum(s) / e.getSum(t.percentages[s].referenceIndex) * 100).toFixed(l.decimals)) + "%) ", 1)) : y("", !0)
1438
+ ])) : y("", !0)
1439
+ ], 6))), 128))
1440
+ ]),
1441
+ u("tr", null, [
1442
+ Qt,
1443
+ (o(!0), i(k, null, L(t.tableHead, (l, s) => (o(), i("th", {
1444
+ key: `thead_${s}`,
1445
+ class: A({ "th-numeric": !0, "th-has-nan": t.hasNaN[s] }),
1446
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
1447
+ }, [
1448
+ l.average && !t.hasNaN[s] ? (o(), i("span", $t, " ~ " + c(l.prefix) + " " + c(isNaN(e.getAverage(s)) ? "" : Number(e.getAverage(s).toFixed(l.decimals)).toLocaleString()) + " " + c(l.suffix), 1)) : y("", !0)
1449
+ ], 6))), 128))
1450
+ ]),
1451
+ u("tr", null, [
1452
+ es,
1453
+ (o(!0), i(k, null, L(t.tableHead, (l, s) => (o(), i("th", {
1454
+ key: `thead_${s}`,
1455
+ class: A({ "th-has-nan": t.hasNaN[s] }),
1456
+ style: g(`background:${e.FINAL_CONFIG.style.th.backgroundColor};color:${e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
1457
+ }, [
1458
+ u("div", ts, [
1459
+ l.type === t.constants.DATE && t.dates[s] ? (o(), i("div", ss, [
1460
+ u("div", ls, [
1461
+ u("div", ns, [
1462
+ u("label", {
1463
+ for: `from_${s}`
1464
+ }, c(e.FINAL_CONFIG.translations.from), 9, rs),
1465
+ q(u("input", {
1466
+ id: `from_${s}`,
1467
+ type: "date",
1468
+ "onUpdate:modelValue": (h) => t.dates[s].from = h,
1469
+ onInput: (h) => {
1470
+ e.filterBody(), e.setFilterDatesIndexes(s);
1471
+ },
1472
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1473
+ }, null, 44, as), [
1474
+ [$, t.dates[s].from]
1475
+ ])
1476
+ ]),
1477
+ u("div", os, [
1478
+ u("label", {
1479
+ for: `to_${s}`
1480
+ }, c(e.FINAL_CONFIG.translations.to), 9, is),
1481
+ q(u("input", {
1482
+ id: `to_${s}`,
1483
+ type: "date",
1484
+ "onUpdate:modelValue": (h) => t.dates[s].to = h,
1485
+ onInput: (h) => {
1486
+ e.filterBody(), e.setFilterDatesIndexes(s);
1487
+ },
1488
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1489
+ }, null, 44, us), [
1490
+ [$, t.dates[s].to]
1491
+ ])
1492
+ ])
1493
+ ]),
1494
+ u("div", cs, [
1495
+ l.isSort ? (o(), i("button", {
1496
+ key: 0,
1497
+ onClick: (h) => e.sortTh(s, h),
1498
+ class: A({ "th-button-active": [t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) }),
1499
+ style: g(`background:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1500
+ }, [
1501
+ t.sorts[s] === t.constants.ASC ? (o(), i("span", {
1502
+ key: 0,
1503
+ innerHTML: [t.constants.DATE].includes(l.type) ? e.icons.sort09 : e.icons.sortAZ
1504
+ }, null, 8, hs)) : t.sorts[s] === t.constants.DESC ? (o(), i("span", {
1505
+ key: 1,
1506
+ innerHTML: [t.constants.DATE].includes(l.type) ? e.icons.sort90 : e.icons.sortZA
1507
+ }, null, 8, gs)) : (o(), i("span", {
1508
+ key: 2,
1509
+ innerHTML: e.icons.arrowSort
1510
+ }, null, 8, ys))
1511
+ ], 14, ds)) : y("", !0),
1512
+ u("button", {
1513
+ onClick: (h) => {
1514
+ e.resetDates(s), e.resetFilter(s, l, h);
1515
+ },
1516
+ disabled: !t.filteredDatesIndexes[s] && e.isResetDisabled(s, l),
1517
+ class: "th-reset"
1518
+ }, " ✖ ", 8, vs)
1519
+ ])
1520
+ ])) : y("", !0),
1521
+ l.isSearch ? q((o(), i("input", {
1522
+ key: 1,
1523
+ placeholder: e.FINAL_CONFIG.translations.inputPlaceholder,
1524
+ "onUpdate:modelValue": (h) => t.searches[s] = h,
1525
+ onInput: r[4] || (r[4] = (h) => e.debounce(e.filterBody, 400)),
1526
+ name: `search_${s}`,
1527
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1528
+ }, null, 44, bs)), [
1529
+ [$, t.searches[s]]
1530
+ ]) : y("", !0),
1531
+ !t.hasNaN[s] && l.isSort && l.type !== t.constants.DATE ? (o(), i("button", {
1532
+ key: 2,
1533
+ onClick: (h) => e.sortTh(s, h),
1534
+ class: A({ "th-button-active": [t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) }),
1535
+ style: g(`background:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${[t.constants.DESC, t.constants.ASC].includes(t.sorts[s]) ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1536
+ }, [
1537
+ t.sorts[s] === t.constants.ASC ? (o(), i("span", {
1538
+ key: 0,
1539
+ innerHTML: [t.constants.NUMERIC].includes(l.type) ? e.icons.sort09 : e.icons.sortZA
1540
+ }, null, 8, ms)) : t.sorts[s] === t.constants.DESC ? (o(), i("span", {
1541
+ key: 1,
1542
+ innerHTML: [t.constants.NUMERIC].includes(l.type) ? e.icons.sort90 : e.icons.sortAZ
1543
+ }, null, 8, _s)) : (o(), i("span", {
1544
+ key: 2,
1545
+ innerHTML: e.icons.arrowSort
1546
+ }, null, 8, ps))
1547
+ ], 14, fs)) : y("", !0),
1548
+ l.isMultiselect ? (o(), i("button", {
1549
+ key: 3,
1550
+ onClick: (h) => e.toggleMultiselect(s, l, h),
1551
+ innerHTML: e.icons.filter,
1552
+ class: A({ "th-button-active": t.multiselects[s] && t.multiselects[s].length !== e.getDropdownOptions(s).length }),
1553
+ style: g(`background:${t.multiselects[s] && t.multiselects[s].length !== e.getDropdownOptions(s).length ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${t.multiselects[s] && t.multiselects[s].length !== e.getDropdownOptions(s).length ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1554
+ }, null, 14, Ns)) : y("", !0),
1555
+ t.currentSelectionSpan.col === s && e.canChart ? (o(), i("button", {
1556
+ key: 4,
1557
+ onClick: r[5] || (r[5] = (h) => t.showChart = !t.showChart),
1558
+ innerHTML: e.icons.chart,
1559
+ class: A({ "th-button-active": t.showChart }),
1560
+ style: g(`background:${t.showChart ? "" : e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${t.showChart ? "" : e.FINAL_CONFIG.style.pagination.buttons.color}`)
1561
+ }, null, 14, ks)) : y("", !0),
1562
+ l.rangeFilter && t.rangeFilters[s] && !t.hasNaN[s] ? (o(), i("div", Cs, [
1563
+ u("label", {
1564
+ for: `rangeMin${s}`
1565
+ }, [
1566
+ Fs,
1567
+ P(" min "),
1568
+ ws
1569
+ ], 8, Is),
1570
+ q(u("input", {
1571
+ type: "number",
1572
+ id: `rangeMin${s}`,
1573
+ max: t.immutableRangeFilters[s].max,
1574
+ min: t.immutableRangeFilters[s].min,
1575
+ "onUpdate:modelValue": (h) => t.rangeFilters[s].min = h,
1576
+ onInput: r[6] || (r[6] = (h) => e.debounce(e.filterBody, 400)),
1577
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1578
+ }, null, 44, Ss), [
1579
+ [
1580
+ $,
1581
+ t.rangeFilters[s].min,
1582
+ void 0,
1583
+ { number: !0 }
1584
+ ]
1585
+ ]),
1586
+ q(u("input", {
1587
+ type: "number",
1588
+ id: `rangeMax${s}`,
1589
+ max: t.immutableRangeFilters[s].max,
1590
+ min: t.immutableRangeFilters[s].min,
1591
+ "onUpdate:modelValue": (h) => t.rangeFilters[s].max = h,
1592
+ onInput: r[7] || (r[7] = (h) => e.debounce(e.filterBody, 400)),
1593
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1594
+ }, null, 44, xs), [
1595
+ [
1596
+ $,
1597
+ t.rangeFilters[s].max,
1598
+ void 0,
1599
+ { number: !0 }
1600
+ ]
1601
+ ]),
1602
+ u("label", {
1603
+ for: `rangeMax${s}`
1604
+ }, [
1605
+ Os,
1606
+ P(" max "),
1607
+ As
1608
+ ], 8, Ls)
1609
+ ])) : y("", !0),
1610
+ e.canResetColumn(s, l) ? (o(), i("button", {
1611
+ key: 6,
1612
+ onClick: (h) => e.resetFilter(s, l, h),
1613
+ disabled: e.isResetDisabled(s, l),
1614
+ class: "th-reset"
1615
+ }, " ✖ ", 8, Ds)) : y("", !0),
1616
+ l.isMultiselect ? (o(), i("div", {
1617
+ key: 7,
1618
+ class: "th-dropdown",
1619
+ "data-is-open": "false",
1620
+ id: `th_dropdown_${s}`,
1621
+ style: g(`background:${e.FINAL_CONFIG.style.dropdowns.backgroundColor};color:${e.FINAL_CONFIG.style.dropdowns.color}`)
1622
+ }, [
1623
+ u("button", {
1624
+ class: "close-dropdown",
1625
+ onClick: (h) => e.toggleMultiselect(s, l, h),
1626
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color}`)
1627
+ }, " ✖ ", 12, Gs),
1628
+ (o(!0), i(k, null, L(e.getDropdownOptions(s), (h, f) => (o(), i("span", {
1629
+ class: "th-option",
1630
+ key: `th_option_${s}_${f}`,
1631
+ onClick: (m) => e.selectDropdownOption(h, s),
1632
+ onKeyup: [
1633
+ ee((m) => e.selectDropdownOption(h, s), ["enter"]),
1634
+ ee((m) => e.selectDropdownOption(h, s), ["space"])
1635
+ ],
1636
+ style: g(`opacity:${e.isDropdownOptionSelected(h, s) ? 1 : 0.5}`),
1637
+ tabindex: "0"
1638
+ }, [
1639
+ e.isDropdownOptionSelected(h, s) ? (o(), i("span", {
1640
+ key: 0,
1641
+ style: g(`color:${e.FINAL_CONFIG.style.dropdowns.icons.selected.color};margin-right:5px`),
1642
+ class: "th-icon-green"
1643
+ }, c(e.FINAL_CONFIG.style.dropdowns.icons.selected.unicode), 5)) : (o(), i("span", {
1644
+ key: 1,
1645
+ style: g(`color:${e.FINAL_CONFIG.style.dropdowns.icons.unselected.color};margin-right:5px`),
1646
+ class: "th-icon-red"
1647
+ }, c(e.FINAL_CONFIG.style.dropdowns.icons.unselected.unicode), 5)),
1648
+ u("span", null, c(h), 1)
1649
+ ], 44, Ts))), 128))
1650
+ ], 12, Ms)) : y("", !0)
1651
+ ])
1652
+ ], 6))), 128))
1653
+ ])
1654
+ ], 64)) : y("", !0),
1655
+ u("tr", null, [
1656
+ zs,
1657
+ (o(!0), i(k, null, L(t.tableHead, (l, s) => (o(), i("th", {
1658
+ key: `col_selector_${s}`,
1659
+ class: A({ "vue-ui-table-col-selector": !t.hasNaN[s], "th-has-nan": t.hasNaN[s] }),
1660
+ style: g(`background:${s === t.selectedColumn && !t.hasNaN[s] ? e.FINAL_CONFIG.style.th.selected.backgroundColor : e.FINAL_CONFIG.style.th.backgroundColor};color:${s === t.selectedColumn && !t.hasNaN[s] ? e.FINAL_CONFIG.style.th.selected.color : e.FINAL_CONFIG.style.th.color};outline:${e.FINAL_CONFIG.style.th.outline}`)
1661
+ }, [
1662
+ t.hasNaN[s] ? y("", !0) : (o(), i("div", {
1663
+ key: 0,
1664
+ innerHTML: t.tableHead[s].type === t.constants.NUMERIC ? e.icons.chevronDown : "",
1665
+ class: A({ "col-selector": t.tableHead[s].type === t.constants.NUMERIC }),
1666
+ tabindex: "0",
1667
+ onClick: te((h) => e.selectColumn(s), ["stop"]),
1668
+ onKeyup: ee((h) => e.selectColumn(s), ["enter"])
1669
+ }, null, 42, Ps))
1670
+ ], 6))), 128))
1671
+ ])
1672
+ ]),
1673
+ u("tbody", {
1674
+ onClick: r[8] || (r[8] = (...l) => e.closeAllDropdowns && e.closeAllDropdowns(...l)),
1675
+ onKeydown: r[9] || (r[9] = (l) => e.navigateCell(l))
1676
+ }, [
1677
+ (o(!0), i(k, null, L(e.visibleRows, (l, s) => (o(), i("tr", {
1678
+ key: `tbody_${s}`,
1679
+ "data-row": s % 2 === 0 ? "odd" : "even",
1680
+ class: A(`tr_${t.uid}`),
1681
+ style: g(`${s % 2 === 0 ? `background:${e.FINAL_CONFIG.style.rows.odd.backgroundColor};color:${e.FINAL_CONFIG.style.rows.odd.color}` : `background:${e.FINAL_CONFIG.style.rows.even.backgroundColor};color:${e.FINAL_CONFIG.style.rows.even.color}`}`)
1682
+ }, [
1683
+ u("td", {
1684
+ class: "vue-ui-table-td-iteration",
1685
+ "data-row": s % 2 === 0 ? "odd" : "even"
1686
+ }, c(l.absoluteIndex + 1), 9, Bs),
1687
+ (o(!0), i(k, null, L(l.td, (h, f) => (o(), i("td", {
1688
+ "data-row": s % 2 === 0 ? "odd" : "even",
1689
+ key: `td_${s}_${f}`,
1690
+ style: g(e.isNumeric(h) || a.dataset.header[f].type === t.constants.DATE ? "text-align:right;font-variant-numeric: tabular-nums;" : ""),
1691
+ onClick: (m) => e.selectTd({
1692
+ td: h,
1693
+ rowIndex: s,
1694
+ colIndex: f,
1695
+ headerType: a.dataset.header[f].type,
1696
+ event: m
1697
+ }),
1698
+ onKeyup: [
1699
+ ee((m) => e.selectTd({
1700
+ td: h,
1701
+ rowIndex: s,
1702
+ colIndex: f,
1703
+ headerType: a.dataset.header[f].type,
1704
+ event: m
1705
+ }), ["enter"]),
1706
+ ee((m) => e.selectTd({
1707
+ td: h,
1708
+ rowIndex: s,
1709
+ colIndex: f,
1710
+ headerType: a.dataset.header[f].type,
1711
+ event: m
1712
+ }), ["space"])
1713
+ ],
1714
+ class: A({ "td-numeric": a.dataset.header[f].type === t.constants.NUMERIC, "td-focusable": !0, "td-has-nan": t.hasNaN[f] }),
1715
+ id: `cell_${s}_${f}_${t.uid}`,
1716
+ tabindex: "0"
1717
+ }, [
1718
+ l.meta && l.meta.markerIndices.includes(f) && l.meta.unicodeIcon ? (o(), i("span", {
1719
+ key: 0,
1720
+ style: g(`color:${l.meta.color};margin-right:3px`),
1721
+ innerHTML: l.meta.unicodeIcon
1722
+ }, null, 12, Hs)) : y("", !0),
1723
+ a.dataset.header[f].type === t.constants.DATE ? (o(), i("span", Us, c(a.dataset.header[f].prefix) + " " + c(new Date(h).toLocaleString().slice(0, 10)) + " " + c(a.dataset.header[f].suffix), 1)) : a.dataset.header[f].isPercentage ? (o(), i("span", Vs, c(Number((h * 100).toFixed(a.dataset.header[f].decimals)).toLocaleString()) + "% ", 1)) : t.percentages[f] && a.dataset.header[f].percentageTo && !a.dataset.header[f].isPercentage ? (o(), i("span", {
1724
+ key: 3,
1725
+ class: A({ "td-nan": isNaN(Number(h)) })
1726
+ }, c(a.dataset.header[f].prefix) + " " + c(isNaN(Number(h)) ? `${h} is not ${t.constants.NUMERIC}` : Number(h.toFixed(a.dataset.header[f].decimals)).toLocaleString()) + " " + c(a.dataset.header[f].suffix) + " (" + c(isNaN(Number(h)) ? "" : Number((h / e.getSum(t.percentages[f].referenceIndex) * 100).toFixed(a.dataset.header[f].decimals)).toLocaleString()) + "%) ", 3)) : a.dataset.header[f].type === t.constants.NUMERIC ? (o(), i("span", {
1727
+ key: 4,
1728
+ class: A({ "td-nan": isNaN(Number(h)) })
1729
+ }, c(a.dataset.header[f].prefix) + " " + c(isNaN(Number(h)) ? `${h} is not ${t.constants.NUMERIC}` : Number(h.toFixed(a.dataset.header[f].decimals)).toLocaleString()) + " " + c(a.dataset.header[f].suffix), 3)) : (o(), i("span", Ws, c(a.dataset.header[f].prefix) + " " + c(h) + " " + c(a.dataset.header[f].suffix), 1))
1730
+ ], 46, Rs))), 128))
1731
+ ], 14, Es))), 128))
1732
+ ], 32)
1733
+ ])
1734
+ ], 4),
1735
+ u("div", {
1736
+ class: A({ "td-selector-info": !0, "td-selector-info--active": t.currentSelectionSpan.col !== void 0 && t.currentSelectionSpan.rows.length }),
1737
+ style: g(`background:${e.FINAL_CONFIG.style.infoBar.backgroundColor};color:${e.FINAL_CONFIG.style.infoBar.color}`)
1738
+ }, [
1739
+ t.currentSelectionSpan.col !== void 0 && t.currentSelectionSpan.rows.length ? (o(), i(k, { key: 0 }, [
1740
+ u("div", {
1741
+ innerHTML: e.icons.table,
1742
+ class: "td-selector-icon"
1743
+ }, null, 8, js),
1744
+ u("span", null, [
1745
+ u("b", null, [
1746
+ P(c(a.dataset.header[t.currentSelectionSpan.col].name) + " ", 1),
1747
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage ? (o(), i("span", Xs, " / " + c(a.dataset.header[t.percentages[t.currentSelectionSpan.col].referenceIndex].name), 1)) : y("", !0)
1748
+ ]),
1749
+ u("span", Ys, [
1750
+ P(c(e.FINAL_CONFIG.translations.nb) + " : ", 1),
1751
+ u("b", Zs, c(t.currentSelectionSpan.rows.length), 1)
1752
+ ]),
1753
+ u("span", qs, [
1754
+ P(c(e.FINAL_CONFIG.translations.sum) + " : ", 1),
1755
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage ? (o(), i("b", Ks, c(e.selectedCellsCalculations.sumPercentage), 1)) : (o(), i("b", Js, c(a.dataset.header[t.currentSelectionSpan.col].prefix) + " " + c(e.selectedCellsCalculations.sumRegular) + " " + c(a.dataset.header[t.currentSelectionSpan.col].suffix), 1)),
1756
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage ? (o(), i("b", Qs, "%")) : y("", !0)
1757
+ ]),
1758
+ u("span", $s, [
1759
+ P(c(e.FINAL_CONFIG.translations.average) + " : ", 1),
1760
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage ? (o(), i("b", el, c(e.selectedCellsCalculations.averagePercentage), 1)) : (o(), i("b", tl, c(a.dataset.header[t.currentSelectionSpan.col].prefix) + " " + c(e.selectedCellsCalculations.averageRegular) + " " + c(a.dataset.header[t.currentSelectionSpan.col].suffix), 1)),
1761
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage ? (o(), i("b", sl, "%")) : y("", !0)
1762
+ ])
1763
+ ]),
1764
+ u("button", {
1765
+ onClick: r[10] || (r[10] = (...l) => e.resetSelection && e.resetSelection(...l)),
1766
+ class: "td-selector-info-reset",
1767
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`)
1768
+ }, " ✖ ", 4)
1769
+ ], 64)) : y("", !0)
1770
+ ], 6),
1771
+ t.bodyCopy.length > 10 ? (o(), i("div", ll, [
1772
+ P(c(e.FINAL_CONFIG.translations.totalRows) + " : " + c(a.dataset.body.length) + " | " + c(e.FINAL_CONFIG.translations.paginatorLabel) + " : ", 1),
1773
+ t.bodyCopy.length > 10 ? q((o(), i("select", {
1774
+ key: 0,
1775
+ id: "paginatorSelector",
1776
+ "onUpdate:modelValue": r[11] || (r[11] = (l) => t.itemsPerPage = l),
1777
+ onChange: r[12] || (r[12] = (...l) => e.resetSelection && e.resetSelection(...l)),
1778
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border}`)
1779
+ }, [
1780
+ (o(!0), i(k, null, L(t.paginatorOptions, (l, s) => (o(), i(k, null, [
1781
+ t.bodyCopy.length > l || a.dataset.body.length === l ? (o(), i("option", {
1782
+ key: `paginator_option_${s}`
1783
+ }, c(l), 1)) : y("", !0)
1784
+ ], 64))), 256))
1785
+ ], 36)), [
1786
+ [
1787
+ Ge,
1788
+ t.itemsPerPage,
1789
+ void 0,
1790
+ { number: !0 }
1791
+ ]
1792
+ ]) : y("", !0)
1793
+ ])) : y("", !0),
1794
+ t.itemsPerPage >= 250 ? (o(), i("div", nl, [
1795
+ u("span", {
1796
+ innerHTML: e.icons.warning
1797
+ }, null, 8, rl),
1798
+ P(c(e.FINAL_CONFIG.translations.sizeWarning), 1)
1799
+ ])) : y("", !0),
1800
+ e.pages.length > 1 && e.pages.length <= 10 ? (o(), i("div", {
1801
+ key: 2,
1802
+ class: "vue-ui-table-navigation-indicator",
1803
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.navigationIndicator.backgroundColor};width:calc(${t.currentPage / (e.pages.length - 1) * 100}%)`)
1804
+ }, null, 4)) : y("", !0),
1805
+ e.pages.length > 1 ? (o(), i("div", al, [
1806
+ u("button", {
1807
+ class: "vue-ui-table-navigation",
1808
+ onClick: r[13] || (r[13] = te((l) => e.navigate("previous"), ["stop"])),
1809
+ innerHTML: e.icons.chevronLeft,
1810
+ disabled: t.currentPage === 0,
1811
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === 0 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1812
+ }, null, 12, ol),
1813
+ e.pages.length > 3 ? (o(), i(k, { key: 0 }, [
1814
+ u("button", {
1815
+ class: "vue-ui-table-navigation",
1816
+ onClick: r[14] || (r[14] = te((l) => e.navigate(1), ["stop"])),
1817
+ disabled: t.currentPage === 0,
1818
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === 0 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1819
+ }, " 1 ", 12, il),
1820
+ e.pages.length > 10 ? (o(), i("div", ul, [
1821
+ u("label", cl, c(e.FINAL_CONFIG.translations.page) + " " + c(t.currentPage + 1) + " / " + c(e.pages.length), 1),
1822
+ u("input", {
1823
+ class: "vue-ui-table-page-scroller",
1824
+ id: "pageScroller",
1825
+ type: "range",
1826
+ step: "1",
1827
+ min: 0,
1828
+ max: e.pages.length - 1,
1829
+ onInput: r[15] || (r[15] = (l) => e.updateCurrentPage(l)),
1830
+ value: t.currentPage,
1831
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border};accent-color:${e.FINAL_CONFIG.style.inputs.accentColor}`)
1832
+ }, null, 44, dl)
1833
+ ])) : (o(), i("span", hl, c(e.FINAL_CONFIG.translations.page) + " " + c(t.currentPage + 1) + " / " + c(e.pages.length), 1)),
1834
+ u("button", {
1835
+ class: "vue-ui-table-navigation",
1836
+ onClick: r[16] || (r[16] = te((l) => e.navigate(e.pages.length), ["stop"])),
1837
+ disabled: t.currentPage === e.pages.length - 1,
1838
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === e.pages.length - 1 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1839
+ }, c(e.pages.length), 13, gl)
1840
+ ], 64)) : (o(), i(k, { key: 1 }, [
1841
+ P(c(e.FINAL_CONFIG.translations.page) + " " + c(t.currentPage + 1) + " / " + c(e.pages.length), 1)
1842
+ ], 64)),
1843
+ u("button", {
1844
+ class: "vue-ui-table-navigation",
1845
+ onClick: r[17] || (r[17] = te((l) => e.navigate("next"), ["stop"])),
1846
+ innerHTML: e.icons.chevronRight,
1847
+ disabled: t.currentPage === e.pages.length - 1,
1848
+ style: g(`background:${e.FINAL_CONFIG.style.pagination.buttons.backgroundColor};color:${e.FINAL_CONFIG.style.pagination.buttons.color};opacity:${t.currentPage === e.pages.length - 1 ? e.FINAL_CONFIG.style.pagination.buttons.opacityDisabled : 1}`)
1849
+ }, null, 12, yl)
1850
+ ])) : y("", !0),
1851
+ t.showChart && e.canChart ? (o(), i("div", {
1852
+ key: 4,
1853
+ class: "vue-ui-table-chart-modal",
1854
+ style: g(`top:${t.clientY}px; left:${t.clientX}px;background:${e.FINAL_CONFIG.style.chart.modal.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.color}`)
1855
+ }, [
1856
+ u("button", {
1857
+ class: "close-chart-modal",
1858
+ onClick: r[18] || (r[18] = (l) => t.showChart = !1),
1859
+ style: g(`background:${e.FINAL_CONFIG.style.closeButtons.backgroundColor};color:${e.FINAL_CONFIG.style.closeButtons.color};border-radius:${e.FINAL_CONFIG.style.closeButtons.borderRadius}`)
1860
+ }, " ✖ ", 4),
1861
+ u("div", vl, [
1862
+ e.availableDonutCategories.length ? (o(), i("button", {
1863
+ key: 0,
1864
+ onClick: r[19] || (r[19] = (l) => t.showDonutOptions = !0),
1865
+ innerHTML: e.icons.donut,
1866
+ class: A({ "is-active-chart": t.chart.type === t.constants.DONUT || t.showDonutOptions }),
1867
+ style: g(`background:${t.chart.type === t.constants.DONUT || t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.DONUT || t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1868
+ }, null, 14, bl)) : y("", !0),
1869
+ u("button", {
1870
+ onClick: r[20] || (r[20] = (l) => {
1871
+ t.chart.type = t.constants.LINE, t.showDonutOptions = !1;
1872
+ }),
1873
+ innerHTML: e.icons.chart,
1874
+ class: A({ "is-active-chart": t.chart.type === t.constants.LINE && !t.showDonutOptions }),
1875
+ style: g(`background:${t.chart.type === t.constants.LINE && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.LINE && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1876
+ }, null, 14, fl),
1877
+ u("button", {
1878
+ onClick: r[21] || (r[21] = (l) => {
1879
+ t.chart.type = t.constants.BAR, t.showDonutOptions = !1;
1880
+ }),
1881
+ innerHTML: e.icons.bar,
1882
+ class: A({ "is-active-chart": t.chart.type === t.constants.BAR && !t.showDonutOptions }),
1883
+ style: g(`background:${t.chart.type === t.constants.BAR && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.backgroundColor};color:${t.chart.type === t.constants.BAR && !t.showDonutOptions ? e.FINAL_CONFIG.style.chart.modal.buttons.selected.color : e.FINAL_CONFIG.style.chart.modal.buttons.unselected.color}`)
1884
+ }, null, 14, ml)
1885
+ ]),
1886
+ u("div", _l, [
1887
+ u("b", null, [
1888
+ P(c(a.dataset.header[t.currentSelectionSpan.col].name) + " ", 1),
1889
+ a.dataset.header[t.currentSelectionSpan.col].isPercentage && a.dataset.header[t.currentSelectionSpan.col].percentageTo ? (o(), i("span", pl, " / " + c(a.dataset.header[t.percentages[t.currentSelectionSpan.col].referenceIndex].name), 1)) : y("", !0),
1890
+ t.chart.type === t.constants.DONUT && t.selectedDonutCategory && t.selectedDonutCategory.name ? (o(), i("span", Nl, c(e.FINAL_CONFIG.translations.by) + " " + c(t.selectedDonutCategory.name), 1)) : y("", !0)
1891
+ ])
1892
+ ]),
1893
+ u("div", kl, [
1894
+ t.showDonutOptions && e.availableDonutCategories.length ? (o(), i("div", {
1895
+ key: 0,
1896
+ style: g(`background:${e.FINAL_CONFIG.style.chart.modal.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.color}`)
1897
+ }, [
1898
+ u("fieldset", Cl, [
1899
+ u("legend", null, c(e.FINAL_CONFIG.translations.chooseCategoryColumn), 1),
1900
+ u("div", Il, [
1901
+ (o(!0), i(k, null, L(e.availableDonutCategories, (l, s) => (o(), i("div", {
1902
+ key: `donut_radio_${s}`,
1903
+ class: "vue-ui-table-fieldset-option"
1904
+ }, [
1905
+ u("input", {
1906
+ type: "radio",
1907
+ name: l.name,
1908
+ id: l.name,
1909
+ checked: t.selectedDonutCategory && l.name === t.selectedDonutCategory.name,
1910
+ onInput: (h) => t.selectedDonutCategory = e.availableDonutCategories[s],
1911
+ style: g(`background:${e.FINAL_CONFIG.style.inputs.backgroundColor};color:${e.FINAL_CONFIG.style.inputs.color};border:${e.FINAL_CONFIG.style.inputs.border};accent-color:${e.FINAL_CONFIG.style.inputs.accentColor}`)
1912
+ }, null, 44, Fl),
1913
+ u("label", {
1914
+ for: l.name
1915
+ }, c(l.name), 9, wl)
1916
+ ]))), 128))
1917
+ ]),
1918
+ u("button", {
1919
+ class: "vue-ui-table-generate-donut",
1920
+ disabled: !t.selectedDonutCategory,
1921
+ onClick: r[22] || (r[22] = (...l) => e.applyDonutOption && e.applyDonutOption(...l)),
1922
+ style: g(`background:${e.FINAL_CONFIG.style.chart.modal.buttons.selected.backgroundColor};color:${e.FINAL_CONFIG.style.chart.modal.buttons.selected.color}`)
1923
+ }, [
1924
+ u("div", {
1925
+ style: { "margin-bottom": "-3px" },
1926
+ innerHTML: e.icons.donut
1927
+ }, null, 8, xl),
1928
+ P(" " + c(e.FINAL_CONFIG.translations.makeDonut), 1)
1929
+ ], 12, Sl)
1930
+ ])
1931
+ ], 4)) : y("", !0),
1932
+ [t.constants.BAR, t.constants.LINE].includes(t.chart.type) && !t.showDonutOptions ? (o(), i(k, { key: 1 }, [
1933
+ (o(), i("svg", {
1934
+ viewBox: `0 0 ${t.chart.width} ${t.chart.height}`,
1935
+ class: "vue-ui-table-chart-svg",
1936
+ style: g(`background:${e.FINAL_CONFIG.style.chart.layout.backgroundColor}`)
1937
+ }, [
1938
+ u("defs", null, [
1939
+ u("marker", {
1940
+ id: "arrowhead",
1941
+ markerWidth: e.FINAL_CONFIG.style.chart.layout.progression.arrowSize,
1942
+ markerHeight: e.FINAL_CONFIG.style.chart.layout.progression.arrowSize,
1943
+ refX: "0",
1944
+ refY: e.FINAL_CONFIG.style.chart.layout.progression.arrowSize / 2,
1945
+ orient: "auto"
1946
+ }, [
1947
+ u("polygon", {
1948
+ points: `0 0, ${e.FINAL_CONFIG.style.chart.layout.progression.arrowSize} ${e.FINAL_CONFIG.style.chart.layout.progression.arrowSize / 2}, 0 ${e.FINAL_CONFIG.style.chart.layout.progression.arrowSize}`,
1949
+ fill: e.FINAL_CONFIG.style.chart.layout.progression.stroke
1950
+ }, null, 8, Al)
1951
+ ], 8, Ol)
1952
+ ]),
1953
+ u("g", null, [
1954
+ u("line", {
1955
+ x1: 0,
1956
+ x2: t.chart.width,
1957
+ y1: e.chartData.zero,
1958
+ y2: e.chartData.zero,
1959
+ stroke: e.FINAL_CONFIG.style.chart.layout.axis.stroke,
1960
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.axis.strokeWidth,
1961
+ "stroke-linecap": "round"
1962
+ }, null, 8, Dl),
1963
+ u("line", {
1964
+ x1: 0,
1965
+ x2: 0,
1966
+ y1: 0,
1967
+ y2: t.chart.height,
1968
+ stroke: e.FINAL_CONFIG.style.chart.layout.axis.stroke,
1969
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.axis.strokeWidth,
1970
+ "stroke-linecap": "round"
1971
+ }, null, 8, Ml)
1972
+ ]),
1973
+ t.chart.type === t.constants.LINE ? (o(!0), i(k, { key: 0 }, L(e.chartData.plots, (l, s) => (o(), i("g", {
1974
+ key: `trap_fill_${s}`
1975
+ }, [
1976
+ u("rect", {
1977
+ x: s * e.chartData.slot,
1978
+ y: 0,
1979
+ width: e.chartData.slot,
1980
+ height: t.chart.height,
1981
+ fill: t.selectedPlot === s ? "rgba(0,0,0,0.03)" : "transparent"
1982
+ }, null, 8, Gl)
1983
+ ]))), 128)) : y("", !0),
1984
+ (o(!0), i(k, null, L(e.chartData.plots, (l, s) => (o(), i("g", {
1985
+ key: `plot_${s}`
1986
+ }, [
1987
+ t.chart.type === t.constants.BAR ? (o(), i(k, { key: 0 }, [
1988
+ Tl,
1989
+ u("rect", {
1990
+ x: l.x - e.chartData.slot / 2,
1991
+ y: e.chartData.isAllNegative ? 0 : e.calcRectY(l.value, l.y),
1992
+ height: l.value >= 0 ? e.chartData.zero - l.y : e.chartData.isAllNegative ? l.y : l.y - e.chartData.zero,
1993
+ width: e.chartData.slot,
1994
+ fill: e.FINAL_CONFIG.style.chart.layout.bar.fill ? e.FINAL_CONFIG.style.chart.layout.bar.fill : t.selectedPlot === s ? l.value >= 0 ? "url(#barGradientSelected)" : "url(#barGradientSelectedNeg)" : (l.value >= 0, "url(#barGradient)"),
1995
+ stroke: e.FINAL_CONFIG.style.chart.layout.bar.stroke,
1996
+ "stroke-width": "1"
1997
+ }, null, 8, zl),
1998
+ t.selectedPlot === s ? (o(), i("foreignObject", {
1999
+ key: 0,
2000
+ x: l.x - (e.chartData.slot < 100 ? 50 : e.chartData.slot / 2),
2001
+ y: l.value >= 0 ? l.y - 32 : l.y + 4,
2002
+ height: "20",
2003
+ width: e.chartData.slot < 100 ? 100 : e.chartData.slot,
2004
+ style: { overflow: "visible" }
2005
+ }, [
2006
+ u("div", {
2007
+ style: g(`width:100%;text-align:center;font-size:20px;color:${e.FINAL_CONFIG.style.chart.layout.labels.color}`)
2008
+ }, c(l.prefix) + " " + c(Number(l.value.toFixed(a.dataset.header[t.currentSelectionSpan.col].decimals)).toLocaleString()) + " " + c(l.suffix), 5)
2009
+ ], 8, Pl)) : y("", !0)
2010
+ ], 64)) : y("", !0),
2011
+ t.chart.type === t.constants.LINE ? (o(), i(k, { key: 1 }, [
2012
+ s + 1 < e.chartData.plots.length ? (o(), i("line", {
2013
+ key: 0,
2014
+ x1: l.x,
2015
+ y1: l.y,
2016
+ x2: e.chartData.plots[s + 1].x,
2017
+ y2: e.chartData.plots[s + 1].y,
2018
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.line.strokeWidth,
2019
+ stroke: e.FINAL_CONFIG.style.chart.layout.line.stroke
2020
+ }, null, 8, El)) : y("", !0),
2021
+ t.selectedPlot === s ? (o(), i("line", {
2022
+ key: 1,
2023
+ x1: l.x,
2024
+ y1: l.y,
2025
+ x2: l.x,
2026
+ y2: t.chart.height,
2027
+ stroke: e.FINAL_CONFIG.style.chart.layout.line.selector.stroke,
2028
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.line.selector.strokeWidth,
2029
+ "stroke-dasharray": e.FINAL_CONFIG.style.chart.layout.line.selector.strokeDasharray
2030
+ }, null, 8, Bl)) : y("", !0),
2031
+ u("circle", {
2032
+ cx: l.x,
2033
+ cy: l.y,
2034
+ r: t.selectedPlot === s ? e.FINAL_CONFIG.style.chart.layout.line.plot.radius.selected : e.FINAL_CONFIG.style.chart.layout.line.plot.radius.unselected,
2035
+ fill: e.FINAL_CONFIG.style.chart.layout.line.plot.fill,
2036
+ stroke: e.FINAL_CONFIG.style.chart.layout.line.plot.stroke,
2037
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.line.plot.strokeWidth
2038
+ }, null, 8, Rl),
2039
+ t.selectedPlot === s ? (o(), i("foreignObject", {
2040
+ key: 2,
2041
+ x: l.x - (e.chartData.slot < 100 ? 50 : e.chartData.slot / 2),
2042
+ y: e.placeLabelOnTopOrBottom({
2043
+ previousPlot: e.chartData.plots[s - 1],
2044
+ currentPlot: l,
2045
+ nextPlot: e.chartData.plots[s + 1]
2046
+ }),
2047
+ height: "20",
2048
+ width: e.chartData.slot < 100 ? 100 : e.chartData.slot,
2049
+ style: { overflow: "visible" }
2050
+ }, [
2051
+ u("div", {
2052
+ style: g(`width:100%;text-align:center;font-size:20px;color:${e.FINAL_CONFIG.style.chart.layout.labels.color}`)
2053
+ }, c(l.prefix) + " " + c(Number(l.value.toFixed(a.dataset.header[t.currentSelectionSpan.col].decimals)).toLocaleString()) + " " + c(l.suffix), 5)
2054
+ ], 8, Hl)) : y("", !0)
2055
+ ], 64)) : y("", !0)
2056
+ ]))), 128)),
2057
+ (o(!0), i(k, null, L(e.chartData.plots, (l, s) => (o(), i("g", {
2058
+ key: `trap_${s}`
2059
+ }, [
2060
+ u("rect", {
2061
+ x: s * e.chartData.slot,
2062
+ y: 0,
2063
+ width: e.chartData.slot,
2064
+ height: t.chart.height,
2065
+ fill: "transparent",
2066
+ onMouseenter: (h) => t.selectedPlot = s,
2067
+ onMouseleave: r[23] || (r[23] = (h) => t.selectedPlot = void 0)
2068
+ }, null, 40, Ul)
2069
+ ]))), 128)),
2070
+ e.chartData.progression && e.chartData.plots.length > 2 ? (o(), i("line", {
2071
+ key: 1,
2072
+ x1: e.chartData.progression.x1,
2073
+ y1: e.chartData.progression.y1,
2074
+ x2: e.chartData.progression.x2,
2075
+ y2: e.chartData.progression.y2,
2076
+ stroke: e.FINAL_CONFIG.style.chart.layout.progression.stroke,
2077
+ "stroke-width": e.FINAL_CONFIG.style.chart.layout.progression.strokeWidth,
2078
+ "stroke-dasharray": e.FINAL_CONFIG.style.chart.layout.progression.strokeDasharray,
2079
+ "marker-end": "url(#arrowhead)"
2080
+ }, null, 8, Vl)) : y("", !0)
2081
+ ], 12, Ll)),
2082
+ e.chartData.plots.length >= 2 ? (o(), i("div", {
2083
+ key: 0,
2084
+ class: "chart-trend",
2085
+ style: g(`color:${e.FINAL_CONFIG.style.chart.modal.color}`)
2086
+ }, [
2087
+ Wl,
2088
+ P(" Trend: " + c((e.chartData.progression.trend * 100).toFixed(1)) + " % ", 1)
2089
+ ], 4)) : y("", !0)
2090
+ ], 64)) : y("", !0),
2091
+ [t.constants.DONUT].includes(t.chart.type) && !t.showDonutOptions ? (o(), i(k, { key: 2 }, [
2092
+ (o(), i("svg", {
2093
+ viewBox: "0 0 100 100",
2094
+ style: g(`max-width:100%; overflow: visible; padding: 0 24px;background:${e.FINAL_CONFIG.style.chart.layout.backgroundColor}`),
2095
+ class: "vue-ui-table-donut-chart"
2096
+ }, [
2097
+ (o(!0), i(k, null, L(t.currentDonut, (l, s) => (o(), i("path", {
2098
+ key: `arc_${s}`,
2099
+ d: l.path,
2100
+ stroke: `${l.color}CC`,
2101
+ "stroke-width": 20,
2102
+ fill: "none"
2103
+ }, null, 8, jl))), 128)),
2104
+ (o(!0), i(k, null, L(t.currentDonut, (l, s) => (o(), i("foreignObject", {
2105
+ key: `text_marker_${s}`,
2106
+ x: e.calcDonutMarkerLabelPositionX(l) - 15,
2107
+ y: l.center.endY - 15,
2108
+ height: "30",
2109
+ width: "30",
2110
+ style: { overflow: "visible", display: "flex", "align-items": "center", "justify-content": "center" }
2111
+ }, [
2112
+ e.isArcBigEnough(l) ? (o(), i("div", {
2113
+ key: 0,
2114
+ class: "vue-ui-table-donut-label",
2115
+ style: g(`color:${e.FINAL_CONFIG.style.chart.layout.labels.color}`)
2116
+ }, [
2117
+ u("b", null, c(e.displayArcPercentage(l, t.currentDonut)), 1),
2118
+ u("span", Yl, c(l.name), 1)
2119
+ ], 4)) : y("", !0)
2120
+ ], 8, Xl))), 128)),
2121
+ u("text", {
2122
+ x: 50,
2123
+ y: 42,
2124
+ "text-anchor": "middle",
2125
+ "font-size": "6",
2126
+ fill: e.FINAL_CONFIG.style.chart.layout.labels.color
2127
+ }, c(e.FINAL_CONFIG.translations.total), 9, Zl),
2128
+ u("text", {
2129
+ x: 50,
2130
+ y: 48,
2131
+ "text-anchor": "middle",
2132
+ "font-size": "4",
2133
+ fill: e.FINAL_CONFIG.style.chart.layout.labels.color
2134
+ }, c(a.dataset.header[t.currentSelectionSpan.col].prefix) + " " + c(e.donutHollowLabels.total) + " " + c(a.dataset.header[t.currentSelectionSpan.col].isPercentage ? "%" : "") + " " + c(a.dataset.header[t.currentSelectionSpan.col].suffix), 9, ql),
2135
+ u("text", {
2136
+ x: 50,
2137
+ y: 56,
2138
+ "text-anchor": "middle",
2139
+ "font-size": "6",
2140
+ fill: e.FINAL_CONFIG.style.chart.layout.labels.color
2141
+ }, c(e.FINAL_CONFIG.translations.average), 9, Kl),
2142
+ u("text", {
2143
+ x: 50,
2144
+ y: 62,
2145
+ "text-anchor": "middle",
2146
+ "font-size": "4",
2147
+ fill: e.FINAL_CONFIG.style.chart.layout.labels.color
2148
+ }, c(a.dataset.header[t.currentSelectionSpan.col].prefix) + " " + c(e.donutHollowLabels.average) + " " + c(a.dataset.header[t.currentSelectionSpan.col].isPercentage ? "%" : "") + " " + c(a.dataset.header[t.currentSelectionSpan.col].suffix), 9, Jl)
2149
+ ], 4)),
2150
+ u("div", Ql, [
2151
+ (o(!0), i(k, null, L(t.currentDonut.filter((l) => l.value > 0), (l, s) => (o(), i("div", {
2152
+ class: "vue-ui-table-donut-legend-item",
2153
+ key: `donut_legend_${s}`,
2154
+ style: g(`color:${e.FINAL_CONFIG.style.chart.layout.labels.color}`)
2155
+ }, [
2156
+ u("span", {
2157
+ style: g(`color:${l.color}`)
2158
+ }, "●", 4),
2159
+ u("span", null, c(l.name) + " : ", 1),
2160
+ u("b", null, c(a.dataset.header[t.currentSelectionSpan.col].prefix) + " " + c(e.getDonutLegendValue(l.absoluteValue)) + " " + c(a.dataset.header[t.currentSelectionSpan.col].isPercentage ? "%" : "") + " " + c(a.dataset.header[t.currentSelectionSpan.col].suffix), 1),
2161
+ u("span", null, "(" + c((l.proportion * 100).toFixed(1)) + "%)", 1)
2162
+ ], 4))), 128))
2163
+ ])
2164
+ ], 64)) : y("", !0)
2165
+ ], 512)
2166
+ ], 4)) : y("", !0)
2167
+ ], 4);
2168
+ }
2169
+ const en = /* @__PURE__ */ de(Ot, [["render", $l], ["__scopeId", "data-v-5a108fbd"]]), cn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2170
+ __proto__: null,
2171
+ default: en
2172
+ }, Symbol.toStringTag, { value: "Module" }));
2173
+ export {
2174
+ Le as S,
2175
+ Lt as T,
2176
+ on as a,
2177
+ un as b,
2178
+ cn as c,
2179
+ en as v
2180
+ };