@feedmepos/mf-connect 0.0.12-beta.1 → 0.0.12-prod
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-DCypPSCk.js → Analytic-BM9j4mcq.js} +66 -67
- package/dist/{Broadcast-BiXJ08OV.js → Broadcast-5a7_nlK2.js} +7 -7
- package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-CG-T97J3.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-B_Qo6Zw4.js} +8 -8
- package/dist/{Card-BWA16Yvc.js → Card-D2KXsf6D.js} +121 -121
- package/dist/{Collections-CeOCRniu.js → Collections-rsGMKAaE.js} +129 -141
- package/dist/{Credit-yiXs0edD.js → Credit-BnHW4aAx.js} +7 -7
- package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-C8jMdyF8.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-CBbNUBWX.js} +22 -24
- package/dist/{EffectSheet.vue_vue_type_style_index_0_lang-DZ8DT8XN.js → EffectSheet.vue_vue_type_style_index_0_lang-Bj3dHqjH.js} +6 -6
- package/dist/{Experience-zOzaxMlr.js → Experience-DZ3QmVqZ.js} +7 -7
- package/dist/{Game-BO2phNz6.js → Game-DKCrkTue.js} +7 -7
- package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-BksWmv66.js → ImageInput.vue_vue_type_script_setup_true_lang-ChLUJK77.js} +1 -1
- package/dist/{LottieAnimation.vue_vue_type_script_setup_true_lang-rKwqVIRl.js → MainLayout-C4tOUQYb.js} +53 -20
- package/dist/{Marketing-IUflGjY9.js → Marketing-CgOPXO0b.js} +25 -25
- package/dist/{Member-B1g0QDuZ.js → Member-DgJzz-qV.js} +2 -2
- package/dist/MemberList-BNIpWj0x.js +1718 -0
- package/dist/{MemberTransactions-DeUgZhWj.js → MemberTransactions-BEYEel4q.js} +2 -2
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-BJ1wLWMO.js +203 -0
- package/dist/{Mission-BbBIzoSj.js → Mission-V53rL7XT.js} +7 -7
- package/dist/{Point-BoWE9-OF.js → Point-BE7sbUpv.js} +7 -7
- package/dist/{Promotion-CEKdy76f.js → Promotion-A23HHyAW.js} +8 -8
- package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-fXEWwI4A.js → RuleGroup.vue_vue_type_script_setup_true_lang-CzOiRmO3.js} +14 -14
- package/dist/{Segment-DcvfWqAn.js → Segment-OjThR8-l.js} +18 -19
- package/dist/{Setting-BANOT6SA.js → Setting-Cv5FJWCG.js} +541 -571
- package/dist/Store-DQoSb0vC.js +1442 -0
- package/dist/{StoreRewards-CCvwfnOm.js → StoreRewards-DHdtRsdr.js} +74 -75
- package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-CmrTA4-4.js → StoreTransactions.vue_vue_type_script_setup_true_lang-8BxMxOgb.js} +6 -6
- package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-DEzXVza9.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-B6DvQL2O.js} +1 -1
- package/dist/{Tier-ZdU-11IW.js → Tier-BWbAvEvT.js} +68 -71
- package/dist/{Title-blrd1TJo.js → Title-DuMvJSeo.js} +75 -78
- package/dist/{Transaction-DQAULKi7.js → Transaction-Dh9hUxxn.js} +1 -1
- package/dist/{Voucher-CYNCWSMT.js → Voucher-CDj33EVW.js} +37 -37
- package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-3LlSDiq0.js +140 -0
- package/dist/{app-tsDuwC_C.js → app-C-JARJOh.js} +1 -1
- package/dist/{app-DF3bTQH0.js → app-CJmGoLdT.js} +46 -46
- package/dist/app.js +1 -1
- package/dist/{campaign-c02TRgUx.js → campaign-0ym0cymh.js} +11 -13
- package/dist/{collection.fn-B6B0oNGr.js → collection.fn-DHlfGYAC.js} +2 -4
- package/dist/{dto-DWMeu-Hm.js → dto-DHLYS7Rm.js} +239 -239
- package/dist/{effect-CaLNCyhR.js → effect-lIau3gAr.js} +1 -1
- package/dist/{export-Bz6PLxJ9.js → export-C2z8mAAK.js} +3 -3
- package/dist/{helper-B2o3ew7J.js → helper-Dk7nQLD9.js} +1 -1
- package/dist/{index-BxtNSMK4.js → index-BacICqbE.js} +217 -232
- package/dist/{index-DPo8jwQP.js → index-BiKKeruN.js} +1 -1
- package/dist/{index-DTd_z4wT.js → index-BifZnXOd.js} +7 -7
- package/dist/{index-DaQFDFz-.js → index-BuYuArTc.js} +2 -2
- package/dist/{index-BToo2gFr.js → index-CoNWSPv-.js} +1 -1
- package/dist/{index-BChayEiC.js → index-CwRopfKJ.js} +68 -105
- package/dist/{index-CCfSx-gc.js → index-DBs-f_OF.js} +27 -28
- package/dist/{index-CTGAvDfj.js → index-DrekSEPv.js} +36 -43
- package/dist/{index-D0Ya3m-m.js → index-Dy-njFA-.js} +1 -1
- package/dist/{index-nmfbRO9K.js → index-jXbGzZIZ.js} +1 -1
- package/dist/{loading-CZwfD-e9.js → loading-C0Im7NLc.js} +4 -4
- package/dist/{lodash-Cc_bj1bL.js → lodash-DRiB9OLu.js} +1 -1
- package/dist/{membership-qjZf5wAq.js → membership-BWDFt2D0.js} +3 -3
- package/dist/{money-3UQ9c3mO.js → money-CgXcfonm.js} +1 -1
- package/dist/{number-WEVutPPD.js → number-B0SphtT-.js} +3 -3
- package/dist/{rule-D0BranxC.js → rule-CWGFyRio.js} +2 -2
- package/dist/{rule-builder-YrjEqgOu.js → rule-builder-C484wKRf.js} +1 -1
- package/dist/style.css +1 -1
- package/dist/{template-CiXPt8Gv.js → template-DDHe5agw.js} +6 -6
- package/dist/{usePagination-D-zzWGQR.js → usePagination-D0-ih-vZ.js} +1 -1
- package/dist/{xlsx-CEATNjcT.js → xlsx-D9dXZPK6.js} +309 -309
- package/package.json +1 -1
- package/dist/MainLayout-q19w--ta.js +0 -41
- package/dist/MemberList-DxfLply-.js +0 -1729
- package/dist/MessageInput.vue_vue_type_script_setup_true_lang-Bd8FRdKw.js +0 -432
- package/dist/Store-LIm_vhSQ.js +0 -1456
- package/dist/ZodTextField.vue_vue_type_script_setup_true_lang-CWt4tVdk.js +0 -55
- package/dist/zod-W_PvIofQ.js +0 -90
|
@@ -1,24 +1,25 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { defineComponent as
|
|
1
|
+
var ee = Object.defineProperty;
|
|
2
|
+
var oe = (b, r, d) => r in b ? ee(b, r, { enumerable: !0, configurable: !0, writable: !0, value: d }) : b[r] = d;
|
|
3
|
+
var z = (b, r, d) => oe(b, typeof r != "symbol" ? r + "" : r, d);
|
|
4
|
+
import { defineComponent as G, ref as g, computed as H, watch as O, resolveComponent as c, openBlock as h, createBlock as L, unref as e, isRef as K, withCtx as R, createElementVNode as v, createVNode as s, createElementBlock as P, Fragment as N, renderList as te, createCommentVNode as U, onMounted as ae, h as T } from "vue";
|
|
5
5
|
import { h as j } from "./moment-BWErdI6_.js";
|
|
6
|
-
import { u as
|
|
7
|
-
import { components as
|
|
8
|
-
import { u as
|
|
9
|
-
import { useRoute as
|
|
10
|
-
import { c as E } from "./index-
|
|
11
|
-
import { u as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
6
|
+
import { u as le, J as ne, R as se } from "./app-CJmGoLdT.js";
|
|
7
|
+
import { components as re } from "@feedmepos/ui-library";
|
|
8
|
+
import { u as J, a as ie } from "./loading-C0Im7NLc.js";
|
|
9
|
+
import { useRoute as Q } from "vue-router";
|
|
10
|
+
import { c as E } from "./index-Dy-njFA-.js";
|
|
11
|
+
import { u as Y, w as ue } from "./xlsx-D9dXZPK6.js";
|
|
12
|
+
import { g as de } from "./user-Bm4KttFq.js";
|
|
13
|
+
import { u as ce, _ as me } from "./usePagination-D0-ih-vZ.js";
|
|
14
|
+
import { m as pe } from "./index-BiKKeruN.js";
|
|
15
|
+
import { o as fe } from "./objectId-dwaoBfJX.js";
|
|
16
|
+
const ge = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code type", -1), be = { class: "space-y-16" }, Ce = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Settings", -1), ve = { class: "gap-16 grid grid-cols-2" }, he = { class: "flex items-center gap-8" }, ye = /* @__PURE__ */ G({
|
|
16
17
|
__name: "CreateCollectionSheet",
|
|
17
18
|
emits: ["success"],
|
|
18
|
-
setup(b, { expose: r, emit:
|
|
19
|
-
const { minor:
|
|
19
|
+
setup(b, { expose: r, emit: d }) {
|
|
20
|
+
const { minor: F } = J, B = Q(), I = g(), k = g(!1), q = d, C = g(!1);
|
|
20
21
|
function m(i) {
|
|
21
|
-
C.value = i, i && (
|
|
22
|
+
C.value = i, i && (a.value = {
|
|
22
23
|
quantity: 1,
|
|
23
24
|
code: "",
|
|
24
25
|
codeConfig: {
|
|
@@ -30,7 +31,7 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
30
31
|
}
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
|
-
const
|
|
34
|
+
const a = g({
|
|
34
35
|
quantity: 1,
|
|
35
36
|
code: "",
|
|
36
37
|
codeConfig: {
|
|
@@ -40,7 +41,7 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
40
41
|
suffix: "",
|
|
41
42
|
pattern: "########"
|
|
42
43
|
}
|
|
43
|
-
}),
|
|
44
|
+
}), A = [
|
|
44
45
|
{
|
|
45
46
|
label: "Bulk codes",
|
|
46
47
|
value: "bulk",
|
|
@@ -51,7 +52,7 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
51
52
|
value: "single",
|
|
52
53
|
sublabel: "Enter your own custom codes"
|
|
53
54
|
}
|
|
54
|
-
],
|
|
55
|
+
], y = [
|
|
55
56
|
{
|
|
56
57
|
label: "Alphanumeric",
|
|
57
58
|
value: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
@@ -64,10 +65,10 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
64
65
|
{ label: "Alphabetic Uppercase", value: "ABCDEFGHIJKLMNOPQRSTUVWXYZ" },
|
|
65
66
|
{ label: "Numbers", value: "0123456789" },
|
|
66
67
|
{ label: "Custom", value: "" }
|
|
67
|
-
],
|
|
68
|
-
async function
|
|
68
|
+
], x = g(y[0].value), f = g("bulk"), V = g(!1), n = H(() => B.params.id);
|
|
69
|
+
async function l(i) {
|
|
69
70
|
var o;
|
|
70
|
-
await ((o = I.value) == null ? void 0 : o.validateInputs()),
|
|
71
|
+
await ((o = I.value) == null ? void 0 : o.validateInputs()), k.value && await F(
|
|
71
72
|
async () => {
|
|
72
73
|
await E.createCollectionByCampaignId(n.value, i), await q("success");
|
|
73
74
|
},
|
|
@@ -82,16 +83,16 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
82
83
|
}), O(
|
|
83
84
|
() => f.value,
|
|
84
85
|
(i, o) => {
|
|
85
|
-
o != i && (
|
|
86
|
+
o != i && (a.value.code = "", a.value.codeConfig.length = 8, a.value.codeConfig.charset = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", a.value.codeConfig.prefix = "", a.value.codeConfig.suffix = "", a.value.codeConfig.pattern = "########");
|
|
86
87
|
}
|
|
87
88
|
), O(
|
|
88
|
-
() =>
|
|
89
|
+
() => a.value.codeConfig.length,
|
|
89
90
|
(i, o) => {
|
|
90
|
-
i != o && (
|
|
91
|
+
i != o && (a.value.codeConfig.pattern = "#".repeat(Math.min(16, Number(i))));
|
|
91
92
|
}
|
|
92
93
|
), (i, o) => {
|
|
93
|
-
const
|
|
94
|
-
return h(),
|
|
94
|
+
const u = c("FmRadio"), w = c("FmRadioGroup"), D = c("FmSwitch"), S = c("FmStepperField"), M = c("FmSelect"), _ = c("FmTextField"), W = c("FmTextarea"), X = c("FmForm"), $ = c("FmButton"), Z = c("FmSideSheet");
|
|
95
|
+
return h(), L(Z, {
|
|
95
96
|
"max-width": 560,
|
|
96
97
|
"dismiss-away": !0,
|
|
97
98
|
header: "Create collection",
|
|
@@ -102,13 +103,13 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
102
103
|
]
|
|
103
104
|
}, {
|
|
104
105
|
"side-sheet-footer": R(() => [
|
|
105
|
-
v("div",
|
|
106
|
-
s(
|
|
106
|
+
v("div", he, [
|
|
107
|
+
s($, {
|
|
107
108
|
label: "Save",
|
|
108
|
-
onClick: o[12] || (o[12] = (t) =>
|
|
109
|
-
loading: e(
|
|
109
|
+
onClick: o[12] || (o[12] = (t) => l(e(a))),
|
|
110
|
+
loading: e(le)().isLoading
|
|
110
111
|
}, null, 8, ["loading"]),
|
|
111
|
-
s(
|
|
112
|
+
s($, {
|
|
112
113
|
label: "Cancel",
|
|
113
114
|
type: "button",
|
|
114
115
|
variant: "tertiary",
|
|
@@ -117,24 +118,24 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
117
118
|
])
|
|
118
119
|
]),
|
|
119
120
|
default: R(() => [
|
|
120
|
-
s(
|
|
121
|
-
s(
|
|
121
|
+
s(ne, { json: e(a) }, null, 8, ["json"]),
|
|
122
|
+
s(X, {
|
|
122
123
|
ref_key: "form",
|
|
123
124
|
ref: I,
|
|
124
125
|
class: "space-y-40",
|
|
125
|
-
onValidationSuccess: o[10] || (o[10] = (t) =>
|
|
126
|
-
onValidationFailed: o[11] || (o[11] = (t) =>
|
|
126
|
+
onValidationSuccess: o[10] || (o[10] = (t) => k.value = !0),
|
|
127
|
+
onValidationFailed: o[11] || (o[11] = (t) => k.value = !1)
|
|
127
128
|
}, {
|
|
128
129
|
default: R(() => [
|
|
129
130
|
v("div", null, [
|
|
130
|
-
|
|
131
|
+
ge,
|
|
131
132
|
s(w, {
|
|
132
133
|
modelValue: e(f),
|
|
133
134
|
"onUpdate:modelValue": o[0] || (o[0] = (t) => K(f) ? f.value = t : null),
|
|
134
135
|
inline: !1
|
|
135
136
|
}, {
|
|
136
137
|
default: R(() => [
|
|
137
|
-
(h(), N
|
|
138
|
+
(h(), P(N, null, te(A, (t) => s(u, {
|
|
138
139
|
key: t.value,
|
|
139
140
|
value: t.value,
|
|
140
141
|
label: t.label,
|
|
@@ -144,10 +145,10 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
144
145
|
_: 1
|
|
145
146
|
}, 8, ["modelValue"])
|
|
146
147
|
]),
|
|
147
|
-
v("div",
|
|
148
|
-
|
|
149
|
-
e(f) === "bulk" ? (h(), N
|
|
150
|
-
s(
|
|
148
|
+
v("div", be, [
|
|
149
|
+
Ce,
|
|
150
|
+
e(f) === "bulk" ? (h(), P(N, { key: 0 }, [
|
|
151
|
+
s(D, {
|
|
151
152
|
"model-value": e(V),
|
|
152
153
|
"label-placement": "right",
|
|
153
154
|
value: "true",
|
|
@@ -155,10 +156,10 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
155
156
|
required: !0,
|
|
156
157
|
"onUpdate:modelValue": o[1] || (o[1] = () => V.value = !e(V))
|
|
157
158
|
}, null, 8, ["model-value"]),
|
|
158
|
-
e(V) ? (h(), N
|
|
159
|
+
e(V) ? (h(), P(N, { key: 0 }, [
|
|
159
160
|
s(S, {
|
|
160
|
-
modelValue: e(
|
|
161
|
-
"onUpdate:modelValue": o[2] || (o[2] = (t) => e(
|
|
161
|
+
modelValue: e(a).codeConfig.length,
|
|
162
|
+
"onUpdate:modelValue": o[2] || (o[2] = (t) => e(a).codeConfig.length = t),
|
|
162
163
|
label: "Code length",
|
|
163
164
|
max: 16,
|
|
164
165
|
min: 1,
|
|
@@ -168,61 +169,61 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
168
169
|
],
|
|
169
170
|
required: !0
|
|
170
171
|
}, null, 8, ["modelValue", "rules"]),
|
|
171
|
-
s(
|
|
172
|
+
s(M, {
|
|
172
173
|
label: "Charset",
|
|
173
|
-
"model-value": e(
|
|
174
|
-
items:
|
|
175
|
-
"helper-text": e(
|
|
174
|
+
"model-value": e(x),
|
|
175
|
+
items: y,
|
|
176
|
+
"helper-text": e(a).codeConfig.charset.length > 62 ? `${e(a).codeConfig.charset.substring(0, 62)}...` : e(a).codeConfig.charset,
|
|
176
177
|
"onUpdate:modelValue": o[3] || (o[3] = (t) => {
|
|
177
|
-
|
|
178
|
+
x.value = t, e(a).codeConfig.charset = t;
|
|
178
179
|
})
|
|
179
180
|
}, null, 8, ["model-value", "helper-text"]),
|
|
180
|
-
e(
|
|
181
|
+
e(x) === "" ? (h(), L(_, {
|
|
181
182
|
key: 0,
|
|
182
|
-
modelValue: e(
|
|
183
|
-
"onUpdate:modelValue": o[4] || (o[4] = (t) => e(
|
|
183
|
+
modelValue: e(a).codeConfig.charset,
|
|
184
|
+
"onUpdate:modelValue": o[4] || (o[4] = (t) => e(a).codeConfig.charset = t),
|
|
184
185
|
label: "Custom Charset",
|
|
185
186
|
required: ""
|
|
186
|
-
}, null, 8, ["modelValue"])) :
|
|
187
|
-
v("div",
|
|
188
|
-
s(
|
|
189
|
-
modelValue: e(
|
|
190
|
-
"onUpdate:modelValue": o[5] || (o[5] = (t) => e(
|
|
187
|
+
}, null, 8, ["modelValue"])) : U("", !0),
|
|
188
|
+
v("div", ve, [
|
|
189
|
+
s(_, {
|
|
190
|
+
modelValue: e(a).codeConfig.prefix,
|
|
191
|
+
"onUpdate:modelValue": o[5] || (o[5] = (t) => e(a).codeConfig.prefix = t),
|
|
191
192
|
label: "Prefix (Optional)"
|
|
192
193
|
}, null, 8, ["modelValue"]),
|
|
193
|
-
s(
|
|
194
|
-
modelValue: e(
|
|
195
|
-
"onUpdate:modelValue": o[6] || (o[6] = (t) => e(
|
|
194
|
+
s(_, {
|
|
195
|
+
modelValue: e(a).codeConfig.suffix,
|
|
196
|
+
"onUpdate:modelValue": o[6] || (o[6] = (t) => e(a).codeConfig.suffix = t),
|
|
196
197
|
label: "Suffix (Optional)"
|
|
197
198
|
}, null, 8, ["modelValue"])
|
|
198
199
|
]),
|
|
199
|
-
s(
|
|
200
|
-
modelValue: e(
|
|
201
|
-
"onUpdate:modelValue": o[7] || (o[7] = (t) => e(
|
|
200
|
+
s(_, {
|
|
201
|
+
modelValue: e(a).codeConfig.pattern,
|
|
202
|
+
"onUpdate:modelValue": o[7] || (o[7] = (t) => e(a).codeConfig.pattern = t),
|
|
202
203
|
label: "Pattern",
|
|
203
204
|
required: !0
|
|
204
205
|
}, null, 8, ["modelValue"])
|
|
205
|
-
], 64)) :
|
|
206
|
-
s(
|
|
207
|
-
modelValue: e(
|
|
208
|
-
"onUpdate:modelValue": o[8] || (o[8] = (t) => e(
|
|
206
|
+
], 64)) : U("", !0),
|
|
207
|
+
s(_, {
|
|
208
|
+
modelValue: e(a).quantity,
|
|
209
|
+
"onUpdate:modelValue": o[8] || (o[8] = (t) => e(a).quantity = t),
|
|
209
210
|
label: "Number of code",
|
|
210
211
|
rules: [
|
|
211
212
|
(t) => t >= 1 || "Quantity cannot be less than 1",
|
|
212
213
|
(t) => t <= 1e4 || "Quantity cannot more than 10,000"
|
|
213
214
|
],
|
|
214
215
|
required: !0,
|
|
215
|
-
"helper-text": `${e(
|
|
216
|
+
"helper-text": `${e(a).quantity} claim will be created`
|
|
216
217
|
}, null, 8, ["modelValue", "rules", "helper-text"])
|
|
217
|
-
], 64)) :
|
|
218
|
-
e(f) !== "bulk" ? (h(),
|
|
218
|
+
], 64)) : U("", !0),
|
|
219
|
+
e(f) !== "bulk" ? (h(), L(W, {
|
|
219
220
|
key: 1,
|
|
220
|
-
modelValue: e(
|
|
221
|
-
"onUpdate:modelValue": o[9] || (o[9] = (t) => e(
|
|
221
|
+
modelValue: e(a).code,
|
|
222
|
+
"onUpdate:modelValue": o[9] || (o[9] = (t) => e(a).code = t),
|
|
222
223
|
label: "Custom Code",
|
|
223
224
|
rules: [(t) => e(f) != "single" || !!t || "Custom code is required"],
|
|
224
225
|
placeholder: "(For multiple codes, please enter in the new row.)"
|
|
225
|
-
}, null, 8, ["modelValue", "rules"])) :
|
|
226
|
+
}, null, 8, ["modelValue", "rules"])) : U("", !0)
|
|
226
227
|
])
|
|
227
228
|
]),
|
|
228
229
|
_: 1
|
|
@@ -235,14 +236,14 @@ const fe = /* @__PURE__ */ v("div", { class: "fm-typo-en-body-lg-600" }, "Code t
|
|
|
235
236
|
});
|
|
236
237
|
class xe {
|
|
237
238
|
constructor() {
|
|
238
|
-
|
|
239
|
+
z(this, "data", []);
|
|
239
240
|
}
|
|
240
241
|
addRecord(r) {
|
|
241
242
|
this.data.push(r);
|
|
242
243
|
}
|
|
243
244
|
buildExcel() {
|
|
244
|
-
const r =
|
|
245
|
-
return
|
|
245
|
+
const r = Y.book_new(), d = Y.json_to_sheet(this.data);
|
|
246
|
+
return Y.book_append_sheet(r, d, "Collection"), r;
|
|
246
247
|
}
|
|
247
248
|
}
|
|
248
249
|
const p = {
|
|
@@ -251,27 +252,27 @@ const p = {
|
|
|
251
252
|
rowsPerPage: 1e3,
|
|
252
253
|
page: 1,
|
|
253
254
|
rowsNumber: 0
|
|
254
|
-
},
|
|
255
|
+
}, Ve = { class: "px-24 flex flex-col gap-y-32 pb-24" }, we = { class: "flex items-center justify-end py-4 xs:hidden" }, De = /* @__PURE__ */ G({
|
|
255
256
|
__name: "Collections",
|
|
256
257
|
setup(b) {
|
|
257
|
-
const r =
|
|
258
|
+
const r = Q(), d = g(), F = H(() => r.params.id), B = g(!1), { custom: I } = J, k = [
|
|
258
259
|
{
|
|
259
260
|
header: "ID/Code",
|
|
260
261
|
accessorKey: "_id",
|
|
261
262
|
cell(n) {
|
|
262
|
-
return
|
|
263
|
-
|
|
263
|
+
return T("div", { class: "flex items-center" }, [
|
|
264
|
+
T(re.FmIcon, {
|
|
264
265
|
name: "content_copy",
|
|
265
266
|
outline: !0,
|
|
266
267
|
size: "sm",
|
|
267
268
|
class: "cursor-pointer mr-4",
|
|
268
|
-
onClick: (
|
|
269
|
-
|
|
269
|
+
onClick: (l) => {
|
|
270
|
+
l.preventDefault(), l.stopPropagation(), ie(
|
|
270
271
|
n.row.original.code || n.row.original._id.toString()
|
|
271
272
|
);
|
|
272
273
|
}
|
|
273
274
|
}),
|
|
274
|
-
|
|
275
|
+
T(
|
|
275
276
|
"div",
|
|
276
277
|
{ class: "pr-2 text-ellipsis overflow-hidden" },
|
|
277
278
|
n.row.original.code || n.row.original._id.toString()
|
|
@@ -284,28 +285,15 @@ const p = {
|
|
|
284
285
|
accessorKey: "user",
|
|
285
286
|
enableSorting: !1,
|
|
286
287
|
cell(n) {
|
|
287
|
-
const
|
|
288
|
-
return
|
|
289
|
-
"div",
|
|
290
|
-
{
|
|
291
|
-
class: "flex items-center gap-x-8"
|
|
292
|
-
},
|
|
293
|
-
[
|
|
294
|
-
F(G.FmAvatar, {
|
|
295
|
-
name: a != null && a.photoUrl || a == null ? void 0 : a.name,
|
|
296
|
-
src: (a == null ? void 0 : a.photoUrl) ?? void 0,
|
|
297
|
-
size: "sm"
|
|
298
|
-
}),
|
|
299
|
-
F("span", a == null ? void 0 : a.name)
|
|
300
|
-
]
|
|
301
|
-
);
|
|
288
|
+
const l = n.row.original.pf_user;
|
|
289
|
+
return de(l);
|
|
302
290
|
}
|
|
303
291
|
},
|
|
304
292
|
{
|
|
305
293
|
header: "Phone",
|
|
306
294
|
accessorFn: (n) => {
|
|
307
|
-
var
|
|
308
|
-
return ((
|
|
295
|
+
var l;
|
|
296
|
+
return ((l = n.pf_user) == null ? void 0 : l.phoneNumber) || "-";
|
|
309
297
|
},
|
|
310
298
|
accessorKey: "pf_user.phoneNumber"
|
|
311
299
|
},
|
|
@@ -316,57 +304,57 @@ const p = {
|
|
|
316
304
|
{
|
|
317
305
|
header: "Created at",
|
|
318
306
|
accessorKey: "_id",
|
|
319
|
-
accessorFn: (n) => j(
|
|
307
|
+
accessorFn: (n) => j(fe(n._id.toString())).format("DD MMM YYYY")
|
|
320
308
|
},
|
|
321
309
|
{
|
|
322
310
|
header: "Nearest expired at",
|
|
323
311
|
accessorKey: "expiryBalance",
|
|
324
312
|
accessorFn: (n) => {
|
|
325
|
-
var
|
|
326
|
-
return n.expiryBalance && n.expiryBalance.length ? j((
|
|
313
|
+
var l;
|
|
314
|
+
return n.expiryBalance && n.expiryBalance.length ? j((l = n.expiryBalance) == null ? void 0 : l[0].expiredAt).format("DD MMM YYYY") : "Never expires";
|
|
327
315
|
}
|
|
328
316
|
}
|
|
329
317
|
], q = {
|
|
330
|
-
"$connect-STORE_REWARD_COLLECTIONS":
|
|
318
|
+
"$connect-STORE_REWARD_COLLECTIONS": pe.readCollectionsByRewardId,
|
|
331
319
|
"$connect-CAMPAIGN_VOUCHER_COLLECTIONS": E.readCollectionsByCampaignId
|
|
332
320
|
}, C = (n) => {
|
|
333
|
-
const
|
|
334
|
-
return (i) =>
|
|
335
|
-
}, { tableMeta: m, rowData:
|
|
321
|
+
const l = q[r.name];
|
|
322
|
+
return (i) => l(n, i);
|
|
323
|
+
}, { tableMeta: m, rowData: a, onSort: A, debouncedFetchData: y, onSearch: x } = ce(C(F.value));
|
|
336
324
|
async function f() {
|
|
337
325
|
var n;
|
|
338
|
-
await
|
|
326
|
+
await y(), (n = d.value) == null || n.showSheet(!1);
|
|
339
327
|
}
|
|
340
328
|
async function V() {
|
|
341
|
-
|
|
329
|
+
B.value || I(
|
|
342
330
|
async () => {
|
|
343
331
|
var o;
|
|
344
|
-
const n = new xe(),
|
|
332
|
+
const n = new xe(), l = (await E.readCollectionsByCampaignId(F.value, {
|
|
345
333
|
limit: 1,
|
|
346
334
|
skip: 0,
|
|
347
335
|
sortBy: p.sortBy,
|
|
348
336
|
descending: p.descending
|
|
349
337
|
})).meta.totalResources ?? 0, i = p.rowsPerPage;
|
|
350
|
-
for (let
|
|
338
|
+
for (let u = 0; u < l; u += i) {
|
|
351
339
|
const w = {
|
|
352
340
|
...p,
|
|
353
341
|
limit: i,
|
|
354
342
|
skip: (p.page - 1) * p.rowsPerPage,
|
|
355
343
|
sortBy: p.sortBy,
|
|
356
344
|
descending: p.descending
|
|
357
|
-
},
|
|
358
|
-
|
|
345
|
+
}, D = await E.readCollectionsByCampaignId(
|
|
346
|
+
F.value,
|
|
359
347
|
w
|
|
360
348
|
);
|
|
361
|
-
for await (const S of
|
|
362
|
-
const
|
|
349
|
+
for await (const S of D.resources) {
|
|
350
|
+
const M = {
|
|
363
351
|
Id: (S == null ? void 0 : S.code) || ((o = S._id) == null ? void 0 : o.toString()) || ""
|
|
364
352
|
};
|
|
365
|
-
n.addRecord(
|
|
353
|
+
n.addRecord(M);
|
|
366
354
|
}
|
|
367
355
|
p.page++;
|
|
368
356
|
}
|
|
369
|
-
await
|
|
357
|
+
await ue(
|
|
370
358
|
n.buildExcel(),
|
|
371
359
|
`members-${(/* @__PURE__ */ new Date()).toISOString()}.xlsx`,
|
|
372
360
|
{
|
|
@@ -377,15 +365,15 @@ const p = {
|
|
|
377
365
|
), p.page = 1;
|
|
378
366
|
},
|
|
379
367
|
{
|
|
380
|
-
isLoading:
|
|
368
|
+
isLoading: B
|
|
381
369
|
}
|
|
382
370
|
);
|
|
383
371
|
}
|
|
384
|
-
return
|
|
385
|
-
await
|
|
386
|
-
}), (n,
|
|
372
|
+
return ae(async () => {
|
|
373
|
+
await y();
|
|
374
|
+
}), (n, l) => {
|
|
387
375
|
const i = c("FmPageHead"), o = c("FmSearch");
|
|
388
|
-
return h(), N
|
|
376
|
+
return h(), P(N, null, [
|
|
389
377
|
s(i, {
|
|
390
378
|
title: "Collections",
|
|
391
379
|
"back-button": !0,
|
|
@@ -397,49 +385,49 @@ const p = {
|
|
|
397
385
|
isPrimary: !0
|
|
398
386
|
}
|
|
399
387
|
],
|
|
400
|
-
"onClick:back":
|
|
401
|
-
"onClick:action":
|
|
388
|
+
"onClick:back": l[0] || (l[0] = (u) => e(se).back()),
|
|
389
|
+
"onClick:action": l[1] || (l[1] = (u) => {
|
|
402
390
|
var w;
|
|
403
|
-
|
|
391
|
+
u === "create" && ((w = e(d)) == null || w.showSheet(!0)), u === "export" && V();
|
|
404
392
|
})
|
|
405
393
|
}),
|
|
406
|
-
v("div",
|
|
394
|
+
v("div", Ve, [
|
|
407
395
|
s(o, {
|
|
408
396
|
class: "hidden xs:flex border-b border-fm-color-neutral-gray-100",
|
|
409
397
|
modelValue: e(m).searchValue,
|
|
410
398
|
"onUpdate:modelValue": [
|
|
411
|
-
|
|
412
|
-
e(
|
|
399
|
+
l[2] || (l[2] = (u) => e(m).searchValue = u),
|
|
400
|
+
e(x)
|
|
413
401
|
],
|
|
414
402
|
placeholder: "Search",
|
|
415
403
|
collapsible: ""
|
|
416
404
|
}, null, 8, ["modelValue", "onUpdate:modelValue"]),
|
|
417
|
-
v("div",
|
|
405
|
+
v("div", we, [
|
|
418
406
|
s(o, {
|
|
419
407
|
modelValue: e(m).searchValue,
|
|
420
408
|
"onUpdate:modelValue": [
|
|
421
|
-
|
|
422
|
-
e(
|
|
409
|
+
l[3] || (l[3] = (u) => e(m).searchValue = u),
|
|
410
|
+
e(x)
|
|
423
411
|
],
|
|
424
412
|
placeholder: "Search",
|
|
425
413
|
collapsible: ""
|
|
426
414
|
}, null, 8, ["modelValue", "onUpdate:modelValue"])
|
|
427
415
|
]),
|
|
428
|
-
s(
|
|
416
|
+
s(me, {
|
|
429
417
|
loading: e(m).isLoading,
|
|
430
|
-
"row-data": e(
|
|
431
|
-
"column-defs":
|
|
418
|
+
"row-data": e(a),
|
|
419
|
+
"column-defs": k,
|
|
432
420
|
"row-count": e(m).totalRows,
|
|
433
421
|
"page-count": e(m).pageCount,
|
|
434
422
|
"page-index": e(m).pageIndex,
|
|
435
423
|
"page-size": e(m).pageSize,
|
|
436
424
|
"shrink-at": !1,
|
|
437
|
-
onSortChange: e(
|
|
438
|
-
onPageChange:
|
|
425
|
+
onSortChange: e(A),
|
|
426
|
+
onPageChange: l[4] || (l[4] = (u) => e(y)({ pageSize: u.pageSize, pageIndex: u.pageIndex }))
|
|
439
427
|
}, null, 8, ["loading", "row-data", "row-count", "page-count", "page-index", "page-size", "onSortChange"]),
|
|
440
|
-
s(
|
|
428
|
+
s(ye, {
|
|
441
429
|
ref_key: "sheetRef",
|
|
442
|
-
ref:
|
|
430
|
+
ref: d,
|
|
443
431
|
onSuccess: f
|
|
444
432
|
}, null, 512)
|
|
445
433
|
])
|
|
@@ -448,5 +436,5 @@ const p = {
|
|
|
448
436
|
}
|
|
449
437
|
});
|
|
450
438
|
export {
|
|
451
|
-
|
|
439
|
+
De as default
|
|
452
440
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { defineComponent as U, ref as k, computed as A, onMounted as N, resolveComponent as i, openBlock as l, createElementBlock as f, Fragment as g, createVNode as r, unref as o, createElementVNode as s, withCtx as h, renderList as j, createBlock as C, resolveDynamicComponent as M, toDisplayString as y, 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 { u as O, p as Q } from "./loading-
|
|
5
|
-
import { a as W } from "./app-
|
|
6
|
-
import { u as X } from "./campaign-
|
|
7
|
-
import { g as S, b as V } from "./dto-
|
|
4
|
+
import { u as O, p as Q } from "./loading-C0Im7NLc.js";
|
|
5
|
+
import { a as W } from "./app-CJmGoLdT.js";
|
|
6
|
+
import { u as X } from "./campaign-0ym0cymh.js";
|
|
7
|
+
import { g as S, b as V } from "./dto-DHLYS7Rm.js";
|
|
8
8
|
import { _ as Y } from "./ChipMenu.vue_vue_type_script_setup_true_lang-BPpZZNkr.js";
|
|
9
|
-
import { _ as Z } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-
|
|
10
|
-
import { u as ee } from "./template-
|
|
11
|
-
import { c as _ } from "./index-
|
|
9
|
+
import { _ as Z } from "./EditCampaignSheet.vue_vue_type_script_setup_true_lang-CBbNUBWX.js";
|
|
10
|
+
import { u as ee } from "./template-DDHe5agw.js";
|
|
11
|
+
import { c as _ } from "./index-Dy-njFA-.js";
|
|
12
12
|
const te = { class: "px-24 flex flex-col gap-y-16" }, oe = { class: "flex items-center justify-between w-full" }, ae = { class: "flex gap-8 overflow-x-auto" }, se = { class: "space-y-8" }, ne = { class: "flex w-full gap-4 items-center" }, re = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ie = { class: "space-y-4" }, le = { class: "fm-typo-en-body-lg-600" }, ce = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, 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 = [
|
|
13
13
|
ue
|
|
14
14
|
], fe = /* @__PURE__ */ s("img", {
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock, unref, ref, watch, resolveComponent, createElementBlock, createElementVNode, Fragment, renderList, createVNode, isRef, createCommentVNode, withCtx, normalizeClass, toDisplayString, renderSlot, createTextVNode, createSlots, resolveDynamicComponent, toRefs, normalizeStyle } from "vue";
|
|
2
|
-
import { _ } from "./lodash-
|
|
3
|
-
import { a as useBusinessStore,
|
|
4
|
-
import { Z as ZodHelper } from "./
|
|
5
|
-
import { c as getCampaignSummaryObject, d as campaignRefinement, e as CampaignDtos, C as CampaignOptions, f as campaignTransform } from "./dto-
|
|
6
|
-
import { u as useMembershipStore, C as CollectibleOptions } from "./membership-
|
|
7
|
-
import { a as FdoEarningOption, b as F_GAME_TYPE, F as FdtoCollectibleConfig } from "./index-
|
|
8
|
-
import { i as isRuleGroup, R as RuleBuilder, a as isRuleEntry } from "./rule-builder-
|
|
2
|
+
import { _ } from "./lodash-DRiB9OLu.js";
|
|
3
|
+
import { a as useBusinessStore, d as core, J as JsonViewer, z, S as SvcConfig } from "./app-CJmGoLdT.js";
|
|
4
|
+
import { Z as ZodHelper, _ as _sfc_main$u } from "./ZodTextField.vue_vue_type_script_setup_true_lang-3LlSDiq0.js";
|
|
5
|
+
import { c as getCampaignSummaryObject, d as campaignRefinement, e as CampaignDtos, C as CampaignOptions, f as campaignTransform } from "./dto-DHLYS7Rm.js";
|
|
6
|
+
import { u as useMembershipStore, C as CollectibleOptions } from "./membership-BWDFt2D0.js";
|
|
7
|
+
import { a as FdoEarningOption, b as F_GAME_TYPE, F as FdtoCollectibleConfig } from "./index-BacICqbE.js";
|
|
8
|
+
import { i as isRuleGroup, R as RuleBuilder, a as isRuleEntry } from "./rule-builder-C484wKRf.js";
|
|
9
9
|
import { h as hooks } from "./moment-BWErdI6_.js";
|
|
10
|
-
import { b as F_CAMPAIGN_TRIGGER_TYPE, C as CAMPAIGN_TRIGGER, c as FdoCreditLoyaltyReward, d as FdtoRandomReward, e as F_MISSION_TYPE, f as FdtoThresholdReward, g as FdoMission, h as featureVersionMapping } from "./index-
|
|
11
|
-
import { _ as _sfc_main$v } from "./ImageInput.vue_vue_type_script_setup_true_lang-
|
|
12
|
-
import { _ as _sfc_main$w, a as _sfc_main$x, b as _sfc_main$z } from "./EffectSheet.vue_vue_type_style_index_0_lang-
|
|
13
|
-
import { _ as _sfc_main$y } from "./TargetLocationInput.vue_vue_type_script_setup_true_lang-
|
|
14
|
-
import { _ as _sfc_main$r, a as _sfc_main$s, b as _sfc_main$t } from "./RuleGroup.vue_vue_type_script_setup_true_lang-
|
|
15
|
-
import { p as prompt, c as cases, f as firebaseStorage, u as useLoading } from "./loading-
|
|
16
|
-
import { _ as _sfc_main$q, T as TEMPLATES } from "./index-
|
|
17
|
-
import { _ as _sfc_main$A } from "./MessageInput.vue_vue_type_script_setup_true_lang-
|
|
18
|
-
import { c as calculateNextScheduleAt, S as SummarizeRrule, R as RRule } from "./rule-
|
|
19
|
-
import "./index-
|
|
20
|
-
import "./index-
|
|
21
|
-
import "./index-
|
|
22
|
-
import "./index-
|
|
10
|
+
import { b as F_CAMPAIGN_TRIGGER_TYPE, C as CAMPAIGN_TRIGGER, c as FdoCreditLoyaltyReward, d as FdtoRandomReward, e as F_MISSION_TYPE, f as FdtoThresholdReward, g as FdoMission, h as featureVersionMapping } from "./index-DrekSEPv.js";
|
|
11
|
+
import { _ as _sfc_main$v } from "./ImageInput.vue_vue_type_script_setup_true_lang-ChLUJK77.js";
|
|
12
|
+
import { _ as _sfc_main$w, a as _sfc_main$x, b as _sfc_main$z } from "./EffectSheet.vue_vue_type_style_index_0_lang-Bj3dHqjH.js";
|
|
13
|
+
import { _ as _sfc_main$y } from "./TargetLocationInput.vue_vue_type_script_setup_true_lang-B6DvQL2O.js";
|
|
14
|
+
import { _ as _sfc_main$r, a as _sfc_main$s, b as _sfc_main$t } from "./RuleGroup.vue_vue_type_script_setup_true_lang-CzOiRmO3.js";
|
|
15
|
+
import { p as prompt, c as cases, f as firebaseStorage, u as useLoading } from "./loading-C0Im7NLc.js";
|
|
16
|
+
import { _ as _sfc_main$q, T as TEMPLATES } from "./index-CwRopfKJ.js";
|
|
17
|
+
import { _ as _sfc_main$A } from "./MessageInput.vue_vue_type_script_setup_true_lang-BJ1wLWMO.js";
|
|
18
|
+
import { c as calculateNextScheduleAt, S as SummarizeRrule, R as RRule } from "./rule-CWGFyRio.js";
|
|
19
|
+
import "./index-BuYuArTc.js";
|
|
20
|
+
import "./index-DBs-f_OF.js";
|
|
21
|
+
import "./index-BifZnXOd.js";
|
|
22
|
+
import "./index-jXbGzZIZ.js";
|
|
23
23
|
import { useCoreStore } from "@feedmepos/mf-common";
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { C as CollectionUtils } from "./collection.fn-B6B0oNGr.js";
|
|
24
|
+
import { i as initCollectibleConfig } from "./helper-Dk7nQLD9.js";
|
|
25
|
+
import { C as CollectionUtils } from "./collection.fn-DHlfGYAC.js";
|
|
27
26
|
import { s as sentenceCase$1 } from "./index-CuvNtC_M.js";
|
|
28
27
|
import { useDialog } from "@feedmepos/ui-library";
|
|
29
28
|
import { a as cleanPF } from "./object-qECH92oz.js";
|
|
@@ -2341,7 +2340,6 @@ const sentenceCase = changeKeysFactory(sentenceCase$1), _hoisted_1$4 = { class:
|
|
|
2341
2340
|
}))
|
|
2342
2341
|
], 64)) : e.field.type === "message" ? (openBlock(), createBlock(_sfc_main$A, {
|
|
2343
2342
|
key: 10,
|
|
2344
|
-
"allow-email": !0,
|
|
2345
2343
|
"model-value": unref(s),
|
|
2346
2344
|
"onUpdate:modelValue": o,
|
|
2347
2345
|
"helper-text": unref(ZodHelper).helperText(l(), ""),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { defineComponent as O, ref as R, onMounted as J, computed as z, resolveComponent as y, openBlock as s, createElementBlock as x, renderSlot as K, toDisplayString as S, createCommentVNode as f, createBlock as p, unref as e, isRef as H, createVNode as b, normalizeClass as q, watch as Q, withCtx as F, resolveDynamicComponent as k, Fragment as W, createElementVNode as A, createTextVNode as X } from "vue";
|
|
2
|
-
import { z as _ } from "./app-
|
|
3
|
-
import { Z as d } from "./
|
|
4
|
-
import { g as ee, h as te } from "./index-
|
|
5
|
-
import { s as C } from "./effect-
|
|
6
|
-
import { p as le } from "./loading-
|
|
7
|
-
import { E as oe } from "./app-
|
|
2
|
+
import { z as _ } from "./app-CJmGoLdT.js";
|
|
3
|
+
import { Z as d } from "./ZodTextField.vue_vue_type_script_setup_true_lang-3LlSDiq0.js";
|
|
4
|
+
import { g as ee, h as te } from "./index-BacICqbE.js";
|
|
5
|
+
import { s as C } from "./effect-lIau3gAr.js";
|
|
6
|
+
import { p as le } from "./loading-C0Im7NLc.js";
|
|
7
|
+
import { E as oe } from "./app-C-JARJOh.js";
|
|
8
8
|
const ae = { class: "flex flex-col gap-8" }, ne = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "fm-typo-en-body-lg-600"
|