@feedmepos/mf-connect 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Analytic-BxRuK2P2.js → Analytic-CwaN0mge.js} +68 -69
- package/dist/{Broadcast-BqGojAWW.js → Broadcast-Cjx5xzUC.js} +27 -28
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-B-VzcVMS.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-D4mO5aik.js} +34 -34
- package/dist/Card-DbY6YaXk.js +827 -0
- package/dist/{Collections-DvdDRozp.js → Collections-DRN2gzwh.js} +158 -168
- package/dist/{Credit-BeHm7_2S.js → Credit-DOcrzykJ.js} +11 -12
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-BsbgHsah.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-CUxfXaro.js} +359 -333
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-hwXvdiut.js → EffectSheet.vue_vue_type_style_index_0_lang-EF_rHfwT.js} +5 -5
- package/dist/{Experience-CtDY9u4Y.js → Experience-aQj-3H2Y.js} +11 -12
- package/dist/{Game-DjaYuqcb.js → Game-Cnje-m_M.js} +22 -23
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-Bq5-Gl9N.js → ImageInput.vue_vue_type_script_setup_true_lang-CG-GBVMP.js} +8 -8
- package/dist/{MainLayout-B-iAZM2k.js → MainLayout-Cxl9yLPs.js} +1 -1
- package/dist/{Marketing-BJJltAh-.js → Marketing-BYUcbcMU.js} +19 -20
- package/dist/{Member-eJ9Pdi5w.js → Member-D7K9fm_Q.js} +2 -2
- package/dist/MemberList-DbXkxUzF.js +1717 -0
- package/dist/{MemberTransactions-DRET8mSQ.js → MemberTransactions-DED1SYwX.js} +4 -4
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-CLqIp5wR.js +203 -0
- package/dist/{Point-DPTOgJbC.js → Point-CQm8whVQ.js} +11 -12
- package/dist/{Promotion-wzkRuNqO.js → Promotion-DzVXy_C9.js} +42 -44
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-Z06eB5i5.js → RuleGroup.vue_vue_type_script_setup_true_lang-CeS6KlhP.js} +12 -12
- package/dist/Segment-D3o0D3Uv.js +407 -0
- package/dist/{Setting-CXuZu0-m.js → Setting-pCzenLoL.js} +17 -18
- package/dist/{Store-4Um9keEp.js → Store-DEwEIFYD.js} +18 -19
- package/dist/{StoreRewards-B-UFeyQM.js → StoreRewards-D7vnZN4f.js} +86 -87
- package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-ALzQU3th.js +793 -0
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-I_XFpctY.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-GMIztWCj.js} +1 -1
- package/dist/{Tier-C6KVsxGO.js → Tier-BJbX5CPB.js} +401 -377
- package/dist/{Title-DuN1ahIM.js → Title-C9xV6rBg.js} +274 -248
- package/dist/Transaction-C8OHlhzR.js +36 -0
- package/dist/Voucher-eZwm7N1D.js +481 -0
- package/dist/{app-CxBTTB31.js → app-DgbDbhL-.js} +34 -34
- package/dist/app.js +1 -1
- package/dist/{campaign-B0aXkadj.js → campaign-BkvrUTEJ.js} +2 -2
- package/dist/{dto-BtdVC-Ab.js → dto-YYVhW73A.js} +52 -53
- package/dist/{effect-BUN6rkQM.js → effect-f7DAPYC8.js} +1 -1
- package/dist/export-BXbCXTfd.js +97 -0
- package/dist/{helper-Cpq3x8K5.js → helper-BhvQ9m6d.js} +1 -1
- package/dist/{index-D2Juhkdw.js → index-BhacKx5B.js} +85 -83
- package/dist/{index-DDSLx7vu.js → index-BsEqtUmY.js} +2 -2
- package/dist/{index-0GYrZr4L.js → index-CdtrQ9tR.js} +5 -5
- package/dist/{index-8clzk3uX.js → index-Cfo2A0Se.js} +1 -1
- package/dist/index-Cz5RZlYh.js +73 -0
- package/dist/{index-BTntbYTS.js → index-DQC_1tRF.js} +1 -1
- package/dist/{index-DysVCkrx.js → index-Dd3hrFcQ.js} +3 -3
- package/dist/{index-CK9yJMj7.js → index-FWp9M1yS.js} +5 -5
- package/dist/{index-C6NgUSl2.js → index-VmFlM704.js} +1 -1
- package/dist/{index-BvnZdJBY.js → index-oQLJE4Uw.js} +2 -2
- package/dist/libs/packages/core/src/collectible/collectible.dto.d.ts +6 -0
- package/dist/{plugins-B_d-WFtN.js → loading-DQaawbHE.js} +8204 -8108
- package/dist/{lodash-DsT1nK-T.js → lodash-DzdmTD20.js} +1 -1
- package/dist/{membership-DtD45RXh.js → membership-Dq2-b-S_.js} +3 -3
- package/dist/{money-CFI1TMCS.js → money-vzwOUBrp.js} +1 -1
- package/dist/{number-BBtf4fYz.js → number-CBzs6rfW.js} +1 -1
- package/dist/packages/connect/src/components/campaign/CampaignSummary.vue.d.ts +13 -0
- package/dist/packages/connect/src/composables/export.d.ts +11 -0
- package/dist/packages/connect/src/export/base.export.d.ts +7 -0
- package/dist/packages/connect/src/export/card.export.d.ts +5 -6
- package/dist/packages/connect/src/export/collection-transaction.export.d.ts +14 -0
- package/dist/packages/connect/src/export/index.d.ts +1 -0
- package/dist/packages/connect/src/export/store-transaction.export.d.ts +14 -0
- package/dist/packages/connect/src/helpers/user.d.ts +6 -0
- package/dist/{rule-CB9Qlcx1.js → rule-BR5rrmUV.js} +2 -2
- package/dist/{rule-builder-BIKcA4Bg.js → rule-builder-7GBNrPXt.js} +1 -1
- package/dist/{template-qlb46PGl.js → template-CETJ6lkf.js} +5 -5
- package/dist/{usePagination-CX66ab1Y.js → usePagination-DdZeE4Tt.js} +57 -56
- package/dist/user-Bm4KttFq.js +37 -0
- package/dist/{xlsx-DMaFso0k.js → xlsx-CDAKxZE_.js} +1 -1
- package/package.json +1 -1
- package/dist/Card-Dlj5jQp4.js +0 -792
- package/dist/MemberList-CrhMqUfJ.js +0 -1664
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-D-ttMwn2.js +0 -166
- package/dist/Segment-DnsPrP7Q.js +0 -371
- package/dist/StoreTransactions.vue_vue_type_script_setup_true_lang-BAyotuXd.js +0 -660
- package/dist/Transaction-DdfX7Xfe.js +0 -34
- package/dist/Voucher-DarXrxZr.js +0 -454
- package/dist/index-Dg-PMgXV.js +0 -64
- package/dist/loading-Cxp7sI5p.js +0 -100
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
import { defineComponent as I, openBlock as
|
|
2
|
-
import { _ as
|
|
3
|
-
import { f as
|
|
4
|
-
import { C as se, F as ie, a as re } from "./dto-
|
|
1
|
+
import { defineComponent as I, openBlock as o, createElementBlock as h, Fragment as V, renderList as P, createElementVNode as a, toDisplayString as U, createCommentVNode as B, resolveComponent as S, createBlock as F, withCtx as O, createVNode as p, unref as n, ref as C, computed as G, onMounted as q, watch as X, isRef as N, createSlots as Y, createTextVNode as ee, reactive as te, onBeforeMount as ae, normalizeClass as ne } from "vue";
|
|
2
|
+
import { _ as le } from "./campaign-CpzFl8Vr.js";
|
|
3
|
+
import { f as oe } from "./number-CBzs6rfW.js";
|
|
4
|
+
import { C as se, F as ie, a as re } from "./dto-YYVhW73A.js";
|
|
5
5
|
import { useRouter as ce } from "vue-router";
|
|
6
|
-
import { c as T } from "./index-
|
|
6
|
+
import { c as T } from "./index-DQC_1tRF.js";
|
|
7
7
|
import { _ as ue, Z as de } from "./ZodTextField.vue_vue_type_script_setup_true_lang-3LlSDiq0.js";
|
|
8
|
-
import { J as me, u as pe } from "./app-
|
|
9
|
-
import "./
|
|
10
|
-
import { useSnackbar as
|
|
11
|
-
import { u as ve } from "./loading-Cxp7sI5p.js";
|
|
8
|
+
import { J as me, u as pe } from "./app-DgbDbhL-.js";
|
|
9
|
+
import { u as fe } from "./loading-DQaawbHE.js";
|
|
10
|
+
import { useSnackbar as ve } from "@feedmepos/ui-library";
|
|
12
11
|
import { g as ye } from "./object-qECH92oz.js";
|
|
13
|
-
import { u as _e } from "./campaign-
|
|
14
|
-
import { m as ge } from "./index-
|
|
12
|
+
import { u as _e } from "./campaign-BkvrUTEJ.js";
|
|
13
|
+
import { m as ge } from "./index-Cz5RZlYh.js";
|
|
15
14
|
const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-md-400 mb-2 text-fm-color-typo-secondary" }, xe = { class: "fm-typo-en-title-sm-800" }, Ce = /* @__PURE__ */ I({
|
|
16
15
|
__name: "CampaignStat",
|
|
17
16
|
props: {
|
|
@@ -31,11 +30,11 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
31
30
|
];
|
|
32
31
|
function u(_) {
|
|
33
32
|
var r;
|
|
34
|
-
return
|
|
33
|
+
return oe((r = R.data) == null ? void 0 : r[_], 2, !0) || 0;
|
|
35
34
|
}
|
|
36
|
-
return (_, r) => (
|
|
37
|
-
(
|
|
38
|
-
e.key in m.data ? (
|
|
35
|
+
return (_, r) => (o(), h("div", he, [
|
|
36
|
+
(o(), h(V, null, P(i, (e) => (o(), h(V, null, [
|
|
37
|
+
e.key in m.data ? (o(), h("div", {
|
|
39
38
|
key: e.key,
|
|
40
39
|
class: "px-16"
|
|
41
40
|
}, [
|
|
@@ -62,7 +61,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
62
61
|
const i = se[m.type];
|
|
63
62
|
return (u, _) => {
|
|
64
63
|
const r = S("FmIcon"), e = S("FmTooltip");
|
|
65
|
-
return
|
|
64
|
+
return o(), F(e, {
|
|
66
65
|
variant: "plain",
|
|
67
66
|
placement: "top",
|
|
68
67
|
content: m.label
|
|
@@ -118,8 +117,8 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
118
117
|
groupId: i.group._id.toString()
|
|
119
118
|
});
|
|
120
119
|
}), (e, c) => {
|
|
121
|
-
const s = S("FmButton"),
|
|
122
|
-
return
|
|
120
|
+
const s = S("FmButton"), l = S("FmCard");
|
|
121
|
+
return o(), F(l, {
|
|
123
122
|
class: "mb-24 p-24",
|
|
124
123
|
variant: "outlined"
|
|
125
124
|
}, {
|
|
@@ -136,7 +135,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
136
135
|
])
|
|
137
136
|
]),
|
|
138
137
|
a("div", Ae, [
|
|
139
|
-
(
|
|
138
|
+
(o(!0), h(V, null, P(n(r), (f) => (o(), F(we, {
|
|
140
139
|
key: e.index,
|
|
141
140
|
type: f.campaign.type,
|
|
142
141
|
label: f.label
|
|
@@ -159,7 +158,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
159
158
|
emits: ["update:model-value"],
|
|
160
159
|
setup(m, { emit: R }) {
|
|
161
160
|
const i = m, u = R, _ = (s) => {
|
|
162
|
-
s ? c.value = i.items.map((
|
|
161
|
+
s ? c.value = i.items.map((l) => l.value) : c.value = [], e.value = s, u("update:model-value", c.value);
|
|
163
162
|
}, r = (s) => {
|
|
164
163
|
c.value = s, e.value = s.length === i.items.length, u("update:model-value", s);
|
|
165
164
|
}, e = C(!1), c = C([]);
|
|
@@ -167,16 +166,16 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
167
166
|
() => i.modelValue,
|
|
168
167
|
() => {
|
|
169
168
|
c.value = i.modelValue.filter(
|
|
170
|
-
(s) => i.items.find((
|
|
169
|
+
(s) => i.items.find((l) => l.value === s)
|
|
171
170
|
);
|
|
172
171
|
}
|
|
173
172
|
), q(() => {
|
|
174
173
|
c.value = i.modelValue.filter(
|
|
175
|
-
(s) => i.items.find((
|
|
174
|
+
(s) => i.items.find((l) => l.value === s)
|
|
176
175
|
);
|
|
177
|
-
}), (s,
|
|
176
|
+
}), (s, l) => {
|
|
178
177
|
const f = S("FmCheckbox"), b = S("FmCard");
|
|
179
|
-
return
|
|
178
|
+
return o(), F(b, {
|
|
180
179
|
variant: "outlined",
|
|
181
180
|
class: "p-16 space-y-8 h-full cursor-pointer select-none xs:col-span-3"
|
|
182
181
|
}, {
|
|
@@ -189,7 +188,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
189
188
|
"onUpdate:modelValue": _
|
|
190
189
|
}, null, 8, ["model-value", "label", "indeterminate"]),
|
|
191
190
|
a("div", Oe, [
|
|
192
|
-
(
|
|
191
|
+
(o(!0), h(V, null, P(i.items, (g, w) => (o(), F(f, {
|
|
193
192
|
key: w,
|
|
194
193
|
"model-value": n(c),
|
|
195
194
|
label: g.label,
|
|
@@ -216,36 +215,36 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
216
215
|
},
|
|
217
216
|
emits: ["update:model-value"],
|
|
218
217
|
setup(m, { emit: R }) {
|
|
219
|
-
const i = C(""), u = C([]), _ = m, r = R, e = G(() => Object.entries(_.campaigns).reduce((s, [
|
|
218
|
+
const i = C(""), u = C([]), _ = m, r = R, e = G(() => Object.entries(_.campaigns).reduce((s, [l, f]) => {
|
|
220
219
|
const b = f.filter(
|
|
221
220
|
(g) => g.label.toLowerCase().includes(i.value.toLowerCase())
|
|
222
221
|
);
|
|
223
|
-
return b.length > 0 && (s[
|
|
222
|
+
return b.length > 0 && (s[l] = b), s;
|
|
224
223
|
}, {}));
|
|
225
|
-
function c(s,
|
|
224
|
+
function c(s, l) {
|
|
226
225
|
u.value = u.value.filter(
|
|
227
|
-
(f) => !
|
|
226
|
+
(f) => !l.map((b) => b.value).includes(f)
|
|
228
227
|
), u.value = [.../* @__PURE__ */ new Set([...u.value, ...s])], r("update:model-value", u.value);
|
|
229
228
|
}
|
|
230
229
|
return q(() => {
|
|
231
230
|
u.value = _.modelValue;
|
|
232
|
-
}), (s,
|
|
231
|
+
}), (s, l) => {
|
|
233
232
|
const f = S("FmTextField");
|
|
234
|
-
return
|
|
233
|
+
return o(), h(V, null, [
|
|
235
234
|
p(me, { json: m.campaigns }, null, 8, ["json"]),
|
|
236
235
|
a("div", Be, [
|
|
237
236
|
a("div", Pe, [
|
|
238
237
|
a("div", Te, U(n(u).length) + " campaign(s) linked ", 1),
|
|
239
238
|
p(f, {
|
|
240
239
|
modelValue: n(i),
|
|
241
|
-
"onUpdate:modelValue":
|
|
240
|
+
"onUpdate:modelValue": l[0] || (l[0] = (b) => N(i) ? i.value = b : null),
|
|
242
241
|
"prepend-icon": "search",
|
|
243
242
|
placeholder: "Search",
|
|
244
243
|
class: "w-full"
|
|
245
244
|
}, null, 8, ["modelValue"])
|
|
246
245
|
]),
|
|
247
246
|
a("div", Ge, [
|
|
248
|
-
(
|
|
247
|
+
(o(!0), h(V, null, P(n(e), (b, g) => (o(), F(Ee, {
|
|
249
248
|
"model-value": n(u),
|
|
250
249
|
title: g,
|
|
251
250
|
items: b,
|
|
@@ -264,18 +263,18 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
264
263
|
emits: ["success"],
|
|
265
264
|
setup(m, { expose: R, emit: i }) {
|
|
266
265
|
const u = i, _ = pe();
|
|
267
|
-
|
|
266
|
+
ve();
|
|
268
267
|
const r = C(!1), e = C(!1), c = {
|
|
269
268
|
name: "",
|
|
270
269
|
campaigns: []
|
|
271
|
-
}, s = C(""),
|
|
272
|
-
}), b = C([]), g = C(null), { global: w, minor: v } =
|
|
273
|
-
const d = f.safeParse(
|
|
270
|
+
}, s = C(""), l = C({ ...c }), f = ie.superRefine((d, t) => {
|
|
271
|
+
}), b = C([]), g = C(null), { global: w, minor: v } = fe, E = G(() => {
|
|
272
|
+
const d = f.safeParse(l.value);
|
|
274
273
|
return d.success ? [] : d.error.errors;
|
|
275
274
|
});
|
|
276
275
|
function L(d) {
|
|
277
276
|
var t;
|
|
278
|
-
r.value = !0, d ? (g.value = { ...d },
|
|
277
|
+
r.value = !0, d ? (g.value = { ...d }, l.value = { ...d, campaigns: (t = d.pf_campaigns) == null ? void 0 : t.map((y) => y._id) }) : (g.value = null, l.value = { ...c });
|
|
279
278
|
}
|
|
280
279
|
function k() {
|
|
281
280
|
r.value = !1, g.value = null;
|
|
@@ -309,7 +308,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
309
308
|
(d, [t, y]) => {
|
|
310
309
|
const A = y.filter((j) => {
|
|
311
310
|
var D, x;
|
|
312
|
-
return (x = (D =
|
|
311
|
+
return (x = (D = l.value) == null ? void 0 : D.campaigns) == null ? void 0 : x.includes(j.value);
|
|
313
312
|
}).filter(
|
|
314
313
|
(j) => j.label.toLowerCase().includes(s.value.toLowerCase())
|
|
315
314
|
);
|
|
@@ -319,17 +318,17 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
319
318
|
));
|
|
320
319
|
function J(d) {
|
|
321
320
|
var y, A;
|
|
322
|
-
const t = (y =
|
|
323
|
-
t != null && t > -1 && ((A =
|
|
321
|
+
const t = (y = l.value.campaigns) == null ? void 0 : y.indexOf(d);
|
|
322
|
+
t != null && t > -1 && ((A = l.value.campaigns) == null || A.splice(t, 1));
|
|
324
323
|
}
|
|
325
324
|
async function W() {
|
|
326
|
-
f.safeParse(
|
|
325
|
+
f.safeParse(l.value).success && await v(
|
|
327
326
|
async () => {
|
|
328
327
|
var t;
|
|
329
328
|
g.value ? await T.updateGroup(
|
|
330
329
|
(t = g.value) == null ? void 0 : t._id,
|
|
331
|
-
|
|
332
|
-
) : await T.createGroup(
|
|
330
|
+
l.value
|
|
331
|
+
) : await T.createGroup(l.value), u("success"), k();
|
|
333
332
|
},
|
|
334
333
|
{
|
|
335
334
|
message: "Saving group",
|
|
@@ -356,7 +355,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
356
355
|
hideSheet: k
|
|
357
356
|
}), (d, t) => {
|
|
358
357
|
const y = S("FmButton"), A = S("FmTextField"), j = S("FmList"), D = S("FmSideSheet");
|
|
359
|
-
return
|
|
358
|
+
return o(), F(D, {
|
|
360
359
|
modelValue: n(r),
|
|
361
360
|
"onUpdate:modelValue": t[7] || (t[7] = (x) => N(r) ? r.value = x : null),
|
|
362
361
|
header: n(g) ? "Edit group" : "Add group",
|
|
@@ -366,7 +365,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
366
365
|
}, Y({
|
|
367
366
|
"side-sheet-footer": O(() => [
|
|
368
367
|
a("div", Je, [
|
|
369
|
-
n(e) ? B("", !0) : (
|
|
368
|
+
n(e) ? B("", !0) : (o(), h(V, { key: 0 }, [
|
|
370
369
|
p(y, {
|
|
371
370
|
label: "Submit",
|
|
372
371
|
onClick: W,
|
|
@@ -377,7 +376,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
377
376
|
onClick: t[4] || (t[4] = (x) => k()),
|
|
378
377
|
variant: "tertiary"
|
|
379
378
|
}),
|
|
380
|
-
n(g) ? (
|
|
379
|
+
n(g) ? (o(), F(y, {
|
|
381
380
|
key: 0,
|
|
382
381
|
label: "Delete",
|
|
383
382
|
variant: "plain",
|
|
@@ -385,7 +384,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
385
384
|
onClick: t[5] || (t[5] = (x) => Z())
|
|
386
385
|
})) : B("", !0)
|
|
387
386
|
], 64)),
|
|
388
|
-
n(e) ? (
|
|
387
|
+
n(e) ? (o(), F(y, {
|
|
389
388
|
key: 1,
|
|
390
389
|
label: "Confirm",
|
|
391
390
|
onClick: t[6] || (t[6] = (x) => e.value = !1)
|
|
@@ -393,17 +392,17 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
393
392
|
])
|
|
394
393
|
]),
|
|
395
394
|
default: O(() => [
|
|
396
|
-
n(e) ? B("", !0) : (
|
|
395
|
+
n(e) ? B("", !0) : (o(), h("div", je, [
|
|
397
396
|
Me,
|
|
398
397
|
p(ue, {
|
|
399
|
-
modelValue: n(
|
|
400
|
-
"onUpdate:modelValue": t[1] || (t[1] = (x) => n(
|
|
398
|
+
modelValue: n(l).name,
|
|
399
|
+
"onUpdate:modelValue": t[1] || (t[1] = (x) => n(l).name = x),
|
|
401
400
|
label: "Name",
|
|
402
401
|
schema: n(de).typeAtPath(n(f), "name")
|
|
403
402
|
}, null, 8, ["modelValue", "schema"]),
|
|
404
403
|
De,
|
|
405
404
|
a("div", Ne, [
|
|
406
|
-
a("div", qe, U(n(
|
|
405
|
+
a("div", qe, U(n(l).campaigns.length) + " campaign(s) linked ", 1),
|
|
407
406
|
p(A, {
|
|
408
407
|
modelValue: n(s),
|
|
409
408
|
"onUpdate:modelValue": t[2] || (t[2] = (x) => N(s) ? s.value = x : null),
|
|
@@ -419,18 +418,18 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
419
418
|
onClick: H
|
|
420
419
|
})
|
|
421
420
|
])),
|
|
422
|
-
n(e) ? (
|
|
421
|
+
n(e) ? (o(), F(Ie, {
|
|
423
422
|
key: 1,
|
|
424
|
-
modelValue: n(
|
|
425
|
-
"onUpdate:modelValue": t[3] || (t[3] = (x) => n(
|
|
423
|
+
modelValue: n(l).campaigns,
|
|
424
|
+
"onUpdate:modelValue": t[3] || (t[3] = (x) => n(l).campaigns = x),
|
|
426
425
|
campaigns: n(M)
|
|
427
426
|
}, null, 8, ["modelValue", "campaigns"])) : B("", !0),
|
|
428
427
|
a("div", He, [
|
|
429
|
-
n(e) ? B("", !0) : (
|
|
428
|
+
n(e) ? B("", !0) : (o(!0), h(V, { key: 0 }, P(n(K), (x, Q) => (o(), h("div", null, [
|
|
430
429
|
a("div", ze, U(Q), 1),
|
|
431
430
|
p(j, { separator: !0 }, {
|
|
432
431
|
default: O(() => [
|
|
433
|
-
(
|
|
432
|
+
(o(!0), h(V, null, P(x, (z) => (o(), h("div", Ke, [
|
|
434
433
|
a("div", null, U(z.label), 1),
|
|
435
434
|
a("div", null, [
|
|
436
435
|
p(y, {
|
|
@@ -466,9 +465,9 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
466
465
|
};
|
|
467
466
|
}
|
|
468
467
|
}), Ze = { class: "px-24 flex flex-col gap-y-32 pb-24" }, Qe = { class: "space-y-16" }, Xe = { class: "flex items-center justify-end" }, Ye = /* @__PURE__ */ a("div", { class: "fm-typo-en-body-lg-600" }, "Connect summary", -1), et = { class: "grid grid-cols-4 xs:grid-cols-2 gap-4 divide-x xs:divide-x-0" }, tt = { class: "fm-typo-body-md-400 fm-typo-en-body-md-400 mb-2 text-fm-color-typo-secondary" }, at = { class: "fm-typo-en-title-sm-800" }, nt = /* @__PURE__ */ a("img", {
|
|
469
|
-
src:
|
|
468
|
+
src: le,
|
|
470
469
|
class: "w-[150px]"
|
|
471
|
-
}, null, -1),
|
|
470
|
+
}, null, -1), lt = /* @__PURE__ */ a("div", { class: "fm-typo-en-title-sm-800 text-center" }, " Create campaign group to track performance ", -1), ot = /* @__PURE__ */ a("div", { class: "fm-typo-body-en-md-400 text-center text-fm-color-typo-secondary" }, " Start organizing your campaigns and promotions by creating groups. Groups allow you to aggregate performance metrics across multiple vouchers, promotions, or other rewards. ", -1), st = { class: "flex gap-16 items-center" }, xt = /* @__PURE__ */ I({
|
|
472
471
|
__name: "Analytic",
|
|
473
472
|
setup(m) {
|
|
474
473
|
const R = {
|
|
@@ -494,7 +493,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
494
493
|
value: () => e.totalMember
|
|
495
494
|
}
|
|
496
495
|
];
|
|
497
|
-
function
|
|
496
|
+
function l(w) {
|
|
498
497
|
var v;
|
|
499
498
|
c.value = (/* @__PURE__ */ new Date()).toISOString(), (v = u.value) == null || v.showSheet(w);
|
|
500
499
|
}
|
|
@@ -538,11 +537,11 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
538
537
|
await f(), await b();
|
|
539
538
|
}), (w, v) => {
|
|
540
539
|
const E = S("FmPageHead"), L = S("FmSearch"), k = S("FmCard"), H = S("FmButton");
|
|
541
|
-
return
|
|
540
|
+
return o(), h(V, null, [
|
|
542
541
|
p(E, {
|
|
543
542
|
title: "Analytic",
|
|
544
543
|
actions: n(_).length > 0 ? [R] : [],
|
|
545
|
-
"onClick:action": v[0] || (v[0] = ($) =>
|
|
544
|
+
"onClick:action": v[0] || (v[0] = ($) => l())
|
|
546
545
|
}, null, 8, ["actions"]),
|
|
547
546
|
a("div", Ze, [
|
|
548
547
|
a("div", Qe, [
|
|
@@ -562,7 +561,7 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
562
561
|
default: O(() => [
|
|
563
562
|
Ye,
|
|
564
563
|
a("div", et, [
|
|
565
|
-
(
|
|
564
|
+
(o(), h(V, null, P(s, ($, M) => a("div", {
|
|
566
565
|
key: $.key,
|
|
567
566
|
class: ne(["px-8", { "xs:!border-r": M % 2 == 0 }])
|
|
568
567
|
}, [
|
|
@@ -574,29 +573,29 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
574
573
|
_: 1
|
|
575
574
|
})
|
|
576
575
|
]),
|
|
577
|
-
n(_).length ? B("", !0) : (
|
|
576
|
+
n(_).length ? B("", !0) : (o(), F(k, {
|
|
578
577
|
key: 0,
|
|
579
578
|
variant: "outlined",
|
|
580
579
|
class: "flex flex-col gap-y-24 items-center p-16"
|
|
581
580
|
}, {
|
|
582
581
|
default: O(() => [
|
|
583
582
|
nt,
|
|
584
|
-
ot,
|
|
585
583
|
lt,
|
|
584
|
+
ot,
|
|
586
585
|
a("div", st, [
|
|
587
586
|
p(H, {
|
|
588
587
|
label: "Create group",
|
|
589
588
|
icon: "add",
|
|
590
|
-
onClick: v[2] || (v[2] = ($) =>
|
|
589
|
+
onClick: v[2] || (v[2] = ($) => l())
|
|
591
590
|
})
|
|
592
591
|
])
|
|
593
592
|
]),
|
|
594
593
|
_: 1
|
|
595
594
|
})),
|
|
596
|
-
(
|
|
595
|
+
(o(!0), h(V, null, P(n(g), ($) => (o(), F(Ue, {
|
|
597
596
|
key: $._id.toString(),
|
|
598
597
|
group: $,
|
|
599
|
-
"on-edit":
|
|
598
|
+
"on-edit": l
|
|
600
599
|
}, null, 8, ["group"]))), 128)),
|
|
601
600
|
p(We, {
|
|
602
601
|
ref_key: "sheetRef",
|
|
@@ -609,5 +608,5 @@ const he = { class: "divide-x flex flex-wrap" }, be = { class: "fm-typo-en-body-
|
|
|
609
608
|
}
|
|
610
609
|
});
|
|
611
610
|
export {
|
|
612
|
-
|
|
611
|
+
xt as default
|
|
613
612
|
};
|
|
@@ -1,24 +1,23 @@
|
|
|
1
|
-
import { defineComponent as P, ref as g, computed as U, onMounted as M, resolveComponent as
|
|
1
|
+
import { defineComponent as P, ref as g, computed as U, onMounted as M, resolveComponent as l, openBlock as i, createElementBlock as f, Fragment as _, createVNode as r, unref as a, createElementVNode as s, withCtx as h, renderList as j, createBlock as w, resolveDynamicComponent as E, toDisplayString as b, createCommentVNode as H, h as q } from "vue";
|
|
2
2
|
import { _ as z } from "./campaign-CpzFl8Vr.js";
|
|
3
3
|
import { useDialog as G, components as J } from "@feedmepos/ui-library";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { g as F, b as k } from "./dto-BtdVC-Ab.js";
|
|
4
|
+
import { u as Q, p as W } from "./loading-DQaawbHE.js";
|
|
5
|
+
import { a as X } from "./app-DgbDbhL-.js";
|
|
6
|
+
import { u as Y } from "./campaign-BkvrUTEJ.js";
|
|
7
|
+
import { g as F, b as k } from "./dto-YYVhW73A.js";
|
|
9
8
|
import { _ as Z } from "./ChipMenu.vue_vue_type_script_setup_true_lang-BPpZZNkr.js";
|
|
10
|
-
import { _ as ee } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-
|
|
11
|
-
import { u as te } from "./template-
|
|
12
|
-
import { c as y } from "./index-
|
|
13
|
-
const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-center justify-between w-full" }, se = { class: "flex gap-8 overflow-x-auto" }, ne = { class: "space-y-8" }, re = { class: "flex w-full gap-4 items-center" },
|
|
9
|
+
import { _ as ee } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-CUxfXaro.js";
|
|
10
|
+
import { u as te } from "./template-CETJ6lkf.js";
|
|
11
|
+
import { c as y } from "./index-DQC_1tRF.js";
|
|
12
|
+
const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-center justify-between w-full" }, se = { class: "flex gap-8 overflow-x-auto" }, ne = { class: "space-y-8" }, re = { class: "flex w-full gap-4 items-center" }, le = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ie = { class: "space-y-4" }, ce = { class: "fm-typo-en-body-lg-600" }, me = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, de = { key: 0 }, ue = /* @__PURE__ */ s("div", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-600" }, " No results found ", -1), pe = [
|
|
14
13
|
ue
|
|
15
14
|
], fe = /* @__PURE__ */ s("img", {
|
|
16
15
|
src: z,
|
|
17
16
|
class: "aspect-square w-[150px]"
|
|
18
17
|
}, null, -1), ye = /* @__PURE__ */ s("div", { class: "flex flex-col gap-16 text-center" }, [
|
|
19
18
|
/* @__PURE__ */ s("div", { class: "fm-typo-en-title-sm-800" }, " Create your broadcast campaign "),
|
|
20
|
-
/* @__PURE__ */ s("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, "
|
|
21
|
-
], -1),
|
|
19
|
+
/* @__PURE__ */ s("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Broadcasting allows you to send text messages to all your customers, informing them about new deals, events, or important updates. ")
|
|
20
|
+
], -1), Ae = /* @__PURE__ */ P({
|
|
22
21
|
__name: "Broadcast",
|
|
23
22
|
setup(ge) {
|
|
24
23
|
const A = {
|
|
@@ -26,7 +25,7 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
26
25
|
value: "create",
|
|
27
26
|
isPrimary: !0,
|
|
28
27
|
prependIcon: "add"
|
|
29
|
-
}, V = te("BROADCAST", G()), R = X(), c = Y(), { global: D, minor:
|
|
28
|
+
}, V = te("BROADCAST", G()), R = X(), c = Y(), { global: D, minor: C } = Q, L = g((/* @__PURE__ */ new Date()).toISOString()), n = g({
|
|
30
29
|
searchKey: "",
|
|
31
30
|
location: null
|
|
32
31
|
}), u = U(
|
|
@@ -67,7 +66,7 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
67
66
|
}
|
|
68
67
|
], v = g();
|
|
69
68
|
async function x(e) {
|
|
70
|
-
await
|
|
69
|
+
await W.remove(`Are you sure you want to remove ${e.name}?`) && await C(
|
|
71
70
|
async () => {
|
|
72
71
|
await y.delete(e._id), await c.read("BROADCAST");
|
|
73
72
|
},
|
|
@@ -92,7 +91,7 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
async function $(e) {
|
|
95
|
-
await
|
|
94
|
+
await C(
|
|
96
95
|
async () => {
|
|
97
96
|
e.campaign._id ? await y.update(e.campaign._id, e) : await y.create(e), await c.read("BROADCAST");
|
|
98
97
|
},
|
|
@@ -107,8 +106,8 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
107
106
|
await c.read("BROADCAST");
|
|
108
107
|
});
|
|
109
108
|
}), (e, o) => {
|
|
110
|
-
const m =
|
|
111
|
-
return
|
|
109
|
+
const m = l("FmPageHead"), d = l("FmSearch"), K = l("FmTable"), S = l("FmButton"), I = l("FmListItem"), O = l("FmList"), N = l("FmCard");
|
|
110
|
+
return i(), f(_, null, [
|
|
112
111
|
r(m, {
|
|
113
112
|
title: "Broadcast",
|
|
114
113
|
actions: a(u).length > 0 ? [A] : [],
|
|
@@ -122,7 +121,7 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
122
121
|
placeholder: "search",
|
|
123
122
|
collapsible: ""
|
|
124
123
|
}, null, 8, ["modelValue"]),
|
|
125
|
-
a(c).campaigns.broadcast && a(c).campaigns.broadcast.length > 0 ? (
|
|
124
|
+
a(c).campaigns.broadcast && a(c).campaigns.broadcast.length > 0 ? (i(), f(_, { key: 0 }, [
|
|
126
125
|
s("div", ae, [
|
|
127
126
|
s("div", se, [
|
|
128
127
|
r(Z, {
|
|
@@ -154,9 +153,9 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
154
153
|
}, null, 8, ["row-data", "search-value"]),
|
|
155
154
|
r(O, { class: "hidden xs:flex flex-col mx-[-24px]" }, {
|
|
156
155
|
default: h(() => [
|
|
157
|
-
(
|
|
156
|
+
(i(!0), f(_, null, j(a(u).filter(
|
|
158
157
|
(t) => t.name.toLowerCase().includes(a(n).searchKey.toLowerCase())
|
|
159
|
-
), (t) => (
|
|
158
|
+
), (t) => (i(), w(I, {
|
|
160
159
|
key: t._id.toString(),
|
|
161
160
|
onClick: (B) => p(t),
|
|
162
161
|
class: "py-12 px-16 flex items-center justify-between border-b border-fm-color-neutral-gray-100"
|
|
@@ -164,12 +163,12 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
164
163
|
default: h(() => [
|
|
165
164
|
s("div", ne, [
|
|
166
165
|
s("div", re, [
|
|
167
|
-
(
|
|
168
|
-
s("div",
|
|
166
|
+
(i(), w(E(a(F)(t)))),
|
|
167
|
+
s("div", le, b(t.currentReceive ?? 0) + " sent ", 1)
|
|
169
168
|
]),
|
|
170
|
-
s("div",
|
|
171
|
-
s("div", ce,
|
|
172
|
-
s("div", me,
|
|
169
|
+
s("div", ie, [
|
|
170
|
+
s("div", ce, b(t.name), 1),
|
|
171
|
+
s("div", me, b(a(k)(t)), 1)
|
|
173
172
|
])
|
|
174
173
|
]),
|
|
175
174
|
r(S, {
|
|
@@ -184,8 +183,8 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
184
183
|
]),
|
|
185
184
|
_: 1
|
|
186
185
|
}),
|
|
187
|
-
a(u).length == 0 ? (
|
|
188
|
-
], 64)) : (
|
|
186
|
+
a(u).length == 0 ? (i(), f("div", de, pe)) : H("", !0)
|
|
187
|
+
], 64)) : (i(), w(N, {
|
|
189
188
|
key: 1,
|
|
190
189
|
variant: "outlined",
|
|
191
190
|
class: "w-full flex flex-col items-center justify-center gap-y-24 p-24"
|
|
@@ -213,5 +212,5 @@ const oe = { class: "px-24 flex flex-col gap-y-16" }, ae = { class: "flex items-
|
|
|
213
212
|
}
|
|
214
213
|
});
|
|
215
214
|
export {
|
|
216
|
-
|
|
215
|
+
Ae as default
|
|
217
216
|
};
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { R as RuleOperator, _ } from "./index-
|
|
2
|
-
import { i as isRuleGroup } from "./rule-builder-
|
|
1
|
+
import { R as RuleOperator, _ } from "./index-BhacKx5B.js";
|
|
2
|
+
import { i as isRuleGroup } from "./rule-builder-7GBNrPXt.js";
|
|
3
3
|
import { defineComponent, resolveComponent, openBlock, createBlock, withCtx, createElementVNode, createElementBlock, Fragment, renderList, createVNode, toDisplayString } from "vue";
|
|
4
4
|
import { useDialog } from "@feedmepos/ui-library";
|
|
5
|
-
import "./index-
|
|
6
|
-
import { a as F_RUNNABLE_CAMPAIGN_TYPE } from "./index-
|
|
7
|
-
import "./index-
|
|
8
|
-
import "./index-
|
|
9
|
-
import "./index-
|
|
10
|
-
import "./index-
|
|
5
|
+
import "./index-BsEqtUmY.js";
|
|
6
|
+
import { a as F_RUNNABLE_CAMPAIGN_TYPE } from "./index-CdtrQ9tR.js";
|
|
7
|
+
import "./index-Dd3hrFcQ.js";
|
|
8
|
+
import "./index-FWp9M1yS.js";
|
|
9
|
+
import "./index-oQLJE4Uw.js";
|
|
10
|
+
import "./index-Cfo2A0Se.js";
|
|
11
11
|
function validateRule(data, r, date) {
|
|
12
12
|
const rules = new RuleOperator(date ?? /* @__PURE__ */ new Date());
|
|
13
13
|
function meetConditions(e) {
|
|
14
14
|
return Object.entries(e.conditions ?? {}).reduce(
|
|
15
|
-
(o, [
|
|
16
|
-
const
|
|
15
|
+
(o, [n, t]) => {
|
|
16
|
+
const l = e.property ? e.property === "__now" ? rules.ruleNow : _.get(data, e.property) : data;
|
|
17
17
|
if (!t)
|
|
18
18
|
return o;
|
|
19
|
-
const
|
|
20
|
-
|
|
19
|
+
const i = rules[n](
|
|
20
|
+
l,
|
|
21
21
|
t
|
|
22
22
|
);
|
|
23
|
-
return o &&
|
|
23
|
+
return o && i;
|
|
24
24
|
},
|
|
25
25
|
!0
|
|
26
26
|
);
|
|
27
27
|
}
|
|
28
28
|
function evaluateRuleResult(rr, logic) {
|
|
29
|
-
const target = Object.entries(rr).reduce((e, [o,
|
|
29
|
+
const target = Object.entries(rr).reduce((e, [o, n]) => e.replace(RegExp(`\\b${o}\\b`, "g"), n ? "true" : "false"), logic);
|
|
30
30
|
return !logic || !!eval(target);
|
|
31
31
|
}
|
|
32
32
|
function getRuleResults(e) {
|
|
33
|
-
return isRuleGroup(e) ? Object.entries(e.rules).reduce((o, [
|
|
33
|
+
return isRuleGroup(e) ? Object.entries(e.rules).reduce((o, [n, t]) => ({
|
|
34
34
|
...o,
|
|
35
|
-
[
|
|
35
|
+
[n]: isRuleGroup(t) ? evaluateRuleResult(getRuleResults(t), t.logic) : meetConditions(t)
|
|
36
36
|
}), {}) : {
|
|
37
37
|
[e.name]: meetConditions(e)
|
|
38
38
|
};
|
|
@@ -42,7 +42,7 @@ function validateRule(data, r, date) {
|
|
|
42
42
|
const _hoisted_1 = /* @__PURE__ */ createElementVNode("div", { class: "" }, [
|
|
43
43
|
/* @__PURE__ */ createElementVNode("div", { class: "fm-typo-en-title-sm-800" }, "Add benefit"),
|
|
44
44
|
/* @__PURE__ */ createElementVNode("div", { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, " Select the benefit type that you want to reward the selected tier. ")
|
|
45
|
-
], -1), _hoisted_2 = { class: "flex flex-col h-full space-y-24" }, _hoisted_3 = { class: "fm-typo-en-title-sm-
|
|
45
|
+
], -1), _hoisted_2 = { class: "flex flex-col h-full space-y-24" }, _hoisted_3 = { class: "fm-typo-en-title-sm-600" }, _hoisted_4 = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, _sfc_main = /* @__PURE__ */ defineComponent({
|
|
46
46
|
__name: "CampaignTypeDialog",
|
|
47
47
|
props: {
|
|
48
48
|
onSelect: {
|
|
@@ -51,7 +51,7 @@ const _hoisted_1 = /* @__PURE__ */ createElementVNode("div", { class: "" }, [
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
setup(e) {
|
|
54
|
-
const o = e,
|
|
54
|
+
const o = e, n = useDialog(), t = [
|
|
55
55
|
{
|
|
56
56
|
title: "Promotion",
|
|
57
57
|
description: "Special offers or deals made available for a limited time",
|
|
@@ -59,48 +59,48 @@ const _hoisted_1 = /* @__PURE__ */ createElementVNode("div", { class: "" }, [
|
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
title: "Voucher",
|
|
62
|
-
description: "
|
|
62
|
+
description: "A digital coupon that can be redeemed for a discounts on future purchases.",
|
|
63
63
|
value: F_RUNNABLE_CAMPAIGN_TYPE.enum.VOUCHER
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
title: "Experience",
|
|
67
|
-
description: "
|
|
67
|
+
description: "Experience points help customers gain membership tiers.",
|
|
68
68
|
value: F_RUNNABLE_CAMPAIGN_TYPE.enum.POINT
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
title: "Point",
|
|
72
|
-
description: "
|
|
72
|
+
description: "Points allow customers to purchase bundle items.",
|
|
73
73
|
value: F_RUNNABLE_CAMPAIGN_TYPE.enum.COIN
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
title: "Game",
|
|
77
|
-
description: "
|
|
77
|
+
description: "The game feature adds a fun and encourage customers to engage more.",
|
|
78
78
|
value: F_RUNNABLE_CAMPAIGN_TYPE.enum.GAME
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
title: "Credit",
|
|
82
|
-
description: "
|
|
82
|
+
description: "Credits are virtual money that customers can use to pay for their purchases.",
|
|
83
83
|
value: F_RUNNABLE_CAMPAIGN_TYPE.enum.CREDIT
|
|
84
84
|
}
|
|
85
85
|
];
|
|
86
|
-
function
|
|
87
|
-
|
|
86
|
+
function l(i) {
|
|
87
|
+
n.close(), o.onSelect(i);
|
|
88
88
|
}
|
|
89
|
-
return (
|
|
90
|
-
const
|
|
91
|
-
return openBlock(), createBlock(
|
|
89
|
+
return (i, c) => {
|
|
90
|
+
const a = resolveComponent("FmCard");
|
|
91
|
+
return openBlock(), createBlock(a, { class: "p-24 space-y-16" }, {
|
|
92
92
|
default: withCtx(() => [
|
|
93
93
|
_hoisted_1,
|
|
94
94
|
createElementVNode("div", _hoisted_2, [
|
|
95
|
-
(openBlock(), createElementBlock(Fragment, null, renderList(t, (
|
|
95
|
+
(openBlock(), createElementBlock(Fragment, null, renderList(t, (s) => createVNode(a, {
|
|
96
96
|
variant: "outlined",
|
|
97
|
-
key:
|
|
98
|
-
onClick: (
|
|
99
|
-
class: "p-16"
|
|
97
|
+
key: s.value,
|
|
98
|
+
onClick: (u) => l(s.value),
|
|
99
|
+
class: "p-16 space-y-8 cursor-pointer"
|
|
100
100
|
}, {
|
|
101
101
|
default: withCtx(() => [
|
|
102
|
-
createElementVNode("div", _hoisted_3, toDisplayString(
|
|
103
|
-
createElementVNode("div", _hoisted_4, toDisplayString(
|
|
102
|
+
createElementVNode("div", _hoisted_3, toDisplayString(s.title), 1),
|
|
103
|
+
createElementVNode("div", _hoisted_4, toDisplayString(s.description), 1)
|
|
104
104
|
]),
|
|
105
105
|
_: 2
|
|
106
106
|
}, 1032, ["onClick"])), 64))
|