@feedmepos/mf-report 5.18.2-beta.1 → 5.18.2-beta.2
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.
- package/dist/{App-8K5LVQ4K.js → App-2aEdytBx.js} +3 -3
- package/dist/{BaseDialog.vue_vue_type_script_setup_true_lang-BrHd550j.js → BaseDialog.vue_vue_type_script_setup_true_lang-djyc20Cp.js} +58 -58
- package/dist/{Default.vue_vue_type_script_setup_true_lang-4V19EFBP.js → Default.vue_vue_type_script_setup_true_lang-DpSgAipe.js} +1 -1
- package/dist/{DynamicWidget.vue_vue_type_script_setup_true_lang-B75aeM0i.js → DynamicWidget.vue_vue_type_script_setup_true_lang-DKA5lLXB.js} +1 -1
- package/dist/{InsightView-DCIgjpGL.js → InsightView-CxCeRQ-P.js} +2 -2
- package/dist/{Layout-Dco__bZI.js → Layout-B2cpQx3C.js} +1 -1
- package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-BJM6sKQU.js → MenuTab.vue_vue_type_script_setup_true_lang-C8oiHuOX.js} +2 -2
- package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-4v9iLIA2.js → NavigationTab.vue_vue_type_script_setup_true_lang-CDxb2Mjg.js} +1 -1
- package/dist/{OverviewView-CUPsimnH.js → OverviewView-D8mA0P3y.js} +4 -4
- package/dist/{Report-BljRc1xi.js → Report-Cg9Fen7g.js} +2 -2
- package/dist/{ReportEditor-DgAWdCZe.js → ReportEditor-Db1Ll1hk.js} +183 -182
- package/dist/ReportView-BQb_myNM.js +246 -0
- package/dist/{Setting-BciZnr8l.js → Setting-BxLdkt7x.js} +2 -2
- package/dist/{TileEditor-DgawblCV.js → TileEditor-DbbSibJa.js} +3 -3
- package/dist/{TransitionFade-1tV8-j1Z.js → TransitionFade-CiVLb7cy.js} +2 -2
- package/dist/app.js +9 -9
- package/package.json +1 -1
- package/dist/ReportView-CMRcpoTz.js +0 -252
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { defineComponent as K, computed as c, onMounted as X, watch as Z, resolveComponent as ee, createBlock as I, openBlock as f, withCtx as te, createVNode as E, createElementVNode as J, unref as n, normalizeStyle as ae, normalizeClass as L, createElementBlock as N, Fragment as re, renderList as oe } from "vue";
|
|
2
|
+
import { _ as ne } from "./MenuTab.vue_vue_type_script_setup_true_lang-C8oiHuOX.js";
|
|
3
|
+
import { _ as se } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-DKA5lLXB.js";
|
|
4
|
+
import { useRouter as ie, useRoute as le } from "vue-router";
|
|
5
|
+
import { _ as ue } from "./Default.vue_vue_type_script_setup_true_lang-DpSgAipe.js";
|
|
6
|
+
import { a as ce } from "./BaseDialog.vue_vue_type_script_setup_true_lang-djyc20Cp.js";
|
|
7
|
+
import { storeToRefs as _ } from "pinia";
|
|
8
|
+
import { b as de, c as pe, u as me } from "./NavigationTab.vue_vue_type_script_setup_true_lang-CDxb2Mjg.js";
|
|
9
|
+
import { _ as fe } from "./NoData.vue_vue_type_script_setup_true_lang-Divo8W18.js";
|
|
10
|
+
import { useSnackbar as ge, useBreakpoints as ve } from "@feedmepos/ui-library";
|
|
11
|
+
import { u as ye, b as De, f as Se, d, e as be } from "./vue-i18n-CTLGxUiF.js";
|
|
12
|
+
import { u as Re } from "./message-dialog-UoMWOnil.js";
|
|
13
|
+
import { r as _e } from "./i18n-Cif1I9J2.js";
|
|
14
|
+
const Ie = { class: "sticky top-0 z-10 bg-white" }, Pe = /* @__PURE__ */ K({
|
|
15
|
+
__name: "ReportView",
|
|
16
|
+
setup(Ce) {
|
|
17
|
+
const { t: s, te: $ } = ye(), g = ie(), e = le(), m = ge(), { promptMessage: M } = Re(), v = ce(), C = de(), l = De(), { promptLoader: P } = Se(), { breakpoints: u } = ve(), {
|
|
18
|
+
currentReport: r,
|
|
19
|
+
currentReportId: k,
|
|
20
|
+
isOpenDownloadDialog: A,
|
|
21
|
+
isOpenEmailDialog: T,
|
|
22
|
+
editingReport: F,
|
|
23
|
+
canCreateCustomReport: j,
|
|
24
|
+
customReportQuota: q
|
|
25
|
+
} = _(v), y = c(() => e.query.reportId || k.value), D = c(() => ({
|
|
26
|
+
startDate: e.query.startDate ? d(e.query.startDate).startOf("day").toISOString() : void 0,
|
|
27
|
+
endDate: e.query.endDate ? d(e.query.endDate).endOf("day").toISOString() : void 0
|
|
28
|
+
})), S = c(() => ({
|
|
29
|
+
startDate: e.query.compareStartDate ? d(e.query.compareStartDate).startOf("day").toISOString() : void 0,
|
|
30
|
+
endDate: e.query.compareEndDate ? d(e.query.compareEndDate).endOf("day").toISOString() : void 0
|
|
31
|
+
})), b = c(() => ({
|
|
32
|
+
start: e.query.timeStart ? JSON.parse(e.query.timeStart) : void 0,
|
|
33
|
+
end: e.query.timeEnd ? JSON.parse(e.query.timeEnd) : void 0
|
|
34
|
+
})), O = c(() => e.query.isAllLocation === "true"), B = c(() => O.value ? l.selectedLocationIds : e.query.locationIds ? JSON.parse(e.query.locationIds) : void 0);
|
|
35
|
+
X(() => {
|
|
36
|
+
const a = y.value;
|
|
37
|
+
a && a !== k.value && (v.updateCurrentReportId(a), (D.value.startDate || D.value.endDate) && l.setDateRange({
|
|
38
|
+
startDate: D.value.startDate,
|
|
39
|
+
endDate: D.value.endDate
|
|
40
|
+
}), (S.value.startDate || S.value.endDate) && l.setCompareDateRange({
|
|
41
|
+
startDate: S.value.startDate,
|
|
42
|
+
endDate: S.value.endDate
|
|
43
|
+
}), (b.value.start || b.value.end) && l.setTimeRange({
|
|
44
|
+
start: b.value.start,
|
|
45
|
+
end: b.value.end
|
|
46
|
+
}), O.value || l.setSelectedLocationIds(B.value));
|
|
47
|
+
}), Z(
|
|
48
|
+
() => ({
|
|
49
|
+
selectedLocationIds: l.selectedLocationIds,
|
|
50
|
+
dateRange: l.dateRange,
|
|
51
|
+
timeRange: l.timeRange,
|
|
52
|
+
compareDateRange: l.compareDateRange
|
|
53
|
+
}),
|
|
54
|
+
(a) => {
|
|
55
|
+
const t = a.selectedLocationIds, i = a.dateRange, p = a.timeRange, o = a.compareDateRange;
|
|
56
|
+
if (!r.value) return;
|
|
57
|
+
const R = {
|
|
58
|
+
...e.query,
|
|
59
|
+
reportId: r.value.id,
|
|
60
|
+
startDate: i.startDate ? d(i.startDate).format("YYYY-MM-DD") : void 0,
|
|
61
|
+
endDate: i.endDate ? d(i.endDate).format("YYYY-MM-DD") : void 0,
|
|
62
|
+
compareStartDate: o.startDate ? d(o.startDate).format("YYYY-MM-DD") : void 0,
|
|
63
|
+
compareEndDate: o.endDate ? d(o.endDate).format("YYYY-MM-DD") : void 0,
|
|
64
|
+
timeStart: p.start ? JSON.stringify(p.start) : void 0,
|
|
65
|
+
timeEnd: p.end ? JSON.stringify(p.end) : void 0,
|
|
66
|
+
locationIds: t.length === l.locations.length ? null : t.length > 0 ? JSON.stringify(t) : void 0,
|
|
67
|
+
isAllLocation: String(t.length === l.locations.length)
|
|
68
|
+
};
|
|
69
|
+
g.replace({
|
|
70
|
+
name: e.name,
|
|
71
|
+
params: e.params,
|
|
72
|
+
query: R
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
{ deep: !0 }
|
|
76
|
+
);
|
|
77
|
+
const { isOpenAccountingDialog: z } = _(pe()), { isOpenScheduleDialog: w } = _(me()), { disabled: H } = _(be()), Q = c(() => {
|
|
78
|
+
const a = [
|
|
79
|
+
{
|
|
80
|
+
icon: "mail",
|
|
81
|
+
label: s("report.common.emailSchedule"),
|
|
82
|
+
onClick: () => {
|
|
83
|
+
w.value = !0;
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
// {
|
|
87
|
+
// icon: "article",
|
|
88
|
+
// label: "Set as Default",
|
|
89
|
+
// onClick: async () => {
|
|
90
|
+
// await promptLoader(async () => {
|
|
91
|
+
// if (currentReport.value) {
|
|
92
|
+
// try {
|
|
93
|
+
// await reportStore.updateDefaultReport(currentReport.value.id)
|
|
94
|
+
// snackbar.open({
|
|
95
|
+
// message: `Set ${currentReport.value.name} as default successful`,
|
|
96
|
+
// type: "success"
|
|
97
|
+
// })
|
|
98
|
+
// } catch (err) {
|
|
99
|
+
// snackbar.open({ message: JSON.stringify(err), type: "error" })
|
|
100
|
+
// }
|
|
101
|
+
// }
|
|
102
|
+
// })
|
|
103
|
+
// }
|
|
104
|
+
// },
|
|
105
|
+
{
|
|
106
|
+
icon: "content_copy",
|
|
107
|
+
label: s("report.common.copyID"),
|
|
108
|
+
onClick: () => {
|
|
109
|
+
r.value && (navigator.clipboard.writeText(y.value), m.open({ message: s("report.messages.copiedReportIdToClipboard"), type: "success" }));
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
icon: "report_jobs",
|
|
114
|
+
label: s("report.common.reportStatus"),
|
|
115
|
+
onClick: () => {
|
|
116
|
+
h();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
];
|
|
120
|
+
return H.value || a.splice(1, 0, {
|
|
121
|
+
icon: "download",
|
|
122
|
+
label: s("report.common.accountingExport"),
|
|
123
|
+
onClick: x
|
|
124
|
+
}), a;
|
|
125
|
+
});
|
|
126
|
+
async function h() {
|
|
127
|
+
C.isOpenJobDialog = !0, await C.getJobs();
|
|
128
|
+
}
|
|
129
|
+
function G() {
|
|
130
|
+
F.value = JSON.parse(JSON.stringify(r.value)), g.push({
|
|
131
|
+
name: "reportEditor",
|
|
132
|
+
query: e.query
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
async function U() {
|
|
136
|
+
if (!j.value) {
|
|
137
|
+
let t = `Your current plan only support up to ${q.value} custom reports.`;
|
|
138
|
+
q.value === 0 && (t = "Your current plan does not support custom report."), m.open({
|
|
139
|
+
message: t,
|
|
140
|
+
type: "error"
|
|
141
|
+
});
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
if (!r.value) {
|
|
145
|
+
m.open({ message: "No Widget", type: "error" });
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
if (await M({
|
|
149
|
+
title: `${s("report.messages.saveReport")}`,
|
|
150
|
+
message: s("report.messages.confirmAction", {
|
|
151
|
+
action: s("report.common.duplicate"),
|
|
152
|
+
name: r.value.name
|
|
153
|
+
})
|
|
154
|
+
}) && r.value) {
|
|
155
|
+
const t = JSON.parse(JSON.stringify(r.value));
|
|
156
|
+
t.editable = !0, t.id = "", t.name = `${t.name} duplicate`;
|
|
157
|
+
try {
|
|
158
|
+
await P(async () => {
|
|
159
|
+
const i = await v.createOrUpdateReport(t);
|
|
160
|
+
v.updateCurrentReportId(i.id), g.push({
|
|
161
|
+
name: "reportView",
|
|
162
|
+
params: { reportId: i.id, ...e.params },
|
|
163
|
+
query: e.query
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
} catch (i) {
|
|
167
|
+
console.log(i), m.open({ message: "Failed to clone report", type: "error" });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
function x() {
|
|
172
|
+
z.value = !0;
|
|
173
|
+
}
|
|
174
|
+
function V() {
|
|
175
|
+
r.value && (navigator.clipboard.writeText(y.value), m.open({ message: "Copied report ID to clipboard", type: "success" }));
|
|
176
|
+
}
|
|
177
|
+
const Y = c(() => r.value ? r.value.tiles : []), W = c(() => {
|
|
178
|
+
var t;
|
|
179
|
+
let a = [
|
|
180
|
+
(t = r == null ? void 0 : r.value) != null && t.editable ? { label: s("report.common.edit"), value: "edit", isPrimary: !1 } : {
|
|
181
|
+
label: s("report.common.duplicate"),
|
|
182
|
+
value: "duplicate",
|
|
183
|
+
isPrimary: !1
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
label: s("report.common.download"),
|
|
187
|
+
value: "download",
|
|
188
|
+
isPrimary: !0,
|
|
189
|
+
prependIcon: "download"
|
|
190
|
+
},
|
|
191
|
+
{ label: s("report.schedule.sendEmail"), value: "email", isPrimary: !0 }
|
|
192
|
+
];
|
|
193
|
+
return u.value.xs && (a = [
|
|
194
|
+
...a,
|
|
195
|
+
{ label: "Send Email", value: "email", isPrimary: !1 },
|
|
196
|
+
{ label: "Job Delivery Status", value: "report_jobs", isPrimary: !1 },
|
|
197
|
+
{ label: "Email schedule", value: "schedule_email", isPrimary: !1 },
|
|
198
|
+
{ label: "Accounting export", value: "export", isPrimary: !1 },
|
|
199
|
+
{ label: "Copy ID", value: "content_copy", isPrimary: !1 }
|
|
200
|
+
], a = a.filter((i) => i.value !== "edit")), a;
|
|
201
|
+
});
|
|
202
|
+
return (a, t) => {
|
|
203
|
+
const i = ee("FmPageHead");
|
|
204
|
+
return f(), I(ue, null, {
|
|
205
|
+
default: te(() => {
|
|
206
|
+
var p;
|
|
207
|
+
return [
|
|
208
|
+
E(i, {
|
|
209
|
+
title: n(_e)(n(s), n($), (p = n(r)) == null ? void 0 : p.name, "other"),
|
|
210
|
+
"back-button": !0,
|
|
211
|
+
actions: W.value,
|
|
212
|
+
"onClick:back": t[0] || (t[0] = (o) => n(g).push({ name: "reports", query: n(e).query })),
|
|
213
|
+
"onClick:action": t[1] || (t[1] = (o) => {
|
|
214
|
+
o === "duplicate" && U(), o === "download" && (A.value = !0), o === "email" && (T.value = !0), o === "edit" && G(), o === "schedule_email" && (w.value = !0), o === "content_copy" && V(), o === "export" && x(), o === "report_jobs" && h();
|
|
215
|
+
})
|
|
216
|
+
}, null, 8, ["title", "actions"]),
|
|
217
|
+
J("div", {
|
|
218
|
+
class: L(`flex flex-col overflow-y-auto ${n(u).xs || n(u).sm ? "pb-20" : ""}`),
|
|
219
|
+
style: ae({ height: `calc(100% - ${n(u).lg || n(u).md ? 72 : 64}px)` })
|
|
220
|
+
}, [
|
|
221
|
+
J("div", Ie, [
|
|
222
|
+
E(ne, {
|
|
223
|
+
"model-value": n(u).lg || n(u).md ? Q.value : []
|
|
224
|
+
}, null, 8, ["model-value"])
|
|
225
|
+
]),
|
|
226
|
+
n(r) && Y.value.length > 0 ? (f(), N("div", {
|
|
227
|
+
key: 0,
|
|
228
|
+
class: L(["grid grid-cols-12", n(u).sm || n(u).xs ? "px-3 gap-[16px]" : "px-24 gap-[24px]"])
|
|
229
|
+
}, [
|
|
230
|
+
(f(!0), N(re, null, oe(Y.value, (o, R) => (f(), I(se, {
|
|
231
|
+
key: `widget_${y.value}_${R}`,
|
|
232
|
+
"model-value": o,
|
|
233
|
+
index: R
|
|
234
|
+
}, null, 8, ["model-value", "index"]))), 128))
|
|
235
|
+
], 2)) : (f(), I(fe, { key: 1 }))
|
|
236
|
+
], 6)
|
|
237
|
+
];
|
|
238
|
+
}),
|
|
239
|
+
_: 1
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
export {
|
|
245
|
+
Pe as default
|
|
246
|
+
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent as B, ref as H, useModel as J, resolveComponent as h, createElementBlock as k, openBlock as x, createBlock as P, createElementVNode as t, resolveDynamicComponent as ne, unref as e, withCtx as y, createVNode as a, normalizeClass as O, toDisplayString as s, Fragment as K, renderList as Q, withDirectives as M, createTextVNode as ie, vShow as j, watch as me, normalizeStyle as ue } from "vue";
|
|
2
|
-
import { _ as de } from "./Default.vue_vue_type_script_setup_true_lang-
|
|
2
|
+
import { _ as de } from "./Default.vue_vue_type_script_setup_true_lang-DpSgAipe.js";
|
|
3
3
|
import { u as U, d as z, C as I, D as pe, b as ce } from "./vue-i18n-CTLGxUiF.js";
|
|
4
4
|
import { components as A, useSnackbar as W, useBreakpoints as X, FmButtonColorThemeVariant as G } from "@feedmepos/ui-library";
|
|
5
|
-
import { t as N, s as fe } from "./NavigationTab.vue_vue_type_script_setup_true_lang-
|
|
5
|
+
import { t as N, s as fe } from "./NavigationTab.vue_vue_type_script_setup_true_lang-CDxb2Mjg.js";
|
|
6
6
|
import { u as ve } from "./message-dialog-UoMWOnil.js";
|
|
7
7
|
import { detectLocale as F } from "@feedmepos/mf-common";
|
|
8
8
|
import { _ as Y } from "./SelectComponent.vue_vue_type_script_setup_true_lang-mR2PeX3S.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { defineComponent as M, mergeModels as J, useModel as ee, computed as _, ref as A, resolveComponent as F, createElementBlock as I, openBlock as h, createVNode as m, createElementVNode as w, unref as l, withCtx as N, toDisplayString as L, Fragment as Z, renderList as ue, withModifiers as te, createTextVNode as re, watch as se, createCommentVNode as U, createBlock as T, onMounted as Ce, onUnmounted as Pe, renderSlot as $e, onBeforeUnmount as Ae, resolveDynamicComponent as Ne, normalizeClass as Oe, withDirectives as ae, vShow as ne, normalizeStyle as Xe, isRef as We } from "vue";
|
|
2
2
|
import { useRoute as qe, useRouter as He } from "vue-router";
|
|
3
|
-
import { h as Ye, d as ke, S as Fe, _ as Ee, W as Je, b as Ge, T as Ke, a as Qe } from "./TransitionFade-
|
|
4
|
-
import { W as B, b as Be, _ as me, D as Ze, S as Se, C as el, P as Te, a as ll } from "./BaseDialog.vue_vue_type_script_setup_true_lang-
|
|
3
|
+
import { h as Ye, d as ke, S as Fe, _ as Ee, W as Je, b as Ge, T as Ke, a as Qe } from "./TransitionFade-CiVLb7cy.js";
|
|
4
|
+
import { W as B, b as Be, _ as me, D as Ze, S as Se, C as el, P as Te, a as ll } from "./BaseDialog.vue_vue_type_script_setup_true_lang-djyc20Cp.js";
|
|
5
5
|
import { storeToRefs as de } from "pinia";
|
|
6
6
|
import { u as Ie } from "./message-dialog-UoMWOnil.js";
|
|
7
7
|
import { u as H, h as Le, p as ol, b as tl, d as pe } from "./vue-i18n-CTLGxUiF.js";
|
|
8
8
|
import { useSnackbar as al, useBreakpoints as je, FmButtonColorThemeVariant as ce } from "@feedmepos/ui-library";
|
|
9
9
|
import { _ as K } from "./SelectComponent.vue_vue_type_script_setup_true_lang-mR2PeX3S.js";
|
|
10
10
|
import { r as Q } from "./i18n-Cif1I9J2.js";
|
|
11
|
-
import { g as ve, u as fe, L as ie, a as he, _ as Re } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-
|
|
11
|
+
import { g as ve, u as fe, L as ie, a as he, _ as Re } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-DKA5lLXB.js";
|
|
12
12
|
import { a as ge } from "./helper-UCnMF9KV.js";
|
|
13
13
|
import { _ as Me } from "./NoData.vue_vue_type_script_setup_true_lang-Divo8W18.js";
|
|
14
14
|
const ye = [
|
|
@@ -3,9 +3,9 @@ import { u as Pt, f as An, p as Nn, d as ht, h as Pn } from "./vue-i18n-CTLGxUiF
|
|
|
3
3
|
import { useCoreStore as Vn } from "@feedmepos/mf-common";
|
|
4
4
|
import { storeToRefs as Mn } from "pinia";
|
|
5
5
|
import { useRoute as Ln } from "vue-router";
|
|
6
|
-
import { W as L, D as Ze, c as z, C as de, _ as Bn } from "./BaseDialog.vue_vue_type_script_setup_true_lang-
|
|
6
|
+
import { W as L, D as Ze, c as z, C as de, _ as Bn } from "./BaseDialog.vue_vue_type_script_setup_true_lang-djyc20Cp.js";
|
|
7
7
|
import { a as Vt, _ as Yt } from "./SelectComponent.vue_vue_type_script_setup_true_lang-mR2PeX3S.js";
|
|
8
|
-
import { R as $n } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-
|
|
8
|
+
import { R as $n } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-DKA5lLXB.js";
|
|
9
9
|
import { useSnackbar as Rn } from "@feedmepos/ui-library";
|
|
10
10
|
import { a as Yn } from "./helper-UCnMF9KV.js";
|
|
11
11
|
const Wn = {
|
package/dist/app.js
CHANGED
|
@@ -4960,41 +4960,41 @@ const a = {
|
|
|
4960
4960
|
path: "/overview",
|
|
4961
4961
|
alias: ["/"],
|
|
4962
4962
|
name: "overview",
|
|
4963
|
-
component: () => import("./OverviewView-
|
|
4963
|
+
component: () => import("./OverviewView-D8mA0P3y.js")
|
|
4964
4964
|
},
|
|
4965
4965
|
{
|
|
4966
4966
|
path: "/report",
|
|
4967
4967
|
name: "reports",
|
|
4968
|
-
component: () => import("./Report-
|
|
4968
|
+
component: () => import("./Report-Cg9Fen7g.js")
|
|
4969
4969
|
},
|
|
4970
4970
|
{
|
|
4971
4971
|
path: "/insights",
|
|
4972
4972
|
name: "insights",
|
|
4973
|
-
component: () => import("./InsightView-
|
|
4973
|
+
component: () => import("./InsightView-CxCeRQ-P.js")
|
|
4974
4974
|
},
|
|
4975
4975
|
{
|
|
4976
4976
|
path: "/report-view",
|
|
4977
4977
|
name: "reportView",
|
|
4978
|
-
component: () => import("./ReportView-
|
|
4978
|
+
component: () => import("./ReportView-BQb_myNM.js")
|
|
4979
4979
|
},
|
|
4980
4980
|
{
|
|
4981
4981
|
path: "/report-editor",
|
|
4982
4982
|
name: "reportEditor",
|
|
4983
|
-
component: () => import("./ReportEditor-
|
|
4983
|
+
component: () => import("./ReportEditor-Db1Ll1hk.js")
|
|
4984
4984
|
},
|
|
4985
4985
|
{
|
|
4986
4986
|
path: "/report-editor/tile-editor",
|
|
4987
4987
|
name: "tileEditor",
|
|
4988
|
-
component: () => import("./TileEditor-
|
|
4988
|
+
component: () => import("./TileEditor-DbbSibJa.js")
|
|
4989
4989
|
},
|
|
4990
4990
|
{
|
|
4991
4991
|
path: "/setting",
|
|
4992
4992
|
name: "setting",
|
|
4993
|
-
component: () => import("./Setting-
|
|
4993
|
+
component: () => import("./Setting-BxLdkt7x.js")
|
|
4994
4994
|
},
|
|
4995
4995
|
{
|
|
4996
4996
|
path: "/integration",
|
|
4997
|
-
component: () => import("./Layout-
|
|
4997
|
+
component: () => import("./Layout-B2cpQx3C.js"),
|
|
4998
4998
|
children: [
|
|
4999
4999
|
{
|
|
5000
5000
|
name: "integrations",
|
|
@@ -5028,7 +5028,7 @@ const u = {
|
|
|
5028
5028
|
"zh-CN": m,
|
|
5029
5029
|
"th-TH": c,
|
|
5030
5030
|
"zh-Hant": p
|
|
5031
|
-
}, h = e(() => import("./App-
|
|
5031
|
+
}, h = e(() => import("./App-2aEdytBx.js"));
|
|
5032
5032
|
export {
|
|
5033
5033
|
h as FmApp,
|
|
5034
5034
|
u as i18nMessages,
|
package/package.json
CHANGED
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import { defineComponent as ee, computed as c, watch as J, resolveComponent as te, createBlock as _, openBlock as y, withCtx as ae, createVNode as E, createElementVNode as L, unref as n, normalizeStyle as re, normalizeClass as N, createElementBlock as $, Fragment as oe, renderList as ne } from "vue";
|
|
2
|
-
import { _ as ie } from "./MenuTab.vue_vue_type_script_setup_true_lang-BJM6sKQU.js";
|
|
3
|
-
import { _ as se } from "./DynamicWidget.vue_vue_type_script_setup_true_lang-B75aeM0i.js";
|
|
4
|
-
import { useRouter as le, useRoute as ue } from "vue-router";
|
|
5
|
-
import { _ as ce } from "./Default.vue_vue_type_script_setup_true_lang-4V19EFBP.js";
|
|
6
|
-
import { a as de } from "./BaseDialog.vue_vue_type_script_setup_true_lang-BrHd550j.js";
|
|
7
|
-
import { storeToRefs as I } from "pinia";
|
|
8
|
-
import { b as pe, c as me, u as fe } from "./NavigationTab.vue_vue_type_script_setup_true_lang-4v9iLIA2.js";
|
|
9
|
-
import { _ as ge } from "./NoData.vue_vue_type_script_setup_true_lang-Divo8W18.js";
|
|
10
|
-
import { useSnackbar as ye, useBreakpoints as ve } from "@feedmepos/ui-library";
|
|
11
|
-
import { u as De, b as Se, f as be, d, e as Re } from "./vue-i18n-CTLGxUiF.js";
|
|
12
|
-
import { u as Ie } from "./message-dialog-UoMWOnil.js";
|
|
13
|
-
import { r as _e } from "./i18n-Cif1I9J2.js";
|
|
14
|
-
const qe = { class: "sticky top-0 z-10 bg-white" }, Ae = /* @__PURE__ */ ee({
|
|
15
|
-
__name: "ReportView",
|
|
16
|
-
setup(Ce) {
|
|
17
|
-
const { t: i, te: P } = De(), v = le(), e = ue(), m = ye(), { promptMessage: M } = Ie(), f = de(), q = pe(), l = Se(), { promptLoader: A } = be(), { breakpoints: u } = ve(), {
|
|
18
|
-
currentReport: o,
|
|
19
|
-
currentReportId: C,
|
|
20
|
-
isOpenDownloadDialog: T,
|
|
21
|
-
isOpenEmailDialog: F,
|
|
22
|
-
editingReport: j,
|
|
23
|
-
canCreateCustomReport: B,
|
|
24
|
-
customReportQuota: O
|
|
25
|
-
} = I(f), D = c(() => e.query.reportId || C.value), S = c(() => ({
|
|
26
|
-
startDate: e.query.startDate ? d(e.query.startDate).startOf("day").toISOString() : void 0,
|
|
27
|
-
endDate: e.query.endDate ? d(e.query.endDate).endOf("day").toISOString() : void 0
|
|
28
|
-
})), b = c(() => ({
|
|
29
|
-
startDate: e.query.compareStartDate ? d(e.query.compareStartDate).startOf("day").toISOString() : void 0,
|
|
30
|
-
endDate: e.query.compareEndDate ? d(e.query.compareEndDate).endOf("day").toISOString() : void 0
|
|
31
|
-
})), R = c(() => ({
|
|
32
|
-
start: e.query.timeStart ? JSON.parse(e.query.timeStart) : void 0,
|
|
33
|
-
end: e.query.timeEnd ? JSON.parse(e.query.timeEnd) : void 0
|
|
34
|
-
})), k = c(() => e.query.isAllLocation === "true"), Q = c(() => k.value ? l.selectedLocationIds : e.query.locationIds ? JSON.parse(e.query.locationIds) : void 0);
|
|
35
|
-
J(
|
|
36
|
-
() => f.reports.length,
|
|
37
|
-
(a) => {
|
|
38
|
-
if (a > 0) {
|
|
39
|
-
const t = e.query.reportId;
|
|
40
|
-
t && t !== C.value && (f.updateCurrentReportId(t), (S.value.startDate || S.value.endDate) && l.setDateRange({
|
|
41
|
-
startDate: S.value.startDate,
|
|
42
|
-
endDate: S.value.endDate
|
|
43
|
-
}), (b.value.startDate || b.value.endDate) && l.setCompareDateRange({
|
|
44
|
-
startDate: b.value.startDate,
|
|
45
|
-
endDate: b.value.endDate
|
|
46
|
-
}), (R.value.start || R.value.end) && l.setTimeRange({
|
|
47
|
-
start: R.value.start,
|
|
48
|
-
end: R.value.end
|
|
49
|
-
}), k.value || l.setSelectedLocationIds(Q.value));
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
{ immediate: !0 }
|
|
53
|
-
), J(
|
|
54
|
-
() => ({
|
|
55
|
-
selectedLocationIds: l.selectedLocationIds,
|
|
56
|
-
dateRange: l.dateRange,
|
|
57
|
-
timeRange: l.timeRange,
|
|
58
|
-
compareDateRange: l.compareDateRange
|
|
59
|
-
}),
|
|
60
|
-
(a) => {
|
|
61
|
-
const t = a.selectedLocationIds, s = a.dateRange, p = a.timeRange, r = a.compareDateRange;
|
|
62
|
-
if (!o.value) return;
|
|
63
|
-
const g = {
|
|
64
|
-
...e.query,
|
|
65
|
-
reportId: D.value,
|
|
66
|
-
startDate: s.startDate ? d(s.startDate).format("YYYY-MM-DD") : void 0,
|
|
67
|
-
endDate: s.endDate ? d(s.endDate).format("YYYY-MM-DD") : void 0,
|
|
68
|
-
compareStartDate: r.startDate ? d(r.startDate).format("YYYY-MM-DD") : void 0,
|
|
69
|
-
compareEndDate: r.endDate ? d(r.endDate).format("YYYY-MM-DD") : void 0,
|
|
70
|
-
timeStart: p.start ? JSON.stringify(p.start) : void 0,
|
|
71
|
-
timeEnd: p.end ? JSON.stringify(p.end) : void 0,
|
|
72
|
-
locationIds: t.length === l.locations.length ? null : t.length > 0 ? JSON.stringify(t) : void 0,
|
|
73
|
-
isAllLocation: String(t.length === l.locations.length)
|
|
74
|
-
}, X = JSON.stringify(e.query), Z = JSON.stringify(g);
|
|
75
|
-
X !== Z && v.replace({
|
|
76
|
-
name: e.name,
|
|
77
|
-
params: e.params,
|
|
78
|
-
query: g
|
|
79
|
-
});
|
|
80
|
-
},
|
|
81
|
-
{ deep: !0 }
|
|
82
|
-
);
|
|
83
|
-
const { isOpenAccountingDialog: z } = I(me()), { isOpenScheduleDialog: w } = I(fe()), { disabled: H } = I(Re()), G = c(() => {
|
|
84
|
-
const a = [
|
|
85
|
-
{
|
|
86
|
-
icon: "mail",
|
|
87
|
-
label: i("report.common.emailSchedule"),
|
|
88
|
-
onClick: () => {
|
|
89
|
-
w.value = !0;
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
// {
|
|
93
|
-
// icon: "article",
|
|
94
|
-
// label: "Set as Default",
|
|
95
|
-
// onClick: async () => {
|
|
96
|
-
// await promptLoader(async () => {
|
|
97
|
-
// if (currentReport.value) {
|
|
98
|
-
// try {
|
|
99
|
-
// await reportStore.updateDefaultReport(currentReport.value.id)
|
|
100
|
-
// snackbar.open({
|
|
101
|
-
// message: `Set ${currentReport.value.name} as default successful`,
|
|
102
|
-
// type: "success"
|
|
103
|
-
// })
|
|
104
|
-
// } catch (err) {
|
|
105
|
-
// snackbar.open({ message: JSON.stringify(err), type: "error" })
|
|
106
|
-
// }
|
|
107
|
-
// }
|
|
108
|
-
// })
|
|
109
|
-
// }
|
|
110
|
-
// },
|
|
111
|
-
{
|
|
112
|
-
icon: "content_copy",
|
|
113
|
-
label: i("report.common.copyID"),
|
|
114
|
-
onClick: () => {
|
|
115
|
-
o.value && (navigator.clipboard.writeText(D.value), m.open({ message: i("report.messages.copiedReportIdToClipboard"), type: "success" }));
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
icon: "report_jobs",
|
|
120
|
-
label: i("report.common.reportStatus"),
|
|
121
|
-
onClick: () => {
|
|
122
|
-
h();
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
];
|
|
126
|
-
return H.value || a.splice(1, 0, {
|
|
127
|
-
icon: "download",
|
|
128
|
-
label: i("report.common.accountingExport"),
|
|
129
|
-
onClick: x
|
|
130
|
-
}), a;
|
|
131
|
-
});
|
|
132
|
-
async function h() {
|
|
133
|
-
q.isOpenJobDialog = !0, await q.getJobs();
|
|
134
|
-
}
|
|
135
|
-
function U() {
|
|
136
|
-
j.value = JSON.parse(JSON.stringify(o.value)), v.push({
|
|
137
|
-
name: "reportEditor",
|
|
138
|
-
query: e.query
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
async function V() {
|
|
142
|
-
if (!B.value) {
|
|
143
|
-
let t = `Your current plan only support up to ${O.value} custom reports.`;
|
|
144
|
-
O.value === 0 && (t = "Your current plan does not support custom report."), m.open({
|
|
145
|
-
message: t,
|
|
146
|
-
type: "error"
|
|
147
|
-
});
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
if (!o.value) {
|
|
151
|
-
m.open({ message: "No Widget", type: "error" });
|
|
152
|
-
return;
|
|
153
|
-
}
|
|
154
|
-
if (await M({
|
|
155
|
-
title: `${i("report.messages.saveReport")}`,
|
|
156
|
-
message: i("report.messages.confirmAction", {
|
|
157
|
-
action: i("report.common.duplicate"),
|
|
158
|
-
name: o.value.name
|
|
159
|
-
})
|
|
160
|
-
}) && o.value) {
|
|
161
|
-
const t = JSON.parse(JSON.stringify(o.value));
|
|
162
|
-
t.editable = !0, t.id = "", t.name = `${t.name} duplicate`;
|
|
163
|
-
try {
|
|
164
|
-
await A(async () => {
|
|
165
|
-
const s = await f.createOrUpdateReport(t);
|
|
166
|
-
f.updateCurrentReportId(s.id), v.push({
|
|
167
|
-
name: "reportView",
|
|
168
|
-
params: { reportId: s.id, ...e.params },
|
|
169
|
-
query: e.query
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
} catch (s) {
|
|
173
|
-
console.log(s), m.open({ message: "Failed to clone report", type: "error" });
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
function x() {
|
|
178
|
-
z.value = !0;
|
|
179
|
-
}
|
|
180
|
-
function W() {
|
|
181
|
-
o.value && (navigator.clipboard.writeText(D.value), m.open({ message: "Copied report ID to clipboard", type: "success" }));
|
|
182
|
-
}
|
|
183
|
-
const Y = c(() => o.value ? o.value.tiles : []), K = c(() => {
|
|
184
|
-
var t;
|
|
185
|
-
let a = [
|
|
186
|
-
(t = o == null ? void 0 : o.value) != null && t.editable ? { label: i("report.common.edit"), value: "edit", isPrimary: !1 } : {
|
|
187
|
-
label: i("report.common.duplicate"),
|
|
188
|
-
value: "duplicate",
|
|
189
|
-
isPrimary: !1
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
label: i("report.common.download"),
|
|
193
|
-
value: "download",
|
|
194
|
-
isPrimary: !0,
|
|
195
|
-
prependIcon: "download"
|
|
196
|
-
},
|
|
197
|
-
{ label: i("report.schedule.sendEmail"), value: "email", isPrimary: !0 }
|
|
198
|
-
];
|
|
199
|
-
return u.value.xs && (a = [
|
|
200
|
-
...a,
|
|
201
|
-
{ label: "Send Email", value: "email", isPrimary: !1 },
|
|
202
|
-
{ label: "Job Delivery Status", value: "report_jobs", isPrimary: !1 },
|
|
203
|
-
{ label: "Email schedule", value: "schedule_email", isPrimary: !1 },
|
|
204
|
-
{ label: "Accounting export", value: "export", isPrimary: !1 },
|
|
205
|
-
{ label: "Copy ID", value: "content_copy", isPrimary: !1 }
|
|
206
|
-
], a = a.filter((s) => s.value !== "edit")), a;
|
|
207
|
-
});
|
|
208
|
-
return (a, t) => {
|
|
209
|
-
const s = te("FmPageHead");
|
|
210
|
-
return y(), _(ce, null, {
|
|
211
|
-
default: ae(() => {
|
|
212
|
-
var p;
|
|
213
|
-
return [
|
|
214
|
-
E(s, {
|
|
215
|
-
title: n(_e)(n(i), n(P), (p = n(o)) == null ? void 0 : p.name, "other"),
|
|
216
|
-
"back-button": !0,
|
|
217
|
-
actions: K.value,
|
|
218
|
-
"onClick:back": t[0] || (t[0] = (r) => n(v).push({ name: "reports", query: n(e).query })),
|
|
219
|
-
"onClick:action": t[1] || (t[1] = (r) => {
|
|
220
|
-
r === "duplicate" && V(), r === "download" && (T.value = !0), r === "email" && (F.value = !0), r === "edit" && U(), r === "schedule_email" && (w.value = !0), r === "content_copy" && W(), r === "export" && x(), r === "report_jobs" && h();
|
|
221
|
-
})
|
|
222
|
-
}, null, 8, ["title", "actions"]),
|
|
223
|
-
L("div", {
|
|
224
|
-
class: N(`flex flex-col overflow-y-auto ${n(u).xs || n(u).sm ? "pb-20" : ""}`),
|
|
225
|
-
style: re({ height: `calc(100% - ${n(u).lg || n(u).md ? 72 : 64}px)` })
|
|
226
|
-
}, [
|
|
227
|
-
L("div", qe, [
|
|
228
|
-
E(ie, {
|
|
229
|
-
"model-value": n(u).lg || n(u).md ? G.value : []
|
|
230
|
-
}, null, 8, ["model-value"])
|
|
231
|
-
]),
|
|
232
|
-
n(o) && Y.value.length > 0 ? (y(), $("div", {
|
|
233
|
-
key: 0,
|
|
234
|
-
class: N(["grid grid-cols-12", n(u).sm || n(u).xs ? "px-3 gap-[16px]" : "px-24 gap-[24px]"])
|
|
235
|
-
}, [
|
|
236
|
-
(y(!0), $(oe, null, ne(Y.value, (r, g) => (y(), _(se, {
|
|
237
|
-
key: `widget_${D.value}_${g}`,
|
|
238
|
-
"model-value": r,
|
|
239
|
-
index: g
|
|
240
|
-
}, null, 8, ["model-value", "index"]))), 128))
|
|
241
|
-
], 2)) : (y(), _(ge, { key: 1 }))
|
|
242
|
-
], 6)
|
|
243
|
-
];
|
|
244
|
-
}),
|
|
245
|
-
_: 1
|
|
246
|
-
});
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
export {
|
|
251
|
-
Ae as default
|
|
252
|
-
};
|