@feedmepos/mf-payment 1.5.54-dev → 1.5.56-dev

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 (61) hide show
  1. package/dist/{Actions.vue_vue_type_script_setup_true_lang-CkvJljZO.js → Actions.vue_vue_type_script_setup_true_lang-D_PoXVbz.js} +1 -1
  2. package/dist/{Chargeback-6iuWBeI2.js → Chargeback-C19-PvY0.js} +5 -5
  3. package/dist/{DocumentViewer.vue_vue_type_script_setup_true_lang-OmBpXKer.js → DocumentViewer.vue_vue_type_script_setup_true_lang-KebV8Zws.js} +1 -1
  4. package/dist/{OnboardForm-Igt2ovw-.js → OnboardForm-0BR3jqGJ.js} +5 -5
  5. package/dist/{OnboardForm-D924S9mQ.js → OnboardForm-BGkRWJ1W.js} +5 -5
  6. package/dist/{OnboardSubmission-gps62Ktl.js → OnboardSubmission-C2BYK2p1.js} +5 -5
  7. package/dist/{OnboardSubmission-D8aJPkMw.js → OnboardSubmission-DvWwQFy6.js} +2 -2
  8. package/dist/PayoutAccount-BkpugJsP.js +273 -0
  9. package/dist/{PayoutAccount-B2GxeB0d.js → PayoutAccount-C0halZXa.js} +339 -316
  10. package/dist/PayoutAccountSetting-C2mquWAV.js +1452 -0
  11. package/dist/{Restaurant-BuxwLnR4.js → Restaurant-4cO60aVP.js} +4 -4
  12. package/dist/{RestaurantSetting-Dmhzr9be.js → RestaurantSetting-BhsE03YE.js} +3 -3
  13. package/dist/{Settlement-C89j3OZr.js → Settlement-0ajzgU77.js} +3 -3
  14. package/dist/{Settlement-CxsJJQp5.js → Settlement-8pr4NMy2.js} +4 -4
  15. package/dist/{SettlementTransactions-u27r0h8a.js → SettlementTransactions-3F4EOoyz.js} +4 -4
  16. package/dist/{SettlementTransactions-oc-sT18u.js → SettlementTransactions-DD285bSJ.js} +4 -4
  17. package/dist/{Status.vue_vue_type_script_setup_true_lang-BESgeD2u.js → Status.vue_vue_type_script_setup_true_lang-CUnCf_fx.js} +1 -1
  18. package/dist/{Terminal-DKMNAvjq.js → Terminal-Sfe6Nf9j.js} +5 -5
  19. package/dist/{TerminalSetting-CjbtdTlL.js → TerminalSetting-KjacSx_V.js} +3 -3
  20. package/dist/TextInputDialog.vue_vue_type_script_setup_true_lang-D8W8_SO2.js +55 -0
  21. package/dist/{Transaction-BtbTjwIH.js → Transaction-DbeYRQ8Z.js} +158 -205
  22. package/dist/{Transaction-CC0DaPbH.js → Transaction-hVVgSn4x.js} +9 -9
  23. package/dist/{TransactionOld-jcOxo0TN.js → TransactionOld-CxPbWyfm.js} +6 -6
  24. package/dist/api/payout/index.d.ts +1 -1
  25. package/dist/{app-DE2K_1Zt.js → app-D577rfXx.js} +23 -23
  26. package/dist/app.js +1 -1
  27. package/dist/{assets-z1SFV5YX.js → assets-DIbq1BVX.js} +1 -1
  28. package/dist/{grafana-DqZQILnD.js → grafana-B0iQmK6j.js} +1 -1
  29. package/dist/{index-BdoKrYCJ.js → index-B0L21J1j.js} +1 -1
  30. package/dist/{index-BpNXNi7o.js → index-BHCs_NnD.js} +1 -1
  31. package/dist/{index-Kpua9F5o.js → index-BkQ7t3F6.js} +1 -1
  32. package/dist/{index-BKbdCXBS.js → index-C80a7-Ks.js} +7 -3
  33. package/dist/{index-BtpGftcM.js → index-C_Y5Sfc9.js} +1 -1
  34. package/dist/{index-DMhjy8uJ.js → index-CnN_MV2-.js} +2 -2
  35. package/dist/{index-B8KU4_R2.js → index-CxnWUe_K.js} +1 -1
  36. package/dist/{index-BeeoiRHZ.js → index-D0j1LZAB.js} +5259 -5239
  37. package/dist/{index-D2bYJt3H.js → index-XTdSN6CV.js} +1 -1
  38. package/dist/{index.vue_vue_type_script_setup_true_lang-CL_J8vkd.js → index.vue_vue_type_script_setup_true_lang-BksGFeSf.js} +1 -1
  39. package/dist/model/payout-account.d.ts +2 -2
  40. package/dist/package.json +2 -2
  41. package/dist/{payout-account-DmrMAX3c.js → payout-account-Bo0AnO4t.js} +3 -3
  42. package/dist/stores/payoutAccount.d.ts +23 -17
  43. package/dist/tsconfig.app.tsbuildinfo +1 -1
  44. package/dist/views/admin/onboard-submission/forms/NTTSubmission.vue.d.ts +16 -16
  45. package/dist/views/admin/onboard-submission/forms/SoftspaceSubmission.vue.d.ts +16 -16
  46. package/dist/views/admin/payout-account/cell/Status.vue.d.ts +1 -1
  47. package/dist/views/admin/payout-account/tabs/Information.vue.d.ts +22 -16
  48. package/dist/views/admin/payout-account/tabs/PaymentChannel.vue.d.ts +42 -36
  49. package/dist/views/admin/payout-account/tabs/PaymentGateway.vue.d.ts +42 -36
  50. package/dist/views/admin/payout-account/tabs/PaymentStatus.vue.d.ts +22 -16
  51. package/dist/views/admin/payout-account/tabs/Settlement.vue.d.ts +22 -16
  52. package/dist/views/admin/payout-account/tabs/TokenGateway.vue.d.ts +42 -36
  53. package/dist/views/admin/settlement/SettlementTable.vue.d.ts +24 -24
  54. package/dist/views/payout-account/PayoutAccountTable.vue.d.ts +44 -32
  55. package/dist/views/payout-account/cell/Status.vue.d.ts +1 -1
  56. package/dist/views/settlement/FiuuSettlementTable.vue.d.ts +84 -84
  57. package/dist/views/settlement/FiuuSettlementTransactions.vue.d.ts +42 -42
  58. package/dist/views/settlement/SettlementTable.vue.d.ts +24 -24
  59. package/package.json +2 -2
  60. package/dist/PayoutAccount-DzbgV3Wi.js +0 -258
  61. package/dist/PayoutAccountSetting-It0MmOKV.js +0 -1397
@@ -1,1397 +0,0 @@
1
- import { defineComponent as C, resolveComponent as m, openBlock as g, createElementBlock as P, Fragment as $, createElementVNode as i, createVNode as l, withCtx as F, createTextVNode as _, toDisplayString as D, ref as T, watch as Z, createBlock as x, computed as K, isRef as q, unref as s, createCommentVNode as I, h as O, onMounted as ne, resolveDynamicComponent as Q, normalizeProps as W, mergeProps as J } from "vue";
2
- import { p as R } from "./index-BKbdCXBS.js";
3
- import { u as j, e as h } from "./index-BeeoiRHZ.js";
4
- import { _ as oe } from "./Layout.vue_vue_type_script_setup_true_lang-BKIvkgA_.js";
5
- import { useRouter as ue } from "vue-router";
6
- import { u as Y } from "./index-Kpua9F5o.js";
7
- import { _ as L } from "./DocumentViewer.vue_vue_type_script_setup_true_lang-OmBpXKer.js";
8
- import { P as te } from "./PDFViewer-CIPPbzWD.js";
9
- import { useSnackbar as z, components as se } from "@feedmepos/ui-library";
10
- import { u as E } from "./error-K1CakhA9.js";
11
- import { z as V, a as w } from "./validator-DzjyJnvv.js";
12
- import { useCoreStore as ae } from "@feedmepos/mf-common";
13
- const re = { class: "flex gap-16 mb-6" }, ie = /* @__PURE__ */ C({
14
- __name: "Information",
15
- props: {
16
- payoutAccount: {
17
- type: Object,
18
- required: !0
19
- }
20
- },
21
- setup(n) {
22
- return (p, e) => {
23
- var u, f;
24
- const d = m("FmCardHeader"), r = m("FmCardSection"), t = m("FmCard");
25
- return g(), P($, null, [
26
- i("div", re, [
27
- l(t, {
28
- horizontal: "",
29
- class: "flex-1 p-6",
30
- variant: "elevated"
31
- }, {
32
- default: F(() => [
33
- l(r, { class: "flex flex-col gap-16 justify-between" }, {
34
- default: F(() => [
35
- l(d, {
36
- class: "p-0",
37
- title: "Account Info",
38
- subtitle: ""
39
- }),
40
- l(r, { class: "p-0" }, {
41
- default: F(() => {
42
- var c, a, o, v, y;
43
- return [
44
- e[0] || (e[0] = i("b", null, "For", -1)),
45
- _(": " + D((a = (c = n.payoutAccount) == null ? void 0 : c.store) == null ? void 0 : a.event) + " ", 1),
46
- e[1] || (e[1] = i("br", null, null, -1)),
47
- e[2] || (e[2] = i("b", null, "Reference", -1)),
48
- _(": " + D((v = (o = n.payoutAccount) == null ? void 0 : o.store) == null ? void 0 : v.id), 1),
49
- e[3] || (e[3] = i("br", null, null, -1)),
50
- e[4] || (e[4] = i("b", null, "Business", -1)),
51
- _(": " + D((y = n.payoutAccount) == null ? void 0 : y.businessId), 1),
52
- e[5] || (e[5] = i("br", null, null, -1))
53
- ];
54
- }),
55
- _: 1
56
- })
57
- ]),
58
- _: 1
59
- })
60
- ]),
61
- _: 1
62
- }),
63
- l(t, {
64
- horizontal: "",
65
- class: "flex-1 p-6",
66
- variant: "elevated"
67
- }, {
68
- default: F(() => [
69
- l(r, { class: "flex flex-col gap-16 justify-between" }, {
70
- default: F(() => [
71
- l(d, {
72
- class: "p-0",
73
- title: "Key Person",
74
- subtitle: ""
75
- }),
76
- l(r, { class: "p-0" }, {
77
- default: F(() => {
78
- var c, a, o, v, y, b, U, A;
79
- return [
80
- e[6] || (e[6] = i("b", null, "Email", -1)),
81
- _(": " + D((o = (a = (c = n.payoutAccount) == null ? void 0 : c.store) == null ? void 0 : a.keyPerson) == null ? void 0 : o.email) + " ", 1),
82
- e[7] || (e[7] = i("br", null, null, -1)),
83
- e[8] || (e[8] = i("b", null, "Name", -1)),
84
- _(": " + D((b = (y = (v = n.payoutAccount) == null ? void 0 : v.store) == null ? void 0 : y.keyPerson) == null ? void 0 : b.name), 1),
85
- e[9] || (e[9] = i("br", null, null, -1)),
86
- e[10] || (e[10] = i("b", null, "Phone", -1)),
87
- _(": " + D((A = (U = n.payoutAccount) == null ? void 0 : U.store.keyPerson) == null ? void 0 : A.phone), 1),
88
- e[11] || (e[11] = i("br", null, null, -1))
89
- ];
90
- }),
91
- _: 1
92
- })
93
- ]),
94
- _: 1
95
- })
96
- ]),
97
- _: 1
98
- })
99
- ]),
100
- e[12] || (e[12] = i("p", { class: "fm-typo-en-body-lg-600 mb-6" }, "Exterior Photo", -1)),
101
- l(L, {
102
- document: n.payoutAccount.store.exteriorPhoto,
103
- "business-id": n.payoutAccount.businessId,
104
- "restaurant-id": ((f = (u = n.payoutAccount) == null ? void 0 : u.store) == null ? void 0 : f.event) === "ORDERING" ? n.payoutAccount.store.id : void 0
105
- }, null, 8, ["document", "business-id", "restaurant-id"])
106
- ], 64);
107
- };
108
- }
109
- }), ce = { class: "flex gap-16 mb-6" }, me = { class: "flex gap-16" }, de = { class: "flex-1" }, pe = { class: "flex-1" }, ye = /* @__PURE__ */ C({
110
- __name: "Settlement",
111
- props: {
112
- payoutAccount: {
113
- type: Object,
114
- required: !0
115
- }
116
- },
117
- setup(n) {
118
- return (p, e) => {
119
- var u, f, c, a;
120
- const d = m("FmCardHeader"), r = m("FmCardSection"), t = m("FmCard");
121
- return g(), P($, null, [
122
- i("div", ce, [
123
- l(t, {
124
- horizontal: "",
125
- class: "flex-1 p-6",
126
- variant: "elevated"
127
- }, {
128
- default: F(() => [
129
- l(r, { class: "flex flex-col gap-16 justify-between" }, {
130
- default: F(() => [
131
- l(d, {
132
- class: "p-0",
133
- title: "Company Info",
134
- subtitle: ""
135
- }),
136
- l(r, { class: "p-0" }, {
137
- default: F(() => {
138
- var o, v;
139
- return [
140
- e[0] || (e[0] = i("b", null, "Name", -1)),
141
- _(": " + D((o = n.payoutAccount) == null ? void 0 : o.store.companyName), 1),
142
- e[1] || (e[1] = i("br", null, null, -1)),
143
- e[2] || (e[2] = i("b", null, "Registration Number", -1)),
144
- _(": " + D((v = n.payoutAccount) == null ? void 0 : v.store.regNo), 1),
145
- e[3] || (e[3] = i("br", null, null, -1))
146
- ];
147
- }),
148
- _: 1
149
- })
150
- ]),
151
- _: 1
152
- })
153
- ]),
154
- _: 1
155
- }),
156
- l(t, {
157
- horizontal: "",
158
- class: "flex-1 p-6",
159
- variant: "elevated"
160
- }, {
161
- default: F(() => [
162
- l(r, { class: "flex flex-col gap-16 justify-between" }, {
163
- default: F(() => [
164
- l(d, {
165
- class: "p-0",
166
- title: "Bank Info",
167
- subtitle: ""
168
- }),
169
- l(r, { class: "p-0" }, {
170
- default: F(() => {
171
- var o, v, y, b, U, A;
172
- return [
173
- e[4] || (e[4] = i("b", null, "Bank", -1)),
174
- _(": " + D((v = (o = n.payoutAccount) == null ? void 0 : o.store.bank) == null ? void 0 : v.name), 1),
175
- e[5] || (e[5] = i("br", null, null, -1)),
176
- e[6] || (e[6] = i("b", null, "Name", -1)),
177
- _(": " + D((b = (y = n.payoutAccount) == null ? void 0 : y.store.bank) == null ? void 0 : b.holderName), 1),
178
- e[7] || (e[7] = i("br", null, null, -1)),
179
- e[8] || (e[8] = i("b", null, "Number", -1)),
180
- _(": " + D((A = (U = n.payoutAccount) == null ? void 0 : U.store.bank) == null ? void 0 : A.accountNumber), 1)
181
- ];
182
- }),
183
- _: 1
184
- })
185
- ]),
186
- _: 1
187
- })
188
- ]),
189
- _: 1
190
- })
191
- ]),
192
- i("div", me, [
193
- i("div", de, [
194
- e[9] || (e[9] = i("p", { class: "fm-typo-en-body-lg-600 mb-6" }, "SSM", -1)),
195
- l(L, {
196
- "business-id": n.payoutAccount.businessId,
197
- "restaurant-id": ((f = (u = n.payoutAccount) == null ? void 0 : u.store) == null ? void 0 : f.event) === "ORDERING" ? n.payoutAccount.store.id : void 0,
198
- document: n.payoutAccount.store.ssm
199
- }, {
200
- default: F(({ src: o }) => [
201
- l(te, {
202
- pdf: o,
203
- "disable-text-layer": !0,
204
- "disable-annotation-layer": !0
205
- }, null, 8, ["pdf"])
206
- ]),
207
- _: 1
208
- }, 8, ["business-id", "restaurant-id", "document"])
209
- ]),
210
- i("div", pe, [
211
- e[10] || (e[10] = i("p", { class: "fm-typo-en-body-lg-600 mb-6" }, "Bank Statement", -1)),
212
- l(L, {
213
- "business-id": n.payoutAccount.businessId,
214
- "restaurant-id": ((a = (c = n.payoutAccount) == null ? void 0 : c.store) == null ? void 0 : a.event) === "ORDERING" ? n.payoutAccount.store.id : void 0,
215
- document: n.payoutAccount.store.bankStatement
216
- }, {
217
- default: F(({ src: o }) => [
218
- l(te, {
219
- pdf: o,
220
- "disable-text-layer": !0,
221
- "disable-annotation-layer": !0
222
- }, null, 8, ["pdf"])
223
- ]),
224
- _: 1
225
- }, 8, ["business-id", "restaurant-id", "document"])
226
- ])
227
- ])
228
- ], 64);
229
- };
230
- }
231
- }), ve = /* @__PURE__ */ C({
232
- __name: "RateInput",
233
- props: {
234
- data: {},
235
- onChange: { type: Function }
236
- },
237
- setup(n) {
238
- const p = n, e = T(p.data.toString());
239
- return Z(e, (d) => {
240
- p.onChange(parseFloat(d));
241
- }), (d, r) => {
242
- const t = m("FmTextField");
243
- return g(), x(t, {
244
- inputmode: "decimal",
245
- modelValue: e.value,
246
- "onUpdate:modelValue": r[0] || (r[0] = (u) => e.value = u)
247
- }, {
248
- append: F(() => [...r[1] || (r[1] = [
249
- _("%", -1)
250
- ])]),
251
- _: 1
252
- }, 8, ["modelValue"]);
253
- };
254
- }
255
- }), fe = /* @__PURE__ */ C({
256
- __name: "TPlusInput",
257
- props: {
258
- data: {},
259
- onChange: { type: Function }
260
- },
261
- setup(n) {
262
- const p = n, e = T(p.data.toString());
263
- return Z(e, (d) => {
264
- p.onChange(parseInt(d));
265
- }), (d, r) => {
266
- const t = m("FmTextField");
267
- return g(), x(t, {
268
- inputmode: "numeric",
269
- modelValue: e.value,
270
- "onUpdate:modelValue": r[0] || (r[0] = (u) => e.value = u)
271
- }, null, 8, ["modelValue"]);
272
- };
273
- }
274
- }), ge = /* @__PURE__ */ C({
275
- __name: "MinimumFeeInput",
276
- props: {
277
- data: {},
278
- onChange: { type: Function }
279
- },
280
- setup(n) {
281
- const p = n, e = T(p.data.toString());
282
- return Z(e, (d) => {
283
- p.onChange(parseFloat(d));
284
- }), (d, r) => {
285
- const t = m("FmTextField");
286
- return g(), x(t, {
287
- inputmode: "numeric",
288
- modelValue: e.value,
289
- "onUpdate:modelValue": r[0] || (r[0] = (u) => e.value = u)
290
- }, {
291
- prepend: F(() => [...r[1] || (r[1] = [
292
- _("$", -1)
293
- ])]),
294
- _: 1
295
- }, 8, ["modelValue"]);
296
- };
297
- }
298
- }), be = { class: "flex gap-16 mt-6" }, Fe = { class: "flex-1" }, xe = { class: "flex-1" }, Ve = { class: "my-6 w-full flex justify-end" }, we = { class: "w-[320px]" }, Ae = /* @__PURE__ */ C({
299
- __name: "PaymentStatus",
300
- props: {
301
- onUpdate: {
302
- type: Function,
303
- required: !0
304
- },
305
- payoutAccount: {
306
- type: Object,
307
- required: !0
308
- }
309
- },
310
- setup(n) {
311
- const p = n, e = T(!1), d = z(), r = async (a) => {
312
- try {
313
- e.value = !0, await p.onUpdate(a), d.open({
314
- type: "success",
315
- title: "Payout account update succesfully"
316
- });
317
- } catch (o) {
318
- d.open({
319
- type: "error",
320
- title: "Error occurs when updating payout account",
321
- message: E(o)
322
- });
323
- } finally {
324
- e.value = !1;
325
- }
326
- }, { search: t } = Y({
327
- search: ""
328
- }), u = K(() => {
329
- const { ssm: a, bank: o, bankStatement: v } = p.payoutAccount.store;
330
- return a && o && o.name && o.accountNumber && o.holderName && v;
331
- }), f = T(""), c = [
332
- {
333
- header: () => "Payment Method",
334
- accessorKey: "issuer",
335
- cell: (a) => `${a.row.original.issuer} (${a.row.original.variant})`
336
- },
337
- {
338
- header: () => "Rate",
339
- accessorKey: "rate",
340
- cell: ({ row: a }) => {
341
- let o = 0;
342
- return a.original.rate && (o = a.original.rate.amount / Math.pow(10, a.original.rate.precision)), O(ve, {
343
- data: o,
344
- onChange: (v) => {
345
- const y = p.payoutAccount.methods.at(a.index);
346
- y.rate || (y.rate = {
347
- amount: 0,
348
- precision: 4
349
- }), y.rate.amount = v * Math.pow(10, y.rate.precision);
350
- }
351
- });
352
- }
353
- },
354
- {
355
- header: () => "Minimum Fee",
356
- accessorKey: "minimumFee",
357
- cell: ({ row: a }) => {
358
- let o = 0;
359
- return a.original.minimumFee && (o = a.original.minimumFee.amount / Math.pow(10, a.original.minimumFee.precision)), O(ge, {
360
- data: o,
361
- onChange: (v) => {
362
- const y = p.payoutAccount.methods.at(a.index);
363
- y.minimumFee || (y.minimumFee = {
364
- amount: 0,
365
- precision: 2
366
- }), y.minimumFee.amount = v * Math.pow(10, y.minimumFee.precision);
367
- }
368
- });
369
- }
370
- },
371
- {
372
- header: () => "T plus",
373
- accessorKey: "tPlus",
374
- cell: ({ row: a }) => O(fe, {
375
- data: a.original.tPlus ?? 0,
376
- onChange: (o) => {
377
- const v = p.payoutAccount.methods.at(a.index);
378
- v.tPlus = o;
379
- }
380
- })
381
- }
382
- ];
383
- return (a, o) => {
384
- const v = m("FmRadio"), y = m("FmRadioGroup"), b = m("FmSwitch"), U = m("FmSearch"), A = m("FmTable"), S = m("FmButton");
385
- return g(), P($, null, [
386
- i("div", be, [
387
- i("div", Fe, [
388
- l(y, {
389
- modelValue: n.payoutAccount.status,
390
- "onUpdate:modelValue": o[0] || (o[0] = (k) => n.payoutAccount.status = k),
391
- label: "Account Status"
392
- }, {
393
- default: F(() => [
394
- l(v, {
395
- value: "NEW",
396
- label: "New"
397
- }),
398
- l(v, {
399
- value: "PENDING",
400
- label: "Pending"
401
- }),
402
- l(v, {
403
- value: "APPROVED",
404
- label: "Approved"
405
- })
406
- ]),
407
- _: 1
408
- }, 8, ["modelValue"])
409
- ]),
410
- i("div", xe, [
411
- l(b, {
412
- modelValue: n.payoutAccount.enable,
413
- "onUpdate:modelValue": o[1] || (o[1] = (k) => n.payoutAccount.enable = k),
414
- disabled: !u.value,
415
- label: "Enabled",
416
- sublabel: "Merchant can use online features such as e-payment, settlement"
417
- }, null, 8, ["modelValue", "disabled"])
418
- ])
419
- ]),
420
- n.payoutAccount.enable ? (g(), P($, { key: 0 }, [
421
- i("div", Ve, [
422
- i("div", we, [
423
- l(U, {
424
- modelValue: s(t),
425
- "onUpdate:modelValue": o[2] || (o[2] = (k) => q(t) ? t.value = k : null),
426
- placeholder: "Search Method ..."
427
- }, null, 8, ["modelValue"])
428
- ])
429
- ]),
430
- l(A, {
431
- class: "mt-6",
432
- modelValue: f.value,
433
- "onUpdate:modelValue": o[3] || (o[3] = (k) => f.value = k),
434
- "shrink-at": !1,
435
- "search-value": s(t),
436
- "row-data": n.payoutAccount.methods,
437
- "column-defs": c
438
- }, null, 8, ["modelValue", "search-value", "row-data"])
439
- ], 64)) : I("", !0),
440
- l(S, {
441
- class: "w-full mt-6",
442
- variant: "primary",
443
- label: "Save",
444
- loading: e.value,
445
- onclick: () => r(n.payoutAccount)
446
- }, null, 8, ["loading", "onclick"])
447
- ], 64);
448
- };
449
- }
450
- }), ke = { class: "flex" }, Ce = /* @__PURE__ */ C({
451
- __name: "Actions",
452
- emits: ["edit", "delete"],
453
- setup(n, { emit: p }) {
454
- const e = p;
455
- return (d, r) => {
456
- const t = m("FmButton");
457
- return g(), P("div", ke, [
458
- l(t, {
459
- variant: "plain",
460
- "prepend-icon": "delete",
461
- onClick: r[0] || (r[0] = (u) => {
462
- u.stopPropagation(), e("delete");
463
- })
464
- })
465
- ]);
466
- };
467
- }
468
- }), Ue = { class: "flex justify-end px-6 pb-6" }, Te = /* @__PURE__ */ C({
469
- __name: "PaymentChannel",
470
- props: {
471
- payoutAccount: {
472
- type: Object,
473
- required: !0
474
- }
475
- },
476
- setup(n) {
477
- const p = z(), e = n, { isLoading: d, startAsyncCall: r } = j(), t = T([]);
478
- function u() {
479
- r(async () => {
480
- t.value = await R.getChannels(e.payoutAccount._id);
481
- });
482
- }
483
- ne(u);
484
- function f() {
485
- r(async () => {
486
- try {
487
- await R.updateChannels(e.payoutAccount._id, t.value), p.open({
488
- type: "success",
489
- title: "Payout account channels update succesfully"
490
- });
491
- } catch (o) {
492
- p.open({
493
- type: "error",
494
- title: "Error occurs when updating payout account channels",
495
- message: E(o)
496
- });
497
- }
498
- });
499
- }
500
- function c() {
501
- r(async () => {
502
- try {
503
- await R.resetChannels(e.payoutAccount._id), t.value = await R.getChannels(e.payoutAccount._id), p.open({
504
- type: "success",
505
- title: "Payout account channels reset succesfully"
506
- });
507
- } catch (o) {
508
- p.open({
509
- type: "error",
510
- title: "Error occurs when reset payout account channels",
511
- message: E(o)
512
- });
513
- }
514
- });
515
- }
516
- const a = [
517
- {
518
- header: () => "Gateway",
519
- accessorKey: "gateway"
520
- },
521
- {
522
- header: () => "Payment Type",
523
- accessorKey: "type"
524
- },
525
- {
526
- header: () => "Display",
527
- accessorKey: "icon",
528
- cell: ({ row: o }) => O("img", { src: o.original.icon, width: 32, height: 32 })
529
- },
530
- {
531
- header: () => "Label",
532
- accessorKey: "label",
533
- cell: ({ row: o }) => O(se.FmTextField, {
534
- modelValue: o.original.label,
535
- "onUpdate:modelValue": (v) => o.original.label = v
536
- })
537
- },
538
- {
539
- id: "actions",
540
- header: () => "Actions",
541
- cell: ({ row: o }) => O(Ce, {
542
- onDelete: () => t.value.splice(o.index, 1)
543
- })
544
- }
545
- ];
546
- return (o, v) => {
547
- const y = m("FmButton"), b = m("FmTable");
548
- return g(), P($, null, [
549
- i("div", Ue, [
550
- l(y, {
551
- class: "mx-4",
552
- variant: "destructive",
553
- size: "md",
554
- icon: "history",
555
- label: "Reset",
556
- onClick: c
557
- }),
558
- l(y, {
559
- variant: "primary",
560
- size: "md",
561
- icon: "save",
562
- label: "Save",
563
- onClick: f
564
- })
565
- ]),
566
- l(b, {
567
- loading: s(d),
568
- "row-data": t.value,
569
- "column-defs": a,
570
- "shrink-at": !1
571
- }, null, 8, ["loading", "row-data"])
572
- ], 64);
573
- };
574
- }
575
- }), _e = { class: "flex mt-6 space-x-6" }, Ie = /* @__PURE__ */ C({
576
- __name: "FiuuGateway",
577
- props: {
578
- gateway: {
579
- type: Object,
580
- required: !0
581
- },
582
- onUpdate: {
583
- type: Function,
584
- required: !0
585
- },
586
- onDelete: {
587
- type: Function,
588
- required: !0
589
- }
590
- },
591
- setup(n) {
592
- var d;
593
- const e = T(((d = n.gateway) == null ? void 0 : d.config) || {
594
- merchantId: "",
595
- verifyKey: "",
596
- secretKey: ""
597
- });
598
- return (r, t) => {
599
- const u = m("FmTextField"), f = m("FmButton"), c = m("FmForm");
600
- return g(), x(c, {
601
- ref: "form",
602
- class: "flex flex-col gap-16",
603
- onValidationSuccess: t[3] || (t[3] = () => n.onUpdate(e.value))
604
- }, {
605
- default: F(() => [
606
- l(u, {
607
- modelValue: e.value.merchantId,
608
- "onUpdate:modelValue": t[0] || (t[0] = (a) => e.value.merchantId = a),
609
- label: "Merchant ID",
610
- rules: s(V)(s(w).string())
611
- }, null, 8, ["modelValue", "rules"]),
612
- l(u, {
613
- modelValue: e.value.verifyKey,
614
- "onUpdate:modelValue": t[1] || (t[1] = (a) => e.value.verifyKey = a),
615
- label: "Verify Key",
616
- rules: s(V)(s(w).string())
617
- }, null, 8, ["modelValue", "rules"]),
618
- l(u, {
619
- modelValue: e.value.secretKey,
620
- "onUpdate:modelValue": t[2] || (t[2] = (a) => e.value.secretKey = a),
621
- label: "Secret Key",
622
- rules: s(V)(s(w).string())
623
- }, null, 8, ["modelValue", "rules"]),
624
- i("div", _e, [
625
- n.gateway ? (g(), x(f, {
626
- key: 0,
627
- class: "flex-1",
628
- variant: "secondary",
629
- label: "Delete",
630
- onclick: () => n.onDelete()
631
- }, null, 8, ["onclick"])) : I("", !0),
632
- l(f, {
633
- type: "submit",
634
- class: "flex-1",
635
- variant: "primary",
636
- label: "Save"
637
- })
638
- ])
639
- ]),
640
- _: 1
641
- }, 512);
642
- };
643
- }
644
- }), Se = { class: "flex mt-6 space-x-6" }, he = /* @__PURE__ */ C({
645
- __name: "MacauPassGateway",
646
- props: {
647
- gateway: {
648
- type: Object,
649
- required: !0
650
- },
651
- onUpdate: {
652
- type: Function,
653
- required: !0
654
- },
655
- onDelete: {
656
- type: Function,
657
- required: !0
658
- }
659
- },
660
- setup(n) {
661
- var d;
662
- const e = T(((d = n.gateway) == null ? void 0 : d.config) || {
663
- merchantId: "",
664
- merchantName: "",
665
- merchantCategoryCode: "",
666
- storeID: "",
667
- storeName: ""
668
- });
669
- return (r, t) => {
670
- const u = m("FmTextField"), f = m("FmButton"), c = m("FmForm");
671
- return g(), x(c, {
672
- ref: "form",
673
- class: "flex flex-col gap-16",
674
- onValidationSuccess: t[5] || (t[5] = () => n.onUpdate(e.value))
675
- }, {
676
- default: F(() => [
677
- l(u, {
678
- modelValue: e.value.merchantId,
679
- "onUpdate:modelValue": t[0] || (t[0] = (a) => e.value.merchantId = a),
680
- label: "Merchant ID",
681
- rules: s(V)(s(w).string())
682
- }, null, 8, ["modelValue", "rules"]),
683
- l(u, {
684
- modelValue: e.value.merchantName,
685
- "onUpdate:modelValue": t[1] || (t[1] = (a) => e.value.merchantName = a),
686
- label: "Merchant Name",
687
- rules: s(V)(s(w).string())
688
- }, null, 8, ["modelValue", "rules"]),
689
- l(u, {
690
- modelValue: e.value.merchantCategoryCode,
691
- "onUpdate:modelValue": t[2] || (t[2] = (a) => e.value.merchantCategoryCode = a),
692
- label: "Merchant MCC",
693
- rules: s(V)(s(w).string())
694
- }, null, 8, ["modelValue", "rules"]),
695
- l(u, {
696
- modelValue: e.value.storeID,
697
- "onUpdate:modelValue": t[3] || (t[3] = (a) => e.value.storeID = a),
698
- label: "Store ID",
699
- rules: s(V)(s(w).string())
700
- }, null, 8, ["modelValue", "rules"]),
701
- l(u, {
702
- modelValue: e.value.storeName,
703
- "onUpdate:modelValue": t[4] || (t[4] = (a) => e.value.storeName = a),
704
- label: "Store Name",
705
- rules: s(V)(s(w).string())
706
- }, null, 8, ["modelValue", "rules"]),
707
- i("div", Se, [
708
- n.gateway ? (g(), x(f, {
709
- key: 0,
710
- class: "flex-1",
711
- variant: "secondary",
712
- label: "Delete",
713
- onclick: () => n.onDelete()
714
- }, null, 8, ["onclick"])) : I("", !0),
715
- l(f, {
716
- type: "submit",
717
- class: "flex-1",
718
- variant: "primary",
719
- label: "Save"
720
- })
721
- ])
722
- ]),
723
- _: 1
724
- }, 512);
725
- };
726
- }
727
- }), Pe = { class: "flex mt-6 space-x-6" }, De = /* @__PURE__ */ C({
728
- __name: "DigioGateway",
729
- props: {
730
- gateway: {
731
- type: Object,
732
- required: !0
733
- },
734
- onUpdate: {
735
- type: Function,
736
- required: !0
737
- },
738
- onDelete: {
739
- type: Function,
740
- required: !0
741
- }
742
- },
743
- setup(n) {
744
- var d;
745
- const e = T(((d = n.gateway) == null ? void 0 : d.config) || {
746
- merchantId: "",
747
- cardMerchantId: ""
748
- });
749
- return (r, t) => {
750
- const u = m("FmTextField"), f = m("FmButton"), c = m("FmForm");
751
- return g(), x(c, {
752
- ref: "form",
753
- class: "flex flex-col gap-16",
754
- onValidationSuccess: t[2] || (t[2] = () => n.onUpdate(e.value))
755
- }, {
756
- default: F(() => [
757
- l(u, {
758
- modelValue: e.value.merchantId,
759
- "onUpdate:modelValue": t[0] || (t[0] = (a) => e.value.merchantId = a),
760
- label: "Merchant ID",
761
- rules: s(V)(s(w).string())
762
- }, null, 8, ["modelValue", "rules"]),
763
- l(u, {
764
- modelValue: e.value.cardMerchantId,
765
- "onUpdate:modelValue": t[1] || (t[1] = (a) => e.value.cardMerchantId = a),
766
- label: "Card Merchant ID",
767
- rules: s(V)(s(w).string())
768
- }, null, 8, ["modelValue", "rules"]),
769
- i("div", Pe, [
770
- n.gateway ? (g(), x(f, {
771
- key: 0,
772
- class: "flex-1",
773
- variant: "secondary",
774
- label: "Delete",
775
- onclick: () => n.onDelete()
776
- }, null, 8, ["onclick"])) : I("", !0),
777
- l(f, {
778
- type: "submit",
779
- class: "flex-1",
780
- variant: "primary",
781
- label: "Save"
782
- })
783
- ])
784
- ]),
785
- _: 1
786
- }, 512);
787
- };
788
- }
789
- }), Ne = { class: "flex mt-6 space-x-6" }, Me = /* @__PURE__ */ C({
790
- __name: "AdyenGateway",
791
- props: {
792
- gateway: {
793
- type: Object,
794
- required: !0
795
- },
796
- onUpdate: {
797
- type: Function,
798
- required: !0
799
- },
800
- onDelete: {
801
- type: Function,
802
- required: !0
803
- }
804
- },
805
- setup(n) {
806
- var d;
807
- const e = T(((d = n.gateway) == null ? void 0 : d.config) || {
808
- merchantAccount: "",
809
- username: "",
810
- apiKey: "",
811
- clientKey: "",
812
- endpoint: "",
813
- hmacKey: ""
814
- });
815
- return (r, t) => {
816
- const u = m("FmTextField"), f = m("FmButton"), c = m("FmForm");
817
- return g(), x(c, {
818
- ref: "form",
819
- class: "flex flex-col gap-16",
820
- onValidationSuccess: t[6] || (t[6] = () => n.onUpdate(e.value))
821
- }, {
822
- default: F(() => [
823
- l(u, {
824
- modelValue: e.value.endpoint,
825
- "onUpdate:modelValue": t[0] || (t[0] = (a) => e.value.endpoint = a),
826
- label: "Endpoint",
827
- rules: s(V)(s(w).string())
828
- }, null, 8, ["modelValue", "rules"]),
829
- l(u, {
830
- modelValue: e.value.merchantAccount,
831
- "onUpdate:modelValue": t[1] || (t[1] = (a) => e.value.merchantAccount = a),
832
- label: "Merchant Account",
833
- rules: s(V)(s(w).string())
834
- }, null, 8, ["modelValue", "rules"]),
835
- l(u, {
836
- modelValue: e.value.username,
837
- "onUpdate:modelValue": t[2] || (t[2] = (a) => e.value.username = a),
838
- label: "Username",
839
- rules: s(V)(s(w).string())
840
- }, null, 8, ["modelValue", "rules"]),
841
- l(u, {
842
- modelValue: e.value.apiKey,
843
- "onUpdate:modelValue": t[3] || (t[3] = (a) => e.value.apiKey = a),
844
- label: "API Key",
845
- rules: s(V)(s(w).string())
846
- }, null, 8, ["modelValue", "rules"]),
847
- l(u, {
848
- modelValue: e.value.clientKey,
849
- "onUpdate:modelValue": t[4] || (t[4] = (a) => e.value.clientKey = a),
850
- label: "Client Key",
851
- rules: s(V)(s(w).string())
852
- }, null, 8, ["modelValue", "rules"]),
853
- l(u, {
854
- modelValue: e.value.hmacKey,
855
- "onUpdate:modelValue": t[5] || (t[5] = (a) => e.value.hmacKey = a),
856
- label: "HMac Key"
857
- }, null, 8, ["modelValue"]),
858
- i("div", Ne, [
859
- n.gateway ? (g(), x(f, {
860
- key: 0,
861
- class: "flex-1",
862
- variant: "secondary",
863
- label: "Delete",
864
- onclick: () => n.onDelete()
865
- }, null, 8, ["onclick"])) : I("", !0),
866
- l(f, {
867
- type: "submit",
868
- class: "flex-1",
869
- variant: "primary",
870
- label: "Save"
871
- })
872
- ])
873
- ]),
874
- _: 1
875
- }, 512);
876
- };
877
- }
878
- }), Re = { class: "flex mt-6 space-x-6" }, Ge = /* @__PURE__ */ C({
879
- __name: "KsherGateway",
880
- props: {
881
- gateway: {
882
- type: Object,
883
- required: !0
884
- },
885
- onUpdate: {
886
- type: Function,
887
- required: !0
888
- },
889
- onDelete: {
890
- type: Function,
891
- required: !0
892
- }
893
- },
894
- setup(n) {
895
- var d;
896
- const e = T(((d = n.gateway) == null ? void 0 : d.config) || {
897
- appId: "",
898
- privateKey: ""
899
- });
900
- return (r, t) => {
901
- const u = m("FmTextField"), f = m("FmTextarea"), c = m("FmButton"), a = m("FmForm");
902
- return g(), x(a, {
903
- ref: "form",
904
- class: "flex flex-col gap-16",
905
- onValidationSuccess: t[2] || (t[2] = () => n.onUpdate(e.value))
906
- }, {
907
- default: F(() => [
908
- l(u, {
909
- modelValue: e.value.appId,
910
- "onUpdate:modelValue": t[0] || (t[0] = (o) => e.value.appId = o),
911
- label: "App ID",
912
- rules: s(V)(s(w).string())
913
- }, null, 8, ["modelValue", "rules"]),
914
- l(f, {
915
- modelValue: e.value.privateKey,
916
- "onUpdate:modelValue": t[1] || (t[1] = (o) => e.value.privateKey = o),
917
- label: "Private Key",
918
- placeholder: "Paste your private key including BEGIN and END markers",
919
- rules: s(V)(s(w).string())
920
- }, null, 8, ["modelValue", "rules"]),
921
- i("div", Re, [
922
- n.gateway ? (g(), x(c, {
923
- key: 0,
924
- class: "flex-1",
925
- variant: "secondary",
926
- label: "Delete",
927
- onclick: () => n.onDelete()
928
- }, null, 8, ["onclick"])) : I("", !0),
929
- l(c, {
930
- type: "submit",
931
- class: "flex-1",
932
- variant: "primary",
933
- label: "Save"
934
- })
935
- ])
936
- ]),
937
- _: 1
938
- }, 512);
939
- };
940
- }
941
- }), $e = {
942
- key: 0,
943
- className: "mt-1 my-6 text-gray-600"
944
- }, Ke = {
945
- key: 1,
946
- class: "flex items-center justify-center min-h-[80vh]"
947
- }, Oe = /* @__PURE__ */ C({
948
- __name: "PaymentGateway",
949
- props: {
950
- payoutAccount: {
951
- type: Object,
952
- required: !0
953
- }
954
- },
955
- setup(n) {
956
- const p = ae().currentCountry, e = p.value, d = z(), { isLoading: r, startAsyncCall: t } = j(), { gatewayTab: u } = Y({
957
- gatewayTab: ""
958
- }), f = n, c = [
959
- {
960
- label: "Fiuu",
961
- value: "RAZER_MERCHANT_SERVICE",
962
- render: Ie,
963
- region: [h.F_COUNTRY.enum.MY, h.F_COUNTRY.enum.SG]
964
- },
965
- {
966
- label: "Macau Pass",
967
- value: "MACAU_PASS",
968
- render: he,
969
- region: [h.F_COUNTRY.enum.MO]
970
- },
971
- {
972
- label: "Digio",
973
- value: "DIGIO",
974
- render: De,
975
- region: [h.F_COUNTRY.enum.TH]
976
- },
977
- {
978
- label: "Ksher",
979
- value: "KSHER",
980
- render: Ge,
981
- region: [h.F_COUNTRY.enum.TH]
982
- },
983
- {
984
- label: "Adyen",
985
- value: "ADYEN",
986
- render: Me,
987
- region: [h.F_COUNTRY.enum.MY, h.F_COUNTRY.enum.SG]
988
- }
989
- ], a = T(
990
- f.payoutAccount.gateways ?? []
991
- ), o = K(() => c.find((A) => A.value === u.value)), v = K(() => c.filter(
992
- (A) => A.region.includes(p.value ?? h.F_COUNTRY.enum.MY)
993
- ));
994
- async function y(A) {
995
- await t(async () => {
996
- try {
997
- await R.updateGateway(f.payoutAccount._id, A), d.open({
998
- type: "success",
999
- title: "Payout account gateways update succesfully"
1000
- }), b.value = A.length === 0;
1001
- } catch (S) {
1002
- d.open({
1003
- type: "error",
1004
- title: "Error occurs when updating payout account gateways",
1005
- message: E(S)
1006
- });
1007
- }
1008
- });
1009
- }
1010
- const b = T((f.payoutAccount.gateways ?? []).length === 0), U = K(() => e !== "MY" || !b.value);
1011
- return (A, S) => {
1012
- var B;
1013
- const k = m("FmCircularProgress"), N = m("FmSwitch"), H = m("FmTabs");
1014
- return g(), P($, null, [
1015
- s(e) ? (g(), P("p", $e, [...S[2] || (S[2] = [
1016
- i("b", null, "Note: ", -1),
1017
- _(" There's no setup required for Malaysia Payment Gateway, once Payout Account is ready you will able to configure the payment channels. ", -1)
1018
- ])])) : I("", !0),
1019
- s(r) ? (g(), P("div", Ke, [
1020
- l(k, { size: "xxl" })
1021
- ])) : (g(), P($, { key: 2 }, [
1022
- s(e) === "MY" ? (g(), x(N, {
1023
- key: 0,
1024
- modelValue: b.value,
1025
- "onUpdate:modelValue": S[0] || (S[0] = (M) => b.value = M),
1026
- style: { "padding-bottom": "12px" },
1027
- label: "Use FeedMe's Fiuu Account?"
1028
- }, null, 8, ["modelValue"])) : I("", !0),
1029
- U.value ? (g(), x(H, {
1030
- key: 1,
1031
- "model-value": s(u),
1032
- "onUpdate:modelValue": S[1] || (S[1] = (M) => q(u) ? u.value = M : null),
1033
- class: "mb-6",
1034
- items: v.value
1035
- }, null, 8, ["model-value", "items"])) : I("", !0),
1036
- U.value && s(u) ? (g(), x(Q((B = o.value) == null ? void 0 : B.render), W(J({ key: 2 }, {
1037
- gateway: a.value.find(
1038
- (M) => {
1039
- var G;
1040
- return M.paymentGateway === ((G = o.value) == null ? void 0 : G.value);
1041
- }
1042
- ),
1043
- onDelete: async () => {
1044
- a.value = a.value.filter(
1045
- (M) => {
1046
- var G;
1047
- return M.paymentGateway !== ((G = o.value) == null ? void 0 : G.value);
1048
- }
1049
- ), y(a.value);
1050
- },
1051
- onUpdate: (M) => {
1052
- var X;
1053
- let G = a.value.find(
1054
- (le) => {
1055
- var ee;
1056
- return le.paymentGateway === ((ee = o.value) == null ? void 0 : ee.value);
1057
- }
1058
- );
1059
- G ? G.config = M : a.value.push({
1060
- paymentGateway: (X = o.value) == null ? void 0 : X.value,
1061
- config: M
1062
- }), y(a.value);
1063
- }
1064
- })), null, 16)) : I("", !0)
1065
- ], 64))
1066
- ], 64);
1067
- };
1068
- }
1069
- }), Be = { class: "flex mt-6 space-x-6" }, Ee = /* @__PURE__ */ C({
1070
- __name: "GooglePayToken",
1071
- props: {
1072
- gateway: {
1073
- type: Object,
1074
- required: !0
1075
- },
1076
- onUpdate: {
1077
- type: Function,
1078
- required: !0
1079
- },
1080
- onDelete: {
1081
- type: Function,
1082
- required: !0
1083
- }
1084
- },
1085
- setup(n) {
1086
- const e = T(
1087
- n.gateway || {
1088
- type: "googlePay",
1089
- gateway: "RAZER_MERCHANT_SERVICE",
1090
- config: {
1091
- gateway: "molpay",
1092
- gatewayMerchantId: "molpay"
1093
- }
1094
- }
1095
- );
1096
- return (d, r) => {
1097
- const t = m("FmTextField"), u = m("FmButton"), f = m("FmForm");
1098
- return g(), x(f, {
1099
- ref: "form",
1100
- class: "flex flex-col gap-16",
1101
- onValidationSuccess: r[3] || (r[3] = () => n.onUpdate(e.value))
1102
- }, {
1103
- default: F(() => [
1104
- l(t, {
1105
- modelValue: e.value.gateway,
1106
- "onUpdate:modelValue": r[0] || (r[0] = (c) => e.value.gateway = c),
1107
- label: "Gateway",
1108
- disabled: !0,
1109
- rules: s(V)(s(w).string())
1110
- }, null, 8, ["modelValue", "rules"]),
1111
- l(t, {
1112
- modelValue: e.value.config.gateway,
1113
- "onUpdate:modelValue": r[1] || (r[1] = (c) => e.value.config.gateway = c),
1114
- label: "Gateway ID",
1115
- disabled: !0,
1116
- rules: s(V)(s(w).string())
1117
- }, null, 8, ["modelValue", "rules"]),
1118
- l(t, {
1119
- modelValue: e.value.config.gatewayMerchantId,
1120
- "onUpdate:modelValue": r[2] || (r[2] = (c) => e.value.config.gatewayMerchantId = c),
1121
- label: "Gateway Merchant ID",
1122
- disabled: !0,
1123
- rules: s(V)(s(w).string())
1124
- }, null, 8, ["modelValue", "rules"]),
1125
- i("div", Be, [
1126
- n.gateway ? (g(), x(u, {
1127
- key: 0,
1128
- class: "flex-1",
1129
- variant: "secondary",
1130
- label: "Delete",
1131
- onclick: () => n.onDelete()
1132
- }, null, 8, ["onclick"])) : I("", !0),
1133
- l(u, {
1134
- type: "submit",
1135
- class: "flex-1",
1136
- variant: "primary",
1137
- label: "Save"
1138
- })
1139
- ])
1140
- ]),
1141
- _: 1
1142
- }, 512);
1143
- };
1144
- }
1145
- }), qe = { class: "flex mt-6 space-x-6" }, je = /* @__PURE__ */ C({
1146
- __name: "ApplePayToken",
1147
- props: {
1148
- gateway: {
1149
- type: Object,
1150
- required: !0
1151
- },
1152
- onUpdate: {
1153
- type: Function,
1154
- required: !0
1155
- },
1156
- onDelete: {
1157
- type: Function,
1158
- required: !0
1159
- }
1160
- },
1161
- setup(n) {
1162
- const e = T(
1163
- n.gateway || {
1164
- type: "applePay",
1165
- gateway: "RAZER_MERCHANT_SERVICE",
1166
- config: {
1167
- merchantId: "FMfeedme"
1168
- }
1169
- }
1170
- );
1171
- return (d, r) => {
1172
- const t = m("FmTextField"), u = m("FmButton"), f = m("FmForm");
1173
- return g(), x(f, {
1174
- ref: "form",
1175
- class: "flex flex-col gap-16",
1176
- onValidationSuccess: r[2] || (r[2] = () => n.onUpdate(e.value))
1177
- }, {
1178
- default: F(() => [
1179
- l(t, {
1180
- modelValue: e.value.gateway,
1181
- "onUpdate:modelValue": r[0] || (r[0] = (c) => e.value.gateway = c),
1182
- label: "Gateway",
1183
- disabled: !0,
1184
- rules: s(V)(s(w).string())
1185
- }, null, 8, ["modelValue", "rules"]),
1186
- l(t, {
1187
- modelValue: e.value.config.merchantId,
1188
- "onUpdate:modelValue": r[1] || (r[1] = (c) => e.value.config.merchantId = c),
1189
- label: "Merchant ID",
1190
- disabled: !0,
1191
- rules: s(V)(s(w).string())
1192
- }, null, 8, ["modelValue", "rules"]),
1193
- i("div", qe, [
1194
- n.gateway ? (g(), x(u, {
1195
- key: 0,
1196
- class: "flex-1",
1197
- variant: "secondary",
1198
- label: "Delete",
1199
- onclick: () => n.onDelete()
1200
- }, null, 8, ["onclick"])) : I("", !0),
1201
- l(u, {
1202
- type: "submit",
1203
- class: "flex-1",
1204
- variant: "primary",
1205
- label: "Save"
1206
- })
1207
- ])
1208
- ]),
1209
- _: 1
1210
- }, 512);
1211
- };
1212
- }
1213
- }), Ye = {
1214
- key: 0,
1215
- class: "flex items-center justify-center min-h-[80vh]"
1216
- }, ze = /* @__PURE__ */ C({
1217
- __name: "TokenGateway",
1218
- props: {
1219
- payoutAccount: {
1220
- type: Object,
1221
- required: !0
1222
- }
1223
- },
1224
- setup(n) {
1225
- const p = ae().currentCountry, e = z(), { isLoading: d, startAsyncCall: r } = j(), { tokenTab: t } = Y({
1226
- tokenTab: ""
1227
- }), u = n, f = [
1228
- {
1229
- label: "Google Pay",
1230
- value: "googlePay",
1231
- icon: "android",
1232
- render: Ee,
1233
- region: [h.F_COUNTRY.enum.MY, h.F_COUNTRY.enum.SG]
1234
- },
1235
- {
1236
- label: "Apple Pay",
1237
- value: "applePay",
1238
- icon: "iOS",
1239
- render: je,
1240
- region: [h.F_COUNTRY.enum.MY, h.F_COUNTRY.enum.SG]
1241
- }
1242
- ], c = T(u.payoutAccount.tokens ?? []), a = K(() => f.find((y) => y.value === t.value)), o = K(() => f.filter(
1243
- (y) => y.region.includes(p.value ?? h.F_COUNTRY.enum.MY)
1244
- ));
1245
- async function v(y) {
1246
- await r(async () => {
1247
- try {
1248
- await R.updateTokens(u.payoutAccount._id, y), e.open({
1249
- type: "success",
1250
- title: "Payout account tokens gateway update succesfully"
1251
- });
1252
- } catch (b) {
1253
- e.open({
1254
- type: "error",
1255
- title: "Error occurs when updating payout account tokens",
1256
- message: E(b)
1257
- });
1258
- }
1259
- });
1260
- }
1261
- return (y, b) => {
1262
- var S;
1263
- const U = m("FmCircularProgress"), A = m("FmTabs");
1264
- return g(), P($, null, [
1265
- b[1] || (b[1] = i("p", { className: "mt-1 my-6 text-gray-600" }, [
1266
- i("b", null, "Note: "),
1267
- _(" Token gateways appear above other online payment channels to comply with provider branding requirements. Configuration is standardized, so you generally only need to select the provider. "),
1268
- i("br"),
1269
- i("br"),
1270
- i("b", null, ` Token payments are automatically enabled for "Pay-First" merchants. You do not need to adjust settings here unless you're modifying for a non-Pay-First merchant who wishes to manually enable this feature. `),
1271
- i("br")
1272
- ], -1)),
1273
- s(d) ? (g(), P("div", Ye, [
1274
- l(U, { size: "xxl" })
1275
- ])) : (g(), x(A, {
1276
- key: 1,
1277
- "model-value": s(t),
1278
- "onUpdate:modelValue": b[0] || (b[0] = (k) => q(t) ? t.value = k : null),
1279
- class: "mb-6 mt-6",
1280
- items: o.value
1281
- }, null, 8, ["model-value", "items"])),
1282
- s(t) ? (g(), x(Q((S = a.value) == null ? void 0 : S.render), W(J({ key: 2 }, {
1283
- gateway: c.value.find((k) => {
1284
- var N;
1285
- return k.type === ((N = a.value) == null ? void 0 : N.value);
1286
- }),
1287
- onDelete: async () => {
1288
- c.value = c.value.filter((k) => {
1289
- var N;
1290
- return k.type !== ((N = a.value) == null ? void 0 : N.value);
1291
- }), v(c.value);
1292
- },
1293
- onUpdate: (k) => {
1294
- let N = c.value.find((H) => {
1295
- var B;
1296
- return H.type === ((B = a.value) == null ? void 0 : B.value);
1297
- });
1298
- N ? N.config = k : c.value.push(k), v(c.value);
1299
- }
1300
- })), null, 16)) : I("", !0)
1301
- ], 64);
1302
- };
1303
- }
1304
- }), ot = /* @__PURE__ */ C({
1305
- __name: "PayoutAccountSetting",
1306
- props: {
1307
- accountId: {
1308
- type: String,
1309
- required: !0
1310
- }
1311
- },
1312
- setup(n) {
1313
- const p = n, { tab: e } = Y({
1314
- tab: "information"
1315
- }), { isLoading: d, startAsyncCall: r } = j(!0), t = ue(), u = T();
1316
- async function f(v) {
1317
- await R.updateById(
1318
- p.accountId,
1319
- v
1320
- ), u.value = await R.readById(p.accountId);
1321
- }
1322
- const c = [
1323
- {
1324
- label: "Information",
1325
- value: "information",
1326
- icon: "overview",
1327
- render: ie
1328
- },
1329
- {
1330
- label: "Settlement",
1331
- value: "settlement",
1332
- icon: "payments",
1333
- render: ye
1334
- },
1335
- {
1336
- label: "MDR Status",
1337
- value: "payment",
1338
- icon: "account_box",
1339
- render: Ae
1340
- },
1341
- {
1342
- label: "Online Gateways",
1343
- icon: "assured_workload",
1344
- value: "gateways",
1345
- render: Oe
1346
- },
1347
- {
1348
- label: "Token Gateways",
1349
- value: "tokens",
1350
- icon: "wallet",
1351
- render: ze
1352
- },
1353
- {
1354
- label: "Online Channels",
1355
- icon: "shopping_cart",
1356
- value: "channels",
1357
- render: Te
1358
- }
1359
- ];
1360
- function a() {
1361
- r(async () => {
1362
- u.value = await R.readById(p.accountId);
1363
- });
1364
- }
1365
- ne(a);
1366
- const o = K(() => {
1367
- const v = c.reduce((y, b) => y || (b.children ? b.children.find((U) => U.value === e.value) || null : b.value === e.value ? b : null), null);
1368
- return v == null ? void 0 : v.render;
1369
- });
1370
- return (v, y) => {
1371
- var U;
1372
- const b = m("FmTabs");
1373
- return g(), x(oe, {
1374
- title: `Payout Account (${(U = u.value) == null ? void 0 : U._id})`,
1375
- loading: s(d),
1376
- onBack: s(t).back
1377
- }, {
1378
- default: F(() => [
1379
- l(b, {
1380
- "model-value": s(e),
1381
- "onUpdate:modelValue": y[0] || (y[0] = (A) => q(e) ? e.value = A : null),
1382
- class: "mb-6",
1383
- items: c
1384
- }, null, 8, ["model-value"]),
1385
- s(e) ? (g(), x(Q(o.value), W(J({ key: 0 }, {
1386
- payoutAccount: u.value,
1387
- onUpdate: f
1388
- })), null, 16)) : I("", !0)
1389
- ]),
1390
- _: 1
1391
- }, 8, ["title", "loading", "onBack"]);
1392
- };
1393
- }
1394
- });
1395
- export {
1396
- ot as default
1397
- };