@feedmepos/mf-connect 0.1.98-beta.29 → 0.1.98-beta.30
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/{App-C6SKcn3e.js → App-DUpK_Q7f.js} +8 -8
- package/dist/{AuditLogs-DLanmOme.js → AuditLogs-DWYbj4lo.js} +9 -9
- package/dist/{Bin-BwPh6VEN.js → Bin-DieOnDz0.js} +8 -8
- package/dist/{Broadcast-Bb8A3hT8.js → Broadcast-UQ-vMYLl.js} +11 -11
- package/dist/{CampaignAnalytic-DJdsyWVq.js → CampaignAnalytic-CfvtyBoa.js} +426 -426
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CJBuv8_e.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CuJWOZ3o.js} +6 -6
- package/dist/{Card-T39UgpKq.js → Card-Te7LGbdC.js} +18 -18
- package/dist/{Collections-BgXdN67W.js → Collections-C-QeTQej.js} +8 -8
- package/dist/{Credit-CAXuk9IA.js → Credit-B459_0Nt.js} +12 -12
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-CtjUO-w-.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-Dp3i8kku.js} +31 -31
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-DbIFBcTv.js → EffectSheet.vue_vue_type_style_index_0_lang-XgrUL64F.js} +6 -6
- package/dist/{Experience-a7VoQ3sI.js → Experience-BUiwaqiZ.js} +12 -12
- package/dist/{FileSaver.min-DRM39Joc.js → FileSaver.min-BBLnxnqN.js} +1 -1
- package/dist/{Game-Jnl9GQUL.js → Game-iOJbGiNe.js} +13 -13
- package/dist/{Grab-BVElbSqe.js → Grab-bC6BeXxc.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-Bwe_y-ko.js → ImageInput.vue_vue_type_script_setup_true_lang-eiJJrTiu.js} +1 -1
- package/dist/{Index-CuJAHnS_.js → Index-Utb2MWAQ.js} +10 -10
- package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-rO5tkpq-.js → LocationPicker.vue_vue_type_script_setup_true_lang-B7iWGh2L.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-BJ1RH8SV.js → LottieAnimation.vue_vue_type_script_setup_true_lang-CppfUz1y.js} +1 -1
- package/dist/{LoyaltyDashboard-CoqplSHE.js → LoyaltyDashboard-BHSHnBpi.js} +7 -7
- package/dist/{MainLayout-BzSsNqGq.js → MainLayout-DMqkiGFT.js} +1 -1
- package/dist/{Marketing-DKYR_3sp.js → Marketing-DGfDqW7v.js} +4 -4
- package/dist/{MarketingMaterialEdit-B_G6n15A.js → MarketingMaterialEdit-p5QBPd83.js} +6 -6
- package/dist/{Member-CKlY8zlf.js → Member-C2KIOib-.js} +11 -11
- package/dist/{MemberList-BTUR8O72.js → MemberList-Esp9384f.js} +25 -25
- package/dist/{MemberTransactions-DzIE_P1B.js → MemberTransactions-CKYG04pY.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-DcMfsgZ1.js → MessageInput.vue_vue_type_script_setup_true_lang-CItc3B3N.js} +9 -9
- package/dist/{Mission-1ncWxSdf.js → Mission-BlckuFfz.js} +13 -13
- package/dist/{Overview-D5sIMjvk.js → Overview-B5PSmDQr.js} +18 -18
- package/dist/{Overview-DrxddDK9.js → Overview-suva6hd8.js} +3 -3
- package/dist/{Point-DC52lE-_.js → Point-CVexYech.js} +12 -12
- package/dist/{Promotion-CRZPLyp7.js → Promotion-VW7rqIn-.js} +13 -13
- package/dist/{Queue-CxdUed2v.js → Queue-Dh4C5OO9.js} +10 -10
- package/dist/{Record-DlTP_5Lz.js → Record-CYGrQ_Cb.js} +9 -9
- package/dist/{Review-BEa_KPNl.js → Review-mxbjxTB1.js} +2 -2
- package/dist/{ReviewFacebookCallback-Ei_2galU.js → ReviewFacebookCallback-C-pSgxeh.js} +5 -5
- package/dist/{ReviewGoogleCallback-BlnsJGH_.js → ReviewGoogleCallback-CnNbGQdM.js} +5 -5
- package/dist/{Reward-kGTnxDld.js → Reward-CQ8AgV1m.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-tLd1yQ-w.js → RewardGroup.vue_vue_type_script_setup_true_lang-DxaejEKe.js} +11 -11
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-CaCtUBR-.js → RuleGroup.vue_vue_type_script_setup_true_lang-CxHheatc.js} +14 -14
- package/dist/{Segment-BY6wtjrW.js → Segment-Crm395ad.js} +24 -24
- package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-DJHRvEFh.js → SelectItems.vue_vue_type_script_setup_true_lang-CnA8A--R.js} +2 -2
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-Q1UBGIUL.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-Dd-mYmBN.js} +12 -12
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BNIIdyGx.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-DgkPQA3H.js} +4 -4
- package/dist/{Setting-JLxmUT-3.js → Setting-AKRWf4zD.js} +14 -14
- package/dist/{SettingAdvertisements-fnPJSM_M.js → SettingAdvertisements-DD9U8S6N.js} +12 -12
- package/dist/{Settings-DBfHai7E.js → Settings-D7c8sBA8.js} +5 -5
- package/dist/{Store-BImPOOCu.js → Store-BN3RP_u-.js} +21 -21
- package/dist/{StoreRewards-CzQrnnKE.js → StoreRewards-BXc96ZMM.js} +15 -15
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-DE644ZhH.js → StoreTransactions.vue_vue_type_script_setup_true_lang-B76NSzNg.js} +20 -20
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-yO4a7kHx.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-DnhMV2aq.js} +2 -2
- package/dist/{Tier-DnfoT21r.js → Tier-Bbktc4H8.js} +24 -24
- package/dist/{Title-C01c9r9E.js → Title-BU8pzF9c.js} +21 -21
- package/dist/{Transaction-E2WtTU1S.js → Transaction-B3_M0MMz.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-B_b_EwJ4.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DtFoQXUu.js} +6 -6
- package/dist/{Voucher-DHbSKWBZ.js → Voucher-CJruHWmd.js} +14 -14
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-Vg5CUiP1.js → VoucherEditor.vue_vue_type_script_setup_true_lang-DzIQ_1Nb.js} +12 -12
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-CMaT0y_u.js → ZodTextField.vue_vue_type_script_setup_true_lang-Lq5Z_Glg.js} +2 -2
- package/dist/{app-CM5BqaSH.js → app-CmK_zWVU.js} +60 -60
- package/dist/app.js +1 -1
- package/dist/{business-BvnASP7F.js → business-Br3Sboxg.js} +1 -1
- package/dist/{campaign-C6v_uFcy.js → campaign-53KorSW_.js} +2 -2
- package/dist/{campaign-5Lx-yf4V.js → campaign-Dz57HOfP.js} +7 -7
- package/dist/{campaign.fn-zKWtYRyl.js → campaign.fn-D-J5-IK0.js} +38 -38
- package/dist/{collection.fn-Dt2pbVyc.js → collection.fn-cEP4Vjv6.js} +2 -2
- package/dist/{duplicateCampaign-CLhjopho.js → duplicateCampaign-bBnEmbXg.js} +2 -2
- package/dist/{effect-WmiqUsqx.js → effect-RQs_nrvo.js} +1 -1
- package/dist/{email-addresses-Bp4P9l1W.js → email-addresses-CAX-uL1B.js} +2 -2
- package/dist/{export-BUeNaYcV.js → export-DSgRDjwv.js} +3 -3
- package/dist/{helper-DT4JOYil.js → helper-DlEUDhaf.js} +1 -1
- package/dist/{index-B9vP8FgY.js → index-BA0GllA8.js} +1 -1
- package/dist/{index-Cif2BYaH.js → index-BHdJaRRQ.js} +1 -1
- package/dist/{index-50OcBlYJ.js → index-BpXYj8xl.js} +6 -6
- package/dist/{index-9_3ZVwqb.js → index-CBvgQWbo.js} +1 -1
- package/dist/{index-CQwWjtRW.js → index-CHmtKN0J.js} +3 -3
- package/dist/{index-CLpsbDWv.js → index-CJ0Ofs8g.js} +1 -1
- package/dist/{index-DqosJEqz.js → index-CQ40sF6g.js} +2 -2
- package/dist/{index-OmxC3X1w.js → index-CbBnibrX.js} +2 -2
- package/dist/{index-c6Rje4su.js → index-Cm4hBY6K.js} +1 -1
- package/dist/{index-CHXZRu1p.js → index-D3obFXMZ.js} +1 -1
- package/dist/{index-CdOtbg_y.js → index-DJQCoy-g.js} +1 -1
- package/dist/{index-DFdzcoYH.js → index-DansV6RZ.js} +2 -2
- package/dist/{index-VZ-Z0Zrl.js → index-Dpyep_-G.js} +2 -2
- package/dist/{index-CSpG45P_.js → index-ZFdRmzK7.js} +1 -1
- package/dist/{index-FuKsDUKZ.js → index-fVWfEBZV.js} +6 -6
- package/dist/{index.esm2017-DUMZURZY.js → index.esm2017-GDYw3ujs.js} +1 -1
- package/dist/{loading-CBV3B-Wr.js → loading-CevzAqpQ.js} +1 -1
- package/dist/{lodash-I1sCbRfp.js → lodash-CcmP-ZWD.js} +1 -1
- package/dist/{membership-BM9sayIX.js → membership-CP-ZGC-Y.js} +2 -2
- package/dist/{money-xHXXFSJq.js → money-B_CYilsX.js} +1 -1
- package/dist/{number-Bh-Ef6_V.js → number-CqWVPhp0.js} +1 -1
- package/dist/{objectid-BeEZ-H9e.js → objectid-DkTaCd6K.js} +13 -13
- package/dist/{plugins-CxKwYiFZ.js → plugins-Br271boW.js} +3 -3
- package/dist/{reward-d1AoIumo.js → reward-CKQRdG-H.js} +1 -1
- package/dist/{rule-CthdjBtY.js → rule-D0Rv4CuV.js} +3 -3
- package/dist/{rule-builder-4aJCfmNr.js → rule-builder-BUn6UMwW.js} +1 -1
- package/dist/{template-DG0K5ImH.js → template-D5GB4cAl.js} +6 -6
- package/dist/{timezone-CL5ViijC.js → timezone-DqRsL54X.js} +1 -1
- package/dist/{trigger-CNIRXSVD.js → trigger-Ci92pTJU.js} +5 -5
- package/dist/{useMarketingMaterialActions-BCiSyQIs.js → useMarketingMaterialActions-C_mu-ac8.js} +3 -3
- package/dist/{usePagination-Dg7LLsT6.js → usePagination-CWQ2WXiM.js} +1 -1
- package/dist/{user-tT7haw6s.js → user-CeAfYeZW.js} +1 -1
- package/dist/{vue-i18n-DJ7dtCU4.js → vue-i18n-P_SZNhrt.js} +355 -355
- package/dist/{xlsx-DLWH8mFg.js → xlsx-CTo0cmDn.js} +1 -1
- package/dist/{zod-BxXuySeD.js → zod-CPa57Pxb.js} +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { u as
|
|
3
|
-
import { useCoreStore as
|
|
4
|
-
import { c as V } from "./index-
|
|
5
|
-
import { u as
|
|
6
|
-
import { s as
|
|
7
|
-
import { C as ue } from "./timezone-
|
|
8
|
-
import { h as
|
|
9
|
-
import { _ as
|
|
10
|
-
import { useRoute as
|
|
11
|
-
const
|
|
1
|
+
import { defineComponent as j, resolveComponent as _, openBlock as r, createBlock as h, withCtx as P, createElementBlock as v, createCommentVNode as f, createElementVNode as a, toDisplayString as u, resolveDynamicComponent as fe, Fragment as E, normalizeStyle as me, renderList as ee, createVNode as I, normalizeClass as W, ref as H, computed as $, unref as n, onMounted as he } from "vue";
|
|
2
|
+
import { u as ge } from "./vue-i18n-P_SZNhrt.js";
|
|
3
|
+
import { useCoreStore as xe } from "@feedmepos/mf-common";
|
|
4
|
+
import { c as V } from "./index-BHdJaRRQ.js";
|
|
5
|
+
import { u as ke } from "./loading-CevzAqpQ.js";
|
|
6
|
+
import { s as we, b as Re } from "./campaign-Dz57HOfP.js";
|
|
7
|
+
import { C as ue } from "./timezone-DqRsL54X.js";
|
|
8
|
+
import { h as Me } from "./moment-D7p2TMB-.js";
|
|
9
|
+
import { _ as Z } from "./MetricInfoTooltip.vue_vue_type_script_setup_true_lang-Bg_0YlwG.js";
|
|
10
|
+
import { useRoute as _e, useRouter as Se } from "vue-router";
|
|
11
|
+
const Ie = {
|
|
12
12
|
state: "populated",
|
|
13
13
|
reportRangeLabel: "Unavailable",
|
|
14
14
|
funnel: [],
|
|
@@ -17,7 +17,7 @@ const Se = {
|
|
|
17
17
|
breakdown: null,
|
|
18
18
|
outcomes: [],
|
|
19
19
|
metrics: []
|
|
20
|
-
},
|
|
20
|
+
}, Ce = {
|
|
21
21
|
state: "populated",
|
|
22
22
|
reportRangeLabel: "Unavailable",
|
|
23
23
|
funnel: [],
|
|
@@ -37,7 +37,7 @@ const Se = {
|
|
|
37
37
|
},
|
|
38
38
|
outcomes: [],
|
|
39
39
|
metrics: []
|
|
40
|
-
},
|
|
40
|
+
}, Oe = {
|
|
41
41
|
state: "populated",
|
|
42
42
|
reportRangeLabel: "Unavailable",
|
|
43
43
|
funnel: [],
|
|
@@ -47,7 +47,7 @@ const Se = {
|
|
|
47
47
|
breakdowns: [],
|
|
48
48
|
outcomes: [],
|
|
49
49
|
metrics: []
|
|
50
|
-
},
|
|
50
|
+
}, Pe = {
|
|
51
51
|
state: "populated",
|
|
52
52
|
reportRangeLabel: "Unavailable",
|
|
53
53
|
funnel: [],
|
|
@@ -57,7 +57,7 @@ const Se = {
|
|
|
57
57
|
breakdowns: [],
|
|
58
58
|
outcomes: [],
|
|
59
59
|
metrics: []
|
|
60
|
-
},
|
|
60
|
+
}, De = {
|
|
61
61
|
state: "populated",
|
|
62
62
|
reportRangeLabel: "Unavailable",
|
|
63
63
|
funnel: [],
|
|
@@ -67,7 +67,7 @@ const Se = {
|
|
|
67
67
|
breakdowns: [],
|
|
68
68
|
outcomes: [],
|
|
69
69
|
metrics: []
|
|
70
|
-
},
|
|
70
|
+
}, $e = {
|
|
71
71
|
state: "populated",
|
|
72
72
|
reportRangeLabel: "Unavailable",
|
|
73
73
|
funnel: [],
|
|
@@ -77,7 +77,7 @@ const Se = {
|
|
|
77
77
|
breakdowns: [],
|
|
78
78
|
outcomes: [],
|
|
79
79
|
metrics: []
|
|
80
|
-
},
|
|
80
|
+
}, Ee = {
|
|
81
81
|
state: "populated",
|
|
82
82
|
reportRangeLabel: "Unavailable",
|
|
83
83
|
funnel: [],
|
|
@@ -87,55 +87,55 @@ const Se = {
|
|
|
87
87
|
breakdowns: [],
|
|
88
88
|
outcomes: [],
|
|
89
89
|
metrics: []
|
|
90
|
-
},
|
|
90
|
+
}, Le = {
|
|
91
91
|
VOUCHER: {
|
|
92
92
|
label: "Voucher",
|
|
93
93
|
icon: "confirmation_number",
|
|
94
94
|
objective: "Reactivation",
|
|
95
|
-
report:
|
|
95
|
+
report: Ie
|
|
96
96
|
},
|
|
97
97
|
PROMOTION: {
|
|
98
98
|
label: "Promotion",
|
|
99
99
|
icon: "percent",
|
|
100
100
|
objective: "Purchase conversion",
|
|
101
|
-
report:
|
|
101
|
+
report: Ce
|
|
102
102
|
},
|
|
103
103
|
MISSION: {
|
|
104
104
|
label: "Mission",
|
|
105
105
|
icon: "flag",
|
|
106
106
|
objective: "Member engagement",
|
|
107
|
-
report:
|
|
107
|
+
report: Oe
|
|
108
108
|
},
|
|
109
109
|
GAME: {
|
|
110
110
|
label: "Game",
|
|
111
111
|
icon: "sports_esports",
|
|
112
112
|
objective: "Member engagement",
|
|
113
|
-
report:
|
|
113
|
+
report: Pe
|
|
114
114
|
},
|
|
115
115
|
COIN: {
|
|
116
116
|
label: "Point",
|
|
117
117
|
icon: "stars",
|
|
118
118
|
objective: "Member engagement",
|
|
119
|
-
report:
|
|
119
|
+
report: De
|
|
120
120
|
},
|
|
121
121
|
POINT: {
|
|
122
122
|
label: "Experience",
|
|
123
123
|
icon: "trending_up",
|
|
124
124
|
objective: "Member engagement",
|
|
125
|
-
report:
|
|
125
|
+
report: $e
|
|
126
126
|
},
|
|
127
127
|
CREDIT: {
|
|
128
128
|
label: "Credit",
|
|
129
129
|
icon: "account_balance_wallet",
|
|
130
130
|
objective: "Member engagement",
|
|
131
|
-
report:
|
|
131
|
+
report: Ee
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
|
-
function
|
|
135
|
-
return
|
|
134
|
+
function Te(t) {
|
|
135
|
+
return Le[t];
|
|
136
136
|
}
|
|
137
|
-
function C(t,
|
|
138
|
-
return `${(t ?? 0).toLocaleString()} ${
|
|
137
|
+
function C(t, l) {
|
|
138
|
+
return `${(t ?? 0).toLocaleString()} ${l}`;
|
|
139
139
|
}
|
|
140
140
|
function m(t) {
|
|
141
141
|
return (t ?? 0).toLocaleString();
|
|
@@ -146,28 +146,28 @@ function w(t) {
|
|
|
146
146
|
maximumFractionDigits: 2
|
|
147
147
|
})}`;
|
|
148
148
|
}
|
|
149
|
-
function D(t,
|
|
150
|
-
const e =
|
|
149
|
+
function D(t, l) {
|
|
150
|
+
const e = l ?? 0;
|
|
151
151
|
return e ? Math.round((t ?? 0) / e * 1e3) / 10 : 0;
|
|
152
152
|
}
|
|
153
153
|
function N(t) {
|
|
154
|
-
const
|
|
155
|
-
return
|
|
154
|
+
const l = Me(t);
|
|
155
|
+
return l.isValid() ? l.format("D MMM YYYY") : t;
|
|
156
156
|
}
|
|
157
|
-
function
|
|
158
|
-
const { metrics: s, scope:
|
|
157
|
+
function Be(t, l, e) {
|
|
158
|
+
const { metrics: s, scope: i } = l, y = D(
|
|
159
159
|
s.redeemedMembers,
|
|
160
160
|
s.distributedMembers
|
|
161
|
-
),
|
|
161
|
+
), o = D(
|
|
162
162
|
s.redeemedVouchers,
|
|
163
163
|
s.distributedVouchers
|
|
164
|
-
),
|
|
164
|
+
), g = s.completedBills === 0 ? 0 : s.rewardValueUsed / s.completedBills, c = s.completedBills === 0 ? 0 : s.exactSales / s.completedBills, R = D(
|
|
165
165
|
s.expiredUnusedVouchers,
|
|
166
166
|
s.distributedVouchers
|
|
167
167
|
);
|
|
168
168
|
return {
|
|
169
169
|
...t,
|
|
170
|
-
reportRangeLabel:
|
|
170
|
+
reportRangeLabel: i.startDate && i.endDate ? `${N(i.startDate)} – ${N(i.endDate)}` : "Unavailable",
|
|
171
171
|
audienceLabel: void 0,
|
|
172
172
|
funnel: [
|
|
173
173
|
{
|
|
@@ -183,8 +183,8 @@ function Te(t, i, e) {
|
|
|
183
183
|
label: "Redeemed",
|
|
184
184
|
membersLabel: C(s.redeemedMembers, "members"),
|
|
185
185
|
unitsLabel: C(s.voucherUses, "voucher uses"),
|
|
186
|
-
ratePct:
|
|
187
|
-
rateLabel: `${
|
|
186
|
+
ratePct: y,
|
|
187
|
+
rateLabel: `${y}% of distributed members`,
|
|
188
188
|
helper: "Distinct identified members who used the voucher"
|
|
189
189
|
},
|
|
190
190
|
{
|
|
@@ -205,7 +205,7 @@ function Te(t, i, e) {
|
|
|
205
205
|
{
|
|
206
206
|
key: "redemptionRate",
|
|
207
207
|
label: "Redemption Rate",
|
|
208
|
-
value: `${
|
|
208
|
+
value: `${y}%`,
|
|
209
209
|
sub: "of distributed members"
|
|
210
210
|
},
|
|
211
211
|
{
|
|
@@ -227,7 +227,7 @@ function Te(t, i, e) {
|
|
|
227
227
|
sub: "issued, not yet redeemed"
|
|
228
228
|
}
|
|
229
229
|
],
|
|
230
|
-
trend:
|
|
230
|
+
trend: je(e),
|
|
231
231
|
breakdown: {
|
|
232
232
|
dimension: "Outlet",
|
|
233
233
|
columns: [
|
|
@@ -237,7 +237,7 @@ function Te(t, i, e) {
|
|
|
237
237
|
"Exact sales",
|
|
238
238
|
"Reward value used"
|
|
239
239
|
],
|
|
240
|
-
rows:
|
|
240
|
+
rows: l.performanceDetails.map((p) => ({
|
|
241
241
|
name: p.restaurantName,
|
|
242
242
|
cells: [
|
|
243
243
|
p.redeemedMembers.toLocaleString(),
|
|
@@ -267,32 +267,32 @@ function Te(t, i, e) {
|
|
|
267
267
|
{
|
|
268
268
|
key: "averageBillValue",
|
|
269
269
|
label: "Average Bill Value",
|
|
270
|
-
value: w(
|
|
270
|
+
value: w(c)
|
|
271
271
|
}
|
|
272
272
|
],
|
|
273
273
|
metrics: [
|
|
274
274
|
{
|
|
275
275
|
key: "memberRedemptionRate",
|
|
276
276
|
label: "Member Redemption Rate",
|
|
277
|
-
value: `${
|
|
277
|
+
value: `${y}%`,
|
|
278
278
|
helper: "Redeemed members ÷ distributed members"
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
key: "voucherUtilizationRate",
|
|
282
282
|
label: "Voucher Utilization Rate",
|
|
283
|
-
value: `${
|
|
283
|
+
value: `${o}%`,
|
|
284
284
|
helper: "Redeemed vouchers ÷ distributed vouchers"
|
|
285
285
|
},
|
|
286
286
|
{
|
|
287
287
|
key: "averageDiscountPerBill",
|
|
288
288
|
label: "Average Discount per Bill",
|
|
289
|
-
value: w(
|
|
289
|
+
value: w(g),
|
|
290
290
|
helper: "Reward value used ÷ completed bills"
|
|
291
291
|
},
|
|
292
292
|
{
|
|
293
293
|
key: "averageBillValue",
|
|
294
294
|
label: "Average Bill Value",
|
|
295
|
-
value: w(
|
|
295
|
+
value: w(c),
|
|
296
296
|
helper: "Exact sales ÷ completed bills"
|
|
297
297
|
},
|
|
298
298
|
{
|
|
@@ -304,17 +304,17 @@ function Te(t, i, e) {
|
|
|
304
304
|
]
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
-
function
|
|
308
|
-
const { metrics: e, scope: s } =
|
|
307
|
+
function Ne(t, l) {
|
|
308
|
+
const { metrics: e, scope: s } = l, i = D(
|
|
309
309
|
e.memberBills,
|
|
310
310
|
e.attributedBills
|
|
311
|
-
),
|
|
311
|
+
), y = D(
|
|
312
312
|
e.nonMemberBills,
|
|
313
313
|
e.attributedBills
|
|
314
|
-
),
|
|
314
|
+
), o = D(
|
|
315
315
|
e.memberSales,
|
|
316
316
|
e.exactSales
|
|
317
|
-
),
|
|
317
|
+
), g = e.attributedBills ? e.promotionValueUsed / e.attributedBills : 0, c = e.attributedBills ? e.exactSales / e.attributedBills : 0;
|
|
318
318
|
return {
|
|
319
319
|
...t,
|
|
320
320
|
reportRangeLabel: s.startDate && s.endDate ? `${N(s.startDate)} – ${N(s.endDate)}` : "Unavailable",
|
|
@@ -328,10 +328,10 @@ function Be(t, i) {
|
|
|
328
328
|
nonMemberBills: m(e.nonMemberBills),
|
|
329
329
|
memberSales: w(e.memberSales),
|
|
330
330
|
nonMemberSales: w(e.nonMemberSales),
|
|
331
|
-
memberBillSharePct:
|
|
332
|
-
nonMemberBillSharePct:
|
|
333
|
-
memberSalesSharePct:
|
|
334
|
-
summary: `Members account for ${
|
|
331
|
+
memberBillSharePct: i,
|
|
332
|
+
nonMemberBillSharePct: y,
|
|
333
|
+
memberSalesSharePct: o,
|
|
334
|
+
summary: `Members account for ${i}% of attributed bills and ${o}% of attributed sales.`
|
|
335
335
|
},
|
|
336
336
|
breakdown: {
|
|
337
337
|
dimension: "Outlet",
|
|
@@ -343,7 +343,7 @@ function Be(t, i) {
|
|
|
343
343
|
"Exact sales",
|
|
344
344
|
"Promotion value used"
|
|
345
345
|
],
|
|
346
|
-
rows:
|
|
346
|
+
rows: l.performanceDetails.map((R) => ({
|
|
347
347
|
name: R.restaurantName,
|
|
348
348
|
cells: [
|
|
349
349
|
m(R.appliedMembers),
|
|
@@ -374,45 +374,45 @@ function Be(t, i) {
|
|
|
374
374
|
{
|
|
375
375
|
key: "averageBillValue",
|
|
376
376
|
label: "Average Bill Value",
|
|
377
|
-
value: w(
|
|
377
|
+
value: w(c)
|
|
378
378
|
}
|
|
379
379
|
],
|
|
380
380
|
metrics: [
|
|
381
381
|
{
|
|
382
382
|
key: "memberApplicationShare",
|
|
383
383
|
label: "Member Application Share",
|
|
384
|
-
value: `${
|
|
384
|
+
value: `${i}%`,
|
|
385
385
|
helper: "Member bills ÷ attributed bills"
|
|
386
386
|
},
|
|
387
387
|
{
|
|
388
388
|
key: "nonMemberApplicationShare",
|
|
389
389
|
label: "Non-member Application Share",
|
|
390
|
-
value: `${
|
|
390
|
+
value: `${y}%`,
|
|
391
391
|
helper: "Non-member bills ÷ attributed bills"
|
|
392
392
|
},
|
|
393
393
|
{
|
|
394
394
|
key: "memberSalesShare",
|
|
395
395
|
label: "Member Sales Share",
|
|
396
|
-
value: `${
|
|
396
|
+
value: `${o}%`,
|
|
397
397
|
helper: "Member sales ÷ exact sales"
|
|
398
398
|
},
|
|
399
399
|
{
|
|
400
400
|
key: "averageDiscountPerBill",
|
|
401
401
|
label: "Average Discount per Bill",
|
|
402
|
-
value: w(
|
|
402
|
+
value: w(g),
|
|
403
403
|
helper: "Promotion value used ÷ attributed bills"
|
|
404
404
|
},
|
|
405
405
|
{
|
|
406
406
|
key: "averageBillValue",
|
|
407
407
|
label: "Average Bill Value",
|
|
408
|
-
value: w(
|
|
408
|
+
value: w(c),
|
|
409
409
|
helper: "Exact sales ÷ attributed bills"
|
|
410
410
|
}
|
|
411
411
|
]
|
|
412
412
|
};
|
|
413
413
|
}
|
|
414
|
-
function
|
|
415
|
-
const { metrics: e, scope: s } =
|
|
414
|
+
function Ve(t, l) {
|
|
415
|
+
const { metrics: e, scope: s } = l, i = e.participants ? e.stampsEarned / e.participants : 0, y = Math.max(
|
|
416
416
|
e.completionEvents - e.completedMembers,
|
|
417
417
|
0
|
|
418
418
|
);
|
|
@@ -469,13 +469,13 @@ function Ne(t, i) {
|
|
|
469
469
|
"Issue transactions",
|
|
470
470
|
"Quantity issued"
|
|
471
471
|
],
|
|
472
|
-
rows:
|
|
473
|
-
name:
|
|
472
|
+
rows: l.rewards.map((o) => ({
|
|
473
|
+
name: o.rewardName,
|
|
474
474
|
cells: [
|
|
475
|
-
|
|
476
|
-
m(
|
|
477
|
-
m(
|
|
478
|
-
m(
|
|
475
|
+
o.rewardType,
|
|
476
|
+
m(o.recipients),
|
|
477
|
+
m(o.issuanceTransactions),
|
|
478
|
+
m(o.quantityIssued)
|
|
479
479
|
]
|
|
480
480
|
}))
|
|
481
481
|
}
|
|
@@ -486,12 +486,12 @@ function Ne(t, i) {
|
|
|
486
486
|
breakdown: {
|
|
487
487
|
dimension: "Outlet",
|
|
488
488
|
columns: ["Participants", "Stamps earned", "Completion events"],
|
|
489
|
-
rows:
|
|
490
|
-
name:
|
|
489
|
+
rows: l.performanceDetails.map((o) => ({
|
|
490
|
+
name: o.restaurantName || "Unattributed / online",
|
|
491
491
|
cells: [
|
|
492
|
-
m(
|
|
493
|
-
m(
|
|
494
|
-
m(
|
|
492
|
+
m(o.participants),
|
|
493
|
+
m(o.stampsEarned),
|
|
494
|
+
m(o.completionEvents)
|
|
495
495
|
]
|
|
496
496
|
}))
|
|
497
497
|
}
|
|
@@ -525,7 +525,7 @@ function Ne(t, i) {
|
|
|
525
525
|
{
|
|
526
526
|
key: "averageStampsPerParticipant",
|
|
527
527
|
label: "Average Stamps per Participant",
|
|
528
|
-
value:
|
|
528
|
+
value: i.toLocaleString("en-MY", {
|
|
529
529
|
maximumFractionDigits: 2
|
|
530
530
|
}),
|
|
531
531
|
helper: "Stamps earned ÷ participants"
|
|
@@ -533,17 +533,17 @@ function Ne(t, i) {
|
|
|
533
533
|
{
|
|
534
534
|
key: "repeatCompletionEvents",
|
|
535
535
|
label: "Repeat Completion Events",
|
|
536
|
-
value: m(
|
|
536
|
+
value: m(y),
|
|
537
537
|
helper: "Completion events beyond the first completion per member"
|
|
538
538
|
}
|
|
539
539
|
]
|
|
540
540
|
};
|
|
541
541
|
}
|
|
542
|
-
function
|
|
543
|
-
const { metrics: e, scope: s } =
|
|
542
|
+
function Ue(t, l) {
|
|
543
|
+
const { metrics: e, scope: s } = l, i = D(e.players, e.tokenRecipients), y = D(e.plays, e.tokensIssued), o = D(
|
|
544
544
|
e.rewardRecipients,
|
|
545
545
|
e.players
|
|
546
|
-
),
|
|
546
|
+
), g = e.players ? e.plays / e.players : 0;
|
|
547
547
|
return {
|
|
548
548
|
...t,
|
|
549
549
|
reportRangeLabel: s.startDate && s.endDate ? `${N(s.startDate)} – ${N(s.endDate)}` : "Unavailable",
|
|
@@ -554,7 +554,7 @@ function Ve(t, i) {
|
|
|
554
554
|
label: "Token recipients",
|
|
555
555
|
membersLabel: C(e.tokenRecipients, "members"),
|
|
556
556
|
unitsLabel: C(e.tokensIssued, "tokens"),
|
|
557
|
-
extra: `${m(e.plays)} plays · ${
|
|
557
|
+
extra: `${m(e.plays)} plays · ${y}% token utilization`,
|
|
558
558
|
helper: "Distinct members who received at least one game token"
|
|
559
559
|
},
|
|
560
560
|
{
|
|
@@ -562,8 +562,8 @@ function Ve(t, i) {
|
|
|
562
562
|
label: "Players",
|
|
563
563
|
membersLabel: C(e.players, "members"),
|
|
564
564
|
unitsLabel: C(e.plays, "plays"),
|
|
565
|
-
ratePct:
|
|
566
|
-
rateLabel: `${
|
|
565
|
+
ratePct: i,
|
|
566
|
+
rateLabel: `${i}% of token recipients`,
|
|
567
567
|
helper: "Distinct members who consumed at least one game token"
|
|
568
568
|
},
|
|
569
569
|
{
|
|
@@ -574,8 +574,8 @@ function Ve(t, i) {
|
|
|
574
574
|
e.rewardIssueTransactions,
|
|
575
575
|
"reward issue transactions"
|
|
576
576
|
),
|
|
577
|
-
ratePct:
|
|
578
|
-
rateLabel: `${
|
|
577
|
+
ratePct: o,
|
|
578
|
+
rateLabel: `${o}% of players`,
|
|
579
579
|
helper: "Distinct players receiving at least one Reward Pool reward"
|
|
580
580
|
}
|
|
581
581
|
],
|
|
@@ -619,13 +619,13 @@ function Ve(t, i) {
|
|
|
619
619
|
"Issue transactions",
|
|
620
620
|
"Quantity issued"
|
|
621
621
|
],
|
|
622
|
-
rows:
|
|
623
|
-
name:
|
|
622
|
+
rows: l.rewards.map((c) => ({
|
|
623
|
+
name: c.rewardName || "Unnamed reward",
|
|
624
624
|
cells: [
|
|
625
|
-
|
|
626
|
-
m(
|
|
627
|
-
m(
|
|
628
|
-
m(
|
|
625
|
+
c.rewardType,
|
|
626
|
+
m(c.recipients),
|
|
627
|
+
m(c.issuanceTransactions),
|
|
628
|
+
m(c.quantityIssued)
|
|
629
629
|
]
|
|
630
630
|
}))
|
|
631
631
|
}
|
|
@@ -636,11 +636,11 @@ function Ve(t, i) {
|
|
|
636
636
|
breakdown: {
|
|
637
637
|
dimension: "Outlet",
|
|
638
638
|
columns: ["Recipients", "Tokens issued"],
|
|
639
|
-
rows:
|
|
640
|
-
name:
|
|
639
|
+
rows: l.tokenDistributionDetails.map((c) => ({
|
|
640
|
+
name: c.restaurantName || "Unattributed / online",
|
|
641
641
|
cells: [
|
|
642
|
-
m(
|
|
643
|
-
m(
|
|
642
|
+
m(c.recipients),
|
|
643
|
+
m(c.tokensIssued)
|
|
644
644
|
]
|
|
645
645
|
}))
|
|
646
646
|
}
|
|
@@ -662,25 +662,25 @@ function Ve(t, i) {
|
|
|
662
662
|
{
|
|
663
663
|
key: "playerRate",
|
|
664
664
|
label: "Player Rate",
|
|
665
|
-
value: `${
|
|
665
|
+
value: `${i}%`,
|
|
666
666
|
helper: "Players ÷ token recipients"
|
|
667
667
|
},
|
|
668
668
|
{
|
|
669
669
|
key: "tokenUtilizationRate",
|
|
670
670
|
label: "Token Utilization Rate",
|
|
671
|
-
value: `${
|
|
671
|
+
value: `${y}%`,
|
|
672
672
|
helper: "Plays ÷ tokens issued"
|
|
673
673
|
},
|
|
674
674
|
{
|
|
675
675
|
key: "rewardRecipientRate",
|
|
676
676
|
label: "Reward Recipient Rate",
|
|
677
|
-
value: `${
|
|
677
|
+
value: `${o}%`,
|
|
678
678
|
helper: "Reward recipients ÷ players"
|
|
679
679
|
},
|
|
680
680
|
{
|
|
681
681
|
key: "averagePlaysPerPlayer",
|
|
682
682
|
label: "Average Plays per Player",
|
|
683
|
-
value:
|
|
683
|
+
value: g.toLocaleString("en-MY", {
|
|
684
684
|
maximumFractionDigits: 2
|
|
685
685
|
}),
|
|
686
686
|
helper: "Plays ÷ players"
|
|
@@ -688,26 +688,26 @@ function Ve(t, i) {
|
|
|
688
688
|
]
|
|
689
689
|
};
|
|
690
690
|
}
|
|
691
|
-
function
|
|
692
|
-
return
|
|
691
|
+
function X(t, l) {
|
|
692
|
+
return l ? w(t ?? 0) : m(t);
|
|
693
693
|
}
|
|
694
|
-
function
|
|
695
|
-
return t[
|
|
694
|
+
function J(t, l) {
|
|
695
|
+
return t[l] ?? 0;
|
|
696
696
|
}
|
|
697
|
-
function ae(t,
|
|
698
|
-
const { metrics: s, scope:
|
|
697
|
+
function ae(t, l, e) {
|
|
698
|
+
const { metrics: s, scope: i } = l, y = s.recipients ? J(s, e.quantityKey) / s.recipients : 0, o = s.issuanceTransactions ? J(s, e.quantityKey) / s.issuanceTransactions : 0, g = [
|
|
699
699
|
"Recipients",
|
|
700
700
|
...e.includeSourceRecipientShare ? ["Recipient share"] : [],
|
|
701
701
|
"Issuance transactions",
|
|
702
702
|
e.quantityLabel
|
|
703
|
-
],
|
|
703
|
+
], c = l.sourceDetails.map((p) => ({
|
|
704
704
|
name: p.source || "Unknown",
|
|
705
705
|
cells: [
|
|
706
706
|
m(p.recipients),
|
|
707
707
|
...e.includeSourceRecipientShare ? [`${D(p.recipients, s.recipients)}%`] : [],
|
|
708
708
|
m(p.issuanceTransactions),
|
|
709
|
-
|
|
710
|
-
|
|
709
|
+
X(
|
|
710
|
+
J(p, e.quantityKey),
|
|
711
711
|
e.currency
|
|
712
712
|
)
|
|
713
713
|
]
|
|
@@ -715,13 +715,13 @@ function ae(t, i, e) {
|
|
|
715
715
|
{
|
|
716
716
|
key: "averagePerRecipient",
|
|
717
717
|
label: `Average ${e.quantityName} per Recipient`,
|
|
718
|
-
value:
|
|
718
|
+
value: X(y, e.currency),
|
|
719
719
|
helper: `${e.quantityLabel} ÷ recipients`
|
|
720
720
|
},
|
|
721
721
|
{
|
|
722
722
|
key: "averagePerIssue",
|
|
723
723
|
label: `Average ${e.quantityName} per Issue`,
|
|
724
|
-
value:
|
|
724
|
+
value: X(o, e.currency),
|
|
725
725
|
helper: `${e.quantityLabel} ÷ issuance transactions`
|
|
726
726
|
}
|
|
727
727
|
];
|
|
@@ -732,7 +732,7 @@ function ae(t, i, e) {
|
|
|
732
732
|
helper: "Source recipients ÷ total recipients"
|
|
733
733
|
}), {
|
|
734
734
|
...t,
|
|
735
|
-
reportRangeLabel:
|
|
735
|
+
reportRangeLabel: i.startDate && i.endDate ? `${N(i.startDate)} – ${N(i.endDate)}` : "Unavailable",
|
|
736
736
|
audienceLabel: void 0,
|
|
737
737
|
funnel: [],
|
|
738
738
|
cards: [
|
|
@@ -752,8 +752,8 @@ function ae(t, i, e) {
|
|
|
752
752
|
{
|
|
753
753
|
key: e.quantityKey,
|
|
754
754
|
label: e.quantityLabel.replace(/^./, (p) => p.toUpperCase()),
|
|
755
|
-
value:
|
|
756
|
-
|
|
755
|
+
value: X(
|
|
756
|
+
J(s, e.quantityKey),
|
|
757
757
|
e.currency
|
|
758
758
|
),
|
|
759
759
|
sub: e.quantityUnit
|
|
@@ -767,8 +767,8 @@ function ae(t, i, e) {
|
|
|
767
767
|
emptyMessage: "No source activity was recorded for this campaign.",
|
|
768
768
|
breakdown: {
|
|
769
769
|
dimension: "Source",
|
|
770
|
-
columns:
|
|
771
|
-
rows:
|
|
770
|
+
columns: g,
|
|
771
|
+
rows: c
|
|
772
772
|
}
|
|
773
773
|
},
|
|
774
774
|
{
|
|
@@ -781,13 +781,13 @@ function ae(t, i, e) {
|
|
|
781
781
|
"Issuance transactions",
|
|
782
782
|
e.quantityLabel
|
|
783
783
|
],
|
|
784
|
-
rows:
|
|
784
|
+
rows: l.performanceDetails.map((p) => ({
|
|
785
785
|
name: p.restaurantName || "Unattributed / online",
|
|
786
786
|
cells: [
|
|
787
787
|
m(p.recipients),
|
|
788
788
|
m(p.issuanceTransactions),
|
|
789
|
-
|
|
790
|
-
|
|
789
|
+
X(
|
|
790
|
+
J(p, e.quantityKey),
|
|
791
791
|
e.currency
|
|
792
792
|
)
|
|
793
793
|
]
|
|
@@ -799,8 +799,8 @@ function ae(t, i, e) {
|
|
|
799
799
|
metrics: R
|
|
800
800
|
};
|
|
801
801
|
}
|
|
802
|
-
function
|
|
803
|
-
return ae(t,
|
|
802
|
+
function Fe(t, l) {
|
|
803
|
+
return ae(t, l, {
|
|
804
804
|
label: "Point",
|
|
805
805
|
quantityName: "Points",
|
|
806
806
|
quantityLabel: "Points issued",
|
|
@@ -810,8 +810,8 @@ function Ue(t, i) {
|
|
|
810
810
|
includeSourceRecipientShare: !0
|
|
811
811
|
});
|
|
812
812
|
}
|
|
813
|
-
function
|
|
814
|
-
return ae(t,
|
|
813
|
+
function Ae(t, l) {
|
|
814
|
+
return ae(t, l, {
|
|
815
815
|
label: "Experience",
|
|
816
816
|
quantityName: "Experience",
|
|
817
817
|
quantityLabel: "Experience issued",
|
|
@@ -821,8 +821,8 @@ function Fe(t, i) {
|
|
|
821
821
|
includeSourceRecipientShare: !0
|
|
822
822
|
});
|
|
823
823
|
}
|
|
824
|
-
function
|
|
825
|
-
return ae(t,
|
|
824
|
+
function qe(t, l) {
|
|
825
|
+
return ae(t, l, {
|
|
826
826
|
label: "Credit",
|
|
827
827
|
quantityName: "Credit",
|
|
828
828
|
quantityLabel: "Credit issued",
|
|
@@ -832,9 +832,9 @@ function Ae(t, i) {
|
|
|
832
832
|
includeSourceRecipientShare: !1
|
|
833
833
|
});
|
|
834
834
|
}
|
|
835
|
-
function
|
|
835
|
+
function je(t) {
|
|
836
836
|
if (!(t != null && t.categories.length)) return [];
|
|
837
|
-
const
|
|
837
|
+
const l = {
|
|
838
838
|
key: "members",
|
|
839
839
|
label: "Distributed members vs Redeemed members",
|
|
840
840
|
categories: t.categories,
|
|
@@ -843,8 +843,8 @@ function qe(t) {
|
|
|
843
843
|
{ label: "Redeemed members", values: t.redeemedMembers }
|
|
844
844
|
]
|
|
845
845
|
};
|
|
846
|
-
return t.distributedValue == null ? [
|
|
847
|
-
|
|
846
|
+
return t.distributedValue == null ? [l] : [
|
|
847
|
+
l,
|
|
848
848
|
{
|
|
849
849
|
key: "value",
|
|
850
850
|
label: "Distributed voucher value vs Reward value used",
|
|
@@ -859,25 +859,25 @@ function qe(t) {
|
|
|
859
859
|
}
|
|
860
860
|
];
|
|
861
861
|
}
|
|
862
|
-
function
|
|
862
|
+
function ze(t) {
|
|
863
863
|
return [
|
|
864
864
|
{
|
|
865
865
|
header: t.dimension,
|
|
866
|
-
accessorFn: (
|
|
866
|
+
accessorFn: (l) => l.name
|
|
867
867
|
},
|
|
868
|
-
...t.columns.map((
|
|
869
|
-
header:
|
|
868
|
+
...t.columns.map((l, e) => ({
|
|
869
|
+
header: l,
|
|
870
870
|
accessorFn: (s) => s.cells[e] ?? ""
|
|
871
871
|
}))
|
|
872
872
|
];
|
|
873
873
|
}
|
|
874
|
-
const
|
|
874
|
+
const Ge = {
|
|
875
875
|
key: 0,
|
|
876
876
|
class: "flex items-center gap-8 mb-8"
|
|
877
|
-
},
|
|
877
|
+
}, He = { class: "fm-typo-en-body-sm-600 text-fm-color-primary uppercase" }, Ke = { class: "flex items-center gap-12 mb-12 flex-wrap" }, Ye = { class: "fm-typo-en-title-lg-800 text-fm-color-typo-primary m-0" }, Qe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary flex flex-wrap gap-x-16 gap-y-4" }, Xe = {
|
|
878
878
|
key: 1,
|
|
879
879
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4"
|
|
880
|
-
},
|
|
880
|
+
}, Je = /* @__PURE__ */ j({
|
|
881
881
|
__name: "CampaignAnalyticHeader",
|
|
882
882
|
props: {
|
|
883
883
|
campaignName: {},
|
|
@@ -891,86 +891,86 @@ const ze = {
|
|
|
891
891
|
demo: { type: Boolean }
|
|
892
892
|
},
|
|
893
893
|
setup(t) {
|
|
894
|
-
return (
|
|
895
|
-
const s = _("FmIcon"),
|
|
896
|
-
return
|
|
894
|
+
return (l, e) => {
|
|
895
|
+
const s = _("FmIcon"), i = _("FmChip"), y = _("FmCard");
|
|
896
|
+
return r(), h(y, {
|
|
897
897
|
variant: "outlined",
|
|
898
898
|
class: "p-24"
|
|
899
899
|
}, {
|
|
900
900
|
default: P(() => [
|
|
901
|
-
t.mechanicLabel ? (
|
|
902
|
-
t.icon ? (
|
|
901
|
+
t.mechanicLabel ? (r(), v("div", Ge, [
|
|
902
|
+
t.icon ? (r(), h(s, {
|
|
903
903
|
key: 0,
|
|
904
904
|
name: t.icon,
|
|
905
905
|
outline: "",
|
|
906
906
|
size: "sm",
|
|
907
907
|
class: "!text-fm-color-primary"
|
|
908
|
-
}, null, 8, ["name"])) :
|
|
909
|
-
a("span",
|
|
910
|
-
])) :
|
|
911
|
-
a("div",
|
|
912
|
-
a("h1",
|
|
913
|
-
t.statusChip ? (
|
|
914
|
-
t.demo ? (
|
|
908
|
+
}, null, 8, ["name"])) : f("", !0),
|
|
909
|
+
a("span", He, u(t.objective ? `${t.mechanicLabel} · ${t.objective}` : t.mechanicLabel), 1)
|
|
910
|
+
])) : f("", !0),
|
|
911
|
+
a("div", Ke, [
|
|
912
|
+
a("h1", Ye, u(t.campaignName), 1),
|
|
913
|
+
t.statusChip ? (r(), h(fe(t.statusChip), { key: 0 })) : f("", !0),
|
|
914
|
+
t.demo ? (r(), h(i, {
|
|
915
915
|
key: 1,
|
|
916
916
|
class: "!text-fm-color-typo-warning !bg-fm-color-system-warning-100",
|
|
917
917
|
compact: "",
|
|
918
918
|
label: "Demo data"
|
|
919
|
-
})) :
|
|
919
|
+
})) : f("", !0)
|
|
920
920
|
]),
|
|
921
|
-
a("div",
|
|
922
|
-
a("span", null,
|
|
923
|
-
t.reportRangeLabel ? (
|
|
921
|
+
a("div", Qe, [
|
|
922
|
+
a("span", null, u(t.datesLabel), 1),
|
|
923
|
+
t.reportRangeLabel ? (r(), v(E, { key: 0 }, [
|
|
924
924
|
e[0] || (e[0] = a("span", { class: "text-fm-color-typo-disabled" }, "·", -1)),
|
|
925
|
-
a("span", null, "Reporting: " +
|
|
926
|
-
], 64)) :
|
|
925
|
+
a("span", null, "Reporting: " + u(t.reportRangeLabel), 1)
|
|
926
|
+
], 64)) : f("", !0)
|
|
927
927
|
]),
|
|
928
|
-
t.audienceLabel ? (
|
|
928
|
+
t.audienceLabel ? (r(), v("div", Xe, " Audience: " + u(t.audienceLabel), 1)) : f("", !0)
|
|
929
929
|
]),
|
|
930
930
|
_: 1
|
|
931
931
|
});
|
|
932
932
|
};
|
|
933
933
|
}
|
|
934
|
-
}),
|
|
934
|
+
}), We = { class: "grid grid-cols-2 xs:grid-cols-1 gap-16" }, Ze = { class: "min-w-0" }, et = { class: "fm-typo-en-title-sm-800 mt-8" }, tt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, at = { class: "min-w-0" }, st = { class: "fm-typo-en-title-sm-800 mt-8" }, rt = { class: "grid grid-cols-2 xs:grid-cols-1 gap-16 mt-16" }, lt = { class: "min-w-0" }, nt = { class: "fm-typo-en-title-sm-800 mt-8" }, it = { class: "min-w-0" }, ot = { class: "fm-typo-en-title-sm-800 mt-8" }, ct = ["aria-label"], mt = { class: "flex h-12 overflow-hidden rounded-xxxl bg-fm-color-neutral-gray-100" }, ut = { class: "flex justify-between gap-16 mt-8 fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, dt = { class: "mt-16 pt-12 border-t border-fm-color-neutral-gray-100 fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, pt = /* @__PURE__ */ j({
|
|
935
935
|
__name: "PromotionApplicationMix",
|
|
936
936
|
props: {
|
|
937
937
|
mix: {}
|
|
938
938
|
},
|
|
939
939
|
setup(t) {
|
|
940
|
-
return (
|
|
940
|
+
return (l, e) => {
|
|
941
941
|
const s = _("FmCard");
|
|
942
|
-
return
|
|
942
|
+
return r(), h(s, {
|
|
943
943
|
variant: "outlined",
|
|
944
944
|
class: "p-24"
|
|
945
945
|
}, {
|
|
946
946
|
default: P(() => [
|
|
947
947
|
e[4] || (e[4] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Customer mix ", -1)),
|
|
948
948
|
e[5] || (e[5] = a("div", { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-16" }, " Completed bills attributed to this promotion ", -1)),
|
|
949
|
-
a("div",
|
|
950
|
-
a("div",
|
|
949
|
+
a("div", We, [
|
|
950
|
+
a("div", Ze, [
|
|
951
951
|
e[0] || (e[0] = a("div", { class: "flex items-center gap-8" }, [
|
|
952
952
|
a("div", { class: "w-8 h-8 rounded-sm bg-fm-color-primary" }),
|
|
953
953
|
a("span", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Member bills ")
|
|
954
954
|
], -1)),
|
|
955
|
-
a("div",
|
|
956
|
-
a("div",
|
|
955
|
+
a("div", et, u(t.mix.memberBills), 1),
|
|
956
|
+
a("div", tt, u(t.mix.appliedMembers) + " applied members ", 1)
|
|
957
957
|
]),
|
|
958
|
-
a("div",
|
|
958
|
+
a("div", at, [
|
|
959
959
|
e[1] || (e[1] = a("div", { class: "flex items-center gap-8" }, [
|
|
960
960
|
a("div", { class: "w-8 h-8 rounded-sm bg-fm-color-neutral-gray-200" }),
|
|
961
961
|
a("span", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Non-member bills ")
|
|
962
962
|
], -1)),
|
|
963
|
-
a("div",
|
|
963
|
+
a("div", st, u(t.mix.nonMemberBills), 1)
|
|
964
964
|
])
|
|
965
965
|
]),
|
|
966
|
-
a("div",
|
|
967
|
-
a("div",
|
|
966
|
+
a("div", rt, [
|
|
967
|
+
a("div", lt, [
|
|
968
968
|
e[2] || (e[2] = a("div", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Member sales ", -1)),
|
|
969
|
-
a("div",
|
|
969
|
+
a("div", nt, u(t.mix.memberSales), 1)
|
|
970
970
|
]),
|
|
971
|
-
a("div",
|
|
971
|
+
a("div", it, [
|
|
972
972
|
e[3] || (e[3] = a("div", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Non-member sales ", -1)),
|
|
973
|
-
a("div",
|
|
973
|
+
a("div", ot, u(t.mix.nonMemberSales), 1)
|
|
974
974
|
])
|
|
975
975
|
]),
|
|
976
976
|
a("div", {
|
|
@@ -978,7 +978,7 @@ const ze = {
|
|
|
978
978
|
role: "img",
|
|
979
979
|
"aria-label": t.mix.summary
|
|
980
980
|
}, [
|
|
981
|
-
a("div",
|
|
981
|
+
a("div", mt, [
|
|
982
982
|
a("div", {
|
|
983
983
|
class: "h-full bg-fm-color-primary",
|
|
984
984
|
style: me({ width: t.mix.memberBillSharePct + "%" })
|
|
@@ -988,85 +988,85 @@ const ze = {
|
|
|
988
988
|
style: me({ width: t.mix.nonMemberBillSharePct + "%" })
|
|
989
989
|
}, null, 4)
|
|
990
990
|
]),
|
|
991
|
-
a("div",
|
|
992
|
-
a("span", null, "Members " +
|
|
993
|
-
a("span", null, "Non-members " +
|
|
991
|
+
a("div", ut, [
|
|
992
|
+
a("span", null, "Members " + u(t.mix.memberBillSharePct) + "%", 1),
|
|
993
|
+
a("span", null, "Non-members " + u(t.mix.nonMemberBillSharePct) + "%", 1)
|
|
994
994
|
])
|
|
995
|
-
], 8,
|
|
996
|
-
a("div",
|
|
995
|
+
], 8, ct),
|
|
996
|
+
a("div", dt, u(t.mix.summary), 1)
|
|
997
997
|
]),
|
|
998
998
|
_: 1
|
|
999
999
|
});
|
|
1000
1000
|
};
|
|
1001
1001
|
}
|
|
1002
|
-
}),
|
|
1002
|
+
}), yt = { class: "flex xs:flex-col items-stretch" }, bt = { class: "flex-1 min-w-0 px-16 xs:px-4 xs:py-12" }, vt = { class: "flex items-center gap-4" }, ft = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-tertiary" }, ht = {
|
|
1003
1003
|
key: 0,
|
|
1004
1004
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-disabled italic mt-8"
|
|
1005
|
-
},
|
|
1005
|
+
}, gt = { class: "fm-typo-en-title-sm-800 text-fm-color-typo-primary mt-8" }, xt = {
|
|
1006
1006
|
key: 0,
|
|
1007
1007
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1008
|
-
},
|
|
1008
|
+
}, kt = {
|
|
1009
1009
|
key: 1,
|
|
1010
1010
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1011
|
-
},
|
|
1011
|
+
}, wt = {
|
|
1012
1012
|
key: 2,
|
|
1013
1013
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1014
|
-
},
|
|
1014
|
+
}, Rt = {
|
|
1015
1015
|
key: 3,
|
|
1016
1016
|
class: "mt-8"
|
|
1017
|
-
},
|
|
1017
|
+
}, Mt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, _t = {
|
|
1018
1018
|
key: 0,
|
|
1019
1019
|
class: "flex items-center justify-center px-4 xs:py-4"
|
|
1020
|
-
},
|
|
1020
|
+
}, St = /* @__PURE__ */ j({
|
|
1021
1021
|
__name: "CampaignFunnel",
|
|
1022
1022
|
props: {
|
|
1023
1023
|
stages: {}
|
|
1024
1024
|
},
|
|
1025
1025
|
setup(t) {
|
|
1026
|
-
return (
|
|
1027
|
-
const s = _("FmProgressBar"),
|
|
1028
|
-
return
|
|
1026
|
+
return (l, e) => {
|
|
1027
|
+
const s = _("FmProgressBar"), i = _("FmIcon"), y = _("FmCard");
|
|
1028
|
+
return r(), h(y, {
|
|
1029
1029
|
variant: "outlined",
|
|
1030
1030
|
class: "p-24"
|
|
1031
1031
|
}, {
|
|
1032
1032
|
default: P(() => [
|
|
1033
1033
|
e[0] || (e[0] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Campaign funnel ", -1)),
|
|
1034
1034
|
e[1] || (e[1] = a("div", { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-16" }, " Campaign activity at each stage ", -1)),
|
|
1035
|
-
a("div",
|
|
1036
|
-
(
|
|
1037
|
-
key:
|
|
1035
|
+
a("div", yt, [
|
|
1036
|
+
(r(!0), v(E, null, ee(t.stages, (o, g) => (r(), v("div", {
|
|
1037
|
+
key: o.key,
|
|
1038
1038
|
class: "flex xs:flex-col flex-1 min-w-0 items-stretch"
|
|
1039
1039
|
}, [
|
|
1040
|
-
a("div",
|
|
1041
|
-
a("div",
|
|
1042
|
-
a("span",
|
|
1043
|
-
|
|
1040
|
+
a("div", bt, [
|
|
1041
|
+
a("div", vt, [
|
|
1042
|
+
a("span", ft, u(o.label), 1),
|
|
1043
|
+
o.helper ? (r(), h(Z, {
|
|
1044
1044
|
key: 0,
|
|
1045
|
-
description:
|
|
1046
|
-
}, null, 8, ["description"])) :
|
|
1045
|
+
description: o.helper
|
|
1046
|
+
}, null, 8, ["description"])) : f("", !0)
|
|
1047
1047
|
]),
|
|
1048
|
-
|
|
1049
|
-
a("div",
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1048
|
+
o.notSupported ? (r(), v("div", ht, u(o.helper), 1)) : (r(), v(E, { key: 1 }, [
|
|
1049
|
+
a("div", gt, u(o.primaryLabel ?? o.membersLabel ?? "—"), 1),
|
|
1050
|
+
o.unitsLabel ? (r(), v("div", xt, u(o.unitsLabel), 1)) : f("", !0),
|
|
1051
|
+
o.valueLabel ? (r(), v("div", kt, u(o.valueLabel), 1)) : f("", !0),
|
|
1052
|
+
o.extra ? (r(), v("div", wt, u(o.extra), 1)) : f("", !0),
|
|
1053
|
+
o.ratePct !== void 0 ? (r(), v("div", Rt, [
|
|
1054
1054
|
I(s, {
|
|
1055
|
-
value:
|
|
1055
|
+
value: o.ratePct,
|
|
1056
1056
|
color: "primary",
|
|
1057
1057
|
size: "sm"
|
|
1058
1058
|
}, null, 8, ["value"]),
|
|
1059
|
-
a("div",
|
|
1060
|
-
])) :
|
|
1059
|
+
a("div", Mt, u(o.rateLabel), 1)
|
|
1060
|
+
])) : f("", !0)
|
|
1061
1061
|
], 64))
|
|
1062
1062
|
]),
|
|
1063
|
-
|
|
1064
|
-
I(
|
|
1063
|
+
g < t.stages.length - 1 ? (r(), v("div", _t, [
|
|
1064
|
+
I(i, {
|
|
1065
1065
|
name: "chevron_right",
|
|
1066
1066
|
size: "sm",
|
|
1067
1067
|
class: "text-fm-color-neutral-gray-300 xs:rotate-90"
|
|
1068
1068
|
})
|
|
1069
|
-
])) :
|
|
1069
|
+
])) : f("", !0)
|
|
1070
1070
|
]))), 128))
|
|
1071
1071
|
])
|
|
1072
1072
|
]),
|
|
@@ -1074,109 +1074,109 @@ const ze = {
|
|
|
1074
1074
|
});
|
|
1075
1075
|
};
|
|
1076
1076
|
}
|
|
1077
|
-
}),
|
|
1077
|
+
}), It = { class: "grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] xs:grid-cols-1 gap-16" }, Ct = { class: "flex items-center gap-8" }, Ot = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary flex-1 min-w-0 truncate" }, Pt = {
|
|
1078
1078
|
key: 0,
|
|
1079
1079
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1080
|
-
}, te = /* @__PURE__ */
|
|
1080
|
+
}, te = /* @__PURE__ */ j({
|
|
1081
1081
|
__name: "CampaignMetricCards",
|
|
1082
1082
|
props: {
|
|
1083
1083
|
cards: {}
|
|
1084
1084
|
},
|
|
1085
1085
|
setup(t) {
|
|
1086
|
-
return (
|
|
1086
|
+
return (l, e) => {
|
|
1087
1087
|
const s = _("FmCard");
|
|
1088
|
-
return
|
|
1089
|
-
(
|
|
1090
|
-
key:
|
|
1088
|
+
return r(), v("section", It, [
|
|
1089
|
+
(r(!0), v(E, null, ee(t.cards, (i) => (r(), h(s, {
|
|
1090
|
+
key: i.key,
|
|
1091
1091
|
variant: "outlined",
|
|
1092
1092
|
class: "flex flex-col gap-4 p-16 min-w-0 overflow-hidden"
|
|
1093
1093
|
}, {
|
|
1094
1094
|
default: P(() => [
|
|
1095
|
-
a("div",
|
|
1096
|
-
a("span",
|
|
1097
|
-
|
|
1095
|
+
a("div", Ct, [
|
|
1096
|
+
a("span", Ot, u(i.label), 1),
|
|
1097
|
+
i.helper ? (r(), h(Z, {
|
|
1098
1098
|
key: 0,
|
|
1099
|
-
description:
|
|
1100
|
-
}, null, 8, ["description"])) :
|
|
1099
|
+
description: i.helper
|
|
1100
|
+
}, null, 8, ["description"])) : f("", !0)
|
|
1101
1101
|
]),
|
|
1102
1102
|
a("div", {
|
|
1103
|
-
class:
|
|
1103
|
+
class: W([
|
|
1104
1104
|
"fm-typo-en-title-sm-800 truncate",
|
|
1105
|
-
|
|
1105
|
+
i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1106
1106
|
])
|
|
1107
|
-
},
|
|
1108
|
-
|
|
1107
|
+
}, u(i.value), 3),
|
|
1108
|
+
i.sub ? (r(), v("div", Pt, u(i.sub), 1)) : f("", !0)
|
|
1109
1109
|
]),
|
|
1110
1110
|
_: 2
|
|
1111
1111
|
}, 1024))), 128))
|
|
1112
1112
|
]);
|
|
1113
1113
|
};
|
|
1114
1114
|
}
|
|
1115
|
-
}),
|
|
1115
|
+
}), Dt = { class: "flex items-center justify-between gap-12 flex-wrap mb-16 xs:flex-col xs:items-start" }, $t = {
|
|
1116
1116
|
key: 0,
|
|
1117
1117
|
class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary mb-12"
|
|
1118
|
-
},
|
|
1118
|
+
}, Et = /* @__PURE__ */ j({
|
|
1119
1119
|
__name: "CampaignTrendChart",
|
|
1120
1120
|
props: {
|
|
1121
1121
|
modes: {}
|
|
1122
1122
|
},
|
|
1123
1123
|
setup(t) {
|
|
1124
1124
|
var R;
|
|
1125
|
-
const
|
|
1126
|
-
() =>
|
|
1127
|
-
),
|
|
1128
|
-
() =>
|
|
1129
|
-
),
|
|
1130
|
-
() =>
|
|
1131
|
-
),
|
|
1125
|
+
const l = t, e = ["#FF7823", "#B2B3B6"], s = H(((R = l.modes[0]) == null ? void 0 : R.key) ?? ""), i = $(
|
|
1126
|
+
() => l.modes.map((p) => ({ label: p.label, value: p.key }))
|
|
1127
|
+
), y = $(
|
|
1128
|
+
() => i.value.find((p) => p.value === s.value) ?? null
|
|
1129
|
+
), o = $(
|
|
1130
|
+
() => l.modes.find((p) => p.key === s.value) ?? l.modes[0]
|
|
1131
|
+
), g = $(
|
|
1132
1132
|
() => {
|
|
1133
1133
|
var p;
|
|
1134
|
-
return (((p =
|
|
1135
|
-
label:
|
|
1136
|
-
data:
|
|
1137
|
-
color: e[
|
|
1138
|
-
dash:
|
|
1134
|
+
return (((p = o.value) == null ? void 0 : p.series) ?? []).map((L, d) => ({
|
|
1135
|
+
label: L.label,
|
|
1136
|
+
data: L.values,
|
|
1137
|
+
color: e[d] ?? e[e.length - 1],
|
|
1138
|
+
dash: d > 0
|
|
1139
1139
|
}));
|
|
1140
1140
|
}
|
|
1141
|
-
),
|
|
1142
|
-
return (p,
|
|
1143
|
-
const
|
|
1144
|
-
return
|
|
1141
|
+
), c = { display: !0 };
|
|
1142
|
+
return (p, L) => {
|
|
1143
|
+
const d = _("FmButtonGroup"), U = _("FmLineChart"), M = _("FmCard");
|
|
1144
|
+
return r(), h(M, {
|
|
1145
1145
|
variant: "outlined",
|
|
1146
1146
|
class: "p-24"
|
|
1147
1147
|
}, {
|
|
1148
1148
|
default: P(() => [
|
|
1149
|
-
a("div",
|
|
1150
|
-
|
|
1151
|
-
t.modes.length > 1 ? (
|
|
1149
|
+
a("div", Dt, [
|
|
1150
|
+
L[1] || (L[1] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Funnel trend ", -1)),
|
|
1151
|
+
t.modes.length > 1 ? (r(), h(d, {
|
|
1152
1152
|
key: 0,
|
|
1153
|
-
items:
|
|
1154
|
-
"model-value":
|
|
1155
|
-
"onUpdate:modelValue":
|
|
1156
|
-
}, null, 8, ["items", "model-value"])) :
|
|
1153
|
+
items: n(i),
|
|
1154
|
+
"model-value": n(y),
|
|
1155
|
+
"onUpdate:modelValue": L[0] || (L[0] = (k) => s.value = k.value)
|
|
1156
|
+
}, null, 8, ["items", "model-value"])) : f("", !0)
|
|
1157
1157
|
]),
|
|
1158
|
-
o
|
|
1159
|
-
o
|
|
1158
|
+
n(o) ? (r(), v("div", $t, u(n(o).label), 1)) : f("", !0),
|
|
1159
|
+
n(o) ? (r(), h(U, {
|
|
1160
1160
|
key: 1,
|
|
1161
|
-
datasets:
|
|
1162
|
-
"x-axis": { categories: o
|
|
1163
|
-
"x-cfg":
|
|
1164
|
-
"y-cfg":
|
|
1161
|
+
datasets: n(g),
|
|
1162
|
+
"x-axis": { categories: n(o).categories },
|
|
1163
|
+
"x-cfg": c,
|
|
1164
|
+
"y-cfg": c,
|
|
1165
1165
|
legend: { display: !0 },
|
|
1166
1166
|
height: "150px"
|
|
1167
|
-
}, null, 8, ["datasets", "x-axis"])) :
|
|
1167
|
+
}, null, 8, ["datasets", "x-axis"])) : f("", !0)
|
|
1168
1168
|
]),
|
|
1169
1169
|
_: 1
|
|
1170
1170
|
});
|
|
1171
1171
|
};
|
|
1172
1172
|
}
|
|
1173
|
-
}),
|
|
1173
|
+
}), Lt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Tt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-12" }, Bt = {
|
|
1174
1174
|
key: 1,
|
|
1175
1175
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary mt-8"
|
|
1176
|
-
},
|
|
1176
|
+
}, Nt = {
|
|
1177
1177
|
key: 2,
|
|
1178
1178
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary mt-8"
|
|
1179
|
-
}, de = /* @__PURE__ */
|
|
1179
|
+
}, de = /* @__PURE__ */ j({
|
|
1180
1180
|
__name: "CampaignBreakdownTable",
|
|
1181
1181
|
props: {
|
|
1182
1182
|
breakdown: {},
|
|
@@ -1184,44 +1184,44 @@ const ze = {
|
|
|
1184
1184
|
emptyMessage: { default: "No outlet activity was recorded for this campaign." }
|
|
1185
1185
|
},
|
|
1186
1186
|
setup(t) {
|
|
1187
|
-
const
|
|
1188
|
-
() =>
|
|
1187
|
+
const l = t, e = $(
|
|
1188
|
+
() => l.breakdown ? ze(l.breakdown) : []
|
|
1189
1189
|
);
|
|
1190
|
-
return (s,
|
|
1191
|
-
const
|
|
1192
|
-
return
|
|
1190
|
+
return (s, i) => {
|
|
1191
|
+
const y = _("FmTable"), o = _("FmCard");
|
|
1192
|
+
return r(), h(o, {
|
|
1193
1193
|
variant: "outlined",
|
|
1194
1194
|
class: "p-24"
|
|
1195
1195
|
}, {
|
|
1196
1196
|
default: P(() => {
|
|
1197
|
-
var
|
|
1197
|
+
var g;
|
|
1198
1198
|
return [
|
|
1199
|
-
a("div",
|
|
1200
|
-
(
|
|
1201
|
-
a("div",
|
|
1202
|
-
I(
|
|
1199
|
+
a("div", Lt, u(t.title), 1),
|
|
1200
|
+
(g = t.breakdown) != null && g.rows.length ? (r(), v(E, { key: 0 }, [
|
|
1201
|
+
a("div", Tt, " By " + u(t.breakdown.dimension), 1),
|
|
1202
|
+
I(y, {
|
|
1203
1203
|
"row-data": t.breakdown.rows,
|
|
1204
|
-
"column-defs":
|
|
1204
|
+
"column-defs": n(e),
|
|
1205
1205
|
"column-filter": [],
|
|
1206
1206
|
"hide-footer": ""
|
|
1207
1207
|
}, null, 8, ["row-data", "column-defs"])
|
|
1208
|
-
], 64)) : t.breakdown ? (
|
|
1208
|
+
], 64)) : t.breakdown ? (r(), v("div", Bt, u(t.emptyMessage), 1)) : (r(), v("div", Nt, " No breakdown dimension is available for this campaign. "))
|
|
1209
1209
|
];
|
|
1210
1210
|
}),
|
|
1211
1211
|
_: 1
|
|
1212
1212
|
});
|
|
1213
1213
|
};
|
|
1214
1214
|
}
|
|
1215
|
-
}),
|
|
1215
|
+
}), Vt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Ut = {
|
|
1216
1216
|
key: 0,
|
|
1217
1217
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-12"
|
|
1218
|
-
},
|
|
1218
|
+
}, Ft = {
|
|
1219
1219
|
key: 0,
|
|
1220
1220
|
class: "px-16 py-12 rounded-lg bg-fm-color-neutral-gray-100 min-w-0"
|
|
1221
|
-
},
|
|
1221
|
+
}, At = { class: "flex items-center gap-8" }, qt = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary flex-1 min-w-0 truncate" }, jt = {
|
|
1222
1222
|
key: 1,
|
|
1223
1223
|
class: "flex items-center justify-between gap-12 py-8 border-b border-fm-color-neutral-gray-100"
|
|
1224
|
-
},
|
|
1224
|
+
}, zt = { class: "flex items-center gap-8 min-w-0" }, Gt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary truncate" }, pe = /* @__PURE__ */ j({
|
|
1225
1225
|
__name: "CampaignMetricList",
|
|
1226
1226
|
props: {
|
|
1227
1227
|
title: {},
|
|
@@ -1230,49 +1230,49 @@ const ze = {
|
|
|
1230
1230
|
variant: { default: "tile" }
|
|
1231
1231
|
},
|
|
1232
1232
|
setup(t) {
|
|
1233
|
-
return (
|
|
1233
|
+
return (l, e) => {
|
|
1234
1234
|
const s = _("FmCard");
|
|
1235
|
-
return
|
|
1235
|
+
return r(), h(s, {
|
|
1236
1236
|
variant: "outlined",
|
|
1237
1237
|
class: "p-24"
|
|
1238
1238
|
}, {
|
|
1239
1239
|
default: P(() => [
|
|
1240
|
-
a("div",
|
|
1241
|
-
t.caption ? (
|
|
1240
|
+
a("div", Vt, u(t.title), 1),
|
|
1241
|
+
t.caption ? (r(), v("div", Ut, u(t.caption), 1)) : f("", !0),
|
|
1242
1242
|
a("div", {
|
|
1243
|
-
class:
|
|
1243
|
+
class: W(["grid grid-cols-[repeat(auto-fit,minmax(220px,1fr))] xs:grid-cols-1", t.variant === "tile" ? "gap-16" : "gap-x-16"])
|
|
1244
1244
|
}, [
|
|
1245
|
-
(
|
|
1246
|
-
key:
|
|
1245
|
+
(r(!0), v(E, null, ee(t.items, (i) => (r(), v(E, {
|
|
1246
|
+
key: i.key
|
|
1247
1247
|
}, [
|
|
1248
|
-
t.variant === "tile" ? (
|
|
1249
|
-
a("div",
|
|
1250
|
-
a("span",
|
|
1251
|
-
|
|
1248
|
+
t.variant === "tile" ? (r(), v("div", Ft, [
|
|
1249
|
+
a("div", At, [
|
|
1250
|
+
a("span", qt, u(i.label), 1),
|
|
1251
|
+
i.helper ? (r(), h(Z, {
|
|
1252
1252
|
key: 0,
|
|
1253
|
-
description:
|
|
1254
|
-
}, null, 8, ["description"])) :
|
|
1253
|
+
description: i.helper
|
|
1254
|
+
}, null, 8, ["description"])) : f("", !0)
|
|
1255
1255
|
]),
|
|
1256
1256
|
a("div", {
|
|
1257
|
-
class:
|
|
1257
|
+
class: W([
|
|
1258
1258
|
"fm-typo-en-body-lg-600 mt-4 truncate",
|
|
1259
|
-
|
|
1259
|
+
i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1260
1260
|
])
|
|
1261
|
-
},
|
|
1262
|
-
])) : (
|
|
1263
|
-
a("div",
|
|
1264
|
-
a("span",
|
|
1265
|
-
|
|
1261
|
+
}, u(i.value), 3)
|
|
1262
|
+
])) : (r(), v("div", jt, [
|
|
1263
|
+
a("div", zt, [
|
|
1264
|
+
a("span", Gt, u(i.label), 1),
|
|
1265
|
+
i.helper ? (r(), h(Z, {
|
|
1266
1266
|
key: 0,
|
|
1267
|
-
description:
|
|
1268
|
-
}, null, 8, ["description"])) :
|
|
1267
|
+
description: i.helper
|
|
1268
|
+
}, null, 8, ["description"])) : f("", !0)
|
|
1269
1269
|
]),
|
|
1270
1270
|
a("span", {
|
|
1271
|
-
class:
|
|
1271
|
+
class: W([
|
|
1272
1272
|
"fm-typo-en-body-md-600 whitespace-nowrap",
|
|
1273
|
-
|
|
1273
|
+
i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1274
1274
|
])
|
|
1275
|
-
},
|
|
1275
|
+
}, u(i.value), 3)
|
|
1276
1276
|
]))
|
|
1277
1277
|
], 64))), 128))
|
|
1278
1278
|
], 2)
|
|
@@ -1281,54 +1281,54 @@ const ze = {
|
|
|
1281
1281
|
});
|
|
1282
1282
|
};
|
|
1283
1283
|
}
|
|
1284
|
-
}),
|
|
1284
|
+
}), Ht = { class: "flex items-center gap-8" }, Kt = { class: "px-24 flex flex-col gap-16 pb-24" }, Yt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, Qt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, Xt = {
|
|
1285
1285
|
key: 0,
|
|
1286
1286
|
class: "flex flex-col gap-12"
|
|
1287
|
-
},
|
|
1287
|
+
}, Jt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Wt = {
|
|
1288
1288
|
key: 1,
|
|
1289
1289
|
class: "flex flex-col gap-12"
|
|
1290
|
-
},
|
|
1290
|
+
}, ca = /* @__PURE__ */ j({
|
|
1291
1291
|
__name: "CampaignAnalytic",
|
|
1292
1292
|
setup(t) {
|
|
1293
|
-
const { t:
|
|
1293
|
+
const { t: l } = ge(), e = _e(), s = Se(), { global: i, minor: y } = ke, o = xe(), g = H(), c = H(), R = H(), p = H(!1), L = H(!1), d = $(() => {
|
|
1294
1294
|
var O;
|
|
1295
|
-
return (O =
|
|
1296
|
-
}),
|
|
1297
|
-
() =>
|
|
1298
|
-
), M =
|
|
1295
|
+
return (O = g.value) == null ? void 0 : O.campaign;
|
|
1296
|
+
}), U = $(
|
|
1297
|
+
() => d.value ? Te(d.value.type) : void 0
|
|
1298
|
+
), M = $(() => {
|
|
1299
1299
|
var O;
|
|
1300
|
-
return (O =
|
|
1301
|
-
}), k =
|
|
1302
|
-
var O,
|
|
1303
|
-
return M.value && ((O =
|
|
1300
|
+
return (O = U.value) == null ? void 0 : O.report;
|
|
1301
|
+
}), k = $(() => {
|
|
1302
|
+
var O, x, z, G, T, B, F, S, b, A, q, K, Y;
|
|
1303
|
+
return M.value && ((O = d.value) == null ? void 0 : O.type) === "COIN" ? Fe(
|
|
1304
1304
|
M.value,
|
|
1305
|
-
((
|
|
1306
|
-
) : M.value && ((
|
|
1305
|
+
((x = c.value) == null ? void 0 : x.type) === "COIN" ? c.value : ne()
|
|
1306
|
+
) : M.value && ((z = d.value) == null ? void 0 : z.type) === "POINT" ? Ae(
|
|
1307
1307
|
M.value,
|
|
1308
|
-
((
|
|
1309
|
-
) : M.value && ((T =
|
|
1308
|
+
((G = c.value) == null ? void 0 : G.type) === "POINT" ? c.value : ie()
|
|
1309
|
+
) : M.value && ((T = d.value) == null ? void 0 : T.type) === "CREDIT" ? qe(
|
|
1310
1310
|
M.value,
|
|
1311
1311
|
((B = c.value) == null ? void 0 : B.type) === "CREDIT" ? c.value : oe()
|
|
1312
|
-
) : M.value && ((
|
|
1312
|
+
) : M.value && ((F = d.value) == null ? void 0 : F.type) === "GAME" ? Ue(
|
|
1313
1313
|
M.value,
|
|
1314
1314
|
((S = c.value) == null ? void 0 : S.type) === "GAME" ? c.value : le()
|
|
1315
|
-
) : M.value && ((
|
|
1315
|
+
) : M.value && ((b = d.value) == null ? void 0 : b.type) === "MISSION" ? Ve(
|
|
1316
1316
|
M.value,
|
|
1317
|
-
((
|
|
1318
|
-
) : M.value && ((
|
|
1317
|
+
((A = c.value) == null ? void 0 : A.type) === "MISSION" ? c.value : re()
|
|
1318
|
+
) : M.value && ((q = d.value) == null ? void 0 : q.type) === "PROMOTION" ? Ne(
|
|
1319
1319
|
M.value,
|
|
1320
|
-
((
|
|
1321
|
-
) : M.value && ((
|
|
1320
|
+
((K = c.value) == null ? void 0 : K.type) === "PROMOTION" ? c.value : se()
|
|
1321
|
+
) : M.value && ((Y = c.value) == null ? void 0 : Y.type) === "VOUCHER" ? Be(
|
|
1322
1322
|
M.value,
|
|
1323
1323
|
c.value,
|
|
1324
|
-
|
|
1324
|
+
R.value
|
|
1325
1325
|
) : M.value;
|
|
1326
|
-
}),
|
|
1327
|
-
() =>
|
|
1328
|
-
),
|
|
1329
|
-
() =>
|
|
1326
|
+
}), ye = $(
|
|
1327
|
+
() => d.value ? l(we(d.value.timeframeOptions)) : ""
|
|
1328
|
+
), be = $(
|
|
1329
|
+
() => d.value && d.value.type !== "MEMBERSHIP" ? Re(d.value) : void 0
|
|
1330
1330
|
);
|
|
1331
|
-
function
|
|
1331
|
+
function ve() {
|
|
1332
1332
|
return {
|
|
1333
1333
|
type: "VOUCHER",
|
|
1334
1334
|
scope: { startDate: "", endDate: "" },
|
|
@@ -1437,84 +1437,84 @@ const ze = {
|
|
|
1437
1437
|
performanceDetails: []
|
|
1438
1438
|
};
|
|
1439
1439
|
}
|
|
1440
|
-
return
|
|
1441
|
-
var O,
|
|
1440
|
+
return he(async () => {
|
|
1441
|
+
var O, x, z, G, T, B, F;
|
|
1442
1442
|
try {
|
|
1443
|
-
await
|
|
1444
|
-
var
|
|
1445
|
-
|
|
1446
|
-
const
|
|
1447
|
-
|
|
1443
|
+
await i(async () => {
|
|
1444
|
+
var A, q;
|
|
1445
|
+
g.value = await V.readById(e.params.id);
|
|
1446
|
+
const b = e.meta.campaignType;
|
|
1447
|
+
L.value = !!b && ((q = (A = g.value) == null ? void 0 : A.campaign) == null ? void 0 : q.type) !== b;
|
|
1448
1448
|
});
|
|
1449
1449
|
const S = {
|
|
1450
|
-
timezone: ue[
|
|
1450
|
+
timezone: ue[o.currentCountry.value || "MY"] ?? ue.MY
|
|
1451
1451
|
};
|
|
1452
|
-
((O =
|
|
1453
|
-
|
|
1452
|
+
((O = g.value) == null ? void 0 : O.campaign.type) === "VOUCHER" ? (c.value = ve(), await Promise.all([
|
|
1453
|
+
y(
|
|
1454
1454
|
() => V.readAnalyticsOverview(e.params.id, {
|
|
1455
1455
|
...S
|
|
1456
1456
|
})
|
|
1457
|
-
).then((
|
|
1458
|
-
|
|
1457
|
+
).then((b) => {
|
|
1458
|
+
b.type === "VOUCHER" && (c.value = b);
|
|
1459
1459
|
}).catch(() => {
|
|
1460
1460
|
}),
|
|
1461
|
-
|
|
1461
|
+
y(
|
|
1462
1462
|
() => V.readAnalyticsTrend(e.params.id, S)
|
|
1463
|
-
).then((
|
|
1463
|
+
).then((b) => R.value = b).catch(() => {
|
|
1464
1464
|
})
|
|
1465
|
-
])) : ((
|
|
1465
|
+
])) : ((x = g.value) == null ? void 0 : x.campaign.type) === "PROMOTION" ? (c.value = se(), await y(
|
|
1466
1466
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1467
|
-
).then((
|
|
1468
|
-
|
|
1467
|
+
).then((b) => {
|
|
1468
|
+
b.type === "PROMOTION" && (c.value = b);
|
|
1469
1469
|
}).catch(() => {
|
|
1470
|
-
})) : ((
|
|
1470
|
+
})) : ((z = g.value) == null ? void 0 : z.campaign.type) === "MISSION" ? (c.value = re(), await y(
|
|
1471
1471
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1472
|
-
).then((
|
|
1473
|
-
|
|
1472
|
+
).then((b) => {
|
|
1473
|
+
b.type === "MISSION" && (c.value = b);
|
|
1474
1474
|
}).catch(() => {
|
|
1475
|
-
})) : ((
|
|
1475
|
+
})) : ((G = g.value) == null ? void 0 : G.campaign.type) === "GAME" ? (c.value = le(), await y(
|
|
1476
1476
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1477
|
-
).then((
|
|
1478
|
-
|
|
1477
|
+
).then((b) => {
|
|
1478
|
+
b.type === "GAME" && (c.value = b);
|
|
1479
1479
|
}).catch(() => {
|
|
1480
|
-
})) : ((T =
|
|
1480
|
+
})) : ((T = g.value) == null ? void 0 : T.campaign.type) === "COIN" ? (c.value = ne(), await y(
|
|
1481
1481
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1482
|
-
).then((
|
|
1483
|
-
|
|
1482
|
+
).then((b) => {
|
|
1483
|
+
b.type === "COIN" && (c.value = b);
|
|
1484
1484
|
}).catch(() => {
|
|
1485
|
-
})) : ((B =
|
|
1485
|
+
})) : ((B = g.value) == null ? void 0 : B.campaign.type) === "POINT" ? (c.value = ie(), await y(
|
|
1486
1486
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1487
|
-
).then((
|
|
1488
|
-
|
|
1487
|
+
).then((b) => {
|
|
1488
|
+
b.type === "POINT" && (c.value = b);
|
|
1489
1489
|
}).catch(() => {
|
|
1490
|
-
})) : ((
|
|
1490
|
+
})) : ((F = g.value) == null ? void 0 : F.campaign.type) === "CREDIT" && (c.value = oe(), await y(
|
|
1491
1491
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1492
|
-
).then((
|
|
1493
|
-
|
|
1492
|
+
).then((b) => {
|
|
1493
|
+
b.type === "CREDIT" && (c.value = b);
|
|
1494
1494
|
}).catch(() => {
|
|
1495
1495
|
}));
|
|
1496
1496
|
} catch {
|
|
1497
|
-
|
|
1497
|
+
p.value = !0;
|
|
1498
1498
|
}
|
|
1499
|
-
}), (O,
|
|
1500
|
-
var
|
|
1501
|
-
const
|
|
1502
|
-
return
|
|
1503
|
-
I(
|
|
1499
|
+
}), (O, x) => {
|
|
1500
|
+
var F, S, b, A, q, K, Y, ce;
|
|
1501
|
+
const z = _("FmPill"), G = _("FmPageHead"), T = _("FmIcon"), B = _("FmCard");
|
|
1502
|
+
return r(), v(E, null, [
|
|
1503
|
+
I(G, {
|
|
1504
1504
|
title: "Campaign analytic",
|
|
1505
1505
|
"back-button": !0,
|
|
1506
|
-
"onClick:back":
|
|
1506
|
+
"onClick:back": x[0] || (x[0] = (Q) => n(s).back())
|
|
1507
1507
|
}, {
|
|
1508
1508
|
title: P(() => [
|
|
1509
|
-
a("div",
|
|
1510
|
-
|
|
1511
|
-
I(
|
|
1509
|
+
a("div", Ht, [
|
|
1510
|
+
x[1] || (x[1] = a("span", { class: "fm-typo-en-title-md-600 fm-step-title line-clamp-2" }, " Campaign analytic ", -1)),
|
|
1511
|
+
I(z, { variant: "beta" })
|
|
1512
1512
|
])
|
|
1513
1513
|
]),
|
|
1514
1514
|
_: 1
|
|
1515
1515
|
}),
|
|
1516
|
-
a("div",
|
|
1517
|
-
|
|
1516
|
+
a("div", Kt, [
|
|
1517
|
+
n(p) ? (r(), h(B, {
|
|
1518
1518
|
key: 0,
|
|
1519
1519
|
variant: "outlined",
|
|
1520
1520
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
@@ -1526,22 +1526,22 @@ const ze = {
|
|
|
1526
1526
|
size: "lg",
|
|
1527
1527
|
class: "text-fm-color-neutral-gray-300"
|
|
1528
1528
|
}),
|
|
1529
|
-
|
|
1530
|
-
|
|
1529
|
+
x[2] || (x[2] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Could not load this campaign ", -1)),
|
|
1530
|
+
x[3] || (x[3] = a("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, " The campaign may have been deleted, or the link is no longer valid. ", -1))
|
|
1531
1531
|
]),
|
|
1532
1532
|
_: 1
|
|
1533
|
-
})) :
|
|
1534
|
-
I(
|
|
1535
|
-
"campaign-name":
|
|
1536
|
-
"dates-label":
|
|
1537
|
-
"status-chip":
|
|
1538
|
-
"mechanic-label": (
|
|
1539
|
-
icon: (S =
|
|
1540
|
-
objective: (
|
|
1541
|
-
"report-range-label": (
|
|
1542
|
-
"audience-label": (
|
|
1533
|
+
})) : n(d) ? (r(), v(E, { key: 1 }, [
|
|
1534
|
+
I(Je, {
|
|
1535
|
+
"campaign-name": n(d).name,
|
|
1536
|
+
"dates-label": n(ye),
|
|
1537
|
+
"status-chip": n(be),
|
|
1538
|
+
"mechanic-label": (F = n(U)) == null ? void 0 : F.label,
|
|
1539
|
+
icon: (S = n(U)) == null ? void 0 : S.icon,
|
|
1540
|
+
objective: (b = n(U)) == null ? void 0 : b.objective,
|
|
1541
|
+
"report-range-label": (A = n(k)) == null ? void 0 : A.reportRangeLabel,
|
|
1542
|
+
"audience-label": (q = n(k)) == null ? void 0 : q.audienceLabel
|
|
1543
1543
|
}, null, 8, ["campaign-name", "dates-label", "status-chip", "mechanic-label", "icon", "objective", "report-range-label", "audience-label"]),
|
|
1544
|
-
|
|
1544
|
+
n(L) ? (r(), h(B, {
|
|
1545
1545
|
key: 0,
|
|
1546
1546
|
variant: "outlined",
|
|
1547
1547
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
@@ -1553,11 +1553,11 @@ const ze = {
|
|
|
1553
1553
|
size: "lg",
|
|
1554
1554
|
class: "text-fm-color-neutral-gray-300"
|
|
1555
1555
|
}),
|
|
1556
|
-
|
|
1557
|
-
a("div",
|
|
1556
|
+
x[4] || (x[4] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " This campaign does not belong here ", -1)),
|
|
1557
|
+
a("div", Yt, " It is a " + u(n(d).type) + " campaign. Open it from its own campaign list to see the right report. ", 1)
|
|
1558
1558
|
]),
|
|
1559
1559
|
_: 1
|
|
1560
|
-
})) :
|
|
1560
|
+
})) : n(U) ? ((K = n(M)) == null ? void 0 : K.state) === "empty" ? (r(), h(B, {
|
|
1561
1561
|
key: 2,
|
|
1562
1562
|
variant: "outlined",
|
|
1563
1563
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
@@ -1569,66 +1569,66 @@ const ze = {
|
|
|
1569
1569
|
size: "lg",
|
|
1570
1570
|
class: "text-fm-color-neutral-gray-300"
|
|
1571
1571
|
}),
|
|
1572
|
-
|
|
1573
|
-
|
|
1572
|
+
x[6] || (x[6] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Campaign activity has not started ", -1)),
|
|
1573
|
+
x[7] || (x[7] = a("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, " Performance data will appear after members enter the campaign. ", -1))
|
|
1574
1574
|
]),
|
|
1575
1575
|
_: 1
|
|
1576
|
-
})) :
|
|
1577
|
-
|
|
1576
|
+
})) : n(k) ? (r(), v(E, { key: 3 }, [
|
|
1577
|
+
n(d).type === "COIN" || n(d).type === "POINT" || n(d).type === "CREDIT" ? (r(), v("section", Xt, [
|
|
1578
1578
|
a("div", null, [
|
|
1579
|
-
a("div",
|
|
1579
|
+
a("div", Jt, u((Y = n(U)) == null ? void 0 : Y.label) + " distribution summary ", 1)
|
|
1580
1580
|
]),
|
|
1581
1581
|
I(te, {
|
|
1582
|
-
cards:
|
|
1582
|
+
cards: n(k).cards
|
|
1583
1583
|
}, null, 8, ["cards"])
|
|
1584
|
-
])) :
|
|
1585
|
-
|
|
1586
|
-
|
|
1584
|
+
])) : f("", !0),
|
|
1585
|
+
n(d).type === "MISSION" ? (r(), v("section", Wt, [
|
|
1586
|
+
x[8] || (x[8] = a("div", null, [
|
|
1587
1587
|
a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Mission participation and completion "),
|
|
1588
1588
|
a("div", { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, " Campaign-lifetime member activity and completion ")
|
|
1589
1589
|
], -1)),
|
|
1590
1590
|
I(te, {
|
|
1591
|
-
cards:
|
|
1591
|
+
cards: n(k).cards
|
|
1592
1592
|
}, null, 8, ["cards"])
|
|
1593
|
-
])) :
|
|
1594
|
-
|
|
1593
|
+
])) : f("", !0),
|
|
1594
|
+
n(k).applicationMix ? (r(), h(pt, {
|
|
1595
1595
|
key: 2,
|
|
1596
|
-
mix:
|
|
1597
|
-
}, null, 8, ["mix"])) :
|
|
1596
|
+
mix: n(k).applicationMix
|
|
1597
|
+
}, null, 8, ["mix"])) : n(d).type !== "MISSION" && n(k).funnel.length ? (r(), h(St, {
|
|
1598
1598
|
key: 3,
|
|
1599
|
-
stages:
|
|
1600
|
-
}, null, 8, ["stages"])) :
|
|
1601
|
-
|
|
1599
|
+
stages: n(k).funnel
|
|
1600
|
+
}, null, 8, ["stages"])) : f("", !0),
|
|
1601
|
+
n(d).type !== "MISSION" && n(d).type !== "COIN" && n(d).type !== "POINT" && n(d).type !== "CREDIT" && n(k).cards.length ? (r(), h(te, {
|
|
1602
1602
|
key: 4,
|
|
1603
|
-
cards:
|
|
1604
|
-
}, null, 8, ["cards"])) :
|
|
1605
|
-
|
|
1603
|
+
cards: n(k).cards
|
|
1604
|
+
}, null, 8, ["cards"])) : f("", !0),
|
|
1605
|
+
n(k).trend.length ? (r(), h(Et, {
|
|
1606
1606
|
key: 5,
|
|
1607
|
-
modes:
|
|
1608
|
-
}, null, 8, ["modes"])) :
|
|
1609
|
-
(ce =
|
|
1610
|
-
key:
|
|
1611
|
-
breakdown:
|
|
1612
|
-
title:
|
|
1613
|
-
"empty-message":
|
|
1614
|
-
}, null, 8, ["breakdown", "title", "empty-message"]))), 128)) : (
|
|
1607
|
+
modes: n(k).trend
|
|
1608
|
+
}, null, 8, ["modes"])) : f("", !0),
|
|
1609
|
+
(ce = n(k).breakdowns) != null && ce.length ? (r(!0), v(E, { key: 6 }, ee(n(k).breakdowns, (Q) => (r(), h(de, {
|
|
1610
|
+
key: Q.title,
|
|
1611
|
+
breakdown: Q.breakdown,
|
|
1612
|
+
title: Q.title,
|
|
1613
|
+
"empty-message": Q.emptyMessage
|
|
1614
|
+
}, null, 8, ["breakdown", "title", "empty-message"]))), 128)) : (r(), h(de, {
|
|
1615
1615
|
key: 7,
|
|
1616
|
-
breakdown:
|
|
1616
|
+
breakdown: n(k).breakdown
|
|
1617
1617
|
}, null, 8, ["breakdown"])),
|
|
1618
|
-
|
|
1618
|
+
n(k).outcomes.length ? (r(), h(pe, {
|
|
1619
1619
|
key: 8,
|
|
1620
|
-
title:
|
|
1621
|
-
caption:
|
|
1622
|
-
items:
|
|
1620
|
+
title: n(d).type === "MISSION" || n(d).type === "GAME" ? "Reward activity" : "Business outcome",
|
|
1621
|
+
caption: n(d).type === "MISSION" || n(d).type === "GAME" ? "Reward issuance attributed to this campaign" : "Financial and loyalty outcomes attributed to this campaign",
|
|
1622
|
+
items: n(k).outcomes,
|
|
1623
1623
|
variant: "tile"
|
|
1624
|
-
}, null, 8, ["title", "caption", "items"])) :
|
|
1624
|
+
}, null, 8, ["title", "caption", "items"])) : f("", !0),
|
|
1625
1625
|
I(pe, {
|
|
1626
1626
|
title: "Metric definitions",
|
|
1627
1627
|
caption: "Hover a metric for its denominator and attribution method",
|
|
1628
|
-
items:
|
|
1628
|
+
items: n(k).metrics,
|
|
1629
1629
|
variant: "row"
|
|
1630
1630
|
}, null, 8, ["items"])
|
|
1631
|
-
], 64)) :
|
|
1631
|
+
], 64)) : f("", !0) : (r(), h(B, {
|
|
1632
1632
|
key: 1,
|
|
1633
1633
|
variant: "outlined",
|
|
1634
1634
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
@@ -1640,17 +1640,17 @@ const ze = {
|
|
|
1640
1640
|
size: "lg",
|
|
1641
1641
|
class: "text-fm-color-neutral-gray-300"
|
|
1642
1642
|
}),
|
|
1643
|
-
|
|
1644
|
-
a("div",
|
|
1643
|
+
x[5] || (x[5] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Analytic is not available for this campaign type ", -1)),
|
|
1644
|
+
a("div", Qt, " Reporting has not been defined for " + u(n(d).type) + " campaigns yet. ", 1)
|
|
1645
1645
|
]),
|
|
1646
1646
|
_: 1
|
|
1647
1647
|
}))
|
|
1648
|
-
], 64)) :
|
|
1648
|
+
], 64)) : f("", !0)
|
|
1649
1649
|
])
|
|
1650
1650
|
], 64);
|
|
1651
1651
|
};
|
|
1652
1652
|
}
|
|
1653
1653
|
});
|
|
1654
1654
|
export {
|
|
1655
|
-
|
|
1655
|
+
ca as default
|
|
1656
1656
|
};
|