@feedmepos/mf-report 5.19.8-beta.1 → 5.19.9-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 (30) hide show
  1. package/dist/App-DTXCen66.js +234 -0
  2. package/dist/BaseDialog.vue_vue_type_script_setup_true_lang-CVrSaewm.js +11208 -0
  3. package/dist/{DateRangeSelect.vue_vue_type_script_setup_true_lang-CioHmHN6.js → DateRangeSelect.vue_vue_type_script_setup_true_lang-BjCJYhtZ.js} +2 -2
  4. package/dist/{Default.vue_vue_type_script_setup_true_lang-635FjOPP.js → Default.vue_vue_type_script_setup_true_lang-DEUZ4W4C.js} +2 -2
  5. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-B3Ph6aYx.js +1625 -0
  6. package/dist/{InsightView-Cy75KuEh.js → InsightView-BEgpNnKD.js} +5 -5
  7. package/dist/{Integration-D6N9nftt.js → Integration-Crm_siri.js} +2 -2
  8. package/dist/{Integrations-ClCpYgsX.js → Integrations-DAOeCNIk.js} +3 -3
  9. package/dist/{Layout-DPQzsxqk.js → Layout-BRHpJV90.js} +1 -1
  10. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-zwpO7Fxk.js → MenuTab.vue_vue_type_script_setup_true_lang-BC-vDJFi.js} +6 -6
  11. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-DpmOHFlh.js → NavigationTab.vue_vue_type_script_setup_true_lang-DaOoQ3gh.js} +6984 -6990
  12. package/dist/{NoData.vue_vue_type_script_setup_true_lang-CAGjM94B.js → NoData.vue_vue_type_script_setup_true_lang-BCtqN6Qb.js} +1 -1
  13. package/dist/{OverviewView-DlLFc9e_.js → OverviewView-zZsQ4CWc.js} +5 -5
  14. package/dist/{Report-W8-KjFN8.js → Report-BgZwKQnX.js} +4 -4
  15. package/dist/{ReportEditor-Dzj_gg3s.js → ReportEditor-eczfvuba.js} +6 -6
  16. package/dist/{ReportView-CmErSwKu.js → ReportView-T8_-ajax.js} +7 -7
  17. package/dist/{SelectComponent.vue_vue_type_script_setup_true_lang-wbYOXNgr.js → SelectComponent.vue_vue_type_script_setup_true_lang-DQaq02mG.js} +1 -1
  18. package/dist/{Setting-BXQIl_2E.js → Setting-MsoHV2Vm.js} +4 -4
  19. package/dist/{TileEditor-BxxjJuUG.js → TileEditor-D49-DVKa.js} +7 -7
  20. package/dist/{TransitionFade-CfY9Tv9a.js → TransitionFade-CkyOk0I6.js} +92 -92
  21. package/dist/app.js +11 -11
  22. package/dist/assets/formatChartData.worker-2gP9DT2G.js +8 -0
  23. package/dist/{helper-BYQmOCI_.js → helper-DKVVGDb2.js} +1 -1
  24. package/dist/{vue-i18n-B-WkKyGH.js → vue-i18n-BU70cPPB.js} +1308 -1296
  25. package/package.json +3 -2
  26. package/dist/App-wKSrJzZW.js +0 -226
  27. package/dist/BaseDialog.vue_vue_type_script_setup_true_lang-Wsp8VGv0.js +0 -19594
  28. package/dist/DynamicWidget.vue_vue_type_script_setup_true_lang-DiBpQb7o.js +0 -1673
  29. package/dist/assets/formatChartData.worker-Cr9zHMoq.js +0 -106
  30. package/dist/assets/processTableData.worker-COqO3hgX.js +0 -106
@@ -0,0 +1,1625 @@
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 Ye, f as Rt, q as ra, R as xe, g as ia } from "./BaseDialog.vue_vue_type_script_setup_true_lang-CVrSaewm.js";
3
+ import { u as Ie, b as Me, a as at } from "./vue-i18n-BU70cPPB.js";
4
+ import { a as Ct } from "./helper-DKVVGDb2.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-DQaq02mG.js";
8
+ import { r as Ce } from "./i18n-Cif1I9J2.js";
9
+ import { _ as St } from "./NoData.vue_vue_type_script_setup_true_lang-BCtqN6Qb.js";
10
+ var Je = /* @__PURE__ */ ((e) => (e.line = "LINE", e.bar = "BAR", e))(Je || {}), Q = /* @__PURE__ */ ((e) => (e.top = "TOP", e.bottom = "BOTTOM", e))(Q || {}), Ke = /* @__PURE__ */ ((e) => (e.start = "start", e.center = "center", e.end = "end", e))(Ke || {}), Ze = /* @__PURE__ */ ((e) => (e.start = "start", e.center = "center", e.end = "end", e.left = "left", e.right = "right", e.top = "top", e.bottom = "bottom", e))(Ze || {}), Qe = /* @__PURE__ */ ((e) => (e.top = "top", e.bottom = "bottom", e))(Qe || {}), et = /* @__PURE__ */ ((e) => (e.right = "right", e.left = "left", e))(et || {}), tt = /* @__PURE__ */ ((e) => (e.top = "top", e.bottom = "bottom", e.right = "right", e.left = "left", e.chartArea = "chartArea", e))(tt || {});
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 Ge(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 } = at(), 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 Je.bar:
449
+ return "bar";
450
+ case Je.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 } = at(), { 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(Ye.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(Ye).PORTRAIT,
1194
+ label: l(n)("report.common.portrait")
1195
+ }, null, 8, ["value", "label"]),
1196
+ $(E, {
1197
+ value: l(Ye).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 ?? Ze.center), D = h(t.labelAnchor ?? Ke.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 ?? Qe.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 ?? et.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 ?? tt.top), ce = h(t.usePointStyle ?? !0), Ne = h(t.legendMaxHeight), lt = h(t.legendMaxWidth), ot = h(t.rowHeight ?? 0), nt = h(t.colWidths ?? []), qe = h(!1), Oe = h(""), { breakpoints: ge, getBreakpointsBoundary: Fe } = Ft(), st = 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
+ st.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: rt,
1306
+ dateRange: it,
1307
+ compareDateRange: Ht,
1308
+ timeRange: ut,
1309
+ globalFilters: Bt,
1310
+ isGlobalFiltersLoading: ct
1311
+ } = Se(Me()), { businessId: $t } = Se(at()), { businessLoadedId: Pt, businessDataVersion: Ue } = Se(Me()), dt = g(() => Pt.value === $t.value && rt.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: lt.value
1361
+ };
1362
+ }
1363
+ function Nt() {
1364
+ return {
1365
+ data: be.value,
1366
+ filterText: Oe.value,
1367
+ rollupPosition: M.value.config.rollupPosition,
1368
+ rowHeight: ot.value,
1369
+ colWidths: nt.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(Ge(K)) - (a.rowIds || []).indexOf(Ge(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: Ge(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 ?? Ze.center, D.value = a.labelAnchor ?? Ke.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 ?? Qe.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 ?? et.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 ?? tt.top, ce.value = a.usePointStyle ?? !0, Ne.value = a.legendMaxHeight, lt.value = a.legendMaxWidth, ot.value = a.rowHeight ?? 0, nt.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
+ () => Bt.value,
1423
+ () => dt.value,
1424
+ () => Ue.value
1425
+ ],
1426
+ () => {
1427
+ pt();
1428
+ },
1429
+ { deep: !0 }
1430
+ ), J(
1431
+ [() => m.value.size],
1432
+ () => {
1433
+ ye();
1434
+ },
1435
+ { deep: !0 }
1436
+ ), _e(() => {
1437
+ 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();
1438
+ }), la(() => {
1439
+ ge.value.sm || ge.value.md || ge.value.xs ? (console.log("Ignoring resize event due to keyboard"), removeEventListener("change", ye)) : removeEventListener("resize", ye);
1440
+ });
1441
+ const ft = Lt();
1442
+ let Be;
1443
+ async function pt() {
1444
+ if (!dt.value) {
1445
+ n.value = !1;
1446
+ return;
1447
+ }
1448
+ if (M.value.config.schemaNames.length <= 0 && !(M.value.config.dimensions.length <= 0 || M.value.config.metrics.length <= 0)) {
1449
+ ft.open({
1450
+ message: "schema must not be empty and dimension or metrics must have at least 1 column",
1451
+ type: "info"
1452
+ }), n.value = !1;
1453
+ return;
1454
+ }
1455
+ try {
1456
+ n.value = !0, Be && Be.abort(), Be = new AbortController();
1457
+ const a = Be.signal, B = Ue.value, K = await Ct(ra, 500)(M.value, a, m.value.id);
1458
+ Ue.value === B && (be.value = K, u.value = $e()), n.value = !1;
1459
+ } catch (a) {
1460
+ a.code !== "ERR_CANCELED" && (be.value = null, ft.open({ message: `Invalid chart ${M.value.type}`, type: "error" }), console.log(a), n.value = !1);
1461
+ }
1462
+ }
1463
+ function qt(a) {
1464
+ switch (m.value.widget.type) {
1465
+ case "SPACER":
1466
+ return;
1467
+ case "SCORECARD":
1468
+ return;
1469
+ case "TABLE":
1470
+ return `${m.value.size.height * 100 + (_.value ? 72 : 0) + 96.5}px`;
1471
+ }
1472
+ return `${Math.max(a / m.value.size.width, 90) * m.value.size.height}px`;
1473
+ }
1474
+ function Ot() {
1475
+ const a = i.value - 1;
1476
+ a >= 0 && (c.value = de.value[a].value);
1477
+ }
1478
+ function Ut() {
1479
+ const a = i.value + 1;
1480
+ a >= 0 && a < de.value.length && (c.value = de.value[a].value);
1481
+ }
1482
+ const vt = h(xe.EXCEL), gt = h(), Xt = Object.values(xe).map((a) => ({
1483
+ label: ia(a),
1484
+ value: a,
1485
+ onClick: async () => {
1486
+ a === xe.EXCEL || a === xe.PDFFULLSIZE || a === xe.PDFRECEIPT ? await Rt({
1487
+ reportType: a,
1488
+ index: S.index,
1489
+ isCombinedLocationLayout: Mt.value,
1490
+ timeRange: ut.value,
1491
+ dateRange: it.value,
1492
+ locationIds: rt.value
1493
+ }) : a === xe.PDF && (vt.value = a, gt.value = S.index, qe.value = !0);
1494
+ }
1495
+ })), Yt = M.value.type === F.Spacer ? "flat" : "outlined", Gt = M.value.type === F.Spacer ? "p-0" : "p-16";
1496
+ return (a, B) => {
1497
+ const K = V("FmTooltip"), Le = V("FmSearch"), jt = V("FmCheckbox"), Xe = V("FmButton"), Jt = V("FmSelect"), Kt = V("FmMenuItem"), Zt = V("FmMenu"), Qt = V("FmForm"), ea = V("FmCircularProgress"), ta = V("FmCard");
1498
+ return W(), U(ta, {
1499
+ ref_key: "tileCard",
1500
+ ref: T,
1501
+ class: Pe(`${At.value} ${l(Gt)}`),
1502
+ variant: l(Yt)
1503
+ }, {
1504
+ default: q(() => [
1505
+ $(Ma, {
1506
+ modelValue: qe.value,
1507
+ "onUpdate:modelValue": B[0] || (B[0] = (we) => qe.value = we),
1508
+ "report-type": vt.value,
1509
+ index: gt.value
1510
+ }, null, 8, ["modelValue", "report-type", "index"]),
1511
+ !n.value && !l(ct) ? (W(), I("div", {
1512
+ key: 0,
1513
+ style: se({ height: st.value })
1514
+ }, [
1515
+ (W(), U(oa(Vt.value), {
1516
+ key: u.value,
1517
+ modelValue: ht.value,
1518
+ "onUpdate:modelValue": B[4] || (B[4] = (we) => ht.value = we),
1519
+ "tile-index": S.index
1520
+ }, {
1521
+ menu: q(() => [
1522
+ $(Qt, { class: "flex items-center gap-2" }, {
1523
+ default: q(() => {
1524
+ var we, yt, bt, wt;
1525
+ return [
1526
+ $(K, {
1527
+ variant: "plain",
1528
+ placement: "right",
1529
+ content: M.value.description,
1530
+ "hide-arrow": !0,
1531
+ disabled: !M.value.description
1532
+ }, {
1533
+ default: q(() => [
1534
+ p.value !== !1 ? (W(), I("p", {
1535
+ key: 0,
1536
+ style: se({
1537
+ fontSize: y.value + "px",
1538
+ fontWeight: d.value ? "bold" : "normal",
1539
+ fontStyle: E.value ? "italic" : "normal",
1540
+ textDecoration: f.value ? "underline" : "none"
1541
+ }),
1542
+ class: Pe(["text-fm-color-typo-secondary line-clamp-1", [
1543
+ y.value <= 18 ? "fm-typo-en-body-md-400" : "",
1544
+ M.value.description ? "border-b-2 border-dashed border-gray-300" : ""
1545
+ ]])
1546
+ }, ze(l(Ce)(l(x), l(L), M.value.title, "other")), 7)) : he("", !0)
1547
+ ]),
1548
+ _: 1
1549
+ }, 8, ["content", "disabled"]),
1550
+ (we = He.value) != null && we.showSearchBar ? (W(), U(Le, {
1551
+ key: 0,
1552
+ modelValue: Oe.value,
1553
+ "onUpdate:modelValue": B[1] || (B[1] = (Z) => Oe.value = Z),
1554
+ class: "grow"
1555
+ }, null, 8, ["modelValue"])) : (W(), I("div", Ia)),
1556
+ na($(jt, {
1557
+ modelValue: w.value,
1558
+ "onUpdate:modelValue": B[2] || (B[2] = (Z) => w.value = Z),
1559
+ label: "Label",
1560
+ value: !1
1561
+ }, null, 8, ["modelValue"]), [
1562
+ [sa, (yt = He.value) == null ? void 0 : yt.showLabel]
1563
+ ]),
1564
+ (bt = He.value) != null && bt.showDrillDimension && de.value.length > 0 ? (W(), I("div", Na, [
1565
+ $(Xe, {
1566
+ icon: "arrow_upward",
1567
+ variant: "tertiary",
1568
+ disabled: !r.value,
1569
+ onClick: Ot
1570
+ }, null, 8, ["disabled"]),
1571
+ $(Xe, {
1572
+ icon: "arrow_downward",
1573
+ variant: "tertiary",
1574
+ disabled: !b.value,
1575
+ onClick: Ut
1576
+ }, null, 8, ["disabled"])
1577
+ ])) : he("", !0),
1578
+ (wt = He.value) != null && wt.showRollup && mt.value.length > 0 ? (W(), U(Jt, {
1579
+ key: 3,
1580
+ modelValue: z.value,
1581
+ "onUpdate:modelValue": B[3] || (B[3] = (Z) => z.value = Z),
1582
+ class: "w-[150px]",
1583
+ items: mt.value
1584
+ }, null, 8, ["modelValue", "items"])) : he("", !0),
1585
+ S.hideExport ? he("", !0) : (W(), U(Zt, {
1586
+ key: 4,
1587
+ shift: !0
1588
+ }, {
1589
+ "menu-button": q(() => [
1590
+ $(Xe, {
1591
+ icon: "more_vert",
1592
+ variant: "tertiary"
1593
+ })
1594
+ ]),
1595
+ default: q(() => [
1596
+ (W(!0), I(ne, null, Tt(l(Xt), (Z) => (W(), U(Kt, {
1597
+ key: Z.value,
1598
+ label: Z.label,
1599
+ onClick: Z.onClick
1600
+ }, null, 8, ["label", "onClick"]))), 128))
1601
+ ]),
1602
+ _: 1
1603
+ }))
1604
+ ];
1605
+ }),
1606
+ _: 1
1607
+ })
1608
+ ]),
1609
+ _: 1
1610
+ }, 8, ["modelValue", "tile-index"]))
1611
+ ], 4)) : (W(), U(ea, { key: 1 }))
1612
+ ]),
1613
+ _: 1
1614
+ }, 8, ["class", "variant"]);
1615
+ };
1616
+ }
1617
+ });
1618
+ export {
1619
+ Ze as L,
1620
+ Q as R,
1621
+ Za as _,
1622
+ Ke as a,
1623
+ Ge as g,
1624
+ _t as u
1625
+ };