@feedmepos/mf-connect 0.1.66-prod → 0.1.68-prod

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 (91) hide show
  1. package/dist/{Analytic-Dex_Tx2q.js → Analytic-mn6S2yVI.js} +10 -10
  2. package/dist/{App-xTx4Ue3K.js → App-txADlT1z.js} +8 -8
  3. package/dist/{Bin-O12IFgkp.js → Bin-D7LRr3gV.js} +8 -8
  4. package/dist/{Broadcast-CatdGCjW.js → Broadcast-C6wePnIr.js} +8 -8
  5. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-9Sr8o3dw.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-C3QkAQeW.js} +6 -6
  6. package/dist/{Card-N92UlALy.js → Card-CGeu289a.js} +16 -16
  7. package/dist/Collections-B7IZD3AS.js +518 -0
  8. package/dist/{Credit-DrEIvXv-.js → Credit-CPs7F-be.js} +8 -8
  9. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-KK0Dqjv5.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-BOWLrVko.js} +30 -30
  10. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-UtoDaX_z.js → EffectSheet.vue_vue_type_style_index_0_lang-Bct0b3A6.js} +6 -6
  11. package/dist/{Experience-BaemuCSB.js → Experience-Cdjvf4QQ.js} +8 -8
  12. package/dist/Game-CIgthDBx.js +297 -0
  13. package/dist/{Index-C10pITDk.js → Index-CZ4qViHs.js} +10 -10
  14. package/dist/{Marketing-Bp6IOLLN.js → Marketing-Di36xU4J.js} +26 -26
  15. package/dist/{Member-CMCQWAn4.js → Member-BUN463uF.js} +10 -10
  16. package/dist/{MemberList-8rc8IEUW.js → MemberList-B9Ula0AW.js} +25 -25
  17. package/dist/{MemberTransactions-ScjuvdkZ.js → MemberTransactions-Cd57Udqx.js} +1 -1
  18. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BuyisyTn.js → MessageInput.vue_vue_type_script_setup_true_lang-sSKdealx.js} +8 -8
  19. package/dist/{Mission-Dy9Id85G.js → Mission-CGOzNov4.js} +9 -9
  20. package/dist/{Overview-BKvCHfda.js → Overview-GdXzr2WH.js} +18 -18
  21. package/dist/{Point-9LTxKPHm.js → Point-BVFY-XiW.js} +8 -8
  22. package/dist/{Promotion-R6MYVkpm.js → Promotion-Dr-tuVjt.js} +9 -9
  23. package/dist/{Queue-DEvVTfHT.js → Queue-PmvC1yWV.js} +10 -10
  24. package/dist/{Record-DM_x9hFV.js → Record-CWPrCH5G.js} +8 -8
  25. package/dist/{Reward-BX8EO2ux.js → Reward-mVzs68RK.js} +15 -15
  26. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-sxGSkGC-.js → RewardGroup.vue_vue_type_script_setup_true_lang-CL6XHyWQ.js} +11 -11
  27. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-BIUE1m4e.js → RuleGroup.vue_vue_type_script_setup_true_lang-D5AH06gG.js} +13 -13
  28. package/dist/{Segment-Bbgwifvc.js → Segment-DN8NqF5Z.js} +22 -22
  29. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-CIAo_D2b.js → SelectItems.vue_vue_type_script_setup_true_lang-DV7O5NSz.js} +2 -2
  30. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-DFlrkNBl.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang--917aYU1.js} +11 -11
  31. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-lfkT2XNF.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-Bsi65fL4.js} +3 -3
  32. package/dist/{Setting-B-kXzoHH.js → Setting-BERhgbve.js} +14 -14
  33. package/dist/{SettingAdvertisements-CUFXQkkL.js → SettingAdvertisements-C5Sz6c7L.js} +11 -11
  34. package/dist/{Store-D-gx7OUV.js → Store-CaOnUiYt.js} +20 -20
  35. package/dist/{StoreRewards-DHVK_mDe.js → StoreRewards-CLGfESxd.js} +13 -13
  36. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-7OjLo9R2.js → StoreTransactions.vue_vue_type_script_setup_true_lang-oCL_e3n8.js} +19 -19
  37. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DrTeUogI.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-DVoEzbkf.js} +1 -1
  38. package/dist/{Tier-ewMN4_G2.js → Tier-CJXn_HWu.js} +19 -19
  39. package/dist/{Title-D_cJiG_c.js → Title-bQptSSy-.js} +18 -18
  40. package/dist/{Transaction-HNGUlBIg.js → Transaction-DvCOmlA4.js} +2 -2
  41. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-Buds4o3e.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-D0UejW9B.js} +6 -6
  42. package/dist/{Voucher-Ba4LIUB8.js → Voucher-WMcaSPAT.js} +43 -43
  43. package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-DM7nlQQu.js → VoucherEditor.vue_vue_type_script_setup_true_lang-DjWgA-j6.js} +10 -10
  44. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-B9gMqM1N.js → ZodTextField.vue_vue_type_script_setup_true_lang-BVo5ssyj.js} +1 -1
  45. package/dist/{app-CmNTg0jj.js → app-CyCrBGv3.js} +31 -31
  46. package/dist/{app-pVtgk-L3.js → app-DKeD1La_.js} +1 -1
  47. package/dist/app.js +1 -1
  48. package/dist/{business-CziFmjeR.js → business-CLb9l1b1.js} +1 -1
  49. package/dist/{campaign--X1xfS9V.js → campaign-CjAsOKIB.js} +1 -1
  50. package/dist/{campaign-C79gQI9M.js → campaign-D-J_LKoT.js} +9 -9
  51. package/dist/{campaign.enum-D14uCZpw.js → campaign.enum-DWyh4SwC.js} +1 -1
  52. package/dist/{campaign.fn-CMpi6qMn.js → campaign.fn-YRBeuPcA.js} +79 -79
  53. package/dist/{collectible.enum-CDJQ49gX.js → collectible.enum-BgCOtIMq.js} +1 -1
  54. package/dist/{collection.fn-B0nvnq3G.js → collection.fn-DX-zdEXS.js} +2 -2
  55. package/dist/{dto-_8ubkwaG.js → dto-DL0g5qhf.js} +4 -4
  56. package/dist/{effect-BH2SkAIi.js → effect-CL2u9eac.js} +1 -1
  57. package/dist/{email-addresses-vfUr4p6V.js → email-addresses-BhuTtcLm.js} +1 -1
  58. package/dist/{export--YmGGY6M.js → export-DUUhizS2.js} +3 -3
  59. package/dist/{helper-BB2-UXrE.js → helper-I0TJrh8b.js} +1 -1
  60. package/dist/{index-BZH6sxhI.js → index-BfEp-j_0.js} +1 -1
  61. package/dist/{index-7nmLrTPs.js → index-Blm8f_cb.js} +4 -4
  62. package/dist/{index-DEex3XPT.js → index-BmXYRr-L.js} +1 -1
  63. package/dist/{index-BfHEYEgj.js → index-Bse6B8Mt.js} +1 -1
  64. package/dist/{index-DVG8DHie.js → index-BwZAD-K8.js} +1023 -1023
  65. package/dist/{index-DRcdGfYq.js → index-Bxn8VXKm.js} +4 -4
  66. package/dist/{index-BvcJQRo9.js → index-C3Fk7d1Y.js} +11 -6
  67. package/dist/{index-Fo245_nF.js → index-CdZvVrxS.js} +2 -2
  68. package/dist/{index-B3T3EheY.js → index-CutCCmDE.js} +3 -3
  69. package/dist/{index-CmqyrjLD.js → index-DKGii-fX.js} +1 -1
  70. package/dist/{index-9P5UlnE-.js → index-DNqSC7ka.js} +1 -1
  71. package/dist/{index-BuzyJvPQ.js → index-DTTzTXX1.js} +1 -1
  72. package/dist/{index-C17pw-2t.js → index-b6RyWOm9.js} +1 -1
  73. package/dist/{index.esm2017-CjUTe1Ic.js → index.esm2017-B8QUDGVd.js} +103 -103
  74. package/dist/{loading-CC5UWSwO.js → loading-BWmCgmGC.js} +1 -1
  75. package/dist/{membership-Bj6Yp1IE.js → membership-BvayWzl6.js} +3 -3
  76. package/dist/{money-DZKYA9Rl.js → money-C0PooSaL.js} +1 -1
  77. package/dist/{number-DjbpnxQG.js → number-BS2wwgIh.js} +1 -1
  78. package/dist/{objectid-Dx-B6b_I.js → objectid-BNMnEAnn.js} +4 -4
  79. package/dist/{plugins-QrCF9dOz.js → plugins-DzOF3k73.js} +2 -2
  80. package/dist/{reward-De9pannn.js → reward-D58ffPRQ.js} +1 -1
  81. package/dist/{rule-CTzuKmMz.js → rule-DxZ0VW_3.js} +3 -3
  82. package/dist/{rule-builder-Dvn_UafF.js → rule-builder-C9NKIs8v.js} +1 -1
  83. package/dist/{template-D8tUTODZ.js → template-KSzVf-4d.js} +4 -4
  84. package/dist/{timezone-CgFOIlc3.js → timezone-De5grXDM.js} +1 -1
  85. package/dist/{trigger-BdT4xwej.js → trigger-DLx6fvD3.js} +4 -4
  86. package/dist/{user-C61pXmwe.js → user-BZkojoKC.js} +1 -1
  87. package/dist/{vue-i18n-Ermow4kz.js → vue-i18n-Bh-0GwIQ.js} +157 -157
  88. package/dist/{xlsx-CqOQxyoN.js → xlsx-BGzhjrdT.js} +1 -1
  89. package/package.json +1 -1
  90. package/dist/Collections-Cl_pC7iT.js +0 -472
  91. package/dist/Game-Dl7VrCEP.js +0 -283
@@ -0,0 +1,518 @@
1
+ var ne = Object.defineProperty;
2
+ var re = (h, u, g) => u in h ? ne(h, u, { enumerable: !0, configurable: !0, writable: !0, value: g }) : h[u] = g;
3
+ var W = (h, u, g) => re(h, typeof u != "symbol" ? u + "" : u, g);
4
+ import { defineComponent as ee, ref as C, computed as I, watch as O, resolveComponent as m, openBlock as x, createBlock as H, unref as o, isRef as Q, withCtx as D, createElementVNode as v, createVNode as i, createElementBlock as E, Fragment as M, renderList as se, createCommentVNode as N, h as U, onMounted as ie } from "vue";
5
+ import { h as X } from "./moment-D7p2TMB-.js";
6
+ import { components as J } from "@feedmepos/ui-library";
7
+ import "./index-BwZAD-K8.js";
8
+ import { J as ue } from "./JsonViewer-v8_C7l5N.js";
9
+ import { u as te } from "./loading-BWmCgmGC.js";
10
+ import { u as ce } from "./app-wDQR6dpb.js";
11
+ import { useRoute as oe, useRouter as de } from "vue-router";
12
+ import { c as ae, u as me } from "./campaign-CjAsOKIB.js";
13
+ import { e as _ } from "./index-vh86FiIQ.js";
14
+ import { u as G, w as pe } from "./xlsx-BGzhjrdT.js";
15
+ import { g as fe } from "./user-BZkojoKC.js";
16
+ import { u as ge, _ as be } from "./usePagination-Ds-cuHop.js";
17
+ import { a as Z } from "./plugins-DzOF3k73.js";
18
+ import { m as Ce } from "./index-BmXYRr-L.js";
19
+ import { o as he } from "./objectId-dwaoBfJX.js";
20
+ const ve = { class: "space-y-16" }, ye = { class: "gap-16 grid grid-cols-2" }, xe = { class: "flex items-center gap-8" }, Se = /* @__PURE__ */ ee({
21
+ __name: "CreateCollectionSheet",
22
+ emits: ["success"],
23
+ setup(h, { expose: u, emit: g }) {
24
+ const { minor: P } = te, B = oe(), S = C(), V = C(!1), T = g, b = C(!1);
25
+ function R(s) {
26
+ b.value = s, s && (n.value = {
27
+ quantity: 1,
28
+ code: "",
29
+ codeConfig: {
30
+ length: 8,
31
+ charset: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
32
+ prefix: "",
33
+ suffix: "",
34
+ pattern: "########"
35
+ }
36
+ });
37
+ }
38
+ const n = C({
39
+ quantity: 1,
40
+ code: "",
41
+ codeConfig: {
42
+ length: 8,
43
+ charset: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",
44
+ prefix: "",
45
+ suffix: "",
46
+ pattern: "########"
47
+ }
48
+ }), L = [
49
+ {
50
+ label: "Bulk codes",
51
+ value: "bulk",
52
+ sublabel: "Bulk generate unique codes"
53
+ },
54
+ {
55
+ label: "Custom code",
56
+ value: "single",
57
+ sublabel: "Enter your own custom codes"
58
+ }
59
+ ], A = [
60
+ {
61
+ label: "Alphanumeric",
62
+ value: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
63
+ },
64
+ {
65
+ label: "Alphabetic",
66
+ value: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
67
+ },
68
+ { label: "Alphabetic Lowercase", value: "abcdefghijklmnopqrstuvwxyz" },
69
+ { label: "Alphabetic Uppercase", value: "ABCDEFGHIJKLMNOPQRSTUVWXYZ" },
70
+ { label: "Numbers", value: "0123456789" },
71
+ { label: "Custom", value: "" }
72
+ ], w = C(A[0].value), p = C("bulk"), F = C(!1), $ = I(() => B.params.id);
73
+ async function q(s) {
74
+ var e;
75
+ await ((e = S.value) == null ? void 0 : e.validateInputs()), V.value && await P(
76
+ async () => {
77
+ await ae.createCollectionByCampaignId($.value, s), await T("success");
78
+ },
79
+ {
80
+ message: "Creating claim(s)",
81
+ successMessage: "Claim(s) created"
82
+ }
83
+ );
84
+ }
85
+ u({
86
+ showSheet: R
87
+ }), O(
88
+ () => p.value,
89
+ (s, e) => {
90
+ e != s && (n.value.code = "", n.value.codeConfig.length = 8, n.value.codeConfig.charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", n.value.codeConfig.prefix = "", n.value.codeConfig.suffix = "", n.value.codeConfig.pattern = "########");
91
+ }
92
+ );
93
+ function f(s) {
94
+ if (p.value !== "single") return !1;
95
+ const e = s.split(`
96
+ `).map((k) => k.trim()).filter(Boolean);
97
+ return new Set(e).size !== e.length;
98
+ }
99
+ function z(s) {
100
+ return /[ \t]/.test(s);
101
+ }
102
+ return O(
103
+ () => n.value.codeConfig.length,
104
+ (s, e) => {
105
+ s != e && (n.value.codeConfig.pattern = "#".repeat(Math.min(16, Number(s))));
106
+ }
107
+ ), O(
108
+ () => n.value.codeConfig.pattern,
109
+ (s, e) => {
110
+ s != e && (n.value.codeConfig.length = (n.value.codeConfig.pattern.match(/#/g) || []).length);
111
+ }
112
+ ), (s, e) => {
113
+ const k = m("FmRadio"), K = m("FmRadioGroup"), Y = m("FmSwitch"), l = m("FmStepperField"), a = m("FmSelect"), c = m("FmTextField"), d = m("FmTextarea"), r = m("FmForm"), y = m("FmButton"), j = m("FmSideSheet");
114
+ return x(), H(j, {
115
+ "max-width": 560,
116
+ "dismiss-away": !0,
117
+ header: "Create collection",
118
+ modelValue: o(b),
119
+ "onUpdate:modelValue": [
120
+ e[14] || (e[14] = (t) => Q(b) ? b.value = t : null),
121
+ e[15] || (e[15] = (t) => b.value = t)
122
+ ]
123
+ }, {
124
+ "side-sheet-footer": D(() => [
125
+ v("div", xe, [
126
+ i(y, {
127
+ label: "Save",
128
+ onClick: e[12] || (e[12] = (t) => q(o(n))),
129
+ loading: o(ce)().isLoading
130
+ }, null, 8, ["loading"]),
131
+ i(y, {
132
+ label: "Cancel",
133
+ type: "button",
134
+ variant: "tertiary",
135
+ onClick: e[13] || (e[13] = (t) => b.value = !1)
136
+ })
137
+ ])
138
+ ]),
139
+ default: D(() => [
140
+ i(ue, { json: o(n) }, null, 8, ["json"]),
141
+ i(r, {
142
+ ref_key: "form",
143
+ ref: S,
144
+ class: "space-y-40",
145
+ onValidationSuccess: e[10] || (e[10] = (t) => V.value = !0),
146
+ onValidationFailed: e[11] || (e[11] = (t) => V.value = !1)
147
+ }, {
148
+ default: D(() => [
149
+ v("div", null, [
150
+ e[16] || (e[16] = v("div", { class: "fm-typo-en-body-lg-600" }, "Code type", -1)),
151
+ i(K, {
152
+ modelValue: o(p),
153
+ "onUpdate:modelValue": e[0] || (e[0] = (t) => Q(p) ? p.value = t : null),
154
+ inline: !1
155
+ }, {
156
+ default: D(() => [
157
+ (x(), E(M, null, se(L, (t) => i(k, {
158
+ key: t.value,
159
+ value: t.value,
160
+ label: t.label,
161
+ sublabel: t.sublabel
162
+ }, null, 8, ["value", "label", "sublabel"])), 64))
163
+ ]),
164
+ _: 1
165
+ }, 8, ["modelValue"])
166
+ ]),
167
+ v("div", ve, [
168
+ e[17] || (e[17] = v("div", { class: "fm-typo-en-body-lg-600" }, "Settings", -1)),
169
+ o(p) === "bulk" ? (x(), E(M, { key: 0 }, [
170
+ i(Y, {
171
+ "model-value": o(F),
172
+ "label-placement": "right",
173
+ value: "true",
174
+ label: "Advance code setting",
175
+ required: !0,
176
+ "onUpdate:modelValue": e[1] || (e[1] = () => F.value = !o(F))
177
+ }, null, 8, ["model-value"]),
178
+ o(F) ? (x(), E(M, { key: 0 }, [
179
+ i(l, {
180
+ modelValue: o(n).codeConfig.length,
181
+ "onUpdate:modelValue": e[2] || (e[2] = (t) => o(n).codeConfig.length = t),
182
+ label: "Code length",
183
+ max: 16,
184
+ min: 1,
185
+ rules: [
186
+ (t) => Number(t) >= 1 || "Code length must at least 1",
187
+ (t) => Number(t) <= 16 || "Code length must less than 16"
188
+ ],
189
+ required: !0
190
+ }, null, 8, ["modelValue", "rules"]),
191
+ i(a, {
192
+ label: "Charset",
193
+ "model-value": o(w),
194
+ items: A,
195
+ "helper-text": o(n).codeConfig.charset.length > 62 ? `${o(n).codeConfig.charset.substring(0, 62)}...` : o(n).codeConfig.charset,
196
+ "onUpdate:modelValue": e[3] || (e[3] = (t) => {
197
+ w.value = t, o(n).codeConfig.charset = t;
198
+ })
199
+ }, null, 8, ["model-value", "helper-text"]),
200
+ o(w) === "" ? (x(), H(c, {
201
+ key: 0,
202
+ modelValue: o(n).codeConfig.charset,
203
+ "onUpdate:modelValue": e[4] || (e[4] = (t) => o(n).codeConfig.charset = t),
204
+ label: "Custom Charset",
205
+ required: ""
206
+ }, null, 8, ["modelValue"])) : N("", !0),
207
+ v("div", ye, [
208
+ i(c, {
209
+ modelValue: o(n).codeConfig.prefix,
210
+ "onUpdate:modelValue": e[5] || (e[5] = (t) => o(n).codeConfig.prefix = t),
211
+ label: "Prefix (Optional)"
212
+ }, null, 8, ["modelValue"]),
213
+ i(c, {
214
+ modelValue: o(n).codeConfig.suffix,
215
+ "onUpdate:modelValue": e[6] || (e[6] = (t) => o(n).codeConfig.suffix = t),
216
+ label: "Suffix (Optional)"
217
+ }, null, 8, ["modelValue"])
218
+ ]),
219
+ i(c, {
220
+ modelValue: o(n).codeConfig.pattern,
221
+ "onUpdate:modelValue": e[7] || (e[7] = (t) => o(n).codeConfig.pattern = t),
222
+ label: "Pattern",
223
+ required: !0
224
+ }, null, 8, ["modelValue"])
225
+ ], 64)) : N("", !0),
226
+ i(c, {
227
+ modelValue: o(n).quantity,
228
+ "onUpdate:modelValue": e[8] || (e[8] = (t) => o(n).quantity = t),
229
+ label: "Number of code",
230
+ rules: [
231
+ (t) => t >= 1 || "Quantity cannot be less than 1",
232
+ (t) => t <= 1e4 || "Quantity cannot more than 10,000"
233
+ ],
234
+ required: !0,
235
+ "helper-text": `${o(n).quantity} claim will be created`
236
+ }, null, 8, ["modelValue", "rules", "helper-text"])
237
+ ], 64)) : N("", !0),
238
+ o(p) !== "bulk" ? (x(), H(d, {
239
+ key: 1,
240
+ modelValue: o(n).code,
241
+ "onUpdate:modelValue": e[9] || (e[9] = (t) => o(n).code = t),
242
+ label: "Custom Code",
243
+ rules: [
244
+ (t) => o(p) != "single" || !!t || "Custom code is required",
245
+ (t) => !f(t) || "Custom code must be unique",
246
+ (t) => !z(t) || "Custom code must not contain space"
247
+ ],
248
+ placeholder: "(For multiple codes, please enter in the new row.)"
249
+ }, null, 8, ["modelValue", "rules"])) : N("", !0)
250
+ ])
251
+ ]),
252
+ _: 1
253
+ }, 512)
254
+ ]),
255
+ _: 1
256
+ }, 8, ["modelValue"]);
257
+ };
258
+ }
259
+ });
260
+ class Ve {
261
+ constructor() {
262
+ W(this, "data", []);
263
+ }
264
+ addRecord(u) {
265
+ this.data.push(u);
266
+ }
267
+ buildExcel() {
268
+ const u = G.book_new(), g = G.json_to_sheet(this.data);
269
+ return G.book_append_sheet(u, g, "Collection"), u;
270
+ }
271
+ }
272
+ var we = { authUrl: "https://portal-v2.feedmeapi.com/", slackWebhookUrl: "https://hooks.slack.com/services/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", appUrl: "member.feedme.cc", crmUrl: "crm.feedme.cc", paymentPortalUrl: "https://portal.feedme.cc/payment/payout-account", licensePortalUrl: "https://license.feedme.cc/", marketingV1Portal: "https://marketing-v1.feedme.cc", voucherAppUrl: "https://voucher.feedme.cc/" };
273
+ const Fe = { class: "px-24 flex flex-col gap-y-32 pb-24" }, ke = { class: "flex items-center justify-end py-4 xs:hidden" }, Ye = /* @__PURE__ */ ee({
274
+ __name: "Collections",
275
+ setup(h) {
276
+ function u(l) {
277
+ return l.hideInApp === !1;
278
+ }
279
+ const g = de(), P = oe(), B = C(), S = I(() => P.params.id), V = C(!1), { custom: T } = te;
280
+ function b(l) {
281
+ var a;
282
+ return l.code || ((a = l._id) == null ? void 0 : a.toString()) || "";
283
+ }
284
+ function R(l) {
285
+ var d;
286
+ const a = (d = we.voucherAppUrl) == null ? void 0 : d.replace(/\/$/, ""), c = b(l);
287
+ return !a || !c ? "" : `${a}/c/${c}`;
288
+ }
289
+ function n(l) {
290
+ var d, r;
291
+ const a = (d = l.user) == null ? void 0 : d.toString(), c = (r = l.business) == null ? void 0 : r.toString();
292
+ return (l.balance || 0) > 0 && (!a || a === c);
293
+ }
294
+ async function L(l) {
295
+ const a = R(l);
296
+ a && await Z(a, {
297
+ successMessage: "Collection link copied to clipboard"
298
+ });
299
+ }
300
+ const A = me(), w = I(
301
+ () => A.campaigns.voucher.find(
302
+ (l) => {
303
+ var a;
304
+ return ((a = l._id) == null ? void 0 : a.toString()) === S.value;
305
+ }
306
+ )
307
+ ), p = I(
308
+ () => !!w.value && !u(w.value)
309
+ ), F = I(() => [
310
+ {
311
+ header: "ID/Code",
312
+ accessorKey: "_id",
313
+ cell(l) {
314
+ return U("div", { class: "flex items-center" }, [
315
+ U(J.FmIcon, {
316
+ name: "content_copy",
317
+ outline: !0,
318
+ size: "sm",
319
+ class: "cursor-pointer mr-4",
320
+ onClick: (a) => {
321
+ a.preventDefault(), a.stopPropagation(), Z(
322
+ l.row.original.code || l.row.original._id.toString()
323
+ );
324
+ }
325
+ }),
326
+ U(
327
+ "div",
328
+ { class: "pr-2 text-ellipsis overflow-hidden" },
329
+ l.row.original.code || l.row.original._id.toString()
330
+ )
331
+ ]);
332
+ }
333
+ },
334
+ {
335
+ header: "User",
336
+ accessorKey: "user",
337
+ enableSorting: !1,
338
+ cell(l) {
339
+ const a = l.row.original.pf_user;
340
+ return fe(a);
341
+ }
342
+ },
343
+ {
344
+ header: "Phone",
345
+ accessorFn: (l) => {
346
+ var a;
347
+ return ((a = l.pf_user) == null ? void 0 : a.phoneNumber) || "-";
348
+ },
349
+ accessorKey: "pf_user.phoneNumber"
350
+ },
351
+ {
352
+ header: "Balance",
353
+ accessorKey: "balance"
354
+ },
355
+ {
356
+ header: "Created at",
357
+ accessorKey: "_id",
358
+ accessorFn: (l) => X(he(l._id.toString())).format("DD MMM YYYY")
359
+ },
360
+ {
361
+ header: "Nearest expired at",
362
+ accessorKey: "expiryBalance",
363
+ accessorFn: (l) => {
364
+ var a;
365
+ return l.expiryBalance && l.expiryBalance.length ? X((a = l.expiryBalance) == null ? void 0 : a[0].expiredAt).format("DD MMM YYYY") : "Never expires";
366
+ }
367
+ },
368
+ ...p.value ? [
369
+ {
370
+ header: "Actions",
371
+ accessorKey: "actions",
372
+ enableSorting: !1,
373
+ meta: {
374
+ maxWidth: "72px"
375
+ },
376
+ cell(l) {
377
+ return n(l.row.original) ? U("div", { class: "flex items-center justify-center" }, [
378
+ U(J.FmButton, {
379
+ icon: "share",
380
+ variant: "tertiary",
381
+ iconColor: "neutral-gray-400",
382
+ onClick: async (a) => {
383
+ a.preventDefault(), a.stopPropagation(), await L(l.row.original);
384
+ }
385
+ })
386
+ ]) : U(
387
+ "div",
388
+ {
389
+ class: "flex items-center justify-center text-fm-color-typo-disabled"
390
+ },
391
+ "-"
392
+ );
393
+ }
394
+ }
395
+ ] : []
396
+ ]), $ = {
397
+ "$connect-STORE_REWARD_COLLECTIONS": Ce.readCollectionsByRewardId,
398
+ "$connect-CAMPAIGN_VOUCHER_COLLECTIONS": ae.readCollectionsByCampaignId
399
+ }, q = (l) => {
400
+ const a = $[P.name];
401
+ return (c) => a(l, c);
402
+ }, { tableMeta: f, rowData: z, onSort: s, debouncedFetchData: e, onSearch: k } = ge(q(S.value));
403
+ async function K() {
404
+ var l;
405
+ await e(), (l = B.value) == null || l.showSheet(!1);
406
+ }
407
+ async function Y() {
408
+ V.value || T(
409
+ async () => {
410
+ const l = new Ve(), a = q(S.value), c = (await a({
411
+ limit: 1,
412
+ skip: 0,
413
+ sortBy: _.sortBy,
414
+ descending: _.descending
415
+ })).meta.totalResources ?? 0, d = _.rowsPerPage;
416
+ for (let r = 0; r < c; r += d) {
417
+ const y = {
418
+ ..._,
419
+ limit: d,
420
+ skip: r,
421
+ sortBy: _.sortBy,
422
+ descending: _.descending
423
+ }, j = await a(y);
424
+ for await (const t of j.resources) {
425
+ const le = {
426
+ Id: b(t),
427
+ Balance: (t == null ? void 0 : t.balance) || 0,
428
+ Url: R(t)
429
+ };
430
+ l.addRecord(le);
431
+ }
432
+ }
433
+ await pe(
434
+ l.buildExcel(),
435
+ `members-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
436
+ {
437
+ bookType: "xlsx",
438
+ bookSST: !1,
439
+ type: "array"
440
+ }
441
+ );
442
+ },
443
+ {
444
+ isLoading: V
445
+ }
446
+ );
447
+ }
448
+ return ie(async () => {
449
+ await e();
450
+ }), (l, a) => {
451
+ const c = m("FmPageHead"), d = m("FmSearch");
452
+ return x(), E(M, null, [
453
+ i(c, {
454
+ title: "Collections",
455
+ "back-button": !0,
456
+ actions: [
457
+ { label: "Export", value: "export", isPrimary: !1 },
458
+ ...o(p) ? [
459
+ {
460
+ label: "Create collection",
461
+ value: "create",
462
+ isPrimary: !0
463
+ }
464
+ ] : []
465
+ ],
466
+ "onClick:back": a[0] || (a[0] = (r) => o(g).back()),
467
+ "onClick:action": a[1] || (a[1] = (r) => {
468
+ var y;
469
+ r === "create" && ((y = o(B)) == null || y.showSheet(!0)), r === "export" && Y();
470
+ })
471
+ }, null, 8, ["actions"]),
472
+ v("div", Fe, [
473
+ i(d, {
474
+ class: "hidden xs:flex border-b border-fm-color-neutral-gray-100",
475
+ modelValue: o(f).searchValue,
476
+ "onUpdate:modelValue": [
477
+ a[2] || (a[2] = (r) => o(f).searchValue = r),
478
+ o(k)
479
+ ],
480
+ placeholder: "Search",
481
+ collapsible: ""
482
+ }, null, 8, ["modelValue", "onUpdate:modelValue"]),
483
+ v("div", ke, [
484
+ i(d, {
485
+ modelValue: o(f).searchValue,
486
+ "onUpdate:modelValue": [
487
+ a[3] || (a[3] = (r) => o(f).searchValue = r),
488
+ o(k)
489
+ ],
490
+ placeholder: "Search",
491
+ collapsible: ""
492
+ }, null, 8, ["modelValue", "onUpdate:modelValue"])
493
+ ]),
494
+ i(be, {
495
+ loading: o(f).isLoading,
496
+ "row-data": o(z),
497
+ "column-defs": o(F),
498
+ "row-count": o(f).totalRows,
499
+ "page-count": o(f).pageCount,
500
+ "page-index": o(f).pageIndex,
501
+ "page-size": o(f).pageSize,
502
+ "shrink-at": !1,
503
+ onSortChange: o(s),
504
+ onPageChange: a[4] || (a[4] = (r) => o(e)({ pageSize: r.pageSize, pageIndex: r.pageIndex }))
505
+ }, null, 8, ["loading", "row-data", "column-defs", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
506
+ i(Se, {
507
+ ref_key: "sheetRef",
508
+ ref: B,
509
+ onSuccess: K
510
+ }, null, 512)
511
+ ])
512
+ ], 64);
513
+ };
514
+ }
515
+ });
516
+ export {
517
+ Ye as default
518
+ };
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as N, ref as L, computed as j, h as M, onMounted as H, resolveComponent as m, openBlock as d, createElementBlock as y, Fragment as h, createVNode as i, unref as t, createElementVNode as n, withCtx as C, renderList as q, createBlock as w, resolveDynamicComponent as O, toDisplayString as g, createCommentVNode as z } from "vue";
2
2
  import { _ as G } from "./campaign-CpzFl8Vr.js";
3
3
  import { useDialog as J, components as Q } from "@feedmepos/ui-library";
4
- import { p as W } from "./plugins-QrCF9dOz.js";
5
- import { u as X } from "./loading-CC5UWSwO.js";
6
- import { u as Y } from "./business-CziFmjeR.js";
7
- import { u as Z, c as _ } from "./campaign--X1xfS9V.js";
8
- import { g as ee, a as S, b as V } from "./campaign-C79gQI9M.js";
9
- import { u as oe } from "./vue-i18n-Ermow4kz.js";
4
+ import { p as W } from "./plugins-DzOF3k73.js";
5
+ import { u as X } from "./loading-BWmCgmGC.js";
6
+ import { u as Y } from "./business-CLb9l1b1.js";
7
+ import { u as Z, c as _ } from "./campaign-CjAsOKIB.js";
8
+ import { g as ee, a as S, b as V } from "./campaign-D-J_LKoT.js";
9
+ import { u as oe } from "./vue-i18n-Bh-0GwIQ.js";
10
10
  import { _ as te } from "./FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js";
11
- import { _ as ae } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-KK0Dqjv5.js";
12
- import { u as ne } from "./template-D8tUTODZ.js";
11
+ import { _ as ae } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-BOWLrVko.js";
12
+ import { u as ne } from "./template-KSzVf-4d.js";
13
13
  const re = { class: "px-24 flex flex-col gap-y-16" }, se = { class: "flex items-center justify-between w-full" }, ie = { class: "flex gap-8 overflow-x-auto" }, ce = { class: "space-y-8" }, le = { class: "flex w-full gap-4 items-center" }, me = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, de = { class: "space-y-4" }, ue = { class: "fm-typo-en-body-lg-600" }, pe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, fe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ye = { key: 0 }, Be = /* @__PURE__ */ N({
14
14
  __name: "Credit",
15
15
  setup(ge) {
@@ -1,42 +1,42 @@
1
1
  import { defineComponent, ref, watch, resolveComponent, openBlock, createElementBlock, createVNode, unref, isRef, withCtx, createBlock, createCommentVNode, computed, createElementVNode, Fragment, renderList, normalizeClass, toDisplayString, toRefs, normalizeStyle, resolveDynamicComponent, createSlots } from "vue";
2
2
  import { _ } from "./lodash-B5I3zXaY.js";
3
- import { z } from "./app-CmNTg0jj.js";
3
+ import { z } from "./app-CyCrBGv3.js";
4
4
  import { Z as ZodHelper } from "./zod-Bg2FbC-D.js";
5
- import { c as getCampaignSummaryObject, C as CampaignOptions } from "./campaign-C79gQI9M.js";
6
- import { c as campaignRefinement, C as CampaignDtos, a as campaignTransform } from "./dto-_8ubkwaG.js";
7
- import { u as useMembershipStore } from "./membership-Bj6Yp1IE.js";
8
- import { u as useBusinessStore } from "./business-CziFmjeR.js";
9
- import "./index-Fo245_nF.js";
10
- import { R as RuleBuilder, a as isRuleEntry } from "./rule-builder-Dvn_UafF.js";
5
+ import { c as getCampaignSummaryObject, C as CampaignOptions } from "./campaign-D-J_LKoT.js";
6
+ import { c as campaignRefinement, C as CampaignDtos, a as campaignTransform } from "./dto-DL0g5qhf.js";
7
+ import { u as useMembershipStore } from "./membership-BvayWzl6.js";
8
+ import { u as useBusinessStore } from "./business-CLb9l1b1.js";
9
+ import "./index-CdZvVrxS.js";
10
+ import { R as RuleBuilder, a as isRuleEntry } from "./rule-builder-C9NKIs8v.js";
11
11
  import { J as JsonViewer } from "./JsonViewer-v8_C7l5N.js";
12
12
  import { h as hooks } from "./moment-D7p2TMB-.js";
13
- import { f as featureVersionMapping } from "./campaign.enum-D14uCZpw.js";
13
+ import { f as featureVersionMapping } from "./campaign.enum-DWyh4SwC.js";
14
14
  import { _ as _sfc_main$o } from "./ImageInput.vue_vue_type_script_setup_true_lang-D1KQpDGg.js";
15
- import { b as _sfc_main$m, a as _sfc_main$p, _ as _sfc_main$r } from "./EffectSheet.vue_vue_type_style_index_0_lang-UtoDaX_z.js";
16
- import { _ as _sfc_main$q } from "./TargetLocationInput.vue_vue_type_script_setup_true_lang-DrTeUogI.js";
17
- import { _ as _sfc_main$t } from "./UserRuleGroup.vue_vue_type_script_setup_true_lang-Buds4o3e.js";
18
- import { _ as _sfc_main$j, a as _sfc_main$k } from "./RuleGroup.vue_vue_type_script_setup_true_lang-BIUE1m4e.js";
19
- import { p as prompt, c as cases, f as firebaseStorage } from "./plugins-QrCF9dOz.js";
20
- import { u as useI18n } from "./vue-i18n-Ermow4kz.js";
21
- import { T as TypeToTriggerOptions, _ as _sfc_main$u, b as _sfc_main$v } from "./trigger-BdT4xwej.js";
22
- import { _ as _sfc_main$s } from "./MessageInput.vue_vue_type_script_setup_true_lang-BuyisyTn.js";
23
- import { C as CountryTimezone, m as moment } from "./timezone-CgFOIlc3.js";
24
- import { c as calculateNextScheduleAt, S as SummarizeRrule, R as RRule } from "./rule-CTzuKmMz.js";
15
+ import { b as _sfc_main$m, a as _sfc_main$p, _ as _sfc_main$r } from "./EffectSheet.vue_vue_type_style_index_0_lang-Bct0b3A6.js";
16
+ import { _ as _sfc_main$q } from "./TargetLocationInput.vue_vue_type_script_setup_true_lang-DVoEzbkf.js";
17
+ import { _ as _sfc_main$t } from "./UserRuleGroup.vue_vue_type_script_setup_true_lang-D0UejW9B.js";
18
+ import { _ as _sfc_main$j, a as _sfc_main$k } from "./RuleGroup.vue_vue_type_script_setup_true_lang-D5AH06gG.js";
19
+ import { p as prompt, c as cases, f as firebaseStorage } from "./plugins-DzOF3k73.js";
20
+ import { u as useI18n } from "./vue-i18n-Bh-0GwIQ.js";
21
+ import { T as TypeToTriggerOptions, _ as _sfc_main$u, b as _sfc_main$v } from "./trigger-DLx6fvD3.js";
22
+ import { _ as _sfc_main$s } from "./MessageInput.vue_vue_type_script_setup_true_lang-sSKdealx.js";
23
+ import { C as CountryTimezone, m as moment } from "./timezone-De5grXDM.js";
24
+ import { c as calculateNextScheduleAt, S as SummarizeRrule, R as RRule } from "./rule-DxZ0VW_3.js";
25
25
  import { useCoreStore } from "@feedmepos/mf-common";
26
- import { _ as _sfc_main$l, a as _sfc_main$n } from "./VoucherEditor.vue_vue_type_script_setup_true_lang-DM7nlQQu.js";
27
- import { t as FdoCreditLoyaltyReward, u as FdtoRandomReward, v as F_MISSION_TYPE, w as FdoThresholdCreditReward, x as FdtoThresholdReward, y as FdoMission } from "./index-DRcdGfYq.js";
28
- import { T as TEMPLATES } from "./index-BvcJQRo9.js";
29
- import "./index-BZH6sxhI.js";
30
- import "./index-B3T3EheY.js";
31
- import { a as F_GAME_TYPE } from "./collectible.enum-CDJQ49gX.js";
32
- import { u as useLoading } from "./loading-CC5UWSwO.js";
33
- import { i as initCollectibleConfig } from "./helper-BB2-UXrE.js";
34
- import { C as CollectionUtils } from "./collection.fn-B0nvnq3G.js";
26
+ import { _ as _sfc_main$l, a as _sfc_main$n } from "./VoucherEditor.vue_vue_type_script_setup_true_lang-DjWgA-j6.js";
27
+ import { t as FdoCreditLoyaltyReward, u as FdtoRandomReward, v as F_MISSION_TYPE, w as FdoThresholdCreditReward, x as FdtoThresholdReward, y as FdoMission } from "./index-Bxn8VXKm.js";
28
+ import { T as TEMPLATES } from "./index-C3Fk7d1Y.js";
29
+ import "./index-BfEp-j_0.js";
30
+ import "./index-CutCCmDE.js";
31
+ import { a as F_GAME_TYPE } from "./collectible.enum-BgCOtIMq.js";
32
+ import { u as useLoading } from "./loading-BWmCgmGC.js";
33
+ import { i as initCollectibleConfig } from "./helper-I0TJrh8b.js";
34
+ import { C as CollectionUtils } from "./collection.fn-DX-zdEXS.js";
35
35
  import { s as sentenceCase$1 } from "./index-CuvNtC_M.js";
36
- import "./index-DVG8DHie.js";
36
+ import "./index-BwZAD-K8.js";
37
37
  import { useDialog } from "@feedmepos/ui-library";
38
- import { u as useCampaignStore } from "./campaign--X1xfS9V.js";
39
- import { S as SvcConfig } from "./index-7nmLrTPs.js";
38
+ import { u as useCampaignStore } from "./campaign-CjAsOKIB.js";
39
+ import { S as SvcConfig } from "./index-Blm8f_cb.js";
40
40
  import { a as cleanPF } from "./object-qECH92oz.js";
41
41
  const _hoisted_1$g = { class: "space-y-24" }, _sfc_main$i = /* @__PURE__ */ defineComponent({
42
42
  __name: "TimeRuleGroup",
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as P, ref as O, onMounted as Q, computed as H, resolveComponent as y, openBlock as i, createElementBlock as x, renderSlot as W, toDisplayString as w, createCommentVNode as v, createBlock as c, unref as e, isRef as q, createVNode as F, normalizeClass as G, watch as X, withCtx as b, resolveDynamicComponent as D, Fragment as _, createElementVNode as U, createTextVNode as ee } from "vue";
2
- import { z as te } from "./app-CmNTg0jj.js";
2
+ import { z as te } from "./app-CyCrBGv3.js";
3
3
  import { Z as u } from "./zod-Bg2FbC-D.js";
4
- import { f as le, g as oe } from "./index-Fo245_nF.js";
5
- import { u as Z } from "./vue-i18n-Ermow4kz.js";
6
- import { s as R } from "./effect-BH2SkAIi.js";
7
- import { p as ae } from "./plugins-QrCF9dOz.js";
8
- import { e as ne } from "./app-pVtgk-L3.js";
4
+ import { f as le, g as oe } from "./index-CdZvVrxS.js";
5
+ import { u as Z } from "./vue-i18n-Bh-0GwIQ.js";
6
+ import { s as R } from "./effect-CL2u9eac.js";
7
+ import { p as ae } from "./plugins-DzOF3k73.js";
8
+ import { e as ne } from "./app-DKeD1La_.js";
9
9
  const ie = { class: "flex flex-col gap-8" }, de = {
10
10
  key: 0,
11
11
  class: "fm-typo-en-body-lg-600"
@@ -1,15 +1,15 @@
1
1
  import { defineComponent as E, ref as S, computed as U, onMounted as j, resolveComponent as m, openBlock as p, createElementBlock as _, Fragment as x, createVNode as c, unref as o, createElementVNode as a, withCtx as h, renderList as M, createBlock as w, resolveDynamicComponent as H, toDisplayString as u, h as q } from "vue";
2
2
  import { _ as z } from "./campaign-CpzFl8Vr.js";
3
3
  import { useDialog as G, components as J } from "@feedmepos/ui-library";
4
- import { p as Q } from "./plugins-QrCF9dOz.js";
5
- import { u as W } from "./loading-CC5UWSwO.js";
6
- import { u as X } from "./business-CziFmjeR.js";
7
- import { u as Y, c as g } from "./campaign--X1xfS9V.js";
8
- import { a as L, b as V, g as Z } from "./campaign-C79gQI9M.js";
9
- import { u as ee } from "./vue-i18n-Ermow4kz.js";
4
+ import { p as Q } from "./plugins-DzOF3k73.js";
5
+ import { u as W } from "./loading-BWmCgmGC.js";
6
+ import { u as X } from "./business-CLb9l1b1.js";
7
+ import { u as Y, c as g } from "./campaign-CjAsOKIB.js";
8
+ import { a as L, b as V, g as Z } from "./campaign-D-J_LKoT.js";
9
+ import { u as ee } from "./vue-i18n-Bh-0GwIQ.js";
10
10
  import { _ as te } from "./FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js";
11
- import { _ as oe } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-KK0Dqjv5.js";
12
- import { u as ne } from "./template-D8tUTODZ.js";
11
+ import { _ as oe } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-BOWLrVko.js";
12
+ import { u as ne } from "./template-KSzVf-4d.js";
13
13
  const ae = { class: "px-24 flex flex-col gap-y-16" }, re = { class: "flex items-center justify-between w-full" }, se = { class: "flex gap-8 overflow-x-auto" }, ce = { class: "space-y-8" }, ie = { class: "flex w-full gap-4 items-center" }, le = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, me = { class: "space-y-4" }, de = { class: "fm-typo-en-body-lg-600" }, pe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ue = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, fe = { class: "flex flex-col gap-16 text-center" }, ye = { class: "fm-typo-en-title-sm-800" }, ge = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Be = /* @__PURE__ */ E({
14
14
  __name: "Experience",
15
15
  setup(_e) {