@feedmepos/mf-report 5.19.14 → 5.19.15-beta.0

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 (29) hide show
  1. package/dist/{App-DeVQ-5jG.js → App-DaWS5CoM.js} +31 -31
  2. package/dist/BaseDialog.vue_vue_type_script_setup_true_lang-lOdt7NC7.js +19641 -0
  3. package/dist/{DateRangeSelect.vue_vue_type_script_setup_true_lang-DumUlm1C.js → DateRangeSelect.vue_vue_type_script_setup_true_lang-BVi8DNni.js} +2 -2
  4. package/dist/{Default.vue_vue_type_script_setup_true_lang-CmzBHyNH.js → Default.vue_vue_type_script_setup_true_lang-Chyv0-HU.js} +2 -2
  5. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-D7I6fnJ3.js +1669 -0
  6. package/dist/{InsightView-59SomPE5.js → InsightView-B28BJ1MA.js} +5 -5
  7. package/dist/{Integration-Cn3MIpPW.js → Integration-B58qXrEi.js} +2 -2
  8. package/dist/{Integrations-CDZCWs2E.js → Integrations-D4ju0l38.js} +3 -3
  9. package/dist/{Layout-BMT4kAeo.js → Layout-lJXJCHED.js} +1 -1
  10. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-B3GqFogN.js → MenuTab.vue_vue_type_script_setup_true_lang-CGD_v4oS.js} +6 -6
  11. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-Do4b-kr5.js → NavigationTab.vue_vue_type_script_setup_true_lang-BuWxAL_6.js} +7015 -7009
  12. package/dist/{NoData.vue_vue_type_script_setup_true_lang-w_dppGRy.js → NoData.vue_vue_type_script_setup_true_lang-DX1We5Q0.js} +1 -1
  13. package/dist/{OverviewView-DVwf7FCp.js → OverviewView-BKQm4JJJ.js} +5 -5
  14. package/dist/{Report-D7zpjMrN.js → Report-DL0olJk2.js} +4 -4
  15. package/dist/{ReportEditor-C7ywC2vY.js → ReportEditor-BFDiTB14.js} +6 -6
  16. package/dist/{ReportView-j70V7ndP.js → ReportView-BrIUqNUG.js} +7 -7
  17. package/dist/{SelectComponent.vue_vue_type_script_setup_true_lang-BLg2sUEv.js → SelectComponent.vue_vue_type_script_setup_true_lang-DYOjRnAy.js} +1 -1
  18. package/dist/{Setting-CCreZm_Z.js → Setting-T8R9CvmF.js} +4 -4
  19. package/dist/{TileEditor-DgthwM0_.js → TileEditor-CfJ_AkZJ.js} +7 -7
  20. package/dist/{TransitionFade-BMtXJvf_.js → TransitionFade-CikcE2a-.js} +92 -92
  21. package/dist/app.js +11 -11
  22. package/dist/assets/formatChartData.worker-BzZtU5fj.js +134 -0
  23. package/dist/assets/processTableData.worker-D-lgWpiT.js +134 -0
  24. package/dist/{helper-BxD8Pw6q.js → helper-CLGnwM-X.js} +1 -1
  25. package/dist/{vue-i18n-BhgV_iZ3.js → vue-i18n-DsnU36hZ.js} +177 -177
  26. package/package.json +2 -3
  27. package/dist/BaseDialog.vue_vue_type_script_setup_true_lang-DTcydHkQ.js +0 -11209
  28. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-uQ3PyGDv.js +0 -1626
  29. package/dist/assets/formatChartData.worker-2gP9DT2G.js +0 -8
@@ -1,1626 +0,0 @@
1
- import { computed as g, defineComponent as te, mergeModels as me, useModel as ae, ref as h, onMounted as _e, nextTick as X, watch as J, resolveComponent as V, createElementBlock as I, openBlock as W, Fragment as ne, renderSlot as fe, createVNode as $, normalizeStyle as se, unref as l, createElementVNode as P, toDisplayString as ze, withCtx as q, createBlock as U, createCommentVNode as he, normalizeClass as Pe, h as xt, renderList as Tt, createTextVNode as aa, onUnmounted as la, resolveDynamicComponent as oa, withDirectives as na, vShow as sa } from "vue";
2
- import { W as F, d as Ee, v as $e, e as Ge, f as Rt, q as ra, R as xe, g as ia } from "./BaseDialog.vue_vue_type_script_setup_true_lang-DTcydHkQ.js";
3
- import { u as Ie, b as Me, a as lt } from "./vue-i18n-BhgV_iZ3.js";
4
- import { a as Ct } from "./helper-BxD8Pw6q.js";
5
- import { storeToRefs as Se, defineStore as ua } from "pinia";
6
- import { useBreakpoints as Ft, components as ca, useSnackbar as Lt } from "@feedmepos/ui-library";
7
- import { a as da } from "./SelectComponent.vue_vue_type_script_setup_true_lang-BLg2sUEv.js";
8
- import { r as Ce } from "./i18n-Cif1I9J2.js";
9
- import { _ as St } from "./NoData.vue_vue_type_script_setup_true_lang-w_dppGRy.js";
10
- var Ke = /* @__PURE__ */ ((e) => (e.line = "LINE", e.bar = "BAR", e))(Ke || {}), Q = /* @__PURE__ */ ((e) => (e.top = "TOP", e.bottom = "BOTTOM", e))(Q || {}), Ze = /* @__PURE__ */ ((e) => (e.start = "start", e.center = "center", e.end = "end", e))(Ze || {}), Qe = /* @__PURE__ */ ((e) => (e.start = "start", e.center = "center", e.end = "end", e.left = "left", e.right = "right", e.top = "top", e.bottom = "bottom", e))(Qe || {}), et = /* @__PURE__ */ ((e) => (e.top = "top", e.bottom = "bottom", e))(et || {}), tt = /* @__PURE__ */ ((e) => (e.right = "right", e.left = "left", e))(tt || {}), at = /* @__PURE__ */ ((e) => (e.top = "top", e.bottom = "bottom", e.right = "right", e.left = "left", e.chartArea = "chartArea", e))(at || {});
11
- F.Circular, F.Table, F.BarChart, F.LineChart, F.StackBarChart, F.StackLineChart, F.Scorecard, F.Spacer;
12
- const ha = [
13
- {
14
- type: F.Circular,
15
- showLabel: !1,
16
- // TODO: temporarily removed show label as it has no function
17
- showDrillDimension: !0,
18
- showRollup: !1,
19
- showSearchBar: !1
20
- },
21
- {
22
- type: F.Table,
23
- showLabel: !1,
24
- showDrillDimension: !0,
25
- showRollup: !0,
26
- showSearchBar: !0
27
- },
28
- {
29
- type: F.BarChart,
30
- showLabel: !1,
31
- // TODO: temporarily removed show label as it has no function
32
- showDrillDimension: !0,
33
- showRollup: !1,
34
- showSearchBar: !1
35
- },
36
- {
37
- type: F.LineChart,
38
- showLabel: !1,
39
- // TODO: temporarily removed show label as it has no function
40
- showDrillDimension: !0,
41
- showRollup: !0,
42
- showSearchBar: !1
43
- },
44
- {
45
- type: F.StackBarChart,
46
- showLabel: !1,
47
- // TODO: temporarily removed show label as it has no function
48
- showDrillDimension: !0,
49
- showRollup: !0,
50
- showSearchBar: !1
51
- },
52
- {
53
- type: F.StackLineChart,
54
- showLabel: !1,
55
- // TODO: temporarily removed show label as it has no function
56
- showDrillDimension: !0,
57
- showRollup: !0,
58
- showSearchBar: !1
59
- },
60
- {
61
- type: F.Scorecard,
62
- showLabel: !1,
63
- showDrillDimension: !1,
64
- showRollup: !1,
65
- showSearchBar: !1
66
- },
67
- {
68
- type: F.Spacer,
69
- showLabel: !1,
70
- showDrillDimension: !1,
71
- showRollup: !1,
72
- showSearchBar: !1
73
- }
74
- ];
75
- function je(e) {
76
- const n = [e.schemaName, e.name];
77
- return "option" in e && e.option && n.push(e.option), "aggregation" in e && e.aggregation && n.push(e.aggregation), n.push(e.label.replace(/[^a-zA-Z0-9]/g, "")), n.join("_").toLowerCase();
78
- }
79
- function ma(e, n) {
80
- switch (e) {
81
- case F.BarChart:
82
- case F.LineChart:
83
- case F.StackBarChart:
84
- case F.StackLineChart:
85
- return Array.isArray(n == null ? void 0 : n.datasets) && Array.isArray(n == null ? void 0 : n.xAxis) && n.datasets.length > 0 && n.xAxis.length > 0;
86
- case F.Table:
87
- return Array.isArray(n == null ? void 0 : n.rows) && Array.isArray(n == null ? void 0 : n.columns) && n.rows.length > 0 && n.columns.length > 0;
88
- case F.Circular:
89
- return Array.isArray(n == null ? void 0 : n.datasets) && n.datasets.length > 0;
90
- case F.Scorecard:
91
- return !0;
92
- case F.Spacer:
93
- return !0;
94
- }
95
- }
96
- const kt = [
97
- "54, 162, 235",
98
- //8CE6D7
99
- "0, 123, 167",
100
- //007BA7
101
- "255, 93, 83",
102
- //FF5D53
103
- "115, 200, 230",
104
- //73C8E6
105
- "252, 162, 62",
106
- //FCA23E
107
- "240, 155, 190",
108
- //F09BBE
109
- "255, 210, 50",
110
- //FFD232
111
- "80, 190, 155",
112
- //50BE9B
113
- "131, 88, 212",
114
- //8358D4
115
- "155, 80, 70"
116
- //9B5046
117
- ];
118
- function ee({
119
- index: e,
120
- isCompare: n,
121
- opacity: m
122
- }) {
123
- let t = typeof m == "number" ? m : 1;
124
- return n && (t = t * 0.6), `rgba(${kt[e % kt.length]}, ${t})`;
125
- }
126
- function zt(e, n, m) {
127
- if (e === "" || n === "")
128
- return null;
129
- let t = (z) => z == null ? void 0 : z.replace(/,/g, "");
130
- m === "ID" && (t = (z) => z == null ? void 0 : z.replace(/\./g, "").replace(/,/g, "."));
131
- const x = Number(t(e)), L = Number(t(n));
132
- if (isNaN(x) || isNaN(L))
133
- return null;
134
- let S = 0;
135
- L === 0 ? x === 0 ? S = 0 : S = 1 : S = (x - L) / L;
136
- const T = fa(S);
137
- return {
138
- value: isNaN(S) ? "" : `${(S * 100).toFixed(0)}%`,
139
- icon: T
140
- };
141
- }
142
- function fa(e) {
143
- return e > 0 ? {
144
- name: "moving",
145
- color: "#1F7735",
146
- tailwind: "fm-color-system-success-100"
147
- } : e < 0 ? {
148
- name: "trending_down",
149
- color: "#99231D",
150
- tailwind: "fm-color-system-error-100"
151
- } : {
152
- name: "equal",
153
- color: "#C7C7CC",
154
- tailwind: "fm-color-neutral-gray-100"
155
- };
156
- }
157
- function We(e) {
158
- function n(u, c, i) {
159
- if (u.measureText(c).width <= i) return c;
160
- const r = "…";
161
- let b = 0, p = c.length;
162
- for (; b < p; ) {
163
- const y = Math.floor((b + p) / 2), d = c.slice(0, y) + r;
164
- u.measureText(d).width <= i ? b = y + 1 : p = y;
165
- }
166
- return c.slice(0, b - 1) + r;
167
- }
168
- const m = g(() => ({
169
- display: e.showLabel,
170
- align: e.labelAlign,
171
- anchor: e.labelAnchor,
172
- rotation: e.labelRotation,
173
- offset: e.labelOffset,
174
- font: {
175
- size: e.labelFontSize
176
- },
177
- color: (u) => {
178
- const c = u.chart.data.datasets[u.datasetIndex];
179
- return c.borderColor ? Array.isArray(c.borderColor) ? c.borderColor[u.dataIndex] : c.borderColor : c.backgroundColor ? Array.isArray(c.backgroundColor) ? c.backgroundColor[u.dataIndex] : c.backgroundColor : "#000";
180
- },
181
- formatter: (u) => u === 0 ? "" : u.toLocaleString("en-US")
182
- })), t = g(() => ({
183
- display: e.showX,
184
- position: e.xPosition,
185
- grid: {
186
- display: e.showXGrid
187
- },
188
- ticks: {
189
- display: e.showXTick,
190
- callback: function(u) {
191
- if ((e == null ? void 0 : e.isTransposed) === !0) return String(u);
192
- let i = String(u);
193
- const r = this;
194
- r && typeof r.getLabelForValue == "function" && (i = r.getLabelForValue(u));
195
- const b = r == null ? void 0 : r.chart, p = r == null ? void 0 : r.ctx, y = b.height * 0.25;
196
- if (p && y > 0) {
197
- p.save();
198
- const E = p.measureText(i).width > y ? n(p, i, y) : i;
199
- return p.restore(), E;
200
- }
201
- return i;
202
- },
203
- font: {
204
- size: e.xTickFontSize
205
- }
206
- },
207
- title: {
208
- display: e.showXTitle,
209
- text: e.xTitle,
210
- font: {
211
- size: e.xTitleFontSize
212
- }
213
- },
214
- afterBuildTicks: (u) => {
215
- const c = Array.isArray(u == null ? void 0 : u.ticks) ? u.ticks : [];
216
- if (c.length === 0) return;
217
- const i = u.getLabelForValue(c[0].value), r = !isNaN(Number(i));
218
- u.options.ticks.minRotation = r || c.length < 10 ? 0 : 90;
219
- },
220
- afterFit: (u) => {
221
- if (!(e != null && e.isTransposed)) {
222
- const c = u.chart.height * 0.4;
223
- u.height > c && (u.height = c);
224
- }
225
- }
226
- })), x = g(() => ({
227
- display: e.showY,
228
- position: e.yPosition,
229
- grid: {
230
- display: e.showYGrid
231
- },
232
- ticks: {
233
- display: e.showYTick,
234
- font: {
235
- size: e.yTickFontSize
236
- },
237
- callback: function(u) {
238
- if (!((e == null ? void 0 : e.isTransposed) === !0)) return String(u);
239
- let i = String(u);
240
- const r = this;
241
- r && typeof r.getLabelForValue == "function" && (i = r.getLabelForValue(u));
242
- const b = r == null ? void 0 : r.chart, p = r == null ? void 0 : r.ctx, y = b.width * 0.4;
243
- if (p && y > 0) {
244
- p.save();
245
- const E = p.measureText(i).width > y ? n(p, i, y) : i;
246
- return p.restore(), E;
247
- }
248
- return i;
249
- }
250
- },
251
- title: {
252
- display: e.showYTitle,
253
- text: e.yTitle,
254
- font: {
255
- size: e.yTitleFontSize
256
- }
257
- }
258
- })), L = g(() => ({
259
- display: e.showLegend,
260
- position: e.legendPosition,
261
- usePointStyle: e.usePointStyle,
262
- maxHeight: e.legendMaxHeight,
263
- maxWidth: e.legendMaxWidth,
264
- labels: {
265
- usePointStyle: e.usePointStyle ?? !0,
266
- generateLabels: (u) => {
267
- var i;
268
- const c = ((i = u == null ? void 0 : u.data) == null ? void 0 : i.datasets) || [];
269
- if (c.length === 0) return [];
270
- if (c.length === 1 && Array.isArray(c[0].backgroundColor) && c[0].backgroundColor.length > 1 && Array.isArray(c[0].data)) {
271
- const r = c[0];
272
- return u.data.labels.map((p, y) => {
273
- const d = r.backgroundColor[y];
274
- return {
275
- text: p,
276
- fontColor: "#6b6b6b",
277
- fillStyle: d,
278
- strokeStyle: d,
279
- datasetIndex: 0,
280
- index: y,
281
- hidden: u.getDataVisibility ? !u.getDataVisibility(y) : !1
282
- };
283
- });
284
- }
285
- return u.data.datasets.map((r, b) => {
286
- const p = r.borderColor || r.backgroundColor;
287
- return {
288
- text: r.label,
289
- fontColor: "#6b6b6b",
290
- fillStyle: p,
291
- strokeStyle: p,
292
- datasetIndex: b,
293
- hidden: !u.isDatasetVisible(b)
294
- };
295
- });
296
- }
297
- }
298
- })), S = g(() => e.isTransposed), T = g(() => e.chartWidth), z = g(() => e.chartHeight);
299
- return { datalabels: m, xCfg: t, yCfg: x, isTransposed: S, legend: L, chartWidth: T, chartHeight: z };
300
- }
301
- const pa = /* @__PURE__ */ te({
302
- __name: "WidgetBarchart",
303
- props: /* @__PURE__ */ me({
304
- tileIndex: {}
305
- }, {
306
- modelValue: { required: !0 },
307
- modelModifiers: {}
308
- }),
309
- emits: ["update:modelValue"],
310
- setup(e) {
311
- const n = e, m = ae(e, "modelValue"), t = h(null), x = g(() => {
312
- var d;
313
- return ((d = m.value.data) == null ? void 0 : d.xAxis) ?? [];
314
- }), L = g(() => {
315
- var d;
316
- return ((d = m.value.data) == null ? void 0 : d.datasets) ?? [];
317
- }), { datalabels: S, xCfg: T, yCfg: z, isTransposed: u, legend: c, chartWidth: i, chartHeight: r } = We(
318
- m.value
319
- ), b = g(() => L.value.length > 0 ? [
320
- ...L.value.map((d, E) => ({
321
- label: d.name,
322
- data: d.values,
323
- dash: !!d.isCompare,
324
- backgroundColor: ee({ index: E, isCompare: d.isCompare })
325
- }))
326
- ] : []), p = Ee();
327
- function y() {
328
- return p.extractChartSize(t.value, n.tileIndex) || { width: 0, height: 0 };
329
- }
330
- return _e(() => {
331
- X(() => {
332
- y();
333
- });
334
- }), J([b], () => {
335
- X(() => y());
336
- }), (d, E) => {
337
- const f = V("FmBarChart");
338
- return W(), I(ne, null, [
339
- fe(d.$slots, "menu"),
340
- $(f, {
341
- ref_key: "chartRef",
342
- ref: t,
343
- class: "bar-chart",
344
- datasets: b.value,
345
- "x-axis": { categories: x.value },
346
- "x-cfg": l(T),
347
- "y-cfg": l(z),
348
- transpose: l(u),
349
- legend: {
350
- display: l(c).display ?? !1,
351
- position: l(c).position,
352
- maxHeight: l(c).maxHeight,
353
- maxWidth: l(c).maxWidth,
354
- labels: l(c).labels
355
- },
356
- datalabels: l(S),
357
- "maintain-aspect-ratio": !1,
358
- style: se({
359
- "--chart-width": l(i) !== void 0 ? l(i) + "px" : "100%",
360
- "--chart-height": l(r) !== void 0 ? l(r) + "px" : "calc(100% - 36px)"
361
- })
362
- }, null, 8, ["datasets", "x-axis", "x-cfg", "y-cfg", "transpose", "legend", "datalabels", "style"])
363
- ], 64);
364
- };
365
- }
366
- }), va = /* @__PURE__ */ te({
367
- __name: "WidgetCircular",
368
- props: /* @__PURE__ */ me({
369
- tileIndex: {}
370
- }, {
371
- modelValue: { required: !0 },
372
- modelModifiers: {}
373
- }),
374
- emits: ["update:modelValue"],
375
- setup(e) {
376
- const n = e, m = ae(e, "modelValue"), { breakpoints: t } = Ft(), x = h(null), { datalabels: L, legend: S, chartWidth: T, chartHeight: z } = We(m.value), u = g(() => {
377
- let b = [];
378
- return m.value.data.datasets && m.value.data.metrics && m.value.data.datasets.length > 0 && m.value.data.metrics.length > 0 && (b = [
379
- {
380
- label: m.value.data.metrics[0],
381
- data: m.value.data.datasets.map((p) => p.value),
382
- backgroundColor: m.value.data.datasets.map((p, y) => ee({ index: y }))
383
- }
384
- ]), b;
385
- }), c = Ee();
386
- function i() {
387
- return c.extractChartSize(x.value, n.tileIndex) || { width: 0, height: 0 };
388
- }
389
- _e(() => {
390
- X(() => {
391
- i();
392
- });
393
- }), J([u], () => {
394
- X(() => i());
395
- });
396
- const r = g(() => t.value.lg ? 12 : 8);
397
- return (b, p) => {
398
- const y = V("FmPieChart");
399
- return W(), I(ne, null, [
400
- fe(b.$slots, "menu"),
401
- $(y, {
402
- ref_key: "chartRef",
403
- ref: x,
404
- class: "circular",
405
- percentage: "70%",
406
- datasets: u.value,
407
- metrics: m.value.data.datasets.map((d) => d.name),
408
- variant: "doughnut",
409
- legend: {
410
- display: l(S).display ?? !0,
411
- position: l(S).position ?? "top",
412
- maxHeight: l(S).maxHeight,
413
- maxWidth: l(S).maxWidth,
414
- labels: {
415
- ...l(S).labels,
416
- font: {
417
- size: r.value
418
- }
419
- }
420
- },
421
- datalabels: l(L),
422
- "maintain-aspect-ratio": !1,
423
- style: se({
424
- "--chart-width": l(T) !== void 0 ? l(T) + "px" : "100%",
425
- "--chart-height": l(z) !== void 0 ? l(z) + "px" : "calc(100% - 36px)"
426
- })
427
- }, null, 8, ["datasets", "metrics", "legend", "datalabels", "style"])
428
- ], 64);
429
- };
430
- }
431
- }), ga = { class: "flex flex-col gap-1" }, ya = { class: "fm-typo-en-title-sm-600" }, ba = { class: "flex gap-2" }, wa = { key: 0 }, xa = { key: 1 }, Ca = /* @__PURE__ */ te({
432
- __name: "WidgetScorecard",
433
- props: {
434
- modelValue: { required: !0 },
435
- modelModifiers: {}
436
- },
437
- emits: ["update:modelValue"],
438
- setup(e) {
439
- const n = ae(e, "modelValue"), { t: m } = Ie(), { compareDateRange: t, defaultDateSetting: x } = Se(Me()), { country: L } = lt(), S = g(() => {
440
- var i;
441
- return ((i = n.value.data) == null ? void 0 : i.value) || "";
442
- }), T = g(() => {
443
- const { data: i } = n.value;
444
- return i != null && i.comparison ? zt(S.value, i.comparison, L) : null;
445
- });
446
- function z(i) {
447
- switch (i) {
448
- case Ke.bar:
449
- return "bar";
450
- case Ke.line:
451
- return "line";
452
- default:
453
- return "line";
454
- }
455
- }
456
- const u = g(() => {
457
- var i;
458
- return (i = n.value.data) == null ? void 0 : i.sparkline;
459
- }), c = g(() => u.value.datasets.map((i) => ({
460
- label: i.name,
461
- data: i.values,
462
- fill: !0,
463
- color: "#36a2eb"
464
- })));
465
- return (i, r) => {
466
- var E;
467
- const b = V("FmIcon"), p = V("FmChip"), y = V("FmTooltip"), d = V("FmLineChart");
468
- return W(), I("div", ga, [
469
- fe(i.$slots, "menu"),
470
- P("p", ya, ze(S.value), 1),
471
- P("div", ba, [
472
- $(y, {
473
- content: `vs. ${(E = l(x).defaultCompareType) == null ? void 0 : E.split("_").join(" ")}`,
474
- placement: "right",
475
- "hide-arrow": "",
476
- variant: "plain"
477
- }, {
478
- default: q(() => [
479
- T.value ? (W(), U(p, {
480
- key: 0,
481
- icon: T.value.icon.name,
482
- class: Pe(`bg-${T.value.icon.tailwind}`),
483
- compact: ""
484
- }, {
485
- default: q(() => [
486
- $(b, {
487
- name: T.value.icon.name,
488
- color: T.value.icon.color
489
- }, null, 8, ["name", "color"]),
490
- P("p", {
491
- class: "fm-typo-en-body-md-600",
492
- style: se({ color: T.value.icon.color })
493
- }, ze(T.value.value), 5)
494
- ]),
495
- _: 1
496
- }, 8, ["icon", "class"])) : he("", !0),
497
- l(t).endDate !== null && l(t).startDate !== null && T.value === null ? (W(), U(p, {
498
- key: 1,
499
- compact: ""
500
- }, {
501
- default: q(() => [
502
- $(b, {
503
- name: "arrow_upward",
504
- color: "#C7C7CC"
505
- }),
506
- r[0] || (r[0] = P("p", { class: "fm-typo-en-body-md-600 text-fm-color-typo-disabled" }, "N/A", -1))
507
- ]),
508
- _: 1
509
- })) : he("", !0)
510
- ]),
511
- _: 1
512
- }, 8, ["content"])
513
- ]),
514
- u.value ? (W(), I("div", wa, [
515
- z(u.value.type) === "line" ? (W(), U(d, {
516
- key: 0,
517
- class: "sparkline",
518
- datasets: c.value,
519
- legend: {
520
- display: !1
521
- },
522
- datalabels: { display: !1 },
523
- "x-axis": { categories: u.value.dimensions },
524
- "y-cfg": { display: !1 },
525
- "x-cfg": { display: !1 },
526
- "maintain-aspect-ratio": !1
527
- }, null, 8, ["datasets", "x-axis"])) : he("", !0)
528
- ])) : (W(), I("div", xa, r[1] || (r[1] = [
529
- P("div", { class: "sparkline" }, [
530
- P("div", { class: "flex flex-col gap-8" }, [
531
- P("div"),
532
- P("div")
533
- ]),
534
- P("div", { class: "grow" })
535
- ], -1)
536
- ])))
537
- ]);
538
- };
539
- }
540
- }), Sa = {};
541
- function ka(e, n) {
542
- const m = V("FmMenuDivider");
543
- return W(), U(m);
544
- }
545
- const _a = /* @__PURE__ */ da(Sa, [["render", ka]]), Ta = "mf-reporttable-dimension", _t = ua(Ta, () => {
546
- const e = h(0), n = h([]), m = h(!1), t = (f, s) => {
547
- e.value = f, L(f, s);
548
- }, x = (f, s, C, w) => {
549
- n[f] = s, n.value = [...n.value], S(f, s, C, w);
550
- }, L = (f, s) => {
551
- const C = (s == null ? void 0 : s.querySelectorAll("thead tr")) ?? [], w = (s == null ? void 0 : s.querySelectorAll("tbody tr")) ?? [];
552
- [...C, ...w].forEach((D) => {
553
- const o = D;
554
- o && (o.style.height = `${f}px`);
555
- });
556
- }, S = (f, s, C, w = !1) => {
557
- const k = (C == null ? void 0 : C.querySelectorAll("th")) ?? [];
558
- if (f === void 0) return;
559
- const D = k[f], o = w ? n[f] : s;
560
- if (!D || o === void 0) return;
561
- const v = () => {
562
- D.style.width = `${o}px`;
563
- };
564
- w ? requestAnimationFrame(v) : v();
565
- }, T = () => {
566
- const f = document.querySelectorAll("th"), s = document.querySelectorAll("td"), C = document.querySelector("table");
567
- C == null || C.classList.add("table-fixed"), f.forEach((w) => w.classList.add("toggleEditResize")), s.forEach((w) => w.classList.add("toggleEditResize")), m.value = !0;
568
- }, z = () => {
569
- const f = document.querySelectorAll("th"), s = document.querySelectorAll("td"), C = document.querySelectorAll(".col-resize-handle"), w = document.querySelectorAll(".row-resize-handle");
570
- f.forEach((k) => k.classList.remove("toggleEditResize")), s.forEach((k) => k.classList.remove("toggleEditResize")), C.forEach((k) => k.remove()), w.forEach((k) => k.remove()), m.value = !1;
571
- }, u = () => {
572
- e.value = 0, n.value = [];
573
- }, c = (f, s) => {
574
- if (s) {
575
- const C = document.querySelectorAll(`thead th:nth-child(${f + 1})`), w = document.querySelectorAll(`tbody td:nth-child(${f + 1})`);
576
- [...C, ...w].forEach((k) => {
577
- k.classList.add("highlight-hover-col");
578
- });
579
- } else
580
- document.querySelectorAll(
581
- `thead th:nth-child(${f + 1}), tbody td:nth-child(${f + 1})`
582
- ).forEach((C) => C.classList.add("highlight-col"));
583
- }, i = (f) => {
584
- const s = document.querySelectorAll("thead tr"), C = document.querySelectorAll("tbody tr"), w = [...s, ...C];
585
- for (const k of w)
586
- f ? k.classList.add("highlight-hover-row") : k.classList.add("highlight-row");
587
- }, r = (f) => {
588
- const s = f ? ".highlight-hover-row" : ".highlight-row", C = document.querySelectorAll(s);
589
- for (const w of C)
590
- w.classList.remove(s.slice(1));
591
- }, b = (f) => {
592
- f ? document.querySelectorAll(".highlight-hover-col").forEach((s) => {
593
- s.classList.remove("highlight-hover-col");
594
- }) : document.querySelectorAll(".highlight-col").forEach((s) => s.classList.remove("highlight-col"));
595
- }, p = (f, s) => {
596
- const C = /* @__PURE__ */ new Map(), w = f.clientX, k = f.target.closest("table"), D = k == null ? void 0 : k.querySelectorAll("th")[s], o = D == null ? void 0 : D.getBoundingClientRect().width, v = C.get(s) ? n[s.toString()] || 60 : (C.set(s, !0), o || n[s.toString()] || 60), R = D == null ? void 0 : D.querySelector("p");
597
- if (!R) return;
598
- const _ = R.textContent || "", A = window.getComputedStyle(R), H = `${A.fontWeight} ${A.fontSize} ${A.fontFamily}`, O = document.createElement("canvas").getContext("2d");
599
- if (!O) return;
600
- O.font = H;
601
- const G = O.measureText(_), j = window.getComputedStyle(D), De = parseFloat(j.paddingLeft || "0"), Ae = parseFloat(j.paddingRight || "0"), Ve = G.width + De + Ae;
602
- c(s, !1);
603
- const Te = (pe) => {
604
- const re = pe.clientX - w, ie = Math.max(Ve, v + re);
605
- if (k) {
606
- x(s, ie, k, !0);
607
- let le = 0;
608
- k.querySelectorAll("th").forEach((ue, ce) => {
609
- le += ce === s ? ie : n[ce] || ue.getBoundingClientRect().width;
610
- }), k.classList.remove("w-full"), k.style.width = `${le}px`;
611
- const oe = k == null ? void 0 : k.parentElement;
612
- if (oe) {
613
- const ue = oe.scrollWidth, ce = oe.scrollLeft;
614
- oe.offsetWidth + ce >= ue - 100 && (oe.scrollLeft = ue);
615
- }
616
- }
617
- }, Re = () => {
618
- const pe = (k == null ? void 0 : k.querySelectorAll("th")) ?? [], re = [...n.value];
619
- pe.forEach((ie, le) => {
620
- const ve = ie.getBoundingClientRect().width;
621
- n[le] = ve, re[le] = ve;
622
- }), n.value = re, b(!1), document.removeEventListener("mousemove", Te), document.removeEventListener("mouseup", Re);
623
- };
624
- document.addEventListener("mousemove", Te), document.addEventListener("mouseup", Re);
625
- }, y = (f) => {
626
- const s = f.clientY, C = f.target.closest("table"), w = e.value || 48;
627
- i(!1);
628
- const k = (o) => {
629
- const v = Math.max(30, w + (o.clientY - s));
630
- C && t(v, C);
631
- }, D = () => {
632
- r(!1), document.removeEventListener("mousemove", k), document.removeEventListener("mouseup", D);
633
- };
634
- document.addEventListener("mousemove", k), document.addEventListener("mouseup", D);
635
- };
636
- return {
637
- rowHeight: e,
638
- colWidths: n,
639
- isEditing: m,
640
- updateRowHeight: t,
641
- updateColWidth: x,
642
- setRowHeights: L,
643
- setColWidths: S,
644
- enableEditMode: T,
645
- disableEditMode: z,
646
- resetStore: u,
647
- highlightCol: c,
648
- highlightRows: i,
649
- removeRowHighlight: r,
650
- removeColHighlight: b,
651
- resizeCol: p,
652
- resizeRow: y,
653
- enableCellResizing: () => {
654
- const f = document.querySelector("thead"), s = document.querySelectorAll("thead tr"), C = document.querySelectorAll("tbody tr"), w = [...s, ...C];
655
- f && f.classList.remove("sticky");
656
- const k = (D, o) => {
657
- const v = document.createElement("div");
658
- return v.className = `${D}-resize-handle`, D === "col" ? (v.addEventListener("mouseenter", () => c(o, !0)), v.addEventListener("mouseleave", () => b(!0)), v.addEventListener("mousedown", (R) => {
659
- R.stopPropagation(), p(R, o);
660
- })) : (v.addEventListener("mouseenter", () => i(!0)), v.addEventListener("mouseleave", () => r(!0)), v.addEventListener("mousedown", (R) => {
661
- R.stopPropagation(), y(R);
662
- })), v;
663
- };
664
- w.forEach((D) => {
665
- const o = D.closest("thead") !== null;
666
- D.querySelectorAll(o ? "th" : "td").forEach((R, _) => {
667
- const A = k("col", _), H = k("row", _);
668
- R.appendChild(A), R.appendChild(H);
669
- });
670
- }), T();
671
- },
672
- cancelResizingChanges: () => {
673
- z();
674
- }
675
- };
676
- });
677
- function Je(e) {
678
- if (e == null || e === "")
679
- return "";
680
- const n = String(e), m = Number(n);
681
- if (isNaN(m)) return n;
682
- const [t, x] = n.split("."), L = new Intl.NumberFormat("en-US").format(Number(t));
683
- return x !== void 0 ? `${L}.${x}` : L;
684
- }
685
- const Ra = { class: "my-4" }, Fa = {
686
- class: "border-b border-fm-color-neutral-gray-100 hover:bg-fm-color-opacity-sm",
687
- style: { backgroundColor: "#f9f9f9" }
688
- }, La = { class: "font-bold" }, za = { class: "text-fm-color-neutral-gray-300" }, Ea = /* @__PURE__ */ te({
689
- __name: "WidgetTable",
690
- props: {
691
- modelValue: { required: !0 },
692
- modelModifiers: {}
693
- },
694
- emits: ["update:modelValue"],
695
- setup(e) {
696
- const { t: n, te: m } = Ie(), t = ae(e, "modelValue"), { country: x } = lt(), { isEditing: L, colWidths: S, rowHeight: T } = Se(_t()), { setColWidths: z, setRowHeights: u, enableCellResizing: c } = _t(), i = h(null), r = g(() => {
697
- var o;
698
- return ((o = t.value.data) == null ? void 0 : o.columns) || [{ label: "", key: "" }];
699
- }), b = g(() => {
700
- var o;
701
- return ((o = t.value.data) == null ? void 0 : o.rows) || [];
702
- }), p = g(() => t.value.filterText), y = g(() => {
703
- var o, v;
704
- if (!(p.value && p.value.trim().length > 0 || !((o = b.value[0]) != null && o.isRollup) && !((v = b.value[b.value.length - 1]) != null && v.isRollup))) {
705
- if (t.value.rollupPosition === Q.top || t.value.rollupPosition === void 0)
706
- return Q.top;
707
- if (t.value.rollupPosition === Q.bottom)
708
- return Q.bottom;
709
- }
710
- }), d = g(() => {
711
- const _ = y.value !== void 0 ? 1 : 0, A = (i.value ? i.value.$el.offsetHeight : 0) - 48;
712
- return Math.floor((A - 34.5 - 32) / 48) - _;
713
- }), E = g(() => {
714
- var v, R;
715
- let o = [];
716
- switch (y.value) {
717
- case Q.top:
718
- o = [...((v = b.value[0]) == null ? void 0 : v.cells) || []].map((_, A) => {
719
- var H;
720
- return {
721
- main: _,
722
- comparison: (H = b.value[0]) == null ? void 0 : H.comparisonCells[A],
723
- rowType: r.value[A].type
724
- };
725
- });
726
- break;
727
- case Q.bottom:
728
- o = [...((R = b.value[b.value.length - 1]) == null ? void 0 : R.cells) || []].map((_, A) => {
729
- var H;
730
- return {
731
- main: _,
732
- comparison: (H = b.value[0]) == null ? void 0 : H.comparisonCells[A],
733
- rowType: r.value[A].type
734
- };
735
- });
736
- break;
737
- }
738
- return o.length > 0 && o[0].main === "" && (o[0].main = "Grand total"), o;
739
- });
740
- function f(o) {
741
- const v = {};
742
- for (let R = 0; R < r.value.length; R++)
743
- if (r.value[R].key !== "") {
744
- const _ = o.comparisonCells[R];
745
- v[r.value[R].key] = {
746
- main: o.cells[R],
747
- comparison: _
748
- }, v.isRollup = o.isRollup;
749
- }
750
- return v;
751
- }
752
- function s(o) {
753
- return [...new Array(o < 0 ? 0 : o)].map(() => {
754
- var R;
755
- const v = {};
756
- if ((R = t.value.data) != null && R.columns)
757
- for (let _ = 0; _ < t.value.data.columns.length; _++)
758
- v[t.value.data.columns[_].key] = void 0;
759
- return v;
760
- });
761
- }
762
- function C(o) {
763
- let v = (o == null ? void 0 : o.main) || "";
764
- return v.includes("#") && !v.startsWith("#") && (v = v.split("#")[0]), !o || o.main === "" || o.comparison === "" ? {
765
- main: v
766
- } : {
767
- main: v,
768
- comparison: o == null ? void 0 : o.comparison,
769
- difference: zt(o.main, o.comparison, x)
770
- };
771
- }
772
- const w = g(() => {
773
- var A, H, Y;
774
- let o = ((A = t.value.data) == null ? void 0 : A.rows) || [];
775
- switch (y.value) {
776
- case Q.bottom:
777
- o = (H = o[o.length - 1]) != null && H.isRollup ? o.slice(0, -1) : o;
778
- break;
779
- case Q.top:
780
- o = (Y = o[0]) != null && Y.isRollup ? o.slice(1, o.length) : o;
781
- break;
782
- }
783
- const v = o.filter((O) => !(p.value !== "" && (O.isRollup === !0 || !O.cells.some(
784
- (G) => {
785
- var j;
786
- return ((G == null ? void 0 : G.toLowerCase()) || "").includes((j = p.value) == null ? void 0 : j.toLowerCase());
787
- }
788
- )))).map((O) => f(O)), R = v.length % d.value;
789
- let _ = 0;
790
- return R > 0 ? _ = Math.abs(R - d.value) : v.length === 0 && (_ = d.value), v.push(...s(_)), v;
791
- }), k = g(
792
- () => {
793
- var o;
794
- return (((o = t.value.colWidths) == null ? void 0 : o.length) ?? 0) > 0 || S.value.length > 0;
795
- }
796
- ), D = g(() => {
797
- var v;
798
- let o = [];
799
- return (v = t.value.data) != null && v.columns && (o = [...t.value.data.columns.map((_) => {
800
- const A = Ce(n, m, _.label, "other");
801
- return {
802
- accessorKey: _.key,
803
- header: () => xt(
804
- "p",
805
- {
806
- class: `w-full ${_.type === "NUMERIC" ? "text-right" : ""} whitespace-nowrap`
807
- },
808
- A
809
- ),
810
- cell: (H) => {
811
- var G, j;
812
- const Y = C(H.getValue()), O = (j = (G = H == null ? void 0 : H.row) == null ? void 0 : G.original) == null ? void 0 : j.isRollup;
813
- return xt(
814
- "div",
815
- {
816
- class: [
817
- O ? "fm-typo-en-body-md-600 text-fm-color-typo-secondary" : "fm-typo-en-body-md-400",
818
- _.type === "NUMERIC" ? "text-right" : "",
819
- k.value ? "whitespace-normal break-words line-clamp-6" : "whitespace-nowrap"
820
- ].join(" ")
821
- },
822
- [_.type === "NUMERIC" ? Je(Y.main) : Y.main]
823
- );
824
- },
825
- enableSorting: !1
826
- };
827
- })]), o;
828
- });
829
- return J(
830
- () => S.value.length > 0,
831
- async (o) => {
832
- o && L.value && (await X(), c());
833
- }
834
- ), J(
835
- [() => D.value],
836
- async () => {
837
- var A;
838
- await X();
839
- const o = (A = i.value) == null ? void 0 : A.$el;
840
- if (!o) return;
841
- const v = o.querySelector("table");
842
- if (!v) return;
843
- v.classList.add(k.value ? "table-fixed" : "table-auto");
844
- let R, _;
845
- L.value ? (c(), R = S.value, _ = T.value) : (_ = t.value.rowHeight, R = t.value.colWidths), typeof _ == "number" && u(_, o), R == null || R.forEach((H, Y) => {
846
- z(Y, H, o);
847
- });
848
- },
849
- { immediate: !0 }
850
- ), (o, v) => {
851
- const R = V("FmTable");
852
- return W(), I(ne, null, [
853
- P("div", Ra, [
854
- fe(o.$slots, "menu")
855
- ]),
856
- $(R, {
857
- ref_key: "table",
858
- ref: i,
859
- "column-defs": D.value,
860
- "row-data": w.value,
861
- "search-value": p.value,
862
- "page-size": d.value,
863
- "shrink-at": !1,
864
- "force-mobile-footer": !0,
865
- class: "scrollbar-hide-table"
866
- }, {
867
- "pin-top": q(() => [
868
- P("tbody", null, [
869
- P("tr", Fa, [
870
- (W(!0), I(ne, null, Tt(E.value, (_, A) => (W(), I("td", {
871
- key: `${l($e)()}_${A}`,
872
- class: "h-[48px] text-fm-color-typo-primary px-16"
873
- }, [
874
- P("span", {
875
- class: Pe([
876
- "items-center text-fm-color-typo-secondary gap-2",
877
- _.rowType === "NUMERIC" ? "text-right" : "",
878
- k.value ? "whitespace-normal break-words line-clamp-6" : "whitespace-nowrap"
879
- ])
880
- }, [
881
- P("p", La, ze(_.rowType === "NUMERIC" ? l(Je)(_.main) : _.main), 1),
882
- P("p", za, ze(_.comparison ? _.rowType === "NUMERIC" ? `(${l(Je)(_.comparison)})` : `(${_.comparison})` : ""), 1)
883
- ], 2)
884
- ]))), 128))
885
- ])
886
- ])
887
- ]),
888
- _: 1
889
- }, 8, ["column-defs", "row-data", "search-value", "page-size"])
890
- ], 64);
891
- };
892
- }
893
- }), Wa = /* @__PURE__ */ te({
894
- __name: "WidgetStackBarChart",
895
- props: /* @__PURE__ */ me({
896
- tileIndex: {}
897
- }, {
898
- modelValue: { required: !0 },
899
- modelModifiers: {}
900
- }),
901
- emits: ["update:modelValue"],
902
- setup(e) {
903
- const n = e, m = ae(e, "modelValue"), t = h(null), x = g(() => {
904
- var E;
905
- return ((E = m.value.data) == null ? void 0 : E.xAxis) || [];
906
- }), L = g(() => {
907
- var d;
908
- return ((d = m.value.data) == null ? void 0 : d.datasets) ?? [];
909
- }), { datalabels: S, xCfg: T, yCfg: z, isTransposed: u, legend: c, chartWidth: i, chartHeight: r } = We(
910
- m.value
911
- ), b = g(() => L.value.length > 0 ? [
912
- ...L.value.map((d, E) => {
913
- let f = d.values;
914
- return {
915
- label: d.name,
916
- data: f,
917
- dash: !!d.isCompare,
918
- backgroundColor: ee({ index: E, isCompare: d.isCompare })
919
- };
920
- })
921
- ] : []), p = Ee();
922
- function y() {
923
- return p.extractChartSize(t.value, n.tileIndex) || { width: 0, height: 0 };
924
- }
925
- return _e(() => {
926
- X(() => {
927
- y();
928
- });
929
- }), J([b], () => {
930
- X(() => y());
931
- }), (d, E) => {
932
- const f = V("FmBarChart");
933
- return W(), I(ne, null, [
934
- fe(d.$slots, "menu"),
935
- $(f, {
936
- ref_key: "chartRef",
937
- ref: t,
938
- class: "bar-chart",
939
- datasets: b.value,
940
- "x-axis": { categories: x.value },
941
- "x-cfg": l(T),
942
- "y-cfg": l(z),
943
- transpose: l(u),
944
- stacked: !0,
945
- legend: {
946
- display: l(c).display ?? !1,
947
- position: l(c).position,
948
- maxHeight: l(c).maxHeight,
949
- maxWidth: l(c).maxWidth,
950
- labels: l(c).labels
951
- },
952
- datalabels: l(S),
953
- "maintain-aspect-ratio": !1,
954
- style: se({
955
- "--chart-width": l(i) !== void 0 ? l(i) + "px" : "100%",
956
- "--chart-height": l(r) !== void 0 ? l(r) + "px" : "calc(100% - 36px)"
957
- })
958
- }, null, 8, ["datasets", "x-axis", "x-cfg", "y-cfg", "transpose", "legend", "datalabels", "style"])
959
- ], 64);
960
- };
961
- }
962
- }), Da = /* @__PURE__ */ te({
963
- __name: "WidgetStackLineChart",
964
- props: /* @__PURE__ */ me({
965
- tileIndex: {}
966
- }, {
967
- modelValue: { required: !0 },
968
- modelModifiers: {}
969
- }),
970
- emits: ["update:modelValue"],
971
- setup(e) {
972
- var f;
973
- const n = e, m = ae(e, "modelValue"), t = ((f = m.value.data) == null ? void 0 : f.xAxis) ?? [], x = g(
974
- () => t.length === 1 && T.value.length > 0 && T.value.every((s) => s.values.length === 1)
975
- ), L = g(() => x.value ? ["", t[0], ""] : t), S = h(null), T = g(() => {
976
- var s;
977
- return ((s = m.value.data) == null ? void 0 : s.datasets) ?? [];
978
- }), { datalabels: z, xCfg: u, yCfg: c, isTransposed: i, legend: r, chartWidth: b, chartHeight: p } = We(
979
- m.value
980
- ), y = g(() => T.value.length > 0 ? [
981
- ...T.value.map((s, C) => {
982
- let w = s.values;
983
- return x.value && (w = [NaN, w[0], NaN]), {
984
- label: s.name,
985
- data: w,
986
- dash: s.isCompare,
987
- fill: !1,
988
- color: ee({ index: C, isCompare: s.isCompare }),
989
- pointRadius: x.value ? 4 : void 0,
990
- pointHoverRadius: x.value ? 6 : void 0,
991
- pointBackgroundColor: x.value ? ee({ index: C, isCompare: s.isCompare }) : void 0,
992
- pointBorderColor: x.value ? ee({ index: C, isCompare: s.isCompare }) : void 0,
993
- pointBorderWidth: x.value ? 2 : void 0
994
- };
995
- })
996
- ] : []), d = Ee();
997
- function E() {
998
- return d.extractChartSize(S.value, n.tileIndex) || { width: 0, height: 0 };
999
- }
1000
- return _e(() => {
1001
- X(() => {
1002
- E();
1003
- });
1004
- }), J([y], () => {
1005
- X(() => E());
1006
- }), (s, C) => {
1007
- const w = V("FmLineChart");
1008
- return W(), I(ne, null, [
1009
- fe(s.$slots, "menu"),
1010
- $(w, {
1011
- ref_key: "chartRef",
1012
- ref: S,
1013
- class: "line-chart",
1014
- datasets: y.value,
1015
- "x-axis": { categories: L.value },
1016
- "x-cfg": l(u),
1017
- "y-cfg": l(c),
1018
- transpose: l(i),
1019
- legend: {
1020
- display: l(r).display ?? !1,
1021
- position: l(r).position,
1022
- maxHeight: l(r).maxHeight,
1023
- maxWidth: l(r).maxWidth,
1024
- labels: l(r).labels
1025
- },
1026
- stacked: !0,
1027
- datalabels: l(z),
1028
- "maintain-aspect-ratio": !1,
1029
- style: se({
1030
- "--chart-width": l(b) !== void 0 ? l(b) + "px" : "100%",
1031
- "--chart-height": l(p) !== void 0 ? l(p) + "px" : "calc(100% - 36px)"
1032
- })
1033
- }, null, 8, ["datasets", "x-axis", "x-cfg", "y-cfg", "transpose", "legend", "datalabels", "style"])
1034
- ], 64);
1035
- };
1036
- }
1037
- }), ke = [
1038
- "col-span-1",
1039
- "col-span-2",
1040
- "col-span-3",
1041
- "col-span-4",
1042
- "col-span-5",
1043
- "col-span-6",
1044
- "col-span-7",
1045
- "col-span-8",
1046
- "col-span-9",
1047
- "col-span-10",
1048
- "col-span-11",
1049
- "col-span-12"
1050
- ];
1051
- function Aa(e) {
1052
- return e < 12 ? ke[e - 1] : ke[11];
1053
- }
1054
- function Va(e) {
1055
- return e < 12 ? ke[Math.min(11, e * 2 - 1)] : ke[11];
1056
- }
1057
- function Ha(e) {
1058
- return e < 12 ? ke[Math.min(11, e * 3 - 1)] : ke[11];
1059
- }
1060
- const Ba = /* @__PURE__ */ te({
1061
- __name: "WidgetLinechart",
1062
- props: /* @__PURE__ */ me({
1063
- tileIndex: {}
1064
- }, {
1065
- modelValue: { required: !0 },
1066
- modelModifiers: {}
1067
- }),
1068
- emits: ["update:modelValue"],
1069
- setup(e) {
1070
- var f;
1071
- const n = e, m = ae(e, "modelValue"), t = ((f = m.value.data) == null ? void 0 : f.xAxis) ?? [], x = g(
1072
- () => t.length === 1 && T.value.length > 0 && T.value.every((s) => s.values.length === 1)
1073
- ), L = g(() => x.value ? ["", t[0], ""] : t), S = h(null), T = g(() => {
1074
- var s;
1075
- return ((s = m.value.data) == null ? void 0 : s.datasets) ?? [];
1076
- }), { datalabels: z, xCfg: u, yCfg: c, isTransposed: i, legend: r, chartWidth: b, chartHeight: p } = We(
1077
- m.value
1078
- ), y = g(() => T.value.length > 0 ? [
1079
- ...T.value.map((s, C) => {
1080
- let w = s.values;
1081
- return x.value && (w = [NaN, w[0], NaN]), {
1082
- label: s.name,
1083
- data: w,
1084
- dash: !!s.isCompare,
1085
- fill: !1,
1086
- color: ee({ index: C, isCompare: s.isCompare }),
1087
- pointRadius: x.value ? 4 : void 0,
1088
- pointHoverRadius: x.value ? 6 : void 0,
1089
- pointBackgroundColor: x.value ? ee({ index: C, isCompare: s.isCompare }) : void 0,
1090
- pointBorderColor: x.value ? ee({ index: C, isCompare: s.isCompare }) : void 0,
1091
- pointBorderWidth: x.value ? 2 : void 0
1092
- };
1093
- })
1094
- ] : []), d = Ee();
1095
- function E() {
1096
- return d.extractChartSize(S.value, n.tileIndex) || { width: 0, height: 0 };
1097
- }
1098
- return _e(() => {
1099
- X(() => {
1100
- E();
1101
- });
1102
- }), J([y], () => {
1103
- X(() => E());
1104
- }), (s, C) => {
1105
- const w = V("FmLineChart");
1106
- return W(), I(ne, null, [
1107
- fe(s.$slots, "menu"),
1108
- $(w, {
1109
- ref_key: "chartRef",
1110
- ref: S,
1111
- class: "line-chart",
1112
- datasets: y.value,
1113
- "x-axis": { categories: L.value },
1114
- "x-cfg": l(u),
1115
- "y-cfg": l(c),
1116
- transpose: l(i),
1117
- legend: {
1118
- display: l(r).display ?? !1,
1119
- position: l(r).position,
1120
- maxHeight: l(r).maxHeight,
1121
- maxWidth: l(r).maxWidth,
1122
- labels: l(r).labels
1123
- },
1124
- datalabels: l(z),
1125
- "maintain-aspect-ratio": !1,
1126
- style: se({
1127
- "--chart-width": l(b) !== void 0 ? l(b) + "px" : "100%",
1128
- "--chart-height": l(p) !== void 0 ? l(p) + "px" : "calc(100% - 36px)"
1129
- })
1130
- }, null, 8, ["datasets", "x-axis", "x-cfg", "y-cfg", "transpose", "legend", "datalabels", "style"])
1131
- ], 64);
1132
- };
1133
- }
1134
- }), $a = { class: "flex flex-col gap-16" }, Pa = { class: "flex flex-row" }, Ma = /* @__PURE__ */ te({
1135
- __name: "PdfOrientationDialog",
1136
- props: /* @__PURE__ */ me({
1137
- reportType: {},
1138
- index: {}
1139
- }, {
1140
- modelValue: { type: Boolean, required: !0 },
1141
- modelModifiers: {}
1142
- }),
1143
- emits: ["update:modelValue"],
1144
- setup(e) {
1145
- const { t: n } = Ie(), { FmForm: m } = ca, t = e, x = h(), L = ae(e, "modelValue"), S = h(!0), T = h(!1), z = Lt(), { selectedLocationIds: u, dateRange: c, timeRange: i } = Se(Me()), r = h(Ge.PORTRAIT);
1146
- function b() {
1147
- var y;
1148
- (y = x.value) == null || y.validateInputs();
1149
- }
1150
- async function p() {
1151
- T.value = !0;
1152
- try {
1153
- t.index != null && await Rt({
1154
- reportType: t.reportType,
1155
- index: t.index,
1156
- orientationTypes: [r.value],
1157
- isCombinedLocationLayout: S.value,
1158
- timeRange: i.value,
1159
- dateRange: c.value,
1160
- locationIds: u.value
1161
- });
1162
- } catch (y) {
1163
- z.open({ message: y.message, type: "error" });
1164
- } finally {
1165
- T.value = !1;
1166
- }
1167
- }
1168
- return (y, d) => {
1169
- const E = V("FmRadio"), f = V("FmRadioGroup"), s = V("FmButton"), C = V("FmDialog");
1170
- return W(), U(C, {
1171
- modelValue: L.value,
1172
- "onUpdate:modelValue": d[2] || (d[2] = (w) => L.value = w),
1173
- overlay: !0,
1174
- "z-index": 10
1175
- }, {
1176
- "dialog-header": q(() => d[3] || (d[3] = [
1177
- aa("Select Orientation")
1178
- ])),
1179
- default: q(() => [
1180
- $(l(m), {
1181
- ref_key: "form",
1182
- ref: x,
1183
- onValidationSuccess: p
1184
- }, {
1185
- default: q(() => [
1186
- P("div", $a, [
1187
- $(f, {
1188
- modelValue: r.value,
1189
- "onUpdate:modelValue": d[0] || (d[0] = (w) => r.value = w)
1190
- }, {
1191
- default: q(() => [
1192
- $(E, {
1193
- value: l(Ge).PORTRAIT,
1194
- label: l(n)("report.common.portrait")
1195
- }, null, 8, ["value", "label"]),
1196
- $(E, {
1197
- value: l(Ge).LANDSCAPE,
1198
- label: l(n)("report.common.landscape")
1199
- }, null, 8, ["value", "label"])
1200
- ]),
1201
- _: 1
1202
- }, 8, ["modelValue"])
1203
- ]),
1204
- P("div", Pa, [
1205
- d[4] || (d[4] = P("div", { class: "grow" }, null, -1)),
1206
- $(s, {
1207
- label: l(n)("report.common.cancel"),
1208
- variant: "tertiary",
1209
- onClick: d[1] || (d[1] = (w) => L.value = !1)
1210
- }, null, 8, ["label"]),
1211
- P("div", null, [
1212
- $(s, {
1213
- label: l(n)("report.common.download"),
1214
- loading: T.value,
1215
- onClick: b
1216
- }, null, 8, ["label", "loading"])
1217
- ])
1218
- ])
1219
- ]),
1220
- _: 1
1221
- }, 512)
1222
- ]),
1223
- _: 1
1224
- }, 8, ["modelValue"]);
1225
- };
1226
- }
1227
- }), Ia = {
1228
- key: 1,
1229
- class: "grow"
1230
- }, Na = {
1231
- key: 2,
1232
- class: "flex"
1233
- }, Za = /* @__PURE__ */ te({
1234
- __name: "DynamicWidget",
1235
- props: /* @__PURE__ */ me({
1236
- index: {
1237
- type: Number,
1238
- default: 0
1239
- },
1240
- hideExport: {
1241
- type: Boolean,
1242
- default: !1
1243
- },
1244
- customScreenWidth: {
1245
- type: Number,
1246
- required: !1,
1247
- default: void 0
1248
- }
1249
- }, {
1250
- modelValue: { required: !0, default: () => {
1251
- } },
1252
- modelModifiers: {}
1253
- }),
1254
- emits: ["update:modelValue"],
1255
- setup(e) {
1256
- const n = h(!0), m = ae(e, "modelValue"), t = m.value.widget.config, { t: x, te: L } = Ie(), S = e, T = h(null), z = h(t.rollup), u = h($e()), c = h(t.drillDimension), i = g(() => {
1257
- if (de.value.length > 0) {
1258
- const a = de.value.findIndex(
1259
- (B) => B.value === c.value
1260
- );
1261
- return a >= 0 ? a : 0;
1262
- } else
1263
- return -1;
1264
- }), r = g(() => i.value !== 0), b = g(
1265
- () => i.value != de.value.length - 1
1266
- ), p = h(t.showTitle ?? !0), y = h(t.titleFontSize ?? 14), d = h(t.titleBold ?? !1), E = h(t.titleItalic ?? !1), f = h(t.titleUnderline ?? !1), s = h(t.chartWidth ?? void 0), C = h(t.chartHeight ?? void 0), w = h(t.showLabel ?? !1), k = h(t.labelAlign ?? Qe.center), D = h(t.labelAnchor ?? Ze.center), o = h(t.labelRotation ?? 0), v = h(t.labelOffset ?? 0), R = h(t.labelFontSize ?? 12), _ = g(() => t.showSearchBar), A = h(t.showX ?? !0), H = h(t.xPosition ?? et.bottom), Y = h(t.showXGrid ?? !1), O = h(t.showXTick ?? !0), G = h(t.xTickFontSize ?? 12), j = h(t.showXTitle ?? !1), De = h(t.xTitle ?? ""), Ae = h(t.xTitleFontSize ?? 12), Ve = h(t.showY ?? !0), Te = h(t.yPosition ?? tt.left), Re = h(t.showYGrid ?? !1), pe = h(t.showYTick ?? !0), re = h(t.yTickFontSize ?? 12), ie = h(t.showYTitle ?? !1), le = h(t.yTitle ?? ""), ve = h(t.yTitleFontSize ?? 12), oe = h(t.showLegend ?? void 0), ue = h(t.legendPosition ?? at.top), ce = h(t.usePointStyle ?? !0), Ne = h(t.legendMaxHeight), ot = h(t.legendMaxWidth), nt = h(t.rowHeight ?? 0), st = h(t.colWidths ?? []), qe = h(!1), Oe = h(""), { breakpoints: ge, getBreakpointsBoundary: Fe } = Ft(), rt = h(), N = g(
1267
- () => S.customScreenWidth === void 0 ? window.innerWidth : S.customScreenWidth
1268
- ), Et = g(
1269
- () => (N == null ? void 0 : N.value) > Fe("xs")[1] && (N == null ? void 0 : N.value) <= Fe("sm")[1]
1270
- ), Wt = g(
1271
- () => (N == null ? void 0 : N.value) > Fe("sm")[1] && (N == null ? void 0 : N.value) <= Fe("md")[1]
1272
- ), Dt = g(() => (N == null ? void 0 : N.value) > Fe("md")[1]), At = g(() => {
1273
- const a = m.value.size.width;
1274
- return Dt.value || Wt.value ? Aa(a) : Et.value ? Va(a) : Ha(a);
1275
- }), He = g(
1276
- () => ha.find((a) => a.type === m.value.widget.type)
1277
- ), ye = Ct(() => {
1278
- var a;
1279
- rt.value = qt((a = T.value) == null ? void 0 : a.$el.offsetWidth), u.value = $e();
1280
- }), Vt = g(() => {
1281
- if (ma(M.value.type, be.value))
1282
- switch (m.value.widget.type) {
1283
- case F.BarChart:
1284
- return pa;
1285
- case F.StackBarChart:
1286
- return Wa;
1287
- case F.LineChart:
1288
- return Ba;
1289
- case F.StackLineChart:
1290
- return Da;
1291
- case F.Circular:
1292
- return va;
1293
- case F.Scorecard:
1294
- return Ca;
1295
- case F.Spacer:
1296
- return _a;
1297
- case F.Table:
1298
- return Ea;
1299
- default:
1300
- return St;
1301
- }
1302
- else
1303
- return St;
1304
- }), be = h(null), {
1305
- selectedLocationIds: Ue,
1306
- dateRange: it,
1307
- compareDateRange: Ht,
1308
- timeRange: ut,
1309
- globalFilters: Bt,
1310
- isGlobalFiltersLoading: ct
1311
- } = Se(Me()), { businessId: $t } = Se(lt()), { businessLoadedId: Pt, businessDataVersion: Xe } = Se(Me()), dt = g(() => Pt.value === $t.value && Ue.value.length > 0 && !ct.value), Mt = h(!0), M = g(() => {
1312
- const a = JSON.parse(JSON.stringify(m.value.widget));
1313
- return {
1314
- ...a,
1315
- config: {
1316
- ...a.config,
1317
- rollup: z.value,
1318
- drillDimension: c.value,
1319
- showGrandTotal: !1
1320
- }
1321
- };
1322
- });
1323
- function It() {
1324
- return {
1325
- data: be.value,
1326
- showTitle: p.value,
1327
- titleFontSize: y.value,
1328
- titleBold: d.value,
1329
- titleItalic: E.value,
1330
- titleUnderline: f.value,
1331
- chartHeight: C.value,
1332
- chartWidth: s.value,
1333
- showLabel: w.value,
1334
- labelAnchor: D.value,
1335
- labelAlign: k.value,
1336
- labelRotation: o.value,
1337
- labelOffset: v.value,
1338
- labelFontSize: R.value,
1339
- showX: A.value,
1340
- xPosition: H.value,
1341
- showXGrid: Y.value,
1342
- showXTick: O.value,
1343
- xTickFontSize: G.value,
1344
- showXTitle: j.value,
1345
- xTitle: De.value,
1346
- xTitleFontSize: Ae.value,
1347
- showY: Ve.value,
1348
- yPosition: Te.value,
1349
- showYGrid: Re.value,
1350
- showYTick: pe.value,
1351
- yTitle: le.value,
1352
- showYTitle: ie.value,
1353
- yTitleFontSize: ve.value,
1354
- yTickFontSize: re.value,
1355
- isTransposed: M.value.config.isTransposed,
1356
- showLegend: oe.value,
1357
- legendPosition: ue.value,
1358
- usePointStyle: ce.value,
1359
- legendMaxHeight: Ne.value,
1360
- legendMaxWidth: ot.value
1361
- };
1362
- }
1363
- function Nt() {
1364
- return {
1365
- data: be.value,
1366
- filterText: Oe.value,
1367
- rollupPosition: M.value.config.rollupPosition,
1368
- rowHeight: nt.value,
1369
- colWidths: st.value
1370
- };
1371
- }
1372
- const ht = g(() => {
1373
- switch (M.value.type) {
1374
- case F.Table:
1375
- return Nt();
1376
- case F.BarChart:
1377
- case F.LineChart:
1378
- case F.StackBarChart:
1379
- case F.StackLineChart:
1380
- case F.Circular:
1381
- return It();
1382
- default:
1383
- return { data: be.value };
1384
- }
1385
- }), mt = g(() => {
1386
- const { config: a } = m.value.widget;
1387
- if (a.rollup != null) {
1388
- const B = [...a.dimensions].filter((K) => !K.hide);
1389
- return B.sort(
1390
- (K, Le) => (a.rowIds || []).indexOf(je(K)) - (a.rowIds || []).indexOf(je(Le))
1391
- ), [
1392
- { label: Ce(x, L, "None", "other"), value: "none" },
1393
- { label: Ce(x, L, "Grand Total", "other"), value: 0 },
1394
- ...[...B].slice(0, B.length - 1).map((K, Le) => ({
1395
- label: Ce(x, L, K.label, "other"),
1396
- value: Le + 1
1397
- }))
1398
- ];
1399
- }
1400
- return [];
1401
- }), de = g(() => {
1402
- const { config: a } = M.value;
1403
- return a.isDrillable ? a.dimensions.map((B) => ({
1404
- label: Ce(x, L, B.label, "other"),
1405
- value: je(B)
1406
- })) : [];
1407
- });
1408
- J(
1409
- () => m.value.widget.config,
1410
- (a) => {
1411
- z.value = a.rollup, p.value = a.showTitle ?? !0, y.value = a.titleFontSize ?? 14, d.value = a.titleBold ?? !1, E.value = a.titleItalic ?? !1, f.value = a.titleUnderline ?? !1, C.value = a.chartHeight ?? void 0, s.value = a.chartWidth ?? void 0, w.value = a.showLabel ?? !1, k.value = a.labelAlign ?? Qe.center, D.value = a.labelAnchor ?? Ze.center, o.value = a.labelRotation ?? 0, v.value = a.labelOffset ?? 0, R.value = a.labelFontSize ?? 12, A.value = a.showX ?? !0, H.value = a.xPosition ?? et.bottom, Y.value = a.showXGrid ?? !1, O.value = a.showXTick ?? !0, G.value = a.xTickFontSize ?? 12, j.value = a.showXTitle ?? !1, De.value = a.xTitle ?? "", Ae.value = a.xTitleFontSize ?? 12, Ve.value = a.showY ?? !0, Te.value = a.yPosition ?? tt.left, Re.value = a.showYGrid ?? !1, pe.value = a.showYTick ?? !0, re.value = a.yTickFontSize ?? 12, ie.value = a.showYTitle ?? !1, le.value = a.yTitle ?? "", ve.value = a.yTitleFontSize ?? 12, oe.value = a.showLegend ?? void 0, ue.value = a.legendPosition ?? at.top, ce.value = a.usePointStyle ?? !0, Ne.value = a.legendMaxHeight, ot.value = a.legendMaxWidth, nt.value = a.rowHeight ?? 0, st.value = a.colWidths ?? [];
1412
- },
1413
- { deep: !0 }
1414
- ), J([() => z.value], () => {
1415
- z.value !== null && (m.value.widget.config.rollup = z.value);
1416
- }), J(
1417
- [
1418
- () => M.value,
1419
- () => it.value,
1420
- () => ut.value,
1421
- () => Ht.value,
1422
- () => Ue.value,
1423
- () => Bt.value,
1424
- () => dt.value,
1425
- () => Xe.value
1426
- ],
1427
- () => {
1428
- pt();
1429
- },
1430
- { deep: !0 }
1431
- ), J(
1432
- [() => m.value.size],
1433
- () => {
1434
- ye();
1435
- },
1436
- { deep: !0 }
1437
- ), _e(() => {
1438
- ye(), ge.value.sm || ge.value.md || ge.value.xs ? (console.log("Ignoring resize event due to keyboard"), addEventListener("change", ye)) : addEventListener("resize", ye), pt();
1439
- }), la(() => {
1440
- ge.value.sm || ge.value.md || ge.value.xs ? (console.log("Ignoring resize event due to keyboard"), removeEventListener("change", ye)) : removeEventListener("resize", ye);
1441
- });
1442
- const ft = Lt();
1443
- let Be;
1444
- async function pt() {
1445
- if (!dt.value) {
1446
- n.value = !1;
1447
- return;
1448
- }
1449
- if (M.value.config.schemaNames.length <= 0 && !(M.value.config.dimensions.length <= 0 || M.value.config.metrics.length <= 0)) {
1450
- ft.open({
1451
- message: "schema must not be empty and dimension or metrics must have at least 1 column",
1452
- type: "info"
1453
- }), n.value = !1;
1454
- return;
1455
- }
1456
- try {
1457
- n.value = !0, Be && Be.abort(), Be = new AbortController();
1458
- const a = Be.signal, B = Xe.value, K = await Ct(ra, 500)(M.value, a, m.value.id);
1459
- Xe.value === B && (be.value = K, u.value = $e()), n.value = !1;
1460
- } catch (a) {
1461
- a.code !== "ERR_CANCELED" && (be.value = null, ft.open({ message: `Invalid chart ${M.value.type}`, type: "error" }), console.log(a), n.value = !1);
1462
- }
1463
- }
1464
- function qt(a) {
1465
- switch (m.value.widget.type) {
1466
- case "SPACER":
1467
- return;
1468
- case "SCORECARD":
1469
- return;
1470
- case "TABLE":
1471
- return `${m.value.size.height * 100 + (_.value ? 72 : 0) + 96.5}px`;
1472
- }
1473
- return `${Math.max(a / m.value.size.width, 90) * m.value.size.height}px`;
1474
- }
1475
- function Ot() {
1476
- const a = i.value - 1;
1477
- a >= 0 && (c.value = de.value[a].value);
1478
- }
1479
- function Ut() {
1480
- const a = i.value + 1;
1481
- a >= 0 && a < de.value.length && (c.value = de.value[a].value);
1482
- }
1483
- const vt = h(xe.EXCEL), gt = h(), Xt = Object.values(xe).map((a) => ({
1484
- label: ia(a),
1485
- value: a,
1486
- onClick: async () => {
1487
- a === xe.EXCEL || a === xe.PDFFULLSIZE || a === xe.PDFRECEIPT ? await Rt({
1488
- reportType: a,
1489
- index: S.index,
1490
- isCombinedLocationLayout: Mt.value,
1491
- timeRange: ut.value,
1492
- dateRange: it.value,
1493
- locationIds: Ue.value
1494
- }) : a === xe.PDF && (vt.value = a, gt.value = S.index, qe.value = !0);
1495
- }
1496
- })), Yt = M.value.type === F.Spacer ? "flat" : "outlined", Gt = M.value.type === F.Spacer ? "p-0" : "p-16";
1497
- return (a, B) => {
1498
- const K = V("FmTooltip"), Le = V("FmSearch"), jt = V("FmCheckbox"), Ye = V("FmButton"), Jt = V("FmSelect"), Kt = V("FmMenuItem"), Zt = V("FmMenu"), Qt = V("FmForm"), ea = V("FmCircularProgress"), ta = V("FmCard");
1499
- return W(), U(ta, {
1500
- ref_key: "tileCard",
1501
- ref: T,
1502
- class: Pe(`${At.value} ${l(Gt)}`),
1503
- variant: l(Yt)
1504
- }, {
1505
- default: q(() => [
1506
- $(Ma, {
1507
- modelValue: qe.value,
1508
- "onUpdate:modelValue": B[0] || (B[0] = (we) => qe.value = we),
1509
- "report-type": vt.value,
1510
- index: gt.value
1511
- }, null, 8, ["modelValue", "report-type", "index"]),
1512
- !n.value && !l(ct) ? (W(), I("div", {
1513
- key: 0,
1514
- style: se({ height: rt.value })
1515
- }, [
1516
- (W(), U(oa(Vt.value), {
1517
- key: u.value,
1518
- modelValue: ht.value,
1519
- "onUpdate:modelValue": B[4] || (B[4] = (we) => ht.value = we),
1520
- "tile-index": S.index
1521
- }, {
1522
- menu: q(() => [
1523
- $(Qt, { class: "flex items-center gap-2" }, {
1524
- default: q(() => {
1525
- var we, yt, bt, wt;
1526
- return [
1527
- $(K, {
1528
- variant: "plain",
1529
- placement: "right",
1530
- content: M.value.description,
1531
- "hide-arrow": !0,
1532
- disabled: !M.value.description
1533
- }, {
1534
- default: q(() => [
1535
- p.value !== !1 ? (W(), I("p", {
1536
- key: 0,
1537
- style: se({
1538
- fontSize: y.value + "px",
1539
- fontWeight: d.value ? "bold" : "normal",
1540
- fontStyle: E.value ? "italic" : "normal",
1541
- textDecoration: f.value ? "underline" : "none"
1542
- }),
1543
- class: Pe(["text-fm-color-typo-secondary line-clamp-1", [
1544
- y.value <= 18 ? "fm-typo-en-body-md-400" : "",
1545
- M.value.description ? "border-b-2 border-dashed border-gray-300" : ""
1546
- ]])
1547
- }, ze(l(Ce)(l(x), l(L), M.value.title, "other")), 7)) : he("", !0)
1548
- ]),
1549
- _: 1
1550
- }, 8, ["content", "disabled"]),
1551
- (we = He.value) != null && we.showSearchBar ? (W(), U(Le, {
1552
- key: 0,
1553
- modelValue: Oe.value,
1554
- "onUpdate:modelValue": B[1] || (B[1] = (Z) => Oe.value = Z),
1555
- class: "grow"
1556
- }, null, 8, ["modelValue"])) : (W(), I("div", Ia)),
1557
- na($(jt, {
1558
- modelValue: w.value,
1559
- "onUpdate:modelValue": B[2] || (B[2] = (Z) => w.value = Z),
1560
- label: "Label",
1561
- value: !1
1562
- }, null, 8, ["modelValue"]), [
1563
- [sa, (yt = He.value) == null ? void 0 : yt.showLabel]
1564
- ]),
1565
- (bt = He.value) != null && bt.showDrillDimension && de.value.length > 0 ? (W(), I("div", Na, [
1566
- $(Ye, {
1567
- icon: "arrow_upward",
1568
- variant: "tertiary",
1569
- disabled: !r.value,
1570
- onClick: Ot
1571
- }, null, 8, ["disabled"]),
1572
- $(Ye, {
1573
- icon: "arrow_downward",
1574
- variant: "tertiary",
1575
- disabled: !b.value,
1576
- onClick: Ut
1577
- }, null, 8, ["disabled"])
1578
- ])) : he("", !0),
1579
- (wt = He.value) != null && wt.showRollup && mt.value.length > 0 ? (W(), U(Jt, {
1580
- key: 3,
1581
- modelValue: z.value,
1582
- "onUpdate:modelValue": B[3] || (B[3] = (Z) => z.value = Z),
1583
- class: "w-[150px]",
1584
- items: mt.value
1585
- }, null, 8, ["modelValue", "items"])) : he("", !0),
1586
- S.hideExport ? he("", !0) : (W(), U(Zt, {
1587
- key: 4,
1588
- shift: !0
1589
- }, {
1590
- "menu-button": q(() => [
1591
- $(Ye, {
1592
- icon: "more_vert",
1593
- variant: "tertiary"
1594
- })
1595
- ]),
1596
- default: q(() => [
1597
- (W(!0), I(ne, null, Tt(l(Xt), (Z) => (W(), U(Kt, {
1598
- key: Z.value,
1599
- label: Z.label,
1600
- onClick: Z.onClick
1601
- }, null, 8, ["label", "onClick"]))), 128))
1602
- ]),
1603
- _: 1
1604
- }))
1605
- ];
1606
- }),
1607
- _: 1
1608
- })
1609
- ]),
1610
- _: 1
1611
- }, 8, ["modelValue", "tile-index"]))
1612
- ], 4)) : (W(), U(ea, { key: 1 }))
1613
- ]),
1614
- _: 1
1615
- }, 8, ["class", "variant"]);
1616
- };
1617
- }
1618
- });
1619
- export {
1620
- Qe as L,
1621
- Q as R,
1622
- Za as _,
1623
- Ze as a,
1624
- je as g,
1625
- _t as u
1626
- };