@feedmepos/mf-connect 0.1.0-beta.14 → 0.1.0-beta.16

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 (84) hide show
  1. package/dist/Analytic-DvSlAa_t.js +424 -0
  2. package/dist/{App-MM8u0qvP.js → App-DmFBcchH.js} +40 -36
  3. package/dist/{Broadcast-DLjZUfcr.js → Broadcast-BTOeVFBU.js} +32 -32
  4. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-ByKi5J-l.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-DT6HXkx5.js} +9 -8
  5. package/dist/Card-DFhm84IK.js +685 -0
  6. package/dist/{Collections-CB43gu1C.js → Collections-D2IuYUcN.js} +10 -9
  7. package/dist/{Credit-Bp0tXt3W.js → Credit-qIvAtq7R.js} +14 -14
  8. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-EgBOqBH3.js +2199 -0
  9. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-Bi3mzBfa.js → EffectSheet.vue_vue_type_style_index_0_lang-pjKQ_6XW.js} +8 -8
  10. package/dist/{Experience-aylihZhv.js → Experience-D5gxMCLN.js} +8 -8
  11. package/dist/{Game-E1hBMx9B.js → Game-D6mZtzpu.js} +15 -15
  12. package/dist/Index-Dkz6CoT6.js +215 -0
  13. package/dist/{Marketing-C75GsPO0.js → Marketing-BAYFml6G.js} +578 -587
  14. package/dist/{Member-DIM0L2ir.js → Member-CloTy2nL.js} +4 -4
  15. package/dist/{MemberList-BQ9l2rT-.js → MemberList-BehUKhxr.js} +258 -253
  16. package/dist/{MemberTransactions-BIeKePR1.js → MemberTransactions-CqmxYvON.js} +1 -1
  17. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-CthdVonu.js → MessageInput.vue_vue_type_script_setup_true_lang-Co0cpxMC.js} +2 -2
  18. package/dist/{Mission-DLjAZCB4.js → Mission-Cr4V4avB.js} +15 -15
  19. package/dist/Overview-D64jbEDD.js +895 -0
  20. package/dist/{Point-DHV_rUEE.js → Point-IN7NRLJS.js} +15 -15
  21. package/dist/{Promotion-BVmx40iz.js → Promotion-BJz73ezx.js} +53 -47
  22. package/dist/Record-BKTEX1pP.js +178 -0
  23. package/dist/Reward-CCJgOvDH.js +368 -0
  24. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-Rgbzqn5U.js +138 -0
  25. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-CcbYKFF8.js +1597 -0
  26. package/dist/{Segment-DWroRkTd.js → Segment-kyIAhPSY.js} +18 -17
  27. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-BvmCUzdR.js +181 -0
  28. package/dist/{Setting-M40REBId.js → Setting-D5dvEk4B.js} +8 -8
  29. package/dist/{Store-BGOMWZbC.js → Store-CjtA_F94.js} +13 -13
  30. package/dist/{StoreRewards-ChquI2r8.js → StoreRewards-vpfOX8G_.js} +12 -12
  31. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-CaRCrBJq.js → StoreTransactions.vue_vue_type_script_setup_true_lang-DHhgVgtJ.js} +10 -10
  32. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DX5xyafo.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-BGf724cg.js} +1 -1
  33. package/dist/{Tier-CXO0TUgB.js → Tier-DjC_RxdB.js} +15 -15
  34. package/dist/{Title-CMcEfHJa.js → Title-BEXXmy2h.js} +15 -15
  35. package/dist/{Transaction-DkrsndMM.js → Transaction-hqzPHSub.js} +2 -2
  36. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-Bs3zmaUB.js +130 -0
  37. package/dist/{Voucher-CqNxcmJo.js → Voucher-CKkH-xCH.js} +31 -31
  38. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-DHKFTJg0.js +419 -0
  39. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-2Z2TG2vR.js → ZodTextField.vue_vue_type_script_setup_true_lang-qxZSLYVe.js} +1 -1
  40. package/dist/{app-ogyiuzNx.js → app-BUvi63vQ.js} +509 -391
  41. package/dist/{app-BzXchd46.js → app-C2IaLk6H.js} +1 -1
  42. package/dist/app.js +1 -1
  43. package/dist/{business-B6IYUBfz.js → business-CN0T4-SZ.js} +1 -1
  44. package/dist/{campaign-DJhUnUbx.js → campaign-CoCWssTb.js} +2 -2
  45. package/dist/collectible.enum-Dy--R47i.js +19 -0
  46. package/dist/{collection.fn-bmKn9D9l.js → collection.fn-Cr1ywDaX.js} +2 -2
  47. package/dist/{dto-DaUD9ea4.js → dto-DM5CYJKF.js} +12 -12
  48. package/dist/{effect-BvPRfurd.js → effect-CKuSDDWx.js} +1 -1
  49. package/dist/{email-addresses-jLZnlSfX.js → email-addresses-DT9fEK3B.js} +1 -1
  50. package/dist/{export-CsvSurEw.js → export-kDvnDXT3.js} +3 -3
  51. package/dist/{helper-C_efRMNS.js → helper-CvALMpbP.js} +1 -1
  52. package/dist/{index-qNnyh15c.js → index--_y7iLN0.js} +1 -1
  53. package/dist/{index-CsBwKvG4.js → index-B238hLDe.js} +39 -35
  54. package/dist/{index-DT6Xb5Xc.js → index-BQv5U11Y.js} +1 -1
  55. package/dist/index-C3uwZknZ.js +38 -0
  56. package/dist/{index-gZr8cOWc.js → index-Cbub3cnc.js} +1 -1
  57. package/dist/index-CzPvn8U8.js +48 -0
  58. package/dist/{index-9A8cUiXS.js → index-D4ipGpBx.js} +1348 -1342
  59. package/dist/{index-CjUyqTlF.js → index-DfO38PIj.js} +3 -3
  60. package/dist/{index-xaFFKjJi.js → index-DoYTkrrb.js} +1 -1
  61. package/dist/{index-DoePEBOk.js → index-Dp57wxPG.js} +21 -17
  62. package/dist/{index-Bu-lsaBh.js → index-ey2AwCTp.js} +55 -44
  63. package/dist/{index-BEE6Fe4T.js → index-g3w2CMDp.js} +1 -1
  64. package/dist/{index-CPiO27Uo.js → index-nEtq_D86.js} +2 -2
  65. package/dist/{index-BmDAVnzz.js → index-qGUpKhOc.js} +198 -115
  66. package/dist/{index.esm2017-Bv33d2Yv.js → index.esm2017-Bk6dMA8A.js} +1 -1
  67. package/dist/{loading-BiEkXHTA.js → loading-BcJ3vmAh.js} +156 -153
  68. package/dist/{membership-giTCy-g8.js → membership-DUwlp5ep.js} +51 -43
  69. package/dist/{money-CobGBrLU.js → money-DdC6bMmU.js} +1 -1
  70. package/dist/{number-BBRHZBYI.js → number-BEED-TPN.js} +1 -1
  71. package/dist/objectid-DY_lUcSp.js +145 -0
  72. package/dist/reward-DHQKiUlZ.js +36 -0
  73. package/dist/{rule-CqOf5s0o.js → rule-Cqxw5hiW.js} +4 -3
  74. package/dist/{rule-builder-BVtZOrOZ.js → rule-builder-d3XamC-m.js} +1 -1
  75. package/dist/{template-C4KzHdbK.js → template-L9JcuU6u.js} +4 -4
  76. package/dist/trigger-CHZHABfq.js +114 -0
  77. package/dist/usePagination-BeF5K3M7.js +223 -0
  78. package/dist/{vue-i18n-DA4uJ1Yi.js → vue-i18n-Dm39UXgR.js} +2 -2
  79. package/dist/{usePagination-CxXG5hyx.js → xlsx-htG2uW_Q.js} +2962 -3183
  80. package/package.json +1 -1
  81. package/dist/Analytic-DxTc7gte.js +0 -622
  82. package/dist/Card-Cc8TtCxD.js +0 -824
  83. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-z5G1F4rO.js +0 -2816
  84. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-DIrOBrhU.js +0 -1762
@@ -0,0 +1,424 @@
1
+ import { defineComponent as j, ref as y, watch as X, onMounted as I, resolveComponent as x, openBlock as d, createBlock as A, withCtx as L, createVNode as h, unref as t, createElementVNode as i, createElementBlock as k, Fragment as $, renderList as D, computed as G, toDisplayString as O, isRef as T, createSlots as Y, createCommentVNode as V, createTextVNode as ee, reactive as te, onBeforeMount as ae } from "vue";
2
+ import { _ as le } from "./campaign-CpzFl8Vr.js";
3
+ import "./index-DfO38PIj.js";
4
+ import { F as ne, C as oe } from "./dto-DM5CYJKF.js";
5
+ import { useRouter as se } from "vue-router";
6
+ import { c as R } from "./index--_y7iLN0.js";
7
+ import { _ as re } from "./ZodTextField.vue_vue_type_script_setup_true_lang-qxZSLYVe.js";
8
+ import { Z as ie } from "./zod-Bg2FbC-D.js";
9
+ import { J as ue } from "./JsonViewer-v8_C7l5N.js";
10
+ import { u as ce } from "./loading-BcJ3vmAh.js";
11
+ import { useSnackbar as me } from "@feedmepos/ui-library";
12
+ import { u as de } from "./app-wDQR6dpb.js";
13
+ import { g as pe } from "./object-qECH92oz.js";
14
+ import { u as ve } from "./campaign-CoCWssTb.js";
15
+ import { u as fe } from "./membership-DUwlp5ep.js";
16
+ import { u as ye } from "./vue-i18n-Dm39UXgR.js";
17
+ const ge = { class: "ml-32 flex flex-col" }, _e = /* @__PURE__ */ j({
18
+ __name: "CampaignCard",
19
+ props: {
20
+ title: {},
21
+ items: {},
22
+ modelValue: {}
23
+ },
24
+ emits: ["update:model-value"],
25
+ setup(U, { emit: b }) {
26
+ const c = U, v = b, S = (o) => {
27
+ o ? p.value = c.items.map((a) => a.value) : p.value = [], r.value = o, v("update:model-value", p.value);
28
+ }, g = (o) => {
29
+ p.value = o, r.value = o.length === c.items.length, v("update:model-value", o);
30
+ }, r = y(!1), p = y([]);
31
+ return X(
32
+ () => c.modelValue,
33
+ () => {
34
+ p.value = c.modelValue.filter(
35
+ (o) => c.items.find((a) => a.value === o)
36
+ );
37
+ }
38
+ ), I(() => {
39
+ p.value = c.modelValue.filter(
40
+ (o) => c.items.find((a) => a.value === o)
41
+ );
42
+ }), (o, a) => {
43
+ const _ = x("FmCheckbox"), n = x("FmCard");
44
+ return d(), A(n, {
45
+ variant: "outlined",
46
+ class: "p-16 space-y-8 h-full cursor-pointer select-none xs:col-span-3"
47
+ }, {
48
+ default: L(() => [
49
+ h(_, {
50
+ "model-value": t(r),
51
+ value: "1",
52
+ label: c.title,
53
+ indeterminate: t(p).length > 0,
54
+ "onUpdate:modelValue": S
55
+ }, null, 8, ["model-value", "label", "indeterminate"]),
56
+ i("div", ge, [
57
+ (d(!0), k($, null, D(c.items, (l, u) => (d(), A(_, {
58
+ key: u,
59
+ "model-value": t(p),
60
+ label: l.label,
61
+ value: l.value,
62
+ "onUpdate:modelValue": g
63
+ }, null, 8, ["model-value", "label", "value"]))), 128))
64
+ ])
65
+ ]),
66
+ _: 1
67
+ });
68
+ };
69
+ }
70
+ }), he = { class: "space-y-16" }, be = { class: "flex items-center" }, xe = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary w-[300px]" }, Ce = { class: "space-y-[40px]" }, ke = /* @__PURE__ */ j({
71
+ __name: "LinkCampaign",
72
+ props: {
73
+ modelValue: {
74
+ type: Array,
75
+ required: !0
76
+ },
77
+ campaigns: {
78
+ type: Object,
79
+ required: !0
80
+ }
81
+ },
82
+ emits: ["update:model-value"],
83
+ setup(U, { emit: b }) {
84
+ const c = y(""), v = y([]), S = U, g = b, r = G(() => Object.entries(S.campaigns).reduce((o, [a, _]) => {
85
+ const n = _.filter(
86
+ (l) => l.label.toLowerCase().includes(c.value.toLowerCase())
87
+ );
88
+ return n.length > 0 && (o[a] = n), o;
89
+ }, {}));
90
+ function p(o, a) {
91
+ v.value = v.value.filter(
92
+ (_) => !a.map((n) => n.value).includes(_)
93
+ ), v.value = [.../* @__PURE__ */ new Set([...v.value, ...o])], g("update:model-value", v.value);
94
+ }
95
+ return I(() => {
96
+ v.value = S.modelValue;
97
+ }), (o, a) => {
98
+ const _ = x("FmTextField");
99
+ return d(), k($, null, [
100
+ h(ue, { json: U.campaigns }, null, 8, ["json"]),
101
+ i("div", he, [
102
+ i("div", be, [
103
+ i("div", xe, O(t(v).length) + " campaign(s) linked ", 1),
104
+ h(_, {
105
+ modelValue: t(c),
106
+ "onUpdate:modelValue": a[0] || (a[0] = (n) => T(c) ? c.value = n : null),
107
+ "prepend-icon": "search",
108
+ placeholder: "Search",
109
+ class: "w-full"
110
+ }, null, 8, ["modelValue"])
111
+ ]),
112
+ i("div", Ce, [
113
+ (d(!0), k($, null, D(t(r), (n, l) => (d(), A(_e, {
114
+ "model-value": t(v),
115
+ title: l,
116
+ items: n,
117
+ "onUpdate:modelValue": (u) => p(u, n)
118
+ }, null, 8, ["model-value", "title", "items", "onUpdate:modelValue"]))), 256))
119
+ ])
120
+ ])
121
+ ], 64);
122
+ };
123
+ }
124
+ }), Ve = { class: "flex items-center gap-x-8" }, Se = {
125
+ key: 0,
126
+ class: "space-y-16 pr-12"
127
+ }, we = { class: "flex items-center gap-x-16" }, Fe = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, Ae = { class: "mt-16" }, $e = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-600 py-8 px-16 bg-gray-100" }, Ue = { class: "flex justify-between items-center py-8 px-16 border-b-1" }, Pe = { class: "flex items-center gap-8" }, Le = /* @__PURE__ */ j({
128
+ __name: "AnalyticSheet",
129
+ emits: ["success"],
130
+ setup(U, { expose: b, emit: c }) {
131
+ const v = c, S = de();
132
+ me();
133
+ const g = y(!1), r = y(!1), p = {
134
+ name: "",
135
+ campaigns: []
136
+ }, o = y(""), a = y({ ...p }), _ = ne.superRefine((s, e) => {
137
+ }), n = y([]), l = y(null), { global: u, minor: w } = ce, P = G(() => {
138
+ const s = _.safeParse(a.value);
139
+ return s.success ? [] : s.error.errors;
140
+ });
141
+ function M(s) {
142
+ var e;
143
+ g.value = !0, s ? (l.value = { ...s }, a.value = { ...s, campaigns: (e = s.pf_campaigns) == null ? void 0 : e.map((m) => m._id) }) : (l.value = null, a.value = { ...p });
144
+ }
145
+ function F() {
146
+ g.value = !1, l.value = null;
147
+ }
148
+ function K() {
149
+ r.value = !0;
150
+ }
151
+ async function W() {
152
+ const s = await R.readAll({
153
+ limit: 1e3,
154
+ skip: 0,
155
+ sortBy: "_id",
156
+ search: "",
157
+ descending: !0
158
+ });
159
+ n.value = s.resources.filter(
160
+ (e) => !["MEMBERSHIP", "REWARD_POOL"].includes(e.type) && !["ISSUE_REWARD"].includes("event" in e ? e == null ? void 0 : e.event.type : "")
161
+ );
162
+ }
163
+ const N = G(() => {
164
+ const s = (m) => m.map((C) => ({
165
+ label: C.name,
166
+ value: C._id
167
+ }));
168
+ return pe(
169
+ n.value,
170
+ (m) => oe.formattedType(m.type),
171
+ s
172
+ );
173
+ }), q = G(() => Object.entries(N.value).reduce(
174
+ (s, [e, m]) => {
175
+ const C = m.filter((B) => {
176
+ var E, f;
177
+ return (f = (E = a.value) == null ? void 0 : E.campaigns) == null ? void 0 : f.includes(B.value);
178
+ }).filter(
179
+ (B) => B.label.toLowerCase().includes(o.value.toLowerCase())
180
+ );
181
+ return C.length > 0 && (s[e] = C), s;
182
+ },
183
+ {}
184
+ ));
185
+ function J(s) {
186
+ var m, C;
187
+ const e = (m = a.value.campaigns) == null ? void 0 : m.indexOf(s);
188
+ e != null && e > -1 && ((C = a.value.campaigns) == null || C.splice(e, 1));
189
+ }
190
+ async function Z() {
191
+ _.safeParse(a.value).success && await w(
192
+ async () => {
193
+ var e;
194
+ l.value ? await R.updateGroup(
195
+ (e = l.value) == null ? void 0 : e._id,
196
+ a.value
197
+ ) : await R.createGroup(a.value), v("success"), F();
198
+ },
199
+ {
200
+ message: "Saving group",
201
+ successMessage: "Group saved"
202
+ }
203
+ );
204
+ }
205
+ async function z() {
206
+ await w(
207
+ async () => {
208
+ var s;
209
+ await R.deleteGroup((s = l.value) == null ? void 0 : s._id), v("success"), F();
210
+ },
211
+ {
212
+ message: "Deleting group",
213
+ successMessage: "Group deleted"
214
+ }
215
+ );
216
+ }
217
+ return I(async () => {
218
+ await W();
219
+ }), b({
220
+ showSheet: M,
221
+ hideSheet: F
222
+ }), (s, e) => {
223
+ const m = x("FmButton"), C = x("FmTextField"), B = x("FmList"), E = x("FmSideSheet");
224
+ return d(), A(E, {
225
+ modelValue: t(g),
226
+ "onUpdate:modelValue": e[7] || (e[7] = (f) => T(g) ? g.value = f : null),
227
+ header: t(l) ? "Edit group" : "Add group",
228
+ "dismiss-away": "",
229
+ "close-button": !0,
230
+ "max-width": 550
231
+ }, Y({
232
+ "side-sheet-footer": L(() => [
233
+ i("div", Pe, [
234
+ t(r) ? V("", !0) : (d(), k($, { key: 0 }, [
235
+ h(m, {
236
+ label: "Submit",
237
+ onClick: Z,
238
+ disabled: t(P).length > 0 || t(S).isLoading
239
+ }, null, 8, ["disabled"]),
240
+ h(m, {
241
+ label: "Cancel",
242
+ onClick: e[4] || (e[4] = (f) => F()),
243
+ variant: "tertiary"
244
+ }),
245
+ t(l) ? (d(), A(m, {
246
+ key: 0,
247
+ label: "Delete",
248
+ variant: "plain",
249
+ class: "ml-auto fm-color-system-error-300",
250
+ onClick: e[5] || (e[5] = (f) => z())
251
+ })) : V("", !0)
252
+ ], 64)),
253
+ t(r) ? (d(), A(m, {
254
+ key: 1,
255
+ label: "Confirm",
256
+ onClick: e[6] || (e[6] = (f) => r.value = !1)
257
+ })) : V("", !0)
258
+ ])
259
+ ]),
260
+ default: L(() => [
261
+ t(r) ? V("", !0) : (d(), k("div", Se, [
262
+ e[9] || (e[9] = i("div", { class: "fm-typo-en-title-sm-800" }, "Group detail", -1)),
263
+ h(re, {
264
+ modelValue: t(a).name,
265
+ "onUpdate:modelValue": e[1] || (e[1] = (f) => t(a).name = f),
266
+ label: "Name",
267
+ schema: t(ie).typeAtPath(t(_), "name")
268
+ }, null, 8, ["modelValue", "schema"]),
269
+ e[10] || (e[10] = i("div", { class: "fm-typo-en-title-sm-800" }, "Link campaign", -1)),
270
+ i("div", we, [
271
+ i("div", Fe, O(t(a).campaigns.length) + " campaign(s) linked ", 1),
272
+ h(C, {
273
+ modelValue: t(o),
274
+ "onUpdate:modelValue": e[2] || (e[2] = (f) => T(o) ? o.value = f : null),
275
+ "prepend-icon": "search",
276
+ placeholder: "Search",
277
+ class: "w-auto"
278
+ }, null, 8, ["modelValue"])
279
+ ]),
280
+ h(m, {
281
+ variant: "plain",
282
+ icon: "link",
283
+ label: "Link Campaign",
284
+ onClick: K
285
+ })
286
+ ])),
287
+ t(r) ? (d(), A(ke, {
288
+ key: 1,
289
+ modelValue: t(a).campaigns,
290
+ "onUpdate:modelValue": e[3] || (e[3] = (f) => t(a).campaigns = f),
291
+ campaigns: t(N)
292
+ }, null, 8, ["modelValue", "campaigns"])) : V("", !0),
293
+ i("div", Ae, [
294
+ t(r) ? V("", !0) : (d(!0), k($, { key: 0 }, D(t(q), (f, Q) => (d(), k("div", null, [
295
+ i("div", $e, O(Q), 1),
296
+ h(B, { separator: !0 }, {
297
+ default: L(() => [
298
+ (d(!0), k($, null, D(f, (H) => (d(), k("div", Ue, [
299
+ i("div", null, O(H.label), 1),
300
+ i("div", null, [
301
+ h(m, {
302
+ icon: "delete",
303
+ onClick: (Re) => J(H.value),
304
+ variant: "tertiary"
305
+ }, null, 8, ["onClick"])
306
+ ])
307
+ ]))), 256))
308
+ ]),
309
+ _: 2
310
+ }, 1024)
311
+ ]))), 256))
312
+ ])
313
+ ]),
314
+ _: 2
315
+ }, [
316
+ t(r) ? {
317
+ name: "side-sheet-header",
318
+ fn: L(() => [
319
+ i("div", Ve, [
320
+ h(m, {
321
+ icon: "arrow_back",
322
+ variant: "tertiary",
323
+ onClick: e[0] || (e[0] = (f) => r.value = !1)
324
+ }),
325
+ e[8] || (e[8] = ee("Link campaign "))
326
+ ])
327
+ ]),
328
+ key: "0"
329
+ } : void 0
330
+ ]), 1032, ["modelValue", "header"]);
331
+ };
332
+ }
333
+ }), Ge = { class: "px-24 flex flex-col gap-y-32 pb-24" }, Me = { class: "space-y-16" }, Be = { class: "flex items-center justify-end" }, Ye = /* @__PURE__ */ j({
334
+ __name: "Analytic",
335
+ setup(U) {
336
+ const { t: b } = ye(), c = {
337
+ label: b("connect.analytic.addGroup"),
338
+ value: "create",
339
+ isPrimary: !0,
340
+ prependIcon: "add"
341
+ }, v = ve(), S = y(), g = y([]), r = y(""), p = te({
342
+ totalCampaign: 0,
343
+ totalProgram: 0,
344
+ totalMember: 0
345
+ }), o = y("1");
346
+ b("connect.analytic.summary.totalCampaign"), b("connect.analytic.summary.totalProgram"), b("connect.analytic.summary.totalMember");
347
+ function a(l) {
348
+ var u;
349
+ o.value = (/* @__PURE__ */ new Date()).toISOString(), (u = S.value) == null || u.showSheet(l);
350
+ }
351
+ async function _() {
352
+ await v.readGroups();
353
+ const l = await R.readAllGrouped({
354
+ limit: 100,
355
+ skip: 0,
356
+ sortBy: "_id",
357
+ search: "",
358
+ descending: !0
359
+ });
360
+ g.value = l.resources;
361
+ }
362
+ G(() => g.value.filter((l) => {
363
+ var u;
364
+ return l.name.includes(r.value) || ((u = l.pf_campaigns) == null ? void 0 : u.filter((w) => w.name.includes(r.value)).length);
365
+ }));
366
+ const n = fe();
367
+ return se(), y(!0), G(() => {
368
+ var l, u, w, P;
369
+ return !n.storeOption || !n.storeOption.company ? -1 : !n.payoutAccount || !n.payoutAccount.enable || n.payoutAccount.status != "APPROVED" ? 0 : (u = (l = n.store) == null ? void 0 : l.categories) != null && u.length ? (P = (w = n.store) == null ? void 0 : w.categories) != null && P.some(
370
+ (M) => M.bundles.some((F) => F.isFeedvibe)
371
+ ) ? 3 : 2 : 1;
372
+ }), ae(async () => {
373
+ await n.readMemberStore(), await n.readMembership(), await n.readPayoutAccount();
374
+ }), (l, u) => {
375
+ const w = x("FmPageHead"), P = x("FmSearch"), M = x("FmCard");
376
+ return x("FmButton"), x("FmIcon"), d(), k($, null, [
377
+ h(w, {
378
+ title: t(b)("connect.analytic.title"),
379
+ actions: t(g).length > 0 ? [c] : [],
380
+ "onClick:action": u[0] || (u[0] = (F) => a())
381
+ }, null, 8, ["title", "actions"]),
382
+ i("div", Ge, [
383
+ i("div", Me, [
384
+ i("div", Be, [
385
+ h(P, {
386
+ class: "xs:hidden",
387
+ modelValue: t(r),
388
+ "onUpdate:modelValue": u[1] || (u[1] = (F) => T(r) ? r.value = F : null),
389
+ placeholder: t(b)("connect.analytic.search"),
390
+ collapsible: ""
391
+ }, null, 8, ["modelValue", "placeholder"])
392
+ ]),
393
+ V("", !0)
394
+ ]),
395
+ V("", !0),
396
+ t(g).length ? V("", !0) : (d(), A(M, {
397
+ key: 1,
398
+ variant: "outlined",
399
+ class: "flex flex-col gap-y-24 items-center p-16"
400
+ }, {
401
+ default: L(() => u[7] || (u[7] = [
402
+ i("img", {
403
+ src: le,
404
+ class: "w-[150px]"
405
+ }, null, -1),
406
+ i("div", { class: "fm-typo-en-title-sm-800 text-center" }, " Analytics Dashboard Temporarily Unavailable ", -1),
407
+ i("div", { class: "fm-typo-body-en-md-400 text-center text-fm-color-typo-secondary" }, " We apologize for the inconvenience. The analytics dashboard is currently under maintenance to improve your experience. Please check back later for updates on system availability. ", -1)
408
+ ])),
409
+ _: 1
410
+ })),
411
+ V("", !0),
412
+ h(Le, {
413
+ ref_key: "sheetRef",
414
+ ref: S,
415
+ onSuccess: _
416
+ }, null, 512)
417
+ ])
418
+ ], 64);
419
+ };
420
+ }
421
+ });
422
+ export {
423
+ Ye as default
424
+ };
@@ -1,16 +1,16 @@
1
- import { defineComponent as lt, ref as ne, h as Z, watch as ut, resolveComponent as Yt, openBlock as ie, createBlock as dt, unref as P, computed as Ve, onMounted as Xt, createElementBlock as He, Fragment as Qt, createCommentVNode as $e, createVNode as Zt, createElementVNode as en, nextTick as tn } from "vue";
1
+ import { defineComponent as lt, ref as ne, h as Z, watch as ut, resolveComponent as Yt, openBlock as ie, createBlock as dt, unref as P, computed as Ve, onMounted as Xt, createElementBlock as $e, Fragment as Qt, createCommentVNode as He, createVNode as Zt, createElementVNode as en, nextTick as tn } from "vue";
2
2
  import { useRouter as nn, useRoute as ht, RouterView as rn } from "vue-router";
3
3
  import { useCoreStore as We, FeedMeAuth as sn } from "@feedmepos/mf-common";
4
4
  import { u as on } from "./app-wDQR6dpb.js";
5
- import { u as an } from "./business-B6IYUBfz.js";
6
- import "./index-DT6Xb5Xc.js";
5
+ import { u as an } from "./business-CN0T4-SZ.js";
6
+ import "./index-BQv5U11Y.js";
7
7
  import { components as ee, useSnackbar as cn, useDialog as ln } from "@feedmepos/ui-library";
8
- import { u as un } from "./vue-i18n-DA4uJ1Yi.js";
9
- import { R as f } from "./app-ogyiuzNx.js";
8
+ import { u as un } from "./vue-i18n-Dm39UXgR.js";
9
+ import { R as f } from "./app-BUvi63vQ.js";
10
10
  import { J as dn } from "./JsonViewer-v8_C7l5N.js";
11
- import { r as ye, L as hn, g as ft, i as fn, a as pn, _ as je, C as Ge, b as mn, S as z, c as w, d as j, E as Se, e as gn, f as pt, h as _n, j as vn, k as mt, l as g, m as In, F as Re, n as Tn, q as K, o as wn, p as yn, s as En, t as kn, u as bn } from "./index.esm2017-Bv33d2Yv.js";
11
+ import { r as ye, L as hn, g as ft, i as fn, a as pn, _ as je, C as Ge, b as mn, S as z, c as w, d as j, E as Se, e as gn, f as pt, h as _n, j as vn, k as mt, l as g, m as In, F as Re, n as Tn, q as K, o as wn, p as yn, s as En, t as kn, u as bn } from "./index.esm2017-Bk6dMA8A.js";
12
12
  import { _ as Pe } from "./tslib.es6-BCqqvLQ_.js";
13
- import { S as Be, c as Sn } from "./index-CjUyqTlF.js";
13
+ import { S as Be, c as Sn } from "./index-DfO38PIj.js";
14
14
  import { Y as Rn } from "./remy-vue-client-Cpppk9h-.js";
15
15
  const Pn = /* @__PURE__ */ lt({
16
16
  __name: "NavigationTab",
@@ -94,6 +94,10 @@ const Pn = /* @__PURE__ */ lt({
94
94
  }
95
95
  ]
96
96
  },
97
+ {
98
+ label: e("connect.navigation.referral"),
99
+ value: f["$connect-REFERRAL"]
100
+ },
97
101
  {
98
102
  label: e("connect.navigation.store"),
99
103
  value: f["$connect-STORE"]
@@ -635,7 +639,7 @@ function B(n) {
635
639
  } catch {
636
640
  }
637
641
  }
638
- async function Hn(n, e = !1) {
642
+ async function $n(n, e = !1) {
639
643
  const t = j(n), i = await t.getIdToken(e), r = Oe(i);
640
644
  u(
641
645
  r && r.exp && r.auth_time && r.iat,
@@ -706,10 +710,10 @@ async function q(n, e, t = !1) {
706
710
  try {
707
711
  return await e;
708
712
  } catch (i) {
709
- throw i instanceof Re && $n(i) && n.auth.currentUser === n && await n.auth.signOut(), i;
713
+ throw i instanceof Re && Hn(i) && n.auth.currentUser === n && await n.auth.signOut(), i;
710
714
  }
711
715
  }
712
- function $n({ code: n }) {
716
+ function Hn({ code: n }) {
713
717
  return n === "auth/user-disabled" || n === "auth/user-token-expired";
714
718
  }
715
719
  /**
@@ -924,7 +928,7 @@ async function qn(n, e) {
924
928
  * See the License for the specific language governing permissions and
925
929
  * limitations under the License.
926
930
  */
927
- class H {
931
+ class $ {
928
932
  constructor() {
929
933
  this.refreshToken = null, this.accessToken = null, this.expirationTime = null;
930
934
  }
@@ -976,7 +980,7 @@ class H {
976
980
  this.refreshToken = t || null, this.accessToken = e || null, this.expirationTime = Date.now() + i * 1e3;
977
981
  }
978
982
  static fromJSON(e, t) {
979
- const { refreshToken: i, accessToken: r, expirationTime: s } = t, o = new H();
983
+ const { refreshToken: i, accessToken: r, expirationTime: s } = t, o = new $();
980
984
  return i && (u(typeof i == "string", "internal-error", {
981
985
  appName: e
982
986
  }), o.refreshToken = i), r && (u(typeof r == "string", "internal-error", {
@@ -996,7 +1000,7 @@ class H {
996
1000
  this.accessToken = e.accessToken, this.refreshToken = e.refreshToken, this.expirationTime = e.expirationTime;
997
1001
  }
998
1002
  _clone() {
999
- return Object.assign(new H(), this.toJSON());
1003
+ return Object.assign(new $(), this.toJSON());
1000
1004
  }
1001
1005
  _performRefresh() {
1002
1006
  return y("not implemented");
@@ -1036,7 +1040,7 @@ class E {
1036
1040
  ), this.accessToken !== t && (this.accessToken = t, await this.auth._persistUserIfCurrent(this), this.auth._notifyListenersIfCurrent(this)), t;
1037
1041
  }
1038
1042
  getIdTokenResult(e) {
1039
- return Hn(this, e);
1043
+ return $n(this, e);
1040
1044
  }
1041
1045
  reload() {
1042
1046
  return jn(this);
@@ -1113,7 +1117,7 @@ class E {
1113
1117
  "internal-error"
1114
1118
  /* AuthErrorCode.INTERNAL_ERROR */
1115
1119
  );
1116
- const Kt = H.fromJSON(this.name, xe);
1120
+ const Kt = $.fromJSON(this.name, xe);
1117
1121
  u(
1118
1122
  typeof U == "string",
1119
1123
  e,
@@ -1152,7 +1156,7 @@ class E {
1152
1156
  * @param idTokenResponse
1153
1157
  */
1154
1158
  static async _fromIdTokenResponse(e, t, i = !1) {
1155
- const r = new H();
1159
+ const r = new $();
1156
1160
  r.updateFromServerResponse(t);
1157
1161
  const s = new E({
1158
1162
  uid: t.localId,
@@ -1174,7 +1178,7 @@ class E {
1174
1178
  "internal-error"
1175
1179
  /* AuthErrorCode.INTERNAL_ERROR */
1176
1180
  );
1177
- const s = r.providerUserInfo !== void 0 ? kt(r.providerUserInfo) : [], o = !(r.email && r.passwordHash) && !(s != null && s.length), c = new H();
1181
+ const s = r.providerUserInfo !== void 0 ? kt(r.providerUserInfo) : [], o = !(r.email && r.passwordHash) && !(s != null && s.length), c = new $();
1178
1182
  c.updateFromIdToken(i);
1179
1183
  const a = new E({
1180
1184
  uid: r.localId,
@@ -1277,7 +1281,7 @@ const Je = bt;
1277
1281
  function se(n, e, t) {
1278
1282
  return `firebase:${n}:${e}:${t}`;
1279
1283
  }
1280
- class $ {
1284
+ class H {
1281
1285
  constructor(e, t, i) {
1282
1286
  this.persistence = e, this.auth = t, this.userKey = i;
1283
1287
  const { config: r, name: s } = this.auth;
@@ -1308,7 +1312,7 @@ class $ {
1308
1312
  }
1309
1313
  static async create(e, t, i = "authUser") {
1310
1314
  if (!t.length)
1311
- return new $(k(Je), e, i);
1315
+ return new H(k(Je), e, i);
1312
1316
  const r = (await Promise.all(t.map(async (l) => {
1313
1317
  if (await l._isAvailable())
1314
1318
  return l;
@@ -1327,13 +1331,13 @@ class $ {
1327
1331
  } catch {
1328
1332
  }
1329
1333
  const a = r.filter((l) => l._shouldAllowMigration);
1330
- return !s._shouldAllowMigration || !a.length ? new $(s, e, i) : (s = a[0], c && await s._set(o, c.toJSON()), await Promise.all(t.map(async (l) => {
1334
+ return !s._shouldAllowMigration || !a.length ? new H(s, e, i) : (s = a[0], c && await s._set(o, c.toJSON()), await Promise.all(t.map(async (l) => {
1331
1335
  if (l !== s)
1332
1336
  try {
1333
1337
  await l._remove(o);
1334
1338
  } catch {
1335
1339
  }
1336
- })), new $(s, e, i));
1340
+ })), new H(s, e, i));
1337
1341
  }
1338
1342
  }
1339
1343
  /**
@@ -1641,7 +1645,7 @@ class ei {
1641
1645
  _initializeWithPersistence(e, t) {
1642
1646
  return t && (this._popupRedirectResolver = k(t)), this._initializationPromise = this.queue(async () => {
1643
1647
  var i, r;
1644
- if (!this._deleted && (this.persistenceManager = await $.create(this, e), !this._deleted)) {
1648
+ if (!this._deleted && (this.persistenceManager = await H.create(this, e), !this._deleted)) {
1645
1649
  if (!((i = this._popupRedirectResolver) === null || i === void 0) && i._shouldInitProactively)
1646
1650
  try {
1647
1651
  await this._popupRedirectResolver._initialize(this);
@@ -1845,7 +1849,7 @@ class ei {
1845
1849
  this,
1846
1850
  "argument-error"
1847
1851
  /* AuthErrorCode.ARGUMENT_ERROR */
1848
- ), this.redirectPersistenceManager = await $.create(
1852
+ ), this.redirectPersistenceManager = await H.create(
1849
1853
  this,
1850
1854
  [k(t._redirectPersistence)],
1851
1855
  "redirectUser"
@@ -2993,7 +2997,7 @@ const wi = Vt;
2993
2997
  * See the License for the specific language governing permissions and
2994
2998
  * limitations under the License.
2995
2999
  */
2996
- class Ht extends xt {
3000
+ class $t extends xt {
2997
3001
  constructor() {
2998
3002
  super(
2999
3003
  () => window.sessionStorage,
@@ -3006,8 +3010,8 @@ class Ht extends xt {
3006
3010
  _removeListener(e, t) {
3007
3011
  }
3008
3012
  }
3009
- Ht.type = "SESSION";
3010
- const $t = Ht;
3013
+ $t.type = "SESSION";
3014
+ const Ht = $t;
3011
3015
  /**
3012
3016
  * @license
3013
3017
  * Copyright 2019 Google LLC
@@ -3801,7 +3805,7 @@ V.currentPopupAction = null;
3801
3805
  * limitations under the License.
3802
3806
  */
3803
3807
  const Vi = "pendingRedirect", oe = /* @__PURE__ */ new Map();
3804
- class Hi extends qt {
3808
+ class $i extends qt {
3805
3809
  constructor(e, t, i = !1) {
3806
3810
  super(e, [
3807
3811
  "signInViaRedirect",
@@ -3819,7 +3823,7 @@ class Hi extends qt {
3819
3823
  let e = oe.get(this.auth._key());
3820
3824
  if (!e) {
3821
3825
  try {
3822
- const i = await $i(this.resolver, this.auth) ? await super.execute() : null;
3826
+ const i = await Hi(this.resolver, this.auth) ? await super.execute() : null;
3823
3827
  e = () => Promise.resolve(i);
3824
3828
  } catch (t) {
3825
3829
  e = () => Promise.reject(t);
@@ -3847,7 +3851,7 @@ class Hi extends qt {
3847
3851
  cleanUp() {
3848
3852
  }
3849
3853
  }
3850
- async function $i(n, e) {
3854
+ async function Hi(n, e) {
3851
3855
  const t = Gi(e), i = ji(n);
3852
3856
  if (!await i._isAvailable())
3853
3857
  return !1;
@@ -3866,7 +3870,7 @@ function Gi(n) {
3866
3870
  async function Bi(n, e, t = !1) {
3867
3871
  if (w(n.app))
3868
3872
  return Promise.reject(L(n));
3869
- const i = me(n), r = Mi(i, e), o = await new Hi(i, r, t).execute();
3873
+ const i = me(n), r = Mi(i, e), o = await new $i(i, r, t).execute();
3870
3874
  return o && !t && (delete o.user._redirectEventId, await i._persistUserIfCurrent(o.user), await i._setRedirectUser(null, e)), o;
3871
3875
  }
3872
3876
  /**
@@ -4294,7 +4298,7 @@ function Tr({ config: n }) {
4294
4298
  const we = "webStorageSupport";
4295
4299
  class wr {
4296
4300
  constructor() {
4297
- this.eventManagers = {}, this.iframes = {}, this.originValidationPromises = {}, this._redirectPersistence = $t, this._completeRedirectFn = Bi, this._overrideRedirectResult = Wi;
4301
+ this.eventManagers = {}, this.iframes = {}, this.originValidationPromises = {}, this._redirectPersistence = Ht, this._completeRedirectFn = Bi, this._overrideRedirectResult = Wi;
4298
4302
  }
4299
4303
  // Wrapping in async even though we don't await anywhere in order
4300
4304
  // to make sure errors are raised as promise rejections
@@ -4519,7 +4523,7 @@ function Ar(n = vn()) {
4519
4523
  persistence: [
4520
4524
  Li,
4521
4525
  wi,
4522
- $t
4526
+ Ht
4523
4527
  ]
4524
4528
  }), i = ft("authTokenSyncURL");
4525
4529
  if (i && typeof isSecureContext == "boolean" && isSecureContext) {
@@ -4597,9 +4601,9 @@ const Mr = {
4597
4601
  async (p, m) => {
4598
4602
  console.log("Current business changed"), p != null && p._id != m._id && (console.log("forceRerender when business changes", p, m), M());
4599
4603
  }
4600
- ), (p, m) => (ie(), He(Qt, null, [
4601
- P(d) && P(h) === "v2" ? (ie(), dt(P(rn), { key: 0 })) : $e("", !0),
4602
- P(d) && P(h) !== "v2" ? (ie(), He("div", Mr, [
4604
+ ), (p, m) => (ie(), $e(Qt, null, [
4605
+ P(d) && P(h) === "v2" ? (ie(), dt(P(rn), { key: 0 })) : He("", !0),
4606
+ P(d) && P(h) !== "v2" ? (ie(), $e("div", Mr, [
4603
4607
  Zt(dn, {
4604
4608
  json: { url: P(_) }
4605
4609
  }, null, 8, ["json"]),
@@ -4610,7 +4614,7 @@ const Mr = {
4610
4614
  width: "100%",
4611
4615
  src: P(_)
4612
4616
  }, null, 8, Ur)
4613
- ])) : $e("", !0)
4617
+ ])) : He("", !0)
4614
4618
  ], 64));
4615
4619
  }
4616
4620
  });