@feedmepos/mf-report 5.21.56 → 5.21.57

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 (25) hide show
  1. package/dist/{App-NoAK8iTE.js → App-Bl-Y42qi.js} +5 -5
  2. package/dist/{BaseDialog.vue_vue_type_script_setup_true_lang-CH-vKXuQ.js → BaseDialog.vue_vue_type_script_setup_true_lang-B9YhB4EJ.js} +3 -3
  3. package/dist/{DateRangeSelect.vue_vue_type_script_setup_true_lang-CzhoY713.js → DateRangeSelect.vue_vue_type_script_setup_true_lang-B29FN0es.js} +2 -2
  4. package/dist/{Default.vue_vue_type_script_setup_true_lang-B1kbgF_D.js → Default.vue_vue_type_script_setup_true_lang-LRSiyCmg.js} +2 -2
  5. package/dist/{FilterSelector.vue_vue_type_script_setup_true_lang-PI0mC75q.js → FilterSelector.vue_vue_type_script_setup_true_lang-C3ET8stk.js} +7 -7
  6. package/dist/{InsightView-CHqhD8fS.js → InsightView-CfrdOUQP.js} +6 -6
  7. package/dist/{Integration-C8TejnC-.js → Integration-DLb5xFlT.js} +3 -3
  8. package/dist/{Integrations-Brjhmzyy.js → Integrations-CaoN3Cnd.js} +3 -3
  9. package/dist/{Layout-C8i8aoh4.js → Layout-D7zszK12.js} +1 -1
  10. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-CGJS1vJw.js → MenuTab.vue_vue_type_script_setup_true_lang-_zg8Rhg6.js} +5 -5
  11. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-DS_ca9a3.js → NavigationTab.vue_vue_type_script_setup_true_lang-C-U1DCLj.js} +5 -5
  12. package/dist/{NoData.vue_vue_type_script_setup_true_lang-L1iM4A-A.js → NoData.vue_vue_type_script_setup_true_lang-C7w7iw6q.js} +1 -1
  13. package/dist/{OverviewView-B7NQWfYH.js → OverviewView-8QxWn7t2.js} +5 -5
  14. package/dist/{Report-Cwh471tO.js → Report-BBcvsbAf.js} +4 -4
  15. package/dist/{ReportEditor-Bot6ssEr.js → ReportEditor-DMnEl_FE.js} +6 -6
  16. package/dist/{ReportView-Ch-hcfug.js → ReportView-DzZ9sEX6.js} +8 -8
  17. package/dist/{SelectComponent.vue_vue_type_script_setup_true_lang-BPizbTXW.js → SelectComponent.vue_vue_type_script_setup_true_lang-Cl_FeuWr.js} +1 -1
  18. package/dist/{Setting-Cc7hBd6o.js → Setting-B-jbHveJ.js} +5 -5
  19. package/dist/TileEditor-Bd9Fx4sO.js +2921 -0
  20. package/dist/{TransitionFade-Dy6-xynB.js → TransitionFade-CpAbbFiZ.js} +6 -6
  21. package/dist/{app-BJZPpJjO.js → app-BlZPWg1Z.js} +11 -11
  22. package/dist/app.js +1 -1
  23. package/dist/{vue-i18n-DH1E-9uR.js → vue-i18n-ClRymKNi.js} +1 -1
  24. package/package.json +1 -1
  25. package/dist/TileEditor-BySLZFk6.js +0 -2919
@@ -1,2919 +0,0 @@
1
- import { defineComponent as q, mergeModels as K, useModel as ee, computed as T, ref as H, resolveComponent as k, createElementBlock as R, openBlock as b, createVNode as u, createElementVNode as F, unref as l, withCtx as N, toDisplayString as j, Fragment as oe, renderList as pe, withModifiers as ne, createTextVNode as ve, watch as re, createCommentVNode as U, createBlock as D, onUnmounted as qe, renderSlot as Be, onMounted as Se, onBeforeUnmount as He, resolveDynamicComponent as je, normalizeClass as ze, withDirectives as se, vShow as ue, normalizeStyle as Ye, isRef as Ge } from "vue";
2
- import { useRoute as Je, useRouter as Ke } from "vue-router";
3
- import { h as Qe, d as we, S as ke, _ as Ze, W as el, b as ll, T as ol, a as tl } from "./TransitionFade-Dy6-xynB.js";
4
- import { W as z, b as Re, d as fe, D as al, S as Ue, C as nl, P as Ne, a as il } from "./BaseDialog.vue_vue_type_script_setup_true_lang-CH-vKXuQ.js";
5
- import { storeToRefs as de } from "pinia";
6
- import { u as Me } from "./message-dialog-UoMWOnil.js";
7
- import { u as J, i as me, b as Pe, g as sl } from "./vue-i18n-DH1E-9uR.js";
8
- import { useSnackbar as ul, useBreakpoints as Ae, FmButtonColorThemeVariant as Oe } from "@feedmepos/ui-library";
9
- import { a as Z } from "./SelectComponent.vue_vue_type_script_setup_true_lang-BPizbTXW.js";
10
- import { r as Y } from "./i18n-7InkCBCc.js";
11
- import { g as ce, u as ye, L as ie, b as be, c as rl, Y as dl, X as ml, _ as Xe, a as cl } from "./FilterSelector.vue_vue_type_script_setup_true_lang-PI0mC75q.js";
12
- import { d as he } from "./DateRangeSelect.vue_vue_type_script_setup_true_lang-CzhoY713.js";
13
- import { d as ge } from "./app-BJZPpJjO.js";
14
- import { _ as Ee } from "./NoData.vue_vue_type_script_setup_true_lang-L1iM4A-A.js";
15
- const Fe = [
16
- {
17
- type: z.Circular,
18
- maxDimension: null,
19
- maxMetric: 1,
20
- hasBreakdownDimension: !1,
21
- canTranspose: !1,
22
- isDrillConfigurable: !1,
23
- hasChart: !0,
24
- hasTable: !1,
25
- hasLabel: !0,
26
- hasLegend: !0,
27
- hasXy: !1,
28
- canRollup: !1,
29
- showRollupPosition: !1,
30
- canSearch: !1,
31
- periodType: null
32
- },
33
- {
34
- type: z.Table,
35
- maxDimension: null,
36
- maxMetric: null,
37
- hasBreakdownDimension: !1,
38
- canTranspose: !1,
39
- isDrillConfigurable: !0,
40
- hasChart: !1,
41
- hasTable: !0,
42
- hasLabel: !1,
43
- hasLegend: !1,
44
- hasXy: !1,
45
- canRollup: !0,
46
- showRollupPosition: !0,
47
- canSearch: !0,
48
- periodType: null
49
- },
50
- {
51
- type: z.BarChart,
52
- maxDimension: null,
53
- maxMetric: 1,
54
- hasBreakdownDimension: !0,
55
- canTranspose: !0,
56
- isDrillConfigurable: !1,
57
- hasChart: !0,
58
- hasTable: !1,
59
- hasLabel: !0,
60
- hasLegend: !0,
61
- hasXy: !0,
62
- canRollup: !1,
63
- showRollupPosition: !1,
64
- canSearch: !1,
65
- periodType: null
66
- },
67
- {
68
- type: z.LineChart,
69
- maxDimension: null,
70
- maxMetric: 1,
71
- hasBreakdownDimension: !0,
72
- canTranspose: !0,
73
- isDrillConfigurable: !1,
74
- hasChart: !0,
75
- hasTable: !1,
76
- hasLabel: !0,
77
- hasLegend: !0,
78
- hasXy: !0,
79
- canRollup: !1,
80
- showRollupPosition: !1,
81
- canSearch: !1,
82
- periodType: null
83
- },
84
- {
85
- type: z.StackBarChart,
86
- maxDimension: null,
87
- maxMetric: 1,
88
- hasBreakdownDimension: !0,
89
- canTranspose: !0,
90
- isDrillConfigurable: !1,
91
- hasChart: !0,
92
- hasTable: !1,
93
- hasLabel: !0,
94
- hasLegend: !0,
95
- hasXy: !0,
96
- canRollup: !1,
97
- showRollupPosition: !1,
98
- canSearch: !1,
99
- periodType: null
100
- },
101
- {
102
- type: z.StackLineChart,
103
- maxDimension: null,
104
- maxMetric: 1,
105
- hasBreakdownDimension: !0,
106
- canTranspose: !0,
107
- isDrillConfigurable: !1,
108
- hasChart: !0,
109
- hasTable: !1,
110
- hasLabel: !0,
111
- hasLegend: !0,
112
- hasXy: !0,
113
- canRollup: !1,
114
- showRollupPosition: !1,
115
- canSearch: !1,
116
- periodType: null
117
- },
118
- {
119
- type: z.Scorecard,
120
- maxDimension: null,
121
- maxMetric: 1,
122
- hasBreakdownDimension: !1,
123
- canTranspose: !1,
124
- isDrillConfigurable: !1,
125
- hasChart: !1,
126
- hasTable: !1,
127
- hasLabel: !1,
128
- hasLegend: !1,
129
- hasXy: !1,
130
- canRollup: !1,
131
- showRollupPosition: !1,
132
- canSearch: !1,
133
- periodType: null
134
- },
135
- {
136
- type: z.Spacer,
137
- maxDimension: 0,
138
- maxMetric: 0,
139
- hasBreakdownDimension: !1,
140
- canTranspose: !1,
141
- isDrillConfigurable: !1,
142
- hasChart: !1,
143
- hasTable: !1,
144
- hasLabel: !1,
145
- hasLegend: !1,
146
- hasXy: !1,
147
- canRollup: !1,
148
- showRollupPosition: !1,
149
- canSearch: !1,
150
- periodType: null
151
- }
152
- ], pl = { class: "flex flex-col my-2 gap-8" }, vl = { class: "fm-typo-en-body-lg-600" }, fl = { class: "text-sm text-fm-color-neutral-gray-400" }, gl = ["onClick"], bl = { class: "fm-typo-en-body-lg-400 overflow-hidden text-ellipsis line-clamp-1" }, yl = /* @__PURE__ */ q({
153
- __name: "SchemaSection",
154
- props: /* @__PURE__ */ K({
155
- options: {
156
- type: Array,
157
- default: () => []
158
- },
159
- label: {
160
- type: String,
161
- default: "Schema"
162
- }
163
- }, {
164
- modelValue: { required: !0 },
165
- modelModifiers: {}
166
- }),
167
- emits: ["update:modelValue"],
168
- setup(x) {
169
- const { t: d, te: t } = J(), i = ee(x, "modelValue"), a = x, { schemas: g } = de(Re()), y = T(
170
- () => g.value.map((f) => ({
171
- label: f.label,
172
- value: f.name,
173
- raw: f
174
- }))
175
- ), p = T(() => {
176
- if (i.value.schemaNames.length === 0 || o.value === 0)
177
- return y.value.filter((f) => !f.raw.isJoinOnly);
178
- {
179
- const f = i.value.schemaNames[0], _ = g.value.find((S) => S.name === f), L = ((_ == null ? void 0 : _.joins) || []).map((S) => S);
180
- return y.value.filter((S) => L.includes(S.raw.name));
181
- }
182
- }), V = H(!1), h = H(""), o = H(), s = ul();
183
- function C(f) {
184
- var _;
185
- return Y(
186
- d,
187
- t,
188
- (_ = g.value.find((L) => L.name === f)) == null ? void 0 : _.label,
189
- "schema"
190
- );
191
- }
192
- function w(f) {
193
- o.value = f, V.value = !0, f !== void 0 ? h.value = i.value.schemaNames[f] : h.value = "";
194
- }
195
- function O() {
196
- h.value !== "" ? (o.value !== void 0 ? i.value.schemaNames[o.value] = h.value : i.value.schemaNames.push(h.value), V.value = !1) : s.open({ message: d("report.section.schema.nothingSelected"), type: "error" });
197
- }
198
- return (f, _) => {
199
- const L = k("FmForm"), S = k("FmIcon"), n = k("FmField");
200
- return b(), R("div", pl, [
201
- u(fe, {
202
- modelValue: V.value,
203
- "onUpdate:modelValue": _[1] || (_[1] = (e) => V.value = e),
204
- title: a.label,
205
- "primary-button-label": l(d)("report.common.confirm"),
206
- "secondary-button-label": l(d)("report.common.cancel"),
207
- onConfirm: O
208
- }, {
209
- content: N(() => [
210
- u(L, { ref: "form" }, {
211
- default: N(() => [
212
- u(Z, {
213
- modelValue: h.value,
214
- "onUpdate:modelValue": _[0] || (_[0] = (e) => h.value = e),
215
- label: l(d)("report.section.schema.title"),
216
- items: o.value === 0 ? y.value.map((e) => ({
217
- label: l(Y)(l(d), l(t), e.label, "schema"),
218
- value: e.value
219
- })) : p.value.map((e) => ({
220
- label: l(Y)(l(d), l(t), e.label, "schema"),
221
- value: e.value
222
- }))
223
- }, null, 8, ["modelValue", "label", "items"])
224
- ]),
225
- _: 1
226
- }, 512)
227
- ]),
228
- _: 1
229
- }, 8, ["modelValue", "title", "primary-button-label", "secondary-button-label"]),
230
- F("div", null, [
231
- F("p", vl, j(l(d)("report.section.schema.title")), 1),
232
- F("p", fl, j(l(d)("report.section.schema.description")), 1)
233
- ]),
234
- (b(!0), R(oe, null, pe(i.value.schemaNames, (e, m) => (b(), R("div", {
235
- key: m,
236
- class: "flex flex-col gap-2 w-full"
237
- }, [
238
- F("div", {
239
- class: "flex items-center gap-2 border rounded-md border-neutral-300 p-2 h-[40px]",
240
- onClick: (r) => w(m)
241
- }, [
242
- F("p", bl, j(C(e)), 1),
243
- _[3] || (_[3] = F("div", { class: "grow" }, null, -1)),
244
- u(S, {
245
- name: "close",
246
- onClick: ne(
247
- () => {
248
- i.value.schemaNames = l(Qe)(i.value.schemaNames, m);
249
- },
250
- ["stop"]
251
- )
252
- }, null, 8, ["onClick"])
253
- ], 8, gl)
254
- ]))), 128)),
255
- u(n, {
256
- class: "text-fm-color-typo-tertiary",
257
- onClick: _[2] || (_[2] = () => {
258
- w();
259
- })
260
- }, {
261
- default: N(() => [
262
- ve(j(l(d)("report.section.schema.add")), 1)
263
- ]),
264
- _: 1
265
- })
266
- ]);
267
- };
268
- }
269
- }), hl = {
270
- key: 0,
271
- class: "flex flex-col my-2 gap-8"
272
- }, Vl = { class: "fm-typo-en-body-lg-600 text-ellipsis line-clamp-1" }, wl = { class: "fm-typo-en-body-sm-600 text-fm-color-neutral-gray-400" }, Fl = { class: "fm-typo-en-body-lg-400 text-ellipsis overflow-hidden line-clamp-1" }, xe = /* @__PURE__ */ q({
273
- __name: "DimensionSection",
274
- props: /* @__PURE__ */ K({
275
- options: {
276
- type: Array,
277
- default: () => []
278
- },
279
- label: {
280
- type: String,
281
- default: "title"
282
- },
283
- max: {
284
- type: Number,
285
- default: void 0
286
- },
287
- config: {
288
- type: Object,
289
- default: () => {
290
- }
291
- },
292
- hasRowColumn: {
293
- type: Boolean,
294
- default: !1
295
- }
296
- }, {
297
- modelValue: {
298
- required: !1,
299
- default: []
300
- },
301
- modelModifiers: {}
302
- }),
303
- emits: ["update:modelValue"],
304
- setup(x) {
305
- const { t: d, te: t } = J(), i = ee(x, "modelValue"), a = x, g = T(() => d(`report.section.dimension.${a.label}`)), y = H(!1), p = T(
306
- () => i.value.map((r, c) => ({
307
- index: c,
308
- labels: [r.label || r.name],
309
- value: r
310
- }))
311
- ), V = H(i.value.length > 0 ? 0 : void 0);
312
- function h(r) {
313
- var c, v, I, M;
314
- y.value = !0, o.value = r != null && r.value ? JSON.parse(
315
- JSON.stringify({
316
- ...r.value,
317
- label: Y(d, t, (c = r.value) == null ? void 0 : c.label, "other"),
318
- moveToColumn: (((v = a.config) == null ? void 0 : v.columnIds) || []).includes(ce(r.value))
319
- })
320
- ) : void 0, V.value = r == null ? void 0 : r.index, s.value = !!((I = o.value) != null && I.dataFormula || (M = o.value) != null && M.displayFormula), o.value && o.value.formatter === void 0 && (a.options.find(
321
- (Q) => {
322
- var E, X;
323
- return Q.schemaName === ((E = o.value) == null ? void 0 : E.schemaName) && Q.name === ((X = o.value) == null ? void 0 : X.name);
324
- }
325
- ), r != null && r.value.timeFormatter && o.value.formatter === void 0 && (o.value.formatter = r == null ? void 0 : r.value.timeFormatter, o.value.timeFormatter = void 0));
326
- }
327
- const o = H(void 0), s = H(!1), C = T(
328
- () => a.options.find(
329
- (r) => {
330
- var c, v;
331
- return r.schemaName === ((c = o.value) == null ? void 0 : c.schemaName) && r.name === ((v = o.value) == null ? void 0 : v.name);
332
- }
333
- ) ?? {}
334
- );
335
- re(
336
- () => {
337
- var r;
338
- return (r = o.value) == null ? void 0 : r.option;
339
- },
340
- () => {
341
- !w.value && o.value && (o.value.fillGap = !1);
342
- }
343
- );
344
- const w = T(
345
- () => {
346
- var r, c, v;
347
- return (v = (r = C.value) == null ? void 0 : r.fillGapDimensionOptions) == null ? void 0 : v.includes(((c = o.value) == null ? void 0 : c.option) || "");
348
- }
349
- );
350
- function O(r) {
351
- var c, v;
352
- (r.schemaName !== ((c = o.value) == null ? void 0 : c.schemaName) || r.name !== ((v = o.value) == null ? void 0 : v.name)) && (o.value = {
353
- schemaName: r.schemaName,
354
- name: r.name,
355
- option: r.dimensionOptions[0],
356
- label: Y(d, t, r.label, "other"),
357
- decimal: r.isNumericType ? 2 : void 0,
358
- hide: !1
359
- }, s.value = !1);
360
- }
361
- function f() {
362
- if (!o.value) {
363
- console.error("new field is undefined");
364
- return;
365
- }
366
- const r = [...p.value.map((c) => c.value)];
367
- s.value || (o.value.dataFormula = void 0), V.value !== void 0 ? r[V.value] = o.value : r.push(o.value), i.value = r, y.value = !1;
368
- }
369
- function _(r) {
370
- const v = [...p.value.map((I) => I.value)].filter((I, M) => M !== r);
371
- i.value = v;
372
- }
373
- function L(r) {
374
- o.value && (o.value.decimal = Number(r));
375
- }
376
- function S(r) {
377
- const c = `report.section.filter.${me(r)}`;
378
- return t(c) ? d(c) : Y(d, t, r, "field");
379
- }
380
- function n(r) {
381
- const c = `report.section.metric.formatterType.${r}`;
382
- return t(c) ? d(c) : r;
383
- }
384
- function e(r) {
385
- return Array.isArray(r) ? r.length > 0 : r;
386
- }
387
- const m = T(
388
- () => a.options.map((r) => ({
389
- label: r.labels.join(" "),
390
- value: r
391
- }))
392
- );
393
- return (r, c) => {
394
- const v = k("FmTextField"), I = k("FmStepperField"), M = k("FmCheckbox"), Q = k("FmTextarea"), E = k("FmForm"), X = k("FmIcon"), G = k("FmButton"), te = k("FmListItem"), $ = k("FmList"), P = k("FmField");
395
- return x.max !== 0 ? (b(), R("div", hl, [
396
- u(fe, {
397
- modelValue: y.value,
398
- "onUpdate:modelValue": c[12] || (c[12] = (W) => y.value = W),
399
- title: g.value,
400
- "primary-button-label": l(d)("report.common.confirm"),
401
- "secondary-button-label": l(d)("report.common.cancel"),
402
- onConfirm: f
403
- }, {
404
- content: N(() => [
405
- u(E, {
406
- ref: "form",
407
- class: "flex flex-col gap-2 w-[490px]"
408
- }, {
409
- default: N(() => {
410
- var W, ae, B, le, Te, $e, De;
411
- return [
412
- u(Z, {
413
- "model-value": C.value,
414
- items: m.value,
415
- placeholder: g.value,
416
- label: g.value,
417
- "onUpdate:modelValue": c[0] || (c[0] = (A) => O(A))
418
- }, null, 8, ["model-value", "items", "placeholder", "label"]),
419
- o.value ? (b(), R(oe, { key: 0 }, [
420
- u(v, {
421
- modelValue: o.value.label,
422
- "onUpdate:modelValue": c[1] || (c[1] = (A) => o.value.label = A),
423
- label: l(d)("report.section.dimension.label")
424
- }, null, 8, ["modelValue", "label"]),
425
- (((W = C.value) == null ? void 0 : W.dimensionOptions) || []).length > 0 ? (b(), D(Z, {
426
- key: 0,
427
- modelValue: o.value.option,
428
- "onUpdate:modelValue": c[2] || (c[2] = (A) => o.value.option = A),
429
- items: ((ae = C.value) == null ? void 0 : ae.dimensionOptions.map((A) => ({
430
- label: S(A),
431
- value: A
432
- }))) ?? []
433
- }, null, 8, ["modelValue", "items"])) : U("", !0),
434
- (B = C.value) != null && B.isNumericType ? (b(), D(I, {
435
- key: 1,
436
- label: l(d)("report.common.decimal"),
437
- "model-value": ((le = o.value) == null ? void 0 : le.decimal) ?? 2,
438
- "onUpdate:modelValue": c[3] || (c[3] = (A) => {
439
- L(A);
440
- })
441
- }, null, 8, ["label", "model-value"])) : U("", !0),
442
- (Te = C.value) != null && Te.isNumericType ? (b(), D(Z, {
443
- key: 2,
444
- modelValue: o.value.formatter,
445
- "onUpdate:modelValue": c[4] || (c[4] = (A) => o.value.formatter = A),
446
- placeholder: l(d)("report.section.dimension.formatter"),
447
- label: l(d)("report.section.dimension.formatter"),
448
- items: [
449
- { label: l(d)("report.section.metric.formatterType.NONE"), value: null },
450
- ...((($e = C.value) == null ? void 0 : $e.formatters) || []).map((A) => ({
451
- label: n(A),
452
- value: A
453
- }))
454
- ]
455
- }, null, 8, ["modelValue", "placeholder", "label", "items"])) : U("", !0),
456
- w.value ? (b(), D(M, {
457
- key: 3,
458
- "model-value": o.value.fillGap ?? !1,
459
- label: l(d)("report.section.dimension.fillGap"),
460
- value: "",
461
- placeholder: "Fill gap",
462
- "onUpdate:modelValue": c[5] || (c[5] = (A) => {
463
- o.value && (o.value.fillGap = e(A));
464
- })
465
- }, null, 8, ["model-value", "label"])) : U("", !0),
466
- ((De = C.value) == null ? void 0 : De.type) === l(al).Timestamp ? (b(), D(M, {
467
- key: 4,
468
- "model-value": o.value.dateComparison ?? !1,
469
- label: l(d)("report.section.dimension.dateComparison"),
470
- value: "",
471
- "onUpdate:modelValue": c[6] || (c[6] = (A) => {
472
- o.value && (o.value.dateComparison = e(A));
473
- })
474
- }, null, 8, ["model-value", "label"])) : U("", !0),
475
- u(M, {
476
- modelValue: o.value.hide,
477
- "onUpdate:modelValue": c[7] || (c[7] = (A) => o.value.hide = A),
478
- label: l(d)("report.section.dimension.hide"),
479
- value: ""
480
- }, null, 8, ["modelValue", "label"]),
481
- a.hasRowColumn ? (b(), D(M, {
482
- key: 5,
483
- "model-value": o.value.moveToColumn ?? !1,
484
- label: l(d)("report.section.dimension.moveToColumn"),
485
- value: "",
486
- "onUpdate:modelValue": c[8] || (c[8] = (A) => {
487
- o.value && (o.value.moveToColumn = e(A));
488
- })
489
- }, null, 8, ["model-value", "label"])) : U("", !0),
490
- u(M, {
491
- modelValue: s.value,
492
- "onUpdate:modelValue": c[9] || (c[9] = (A) => s.value = A),
493
- label: l(d)("report.section.dimension.advance"),
494
- value: !0
495
- }, null, 8, ["modelValue", "label"]),
496
- s.value ? (b(), D(Q, {
497
- key: 6,
498
- modelValue: o.value.dataFormula,
499
- "onUpdate:modelValue": c[10] || (c[10] = (A) => o.value.dataFormula = A),
500
- placeholder: l(d)("report.section.dimension.dataFormula")
501
- }, null, 8, ["modelValue", "placeholder"])) : U("", !0),
502
- s.value ? (b(), D(Q, {
503
- key: 7,
504
- modelValue: o.value.displayFormula,
505
- "onUpdate:modelValue": c[11] || (c[11] = (A) => o.value.displayFormula = A),
506
- placeholder: l(d)("report.section.dimension.displayFormula")
507
- }, null, 8, ["modelValue", "placeholder"])) : U("", !0)
508
- ], 64)) : U("", !0)
509
- ];
510
- }),
511
- _: 1
512
- }, 512)
513
- ]),
514
- _: 1
515
- }, 8, ["modelValue", "title", "primary-button-label", "secondary-button-label"]),
516
- F("div", null, [
517
- F("p", Vl, j(g.value), 1),
518
- F("p", wl, j(l(d)("report.section.dimension.description")), 1)
519
- ]),
520
- u($, null, {
521
- default: N(() => [
522
- u(l(we), {
523
- list: i.value,
524
- "item-key": (W) => l(ce)(W),
525
- class: "flex flex-col gap-2"
526
- }, {
527
- item: N(({ element: W, index: ae }) => [
528
- u(te, {
529
- class: "!cursor-grab border rounded-md border-neutral-300 h-[40px] !p-[8px]",
530
- onClick: ne((B) => h(p.value[ae]), ["stop"])
531
- }, {
532
- default: N(() => [
533
- u(X, { name: "drag_handle" }),
534
- F("p", Fl, j(l(Y)(l(d), l(t), W.label, "other")), 1),
535
- c[14] || (c[14] = F("div", { class: "grow" }, null, -1)),
536
- u(G, {
537
- icon: "close",
538
- size: "md",
539
- variant: "tertiary",
540
- onClick: ne((B) => _(ae), ["stop"])
541
- }, null, 8, ["onClick"])
542
- ]),
543
- _: 2
544
- }, 1032, ["onClick"])
545
- ]),
546
- _: 1
547
- }, 8, ["list", "item-key"])
548
- ]),
549
- _: 1
550
- }),
551
- u(P, {
552
- class: "text-fm-color-typo-tertiary",
553
- onClick: c[13] || (c[13] = () => {
554
- h();
555
- })
556
- }, {
557
- default: N(() => [
558
- ve(j(l(d)("report.section.dimension.add")), 1)
559
- ]),
560
- _: 1
561
- })
562
- ])) : U("", !0);
563
- };
564
- }
565
- }), Ce = {
566
- value: "_metric_name"
567
- };
568
- function xl(x, d, t) {
569
- switch (x) {
570
- case z.BarChart:
571
- case z.StackBarChart:
572
- case z.LineChart:
573
- case z.StackLineChart:
574
- case z.Circular:
575
- return d.length > 1;
576
- default:
577
- return t;
578
- }
579
- }
580
- function kl(x) {
581
- var i;
582
- const { rowIds: d, columnIds: t } = Ve(x.widget.config);
583
- return {
584
- ...x,
585
- widget: {
586
- ...x.widget,
587
- config: {
588
- ...x.widget.config,
589
- rowIds: d,
590
- columnIds: t,
591
- isDrillable: xl(
592
- x.widget.type,
593
- x.widget.config.dimensions,
594
- x.widget.config.isDrillable
595
- ),
596
- joinDatasources: (i = x.widget.config.joinDatasources) == null ? void 0 : i.map((a) => {
597
- const { rowIds: g, columnIds: y } = Ve(a);
598
- return {
599
- ...a,
600
- rowIds: g,
601
- columnIds: y
602
- };
603
- })
604
- }
605
- }
606
- };
607
- }
608
- function Ve(x) {
609
- const d = x.dimensions.filter((y) => y.hide !== !0 && !y.moveToColumn).map((y) => ce(y)), t = x.dimensions.filter((y) => y.hide !== !0 && y.moveToColumn == !0).map((y) => ce(y)), i = x.metrics.length > 0;
610
- i && x.metrics.find((y) => y.moveToRow == !0) ? d.push(Ce.value) : i && t.push(Ce.value);
611
- const a = [], g = [];
612
- for (const y of d)
613
- a.push(y);
614
- for (const y of t)
615
- g.push(y);
616
- return {
617
- rowIds: a,
618
- columnIds: g
619
- };
620
- }
621
- const Cl = { class: "flex flex-col my-2 gap-8" }, _l = { class: "fm-typo-en-body-lg-600" }, Sl = { class: "fm-typo-en-body-sm-600 text-fm-color-neutral-gray-400" }, Tl = { class: "fm-typo-en-body-lg-400 overflow-hidden text-ellipsis line-clamp-1" }, $l = /* @__PURE__ */ q({
622
- __name: "MetricSection",
623
- props: /* @__PURE__ */ K({
624
- options: {
625
- type: Array,
626
- default: () => []
627
- },
628
- label: {
629
- type: String,
630
- default: "title"
631
- },
632
- max: {
633
- type: Number,
634
- default: void 0
635
- },
636
- config: {
637
- type: Object,
638
- default: () => {
639
- }
640
- },
641
- hasRowColumn: {
642
- type: Boolean,
643
- default: !1
644
- }
645
- }, {
646
- modelValue: { required: !1, default: [] },
647
- modelModifiers: {}
648
- }),
649
- emits: /* @__PURE__ */ K(["config"], ["update:modelValue"]),
650
- setup(x, { emit: d }) {
651
- const { t, te: i } = J(), a = ee(x, "modelValue"), g = x;
652
- T(() => !!g.max && a.value.length === g.max);
653
- const y = T(() => t(`report.section.metric.${g.label}`)), p = H(!1), V = T(
654
- () => a.value.map((e, m) => ({
655
- index: m,
656
- labels: [e.label || e.name],
657
- value: e
658
- }))
659
- ), h = H(a.value.length > 0 ? 0 : void 0);
660
- function o(e) {
661
- var m, r, c;
662
- p.value = !0, s.value = e != null && e.value ? JSON.parse(
663
- JSON.stringify({
664
- ...e.value,
665
- label: Y(t, i, e.value.label, "other")
666
- })
667
- ) : void 0, h.value = e == null ? void 0 : e.index, C.value = !!((m = s.value) != null && m.dataFormula || (r = s.value) != null && r.displayFormula), s.value && s.value.formatter === void 0 && (g.options.find(
668
- (v) => {
669
- var I, M;
670
- return v.schemaName === ((I = s.value) == null ? void 0 : I.schemaName) && v.name === ((M = s.value) == null ? void 0 : M.name);
671
- }
672
- ), e != null && e.value.timeFormatter && s.value.formatter === void 0 && (s.value.formatter = e == null ? void 0 : e.value.timeFormatter, s.value.timeFormatter = void 0)), ((c = g.config.rowIds) == null ? void 0 : c.findIndex((v) => v === Ce.value)) !== -1 && s.value && (s.value.moveToRow = !0);
673
- }
674
- const s = H(void 0), C = H(!1), w = T(
675
- () => g.options.find(
676
- (e) => {
677
- var m, r;
678
- return e.schemaName === ((m = s.value) == null ? void 0 : m.schemaName) && e.name === ((r = s.value) == null ? void 0 : r.name);
679
- }
680
- ) ?? {}
681
- );
682
- function O(e, m) {
683
- var r;
684
- return (e == null ? void 0 : e.isNumericType) || ((r = e == null ? void 0 : e.isNumericAggregations) == null ? void 0 : r.includes(m || ""));
685
- }
686
- const f = T(
687
- () => {
688
- var e;
689
- return O(w.value, (e = s.value) == null ? void 0 : e.aggregation);
690
- }
691
- );
692
- re(f, (e) => {
693
- s.value && (e ? s.value.decimal = typeof s.value.decimal != "number" ? 2 : s.value.decimal : s.value.decimal = void 0);
694
- });
695
- function _(e) {
696
- var m, r;
697
- (e.schemaName !== ((m = s.value) == null ? void 0 : m.schemaName) || e.name !== ((r = s.value) == null ? void 0 : r.name)) && (s.value = {
698
- schemaName: e.schemaName,
699
- name: e.name,
700
- aggregation: e.aggregations[0],
701
- label: Y(t, i, e.label, "other"),
702
- decimal: O(e, e.aggregations[0]) ? 2 : void 0,
703
- moveToRow: !1,
704
- hide: !1
705
- }, C.value = !1);
706
- }
707
- function L() {
708
- const e = [...V.value.map((m) => m.value)];
709
- s.value && (C.value || (s.value.dataFormula = void 0), h.value !== void 0 ? e[h.value] = s.value : e.push(s.value)), a.value = e, p.value = !1;
710
- }
711
- function S(e) {
712
- const m = [...V.value.map((r) => r.value)];
713
- m.splice(e, 1), a.value = m;
714
- }
715
- const n = T(
716
- () => g.options.map((e) => ({
717
- label: e.labels.join(" "),
718
- value: e
719
- }))
720
- );
721
- return (e, m) => {
722
- const r = k("FmTextField"), c = k("FmStepperField"), v = k("FmCheckbox"), I = k("FmTextarea"), M = k("FmForm"), Q = k("FmIcon"), E = k("FmButton"), X = k("FmListItem"), G = k("FmList"), te = k("FmField");
723
- return b(), R("div", Cl, [
724
- u(fe, {
725
- modelValue: p.value,
726
- "onUpdate:modelValue": m[10] || (m[10] = ($) => p.value = $),
727
- title: y.value,
728
- onConfirm: L
729
- }, {
730
- content: N(() => [
731
- u(M, {
732
- ref: "form",
733
- class: "flex flex-col gap-2 w-[490px]"
734
- }, {
735
- default: N(() => {
736
- var $, P, W, ae;
737
- return [
738
- u(Z, {
739
- "model-value": w.value,
740
- items: n.value,
741
- placeholder: y.value,
742
- label: y.value,
743
- "onUpdate:modelValue": m[0] || (m[0] = (B) => _(B))
744
- }, null, 8, ["model-value", "items", "placeholder", "label"]),
745
- s.value ? (b(), R(oe, { key: 0 }, [
746
- u(r, {
747
- modelValue: s.value.label,
748
- "onUpdate:modelValue": m[1] || (m[1] = (B) => s.value.label = B),
749
- label: l(t)("report.section.metric.label")
750
- }, null, 8, ["modelValue", "label"]),
751
- ((($ = w.value) == null ? void 0 : $.aggregations) || []).length > 0 ? (b(), D(Z, {
752
- key: 0,
753
- modelValue: s.value.aggregation,
754
- "onUpdate:modelValue": m[2] || (m[2] = (B) => s.value.aggregation = B),
755
- label: l(t)("report.section.metric.aggregation"),
756
- items: ((P = w.value) == null ? void 0 : P.aggregations.map((B) => ({
757
- label: l(i)(`report.section.metric.aggregationType.${B}`) ? l(t)(`report.section.metric.aggregationType.${B}`) : l(Y)(l(t), l(i), B, "field"),
758
- value: B
759
- }))) ?? []
760
- }, null, 8, ["modelValue", "label", "items"])) : U("", !0),
761
- f.value ? (b(), D(c, {
762
- key: 1,
763
- label: l(t)("report.common.decimal"),
764
- "model-value": ((W = s.value) == null ? void 0 : W.decimal) ?? 2,
765
- "onUpdate:modelValue": m[3] || (m[3] = (B) => {
766
- s.value && (s.value.decimal = B);
767
- })
768
- }, null, 8, ["label", "model-value"])) : U("", !0),
769
- f.value ? (b(), D(Z, {
770
- key: 2,
771
- modelValue: s.value.formatter,
772
- "onUpdate:modelValue": m[4] || (m[4] = (B) => s.value.formatter = B),
773
- placeholder: l(t)("report.section.metric.formatter"),
774
- label: l(t)("report.section.metric.formatter"),
775
- items: [
776
- { label: l(t)("report.section.metric.formatterType.NONE"), value: null },
777
- ...(((ae = w.value) == null ? void 0 : ae.formatters) || []).map((B) => ({
778
- label: l(i)(`report.section.metric.formatterType.${B}`) ? l(t)(`report.section.metric.formatterType.${B}`) : l(Y)(l(t), l(i), B, "field"),
779
- value: B
780
- }))
781
- ]
782
- }, null, 8, ["modelValue", "placeholder", "label", "items"])) : U("", !0),
783
- u(v, {
784
- modelValue: s.value.hide,
785
- "onUpdate:modelValue": m[5] || (m[5] = (B) => s.value.hide = B),
786
- label: l(t)("report.section.metric.hide"),
787
- value: ""
788
- }, null, 8, ["modelValue", "label"]),
789
- g.hasRowColumn ? (b(), D(v, {
790
- key: 3,
791
- modelValue: s.value.moveToRow,
792
- "onUpdate:modelValue": m[6] || (m[6] = (B) => s.value.moveToRow = B),
793
- label: l(t)("report.section.metric.moveToRow"),
794
- value: ""
795
- }, null, 8, ["modelValue", "label"])) : U("", !0),
796
- u(v, {
797
- modelValue: C.value,
798
- "onUpdate:modelValue": m[7] || (m[7] = (B) => C.value = B),
799
- label: l(t)("report.section.metric.advance"),
800
- value: !0
801
- }, null, 8, ["modelValue", "label"]),
802
- C.value ? (b(), D(I, {
803
- key: 4,
804
- modelValue: s.value.dataFormula,
805
- "onUpdate:modelValue": m[8] || (m[8] = (B) => s.value.dataFormula = B),
806
- placeholder: l(t)("report.section.metric.dataFormula")
807
- }, null, 8, ["modelValue", "placeholder"])) : U("", !0),
808
- C.value ? (b(), D(I, {
809
- key: 5,
810
- modelValue: s.value.displayFormula,
811
- "onUpdate:modelValue": m[9] || (m[9] = (B) => s.value.displayFormula = B),
812
- placeholder: l(t)("report.section.metric.displayFormula")
813
- }, null, 8, ["modelValue", "placeholder"])) : U("", !0)
814
- ], 64)) : U("", !0)
815
- ];
816
- }),
817
- _: 1
818
- }, 512)
819
- ]),
820
- _: 1
821
- }, 8, ["modelValue", "title"]),
822
- F("div", null, [
823
- F("p", _l, j(y.value), 1),
824
- F("p", Sl, j(l(t)("report.section.metric.description")), 1)
825
- ]),
826
- u(G, null, {
827
- default: N(() => [
828
- u(l(we), {
829
- list: a.value,
830
- "item-key": "id",
831
- class: "flex flex-col gap-2 w-full"
832
- }, {
833
- item: N(({ element: $, index: P }) => [
834
- u(X, {
835
- class: "!cursor-grab border rounded-md border-neutral-300 h-[40px] !p-[8px]",
836
- onClick: ne((W) => o(V.value[P]), ["stop"])
837
- }, {
838
- default: N(() => [
839
- u(Q, { name: "drag_handle" }),
840
- F("p", Tl, j(l(Y)(l(t), l(i), $.label, "other")), 1),
841
- m[12] || (m[12] = F("div", { class: "grow" }, null, -1)),
842
- u(E, {
843
- icon: "close",
844
- size: "md",
845
- variant: "tertiary",
846
- onClick: ne((W) => S(P), ["stop"])
847
- }, null, 8, ["onClick"])
848
- ]),
849
- _: 2
850
- }, 1032, ["onClick"])
851
- ]),
852
- _: 1
853
- }, 8, ["list"])
854
- ]),
855
- _: 1
856
- }),
857
- u(te, {
858
- class: "text-fm-color-typo-tertiary",
859
- onClick: m[11] || (m[11] = () => {
860
- o();
861
- })
862
- }, {
863
- default: N(() => [
864
- ve(j(l(t)("report.section.metric.add")), 1)
865
- ]),
866
- _: 1
867
- })
868
- ]);
869
- };
870
- }
871
- }), Dl = { class: "flex flex-col my-2 gap-8" }, Ul = { class: "fm-typo-en-body-lg-600" }, Nl = { class: "fm-typo-en-body-sm-600 text-fm-color-neutral-gray-400" }, Ol = { class: "fm-typo-en-body-lg-400 text-ellipsis overflow-hidden line-clamp-1" }, Ll = /* @__PURE__ */ q({
872
- __name: "SortSection",
873
- props: /* @__PURE__ */ K({
874
- options: {
875
- type: Array,
876
- default: () => []
877
- },
878
- label: {
879
- type: String,
880
- default: "title"
881
- }
882
- }, {
883
- modelValue: { required: !1, default: [] },
884
- modelModifiers: {}
885
- }),
886
- emits: ["update:modelValue"],
887
- setup(x) {
888
- const { t: d, te: t } = J(), i = ee(x, "modelValue"), a = x, g = T(() => d(`report.section.sort.${a.label}`)), y = H(!1), p = T(
889
- () => i.value.map((S, n) => {
890
- const e = a.options.find(
891
- (r) => r.schemaName === S.schemaName && r.name === S.name
892
- ), m = (e == null ? void 0 : e.labels) || [S.schemaName, S.name];
893
- return {
894
- index: n,
895
- label: m.map((r) => Y(d, t, r, "other")).join(" "),
896
- value: S
897
- };
898
- })
899
- ), V = H(i.value.length > 0 ? 0 : void 0);
900
- function h(S) {
901
- var n;
902
- y.value = !0, o.value = S != null && S.value ? JSON.parse(JSON.stringify(S.value)) : void 0, V.value = S == null ? void 0 : S.index, s.value = !!((n = o.value) != null && n.dataFormula);
903
- }
904
- const o = H(void 0), s = H(!1), C = T(
905
- () => a.options.find(
906
- (S) => {
907
- var n, e;
908
- return S.schemaName === ((n = o.value) == null ? void 0 : n.schemaName) && S.name === ((e = o.value) == null ? void 0 : e.name);
909
- }
910
- ) ?? {}
911
- );
912
- function w(S) {
913
- var n, e;
914
- (S.schemaName !== ((n = o.value) == null ? void 0 : n.schemaName) || S.name !== ((e = o.value) == null ? void 0 : e.name)) && (o.value = {
915
- schemaName: S.schemaName,
916
- name: S.name,
917
- dimensionOption: S.dimensionOptions[0],
918
- aggregation: null,
919
- type: Ue.Asc
920
- });
921
- }
922
- function O() {
923
- if (!o.value) {
924
- console.log("new sort is undefined");
925
- return;
926
- }
927
- const S = [...p.value.map((n) => n.value)];
928
- s.value || (o.value.dataFormula = void 0), V.value !== void 0 ? S[V.value] = o.value : S.push(o.value), i.value = S, y.value = !1;
929
- }
930
- function f(S) {
931
- const n = [...p.value.map((e) => e.value)];
932
- n.splice(S, 1), i.value = n, y.value = !1;
933
- }
934
- function _(S) {
935
- const n = `report.section.filter.${me(S)}`;
936
- return t(n) ? d(n) : Y(d, t, S, "field");
937
- }
938
- const L = T(
939
- () => a.options.map((S) => ({
940
- label: S.labels.join(" "),
941
- value: S
942
- }))
943
- );
944
- return (S, n) => {
945
- const e = k("FmCheckbox"), m = k("FmTextarea"), r = k("FmForm"), c = k("FmIcon"), v = k("FmButton"), I = k("FmListItem"), M = k("FmList"), Q = k("FmField");
946
- return b(), R("div", Dl, [
947
- u(fe, {
948
- modelValue: y.value,
949
- "onUpdate:modelValue": n[6] || (n[6] = (E) => y.value = E),
950
- title: g.value,
951
- onConfirm: O
952
- }, {
953
- content: N(() => [
954
- u(r, {
955
- ref: "form",
956
- class: "flex flex-col gap-2 w-[490px]"
957
- }, {
958
- default: N(() => {
959
- var E, X, G, te;
960
- return [
961
- u(Z, {
962
- "model-value": C.value,
963
- items: L.value,
964
- placeholder: g.value,
965
- label: g.value,
966
- "onUpdate:modelValue": n[0] || (n[0] = ($) => w($))
967
- }, null, 8, ["model-value", "items", "placeholder", "label"]),
968
- o.value ? (b(), R(oe, { key: 0 }, [
969
- (((E = C.value) == null ? void 0 : E.dimensionOptions) || []).length > 0 ? (b(), D(Z, {
970
- key: 0,
971
- modelValue: o.value.dimensionOption,
972
- "onUpdate:modelValue": n[1] || (n[1] = ($) => o.value.dimensionOption = $),
973
- items: ((X = C.value) == null ? void 0 : X.dimensionOptions.map(($) => ({
974
- label: _($),
975
- value: $
976
- }))) ?? [],
977
- placeholder: l(d)("report.section.sort.format"),
978
- label: l(d)("report.section.sort.format")
979
- }, null, 8, ["modelValue", "items", "placeholder", "label"])) : U("", !0),
980
- (((G = C.value) == null ? void 0 : G.aggregations) || []).length > 0 ? (b(), D(Z, {
981
- key: 1,
982
- modelValue: o.value.aggregation,
983
- "onUpdate:modelValue": n[2] || (n[2] = ($) => o.value.aggregation = $),
984
- items: ((te = C.value) == null ? void 0 : te.aggregations.map(($) => ({
985
- label: l(t)(`report.section.metric.aggregationType.${$}`) ? l(d)(`report.section.metric.aggregationType.${$}`) : $,
986
- value: $
987
- }))) ?? [],
988
- label: l(d)("report.section.sort.aggregation"),
989
- placeholder: l(d)("report.section.sort.aggregation")
990
- }, null, 8, ["modelValue", "items", "label", "placeholder"])) : U("", !0),
991
- u(Z, {
992
- modelValue: o.value.type,
993
- "onUpdate:modelValue": n[3] || (n[3] = ($) => o.value.type = $),
994
- items: Object.values(l(Ue)).map(($) => ({
995
- label: l(t)(`report.section.sort.sortType.${$}`) ? l(d)(`report.section.sort.sortType.${$}`) : $,
996
- value: $
997
- })),
998
- placeholder: l(d)("report.section.sort.order"),
999
- label: l(d)("report.section.sort.order")
1000
- }, null, 8, ["modelValue", "items", "placeholder", "label"]),
1001
- u(e, {
1002
- modelValue: s.value,
1003
- "onUpdate:modelValue": n[4] || (n[4] = ($) => s.value = $),
1004
- label: l(d)("report.section.sort.advance"),
1005
- value: !0
1006
- }, null, 8, ["modelValue", "label"]),
1007
- s.value ? (b(), D(m, {
1008
- key: 2,
1009
- modelValue: o.value.dataFormula,
1010
- "onUpdate:modelValue": n[5] || (n[5] = ($) => o.value.dataFormula = $),
1011
- placeholder: l(d)("report.section.sort.dataFormula")
1012
- }, null, 8, ["modelValue", "placeholder"])) : U("", !0)
1013
- ], 64)) : U("", !0)
1014
- ];
1015
- }),
1016
- _: 1
1017
- }, 512)
1018
- ]),
1019
- _: 1
1020
- }, 8, ["modelValue", "title"]),
1021
- F("div", null, [
1022
- F("p", Ul, j(g.value), 1),
1023
- F("p", Nl, j(l(d)("report.section.sort.description")), 1)
1024
- ]),
1025
- u(M, null, {
1026
- default: N(() => [
1027
- u(l(we), {
1028
- list: i.value,
1029
- "item-key": "id",
1030
- class: "flex flex-col gap-2 w-full"
1031
- }, {
1032
- item: N(({ element: E, index: X }) => [
1033
- u(I, {
1034
- class: "!cursor-grab border rounded-md border-neutral-300 h-[40px] !p-[8px]",
1035
- onClick: ne((G) => h(p.value[X]), ["stop"])
1036
- }, {
1037
- default: N(() => [
1038
- u(c, { name: "drag_handle" }),
1039
- F("p", Ol, j(p.value[X].label), 1),
1040
- n[8] || (n[8] = F("div", { class: "grow" }, null, -1)),
1041
- u(v, {
1042
- icon: "close",
1043
- size: "md",
1044
- variant: "tertiary",
1045
- onClick: ne((G) => f(X), ["stop"])
1046
- }, null, 8, ["onClick"])
1047
- ]),
1048
- _: 2
1049
- }, 1032, ["onClick"])
1050
- ]),
1051
- _: 1
1052
- }, 8, ["list"])
1053
- ]),
1054
- _: 1
1055
- }),
1056
- u(Q, {
1057
- class: "text-fm-color-typo-tertiary",
1058
- onClick: n[7] || (n[7] = () => {
1059
- h();
1060
- })
1061
- }, {
1062
- default: N(() => [
1063
- ve(j(l(d)("report.section.sort.add")), 1)
1064
- ]),
1065
- _: 1
1066
- })
1067
- ]);
1068
- };
1069
- }
1070
- }), Il = { class: "fm-typo-en-body-lg-600" }, Bl = { class: "fm-typo-en-body-sm-600 text-fm-color-neutral-gray-400" }, jl = /* @__PURE__ */ q({
1071
- __name: "LimitSection",
1072
- props: {
1073
- modelValue: { required: !0, default: null },
1074
- modelModifiers: {}
1075
- },
1076
- emits: ["update:modelValue"],
1077
- setup(x) {
1078
- const { t: d } = J(), t = ee(x, "modelValue"), i = he((a) => {
1079
- a !== "" ? t.value = a : t.value = null;
1080
- }, 1e3);
1081
- return (a, g) => {
1082
- const y = k("FmTextField");
1083
- return b(), R(oe, null, [
1084
- F("div", null, [
1085
- F("p", Il, j(l(d)("report.section.limit.title")), 1),
1086
- F("p", Bl, j(l(d)("report.section.limit.description")), 1)
1087
- ]),
1088
- u(y, {
1089
- "model-value": t.value,
1090
- inputmode: "numeric",
1091
- placeholder: l(d)("report.section.limit.placeholder"),
1092
- "onUpdate:modelValue": g[0] || (g[0] = (p) => l(i)(p))
1093
- }, null, 8, ["model-value", "placeholder"])
1094
- ], 64);
1095
- };
1096
- }
1097
- }), zl = { class: "flex flex-col my-2 gap-8" }, Rl = { class: "fm-typo-en-body-lg-600" }, Ml = { class: "fm-typo-en-body-sm-600 text-fm-color-neutral-gray-400" }, Pl = { class: "fm-typo-en-body-lg-400 text-ellipsis overflow-hidden line-clamp-1" }, Al = /* @__PURE__ */ q({
1098
- __name: "ConditionSection",
1099
- props: /* @__PURE__ */ K({
1100
- joinFieldOptions: {
1101
- type: Array,
1102
- default: () => []
1103
- },
1104
- mainFieldOptions: {
1105
- type: Array,
1106
- default: () => []
1107
- },
1108
- label: {
1109
- type: String,
1110
- default: "title"
1111
- }
1112
- }, {
1113
- modelValue: { required: !0 },
1114
- modelModifiers: {}
1115
- }),
1116
- emits: ["update:modelValue"],
1117
- setup(x) {
1118
- const { t: d, te: t } = J(), i = ee(x, "modelValue"), a = x, g = T(() => d(`report.section.condition.${a.label}`)), y = H(!1), p = T(
1119
- () => i.value.map((n, e) => {
1120
- var c, v;
1121
- const m = a.joinFieldOptions.find(
1122
- (I) => {
1123
- var M, Q;
1124
- return I.schemaName === ((M = n.joinDimension) == null ? void 0 : M.schemaName) && I.name === ((Q = n.joinDimension) == null ? void 0 : Q.name);
1125
- }
1126
- ), r = (m == null ? void 0 : m.labels) || [
1127
- (c = n.joinDimension) == null ? void 0 : c.schemaName,
1128
- (v = n.joinDimension) == null ? void 0 : v.name
1129
- ];
1130
- return {
1131
- index: e,
1132
- label: r.map((I) => Y(d, t, I, "other")).join(" "),
1133
- value: n
1134
- };
1135
- })
1136
- ), V = H(i.value.length > 0 ? 0 : void 0);
1137
- function h(n) {
1138
- n ? (o.value = n != null && n.value ? JSON.parse(JSON.stringify(n.value)) : void 0, V.value = n == null ? void 0 : n.index) : (o.value = {
1139
- joinDimension: null,
1140
- operator: "",
1141
- mainDimensions: []
1142
- }, V.value = void 0), y.value = !0;
1143
- }
1144
- const o = H(void 0), s = T(
1145
- () => a.joinFieldOptions.find(
1146
- (n) => {
1147
- var e, m;
1148
- return n.schemaName === ((m = (e = o.value) == null ? void 0 : e.joinDimension) == null ? void 0 : m.schemaName) && n.name === o.value.joinDimension.name;
1149
- }
1150
- ) ?? {}
1151
- ), C = T(
1152
- () => {
1153
- var n;
1154
- return (((n = o.value) == null ? void 0 : n.mainDimensions) || []).map(
1155
- (e) => a.mainFieldOptions.find(
1156
- (m) => m.schemaName === (e == null ? void 0 : e.schemaName) && m.name === e.name
1157
- ) ?? {}
1158
- );
1159
- }
1160
- ), w = T(
1161
- () => a.joinFieldOptions.map((n) => ({ label: n.labels.join(" "), value: n }))
1162
- );
1163
- function O(n) {
1164
- var e, m, r, c;
1165
- o.value && (o.value && n.schemaName !== ((m = (e = o.value) == null ? void 0 : e.joinDimension) == null ? void 0 : m.schemaName) || n.name !== ((c = (r = o.value) == null ? void 0 : r.joinDimension) == null ? void 0 : c.name)) && (o.value = {
1166
- ...o.value,
1167
- joinDimension: {
1168
- schemaName: n.schemaName,
1169
- name: n.name,
1170
- option: n.dimensionOptions[0],
1171
- label: `_${n.label}`,
1172
- hide: !0
1173
- }
1174
- }, n.joinConditionOperators.includes(o.value.operator) || _(n.joinConditionOperators[0]));
1175
- }
1176
- function f(n, e) {
1177
- var m, r, c, v;
1178
- if (o.value && e >= 0 && (o.value && n.schemaName !== ((r = (m = o.value) == null ? void 0 : m.mainDimensions[e]) == null ? void 0 : r.schemaName) || n.name !== ((v = (c = o.value) == null ? void 0 : c.mainDimensions[e]) == null ? void 0 : v.name))) {
1179
- const I = [...o.value.mainDimensions];
1180
- I[e] = {
1181
- schemaName: n.schemaName,
1182
- name: n.name,
1183
- option: n.dimensionOptions[0],
1184
- label: n.label,
1185
- hide: !0
1186
- }, o.value = {
1187
- ...o.value,
1188
- mainDimensions: I
1189
- };
1190
- }
1191
- }
1192
- function _(n) {
1193
- if (o.value)
1194
- switch (n) {
1195
- case nl.Between:
1196
- o.value = {
1197
- ...o.value,
1198
- operator: n,
1199
- mainDimensions: [null, null]
1200
- };
1201
- break;
1202
- default:
1203
- o.value = {
1204
- ...o.value,
1205
- operator: n,
1206
- mainDimensions: [null]
1207
- };
1208
- break;
1209
- }
1210
- }
1211
- function L() {
1212
- const n = [...p.value.map((e) => e.value)];
1213
- o.value && (o.value.mainDimensions = o.value.mainDimensions.filter(
1214
- (e) => e !== "" && e != null
1215
- ), V.value !== void 0 ? n[V.value] = o.value : n.push(o.value)), i.value = n, y.value = !1;
1216
- }
1217
- function S(n) {
1218
- const e = [...p.value.map((m) => m.value)];
1219
- e.splice(n, 1), i.value = e;
1220
- }
1221
- return (n, e) => {
1222
- const m = k("FmMenuDivider"), r = k("FmForm"), c = k("FmIcon"), v = k("FmButton"), I = k("FmListItem"), M = k("FmList"), Q = k("FmField");
1223
- return b(), R("div", zl, [
1224
- u(fe, {
1225
- modelValue: y.value,
1226
- "onUpdate:modelValue": e[2] || (e[2] = (E) => y.value = E),
1227
- title: g.value,
1228
- onConfirm: L
1229
- }, {
1230
- content: N(() => [
1231
- u(r, {
1232
- ref: "form",
1233
- class: "flex flex-col gap-2 w-[490px]"
1234
- }, {
1235
- default: N(() => {
1236
- var E, X, G, te, $;
1237
- return [
1238
- u(Z, {
1239
- label: l(d)("report.section.condition.joinDatasource"),
1240
- "model-value": s.value,
1241
- items: w.value,
1242
- placeholder: l(d)("report.section.condition.joinDimension"),
1243
- "onUpdate:modelValue": e[0] || (e[0] = (P) => O(P))
1244
- }, null, 8, ["label", "model-value", "items", "placeholder"]),
1245
- u(m),
1246
- (E = o.value) != null && E.joinDimension && (((X = s.value) == null ? void 0 : X.dimensionOptions) || []).length > 0 ? (b(), D(Z, {
1247
- key: 0,
1248
- modelValue: o.value.joinDimension.option,
1249
- "onUpdate:modelValue": e[1] || (e[1] = (P) => o.value.joinDimension.option = P),
1250
- label: l(d)("report.section.condition.format"),
1251
- items: ((G = s.value) == null ? void 0 : G.dimensionOptions.map((P) => ({
1252
- label: l(t)(`report.section.filter.${l(me)(P)}`) ? l(d)(`report.section.filter.${l(me)(P)}`) : P,
1253
- value: P
1254
- }))) ?? []
1255
- }, null, 8, ["modelValue", "label", "items"])) : U("", !0),
1256
- o.value && (((te = s.value) == null ? void 0 : te.joinConditionOperators) || []).length > 0 ? (b(), D(Z, {
1257
- key: 1,
1258
- "model-value": o.value.operator,
1259
- label: l(d)("report.section.condition.operator"),
1260
- items: s.value.joinConditionOperators.map((P) => ({
1261
- label: l(d)("report.section.comparisonOperator." + P),
1262
- value: P
1263
- })) ?? [],
1264
- "onUpdate:modelValue": _
1265
- }, null, 8, ["model-value", "label", "items"])) : U("", !0),
1266
- (b(!0), R(oe, null, pe((($ = o.value) == null ? void 0 : $.mainDimensions) || [], (P, W) => {
1267
- var ae, B;
1268
- return b(), R("div", {
1269
- key: W,
1270
- class: "flex flex-col gap-2"
1271
- }, [
1272
- u(Z, {
1273
- "model-value": C.value[W],
1274
- label: l(d)("report.section.condition.mainDatasource", { index: W + 1 }),
1275
- items: a.mainFieldOptions.map((le) => ({
1276
- label: le.labels.join(" "),
1277
- value: le
1278
- })),
1279
- "onUpdate:modelValue": (le) => f(le, W)
1280
- }, null, 8, ["model-value", "label", "items", "onUpdate:modelValue"]),
1281
- P && (((ae = C.value[W]) == null ? void 0 : ae.dimensionOptions) || []).length > 0 && P ? (b(), D(Z, {
1282
- key: 0,
1283
- modelValue: P.option,
1284
- "onUpdate:modelValue": (le) => P.option = le,
1285
- items: (B = C.value[W]) == null ? void 0 : B.dimensionOptions.map((le) => ({
1286
- label: l(t)(`report.section.filter.${l(me)(le)}`) ? l(d)(`report.section.filter.${l(me)(le)}`) : le,
1287
- value: le
1288
- }))
1289
- }, null, 8, ["modelValue", "onUpdate:modelValue", "items"])) : U("", !0),
1290
- u(m)
1291
- ]);
1292
- }), 128))
1293
- ];
1294
- }),
1295
- _: 1
1296
- }, 512)
1297
- ]),
1298
- _: 1
1299
- }, 8, ["modelValue", "title"]),
1300
- F("div", null, [
1301
- F("p", Rl, j(g.value), 1),
1302
- F("p", Ml, j(l(d)("report.section.condition.description")), 1)
1303
- ]),
1304
- u(M, { class: "flex flex-col gap-2" }, {
1305
- default: N(() => [
1306
- u(l(we), {
1307
- list: i.value,
1308
- "item-key": (E) => {
1309
- var X, G;
1310
- return `${(X = E.joinDimension) == null ? void 0 : X.schemaName}:${(G = E.joinDimension) == null ? void 0 : G.name}`;
1311
- },
1312
- class: "flex flex-col gap-2 w-full"
1313
- }, {
1314
- item: N(({ element: E, index: X }) => [
1315
- u(I, {
1316
- class: "!cursor-grab border rounded-md border-neutral-300 h-[40px] !p-[8px]",
1317
- onClick: ne((G) => h(p.value[X]), ["stop"])
1318
- }, {
1319
- default: N(() => [
1320
- u(c, { name: "drag_handle" }),
1321
- F("p", Pl, j(p.value[X].label), 1),
1322
- e[4] || (e[4] = F("div", { class: "grow" }, null, -1)),
1323
- u(v, {
1324
- icon: "close",
1325
- size: "md",
1326
- variant: "tertiary",
1327
- onClick: ne((G) => S(X), ["stop"])
1328
- }, null, 8, ["onClick"])
1329
- ]),
1330
- _: 2
1331
- }, 1032, ["onClick"])
1332
- ]),
1333
- _: 1
1334
- }, 8, ["list", "item-key"])
1335
- ]),
1336
- _: 1
1337
- }),
1338
- u(Q, {
1339
- class: "text-fm-color-typo-tertiary cursor-pointer",
1340
- onClick: e[3] || (e[3] = (E) => h())
1341
- }, {
1342
- default: N(() => [
1343
- ve(j(l(d)("report.section.condition.add")), 1)
1344
- ]),
1345
- _: 1
1346
- })
1347
- ]);
1348
- };
1349
- }
1350
- }), Le = /* @__PURE__ */ q({
1351
- __name: "Datasource",
1352
- props: /* @__PURE__ */ K({
1353
- label: {
1354
- type: String,
1355
- default: "Label"
1356
- },
1357
- config: {
1358
- type: Object,
1359
- default: null
1360
- },
1361
- closeable: {
1362
- type: Boolean,
1363
- default: !1
1364
- },
1365
- mainDatasourceConfig: {
1366
- type: Object,
1367
- default: () => {
1368
- }
1369
- },
1370
- modelValue: {
1371
- type: Object,
1372
- default: () => {
1373
- }
1374
- }
1375
- }, {
1376
- modelValue: { required: !0 },
1377
- modelModifiers: {}
1378
- }),
1379
- emits: /* @__PURE__ */ K(["click-close"], ["update:modelValue"]),
1380
- setup(x, { emit: d }) {
1381
- const { disableEditMode: t, resetStore: i } = ye(), a = ee(x, "modelValue");
1382
- re(
1383
- [() => a.value.dimensions, () => a.value.metrics],
1384
- () => {
1385
- const { rowIds: n, columnIds: e } = Ve(a.value);
1386
- a.value.rowIds = n, a.value.columnIds = e;
1387
- },
1388
- { deep: !0 }
1389
- );
1390
- const g = x, y = d, { schemas: p } = de(Re());
1391
- qe(() => {
1392
- t(), i();
1393
- });
1394
- const { t: V, te: h, locale: o } = J(), s = T(() => !g.mainDatasourceConfig), C = T(
1395
- () => [z.BarChart, z.LineChart, z.Scorecard].includes(g.config.type)
1396
- ), w = T(() => {
1397
- const n = [...a.value.dimensions].filter((e) => !e.hide);
1398
- return n.sort(
1399
- (e, m) => (a.value.rowIds || []).indexOf(ce(e)) - (a.value.rowIds || []).indexOf(ce(m))
1400
- ), n;
1401
- }), O = T(() => g.config.type === z.Scorecard), f = T(
1402
- () => {
1403
- var n;
1404
- return (((n = g.mainDatasourceConfig) == null ? void 0 : n.schemaNames) || []).reduce(
1405
- (e, m) => {
1406
- const r = p.value.find((c) => c.name === m);
1407
- return r && (e = [
1408
- ...e,
1409
- ...r.fields.map((c) => ({
1410
- ...c,
1411
- labels: [
1412
- Y(V, h, r.label, "schema"),
1413
- Y(V, h, c.label || c.name, "other")
1414
- ]
1415
- }))
1416
- ]), e;
1417
- },
1418
- []
1419
- );
1420
- }
1421
- ), _ = T(
1422
- () => a.value.schemaNames.reduce((n, e) => {
1423
- const m = p.value.find((r) => r.name === e);
1424
- return m && (n = [
1425
- ...n,
1426
- ...m.fields.map((r) => ({
1427
- ...r,
1428
- labels: [
1429
- Y(V, h, m.label, "schema"),
1430
- Y(V, h, r.label || r.name, "other")
1431
- ]
1432
- }))
1433
- ]), n;
1434
- }, [])
1435
- ), L = T(() => [
1436
- { label: V("report.section.datasource.none"), value: null },
1437
- { label: V("report.section.datasource.grandTotal"), value: 0 },
1438
- ...[...w.value].slice(0, w.value.length - 1).map((n, e) => ({
1439
- label: Y(V, h, n.label, "other"),
1440
- value: e + 1
1441
- }))
1442
- ]), S = T(() => [
1443
- {
1444
- label: V("report.section.datasource.none"),
1445
- value: null
1446
- },
1447
- ...Object.keys(Ne).map((n) => ({
1448
- label: h(`report.section.datasource.periodType.${n}`) ? V(`report.section.datasource.periodType.${n}`) : n,
1449
- value: Ne[n]
1450
- }))
1451
- ]);
1452
- return (n, e) => {
1453
- const m = k("FmButton"), r = k("FmSwitch"), c = k("FmSelect");
1454
- return b(), D(ke, null, {
1455
- header: N(() => [
1456
- F("p", null, j(g.label), 1),
1457
- e[19] || (e[19] = F("div", { class: "grow" }, null, -1)),
1458
- g.closeable ? (b(), D(m, {
1459
- key: 0,
1460
- icon: "close",
1461
- variant: "tertiary",
1462
- size: "md",
1463
- onClick: e[0] || (e[0] = ne((v) => y("click-close"), ["stop"]))
1464
- })) : U("", !0)
1465
- ]),
1466
- content: N(() => [
1467
- u(yl, {
1468
- modelValue: a.value,
1469
- "onUpdate:modelValue": e[1] || (e[1] = (v) => a.value = v),
1470
- label: l(V)("report.section.schema.title")
1471
- }, null, 8, ["modelValue", "label"]),
1472
- u(xe, {
1473
- modelValue: a.value.dimensions,
1474
- "onUpdate:modelValue": e[2] || (e[2] = (v) => a.value.dimensions = v),
1475
- options: _.value,
1476
- config: a.value,
1477
- max: g.config.maxDimension,
1478
- "has-row-column": !0,
1479
- onConfig: e[3] || (e[3] = (v) => {
1480
- a.value = v;
1481
- })
1482
- }, null, 8, ["modelValue", "options", "config", "max"]),
1483
- u(r, {
1484
- "label-placement": "right",
1485
- label: l(V)("report.section.datasource.comparable"),
1486
- "model-value": a.value.isComparable ?? !1,
1487
- "onUpdate:modelValue": e[4] || (e[4] = (v) => {
1488
- a.value.isComparable = v;
1489
- })
1490
- }, null, 8, ["label", "model-value"]),
1491
- C.value ? (b(), D(r, {
1492
- key: 0,
1493
- "label-placement": "right",
1494
- label: l(V)("report.section.datasource.cumulative"),
1495
- "model-value": a.value.isCumulative ?? !1,
1496
- "onUpdate:modelValue": e[5] || (e[5] = (v) => {
1497
- a.value.isCumulative = v;
1498
- })
1499
- }, null, 8, ["label", "model-value"])) : U("", !0),
1500
- g.config.isDrillConfigurable && s.value ? (b(), D(r, {
1501
- key: 1,
1502
- label: l(V)("report.section.datasource.drill"),
1503
- "label-placement": "right",
1504
- "model-value": a.value.isDrillable ?? !1,
1505
- "onUpdate:modelValue": e[6] || (e[6] = (v) => {
1506
- a.value.isDrillable = v;
1507
- })
1508
- }, null, 8, ["label", "model-value"])) : U("", !0),
1509
- s.value ? (b(), D(r, {
1510
- key: 2,
1511
- modelValue: a.value.isBlend,
1512
- "onUpdate:modelValue": e[7] || (e[7] = (v) => a.value.isBlend = v),
1513
- label: l(V)("report.section.datasource.blend"),
1514
- "label-placement": "right"
1515
- }, null, 8, ["modelValue", "label"])) : U("", !0),
1516
- g.config.canRollup && s.value ? (b(), D(c, {
1517
- key: `rollup-${l(o)}`,
1518
- modelValue: a.value.rollup,
1519
- "onUpdate:modelValue": e[8] || (e[8] = (v) => a.value.rollup = v),
1520
- label: l(V)("report.section.datasource.subTotal"),
1521
- items: L.value
1522
- }, null, 8, ["modelValue", "label", "items"])) : U("", !0),
1523
- s.value ? U("", !0) : (b(), D(c, {
1524
- key: `periodType-${l(o)}`,
1525
- modelValue: a.value.periodType,
1526
- "onUpdate:modelValue": e[9] || (e[9] = (v) => a.value.periodType = v),
1527
- label: l(V)("report.section.datasource.periodType.label"),
1528
- items: S.value
1529
- }, null, 8, ["modelValue", "label", "items"])),
1530
- g.config.canTranspose && s.value ? (b(), D(r, {
1531
- key: 5,
1532
- modelValue: a.value.isTransposed,
1533
- "onUpdate:modelValue": e[10] || (e[10] = (v) => a.value.isTransposed = v),
1534
- label: l(V)("report.section.datasource.transpose"),
1535
- "label-placement": "right"
1536
- }, null, 8, ["modelValue", "label"])) : U("", !0),
1537
- g.config.hasBreakdownDimension ? (b(), D(xe, {
1538
- key: 6,
1539
- "model-value": a.value.breakdownDimension ? [a.value.breakdownDimension] : [],
1540
- label: "breakdownDimension",
1541
- max: 1,
1542
- options: _.value,
1543
- "onUpdate:modelValue": e[11] || (e[11] = (v) => {
1544
- a.value.breakdownDimension = v[0];
1545
- })
1546
- }, null, 8, ["model-value", "options"])) : U("", !0),
1547
- O.value ? (b(), D(xe, {
1548
- key: 7,
1549
- "model-value": a.value.sparklineDimension ? [a.value.sparklineDimension] : [],
1550
- label: "sparklineDimension",
1551
- max: 1,
1552
- options: _.value,
1553
- "onUpdate:modelValue": e[12] || (e[12] = (v) => {
1554
- a.value.sparklineDimension = v[0];
1555
- })
1556
- }, null, 8, ["model-value", "options"])) : U("", !0),
1557
- u($l, {
1558
- modelValue: a.value.metrics,
1559
- "onUpdate:modelValue": e[13] || (e[13] = (v) => a.value.metrics = v),
1560
- options: _.value,
1561
- max: g.config.maxMetric,
1562
- config: a.value,
1563
- "has-row-column": g.config.type === l(z).Table,
1564
- onConfig: e[14] || (e[14] = (v) => {
1565
- a.value = v;
1566
- })
1567
- }, null, 8, ["modelValue", "options", "max", "config", "has-row-column"]),
1568
- u(Ze, {
1569
- modelValue: a.value.filters,
1570
- "onUpdate:modelValue": e[15] || (e[15] = (v) => a.value.filters = v),
1571
- options: _.value
1572
- }, null, 8, ["modelValue", "options"]),
1573
- u(Ll, {
1574
- modelValue: a.value.sorts,
1575
- "onUpdate:modelValue": e[16] || (e[16] = (v) => a.value.sorts = v),
1576
- options: _.value
1577
- }, null, 8, ["modelValue", "options"]),
1578
- u(jl, {
1579
- modelValue: a.value.limit,
1580
- "onUpdate:modelValue": e[17] || (e[17] = (v) => a.value.limit = v)
1581
- }, null, 8, ["modelValue"]),
1582
- a.value.conditions ? (b(), D(Al, {
1583
- key: 8,
1584
- modelValue: a.value.conditions,
1585
- "onUpdate:modelValue": e[18] || (e[18] = (v) => a.value.conditions = v),
1586
- "join-field-options": _.value,
1587
- "main-field-options": f.value
1588
- }, null, 8, ["modelValue", "join-field-options", "main-field-options"])) : U("", !0)
1589
- ]),
1590
- _: 1
1591
- });
1592
- };
1593
- }
1594
- }), Xl = { class: "fm-typo-en-title-sm-600" }, _e = /* @__PURE__ */ q({
1595
- __name: "TileEditorTabHeader",
1596
- props: /* @__PURE__ */ K({
1597
- icon: {
1598
- type: String,
1599
- required: !0
1600
- }
1601
- }, {
1602
- modelValue: { type: Boolean, required: !0, default: !1 },
1603
- modelModifiers: {}
1604
- }),
1605
- emits: ["update:modelValue"],
1606
- setup(x) {
1607
- const { t: d } = J(), t = ee(x, "modelValue"), i = x;
1608
- return (a, g) => {
1609
- const y = k("FmIcon");
1610
- return b(), R("div", {
1611
- class: "px-6 py-16 flex items-center gap-2 bg-fm-color-neutral-white border cursor-pointer",
1612
- onClick: g[0] || (g[0] = (p) => t.value = !t.value)
1613
- }, [
1614
- F("p", Xl, j(l(d)("report.tile.setting")), 1),
1615
- g[1] || (g[1] = F("div", { class: "grow" }, null, -1)),
1616
- u(y, {
1617
- name: i.icon
1618
- }, null, 8, ["name"])
1619
- ]);
1620
- };
1621
- }
1622
- }), El = /* @__PURE__ */ q({
1623
- __name: "TileEditorTabDesktop",
1624
- props: {
1625
- modelValue: { required: !0, default: !1 },
1626
- modelModifiers: {}
1627
- },
1628
- emits: ["update:modelValue"],
1629
- setup(x) {
1630
- const d = ee(x, "modelValue");
1631
- return (t, i) => (b(), R(oe, null, [
1632
- u(_e, {
1633
- modelValue: d.value,
1634
- "onUpdate:modelValue": i[0] || (i[0] = (a) => d.value = a),
1635
- icon: "keyboard_double_arrow_left"
1636
- }, null, 8, ["modelValue"]),
1637
- Be(t.$slots, "default")
1638
- ], 64));
1639
- }
1640
- }), Wl = { class: "fixed bottom-0 w-full" }, ql = /* @__PURE__ */ q({
1641
- __name: "TileEditorTabMobile",
1642
- props: {
1643
- modelValue: { required: !0, default: !1 },
1644
- modelModifiers: {}
1645
- },
1646
- emits: ["update:modelValue"],
1647
- setup(x) {
1648
- const d = ee(x, "modelValue");
1649
- return (t, i) => {
1650
- const a = k("FmTopSheet");
1651
- return b(), R("div", Wl, [
1652
- u(_e, {
1653
- modelValue: d.value,
1654
- "onUpdate:modelValue": i[0] || (i[0] = (g) => d.value = g),
1655
- icon: "keyboard_double_arrow_up"
1656
- }, null, 8, ["modelValue"]),
1657
- u(a, {
1658
- modelValue: d.value,
1659
- "onUpdate:modelValue": i[2] || (i[2] = (g) => d.value = g),
1660
- "fullscreen-size": "sm"
1661
- }, {
1662
- default: N(() => [
1663
- u(_e, {
1664
- modelValue: d.value,
1665
- "onUpdate:modelValue": i[1] || (i[1] = (g) => d.value = g),
1666
- icon: "keyboard_double_arrow_down"
1667
- }, null, 8, ["modelValue"]),
1668
- d.value ? Be(t.$slots, "default", { key: 0 }) : U("", !0)
1669
- ]),
1670
- _: 3
1671
- }, 8, ["modelValue"])
1672
- ]);
1673
- };
1674
- }
1675
- }), Hl = { class: "flex gap-16" }, Yl = { class: "flex flex-col gap-8 max-w-[120px]" }, Gl = { class: "fm-typo-en-body-lg-600" }, Jl = { class: "flex flex-col gap-16" }, Kl = { class: "fm-typo-en-body-lg-600" }, Ql = { class: "flex flex-row gap-8" }, Zl = /* @__PURE__ */ q({
1676
- __name: "TitleSection",
1677
- props: {
1678
- model: {}
1679
- },
1680
- emits: ["update:model"],
1681
- setup(x, { emit: d }) {
1682
- const t = x, i = d, { t: a } = J(), g = T({
1683
- get: () => t.model.showTitle ?? !1,
1684
- set: (o) => i("update:model", { ...t.model, showTitle: o })
1685
- }), y = T({
1686
- get: () => t.model.titleFontSize ?? 14,
1687
- set: (o) => i("update:model", { ...t.model, titleFontSize: Math.min(Number(o), 24) })
1688
- }), p = T({
1689
- get: () => t.model.titleBold ?? !1,
1690
- set: (o) => i("update:model", { ...t.model, titleBold: o })
1691
- }), V = T({
1692
- get: () => t.model.titleItalic ?? !1,
1693
- set: (o) => i("update:model", { ...t.model, titleItalic: o })
1694
- }), h = T({
1695
- get: () => t.model.titleUnderline ?? !1,
1696
- set: (o) => i("update:model", { ...t.model, titleUnderline: o })
1697
- });
1698
- return (o, s) => {
1699
- const C = k("FmStepperField"), w = k("FmButton"), O = k("FmSwitch");
1700
- return b(), R(oe, null, [
1701
- F("div", null, [
1702
- F("div", Hl, [
1703
- F("div", Yl, [
1704
- F("p", Gl, j(l(a)("report.section.datasource.title.titleFontSize")), 1),
1705
- u(C, {
1706
- modelValue: y.value,
1707
- "onUpdate:modelValue": s[0] || (s[0] = (f) => y.value = f),
1708
- max: 24,
1709
- min: 1,
1710
- type: "number"
1711
- }, null, 8, ["modelValue"])
1712
- ]),
1713
- F("div", Jl, [
1714
- F("p", Kl, j(l(a)("report.section.datasource.title.textStyleFormat")), 1),
1715
- F("div", Ql, [
1716
- u(w, {
1717
- "append-icon": "format_bold",
1718
- "model-value": o.model.titleBold ?? !1,
1719
- variant: "tertiary",
1720
- "icon-color": o.model.titleBold ? "neutral-gray-400" : "neutral-gray-300",
1721
- "bg-color": o.model.titleBold ? "neutral-gray-100" : "neutral-white",
1722
- class: "rounded-sm",
1723
- onClick: s[1] || (s[1] = (f) => p.value = !p.value)
1724
- }, null, 8, ["model-value", "icon-color", "bg-color"]),
1725
- u(w, {
1726
- "append-icon": "format_italic",
1727
- "model-value": o.model.titleItalic ?? !1,
1728
- "icon-color": o.model.titleItalic ? "neutral-gray-400" : "neutral-gray-300",
1729
- "bg-color": o.model.titleItalic ? "neutral-gray-100" : "neutral-white",
1730
- class: "rounded-sm",
1731
- onClick: s[2] || (s[2] = (f) => V.value = !V.value)
1732
- }, null, 8, ["model-value", "icon-color", "bg-color"]),
1733
- u(w, {
1734
- "append-icon": "format_underlined",
1735
- "model-value": o.model.titleUnderline ?? !1,
1736
- "icon-color": o.model.titleUnderline ? "neutral-gray-400" : "neutral-gray-300",
1737
- "bg-color": o.model.titleUnderline ? "neutral-gray-100" : "neutral-white",
1738
- class: "rounded-sm",
1739
- onClick: s[3] || (s[3] = (f) => h.value = !h.value)
1740
- }, null, 8, ["model-value", "icon-color", "bg-color"])
1741
- ])
1742
- ])
1743
- ])
1744
- ]),
1745
- u(O, {
1746
- modelValue: g.value,
1747
- "onUpdate:modelValue": s[4] || (s[4] = (f) => g.value = f),
1748
- label: l(a)("report.section.datasource.title.showTitle"),
1749
- "label-placement": "right"
1750
- }, null, 8, ["modelValue", "label"])
1751
- ], 64);
1752
- };
1753
- }
1754
- }), eo = { class: "flex flex-col gap-8" }, lo = { class: "text-fm-color-typo-primary fm-typo-en-body-lg-600" }, oo = { class: "flex flex-row gap-2" }, to = {
1755
- key: 0,
1756
- class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
1757
- }, ao = /* @__PURE__ */ q({
1758
- __name: "TableResizeSection",
1759
- props: {
1760
- layout: {}
1761
- },
1762
- emits: ["update:layout"],
1763
- setup(x, { emit: d }) {
1764
- const { t } = J(), i = x, a = d, { isEditing: g, colWidths: y, rowHeight: p } = de(ye()), { enableCellResizing: V, cancelResizingChanges: h, resetStore: o, disableEditMode: s } = ye();
1765
- T(
1766
- () => {
1767
- var w, O, f;
1768
- return (((O = (w = i.layout) == null ? void 0 : w.colWidths) == null ? void 0 : O.length) ?? 0) > 0 || y.value.length > 0 || (((f = i.layout) == null ? void 0 : f.rowHeight) ?? 0) > 0 || p.value > 0;
1769
- }
1770
- );
1771
- function C() {
1772
- o(), s(), a("update:layout", {
1773
- ...i.layout,
1774
- rowHeight: void 0,
1775
- colWidths: void 0
1776
- });
1777
- const w = document.querySelector("table");
1778
- if (w) {
1779
- w.classList.remove("table-fixed"), w.classList.add("table-auto"), w.style.width = "";
1780
- const O = w.querySelectorAll("th"), f = w.querySelectorAll("td"), _ = w.querySelectorAll("tr");
1781
- O.forEach((L) => {
1782
- L.style.width = "";
1783
- }), f.forEach((L) => {
1784
- L.style.width = "";
1785
- }), _.forEach((L) => {
1786
- L.style.height = "";
1787
- });
1788
- }
1789
- }
1790
- return Se(() => {
1791
- var w, O;
1792
- ((w = i.layout) == null ? void 0 : w.rowHeight) !== void 0 && (p.value = i.layout.rowHeight), (O = i.layout) != null && O.colWidths && (y.value = [...i.layout.colWidths]);
1793
- }), (w, O) => {
1794
- const f = k("FmButton");
1795
- return b(), R("div", eo, [
1796
- F("p", lo, j(l(t)("report.section.datasource.tableLayout")), 1),
1797
- F("div", oo, [
1798
- l(g) ? U("", !0) : (b(), D(f, {
1799
- key: 0,
1800
- label: l(t)("report.section.datasource.resizeTable"),
1801
- variant: "secondary",
1802
- icon: "resize",
1803
- "icon-position": "prepend",
1804
- class: "[&_.label]:line-clamp-none w-full",
1805
- onClick: l(V)
1806
- }, null, 8, ["label", "onClick"])),
1807
- l(g) ? (b(), D(f, {
1808
- key: 1,
1809
- label: l(t)("report.common.cancel"),
1810
- variant: "primary",
1811
- icon: "close",
1812
- "icon-position": "prepend",
1813
- class: "[&_.label]:line-clamp-none w-full",
1814
- onClick: l(h)
1815
- }, null, 8, ["label", "onClick"])) : U("", !0),
1816
- u(f, {
1817
- label: l(t)("report.section.datasource.resetSize"),
1818
- variant: "secondary",
1819
- icon: "restore",
1820
- "icon-position": "prepend",
1821
- class: "[&_.label]:line-clamp-none w-full",
1822
- onClick: C
1823
- }, null, 8, ["label"])
1824
- ]),
1825
- l(g) ? (b(), R("p", to, j(l(t)("report.section.datasource.resizeTableHelper")), 1)) : U("", !0)
1826
- ]);
1827
- };
1828
- }
1829
- }), no = { class: "flex gap-16 justify-center items-center" }, io = { class: "fm-typo-en-title-sm-600" }, so = { class: "fm-typo-en-body-lg-600" }, uo = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, ro = { class: "h-[40x]" }, Ie = "YYYY-MM-DD", We = /* @__PURE__ */ q({
1830
- __name: "TileEditorTab",
1831
- props: /* @__PURE__ */ K({
1832
- hideConfiguration: {
1833
- type: Boolean,
1834
- default: !1
1835
- }
1836
- }, {
1837
- modelValue: {
1838
- required: !0
1839
- },
1840
- modelModifiers: {}
1841
- }),
1842
- emits: /* @__PURE__ */ K(["hideConfiguration"], ["update:modelValue"]),
1843
- setup(x, { emit: d }) {
1844
- var m, r;
1845
- const t = Pe(), { dateRange: i, timezone: a } = de(t), g = {
1846
- startDate: i.value.startDate,
1847
- endDate: i.value.endDate
1848
- }, y = H({
1849
- startDate: (m = ge(i.value.startDate)) == null ? void 0 : m.tz(a.value).format(Ie),
1850
- endDate: (r = ge(i.value.endDate)) == null ? void 0 : r.tz(a.value).format(Ie)
1851
- });
1852
- re(
1853
- y,
1854
- () => {
1855
- y.value.endDate || (y.value.endDate = y.value.startDate);
1856
- const c = {
1857
- startDate: ge.tz(y.value.startDate, a.value).startOf("day").utc().toISOString(),
1858
- endDate: ge.tz(y.value.endDate, a.value).endOf("day").utc().toISOString()
1859
- };
1860
- i.value = c;
1861
- },
1862
- { deep: !0 }
1863
- ), He(() => {
1864
- i.value = { ...g };
1865
- });
1866
- const p = ee(x, "modelValue"), { breakpoints: V } = Ae(), h = x, { promptMessage: o } = Me(), s = d, { t: C, locale: w } = J();
1867
- function O(c) {
1868
- p.value = kl(c);
1869
- }
1870
- function f() {
1871
- const c = [...p.value.widget.config.joinDatasources || []];
1872
- c.push({ ...ll(p.value.widget.type), conditions: [] }), O({
1873
- ...p.value,
1874
- widget: {
1875
- ...p.value.widget,
1876
- config: {
1877
- ...p.value.widget.config,
1878
- joinDatasources: c
1879
- }
1880
- }
1881
- });
1882
- }
1883
- async function _(c) {
1884
- if (!await o({
1885
- title: C("report.tile.datasource.remove"),
1886
- message: C("report.tile.datasource.confirmRemove", { index: c + 1 })
1887
- })) return;
1888
- const I = [...p.value.widget.config.joinDatasources || []];
1889
- I.splice(c, 1), O({
1890
- ...p.value,
1891
- widget: {
1892
- ...p.value.widget,
1893
- config: {
1894
- ...p.value.widget.config,
1895
- joinDatasources: I
1896
- }
1897
- }
1898
- });
1899
- }
1900
- const L = (c, v) => {
1901
- let I = 1, M = 1;
1902
- switch (c) {
1903
- case z.Scorecard:
1904
- I = 1, M = 2;
1905
- break;
1906
- case z.BarChart:
1907
- case z.StackBarChart:
1908
- case z.LineChart:
1909
- case z.StackLineChart:
1910
- I = 4, M = 6;
1911
- break;
1912
- case z.Table:
1913
- I = 4, M = 12;
1914
- break;
1915
- case z.Circular:
1916
- I = 4, M = 4;
1917
- break;
1918
- case z.Spacer:
1919
- I = 0, M = 12;
1920
- break;
1921
- }
1922
- return {
1923
- id: v.id,
1924
- size: {
1925
- height: I,
1926
- width: M
1927
- },
1928
- widget: {
1929
- ...v.widget,
1930
- type: c
1931
- }
1932
- };
1933
- }, S = T(
1934
- () => Fe.find((c) => c.type === p.value.widget.type)
1935
- ), n = T(() => p.value.widget.config.joinDatasources), e = he((c) => {
1936
- p.value.widget.title = c;
1937
- }, 500);
1938
- return re(
1939
- () => p.value.size.height,
1940
- (c) => {
1941
- c < 1 && (p.value.size.height = 1), c > 12 && (p.value.size.height = 12);
1942
- }
1943
- ), re(
1944
- () => p.value.size.width,
1945
- (c) => {
1946
- c < 1 && (p.value.size.width = 1), c > 12 && (p.value.size.width = 12);
1947
- }
1948
- ), (c, v) => {
1949
- const I = k("FmCircularProgress"), M = k("FmSimpleDateRangePicker"), Q = k("FmTextField"), E = k("FmTextarea"), X = k("FmStepperField"), G = k("FmButton"), te = k("FmForm");
1950
- return b(), D(je(l(V).lg || l(V).md ? El : ql), {
1951
- "model-value": h.hideConfiguration,
1952
- "onUpdate:modelValue": v[9] || (v[9] = ($) => s("hideConfiguration", $))
1953
- }, {
1954
- default: N(() => [
1955
- p.value ? (b(), D(te, {
1956
- key: 1,
1957
- ref: "form",
1958
- class: "px-6 py-16 flex flex-col gap-24 overflow-y-auto overflow-x-hidden"
1959
- }, {
1960
- default: N(() => [
1961
- F("div", no, [
1962
- (b(), D(M, {
1963
- key: `date-picker-${l(w)}`,
1964
- modelValue: y.value,
1965
- "onUpdate:modelValue": v[0] || (v[0] = ($) => y.value = $)
1966
- }, null, 8, ["modelValue"]))
1967
- ]),
1968
- u(ke, null, {
1969
- header: N(() => [
1970
- F("p", io, j(l(C)("report.tile.widget.details")), 1),
1971
- v[10] || (v[10] = F("div", { class: "grow" }, null, -1))
1972
- ]),
1973
- content: N(() => [
1974
- u(Q, {
1975
- "model-value": p.value.widget.title,
1976
- label: l(C)("report.tile.widget.title"),
1977
- placeholder: l(C)("report.tile.widget.titlePlaceholder"),
1978
- "onUpdate:modelValue": l(e)
1979
- }, null, 8, ["model-value", "label", "placeholder", "onUpdate:modelValue"]),
1980
- u(E, {
1981
- modelValue: p.value.widget.description,
1982
- "onUpdate:modelValue": v[1] || (v[1] = ($) => p.value.widget.description = $),
1983
- disabled: p.value.widget.title === "",
1984
- placeholder: l(C)("report.tile.widget.descriptionPlaceholder"),
1985
- "helper-text": l(C)("report.tile.widget.descriptionHelper")
1986
- }, {
1987
- label: N(() => [
1988
- F("p", so, j(l(C)("report.tile.widget.widgetDescription")), 1),
1989
- F("p", uo, " (" + j(l(C)("report.tile.widget.optional")) + ") ", 1)
1990
- ]),
1991
- _: 1
1992
- }, 8, ["modelValue", "disabled", "placeholder", "helper-text"]),
1993
- u(Zl, {
1994
- model: p.value.widget.config,
1995
- "onUpdate:model": v[2] || (v[2] = ($) => p.value.widget.config = $)
1996
- }, null, 8, ["model"]),
1997
- F("div", {
1998
- class: ze(["flex flex-row", `${l(V).sm || l(V).xs ? "gap-16" : "gap-2"}`])
1999
- }, [
2000
- u(X, {
2001
- modelValue: p.value.size.width,
2002
- "onUpdate:modelValue": v[3] || (v[3] = ($) => p.value.size.width = $),
2003
- label: l(C)("report.tile.widget.width"),
2004
- min: 1,
2005
- max: 12
2006
- }, null, 8, ["modelValue", "label"]),
2007
- u(X, {
2008
- modelValue: p.value.size.height,
2009
- "onUpdate:modelValue": v[4] || (v[4] = ($) => p.value.size.height = $),
2010
- label: l(C)("report.tile.widget.height"),
2011
- min: 1,
2012
- max: 12,
2013
- disabled: p.value.widget.type === l(z).Scorecard
2014
- }, null, 8, ["modelValue", "label", "disabled"])
2015
- ], 2),
2016
- p.value.widget.type === l(z).Table ? (b(), D(ao, {
2017
- key: 0,
2018
- layout: p.value.widget.config,
2019
- "onUpdate:layout": v[5] || (v[5] = ($) => p.value.widget.config = $)
2020
- }, null, 8, ["layout"])) : U("", !0)
2021
- ]),
2022
- _: 1
2023
- }),
2024
- u(ke, null, {
2025
- header: N(() => [
2026
- F("p", null, j(l(C)("report.tile.widget.type")), 1),
2027
- v[11] || (v[11] = F("div", { class: "grow" }, null, -1))
2028
- ]),
2029
- content: N(() => [
2030
- u(el, {
2031
- "is-list": !0,
2032
- "model-value": p.value.widget.type,
2033
- class: "grid grid-cols-1 gap-2",
2034
- "child-class": "flex flex-row p-[8px] gap-2",
2035
- "exclude-widge-type": [l(z).Spacer],
2036
- "onUpdate:modelValue": v[6] || (v[6] = ($) => p.value = L($, p.value))
2037
- }, null, 8, ["model-value", "exclude-widge-type"])
2038
- ]),
2039
- _: 1
2040
- }),
2041
- u(Le, {
2042
- modelValue: p.value.widget.config,
2043
- "onUpdate:modelValue": v[7] || (v[7] = ($) => p.value.widget.config = $),
2044
- label: l(C)("report.tile.datasource.main"),
2045
- config: S.value
2046
- }, null, 8, ["modelValue", "label", "config"]),
2047
- n.value ? (b(!0), R(oe, { key: 0 }, pe(n.value, ($, P) => (b(), R("div", { key: P }, [
2048
- u(Le, {
2049
- modelValue: n.value[P],
2050
- "onUpdate:modelValue": (W) => n.value[P] = W,
2051
- label: l(C)("report.tile.datasource.join", { index: P + 1 }),
2052
- config: S.value,
2053
- "main-datasource-config": p.value.widget.config,
2054
- closeable: !0,
2055
- onClickClose: (W) => _(P)
2056
- }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "config", "main-datasource-config", "onClickClose"])
2057
- ]))), 128)) : U("", !0),
2058
- F("div", ro, [
2059
- u(G, {
2060
- label: l(C)("report.tile.datasource.joinButton"),
2061
- variant: "secondary",
2062
- icon: "add",
2063
- "icon-position": "prepend",
2064
- "border-color": "primary",
2065
- "text-color": "primary",
2066
- class: "w-full",
2067
- onClick: v[8] || (v[8] = ($) => f())
2068
- }, null, 8, ["label"])
2069
- ])
2070
- ]),
2071
- _: 1
2072
- }, 512)) : (b(), D(I, { key: 0 }))
2073
- ]),
2074
- _: 1
2075
- }, 8, ["model-value"]);
2076
- };
2077
- }
2078
- }), mo = { class: "flex flex-col gap-8" }, co = { class: "pl-32 flex flex-col gap-8" }, po = { class: "fm-typo-en-body-lg-600" }, vo = { class: "flex flex-row gap-8" }, fo = { class: "fm-typo-en-body-lg-600" }, go = { class: "flex flex-row gap-8" }, bo = /* @__PURE__ */ q({
2079
- __name: "LabelSection",
2080
- props: {
2081
- model: {}
2082
- },
2083
- emits: ["update:model"],
2084
- setup(x, { emit: d }) {
2085
- const t = x, i = d, { t: a } = J(), g = T({
2086
- get: () => t.model.showLabel ?? !1,
2087
- set: (w) => {
2088
- i("update:model", { ...t.model, showLabel: w });
2089
- }
2090
- }), y = T({
2091
- get: () => t.model.labelRotation ?? 0,
2092
- set: (w) => i("update:model", { ...t.model, labelRotation: w })
2093
- }), p = T({
2094
- get: () => t.model.labelOffset ?? 0,
2095
- set: (w) => i("update:model", { ...t.model, labelOffset: w })
2096
- }), V = T({
2097
- get: () => t.model.labelFontSize ?? 12,
2098
- set: (w) => i("update:model", { ...t.model, labelFontSize: w })
2099
- }), h = (w) => {
2100
- i("update:model", {
2101
- ...t.model,
2102
- labelAlign: t.model.labelAlign === w ? void 0 : w
2103
- });
2104
- }, o = (w) => {
2105
- i("update:model", {
2106
- ...t.model,
2107
- labelAnchor: t.model.labelAnchor === w ? void 0 : w
2108
- });
2109
- }, s = [
2110
- { icon: "align_horizontal_left", value: ie.left, tooltip: "alignLeft" },
2111
- { icon: "align_justify_center", value: ie.center, tooltip: "alignCenter" },
2112
- { icon: "align_horizontal_right", value: ie.right, tooltip: "alignRight" },
2113
- { icon: "align_justify_flex_start", value: ie.start, tooltip: "alignStart" },
2114
- { icon: "align_justify_flex_end", value: ie.end, tooltip: "alignEnd" },
2115
- { icon: "align_flex_start", value: ie.top, tooltip: "alignTop" },
2116
- { icon: "align_flex_end", value: ie.bottom, tooltip: "alignBottom" }
2117
- ], C = [
2118
- { icon: "format_align_left", value: be.start, tooltip: "anchorStart" },
2119
- { icon: "format_align_center", value: be.center, tooltip: "anchorCenter" },
2120
- { icon: "format_align_right", value: be.end, tooltip: "anchorEnd" }
2121
- ];
2122
- return (w, O) => {
2123
- const f = k("FmCheckbox"), _ = k("FmButton"), L = k("FmTooltip"), S = k("FmTextField"), n = k("FmStepperField");
2124
- return b(), R("div", mo, [
2125
- u(f, {
2126
- modelValue: g.value,
2127
- "onUpdate:modelValue": O[0] || (O[0] = (e) => g.value = e),
2128
- value: !1,
2129
- label: l(a)("report.section.datasource.label.showLabel"),
2130
- "label-placement": "right",
2131
- class: "fm-typo-en-body-lg-400"
2132
- }, null, 8, ["modelValue", "label"]),
2133
- se(F("div", co, [
2134
- F("p", po, j(l(a)("report.section.datasource.alignment.textAlignment")), 1),
2135
- F("div", vo, [
2136
- (b(), R(oe, null, pe(s, ({ icon: e, value: m, tooltip: r }) => u(L, {
2137
- key: m,
2138
- variant: "plain",
2139
- placement: "top",
2140
- content: l(a)(`report.section.datasource.alignment.alignOptions.${r}`),
2141
- "z-index": 50
2142
- }, {
2143
- default: N(() => [
2144
- u(_, {
2145
- "append-icon": e,
2146
- variant: "tertiary",
2147
- "icon-color": w.model.labelAlign === m ? "neutral-gray-400" : "neutral-gray-300",
2148
- "bg-color": w.model.labelAlign === m ? "neutral-gray-100" : "neutral-white",
2149
- class: "rounded-sm",
2150
- onClick: (c) => h(m)
2151
- }, null, 8, ["append-icon", "icon-color", "bg-color", "onClick"])
2152
- ]),
2153
- _: 2
2154
- }, 1032, ["content"])), 64))
2155
- ]),
2156
- F("p", fo, j(l(a)("report.section.datasource.alignment.anchor")), 1),
2157
- F("div", go, [
2158
- (b(), R(oe, null, pe(C, ({ icon: e, value: m, tooltip: r }) => u(L, {
2159
- key: m,
2160
- variant: "plain",
2161
- placement: "top",
2162
- content: l(a)(`report.section.datasource.alignment.anchorOptions.${r}`),
2163
- "z-index": 50
2164
- }, {
2165
- default: N(() => [
2166
- u(_, {
2167
- "append-icon": e,
2168
- variant: "tertiary",
2169
- "icon-color": w.model.labelAnchor === m ? "neutral-gray-400" : "neutral-gray-300",
2170
- "bg-color": w.model.labelAnchor === m ? "neutral-gray-100" : "neutral-white",
2171
- class: "rounded-sm",
2172
- onClick: (c) => o(m)
2173
- }, null, 8, ["append-icon", "icon-color", "bg-color", "onClick"])
2174
- ]),
2175
- _: 2
2176
- }, 1032, ["content"])), 64))
2177
- ]),
2178
- u(S, {
2179
- modelValue: y.value,
2180
- "onUpdate:modelValue": O[1] || (O[1] = (e) => y.value = e),
2181
- label: l(a)("report.section.datasource.alignment.rotation"),
2182
- type: "number",
2183
- min: -180,
2184
- max: 180,
2185
- step: 1
2186
- }, null, 8, ["modelValue", "label"]),
2187
- u(S, {
2188
- modelValue: p.value,
2189
- "onUpdate:modelValue": O[2] || (O[2] = (e) => p.value = e),
2190
- label: l(a)("report.section.datasource.alignment.offset"),
2191
- type: "number"
2192
- }, null, 8, ["modelValue", "label"]),
2193
- u(n, {
2194
- modelValue: V.value,
2195
- "onUpdate:modelValue": O[3] || (O[3] = (e) => V.value = e),
2196
- label: l(a)("report.section.datasource.fontSize"),
2197
- type: "number",
2198
- min: 1
2199
- }, null, 8, ["modelValue", "label"])
2200
- ], 512), [
2201
- [ue, g.value]
2202
- ])
2203
- ]);
2204
- };
2205
- }
2206
- }), yo = { class: "flex flex-col gap-8" }, ho = { class: "pl-32 flex flex-col gap-8" }, Vo = { class: "pl-32 flex flex-col gap-8" }, wo = { class: "pl-32 flex flex-col gap-8" }, Fo = { class: "pl-32 flex flex-col gap-8" }, xo = { class: "pl-32 flex flex-col gap-8" }, ko = { class: "pl-32 flex flex-col gap-8" }, Co = /* @__PURE__ */ q({
2207
- __name: "XySection",
2208
- props: {
2209
- model: {}
2210
- },
2211
- emits: ["update:model"],
2212
- setup(x, { emit: d }) {
2213
- const t = x, i = d, { t: a } = J(), g = T({
2214
- get: () => t.model.showX ?? !0,
2215
- set: (f) => {
2216
- i("update:model", { ...t.model, showX: f });
2217
- }
2218
- }), y = T({
2219
- get: () => t.model.showXGrid ?? !1,
2220
- set: (f) => {
2221
- i("update:model", { ...t.model, showXGrid: f });
2222
- }
2223
- }), p = T({
2224
- get: () => t.model.showXTick ?? !0,
2225
- set: (f) => {
2226
- i("update:model", { ...t.model, showXTick: f });
2227
- }
2228
- }), V = T({
2229
- get: () => t.model.showY ?? !0,
2230
- set: (f) => {
2231
- i("update:model", { ...t.model, showY: f });
2232
- }
2233
- }), h = T({
2234
- get: () => t.model.showYGrid ?? !0,
2235
- set: (f) => {
2236
- i("update:model", { ...t.model, showYGrid: f });
2237
- }
2238
- }), o = T({
2239
- get: () => t.model.showYTick ?? !0,
2240
- set: (f) => {
2241
- i("update:model", { ...t.model, showYTick: f });
2242
- }
2243
- }), s = T({
2244
- get: () => t.model.showXTitle ?? !1,
2245
- set: (f) => {
2246
- i("update:model", { ...t.model, showXTitle: f });
2247
- }
2248
- }), C = T({
2249
- get: () => t.model.showYTitle ?? !1,
2250
- set: (f) => {
2251
- i("update:model", { ...t.model, showYTitle: f });
2252
- }
2253
- }), w = he((f) => {
2254
- i("update:model", { ...t.model, xTitle: f });
2255
- }, 500), O = he((f) => {
2256
- i("update:model", { ...t.model, yTitle: f });
2257
- }, 500);
2258
- return Se(() => {
2259
- var f, _, L, S;
2260
- !t.model.xTitle && ((_ = (f = t.model.metrics) == null ? void 0 : f[0]) != null && _.label) && w(t.model.metrics[0].label), !t.model.yTitle && ((S = (L = t.model.dimensions) == null ? void 0 : L[0]) != null && S.label) && O(t.model.dimensions[0].label);
2261
- }), (f, _) => {
2262
- const L = k("FmCheckbox"), S = k("FmStepperField"), n = k("FmTextField");
2263
- return b(), R("div", yo, [
2264
- u(L, {
2265
- modelValue: g.value,
2266
- "onUpdate:modelValue": _[0] || (_[0] = (e) => g.value = e),
2267
- label: l(a)("report.section.datasource.axis.showX"),
2268
- "label-placement": "right",
2269
- value: !0
2270
- }, null, 8, ["modelValue", "label"]),
2271
- se(F("div", ho, [
2272
- u(L, {
2273
- modelValue: y.value,
2274
- "onUpdate:modelValue": _[1] || (_[1] = (e) => y.value = e),
2275
- label: l(a)("report.section.datasource.axis.showGrid"),
2276
- "label-placement": "right",
2277
- value: !1
2278
- }, null, 8, ["modelValue", "label"]),
2279
- u(L, {
2280
- modelValue: p.value,
2281
- "onUpdate:modelValue": _[2] || (_[2] = (e) => p.value = e),
2282
- label: l(a)("report.section.datasource.axis.showTick"),
2283
- "label-placement": "right",
2284
- value: !0
2285
- }, null, 8, ["modelValue", "label"]),
2286
- se(F("div", Vo, [
2287
- u(S, {
2288
- label: l(a)("report.section.datasource.fontSize"),
2289
- type: "number",
2290
- "model-value": f.model.xTickFontSize ?? 12,
2291
- min: 1,
2292
- "onUpdate:modelValue": _[3] || (_[3] = (e) => {
2293
- i("update:model", { ...f.model, xTickFontSize: Number(e) });
2294
- })
2295
- }, null, 8, ["label", "model-value"])
2296
- ], 512), [
2297
- [ue, f.model.showXTick ?? !0]
2298
- ]),
2299
- u(L, {
2300
- modelValue: s.value,
2301
- "onUpdate:modelValue": _[4] || (_[4] = (e) => s.value = e),
2302
- label: l(a)("report.section.datasource.axis.showTitle"),
2303
- "label-placement": "right",
2304
- value: !0
2305
- }, null, 8, ["modelValue", "label"]),
2306
- se(F("div", wo, [
2307
- u(n, {
2308
- "model-value": f.model.xTitle,
2309
- label: l(a)("report.common.title"),
2310
- placeholder: l(a)("report.tile.widget.titlePlaceholder"),
2311
- "onUpdate:modelValue": l(w)
2312
- }, null, 8, ["model-value", "label", "placeholder", "onUpdate:modelValue"]),
2313
- u(S, {
2314
- label: l(a)("report.section.datasource.fontSize"),
2315
- type: "number",
2316
- "model-value": f.model.xTitleFontSize ?? 12,
2317
- min: 1,
2318
- "onUpdate:modelValue": _[5] || (_[5] = (e) => {
2319
- i("update:model", { ...f.model, xTitleFontSize: Number(e) });
2320
- })
2321
- }, null, 8, ["label", "model-value"])
2322
- ], 512), [
2323
- [ue, s.value]
2324
- ])
2325
- ], 512), [
2326
- [ue, f.model.showX ?? !0]
2327
- ]),
2328
- u(L, {
2329
- modelValue: V.value,
2330
- "onUpdate:modelValue": _[6] || (_[6] = (e) => V.value = e),
2331
- label: l(a)("report.section.datasource.axis.showY"),
2332
- "label-placement": "right",
2333
- value: !0
2334
- }, null, 8, ["modelValue", "label"]),
2335
- se(F("div", Fo, [
2336
- u(L, {
2337
- modelValue: h.value,
2338
- "onUpdate:modelValue": _[7] || (_[7] = (e) => h.value = e),
2339
- label: l(a)("report.section.datasource.axis.showGrid"),
2340
- "label-placement": "right",
2341
- value: !1
2342
- }, null, 8, ["modelValue", "label"]),
2343
- u(L, {
2344
- modelValue: o.value,
2345
- "onUpdate:modelValue": _[8] || (_[8] = (e) => o.value = e),
2346
- label: l(a)("report.section.datasource.axis.showTick"),
2347
- "label-placement": "right",
2348
- value: !0
2349
- }, null, 8, ["modelValue", "label"]),
2350
- se(F("div", xo, [
2351
- u(S, {
2352
- label: l(a)("report.section.datasource.fontSize"),
2353
- type: "number",
2354
- "model-value": f.model.yTickFontSize ?? 12,
2355
- min: 1,
2356
- "onUpdate:modelValue": _[9] || (_[9] = (e) => {
2357
- i("update:model", { ...f.model, yTickFontSize: Number(e) });
2358
- })
2359
- }, null, 8, ["label", "model-value"])
2360
- ], 512), [
2361
- [ue, f.model.showYTick ?? !0]
2362
- ]),
2363
- u(L, {
2364
- modelValue: C.value,
2365
- "onUpdate:modelValue": _[10] || (_[10] = (e) => C.value = e),
2366
- label: l(a)("report.section.datasource.axis.showTitle"),
2367
- "label-placement": "right",
2368
- value: !0
2369
- }, null, 8, ["modelValue", "label"]),
2370
- se(F("div", ko, [
2371
- u(n, {
2372
- "model-value": f.model.yTitle,
2373
- label: l(a)("report.common.title"),
2374
- placeholder: l(a)("report.tile.widget.titlePlaceholder"),
2375
- "onUpdate:modelValue": l(O)
2376
- }, null, 8, ["model-value", "label", "placeholder", "onUpdate:modelValue"]),
2377
- u(S, {
2378
- label: l(a)("report.section.datasource.fontSize"),
2379
- type: "number",
2380
- "model-value": f.model.yTitleFontSize ?? 12,
2381
- min: 1,
2382
- "onUpdate:modelValue": _[11] || (_[11] = (e) => {
2383
- i("update:model", { ...f.model, yTitleFontSize: Number(e) });
2384
- })
2385
- }, null, 8, ["label", "model-value"])
2386
- ], 512), [
2387
- [ue, C.value]
2388
- ])
2389
- ], 512), [
2390
- [ue, f.model.showY ?? !0]
2391
- ])
2392
- ]);
2393
- };
2394
- }
2395
- }), _o = { class: "flex flex-col gap-8" }, So = { class: "pl-32 flex flex-col gap-8" }, To = /* @__PURE__ */ q({
2396
- __name: "LegendSection",
2397
- props: {
2398
- model: {},
2399
- isCircularWidget: { type: Boolean }
2400
- },
2401
- emits: ["update:model"],
2402
- setup(x, { emit: d }) {
2403
- const t = x, i = d, { t: a } = J(), g = [
2404
- { label: a("report.section.datasource.position.top"), value: "top" },
2405
- { label: a("report.section.datasource.position.bottom"), value: "bottom" },
2406
- { label: a("report.section.datasource.position.left"), value: "left" },
2407
- { label: a("report.section.datasource.position.right"), value: "right" }
2408
- ], y = T({
2409
- get: () => t.model.showLegend !== void 0 ? t.model.showLegend : t.isCircularWidget === !0,
2410
- set: (o) => {
2411
- i("update:model", { ...t.model, showLegend: o });
2412
- }
2413
- }), p = T({
2414
- get: () => t.model.usePointStyle ?? !0,
2415
- set: (o) => {
2416
- i("update:model", { ...t.model, usePointStyle: o });
2417
- }
2418
- }), V = T({
2419
- get: () => t.model.legendMaxHeight ?? 54,
2420
- set: (o) => {
2421
- i("update:model", { ...t.model, legendMaxHeight: o });
2422
- }
2423
- }), h = T({
2424
- get: () => t.model.legendMaxWidth ?? 54,
2425
- set: (o) => {
2426
- i("update:model", { ...t.model, legendMaxWidth: o });
2427
- }
2428
- });
2429
- return (o, s) => {
2430
- const C = k("FmCheckbox"), w = k("FmSelect"), O = k("FmStepperField");
2431
- return b(), R("div", _o, [
2432
- u(C, {
2433
- modelValue: y.value,
2434
- "onUpdate:modelValue": s[0] || (s[0] = (f) => y.value = f),
2435
- class: "fm-typo-en-body-lg-400",
2436
- value: !1,
2437
- label: l(a)("report.section.datasource.legend.showLegend")
2438
- }, null, 8, ["modelValue", "label"]),
2439
- se(F("div", So, [
2440
- u(w, {
2441
- label: l(a)("report.section.datasource.position.showPosition"),
2442
- items: g,
2443
- "model-value": o.model.legendPosition ?? "top",
2444
- "onUpdate:modelValue": s[1] || (s[1] = (f) => i("update:model", { ...o.model, legendPosition: f }))
2445
- }, null, 8, ["label", "model-value"]),
2446
- u(C, {
2447
- modelValue: p.value,
2448
- "onUpdate:modelValue": s[2] || (s[2] = (f) => p.value = f),
2449
- label: l(a)("report.section.datasource.legend.usePointStyle"),
2450
- value: !1
2451
- }, null, 8, ["modelValue", "label"]),
2452
- o.model.legendPosition === "top" || o.model.legendPosition === "bottom" || !o.model.legendPosition ? (b(), D(O, {
2453
- key: 0,
2454
- label: l(a)("report.section.datasource.legend.maxHeight"),
2455
- "model-value": V.value,
2456
- "onUpdate:modelValue": s[3] || (s[3] = (f) => i("update:model", { ...o.model, legendMaxHeight: f }))
2457
- }, null, 8, ["label", "model-value"])) : U("", !0),
2458
- o.model.legendPosition === "left" || o.model.legendPosition === "right" ? (b(), D(O, {
2459
- key: 1,
2460
- label: l(a)("report.section.datasource.legend.maxWidth"),
2461
- "model-value": h.value,
2462
- "onUpdate:modelValue": s[4] || (s[4] = (f) => i("update:model", { ...o.model, legendMaxWidth: f }))
2463
- }, null, 8, ["label", "model-value"])) : U("", !0)
2464
- ], 512), [
2465
- [ue, y.value]
2466
- ])
2467
- ]);
2468
- };
2469
- }
2470
- }), $o = { class: "flex flex-row gap-16" }, Do = /* @__PURE__ */ q({
2471
- __name: "ChartSizeSection",
2472
- props: {
2473
- model: {}
2474
- },
2475
- emits: ["update:model"],
2476
- setup(x, { emit: d }) {
2477
- const t = x, i = d, { t: a } = J(), g = T({
2478
- get: () => t.model.chartHeight ?? null,
2479
- set: (p) => {
2480
- i("update:model", { ...t.model, chartHeight: p ?? void 0 });
2481
- }
2482
- }), y = T({
2483
- get: () => t.model.chartWidth ?? null,
2484
- set: (p) => {
2485
- i("update:model", { ...t.model, chartWidth: p ?? void 0 });
2486
- }
2487
- });
2488
- return (p, V) => {
2489
- const h = k("FmStepperField");
2490
- return b(), R("div", $o, [
2491
- u(h, {
2492
- modelValue: g.value,
2493
- "onUpdate:modelValue": V[0] || (V[0] = (o) => g.value = o),
2494
- type: "number",
2495
- label: l(a)("report.section.datasource.chartHeight"),
2496
- suffix: "px",
2497
- min: 1,
2498
- placeholder: "Auto"
2499
- }, null, 8, ["modelValue", "label"]),
2500
- u(h, {
2501
- modelValue: y.value,
2502
- "onUpdate:modelValue": V[1] || (V[1] = (o) => y.value = o),
2503
- type: "number",
2504
- label: l(a)("report.section.datasource.chartWidth"),
2505
- suffix: "px",
2506
- min: 1,
2507
- placeholder: "Auto"
2508
- }, null, 8, ["modelValue", "label"])
2509
- ]);
2510
- };
2511
- }
2512
- }), Uo = { class: "flex flex-col gap-16" }, No = { class: "flex flex-col gap-8" }, Oo = { class: "fm-typo-en-body-lg-600" }, Lo = { class: "flex flex-col gap-8" }, Io = /* @__PURE__ */ q({
2513
- __name: "StyleDatasource",
2514
- props: /* @__PURE__ */ K({
2515
- label: {
2516
- type: String,
2517
- default: "Label"
2518
- },
2519
- config: {
2520
- type: Object,
2521
- default: null
2522
- },
2523
- closeable: {
2524
- type: Boolean,
2525
- default: !1
2526
- },
2527
- mainDatasourceConfig: {
2528
- type: Object,
2529
- default: () => {
2530
- }
2531
- },
2532
- modelValue: {
2533
- type: Object,
2534
- default: () => {
2535
- }
2536
- }
2537
- }, {
2538
- modelValue: { required: !0 },
2539
- modelModifiers: {}
2540
- }),
2541
- emits: /* @__PURE__ */ K(["click-close"], ["update:modelValue"]),
2542
- setup(x, { emit: d }) {
2543
- const t = ee(x, "modelValue");
2544
- re(
2545
- [() => t.value.dimensions, () => t.value.metrics],
2546
- () => {
2547
- const { rowIds: V, columnIds: h } = Ve(t.value);
2548
- t.value.rowIds = V, t.value.columnIds = h;
2549
- },
2550
- { deep: !0 }
2551
- );
2552
- const i = x, a = d, { t: g, te: y } = J(), p = T(() => i.config.type === z.Circular);
2553
- return (V, h) => {
2554
- const o = k("FmButton");
2555
- return b(), R(oe, null, [
2556
- h[5] || (h[5] = F("div", { class: "grow" }, null, -1)),
2557
- i.closeable ? (b(), D(o, {
2558
- key: 0,
2559
- icon: "close",
2560
- variant: "tertiary",
2561
- size: "md",
2562
- onClick: h[0] || (h[0] = ne((s) => a("click-close"), ["stop"]))
2563
- })) : U("", !0),
2564
- F("div", Uo, [
2565
- i.config.hasChart ? (b(), D(Do, {
2566
- key: 0,
2567
- model: t.value,
2568
- "onUpdate:model": h[1] || (h[1] = (s) => t.value = s)
2569
- }, null, 8, ["model"])) : U("", !0),
2570
- F("div", No, [
2571
- F("p", Oo, j(l(g)("report.section.style.configuration")), 1),
2572
- F("div", Lo, [
2573
- i.config.hasLabel ? (b(), D(bo, {
2574
- key: 0,
2575
- model: t.value,
2576
- "onUpdate:model": h[2] || (h[2] = (s) => t.value = s)
2577
- }, null, 8, ["model"])) : U("", !0),
2578
- i.config.hasLegend ? (b(), D(To, {
2579
- key: 1,
2580
- model: t.value,
2581
- "is-circular-widget": p.value,
2582
- "onUpdate:model": h[3] || (h[3] = (s) => t.value = s)
2583
- }, null, 8, ["model", "is-circular-widget"])) : U("", !0),
2584
- i.config.hasXy ? (b(), D(Co, {
2585
- key: 2,
2586
- model: t.value,
2587
- "onUpdate:model": h[4] || (h[4] = (s) => t.value = s)
2588
- }, null, 8, ["model"])) : U("", !0)
2589
- ])
2590
- ])
2591
- ])
2592
- ], 64);
2593
- };
2594
- }
2595
- }), Bo = { class: "fixed bottom-6 right-6" }, jo = { class: "flex w-full items-center gap-8" }, zo = { class: "fm-typo-en-title-sm-600" }, Ro = { class: "ml-auto text-fm-color-system-info-300" }, Mo = /* @__PURE__ */ q({
2596
- __name: "StyleEditorTab",
2597
- props: {
2598
- modelValue: {
2599
- required: !0
2600
- },
2601
- modelModifiers: {},
2602
- isStyleEditing: { type: Boolean, required: !1, default: !1 },
2603
- isStyleEditingModifiers: {}
2604
- },
2605
- emits: ["update:modelValue", "update:isStyleEditing"],
2606
- setup(x) {
2607
- const { t: d } = J(), t = ee(x, "modelValue"), i = T(
2608
- () => Fe.find((p) => p.type === t.value.widget.type)
2609
- ), a = ee(x, "isStyleEditing"), g = T(() => {
2610
- var p;
2611
- return {
2612
- chartHeight: void 0,
2613
- chartWidth: void 0,
2614
- showLabel: !1,
2615
- labelAlign: ie.center,
2616
- labelAnchor: be.center,
2617
- labelRotation: 0,
2618
- labelOffset: 0,
2619
- labelFontSize: 12,
2620
- showX: !0,
2621
- xPosition: ml.bottom,
2622
- showXGrid: !1,
2623
- showXTick: !0,
2624
- xTickFontSize: 12,
2625
- showXTitle: !1,
2626
- xTitle: "",
2627
- xTitleFontSize: 12,
2628
- showY: !0,
2629
- yPosition: dl.left,
2630
- showYGrid: !1,
2631
- showYTick: !0,
2632
- yTickFontSize: 12,
2633
- showYTitle: !1,
2634
- yTitle: "",
2635
- yTitleFontSize: 12,
2636
- showLegend: ((p = i.value) == null ? void 0 : p.type) === z.Circular,
2637
- legendPosition: rl.top,
2638
- usePointStyle: !0,
2639
- legendMaxHeight: void 0,
2640
- legendMaxWidth: void 0
2641
- };
2642
- });
2643
- function y() {
2644
- t.value && (t.value.widget.config = {
2645
- ...t.value.widget.config,
2646
- ...g.value
2647
- });
2648
- }
2649
- return (p, V) => {
2650
- const h = k("FmCircularProgress"), o = k("FmButton"), s = k("FmSideSheet");
2651
- return b(), D(s, {
2652
- modelValue: a.value,
2653
- "onUpdate:modelValue": V[2] || (V[2] = (C) => a.value = C),
2654
- "close-button": !1,
2655
- "no-overlay": "",
2656
- "dismiss-away": !0,
2657
- "max-width": 500
2658
- }, {
2659
- "side-sheet-button": N(() => [
2660
- F("div", Bo, [
2661
- u(o, {
2662
- label: l(d)("report.section.style.button"),
2663
- icon: "edit",
2664
- variant: "secondary",
2665
- size: "md"
2666
- }, null, 8, ["label"])
2667
- ])
2668
- ]),
2669
- "side-sheet-header": N(() => [
2670
- F("div", jo, [
2671
- u(o, {
2672
- "prepend-icon": "arrow_back",
2673
- variant: "tertiary",
2674
- class: "fm-icon--rounded fm-icon--md text-fm-color-black",
2675
- onClick: V[0] || (V[0] = (C) => a.value = !1)
2676
- }),
2677
- F("p", zo, j(l(d)("report.section.style.title")), 1),
2678
- F("div", Ro, [
2679
- u(o, {
2680
- label: l(d)("report.section.style.reset"),
2681
- variant: "tertiary",
2682
- size: "md",
2683
- onClick: y,
2684
- "text-color": "text-fm-color-system-info-300"
2685
- }, null, 8, ["label"])
2686
- ])
2687
- ])
2688
- ]),
2689
- default: N(() => [
2690
- t.value ? U("", !0) : (b(), D(h, { key: 0 })),
2691
- u(Io, {
2692
- modelValue: t.value.widget.config,
2693
- "onUpdate:modelValue": V[1] || (V[1] = (C) => t.value.widget.config = C),
2694
- config: i.value
2695
- }, null, 8, ["modelValue", "config"])
2696
- ]),
2697
- _: 1
2698
- }, 8, ["modelValue"]);
2699
- };
2700
- }
2701
- }), Po = { class: "bg-fm-color-neutral-white flex flex-col h-full w-[510px]" }, Ao = { class: "flex bg-fm-color-neutral-white w-[88px]" }, Xo = { class: "w-full overflow-y-auto" }, Eo = {
2702
- class: "grid grid-cols-12 w-full p-24",
2703
- style: { backgroundColor: "#F6F8FC" }
2704
- }, Wo = /* @__PURE__ */ q({
2705
- __name: "TileEditorDesktop",
2706
- props: /* @__PURE__ */ K({
2707
- hideConfiguration: { type: Boolean, required: !0, default: !1 },
2708
- index: { type: Number, required: !0, default: 0 }
2709
- }, {
2710
- modelValue: {
2711
- required: !0
2712
- },
2713
- modelModifiers: {}
2714
- }),
2715
- emits: /* @__PURE__ */ K(["hideConfiguration"], ["update:modelValue"]),
2716
- setup(x, { emit: d }) {
2717
- const t = ee(x, "modelValue"), i = x, a = T(
2718
- () => Fe.find((h) => {
2719
- var o;
2720
- return h.type === ((o = t.value) == null ? void 0 : o.widget.type);
2721
- })
2722
- ), g = d, y = [
2723
- z.BarChart,
2724
- z.StackBarChart,
2725
- z.LineChart,
2726
- z.StackLineChart,
2727
- z.Circular
2728
- ], p = T(() => y.includes(t.value.widget.type)), V = H(!1);
2729
- return (h, o) => {
2730
- const s = k("FmCircularProgress"), C = k("FmButton");
2731
- return b(), R("div", null, [
2732
- t.value ? (b(), R(oe, { key: 1 }, [
2733
- u(ol, {
2734
- "model-value": !x.hideConfiguration
2735
- }, {
2736
- right: N(() => [
2737
- F("div", Po, [
2738
- u(We, {
2739
- modelValue: t.value,
2740
- "onUpdate:modelValue": o[0] || (o[0] = (w) => t.value = w),
2741
- config: a.value,
2742
- "hide-configuration": x.hideConfiguration,
2743
- onHideConfiguration: o[1] || (o[1] = (w) => {
2744
- g("hideConfiguration", w);
2745
- })
2746
- }, null, 8, ["modelValue", "config", "hide-configuration"])
2747
- ])
2748
- ]),
2749
- left: N(() => [
2750
- F("div", Ao, [
2751
- u(C, {
2752
- variant: "secondary",
2753
- icon: "keyboard_double_arrow_right",
2754
- "border-color": l(Oe).ColorPrimary,
2755
- "text-color": l(Oe).ColorPrimary,
2756
- class: "m-24 my-16",
2757
- size: "md",
2758
- onClick: o[2] || (o[2] = (w) => g("hideConfiguration", !i.hideConfiguration))
2759
- }, null, 8, ["border-color", "text-color"])
2760
- ])
2761
- ]),
2762
- _: 1
2763
- }, 8, ["model-value"]),
2764
- F("div", Xo, [
2765
- F("div", Eo, [
2766
- t.value ? (b(), D(Xe, {
2767
- key: 0,
2768
- "model-value": t.value,
2769
- index: i.index,
2770
- "hide-export": !0,
2771
- "is-style-editing": V.value
2772
- }, null, 8, ["model-value", "index", "is-style-editing"])) : (b(), D(Ee, { key: 1 }))
2773
- ])
2774
- ]),
2775
- p.value ? (b(), D(Mo, {
2776
- key: 0,
2777
- modelValue: t.value,
2778
- "onUpdate:modelValue": o[3] || (o[3] = (w) => t.value = w),
2779
- "is-style-editing": V.value,
2780
- "onUpdate:isStyleEditing": o[4] || (o[4] = (w) => V.value = w),
2781
- "hide-configuration": x.hideConfiguration,
2782
- onHideConfiguration: o[5] || (o[5] = (w) => {
2783
- g("hideConfiguration", w);
2784
- })
2785
- }, null, 8, ["modelValue", "is-style-editing", "hide-configuration"])) : U("", !0)
2786
- ], 64)) : (b(), D(s, { key: 0 }))
2787
- ]);
2788
- };
2789
- }
2790
- }), qo = {
2791
- key: 0,
2792
- class: "flex w-full justify-center items-center"
2793
- }, Ho = { class: "w-full grid grid-cols-12 pb-28 pt-5 px-5 h-full" }, Yo = /* @__PURE__ */ q({
2794
- __name: "TileEditorMobile",
2795
- props: /* @__PURE__ */ K({
2796
- hideConfiguration: { type: Boolean, required: !0, default: !1 },
2797
- index: { type: Number, required: !0, default: 0 }
2798
- }, {
2799
- modelValue: {
2800
- required: !0
2801
- },
2802
- modelModifiers: {}
2803
- }),
2804
- emits: /* @__PURE__ */ K(["hideConfiguration"], ["update:modelValue"]),
2805
- setup(x, { emit: d }) {
2806
- const t = ee(x, "modelValue"), i = x, a = T(
2807
- () => Fe.find((y) => {
2808
- var p;
2809
- return y.type === ((p = t.value) == null ? void 0 : p.widget.type);
2810
- })
2811
- ), g = d;
2812
- return (y, p) => {
2813
- const V = k("FmCircularProgress");
2814
- return b(), R("div", null, [
2815
- t.value ? (b(), R(oe, { key: 1 }, [
2816
- F("div", Ho, [
2817
- t.value ? (b(), D(Xe, {
2818
- key: 0,
2819
- "model-value": t.value,
2820
- index: i.index,
2821
- "hide-export": !0
2822
- }, null, 8, ["model-value", "index"])) : (b(), D(Ee, { key: 1 }))
2823
- ]),
2824
- u(We, {
2825
- modelValue: t.value,
2826
- "onUpdate:modelValue": p[0] || (p[0] = (h) => t.value = h),
2827
- config: a.value,
2828
- "hide-configuration": x.hideConfiguration,
2829
- onHideConfiguration: p[1] || (p[1] = (h) => {
2830
- g("hideConfiguration", h);
2831
- })
2832
- }, null, 8, ["modelValue", "config", "hide-configuration"])
2833
- ], 64)) : (b(), R("div", qo, [
2834
- u(V)
2835
- ]))
2836
- ]);
2837
- };
2838
- }
2839
- }), Go = {
2840
- key: 0,
2841
- class: "fm-typo-en-title-md-600"
2842
- }, Jo = {
2843
- key: 0,
2844
- class: "flex items-start justify-start px-24 py-12 flex-wrap w-full"
2845
- }, mt = /* @__PURE__ */ q({
2846
- __name: "TileEditor",
2847
- setup(x) {
2848
- const { rowHeight: d, colWidths: t } = de(ye()), i = Je(), a = Ke(), g = il(), { globalFilters: y } = de(Pe()), { currentSelectWidgetType: p, editingReport: V, editingTile: h, editingTileIndex: o } = de(g), { breakpoints: s } = Ae(), { promptMessage: C } = Me(), { t: w } = J(), O = H(!1);
2849
- function f() {
2850
- p.value = void 0, h.value = void 0, o.value = -1, a.back();
2851
- }
2852
- async function _() {
2853
- var n;
2854
- if (!V.value) return;
2855
- await C({
2856
- title: w("report.tile.save.title"),
2857
- message: w("report.tile.save.confirm", { title: (n = h.value) == null ? void 0 : n.widget.title })
2858
- }) && h.value && (h.value.widget.config = {
2859
- ...h.value.widget.config,
2860
- rowHeight: d.value,
2861
- colWidths: [...t.value]
2862
- }, o.value === -1 ? V.value.tiles.push(h.value) : V.value.tiles[o.value] = h.value, f());
2863
- }
2864
- async function L() {
2865
- var n;
2866
- if (!V.value) return;
2867
- await C({
2868
- title: w("report.tile.cancel.title"),
2869
- message: w("report.tile.cancel.confirm", { title: (n = h.value) == null ? void 0 : n.widget.title })
2870
- }) && f();
2871
- }
2872
- return Se(() => {
2873
- V.value || a.push({ name: "reports" });
2874
- }), (S, n) => {
2875
- const e = k("FmPageHead");
2876
- return b(), D(tl, null, {
2877
- default: N(() => [
2878
- u(e, {
2879
- actions: [
2880
- { label: l(w)("report.common.cancel"), value: "cancel", isPrimary: !1 },
2881
- { label: l(w)("report.common.save"), value: "save", isPrimary: !0 }
2882
- ],
2883
- "onClick:action": n[0] || (n[0] = (m) => {
2884
- m === "cancel" && L(), m === "save" && _();
2885
- })
2886
- }, {
2887
- title: N(() => {
2888
- var m;
2889
- return [
2890
- l(s).lg || l(s).md ? (b(), R("p", Go, j(l(sl)(((m = l(h)) == null ? void 0 : m.widget.type) ?? "New report")), 1)) : U("", !0)
2891
- ];
2892
- }),
2893
- _: 1
2894
- }, 8, ["actions"]),
2895
- l(h) && (l(y) || []).some((m) => {
2896
- const r = m.tileIds, c = l(h) && l(h).id;
2897
- return Array.isArray(r) && typeof c == "string" && r.includes(c);
2898
- }) ? (b(), R("div", Jo, [
2899
- u(cl)
2900
- ])) : U("", !0),
2901
- l(h) ? (b(), D(je(l(s).lg || l(s).md ? Wo : Yo), {
2902
- key: 1,
2903
- modelValue: l(h),
2904
- "onUpdate:modelValue": n[1] || (n[1] = (m) => Ge(h) ? h.value = m : null),
2905
- class: ze(`${l(s).lg || l(s).md ? "flex" : ""} w-full`),
2906
- style: Ye({ height: `calc( 100% - ${l(s).lg || l(s).md ? 72 : 64}px)` }),
2907
- "hide-configuration": O.value,
2908
- index: Number(l(i).params.tileIndex),
2909
- onHideConfiguration: n[2] || (n[2] = (m) => O.value = m)
2910
- }, null, 40, ["modelValue", "class", "style", "hide-configuration", "index"])) : U("", !0)
2911
- ]),
2912
- _: 1
2913
- });
2914
- };
2915
- }
2916
- });
2917
- export {
2918
- mt as default
2919
- };