@feedmepos/mf-connect 0.1.38-beta.71 → 0.1.38-beta.73
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.
- package/dist/{Analytic-BY0xqCru.js → Analytic-gGjm5ome.js} +14 -14
- package/dist/{App-n6-XqhU7.js → App-BDz9mw-6.js} +7 -7
- package/dist/{AuditLogs-Dml3WjdH.js → AuditLogs-4x90ZjjY.js} +9 -9
- package/dist/{Bin-DaPZyWm-.js → Bin-Bby2f42O.js} +8 -8
- package/dist/{Broadcast-hLmkBNne.js → Broadcast-eYN2AqFC.js} +10 -10
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BahnNhzD.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-B-fO9-Hb.js} +6 -6
- package/dist/{Card-C_Fm3E0s.js → Card-Cz-pLt7X.js} +17 -17
- package/dist/{Collections-DAUsUa0c.js → Collections-CgfXuVA1.js} +7 -7
- package/dist/{Credit-DklbckuQ.js → Credit-Lc6B2oQ9.js} +10 -10
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-vpnaCdLI.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-Bm7XTR7o.js} +33 -33
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-e1ZWGrXS.js → EffectSheet.vue_vue_type_style_index_0_lang-Cp5nSLEX.js} +6 -6
- package/dist/{Experience-D3Ve8dCI.js → Experience-Ca94IJBt.js} +10 -10
- package/dist/{FileSaver.min-Bg15HHd0.js → FileSaver.min-BThLVsSf.js} +1 -1
- package/dist/{Game-BJzRdZNg.js → Game-BYLYDTU9.js} +11 -11
- package/dist/{GenerateMaterial-pDWgptXt.js → GenerateMaterial-CUoG6uyI.js} +6 -6
- package/dist/{Grab-B0D8SpcD.js → Grab-DZ_LkTly.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-DkI3qMHv.js → ImageInput.vue_vue_type_script_setup_true_lang-CI4kP9ul.js} +1 -1
- package/dist/{Index-ysSM8-pd.js → Index-BZ2r8x0t.js} +10 -10
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-C7bEzQ4b.js → LottieAnimation.vue_vue_type_script_setup_true_lang-BLKlXW1b.js} +1 -1
- package/dist/{MainLayout-Kt1Wiz87.js → MainLayout-BfGSSVMW.js} +1 -1
- package/dist/{Marketing-CFS6ff03.js → Marketing-DYg0J1xG.js} +4 -4
- package/dist/{MarketingMaterialEdit-BDYr5Rlw.js → MarketingMaterialEdit-B--Kck7j.js} +4 -4
- package/dist/{Member-Dgb3QBKF.js → Member-By5QEJxn.js} +11 -11
- package/dist/{MemberList-CfcQUvN8.js → MemberList-D49bMmGJ.js} +434 -439
- package/dist/{MemberTransactions-BVwGdpXo.js → MemberTransactions-Cz9XENK1.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-Dj3h51yH.js → MessageInput.vue_vue_type_script_setup_true_lang-IlFjM-Y5.js} +8 -8
- package/dist/{Mission-B9K8-Wrt.js → Mission-Cvl-V7c8.js} +11 -11
- package/dist/{Overview-DJgKxAvU.js → Overview-lu82lUJp.js} +18 -18
- package/dist/{Point-lev1_Nit.js → Point-C65YFhOB.js} +10 -10
- package/dist/{Promotion-De9e8yPj.js → Promotion-DQCrKO6a.js} +11 -11
- package/dist/{Queue-DH_F0Ekd.js → Queue-DR5lfSMi.js} +10 -10
- package/dist/{Record-CH2AZqzF.js → Record-BCt42_VZ.js} +9 -9
- package/dist/{Reward-BUgOAjd4.js → Reward-7aOnjmMm.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-KTaTLjjw.js → RewardGroup.vue_vue_type_script_setup_true_lang-BPgjr91S.js} +11 -11
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-rs5kKp_v.js → RuleGroup.vue_vue_type_script_setup_true_lang-Bp5jnlFr.js} +14 -14
- package/dist/{Segment-DL6O--Aw.js → Segment-DiYwfb8M.js} +24 -24
- package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-ZUGDMD5J.js → SelectItems.vue_vue_type_script_setup_true_lang-ydM5ypC0.js} +2 -2
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-CIeyrheH.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-BRs7pw0l.js} +12 -12
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BAtXxIjO.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-DU8AAPFD.js} +4 -4
- package/dist/{Setting-DOA80XlJ.js → Setting-k6xShcs8.js} +13 -13
- package/dist/{SettingAdvertisements-Dl0eisXq.js → SettingAdvertisements-DQa_jXYM.js} +11 -11
- package/dist/{Store-fni1Xblz.js → Store-B6lYBpsm.js} +20 -20
- package/dist/{StoreRewards-CLMO-kNi.js → StoreRewards-Cqd399q8.js} +14 -14
- package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-Wv_SHwmo.js +1128 -0
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-D-jYcuAa.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-Bi1o4YAz.js} +2 -2
- package/dist/{Tier-B0_DiVNv.js → Tier-CXXImaDx.js} +23 -23
- package/dist/{Title-twptCzpk.js → Title-CTxNCmBW.js} +20 -20
- package/dist/{Transaction-CTX5I6gO.js → Transaction-DonaHVzF.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-Bp-rIgz4.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DbRVYccO.js} +6 -6
- package/dist/{Voucher-C7Kxmzjr.js → Voucher-Bso_Mjlg.js} +14 -14
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-lZQTZUUU.js → VoucherEditor.vue_vue_type_script_setup_true_lang-DNvmaJk9.js} +12 -12
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-BlBEFfgu.js → ZodTextField.vue_vue_type_script_setup_true_lang-KHZ3-THo.js} +2 -2
- package/dist/{app-D5GVWKxc.js → app-DKrmktFJ.js} +224 -224
- package/dist/app.js +1 -1
- package/dist/{business-BvNsRlY4.js → business-Dd73TVX5.js} +1 -1
- package/dist/{campaign-DRErhSfb.js → campaign-BUQHH4KL.js} +2 -2
- package/dist/{campaign-MN_o01w6.js → campaign-DkJOyF24.js} +8 -8
- package/dist/{campaign.enum-BtfwwLCf.js → campaign.enum-C8vJuDAq.js} +1 -1
- package/dist/{campaign.fn-BgSGxLPo.js → campaign.fn-DJSpfhZH.js} +3 -3
- package/dist/{collectible.enum-CV2tpD2C.js → collectible.enum-D3W0TwoJ.js} +1 -1
- package/dist/{collection.fn-BYjqObg7.js → collection.fn-YzgpOmG0.js} +2 -2
- package/dist/{dto-CyhnIGn-.js → dto-sceHHLGr.js} +4 -4
- package/dist/{duplicateCampaign-jOZ1UznM.js → duplicateCampaign-CDulKxgJ.js} +2 -2
- package/dist/{effect-NKfquhhR.js → effect-BSgfR9iB.js} +1 -1
- package/dist/{email-addresses-EmFJeFmB.js → email-addresses-D_fyxOof.js} +2 -2
- package/dist/{export-B70Bp6s8.js → export-OxiqL1B7.js} +2 -2
- package/dist/{helper-DiSstsUa.js → helper-CzurWUe4.js} +1 -1
- package/dist/{index-CHXlBh7-.js → index-BF0hGAkO.js} +1 -1
- package/dist/{index-bAmlAkpk.js → index-BGMhsZnB.js} +1 -1
- package/dist/{index-DK45XoFG.js → index-B_QGGlMD.js} +3 -3
- package/dist/{index-BgP5ZHK6.js → index-BbTHqh58.js} +1 -1
- package/dist/{index-Cr2243n7.js → index-BqQas5Sx.js} +45 -40
- package/dist/{index-tvZKdKVU.js → index-BtMmY44D.js} +1 -1
- package/dist/{index-CD7Ji4Nw.js → index-CAUVTn1I.js} +23 -12
- package/dist/{index-B09KKPb4.js → index-Cg-sBBf_.js} +4 -4
- package/dist/{index-CrDg9PFk.js → index-Cyt6eKEF.js} +3 -3
- package/dist/index-Dw3ew6qN.js +85 -0
- package/dist/{index-5FmmWAib.js → index-IBvUTxqC.js} +3 -3
- package/dist/{index-nTpkh7pU.js → index-pkwrUX33.js} +2 -2
- package/dist/{index-C46EHygk.js → index-tYmg4eyJ.js} +1 -1
- package/dist/{index.esm2017-B8fYlj6l.js → index.esm2017-5xGykkgL.js} +1 -1
- package/dist/{loading-DVr3dbZ1.js → loading-CvHPT80F.js} +2 -2
- package/dist/{lodash-BNr1VEn2.js → lodash-Q-_FPkpI.js} +1 -1
- package/dist/{membership-LEuPDIbe.js → membership-CU-wFWan.js} +3 -3
- package/dist/{money-CogUwiv6.js → money-CzlfhEoe.js} +1 -1
- package/dist/{number-C5wGUTN5.js → number-Bee2M41N.js} +1 -1
- package/dist/{objectid-DbUENFHd.js → objectid-DRJQv7AY.js} +6 -6
- package/dist/{plugins-BxKrsjEx.js → plugins-CAdlnev8.js} +3 -3
- package/dist/{reward-CM4Wx2zA.js → reward-BhlYd0FB.js} +1 -1
- package/dist/{rule-CMMr2GMg.js → rule-Ccvu41A_.js} +3 -3
- package/dist/{rule-builder-D5QsmOxi.js → rule-builder-B968rIyS.js} +1 -1
- package/dist/{template-BDKqBasy.js → template-OZfyPJVE.js} +6 -6
- package/dist/{timezone-DuaWQsQ2.js → timezone-CopuRbDK.js} +2 -2
- package/dist/{trigger-IcyZcRow.js → trigger-BtQI81FL.js} +5 -5
- package/dist/usePagination-Ciom38dd.js +266 -0
- package/dist/{user-u3blYzG2.js → user-BOW0ixDK.js} +1 -1
- package/dist/{vue-i18n-DfD8ZY6j.js → vue-i18n-jTYKTJq1.js} +247 -247
- package/dist/{xlsx-Bgf4_JHr.js → xlsx-YD3LYwip.js} +1 -1
- package/dist/{zod-9J33xiFS.js → zod-B_G9o5PC.js} +1 -1
- package/package.json +1 -1
- package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BlBovyiT.js +0 -1034
- package/dist/index-Qg_bzaF2.js +0 -76
- package/dist/usePagination-D8OEDsCt.js +0 -223
|
@@ -1,37 +1,37 @@
|
|
|
1
|
-
import { defineComponent as be, computed as H, ref as G, resolveComponent as V, openBlock as
|
|
2
|
-
import { h as
|
|
3
|
-
import { useDialog as
|
|
4
|
-
import { e as
|
|
5
|
-
import { w as
|
|
6
|
-
import "./index-
|
|
7
|
-
import "./index-
|
|
8
|
-
import { u as
|
|
9
|
-
import { c as
|
|
10
|
-
import { _ as
|
|
11
|
-
import { D as
|
|
12
|
-
import { d as
|
|
13
|
-
import { p as
|
|
14
|
-
import { m as
|
|
15
|
-
import { C as
|
|
16
|
-
import { u as
|
|
17
|
-
import { defineStore as
|
|
18
|
-
import { f as ee } from "./number-
|
|
19
|
-
import "./index-
|
|
20
|
-
import "./index-
|
|
21
|
-
import "./index-
|
|
22
|
-
import { s as
|
|
23
|
-
import { u as
|
|
24
|
-
import { B as
|
|
1
|
+
import { defineComponent as be, computed as H, ref as G, resolveComponent as V, openBlock as u, createElementBlock as A, Fragment as q, createElementVNode as n, unref as t, createBlock as U, createCommentVNode as le, createVNode as _, renderList as ie, withCtx as xe, createTextVNode as Me, toDisplayString as $, withDirectives as Re, vShow as Le, watch as ze, onBeforeMount as at, h as K, onMounted as je, isRef as rt, normalizeClass as st } from "vue";
|
|
2
|
+
import { h as C } from "./moment-D7p2TMB-.js";
|
|
3
|
+
import { useDialog as Ve, components as ve } from "@feedmepos/ui-library";
|
|
4
|
+
import { e as it, M as lt } from "./email-addresses-D_fyxOof.js";
|
|
5
|
+
import { w as ct } from "./xlsx-YD3LYwip.js";
|
|
6
|
+
import "./index-tYmg4eyJ.js";
|
|
7
|
+
import "./index-IBvUTxqC.js";
|
|
8
|
+
import { u as Ie, C as Be, s as dt } from "./membership-CU-wFWan.js";
|
|
9
|
+
import { c as mt } from "./index-pkwrUX33.js";
|
|
10
|
+
import { _ as Ye } from "./lodash-Q-_FPkpI.js";
|
|
11
|
+
import { D as ut } from "./type_drinks-D6jnpvwV.js";
|
|
12
|
+
import { d as pt, e as ft, f as bt, g as yt, h as gt } from "./index-Cg-sBBf_.js";
|
|
13
|
+
import { p as Pe, c as Oe, b as Ue } from "./plugins-CAdlnev8.js";
|
|
14
|
+
import { m as Te, u as qe } from "./loading-CvHPT80F.js";
|
|
15
|
+
import { C as Ee } from "./collection.fn-YzgpOmG0.js";
|
|
16
|
+
import { u as Ke } from "./business-Dd73TVX5.js";
|
|
17
|
+
import { defineStore as vt } from "pinia";
|
|
18
|
+
import { f as ee } from "./number-Bee2M41N.js";
|
|
19
|
+
import "./index-BqQas5Sx.js";
|
|
20
|
+
import "./index-Cyt6eKEF.js";
|
|
21
|
+
import "./index-B_QGGlMD.js";
|
|
22
|
+
import { s as xt } from "./index-CuvNtC_M.js";
|
|
23
|
+
import { u as Ge, _ as He } from "./usePagination-Ciom38dd.js";
|
|
24
|
+
import { B as ht, e as _t } from "./export-OxiqL1B7.js";
|
|
25
25
|
import { o as he } from "./objectId-dwaoBfJX.js";
|
|
26
|
-
import { F as
|
|
27
|
-
import { a as
|
|
28
|
-
import { useRouter as
|
|
29
|
-
import { m as
|
|
30
|
-
import { t as
|
|
31
|
-
import { R as
|
|
32
|
-
import { t as
|
|
33
|
-
import { g as
|
|
34
|
-
const
|
|
26
|
+
import { F as Ae } from "./collectible.enum-D3W0TwoJ.js";
|
|
27
|
+
import { a as St, c as Ct } from "./campaign-DkJOyF24.js";
|
|
28
|
+
import { useRouter as We } from "vue-router";
|
|
29
|
+
import { m as fe } from "./index-Dw3ew6qN.js";
|
|
30
|
+
import { t as wt } from "./index-CAUVTn1I.js";
|
|
31
|
+
import { R as Je } from "./app-DKrmktFJ.js";
|
|
32
|
+
import { t as Ft } from "./money-CzlfhEoe.js";
|
|
33
|
+
import { g as Mt, a as Tt, b as kt } from "./user-BOW0ixDK.js";
|
|
34
|
+
const At = { class: "flex flex-col" }, Et = { key: 1 }, Vt = { class: "flex flex-nowrap gap-4 items-center my-[-4px]" }, It = { class: "flex flex-nowrap gap-8 items-center pt-24 w-full" }, $t = /* @__PURE__ */ be({
|
|
35
35
|
__name: "MemberStatsDialog",
|
|
36
36
|
props: {
|
|
37
37
|
member: {
|
|
@@ -44,25 +44,25 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
46
|
setup(y) {
|
|
47
|
-
var
|
|
48
|
-
const k =
|
|
47
|
+
var ce, ae, W, re;
|
|
48
|
+
const k = Ve(), p = Ie(), x = y, s = H(
|
|
49
49
|
() => {
|
|
50
|
-
var
|
|
51
|
-
return (((
|
|
50
|
+
var f;
|
|
51
|
+
return (((f = x.member.collection) == null ? void 0 : f.TITLE) ?? []).reduce(
|
|
52
52
|
(c, M) => {
|
|
53
|
-
var
|
|
54
|
-
const r =
|
|
53
|
+
var S, T, O, E, R;
|
|
54
|
+
const r = p.sortedTitles.find(
|
|
55
55
|
(te) => te._id.toString() === M.collectible
|
|
56
56
|
);
|
|
57
57
|
if (!r) return c;
|
|
58
58
|
const i = [...M.expiryBalance ?? []].sort(
|
|
59
|
-
(te, z) =>
|
|
59
|
+
(te, z) => C(te.expiredAt).isAfter(C(z.expiredAt)) ? -1 : 1
|
|
60
60
|
);
|
|
61
|
-
return (
|
|
61
|
+
return (S = i[0]) != null && S.expiredAt && C((T = i[0]) == null ? void 0 : T.expiredAt).isBefore(C()) || c.push({
|
|
62
62
|
_id: r._id,
|
|
63
63
|
name: r.name,
|
|
64
|
-
expiredAt: (O = i[0]) != null && O.expiredAt ?
|
|
65
|
-
expiresIn:
|
|
64
|
+
expiredAt: (O = i[0]) != null && O.expiredAt ? C((E = i[0]) == null ? void 0 : E.expiredAt).toISOString() : "",
|
|
65
|
+
expiresIn: C((R = i[0]) == null ? void 0 : R.expiredAt).diff(C(), "days")
|
|
66
66
|
}), c;
|
|
67
67
|
},
|
|
68
68
|
[]
|
|
@@ -70,67 +70,67 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
70
70
|
}
|
|
71
71
|
), o = G({
|
|
72
72
|
cardNo: x.member.cardNo,
|
|
73
|
-
experience: ((ae = (
|
|
73
|
+
experience: ((ae = (ce = x.member.collection) == null ? void 0 : ce.POINT) == null ? void 0 : ae[0].balance) ?? 0,
|
|
74
74
|
tier: ((re = (W = x.member.collection) == null ? void 0 : W.TIER) == null ? void 0 : re[0].balance) ?? -1,
|
|
75
|
-
titles: s.value.map((
|
|
75
|
+
titles: s.value.map((f) => ({ expiredAt: f.expiresIn, id: f._id })) ?? void 0
|
|
76
76
|
}), g = H(
|
|
77
|
-
() => (
|
|
78
|
-
label:
|
|
79
|
-
value:
|
|
80
|
-
sublabel: s.value.some((c) => c._id ===
|
|
77
|
+
() => (p.sortedTitles ?? []).map((f) => ({
|
|
78
|
+
label: f.name,
|
|
79
|
+
value: f._id.toString(),
|
|
80
|
+
sublabel: s.value.some((c) => c._id === f._id) ? "Owned" : void 0
|
|
81
81
|
}))
|
|
82
|
-
),
|
|
83
|
-
label:
|
|
84
|
-
sublabel: `${
|
|
85
|
-
from:
|
|
86
|
-
to:
|
|
82
|
+
), d = H(() => (p.sortedTiers ?? []).map((f, c) => ({
|
|
83
|
+
label: f.name,
|
|
84
|
+
sublabel: `${f.option.from} - ${f.option.to}`,
|
|
85
|
+
from: f.option.from,
|
|
86
|
+
to: f.option.to,
|
|
87
87
|
value: c + 1
|
|
88
88
|
})));
|
|
89
89
|
function w() {
|
|
90
90
|
var M, r;
|
|
91
|
-
const
|
|
91
|
+
const f = ((M = d.value[(o.value.tier ?? 1) - 1]) == null ? void 0 : M.from) ?? 0, c = (r = d.value[(o.value.tier ?? 1) - 1]) == null ? void 0 : r.to;
|
|
92
92
|
o.value.experience = Math.min(
|
|
93
|
-
c ??
|
|
94
|
-
Math.max(
|
|
93
|
+
c ?? f,
|
|
94
|
+
Math.max(f, o.value.experience ?? 0)
|
|
95
95
|
);
|
|
96
96
|
}
|
|
97
|
-
const
|
|
98
|
-
var M, r, i,
|
|
99
|
-
const
|
|
100
|
-
if (
|
|
97
|
+
const m = H(() => {
|
|
98
|
+
var M, r, i, S, T, O;
|
|
99
|
+
const f = ((r = (M = x.member.collection) == null ? void 0 : M.TIER) == null ? void 0 : r[0].balance) ?? -1, c = ((S = (i = x.member.collection) == null ? void 0 : i.POINT) == null ? void 0 : S[0].balance) ?? 0;
|
|
100
|
+
if (f != o.value.tier) return !0;
|
|
101
101
|
if (o.value.experience && o.value.experience != c) {
|
|
102
|
-
const E = ((T =
|
|
103
|
-
if (o.value.experience < E ||
|
|
102
|
+
const E = ((T = d.value[f - 1]) == null ? void 0 : T.from) ?? 0, R = ((O = d.value[f - 1]) == null ? void 0 : O.to) ?? 0;
|
|
103
|
+
if (o.value.experience < E || R && o.value.experience > R)
|
|
104
104
|
return !0;
|
|
105
105
|
}
|
|
106
106
|
return !1;
|
|
107
107
|
});
|
|
108
|
-
function v(
|
|
108
|
+
function v(f) {
|
|
109
109
|
var c;
|
|
110
|
-
return (c = s.value.find((M) => M._id ===
|
|
110
|
+
return (c = s.value.find((M) => M._id === f)) == null ? void 0 : c.expiresIn;
|
|
111
111
|
}
|
|
112
112
|
const I = H(() => {
|
|
113
|
-
const
|
|
114
|
-
return
|
|
113
|
+
const f = pt.safeParse(o.value);
|
|
114
|
+
return f.success ? void 0 : f.error.errors;
|
|
115
115
|
});
|
|
116
|
-
function
|
|
116
|
+
function N(f) {
|
|
117
117
|
var c, M;
|
|
118
|
-
return (M = (c = I.value) == null ? void 0 : c.find((r) => r.path.join(".") ===
|
|
118
|
+
return (M = (c = I.value) == null ? void 0 : c.find((r) => r.path.join(".") === f)) == null ? void 0 : M.message;
|
|
119
119
|
}
|
|
120
|
-
function L(
|
|
120
|
+
function L(f) {
|
|
121
121
|
var c;
|
|
122
|
-
return (c = I.value) == null ? void 0 : c.filter((M) => M.path.join(".").startsWith(
|
|
122
|
+
return (c = I.value) == null ? void 0 : c.filter((M) => M.path.join(".").startsWith(f)).map((M) => M.message);
|
|
123
123
|
}
|
|
124
124
|
async function P() {
|
|
125
125
|
await x.onSubmit(o.value), k.close();
|
|
126
126
|
}
|
|
127
|
-
return (
|
|
127
|
+
return (f, c) => {
|
|
128
128
|
var te, z;
|
|
129
|
-
const M = V("FmSelect"), r = V("FmStepperField"), i = V("FmTextField"),
|
|
130
|
-
return
|
|
131
|
-
n("div",
|
|
129
|
+
const M = V("FmSelect"), r = V("FmStepperField"), i = V("FmTextField"), S = V("FmField"), T = V("FmFormGroup"), O = V("FmButton"), E = V("FmHelperText"), R = V("FmSpacer");
|
|
130
|
+
return u(), A(q, null, [
|
|
131
|
+
n("div", At, [
|
|
132
132
|
c[6] || (c[6] = n("div", { class: "fm-typo-en-title-sm-800 mb-8" }, "Member tiering", -1)),
|
|
133
|
-
t(
|
|
133
|
+
t(d).length ? (u(), U(M, {
|
|
134
134
|
key: 0,
|
|
135
135
|
modelValue: t(o).tier,
|
|
136
136
|
"onUpdate:modelValue": [
|
|
@@ -138,57 +138,57 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
138
138
|
w
|
|
139
139
|
],
|
|
140
140
|
label: "Member Tier",
|
|
141
|
-
items: t(
|
|
142
|
-
"helper-text":
|
|
143
|
-
"helper-state":
|
|
144
|
-
}, null, 8, ["modelValue", "items", "helper-text", "helper-state"])) :
|
|
141
|
+
items: t(d),
|
|
142
|
+
"helper-text": N("tier"),
|
|
143
|
+
"helper-state": N("tier") ? "error" : void 0
|
|
144
|
+
}, null, 8, ["modelValue", "items", "helper-text", "helper-state"])) : le("", !0),
|
|
145
145
|
_(r, {
|
|
146
146
|
"model-value": t(o).experience ?? 0,
|
|
147
147
|
"onUpdate:modelValue": c[1] || (c[1] = (F) => t(o).experience = F),
|
|
148
148
|
label: "Member Experience",
|
|
149
149
|
"max-fraction-digits": 0,
|
|
150
|
-
"helper-text":
|
|
151
|
-
"helper-state":
|
|
150
|
+
"helper-text": N("experience"),
|
|
151
|
+
"helper-state": N("experience") ? "error" : void 0
|
|
152
152
|
}, null, 8, ["model-value", "helper-text", "helper-state"]),
|
|
153
153
|
c[7] || (c[7] = n("div", { class: "fm-typo-en-title-sm-800 mt-16 mb-8" }, "Member Card", -1)),
|
|
154
154
|
_(i, {
|
|
155
155
|
modelValue: t(o).cardNo,
|
|
156
156
|
"onUpdate:modelValue": c[2] || (c[2] = (F) => t(o).cardNo = F),
|
|
157
157
|
label: "Card number",
|
|
158
|
-
"helper-text":
|
|
159
|
-
"helper-state":
|
|
158
|
+
"helper-text": N("cardNo"),
|
|
159
|
+
"helper-state": N("cardNo") ? "error" : void 0
|
|
160
160
|
}, null, 8, ["modelValue", "helper-text", "helper-state"]),
|
|
161
161
|
c[8] || (c[8] = n("div", { class: "fm-typo-en-title-sm-800 mt-16 mb-8" }, "Titles", -1)),
|
|
162
|
-
(te = t(o).titles) != null && te.length ? (
|
|
162
|
+
(te = t(o).titles) != null && te.length ? (u(), A("div", Et, [...c[5] || (c[5] = [
|
|
163
163
|
n("div", { class: "flex flex-nowrap gap-4 items-center" }, [
|
|
164
164
|
n("div", { class: "flex-1" }, "Title"),
|
|
165
165
|
n("div", { class: "flex-1" }, "Expires in days"),
|
|
166
166
|
n("div", { class: "w-24 h-1" })
|
|
167
167
|
], -1)
|
|
168
|
-
])])) :
|
|
169
|
-
(
|
|
170
|
-
n("div",
|
|
171
|
-
t(s).some((a) => a._id === F.id) ? (
|
|
168
|
+
])])) : le("", !0),
|
|
169
|
+
(u(!0), A(q, null, ie(t(o).titles ?? [], (F, J) => (u(), A("div", { key: J }, [
|
|
170
|
+
n("div", Vt, [
|
|
171
|
+
t(s).some((a) => a._id === F.id) ? (u(), U(T, {
|
|
172
172
|
key: 1,
|
|
173
173
|
"model-value": "",
|
|
174
174
|
class: "flex-1"
|
|
175
175
|
}, {
|
|
176
176
|
default: xe(() => [
|
|
177
|
-
_(
|
|
177
|
+
_(S, {
|
|
178
178
|
disabled: !0,
|
|
179
179
|
class: "text-fm-color-typo-secondary"
|
|
180
180
|
}, {
|
|
181
181
|
default: xe(() => {
|
|
182
182
|
var a;
|
|
183
183
|
return [
|
|
184
|
-
|
|
184
|
+
Me($((a = t(g).find((e) => e.value === F.id)) == null ? void 0 : a.label), 1)
|
|
185
185
|
];
|
|
186
186
|
}),
|
|
187
187
|
_: 2
|
|
188
188
|
}, 1024)
|
|
189
189
|
]),
|
|
190
190
|
_: 2
|
|
191
|
-
}, 1024)) : (
|
|
191
|
+
}, 1024)) : (u(), U(M, {
|
|
192
192
|
key: 0,
|
|
193
193
|
modelValue: F.id,
|
|
194
194
|
"onUpdate:modelValue": [(a) => F.id = a, (a) => F.expiredAt = v(a) ?? 1],
|
|
@@ -220,14 +220,14 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
220
220
|
}
|
|
221
221
|
}, null, 8, ["onClick"])
|
|
222
222
|
]),
|
|
223
|
-
(
|
|
223
|
+
(u(!0), A(q, null, ie(L(`titles.${J}`), (a, e) => (u(), U(E, {
|
|
224
224
|
key: e,
|
|
225
225
|
class: "items-center",
|
|
226
226
|
state: "error",
|
|
227
227
|
text: a.toString()
|
|
228
228
|
}, null, 8, ["text"]))), 128))
|
|
229
229
|
]))), 128)),
|
|
230
|
-
t(g).length && (((z = t(o).titles) == null ? void 0 : z.length) ?? 0) < t(g).length ? (
|
|
230
|
+
t(g).length && (((z = t(o).titles) == null ? void 0 : z.length) ?? 0) < t(g).length ? (u(), U(O, {
|
|
231
231
|
key: 2,
|
|
232
232
|
icon: "add",
|
|
233
233
|
label: "Give title",
|
|
@@ -247,16 +247,16 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
247
247
|
}
|
|
248
248
|
];
|
|
249
249
|
})
|
|
250
|
-
})) :
|
|
250
|
+
})) : le("", !0)
|
|
251
251
|
]),
|
|
252
|
-
n("div",
|
|
252
|
+
n("div", It, [
|
|
253
253
|
Re(_(E, {
|
|
254
254
|
state: "warning",
|
|
255
255
|
text: "Updating member will cause tier to change"
|
|
256
256
|
}, null, 512), [
|
|
257
|
-
[
|
|
257
|
+
[Le, t(m)]
|
|
258
258
|
]),
|
|
259
|
-
_(
|
|
259
|
+
_(R),
|
|
260
260
|
_(O, {
|
|
261
261
|
variant: "secondary",
|
|
262
262
|
label: "Cancel",
|
|
@@ -274,7 +274,7 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
274
274
|
], 64);
|
|
275
275
|
};
|
|
276
276
|
}
|
|
277
|
-
}), Dt = { class: "fm-typo-en-title-sm-800" }, Nt = { class: "space-y-16" },
|
|
277
|
+
}), Dt = { class: "fm-typo-en-title-sm-800" }, Nt = { class: "space-y-16" }, Bt = { class: "flex flex-nowrap gap-8 items-center justify-end pt-24 w-full" }, Yt = /* @__PURE__ */ be({
|
|
278
278
|
__name: "CreditCoinDialog",
|
|
279
279
|
props: {
|
|
280
280
|
type: { type: String, required: !0 },
|
|
@@ -285,59 +285,59 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
285
285
|
}
|
|
286
286
|
},
|
|
287
287
|
setup(y) {
|
|
288
|
-
const k =
|
|
288
|
+
const k = Ve(), p = y, x = G({
|
|
289
289
|
amount: 1,
|
|
290
290
|
day: 1,
|
|
291
291
|
remark: void 0
|
|
292
|
-
}), s = G(!0), o = H(() =>
|
|
293
|
-
function g(
|
|
294
|
-
s.value =
|
|
292
|
+
}), s = G(!0), o = H(() => Ee.formattedType(p.type.toUpperCase()));
|
|
293
|
+
function g(m) {
|
|
294
|
+
s.value = m, !m && p.type === "coin" && (x.value.day = void 0);
|
|
295
295
|
}
|
|
296
|
-
async function
|
|
297
|
-
if (
|
|
298
|
-
const
|
|
299
|
-
|
|
300
|
-
`Are you sure to send ${x.value.amount} ${o.value.toLowerCase()}${
|
|
296
|
+
async function d() {
|
|
297
|
+
if (p.action === "send") {
|
|
298
|
+
const m = x.value.day ? `, expire in ${x.value.day} days` : "";
|
|
299
|
+
Pe.confirm(
|
|
300
|
+
`Are you sure to send ${x.value.amount} ${o.value.toLowerCase()}${m}? This action cannot be reversed.`
|
|
301
301
|
).then(async (v) => {
|
|
302
|
-
v && await
|
|
302
|
+
v && await p.onSubmit(x.value);
|
|
303
303
|
});
|
|
304
304
|
} else
|
|
305
|
-
|
|
305
|
+
Pe.confirm(
|
|
306
306
|
`Are you sure to deduct ${x.value.amount} ${o.value.toLowerCase()}? This action cannot be reversed.`
|
|
307
|
-
).then(async (
|
|
308
|
-
|
|
307
|
+
).then(async (m) => {
|
|
308
|
+
m && await p.onSubmit(x.value);
|
|
309
309
|
});
|
|
310
310
|
}
|
|
311
311
|
const w = H(() => {
|
|
312
|
-
const v = (
|
|
312
|
+
const v = (p.action === "send" ? p.type === "coin" ? ft : bt : p.type === "coin" ? yt : gt).safeParse(x.value);
|
|
313
313
|
return v.success == !1 ? v.error.flatten().fieldErrors : void 0;
|
|
314
314
|
});
|
|
315
|
-
return (
|
|
316
|
-
const I = V("FmStepperField"),
|
|
317
|
-
return
|
|
315
|
+
return (m, v) => {
|
|
316
|
+
const I = V("FmStepperField"), N = V("FmSwitch"), L = V("FmTextarea"), P = V("FmButton"), ce = V("FmCard");
|
|
317
|
+
return u(), U(ce, { class: "flex flex-col gap-16 p-16" }, {
|
|
318
318
|
default: xe(() => {
|
|
319
|
-
var ae, W, re,
|
|
319
|
+
var ae, W, re, f, c, M;
|
|
320
320
|
return [
|
|
321
|
-
n("div", Dt, $(
|
|
322
|
-
|
|
321
|
+
n("div", Dt, $(p.action == "send" ? "Send" : "Deduct") + " " + $(t(Be)[p.type.toUpperCase()].name), 1),
|
|
322
|
+
Me(" " + $(t(w)) + " ", 1),
|
|
323
323
|
n("div", Nt, [
|
|
324
324
|
_(I, {
|
|
325
325
|
modelValue: t(x).amount,
|
|
326
326
|
"onUpdate:modelValue": v[0] || (v[0] = (r) => t(x).amount = r),
|
|
327
|
-
label: `${t(
|
|
327
|
+
label: `${t(Be)[p.type.toUpperCase()].name} amount`,
|
|
328
328
|
"is-currency": !0,
|
|
329
329
|
"max-fraction-digits": 2,
|
|
330
330
|
"helper-state": (ae = t(w)) != null && ae.amount ? "error" : void 0,
|
|
331
331
|
"helper-text": (re = (W = t(w)) == null ? void 0 : W.amount) == null ? void 0 : re[0]
|
|
332
332
|
}, null, 8, ["modelValue", "label", "helper-state", "helper-text"]),
|
|
333
|
-
y.action === "send" &&
|
|
333
|
+
y.action === "send" && p.type === "coin" ? (u(), U(N, {
|
|
334
334
|
key: 0,
|
|
335
335
|
"model-value": t(s),
|
|
336
336
|
label: `${t(o)} expires`,
|
|
337
337
|
"label-placement": "right",
|
|
338
338
|
"onUpdate:modelValue": v[1] || (v[1] = (r) => g(r))
|
|
339
|
-
}, null, 8, ["model-value", "label"])) :
|
|
340
|
-
y.action === "send" && t(s) ? (
|
|
339
|
+
}, null, 8, ["model-value", "label"])) : le("", !0),
|
|
340
|
+
y.action === "send" && t(s) ? (u(), U(I, {
|
|
341
341
|
key: 1,
|
|
342
342
|
modelValue: t(x).day,
|
|
343
343
|
"onUpdate:modelValue": v[2] || (v[2] = (r) => t(x).day = r),
|
|
@@ -346,16 +346,16 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
346
346
|
"append-text": "day(s)",
|
|
347
347
|
max: 9999,
|
|
348
348
|
min: 0,
|
|
349
|
-
"helper-state": (
|
|
349
|
+
"helper-state": (f = t(w)) != null && f.day ? "error" : void 0,
|
|
350
350
|
"helper-text": (M = (c = t(w)) == null ? void 0 : c.day) == null ? void 0 : M[0]
|
|
351
|
-
}, null, 8, ["modelValue", "label", "helper-state", "helper-text"])) :
|
|
351
|
+
}, null, 8, ["modelValue", "label", "helper-state", "helper-text"])) : le("", !0),
|
|
352
352
|
_(L, {
|
|
353
353
|
modelValue: t(x).remark,
|
|
354
354
|
"onUpdate:modelValue": v[3] || (v[3] = (r) => t(x).remark = r),
|
|
355
355
|
label: "Remark"
|
|
356
356
|
}, null, 8, ["modelValue"])
|
|
357
357
|
]),
|
|
358
|
-
n("div",
|
|
358
|
+
n("div", Bt, [
|
|
359
359
|
_(P, {
|
|
360
360
|
variant: "secondary",
|
|
361
361
|
label: "Cancel",
|
|
@@ -367,7 +367,7 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
367
367
|
variant: "primary",
|
|
368
368
|
label: "Submit",
|
|
369
369
|
size: "md",
|
|
370
|
-
onClick: v[5] || (v[5] = async () =>
|
|
370
|
+
onClick: v[5] || (v[5] = async () => d())
|
|
371
371
|
}, null, 8, ["disabled"])
|
|
372
372
|
])
|
|
373
373
|
];
|
|
@@ -376,25 +376,25 @@ const Et = { class: "flex flex-col" }, Vt = { key: 1 }, It = { class: "flex flex
|
|
|
376
376
|
});
|
|
377
377
|
};
|
|
378
378
|
}
|
|
379
|
-
}),
|
|
379
|
+
}), Xe = vt("segment", () => {
|
|
380
380
|
const y = G([]);
|
|
381
381
|
async function k() {
|
|
382
|
-
const
|
|
382
|
+
const p = await dt.readAll({
|
|
383
383
|
limit: 1e3,
|
|
384
384
|
skip: 0,
|
|
385
385
|
sortBy: "_id",
|
|
386
386
|
descending: !0
|
|
387
387
|
});
|
|
388
|
-
y.value =
|
|
388
|
+
y.value = p.resources;
|
|
389
389
|
}
|
|
390
390
|
return {
|
|
391
391
|
segments: y,
|
|
392
392
|
read: k
|
|
393
393
|
};
|
|
394
394
|
});
|
|
395
|
-
class
|
|
395
|
+
class Pt extends ht {
|
|
396
396
|
}
|
|
397
|
-
const
|
|
397
|
+
const Ot = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" }, Ut = { class: "hidden xs:!flex items-center justify-end" }, Rt = { class: "flex items-center justify-between mb-4" }, Lt = { class: "flex items-center justify-between gap-x-8" }, zt = { class: "fm-typo-en-body-lg-600" }, jt = { class: "px-4 py-0.5 rounded-md bg-fm-color-neutral-gray-100 fm-typo-en-body-md-600" }, qt = { class: "xs:hidden flex justify-between gap-x-4" }, ke = /* @__PURE__ */ be({
|
|
398
398
|
__name: "MemberCollectionTable",
|
|
399
399
|
props: {
|
|
400
400
|
member: {
|
|
@@ -423,36 +423,36 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
423
423
|
}
|
|
424
424
|
},
|
|
425
425
|
setup(y) {
|
|
426
|
-
const k = y,
|
|
426
|
+
const k = y, p = G({
|
|
427
427
|
search: ""
|
|
428
|
-
}), x = G(!1), { tableMeta: s, rowData: o, onSort: g, debouncedFetchData:
|
|
428
|
+
}), x = G(!1), { tableMeta: s, rowData: o, onSort: g, debouncedFetchData: d, onSearch: w } = Ge(async (v) => {
|
|
429
429
|
const I = {
|
|
430
|
-
...
|
|
430
|
+
...p.value,
|
|
431
431
|
...k.filters
|
|
432
432
|
};
|
|
433
|
-
return await
|
|
433
|
+
return await Te.readCollectionsByMemberId(
|
|
434
434
|
k.member._id.toString(),
|
|
435
435
|
v,
|
|
436
436
|
I
|
|
437
437
|
);
|
|
438
438
|
});
|
|
439
|
-
|
|
440
|
-
|
|
439
|
+
ze(
|
|
440
|
+
p,
|
|
441
441
|
() => {
|
|
442
|
-
|
|
442
|
+
d();
|
|
443
443
|
},
|
|
444
444
|
{ deep: !0 }
|
|
445
445
|
);
|
|
446
|
-
async function
|
|
446
|
+
async function m() {
|
|
447
447
|
try {
|
|
448
448
|
x.value = !0;
|
|
449
449
|
const v = {
|
|
450
|
-
...
|
|
450
|
+
...p.value,
|
|
451
451
|
...k.filters
|
|
452
452
|
};
|
|
453
|
-
await
|
|
454
|
-
exporter: new
|
|
455
|
-
readFunction: (I) =>
|
|
453
|
+
await _t({
|
|
454
|
+
exporter: new Pt(),
|
|
455
|
+
readFunction: (I) => Te.readCollectionsByMemberId(
|
|
456
456
|
k.member._id.toString(),
|
|
457
457
|
I,
|
|
458
458
|
v
|
|
@@ -466,52 +466,52 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
466
466
|
x.value = !1;
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
return
|
|
470
|
-
await
|
|
469
|
+
return at(async () => {
|
|
470
|
+
await d();
|
|
471
471
|
}), (v, I) => {
|
|
472
|
-
const
|
|
473
|
-
return
|
|
472
|
+
const N = V("FmSearch"), L = V("FmButton");
|
|
473
|
+
return u(), A("div", Ot, [
|
|
474
474
|
n("div", Ut, [
|
|
475
|
-
_(
|
|
475
|
+
_(N, {
|
|
476
476
|
class: "hidden xs:!flex",
|
|
477
|
-
modelValue: t(
|
|
477
|
+
modelValue: t(p).search,
|
|
478
478
|
"onUpdate:modelValue": [
|
|
479
|
-
I[0] || (I[0] = (P) => t(
|
|
479
|
+
I[0] || (I[0] = (P) => t(p).search = P),
|
|
480
480
|
t(w)
|
|
481
481
|
],
|
|
482
482
|
placeholder: "Search",
|
|
483
483
|
collapsible: ""
|
|
484
484
|
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
|
|
485
|
-
y.withExport ? (
|
|
485
|
+
y.withExport ? (u(), U(L, {
|
|
486
486
|
key: 0,
|
|
487
487
|
icon: "ios_share",
|
|
488
488
|
variant: "tertiary",
|
|
489
|
-
onClick:
|
|
490
|
-
})) :
|
|
489
|
+
onClick: m
|
|
490
|
+
})) : le("", !0)
|
|
491
491
|
]),
|
|
492
|
-
n("div",
|
|
493
|
-
n("div",
|
|
494
|
-
n("div",
|
|
495
|
-
n("div",
|
|
492
|
+
n("div", Rt, [
|
|
493
|
+
n("div", Lt, [
|
|
494
|
+
n("div", zt, $(k.title), 1),
|
|
495
|
+
n("div", jt, $(t(s).totalRows), 1)
|
|
496
496
|
]),
|
|
497
|
-
n("div",
|
|
498
|
-
_(
|
|
499
|
-
modelValue: t(
|
|
497
|
+
n("div", qt, [
|
|
498
|
+
_(N, {
|
|
499
|
+
modelValue: t(p).search,
|
|
500
500
|
"onUpdate:modelValue": [
|
|
501
|
-
I[1] || (I[1] = (P) => t(
|
|
501
|
+
I[1] || (I[1] = (P) => t(p).search = P),
|
|
502
502
|
t(w)
|
|
503
503
|
],
|
|
504
504
|
placeholder: "Search"
|
|
505
505
|
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
|
|
506
|
-
y.withExport ? (
|
|
506
|
+
y.withExport ? (u(), U(L, {
|
|
507
507
|
key: 0,
|
|
508
508
|
icon: "ios_share",
|
|
509
509
|
variant: "tertiary",
|
|
510
|
-
onClick:
|
|
511
|
-
})) :
|
|
510
|
+
onClick: m
|
|
511
|
+
})) : le("", !0)
|
|
512
512
|
])
|
|
513
513
|
]),
|
|
514
|
-
_(
|
|
514
|
+
_(He, {
|
|
515
515
|
loading: t(s).isLoading,
|
|
516
516
|
"row-data": t(o),
|
|
517
517
|
"row-count": t(s).totalRows,
|
|
@@ -521,7 +521,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
521
521
|
"page-size": t(s).pageSize,
|
|
522
522
|
"shrink-at": !1,
|
|
523
523
|
onSortChange: t(g),
|
|
524
|
-
onPageChange: I[2] || (I[2] = (P) => t(
|
|
524
|
+
onPageChange: I[2] || (I[2] = (P) => t(d)({
|
|
525
525
|
pageSize: P.pageSize,
|
|
526
526
|
pageIndex: P.pageIndex
|
|
527
527
|
}))
|
|
@@ -529,7 +529,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
529
529
|
]);
|
|
530
530
|
};
|
|
531
531
|
}
|
|
532
|
-
}),
|
|
532
|
+
}), Kt = /* @__PURE__ */ be({
|
|
533
533
|
__name: "MemberVouchers",
|
|
534
534
|
props: {
|
|
535
535
|
member: {
|
|
@@ -538,7 +538,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
538
538
|
}
|
|
539
539
|
},
|
|
540
540
|
setup(y) {
|
|
541
|
-
const k = y,
|
|
541
|
+
const k = y, p = [
|
|
542
542
|
{
|
|
543
543
|
header: "Voucher title",
|
|
544
544
|
meta: {
|
|
@@ -557,14 +557,14 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
557
557
|
{
|
|
558
558
|
header: "Claimed at",
|
|
559
559
|
accessorKey: "_id",
|
|
560
|
-
accessorFn: (o) =>
|
|
560
|
+
accessorFn: (o) => C(he(o._id.toString())).format("D MMM YYYY"),
|
|
561
561
|
enableSorting: !1
|
|
562
562
|
},
|
|
563
563
|
{
|
|
564
564
|
header: "Expired at",
|
|
565
565
|
cell(o) {
|
|
566
|
-
var
|
|
567
|
-
const g = (w = (
|
|
566
|
+
var d, w, m, v;
|
|
567
|
+
const g = (w = (d = o.row.original.expiryBalance) == null ? void 0 : d[0]) != null && w.expiredAt ? C((v = (m = o.row.original.expiryBalance) == null ? void 0 : m[0]) == null ? void 0 : v.expiredAt).format(
|
|
568
568
|
"D MMM YYYY"
|
|
569
569
|
) : "-";
|
|
570
570
|
return K("div", {}, g);
|
|
@@ -574,39 +574,39 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
574
574
|
{
|
|
575
575
|
header: "Transfer open",
|
|
576
576
|
accessorFn: (o) => {
|
|
577
|
-
var g,
|
|
578
|
-
return
|
|
577
|
+
var g, d, w;
|
|
578
|
+
return xt((w = (d = (g = o.pf_collectible) == null ? void 0 : g.options) == null ? void 0 : d.enableTransfer) == null ? void 0 : w.toString());
|
|
579
579
|
},
|
|
580
580
|
enableSorting: !1
|
|
581
581
|
}
|
|
582
582
|
], x = (o) => ({
|
|
583
|
-
type:
|
|
583
|
+
type: Ae.enum.VOUCHER,
|
|
584
584
|
isActive: o
|
|
585
585
|
}), s = (o) => {
|
|
586
|
-
var g,
|
|
586
|
+
var g, d, w, m, v, I, N;
|
|
587
587
|
return {
|
|
588
588
|
CollectionID: o._id,
|
|
589
589
|
Title: (g = o.pf_collectible) == null ? void 0 : g.name,
|
|
590
|
-
ClaimedAt:
|
|
590
|
+
ClaimedAt: C(he(o._id.toString())).format(
|
|
591
591
|
"D MMM YYYY, hh:mmA"
|
|
592
592
|
),
|
|
593
|
-
ExpiredAt: (w = (
|
|
594
|
-
TransferOpen: ((
|
|
593
|
+
ExpiredAt: (w = (d = o.expiryBalance) == null ? void 0 : d[0]) != null && w.expiredAt ? C((v = (m = o.expiryBalance) == null ? void 0 : m[0]) == null ? void 0 : v.expiredAt).format("D MMM YYYY") : "",
|
|
594
|
+
TransferOpen: ((N = (I = o.pf_collectible) == null ? void 0 : I.options) == null ? void 0 : N.enableTransfer) || !1
|
|
595
595
|
};
|
|
596
596
|
};
|
|
597
|
-
return (o, g) => (
|
|
597
|
+
return (o, g) => (u(), A(q, null, [
|
|
598
598
|
g[0] || (g[0] = n("div", { class: "fm-typo-en-title-sm-600 mb-16" }, "Voucher Collections", -1)),
|
|
599
|
-
_(
|
|
599
|
+
_(ke, {
|
|
600
600
|
member: k.member,
|
|
601
|
-
columns:
|
|
601
|
+
columns: p,
|
|
602
602
|
title: "Active voucher",
|
|
603
603
|
filters: x(!0),
|
|
604
604
|
withExport: !0,
|
|
605
605
|
transformExportRecord: s
|
|
606
606
|
}, null, 8, ["member", "filters"]),
|
|
607
|
-
_(
|
|
607
|
+
_(ke, {
|
|
608
608
|
member: k.member,
|
|
609
|
-
columns:
|
|
609
|
+
columns: p,
|
|
610
610
|
title: "Past voucher",
|
|
611
611
|
filters: x(!1),
|
|
612
612
|
withExport: !0,
|
|
@@ -614,7 +614,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
614
614
|
}, null, 8, ["member", "filters"])
|
|
615
615
|
], 64));
|
|
616
616
|
}
|
|
617
|
-
}),
|
|
617
|
+
}), Gt = /* @__PURE__ */ be({
|
|
618
618
|
__name: "MemberMissions",
|
|
619
619
|
props: {
|
|
620
620
|
member: {
|
|
@@ -623,7 +623,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
623
623
|
}
|
|
624
624
|
},
|
|
625
625
|
setup(y) {
|
|
626
|
-
const k = y,
|
|
626
|
+
const k = y, p = [
|
|
627
627
|
{
|
|
628
628
|
header: "Mission title",
|
|
629
629
|
meta: {
|
|
@@ -642,8 +642,8 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
642
642
|
{
|
|
643
643
|
header: "Type",
|
|
644
644
|
accessorFn: (s) => {
|
|
645
|
-
var o, g,
|
|
646
|
-
return
|
|
645
|
+
var o, g, d;
|
|
646
|
+
return Oe.title(((d = (g = (o = s == null ? void 0 : s.pf_collectible) == null ? void 0 : o.extras) == null ? void 0 : g.mission) == null ? void 0 : d.type) || "-");
|
|
647
647
|
},
|
|
648
648
|
enableSorting: !1
|
|
649
649
|
},
|
|
@@ -657,12 +657,12 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
657
657
|
upcoming: "text-fm-color-typo-info bg-fm-color-system-info-100",
|
|
658
658
|
completed: "text-fm-color-typo-success bg-fm-color-system-success-100",
|
|
659
659
|
expired: "text-fm-color-typo-error bg-fm-color-system-error-100"
|
|
660
|
-
},
|
|
660
|
+
}, d = St(
|
|
661
661
|
s.row.original.pf_campaign
|
|
662
|
-
),
|
|
662
|
+
), m = s.row.original.balance === s.row.original.pf_collectible.extras.mission.end && d === "active" ? "completed" : (o = s.row.original) != null && o.deactivatedAt ? "expired" : d;
|
|
663
663
|
return K(ve.FmChip, {
|
|
664
|
-
class: g[
|
|
665
|
-
label:
|
|
664
|
+
class: g[m],
|
|
665
|
+
label: Oe.title(m),
|
|
666
666
|
compact: !0
|
|
667
667
|
});
|
|
668
668
|
}
|
|
@@ -676,7 +676,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
676
676
|
},
|
|
677
677
|
{
|
|
678
678
|
header: "Summary",
|
|
679
|
-
accessorFn: (s) => s != null && s.pf_campaign ?
|
|
679
|
+
accessorFn: (s) => s != null && s.pf_campaign ? Ct(s.pf_campaign) : "Deleted Campaign",
|
|
680
680
|
enableSorting: !1
|
|
681
681
|
},
|
|
682
682
|
{
|
|
@@ -687,25 +687,25 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
687
687
|
{
|
|
688
688
|
header: "Total Step",
|
|
689
689
|
accessorFn: (s) => {
|
|
690
|
-
var o, g,
|
|
691
|
-
return ((
|
|
690
|
+
var o, g, d;
|
|
691
|
+
return ((d = (g = (o = s == null ? void 0 : s.pf_collectible) == null ? void 0 : o.extras) == null ? void 0 : g.mission) == null ? void 0 : d.end) ?? 0;
|
|
692
692
|
},
|
|
693
693
|
enableSorting: !1
|
|
694
694
|
}
|
|
695
695
|
], x = {
|
|
696
|
-
type:
|
|
696
|
+
type: Ae.enum.STAMP
|
|
697
697
|
};
|
|
698
|
-
return (s, o) => (
|
|
698
|
+
return (s, o) => (u(), A(q, null, [
|
|
699
699
|
o[0] || (o[0] = n("div", { class: "fm-typo-en-title-sm-600 mb-16" }, "Mission", -1)),
|
|
700
|
-
_(
|
|
700
|
+
_(ke, {
|
|
701
701
|
member: k.member,
|
|
702
|
-
columns:
|
|
702
|
+
columns: p,
|
|
703
703
|
title: "Mission",
|
|
704
704
|
filters: x
|
|
705
705
|
}, null, 8, ["member"])
|
|
706
706
|
], 64));
|
|
707
707
|
}
|
|
708
|
-
}),
|
|
708
|
+
}), Ht = /* @__PURE__ */ be({
|
|
709
709
|
__name: "MemberGames",
|
|
710
710
|
props: {
|
|
711
711
|
member: {
|
|
@@ -714,7 +714,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
714
714
|
}
|
|
715
715
|
},
|
|
716
716
|
setup(y) {
|
|
717
|
-
const k = y,
|
|
717
|
+
const k = y, p = [
|
|
718
718
|
{
|
|
719
719
|
header: "Game title",
|
|
720
720
|
meta: {
|
|
@@ -733,14 +733,14 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
733
733
|
{
|
|
734
734
|
header: "Claimed at",
|
|
735
735
|
accessorKey: "_id",
|
|
736
|
-
accessorFn: (s) =>
|
|
736
|
+
accessorFn: (s) => C(he(s._id.toString())).format("D MMM YYYY"),
|
|
737
737
|
enableSorting: !1
|
|
738
738
|
},
|
|
739
739
|
{
|
|
740
740
|
header: "Expired at",
|
|
741
741
|
cell(s) {
|
|
742
|
-
var g,
|
|
743
|
-
const o = (
|
|
742
|
+
var g, d, w, m;
|
|
743
|
+
const o = (d = (g = s.row.original.expiryBalance) == null ? void 0 : g[0]) != null && d.expiredAt ? C((m = (w = s.row.original.expiryBalance) == null ? void 0 : w[0]) == null ? void 0 : m.expiredAt).format(
|
|
744
744
|
"D MMM YYYY"
|
|
745
745
|
) : "-";
|
|
746
746
|
return K("div", {}, o);
|
|
@@ -753,32 +753,32 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
753
753
|
enableSorting: !1
|
|
754
754
|
}
|
|
755
755
|
], x = (s) => ({
|
|
756
|
-
type:
|
|
756
|
+
type: Ae.enum.GAME,
|
|
757
757
|
isActive: s
|
|
758
758
|
});
|
|
759
|
-
return (s, o) => (
|
|
759
|
+
return (s, o) => (u(), A(q, null, [
|
|
760
760
|
o[0] || (o[0] = n("div", { class: "fm-typo-en-title-sm-600 mb-16" }, "Game program", -1)),
|
|
761
|
-
_(
|
|
761
|
+
_(ke, {
|
|
762
762
|
member: k.member,
|
|
763
|
-
columns:
|
|
763
|
+
columns: p,
|
|
764
764
|
title: "Active game token",
|
|
765
765
|
filters: x(!0)
|
|
766
766
|
}, null, 8, ["member", "filters"])
|
|
767
767
|
], 64));
|
|
768
768
|
}
|
|
769
|
-
}),
|
|
769
|
+
}), Wt = { class: "flex flex-col flex-nowrap gap-y-24 max-h-full" }, Jt = { class: "grid md:grid-cols-2 lg:grid-cols-2 gap-x-36 gap-y-24" }, Xt = { class: "space-y-16" }, Qt = { class: "flex gap-16 items-center" }, Zt = { class: "flex-auto" }, eo = { class: "fm-typo-en-body-md-600" }, to = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, oo = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, no = { class: "fm-typo-en-body-md-800" }, ao = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ro = { class: "fm-typo-en-body-md-800" }, so = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, io = { class: "fm-typo-en-body-md-600" }, lo = { class: "gap-16 grid grid-cols-1" }, co = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, mo = { class: "fm-typo-en-body-md-600" }, uo = { class: "p-16 grid md:grid-cols-3 lg:grid-cols-3 border-2 border-fm-color-neutral-gray-100 rounded-lg gap-16 divide-y md:divide-y-0 lg:divide-y-0 md:divide-x lg:divide-x divide-fm-color-neutral-gray-100" }, po = { class: "flex justify-between mb-16" }, fo = { class: "fm-typo-en-title-sm-600" }, bo = ["onClick"], yo = { class: "flex flex-col gap-y-16" }, go = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, vo = { class: "fm-typo-en-body-md-600" }, xo = { class: "space-y-8" }, ho = {
|
|
770
770
|
key: 0,
|
|
771
771
|
class: "space-x-8"
|
|
772
|
-
},
|
|
772
|
+
}, _o = {
|
|
773
773
|
key: 1,
|
|
774
774
|
class: "text-fm-color-typo-secondary"
|
|
775
|
-
},
|
|
775
|
+
}, So = { class: "space-y-8" }, Co = ["src"], wo = { class: "fm-typo-en-body-md-600" }, Fo = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Mo = {
|
|
776
776
|
key: 1,
|
|
777
777
|
class: "text-fm-color-typo-secondary"
|
|
778
|
-
},
|
|
778
|
+
}, To = {
|
|
779
779
|
key: 1,
|
|
780
780
|
class: "space-y-24"
|
|
781
|
-
},
|
|
781
|
+
}, ko = { class: "space-y-8" }, Ao = { class: "fm-typo-en-title-md-800" }, Eo = { class: "space-y-4" }, Vo = { class: "fm-typo-en-body-md-600" }, Io = { class: "flex gap-24 items-center xs:flex-col xs:items-start" }, $o = { class: "space-y-8" }, Do = { class: "fm-typo-en-title-md-800" }, No = { class: "space-y-4" }, Bo = { class: "fm-typo-en-body-md-600" }, Yo = { class: "flex gap-24 items-center xs:flex-col xs:items-start" }, Po = /* @__PURE__ */ be({
|
|
782
782
|
__name: "MemberDetailSheet",
|
|
783
783
|
props: {
|
|
784
784
|
member: {
|
|
@@ -787,11 +787,11 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
787
787
|
}
|
|
788
788
|
},
|
|
789
789
|
emits: ["update:member"],
|
|
790
|
-
setup(y, { expose: k, emit:
|
|
791
|
-
const x =
|
|
790
|
+
setup(y, { expose: k, emit: p }) {
|
|
791
|
+
const x = We(), s = Ke(), o = Ie(), g = Xe(), d = Ve(), { minor: w } = qe, m = y, v = p, I = H(() => s.locations.map((a) => ({
|
|
792
792
|
label: a.name,
|
|
793
793
|
value: a._id
|
|
794
|
-
}))),
|
|
794
|
+
}))), N = H(() => (m.member.segment || []).map((a) => {
|
|
795
795
|
var e;
|
|
796
796
|
return ((e = g.segments.find((b) => b._id === a)) == null ? void 0 : e.name) || "";
|
|
797
797
|
}).filter(Boolean)), L = [
|
|
@@ -801,15 +801,15 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
801
801
|
{
|
|
802
802
|
label: "Experiences",
|
|
803
803
|
getter: (a) => {
|
|
804
|
-
var e, b,
|
|
805
|
-
return ee(((
|
|
804
|
+
var e, b, D;
|
|
805
|
+
return ee(((D = (b = (e = a.collection) == null ? void 0 : e.POINT) == null ? void 0 : b[0]) == null ? void 0 : D.balance) ?? 0, 2);
|
|
806
806
|
}
|
|
807
807
|
},
|
|
808
808
|
{
|
|
809
809
|
label: "Credits",
|
|
810
810
|
getter: (a) => {
|
|
811
|
-
var e, b,
|
|
812
|
-
return ee(((
|
|
811
|
+
var e, b, D;
|
|
812
|
+
return ee(((D = (b = (e = a.collection) == null ? void 0 : e.CREDIT) == null ? void 0 : b[0]) == null ? void 0 : D.balance) ?? 0, 2);
|
|
813
813
|
}
|
|
814
814
|
}
|
|
815
815
|
]
|
|
@@ -819,11 +819,11 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
819
819
|
stats: [
|
|
820
820
|
{
|
|
821
821
|
label: "Active vouchers",
|
|
822
|
-
getter: () => ee(
|
|
822
|
+
getter: () => ee(S.value.active, 0)
|
|
823
823
|
},
|
|
824
824
|
{
|
|
825
825
|
label: "Past vouchers",
|
|
826
|
-
getter: () => ee(
|
|
826
|
+
getter: () => ee(S.value.past, 0)
|
|
827
827
|
}
|
|
828
828
|
]
|
|
829
829
|
},
|
|
@@ -849,7 +849,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
849
849
|
var e, b;
|
|
850
850
|
return ee(
|
|
851
851
|
((b = (e = a.collection) == null ? void 0 : e.GAME) == null ? void 0 : b.reduce(
|
|
852
|
-
(
|
|
852
|
+
(D, B) => D + B.balance,
|
|
853
853
|
0
|
|
854
854
|
)) || 0,
|
|
855
855
|
0
|
|
@@ -867,7 +867,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
867
867
|
}
|
|
868
868
|
]
|
|
869
869
|
}
|
|
870
|
-
],
|
|
870
|
+
], ce = (() => {
|
|
871
871
|
const e = [];
|
|
872
872
|
for (let b = 0; b < L.length; b += 3)
|
|
873
873
|
e.push(L.slice(b, b + 3));
|
|
@@ -877,8 +877,8 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
877
877
|
switch (a.stopPropagation(), e) {
|
|
878
878
|
case "Store bundle":
|
|
879
879
|
await x.push({
|
|
880
|
-
name:
|
|
881
|
-
params: { id:
|
|
880
|
+
name: Je["$connect-LOYALTY_MEMBER_TRANSACTIONS"],
|
|
881
|
+
params: { id: m.member._id.toString() },
|
|
882
882
|
query: { tab: "store" }
|
|
883
883
|
});
|
|
884
884
|
break;
|
|
@@ -888,30 +888,30 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
888
888
|
}
|
|
889
889
|
}
|
|
890
890
|
async function W(a, e) {
|
|
891
|
-
|
|
891
|
+
d.open({
|
|
892
892
|
title: "",
|
|
893
|
-
dialogComponent:
|
|
893
|
+
dialogComponent: Yt,
|
|
894
894
|
dialogComponentProps: {
|
|
895
895
|
type: a,
|
|
896
896
|
action: e,
|
|
897
897
|
onSubmit: async (b) => {
|
|
898
898
|
await w(
|
|
899
899
|
async () => {
|
|
900
|
-
const
|
|
901
|
-
"credit-send":
|
|
902
|
-
"credit-deduct":
|
|
903
|
-
"coin-send":
|
|
904
|
-
"coin-deduct":
|
|
905
|
-
},
|
|
906
|
-
X && await X(
|
|
900
|
+
const D = {
|
|
901
|
+
"credit-send": fe.sendCredit,
|
|
902
|
+
"credit-deduct": fe.deductCredit,
|
|
903
|
+
"coin-send": fe.sendCoin,
|
|
904
|
+
"coin-deduct": fe.deductCoin
|
|
905
|
+
}, B = `${a}-${e}`, X = D[B];
|
|
906
|
+
X && await X(m.member._id, b), v("update:member"), d.close();
|
|
907
907
|
},
|
|
908
908
|
{
|
|
909
|
-
message: `Adjusting ${
|
|
909
|
+
message: `Adjusting ${Ee.formattedType(
|
|
910
910
|
a.toUpperCase()
|
|
911
911
|
).toLowerCase()}`,
|
|
912
|
-
successMessage: `${b.amount} ${
|
|
912
|
+
successMessage: `${b.amount} ${Ee.formattedType(
|
|
913
913
|
a.toUpperCase()
|
|
914
|
-
).toLowerCase()} ${e} ${e == "send" ? "to" : "from"} ${
|
|
914
|
+
).toLowerCase()} ${e} ${e == "send" ? "to" : "from"} ${m.member.phoneNumber}`
|
|
915
915
|
}
|
|
916
916
|
);
|
|
917
917
|
}
|
|
@@ -919,26 +919,26 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
919
919
|
});
|
|
920
920
|
}
|
|
921
921
|
async function re() {
|
|
922
|
-
|
|
922
|
+
d.open({
|
|
923
923
|
title: "Update member statistics",
|
|
924
|
-
contentComponent:
|
|
924
|
+
contentComponent: $t,
|
|
925
925
|
contentComponentProps: {
|
|
926
|
-
member:
|
|
926
|
+
member: m.member,
|
|
927
927
|
onSubmit: async (a) => {
|
|
928
928
|
await w(
|
|
929
929
|
async () => {
|
|
930
|
-
await
|
|
930
|
+
await fe.updateMember(m.member._id, a), v("update:member"), d.close();
|
|
931
931
|
},
|
|
932
932
|
{
|
|
933
933
|
message: "Updating member stats",
|
|
934
|
-
successMessage: `Updated member ${
|
|
934
|
+
successMessage: `Updated member ${m.member.phoneNumber} stats successfully`
|
|
935
935
|
}
|
|
936
936
|
);
|
|
937
937
|
}
|
|
938
938
|
}
|
|
939
939
|
});
|
|
940
940
|
}
|
|
941
|
-
const
|
|
941
|
+
const f = [
|
|
942
942
|
{
|
|
943
943
|
label: "Mobile No.",
|
|
944
944
|
key: "phoneNumber"
|
|
@@ -946,9 +946,9 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
946
946
|
{
|
|
947
947
|
label: "Tier",
|
|
948
948
|
getter: (a) => {
|
|
949
|
-
var se,
|
|
950
|
-
const e = (((
|
|
951
|
-
return `${b} (${
|
|
949
|
+
var se, de, ye, h, Y;
|
|
950
|
+
const e = (((de = Ye.first((se = m.member.collection) == null ? void 0 : se.TIER)) == null ? void 0 : de.balance) || 0) - 1, b = M.value.name, D = ((h = (ye = a.collection) == null ? void 0 : ye.POINT) == null ? void 0 : h[0].balance) ?? 0, B = o.sortedTiers[e + 1], X = ((Y = B == null ? void 0 : B.option) == null ? void 0 : Y.from) ?? 1 / 0;
|
|
951
|
+
return `${b} (${D}/${X})`;
|
|
952
952
|
}
|
|
953
953
|
},
|
|
954
954
|
{
|
|
@@ -957,12 +957,12 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
957
957
|
},
|
|
958
958
|
{
|
|
959
959
|
label: "Birthday",
|
|
960
|
-
getter: (a) => a.birthday ?
|
|
960
|
+
getter: (a) => a.birthday ? C(a.birthday).format("D MMM YYYY") : "-"
|
|
961
961
|
}
|
|
962
962
|
], c = [
|
|
963
963
|
{
|
|
964
964
|
label: "Customer since",
|
|
965
|
-
getter: (a) =>
|
|
965
|
+
getter: (a) => C(he(a._id.toString())).format("D MMM YYYY")
|
|
966
966
|
},
|
|
967
967
|
{
|
|
968
968
|
label: "Joined at location",
|
|
@@ -973,22 +973,22 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
973
973
|
},
|
|
974
974
|
{
|
|
975
975
|
label: "Total visit(s)",
|
|
976
|
-
getter: (a) =>
|
|
976
|
+
getter: (a) => Ue.singularOrPlural(a.stats.visitCount, "bill")
|
|
977
977
|
},
|
|
978
978
|
{
|
|
979
979
|
label: "Last visit",
|
|
980
|
-
getter: (a) =>
|
|
980
|
+
getter: (a) => C(a.stats.lastVisit).fromNow()
|
|
981
981
|
},
|
|
982
982
|
{
|
|
983
983
|
label: "Frequency",
|
|
984
|
-
getter: (a) => `Every ${
|
|
984
|
+
getter: (a) => `Every ${Ue.singularOrPlural(
|
|
985
985
|
Number(Math.ceil(a.stats.avgVisitFrequency).toFixed(0)),
|
|
986
986
|
"day"
|
|
987
987
|
)}`
|
|
988
988
|
},
|
|
989
989
|
{
|
|
990
990
|
label: "Average spend",
|
|
991
|
-
getter: (a) =>
|
|
991
|
+
getter: (a) => mt.Dinero.fromNumber({ number: Number(a.stats.avgBillSize || 0) }).toFormat(
|
|
992
992
|
!0
|
|
993
993
|
)
|
|
994
994
|
}
|
|
@@ -1005,28 +1005,28 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1005
1005
|
// key: 'lastSeasonPointEarned',
|
|
1006
1006
|
// },
|
|
1007
1007
|
], M = H(() => {
|
|
1008
|
-
var b,
|
|
1009
|
-
const a = (((
|
|
1008
|
+
var b, D;
|
|
1009
|
+
const a = (((D = Ye.first((b = m.member.collection) == null ? void 0 : b.TIER)) == null ? void 0 : D.balance) || 0) - 1, e = o.sortedTiers[a];
|
|
1010
1010
|
return { name: (e == null ? void 0 : e.name) || "-", tier: a, config: e };
|
|
1011
1011
|
}), r = H(() => {
|
|
1012
1012
|
var a;
|
|
1013
|
-
return (((a =
|
|
1014
|
-
var
|
|
1015
|
-
const b = (
|
|
1013
|
+
return (((a = m.member.collection) == null ? void 0 : a.TITLE) || []).map((e) => {
|
|
1014
|
+
var D, B, X;
|
|
1015
|
+
const b = (D = o.sortedTitles) == null ? void 0 : D.find(
|
|
1016
1016
|
(se) => se._id == e.collectible
|
|
1017
1017
|
);
|
|
1018
1018
|
return {
|
|
1019
1019
|
name: b == null ? void 0 : b.name,
|
|
1020
|
-
expiredAt: (X = (
|
|
1020
|
+
expiredAt: (X = (B = e.expiryBalance) == null ? void 0 : B.at(-1)) == null ? void 0 : X.expiredAt,
|
|
1021
1021
|
collectible: b
|
|
1022
1022
|
};
|
|
1023
1023
|
}).filter(
|
|
1024
|
-
(e) => e.expiredAt ?
|
|
1024
|
+
(e) => e.expiredAt ? C(e.expiredAt).isAfter(C()) : !0
|
|
1025
1025
|
);
|
|
1026
|
-
}), i = G({ stamp: 0, progressive: 0 }),
|
|
1026
|
+
}), i = G({ stamp: 0, progressive: 0 }), S = G({ active: 0, past: 0 }), T = G([]), O = H(
|
|
1027
1027
|
() => T.value.reduce((a, e) => a + e.count, 0)
|
|
1028
1028
|
), E = G(!0);
|
|
1029
|
-
function
|
|
1029
|
+
function R() {
|
|
1030
1030
|
E.value = !0, F.value = z[0];
|
|
1031
1031
|
}
|
|
1032
1032
|
function te() {
|
|
@@ -1054,27 +1054,27 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1054
1054
|
value: "game"
|
|
1055
1055
|
}
|
|
1056
1056
|
], F = G(z[0]), J = async () => {
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
), T.value = await
|
|
1061
|
-
|
|
1062
|
-
), i.value = await
|
|
1063
|
-
|
|
1057
|
+
S.value = await Te.readCollectionCountByMemberId(
|
|
1058
|
+
m.member._id.toString(),
|
|
1059
|
+
Ae.enum.VOUCHER
|
|
1060
|
+
), T.value = await wt.readPurchaseCountByMember(
|
|
1061
|
+
m.member._id.toString()
|
|
1062
|
+
), i.value = await Te.readMissionCountByMemberId(
|
|
1063
|
+
m.member._id.toString()
|
|
1064
1064
|
);
|
|
1065
1065
|
};
|
|
1066
|
-
return
|
|
1066
|
+
return je(async () => {
|
|
1067
1067
|
await o.readMembership(), await J(), s.locations.length || await s.readLocations();
|
|
1068
|
-
}),
|
|
1068
|
+
}), ze(E, async () => {
|
|
1069
1069
|
await J();
|
|
1070
1070
|
}), k({
|
|
1071
|
-
showSheet:
|
|
1071
|
+
showSheet: R,
|
|
1072
1072
|
hideSheet: te
|
|
1073
1073
|
}), (a, e) => {
|
|
1074
|
-
const b = V("FmTabs"),
|
|
1075
|
-
return
|
|
1074
|
+
const b = V("FmTabs"), D = V("FmAvatar"), B = V("FmButton"), X = V("FmIcon"), se = V("FmChip"), de = V("FmCard"), ye = V("FmSideSheet");
|
|
1075
|
+
return u(), U(ye, {
|
|
1076
1076
|
modelValue: t(E),
|
|
1077
|
-
"onUpdate:modelValue": e[5] || (e[5] = (h) =>
|
|
1077
|
+
"onUpdate:modelValue": e[5] || (e[5] = (h) => rt(E) ? E.value = h : null),
|
|
1078
1078
|
header: "Member Detail",
|
|
1079
1079
|
"dismiss-away": "",
|
|
1080
1080
|
"close-button": !0,
|
|
@@ -1082,7 +1082,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1082
1082
|
}, {
|
|
1083
1083
|
"side-sheet-footer": xe(() => [...e[19] || (e[19] = [])]),
|
|
1084
1084
|
default: xe(() => [
|
|
1085
|
-
n("div",
|
|
1085
|
+
n("div", Wt, [
|
|
1086
1086
|
n("div", null, [
|
|
1087
1087
|
_(b, {
|
|
1088
1088
|
"model-value": t(F).value,
|
|
@@ -1091,61 +1091,61 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1091
1091
|
"onUpdate:modelValue": e[0] || (e[0] = (h) => F.value = z.find((Y) => Y.value === h))
|
|
1092
1092
|
}, null, 8, ["model-value"])
|
|
1093
1093
|
]),
|
|
1094
|
-
t(F).value == "overview" ? (
|
|
1095
|
-
n("div",
|
|
1094
|
+
t(F).value == "overview" ? (u(), A(q, { key: 0 }, [
|
|
1095
|
+
n("div", Jt, [
|
|
1096
1096
|
n("div", null, [
|
|
1097
1097
|
e[9] || (e[9] = n("div", { class: "fm-typo-en-title-sm-800 mb-16" }, "Profile Information", -1)),
|
|
1098
|
-
n("div",
|
|
1099
|
-
n("div",
|
|
1100
|
-
_(
|
|
1098
|
+
n("div", Xt, [
|
|
1099
|
+
n("div", Qt, [
|
|
1100
|
+
_(D, {
|
|
1101
1101
|
name: y.member.photoUrl ? void 0 : y.member.name,
|
|
1102
1102
|
src: y.member.photoUrl || void 0
|
|
1103
1103
|
}, null, 8, ["name", "src"]),
|
|
1104
|
-
n("div",
|
|
1104
|
+
n("div", Zt, [
|
|
1105
1105
|
e[8] || (e[8] = n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Member Name ", -1)),
|
|
1106
|
-
n("div",
|
|
1107
|
-
n("div",
|
|
1108
|
-
n("div",
|
|
1109
|
-
e[6] || (e[6] =
|
|
1110
|
-
n("span",
|
|
1106
|
+
n("div", eo, $(y.member.name), 1),
|
|
1107
|
+
n("div", to, $(y.member._id), 1),
|
|
1108
|
+
n("div", oo, [
|
|
1109
|
+
e[6] || (e[6] = Me(" Member Card: ", -1)),
|
|
1110
|
+
n("span", no, $(y.member.cardNo ? y.member.cardNo : "-"), 1)
|
|
1111
1111
|
]),
|
|
1112
|
-
n("div",
|
|
1113
|
-
e[7] || (e[7] =
|
|
1114
|
-
n("span",
|
|
1112
|
+
n("div", ao, [
|
|
1113
|
+
e[7] || (e[7] = Me(" Referral Code: ", -1)),
|
|
1114
|
+
n("span", ro, $(y.member.referralCode ? y.member.referralCode : "-"), 1)
|
|
1115
1115
|
])
|
|
1116
1116
|
]),
|
|
1117
|
-
_(
|
|
1117
|
+
_(B, {
|
|
1118
1118
|
variant: "tertiary",
|
|
1119
1119
|
icon: "settings",
|
|
1120
1120
|
onClick: re
|
|
1121
1121
|
})
|
|
1122
1122
|
]),
|
|
1123
|
-
(
|
|
1124
|
-
n("div",
|
|
1125
|
-
n("div",
|
|
1123
|
+
(u(), A(q, null, ie(f, (h, Y) => n("div", { key: Y }, [
|
|
1124
|
+
n("div", so, $(h.label), 1),
|
|
1125
|
+
n("div", io, $(h.key ? y.member[h.key] : h.getter(y.member)), 1)
|
|
1126
1126
|
])), 64))
|
|
1127
1127
|
])
|
|
1128
1128
|
]),
|
|
1129
1129
|
n("div", null, [
|
|
1130
1130
|
e[10] || (e[10] = n("div", { class: "fm-typo-en-title-sm-800 mb-16" }, "Activities", -1)),
|
|
1131
|
-
n("div",
|
|
1132
|
-
(
|
|
1131
|
+
n("div", lo, [
|
|
1132
|
+
(u(), A(q, null, ie(c, (h) => n("div", {
|
|
1133
1133
|
key: h.key
|
|
1134
1134
|
}, [
|
|
1135
|
-
n("div",
|
|
1136
|
-
n("div",
|
|
1135
|
+
n("div", co, $(h.label), 1),
|
|
1136
|
+
n("div", mo, $(h.key ? m.member.stats[h.key] || "-" : h.getter(y.member)), 1)
|
|
1137
1137
|
])), 64))
|
|
1138
1138
|
])
|
|
1139
1139
|
])
|
|
1140
1140
|
]),
|
|
1141
1141
|
e[13] || (e[13] = n("div", { class: "border-fm-color-neutral-gray-100 rounded-sm border-t" }, null, -1)),
|
|
1142
|
-
(
|
|
1143
|
-
(
|
|
1142
|
+
(u(!0), A(q, null, ie(t(ce), (h) => (u(), A("div", uo, [
|
|
1143
|
+
(u(!0), A(q, null, ie(h, (Y, oe) => (u(), A("div", { key: oe }, [
|
|
1144
1144
|
n("div", {
|
|
1145
|
-
class:
|
|
1145
|
+
class: st(oe !== 0 ? "pt-12 md:pt-0 lg:pt-0 md:pl-12 lg:pl-12" : "")
|
|
1146
1146
|
}, [
|
|
1147
|
-
n("div",
|
|
1148
|
-
n("div",
|
|
1147
|
+
n("div", po, [
|
|
1148
|
+
n("div", fo, $(Y.label), 1),
|
|
1149
1149
|
n("button", {
|
|
1150
1150
|
onClick: (j) => ae(j, Y.label)
|
|
1151
1151
|
}, [
|
|
@@ -1154,71 +1154,71 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1154
1154
|
outline: "",
|
|
1155
1155
|
size: "md"
|
|
1156
1156
|
})
|
|
1157
|
-
], 8,
|
|
1157
|
+
], 8, bo)
|
|
1158
1158
|
]),
|
|
1159
|
-
n("div",
|
|
1160
|
-
(
|
|
1159
|
+
n("div", yo, [
|
|
1160
|
+
(u(!0), A(q, null, ie(Y.stats, (j) => (u(), A("div", {
|
|
1161
1161
|
key: j.key
|
|
1162
1162
|
}, [
|
|
1163
|
-
n("div",
|
|
1164
|
-
n("div",
|
|
1163
|
+
n("div", go, $(j.label), 1),
|
|
1164
|
+
n("div", vo, $(j.getter(y.member)), 1)
|
|
1165
1165
|
]))), 128))
|
|
1166
1166
|
])
|
|
1167
1167
|
], 2)
|
|
1168
1168
|
]))), 128))
|
|
1169
1169
|
]))), 256)),
|
|
1170
|
-
n("div",
|
|
1170
|
+
n("div", xo, [
|
|
1171
1171
|
e[11] || (e[11] = n("div", { class: "fm-typo-en-title-sm-800" }, "Segments", -1)),
|
|
1172
|
-
t(
|
|
1173
|
-
(
|
|
1172
|
+
t(N).length ? (u(), A("div", ho, [
|
|
1173
|
+
(u(!0), A(q, null, ie(t(N), (h) => (u(), U(se, {
|
|
1174
1174
|
label: h.toString()
|
|
1175
1175
|
}, null, 8, ["label"]))), 256))
|
|
1176
|
-
])) : (
|
|
1176
|
+
])) : (u(), A("div", _o, "No titles"))
|
|
1177
1177
|
]),
|
|
1178
1178
|
e[14] || (e[14] = n("div", { class: "border-fm-color-neutral-gray-100 rounded-sm border-t" }, null, -1)),
|
|
1179
|
-
n("div",
|
|
1179
|
+
n("div", So, [
|
|
1180
1180
|
e[12] || (e[12] = n("div", { class: "fm-typo-en-title-sm-800" }, "Title badge", -1)),
|
|
1181
|
-
t(r).length ? (
|
|
1181
|
+
t(r).length ? (u(!0), A(q, { key: 0 }, ie(t(r).filter((h) => h.collectible), (h) => (u(), A("div", {
|
|
1182
1182
|
class: "flex items-center gap-x-8 h-48",
|
|
1183
1183
|
key: h.name
|
|
1184
1184
|
}, [
|
|
1185
1185
|
n("img", {
|
|
1186
|
-
src: h.collectible.image || t(
|
|
1186
|
+
src: h.collectible.image || t(ut),
|
|
1187
1187
|
class: "aspect-square h-full object-contain"
|
|
1188
|
-
}, null, 8,
|
|
1188
|
+
}, null, 8, Co),
|
|
1189
1189
|
n("div", null, [
|
|
1190
|
-
n("div",
|
|
1191
|
-
n("div",
|
|
1190
|
+
n("div", wo, $(h.name), 1),
|
|
1191
|
+
n("div", Fo, " Expired on " + $(t(C)(h.expiredAt).format("MMM D, Y")), 1)
|
|
1192
1192
|
])
|
|
1193
|
-
]))), 128)) : (
|
|
1193
|
+
]))), 128)) : (u(), A("div", Mo, "No titles"))
|
|
1194
1194
|
])
|
|
1195
|
-
], 64)) : t(F).value == "loyalty" ? (
|
|
1196
|
-
_(
|
|
1195
|
+
], 64)) : t(F).value == "loyalty" ? (u(), A("div", To, [
|
|
1196
|
+
_(de, {
|
|
1197
1197
|
class: "p-16 space-y-24",
|
|
1198
1198
|
variant: "outlined"
|
|
1199
1199
|
}, {
|
|
1200
1200
|
default: xe(() => {
|
|
1201
|
-
var h, Y, oe, j, ue, pe
|
|
1201
|
+
var h, Y, oe, j, me, ue, pe;
|
|
1202
1202
|
return [
|
|
1203
|
-
n("div",
|
|
1203
|
+
n("div", ko, [
|
|
1204
1204
|
e[15] || (e[15] = n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Credit ", -1)),
|
|
1205
|
-
n("div",
|
|
1205
|
+
n("div", Ao, $(((oe = (Y = (h = y.member.collection) == null ? void 0 : h.CREDIT) == null ? void 0 : Y[0]) == null ? void 0 : oe.balance) ?? 0), 1)
|
|
1206
1206
|
]),
|
|
1207
|
-
n("div",
|
|
1207
|
+
n("div", Eo, [
|
|
1208
1208
|
e[16] || (e[16] = n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Credit(s) to be expired in 30 days ", -1)),
|
|
1209
|
-
n("div",
|
|
1210
|
-
(Q, Z) => Z.expiredAt && t(
|
|
1209
|
+
n("div", Vo, $(((pe = (ue = (me = (j = y.member.collection) == null ? void 0 : j.CREDIT) == null ? void 0 : me[0]) == null ? void 0 : ue.expiryBalance) == null ? void 0 : pe.reduce(
|
|
1210
|
+
(Q, Z) => Z.expiredAt && t(C)(Z.expiredAt).isAfter(t(C)()) && t(C)(Z.expiredAt).isBefore(t(C)().add(30, "days")) ? Q + Z.amount : Q,
|
|
1211
1211
|
0
|
|
1212
1212
|
)) ?? 0), 1)
|
|
1213
1213
|
]),
|
|
1214
|
-
n("div",
|
|
1215
|
-
_(
|
|
1214
|
+
n("div", Io, [
|
|
1215
|
+
_(B, {
|
|
1216
1216
|
label: "Add credit",
|
|
1217
1217
|
icon: "add",
|
|
1218
1218
|
variant: "plain",
|
|
1219
1219
|
onClick: e[1] || (e[1] = (Q) => W("credit", "send"))
|
|
1220
1220
|
}),
|
|
1221
|
-
_(
|
|
1221
|
+
_(B, {
|
|
1222
1222
|
label: "Deduct credit",
|
|
1223
1223
|
icon: "remove",
|
|
1224
1224
|
variant: "plain",
|
|
@@ -1229,32 +1229,32 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1229
1229
|
}),
|
|
1230
1230
|
_: 1
|
|
1231
1231
|
}),
|
|
1232
|
-
_(
|
|
1232
|
+
_(de, {
|
|
1233
1233
|
class: "p-16 space-y-24",
|
|
1234
1234
|
variant: "outlined"
|
|
1235
1235
|
}, {
|
|
1236
1236
|
default: xe(() => {
|
|
1237
|
-
var h, Y, oe, j, ue, pe
|
|
1237
|
+
var h, Y, oe, j, me, ue, pe;
|
|
1238
1238
|
return [
|
|
1239
|
-
n("div",
|
|
1239
|
+
n("div", $o, [
|
|
1240
1240
|
e[17] || (e[17] = n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Point ", -1)),
|
|
1241
1241
|
n("div", Do, $(((oe = (Y = (h = y.member.collection) == null ? void 0 : h.COIN) == null ? void 0 : Y[0]) == null ? void 0 : oe.balance) ?? 0), 1)
|
|
1242
1242
|
]),
|
|
1243
1243
|
n("div", No, [
|
|
1244
1244
|
e[18] || (e[18] = n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Point(s) to be expired in 30 days ", -1)),
|
|
1245
|
-
n("div",
|
|
1246
|
-
(Q, Z) => Z.expiredAt && t(
|
|
1245
|
+
n("div", Bo, $(((pe = (ue = (me = (j = y.member.collection) == null ? void 0 : j.COIN) == null ? void 0 : me[0]) == null ? void 0 : ue.expiryBalance) == null ? void 0 : pe.reduce(
|
|
1246
|
+
(Q, Z) => Z.expiredAt && t(C)(Z.expiredAt).isAfter(t(C)()) && t(C)(Z.expiredAt).isBefore(t(C)().add(30, "days")) ? Q + Z.amount : Q,
|
|
1247
1247
|
0
|
|
1248
1248
|
)) ?? 0), 1)
|
|
1249
1249
|
]),
|
|
1250
|
-
n("div",
|
|
1251
|
-
_(
|
|
1250
|
+
n("div", Yo, [
|
|
1251
|
+
_(B, {
|
|
1252
1252
|
label: "Add point",
|
|
1253
1253
|
icon: "add",
|
|
1254
1254
|
variant: "plain",
|
|
1255
1255
|
onClick: e[3] || (e[3] = (Q) => W("coin", "send"))
|
|
1256
1256
|
}),
|
|
1257
|
-
_(
|
|
1257
|
+
_(B, {
|
|
1258
1258
|
label: "Deduct point",
|
|
1259
1259
|
icon: "remove",
|
|
1260
1260
|
variant: "plain",
|
|
@@ -1265,32 +1265,32 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1265
1265
|
}),
|
|
1266
1266
|
_: 1
|
|
1267
1267
|
})
|
|
1268
|
-
])) : t(F).value == "voucher" ? (
|
|
1268
|
+
])) : t(F).value == "voucher" ? (u(), U(Kt, {
|
|
1269
1269
|
key: 2,
|
|
1270
|
-
member:
|
|
1271
|
-
}, null, 8, ["member"])) : t(F).value == "mission" ? (
|
|
1270
|
+
member: m.member
|
|
1271
|
+
}, null, 8, ["member"])) : t(F).value == "mission" ? (u(), U(Gt, {
|
|
1272
1272
|
key: 3,
|
|
1273
|
-
member:
|
|
1274
|
-
}, null, 8, ["member"])) : t(F).value == "game" ? (
|
|
1273
|
+
member: m.member
|
|
1274
|
+
}, null, 8, ["member"])) : t(F).value == "game" ? (u(), U(Ht, {
|
|
1275
1275
|
key: 4,
|
|
1276
|
-
member:
|
|
1277
|
-
}, null, 8, ["member"])) :
|
|
1276
|
+
member: m.member
|
|
1277
|
+
}, null, 8, ["member"])) : le("", !0)
|
|
1278
1278
|
])
|
|
1279
1279
|
]),
|
|
1280
1280
|
_: 1
|
|
1281
1281
|
}, 8, ["modelValue"]);
|
|
1282
1282
|
};
|
|
1283
1283
|
}
|
|
1284
|
-
}),
|
|
1284
|
+
}), Oo = { class: "flex items-center justify-end" }, hn = /* @__PURE__ */ be({
|
|
1285
1285
|
__name: "MemberList",
|
|
1286
1286
|
setup(y) {
|
|
1287
|
-
const k =
|
|
1287
|
+
const k = Xe(), p = Ie(), x = Ke(), { minor: s } = qe, o = We(), g = [
|
|
1288
1288
|
{
|
|
1289
1289
|
header: "Name",
|
|
1290
1290
|
enableSorting: !0,
|
|
1291
1291
|
accessorKey: "name",
|
|
1292
1292
|
cell(r) {
|
|
1293
|
-
return
|
|
1293
|
+
return Mt(r.row.original);
|
|
1294
1294
|
}
|
|
1295
1295
|
},
|
|
1296
1296
|
{
|
|
@@ -1299,7 +1299,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1299
1299
|
accessorKey: "phoneNumber"
|
|
1300
1300
|
},
|
|
1301
1301
|
{
|
|
1302
|
-
accessorFn: (r) =>
|
|
1302
|
+
accessorFn: (r) => C(he(r._id.toString())).format("D MMM YYYY"),
|
|
1303
1303
|
header: "Customer Since",
|
|
1304
1304
|
accessorKey: "_id",
|
|
1305
1305
|
id: "_id"
|
|
@@ -1309,9 +1309,9 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1309
1309
|
header: "Tier",
|
|
1310
1310
|
enableSorting: !0,
|
|
1311
1311
|
cell(r) {
|
|
1312
|
-
return
|
|
1312
|
+
return Tt(
|
|
1313
1313
|
r.row.original,
|
|
1314
|
-
|
|
1314
|
+
p.sortedTiers
|
|
1315
1315
|
);
|
|
1316
1316
|
}
|
|
1317
1317
|
},
|
|
@@ -1319,17 +1319,17 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1319
1319
|
header: "Title",
|
|
1320
1320
|
enableSorting: !1,
|
|
1321
1321
|
cell(r) {
|
|
1322
|
-
return
|
|
1322
|
+
return kt(
|
|
1323
1323
|
r.row.original,
|
|
1324
|
-
|
|
1324
|
+
p.sortedTitles
|
|
1325
1325
|
);
|
|
1326
1326
|
}
|
|
1327
1327
|
},
|
|
1328
1328
|
{
|
|
1329
1329
|
accessorKey: "collection_CREDIT_0_balance",
|
|
1330
1330
|
accessorFn: (r) => {
|
|
1331
|
-
var i,
|
|
1332
|
-
return ee(((T = (
|
|
1331
|
+
var i, S, T;
|
|
1332
|
+
return ee(((T = (S = (i = r.collection) == null ? void 0 : i.CREDIT) == null ? void 0 : S[0]) == null ? void 0 : T.balance) ?? 0, 2);
|
|
1333
1333
|
},
|
|
1334
1334
|
header: "Credit(s)",
|
|
1335
1335
|
enableSorting: !0
|
|
@@ -1337,8 +1337,8 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1337
1337
|
{
|
|
1338
1338
|
accessorKey: "collection_POINT_0_balance",
|
|
1339
1339
|
accessorFn: (r) => {
|
|
1340
|
-
var i,
|
|
1341
|
-
return ee(((T = (
|
|
1340
|
+
var i, S, T;
|
|
1341
|
+
return ee(((T = (S = (i = r.collection) == null ? void 0 : i.POINT) == null ? void 0 : S[0]) == null ? void 0 : T.balance) ?? 0, 2);
|
|
1342
1342
|
},
|
|
1343
1343
|
header: "Experience(s)",
|
|
1344
1344
|
enableSorting: !0
|
|
@@ -1346,8 +1346,8 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1346
1346
|
{
|
|
1347
1347
|
accessorKey: "collection_COIN_0_balance",
|
|
1348
1348
|
accessorFn: (r) => {
|
|
1349
|
-
var i,
|
|
1350
|
-
return ee(((T = (
|
|
1349
|
+
var i, S, T;
|
|
1350
|
+
return ee(((T = (S = (i = r.collection) == null ? void 0 : i.COIN) == null ? void 0 : S[0]) == null ? void 0 : T.balance) ?? 0, 2);
|
|
1351
1351
|
},
|
|
1352
1352
|
header: "Point(s)",
|
|
1353
1353
|
enableSorting: !0
|
|
@@ -1367,22 +1367,22 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1367
1367
|
return (i = r.stats) == null ? void 0 : i.lastVisit;
|
|
1368
1368
|
},
|
|
1369
1369
|
sortingFn: (r, i) => {
|
|
1370
|
-
var
|
|
1371
|
-
return new Date((
|
|
1370
|
+
var S, T;
|
|
1371
|
+
return new Date((S = r.original.stats) == null ? void 0 : S.lastVisit).getTime() - new Date((T = i.original.stats) == null ? void 0 : T.lastVisit).getTime();
|
|
1372
1372
|
},
|
|
1373
1373
|
id: "stats.lastVisit",
|
|
1374
1374
|
header: "Last visit",
|
|
1375
1375
|
cell(r) {
|
|
1376
|
-
var i,
|
|
1376
|
+
var i, S;
|
|
1377
1377
|
return K("div", { class: "flex items-center justify-end gap-4" }, [
|
|
1378
1378
|
K(
|
|
1379
1379
|
"span",
|
|
1380
|
-
(i = r.row.original.stats) != null && i.lastVisit ?
|
|
1380
|
+
(i = r.row.original.stats) != null && i.lastVisit ? C((S = r.row.original.stats) == null ? void 0 : S.lastVisit).fromNow() : "NA"
|
|
1381
1381
|
),
|
|
1382
1382
|
K(
|
|
1383
1383
|
ve.FmTooltip,
|
|
1384
1384
|
{
|
|
1385
|
-
content:
|
|
1385
|
+
content: C(r.row.original.stats.lastVisit).format(
|
|
1386
1386
|
"D MMM YYYY - hh:mmA"
|
|
1387
1387
|
)
|
|
1388
1388
|
},
|
|
@@ -1416,12 +1416,12 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1416
1416
|
);
|
|
1417
1417
|
}
|
|
1418
1418
|
}
|
|
1419
|
-
], { tableMeta:
|
|
1419
|
+
], { tableMeta: d, rowData: w, onSort: m, debouncedFetchData: v, onSearch: I } = Ge(fe.read), N = G(), L = G(!1), P = G(), ce = H(() => x.locations.map((r) => ({
|
|
1420
1420
|
label: r.name,
|
|
1421
1421
|
value: r._id
|
|
1422
1422
|
})));
|
|
1423
1423
|
async function ae() {
|
|
1424
|
-
P.value = await
|
|
1424
|
+
P.value = await fe.readById(
|
|
1425
1425
|
P.value._id.toString()
|
|
1426
1426
|
), L.value = !0;
|
|
1427
1427
|
}
|
|
@@ -1430,99 +1430,94 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1430
1430
|
}
|
|
1431
1431
|
async function re(r) {
|
|
1432
1432
|
await o.push({
|
|
1433
|
-
name:
|
|
1433
|
+
name: Je["$connect-LOYALTY_MEMBER_TRANSACTIONS"],
|
|
1434
1434
|
params: { id: r }
|
|
1435
1435
|
});
|
|
1436
1436
|
}
|
|
1437
|
-
const
|
|
1437
|
+
const f = {
|
|
1438
1438
|
sortBy: "_id",
|
|
1439
1439
|
descending: !1,
|
|
1440
|
-
rowsPerPage: 1e3
|
|
1441
|
-
page: 1,
|
|
1442
|
-
rowsNumber: 0
|
|
1440
|
+
rowsPerPage: 1e3
|
|
1443
1441
|
};
|
|
1444
1442
|
function c(r) {
|
|
1445
|
-
const i =
|
|
1443
|
+
const i = C(r);
|
|
1446
1444
|
return i.isValid() ? i.format("DD/MM/YYYY") : "";
|
|
1447
1445
|
}
|
|
1448
1446
|
async function M() {
|
|
1449
|
-
const r = new
|
|
1450
|
-
limit: 1,
|
|
1451
|
-
skip: 0,
|
|
1452
|
-
sortBy: d.sortBy,
|
|
1453
|
-
descending: d.descending
|
|
1454
|
-
})).meta.totalResources ?? 0, C = d.rowsPerPage;
|
|
1447
|
+
const r = new lt(), i = f.rowsPerPage;
|
|
1455
1448
|
await s(
|
|
1456
1449
|
async () => {
|
|
1457
|
-
var
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
limit:
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
|
|
1450
|
+
var O, E, R, te, z, F, J, a, e, b, D, B, X, se, de, ye, h, Y, oe, j, me, ue, pe, Q, Z;
|
|
1451
|
+
let S, T = !0;
|
|
1452
|
+
for (; T; ) {
|
|
1453
|
+
const we = await fe.readCursor({
|
|
1454
|
+
limit: i,
|
|
1455
|
+
sortBy: f.sortBy,
|
|
1456
|
+
descending: f.descending,
|
|
1457
|
+
...S ? { cursor: S } : {}
|
|
1458
|
+
});
|
|
1459
|
+
if (!we.resources.length)
|
|
1460
|
+
break;
|
|
1461
|
+
for (const l of we.resources) {
|
|
1462
|
+
const Qe = (O = it.parseOneAddress(
|
|
1468
1463
|
l == null ? void 0 : l.email
|
|
1469
|
-
)) != null &&
|
|
1464
|
+
)) != null && O.domain.includes("feedmepos.com") ? void 0 : l.email, Ze = (R = ((E = l == null ? void 0 : l.collection) == null ? void 0 : E.TITLE) || []) == null ? void 0 : R.reduce(
|
|
1470
1465
|
(ne, ge) => {
|
|
1471
1466
|
var Se, Ce;
|
|
1472
|
-
const _e = (Ce = (Se =
|
|
1473
|
-
(
|
|
1467
|
+
const _e = (Ce = (Se = p.sortedTitles) == null ? void 0 : Se.find(
|
|
1468
|
+
(Fe) => Fe._id === ge.collectible
|
|
1474
1469
|
)) == null ? void 0 : Ce.name;
|
|
1475
1470
|
return !_e || ge.balance <= 0 || ne.push(_e), ne;
|
|
1476
1471
|
},
|
|
1477
1472
|
[]
|
|
1478
|
-
),
|
|
1473
|
+
), et = (p.sortedTitles || []).reduce(
|
|
1479
1474
|
(ne, ge) => {
|
|
1480
|
-
var Se, Ce,
|
|
1481
|
-
const _e = (
|
|
1482
|
-
(
|
|
1483
|
-
)) == null ? void 0 : Ce.expiryBalance) == null ? void 0 :
|
|
1484
|
-
return ne[ge.name] = _e ?
|
|
1475
|
+
var Se, Ce, Fe, Ne;
|
|
1476
|
+
const _e = (Ne = (Fe = (Ce = (((Se = l == null ? void 0 : l.collection) == null ? void 0 : Se.TITLE) || []).find(
|
|
1477
|
+
(nt) => nt.collectible === ge._id
|
|
1478
|
+
)) == null ? void 0 : Ce.expiryBalance) == null ? void 0 : Fe[0]) == null ? void 0 : Ne.expiredAt;
|
|
1479
|
+
return ne[ge.name] = _e ? C(_e).format("DD/MM/YYYY") : "", ne;
|
|
1485
1480
|
},
|
|
1486
1481
|
{}
|
|
1487
|
-
),
|
|
1482
|
+
), tt = ((F = (z = (te = l.collection) == null ? void 0 : te.CREDIT) == null ? void 0 : z.at(0)) == null ? void 0 : F.balance) || 0, $e = ((b = (e = (a = (J = l.collection) == null ? void 0 : J.CREDIT) == null ? void 0 : a.at(0)) == null ? void 0 : e.expiryBalance) == null ? void 0 : b.reduce(
|
|
1488
1483
|
(ne, ge) => ne + ge.amount,
|
|
1489
1484
|
0
|
|
1490
|
-
)) || 0,
|
|
1485
|
+
)) || 0, De = ee(tt, 2), ot = {
|
|
1491
1486
|
ID: l._id.toString(),
|
|
1492
|
-
Name: ((
|
|
1487
|
+
Name: ((D = l.name) == null ? void 0 : D.trim()) || "",
|
|
1493
1488
|
Phone: ((B = l == null ? void 0 : l.phoneNumber) == null ? void 0 : B.trim()) || "",
|
|
1494
|
-
Email:
|
|
1489
|
+
Email: Qe || "",
|
|
1495
1490
|
Gender: l.gender || "",
|
|
1496
1491
|
CardNo: l.cardNo || "",
|
|
1497
1492
|
Birthday: l != null && l.birthday ? c(l == null ? void 0 : l.birthday) : "",
|
|
1498
|
-
Credit: (Number(
|
|
1499
|
-
FreeCredit: Number(
|
|
1500
|
-
TotalCredit: Number(
|
|
1501
|
-
Exp: l != null && l.collection ? ((
|
|
1502
|
-
Point: l != null && l.collection ? ((
|
|
1503
|
-
Tier: l != null && l.collection ? ((
|
|
1504
|
-
Titles:
|
|
1505
|
-
...
|
|
1493
|
+
Credit: (Number(De) - Number($e)).toFixed(2),
|
|
1494
|
+
FreeCredit: Number($e.toFixed(2)),
|
|
1495
|
+
TotalCredit: Number(De),
|
|
1496
|
+
Exp: l != null && l.collection ? ((de = (se = (X = l.collection) == null ? void 0 : X.POINT) == null ? void 0 : se.at(0)) == null ? void 0 : de.balance) ?? 0 : 0,
|
|
1497
|
+
Point: l != null && l.collection ? ((Y = (h = (ye = l.collection) == null ? void 0 : ye.COIN) == null ? void 0 : h.at(0)) == null ? void 0 : Y.balance) ?? 0 : 0,
|
|
1498
|
+
Tier: l != null && l.collection ? ((me = (j = (oe = l.collection) == null ? void 0 : oe.TIER) == null ? void 0 : j.at(0)) == null ? void 0 : me.balance) ?? 0 : 0,
|
|
1499
|
+
Titles: Ze.join(","),
|
|
1500
|
+
...et,
|
|
1506
1501
|
TotalTransaction: l.stats.visitCount,
|
|
1507
|
-
AvgSpent:
|
|
1502
|
+
AvgSpent: Ft(Number(l.stats.avgBillSize || 0)).toFormat(
|
|
1508
1503
|
!1
|
|
1509
1504
|
),
|
|
1510
1505
|
TotalSpent: l.stats.avgBillSize * l.stats.visitCount,
|
|
1511
1506
|
LastVisit: c(l.stats.lastVisit),
|
|
1512
1507
|
Feedback: ((ue = l.stats) == null ? void 0 : ue.feedbackCount) || 0,
|
|
1513
1508
|
LastSeasonTierEarned: ((pe = l.stats) == null ? void 0 : pe.lastSeasonTierEarned) || 0,
|
|
1514
|
-
LastSeasonPointEarned: ((
|
|
1509
|
+
LastSeasonPointEarned: ((Q = l.stats) == null ? void 0 : Q.lastSeasonPointEarned) || 0,
|
|
1515
1510
|
JoinedAt: c(l.joinAt || he(l._id)),
|
|
1516
|
-
JoinedAtLocation: l.location && ((
|
|
1511
|
+
JoinedAtLocation: l.location && ((Z = ce.value.find((ne) => ne.value == l.location)) == null ? void 0 : Z.label) || "-",
|
|
1517
1512
|
VisitFrequency: `${Number(
|
|
1518
1513
|
Math.ceil(l.stats.avgVisitFrequency).toFixed(0)
|
|
1519
1514
|
)}`
|
|
1520
1515
|
};
|
|
1521
|
-
r.addRecord(
|
|
1516
|
+
r.addRecord(ot);
|
|
1522
1517
|
}
|
|
1523
|
-
|
|
1518
|
+
S = we.meta.nextCursor ?? void 0, T = we.meta.hasNext && !!S;
|
|
1524
1519
|
}
|
|
1525
|
-
await
|
|
1520
|
+
await ct(
|
|
1526
1521
|
r.buildExcel(),
|
|
1527
1522
|
`members-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
|
|
1528
1523
|
{
|
|
@@ -1530,7 +1525,7 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1530
1525
|
bookSST: !1,
|
|
1531
1526
|
type: "array"
|
|
1532
1527
|
}
|
|
1533
|
-
)
|
|
1528
|
+
);
|
|
1534
1529
|
},
|
|
1535
1530
|
{
|
|
1536
1531
|
message: "Exporting member...",
|
|
@@ -1538,17 +1533,17 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1538
1533
|
}
|
|
1539
1534
|
);
|
|
1540
1535
|
}
|
|
1541
|
-
return
|
|
1542
|
-
await
|
|
1536
|
+
return je(async () => {
|
|
1537
|
+
await p.readMembership(), await x.readLocations(), await k.read(), await x.readLocations(), await v();
|
|
1543
1538
|
}), (r, i) => {
|
|
1544
|
-
const
|
|
1545
|
-
return
|
|
1546
|
-
n("div",
|
|
1547
|
-
_(
|
|
1539
|
+
const S = V("FmSearch"), T = V("FmButton"), O = V("FmSnackbar");
|
|
1540
|
+
return u(), A("div", null, [
|
|
1541
|
+
n("div", Oo, [
|
|
1542
|
+
_(S, {
|
|
1548
1543
|
class: "mt-4",
|
|
1549
|
-
modelValue: t(
|
|
1544
|
+
modelValue: t(d).searchValue,
|
|
1550
1545
|
"onUpdate:modelValue": [
|
|
1551
|
-
i[0] || (i[0] = (E) => t(
|
|
1546
|
+
i[0] || (i[0] = (E) => t(d).searchValue = E),
|
|
1552
1547
|
t(I)
|
|
1553
1548
|
],
|
|
1554
1549
|
placeholder: "Search",
|
|
@@ -1571,35 +1566,35 @@ const Rt = { class: "border border-fm-color-neutral-gray-100 rounded-lg p-16" },
|
|
|
1571
1566
|
action: "Refresh",
|
|
1572
1567
|
onOnAction: W
|
|
1573
1568
|
}, null, 512), [
|
|
1574
|
-
[
|
|
1569
|
+
[Le, t(L)]
|
|
1575
1570
|
]),
|
|
1576
|
-
_(
|
|
1577
|
-
loading: t(
|
|
1571
|
+
_(He, {
|
|
1572
|
+
loading: t(d).isLoading,
|
|
1578
1573
|
"row-data": t(w),
|
|
1579
|
-
"row-count": t(
|
|
1574
|
+
"row-count": t(d).totalRows,
|
|
1580
1575
|
"column-defs": g,
|
|
1581
1576
|
"shrink-at": !1,
|
|
1582
|
-
"page-count": t(
|
|
1583
|
-
"page-index": t(
|
|
1584
|
-
"page-size": t(
|
|
1585
|
-
onSortChange: t(
|
|
1577
|
+
"page-count": t(d).pageCount,
|
|
1578
|
+
"page-index": t(d).pageIndex,
|
|
1579
|
+
"page-size": t(d).pageSize,
|
|
1580
|
+
onSortChange: t(m),
|
|
1586
1581
|
onPageChange: i[2] || (i[2] = (E) => t(v)({ pageSize: E.pageSize, pageIndex: E.pageIndex })),
|
|
1587
1582
|
onRowClick: i[3] || (i[3] = (E) => {
|
|
1588
|
-
var
|
|
1589
|
-
P.value = E.original, (
|
|
1583
|
+
var R;
|
|
1584
|
+
P.value = E.original, (R = t(N)) == null || R.showSheet();
|
|
1590
1585
|
})
|
|
1591
1586
|
}, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
|
|
1592
|
-
t(P) ? (
|
|
1587
|
+
t(P) ? (u(), U(Po, {
|
|
1593
1588
|
key: 0,
|
|
1594
1589
|
ref_key: "sheetRef",
|
|
1595
|
-
ref:
|
|
1590
|
+
ref: N,
|
|
1596
1591
|
member: t(P),
|
|
1597
1592
|
"onUpdate:member": ae
|
|
1598
|
-
}, null, 8, ["member"])) :
|
|
1593
|
+
}, null, 8, ["member"])) : le("", !0)
|
|
1599
1594
|
]);
|
|
1600
1595
|
};
|
|
1601
1596
|
}
|
|
1602
1597
|
});
|
|
1603
1598
|
export {
|
|
1604
|
-
|
|
1599
|
+
hn as default
|
|
1605
1600
|
};
|