@feedmepos/mf-connect 0.1.0-beta.6 → 0.1.0-beta.60

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 (118) hide show
  1. package/dist/Analytic-CXegtSEd.js +427 -0
  2. package/dist/{App-C2616cfr.js → App-m9A9s3wd.js} +445 -420
  3. package/dist/AuditLogs-CpUOkyXq.js +1886 -0
  4. package/dist/Bin-m6mPl3FE.js +166 -0
  5. package/dist/{Broadcast-CqSwLTAq.js → Broadcast-DNjHnlPp.js} +56 -54
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-DrR9Pmtb.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-cjdNZLkE.js} +6 -8
  7. package/dist/Card-CAvS5aaN.js +896 -0
  8. package/dist/Collections-3C9I2byH.js +459 -0
  9. package/dist/{Credit-CPcLgnsq.js → Credit-DcAmLeMb.js} +36 -34
  10. package/dist/CustomSelect.vue_vue_type_script_setup_true_lang-DLnvDVgf.js +108 -0
  11. package/dist/DateRangeChip.vue_vue_type_script_setup_true_lang-BUzUIIUW.js +58 -0
  12. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-wGFMCV-y.js +2181 -0
  13. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-D2buK6Dj.js → EffectSheet.vue_vue_type_style_index_0_lang-CIEn1N24.js} +6 -6
  14. package/dist/{Experience-BoBikt-x.js → Experience-GF9yOrlE.js} +32 -30
  15. package/dist/FilterChip.vue_vue_type_script_setup_true_lang-BrPLkFX8.js +118 -0
  16. package/dist/{Game-DR8PyYZa.js → Game-CzBn_Li3.js} +39 -37
  17. package/dist/Index-Bhmkdb4n.js +259 -0
  18. package/dist/Marketing-DlbcOoiN.js +20071 -0
  19. package/dist/Member-CdXG5uEN.js +317 -0
  20. package/dist/MemberList-xIOXAHJf.js +1598 -0
  21. package/dist/MemberTransactions-CsW9vso0.js +45 -0
  22. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-DhtIZCjT.js → MessageInput.vue_vue_type_script_setup_true_lang-jtjk9NjI.js} +83 -71
  23. package/dist/{Mission-CMpvz9zN.js → Mission-2UjKrmGe.js} +101 -87
  24. package/dist/Overview-ClittdS6.js +1078 -0
  25. package/dist/{Point-DkZn6p9s.js → Point-BON4g7zE.js} +55 -53
  26. package/dist/{Promotion-B7YzwPc_.js → Promotion-qUEZmmm8.js} +65 -57
  27. package/dist/Queue-DA4glGdE.js +244 -0
  28. package/dist/Record-EUAnp1--.js +340 -0
  29. package/dist/Reward-ChbsdQuW.js +442 -0
  30. package/dist/RewardGroup.vue_vue_type_script_setup_true_lang-CUFw56sf.js +150 -0
  31. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-BKesht7Y.js +1637 -0
  32. package/dist/Segment-DbwFx6vD.js +568 -0
  33. package/dist/SelectItems.vue_vue_type_script_setup_true_lang-lwpYOWMR.js +181 -0
  34. package/dist/SendVoucherSheet.vue_vue_type_script_setup_true_lang-BbuOPEGY.js +147 -0
  35. package/dist/Setting-FMTftvlU.js +1931 -0
  36. package/dist/Store-BkUwiBUq.js +1751 -0
  37. package/dist/{StoreRewards-6BzVwZqr.js → StoreRewards-Z8uhK0v1.js} +33 -32
  38. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-DwFYJ1Iz.js +943 -0
  39. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-B6cAveco.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-D6mrJp05.js} +1 -1
  40. package/dist/{Tier-CW-46oJS.js → Tier-COCmcJJF.js} +327 -318
  41. package/dist/{Title-CE9rWVdi.js → Title-7qCjbur9.js} +199 -184
  42. package/dist/{Transaction-B21RrC4M.js → Transaction-9FS_K2hv.js} +2 -2
  43. package/dist/UserRuleGroup.vue_vue_type_script_setup_true_lang-Fx-J2gcK.js +130 -0
  44. package/dist/Voucher-Dx70JAgw.js +354 -0
  45. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-CECJsKRJ.js +419 -0
  46. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-BiVZwBuG.js → ZodTextField.vue_vue_type_script_setup_true_lang-Bne_nxYS.js} +1 -1
  47. package/dist/{app-CjhXHUQv.js → app-CWKpKW78.js} +1 -1
  48. package/dist/app-q6W6-faT.js +7059 -0
  49. package/dist/app.js +1 -1
  50. package/dist/{business-aHhRUXc0.js → business-D5AQBRGS.js} +1 -1
  51. package/dist/campaign-BGiM8ccX.js +1810 -0
  52. package/dist/{campaign-DH9NUNf_.js → campaign-v8MAkDo-.js} +2 -2
  53. package/dist/campaign.enum-Dro6UEcE.js +20 -0
  54. package/dist/campaign.fn-DsJUr-gE.js +758 -0
  55. package/dist/collectible.enum-BH9pX7PE.js +19 -0
  56. package/dist/{collection.fn-CYlsA-kW.js → collection.fn-CHiRShK_.js} +2 -2
  57. package/dist/dto-CeX9egUp.js +214 -0
  58. package/dist/{effect-LSc9YanX.js → effect-DtJQE1cD.js} +9 -9
  59. package/dist/email-addresses-DKOsgzML.js +705 -0
  60. package/dist/{export-Cf0-C5Ly.js → export-Daiv_zH9.js} +5 -5
  61. package/dist/{helper-CiZpeMCM.js → helper-B5Emawnj.js} +1 -1
  62. package/dist/index-9WBy0L7U.js +54 -0
  63. package/dist/{index-D6cEOHP4.js → index-BSHuLDD0.js} +1501 -1480
  64. package/dist/{index-BVb5-Ht8.js → index-CUl_8M_c.js} +259 -173
  65. package/dist/{index-gxwjKu3-.js → index-CgCcvX_L.js} +2212 -871
  66. package/dist/index-CsaQJMAR.js +66 -0
  67. package/dist/{index-D_83JP2i.js → index-DrWrGAHJ.js} +48 -4
  68. package/dist/index-DteeKoFo.js +115 -0
  69. package/dist/{index-DW3PRjPL.js → index-Dw2RtHKR.js} +1 -1
  70. package/dist/{index-kPhrD63q.js → index-ICbXrXiP.js} +1 -1
  71. package/dist/index-Xwc07I54.js +29000 -0
  72. package/dist/{index-DtsDOuDx.js → index-ZBSI6ViG.js} +24 -21
  73. package/dist/index-g9NNHS8s.js +32 -0
  74. package/dist/index-p6F08hhh.js +44 -0
  75. package/dist/index-vh86FiIQ.js +10 -0
  76. package/dist/{index.esm2017-B7oVYIbY.js → index.esm2017-B-SDA6Y2.js} +121 -121
  77. package/dist/loading-CDbkBsRr.js +71 -0
  78. package/dist/{membership-Dw1ylJ9Y.js → membership-B8uwuntJ.js} +54 -46
  79. package/dist/money-DRKB3Rpe.js +15 -0
  80. package/dist/number-DtyC1DJU.js +12 -0
  81. package/dist/objectid-wGrq9P1h.js +145 -0
  82. package/dist/{loading-7yq1tinq.js → plugins-DKNh-lBz.js} +3871 -3943
  83. package/dist/remy-vue-client-Cpppk9h-.js +1693 -0
  84. package/dist/reward-C2jv5dmJ.js +36 -0
  85. package/dist/{rule-C0Q_SHow.js → rule-C5AMTchR.js} +180 -177
  86. package/dist/{rule-builder-iu17XIof.js → rule-builder-DLOGHT1l.js} +1 -1
  87. package/dist/style.css +1 -1
  88. package/dist/{template-CyOanTMu.js → template-C-fz1DXI.js} +5 -5
  89. package/dist/trigger-DTErX60D.js +144 -0
  90. package/dist/user-CVRoQGCF.js +54 -0
  91. package/dist/{vue-i18n-B0fLJH7a.js → vue-i18n-CxMxiW_u.js} +366 -366
  92. package/dist/{xlsx-BYO_bB9J.js → xlsx-CARvMJN_.js} +1 -1
  93. package/package.json +10 -6
  94. package/dist/Analytic-muDf0oMG.js +0 -622
  95. package/dist/Card-bhLoK0ZV.js +0 -825
  96. package/dist/Collections-DjtsAiol.js +0 -453
  97. package/dist/EditCampaignSheet.vue_vue_type_script_setup_true_lang-U_QZneS6.js +0 -2813
  98. package/dist/Marketing-Dny2nMUl.js +0 -316
  99. package/dist/Member-CP_smyk8.js +0 -69
  100. package/dist/MemberList-CR3eYI9p.js +0 -1733
  101. package/dist/MemberTransactions-RTx_lKFb.js +0 -38
  102. package/dist/RuleGroup.vue_vue_type_script_setup_true_lang-Cs67_GLE.js +0 -1753
  103. package/dist/Segment-Bb4gHt5V.js +0 -437
  104. package/dist/Setting-Xj0AVzh3.js +0 -1901
  105. package/dist/Store-BWRHQ6Ie.js +0 -1511
  106. package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BsFnT8BS.js +0 -890
  107. package/dist/Voucher-KK9fBI0u.js +0 -490
  108. package/dist/app-Dvf_JNMf.js +0 -5764
  109. package/dist/dto-DArfyZAI.js +0 -2770
  110. package/dist/index-Bi_LGEtY.js +0 -99
  111. package/dist/index-CiQDG7Cm.js +0 -762
  112. package/dist/index-CuvNtC_M.js +0 -61
  113. package/dist/index-DQfjSSMF.js +0 -206
  114. package/dist/index-DcxssxPi.js +0 -29193
  115. package/dist/index-DqJVH2kv.js +0 -298
  116. package/dist/money-CPd0XTNv.js +0 -15
  117. package/dist/number-BgXY4un8.js +0 -12
  118. package/dist/user-Bm4KttFq.js +0 -37
@@ -1,1733 +0,0 @@
1
- var Pt = Object.defineProperty;
2
- var Bt = (F, E, x) => E in F ? Pt(F, E, { enumerable: !0, configurable: !0, writable: !0, value: x }) : F[E] = x;
3
- var it = (F, E, x) => Bt(F, typeof E != "symbol" ? E + "" : E, x);
4
- import { defineComponent as je, computed as ne, ref as ce, resolveComponent as U, openBlock as A, createElementBlock as Q, Fragment as fe, createElementVNode as m, unref as s, createBlock as re, createCommentVNode as xe, createVNode as D, renderList as _e, withCtx as ge, createTextVNode as ct, toDisplayString as J, withDirectives as dt, vShow as mt, onMounted as ft, isRef as Ot, h as ye } from "vue";
5
- import { h as M } from "./moment-BWErdI6_.js";
6
- import { useDialog as Ze, components as De } from "@feedmepos/ui-library";
7
- import { g as Ut } from "./_commonjsHelpers-BkfeUUK-.js";
8
- import { u as Qe, w as Yt } from "./xlsx-BYO_bB9J.js";
9
- import "./index-kPhrD63q.js";
10
- import { p as at, b as st, u as pt } from "./loading-7yq1tinq.js";
11
- import { u as et, C as lt, s as qt } from "./membership-Dw1ylJ9Y.js";
12
- import { e as jt } from "./index-DcxssxPi.js";
13
- import { _ as ut } from "./lodash-B5I3zXaY.js";
14
- import { D as zt } from "./type_drinks-D6jnpvwV.js";
15
- import { F as Kt, a as Gt } from "./index-DQfjSSMF.js";
16
- import { F as Wt } from "./index-gxwjKu3-.js";
17
- import { C as Xe } from "./collection.fn-CYlsA-kW.js";
18
- import { u as bt } from "./business-aHhRUXc0.js";
19
- import { defineStore as Ht } from "pinia";
20
- import { m as ue } from "./index-DtsDOuDx.js";
21
- import { o as vt } from "./objectId-dwaoBfJX.js";
22
- import { f as qe } from "./number-BgXY4un8.js";
23
- import { t as Jt } from "./money-CPd0XTNv.js";
24
- import { u as Qt, _ as Xt } from "./usePagination-BeF5K3M7.js";
25
- import { g as Zt, a as en, b as tn } from "./user-Bm4KttFq.js";
26
- import { useRouter as nn } from "vue-router";
27
- import { R as rn } from "./app-Dvf_JNMf.js";
28
- class on {
29
- constructor() {
30
- it(this, "data", []);
31
- }
32
- addRecord(E) {
33
- this.data.push(E);
34
- }
35
- buildExcel() {
36
- const E = Qe.book_new(), x = Qe.json_to_sheet(this.data);
37
- return Qe.book_append_sheet(E, x, "Members"), E;
38
- }
39
- }
40
- var yt = { exports: {} };
41
- (function(F) {
42
- (function(E) {
43
- function x(l) {
44
- function C() {
45
- return Te < rt;
46
- }
47
- function W() {
48
- return Me[Te];
49
- }
50
- function R() {
51
- return Te;
52
- }
53
- function q(i) {
54
- Te = i;
55
- }
56
- function j() {
57
- Te += 1;
58
- }
59
- function z() {
60
- Te = 0, rt = Me.length;
61
- }
62
- function L(i, r) {
63
- return {
64
- name: i,
65
- tokens: r || "",
66
- semantic: r || "",
67
- children: []
68
- };
69
- }
70
- function u(i, r) {
71
- var a;
72
- return r === null ? null : (a = L(i), a.tokens = r.tokens, a.semantic = r.semantic, a.children.push(r), a);
73
- }
74
- function I(i, r) {
75
- return r !== null && (i.tokens += r.tokens, i.semantic += r.semantic), i.children.push(r), i;
76
- }
77
- function g(i) {
78
- var r;
79
- return C() ? (r = W(), i(r) ? (j(), L("token", r)) : null) : null;
80
- }
81
- function v() {
82
- return null;
83
- }
84
- function n(i) {
85
- return function() {
86
- return u("literal", g(function(a) {
87
- return a === i;
88
- }));
89
- };
90
- }
91
- function t() {
92
- var i = arguments;
93
- return function() {
94
- var a, c, y, N;
95
- for (N = R(), c = L("and"), a = 0; a < i.length; a += 1) {
96
- if (y = i[a](), y === null)
97
- return q(N), null;
98
- I(c, y);
99
- }
100
- return c;
101
- };
102
- }
103
- function o() {
104
- var i = arguments;
105
- return function() {
106
- var a, c, y;
107
- for (y = R(), a = 0; a < i.length; a += 1) {
108
- if (c = i[a](), c !== null)
109
- return c;
110
- q(y);
111
- }
112
- return null;
113
- };
114
- }
115
- function e(i) {
116
- return function() {
117
- var a, c;
118
- return c = R(), a = i(), a !== null ? a : (q(c), L("opt"));
119
- };
120
- }
121
- function d(i) {
122
- return function() {
123
- var a = i();
124
- return a !== null && (a.semantic = ""), a;
125
- };
126
- }
127
- function h(i) {
128
- return function() {
129
- var a = i();
130
- return a !== null && a.semantic.length > 0 && (a.semantic = " "), a;
131
- };
132
- }
133
- function b(i, r) {
134
- return function() {
135
- var c, y, N, le, ot;
136
- for (le = R(), c = L("star"), N = 0, ot = r === void 0 ? 0 : r; (y = i()) !== null; )
137
- N = N + 1, I(c, y);
138
- return N >= ot ? c : (q(le), null);
139
- };
140
- }
141
- function B(i) {
142
- return i.replace(/([ \t]|\r\n)+/g, " ").replace(/^\s*/, "").replace(/\s*$/, "");
143
- }
144
- function P(i) {
145
- return i.charCodeAt(0) >= 128;
146
- }
147
- function X() {
148
- return u("cr", n("\r")());
149
- }
150
- function p() {
151
- return u("crlf", t(X, $)());
152
- }
153
- function V() {
154
- return u("dquote", n('"')());
155
- }
156
- function T() {
157
- return u("htab", n(" ")());
158
- }
159
- function $() {
160
- return u("lf", n(`
161
- `)());
162
- }
163
- function Z() {
164
- return u("sp", n(" ")());
165
- }
166
- function oe() {
167
- return u("vchar", g(function(r) {
168
- var a = r.charCodeAt(0), c = 33 <= a && a <= 126;
169
- return l.rfc6532 && (c = c || P(r)), c;
170
- }));
171
- }
172
- function ee() {
173
- return u("wsp", o(Z, T)());
174
- }
175
- function H() {
176
- var i = u(
177
- "quoted-pair",
178
- o(
179
- t(n("\\"), o(oe, ee)),
180
- St
181
- )()
182
- );
183
- return i === null ? null : (i.semantic = i.semantic[1], i);
184
- }
185
- function O() {
186
- return u("fws", o(
187
- Ct,
188
- t(
189
- e(t(
190
- b(ee),
191
- d(p)
192
- )),
193
- b(ee, 1)
194
- )
195
- )());
196
- }
197
- function Ie() {
198
- return u("ctext", o(
199
- function() {
200
- return g(function(a) {
201
- var c = a.charCodeAt(0), y = 33 <= c && c <= 39 || 42 <= c && c <= 91 || 93 <= c && c <= 126;
202
- return l.rfc6532 && (y = y || P(a)), y;
203
- });
204
- },
205
- xt
206
- )());
207
- }
208
- function Ve() {
209
- return u("ccontent", o(Ie, H, we)());
210
- }
211
- function we() {
212
- return u("comment", t(
213
- n("("),
214
- b(t(e(O), Ve)),
215
- e(O),
216
- n(")")
217
- )());
218
- }
219
- function k() {
220
- return u("cfws", o(
221
- t(
222
- b(
223
- t(e(O), we),
224
- 1
225
- ),
226
- e(O)
227
- ),
228
- O
229
- )());
230
- }
231
- function he() {
232
- return u("atext", g(function(r) {
233
- var a = "a" <= r && r <= "z" || "A" <= r && r <= "Z" || "0" <= r && r <= "9" || [
234
- "!",
235
- "#",
236
- "$",
237
- "%",
238
- "&",
239
- "'",
240
- "*",
241
- "+",
242
- "-",
243
- "/",
244
- "=",
245
- "?",
246
- "^",
247
- "_",
248
- "`",
249
- "{",
250
- "|",
251
- "}",
252
- "~"
253
- ].indexOf(r) >= 0;
254
- return l.rfc6532 && (a = a || P(r)), a;
255
- }));
256
- }
257
- function Se() {
258
- return u("atom", t(h(e(k)), b(he, 1), h(e(k)))());
259
- }
260
- function Ee() {
261
- var i, r;
262
- return i = u("dot-atom-text", b(he, 1)()), i === null || (r = b(t(n("."), b(he, 1)))(), r !== null && I(i, r)), i;
263
- }
264
- function Ae() {
265
- return u("dot-atom", t(d(e(k)), Ee, d(e(k)))());
266
- }
267
- function $e() {
268
- return u("qtext", o(
269
- function() {
270
- return g(function(a) {
271
- var c = a.charCodeAt(0), y = c === 33 || 35 <= c && c <= 91 || 93 <= c && c <= 126;
272
- return l.rfc6532 && (y = y || P(a)), y;
273
- });
274
- },
275
- ht
276
- )());
277
- }
278
- function Re() {
279
- return u("qcontent", o($e, H)());
280
- }
281
- function ke() {
282
- return u("quoted-string", t(
283
- d(e(k)),
284
- d(V),
285
- b(t(e(h(O)), Re)),
286
- e(d(O)),
287
- d(V),
288
- d(e(k))
289
- )());
290
- }
291
- function de() {
292
- return u("word", o(Se, ke)());
293
- }
294
- function ze() {
295
- return u("phrase", o(Ft, b(de, 1))());
296
- }
297
- function me() {
298
- return u("address", o(f, Pe)());
299
- }
300
- function f() {
301
- return u("mailbox", o(Ke, se)());
302
- }
303
- function Ke() {
304
- return u("name-addr", t(e(Be), Le)());
305
- }
306
- function Le() {
307
- return u("angle-addr", o(
308
- t(
309
- d(e(k)),
310
- n("<"),
311
- se,
312
- n(">"),
313
- d(e(k))
314
- ),
315
- Tt
316
- )());
317
- }
318
- function Pe() {
319
- return u("group", t(
320
- Be,
321
- n(":"),
322
- e(Ge),
323
- n(";"),
324
- d(e(k))
325
- )());
326
- }
327
- function Be() {
328
- return u("display-name", function() {
329
- var r = ze();
330
- return r !== null && (r.semantic = B(r.semantic)), r;
331
- }());
332
- }
333
- function Fe() {
334
- return u("mailbox-list", o(
335
- t(
336
- f,
337
- b(t(n(","), f))
338
- ),
339
- At
340
- )());
341
- }
342
- function pe() {
343
- return u("address-list", o(
344
- t(
345
- me,
346
- b(t(n(l.addressListSeparator), me))
347
- ),
348
- kt
349
- )());
350
- }
351
- function Ge() {
352
- return u("group-list", o(
353
- Fe,
354
- d(k),
355
- Nt
356
- )());
357
- }
358
- function te() {
359
- return u("local-part", o(Mt, Ae, ke)());
360
- }
361
- function ie() {
362
- return u(
363
- "dtext",
364
- o(
365
- function() {
366
- return g(function(a) {
367
- var c = a.charCodeAt(0), y = 33 <= c && c <= 90 || 94 <= c && c <= 126;
368
- return l.rfc6532 && (y = y || P(a)), y;
369
- });
370
- },
371
- It
372
- )()
373
- );
374
- }
375
- function be() {
376
- return u("domain-literal", t(
377
- d(e(k)),
378
- n("["),
379
- b(t(e(O), ie)),
380
- e(O),
381
- n("]"),
382
- d(e(k))
383
- )());
384
- }
385
- function ae() {
386
- return u("domain", function() {
387
- var r = o(Dt, Ae, be)();
388
- return l.rejectTLD && r && r.semantic && r.semantic.indexOf(".") < 0 ? null : (r && (r.semantic = r.semantic.replace(/\s+/g, "")), r);
389
- }());
390
- }
391
- function se() {
392
- return u("addr-spec", t(
393
- te,
394
- n("@"),
395
- ae
396
- )());
397
- }
398
- function Ce() {
399
- return u("from", o(
400
- Fe,
401
- pe
402
- )());
403
- }
404
- function Oe() {
405
- return u("sender", o(
406
- f,
407
- me
408
- )());
409
- }
410
- function We() {
411
- return u("reply-to", pe());
412
- }
413
- function Ue() {
414
- return l.strict ? null : u("obs-NO-WS-CTL", g(function(i) {
415
- var r = i.charCodeAt(0);
416
- return 1 <= r && r <= 8 || r === 11 || r === 12 || 14 <= r && r <= 31 || r === 127;
417
- }));
418
- }
419
- function xt() {
420
- return l.strict ? null : u("obs-ctext", Ue());
421
- }
422
- function ht() {
423
- return l.strict ? null : u("obs-qtext", Ue());
424
- }
425
- function St() {
426
- return l.strict ? null : u("obs-qp", t(
427
- n("\\"),
428
- o(n("\0"), Ue, $, X)
429
- )());
430
- }
431
- function Ft() {
432
- return l.strict ? null : u("obs-phrase", t(
433
- de,
434
- b(o(
435
- de,
436
- n("."),
437
- l.atInDisplayName ? n("@") : v,
438
- l.commaInDisplayName ? n(",") : v,
439
- h(k)
440
- ))
441
- )());
442
- }
443
- function Ct() {
444
- return l.strict ? null : u("obs-FWS", b(
445
- t(d(e(p)), ee),
446
- 1
447
- )());
448
- }
449
- function Tt() {
450
- return l.strict ? null : u("obs-angle-addr", t(
451
- d(e(k)),
452
- n("<"),
453
- _t,
454
- se,
455
- n(">"),
456
- d(e(k))
457
- )());
458
- }
459
- function _t() {
460
- return l.strict ? null : u("obs-route", t(
461
- wt,
462
- n(":")
463
- )());
464
- }
465
- function wt() {
466
- return l.strict ? null : u("obs-domain-list", t(
467
- b(o(d(k), n(","))),
468
- n("@"),
469
- ae,
470
- b(t(
471
- n(","),
472
- d(e(k)),
473
- e(t(n("@"), ae))
474
- ))
475
- )());
476
- }
477
- function At() {
478
- return l.strict ? null : u("obs-mbox-list", t(
479
- b(t(
480
- d(e(k)),
481
- n(",")
482
- )),
483
- f,
484
- b(t(
485
- n(","),
486
- e(t(
487
- f,
488
- d(k)
489
- ))
490
- ))
491
- )());
492
- }
493
- function kt() {
494
- return l.strict ? null : u("obs-addr-list", t(
495
- b(t(
496
- d(e(k)),
497
- n(",")
498
- )),
499
- me,
500
- b(t(
501
- n(","),
502
- e(t(
503
- me,
504
- d(k)
505
- ))
506
- ))
507
- )());
508
- }
509
- function Nt() {
510
- return l.strict ? null : u("obs-group-list", t(
511
- b(t(
512
- d(e(k)),
513
- n(",")
514
- ), 1),
515
- d(e(k))
516
- )());
517
- }
518
- function Mt() {
519
- return l.strict ? null : u("obs-local-part", t(de, b(t(n("."), de)))());
520
- }
521
- function Dt() {
522
- return l.strict ? null : u("obs-domain", t(Se, b(t(n("."), Se)))());
523
- }
524
- function It() {
525
- return l.strict ? null : u("obs-dtext", o(Ue, H)());
526
- }
527
- function Ne(i, r) {
528
- var a, c, y;
529
- if (r == null)
530
- return null;
531
- for (c = [r]; c.length > 0; ) {
532
- if (y = c.pop(), y.name === i)
533
- return y;
534
- for (a = y.children.length - 1; a >= 0; a -= 1)
535
- c.push(y.children[a]);
536
- }
537
- return null;
538
- }
539
- function Vt(i, r) {
540
- var a, c, y, N;
541
- if (r == null)
542
- return null;
543
- for (c = [r], N = []; c.length > 0; )
544
- for (y = c.pop(), y.name === i && N.push(y), a = y.children.length - 1; a >= 0; a -= 1)
545
- c.push(y.children[a]);
546
- return N;
547
- }
548
- function He(i, r) {
549
- var a, c, y, N, le;
550
- if (r == null)
551
- return null;
552
- for (c = [r], N = [], le = {}, a = 0; a < i.length; a += 1)
553
- le[i[a]] = !0;
554
- for (; c.length > 0; )
555
- if (y = c.pop(), y.name in le)
556
- N.push(y);
557
- else
558
- for (a = y.children.length - 1; a >= 0; a -= 1)
559
- c.push(y.children[a]);
560
- return N;
561
- }
562
- function tt(i) {
563
- var r, a, c, y, N;
564
- if (i === null)
565
- return null;
566
- for (r = [], a = He(["group", "mailbox"], i), c = 0; c < a.length; c += 1)
567
- y = a[c], y.name === "group" ? r.push(Et(y)) : y.name === "mailbox" && r.push(nt(y));
568
- return N = {
569
- ast: i,
570
- addresses: r
571
- }, l.simple && (N = $t(N)), l.oneResult ? Lt(N) : l.simple ? N && N.addresses : N;
572
- }
573
- function Et(i) {
574
- var r, a = Ne("display-name", i), c = [], y = He(["mailbox"], i);
575
- for (r = 0; r < y.length; r += 1)
576
- c.push(nt(y[r]));
577
- return {
578
- node: i,
579
- parts: {
580
- name: a
581
- },
582
- type: i.name,
583
- // 'group'
584
- name: ve(a),
585
- addresses: c
586
- };
587
- }
588
- function nt(i) {
589
- var r = Ne("display-name", i), a = Ne("addr-spec", i), c = Vt("cfws", i), y = He(["comment"], i), N = Ne("local-part", a), le = Ne("domain", a);
590
- return {
591
- node: i,
592
- parts: {
593
- name: r,
594
- address: a,
595
- local: N,
596
- domain: le,
597
- comments: c
598
- },
599
- type: i.name,
600
- // 'mailbox'
601
- name: ve(r),
602
- address: ve(a),
603
- local: ve(N),
604
- domain: ve(le),
605
- comments: Rt(y),
606
- groupName: ve(i.groupName)
607
- };
608
- }
609
- function ve(i) {
610
- return i != null ? i.semantic : null;
611
- }
612
- function $t(i) {
613
- var r;
614
- if (i && i.addresses)
615
- for (r = 0; r < i.addresses.length; r += 1)
616
- delete i.addresses[r].node;
617
- return i;
618
- }
619
- function Rt(i) {
620
- var r = "";
621
- if (i)
622
- for (var a = 0; a < i.length; a += 1)
623
- r += ve(i[a]);
624
- return r;
625
- }
626
- function Lt(i) {
627
- return !i || !l.partial && i.addresses.length > 1 ? null : i.addresses && i.addresses[0];
628
- }
629
- var Me, Te, rt, Ye, Je;
630
- if (l = w(l, {}), l === null)
631
- return null;
632
- if (Me = l.input, Je = {
633
- address: me,
634
- "address-list": pe,
635
- "angle-addr": Le,
636
- from: Ce,
637
- group: Pe,
638
- mailbox: f,
639
- "mailbox-list": Fe,
640
- "reply-to": We,
641
- sender: Oe
642
- }[l.startAt] || pe, !l.strict) {
643
- if (z(), l.strict = !0, Ye = Je(Me), l.partial || !C())
644
- return tt(Ye);
645
- l.strict = !1;
646
- }
647
- return z(), Ye = Je(Me), !l.partial && C() ? null : tt(Ye);
648
- }
649
- function _(l) {
650
- return x(w(l, {
651
- oneResult: !0,
652
- rfc6532: !0,
653
- simple: !0,
654
- startAt: "address-list"
655
- }));
656
- }
657
- function K(l) {
658
- return x(w(l, {
659
- rfc6532: !0,
660
- simple: !0,
661
- startAt: "address-list"
662
- }));
663
- }
664
- function S(l) {
665
- return x(w(l, {
666
- rfc6532: !0,
667
- simple: !0,
668
- startAt: "from"
669
- }));
670
- }
671
- function G(l) {
672
- return x(w(l, {
673
- oneResult: !0,
674
- rfc6532: !0,
675
- simple: !0,
676
- startAt: "sender"
677
- }));
678
- }
679
- function Y(l) {
680
- return x(w(l, {
681
- rfc6532: !0,
682
- simple: !0,
683
- startAt: "reply-to"
684
- }));
685
- }
686
- function w(l, C) {
687
- function W(L) {
688
- return Object.prototype.toString.call(L) === "[object String]";
689
- }
690
- function R(L) {
691
- return L === Object(L);
692
- }
693
- function q(L) {
694
- return L == null;
695
- }
696
- var j, z;
697
- if (W(l))
698
- l = { input: l };
699
- else if (!R(l))
700
- return null;
701
- if (!W(l.input) || !C)
702
- return null;
703
- j = {
704
- oneResult: !1,
705
- partial: !1,
706
- rejectTLD: !1,
707
- rfc6532: !1,
708
- simple: !1,
709
- startAt: "address-list",
710
- strict: !1,
711
- atInDisplayName: !1,
712
- commaInDisplayName: !1,
713
- addressListSeparator: ","
714
- };
715
- for (z in j)
716
- q(l[z]) && (l[z] = q(C[z]) ? j[z] : C[z]);
717
- return l;
718
- }
719
- x.parseOneAddress = _, x.parseAddressList = K, x.parseFrom = S, x.parseSender = G, x.parseReplyTo = Y, F.exports = x;
720
- })();
721
- })(yt);
722
- var an = yt.exports;
723
- const sn = /* @__PURE__ */ Ut(an), ln = { class: "flex flex-col" }, un = { key: 1 }, cn = { class: "flex flex-nowrap gap-4 items-center my-[-4px]" }, dn = { class: "flex flex-nowrap gap-8 items-center pt-24 w-full" }, mn = /* @__PURE__ */ je({
724
- __name: "MemberStatsDialog",
725
- props: {
726
- member: {
727
- type: Object,
728
- required: !0
729
- },
730
- onSubmit: {
731
- type: Function,
732
- required: !0
733
- }
734
- },
735
- setup(F) {
736
- var z, L, u, I;
737
- const E = Ze(), x = et(), _ = F, K = ne(
738
- () => {
739
- var g;
740
- return (((g = _.member.collection) == null ? void 0 : g.TITLE) ?? []).reduce(
741
- (v, n) => {
742
- var e, d, h, b, B;
743
- const t = x.sortedTitles.find(
744
- (P) => P._id.toString() === n.collectible
745
- );
746
- if (!t) return v;
747
- const o = [...n.expiryBalance ?? []].sort(
748
- (P, X) => M(P.expiredAt).isAfter(M(X.expiredAt)) ? -1 : 1
749
- );
750
- return (e = o[0]) != null && e.expiredAt && M((d = o[0]) == null ? void 0 : d.expiredAt).isBefore(M()) || v.push({
751
- _id: t._id,
752
- name: t.name,
753
- expiredAt: (h = o[0]) != null && h.expiredAt ? M((b = o[0]) == null ? void 0 : b.expiredAt).toISOString() : "",
754
- expiresIn: M((B = o[0]) == null ? void 0 : B.expiredAt).diff(M(), "days")
755
- }), v;
756
- },
757
- []
758
- );
759
- }
760
- ), S = ce({
761
- cardNo: _.member.cardNo,
762
- experience: ((L = (z = _.member.collection) == null ? void 0 : z.POINT) == null ? void 0 : L[0].balance) ?? 0,
763
- tier: ((I = (u = _.member.collection) == null ? void 0 : u.TIER) == null ? void 0 : I[0].balance) ?? -1,
764
- titles: K.value.map((g) => ({ expiredAt: g.expiresIn, id: g._id })) ?? void 0
765
- }), G = ne(
766
- () => (x.sortedTitles ?? []).map((g) => ({
767
- label: g.name,
768
- value: g._id.toString(),
769
- sublabel: K.value.some((v) => v._id === g._id) ? "Owned" : void 0
770
- }))
771
- ), Y = ne(() => (x.sortedTiers ?? []).map((g, v) => ({
772
- label: g.name,
773
- sublabel: `${g.option.from} - ${g.option.to}`,
774
- from: g.option.from,
775
- to: g.option.to,
776
- value: v + 1
777
- })));
778
- function w() {
779
- var n, t;
780
- const g = ((n = Y.value[(S.value.tier ?? 1) - 1]) == null ? void 0 : n.from) ?? 0, v = (t = Y.value[(S.value.tier ?? 1) - 1]) == null ? void 0 : t.to;
781
- S.value.experience = Math.min(
782
- v ?? g,
783
- Math.max(g, S.value.experience ?? 0)
784
- );
785
- }
786
- const l = ne(() => {
787
- var n, t, o, e, d, h;
788
- const g = ((t = (n = _.member.collection) == null ? void 0 : n.TIER) == null ? void 0 : t[0].balance) ?? -1, v = ((e = (o = _.member.collection) == null ? void 0 : o.POINT) == null ? void 0 : e[0].balance) ?? 0;
789
- if (g != S.value.tier) return !0;
790
- if (S.value.experience && S.value.experience != v) {
791
- const b = ((d = Y.value[g - 1]) == null ? void 0 : d.from) ?? 0, B = ((h = Y.value[g - 1]) == null ? void 0 : h.to) ?? 0;
792
- if (S.value.experience < b || B && S.value.experience > B)
793
- return !0;
794
- }
795
- return !1;
796
- });
797
- function C(g) {
798
- var v;
799
- return (v = K.value.find((n) => n._id === g)) == null ? void 0 : v.expiresIn;
800
- }
801
- const W = ne(() => {
802
- const g = Wt.safeParse(S.value);
803
- return g.success ? void 0 : g.error.errors;
804
- });
805
- function R(g) {
806
- var v, n;
807
- return (n = (v = W.value) == null ? void 0 : v.find((t) => t.path.join(".") === g)) == null ? void 0 : n.message;
808
- }
809
- function q(g) {
810
- var v;
811
- return (v = W.value) == null ? void 0 : v.filter((n) => n.path.join(".").startsWith(g)).map((n) => n.message);
812
- }
813
- async function j() {
814
- await _.onSubmit(S.value), E.close();
815
- }
816
- return (g, v) => {
817
- var P, X;
818
- const n = U("FmSelect"), t = U("FmStepperField"), o = U("FmTextField"), e = U("FmField"), d = U("FmFormGroup"), h = U("FmButton"), b = U("FmHelperText"), B = U("FmSpacer");
819
- return A(), Q(fe, null, [
820
- m("div", ln, [
821
- v[6] || (v[6] = m("div", { class: "fm-typo-en-title-sm-800 mb-8" }, "Member tiering", -1)),
822
- s(Y).length ? (A(), re(n, {
823
- key: 0,
824
- modelValue: s(S).tier,
825
- "onUpdate:modelValue": [
826
- v[0] || (v[0] = (p) => s(S).tier = p),
827
- w
828
- ],
829
- label: "Member Tier",
830
- items: s(Y),
831
- "helper-text": R("tier"),
832
- "helper-state": R("tier") ? "error" : void 0
833
- }, null, 8, ["modelValue", "items", "helper-text", "helper-state"])) : xe("", !0),
834
- D(t, {
835
- "model-value": s(S).experience ?? 0,
836
- "onUpdate:modelValue": v[1] || (v[1] = (p) => s(S).experience = p),
837
- label: "Member Experience",
838
- "max-fraction-digits": 0,
839
- "helper-text": R("experience"),
840
- "helper-state": R("experience") ? "error" : void 0
841
- }, null, 8, ["model-value", "helper-text", "helper-state"]),
842
- v[7] || (v[7] = m("div", { class: "fm-typo-en-title-sm-800 mt-16 mb-8" }, "Member Card", -1)),
843
- D(o, {
844
- modelValue: s(S).cardNo,
845
- "onUpdate:modelValue": v[2] || (v[2] = (p) => s(S).cardNo = p),
846
- label: "Card number",
847
- "helper-text": R("cardNo"),
848
- "helper-state": R("cardNo") ? "error" : void 0
849
- }, null, 8, ["modelValue", "helper-text", "helper-state"]),
850
- v[8] || (v[8] = m("div", { class: "fm-typo-en-title-sm-800 mt-16 mb-8" }, "Titles", -1)),
851
- (P = s(S).titles) != null && P.length ? (A(), Q("div", un, v[5] || (v[5] = [
852
- m("div", { class: "flex flex-nowrap gap-4 items-center" }, [
853
- m("div", { class: "flex-1" }, "Title"),
854
- m("div", { class: "flex-1" }, "Expires in days"),
855
- m("div", { class: "w-24 h-1" })
856
- ], -1)
857
- ]))) : xe("", !0),
858
- (A(!0), Q(fe, null, _e(s(S).titles ?? [], (p, V) => (A(), Q("div", { key: V }, [
859
- m("div", cn, [
860
- s(K).some((T) => T._id === p.id) ? (A(), re(d, {
861
- key: 1,
862
- "model-value": "",
863
- class: "flex-1"
864
- }, {
865
- default: ge(() => [
866
- D(e, {
867
- disabled: !0,
868
- class: "text-fm-color-typo-secondary"
869
- }, {
870
- default: ge(() => {
871
- var T;
872
- return [
873
- ct(J((T = s(G).find(($) => $.value === p.id)) == null ? void 0 : T.label), 1)
874
- ];
875
- }),
876
- _: 2
877
- }, 1024)
878
- ]),
879
- _: 2
880
- }, 1024)) : (A(), re(n, {
881
- key: 0,
882
- modelValue: p.id,
883
- "onUpdate:modelValue": [(T) => p.id = T, (T) => p.expiredAt = C(T) ?? 1],
884
- class: "flex-1",
885
- items: s(G).filter(
886
- (T) => {
887
- var $;
888
- return !(($ = s(S).titles) != null && $.map((Z) => Z.id).includes(T.value)) || p.id === T.value;
889
- }
890
- )
891
- }, null, 8, ["modelValue", "onUpdate:modelValue", "items"])),
892
- D(t, {
893
- modelValue: p.expiredAt,
894
- "onUpdate:modelValue": (T) => p.expiredAt = T,
895
- class: "flex-1",
896
- label: "",
897
- "max-fraction-digits": 0
898
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
899
- D(h, {
900
- class: "w-24 h-24",
901
- icon: "close",
902
- variant: "tertiary",
903
- onClick: (T) => {
904
- var $;
905
- return ($ = s(S).titles) == null ? void 0 : $.splice(V, 1);
906
- }
907
- }, null, 8, ["onClick"])
908
- ]),
909
- (A(!0), Q(fe, null, _e(q(`titles.${V}`), (T, $) => (A(), re(b, {
910
- key: $,
911
- class: "items-center",
912
- state: "error",
913
- text: T.toString()
914
- }, null, 8, ["text"]))), 128))
915
- ]))), 128)),
916
- s(G).length && (((X = s(S).titles) == null ? void 0 : X.length) ?? 0) < s(G).length ? (A(), re(h, {
917
- key: 2,
918
- icon: "add",
919
- label: "Give title",
920
- variant: "plain",
921
- onClick: v[3] || (v[3] = (p) => {
922
- var V;
923
- return s(S).titles = [
924
- ...s(S).titles ?? [],
925
- {
926
- id: ((V = s(G).find(
927
- (T) => {
928
- var $;
929
- return !(($ = s(S).titles) != null && $.map((Z) => Z.id).includes(T.value));
930
- }
931
- )) == null ? void 0 : V.value) || s(G)[0].value,
932
- expiredAt: 0
933
- }
934
- ];
935
- })
936
- })) : xe("", !0)
937
- ]),
938
- m("div", dn, [
939
- dt(D(b, {
940
- state: "warning",
941
- text: "Updating member will cause tier to change"
942
- }, null, 512), [
943
- [mt, s(l)]
944
- ]),
945
- D(B),
946
- D(h, {
947
- variant: "secondary",
948
- label: "Cancel",
949
- size: "md",
950
- onClick: v[4] || (v[4] = (p) => s(E).close())
951
- }),
952
- D(h, {
953
- disabled: !!s(W),
954
- variant: "primary",
955
- label: "Submit",
956
- size: "md",
957
- onClick: j
958
- }, null, 8, ["disabled"])
959
- ])
960
- ], 64);
961
- };
962
- }
963
- }), fn = { class: "fm-typo-en-title-sm-800" }, pn = { class: "space-y-16" }, bn = { class: "flex flex-nowrap gap-8 items-center justify-end pt-24 w-full" }, vn = /* @__PURE__ */ je({
964
- __name: "CreditCoinDialog",
965
- props: {
966
- type: { type: String, required: !0 },
967
- action: { type: String, required: !0 },
968
- onSubmit: {
969
- type: Function,
970
- required: !0
971
- }
972
- },
973
- setup(F) {
974
- const E = Ze(), x = F, _ = ce({
975
- amount: 1,
976
- day: 1,
977
- remark: void 0
978
- }), K = ce(!0), S = ne(() => Xe.formattedType(x.type.toUpperCase()));
979
- function G(l) {
980
- K.value = l, !l && x.type === "coin" && (_.value.day = 0);
981
- }
982
- async function Y() {
983
- if (x.action === "send") {
984
- const l = _.value.day ? `, expire in ${_.value.day} days` : "";
985
- at.confirm(
986
- `Are you sure to send ${_.value.amount} ${S.value.toLowerCase()}${l}? This action cannot be reversed.`
987
- ).then(async (C) => {
988
- C && await x.onSubmit(_.value);
989
- });
990
- } else
991
- at.confirm(
992
- `Are you sure to deduct ${_.value.amount} ${S.value.toLowerCase()}? This action cannot be reversed.`
993
- ).then(async (l) => {
994
- l && await x.onSubmit(_.value);
995
- });
996
- }
997
- const w = ne(() => {
998
- const C = (x.action == "send" ? Kt : Gt).safeParse(_.value);
999
- return C.success == !1 ? C.error.flatten().fieldErrors : void 0;
1000
- });
1001
- return (l, C) => {
1002
- const W = U("FmStepperField"), R = U("FmSwitch"), q = U("FmTextarea"), j = U("FmButton"), z = U("FmCard");
1003
- return A(), re(z, { class: "flex flex-col gap-16 p-16" }, {
1004
- default: ge(() => {
1005
- var L, u, I, g, v, n;
1006
- return [
1007
- m("div", fn, J(x.action == "send" ? "Send" : "Deduct") + " " + J(s(lt)[x.type.toUpperCase()].name), 1),
1008
- m("div", pn, [
1009
- D(W, {
1010
- modelValue: s(_).amount,
1011
- "onUpdate:modelValue": C[0] || (C[0] = (t) => s(_).amount = t),
1012
- label: `${s(lt)[x.type.toUpperCase()].name} amount`,
1013
- "is-currency": !0,
1014
- "max-fraction-digits": 2,
1015
- "helper-state": (L = s(w)) != null && L.amount ? "error" : void 0,
1016
- "helper-text": (I = (u = s(w)) == null ? void 0 : u.amount) == null ? void 0 : I[0]
1017
- }, null, 8, ["modelValue", "label", "helper-state", "helper-text"]),
1018
- F.action === "send" && x.type === "coin" ? (A(), re(R, {
1019
- key: 0,
1020
- "model-value": s(K),
1021
- label: `${s(S)} expires`,
1022
- "label-placement": "right",
1023
- "onUpdate:modelValue": C[1] || (C[1] = (t) => G(t))
1024
- }, null, 8, ["model-value", "label"])) : xe("", !0),
1025
- F.action === "send" && s(K) ? (A(), re(W, {
1026
- key: 1,
1027
- modelValue: s(_).day,
1028
- "onUpdate:modelValue": C[2] || (C[2] = (t) => s(_).day = t),
1029
- label: `${s(S)} expires in`,
1030
- "max-fraction-digits": 0,
1031
- "append-text": "day(s)",
1032
- max: 9999,
1033
- "helper-state": (g = s(w)) != null && g.day ? "error" : void 0,
1034
- "helper-text": (n = (v = s(w)) == null ? void 0 : v.day) == null ? void 0 : n[0]
1035
- }, null, 8, ["modelValue", "label", "helper-state", "helper-text"])) : xe("", !0),
1036
- D(q, {
1037
- modelValue: s(_).remark,
1038
- "onUpdate:modelValue": C[3] || (C[3] = (t) => s(_).remark = t),
1039
- label: "Remark"
1040
- }, null, 8, ["modelValue"])
1041
- ]),
1042
- m("div", bn, [
1043
- D(j, {
1044
- variant: "secondary",
1045
- label: "Cancel",
1046
- size: "md",
1047
- onClick: C[4] || (C[4] = (t) => s(E).close())
1048
- }),
1049
- D(j, {
1050
- disabled: !!s(w),
1051
- variant: "primary",
1052
- label: "Submit",
1053
- size: "md",
1054
- onClick: C[5] || (C[5] = async () => Y())
1055
- }, null, 8, ["disabled"])
1056
- ])
1057
- ];
1058
- }),
1059
- _: 1
1060
- });
1061
- };
1062
- }
1063
- }), gt = Ht("segment", () => {
1064
- const F = ce([]);
1065
- async function E() {
1066
- const x = await qt.readAll({
1067
- limit: 1e3,
1068
- skip: 0,
1069
- sortBy: "_id",
1070
- descending: !0
1071
- });
1072
- F.value = x.resources;
1073
- }
1074
- return {
1075
- segments: F,
1076
- read: E
1077
- };
1078
- }), yn = { class: "flex flex-col flex-nowrap gap-y-24 max-h-full" }, gn = { class: "space-y-16" }, xn = { class: "flex gap-16 items-center" }, hn = { class: "flex-auto" }, Sn = { class: "fm-typo-en-body-md-600" }, Fn = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Cn = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Tn = { class: "fm-typo-en-body-md-800" }, _n = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, wn = { class: "fm-typo-en-body-md-600" }, An = { class: "gap-16 grid grid-cols-2" }, kn = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Nn = { class: "fm-typo-en-body-md-600" }, Mn = { class: "space-y-8" }, Dn = {
1079
- key: 0,
1080
- class: "space-x-8"
1081
- }, In = {
1082
- key: 1,
1083
- class: "text-fm-color-typo-secondary"
1084
- }, Vn = { class: "space-y-8" }, En = ["src"], $n = { class: "fm-typo-en-body-md-600" }, Rn = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Ln = {
1085
- key: 1,
1086
- class: "text-fm-color-typo-secondary"
1087
- }, Pn = {
1088
- key: 1,
1089
- class: "space-y-24"
1090
- }, Bn = { class: "space-y-8" }, On = { class: "fm-typo-en-title-md-800" }, Un = { class: "space-y-4" }, Yn = { class: "fm-typo-en-body-md-600" }, qn = { class: "flex gap-24 items-center xs:flex-col xs:items-start" }, jn = { class: "space-y-8" }, zn = { class: "fm-typo-en-title-md-800" }, Kn = { class: "space-y-4" }, Gn = { class: "fm-typo-en-body-md-600" }, Wn = { class: "flex gap-24 items-center xs:flex-col xs:items-start" }, Hn = /* @__PURE__ */ je({
1091
- __name: "MemberDetailSheet",
1092
- props: {
1093
- member: {
1094
- type: Object,
1095
- required: !0
1096
- }
1097
- },
1098
- emits: ["update:member"],
1099
- setup(F, { expose: E, emit: x }) {
1100
- const _ = bt(), K = et(), S = gt(), G = Ze(), { minor: Y } = pt, w = F, l = x, C = ne(() => _.locations.map((o) => ({
1101
- label: o.name,
1102
- value: o._id
1103
- }))), W = ne(() => (w.member.segment || []).map((o) => {
1104
- var e;
1105
- return ((e = S.segments.find((d) => d._id === o)) == null ? void 0 : e.name) || "";
1106
- }).filter(Boolean));
1107
- async function R(o, e) {
1108
- G.open({
1109
- title: "",
1110
- dialogComponent: vn,
1111
- dialogComponentProps: {
1112
- type: o,
1113
- action: e,
1114
- onSubmit: async (d) => {
1115
- await Y(
1116
- async () => {
1117
- const h = {
1118
- "credit-send": ue.sendCredit,
1119
- "credit-deduct": ue.deductCredit,
1120
- "coin-send": ue.sendCoin,
1121
- "coin-deduct": ue.deductCoin
1122
- }, b = `${o}-${e}`, B = h[b];
1123
- B && await B(w.member._id, d), l("update:member"), G.close();
1124
- },
1125
- {
1126
- message: `Adjusting ${Xe.formattedType(o.toUpperCase()).toLowerCase()}`,
1127
- successMessage: `${d.amount} ${Xe.formattedType(o.toUpperCase()).toLowerCase()} ${e} ${e == "send" ? "to" : "from"} ${w.member.phoneNumber}`
1128
- }
1129
- );
1130
- }
1131
- }
1132
- });
1133
- }
1134
- async function q() {
1135
- G.open({
1136
- title: "Update member statistics",
1137
- contentComponent: mn,
1138
- contentComponentProps: {
1139
- member: w.member,
1140
- onSubmit: async (o) => {
1141
- await Y(
1142
- async () => {
1143
- await ue.updateMember(w.member._id, o), l("update:member"), G.close();
1144
- },
1145
- {
1146
- message: "Updating member stats",
1147
- successMessage: `Updated member ${w.member.phoneNumber} stats successfully`
1148
- }
1149
- );
1150
- }
1151
- }
1152
- });
1153
- }
1154
- const j = [
1155
- {
1156
- label: "Mobile No.",
1157
- key: "phoneNumber"
1158
- },
1159
- {
1160
- label: "Tier",
1161
- getter: (o) => {
1162
- var P, X, p, V, T;
1163
- const e = (((X = ut.first((P = w.member.collection) == null ? void 0 : P.TIER)) == null ? void 0 : X.balance) || 0) - 1, d = L.value.name, h = ((V = (p = o.collection) == null ? void 0 : p.POINT) == null ? void 0 : V[0].balance) ?? 0, b = K.sortedTiers[e + 1], B = ((T = b == null ? void 0 : b.option) == null ? void 0 : T.to) ?? 1 / 0;
1164
- return `${d} (${h}/${B})`;
1165
- }
1166
- },
1167
- {
1168
- label: "Email",
1169
- key: "email"
1170
- },
1171
- {
1172
- label: "Birthday",
1173
- getter: (o) => o.birthday ? M(o.birthday).format("D MMM YYYY") : "-"
1174
- }
1175
- ], z = [
1176
- {
1177
- label: "Customer since",
1178
- getter: (o) => M(vt(o._id.toString())).format("D MMM YYYY")
1179
- },
1180
- {
1181
- label: "Joined at location",
1182
- getter: (o) => {
1183
- var e;
1184
- return o != null && o.location && ((e = C.value.find((d) => d.value == o.location)) == null ? void 0 : e.label) || "-";
1185
- }
1186
- },
1187
- {
1188
- label: "Total visit(s)",
1189
- getter: (o) => st.singularOrPlural(o.stats.visitCount, "bill")
1190
- },
1191
- {
1192
- label: "Last visit",
1193
- getter: (o) => M(o.stats.lastVisit).fromNow()
1194
- },
1195
- {
1196
- label: "Frequency",
1197
- getter: (o) => `Every ${st.singularOrPlural(Number(Math.ceil(o.stats.avgVisitFrequency).toFixed(0)), "day")}`
1198
- },
1199
- {
1200
- label: "Average spend",
1201
- getter: (o) => jt.fromNumber({ number: Number(o.stats.avgBillSize || 0) }).toFormat(
1202
- !0
1203
- )
1204
- }
1205
- // {
1206
- // label: 'Feedback',
1207
- // key: 'feedbackCount',
1208
- // },
1209
- // {
1210
- // label: 'Tier Earned this season',
1211
- // key: 'lastSeasonTierEarned',
1212
- // },
1213
- // {
1214
- // label: 'Point Earned this season',
1215
- // key: 'lastSeasonPointEarned',
1216
- // },
1217
- ], L = ne(() => {
1218
- var d, h;
1219
- const o = (((h = ut.first((d = w.member.collection) == null ? void 0 : d.TIER)) == null ? void 0 : h.balance) || 0) - 1, e = K.sortedTiers[o];
1220
- return { name: (e == null ? void 0 : e.name) || "-", tier: o, config: e };
1221
- }), u = ne(() => {
1222
- var o;
1223
- return (((o = w.member.collection) == null ? void 0 : o.TITLE) || []).map((e) => {
1224
- var h, b, B;
1225
- const d = (h = K.sortedTitles) == null ? void 0 : h.find(
1226
- (P) => P._id == e.collectible
1227
- );
1228
- return {
1229
- name: d == null ? void 0 : d.name,
1230
- expiredAt: (B = (b = e.expiryBalance) == null ? void 0 : b.at(-1)) == null ? void 0 : B.expiredAt,
1231
- collectible: d
1232
- };
1233
- }).filter(
1234
- (e) => e.expiredAt ? M(e.expiredAt).isAfter(M()) : !0
1235
- );
1236
- }), I = ce(!0);
1237
- function g() {
1238
- I.value = !0, t.value = n[0];
1239
- }
1240
- function v() {
1241
- I.value = !1;
1242
- }
1243
- const n = [
1244
- {
1245
- label: "Overview",
1246
- value: "overview"
1247
- },
1248
- {
1249
- label: "Loyalty",
1250
- value: "loyalty"
1251
- }
1252
- ], t = ce(n[0]);
1253
- return ft(async () => {
1254
- await K.readMembership(), _.locations.length || await _.readLocations();
1255
- }), E({
1256
- showSheet: g,
1257
- hideSheet: v
1258
- }), (o, e) => {
1259
- const d = U("FmTabs"), h = U("FmAvatar"), b = U("FmButton"), B = U("FmChip"), P = U("FmCard"), X = U("FmSideSheet");
1260
- return A(), re(X, {
1261
- modelValue: s(I),
1262
- "onUpdate:modelValue": e[5] || (e[5] = (p) => Ot(I) ? I.value = p : null),
1263
- header: "Member Detail",
1264
- "dismiss-away": "",
1265
- "close-button": !0,
1266
- "max-width": 550
1267
- }, {
1268
- "side-sheet-footer": ge(() => e[19] || (e[19] = [])),
1269
- default: ge(() => [
1270
- m("div", yn, [
1271
- D(d, {
1272
- "model-value": s(t).value,
1273
- items: n,
1274
- "onUpdate:modelValue": e[0] || (e[0] = (p) => t.value = n.find((V) => V.value === p))
1275
- }, null, 8, ["model-value"]),
1276
- s(t).value == "overview" ? (A(), Q(fe, { key: 0 }, [
1277
- e[10] || (e[10] = m("div", { class: "fm-typo-en-title-sm-800" }, "Profile Information", -1)),
1278
- m("div", gn, [
1279
- m("div", xn, [
1280
- D(h, {
1281
- name: F.member.photoUrl ? void 0 : F.member.name,
1282
- src: F.member.photoUrl || void 0
1283
- }, null, 8, ["name", "src"]),
1284
- m("div", hn, [
1285
- e[7] || (e[7] = m("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Member Name ", -1)),
1286
- m("div", Sn, J(F.member.name), 1),
1287
- m("div", Fn, J(F.member._id), 1),
1288
- m("div", Cn, [
1289
- e[6] || (e[6] = ct(" Member Card: ")),
1290
- m("span", Tn, J(F.member.cardNo ? F.member.cardNo : "-"), 1)
1291
- ])
1292
- ]),
1293
- D(b, {
1294
- variant: "tertiary",
1295
- icon: "settings",
1296
- onClick: q
1297
- })
1298
- ]),
1299
- (A(), Q(fe, null, _e(j, (p, V) => m("div", { key: V }, [
1300
- m("div", _n, J(p.label), 1),
1301
- m("div", wn, J(p.key ? F.member[p.key] : p.getter(F.member)), 1)
1302
- ])), 64))
1303
- ]),
1304
- e[11] || (e[11] = m("div", { class: "border-fm-color-neutral-gray-100 rounded-sm border-t" }, null, -1)),
1305
- e[12] || (e[12] = m("div", { class: "fm-typo-en-title-sm-800" }, "Activities", -1)),
1306
- m("div", An, [
1307
- (A(), Q(fe, null, _e(z, (p) => m("div", {
1308
- key: p.key
1309
- }, [
1310
- m("div", kn, J(p.label), 1),
1311
- m("div", Nn, J(p.key ? w.member.stats[p.key] || "-" : p.getter(F.member)), 1)
1312
- ])), 64))
1313
- ]),
1314
- e[13] || (e[13] = m("div", { class: "border-fm-color-neutral-gray-100 rounded-sm border-t" }, null, -1)),
1315
- m("div", Mn, [
1316
- e[8] || (e[8] = m("div", { class: "fm-typo-en-title-sm-800" }, "Segments", -1)),
1317
- s(W).length ? (A(), Q("div", Dn, [
1318
- (A(!0), Q(fe, null, _e(s(W), (p) => (A(), re(B, {
1319
- label: p.toString()
1320
- }, null, 8, ["label"]))), 256))
1321
- ])) : (A(), Q("div", In, "No titles"))
1322
- ]),
1323
- e[14] || (e[14] = m("div", { class: "border-fm-color-neutral-gray-100 rounded-sm border-t" }, null, -1)),
1324
- m("div", Vn, [
1325
- e[9] || (e[9] = m("div", { class: "fm-typo-en-title-sm-800" }, "Title badge", -1)),
1326
- s(u).length ? (A(!0), Q(fe, { key: 0 }, _e(s(u).filter((p) => p.collectible), (p) => (A(), Q("div", {
1327
- class: "flex items-center gap-x-8 h-48",
1328
- key: p.name
1329
- }, [
1330
- m("img", {
1331
- src: p.collectible.image || s(zt),
1332
- class: "aspect-square h-full object-contain"
1333
- }, null, 8, En),
1334
- m("div", null, [
1335
- m("div", $n, J(p.name), 1),
1336
- m("div", Rn, " Expired on " + J(s(M)(p.expiredAt).format("MMM D, Y")), 1)
1337
- ])
1338
- ]))), 128)) : (A(), Q("div", Ln, "No titles"))
1339
- ])
1340
- ], 64)) : s(t).value == "loyalty" ? (A(), Q("div", Pn, [
1341
- D(P, {
1342
- class: "p-16 space-y-24",
1343
- variant: "outlined"
1344
- }, {
1345
- default: ge(() => {
1346
- var p, V, T, $, Z, oe, ee;
1347
- return [
1348
- m("div", Bn, [
1349
- e[15] || (e[15] = m("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Credit ", -1)),
1350
- m("div", On, J(((T = (V = (p = F.member.collection) == null ? void 0 : p.CREDIT) == null ? void 0 : V[0]) == null ? void 0 : T.balance) ?? 0), 1)
1351
- ]),
1352
- m("div", Un, [
1353
- e[16] || (e[16] = m("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Credit(s) to be expired in 30 days ", -1)),
1354
- m("div", Yn, J(((ee = (oe = (Z = ($ = F.member.collection) == null ? void 0 : $.CREDIT) == null ? void 0 : Z[0]) == null ? void 0 : oe.expiryBalance) == null ? void 0 : ee.reduce(
1355
- (H, O) => O.expiredAt && s(M)(O.expiredAt).isAfter(s(M)()) && s(M)(O.expiredAt).isBefore(s(M)().add(30, "days")) ? H + O.amount : H,
1356
- 0
1357
- )) ?? 0), 1)
1358
- ]),
1359
- m("div", qn, [
1360
- D(b, {
1361
- label: "Add credit",
1362
- icon: "add",
1363
- variant: "plain",
1364
- onClick: e[1] || (e[1] = (H) => R("credit", "send"))
1365
- }),
1366
- D(b, {
1367
- label: "Deduct credit",
1368
- icon: "remove",
1369
- variant: "plain",
1370
- onClick: e[2] || (e[2] = (H) => R("credit", "deduct"))
1371
- })
1372
- ])
1373
- ];
1374
- }),
1375
- _: 1
1376
- }),
1377
- D(P, {
1378
- class: "p-16 space-y-24",
1379
- variant: "outlined"
1380
- }, {
1381
- default: ge(() => {
1382
- var p, V, T, $, Z, oe, ee;
1383
- return [
1384
- m("div", jn, [
1385
- e[17] || (e[17] = m("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Point ", -1)),
1386
- m("div", zn, J(((T = (V = (p = F.member.collection) == null ? void 0 : p.COIN) == null ? void 0 : V[0]) == null ? void 0 : T.balance) ?? 0), 1)
1387
- ]),
1388
- m("div", Kn, [
1389
- e[18] || (e[18] = m("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Point(s) to be expired in 30 days ", -1)),
1390
- m("div", Gn, J(((ee = (oe = (Z = ($ = F.member.collection) == null ? void 0 : $.COIN) == null ? void 0 : Z[0]) == null ? void 0 : oe.expiryBalance) == null ? void 0 : ee.reduce(
1391
- (H, O) => O.expiredAt && s(M)(O.expiredAt).isAfter(s(M)()) && s(M)(O.expiredAt).isBefore(s(M)().add(30, "days")) ? H + O.amount : H,
1392
- 0
1393
- )) ?? 0), 1)
1394
- ]),
1395
- m("div", Wn, [
1396
- D(b, {
1397
- label: "Add point",
1398
- icon: "add",
1399
- variant: "plain",
1400
- onClick: e[3] || (e[3] = (H) => R("coin", "send"))
1401
- }),
1402
- D(b, {
1403
- label: "Deduct point",
1404
- icon: "remove",
1405
- variant: "plain",
1406
- onClick: e[4] || (e[4] = (H) => R("coin", "deduct"))
1407
- })
1408
- ])
1409
- ];
1410
- }),
1411
- _: 1
1412
- })
1413
- ])) : xe("", !0)
1414
- ])
1415
- ]),
1416
- _: 1
1417
- }, 8, ["modelValue"]);
1418
- };
1419
- }
1420
- }), Jn = { class: "flex items-center justify-end" }, Fr = /* @__PURE__ */ je({
1421
- __name: "MemberList",
1422
- setup(F) {
1423
- const E = gt(), x = et(), _ = bt(), { minor: K } = pt, S = nn(), G = [
1424
- {
1425
- header: "Name",
1426
- enableSorting: !0,
1427
- accessorKey: "name",
1428
- cell(n) {
1429
- return Zt(n.row.original);
1430
- }
1431
- },
1432
- {
1433
- accessorFn: (n) => M(vt(n._id.toString())).format("D MMM YYYY"),
1434
- header: "Customer Since",
1435
- accessorKey: "_id",
1436
- id: "_id"
1437
- },
1438
- {
1439
- accessorKey: "collection_TIER_0_balance",
1440
- header: "Tier",
1441
- enableSorting: !0,
1442
- cell(n) {
1443
- return en(
1444
- n.row.original,
1445
- x.sortedTiers
1446
- );
1447
- }
1448
- },
1449
- {
1450
- header: "Title",
1451
- enableSorting: !1,
1452
- cell(n) {
1453
- return tn(
1454
- n.row.original,
1455
- x.sortedTitles
1456
- );
1457
- }
1458
- },
1459
- {
1460
- accessorKey: "collection_CREDIT_0_balance",
1461
- accessorFn: (n) => {
1462
- var t, o, e;
1463
- return qe(((e = (o = (t = n.collection) == null ? void 0 : t.CREDIT) == null ? void 0 : o[0]) == null ? void 0 : e.balance) ?? 0, 2);
1464
- },
1465
- header: "Credit(s)",
1466
- enableSorting: !0
1467
- },
1468
- {
1469
- accessorKey: "collection_POINT_0_balance",
1470
- accessorFn: (n) => {
1471
- var t, o, e;
1472
- return qe(((e = (o = (t = n.collection) == null ? void 0 : t.POINT) == null ? void 0 : o[0]) == null ? void 0 : e.balance) ?? 0, 2);
1473
- },
1474
- header: "Experience(s)",
1475
- enableSorting: !0
1476
- },
1477
- {
1478
- accessorKey: "collection_COIN_0_balance",
1479
- accessorFn: (n) => {
1480
- var t, o, e;
1481
- return qe(((e = (o = (t = n.collection) == null ? void 0 : t.COIN) == null ? void 0 : o[0]) == null ? void 0 : e.balance) ?? 0, 2);
1482
- },
1483
- header: "Point(s)",
1484
- enableSorting: !0
1485
- },
1486
- {
1487
- accessorFn: (n) => {
1488
- var t;
1489
- return ((t = n.stats) == null ? void 0 : t.visitCount) ?? 0;
1490
- },
1491
- header: "Total visit",
1492
- accessorKey: "stats.visitCount",
1493
- id: "stats.visitCount"
1494
- },
1495
- {
1496
- accessorFn: (n) => {
1497
- var t;
1498
- return (t = n.stats) == null ? void 0 : t.lastVisit;
1499
- },
1500
- sortingFn: (n, t) => {
1501
- var o, e;
1502
- return new Date((o = n.original.stats) == null ? void 0 : o.lastVisit).getTime() - new Date((e = t.original.stats) == null ? void 0 : e.lastVisit).getTime();
1503
- },
1504
- id: "stats.lastVisit",
1505
- header: "Last visit",
1506
- cell(n) {
1507
- var t, o;
1508
- return ye("div", { class: "flex items-center justify-end gap-4" }, [
1509
- ye(
1510
- "span",
1511
- (t = n.row.original.stats) != null && t.lastVisit ? M((o = n.row.original.stats) == null ? void 0 : o.lastVisit).fromNow() : "NA"
1512
- ),
1513
- ye(
1514
- De.FmTooltip,
1515
- {
1516
- content: M(n.row.original.stats.lastVisit).format(
1517
- "D MMM YYYY - hh:mmA"
1518
- )
1519
- },
1520
- [ye(De.FmIcon, { name: "info", outline: !0, size: "sm" })]
1521
- )
1522
- ]);
1523
- }
1524
- },
1525
- {
1526
- id: "actions",
1527
- cell(n) {
1528
- return ye(
1529
- De.FmMenu,
1530
- {
1531
- placement: "bottom-end",
1532
- onClick: (t) => {
1533
- t.stopPropagation();
1534
- }
1535
- },
1536
- {
1537
- "menu-button": () => ye(De.FmButton, { icon: "more_vert", variant: "tertiary" }),
1538
- default: () => [
1539
- ye(De.FmMenuItem, {
1540
- label: "Transaction details",
1541
- onClick: async (t) => {
1542
- t.stopPropagation(), await u(n.row.original._id);
1543
- }
1544
- })
1545
- ]
1546
- }
1547
- );
1548
- }
1549
- }
1550
- ], { tableMeta: Y, rowData: w, onSort: l, debouncedFetchData: C, onSearch: W } = Qt(ue.read), R = ce(), q = ce(!1), j = ce();
1551
- async function z() {
1552
- j.value = await ue.readById(
1553
- j.value._id.toString()
1554
- ), q.value = !0;
1555
- }
1556
- async function L() {
1557
- await C(), q.value = !1;
1558
- }
1559
- async function u(n) {
1560
- await S.push({
1561
- name: rn["$connect-LOYALTY_MEMBER_TRANSACTIONS"],
1562
- params: { id: n }
1563
- });
1564
- }
1565
- const I = {
1566
- sortBy: "_id",
1567
- descending: !1,
1568
- rowsPerPage: 1e3,
1569
- page: 1,
1570
- rowsNumber: 0
1571
- };
1572
- function g(n) {
1573
- const t = M(n);
1574
- return t.isValid() ? t.format("DD/MM/YYYY") : "";
1575
- }
1576
- async function v() {
1577
- const n = new on(), t = (await ue.read({
1578
- limit: 1,
1579
- skip: 0,
1580
- sortBy: I.sortBy,
1581
- descending: I.descending
1582
- })).meta.totalResources ?? 0, o = I.rowsPerPage;
1583
- await K(
1584
- async () => {
1585
- var e, d, h, b, B, P, X, p, V, T, $, Z, oe, ee, H, O, Ie, Ve, we, k, he, Se, Ee, Ae, $e, Re, ke;
1586
- for (let de = 0; de < t; de += o) {
1587
- const ze = {
1588
- ...I,
1589
- limit: o,
1590
- skip: I.page - 1,
1591
- sortBy: I.sortBy,
1592
- descending: I.descending
1593
- }, me = await ue.read(ze);
1594
- for (const f of me.resources) {
1595
- const Ke = (e = sn.parseOneAddress(
1596
- f == null ? void 0 : f.email
1597
- )) != null && e.domain.includes("feedmepos.com") ? void 0 : f.email, Le = (h = ((d = f == null ? void 0 : f.collection) == null ? void 0 : d.TITLE) || []) == null ? void 0 : h.reduce(
1598
- (te, ie) => {
1599
- var ae, se;
1600
- const be = (se = (ae = x.sortedTitles) == null ? void 0 : ae.find(
1601
- (Ce) => Ce._id === ie.collectible
1602
- )) == null ? void 0 : se.name;
1603
- return !be || ie.balance <= 0 || te.push(be), te;
1604
- },
1605
- []
1606
- ), Pe = (x.sortedTitles || []).reduce(
1607
- (te, ie) => {
1608
- var ae, se, Ce, Oe;
1609
- const be = (Oe = (Ce = (se = (((ae = f == null ? void 0 : f.collection) == null ? void 0 : ae.TITLE) || []).find(
1610
- (We) => We.collectible === ie._id
1611
- )) == null ? void 0 : se.expiryBalance) == null ? void 0 : Ce[0]) == null ? void 0 : Oe.expiredAt;
1612
- return te[ie.name] = be ? M(be).format("DD/MM/YYYY") : "", te;
1613
- },
1614
- {}
1615
- ), Be = ((P = (B = (b = f.collection) == null ? void 0 : b.CREDIT) == null ? void 0 : B.at(0)) == null ? void 0 : P.balance) || 0, Fe = ((T = (V = (p = (X = f.collection) == null ? void 0 : X.CREDIT) == null ? void 0 : p.at(0)) == null ? void 0 : V.expiryBalance) == null ? void 0 : T.reduce(
1616
- (te, ie) => te + ie.amount,
1617
- 0
1618
- )) || 0, pe = qe(Be, 2), Ge = {
1619
- ID: f._id.toString(),
1620
- Name: (($ = f.name) == null ? void 0 : $.trim()) || "",
1621
- Phone: ((Z = f == null ? void 0 : f.phoneNumber) == null ? void 0 : Z.trim()) || "",
1622
- Email: Ke || "",
1623
- Gender: f.gender || "",
1624
- CardNo: f.cardNo || "",
1625
- Birthday: g((f == null ? void 0 : f.birthday) || void 0),
1626
- Credit: (Number(pe) - Number(Fe)).toFixed(2),
1627
- FreeCredit: Number(Fe.toFixed(2)),
1628
- TotalCredit: Number(pe),
1629
- Exp: f != null && f.collection ? ((H = (ee = (oe = f.collection) == null ? void 0 : oe.POINT) == null ? void 0 : ee.at(0)) == null ? void 0 : H.balance) ?? 0 : 0,
1630
- Point: f != null && f.collection ? ((Ve = (Ie = (O = f.collection) == null ? void 0 : O.COIN) == null ? void 0 : Ie.at(0)) == null ? void 0 : Ve.balance) ?? 0 : 0,
1631
- Level: f != null && f.collection ? ((he = (k = (we = f.collection) == null ? void 0 : we.TIER) == null ? void 0 : k.at(0)) == null ? void 0 : he.balance) ?? 0 : 0,
1632
- Tier: f != null && f.collection ? ((Ae = (Ee = (Se = f.collection) == null ? void 0 : Se.TIER) == null ? void 0 : Ee.at(0)) == null ? void 0 : Ae.balance) ?? 0 : 0,
1633
- Titles: Le.join(","),
1634
- ...Pe,
1635
- TotalTransaction: f.stats.visitCount,
1636
- AvgSpent: Jt(Number(f.stats.avgBillSize || 0)).toFormat(
1637
- !1
1638
- ),
1639
- TotalSpent: f.stats.avgBillSize * f.stats.visitCount,
1640
- LastVisit: g(f.stats.lastVisit),
1641
- Feedback: (($e = f.stats) == null ? void 0 : $e.feedbackCount) || 0,
1642
- LastSeasonTierEarned: ((Re = f.stats) == null ? void 0 : Re.lastSeasonTierEarned) || 0,
1643
- LastSeasonPointEarned: ((ke = f.stats) == null ? void 0 : ke.lastSeasonPointEarned) || 0,
1644
- JoinedAt: g(f.joinAt || void 0),
1645
- VisitFrequency: `${Number(
1646
- Math.ceil(f.stats.avgVisitFrequency).toFixed(0)
1647
- )}`
1648
- };
1649
- n.addRecord(Ge);
1650
- }
1651
- I.page++;
1652
- }
1653
- await Yt(
1654
- n.buildExcel(),
1655
- `members-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
1656
- {
1657
- bookType: "xlsx",
1658
- bookSST: !1,
1659
- type: "array"
1660
- }
1661
- ), I.page = 1;
1662
- },
1663
- {
1664
- message: "Exporting member...",
1665
- successMessage: "Member exported successfully"
1666
- }
1667
- );
1668
- }
1669
- return ft(async () => {
1670
- await x.readMembership(), await _.readLocations(), await E.read(), await C();
1671
- }), (n, t) => {
1672
- const o = U("FmSearch"), e = U("FmButton"), d = U("FmSnackbar");
1673
- return A(), Q("div", null, [
1674
- m("div", Jn, [
1675
- D(o, {
1676
- class: "mt-4",
1677
- modelValue: s(Y).searchValue,
1678
- "onUpdate:modelValue": [
1679
- t[0] || (t[0] = (h) => s(Y).searchValue = h),
1680
- s(W)
1681
- ],
1682
- placeholder: "Search",
1683
- collapsible: ""
1684
- }, null, 8, ["modelValue", "onUpdate:modelValue"]),
1685
- D(e, {
1686
- icon: "ios_share",
1687
- variant: "tertiary",
1688
- onClick: v
1689
- })
1690
- ]),
1691
- dt(D(d, {
1692
- "z-index": 0,
1693
- class: "!max-w-full my-16",
1694
- title: "Info",
1695
- description: "Current list is not up to date, please refresh table for latest data.",
1696
- variant: "info",
1697
- dismissable: "",
1698
- onOnDismiss: t[1] || (t[1] = (h) => q.value = !1),
1699
- action: "Refresh",
1700
- onOnAction: L
1701
- }, null, 512), [
1702
- [mt, s(q)]
1703
- ]),
1704
- D(Xt, {
1705
- loading: s(Y).isLoading,
1706
- "row-data": s(w),
1707
- "row-count": s(Y).totalRows,
1708
- "column-defs": G,
1709
- "shrink-at": !1,
1710
- "page-count": s(Y).pageCount,
1711
- "page-index": s(Y).pageIndex,
1712
- "page-size": s(Y).pageSize,
1713
- onSortChange: s(l),
1714
- onPageChange: t[2] || (t[2] = (h) => s(C)({ pageSize: h.pageSize, pageIndex: h.pageIndex })),
1715
- onRowClick: t[3] || (t[3] = (h) => {
1716
- var b;
1717
- j.value = h.original, (b = s(R)) == null || b.showSheet();
1718
- })
1719
- }, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
1720
- s(j) ? (A(), re(Hn, {
1721
- key: 0,
1722
- ref_key: "sheetRef",
1723
- ref: R,
1724
- member: s(j),
1725
- "onUpdate:member": z
1726
- }, null, 8, ["member"])) : xe("", !0)
1727
- ]);
1728
- };
1729
- }
1730
- });
1731
- export {
1732
- Fr as default
1733
- };