@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.
Files changed (18) hide show
  1. package/dist/{App-8K5LVQ4K.js → App-2aEdytBx.js} +3 -3
  2. package/dist/{BaseDialog.vue_vue_type_script_setup_true_lang-BrHd550j.js → BaseDialog.vue_vue_type_script_setup_true_lang-djyc20Cp.js} +58 -58
  3. package/dist/{Default.vue_vue_type_script_setup_true_lang-4V19EFBP.js → Default.vue_vue_type_script_setup_true_lang-DpSgAipe.js} +1 -1
  4. package/dist/{DynamicWidget.vue_vue_type_script_setup_true_lang-B75aeM0i.js → DynamicWidget.vue_vue_type_script_setup_true_lang-DKA5lLXB.js} +1 -1
  5. package/dist/{InsightView-DCIgjpGL.js → InsightView-CxCeRQ-P.js} +2 -2
  6. package/dist/{Layout-Dco__bZI.js → Layout-B2cpQx3C.js} +1 -1
  7. package/dist/{MenuTab.vue_vue_type_script_setup_true_lang-BJM6sKQU.js → MenuTab.vue_vue_type_script_setup_true_lang-C8oiHuOX.js} +2 -2
  8. package/dist/{NavigationTab.vue_vue_type_script_setup_true_lang-4v9iLIA2.js → NavigationTab.vue_vue_type_script_setup_true_lang-CDxb2Mjg.js} +1 -1
  9. package/dist/{OverviewView-CUPsimnH.js → OverviewView-D8mA0P3y.js} +4 -4
  10. package/dist/{Report-BljRc1xi.js → Report-Cg9Fen7g.js} +2 -2
  11. package/dist/{ReportEditor-DgAWdCZe.js → ReportEditor-Db1Ll1hk.js} +183 -182
  12. package/dist/ReportView-BQb_myNM.js +246 -0
  13. package/dist/{Setting-BciZnr8l.js → Setting-BxLdkt7x.js} +2 -2
  14. package/dist/{TileEditor-DgawblCV.js → TileEditor-DbbSibJa.js} +3 -3
  15. package/dist/{TransitionFade-1tV8-j1Z.js → TransitionFade-CiVLb7cy.js} +2 -2
  16. package/dist/app.js +9 -9
  17. package/package.json +1 -1
  18. 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-4V19EFBP.js";
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-4v9iLIA2.js";
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-1tV8-j1Z.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-BrHd550j.js";
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-B75aeM0i.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-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-BrHd550j.js";
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-B75aeM0i.js";
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-CUPsimnH.js")
4963
+ component: () => import("./OverviewView-D8mA0P3y.js")
4964
4964
  },
4965
4965
  {
4966
4966
  path: "/report",
4967
4967
  name: "reports",
4968
- component: () => import("./Report-BljRc1xi.js")
4968
+ component: () => import("./Report-Cg9Fen7g.js")
4969
4969
  },
4970
4970
  {
4971
4971
  path: "/insights",
4972
4972
  name: "insights",
4973
- component: () => import("./InsightView-DCIgjpGL.js")
4973
+ component: () => import("./InsightView-CxCeRQ-P.js")
4974
4974
  },
4975
4975
  {
4976
4976
  path: "/report-view",
4977
4977
  name: "reportView",
4978
- component: () => import("./ReportView-CMRcpoTz.js")
4978
+ component: () => import("./ReportView-BQb_myNM.js")
4979
4979
  },
4980
4980
  {
4981
4981
  path: "/report-editor",
4982
4982
  name: "reportEditor",
4983
- component: () => import("./ReportEditor-DgAWdCZe.js")
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-DgawblCV.js")
4988
+ component: () => import("./TileEditor-DbbSibJa.js")
4989
4989
  },
4990
4990
  {
4991
4991
  path: "/setting",
4992
4992
  name: "setting",
4993
- component: () => import("./Setting-BciZnr8l.js")
4993
+ component: () => import("./Setting-BxLdkt7x.js")
4994
4994
  },
4995
4995
  {
4996
4996
  path: "/integration",
4997
- component: () => import("./Layout-Dco__bZI.js"),
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-8K5LVQ4K.js"));
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-report",
3
- "version": "5.18.2-beta.1",
3
+ "version": "5.18.2-beta.2",
4
4
  "files": [
5
5
  "dist"
6
6
  ],
@@ -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
- };