@feedmepos/mf-connect 0.1.38-beta.70 → 0.1.38-beta.72

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 (133) hide show
  1. package/package.json +1 -1
  2. package/dist/Analytic-qVhEo_im.js +0 -761
  3. package/dist/App-Ixv1jrHc.js +0 -4638
  4. package/dist/AuditLogs-B2D62tMF.js +0 -1991
  5. package/dist/Bin-Lj7jtS9m.js +0 -166
  6. package/dist/Broadcast-BpP9VJsx.js +0 -267
  7. package/dist/CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BB43gKXv.js +0 -121
  8. package/dist/Card-CjArjpou.js +0 -909
  9. package/dist/ChipMenu.vue_vue_type_script_setup_true_lang-BPpZZNkr.js +0 -97
  10. package/dist/Collections-CFzUAHxz.js +0 -540
  11. package/dist/Credit-D43x-T3d.js +0 -261
  12. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-Du7fRSZC.js +0 -128
  13. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-eIoPtgO5.js +0 -58
  14. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-DlgTeQLe.js +0 -3167
  15. package/dist/EffectSheet.vue_vue_type_style_index_0_lang-9UhSzClJ.js +0 -351
  16. package/dist/Experience-BaUbRoHV.js +0 -260
  17. package/dist/FileSaver.min-BO_rbswB.js +0 -74
  18. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-DaU-9GzO.js +0 -129
  19. package/dist/Game-DaVqgPWQ.js +0 -331
  20. package/dist/GenerateMaterial-DJM8fZyl.js +0 -589
  21. package/dist/Grab-CykZDrWI.js +0 -301
  22. package/dist/ImageInput.vue_vue_type_script_setup_true_lang-C51yGAp9.js +0 -145
  23. package/dist/Index-Do3WIIfM.js +0 -259
  24. package/dist/JsonViewer-v8_C7l5N.js +0 -87
  25. package/dist/LottieAnimation.vue_vue_type_script_setup_true_lang-BjdBaj4c.js +0 -18737
  26. package/dist/MainLayout-DD-OlYxZ.js +0 -41
  27. package/dist/Marketing-C9bsnUaQ.js +0 -145
  28. package/dist/MarketingMaterialEdit-CbSh8dpn.js +0 -746
  29. package/dist/Member-IcVRwAAS.js +0 -280
  30. package/dist/MemberList-C_A4PrQN.js +0 -1605
  31. package/dist/MemberOverview-wL_ailso.js +0 -58
  32. package/dist/MemberTransactions-CBoaY-gv.js +0 -45
  33. package/dist/MessageInput.vue_vue_type_script_setup_true_lang-Dx28XNPi.js +0 -60798
  34. package/dist/Mission-COY_uhwz.js +0 -335
  35. package/dist/Overview-DDSz2R4K.js +0 -1078
  36. package/dist/Point-C-KEwgx4.js +0 -263
  37. package/dist/Promotion-BpW9qWzf.js +0 -397
  38. package/dist/Queue-CO32O8i6.js +0 -259
  39. package/dist/Record-BrT5DR9L.js +0 -341
  40. package/dist/Reward-CbrEw-If.js +0 -442
  41. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-CpNjlbjZ.js +0 -149
  42. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-BS5jsRiN.js +0 -1912
  43. package/dist/Segment-Cu9_qwXc.js +0 -881
  44. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-BH-hzxSs.js +0 -181
  45. package/dist/SendCollectionSheet.vue_vue_type_script_setup_true_lang-DGm3gujH.js +0 -188
  46. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-DcUb8X-q.js +0 -147
  47. package/dist/Setting-CQKfb5b_.js +0 -1999
  48. package/dist/SettingAdvertisements-BxR6Gl-5.js +0 -263
  49. package/dist/Store-6TUpmqAr.js +0 -1995
  50. package/dist/StoreRewards-BOThAOWU.js +0 -534
  51. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BYD229dz.js +0 -1034
  52. package/dist/TargetLocationInput.vue_vue_type_script_setup_true_lang-CAamZtdf.js +0 -7005
  53. package/dist/Tier-MF-ad-xm.js +0 -969
  54. package/dist/Title-MkjTHBzb.js +0 -567
  55. package/dist/Transaction-trYJwTrc.js +0 -39
  56. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-DwlNK1TC.js +0 -130
  57. package/dist/Voucher-BD5dTdht.js +0 -422
  58. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-BhR_s48Q.js +0 -421
  59. package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-CcTe5TJL.js +0 -56
  60. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  61. package/dist/app-CybjF-6Q.js +0 -59071
  62. package/dist/app-wDQR6dpb.js +0 -39
  63. package/dist/app.js +0 -7
  64. package/dist/business-2hCbD0JX.js +0 -82
  65. package/dist/campaign-Bv-8uM2S.js +0 -100
  66. package/dist/campaign-CpzFl8Vr.js +0 -4
  67. package/dist/campaign-h1J8NTAo.js +0 -253
  68. package/dist/campaign.enum-Dea0E4o1.js +0 -26
  69. package/dist/campaign.fn-DqxZMyu0.js +0 -776
  70. package/dist/collectible.enum-DOyAoz4F.js +0 -19
  71. package/dist/collection.fn-DU2HuZod.js +0 -26
  72. package/dist/dto-CT65-FHY.js +0 -222
  73. package/dist/duplicateCampaign-YJGHvOqb.js +0 -51
  74. package/dist/effect-XZ767UQ4.js +0 -89
  75. package/dist/email-addresses-DSgkxSnV.js +0 -705
  76. package/dist/export-4gx5C9s9.js +0 -96
  77. package/dist/feedme.ico +0 -0
  78. package/dist/helper-HOLsJca3.js +0 -86
  79. package/dist/index-BO7N-s4K.js +0 -8912
  80. package/dist/index-BfRa1sI3.js +0 -54
  81. package/dist/index-BnCtmlvU.js +0 -28897
  82. package/dist/index-C5VvGYtP.js +0 -56
  83. package/dist/index-CSzvYzf4.js +0 -3419
  84. package/dist/index-CrdkPXsx.js +0 -124
  85. package/dist/index-CuvNtC_M.js +0 -61
  86. package/dist/index-CxE-VVlL.js +0 -76
  87. package/dist/index-Djenbz3F.js +0 -3
  88. package/dist/index-IHteBJ_D.js +0 -32
  89. package/dist/index-dUhOAfj9.js +0 -2423
  90. package/dist/index-vh86FiIQ.js +0 -10
  91. package/dist/index-wm4nGBB_.js +0 -30289
  92. package/dist/index-xTrAj026.js +0 -31
  93. package/dist/index-yViT18i_.js +0 -36
  94. package/dist/index.esm2017-Wq4FUMEv.js +0 -3069
  95. package/dist/loading-D22xapd8.js +0 -215
  96. package/dist/lodash-HM6bxuWV.js +0 -3678
  97. package/dist/membership-CX464ZBI.js +0 -235
  98. package/dist/moment-D7p2TMB-.js +0 -2583
  99. package/dist/money-B3cPZAZu.js +0 -15
  100. package/dist/number-DT65dEZt.js +0 -12
  101. package/dist/object-qECH92oz.js +0 -26
  102. package/dist/objectId-dwaoBfJX.js +0 -7
  103. package/dist/objectid-DZWw4iLL.js +0 -145
  104. package/dist/plugins-D-4BlIGs.js +0 -1817
  105. package/dist/remy-D_Deb3ue.js +0 -13
  106. package/dist/reward-C6B-kn0X.js +0 -36
  107. package/dist/rule-B94SrDX1.js +0 -1969
  108. package/dist/rule-builder-CQ3uHeX4.js +0 -102
  109. package/dist/style.css +0 -13
  110. package/dist/template-CXB2Ez2S.js +0 -188
  111. package/dist/tier-BJDhpH6X.js +0 -4
  112. package/dist/tiers/tier=1.png +0 -0
  113. package/dist/tiers/tier=2.png +0 -0
  114. package/dist/tiers/tier=3.png +0 -0
  115. package/dist/tiers/tier=4.png +0 -0
  116. package/dist/timezone-D3NuV-rx.js +0 -1154
  117. package/dist/titles/type=diamond.png +0 -0
  118. package/dist/titles/type=drinks.png +0 -0
  119. package/dist/titles/type=food.png +0 -0
  120. package/dist/titles/type=heart.png +0 -0
  121. package/dist/titles/type=medal.png +0 -0
  122. package/dist/titles/type=spend.png +0 -0
  123. package/dist/titles/type=thank-you.png +0 -0
  124. package/dist/titles/type=thumbs-up.png +0 -0
  125. package/dist/titles/type=years.png +0 -0
  126. package/dist/trigger-BsCVC_nU.js +0 -213
  127. package/dist/tslib.es6-BCqqvLQ_.js +0 -44
  128. package/dist/type_drinks-D6jnpvwV.js +0 -4
  129. package/dist/usePagination-BOZ0-D67.js +0 -223
  130. package/dist/user-Dxp7kluY.js +0 -55
  131. package/dist/vue-i18n-DpCWu1gI.js +0 -2365
  132. package/dist/xlsx-Cc2a2IL9.js +0 -15491
  133. package/dist/zod-BCSHGdXs.js +0 -91
@@ -1,909 +0,0 @@
1
- import { defineComponent as Z, ref as y, computed as E, watch as ne, onMounted as X, resolveComponent as v, openBlock as c, createBlock as F, unref as e, isRef as G, withCtx as h, createElementVNode as d, createVNode as i, createElementBlock as $, Fragment as z, renderList as H, createCommentVNode as k, normalizeClass as me, createSlots as ge, h as K, toDisplayString as te, withModifiers as be } from "vue";
2
- import { _ as ve } from "./campaign-CpzFl8Vr.js";
3
- import { h as oe } from "./moment-D7p2TMB-.js";
4
- import { useDialog as ye, components as se } from "@feedmepos/ui-library";
5
- import "./index-wm4nGBB_.js";
6
- import { m as L, u as J } from "./loading-D22xapd8.js";
7
- import { u as ce } from "./app-wDQR6dpb.js";
8
- import { u as W } from "./membership-CX464ZBI.js";
9
- import { _ as Q } from "./CustomSelect.vue_vue_type_script_setup_true_lang-Du7fRSZC.js";
10
- import { p as pe, f as ie, n as xe } from "./plugins-D-4BlIGs.js";
11
- import { z as re } from "./app-CybjF-6Q.js";
12
- import { Z as de } from "./zod-BCSHGdXs.js";
13
- import { _ as ue } from "./ImageInput.vue_vue_type_script_setup_true_lang-C51yGAp9.js";
14
- import "./index-dUhOAfj9.js";
15
- import { k as Ce } from "./index-CSzvYzf4.js";
16
- import "./index-BO7N-s4K.js";
17
- import "./index-BfRa1sI3.js";
18
- import { O as Se } from "./objectid-DZWw4iLL.js";
19
- import { a as he, c as _e } from "./object-qECH92oz.js";
20
- import { u as we } from "./business-2hCbD0JX.js";
21
- import { w as ke } from "./xlsx-Cc2a2IL9.js";
22
- import { a as Fe, C as Ve } from "./export-4gx5C9s9.js";
23
- import { u as $e, _ as Me } from "./usePagination-BOZ0-D67.js";
24
- import { u as Be } from "./vue-i18n-DpCWu1gI.js";
25
- import { o as Ue } from "./objectId-dwaoBfJX.js";
26
- const Ae = { class: "space-y-16" }, De = { class: "gap-16 grid grid-cols-2" }, Ie = { class: "space-y-16" }, Ne = {
27
- key: 0,
28
- class: "flex flex-col gap-[16px] w-full"
29
- }, Pe = { class: "flex flex-col gap-[8px]" }, Re = ["src"], qe = { class: "flex pt-[24px] gap-[24px]" }, ze = ["src", "onClick", "alt"], Ee = { class: "flex items-center gap-8" }, je = /* @__PURE__ */ Z({
30
- __name: "CreateCardSheet",
31
- emits: ["success", "export"],
32
- setup(ee, { expose: j, emit: T }) {
33
- const { minor: D } = J, g = W(), M = y(), x = y(!1), w = T, o = y(!1);
34
- function B(m) {
35
- o.value = m, m && (s.value = {
36
- quantity: 1,
37
- code: "",
38
- codeConfig: {
39
- length: 16,
40
- charset: "1234567890",
41
- prefix: "",
42
- suffix: "",
43
- pattern: "####-####-####-####"
44
- }
45
- });
46
- }
47
- const s = y({
48
- quantity: 1,
49
- code: "",
50
- codeConfig: {
51
- length: 16,
52
- charset: "1234567890",
53
- prefix: "",
54
- suffix: "",
55
- pattern: "####-####-####-####"
56
- },
57
- setCardOnBind: !1,
58
- bundle: void 0
59
- }), p = [
60
- {
61
- label: "Bulk number",
62
- value: "bulk",
63
- sublabel: "Bulk generate unique number"
64
- },
65
- {
66
- label: "Custom number",
67
- value: "single",
68
- sublabel: "Enter your own custom number"
69
- }
70
- ], A = [
71
- {
72
- label: "Alphanumeric",
73
- value: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
74
- },
75
- {
76
- label: "Alphabetic",
77
- value: "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
78
- },
79
- { label: "Alphabetic Lowercase", value: "abcdefghijklmnopqrstuvwxyz" },
80
- { label: "Alphabetic Uppercase", value: "ABCDEFGHIJKLMNOPQRSTUVWXYZ" },
81
- { label: "Numbers", value: "0123456789" },
82
- { label: "Custom", value: "" }
83
- ], I = y(A[0].value), _ = y("bulk"), C = y(0), n = E(
84
- () => {
85
- var m;
86
- return (m = g.membership.design) == null ? void 0 : m[C.value];
87
- }
88
- ), u = y(!1), r = E(
89
- () => g.sortedStoreCategories.flatMap((m) => m.bundles)
90
- );
91
- async function b(m) {
92
- var l, V;
93
- if (await ((l = M.value) == null ? void 0 : l.validateInputs()), !x.value) return;
94
- m.design = (V = n.value) == null ? void 0 : V.image;
95
- const t = await pe.confirm(
96
- "",
97
- "Do you want to export generated card(s)?",
98
- "Export",
99
- "Generate and without export"
100
- );
101
- console.log(t), await D(
102
- async () => {
103
- const U = await L.createCards(m);
104
- console.log(U), await w("success"), t && await w("export", U);
105
- },
106
- {
107
- message: "Creating card(s)",
108
- successMessage: "Card(s) created"
109
- }
110
- );
111
- }
112
- return j({
113
- showSheet: B
114
- }), ne(
115
- () => s.value.codeConfig.length,
116
- (m, t) => {
117
- m != t && (s.value.codeConfig.pattern = "#".repeat(Number(m)));
118
- }
119
- ), ne(
120
- () => s.value.codeConfig.pattern,
121
- (m, t) => {
122
- m != t && (s.value.codeConfig.length = (s.value.codeConfig.pattern.match(/#/g) || []).length);
123
- }
124
- ), X(async () => {
125
- await g.readMemberStore();
126
- }), (m, t) => {
127
- const l = v("FmRadio"), V = v("FmRadioGroup"), U = v("FmSwitch"), f = v("FmStepperField"), N = v("FmSelect"), q = v("FmTextField"), S = v("FmTextarea"), P = v("FmButton"), O = v("FmForm"), fe = v("FmSideSheet");
128
- return c(), F(fe, {
129
- "max-width": 560,
130
- "dismiss-away": !0,
131
- header: "Create collection",
132
- modelValue: e(o),
133
- "onUpdate:modelValue": [
134
- t[19] || (t[19] = (R) => G(o) ? o.value = R : null),
135
- t[20] || (t[20] = (R) => o.value = R)
136
- ]
137
- }, {
138
- "side-sheet-footer": h(() => [
139
- d("div", Ee, [
140
- i(P, {
141
- label: "Save",
142
- onClick: t[17] || (t[17] = (R) => b(e(s))),
143
- loading: e(ce)().isLoading
144
- }, null, 8, ["loading"]),
145
- i(P, {
146
- label: "Cancel",
147
- type: "button",
148
- variant: "tertiary",
149
- onClick: t[18] || (t[18] = (R) => o.value = !1)
150
- })
151
- ])
152
- ]),
153
- default: h(() => [
154
- i(O, {
155
- ref_key: "form",
156
- ref: M,
157
- class: "space-y-40",
158
- onValidationSuccess: t[15] || (t[15] = (R) => x.value = !0),
159
- onValidationFailed: t[16] || (t[16] = (R) => x.value = !1)
160
- }, {
161
- default: h(() => {
162
- var R, le, ae;
163
- return [
164
- d("div", null, [
165
- t[21] || (t[21] = d("div", { class: "fm-typo-en-body-lg-600" }, "Number type", -1)),
166
- i(V, {
167
- modelValue: e(_),
168
- "onUpdate:modelValue": t[0] || (t[0] = (a) => G(_) ? _.value = a : null),
169
- inline: !1
170
- }, {
171
- default: h(() => [
172
- (c(), $(z, null, H(p, (a) => i(l, {
173
- key: a.value,
174
- value: a.value,
175
- label: a.label,
176
- sublabel: a.sublabel
177
- }, null, 8, ["value", "label", "sublabel"])), 64))
178
- ]),
179
- _: 1
180
- }, 8, ["modelValue"])
181
- ]),
182
- d("div", Ae, [
183
- t[22] || (t[22] = d("div", { class: "fm-typo-en-body-lg-600" }, "Number Settings", -1)),
184
- e(_) === "bulk" ? (c(), $(z, { key: 0 }, [
185
- i(U, {
186
- "model-value": e(u),
187
- "label-placement": "right",
188
- value: "true",
189
- label: "Advance number setting",
190
- required: !0,
191
- "onUpdate:modelValue": t[1] || (t[1] = () => u.value = !e(u))
192
- }, null, 8, ["model-value"]),
193
- e(u) ? (c(), $(z, { key: 0 }, [
194
- i(f, {
195
- "model-value": e(s).codeConfig.length || null,
196
- "onUpdate:modelValue": t[2] || (t[2] = (a) => e(s).codeConfig.length = a),
197
- label: "Code length",
198
- rules: [(a) => Number(a) >= 1 || "Code length must at least 1"],
199
- required: !0
200
- }, null, 8, ["model-value", "rules"]),
201
- i(N, {
202
- label: "Charset",
203
- "model-value": e(I),
204
- items: A,
205
- "helper-text": e(s).codeConfig.charset.length > 62 ? `${e(s).codeConfig.charset.substring(0, 62)}...` : e(s).codeConfig.charset,
206
- "onUpdate:modelValue": t[3] || (t[3] = (a) => {
207
- I.value = a, e(s).codeConfig.charset = a;
208
- })
209
- }, null, 8, ["model-value", "helper-text"]),
210
- e(I) === "" ? (c(), F(q, {
211
- key: 0,
212
- modelValue: e(s).codeConfig.charset,
213
- "onUpdate:modelValue": t[4] || (t[4] = (a) => e(s).codeConfig.charset = a),
214
- label: "Custom Charset",
215
- required: ""
216
- }, null, 8, ["modelValue"])) : k("", !0),
217
- d("div", De, [
218
- i(q, {
219
- modelValue: e(s).codeConfig.prefix,
220
- "onUpdate:modelValue": t[5] || (t[5] = (a) => e(s).codeConfig.prefix = a),
221
- label: "Prefix (Optional)"
222
- }, null, 8, ["modelValue"]),
223
- i(q, {
224
- modelValue: e(s).codeConfig.suffix,
225
- "onUpdate:modelValue": t[6] || (t[6] = (a) => e(s).codeConfig.suffix = a),
226
- label: "Suffix (Optional)"
227
- }, null, 8, ["modelValue"])
228
- ]),
229
- i(q, {
230
- modelValue: e(s).codeConfig.pattern,
231
- "onUpdate:modelValue": t[7] || (t[7] = (a) => e(s).codeConfig.pattern = a),
232
- label: "Pattern",
233
- required: !0
234
- }, null, 8, ["modelValue"])
235
- ], 64)) : k("", !0),
236
- i(q, {
237
- modelValue: e(s).quantity,
238
- "onUpdate:modelValue": t[8] || (t[8] = (a) => e(s).quantity = a),
239
- label: "Number of code",
240
- rules: [
241
- (a) => a >= 1 || "Quantity cannot be less than 1",
242
- (a) => a <= 1e4 || "Quantity cannot more than 10,000"
243
- ],
244
- required: !0,
245
- "helper-text": `${e(s).quantity} card will be created`
246
- }, null, 8, ["modelValue", "rules", "helper-text"])
247
- ], 64)) : k("", !0),
248
- e(_) !== "bulk" ? (c(), F(S, {
249
- key: 1,
250
- modelValue: e(s).code,
251
- "onUpdate:modelValue": t[9] || (t[9] = (a) => e(s).code = a),
252
- label: "Custom Card Number",
253
- rules: [(a) => e(_) != "single" || !!a || "Custom code is required"],
254
- placeholder: "(For multiple numbers, please enter in the new row.)"
255
- }, null, 8, ["modelValue", "rules"])) : k("", !0)
256
- ]),
257
- d("div", Ie, [
258
- t[23] || (t[23] = d("div", { class: "fm-typo-en-body-lg-600" }, "Card Settings", -1)),
259
- i(U, {
260
- "label-placement": "right",
261
- label: "Set card number on bind",
262
- sublabel: "Automatically set the card number when the user binds the card",
263
- "model-value": e(s).setCardOnBind || !1,
264
- "onUpdate:modelValue": t[10] || (t[10] = (a) => e(s).setCardOnBind = a)
265
- }, null, 8, ["model-value"]),
266
- i(Q, {
267
- label: "Activate bundle on bind",
268
- placeholder: "Select bundle",
269
- items: e(r).filter((a) => !a.stripePriceId).map((a) => ({ label: a.name, value: a._id })),
270
- modelValue: e(s).bundle,
271
- "onUpdate:modelValue": t[12] || (t[12] = (a) => e(s).bundle = a)
272
- }, {
273
- append: h(() => [
274
- e(s).bundle ? (c(), F(P, {
275
- key: 0,
276
- icon: "link_off",
277
- variant: "plain",
278
- onClick: t[11] || (t[11] = (a) => e(s).bundle = void 0)
279
- })) : k("", !0)
280
- ]),
281
- _: 1
282
- }, 8, ["items", "modelValue"]),
283
- (le = (R = e(g).store) == null ? void 0 : R.stripe) != null && le.apiKey ? (c(), F(Q, {
284
- key: 0,
285
- label: "Linked subscription bundle",
286
- placeholder: "Select bundle",
287
- items: e(r).filter((a) => a.stripePriceId).map((a) => ({ label: a.name, value: a._id })),
288
- modelValue: e(s).subscriptionBundle,
289
- "onUpdate:modelValue": t[14] || (t[14] = (a) => e(s).subscriptionBundle = a)
290
- }, {
291
- append: h(() => [
292
- e(s).subscriptionBundle ? (c(), F(P, {
293
- key: 0,
294
- icon: "link_off",
295
- variant: "plain",
296
- onClick: t[13] || (t[13] = (a) => e(s).subscriptionBundle = void 0)
297
- })) : k("", !0)
298
- ]),
299
- _: 1
300
- }, 8, ["items", "modelValue"])) : k("", !0)
301
- ]),
302
- e(g).membership.design ? (c(), $("div", Ne, [
303
- d("div", Pe, [
304
- t[24] || (t[24] = d("p", { class: "fm-typo-en-title-sm-800" }, "Design preview", -1)),
305
- d("img", {
306
- src: (ae = e(n)) == null ? void 0 : ae.image,
307
- class: "aspect-[16/9]"
308
- }, null, 8, Re),
309
- d("div", qe, [
310
- (c(!0), $(z, null, H(e(g).membership.design, (a, Y) => (c(), $("img", {
311
- src: a.image,
312
- key: `image_${Y}`,
313
- class: me(["w-[112px] h-[63px] cursor-pointer", `${e(C) === Y ? "border-[2px] border-fm-color-primary" : ""}`]),
314
- onClick: (dt) => C.value = Y,
315
- alt: `ai_image_predict_${Y}`,
316
- style: { objectFit: "cover" }
317
- }, null, 10, ze))), 128))
318
- ])
319
- ])
320
- ])) : k("", !0)
321
- ];
322
- }),
323
- _: 1
324
- }, 512)
325
- ]),
326
- _: 1
327
- }, 8, ["modelValue"]);
328
- };
329
- }
330
- }), Te = { class: "space-y-16" }, Le = {
331
- key: 0,
332
- class: "flex flex-col gap-[16px] w-full"
333
- }, Oe = { class: "flex flex-col gap-[8px]" }, Ye = ["src"], Ke = { class: "flex pt-[24px] gap-[24px]" }, Ge = ["src", "onClick", "alt"], He = { class: "flex items-center gap-8" }, Qe = /* @__PURE__ */ Z({
334
- __name: "EditCardSheet",
335
- emits: ["success"],
336
- setup(ee, { expose: j, emit: T }) {
337
- const { minor: D } = J, g = W(), M = y(), x = y(!1), w = T, o = y({
338
- _id: "",
339
- business: "",
340
- serialNumber: ""
341
- }), B = y(!1);
342
- function s(C, n) {
343
- var u;
344
- B.value = C, C && n && (o.value = n, p.value = (u = g.membership.design) == null ? void 0 : u.findIndex(
345
- (r) => r.image === n.design
346
- ));
347
- }
348
- const p = y(0), A = E(
349
- () => {
350
- var C;
351
- return (C = g.membership.design) == null ? void 0 : C[p.value];
352
- }
353
- ), I = E(
354
- () => g.sortedStoreCategories.flatMap(
355
- (C) => C.bundles
356
- )
357
- );
358
- async function _(C) {
359
- var n, u;
360
- await ((n = M.value) == null ? void 0 : n.validateInputs()), x.value && (C.design = (u = A.value) == null ? void 0 : u.image, await D(
361
- async () => {
362
- await L.updateCard(C), await w("success");
363
- },
364
- {
365
- message: "Updating card",
366
- successMessage: "Card updated"
367
- }
368
- ));
369
- }
370
- return j({
371
- showSheet: s
372
- }), X(async () => {
373
- await g.readMemberStore();
374
- }), (C, n) => {
375
- const u = v("FmTextField"), r = v("FmSwitch"), b = v("FmButton"), m = v("FmForm"), t = v("FmSideSheet");
376
- return c(), F(t, {
377
- "max-width": 560,
378
- "dismiss-away": !0,
379
- header: "Edit card",
380
- modelValue: e(B),
381
- "onUpdate:modelValue": [
382
- n[10] || (n[10] = (l) => G(B) ? B.value = l : null),
383
- n[11] || (n[11] = (l) => B.value = l)
384
- ]
385
- }, {
386
- "side-sheet-footer": h(() => [
387
- d("div", He, [
388
- i(b, {
389
- label: "Save",
390
- disabled: !!e(o).redeemedAt,
391
- onClick: n[8] || (n[8] = (l) => _(e(o))),
392
- loading: e(ce)().isLoading
393
- }, null, 8, ["disabled", "loading"]),
394
- i(b, {
395
- label: "Cancel",
396
- type: "button",
397
- variant: "tertiary",
398
- onClick: n[9] || (n[9] = (l) => B.value = !1)
399
- })
400
- ])
401
- ]),
402
- default: h(() => [
403
- i(m, {
404
- ref_key: "form",
405
- ref: M,
406
- class: "space-y-40",
407
- onValidationSuccess: n[6] || (n[6] = (l) => x.value = !0),
408
- onValidationFailed: n[7] || (n[7] = (l) => x.value = !1)
409
- }, {
410
- default: h(() => {
411
- var l, V, U;
412
- return [
413
- d("div", Te, [
414
- i(u, {
415
- modelValue: e(o).serialNumber,
416
- "onUpdate:modelValue": n[0] || (n[0] = (f) => e(o).serialNumber = f),
417
- label: "Card Number",
418
- rules: [
419
- e(de).toRule(e(re).string().min(1, "Card number is required")),
420
- e(de).toRule(
421
- e(re).string().max(50, "Card number must be less than 50 characters")
422
- )
423
- ],
424
- required: !0
425
- }, null, 8, ["modelValue", "rules"]),
426
- n[12] || (n[12] = d("div", { class: "fm-typo-en-body-lg-600" }, "Card Settings", -1)),
427
- i(r, {
428
- "label-placement": "right",
429
- label: "Set card number on bind",
430
- "model-value": e(o).setCardOnBind || !1,
431
- "onUpdate:modelValue": n[1] || (n[1] = (f) => e(o).setCardOnBind = f)
432
- }, null, 8, ["model-value"]),
433
- i(Q, {
434
- label: "Activate bundle on bind",
435
- placeholder: "Select bundle",
436
- items: e(I).filter((f) => !f.stripePriceId).map((f) => ({ label: f.name, value: f._id })),
437
- modelValue: e(o).bundle,
438
- "onUpdate:modelValue": n[3] || (n[3] = (f) => e(o).bundle = f)
439
- }, {
440
- append: h(() => [
441
- e(o).bundle ? (c(), F(b, {
442
- key: 0,
443
- icon: "link_off",
444
- variant: "plain",
445
- onClick: n[2] || (n[2] = (f) => e(o).bundle = null)
446
- })) : k("", !0)
447
- ]),
448
- _: 1
449
- }, 8, ["items", "modelValue"]),
450
- (V = (l = e(g).store) == null ? void 0 : l.stripe) != null && V.apiKey ? (c(), F(Q, {
451
- key: 0,
452
- label: "Linked subscription bundle",
453
- placeholder: "Select bundle",
454
- items: e(I).filter((f) => f.stripePriceId).map((f) => ({ label: f.name, value: f._id })),
455
- modelValue: e(o).subscriptionBundle,
456
- "onUpdate:modelValue": n[5] || (n[5] = (f) => e(o).subscriptionBundle = f)
457
- }, {
458
- append: h(() => [
459
- e(o).subscriptionBundle ? (c(), F(b, {
460
- key: 0,
461
- icon: "link_off",
462
- variant: "plain",
463
- onClick: n[4] || (n[4] = (f) => e(o).subscriptionBundle = null)
464
- })) : k("", !0)
465
- ]),
466
- _: 1
467
- }, 8, ["items", "modelValue"])) : k("", !0)
468
- ]),
469
- e(g).membership.design ? (c(), $("div", Le, [
470
- d("div", Oe, [
471
- n[13] || (n[13] = d("p", { class: "fm-typo-en-title-sm-800" }, "Design preview", -1)),
472
- d("img", {
473
- src: (U = e(A)) == null ? void 0 : U.image,
474
- class: "aspect-[16/9]"
475
- }, null, 8, Ye),
476
- d("div", Ke, [
477
- (c(!0), $(z, null, H(e(g).membership.design, (f, N) => (c(), $("img", {
478
- src: f.image,
479
- key: `image_${N}`,
480
- class: me(["w-[112px] h-[63px] cursor-pointer", `${e(p) === N ? "border-[2px] border-fm-color-primary" : ""}`]),
481
- onClick: (q) => p.value = N,
482
- alt: `ai_image_predict_${N}`,
483
- style: { objectFit: "cover" }
484
- }, null, 10, Ge))), 128))
485
- ])
486
- ])
487
- ])) : k("", !0)
488
- ];
489
- }),
490
- _: 1
491
- }, 512)
492
- ]),
493
- _: 1
494
- }, 8, ["modelValue"]);
495
- };
496
- }
497
- }), Ze = {
498
- key: 0,
499
- class: "grid grid-cols-1 gap-8"
500
- }, Xe = { class: "flex items-center gap-8" }, Je = { class: "flex items-center gap-8" }, We = 5, et = /* @__PURE__ */ Z({
501
- __name: "CardDesignSheet",
502
- emits: ["success"],
503
- setup(ee, { expose: j, emit: T }) {
504
- const { minor: D } = J, g = W(), M = ye(), x = y(!1);
505
- y(), y(!1);
506
- const w = y(), o = y(null);
507
- E(() => {
508
- var u, r;
509
- return Math.min((((r = (u = w.value) == null ? void 0 : u.design) == null ? void 0 : r.length) ?? 0) + 1, We);
510
- });
511
- const B = T, s = E(() => {
512
- var u, r;
513
- return ((r = (u = g.membership) == null ? void 0 : u.design) == null ? void 0 : r.filter((b) => b.image)) || [];
514
- }), p = y(!1);
515
- function A(u) {
516
- p.value = u;
517
- }
518
- function I() {
519
- x.value = !0;
520
- }
521
- async function _() {
522
- await D(
523
- async () => {
524
- var b;
525
- const u = he(w.value), r = Ce.parse(u);
526
- if (r.design = (r == null ? void 0 : r.design) || [], o.value) {
527
- const m = Se().toHexString(), t = await ie.update(
528
- ie.designPath(m, o.value),
529
- o.value
530
- );
531
- (b = r.design) == null || b.push({
532
- _id: m,
533
- image: t
534
- });
535
- }
536
- await L.update(r), await n(), await B("success"), o.value = null, x.value = !1;
537
- },
538
- {
539
- message: "Saving card design",
540
- successMessage: "Card design saved"
541
- }
542
- );
543
- }
544
- async function C(u, r) {
545
- u ? o.value = u : r && M.open({
546
- title: "Delete Design",
547
- message: "Are you sure you want to delete this design?",
548
- primaryActions: { text: "Delete", close: !0 },
549
- secondaryActions: { text: "Cancel", close: !1 }
550
- }).onPrimary(async () => {
551
- var m, t;
552
- const b = (m = w.value.design) == null ? void 0 : m.findIndex((l) => l._id == r);
553
- console.log(b), b !== -1 && ((t = w.value.design) == null || t.splice(b, 1)), await _();
554
- }).onSecondary(() => {
555
- M.close();
556
- });
557
- }
558
- async function n() {
559
- await g.readMembership(), w.value = g.membership;
560
- }
561
- return j({
562
- showSheet: A
563
- }), X(async () => {
564
- await n(), s.value.length || (x.value = !0);
565
- }), (u, r) => {
566
- const b = v("FmButton"), m = v("FmSideSheet");
567
- return c(), F(m, {
568
- "max-width": 560,
569
- "dismiss-away": !0,
570
- header: "Manage Design",
571
- modelValue: e(p),
572
- "onUpdate:modelValue": [
573
- r[2] || (r[2] = (t) => G(p) ? p.value = t : null),
574
- r[3] || (r[3] = (t) => p.value = t)
575
- ]
576
- }, ge({
577
- default: h(() => [
578
- e(x) ? k("", !0) : (c(), $("div", Ze, [
579
- (c(!0), $(z, null, H(e(s), (t) => (c(), F(ue, {
580
- key: String(t._id),
581
- "image-fit": "cover",
582
- label: "",
583
- "aspect-ratio": "16/9",
584
- thumbnail: t.image,
585
- accept: ".png, .jpg, .jpeg, .gif",
586
- "recommended-size": "Recommended 16:9 ratio / 1280px x 720px",
587
- file: void 0,
588
- "delete-button": !1
589
- }, {
590
- "delete-button": h(() => [
591
- i(b, {
592
- class: "!text-neutral-50 !bg-neutral-700",
593
- icon: "delete",
594
- variant: "tertiary",
595
- onClick: (l) => C(null, t._id)
596
- }, null, 8, ["onClick"])
597
- ]),
598
- _: 2
599
- }, 1032, ["thumbnail"]))), 128))
600
- ])),
601
- e(x) ? (c(), F(ue, {
602
- key: 1,
603
- "image-fit": "cover",
604
- label: "",
605
- "aspect-ratio": "16/9",
606
- accept: ".png, .jpg, .jpeg, .gif",
607
- "recommended-size": "Recommended 16:9 ratio / 1280px x 720px",
608
- "onUpdate:file": C
609
- })) : k("", !0)
610
- ]),
611
- _: 2
612
- }, [
613
- e(x) ? {
614
- name: "side-sheet-footer",
615
- fn: h(() => [
616
- d("div", Je, [
617
- i(b, {
618
- label: "Save",
619
- onClick: _,
620
- disabled: !e(o)
621
- }, null, 8, ["disabled"]),
622
- i(b, {
623
- label: "Cancel",
624
- type: "button",
625
- variant: "tertiary",
626
- onClick: r[1] || (r[1] = (t) => x.value = !1)
627
- })
628
- ])
629
- ]),
630
- key: "1"
631
- } : {
632
- name: "side-sheet-footer",
633
- fn: h(() => [
634
- d("div", Xe, [
635
- i(b, {
636
- label: "Add Design",
637
- onClick: I
638
- }),
639
- i(b, {
640
- label: "Cancel",
641
- type: "button",
642
- variant: "tertiary",
643
- onClick: r[0] || (r[0] = (t) => p.value = !1)
644
- })
645
- ])
646
- ]),
647
- key: "0"
648
- }
649
- ]), 1032, ["modelValue"]);
650
- };
651
- }
652
- }), tt = { class: "flex items-center" }, lt = { class: "fm-typo-en-title-md-600 fm-step-title line-clamp-2 mr-8" }, at = { class: "px-24 flex flex-col pb-24 gap-y-16" }, nt = { class: "flex items-center justify-end" }, ot = { class: "flex flex-col gap-16 text-center" }, st = { class: "fm-typo-en-title-sm-800" }, it = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, rt = { class: "flex gap-x-8" }, Nt = /* @__PURE__ */ Z({
653
- __name: "Card",
654
- setup(ee) {
655
- const { minor: j, global: T } = J, D = y(), g = y(), M = y(), x = we(), w = W(), { t: o } = Be(), B = E(
656
- () => w.sortedStoreCategories.flatMap((t) => t.bundles)
657
- ), s = [
658
- {
659
- header: o("connect.loyalty.card.table.card_number"),
660
- accessorFn: (t) => t.serialNumber
661
- },
662
- {
663
- header: o("connect.loyalty.card.table.redeemed_by"),
664
- accessorKey: "user",
665
- enableSorting: !1,
666
- cell(t) {
667
- const l = t.row.original.pf_member;
668
- return K(
669
- "div",
670
- {
671
- class: "flex items-center gap-x-8"
672
- },
673
- [
674
- K(se.FmAvatar, {
675
- name: l != null && l.photoUrl || l == null ? void 0 : l.name,
676
- src: (l == null ? void 0 : l.photoUrl) ?? void 0,
677
- size: "sm"
678
- }),
679
- K("span", { class: "fm-typo-en-body-sm-400" }, l == null ? void 0 : l.name)
680
- ]
681
- );
682
- }
683
- },
684
- {
685
- header: o("connect.loyalty.card.table.phone"),
686
- accessorFn: (t) => {
687
- var l;
688
- return ((l = t.pf_member) == null ? void 0 : l.phoneNumber) || "-";
689
- },
690
- accessorKey: "pf_member.phoneNumber"
691
- },
692
- {
693
- header: o("connect.loyalty.card.table.created_at"),
694
- accessorKey: "_id",
695
- accessorFn: (t) => oe(Ue(t._id.toString())).format("DD MMM YYYY hh:mmA")
696
- },
697
- {
698
- header: o("connect.loyalty.card.table.bundle"),
699
- accessorFn: (t) => {
700
- var l;
701
- return ((l = B.value.find((V) => V._id === t.bundle)) == null ? void 0 : l.name) || "-";
702
- }
703
- },
704
- {
705
- header: o("connect.loyalty.card.table.redeemed_at"),
706
- accessorKey: "redeemedAt",
707
- accessorFn: (t) => t.redeemedAt ? oe(t.redeemedAt).format("DD MMM YYYY hh:mmA") : "-"
708
- },
709
- {
710
- header: o("connect.loyalty.card.table.actions"),
711
- cell(t) {
712
- return K(se.FmButton, {
713
- variant: "tertiary",
714
- icon: "delete",
715
- iconColor: "neutral-gray-400",
716
- disabled: !!t.row.original.redeemedAt,
717
- onClick: (l) => {
718
- l.stopPropagation(), r(t.row.original);
719
- }
720
- });
721
- }
722
- }
723
- ], { tableMeta: p, rowData: A, onSort: I, debouncedFetchData: _, onSearch: C } = $e(L.readCards);
724
- async function n(t) {
725
- var l;
726
- await _(t), (l = D.value) == null || l.showSheet(!1);
727
- }
728
- const u = E(() => x.isPremium ? [
729
- {
730
- label: o("connect.loyalty.card.actions.create"),
731
- value: "create",
732
- isPrimary: !0
733
- },
734
- {
735
- label: o("connect.loyalty.card.actions.manage_design"),
736
- value: "design",
737
- isPrimary: !0
738
- }
739
- ] : []);
740
- async function r(t) {
741
- await pe.remove(
742
- `Are you sure you want to remove card ${t.serialNumber}?`
743
- ) && await j(
744
- async () => {
745
- await L.deleteCard(t._id.toString()), await _({ pageSize: 10, pageIndex: 0 });
746
- },
747
- {
748
- message: `Removing card ${t.serialNumber}`,
749
- successMessage: `Removed card ${t.serialNumber} successfully`
750
- }
751
- );
752
- }
753
- async function b(t) {
754
- if (!t || t.length === 0)
755
- return;
756
- const l = new Ve(), V = t.map((U) => ({
757
- CardNumber: U
758
- }));
759
- l.addRecords(V), await ke(
760
- l.buildExcel(),
761
- `cards-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
762
- {
763
- bookType: "xlsx",
764
- bookSST: !1,
765
- type: "array"
766
- }
767
- );
768
- }
769
- const m = (t) => {
770
- var l;
771
- if (t.redeemedAt) {
772
- xe.error("Update not permitted", 2e3);
773
- return;
774
- }
775
- (l = g == null ? void 0 : g.value) == null || l.showSheet(!0, t);
776
- };
777
- return X(async () => {
778
- await T(async () => {
779
- await x.readPremium(), await w.readMemberStore(), await w.readMembership(), await n();
780
- });
781
- }), (t, l) => {
782
- const V = v("FmPill"), U = v("FmPageHead"), f = v("FmSearch"), N = v("FmButton"), q = v("FmCard");
783
- return c(), $(z, null, [
784
- i(U, {
785
- title: e(o)("connect.loyalty.card.title"),
786
- actions: e(u),
787
- "onClick:action": l[0] || (l[0] = (S) => {
788
- var P, O;
789
- console.log(S), S === "design" && ((P = e(M)) == null || P.showSheet(!0)), S === "create" && ((O = e(D)) == null || O.showSheet(!0));
790
- })
791
- }, {
792
- title: h(() => [
793
- d("div", tt, [
794
- d("span", lt, te(e(o)("connect.loyalty.card.title")), 1),
795
- i(V, {
796
- class: "ml-8",
797
- variant: "premium"
798
- })
799
- ])
800
- ]),
801
- _: 1
802
- }, 8, ["title", "actions"]),
803
- d("div", at, [
804
- e(A).length > 0 || e(A).length <= 0 && e(p).searchValue || e(p).pageCount > 0 ? (c(), $(z, { key: 0 }, [
805
- d("div", nt, [
806
- i(f, {
807
- class: "mt-4",
808
- modelValue: e(p).searchValue,
809
- "onUpdate:modelValue": [
810
- l[1] || (l[1] = (S) => e(p).searchValue = S),
811
- e(C)
812
- ],
813
- placeholder: "Search",
814
- collapsible: ""
815
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
816
- i(N, {
817
- icon: "ios_share",
818
- variant: "tertiary",
819
- onClick: be(e(Fe), ["prevent"])
820
- }, null, 8, ["onClick"])
821
- ]),
822
- i(Me, {
823
- loading: e(p).isLoading,
824
- "row-data": e(A),
825
- "row-count": e(p).totalRows,
826
- "column-defs": s,
827
- "shrink-at": !1,
828
- "page-count": e(p).pageCount,
829
- "page-index": e(p).pageIndex,
830
- "page-size": e(p).pageSize,
831
- onSortChange: e(I),
832
- onPageChange: l[2] || (l[2] = (S) => {
833
- e(_)({
834
- pageSize: S.pageSize,
835
- pageIndex: S.pageIndex
836
- });
837
- }),
838
- onRowClick: l[3] || (l[3] = (S) => {
839
- m(e(_e)(S.original));
840
- })
841
- }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"])
842
- ], 64)) : (c(), F(q, {
843
- key: 1,
844
- variant: "outlined",
845
- class: "w-full flex flex-col items-center justify-center gap-y-24 p-24"
846
- }, {
847
- default: h(() => [
848
- l[8] || (l[8] = d("img", {
849
- src: ve,
850
- class: "aspect-square w-[150px]"
851
- }, null, -1)),
852
- d("div", ot, [
853
- d("div", st, te(e(o)("connect.loyalty.card.empty_state.title")), 1),
854
- d("div", it, te(e(o)("connect.loyalty.card.empty_state.description")), 1)
855
- ]),
856
- d("div", rt, [
857
- i(N, {
858
- variant: "primary",
859
- label: e(o)("connect.loyalty.card.actions.add"),
860
- icon: "add",
861
- disabled: !e(x).isPremium,
862
- onClick: l[4] || (l[4] = () => {
863
- var S;
864
- return (S = e(D)) == null ? void 0 : S.showSheet(!0);
865
- })
866
- }, null, 8, ["label", "disabled"]),
867
- i(N, {
868
- variant: "secondary",
869
- label: e(o)("connect.loyalty.card.actions.manage_design"),
870
- disabled: !e(x).isPremium,
871
- onClick: l[5] || (l[5] = () => {
872
- var S;
873
- return (S = e(M)) == null ? void 0 : S.showSheet(!0);
874
- })
875
- }, null, 8, ["label", "disabled"])
876
- ])
877
- ]),
878
- _: 1
879
- })),
880
- i(je, {
881
- ref_key: "sheetRef",
882
- ref: D,
883
- onSuccess: l[6] || (l[6] = (S) => n()),
884
- onExport: b
885
- }, null, 512),
886
- i(et, {
887
- ref_key: "designSheetRef",
888
- ref: M,
889
- onSuccess: n
890
- }, null, 512),
891
- i(Qe, {
892
- ref_key: "editSheetRef",
893
- ref: g,
894
- onSuccess: l[7] || (l[7] = (S) => {
895
- var P;
896
- n({
897
- pageSize: e(p).pageSize,
898
- pageIndex: e(p).pageIndex
899
- }), (P = e(g)) == null || P.showSheet(!1);
900
- })
901
- }, null, 512)
902
- ])
903
- ], 64);
904
- };
905
- }
906
- });
907
- export {
908
- Nt as default
909
- };