@feedmepos/mf-payment 1.2.3 → 1.2.6

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 (60) hide show
  1. package/dist/{PayoutAccount-CcD9G3tM.js → PayoutAccount-CFFgQ_65.js} +6 -6
  2. package/dist/{PayoutAccount-DqbpQ8mY.js → PayoutAccount-CSm0Ldg9.js} +5 -5
  3. package/dist/{PayoutAccountSetting-C2PsyDLM.js → PayoutAccountSetting-rO11Afiw.js} +326 -312
  4. package/dist/{Restaurant-C90F0Stw.js → Restaurant-CoNFB1rk.js} +4 -4
  5. package/dist/RestaurantSetting-BQvg8S_p.js +628 -0
  6. package/dist/{Settlement-CD1Vm7TK.js → Settlement-DEKvU0zP.js} +3 -3
  7. package/dist/{Settlement-DxkW-ltZ.js → Settlement-DpmBq0V9.js} +3 -3
  8. package/dist/{SettlementTransactions-Bj85X5dx.js → SettlementTransactions-3alZwucT.js} +3 -3
  9. package/dist/{SettlementTransactions-D6dyfrsh.js → SettlementTransactions-DugNdpd2.js} +3 -3
  10. package/dist/{Terminal-WFU6xb6H.js → Terminal-Dv7zS_te.js} +5 -5
  11. package/dist/TerminalSetting-ChM9jB-O.js +572 -0
  12. package/dist/{Transaction-CB62_jSg.js → Transaction-CT8Be7FS.js} +7 -7
  13. package/dist/{Transaction-PRcVVkhp.js → Transaction-DCKhuoVw.js} +5 -5
  14. package/dist/{TransactionOld-B0P4HXt8.js → TransactionOld-jkTy7Aeb.js} +4 -4
  15. package/dist/{TransactionTable.vue_vue_type_script_setup_true_lang-jF4UYhQi.js → TransactionTable.vue_vue_type_script_setup_true_lang-B_By7BvK.js} +3 -3
  16. package/dist/api/payment-gateway/index.d.ts +3 -0
  17. package/dist/{app-S42F2ZTb.js → app-CiHNgoQY.js} +344 -344
  18. package/dist/app.js +1 -1
  19. package/dist/{assets-wSUxHhv6.js → assets-BqjaEXmB.js} +2 -2
  20. package/dist/{grafana-kQY3riiN.js → grafana-Bwx9Kj61.js} +1 -1
  21. package/dist/{index-C3OElkUY.js → index-1q4ZbRix.js} +4219 -4167
  22. package/dist/{index-DcK-ntIi.js → index-BIDuwnm_.js} +1 -1
  23. package/dist/{index-C_3jgmep.js → index-C3fxBVdz.js} +1 -1
  24. package/dist/{index-B-2fIhCU.js → index-CCIVpogO.js} +1 -1
  25. package/dist/{index-JkEYKC8p.js → index-CN50SqVG.js} +1 -1
  26. package/dist/{index-CiIXIJ1u.js → index-CZrwq9oF.js} +1 -1
  27. package/dist/{index-Bj2Rs1vj.js → index-CyMElhGL.js} +2 -2
  28. package/dist/{index.vue_vue_type_script_setup_true_lang-C1ogwxl8.js → index.vue_vue_type_script_setup_true_lang-DT8A92zR.js} +1 -1
  29. package/dist/package.json +2 -2
  30. package/dist/{payout-account-zISZXeYt.js → payout-account-cg0CKkbk.js} +3 -3
  31. package/dist/stores/payoutAccount.d.ts +18 -14
  32. package/dist/tsconfig.app.tsbuildinfo +1 -1
  33. package/dist/views/admin/payout-account/tabs/Information.vue.d.ts +18 -14
  34. package/dist/views/admin/payout-account/tabs/PaymentChannel.vue.d.ts +44 -40
  35. package/dist/views/admin/payout-account/tabs/PaymentGateway.vue.d.ts +44 -40
  36. package/dist/views/admin/payout-account/tabs/PaymentStatus.vue.d.ts +18 -14
  37. package/dist/views/admin/payout-account/tabs/Settlement.vue.d.ts +18 -14
  38. package/dist/views/admin/payout-account/tabs/TokenGateway.vue.d.ts +44 -40
  39. package/dist/views/admin/payout-account/tabs/gateway/FiuuGateway.vue.d.ts +4 -4
  40. package/dist/views/admin/payout-account/tabs/gateway/MacauPassGateway.vue.d.ts +6 -2
  41. package/dist/views/admin/payout-account/tabs/token/GooglePayToken.vue.d.ts +2 -2
  42. package/dist/views/admin/restaurant/tabs/gateway/FiuuGateway.vue.d.ts +10 -10
  43. package/dist/views/admin/restaurant/tabs/gateway/GhlGateway.vue.d.ts +10 -10
  44. package/dist/views/admin/restaurant/tabs/gateway/GrabGateway.vue.d.ts +46 -0
  45. package/dist/views/admin/restaurant/tabs/gateway/MacauPassGateway.vue.d.ts +10 -10
  46. package/dist/views/admin/restaurant/tabs/gateway/RevenueMonsterGateway.vue.d.ts +8 -8
  47. package/dist/views/admin/terminal/TerminalDialog.vue.d.ts +18 -18
  48. package/dist/views/admin/terminal/tabs/GhlGateway.vue.d.ts +18 -18
  49. package/dist/views/admin/terminal/tabs/Information.vue.d.ts +18 -18
  50. package/dist/views/admin/terminal/tabs/SettingRequest.vue.d.ts +18 -18
  51. package/dist/views/admin/terminal/tabs/{SoftspaceGateway.vue.d.ts → SoftposGateway.vue.d.ts} +18 -18
  52. package/dist/views/admin/terminal/tabs/TerminalGateway.vue.d.ts +18 -18
  53. package/dist/views/admin/terminal/tabs/settings/KioskMode.vue.d.ts +18 -18
  54. package/dist/views/payout-account/PayoutAccountTable.vue.d.ts +36 -28
  55. package/dist/views/settlement/FiuuSettlementTable.vue.d.ts +56 -56
  56. package/dist/views/settlement/FiuuSettlementTransactions.vue.d.ts +28 -28
  57. package/package.json +2 -2
  58. package/dist/RestaurantSetting-ECCLE0zj.js +0 -501
  59. package/dist/TerminalSetting-DSCFAQht.js +0 -618
  60. package/dist/views/admin/terminal/tabs/FiuuGateway.vue.d.ts +0 -92
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as w, resolveComponent as y, openBlock as F, createBlock as M, normalizeClass as z, withCtx as m, createElementVNode as l, toDisplayString as n, createElementBlock as O, unref as a, ref as v, onMounted as G, watch as L, createVNode as o, createTextVNode as u, h as I } from "vue";
2
- import { e as C, u as H } from "./index-C3OElkUY.js";
2
+ import { e as C, u as H } from "./index-1q4ZbRix.js";
3
3
  import "@feedmepos/ui-library";
4
4
  import { d as E } from "./dinero-CIVmXLL-.js";
5
- import { g as q, a as J, t as Q, b as W } from "./assets-wSUxHhv6.js";
5
+ import { g as q, a as J, t as Q, b as W } from "./assets-BqjaEXmB.js";
6
6
  import { _ as X } from "./Layout.vue_vue_type_script_setup_true_lang-DJm5br5a.js";
7
7
  import { useRouter as Z } from "vue-router";
8
- import { s as ee } from "./index-DcK-ntIi.js";
8
+ import { s as ee } from "./index-BIDuwnm_.js";
9
9
  import { useI18n as te, useCoreStore as ae } from "@feedmepos/mf-common";
10
10
  import { h as ne } from "./moment-h96o7c8I.js";
11
11
  const le = /* @__PURE__ */ w({
@@ -1,14 +1,14 @@
1
1
  import { defineComponent as z, ref as I, onUpdated as oe, h as M, onMounted as me, Fragment as ie, computed as se, openBlock as N, createElementBlock as G, createElementVNode as A, createTextVNode as ee, toDisplayString as le, createVNode as k, resolveComponent as _, normalizeClass as pe, withCtx as q, createBlock as D, createCommentVNode as V, unref as P, watch as te, isRef as ge } from "vue";
2
- import { e as Ce } from "./index-C3OElkUY.js";
2
+ import { e as Ce } from "./index-1q4ZbRix.js";
3
3
  import { h as ye } from "./moment-h96o7c8I.js";
4
- import { u as we } from "./index-C_3jgmep.js";
5
- import { _ as Ee } from "./index.vue_vue_type_script_setup_true_lang-C1ogwxl8.js";
4
+ import { u as we } from "./index-C3fxBVdz.js";
5
+ import { _ as Ee } from "./index.vue_vue_type_script_setup_true_lang-DT8A92zR.js";
6
6
  import { _ as Me } from "./AdminLayout.vue_vue_type_script_setup_true_lang-BTmMOzwx.js";
7
7
  import { useSnackbar as W, useDialogChild as Re, useDialog as Ae } from "@feedmepos/ui-library";
8
- import { t as Q } from "./index-CiIXIJ1u.js";
8
+ import { t as Q } from "./index-CZrwq9oF.js";
9
9
  import { c as ue } from "./clipboard-4jh1WteU.js";
10
10
  import { useCoreStore as ce } from "@feedmepos/mf-common";
11
- import { g as Se } from "./grafana-kQY3riiN.js";
11
+ import { g as Se } from "./grafana-Bwx9Kj61.js";
12
12
  import { u as Y } from "./error-K1CakhA9.js";
13
13
  import { z as re, a as ne } from "./validator-D5jtpt9A.js";
14
14
  import { w as ae } from "./Modal-DB8M9o1T.js";
@@ -0,0 +1,572 @@
1
+ import { defineComponent as q, openBlock as y, createElementBlock as x, Fragment as D, createElementVNode as I, createTextVNode as M, toDisplayString as R, toRef as P, ref as w, watch as Y, onMounted as G, computed as O, resolveComponent as v, unref as T, createVNode as p, createBlock as U, withCtx as B, createCommentVNode as S, isRef as h, resolveDynamicComponent as A, normalizeProps as E, mergeProps as z } from "vue";
2
+ import { u as $, e as k } from "./index-1q4ZbRix.js";
3
+ import { useRouter as W } from "vue-router";
4
+ import { t as N } from "./index-CZrwq9oF.js";
5
+ import { _ as X } from "./Layout.vue_vue_type_script_setup_true_lang-DJm5br5a.js";
6
+ import { u as H } from "./index-C3fxBVdz.js";
7
+ import { useSnackbar as J } from "@feedmepos/ui-library";
8
+ import { u as Z } from "./error-K1CakhA9.js";
9
+ import { z as ee, a as ae } from "./validator-D5jtpt9A.js";
10
+ import { useCoreStore as Q } from "@feedmepos/mf-common";
11
+ const te = /* @__PURE__ */ q({
12
+ __name: "Information",
13
+ props: {
14
+ terminal: {
15
+ type: Object,
16
+ required: !0
17
+ }
18
+ },
19
+ setup(f) {
20
+ return (m, t) => (y(), x(D, null, [
21
+ t[0] || (t[0] = I("b", null, "Name", -1)),
22
+ M(": " + R(f.terminal.name), 1),
23
+ t[1] || (t[1] = I("br", null, null, -1)),
24
+ t[2] || (t[2] = I("b", null, "Status", -1)),
25
+ M(": " + R(f.terminal.status), 1),
26
+ t[3] || (t[3] = I("br", null, null, -1)),
27
+ t[4] || (t[4] = I("b", null, "Device ID", -1)),
28
+ M(": " + R(f.terminal.deviceId ?? "-"), 1),
29
+ t[5] || (t[5] = I("br", null, null, -1)),
30
+ t[6] || (t[6] = I("b", null, "Device Type", -1)),
31
+ M(": " + R(f.terminal.deviceType ?? "-"), 1),
32
+ t[7] || (t[7] = I("br", null, null, -1))
33
+ ], 64));
34
+ }
35
+ }), ne = {
36
+ key: 0,
37
+ class: "flex items-center justify-center min-h-[80vh]"
38
+ }, le = { class: "flex mt-6 space-x-6" }, oe = /* @__PURE__ */ q({
39
+ __name: "TerminalGateway",
40
+ props: {
41
+ terminal: {
42
+ type: Object,
43
+ required: !0
44
+ },
45
+ onUpdate: {
46
+ type: Function,
47
+ required: !0
48
+ }
49
+ },
50
+ setup(f) {
51
+ const { isLoading: m, startAsyncCall: t } = $(), d = f, n = P(() => d.terminal), s = w(), c = w(), a = w(-1), l = w({
52
+ terminalId: ""
53
+ }), i = () => {
54
+ l.value.terminalId = "", a.value = -1;
55
+ }, r = () => {
56
+ if (t(async () => {
57
+ s.value = await N.getRestaurantTerminals(d.terminal.referenceId);
58
+ }), !d.terminal.ecrs)
59
+ return i();
60
+ const u = d.terminal.ecrs.findIndex((o) => o && o.gateway && o.gateway === "FeedMe");
61
+ if (u === -1)
62
+ return i();
63
+ a.value = u;
64
+ const e = d.terminal.ecrs.at(u);
65
+ e.gateway === "FeedMe" && e.config && (l.value = {
66
+ terminalId: e.config.terminalId
67
+ });
68
+ };
69
+ Y(n, r), G(r);
70
+ const g = O(() => (s.value ?? []).map((u) => ({
71
+ label: u.name ?? u._id,
72
+ value: u._id
73
+ })));
74
+ async function F(u) {
75
+ var e;
76
+ (e = d.terminal.ecrs) == null || e.splice(u, 1), d.onUpdate(d.terminal);
77
+ }
78
+ return (u, e) => {
79
+ const o = v("FmCircularProgress"), _ = v("FmSelect"), V = v("FmButton"), C = v("FmForm");
80
+ return T(m) ? (y(), x("div", ne, [
81
+ p(o, { size: "xxl" })
82
+ ])) : (y(), U(C, {
83
+ key: 1,
84
+ ref: c.value,
85
+ class: "flex flex-col gap-16 w-[500px]",
86
+ onValidationSuccess: e[1] || (e[1] = () => {
87
+ a.value > -1 ? n.value.ecrs[a.value] = { gateway: "FeedMe", config: l.value } : (n.value.ecrs || (n.value.ecrs = []), n.value.ecrs.push({ gateway: "FeedMe", config: l.value })), d.onUpdate(n.value);
88
+ })
89
+ }, {
90
+ default: B(() => [
91
+ p(_, {
92
+ modelValue: l.value.terminalId,
93
+ "onUpdate:modelValue": e[0] || (e[0] = (K) => l.value.terminalId = K),
94
+ label: "Terminal ID",
95
+ items: g.value,
96
+ rules: T(ee)(T(ae).string())
97
+ }, null, 8, ["modelValue", "items", "rules"]),
98
+ I("div", le, [
99
+ a.value > -1 ? (y(), U(V, {
100
+ key: 0,
101
+ class: "flex-1",
102
+ variant: "secondary",
103
+ label: "Delete",
104
+ onclick: () => F(a.value)
105
+ }, null, 8, ["onclick"])) : S("", !0),
106
+ p(V, {
107
+ type: "submit",
108
+ class: "flex-1",
109
+ variant: "primary",
110
+ label: "Save"
111
+ })
112
+ ])
113
+ ]),
114
+ _: 1
115
+ }, 512));
116
+ };
117
+ }
118
+ }), re = { class: "flex mt-6 space-x-6" }, ue = /* @__PURE__ */ q({
119
+ __name: "GhlGateway",
120
+ props: {
121
+ terminal: {
122
+ type: Object,
123
+ required: !0
124
+ },
125
+ onUpdate: {
126
+ type: Function,
127
+ required: !0
128
+ }
129
+ },
130
+ setup(f) {
131
+ const m = f, t = P(() => m.terminal), d = w(), n = w(-1), s = w({
132
+ merchantId: "",
133
+ terminalId: "",
134
+ privateKey: ""
135
+ }), c = () => {
136
+ s.value.merchantId = "", s.value.terminalId = "", s.value.privateKey = "", n.value = -1;
137
+ }, a = () => {
138
+ if (!t.value.ecrs)
139
+ return c();
140
+ const i = t.value.ecrs.findIndex((g) => g && g.gateway && g.gateway === "Ghl");
141
+ if (i === -1)
142
+ return c();
143
+ n.value = i;
144
+ const r = t.value.ecrs.at(i);
145
+ r.gateway === "Ghl" && r.config && (s.value = {
146
+ merchantId: r.config.merchantId,
147
+ terminalId: r.config.terminalId,
148
+ privateKey: r.config.privateKey
149
+ });
150
+ };
151
+ Y(t, a), G(a);
152
+ async function l(i) {
153
+ var r;
154
+ (r = t.value.ecrs) == null || r.splice(i, 1), m.onUpdate(t.value);
155
+ }
156
+ return (i, r) => {
157
+ const g = v("FmTextField"), F = v("FmTextarea"), u = v("FmButton"), e = v("FmForm");
158
+ return y(), U(e, {
159
+ ref: d.value,
160
+ class: "flex flex-col gap-16 w-[500px]",
161
+ onValidationSuccess: r[3] || (r[3] = () => {
162
+ n.value > -1 ? t.value.ecrs[n.value] = { gateway: "Ghl", config: s.value } : (t.value.ecrs || (t.value.ecrs = []), t.value.ecrs.push({ gateway: "Ghl", config: s.value })), m.onUpdate(t.value);
163
+ })
164
+ }, {
165
+ default: B(() => [
166
+ p(g, {
167
+ modelValue: s.value.merchantId,
168
+ "onUpdate:modelValue": r[0] || (r[0] = (o) => s.value.merchantId = o),
169
+ label: "Merchant ID"
170
+ }, null, 8, ["modelValue"]),
171
+ p(g, {
172
+ modelValue: s.value.terminalId,
173
+ "onUpdate:modelValue": r[1] || (r[1] = (o) => s.value.terminalId = o),
174
+ label: "Terminal ID"
175
+ }, null, 8, ["modelValue"]),
176
+ p(F, {
177
+ modelValue: s.value.privateKey,
178
+ "onUpdate:modelValue": r[2] || (r[2] = (o) => s.value.privateKey = o),
179
+ label: "Private Key"
180
+ }, null, 8, ["modelValue"]),
181
+ I("div", re, [
182
+ n.value > -1 ? (y(), U(u, {
183
+ key: 0,
184
+ class: "flex-1",
185
+ variant: "secondary",
186
+ label: "Delete",
187
+ onclick: () => l(n.value)
188
+ }, null, 8, ["onclick"])) : S("", !0),
189
+ p(u, {
190
+ type: "submit",
191
+ class: "flex-1",
192
+ variant: "primary",
193
+ label: "Save"
194
+ })
195
+ ])
196
+ ]),
197
+ _: 1
198
+ }, 512);
199
+ };
200
+ }
201
+ }), se = { key: 0 }, ie = { class: "mt-6 space-x-6" }, me = /* @__PURE__ */ q({
202
+ __name: "KioskMode",
203
+ props: {
204
+ terminal: {
205
+ type: Object,
206
+ required: !0
207
+ }
208
+ },
209
+ setup(f) {
210
+ const { isLoading: m, startAsyncCall: t } = $(!1), d = J(), n = w({
211
+ enable: !1,
212
+ password: []
213
+ }), s = f;
214
+ function c() {
215
+ return n.value.enable && n.value.password.filter((a) => !!a).length !== 6 ? d.open({
216
+ type: "error",
217
+ message: "Unlock PIN is required when setting up kiosk mode for terminal."
218
+ }) : t(async () => {
219
+ const a = { enable: n.value.enable };
220
+ a.enable && Object.assign(a, {
221
+ password: n.value.password.join("")
222
+ });
223
+ const l = await N.kioskModeRequest(s.terminal._id, a);
224
+ if (l === "OK")
225
+ return d.open({ type: "info", message: "Kiosk mode applied successfully." });
226
+ let i = l;
227
+ return l === "client_not_connected" && (i = "Terminal not connected to the websocket server."), l.startsWith("terminal: ") && (i = l.replaceAll("terminal: ", "")), d.open({
228
+ type: "error",
229
+ message: i
230
+ });
231
+ });
232
+ }
233
+ return (a, l) => {
234
+ const i = v("FmSwitch"), r = v("FmPinField"), g = v("FmButton");
235
+ return y(), x(D, null, [
236
+ p(i, {
237
+ modelValue: n.value.enable,
238
+ "onUpdate:modelValue": l[0] || (l[0] = (F) => n.value.enable = F),
239
+ label: "Enable Kiosk Mode?"
240
+ }, null, 8, ["modelValue"]),
241
+ n.value.enable ? (y(), x("div", se, [
242
+ l[2] || (l[2] = I("p", { class: "mt-6" }, "Unlock PIN: ", -1)),
243
+ p(r, {
244
+ modelValue: n.value.password,
245
+ "onUpdate:modelValue": l[1] || (l[1] = (F) => n.value.password = F)
246
+ }, null, 8, ["modelValue"])
247
+ ])) : S("", !0),
248
+ I("div", ie, [
249
+ p(g, {
250
+ variant: "primary",
251
+ label: "Send",
252
+ icon: "send",
253
+ loading: T(m),
254
+ onclick: c
255
+ }, null, 8, ["loading"])
256
+ ])
257
+ ], 64);
258
+ };
259
+ }
260
+ }), de = /* @__PURE__ */ q({
261
+ __name: "SettingRequest",
262
+ props: {
263
+ terminal: {
264
+ type: Object,
265
+ required: !0
266
+ }
267
+ },
268
+ setup(f) {
269
+ const { settingTab: m } = H({
270
+ settingTab: "kiosk_mode"
271
+ }), t = [
272
+ {
273
+ label: "Kiosk Mode",
274
+ value: "kiosk_mode",
275
+ render: me
276
+ }
277
+ ], d = f, n = O(() => t.find((s) => s.value === m.value));
278
+ return (s, c) => {
279
+ var l;
280
+ const a = v("FmTabs");
281
+ return y(), x(D, null, [
282
+ c[1] || (c[1] = I("p", { className: "mt-1 my-6 text-gray-600" }, [
283
+ I("b", null, "Note: "),
284
+ M(" Setting request will perform remotely without caching so make sure terminal is connected to the network also to our websocket as well. ")
285
+ ], -1)),
286
+ p(a, {
287
+ "model-value": T(m),
288
+ "onUpdate:modelValue": c[0] || (c[0] = (i) => h(m) ? m.value = i : null),
289
+ class: "mb-6",
290
+ items: t
291
+ }, null, 8, ["model-value"]),
292
+ T(m) ? (y(), U(A((l = n.value) == null ? void 0 : l.render), E(z({ key: 0 }, { terminal: d.terminal })), null, 16)) : S("", !0)
293
+ ], 64);
294
+ };
295
+ }
296
+ }), ce = {
297
+ key: 0,
298
+ class: "text-sm text-gray-500"
299
+ }, pe = { class: "flex mt-6 space-x-6" }, ve = /* @__PURE__ */ q({
300
+ __name: "SoftposGateway",
301
+ props: {
302
+ terminal: {
303
+ type: Object,
304
+ required: !0
305
+ },
306
+ onUpdate: {
307
+ type: Function,
308
+ required: !0
309
+ }
310
+ },
311
+ setup(f) {
312
+ const m = f, t = Q().currentCountry, d = [
313
+ {
314
+ label: "Fiuu Malaysia",
315
+ value: "cc.feedme.payment.rms",
316
+ region: k.F_COUNTRY.enum.MY,
317
+ gateway: "Fiuu",
318
+ isLegacy: !0,
319
+ isOutdated: !0
320
+ },
321
+ {
322
+ label: "Fiuu Malaysia V2",
323
+ value: "cc.feedme.payment.fiuu_my",
324
+ region: k.F_COUNTRY.enum.MY,
325
+ gateway: "Fiuu",
326
+ isLegacy: !0
327
+ },
328
+ {
329
+ label: "Fiuu Singapore",
330
+ value: "cc.feedme.payment.fiuu_sg",
331
+ region: k.F_COUNTRY.enum.SG,
332
+ gateway: "Fiuu",
333
+ isLegacy: !0
334
+ },
335
+ {
336
+ label: "Softspace Malaysia",
337
+ value: "cc.feedme.payment.softspace_my",
338
+ gateway: "Softspace",
339
+ region: k.F_COUNTRY.enum.MY
340
+ },
341
+ {
342
+ label: "Digio Thailand",
343
+ value: "cc.feedme.payment.digio_th",
344
+ gateway: "Digio",
345
+ region: k.F_COUNTRY.enum.TH
346
+ }
347
+ ], n = P(() => m.terminal), s = w(), c = w(-1), a = w({
348
+ packageId: "",
349
+ uniqueId: "",
350
+ developerId: "",
351
+ isUat: !1
352
+ }), l = () => {
353
+ a.value.uniqueId = "", a.value.packageId = "", a.value.developerId = "", c.value = -1;
354
+ }, i = () => {
355
+ if (!n.value.gateways)
356
+ return l();
357
+ const u = n.value.gateways.findIndex((_) => _ && _.gateway && _.gateway === "Softspace");
358
+ if (u === -1)
359
+ return l();
360
+ c.value = u;
361
+ const e = n.value.gateways.at(u);
362
+ if (!e.config)
363
+ return;
364
+ if (e.gateway === "Fiuu") {
365
+ a.value = {
366
+ packageId: e.config.packageId,
367
+ uniqueId: e.config.uniqueId,
368
+ developerId: "",
369
+ isUat: !1
370
+ };
371
+ return;
372
+ }
373
+ const o = JSON.parse(e.config.uniqueId);
374
+ a.value = {
375
+ packageId: e.config.packageId,
376
+ uniqueId: o.uniqueId,
377
+ developerId: o.developerId,
378
+ isUat: o.isUat
379
+ };
380
+ };
381
+ Y(n, i), G(i);
382
+ async function r(u) {
383
+ var e;
384
+ (e = n.value.gateways) == null || e.splice(u, 1), m.onUpdate(n.value);
385
+ }
386
+ const g = O(() => d.filter((u) => u.region === t.value)), F = O(() => g.value.find((u) => u.value === a.value.packageId));
387
+ return (u, e) => {
388
+ const o = v("FmSelect"), _ = v("FmTextField"), V = v("FmCheckbox"), C = v("FmButton"), K = v("FmForm");
389
+ return y(), U(K, {
390
+ ref: s.value,
391
+ class: "flex flex-col gap-16 w-[500px]",
392
+ onValidationSuccess: e[5] || (e[5] = () => {
393
+ const b = F.value;
394
+ if (!b)
395
+ return;
396
+ let L = a.value.uniqueId;
397
+ b.isLegacy || (L = JSON.stringify({ uniqueId: a.value.uniqueId, developerId: a.value.developerId, isUat: a.value.isUat }));
398
+ const j = {
399
+ gateway: b.gateway,
400
+ config: {
401
+ packageId: b.value,
402
+ uniqueId: L
403
+ }
404
+ };
405
+ c.value > -1 ? n.value.gateways[c.value] = j : (n.value.gateways || (n.value.gateways = []), n.value.gateways.push(j)), m.onUpdate(n.value);
406
+ })
407
+ }, {
408
+ default: B(() => [
409
+ p(o, {
410
+ modelValue: a.value.packageId,
411
+ "onUpdate:modelValue": e[0] || (e[0] = (b) => a.value.packageId = b),
412
+ label: "Package ID",
413
+ items: g.value
414
+ }, null, 8, ["modelValue", "items"]),
415
+ F.value && F.value.isLegacy ? (y(), x(D, { key: 0 }, [
416
+ p(_, {
417
+ modelValue: a.value.uniqueId,
418
+ "onUpdate:modelValue": e[1] || (e[1] = (b) => a.value.uniqueId = b),
419
+ label: "Unique ID (TID)"
420
+ }, null, 8, ["modelValue"]),
421
+ F.value.isOutdated ? (y(), x("span", ce, " Note: For outdated gateway is no longer continued development, please use the new gateway instead. ")) : S("", !0)
422
+ ], 64)) : (y(), x(D, { key: 1 }, [
423
+ p(_, {
424
+ modelValue: a.value.developerId,
425
+ "onUpdate:modelValue": e[2] || (e[2] = (b) => a.value.developerId = b),
426
+ label: "Developer ID (MID)"
427
+ }, null, 8, ["modelValue"]),
428
+ p(_, {
429
+ modelValue: a.value.uniqueId,
430
+ "onUpdate:modelValue": e[3] || (e[3] = (b) => a.value.uniqueId = b),
431
+ label: "Unique ID (TID)"
432
+ }, null, 8, ["modelValue"]),
433
+ p(V, {
434
+ modelValue: a.value.isUat,
435
+ "onUpdate:modelValue": e[4] || (e[4] = (b) => a.value.isUat = b),
436
+ label: "Is UAT (Test)",
437
+ value: "1"
438
+ }, null, 8, ["modelValue"])
439
+ ], 64)),
440
+ I("div", pe, [
441
+ c.value > -1 ? (y(), U(C, {
442
+ key: 0,
443
+ class: "flex-1",
444
+ variant: "secondary",
445
+ label: "Delete",
446
+ onclick: () => r(c.value)
447
+ }, null, 8, ["onclick"])) : S("", !0),
448
+ p(C, {
449
+ type: "submit",
450
+ class: "flex-1",
451
+ variant: "primary",
452
+ label: "Save"
453
+ })
454
+ ])
455
+ ]),
456
+ _: 1
457
+ }, 512);
458
+ };
459
+ }
460
+ }), Ue = /* @__PURE__ */ q({
461
+ __name: "TerminalSetting",
462
+ props: {
463
+ terminalId: {
464
+ type: String,
465
+ required: !0
466
+ }
467
+ },
468
+ setup(f) {
469
+ const m = f, { tab: t } = H({
470
+ tab: "information"
471
+ }), { isLoading: d, startAsyncCall: n } = $(!0), s = W(), c = J(), a = w();
472
+ async function l(e) {
473
+ n(async () => {
474
+ try {
475
+ await N.updateById(
476
+ m.terminalId,
477
+ {
478
+ name: e.name,
479
+ status: e.status,
480
+ ecrs: e.ecrs ?? [],
481
+ gateways: e.gateways ?? []
482
+ }
483
+ ), a.value = await N.readById(m.terminalId), c.open({
484
+ type: "success",
485
+ message: "Terminal updated successfully"
486
+ });
487
+ } catch (o) {
488
+ c.open({
489
+ type: "error",
490
+ title: "Error occurs when update terminal",
491
+ message: Z(o)
492
+ });
493
+ }
494
+ });
495
+ }
496
+ const i = [
497
+ {
498
+ label: "Information",
499
+ value: "information",
500
+ icon: "overview",
501
+ render: te
502
+ },
503
+ {
504
+ label: "Setting Request",
505
+ value: "settings",
506
+ icon: "settings",
507
+ render: de,
508
+ onlyFor: ["TERMINAL"]
509
+ },
510
+ {
511
+ label: "SoftPos Gateway",
512
+ value: "softpos",
513
+ icon: "payment",
514
+ render: ve,
515
+ region: [k.F_COUNTRY.enum.MY, k.F_COUNTRY.enum.SG, k.F_COUNTRY.enum.TH]
516
+ },
517
+ {
518
+ label: "FeedMe Terminal",
519
+ value: "terminal",
520
+ icon: "shopping_cart_checkout",
521
+ render: oe,
522
+ onlyFor: ["POS", "KIOSK"]
523
+ },
524
+ {
525
+ label: "GHL Terminal (V2)",
526
+ value: "ghl",
527
+ icon: "shopping_cart_checkout",
528
+ render: ue,
529
+ onlyFor: ["POS", "KIOSK"],
530
+ region: [k.F_COUNTRY.enum.MY]
531
+ }
532
+ ], r = Q().currentCountry, g = O(() => {
533
+ var e;
534
+ return (e = i.find((o) => o.value === t.value)) == null ? void 0 : e.render;
535
+ });
536
+ async function F() {
537
+ n(async () => {
538
+ a.value = await N.readById(m.terminalId);
539
+ });
540
+ }
541
+ const u = O(() => i.filter((e) => {
542
+ var o;
543
+ return !e.onlyFor || e.onlyFor.includes(((o = a.value) == null ? void 0 : o.deviceType) ?? "");
544
+ }).filter((e) => !e.region || e.region.includes(r.value ?? k.F_COUNTRY.enum.MY)));
545
+ return G(F), (e, o) => {
546
+ var V;
547
+ const _ = v("FmTabs");
548
+ return y(), U(X, {
549
+ title: `Terminal (${(V = a.value) == null ? void 0 : V._id})`,
550
+ loading: T(d),
551
+ onBack: T(s).back
552
+ }, {
553
+ default: B(() => [
554
+ p(_, {
555
+ "model-value": T(t),
556
+ "onUpdate:modelValue": o[0] || (o[0] = (C) => h(t) ? t.value = C : null),
557
+ class: "mb-6",
558
+ items: u.value
559
+ }, null, 8, ["model-value", "items"]),
560
+ T(t) ? (y(), U(A(g.value), E(z({ key: 0 }, {
561
+ terminal: a.value,
562
+ onUpdate: l
563
+ })), null, 16)) : S("", !0)
564
+ ]),
565
+ _: 1
566
+ }, 8, ["title", "loading", "onBack"]);
567
+ };
568
+ }
569
+ });
570
+ export {
571
+ Ue as default
572
+ };
@@ -1,17 +1,17 @@
1
1
  import { defineComponent as B, ref as g, watch as E, computed as I, onMounted as J, resolveComponent as b, openBlock as v, createElementBlock as P, Fragment as Y, unref as t, createBlock as N, createCommentVNode as O, withCtx as T, createVNode as i, renderList as k, createElementVNode as V, isRef as y } from "vue";
2
- import { t as L, b as G } from "./assets-wSUxHhv6.js";
3
- import { u as K } from "./index-C3OElkUY.js";
4
- import { _ as Q } from "./TransactionTable.vue_vue_type_script_setup_true_lang-jF4UYhQi.js";
2
+ import { t as L, b as G } from "./assets-BqjaEXmB.js";
3
+ import { u as K } from "./index-1q4ZbRix.js";
4
+ import { _ as Q } from "./TransactionTable.vue_vue_type_script_setup_true_lang-B_By7BvK.js";
5
5
  import { h as $ } from "./moment-h96o7c8I.js";
6
6
  import { useI18n as j, useCoreStore as q } from "@feedmepos/mf-common";
7
7
  import { _ as H } from "./Layout.vue_vue_type_script_setup_true_lang-DJm5br5a.js";
8
- import { u as W } from "./index-C_3jgmep.js";
8
+ import { u as W } from "./index-C3fxBVdz.js";
9
9
  import { _ as X } from "./AsyncButton.vue_vue_type_script_setup_true_lang-DcjzvYwT.js";
10
10
  import { _ as Z } from "./SelectAll.vue_vue_type_script_setup_true_lang-DA4rs3tk.js";
11
11
  import { _ as ee } from "./DateRangePicker.vue_vue_type_script_setup_true_lang-dP_5WjEJ.js";
12
- import { p as te } from "./index-Bj2Rs1vj.js";
13
- import { t as ae } from "./index-CiIXIJ1u.js";
14
- import { _ as C } from "./index-JkEYKC8p.js";
12
+ import { p as te } from "./index-CyMElhGL.js";
13
+ import { t as ae } from "./index-CZrwq9oF.js";
14
+ import { _ as C } from "./index-CN50SqVG.js";
15
15
  const ne = /* @__PURE__ */ B({
16
16
  __name: "SourceSelector",
17
17
  props: {
@@ -1,16 +1,16 @@
1
1
  import { defineComponent as b, resolveComponent as h, openBlock as m, createBlock as F, normalizeClass as C, withCtx as A, createElementVNode as _, toDisplayString as V, createElementBlock as S, unref as d, createVNode as p, Fragment as Y, renderList as O, ref as P, watch as I, isRef as N, h as y } from "vue";
2
- import { g as U, a as B, t as g, b as G, c as k } from "./assets-wSUxHhv6.js";
2
+ import { g as U, a as B, t as g, b as G, c as k } from "./assets-BqjaEXmB.js";
3
3
  import { h as w } from "./moment-h96o7c8I.js";
4
- import { u as L } from "./index-C_3jgmep.js";
4
+ import { u as L } from "./index-C3fxBVdz.js";
5
5
  import { _ as j } from "./AdminLayout.vue_vue_type_script_setup_true_lang-BTmMOzwx.js";
6
6
  import { _ as Q } from "./AsyncButton.vue_vue_type_script_setup_true_lang-DcjzvYwT.js";
7
7
  import { useSnackbar as z, useDialog as H } from "@feedmepos/ui-library";
8
8
  import { w as q } from "./Modal-DB8M9o1T.js";
9
9
  import { u as D } from "./error-K1CakhA9.js";
10
10
  import { _ as J } from "./DateRangePicker.vue_vue_type_script_setup_true_lang-dP_5WjEJ.js";
11
- import { g as W } from "./grafana-kQY3riiN.js";
12
- import { _ as X } from "./index.vue_vue_type_script_setup_true_lang-C1ogwxl8.js";
13
- import { e as x } from "./index-C3OElkUY.js";
11
+ import { g as W } from "./grafana-Bwx9Kj61.js";
12
+ import { _ as X } from "./index.vue_vue_type_script_setup_true_lang-DT8A92zR.js";
13
+ import { e as x } from "./index-1q4ZbRix.js";
14
14
  import { _ as Z } from "./AutoCopyCell.vue_vue_type_script_setup_true_lang-CdmfrBoW.js";
15
15
  import { useCoreStore as ee } from "@feedmepos/mf-common";
16
16
  const te = /* @__PURE__ */ b({
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as T, ref as y, onMounted as Y, watch as f, resolveComponent as V, openBlock as C, createBlock as M, unref as t, withCtx as O, createElementVNode as u, createVNode as i, isRef as h } from "vue";
2
- import { t as g, b as S } from "./assets-wSUxHhv6.js";
3
- import { u as $ } from "./index-C3OElkUY.js";
4
- import { _ as N } from "./TransactionTable.vue_vue_type_script_setup_true_lang-jF4UYhQi.js";
2
+ import { t as g, b as S } from "./assets-BqjaEXmB.js";
3
+ import { u as $ } from "./index-1q4ZbRix.js";
4
+ import { _ as N } from "./TransactionTable.vue_vue_type_script_setup_true_lang-B_By7BvK.js";
5
5
  import { h as x } from "./moment-h96o7c8I.js";
6
6
  import { useCoreStore as k, useI18n as E } from "@feedmepos/mf-common";
7
7
  import { _ as L } from "./Layout.vue_vue_type_script_setup_true_lang-DJm5br5a.js";
8
- import { u as P } from "./index-C_3jgmep.js";
8
+ import { u as P } from "./index-C3fxBVdz.js";
9
9
  import { _ as A } from "./AsyncButton.vue_vue_type_script_setup_true_lang-DcjzvYwT.js";
10
10
  import { _ as B } from "./RestaurantSelector.vue_vue_type_script_setup_true_lang-DyLnqQYe.js";
11
11
  import { _ as F } from "./DateRangePicker.vue_vue_type_script_setup_true_lang-dP_5WjEJ.js";
@@ -1,8 +1,8 @@
1
1
  import { defineComponent as y, resolveComponent as p, openBlock as l, createBlock as _, normalizeClass as D, withCtx as g, createElementVNode as E, toDisplayString as P, createElementBlock as A, unref as S, createVNode as N, Fragment as R, renderList as V, ref as U, h as f } from "vue";
2
2
  import { useSnackbar as B, useDialog as $ } from "@feedmepos/ui-library";
3
- import { g as L, a as G, t as b, c as k } from "./assets-wSUxHhv6.js";
4
- import { e as h } from "./index-C3OElkUY.js";
5
- import { g as O } from "./grafana-kQY3riiN.js";
3
+ import { g as L, a as G, t as b, c as k } from "./assets-BqjaEXmB.js";
4
+ import { e as h } from "./index-1q4ZbRix.js";
5
+ import { g as O } from "./grafana-Bwx9Kj61.js";
6
6
  import { w as x } from "./Modal-DB8M9o1T.js";
7
7
  import { u as T } from "./error-K1CakhA9.js";
8
8
  import { useCoreStore as Y, useI18n as j } from "@feedmepos/mf-common";