@feedmepos/mf-connect 0.0.6 → 0.0.7

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