@feedmepos/mf-connect 0.1.98-beta.30 → 0.1.98-beta.31
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-DUpK_Q7f.js → App-BhjPzSiY.js} +8 -8
- package/dist/{AuditLogs-DWYbj4lo.js → AuditLogs-Ch6LolQM.js} +9 -9
- package/dist/{Bin-DieOnDz0.js → Bin-DN-id6dz.js} +8 -8
- package/dist/{Broadcast-UQ-vMYLl.js → Broadcast-DW2DVP1Y.js} +11 -11
- package/dist/{CampaignAnalytic-CfvtyBoa.js → CampaignAnalytic-DT-nSIGr.js} +381 -371
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CuJWOZ3o.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-R-VzWmm8.js} +6 -6
- package/dist/{Card-Te7LGbdC.js → Card-BS6sPsHL.js} +18 -18
- package/dist/{Collections-C-QeTQej.js → Collections-BpdLOygl.js} +8 -8
- package/dist/{Credit-B459_0Nt.js → Credit-iyO7xUul.js} +12 -12
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-Dp3i8kku.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-q8PuaqGc.js} +31 -31
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-XgrUL64F.js → EffectSheet.vue_vue_type_style_index_0_lang-C4RJCmCF.js} +6 -6
- package/dist/{Experience-BUiwaqiZ.js → Experience-Cc_lsAuN.js} +12 -12
- package/dist/{FileSaver.min-BBLnxnqN.js → FileSaver.min-DlK0mbcs.js} +1 -1
- package/dist/{Game-iOJbGiNe.js → Game-N5oRxhfD.js} +13 -13
- package/dist/{Grab-bC6BeXxc.js → Grab-C4JOX7S9.js} +9 -9
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-eiJJrTiu.js → ImageInput.vue_vue_type_script_setup_true_lang-ttCaGoaA.js} +1 -1
- package/dist/{Index-Utb2MWAQ.js → Index-BTPfwIiL.js} +10 -10
- package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-B7iWGh2L.js → LocationPicker.vue_vue_type_script_setup_true_lang-CsOOd9Vz.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CppfUz1y.js → LottieAnimation.vue_vue_type_script_setup_true_lang-CECNBs_-.js} +1 -1
- package/dist/{LoyaltyDashboard-BHSHnBpi.js → LoyaltyDashboard-qZRDd1VL.js} +7 -7
- package/dist/{MainLayout-DMqkiGFT.js → MainLayout-yONDAqXN.js} +1 -1
- package/dist/{Marketing-DGfDqW7v.js → Marketing-CtxinaIp.js} +4 -4
- package/dist/{MarketingMaterialEdit-p5QBPd83.js → MarketingMaterialEdit-BbYHbOjZ.js} +6 -6
- package/dist/{Member-C2KIOib-.js → Member-BswZb-b-.js} +11 -11
- package/dist/{MemberList-Esp9384f.js → MemberList-DclEAn1h.js} +25 -25
- package/dist/{MemberTransactions-CKYG04pY.js → MemberTransactions-B4sc1Ahe.js} +1 -1
- package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-CItc3B3N.js → MessageInput.vue_vue_type_script_setup_true_lang-en_MLf2q.js} +9 -9
- package/dist/{Mission-BlckuFfz.js → Mission-B2_SB07l.js} +13 -13
- package/dist/{Overview-suva6hd8.js → Overview-BETAx6sC.js} +3 -3
- package/dist/{Overview-B5PSmDQr.js → Overview-DJ8DB7p1.js} +18 -18
- package/dist/{Point-CVexYech.js → Point-I5sYY0AV.js} +12 -12
- package/dist/{Promotion-VW7rqIn-.js → Promotion-BZiOiGCt.js} +13 -13
- package/dist/{Queue-Dh4C5OO9.js → Queue-BirX_EC7.js} +10 -10
- package/dist/{Record-CYGrQ_Cb.js → Record-C0K6Ns45.js} +9 -9
- package/dist/{Review-mxbjxTB1.js → Review-BoISkcF5.js} +2 -2
- package/dist/{ReviewFacebookCallback-C-pSgxeh.js → ReviewFacebookCallback-DI_v42cz.js} +5 -5
- package/dist/{ReviewGoogleCallback-CnNbGQdM.js → ReviewGoogleCallback-bWRrVgif.js} +5 -5
- package/dist/{Reward-CQ8AgV1m.js → Reward-Cq52vwUr.js} +16 -16
- package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-DxaejEKe.js → RewardGroup.vue_vue_type_script_setup_true_lang-BW_TCNUF.js} +11 -11
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-CxHheatc.js → RuleGroup.vue_vue_type_script_setup_true_lang-BB42pC95.js} +14 -14
- package/dist/{Segment-Crm395ad.js → Segment-BmOC4d7i.js} +24 -24
- package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-CnA8A--R.js → SelectItems.vue_vue_type_script_setup_true_lang-QClugajp.js} +2 -2
- package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-Dd-mYmBN.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-CaQdSfIF.js} +12 -12
- package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-DgkPQA3H.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-W7APn7Cu.js} +4 -4
- package/dist/{Setting-AKRWf4zD.js → Setting-Dgt0LCbv.js} +14 -14
- package/dist/{SettingAdvertisements-DD9U8S6N.js → SettingAdvertisements-DAUdwr1p.js} +12 -12
- package/dist/{Settings-D7c8sBA8.js → Settings-gGFgpQbO.js} +5 -5
- package/dist/{Store-BN3RP_u-.js → Store-IaZXjlU_.js} +21 -21
- package/dist/{StoreRewards-BXc96ZMM.js → StoreRewards-DnNuYefP.js} +15 -15
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-B76NSzNg.js → StoreTransactions.vue_vue_type_script_setup_true_lang-DTLHTyc_.js} +20 -20
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DnhMV2aq.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-euqTCLNl.js} +2 -2
- package/dist/{Tier-Bbktc4H8.js → Tier-DUZjJBxp.js} +24 -24
- package/dist/{Title-BU8pzF9c.js → Title-CoElyNyo.js} +21 -21
- package/dist/{Transaction-B3_M0MMz.js → Transaction-eywJjImp.js} +2 -2
- package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-DtFoQXUu.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-DJ5_Kqpv.js} +6 -6
- package/dist/{Voucher-CJruHWmd.js → Voucher-CAiuvTfM.js} +14 -14
- package/dist/{VoucherEditor.vue_vue_type_script_setup_true_lang-DzIQ_1Nb.js → VoucherEditor.vue_vue_type_script_setup_true_lang-BDnbUGdG.js} +12 -12
- package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-Lq5Z_Glg.js → ZodTextField.vue_vue_type_script_setup_true_lang-D5rXidZV.js} +2 -2
- package/dist/{app-CmK_zWVU.js → app-DhDmESYL.js} +60 -60
- package/dist/app.js +1 -1
- package/dist/{business-Br3Sboxg.js → business-GzfuJslR.js} +1 -1
- package/dist/{campaign-53KorSW_.js → campaign-D5fwJP6R.js} +2 -2
- package/dist/{campaign-Dz57HOfP.js → campaign-DFT642vU.js} +7 -7
- package/dist/{campaign.fn-D-J5-IK0.js → campaign.fn-DkdIAZ7i.js} +38 -38
- package/dist/{collection.fn-cEP4Vjv6.js → collection.fn-OGlCjGmW.js} +2 -2
- package/dist/{duplicateCampaign-bBnEmbXg.js → duplicateCampaign-iTVcbRn-.js} +2 -2
- package/dist/{effect-RQs_nrvo.js → effect-CGAWPcrm.js} +1 -1
- package/dist/{email-addresses-CAX-uL1B.js → email-addresses-BE2S4Dj8.js} +2 -2
- package/dist/{export-DSgRDjwv.js → export-D_fy-zua.js} +3 -3
- package/dist/{helper-DlEUDhaf.js → helper-C3C4SOin.js} +1 -1
- package/dist/{index-DJQCoy-g.js → index-BAApyOCS.js} +1 -1
- package/dist/{index-CHmtKN0J.js → index-Be5nXR7v.js} +3 -3
- package/dist/{index-CJ0Ofs8g.js → index-Bh9_cs1A.js} +1 -1
- package/dist/{index-Dpyep_-G.js → index-Bt33uSj8.js} +2 -2
- package/dist/{index-D3obFXMZ.js → index-C0miKj5V.js} +1 -1
- package/dist/{index-BpXYj8xl.js → index-CKAtCHMa.js} +6 -6
- package/dist/{index-CbBnibrX.js → index-CWIwKELy.js} +2 -2
- package/dist/{index-DansV6RZ.js → index-CXmuQ0jf.js} +2 -2
- package/dist/{index-CQ40sF6g.js → index-CdH2ReVb.js} +2 -2
- package/dist/{index-CBvgQWbo.js → index-CdZ_RusD.js} +1 -1
- package/dist/{index-fVWfEBZV.js → index-CgRL0HwK.js} +6 -6
- package/dist/{index-BHdJaRRQ.js → index-CsGEC4Aw.js} +1 -1
- package/dist/{index-BA0GllA8.js → index-D-btpqVA.js} +1 -1
- package/dist/{index-ZFdRmzK7.js → index-DTZ7EAcZ.js} +1 -1
- package/dist/{index-Cm4hBY6K.js → index-QHOmMZSD.js} +1 -1
- package/dist/{index.esm2017-GDYw3ujs.js → index.esm2017-G5LoANQX.js} +1 -1
- package/dist/{loading-CevzAqpQ.js → loading-BPNkTxXT.js} +1 -1
- package/dist/{lodash-CcmP-ZWD.js → lodash-9ta4Nkqt.js} +1 -1
- package/dist/{membership-CP-ZGC-Y.js → membership-BYkSHLOw.js} +2 -2
- package/dist/{money-B_CYilsX.js → money-3C0zWUC8.js} +1 -1
- package/dist/{number-CqWVPhp0.js → number-d4dGkDp-.js} +1 -1
- package/dist/{objectid-DkTaCd6K.js → objectid-DnLDUQct.js} +6 -6
- package/dist/{plugins-Br271boW.js → plugins-DpkzBj4v.js} +3 -3
- package/dist/{reward-CKQRdG-H.js → reward-X01fpNlm.js} +1 -1
- package/dist/{rule-D0Rv4CuV.js → rule-TAnVjqJf.js} +3 -3
- package/dist/{rule-builder-BUn6UMwW.js → rule-builder-BcmfLik_.js} +1 -1
- package/dist/{template-D5GB4cAl.js → template-Dw2oNW4d.js} +6 -6
- package/dist/{timezone-DqRsL54X.js → timezone-Df1SYjKC.js} +1 -1
- package/dist/{trigger-Ci92pTJU.js → trigger-BPnDSdB4.js} +5 -5
- package/dist/{useMarketingMaterialActions-C_mu-ac8.js → useMarketingMaterialActions-CeoTwfgs.js} +3 -3
- package/dist/{usePagination-CWQ2WXiM.js → usePagination-nnXuyQTt.js} +1 -1
- package/dist/{user-CeAfYeZW.js → user-C0_0nUJU.js} +1 -1
- package/dist/{vue-i18n-P_SZNhrt.js → vue-i18n-LQy4nXEW.js} +285 -285
- package/dist/{xlsx-CTo0cmDn.js → xlsx-DZTNL-Ht.js} +1 -1
- package/dist/{zod-CPa57Pxb.js → zod-D-SNQ7Pu.js} +1 -1
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as j, resolveComponent as _, openBlock 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
|
|
1
|
+
import { defineComponent as j, computed as P, resolveComponent as _, openBlock as n, createBlock as h, withCtx as $, createElementBlock as v, createCommentVNode as g, createElementVNode as a, toDisplayString as u, normalizeClass as W, unref as l, Fragment as E, normalizeStyle as me, renderList as ee, createVNode as I, ref as H, onMounted as ge } from "vue";
|
|
2
|
+
import { u as ye } from "./vue-i18n-LQy4nXEW.js";
|
|
3
|
+
import { useCoreStore as he } from "@feedmepos/mf-common";
|
|
4
|
+
import { c as V } from "./index-CsGEC4Aw.js";
|
|
5
|
+
import { u as xe } from "./loading-BPNkTxXT.js";
|
|
6
|
+
import { s as ke, a as we } from "./campaign-DFT642vU.js";
|
|
7
|
+
import { C as ue } from "./timezone-Df1SYjKC.js";
|
|
8
|
+
import { h as Re } from "./moment-D7p2TMB-.js";
|
|
9
9
|
import { _ as Z } from "./MetricInfoTooltip.vue_vue_type_script_setup_true_lang-Bg_0YlwG.js";
|
|
10
|
-
import { useRoute as
|
|
11
|
-
const
|
|
10
|
+
import { useRoute as Me, useRouter as _e } from "vue-router";
|
|
11
|
+
const Se = {
|
|
12
12
|
state: "populated",
|
|
13
13
|
reportRangeLabel: "Unavailable",
|
|
14
14
|
funnel: [],
|
|
@@ -17,7 +17,7 @@ const Ie = {
|
|
|
17
17
|
breakdown: null,
|
|
18
18
|
outcomes: [],
|
|
19
19
|
metrics: []
|
|
20
|
-
},
|
|
20
|
+
}, Ie = {
|
|
21
21
|
state: "populated",
|
|
22
22
|
reportRangeLabel: "Unavailable",
|
|
23
23
|
funnel: [],
|
|
@@ -37,7 +37,7 @@ const Ie = {
|
|
|
37
37
|
},
|
|
38
38
|
outcomes: [],
|
|
39
39
|
metrics: []
|
|
40
|
-
},
|
|
40
|
+
}, Ce = {
|
|
41
41
|
state: "populated",
|
|
42
42
|
reportRangeLabel: "Unavailable",
|
|
43
43
|
funnel: [],
|
|
@@ -47,7 +47,7 @@ const Ie = {
|
|
|
47
47
|
breakdowns: [],
|
|
48
48
|
outcomes: [],
|
|
49
49
|
metrics: []
|
|
50
|
-
},
|
|
50
|
+
}, Oe = {
|
|
51
51
|
state: "populated",
|
|
52
52
|
reportRangeLabel: "Unavailable",
|
|
53
53
|
funnel: [],
|
|
@@ -57,7 +57,7 @@ const Ie = {
|
|
|
57
57
|
breakdowns: [],
|
|
58
58
|
outcomes: [],
|
|
59
59
|
metrics: []
|
|
60
|
-
},
|
|
60
|
+
}, Pe = {
|
|
61
61
|
state: "populated",
|
|
62
62
|
reportRangeLabel: "Unavailable",
|
|
63
63
|
funnel: [],
|
|
@@ -77,7 +77,7 @@ const Ie = {
|
|
|
77
77
|
breakdowns: [],
|
|
78
78
|
outcomes: [],
|
|
79
79
|
metrics: []
|
|
80
|
-
},
|
|
80
|
+
}, De = {
|
|
81
81
|
state: "populated",
|
|
82
82
|
reportRangeLabel: "Unavailable",
|
|
83
83
|
funnel: [],
|
|
@@ -87,36 +87,36 @@ const Ie = {
|
|
|
87
87
|
breakdowns: [],
|
|
88
88
|
outcomes: [],
|
|
89
89
|
metrics: []
|
|
90
|
-
},
|
|
90
|
+
}, Ee = {
|
|
91
91
|
VOUCHER: {
|
|
92
92
|
label: "Voucher",
|
|
93
93
|
icon: "confirmation_number",
|
|
94
94
|
objective: "Reactivation",
|
|
95
|
-
report:
|
|
95
|
+
report: Se
|
|
96
96
|
},
|
|
97
97
|
PROMOTION: {
|
|
98
98
|
label: "Promotion",
|
|
99
99
|
icon: "percent",
|
|
100
100
|
objective: "Purchase conversion",
|
|
101
|
-
report:
|
|
101
|
+
report: Ie
|
|
102
102
|
},
|
|
103
103
|
MISSION: {
|
|
104
104
|
label: "Mission",
|
|
105
105
|
icon: "flag",
|
|
106
106
|
objective: "Member engagement",
|
|
107
|
-
report:
|
|
107
|
+
report: Ce
|
|
108
108
|
},
|
|
109
109
|
GAME: {
|
|
110
110
|
label: "Game",
|
|
111
111
|
icon: "sports_esports",
|
|
112
112
|
objective: "Member engagement",
|
|
113
|
-
report:
|
|
113
|
+
report: Oe
|
|
114
114
|
},
|
|
115
115
|
COIN: {
|
|
116
116
|
label: "Point",
|
|
117
117
|
icon: "stars",
|
|
118
118
|
objective: "Member engagement",
|
|
119
|
-
report:
|
|
119
|
+
report: Pe
|
|
120
120
|
},
|
|
121
121
|
POINT: {
|
|
122
122
|
label: "Experience",
|
|
@@ -128,14 +128,14 @@ const Ie = {
|
|
|
128
128
|
label: "Credit",
|
|
129
129
|
icon: "account_balance_wallet",
|
|
130
130
|
objective: "Member engagement",
|
|
131
|
-
report:
|
|
131
|
+
report: De
|
|
132
132
|
}
|
|
133
133
|
};
|
|
134
|
-
function
|
|
135
|
-
return
|
|
134
|
+
function Le(t) {
|
|
135
|
+
return Ee[t];
|
|
136
136
|
}
|
|
137
|
-
function C(t,
|
|
138
|
-
return `${(t ?? 0).toLocaleString()} ${
|
|
137
|
+
function C(t, r) {
|
|
138
|
+
return `${(t ?? 0).toLocaleString()} ${r}`;
|
|
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, r) {
|
|
150
|
+
const e = r ?? 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 r = Re(t);
|
|
155
|
+
return r.isValid() ? r.format("D MMM YYYY") : t;
|
|
156
156
|
}
|
|
157
|
-
function
|
|
158
|
-
const { metrics: s, scope:
|
|
157
|
+
function Te(t, r, e) {
|
|
158
|
+
const { metrics: s, scope: c } = r, y = D(
|
|
159
159
|
s.redeemedMembers,
|
|
160
160
|
s.distributedMembers
|
|
161
|
-
),
|
|
161
|
+
), i = D(
|
|
162
162
|
s.redeemedVouchers,
|
|
163
163
|
s.distributedVouchers
|
|
164
|
-
),
|
|
164
|
+
), f = s.completedBills === 0 ? 0 : s.rewardValueUsed / s.completedBills, o = 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: c.startDate && c.endDate ? `${N(c.startDate)} – ${N(c.endDate)}` : "Unavailable",
|
|
171
171
|
audienceLabel: void 0,
|
|
172
172
|
funnel: [
|
|
173
173
|
{
|
|
@@ -227,7 +227,7 @@ function Be(t, l, e) {
|
|
|
227
227
|
sub: "issued, not yet redeemed"
|
|
228
228
|
}
|
|
229
229
|
],
|
|
230
|
-
trend:
|
|
230
|
+
trend: qe(e),
|
|
231
231
|
breakdown: {
|
|
232
232
|
dimension: "Outlet",
|
|
233
233
|
columns: [
|
|
@@ -237,7 +237,7 @@ function Be(t, l, e) {
|
|
|
237
237
|
"Exact sales",
|
|
238
238
|
"Reward value used"
|
|
239
239
|
],
|
|
240
|
-
rows:
|
|
240
|
+
rows: r.performanceDetails.map((p) => ({
|
|
241
241
|
name: p.restaurantName,
|
|
242
242
|
cells: [
|
|
243
243
|
p.redeemedMembers.toLocaleString(),
|
|
@@ -267,7 +267,7 @@ function Be(t, l, e) {
|
|
|
267
267
|
{
|
|
268
268
|
key: "averageBillValue",
|
|
269
269
|
label: "Average Bill Value",
|
|
270
|
-
value: w(
|
|
270
|
+
value: w(o)
|
|
271
271
|
}
|
|
272
272
|
],
|
|
273
273
|
metrics: [
|
|
@@ -280,19 +280,19 @@ function Be(t, l, e) {
|
|
|
280
280
|
{
|
|
281
281
|
key: "voucherUtilizationRate",
|
|
282
282
|
label: "Voucher Utilization Rate",
|
|
283
|
-
value: `${
|
|
283
|
+
value: `${i}%`,
|
|
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(f),
|
|
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(o),
|
|
296
296
|
helper: "Exact sales ÷ completed bills"
|
|
297
297
|
},
|
|
298
298
|
{
|
|
@@ -304,17 +304,17 @@ function Be(t, l, e) {
|
|
|
304
304
|
]
|
|
305
305
|
};
|
|
306
306
|
}
|
|
307
|
-
function
|
|
308
|
-
const { metrics: e, scope: s } =
|
|
307
|
+
function Be(t, r) {
|
|
308
|
+
const { metrics: e, scope: s } = r, c = D(
|
|
309
309
|
e.memberBills,
|
|
310
310
|
e.attributedBills
|
|
311
311
|
), y = D(
|
|
312
312
|
e.nonMemberBills,
|
|
313
313
|
e.attributedBills
|
|
314
|
-
),
|
|
314
|
+
), i = D(
|
|
315
315
|
e.memberSales,
|
|
316
316
|
e.exactSales
|
|
317
|
-
),
|
|
317
|
+
), f = e.attributedBills ? e.promotionValueUsed / e.attributedBills : 0, o = 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 Ne(t, l) {
|
|
|
328
328
|
nonMemberBills: m(e.nonMemberBills),
|
|
329
329
|
memberSales: w(e.memberSales),
|
|
330
330
|
nonMemberSales: w(e.nonMemberSales),
|
|
331
|
-
memberBillSharePct:
|
|
331
|
+
memberBillSharePct: c,
|
|
332
332
|
nonMemberBillSharePct: y,
|
|
333
|
-
memberSalesSharePct:
|
|
334
|
-
summary: `Members account for ${
|
|
333
|
+
memberSalesSharePct: i,
|
|
334
|
+
summary: `Members account for ${c}% of attributed bills and ${i}% of attributed sales.`
|
|
335
335
|
},
|
|
336
336
|
breakdown: {
|
|
337
337
|
dimension: "Outlet",
|
|
@@ -343,7 +343,7 @@ function Ne(t, l) {
|
|
|
343
343
|
"Exact sales",
|
|
344
344
|
"Promotion value used"
|
|
345
345
|
],
|
|
346
|
-
rows:
|
|
346
|
+
rows: r.performanceDetails.map((R) => ({
|
|
347
347
|
name: R.restaurantName,
|
|
348
348
|
cells: [
|
|
349
349
|
m(R.appliedMembers),
|
|
@@ -374,14 +374,14 @@ function Ne(t, l) {
|
|
|
374
374
|
{
|
|
375
375
|
key: "averageBillValue",
|
|
376
376
|
label: "Average Bill Value",
|
|
377
|
-
value: w(
|
|
377
|
+
value: w(o)
|
|
378
378
|
}
|
|
379
379
|
],
|
|
380
380
|
metrics: [
|
|
381
381
|
{
|
|
382
382
|
key: "memberApplicationShare",
|
|
383
383
|
label: "Member Application Share",
|
|
384
|
-
value: `${
|
|
384
|
+
value: `${c}%`,
|
|
385
385
|
helper: "Member bills ÷ attributed bills"
|
|
386
386
|
},
|
|
387
387
|
{
|
|
@@ -393,26 +393,26 @@ function Ne(t, l) {
|
|
|
393
393
|
{
|
|
394
394
|
key: "memberSalesShare",
|
|
395
395
|
label: "Member Sales Share",
|
|
396
|
-
value: `${
|
|
396
|
+
value: `${i}%`,
|
|
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(f),
|
|
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(o),
|
|
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 Ne(t, r) {
|
|
415
|
+
const { metrics: e, scope: s } = r, c = 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 Ve(t, l) {
|
|
|
469
469
|
"Issue transactions",
|
|
470
470
|
"Quantity issued"
|
|
471
471
|
],
|
|
472
|
-
rows:
|
|
473
|
-
name:
|
|
472
|
+
rows: r.rewards.map((i) => ({
|
|
473
|
+
name: i.rewardName,
|
|
474
474
|
cells: [
|
|
475
|
-
|
|
476
|
-
m(
|
|
477
|
-
m(
|
|
478
|
-
m(
|
|
475
|
+
i.rewardType,
|
|
476
|
+
m(i.recipients),
|
|
477
|
+
m(i.issuanceTransactions),
|
|
478
|
+
m(i.quantityIssued)
|
|
479
479
|
]
|
|
480
480
|
}))
|
|
481
481
|
}
|
|
@@ -486,12 +486,12 @@ function Ve(t, l) {
|
|
|
486
486
|
breakdown: {
|
|
487
487
|
dimension: "Outlet",
|
|
488
488
|
columns: ["Participants", "Stamps earned", "Completion events"],
|
|
489
|
-
rows:
|
|
490
|
-
name:
|
|
489
|
+
rows: r.performanceDetails.map((i) => ({
|
|
490
|
+
name: i.restaurantName || "Unattributed / online",
|
|
491
491
|
cells: [
|
|
492
|
-
m(
|
|
493
|
-
m(
|
|
494
|
-
m(
|
|
492
|
+
m(i.participants),
|
|
493
|
+
m(i.stampsEarned),
|
|
494
|
+
m(i.completionEvents)
|
|
495
495
|
]
|
|
496
496
|
}))
|
|
497
497
|
}
|
|
@@ -525,7 +525,7 @@ function Ve(t, l) {
|
|
|
525
525
|
{
|
|
526
526
|
key: "averageStampsPerParticipant",
|
|
527
527
|
label: "Average Stamps per Participant",
|
|
528
|
-
value:
|
|
528
|
+
value: c.toLocaleString("en-MY", {
|
|
529
529
|
maximumFractionDigits: 2
|
|
530
530
|
}),
|
|
531
531
|
helper: "Stamps earned ÷ participants"
|
|
@@ -539,11 +539,11 @@ function Ve(t, l) {
|
|
|
539
539
|
]
|
|
540
540
|
};
|
|
541
541
|
}
|
|
542
|
-
function
|
|
543
|
-
const { metrics: e, scope: s } =
|
|
542
|
+
function Ve(t, r) {
|
|
543
|
+
const { metrics: e, scope: s } = r, c = D(e.players, e.tokenRecipients), y = D(e.plays, e.tokensIssued), i = D(
|
|
544
544
|
e.rewardRecipients,
|
|
545
545
|
e.players
|
|
546
|
-
),
|
|
546
|
+
), f = 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",
|
|
@@ -562,8 +562,8 @@ function Ue(t, l) {
|
|
|
562
562
|
label: "Players",
|
|
563
563
|
membersLabel: C(e.players, "members"),
|
|
564
564
|
unitsLabel: C(e.plays, "plays"),
|
|
565
|
-
ratePct:
|
|
566
|
-
rateLabel: `${
|
|
565
|
+
ratePct: c,
|
|
566
|
+
rateLabel: `${c}% of token recipients`,
|
|
567
567
|
helper: "Distinct members who consumed at least one game token"
|
|
568
568
|
},
|
|
569
569
|
{
|
|
@@ -574,8 +574,8 @@ function Ue(t, l) {
|
|
|
574
574
|
e.rewardIssueTransactions,
|
|
575
575
|
"reward issue transactions"
|
|
576
576
|
),
|
|
577
|
-
ratePct:
|
|
578
|
-
rateLabel: `${
|
|
577
|
+
ratePct: i,
|
|
578
|
+
rateLabel: `${i}% of players`,
|
|
579
579
|
helper: "Distinct players receiving at least one Reward Pool reward"
|
|
580
580
|
}
|
|
581
581
|
],
|
|
@@ -619,13 +619,13 @@ function Ue(t, l) {
|
|
|
619
619
|
"Issue transactions",
|
|
620
620
|
"Quantity issued"
|
|
621
621
|
],
|
|
622
|
-
rows:
|
|
623
|
-
name:
|
|
622
|
+
rows: r.rewards.map((o) => ({
|
|
623
|
+
name: o.rewardName || "Unnamed reward",
|
|
624
624
|
cells: [
|
|
625
|
-
|
|
626
|
-
m(
|
|
627
|
-
m(
|
|
628
|
-
m(
|
|
625
|
+
o.rewardType,
|
|
626
|
+
m(o.recipients),
|
|
627
|
+
m(o.issuanceTransactions),
|
|
628
|
+
m(o.quantityIssued)
|
|
629
629
|
]
|
|
630
630
|
}))
|
|
631
631
|
}
|
|
@@ -636,11 +636,11 @@ function Ue(t, l) {
|
|
|
636
636
|
breakdown: {
|
|
637
637
|
dimension: "Outlet",
|
|
638
638
|
columns: ["Recipients", "Tokens issued"],
|
|
639
|
-
rows:
|
|
640
|
-
name:
|
|
639
|
+
rows: r.tokenDistributionDetails.map((o) => ({
|
|
640
|
+
name: o.restaurantName || "Unattributed / online",
|
|
641
641
|
cells: [
|
|
642
|
-
m(
|
|
643
|
-
m(
|
|
642
|
+
m(o.recipients),
|
|
643
|
+
m(o.tokensIssued)
|
|
644
644
|
]
|
|
645
645
|
}))
|
|
646
646
|
}
|
|
@@ -662,7 +662,7 @@ function Ue(t, l) {
|
|
|
662
662
|
{
|
|
663
663
|
key: "playerRate",
|
|
664
664
|
label: "Player Rate",
|
|
665
|
-
value: `${
|
|
665
|
+
value: `${c}%`,
|
|
666
666
|
helper: "Players ÷ token recipients"
|
|
667
667
|
},
|
|
668
668
|
{
|
|
@@ -674,13 +674,13 @@ function Ue(t, l) {
|
|
|
674
674
|
{
|
|
675
675
|
key: "rewardRecipientRate",
|
|
676
676
|
label: "Reward Recipient Rate",
|
|
677
|
-
value: `${
|
|
677
|
+
value: `${i}%`,
|
|
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: f.toLocaleString("en-MY", {
|
|
684
684
|
maximumFractionDigits: 2
|
|
685
685
|
}),
|
|
686
686
|
helper: "Plays ÷ players"
|
|
@@ -688,19 +688,19 @@ function Ue(t, l) {
|
|
|
688
688
|
]
|
|
689
689
|
};
|
|
690
690
|
}
|
|
691
|
-
function X(t,
|
|
692
|
-
return
|
|
691
|
+
function X(t, r) {
|
|
692
|
+
return r ? w(t ?? 0) : m(t);
|
|
693
693
|
}
|
|
694
|
-
function J(t,
|
|
695
|
-
return t[
|
|
694
|
+
function J(t, r) {
|
|
695
|
+
return t[r] ?? 0;
|
|
696
696
|
}
|
|
697
|
-
function ae(t,
|
|
698
|
-
const { metrics: s, scope:
|
|
697
|
+
function ae(t, r, e) {
|
|
698
|
+
const { metrics: s, scope: c } = r, y = s.recipients ? J(s, e.quantityKey) / s.recipients : 0, i = s.issuanceTransactions ? J(s, e.quantityKey) / s.issuanceTransactions : 0, f = [
|
|
699
699
|
"Recipients",
|
|
700
700
|
...e.includeSourceRecipientShare ? ["Recipient share"] : [],
|
|
701
701
|
"Issuance transactions",
|
|
702
702
|
e.quantityLabel
|
|
703
|
-
],
|
|
703
|
+
], o = r.sourceDetails.map((p) => ({
|
|
704
704
|
name: p.source || "Unknown",
|
|
705
705
|
cells: [
|
|
706
706
|
m(p.recipients),
|
|
@@ -721,7 +721,7 @@ function ae(t, l, e) {
|
|
|
721
721
|
{
|
|
722
722
|
key: "averagePerIssue",
|
|
723
723
|
label: `Average ${e.quantityName} per Issue`,
|
|
724
|
-
value: X(
|
|
724
|
+
value: X(i, e.currency),
|
|
725
725
|
helper: `${e.quantityLabel} ÷ issuance transactions`
|
|
726
726
|
}
|
|
727
727
|
];
|
|
@@ -732,7 +732,7 @@ function ae(t, l, e) {
|
|
|
732
732
|
helper: "Source recipients ÷ total recipients"
|
|
733
733
|
}), {
|
|
734
734
|
...t,
|
|
735
|
-
reportRangeLabel:
|
|
735
|
+
reportRangeLabel: c.startDate && c.endDate ? `${N(c.startDate)} – ${N(c.endDate)}` : "Unavailable",
|
|
736
736
|
audienceLabel: void 0,
|
|
737
737
|
funnel: [],
|
|
738
738
|
cards: [
|
|
@@ -767,8 +767,8 @@ function ae(t, l, 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: f,
|
|
771
|
+
rows: o
|
|
772
772
|
}
|
|
773
773
|
},
|
|
774
774
|
{
|
|
@@ -781,7 +781,7 @@ function ae(t, l, e) {
|
|
|
781
781
|
"Issuance transactions",
|
|
782
782
|
e.quantityLabel
|
|
783
783
|
],
|
|
784
|
-
rows:
|
|
784
|
+
rows: r.performanceDetails.map((p) => ({
|
|
785
785
|
name: p.restaurantName || "Unattributed / online",
|
|
786
786
|
cells: [
|
|
787
787
|
m(p.recipients),
|
|
@@ -799,8 +799,8 @@ function ae(t, l, e) {
|
|
|
799
799
|
metrics: R
|
|
800
800
|
};
|
|
801
801
|
}
|
|
802
|
-
function
|
|
803
|
-
return ae(t,
|
|
802
|
+
function Ue(t, r) {
|
|
803
|
+
return ae(t, r, {
|
|
804
804
|
label: "Point",
|
|
805
805
|
quantityName: "Points",
|
|
806
806
|
quantityLabel: "Points issued",
|
|
@@ -810,8 +810,8 @@ function Fe(t, l) {
|
|
|
810
810
|
includeSourceRecipientShare: !0
|
|
811
811
|
});
|
|
812
812
|
}
|
|
813
|
-
function
|
|
814
|
-
return ae(t,
|
|
813
|
+
function Fe(t, r) {
|
|
814
|
+
return ae(t, r, {
|
|
815
815
|
label: "Experience",
|
|
816
816
|
quantityName: "Experience",
|
|
817
817
|
quantityLabel: "Experience issued",
|
|
@@ -821,8 +821,8 @@ function Ae(t, l) {
|
|
|
821
821
|
includeSourceRecipientShare: !0
|
|
822
822
|
});
|
|
823
823
|
}
|
|
824
|
-
function
|
|
825
|
-
return ae(t,
|
|
824
|
+
function Ae(t, r) {
|
|
825
|
+
return ae(t, r, {
|
|
826
826
|
label: "Credit",
|
|
827
827
|
quantityName: "Credit",
|
|
828
828
|
quantityLabel: "Credit issued",
|
|
@@ -832,9 +832,9 @@ function qe(t, l) {
|
|
|
832
832
|
includeSourceRecipientShare: !1
|
|
833
833
|
});
|
|
834
834
|
}
|
|
835
|
-
function
|
|
835
|
+
function qe(t) {
|
|
836
836
|
if (!(t != null && t.categories.length)) return [];
|
|
837
|
-
const
|
|
837
|
+
const r = {
|
|
838
838
|
key: "members",
|
|
839
839
|
label: "Distributed members vs Redeemed members",
|
|
840
840
|
categories: t.categories,
|
|
@@ -843,8 +843,8 @@ function je(t) {
|
|
|
843
843
|
{ label: "Redeemed members", values: t.redeemedMembers }
|
|
844
844
|
]
|
|
845
845
|
};
|
|
846
|
-
return t.distributedValue == null ? [
|
|
847
|
-
|
|
846
|
+
return t.distributedValue == null ? [r] : [
|
|
847
|
+
r,
|
|
848
848
|
{
|
|
849
849
|
key: "value",
|
|
850
850
|
label: "Distributed voucher value vs Reward value used",
|
|
@@ -859,30 +859,30 @@ function je(t) {
|
|
|
859
859
|
}
|
|
860
860
|
];
|
|
861
861
|
}
|
|
862
|
-
function
|
|
862
|
+
function je(t) {
|
|
863
863
|
return [
|
|
864
864
|
{
|
|
865
865
|
header: t.dimension,
|
|
866
|
-
accessorFn: (
|
|
866
|
+
accessorFn: (r) => r.name
|
|
867
867
|
},
|
|
868
|
-
...t.columns.map((
|
|
869
|
-
header:
|
|
868
|
+
...t.columns.map((r, e) => ({
|
|
869
|
+
header: r,
|
|
870
870
|
accessorFn: (s) => s.cells[e] ?? ""
|
|
871
871
|
}))
|
|
872
872
|
];
|
|
873
873
|
}
|
|
874
|
-
const
|
|
874
|
+
const ze = {
|
|
875
875
|
key: 0,
|
|
876
876
|
class: "flex items-center gap-8 mb-8"
|
|
877
|
-
},
|
|
877
|
+
}, Ge = { class: "fm-typo-en-body-sm-600 text-fm-color-primary uppercase" }, He = { class: "flex items-center gap-12 mb-12 flex-wrap" }, Ke = { class: "fm-typo-en-title-lg-800 text-fm-color-typo-primary m-0" }, Ye = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary flex flex-wrap gap-x-16 gap-y-4" }, Qe = {
|
|
878
878
|
key: 1,
|
|
879
879
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4"
|
|
880
|
-
},
|
|
880
|
+
}, Xe = /* @__PURE__ */ j({
|
|
881
881
|
__name: "CampaignAnalyticHeader",
|
|
882
882
|
props: {
|
|
883
883
|
campaignName: {},
|
|
884
884
|
datesLabel: {},
|
|
885
|
-
|
|
885
|
+
status: {},
|
|
886
886
|
mechanicLabel: {},
|
|
887
887
|
icon: {},
|
|
888
888
|
objective: {},
|
|
@@ -891,86 +891,96 @@ const Ge = {
|
|
|
891
891
|
demo: { type: Boolean }
|
|
892
892
|
},
|
|
893
893
|
setup(t) {
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
894
|
+
const r = t, { t: e } = ye(), s = P(() => r.status ? {
|
|
895
|
+
active: "text-fm-color-typo-success bg-fm-color-system-success-100",
|
|
896
|
+
upcoming: "text-fm-color-typo-info bg-fm-color-system-info-100",
|
|
897
|
+
expired: "text-fm-color-typo-error bg-fm-color-system-error-100"
|
|
898
|
+
}[r.status] : "");
|
|
899
|
+
return (c, y) => {
|
|
900
|
+
const i = _("FmIcon"), f = _("FmChip"), o = _("FmCard");
|
|
901
|
+
return n(), h(o, {
|
|
897
902
|
variant: "outlined",
|
|
898
903
|
class: "p-24"
|
|
899
904
|
}, {
|
|
900
|
-
default:
|
|
901
|
-
t.mechanicLabel ? (
|
|
902
|
-
t.icon ? (
|
|
905
|
+
default: $(() => [
|
|
906
|
+
t.mechanicLabel ? (n(), v("div", ze, [
|
|
907
|
+
t.icon ? (n(), h(i, {
|
|
903
908
|
key: 0,
|
|
904
909
|
name: t.icon,
|
|
905
910
|
outline: "",
|
|
906
911
|
size: "sm",
|
|
907
912
|
class: "!text-fm-color-primary"
|
|
908
|
-
}, null, 8, ["name"])) :
|
|
909
|
-
a("span",
|
|
910
|
-
])) :
|
|
911
|
-
a("div",
|
|
912
|
-
a("h1",
|
|
913
|
-
t.
|
|
914
|
-
|
|
913
|
+
}, null, 8, ["name"])) : g("", !0),
|
|
914
|
+
a("span", Ge, u(t.objective ? `${t.mechanicLabel} · ${t.objective}` : t.mechanicLabel), 1)
|
|
915
|
+
])) : g("", !0),
|
|
916
|
+
a("div", He, [
|
|
917
|
+
a("h1", Ke, u(t.campaignName), 1),
|
|
918
|
+
t.status ? (n(), h(f, {
|
|
919
|
+
key: 0,
|
|
920
|
+
class: W(l(s)),
|
|
921
|
+
label: l(e)(`connect.campaign.common.status.${t.status}`),
|
|
922
|
+
compact: ""
|
|
923
|
+
}, null, 8, ["class", "label"])) : g("", !0),
|
|
924
|
+
t.demo ? (n(), h(f, {
|
|
915
925
|
key: 1,
|
|
916
926
|
class: "!text-fm-color-typo-warning !bg-fm-color-system-warning-100",
|
|
917
927
|
compact: "",
|
|
918
928
|
label: "Demo data"
|
|
919
|
-
})) :
|
|
929
|
+
})) : g("", !0)
|
|
920
930
|
]),
|
|
921
|
-
a("div",
|
|
931
|
+
a("div", Ye, [
|
|
922
932
|
a("span", null, u(t.datesLabel), 1),
|
|
923
|
-
t.reportRangeLabel ? (
|
|
924
|
-
|
|
933
|
+
t.reportRangeLabel ? (n(), v(E, { key: 0 }, [
|
|
934
|
+
y[0] || (y[0] = a("span", { class: "text-fm-color-typo-disabled" }, "·", -1)),
|
|
925
935
|
a("span", null, "Reporting: " + u(t.reportRangeLabel), 1)
|
|
926
|
-
], 64)) :
|
|
936
|
+
], 64)) : g("", !0)
|
|
927
937
|
]),
|
|
928
|
-
t.audienceLabel ? (
|
|
938
|
+
t.audienceLabel ? (n(), v("div", Qe, " Audience: " + u(t.audienceLabel), 1)) : g("", !0)
|
|
929
939
|
]),
|
|
930
940
|
_: 1
|
|
931
941
|
});
|
|
932
942
|
};
|
|
933
943
|
}
|
|
934
|
-
}),
|
|
944
|
+
}), Je = { class: "grid grid-cols-2 xs:grid-cols-1 gap-16" }, We = { class: "min-w-0" }, Ze = { class: "fm-typo-en-title-sm-800 mt-8" }, et = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, tt = { class: "min-w-0" }, at = { class: "fm-typo-en-title-sm-800 mt-8" }, st = { class: "grid grid-cols-2 xs:grid-cols-1 gap-16 mt-16" }, rt = { class: "min-w-0" }, lt = { class: "fm-typo-en-title-sm-800 mt-8" }, nt = { class: "min-w-0" }, it = { class: "fm-typo-en-title-sm-800 mt-8" }, ot = ["aria-label"], ct = { class: "flex h-12 overflow-hidden rounded-xxxl bg-fm-color-neutral-gray-100" }, mt = { class: "flex justify-between gap-16 mt-8 fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, ut = { class: "mt-16 pt-12 border-t border-fm-color-neutral-gray-100 fm-typo-en-body-sm-400 text-fm-color-typo-tertiary" }, dt = /* @__PURE__ */ j({
|
|
935
945
|
__name: "PromotionApplicationMix",
|
|
936
946
|
props: {
|
|
937
947
|
mix: {}
|
|
938
948
|
},
|
|
939
949
|
setup(t) {
|
|
940
|
-
return (
|
|
950
|
+
return (r, e) => {
|
|
941
951
|
const s = _("FmCard");
|
|
942
|
-
return
|
|
952
|
+
return n(), h(s, {
|
|
943
953
|
variant: "outlined",
|
|
944
954
|
class: "p-24"
|
|
945
955
|
}, {
|
|
946
|
-
default:
|
|
956
|
+
default: $(() => [
|
|
947
957
|
e[4] || (e[4] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Customer mix ", -1)),
|
|
948
958
|
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",
|
|
959
|
+
a("div", Je, [
|
|
960
|
+
a("div", We, [
|
|
951
961
|
e[0] || (e[0] = a("div", { class: "flex items-center gap-8" }, [
|
|
952
962
|
a("div", { class: "w-8 h-8 rounded-sm bg-fm-color-primary" }),
|
|
953
963
|
a("span", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Member bills ")
|
|
954
964
|
], -1)),
|
|
955
|
-
a("div",
|
|
956
|
-
a("div",
|
|
965
|
+
a("div", Ze, u(t.mix.memberBills), 1),
|
|
966
|
+
a("div", et, u(t.mix.appliedMembers) + " applied members ", 1)
|
|
957
967
|
]),
|
|
958
|
-
a("div",
|
|
968
|
+
a("div", tt, [
|
|
959
969
|
e[1] || (e[1] = a("div", { class: "flex items-center gap-8" }, [
|
|
960
970
|
a("div", { class: "w-8 h-8 rounded-sm bg-fm-color-neutral-gray-200" }),
|
|
961
971
|
a("span", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Non-member bills ")
|
|
962
972
|
], -1)),
|
|
963
|
-
a("div",
|
|
973
|
+
a("div", at, u(t.mix.nonMemberBills), 1)
|
|
964
974
|
])
|
|
965
975
|
]),
|
|
966
|
-
a("div",
|
|
967
|
-
a("div",
|
|
976
|
+
a("div", st, [
|
|
977
|
+
a("div", rt, [
|
|
968
978
|
e[2] || (e[2] = a("div", { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary" }, " Member sales ", -1)),
|
|
969
|
-
a("div",
|
|
979
|
+
a("div", lt, u(t.mix.memberSales), 1)
|
|
970
980
|
]),
|
|
971
|
-
a("div",
|
|
981
|
+
a("div", nt, [
|
|
972
982
|
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",
|
|
983
|
+
a("div", it, u(t.mix.nonMemberSales), 1)
|
|
974
984
|
])
|
|
975
985
|
]),
|
|
976
986
|
a("div", {
|
|
@@ -978,7 +988,7 @@ const Ge = {
|
|
|
978
988
|
role: "img",
|
|
979
989
|
"aria-label": t.mix.summary
|
|
980
990
|
}, [
|
|
981
|
-
a("div",
|
|
991
|
+
a("div", ct, [
|
|
982
992
|
a("div", {
|
|
983
993
|
class: "h-full bg-fm-color-primary",
|
|
984
994
|
style: me({ width: t.mix.memberBillSharePct + "%" })
|
|
@@ -988,85 +998,85 @@ const Ge = {
|
|
|
988
998
|
style: me({ width: t.mix.nonMemberBillSharePct + "%" })
|
|
989
999
|
}, null, 4)
|
|
990
1000
|
]),
|
|
991
|
-
a("div",
|
|
1001
|
+
a("div", mt, [
|
|
992
1002
|
a("span", null, "Members " + u(t.mix.memberBillSharePct) + "%", 1),
|
|
993
1003
|
a("span", null, "Non-members " + u(t.mix.nonMemberBillSharePct) + "%", 1)
|
|
994
1004
|
])
|
|
995
|
-
], 8,
|
|
996
|
-
a("div",
|
|
1005
|
+
], 8, ot),
|
|
1006
|
+
a("div", ut, u(t.mix.summary), 1)
|
|
997
1007
|
]),
|
|
998
1008
|
_: 1
|
|
999
1009
|
});
|
|
1000
1010
|
};
|
|
1001
1011
|
}
|
|
1002
|
-
}),
|
|
1012
|
+
}), pt = { class: "flex xs:flex-col items-stretch" }, yt = { class: "flex-1 min-w-0 px-16 xs:px-4 xs:py-12" }, bt = { class: "flex items-center gap-4" }, vt = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-tertiary" }, ft = {
|
|
1003
1013
|
key: 0,
|
|
1004
1014
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-disabled italic mt-8"
|
|
1005
|
-
}, gt = { class: "fm-typo-en-title-sm-800 text-fm-color-typo-primary mt-8" },
|
|
1015
|
+
}, gt = { class: "fm-typo-en-title-sm-800 text-fm-color-typo-primary mt-8" }, ht = {
|
|
1006
1016
|
key: 0,
|
|
1007
1017
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1008
|
-
},
|
|
1018
|
+
}, xt = {
|
|
1009
1019
|
key: 1,
|
|
1010
1020
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1011
|
-
},
|
|
1021
|
+
}, kt = {
|
|
1012
1022
|
key: 2,
|
|
1013
1023
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1014
|
-
},
|
|
1024
|
+
}, wt = {
|
|
1015
1025
|
key: 3,
|
|
1016
1026
|
class: "mt-8"
|
|
1017
|
-
},
|
|
1027
|
+
}, Rt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, Mt = {
|
|
1018
1028
|
key: 0,
|
|
1019
1029
|
class: "flex items-center justify-center px-4 xs:py-4"
|
|
1020
|
-
},
|
|
1030
|
+
}, _t = /* @__PURE__ */ j({
|
|
1021
1031
|
__name: "CampaignFunnel",
|
|
1022
1032
|
props: {
|
|
1023
1033
|
stages: {}
|
|
1024
1034
|
},
|
|
1025
1035
|
setup(t) {
|
|
1026
|
-
return (
|
|
1027
|
-
const s = _("FmProgressBar"),
|
|
1028
|
-
return
|
|
1036
|
+
return (r, e) => {
|
|
1037
|
+
const s = _("FmProgressBar"), c = _("FmIcon"), y = _("FmCard");
|
|
1038
|
+
return n(), h(y, {
|
|
1029
1039
|
variant: "outlined",
|
|
1030
1040
|
class: "p-24"
|
|
1031
1041
|
}, {
|
|
1032
|
-
default:
|
|
1042
|
+
default: $(() => [
|
|
1033
1043
|
e[0] || (e[0] = a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Campaign funnel ", -1)),
|
|
1034
1044
|
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:
|
|
1045
|
+
a("div", pt, [
|
|
1046
|
+
(n(!0), v(E, null, ee(t.stages, (i, f) => (n(), v("div", {
|
|
1047
|
+
key: i.key,
|
|
1038
1048
|
class: "flex xs:flex-col flex-1 min-w-0 items-stretch"
|
|
1039
1049
|
}, [
|
|
1040
|
-
a("div",
|
|
1041
|
-
a("div",
|
|
1042
|
-
a("span",
|
|
1043
|
-
|
|
1050
|
+
a("div", yt, [
|
|
1051
|
+
a("div", bt, [
|
|
1052
|
+
a("span", vt, u(i.label), 1),
|
|
1053
|
+
i.helper ? (n(), h(Z, {
|
|
1044
1054
|
key: 0,
|
|
1045
|
-
description:
|
|
1046
|
-
}, null, 8, ["description"])) :
|
|
1055
|
+
description: i.helper
|
|
1056
|
+
}, null, 8, ["description"])) : g("", !0)
|
|
1047
1057
|
]),
|
|
1048
|
-
|
|
1049
|
-
a("div", gt, u(
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1058
|
+
i.notSupported ? (n(), v("div", ft, u(i.helper), 1)) : (n(), v(E, { key: 1 }, [
|
|
1059
|
+
a("div", gt, u(i.primaryLabel ?? i.membersLabel ?? "—"), 1),
|
|
1060
|
+
i.unitsLabel ? (n(), v("div", ht, u(i.unitsLabel), 1)) : g("", !0),
|
|
1061
|
+
i.valueLabel ? (n(), v("div", xt, u(i.valueLabel), 1)) : g("", !0),
|
|
1062
|
+
i.extra ? (n(), v("div", kt, u(i.extra), 1)) : g("", !0),
|
|
1063
|
+
i.ratePct !== void 0 ? (n(), v("div", wt, [
|
|
1054
1064
|
I(s, {
|
|
1055
|
-
value:
|
|
1065
|
+
value: i.ratePct,
|
|
1056
1066
|
color: "primary",
|
|
1057
1067
|
size: "sm"
|
|
1058
1068
|
}, null, 8, ["value"]),
|
|
1059
|
-
a("div",
|
|
1060
|
-
])) :
|
|
1069
|
+
a("div", Rt, u(i.rateLabel), 1)
|
|
1070
|
+
])) : g("", !0)
|
|
1061
1071
|
], 64))
|
|
1062
1072
|
]),
|
|
1063
|
-
|
|
1064
|
-
I(
|
|
1073
|
+
f < t.stages.length - 1 ? (n(), v("div", Mt, [
|
|
1074
|
+
I(c, {
|
|
1065
1075
|
name: "chevron_right",
|
|
1066
1076
|
size: "sm",
|
|
1067
1077
|
class: "text-fm-color-neutral-gray-300 xs:rotate-90"
|
|
1068
1078
|
})
|
|
1069
|
-
])) :
|
|
1079
|
+
])) : g("", !0)
|
|
1070
1080
|
]))), 128))
|
|
1071
1081
|
])
|
|
1072
1082
|
]),
|
|
@@ -1074,7 +1084,7 @@ const Ge = {
|
|
|
1074
1084
|
});
|
|
1075
1085
|
};
|
|
1076
1086
|
}
|
|
1077
|
-
}),
|
|
1087
|
+
}), St = { class: "grid grid-cols-[repeat(auto-fit,minmax(200px,1fr))] xs:grid-cols-1 gap-16" }, It = { class: "flex items-center gap-8" }, Ct = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary flex-1 min-w-0 truncate" }, Ot = {
|
|
1078
1088
|
key: 0,
|
|
1079
1089
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
|
|
1080
1090
|
}, te = /* @__PURE__ */ j({
|
|
@@ -1083,97 +1093,97 @@ const Ge = {
|
|
|
1083
1093
|
cards: {}
|
|
1084
1094
|
},
|
|
1085
1095
|
setup(t) {
|
|
1086
|
-
return (
|
|
1096
|
+
return (r, e) => {
|
|
1087
1097
|
const s = _("FmCard");
|
|
1088
|
-
return
|
|
1089
|
-
(
|
|
1090
|
-
key:
|
|
1098
|
+
return n(), v("section", St, [
|
|
1099
|
+
(n(!0), v(E, null, ee(t.cards, (c) => (n(), h(s, {
|
|
1100
|
+
key: c.key,
|
|
1091
1101
|
variant: "outlined",
|
|
1092
1102
|
class: "flex flex-col gap-4 p-16 min-w-0 overflow-hidden"
|
|
1093
1103
|
}, {
|
|
1094
|
-
default:
|
|
1095
|
-
a("div",
|
|
1096
|
-
a("span",
|
|
1097
|
-
|
|
1104
|
+
default: $(() => [
|
|
1105
|
+
a("div", It, [
|
|
1106
|
+
a("span", Ct, u(c.label), 1),
|
|
1107
|
+
c.helper ? (n(), h(Z, {
|
|
1098
1108
|
key: 0,
|
|
1099
|
-
description:
|
|
1100
|
-
}, null, 8, ["description"])) :
|
|
1109
|
+
description: c.helper
|
|
1110
|
+
}, null, 8, ["description"])) : g("", !0)
|
|
1101
1111
|
]),
|
|
1102
1112
|
a("div", {
|
|
1103
1113
|
class: W([
|
|
1104
1114
|
"fm-typo-en-title-sm-800 truncate",
|
|
1105
|
-
|
|
1115
|
+
c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1106
1116
|
])
|
|
1107
|
-
}, u(
|
|
1108
|
-
|
|
1117
|
+
}, u(c.value), 3),
|
|
1118
|
+
c.sub ? (n(), v("div", Ot, u(c.sub), 1)) : g("", !0)
|
|
1109
1119
|
]),
|
|
1110
1120
|
_: 2
|
|
1111
1121
|
}, 1024))), 128))
|
|
1112
1122
|
]);
|
|
1113
1123
|
};
|
|
1114
1124
|
}
|
|
1115
|
-
}),
|
|
1125
|
+
}), Pt = { class: "flex items-center justify-between gap-12 flex-wrap mb-16 xs:flex-col xs:items-start" }, $t = {
|
|
1116
1126
|
key: 0,
|
|
1117
1127
|
class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary mb-12"
|
|
1118
|
-
},
|
|
1128
|
+
}, Dt = /* @__PURE__ */ j({
|
|
1119
1129
|
__name: "CampaignTrendChart",
|
|
1120
1130
|
props: {
|
|
1121
1131
|
modes: {}
|
|
1122
1132
|
},
|
|
1123
1133
|
setup(t) {
|
|
1124
1134
|
var R;
|
|
1125
|
-
const
|
|
1126
|
-
() =>
|
|
1127
|
-
), y =
|
|
1128
|
-
() =>
|
|
1129
|
-
),
|
|
1130
|
-
() =>
|
|
1131
|
-
),
|
|
1135
|
+
const r = t, e = ["#FF7823", "#B2B3B6"], s = H(((R = r.modes[0]) == null ? void 0 : R.key) ?? ""), c = P(
|
|
1136
|
+
() => r.modes.map((p) => ({ label: p.label, value: p.key }))
|
|
1137
|
+
), y = P(
|
|
1138
|
+
() => c.value.find((p) => p.value === s.value) ?? null
|
|
1139
|
+
), i = P(
|
|
1140
|
+
() => r.modes.find((p) => p.key === s.value) ?? r.modes[0]
|
|
1141
|
+
), f = P(
|
|
1132
1142
|
() => {
|
|
1133
1143
|
var p;
|
|
1134
|
-
return (((p =
|
|
1144
|
+
return (((p = i.value) == null ? void 0 : p.series) ?? []).map((L, d) => ({
|
|
1135
1145
|
label: L.label,
|
|
1136
1146
|
data: L.values,
|
|
1137
1147
|
color: e[d] ?? e[e.length - 1],
|
|
1138
1148
|
dash: d > 0
|
|
1139
1149
|
}));
|
|
1140
1150
|
}
|
|
1141
|
-
),
|
|
1151
|
+
), o = { display: !0 };
|
|
1142
1152
|
return (p, L) => {
|
|
1143
1153
|
const d = _("FmButtonGroup"), U = _("FmLineChart"), M = _("FmCard");
|
|
1144
|
-
return
|
|
1154
|
+
return n(), h(M, {
|
|
1145
1155
|
variant: "outlined",
|
|
1146
1156
|
class: "p-24"
|
|
1147
1157
|
}, {
|
|
1148
|
-
default:
|
|
1149
|
-
a("div",
|
|
1158
|
+
default: $(() => [
|
|
1159
|
+
a("div", Pt, [
|
|
1150
1160
|
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 ? (
|
|
1161
|
+
t.modes.length > 1 ? (n(), h(d, {
|
|
1152
1162
|
key: 0,
|
|
1153
|
-
items:
|
|
1154
|
-
"model-value":
|
|
1163
|
+
items: l(c),
|
|
1164
|
+
"model-value": l(y),
|
|
1155
1165
|
"onUpdate:modelValue": L[0] || (L[0] = (k) => s.value = k.value)
|
|
1156
|
-
}, null, 8, ["items", "model-value"])) :
|
|
1166
|
+
}, null, 8, ["items", "model-value"])) : g("", !0)
|
|
1157
1167
|
]),
|
|
1158
|
-
|
|
1159
|
-
|
|
1168
|
+
l(i) ? (n(), v("div", $t, u(l(i).label), 1)) : g("", !0),
|
|
1169
|
+
l(i) ? (n(), h(U, {
|
|
1160
1170
|
key: 1,
|
|
1161
|
-
datasets:
|
|
1162
|
-
"x-axis": { categories:
|
|
1163
|
-
"x-cfg":
|
|
1164
|
-
"y-cfg":
|
|
1171
|
+
datasets: l(f),
|
|
1172
|
+
"x-axis": { categories: l(i).categories },
|
|
1173
|
+
"x-cfg": o,
|
|
1174
|
+
"y-cfg": o,
|
|
1165
1175
|
legend: { display: !0 },
|
|
1166
1176
|
height: "150px"
|
|
1167
|
-
}, null, 8, ["datasets", "x-axis"])) :
|
|
1177
|
+
}, null, 8, ["datasets", "x-axis"])) : g("", !0)
|
|
1168
1178
|
]),
|
|
1169
1179
|
_: 1
|
|
1170
1180
|
});
|
|
1171
1181
|
};
|
|
1172
1182
|
}
|
|
1173
|
-
}),
|
|
1183
|
+
}), Et = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Lt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-12" }, Tt = {
|
|
1174
1184
|
key: 1,
|
|
1175
1185
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary mt-8"
|
|
1176
|
-
},
|
|
1186
|
+
}, Bt = {
|
|
1177
1187
|
key: 2,
|
|
1178
1188
|
class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary mt-8"
|
|
1179
1189
|
}, de = /* @__PURE__ */ j({
|
|
@@ -1184,44 +1194,44 @@ const Ge = {
|
|
|
1184
1194
|
emptyMessage: { default: "No outlet activity was recorded for this campaign." }
|
|
1185
1195
|
},
|
|
1186
1196
|
setup(t) {
|
|
1187
|
-
const
|
|
1188
|
-
() =>
|
|
1197
|
+
const r = t, e = P(
|
|
1198
|
+
() => r.breakdown ? je(r.breakdown) : []
|
|
1189
1199
|
);
|
|
1190
|
-
return (s,
|
|
1191
|
-
const y = _("FmTable"),
|
|
1192
|
-
return
|
|
1200
|
+
return (s, c) => {
|
|
1201
|
+
const y = _("FmTable"), i = _("FmCard");
|
|
1202
|
+
return n(), h(i, {
|
|
1193
1203
|
variant: "outlined",
|
|
1194
1204
|
class: "p-24"
|
|
1195
1205
|
}, {
|
|
1196
|
-
default:
|
|
1197
|
-
var
|
|
1206
|
+
default: $(() => {
|
|
1207
|
+
var f;
|
|
1198
1208
|
return [
|
|
1199
|
-
a("div",
|
|
1200
|
-
(
|
|
1201
|
-
a("div",
|
|
1209
|
+
a("div", Et, u(t.title), 1),
|
|
1210
|
+
(f = t.breakdown) != null && f.rows.length ? (n(), v(E, { key: 0 }, [
|
|
1211
|
+
a("div", Lt, " By " + u(t.breakdown.dimension), 1),
|
|
1202
1212
|
I(y, {
|
|
1203
1213
|
"row-data": t.breakdown.rows,
|
|
1204
|
-
"column-defs":
|
|
1214
|
+
"column-defs": l(e),
|
|
1205
1215
|
"column-filter": [],
|
|
1206
1216
|
"hide-footer": ""
|
|
1207
1217
|
}, null, 8, ["row-data", "column-defs"])
|
|
1208
|
-
], 64)) : t.breakdown ? (
|
|
1218
|
+
], 64)) : t.breakdown ? (n(), v("div", Tt, u(t.emptyMessage), 1)) : (n(), v("div", Bt, " No breakdown dimension is available for this campaign. "))
|
|
1209
1219
|
];
|
|
1210
1220
|
}),
|
|
1211
1221
|
_: 1
|
|
1212
1222
|
});
|
|
1213
1223
|
};
|
|
1214
1224
|
}
|
|
1215
|
-
}),
|
|
1225
|
+
}), Nt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Vt = {
|
|
1216
1226
|
key: 0,
|
|
1217
1227
|
class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4 mb-12"
|
|
1218
|
-
},
|
|
1228
|
+
}, Ut = {
|
|
1219
1229
|
key: 0,
|
|
1220
1230
|
class: "px-16 py-12 rounded-lg bg-fm-color-neutral-gray-100 min-w-0"
|
|
1221
|
-
},
|
|
1231
|
+
}, Ft = { class: "flex items-center gap-8" }, At = { class: "fm-typo-en-body-sm-600 text-fm-color-typo-secondary flex-1 min-w-0 truncate" }, qt = {
|
|
1222
1232
|
key: 1,
|
|
1223
1233
|
class: "flex items-center justify-between gap-12 py-8 border-b border-fm-color-neutral-gray-100"
|
|
1224
|
-
},
|
|
1234
|
+
}, jt = { class: "flex items-center gap-8 min-w-0" }, zt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary truncate" }, pe = /* @__PURE__ */ j({
|
|
1225
1235
|
__name: "CampaignMetricList",
|
|
1226
1236
|
props: {
|
|
1227
1237
|
title: {},
|
|
@@ -1230,49 +1240,49 @@ const Ge = {
|
|
|
1230
1240
|
variant: { default: "tile" }
|
|
1231
1241
|
},
|
|
1232
1242
|
setup(t) {
|
|
1233
|
-
return (
|
|
1243
|
+
return (r, e) => {
|
|
1234
1244
|
const s = _("FmCard");
|
|
1235
|
-
return
|
|
1245
|
+
return n(), h(s, {
|
|
1236
1246
|
variant: "outlined",
|
|
1237
1247
|
class: "p-24"
|
|
1238
1248
|
}, {
|
|
1239
|
-
default:
|
|
1240
|
-
a("div",
|
|
1241
|
-
t.caption ? (
|
|
1249
|
+
default: $(() => [
|
|
1250
|
+
a("div", Nt, u(t.title), 1),
|
|
1251
|
+
t.caption ? (n(), v("div", Vt, u(t.caption), 1)) : g("", !0),
|
|
1242
1252
|
a("div", {
|
|
1243
1253
|
class: W(["grid grid-cols-[repeat(auto-fit,minmax(220px,1fr))] xs:grid-cols-1", t.variant === "tile" ? "gap-16" : "gap-x-16"])
|
|
1244
1254
|
}, [
|
|
1245
|
-
(
|
|
1246
|
-
key:
|
|
1255
|
+
(n(!0), v(E, null, ee(t.items, (c) => (n(), v(E, {
|
|
1256
|
+
key: c.key
|
|
1247
1257
|
}, [
|
|
1248
|
-
t.variant === "tile" ? (
|
|
1249
|
-
a("div",
|
|
1250
|
-
a("span",
|
|
1251
|
-
|
|
1258
|
+
t.variant === "tile" ? (n(), v("div", Ut, [
|
|
1259
|
+
a("div", Ft, [
|
|
1260
|
+
a("span", At, u(c.label), 1),
|
|
1261
|
+
c.helper ? (n(), h(Z, {
|
|
1252
1262
|
key: 0,
|
|
1253
|
-
description:
|
|
1254
|
-
}, null, 8, ["description"])) :
|
|
1263
|
+
description: c.helper
|
|
1264
|
+
}, null, 8, ["description"])) : g("", !0)
|
|
1255
1265
|
]),
|
|
1256
1266
|
a("div", {
|
|
1257
1267
|
class: W([
|
|
1258
1268
|
"fm-typo-en-body-lg-600 mt-4 truncate",
|
|
1259
|
-
|
|
1269
|
+
c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1260
1270
|
])
|
|
1261
|
-
}, u(
|
|
1262
|
-
])) : (
|
|
1263
|
-
a("div",
|
|
1264
|
-
a("span",
|
|
1265
|
-
|
|
1271
|
+
}, u(c.value), 3)
|
|
1272
|
+
])) : (n(), v("div", qt, [
|
|
1273
|
+
a("div", jt, [
|
|
1274
|
+
a("span", zt, u(c.label), 1),
|
|
1275
|
+
c.helper ? (n(), h(Z, {
|
|
1266
1276
|
key: 0,
|
|
1267
|
-
description:
|
|
1268
|
-
}, null, 8, ["description"])) :
|
|
1277
|
+
description: c.helper
|
|
1278
|
+
}, null, 8, ["description"])) : g("", !0)
|
|
1269
1279
|
]),
|
|
1270
1280
|
a("span", {
|
|
1271
1281
|
class: W([
|
|
1272
1282
|
"fm-typo-en-body-md-600 whitespace-nowrap",
|
|
1273
|
-
|
|
1283
|
+
c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
|
|
1274
1284
|
])
|
|
1275
|
-
}, u(
|
|
1285
|
+
}, u(c.value), 3)
|
|
1276
1286
|
]))
|
|
1277
1287
|
], 64))), 128))
|
|
1278
1288
|
], 2)
|
|
@@ -1281,54 +1291,54 @@ const Ge = {
|
|
|
1281
1291
|
});
|
|
1282
1292
|
};
|
|
1283
1293
|
}
|
|
1284
|
-
}),
|
|
1294
|
+
}), Gt = { class: "flex items-center gap-8" }, Ht = { class: "px-24 flex flex-col gap-16 pb-24" }, Kt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, Yt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-tertiary" }, Qt = {
|
|
1285
1295
|
key: 0,
|
|
1286
1296
|
class: "flex flex-col gap-12"
|
|
1287
|
-
},
|
|
1297
|
+
}, Xt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Jt = {
|
|
1288
1298
|
key: 1,
|
|
1289
1299
|
class: "flex flex-col gap-12"
|
|
1290
|
-
},
|
|
1300
|
+
}, oa = /* @__PURE__ */ j({
|
|
1291
1301
|
__name: "CampaignAnalytic",
|
|
1292
1302
|
setup(t) {
|
|
1293
|
-
const { t:
|
|
1303
|
+
const { t: r } = ye(), e = Me(), s = _e(), { global: c, minor: y } = xe, i = he(), f = H(), o = H(), R = H(), p = H(!1), L = H(!1), d = P(() => {
|
|
1294
1304
|
var O;
|
|
1295
|
-
return (O =
|
|
1296
|
-
}), U =
|
|
1297
|
-
() => d.value ?
|
|
1298
|
-
), M =
|
|
1305
|
+
return (O = f.value) == null ? void 0 : O.campaign;
|
|
1306
|
+
}), U = P(
|
|
1307
|
+
() => d.value ? Le(d.value.type) : void 0
|
|
1308
|
+
), M = P(() => {
|
|
1299
1309
|
var O;
|
|
1300
1310
|
return (O = U.value) == null ? void 0 : O.report;
|
|
1301
|
-
}), k =
|
|
1311
|
+
}), k = P(() => {
|
|
1302
1312
|
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" ?
|
|
1313
|
+
return M.value && ((O = d.value) == null ? void 0 : O.type) === "COIN" ? Ue(
|
|
1304
1314
|
M.value,
|
|
1305
|
-
((x =
|
|
1306
|
-
) : M.value && ((z = d.value) == null ? void 0 : z.type) === "POINT" ?
|
|
1315
|
+
((x = o.value) == null ? void 0 : x.type) === "COIN" ? o.value : ne()
|
|
1316
|
+
) : M.value && ((z = d.value) == null ? void 0 : z.type) === "POINT" ? Fe(
|
|
1307
1317
|
M.value,
|
|
1308
|
-
((G =
|
|
1309
|
-
) : M.value && ((T = d.value) == null ? void 0 : T.type) === "CREDIT" ?
|
|
1318
|
+
((G = o.value) == null ? void 0 : G.type) === "POINT" ? o.value : ie()
|
|
1319
|
+
) : M.value && ((T = d.value) == null ? void 0 : T.type) === "CREDIT" ? Ae(
|
|
1310
1320
|
M.value,
|
|
1311
|
-
((B =
|
|
1312
|
-
) : M.value && ((F = d.value) == null ? void 0 : F.type) === "GAME" ?
|
|
1321
|
+
((B = o.value) == null ? void 0 : B.type) === "CREDIT" ? o.value : oe()
|
|
1322
|
+
) : M.value && ((F = d.value) == null ? void 0 : F.type) === "GAME" ? Ve(
|
|
1313
1323
|
M.value,
|
|
1314
|
-
((S =
|
|
1315
|
-
) : M.value && ((b = d.value) == null ? void 0 : b.type) === "MISSION" ?
|
|
1324
|
+
((S = o.value) == null ? void 0 : S.type) === "GAME" ? o.value : le()
|
|
1325
|
+
) : M.value && ((b = d.value) == null ? void 0 : b.type) === "MISSION" ? Ne(
|
|
1316
1326
|
M.value,
|
|
1317
|
-
((A =
|
|
1318
|
-
) : M.value && ((q = d.value) == null ? void 0 : q.type) === "PROMOTION" ?
|
|
1327
|
+
((A = o.value) == null ? void 0 : A.type) === "MISSION" ? o.value : re()
|
|
1328
|
+
) : M.value && ((q = d.value) == null ? void 0 : q.type) === "PROMOTION" ? Be(
|
|
1319
1329
|
M.value,
|
|
1320
|
-
((K =
|
|
1321
|
-
) : M.value && ((Y =
|
|
1330
|
+
((K = o.value) == null ? void 0 : K.type) === "PROMOTION" ? o.value : se()
|
|
1331
|
+
) : M.value && ((Y = o.value) == null ? void 0 : Y.type) === "VOUCHER" ? Te(
|
|
1322
1332
|
M.value,
|
|
1323
|
-
|
|
1333
|
+
o.value,
|
|
1324
1334
|
R.value
|
|
1325
1335
|
) : M.value;
|
|
1326
|
-
}),
|
|
1327
|
-
() => d.value ?
|
|
1328
|
-
),
|
|
1329
|
-
() => d.value && d.value.type !== "MEMBERSHIP" ?
|
|
1336
|
+
}), be = P(
|
|
1337
|
+
() => d.value ? r(ke(d.value.timeframeOptions)) : ""
|
|
1338
|
+
), ve = P(
|
|
1339
|
+
() => d.value && d.value.type !== "MEMBERSHIP" ? we(d.value) : void 0
|
|
1330
1340
|
);
|
|
1331
|
-
function
|
|
1341
|
+
function fe() {
|
|
1332
1342
|
return {
|
|
1333
1343
|
type: "VOUCHER",
|
|
1334
1344
|
scope: { startDate: "", endDate: "" },
|
|
@@ -1437,60 +1447,60 @@ const Ge = {
|
|
|
1437
1447
|
performanceDetails: []
|
|
1438
1448
|
};
|
|
1439
1449
|
}
|
|
1440
|
-
return
|
|
1450
|
+
return ge(async () => {
|
|
1441
1451
|
var O, x, z, G, T, B, F;
|
|
1442
1452
|
try {
|
|
1443
|
-
await
|
|
1453
|
+
await c(async () => {
|
|
1444
1454
|
var A, q;
|
|
1445
|
-
|
|
1455
|
+
f.value = await V.readById(e.params.id);
|
|
1446
1456
|
const b = e.meta.campaignType;
|
|
1447
|
-
L.value = !!b && ((q = (A =
|
|
1457
|
+
L.value = !!b && ((q = (A = f.value) == null ? void 0 : A.campaign) == null ? void 0 : q.type) !== b;
|
|
1448
1458
|
});
|
|
1449
1459
|
const S = {
|
|
1450
|
-
timezone: ue[
|
|
1460
|
+
timezone: ue[i.currentCountry.value || "MY"] ?? ue.MY
|
|
1451
1461
|
};
|
|
1452
|
-
((O =
|
|
1462
|
+
((O = f.value) == null ? void 0 : O.campaign.type) === "VOUCHER" ? (o.value = fe(), await Promise.all([
|
|
1453
1463
|
y(
|
|
1454
1464
|
() => V.readAnalyticsOverview(e.params.id, {
|
|
1455
1465
|
...S
|
|
1456
1466
|
})
|
|
1457
1467
|
).then((b) => {
|
|
1458
|
-
b.type === "VOUCHER" && (
|
|
1468
|
+
b.type === "VOUCHER" && (o.value = b);
|
|
1459
1469
|
}).catch(() => {
|
|
1460
1470
|
}),
|
|
1461
1471
|
y(
|
|
1462
1472
|
() => V.readAnalyticsTrend(e.params.id, S)
|
|
1463
1473
|
).then((b) => R.value = b).catch(() => {
|
|
1464
1474
|
})
|
|
1465
|
-
])) : ((x =
|
|
1475
|
+
])) : ((x = f.value) == null ? void 0 : x.campaign.type) === "PROMOTION" ? (o.value = se(), await y(
|
|
1466
1476
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1467
1477
|
).then((b) => {
|
|
1468
|
-
b.type === "PROMOTION" && (
|
|
1478
|
+
b.type === "PROMOTION" && (o.value = b);
|
|
1469
1479
|
}).catch(() => {
|
|
1470
|
-
})) : ((z =
|
|
1480
|
+
})) : ((z = f.value) == null ? void 0 : z.campaign.type) === "MISSION" ? (o.value = re(), await y(
|
|
1471
1481
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1472
1482
|
).then((b) => {
|
|
1473
|
-
b.type === "MISSION" && (
|
|
1483
|
+
b.type === "MISSION" && (o.value = b);
|
|
1474
1484
|
}).catch(() => {
|
|
1475
|
-
})) : ((G =
|
|
1485
|
+
})) : ((G = f.value) == null ? void 0 : G.campaign.type) === "GAME" ? (o.value = le(), await y(
|
|
1476
1486
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1477
1487
|
).then((b) => {
|
|
1478
|
-
b.type === "GAME" && (
|
|
1488
|
+
b.type === "GAME" && (o.value = b);
|
|
1479
1489
|
}).catch(() => {
|
|
1480
|
-
})) : ((T =
|
|
1490
|
+
})) : ((T = f.value) == null ? void 0 : T.campaign.type) === "COIN" ? (o.value = ne(), await y(
|
|
1481
1491
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1482
1492
|
).then((b) => {
|
|
1483
|
-
b.type === "COIN" && (
|
|
1493
|
+
b.type === "COIN" && (o.value = b);
|
|
1484
1494
|
}).catch(() => {
|
|
1485
|
-
})) : ((B =
|
|
1495
|
+
})) : ((B = f.value) == null ? void 0 : B.campaign.type) === "POINT" ? (o.value = ie(), await y(
|
|
1486
1496
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1487
1497
|
).then((b) => {
|
|
1488
|
-
b.type === "POINT" && (
|
|
1498
|
+
b.type === "POINT" && (o.value = b);
|
|
1489
1499
|
}).catch(() => {
|
|
1490
|
-
})) : ((F =
|
|
1500
|
+
})) : ((F = f.value) == null ? void 0 : F.campaign.type) === "CREDIT" && (o.value = oe(), await y(
|
|
1491
1501
|
() => V.readAnalyticsOverview(e.params.id, S)
|
|
1492
1502
|
).then((b) => {
|
|
1493
|
-
b.type === "CREDIT" && (
|
|
1503
|
+
b.type === "CREDIT" && (o.value = b);
|
|
1494
1504
|
}).catch(() => {
|
|
1495
1505
|
}));
|
|
1496
1506
|
} catch {
|
|
@@ -1499,27 +1509,27 @@ const Ge = {
|
|
|
1499
1509
|
}), (O, x) => {
|
|
1500
1510
|
var F, S, b, A, q, K, Y, ce;
|
|
1501
1511
|
const z = _("FmPill"), G = _("FmPageHead"), T = _("FmIcon"), B = _("FmCard");
|
|
1502
|
-
return
|
|
1512
|
+
return n(), v(E, null, [
|
|
1503
1513
|
I(G, {
|
|
1504
1514
|
title: "Campaign analytic",
|
|
1505
1515
|
"back-button": !0,
|
|
1506
|
-
"onClick:back": x[0] || (x[0] = (Q) =>
|
|
1516
|
+
"onClick:back": x[0] || (x[0] = (Q) => l(s).back())
|
|
1507
1517
|
}, {
|
|
1508
|
-
title:
|
|
1509
|
-
a("div",
|
|
1518
|
+
title: $(() => [
|
|
1519
|
+
a("div", Gt, [
|
|
1510
1520
|
x[1] || (x[1] = a("span", { class: "fm-typo-en-title-md-600 fm-step-title line-clamp-2" }, " Campaign analytic ", -1)),
|
|
1511
1521
|
I(z, { variant: "beta" })
|
|
1512
1522
|
])
|
|
1513
1523
|
]),
|
|
1514
1524
|
_: 1
|
|
1515
1525
|
}),
|
|
1516
|
-
a("div",
|
|
1517
|
-
|
|
1526
|
+
a("div", Ht, [
|
|
1527
|
+
l(p) ? (n(), h(B, {
|
|
1518
1528
|
key: 0,
|
|
1519
1529
|
variant: "outlined",
|
|
1520
1530
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
1521
1531
|
}, {
|
|
1522
|
-
default:
|
|
1532
|
+
default: $(() => [
|
|
1523
1533
|
I(T, {
|
|
1524
1534
|
name: "error",
|
|
1525
1535
|
outline: "",
|
|
@@ -1530,23 +1540,23 @@ const Ge = {
|
|
|
1530
1540
|
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
1541
|
]),
|
|
1532
1542
|
_: 1
|
|
1533
|
-
})) :
|
|
1534
|
-
I(
|
|
1535
|
-
"campaign-name":
|
|
1536
|
-
"dates-label":
|
|
1537
|
-
|
|
1538
|
-
"mechanic-label": (F =
|
|
1539
|
-
icon: (S =
|
|
1540
|
-
objective: (b =
|
|
1541
|
-
"report-range-label": (A =
|
|
1542
|
-
"audience-label": (q =
|
|
1543
|
-
}, null, 8, ["campaign-name", "dates-label", "status
|
|
1544
|
-
|
|
1543
|
+
})) : l(d) ? (n(), v(E, { key: 1 }, [
|
|
1544
|
+
I(Xe, {
|
|
1545
|
+
"campaign-name": l(d).name,
|
|
1546
|
+
"dates-label": l(be),
|
|
1547
|
+
status: l(ve),
|
|
1548
|
+
"mechanic-label": (F = l(U)) == null ? void 0 : F.label,
|
|
1549
|
+
icon: (S = l(U)) == null ? void 0 : S.icon,
|
|
1550
|
+
objective: (b = l(U)) == null ? void 0 : b.objective,
|
|
1551
|
+
"report-range-label": (A = l(k)) == null ? void 0 : A.reportRangeLabel,
|
|
1552
|
+
"audience-label": (q = l(k)) == null ? void 0 : q.audienceLabel
|
|
1553
|
+
}, null, 8, ["campaign-name", "dates-label", "status", "mechanic-label", "icon", "objective", "report-range-label", "audience-label"]),
|
|
1554
|
+
l(L) ? (n(), h(B, {
|
|
1545
1555
|
key: 0,
|
|
1546
1556
|
variant: "outlined",
|
|
1547
1557
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
1548
1558
|
}, {
|
|
1549
|
-
default:
|
|
1559
|
+
default: $(() => [
|
|
1550
1560
|
I(T, {
|
|
1551
1561
|
name: "wrong_location",
|
|
1552
1562
|
outline: "",
|
|
@@ -1554,15 +1564,15 @@ const Ge = {
|
|
|
1554
1564
|
class: "text-fm-color-neutral-gray-300"
|
|
1555
1565
|
}),
|
|
1556
1566
|
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",
|
|
1567
|
+
a("div", Kt, " It is a " + u(l(d).type) + " campaign. Open it from its own campaign list to see the right report. ", 1)
|
|
1558
1568
|
]),
|
|
1559
1569
|
_: 1
|
|
1560
|
-
})) :
|
|
1570
|
+
})) : l(U) ? ((K = l(M)) == null ? void 0 : K.state) === "empty" ? (n(), h(B, {
|
|
1561
1571
|
key: 2,
|
|
1562
1572
|
variant: "outlined",
|
|
1563
1573
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
1564
1574
|
}, {
|
|
1565
|
-
default:
|
|
1575
|
+
default: $(() => [
|
|
1566
1576
|
I(T, {
|
|
1567
1577
|
name: "inbox",
|
|
1568
1578
|
outline: "",
|
|
@@ -1573,67 +1583,67 @@ const Ge = {
|
|
|
1573
1583
|
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
1584
|
]),
|
|
1575
1585
|
_: 1
|
|
1576
|
-
})) :
|
|
1577
|
-
|
|
1586
|
+
})) : l(k) ? (n(), v(E, { key: 3 }, [
|
|
1587
|
+
l(d).type === "COIN" || l(d).type === "POINT" || l(d).type === "CREDIT" ? (n(), v("section", Qt, [
|
|
1578
1588
|
a("div", null, [
|
|
1579
|
-
a("div",
|
|
1589
|
+
a("div", Xt, u((Y = l(U)) == null ? void 0 : Y.label) + " distribution summary ", 1)
|
|
1580
1590
|
]),
|
|
1581
1591
|
I(te, {
|
|
1582
|
-
cards:
|
|
1592
|
+
cards: l(k).cards
|
|
1583
1593
|
}, null, 8, ["cards"])
|
|
1584
|
-
])) :
|
|
1585
|
-
|
|
1594
|
+
])) : g("", !0),
|
|
1595
|
+
l(d).type === "MISSION" ? (n(), v("section", Jt, [
|
|
1586
1596
|
x[8] || (x[8] = a("div", null, [
|
|
1587
1597
|
a("div", { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, " Mission participation and completion "),
|
|
1588
1598
|
a("div", { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, " Campaign-lifetime member activity and completion ")
|
|
1589
1599
|
], -1)),
|
|
1590
1600
|
I(te, {
|
|
1591
|
-
cards:
|
|
1601
|
+
cards: l(k).cards
|
|
1592
1602
|
}, null, 8, ["cards"])
|
|
1593
|
-
])) :
|
|
1594
|
-
|
|
1603
|
+
])) : g("", !0),
|
|
1604
|
+
l(k).applicationMix ? (n(), h(dt, {
|
|
1595
1605
|
key: 2,
|
|
1596
|
-
mix:
|
|
1597
|
-
}, null, 8, ["mix"])) :
|
|
1606
|
+
mix: l(k).applicationMix
|
|
1607
|
+
}, null, 8, ["mix"])) : l(d).type !== "MISSION" && l(k).funnel.length ? (n(), h(_t, {
|
|
1598
1608
|
key: 3,
|
|
1599
|
-
stages:
|
|
1600
|
-
}, null, 8, ["stages"])) :
|
|
1601
|
-
|
|
1609
|
+
stages: l(k).funnel
|
|
1610
|
+
}, null, 8, ["stages"])) : g("", !0),
|
|
1611
|
+
l(d).type !== "MISSION" && l(d).type !== "COIN" && l(d).type !== "POINT" && l(d).type !== "CREDIT" && l(k).cards.length ? (n(), h(te, {
|
|
1602
1612
|
key: 4,
|
|
1603
|
-
cards:
|
|
1604
|
-
}, null, 8, ["cards"])) :
|
|
1605
|
-
|
|
1613
|
+
cards: l(k).cards
|
|
1614
|
+
}, null, 8, ["cards"])) : g("", !0),
|
|
1615
|
+
l(k).trend.length ? (n(), h(Dt, {
|
|
1606
1616
|
key: 5,
|
|
1607
|
-
modes:
|
|
1608
|
-
}, null, 8, ["modes"])) :
|
|
1609
|
-
(ce =
|
|
1617
|
+
modes: l(k).trend
|
|
1618
|
+
}, null, 8, ["modes"])) : g("", !0),
|
|
1619
|
+
(ce = l(k).breakdowns) != null && ce.length ? (n(!0), v(E, { key: 6 }, ee(l(k).breakdowns, (Q) => (n(), h(de, {
|
|
1610
1620
|
key: Q.title,
|
|
1611
1621
|
breakdown: Q.breakdown,
|
|
1612
1622
|
title: Q.title,
|
|
1613
1623
|
"empty-message": Q.emptyMessage
|
|
1614
|
-
}, null, 8, ["breakdown", "title", "empty-message"]))), 128)) : (
|
|
1624
|
+
}, null, 8, ["breakdown", "title", "empty-message"]))), 128)) : (n(), h(de, {
|
|
1615
1625
|
key: 7,
|
|
1616
|
-
breakdown:
|
|
1626
|
+
breakdown: l(k).breakdown
|
|
1617
1627
|
}, null, 8, ["breakdown"])),
|
|
1618
|
-
|
|
1628
|
+
l(k).outcomes.length ? (n(), h(pe, {
|
|
1619
1629
|
key: 8,
|
|
1620
|
-
title:
|
|
1621
|
-
caption:
|
|
1622
|
-
items:
|
|
1630
|
+
title: l(d).type === "MISSION" || l(d).type === "GAME" ? "Reward activity" : "Business outcome",
|
|
1631
|
+
caption: l(d).type === "MISSION" || l(d).type === "GAME" ? "Reward issuance attributed to this campaign" : "Financial and loyalty outcomes attributed to this campaign",
|
|
1632
|
+
items: l(k).outcomes,
|
|
1623
1633
|
variant: "tile"
|
|
1624
|
-
}, null, 8, ["title", "caption", "items"])) :
|
|
1634
|
+
}, null, 8, ["title", "caption", "items"])) : g("", !0),
|
|
1625
1635
|
I(pe, {
|
|
1626
1636
|
title: "Metric definitions",
|
|
1627
1637
|
caption: "Hover a metric for its denominator and attribution method",
|
|
1628
|
-
items:
|
|
1638
|
+
items: l(k).metrics,
|
|
1629
1639
|
variant: "row"
|
|
1630
1640
|
}, null, 8, ["items"])
|
|
1631
|
-
], 64)) :
|
|
1641
|
+
], 64)) : g("", !0) : (n(), h(B, {
|
|
1632
1642
|
key: 1,
|
|
1633
1643
|
variant: "outlined",
|
|
1634
1644
|
class: "flex flex-col items-center justify-center text-center py-80 px-40 gap-8"
|
|
1635
1645
|
}, {
|
|
1636
|
-
default:
|
|
1646
|
+
default: $(() => [
|
|
1637
1647
|
I(T, {
|
|
1638
1648
|
name: "query_stats",
|
|
1639
1649
|
outline: "",
|
|
@@ -1641,16 +1651,16 @@ const Ge = {
|
|
|
1641
1651
|
class: "text-fm-color-neutral-gray-300"
|
|
1642
1652
|
}),
|
|
1643
1653
|
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",
|
|
1654
|
+
a("div", Yt, " Reporting has not been defined for " + u(l(d).type) + " campaigns yet. ", 1)
|
|
1645
1655
|
]),
|
|
1646
1656
|
_: 1
|
|
1647
1657
|
}))
|
|
1648
|
-
], 64)) :
|
|
1658
|
+
], 64)) : g("", !0)
|
|
1649
1659
|
])
|
|
1650
1660
|
], 64);
|
|
1651
1661
|
};
|
|
1652
1662
|
}
|
|
1653
1663
|
});
|
|
1654
1664
|
export {
|
|
1655
|
-
|
|
1665
|
+
oa as default
|
|
1656
1666
|
};
|