@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.
Files changed (106) hide show
  1. package/dist/{App-DUpK_Q7f.js → App-BhjPzSiY.js} +8 -8
  2. package/dist/{AuditLogs-DWYbj4lo.js → AuditLogs-Ch6LolQM.js} +9 -9
  3. package/dist/{Bin-DieOnDz0.js → Bin-DN-id6dz.js} +8 -8
  4. package/dist/{Broadcast-UQ-vMYLl.js → Broadcast-DW2DVP1Y.js} +11 -11
  5. package/dist/{CampaignAnalytic-CfvtyBoa.js → CampaignAnalytic-DT-nSIGr.js} +381 -371
  6. 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
  7. package/dist/{Card-Te7LGbdC.js → Card-BS6sPsHL.js} +18 -18
  8. package/dist/{Collections-C-QeTQej.js → Collections-BpdLOygl.js} +8 -8
  9. package/dist/{Credit-B459_0Nt.js → Credit-iyO7xUul.js} +12 -12
  10. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-Dp3i8kku.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-q8PuaqGc.js} +31 -31
  11. package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-XgrUL64F.js → EffectSheet.vue_vue_type_style_index_0_lang-C4RJCmCF.js} +6 -6
  12. package/dist/{Experience-BUiwaqiZ.js → Experience-Cc_lsAuN.js} +12 -12
  13. package/dist/{FileSaver.min-BBLnxnqN.js → FileSaver.min-DlK0mbcs.js} +1 -1
  14. package/dist/{Game-iOJbGiNe.js → Game-N5oRxhfD.js} +13 -13
  15. package/dist/{Grab-bC6BeXxc.js → Grab-C4JOX7S9.js} +9 -9
  16. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-eiJJrTiu.js → ImageInput.vue_vue_type_script_setup_true_lang-ttCaGoaA.js} +1 -1
  17. package/dist/{Index-Utb2MWAQ.js → Index-BTPfwIiL.js} +10 -10
  18. package/dist/{LocationPicker.vue_vue_type_script_setup_true_lang-B7iWGh2L.js → LocationPicker.vue_vue_type_script_setup_true_lang-CsOOd9Vz.js} +1 -1
  19. package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-CppfUz1y.js → LottieAnimation.vue_vue_type_script_setup_true_lang-CECNBs_-.js} +1 -1
  20. package/dist/{LoyaltyDashboard-BHSHnBpi.js → LoyaltyDashboard-qZRDd1VL.js} +7 -7
  21. package/dist/{MainLayout-DMqkiGFT.js → MainLayout-yONDAqXN.js} +1 -1
  22. package/dist/{Marketing-DGfDqW7v.js → Marketing-CtxinaIp.js} +4 -4
  23. package/dist/{MarketingMaterialEdit-p5QBPd83.js → MarketingMaterialEdit-BbYHbOjZ.js} +6 -6
  24. package/dist/{Member-C2KIOib-.js → Member-BswZb-b-.js} +11 -11
  25. package/dist/{MemberList-Esp9384f.js → MemberList-DclEAn1h.js} +25 -25
  26. package/dist/{MemberTransactions-CKYG04pY.js → MemberTransactions-B4sc1Ahe.js} +1 -1
  27. 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
  28. package/dist/{Mission-BlckuFfz.js → Mission-B2_SB07l.js} +13 -13
  29. package/dist/{Overview-suva6hd8.js → Overview-BETAx6sC.js} +3 -3
  30. package/dist/{Overview-B5PSmDQr.js → Overview-DJ8DB7p1.js} +18 -18
  31. package/dist/{Point-CVexYech.js → Point-I5sYY0AV.js} +12 -12
  32. package/dist/{Promotion-VW7rqIn-.js → Promotion-BZiOiGCt.js} +13 -13
  33. package/dist/{Queue-Dh4C5OO9.js → Queue-BirX_EC7.js} +10 -10
  34. package/dist/{Record-CYGrQ_Cb.js → Record-C0K6Ns45.js} +9 -9
  35. package/dist/{Review-mxbjxTB1.js → Review-BoISkcF5.js} +2 -2
  36. package/dist/{ReviewFacebookCallback-C-pSgxeh.js → ReviewFacebookCallback-DI_v42cz.js} +5 -5
  37. package/dist/{ReviewGoogleCallback-CnNbGQdM.js → ReviewGoogleCallback-bWRrVgif.js} +5 -5
  38. package/dist/{Reward-CQ8AgV1m.js → Reward-Cq52vwUr.js} +16 -16
  39. 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
  40. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-CxHheatc.js → RuleGroup.vue_vue_type_script_setup_true_lang-BB42pC95.js} +14 -14
  41. package/dist/{Segment-Crm395ad.js → Segment-BmOC4d7i.js} +24 -24
  42. 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
  43. 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
  44. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-DgkPQA3H.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-W7APn7Cu.js} +4 -4
  45. package/dist/{Setting-AKRWf4zD.js → Setting-Dgt0LCbv.js} +14 -14
  46. package/dist/{SettingAdvertisements-DD9U8S6N.js → SettingAdvertisements-DAUdwr1p.js} +12 -12
  47. package/dist/{Settings-D7c8sBA8.js → Settings-gGFgpQbO.js} +5 -5
  48. package/dist/{Store-BN3RP_u-.js → Store-IaZXjlU_.js} +21 -21
  49. package/dist/{StoreRewards-BXc96ZMM.js → StoreRewards-DnNuYefP.js} +15 -15
  50. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-B76NSzNg.js → StoreTransactions.vue_vue_type_script_setup_true_lang-DTLHTyc_.js} +20 -20
  51. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DnhMV2aq.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-euqTCLNl.js} +2 -2
  52. package/dist/{Tier-Bbktc4H8.js → Tier-DUZjJBxp.js} +24 -24
  53. package/dist/{Title-BU8pzF9c.js → Title-CoElyNyo.js} +21 -21
  54. package/dist/{Transaction-B3_M0MMz.js → Transaction-eywJjImp.js} +2 -2
  55. 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
  56. package/dist/{Voucher-CJruHWmd.js → Voucher-CAiuvTfM.js} +14 -14
  57. 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
  58. 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
  59. package/dist/{app-CmK_zWVU.js → app-DhDmESYL.js} +60 -60
  60. package/dist/app.js +1 -1
  61. package/dist/{business-Br3Sboxg.js → business-GzfuJslR.js} +1 -1
  62. package/dist/{campaign-53KorSW_.js → campaign-D5fwJP6R.js} +2 -2
  63. package/dist/{campaign-Dz57HOfP.js → campaign-DFT642vU.js} +7 -7
  64. package/dist/{campaign.fn-D-J5-IK0.js → campaign.fn-DkdIAZ7i.js} +38 -38
  65. package/dist/{collection.fn-cEP4Vjv6.js → collection.fn-OGlCjGmW.js} +2 -2
  66. package/dist/{duplicateCampaign-bBnEmbXg.js → duplicateCampaign-iTVcbRn-.js} +2 -2
  67. package/dist/{effect-RQs_nrvo.js → effect-CGAWPcrm.js} +1 -1
  68. package/dist/{email-addresses-CAX-uL1B.js → email-addresses-BE2S4Dj8.js} +2 -2
  69. package/dist/{export-DSgRDjwv.js → export-D_fy-zua.js} +3 -3
  70. package/dist/{helper-DlEUDhaf.js → helper-C3C4SOin.js} +1 -1
  71. package/dist/{index-DJQCoy-g.js → index-BAApyOCS.js} +1 -1
  72. package/dist/{index-CHmtKN0J.js → index-Be5nXR7v.js} +3 -3
  73. package/dist/{index-CJ0Ofs8g.js → index-Bh9_cs1A.js} +1 -1
  74. package/dist/{index-Dpyep_-G.js → index-Bt33uSj8.js} +2 -2
  75. package/dist/{index-D3obFXMZ.js → index-C0miKj5V.js} +1 -1
  76. package/dist/{index-BpXYj8xl.js → index-CKAtCHMa.js} +6 -6
  77. package/dist/{index-CbBnibrX.js → index-CWIwKELy.js} +2 -2
  78. package/dist/{index-DansV6RZ.js → index-CXmuQ0jf.js} +2 -2
  79. package/dist/{index-CQ40sF6g.js → index-CdH2ReVb.js} +2 -2
  80. package/dist/{index-CBvgQWbo.js → index-CdZ_RusD.js} +1 -1
  81. package/dist/{index-fVWfEBZV.js → index-CgRL0HwK.js} +6 -6
  82. package/dist/{index-BHdJaRRQ.js → index-CsGEC4Aw.js} +1 -1
  83. package/dist/{index-BA0GllA8.js → index-D-btpqVA.js} +1 -1
  84. package/dist/{index-ZFdRmzK7.js → index-DTZ7EAcZ.js} +1 -1
  85. package/dist/{index-Cm4hBY6K.js → index-QHOmMZSD.js} +1 -1
  86. package/dist/{index.esm2017-GDYw3ujs.js → index.esm2017-G5LoANQX.js} +1 -1
  87. package/dist/{loading-CevzAqpQ.js → loading-BPNkTxXT.js} +1 -1
  88. package/dist/{lodash-CcmP-ZWD.js → lodash-9ta4Nkqt.js} +1 -1
  89. package/dist/{membership-CP-ZGC-Y.js → membership-BYkSHLOw.js} +2 -2
  90. package/dist/{money-B_CYilsX.js → money-3C0zWUC8.js} +1 -1
  91. package/dist/{number-CqWVPhp0.js → number-d4dGkDp-.js} +1 -1
  92. package/dist/{objectid-DkTaCd6K.js → objectid-DnLDUQct.js} +6 -6
  93. package/dist/{plugins-Br271boW.js → plugins-DpkzBj4v.js} +3 -3
  94. package/dist/{reward-CKQRdG-H.js → reward-X01fpNlm.js} +1 -1
  95. package/dist/{rule-D0Rv4CuV.js → rule-TAnVjqJf.js} +3 -3
  96. package/dist/{rule-builder-BUn6UMwW.js → rule-builder-BcmfLik_.js} +1 -1
  97. package/dist/{template-D5GB4cAl.js → template-Dw2oNW4d.js} +6 -6
  98. package/dist/{timezone-DqRsL54X.js → timezone-Df1SYjKC.js} +1 -1
  99. package/dist/{trigger-Ci92pTJU.js → trigger-BPnDSdB4.js} +5 -5
  100. package/dist/{useMarketingMaterialActions-C_mu-ac8.js → useMarketingMaterialActions-CeoTwfgs.js} +3 -3
  101. package/dist/{usePagination-CWQ2WXiM.js → usePagination-nnXuyQTt.js} +1 -1
  102. package/dist/{user-CeAfYeZW.js → user-C0_0nUJU.js} +1 -1
  103. package/dist/{vue-i18n-P_SZNhrt.js → vue-i18n-LQy4nXEW.js} +285 -285
  104. package/dist/{xlsx-CTo0cmDn.js → xlsx-DZTNL-Ht.js} +1 -1
  105. package/dist/{zod-CPa57Pxb.js → zod-D-SNQ7Pu.js} +1 -1
  106. package/package.json +1 -1
@@ -1,14 +1,14 @@
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";
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 _e, useRouter as Se } from "vue-router";
11
- const Ie = {
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
- }, Ce = {
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
- }, Oe = {
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
- }, Pe = {
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
- }, De = {
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
- }, Ee = {
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
- }, Le = {
90
+ }, Ee = {
91
91
  VOUCHER: {
92
92
  label: "Voucher",
93
93
  icon: "confirmation_number",
94
94
  objective: "Reactivation",
95
- report: Ie
95
+ report: Se
96
96
  },
97
97
  PROMOTION: {
98
98
  label: "Promotion",
99
99
  icon: "percent",
100
100
  objective: "Purchase conversion",
101
- report: Ce
101
+ report: Ie
102
102
  },
103
103
  MISSION: {
104
104
  label: "Mission",
105
105
  icon: "flag",
106
106
  objective: "Member engagement",
107
- report: Oe
107
+ report: Ce
108
108
  },
109
109
  GAME: {
110
110
  label: "Game",
111
111
  icon: "sports_esports",
112
112
  objective: "Member engagement",
113
- report: Pe
113
+ report: Oe
114
114
  },
115
115
  COIN: {
116
116
  label: "Point",
117
117
  icon: "stars",
118
118
  objective: "Member engagement",
119
- report: De
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: Ee
131
+ report: De
132
132
  }
133
133
  };
134
- function Te(t) {
135
- return Le[t];
134
+ function Le(t) {
135
+ return Ee[t];
136
136
  }
137
- function C(t, l) {
138
- return `${(t ?? 0).toLocaleString()} ${l}`;
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, l) {
150
- const e = l ?? 0;
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 l = Me(t);
155
- return l.isValid() ? l.format("D MMM YYYY") : t;
154
+ const r = Re(t);
155
+ return r.isValid() ? r.format("D MMM YYYY") : t;
156
156
  }
157
- function Be(t, l, e) {
158
- const { metrics: s, scope: i } = l, y = D(
157
+ function Te(t, r, e) {
158
+ const { metrics: s, scope: c } = r, y = D(
159
159
  s.redeemedMembers,
160
160
  s.distributedMembers
161
- ), o = D(
161
+ ), i = D(
162
162
  s.redeemedVouchers,
163
163
  s.distributedVouchers
164
- ), g = s.completedBills === 0 ? 0 : s.rewardValueUsed / s.completedBills, c = s.completedBills === 0 ? 0 : s.exactSales / s.completedBills, R = D(
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: i.startDate && i.endDate ? `${N(i.startDate)} – ${N(i.endDate)}` : "Unavailable",
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: je(e),
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: l.performanceDetails.map((p) => ({
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(c)
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: `${o}%`,
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(g),
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(c),
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 Ne(t, l) {
308
- const { metrics: e, scope: s } = l, i = D(
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
- ), o = D(
314
+ ), i = D(
315
315
  e.memberSales,
316
316
  e.exactSales
317
- ), g = e.attributedBills ? e.promotionValueUsed / e.attributedBills : 0, c = e.attributedBills ? e.exactSales / e.attributedBills : 0;
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: i,
331
+ memberBillSharePct: c,
332
332
  nonMemberBillSharePct: y,
333
- memberSalesSharePct: o,
334
- summary: `Members account for ${i}% of attributed bills and ${o}% of attributed sales.`
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: l.performanceDetails.map((R) => ({
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(c)
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: `${i}%`,
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: `${o}%`,
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(g),
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(c),
408
+ value: w(o),
409
409
  helper: "Exact sales ÷ attributed bills"
410
410
  }
411
411
  ]
412
412
  };
413
413
  }
414
- function Ve(t, l) {
415
- const { metrics: e, scope: s } = l, i = e.participants ? e.stampsEarned / e.participants : 0, y = Math.max(
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: l.rewards.map((o) => ({
473
- name: o.rewardName,
472
+ rows: r.rewards.map((i) => ({
473
+ name: i.rewardName,
474
474
  cells: [
475
- o.rewardType,
476
- m(o.recipients),
477
- m(o.issuanceTransactions),
478
- m(o.quantityIssued)
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: l.performanceDetails.map((o) => ({
490
- name: o.restaurantName || "Unattributed / online",
489
+ rows: r.performanceDetails.map((i) => ({
490
+ name: i.restaurantName || "Unattributed / online",
491
491
  cells: [
492
- m(o.participants),
493
- m(o.stampsEarned),
494
- m(o.completionEvents)
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: i.toLocaleString("en-MY", {
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 Ue(t, l) {
543
- const { metrics: e, scope: s } = l, i = D(e.players, e.tokenRecipients), y = D(e.plays, e.tokensIssued), o = D(
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
- ), g = e.players ? e.plays / e.players : 0;
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: i,
566
- rateLabel: `${i}% of token recipients`,
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: o,
578
- rateLabel: `${o}% of players`,
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: l.rewards.map((c) => ({
623
- name: c.rewardName || "Unnamed reward",
622
+ rows: r.rewards.map((o) => ({
623
+ name: o.rewardName || "Unnamed reward",
624
624
  cells: [
625
- c.rewardType,
626
- m(c.recipients),
627
- m(c.issuanceTransactions),
628
- m(c.quantityIssued)
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: l.tokenDistributionDetails.map((c) => ({
640
- name: c.restaurantName || "Unattributed / online",
639
+ rows: r.tokenDistributionDetails.map((o) => ({
640
+ name: o.restaurantName || "Unattributed / online",
641
641
  cells: [
642
- m(c.recipients),
643
- m(c.tokensIssued)
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: `${i}%`,
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: `${o}%`,
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: g.toLocaleString("en-MY", {
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, l) {
692
- return l ? w(t ?? 0) : m(t);
691
+ function X(t, r) {
692
+ return r ? w(t ?? 0) : m(t);
693
693
  }
694
- function J(t, l) {
695
- return t[l] ?? 0;
694
+ function J(t, r) {
695
+ return t[r] ?? 0;
696
696
  }
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 = [
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
- ], c = l.sourceDetails.map((p) => ({
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(o, e.currency),
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: i.startDate && i.endDate ? `${N(i.startDate)} – ${N(i.endDate)}` : "Unavailable",
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: g,
771
- rows: c
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: l.performanceDetails.map((p) => ({
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 Fe(t, l) {
803
- return ae(t, l, {
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 Ae(t, l) {
814
- return ae(t, l, {
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 qe(t, l) {
825
- return ae(t, l, {
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 je(t) {
835
+ function qe(t) {
836
836
  if (!(t != null && t.categories.length)) return [];
837
- const l = {
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 ? [l] : [
847
- l,
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 ze(t) {
862
+ function je(t) {
863
863
  return [
864
864
  {
865
865
  header: t.dimension,
866
- accessorFn: (l) => l.name
866
+ accessorFn: (r) => r.name
867
867
  },
868
- ...t.columns.map((l, e) => ({
869
- header: l,
868
+ ...t.columns.map((r, e) => ({
869
+ header: r,
870
870
  accessorFn: (s) => s.cells[e] ?? ""
871
871
  }))
872
872
  ];
873
873
  }
874
- const Ge = {
874
+ const ze = {
875
875
  key: 0,
876
876
  class: "flex items-center gap-8 mb-8"
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 = {
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
- }, Je = /* @__PURE__ */ j({
880
+ }, Xe = /* @__PURE__ */ j({
881
881
  __name: "CampaignAnalyticHeader",
882
882
  props: {
883
883
  campaignName: {},
884
884
  datesLabel: {},
885
- statusChip: {},
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
- return (l, e) => {
895
- const s = _("FmIcon"), i = _("FmChip"), y = _("FmCard");
896
- return r(), h(y, {
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: P(() => [
901
- t.mechanicLabel ? (r(), v("div", Ge, [
902
- t.icon ? (r(), h(s, {
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"])) : 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, {
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
- })) : f("", !0)
929
+ })) : g("", !0)
920
930
  ]),
921
- a("div", Qe, [
931
+ a("div", Ye, [
922
932
  a("span", null, u(t.datesLabel), 1),
923
- t.reportRangeLabel ? (r(), v(E, { key: 0 }, [
924
- e[0] || (e[0] = a("span", { class: "text-fm-color-typo-disabled" }, "·", -1)),
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)) : f("", !0)
936
+ ], 64)) : g("", !0)
927
937
  ]),
928
- t.audienceLabel ? (r(), v("div", Xe, " Audience: " + u(t.audienceLabel), 1)) : f("", !0)
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
- }), 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({
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 (l, e) => {
950
+ return (r, e) => {
941
951
  const s = _("FmCard");
942
- return r(), h(s, {
952
+ return n(), h(s, {
943
953
  variant: "outlined",
944
954
  class: "p-24"
945
955
  }, {
946
- default: P(() => [
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", We, [
950
- a("div", Ze, [
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", et, u(t.mix.memberBills), 1),
956
- a("div", tt, u(t.mix.appliedMembers) + " applied members ", 1)
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", at, [
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", st, u(t.mix.nonMemberBills), 1)
973
+ a("div", at, u(t.mix.nonMemberBills), 1)
964
974
  ])
965
975
  ]),
966
- a("div", rt, [
967
- a("div", lt, [
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", nt, u(t.mix.memberSales), 1)
979
+ a("div", lt, u(t.mix.memberSales), 1)
970
980
  ]),
971
- a("div", it, [
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", ot, u(t.mix.nonMemberSales), 1)
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", mt, [
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", ut, [
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, ct),
996
- a("div", dt, u(t.mix.summary), 1)
1005
+ ], 8, ot),
1006
+ a("div", ut, u(t.mix.summary), 1)
997
1007
  ]),
998
1008
  _: 1
999
1009
  });
1000
1010
  };
1001
1011
  }
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 = {
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" }, xt = {
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
- }, kt = {
1018
+ }, xt = {
1009
1019
  key: 1,
1010
1020
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
1011
- }, wt = {
1021
+ }, kt = {
1012
1022
  key: 2,
1013
1023
  class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary"
1014
- }, Rt = {
1024
+ }, wt = {
1015
1025
  key: 3,
1016
1026
  class: "mt-8"
1017
- }, Mt = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-tertiary mt-4" }, _t = {
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
- }, St = /* @__PURE__ */ j({
1030
+ }, _t = /* @__PURE__ */ j({
1021
1031
  __name: "CampaignFunnel",
1022
1032
  props: {
1023
1033
  stages: {}
1024
1034
  },
1025
1035
  setup(t) {
1026
- return (l, e) => {
1027
- const s = _("FmProgressBar"), i = _("FmIcon"), y = _("FmCard");
1028
- return r(), h(y, {
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: P(() => [
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", yt, [
1036
- (r(!0), v(E, null, ee(t.stages, (o, g) => (r(), v("div", {
1037
- key: o.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", bt, [
1041
- a("div", vt, [
1042
- a("span", ft, u(o.label), 1),
1043
- o.helper ? (r(), h(Z, {
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: o.helper
1046
- }, null, 8, ["description"])) : f("", !0)
1055
+ description: i.helper
1056
+ }, null, 8, ["description"])) : g("", !0)
1047
1057
  ]),
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, [
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: o.ratePct,
1065
+ value: i.ratePct,
1056
1066
  color: "primary",
1057
1067
  size: "sm"
1058
1068
  }, null, 8, ["value"]),
1059
- a("div", Mt, u(o.rateLabel), 1)
1060
- ])) : f("", !0)
1069
+ a("div", Rt, u(i.rateLabel), 1)
1070
+ ])) : g("", !0)
1061
1071
  ], 64))
1062
1072
  ]),
1063
- g < t.stages.length - 1 ? (r(), v("div", _t, [
1064
- I(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
- ])) : f("", !0)
1079
+ ])) : g("", !0)
1070
1080
  ]))), 128))
1071
1081
  ])
1072
1082
  ]),
@@ -1074,7 +1084,7 @@ const Ge = {
1074
1084
  });
1075
1085
  };
1076
1086
  }
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 = {
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 (l, e) => {
1096
+ return (r, e) => {
1087
1097
  const s = _("FmCard");
1088
- return r(), v("section", It, [
1089
- (r(!0), v(E, null, ee(t.cards, (i) => (r(), h(s, {
1090
- key: i.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: P(() => [
1095
- a("div", Ct, [
1096
- a("span", Ot, u(i.label), 1),
1097
- i.helper ? (r(), h(Z, {
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: i.helper
1100
- }, null, 8, ["description"])) : f("", !0)
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
- i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1115
+ c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1106
1116
  ])
1107
- }, u(i.value), 3),
1108
- i.sub ? (r(), v("div", Pt, u(i.sub), 1)) : f("", !0)
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
- }), Dt = { class: "flex items-center justify-between gap-12 flex-wrap mb-16 xs:flex-col xs:items-start" }, $t = {
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
- }, Et = /* @__PURE__ */ j({
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 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 = $(
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 = o.value) == null ? void 0 : p.series) ?? []).map((L, d) => ({
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
- ), c = { display: !0 };
1151
+ ), o = { display: !0 };
1142
1152
  return (p, L) => {
1143
1153
  const d = _("FmButtonGroup"), U = _("FmLineChart"), M = _("FmCard");
1144
- return r(), h(M, {
1154
+ return n(), h(M, {
1145
1155
  variant: "outlined",
1146
1156
  class: "p-24"
1147
1157
  }, {
1148
- default: P(() => [
1149
- a("div", Dt, [
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 ? (r(), h(d, {
1161
+ t.modes.length > 1 ? (n(), h(d, {
1152
1162
  key: 0,
1153
- items: n(i),
1154
- "model-value": n(y),
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"])) : f("", !0)
1166
+ }, null, 8, ["items", "model-value"])) : g("", !0)
1157
1167
  ]),
1158
- n(o) ? (r(), v("div", $t, u(n(o).label), 1)) : f("", !0),
1159
- n(o) ? (r(), h(U, {
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: n(g),
1162
- "x-axis": { categories: n(o).categories },
1163
- "x-cfg": c,
1164
- "y-cfg": c,
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"])) : f("", !0)
1177
+ }, null, 8, ["datasets", "x-axis"])) : g("", !0)
1168
1178
  ]),
1169
1179
  _: 1
1170
1180
  });
1171
1181
  };
1172
1182
  }
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 = {
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
- }, Nt = {
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 l = t, e = $(
1188
- () => l.breakdown ? ze(l.breakdown) : []
1197
+ const r = t, e = P(
1198
+ () => r.breakdown ? je(r.breakdown) : []
1189
1199
  );
1190
- return (s, i) => {
1191
- const y = _("FmTable"), o = _("FmCard");
1192
- return r(), h(o, {
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: P(() => {
1197
- var g;
1206
+ default: $(() => {
1207
+ var f;
1198
1208
  return [
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),
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": n(e),
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 ? (r(), v("div", Bt, u(t.emptyMessage), 1)) : (r(), v("div", Nt, " No breakdown dimension is available for this campaign. "))
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
- }), Vt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Ut = {
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
- }, Ft = {
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
- }, 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 = {
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
- }, 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({
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 (l, e) => {
1243
+ return (r, e) => {
1234
1244
  const s = _("FmCard");
1235
- return r(), h(s, {
1245
+ return n(), h(s, {
1236
1246
  variant: "outlined",
1237
1247
  class: "p-24"
1238
1248
  }, {
1239
- default: P(() => [
1240
- a("div", Vt, u(t.title), 1),
1241
- t.caption ? (r(), v("div", Ut, u(t.caption), 1)) : f("", !0),
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
- (r(!0), v(E, null, ee(t.items, (i) => (r(), v(E, {
1246
- key: i.key
1255
+ (n(!0), v(E, null, ee(t.items, (c) => (n(), v(E, {
1256
+ key: c.key
1247
1257
  }, [
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, {
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: i.helper
1254
- }, null, 8, ["description"])) : f("", !0)
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
- i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1269
+ c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1260
1270
  ])
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, {
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: i.helper
1268
- }, null, 8, ["description"])) : f("", !0)
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
- i.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1283
+ c.unavailable ? "text-fm-color-typo-disabled" : "text-fm-color-typo-primary"
1274
1284
  ])
1275
- }, u(i.value), 3)
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
- }), 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 = {
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
- }, Jt = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Wt = {
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
- }, ca = /* @__PURE__ */ j({
1300
+ }, oa = /* @__PURE__ */ j({
1291
1301
  __name: "CampaignAnalytic",
1292
1302
  setup(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 = $(() => {
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 = g.value) == null ? void 0 : O.campaign;
1296
- }), U = $(
1297
- () => d.value ? Te(d.value.type) : void 0
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" ? Fe(
1313
+ return M.value && ((O = d.value) == null ? void 0 : O.type) === "COIN" ? Ue(
1304
1314
  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(
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 = c.value) == null ? void 0 : G.type) === "POINT" ? c.value : ie()
1309
- ) : M.value && ((T = d.value) == null ? void 0 : T.type) === "CREDIT" ? qe(
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 = c.value) == null ? void 0 : B.type) === "CREDIT" ? c.value : oe()
1312
- ) : M.value && ((F = d.value) == null ? void 0 : F.type) === "GAME" ? Ue(
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 = c.value) == null ? void 0 : S.type) === "GAME" ? c.value : le()
1315
- ) : M.value && ((b = d.value) == null ? void 0 : b.type) === "MISSION" ? Ve(
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 = c.value) == null ? void 0 : A.type) === "MISSION" ? c.value : re()
1318
- ) : M.value && ((q = d.value) == null ? void 0 : q.type) === "PROMOTION" ? Ne(
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 = c.value) == null ? void 0 : K.type) === "PROMOTION" ? c.value : se()
1321
- ) : M.value && ((Y = c.value) == null ? void 0 : Y.type) === "VOUCHER" ? Be(
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
- c.value,
1333
+ o.value,
1324
1334
  R.value
1325
1335
  ) : M.value;
1326
- }), ye = $(
1327
- () => d.value ? l(we(d.value.timeframeOptions)) : ""
1328
- ), be = $(
1329
- () => d.value && d.value.type !== "MEMBERSHIP" ? Re(d.value) : void 0
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 ve() {
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 he(async () => {
1450
+ return ge(async () => {
1441
1451
  var O, x, z, G, T, B, F;
1442
1452
  try {
1443
- await i(async () => {
1453
+ await c(async () => {
1444
1454
  var A, q;
1445
- g.value = await V.readById(e.params.id);
1455
+ f.value = await V.readById(e.params.id);
1446
1456
  const b = e.meta.campaignType;
1447
- L.value = !!b && ((q = (A = g.value) == null ? void 0 : A.campaign) == null ? void 0 : q.type) !== b;
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[o.currentCountry.value || "MY"] ?? ue.MY
1460
+ timezone: ue[i.currentCountry.value || "MY"] ?? ue.MY
1451
1461
  };
1452
- ((O = g.value) == null ? void 0 : O.campaign.type) === "VOUCHER" ? (c.value = ve(), await Promise.all([
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" && (c.value = b);
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 = g.value) == null ? void 0 : x.campaign.type) === "PROMOTION" ? (c.value = se(), await y(
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" && (c.value = b);
1478
+ b.type === "PROMOTION" && (o.value = b);
1469
1479
  }).catch(() => {
1470
- })) : ((z = g.value) == null ? void 0 : z.campaign.type) === "MISSION" ? (c.value = re(), await y(
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" && (c.value = b);
1483
+ b.type === "MISSION" && (o.value = b);
1474
1484
  }).catch(() => {
1475
- })) : ((G = g.value) == null ? void 0 : G.campaign.type) === "GAME" ? (c.value = le(), await y(
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" && (c.value = b);
1488
+ b.type === "GAME" && (o.value = b);
1479
1489
  }).catch(() => {
1480
- })) : ((T = g.value) == null ? void 0 : T.campaign.type) === "COIN" ? (c.value = ne(), await y(
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" && (c.value = b);
1493
+ b.type === "COIN" && (o.value = b);
1484
1494
  }).catch(() => {
1485
- })) : ((B = g.value) == null ? void 0 : B.campaign.type) === "POINT" ? (c.value = ie(), await y(
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" && (c.value = b);
1498
+ b.type === "POINT" && (o.value = b);
1489
1499
  }).catch(() => {
1490
- })) : ((F = g.value) == null ? void 0 : F.campaign.type) === "CREDIT" && (c.value = oe(), await y(
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" && (c.value = b);
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 r(), v(E, null, [
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) => n(s).back())
1516
+ "onClick:back": x[0] || (x[0] = (Q) => l(s).back())
1507
1517
  }, {
1508
- title: P(() => [
1509
- a("div", Ht, [
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", Kt, [
1517
- n(p) ? (r(), h(B, {
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: P(() => [
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
- })) : 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
- }, null, 8, ["campaign-name", "dates-label", "status-chip", "mechanic-label", "icon", "objective", "report-range-label", "audience-label"]),
1544
- n(L) ? (r(), h(B, {
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: P(() => [
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", Yt, " It is a " + u(n(d).type) + " campaign. Open it from its own campaign list to see the right report. ", 1)
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
- })) : n(U) ? ((K = n(M)) == null ? void 0 : K.state) === "empty" ? (r(), h(B, {
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: P(() => [
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
- })) : n(k) ? (r(), v(E, { key: 3 }, [
1577
- n(d).type === "COIN" || n(d).type === "POINT" || n(d).type === "CREDIT" ? (r(), v("section", Xt, [
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", Jt, u((Y = n(U)) == null ? void 0 : Y.label) + " distribution summary ", 1)
1589
+ a("div", Xt, u((Y = l(U)) == null ? void 0 : Y.label) + " distribution summary ", 1)
1580
1590
  ]),
1581
1591
  I(te, {
1582
- cards: n(k).cards
1592
+ cards: l(k).cards
1583
1593
  }, null, 8, ["cards"])
1584
- ])) : f("", !0),
1585
- n(d).type === "MISSION" ? (r(), v("section", Wt, [
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: n(k).cards
1601
+ cards: l(k).cards
1592
1602
  }, null, 8, ["cards"])
1593
- ])) : f("", !0),
1594
- n(k).applicationMix ? (r(), h(pt, {
1603
+ ])) : g("", !0),
1604
+ l(k).applicationMix ? (n(), h(dt, {
1595
1605
  key: 2,
1596
- mix: n(k).applicationMix
1597
- }, null, 8, ["mix"])) : n(d).type !== "MISSION" && n(k).funnel.length ? (r(), h(St, {
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: 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, {
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: n(k).cards
1604
- }, null, 8, ["cards"])) : f("", !0),
1605
- n(k).trend.length ? (r(), h(Et, {
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: 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, {
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)) : (r(), h(de, {
1624
+ }, null, 8, ["breakdown", "title", "empty-message"]))), 128)) : (n(), h(de, {
1615
1625
  key: 7,
1616
- breakdown: n(k).breakdown
1626
+ breakdown: l(k).breakdown
1617
1627
  }, null, 8, ["breakdown"])),
1618
- n(k).outcomes.length ? (r(), h(pe, {
1628
+ l(k).outcomes.length ? (n(), h(pe, {
1619
1629
  key: 8,
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,
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"])) : f("", !0),
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: n(k).metrics,
1638
+ items: l(k).metrics,
1629
1639
  variant: "row"
1630
1640
  }, null, 8, ["items"])
1631
- ], 64)) : f("", !0) : (r(), h(B, {
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: P(() => [
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", Qt, " Reporting has not been defined for " + u(n(d).type) + " campaigns yet. ", 1)
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)) : f("", !0)
1658
+ ], 64)) : g("", !0)
1649
1659
  ])
1650
1660
  ], 64);
1651
1661
  };
1652
1662
  }
1653
1663
  });
1654
1664
  export {
1655
- ca as default
1665
+ oa as default
1656
1666
  };