@feedmepos/mf-order-setting 0.0.54 → 0.0.56-dev.2

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 (82) hide show
  1. package/.tsbuildinfo +1 -0
  2. package/dist/{KioskDevicesView-CMKNjgWx.js → KioskDevicesView-Qv-xd_kZ.js} +1 -1
  3. package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-B1sNvlUC.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-CCF1mKni.js} +2 -2
  4. package/dist/KioskSettingView-CvvrK6Bv.js +643 -0
  5. package/dist/{KioskView-U-Wg8oMC.js → KioskView-CppTVBv-.js} +117 -117
  6. package/dist/OrderSettingsView-C38N61dM.js +36564 -0
  7. package/dist/{app-CFfgPAd8.js → app-Bss1GkKY.js} +392 -228
  8. package/dist/app.js +1 -1
  9. package/dist/{dayjs.min-CuRr-wlf.js → dayjs.min-DZfxGUk4.js} +1 -1
  10. package/dist/frontend/mf-order/src/api/reservation/index.d.ts +8 -0
  11. package/dist/frontend/mf-order/src/app.d.ts +164 -0
  12. package/dist/frontend/mf-order/src/main.d.ts +164 -0
  13. package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +3 -0
  14. package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +1 -1
  15. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskPaymentTypeSection.vue.d.ts +13 -3
  16. package/dist/frontend/mf-order/src/views/order-settings/delivery/integrated-delivery/ExternalSetting.vue.d.ts +12 -4
  17. package/dist/frontend/mf-order/src/views/order-settings/dine-in/OfflinePaymentTypeDialog.vue.d.ts +4 -4
  18. package/dist/frontend/mf-order/src/views/order-settings/dine-in/PaymentType.vue.d.ts +38 -4
  19. package/dist/frontend/mf-order/src/views/order-settings/pickup/PaymentSidesheet.vue.d.ts +1 -0
  20. package/dist/frontend/mf-order/src/views/order-settings/reservation/CopySettingsSheet.vue.d.ts +186 -0
  21. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomSelect.vue.d.ts +15 -0
  22. package/dist/frontend/mf-order/src/views/order-settings/reservation/CustomTimePicker.vue.d.ts +11 -0
  23. package/dist/frontend/mf-order/src/views/order-settings/reservation/ReservationSetting.vue.d.ts +2 -0
  24. package/dist/{index-Bj0bCGTm.js → index-B6AGCsrw.js} +3 -3
  25. package/dist/index-BpKR-Cxd.js +19757 -0
  26. package/dist/{menu.dto-DAh1J2ES.js → menu.dto-C_B3M2fs.js} +7390 -7134
  27. package/dist/package/entity/incoming-order/incoming-order.do.d.ts +22443 -3
  28. package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +3 -3
  29. package/dist/package/entity/incoming-order/incoming-order.enum.d.ts +1 -1
  30. package/dist/package/entity/index.d.ts +6 -0
  31. package/dist/package/entity/marketing/marketing.dto.d.ts +1 -1
  32. package/dist/package/entity/order/dine-in/qr.dto.d.ts +38 -0
  33. package/dist/package/entity/order/order.do.d.ts +6358 -2
  34. package/dist/package/entity/order/order.dto.d.ts +22 -0
  35. package/dist/package/entity/order-platform/deliveroo/deliveroo-dto.d.ts +3 -0
  36. package/dist/package/entity/order-platform/deliveroo/deliveroo-setting.do.d.ts +3 -0
  37. package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +12 -12
  38. package/dist/package/entity/order-platform/external/order/external-order.dto.d.ts +32 -32
  39. package/dist/package/entity/order-platform/external/setting/external-setting.do.d.ts +21 -3
  40. package/dist/package/entity/order-platform/external/setting/external-setting.dto.d.ts +12 -2
  41. package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.do.d.ts +3 -0
  42. package/dist/package/entity/order-platform/foodpanda/foodpanda-settings.dto.d.ts +3 -0
  43. package/dist/package/entity/order-platform/grabfood/grabfood-edit-order.do.d.ts +9 -1
  44. package/dist/package/entity/order-platform/grabfood/grabfood-settings.do.d.ts +2 -2
  45. package/dist/package/entity/order-platform/grabfood/grabfood.dto.d.ts +3 -3
  46. package/dist/package/entity/order-platform/order-platform.dto.d.ts +2 -2
  47. package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.do.d.ts +3 -0
  48. package/dist/package/entity/order-platform/shopeefood/shopeefood-settings.dto.d.ts +3 -0
  49. package/dist/package/entity/order-setting/order-setting.do.d.ts +864 -0
  50. package/dist/package/entity/order-setting/order-setting.dto.d.ts +6 -0
  51. package/dist/package/entity/order-setting/reservationV2/reservation.do.d.ts +1269 -0
  52. package/dist/package/entity/queue/queue.do.d.ts +3 -8
  53. package/dist/package/entity/queue/queue.dto.d.ts +10 -0
  54. package/dist/package/entity/reservation/reservation.do.d.ts +105 -0
  55. package/dist/package/entity/reservation/reservation.dto.d.ts +335 -0
  56. package/dist/package/entity/reservation/reservation.enum.d.ts +3 -0
  57. package/dist/package/entity/reservation/reservation.utils.d.ts +152 -0
  58. package/dist/style.css +1 -0
  59. package/package.json +1 -1
  60. package/src/api/reservation/index.ts +28 -0
  61. package/src/assets/images/not-found.png +0 -0
  62. package/src/locales/en-US.json +56 -0
  63. package/src/locales/th-TH.json +54 -0
  64. package/src/locales/zh-CN.json +54 -0
  65. package/src/views/kiosk/KioskSummary.vue +3 -0
  66. package/src/views/kiosk/settings/KioskPaymentTypeSection.vue +99 -211
  67. package/src/views/kiosk/settings/KioskSettingView.vue +43 -25
  68. package/src/views/order-settings/OrderSettingsView.vue +6 -1
  69. package/src/views/order-settings/dine-in/DineInSetting.vue +1 -0
  70. package/src/views/order-settings/dine-in/OfflinePaymentTypeDialog.vue +2 -3
  71. package/src/views/order-settings/dine-in/PaymentType.vue +151 -43
  72. package/src/views/order-settings/pickup/PaymentSidesheet.vue +33 -172
  73. package/src/views/order-settings/pickup/PickUpSettingDialogContent.vue +1 -0
  74. package/src/views/order-settings/reservation/CopySettingsSheet.vue +256 -0
  75. package/src/views/order-settings/reservation/CustomSelect.vue +99 -0
  76. package/src/views/order-settings/reservation/CustomTimePicker.vue +311 -0
  77. package/src/views/order-settings/reservation/ReservationSetting.vue +1555 -0
  78. package/tsconfig.app.json +8 -6
  79. package/dist/KioskSettingView-BE_pMA-i.js +0 -720
  80. package/dist/OrderSettingsView-BWzaITT6.js +0 -51916
  81. package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +0 -1
  82. package/dist/index-BXsnV_eO.js +0 -150
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./KioskDevicesView.vue_vue_type_script_setup_true_lang-B1sNvlUC.js";
1
+ import { _ as f } from "./KioskDevicesView.vue_vue_type_script_setup_true_lang-CCF1mKni.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,9 +1,9 @@
1
1
  import { ref as C, defineComponent as G, resolveComponent as F, createElementBlock as b, openBlock as u, createElementVNode as e, createVNode as v, toDisplayString as a, unref as _, computed as $, createCommentVNode as D, withCtx as q, Fragment as W, renderList as H, createBlock as z, createTextVNode as U } from "vue";
2
2
  import { useI18n as Q } from "@feedmepos/mf-common";
3
3
  import { defineStore as se } from "pinia";
4
- import { r as Y, g as Z, c as ie, d as ae } from "./menu.dto-DAh1J2ES.js";
4
+ import { r as Y, g as Z, c as ie, d as ae } from "./menu.dto-C_B3M2fs.js";
5
5
  import { useDialog as le, useSnackbar as re } from "@feedmepos/ui-library";
6
- import { d as R } from "./dayjs.min-CuRr-wlf.js";
6
+ import { d as R } from "./dayjs.min-DZfxGUk4.js";
7
7
  async function ce() {
8
8
  const o = await Y().get("/kiosk/otp");
9
9
  return Z(o);
@@ -0,0 +1,643 @@
1
+ import { defineComponent as ae, computed as A, ref as D, onMounted as ie, resolveComponent as P, createBlock as K, openBlock as C, withCtx as _, createVNode as s, createElementVNode as r, withDirectives as F, unref as t, vShow as R, createElementBlock as j, toDisplayString as b } from "vue";
2
+ import { F as H, e as c, f as le, S as te } from "./menu.dto-C_B3M2fs.js";
3
+ import { _ as de, u as ue, a as me } from "./index-BpKR-Cxd.js";
4
+ import { useI18n as ne } from "@feedmepos/mf-common";
5
+ import { useSnackbar as pe } from "@feedmepos/ui-library";
6
+ import { g as oe, s as re, a as ce, r as Z, u as J, b as ye } from "./app-Bss1GkKY.js";
7
+ const fe = { class: "ml-7" }, ve = { class: "ml-7" }, be = { class: "flex flex-row gap-9" }, ge = /* @__PURE__ */ ae({
8
+ __name: "KioskPaymentTypeSection",
9
+ props: {
10
+ paymentTypes: {
11
+ type: Array,
12
+ required: !0
13
+ },
14
+ offlinePaymentTypes: {
15
+ type: Array,
16
+ required: !0
17
+ },
18
+ allowEPayment: {
19
+ type: [Boolean, String],
20
+ required: !0
21
+ },
22
+ allowCredit: {
23
+ type: [Boolean, String],
24
+ default: !1
25
+ },
26
+ ePaymentTypes: {
27
+ type: Object,
28
+ required: !0
29
+ }
30
+ },
31
+ emits: ["update:paymentTypes", "update:offlinePaymentTypes", "update:ePaymentTypes"],
32
+ setup(d, { emit: u }) {
33
+ const { t: a } = ne(), y = d, g = u, I = A(() => (y.paymentTypes || []).includes(H.enum.ePayment)), l = D(), m = D([]), V = D(!1), h = D(!1), k = D(!1), L = () => {
34
+ Object.keys(y.ePaymentTypes).length !== 0 && (y.ePaymentTypes.terminal && (h.value = !0), y.ePaymentTypes.card.terminal ? (l.value = c.enum.TERMINAL, V.value = !0) : y.ePaymentTypes.card.nfc && (l.value = c.enum.NFC, V.value = !0), y.ePaymentTypes.eWallet.qrPay && (m.value.push(c.enum.QRPAY), k.value = !0), y.ePaymentTypes.eWallet.scanPay && (m.value.push(c.enum.SCANPAY), k.value = !0));
35
+ };
36
+ L();
37
+ const M = (p) => {
38
+ const i = {
39
+ terminal: !1,
40
+ card: {
41
+ terminal: !1,
42
+ nfc: !1
43
+ },
44
+ eWallet: {
45
+ qrPay: !1,
46
+ scanPay: !1
47
+ }
48
+ };
49
+ I.value && (p == c.enum.TERMINAL && (i.card.terminal = !0), p == c.enum.NFC && (i.card.nfc = !0), m.value.length > 0 && (m.value.includes(c.enum.QRPAY) && (i.eWallet.qrPay = !0), m.value.includes(c.enum.SCANPAY) && (i.eWallet.scanPay = !0))), h.value && (i.terminal = !0), g("update:ePaymentTypes", i);
50
+ }, S = () => {
51
+ const p = {
52
+ terminal: !1,
53
+ card: {
54
+ terminal: !1,
55
+ nfc: !1
56
+ },
57
+ eWallet: {
58
+ qrPay: !1,
59
+ scanPay: !1,
60
+ terminalScanPay: !1,
61
+ terminalQrPay: !1
62
+ }
63
+ };
64
+ I.value && (l.value && (l.value === c.enum.TERMINAL && (p.card.terminal = !0), l.value === c.enum.NFC && (p.card.nfc = !0)), h.value && (p.terminal = !0), m.value.includes(c.enum.QRPAY) && (p.eWallet.qrPay = !0), m.value.includes(c.enum.SCANPAY) && (p.eWallet.scanPay = !0), m.value.includes(c.enum.TERMINAL_SCAN_PAY) && (p.eWallet.terminalScanPay = !0), m.value.includes(c.enum.TERMINAL_QR_PAY) && (p.eWallet.terminalQrPay = !0)), g("update:ePaymentTypes", p);
65
+ }, Y = (p) => {
66
+ l.value = "", p && (l.value = c.enum.TERMINAL), S();
67
+ }, q = (p) => {
68
+ m.value = [], p && (m.value = [
69
+ c.enum.QRPAY,
70
+ c.enum.SCANPAY
71
+ ]), S();
72
+ }, Q = (p) => {
73
+ g("update:paymentTypes", p), p.includes(H.enum.ePayment) || (V.value = !1, k.value = !1, Y(!1), q(!1));
74
+ };
75
+ return ie(() => {
76
+ L();
77
+ }), (p, i) => {
78
+ const U = P("FmSwitch"), W = P("FmRadio"), z = P("FmRadioGroup"), E = P("FmCardSection"), $ = P("FmCard"), o = P("FmCheckbox");
79
+ return C(), K(de, {
80
+ "payment-types": d.paymentTypes,
81
+ "offline-payment-types": d.offlinePaymentTypes,
82
+ "allow-e-payment": y.allowEPayment,
83
+ "allow-credit": y.allowCredit,
84
+ "onUpdate:paymentTypes": Q,
85
+ "onUpdate:offlinePaymentTypes": i[8] || (i[8] = (e) => g("update:offlinePaymentTypes", e || []))
86
+ }, {
87
+ "e-payment-content": _(() => [
88
+ s($, { variant: "outlined" }, {
89
+ default: _(() => [
90
+ s(E, null, {
91
+ default: _(() => [
92
+ s(U, {
93
+ label: t(a)("order.bankCard"),
94
+ sublabel: t(a)("order.cardPaymentDescription"),
95
+ "label-placement": "right",
96
+ modelValue: V.value,
97
+ "onUpdate:modelValue": [
98
+ i[0] || (i[0] = (e) => V.value = e),
99
+ Y
100
+ ]
101
+ }, null, 8, ["label", "sublabel", "modelValue"]),
102
+ i[9] || (i[9] = r("br", null, null, -1)),
103
+ F(r("div", fe, [
104
+ s(z, {
105
+ modelValue: l.value,
106
+ "onUpdate:modelValue": [
107
+ i[1] || (i[1] = (e) => l.value = e),
108
+ M
109
+ ],
110
+ inline: ""
111
+ }, {
112
+ default: _(() => [
113
+ s(W, {
114
+ label: t(a)("order.terminal"),
115
+ value: t(c).enum.TERMINAL
116
+ }, null, 8, ["label", "value"]),
117
+ s(W, {
118
+ label: t(a)("order.nfc"),
119
+ value: t(c).enum.NFC
120
+ }, null, 8, ["label", "value"])
121
+ ]),
122
+ _: 1
123
+ }, 8, ["modelValue"])
124
+ ], 512), [
125
+ [R, V.value]
126
+ ])
127
+ ]),
128
+ _: 1
129
+ })
130
+ ]),
131
+ _: 1
132
+ }),
133
+ s($, {
134
+ variant: "outlined",
135
+ class: "mt-2"
136
+ }, {
137
+ default: _(() => [
138
+ s(E, null, {
139
+ default: _(() => [
140
+ s(U, {
141
+ label: t(a)("order.terminal"),
142
+ sublabel: t(a)("order.terminalPaymentDescription"),
143
+ "label-placement": "right",
144
+ modelValue: h.value,
145
+ "onUpdate:modelValue": [
146
+ i[2] || (i[2] = (e) => h.value = e),
147
+ S
148
+ ]
149
+ }, null, 8, ["label", "sublabel", "modelValue"])
150
+ ]),
151
+ _: 1
152
+ })
153
+ ]),
154
+ _: 1
155
+ }),
156
+ s($, {
157
+ variant: "outlined",
158
+ class: "mt-2"
159
+ }, {
160
+ default: _(() => [
161
+ s(E, null, {
162
+ default: _(() => [
163
+ s(U, {
164
+ label: t(a)("order.eWallet"),
165
+ sublabel: t(a)("order.eWalletDescription"),
166
+ "label-placement": "right",
167
+ modelValue: k.value,
168
+ "onUpdate:modelValue": [
169
+ i[3] || (i[3] = (e) => k.value = e),
170
+ q
171
+ ]
172
+ }, null, 8, ["label", "sublabel", "modelValue"]),
173
+ i[10] || (i[10] = r("br", null, null, -1)),
174
+ F(r("div", ve, [
175
+ r("div", be, [
176
+ s(o, {
177
+ modelValue: m.value,
178
+ "onUpdate:modelValue": [
179
+ i[4] || (i[4] = (e) => m.value = e),
180
+ S
181
+ ],
182
+ label: t(a)("order.qrPay"),
183
+ value: t(c).enum.QRPAY
184
+ }, null, 8, ["modelValue", "label", "value"]),
185
+ s(o, {
186
+ modelValue: m.value,
187
+ "onUpdate:modelValue": [
188
+ i[5] || (i[5] = (e) => m.value = e),
189
+ S
190
+ ],
191
+ label: t(a)("order.scanPay"),
192
+ value: t(c).enum.SCANPAY
193
+ }, null, 8, ["modelValue", "label", "value"]),
194
+ s(o, {
195
+ modelValue: m.value,
196
+ "onUpdate:modelValue": [
197
+ i[6] || (i[6] = (e) => m.value = e),
198
+ S
199
+ ],
200
+ label: t(a)("order.terminalScanPay"),
201
+ value: t(c).enum.TERMINAL_SCAN_PAY
202
+ }, null, 8, ["modelValue", "label", "value"]),
203
+ s(o, {
204
+ modelValue: m.value,
205
+ "onUpdate:modelValue": [
206
+ i[7] || (i[7] = (e) => m.value = e),
207
+ S
208
+ ],
209
+ label: t(a)("order.terminalQrPay"),
210
+ value: t(c).enum.TERMINAL_QR_PAY
211
+ }, null, 8, ["modelValue", "label", "value"])
212
+ ])
213
+ ], 512), [
214
+ [R, k.value]
215
+ ])
216
+ ]),
217
+ _: 1
218
+ })
219
+ ]),
220
+ _: 1
221
+ })
222
+ ]),
223
+ _: 1
224
+ }, 8, ["payment-types", "offline-payment-types", "allow-e-payment", "allow-credit"]);
225
+ };
226
+ }
227
+ });
228
+ async function Ie(d) {
229
+ return (await le({
230
+ customIdToken: d
231
+ }).post("/token", { token: d })).data;
232
+ }
233
+ async function Pe(d) {
234
+ return (await le({
235
+ customIdToken: d
236
+ }).post("/token/idtoken", { customToken: d })).data;
237
+ }
238
+ const se = {
239
+ getCustomToken: Ie,
240
+ getIdToken: Pe
241
+ };
242
+ var Se = { firebase: {} }, we = {};
243
+ let B = null;
244
+ function xe(d) {
245
+ var y;
246
+ const u = (y = d.name.split(".").pop()) == null ? void 0 : y.toLowerCase();
247
+ return u && /^[a-z0-9]+$/.test(u) ? u : {
248
+ "image/jpeg": "jpg",
249
+ "image/png": "png",
250
+ "image/webp": "webp",
251
+ "image/gif": "gif"
252
+ }[d.type] ?? "bin";
253
+ }
254
+ function Ve() {
255
+ var a;
256
+ return (((a = we.firebase) == null ? void 0 : a.storageBucket) ?? Se.firebase.storageBucket ?? "image.feedmedev.cc").replace(/^https?:\/\//, "").replace(/\/+$/, "");
257
+ }
258
+ function ke(d) {
259
+ const u = d.replace(/^\/+/, "");
260
+ return `https://${Ve()}/${u}`;
261
+ }
262
+ async function Te() {
263
+ const d = oe();
264
+ if (!d.currentUser && (await d.authStateReady(), !d.currentUser && (B || (B = (async () => {
265
+ const u = te.getIdToken();
266
+ if (!u)
267
+ throw new Error("Missing session token for Firebase authentication");
268
+ const a = await se.getCustomToken(u);
269
+ await re(d, a);
270
+ })().finally(() => {
271
+ B = null;
272
+ })), await B, !d.currentUser)))
273
+ throw new Error("User not authenticated for image upload");
274
+ }
275
+ async function _e() {
276
+ const d = oe(), u = te.getIdToken();
277
+ if (!u)
278
+ throw new Error("Missing session token for Firebase authentication");
279
+ d.currentUser && await ye(d);
280
+ const a = await se.getCustomToken(u);
281
+ await re(d, a);
282
+ }
283
+ async function he(d, u) {
284
+ const a = ce(), y = Z(a, d);
285
+ try {
286
+ await J(y, u, {
287
+ contentType: u.type || void 0
288
+ });
289
+ return;
290
+ } catch (I) {
291
+ if ((I == null ? void 0 : I.code) !== "storage/unauthorized")
292
+ throw I;
293
+ }
294
+ await _e();
295
+ const g = Z(a, d);
296
+ await J(g, u, {
297
+ contentType: u.type || void 0
298
+ });
299
+ }
300
+ async function Ae(d, u) {
301
+ await Te();
302
+ const a = d.replace(/^\/+/, "").replace(/\/+$/, ""), y = xe(u), g = `${Date.now()}_${Math.random().toString(36).slice(2, 10)}.${y}`, I = `${a}/${g}`;
303
+ return await he(I, u), ke(I);
304
+ }
305
+ const Ce = {
306
+ key: 0,
307
+ class: "flex flex-col gap-32"
308
+ }, Fe = { class: "flex flex-col gap-2" }, Re = { class: "fm-typo-en-title-sm-600" }, Ue = { class: "flex flex-col gap-5" }, Ee = { class: "flex flex-col gap-16" }, Ne = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, Oe = { class: "fm-typo-en-title-sm-600" }, De = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, Me = { class: "fm-typo-en-title-sm-600" }, We = { class: "flex flex-row gap-2" }, $e = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, Le = { class: "fm-typo-en-title-sm-600" }, Ye = { class: "flex flex-col gap-2" }, qe = { class: "fm-typo-en-title-sm-600" }, je = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, Be = { class: "fm-typo-en-title-sm-600" }, Qe = { class: "flex flex-col gap-2" }, ze = { class: "fm-typo-en-title-sm-600" }, Ke = { class: "flex flex-col gap-2" }, He = { class: "fm-typo-en-title-sm-600" }, Ge = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, Xe = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-4 my-5 w-11/12" }, Ze = { class: "fm-typo-en-body-md-600" }, Je = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, ea = {
309
+ key: 1,
310
+ class: "flex flex-col gap-2"
311
+ }, aa = ["src", "alt"], la = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-4 my-5 w-11/12" }, ta = { class: "fm-typo-en-body-md-600" }, na = { class: "fm-typo-en-body-sm-400 text-fm-color-typo-secondary" }, oa = {
312
+ key: 1,
313
+ class: "flex flex-col gap-2"
314
+ }, ra = ["src", "alt"], sa = { class: "flex flex-col gap-2" }, ia = { class: "fm-typo-en-title-sm-600" }, da = { class: "flex flex-col gap-2" }, ua = { key: 1 }, ee = 10 * 1e3 * 1e3, ba = /* @__PURE__ */ ae({
315
+ __name: "KioskSettingView",
316
+ props: {
317
+ restaurantId: {},
318
+ form: {}
319
+ },
320
+ emits: ["updateKioskOrderSetting"],
321
+ setup(d, { emit: u }) {
322
+ const { t: a } = ne(), y = d, g = pe(), I = u, l = D(y.form), m = (o) => o < 0 ? a("order.nonNegativeRule") : !0, V = (o) => o <= (l.value.dineIn.displayStand.standSlotRange.min ?? 0) ? a("order.greaterThanMinRule") : !0, h = A(() => [m]), k = A(() => [m]), L = A(() => [m, V]), M = A(() => {
323
+ var f, v, x, T, N, n, G;
324
+ const o = l.value;
325
+ if (o.dineIn.enabled && o.dineIn.displayStand.enabled) {
326
+ const { padDigit: w, standSlotRange: O } = o.dineIn.displayStand;
327
+ if (!(w != null && w >= 0 && O.min != null && O.max != null && O.min <= O.max)) return null;
328
+ }
329
+ const e = o.paymentSetting;
330
+ if ((f = e == null ? void 0 : e.paymentTypes) != null && f.includes(H.enum.ePayment)) {
331
+ const w = e.ePaymentTypes;
332
+ if (!w) return null;
333
+ const O = ((v = w.card) == null ? void 0 : v.terminal) || ((x = w.card) == null ? void 0 : x.nfc), X = ((T = w.eWallet) == null ? void 0 : T.qrPay) || ((N = w.eWallet) == null ? void 0 : N.scanPay) || ((n = w.eWallet) == null ? void 0 : n.terminalScanPay) || ((G = w.eWallet) == null ? void 0 : G.terminalQrPay);
334
+ if (!O && !X) return null;
335
+ }
336
+ return {
337
+ ...o,
338
+ dineIn: {
339
+ ...o.dineIn,
340
+ displayStand: {
341
+ ...o.dineIn.displayStand,
342
+ enabled: o.dineIn.enabled && o.dineIn.displayStand.enabled,
343
+ padDigit: o.dineIn.displayStand.padDigit ?? 0,
344
+ standSlotRange: {
345
+ min: o.dineIn.displayStand.standSlotRange.min ?? 0,
346
+ max: o.dineIn.displayStand.standSlotRange.max ?? 10
347
+ },
348
+ prefix: o.dineIn.displayStand.prefix ?? ""
349
+ }
350
+ }
351
+ };
352
+ }), { startAsyncCall: S } = ue();
353
+ function Y(o) {
354
+ l.value.paymentSetting.paymentTypes = o;
355
+ }
356
+ function q(o) {
357
+ l.value.paymentSetting.ePaymentTypes = o;
358
+ }
359
+ const Q = me();
360
+ function p(o) {
361
+ l.value[o] = null;
362
+ }
363
+ function i(o) {
364
+ const e = l.value[o];
365
+ if (!e) return null;
366
+ const f = e.trim();
367
+ return f.length > 0 ? f : null;
368
+ }
369
+ async function U(o, e) {
370
+ try {
371
+ const f = await S(async () => {
372
+ const v = `/restaurant/${y.restaurantId}/kiosk/${o}`;
373
+ return await Ae(v, e);
374
+ });
375
+ l.value[o] = f, g.open({
376
+ title: a("order.imageUploadSuccess"),
377
+ type: "success"
378
+ });
379
+ } catch (f) {
380
+ console.error(f), g.open({
381
+ title: a("order.imageUploadFailed"),
382
+ type: "error"
383
+ });
384
+ }
385
+ }
386
+ function W(o, e) {
387
+ var x, T;
388
+ const f = a(o === "coverImageLandscape" ? "order.coverImageLandscape" : "order.coverImagePortrait"), v = (T = (x = e[0]) == null ? void 0 : x.reason) == null ? void 0 : T[0];
389
+ g.open({
390
+ title: v ? `${a("order.imageUploadRejected")}: ${f} (${v})` : `${a("order.imageUploadRejected")}: ${f}`,
391
+ type: "error"
392
+ });
393
+ }
394
+ const z = A(() => Q.getRestaurantEPayment()), E = A({
395
+ get: () => (l.value.dineIn.displayStand.enabled && l.value.dineIn.displayStand.enablePaxDialog || l.value.dineIn.pickUp.enablePaxDialog) ?? !1,
396
+ set: (o) => {
397
+ l.value.dineIn.displayStand.enablePaxDialog = o, l.value.dineIn.pickUp.enablePaxDialog = o;
398
+ }
399
+ });
400
+ async function $() {
401
+ if (M.value) {
402
+ const o = M.value;
403
+ S(async () => {
404
+ await I("updateKioskOrderSetting", o);
405
+ });
406
+ } else
407
+ g.open({
408
+ title: a("order.failedToUpdateSetting"),
409
+ type: "error"
410
+ });
411
+ }
412
+ return (o, e) => {
413
+ const f = P("FmSwitch"), v = P("FmTextField"), x = P("FmStepperField"), T = P("FmDropField"), N = P("FmButton");
414
+ return l.value ? (C(), j("div", Ce, [
415
+ r("div", Fe, [
416
+ r("span", Re, b(t(a)("order.dineIn")), 1),
417
+ r("div", Ue, [
418
+ s(f, {
419
+ modelValue: l.value.dineIn.enabled,
420
+ "onUpdate:modelValue": e[0] || (e[0] = (n) => l.value.dineIn.enabled = n),
421
+ label: t(a)("order.dineIn"),
422
+ "label-placement": "right"
423
+ }, null, 8, ["modelValue", "label"]),
424
+ F(r("div", Ee, [
425
+ r("div", null, [
426
+ s(f, {
427
+ modelValue: l.value.dineIn.pickUp.enabled,
428
+ "onUpdate:modelValue": e[1] || (e[1] = (n) => l.value.dineIn.pickUp.enabled = n),
429
+ label: t(a)("order.pickAtCounter"),
430
+ "label-placement": "right"
431
+ }, null, 8, ["modelValue", "label"]),
432
+ F(r("div", Ne, [
433
+ r("span", Oe, b(t(a)("order.submitOrderInstruction")), 1),
434
+ s(v, {
435
+ modelValue: l.value.dineIn.pickUp.submitOrderInstruction.payAtCounter,
436
+ "onUpdate:modelValue": e[2] || (e[2] = (n) => l.value.dineIn.pickUp.submitOrderInstruction.payAtCounter = n),
437
+ label: t(a)("order.payAtCounter"),
438
+ placeholder: "Collect your transaction slip below and present it to the cashier"
439
+ }, null, 8, ["modelValue", "label"]),
440
+ s(v, {
441
+ modelValue: l.value.dineIn.pickUp.submitOrderInstruction.paid,
442
+ "onUpdate:modelValue": e[3] || (e[3] = (n) => l.value.dineIn.pickUp.submitOrderInstruction.paid = n),
443
+ label: t(a)("order.paid"),
444
+ placeholder: "Please wait as we prepare your food. We'll call your number when it's ready."
445
+ }, null, 8, ["modelValue", "label"])
446
+ ], 512), [
447
+ [R, l.value.dineIn.pickUp.enabled]
448
+ ])
449
+ ]),
450
+ r("div", null, [
451
+ s(f, {
452
+ modelValue: l.value.dineIn.displayStand.enabled,
453
+ "onUpdate:modelValue": e[4] || (e[4] = (n) => l.value.dineIn.displayStand.enabled = n),
454
+ label: t(a)("order.displayStand"),
455
+ "label-placement": "right"
456
+ }, null, 8, ["modelValue", "label"]),
457
+ F(r("div", De, [
458
+ r("span", Me, b(t(a)("order.tableServiceSetting")), 1),
459
+ s(v, {
460
+ modelValue: l.value.dineIn.displayStand.prefix,
461
+ "onUpdate:modelValue": e[5] || (e[5] = (n) => l.value.dineIn.displayStand.prefix = n),
462
+ label: t(a)("order.prefix"),
463
+ placeholder: t(a)("order.prefix")
464
+ }, null, 8, ["modelValue", "label", "placeholder"]),
465
+ r("div", We, [
466
+ s(x, {
467
+ modelValue: l.value.dineIn.displayStand.standSlotRange.min,
468
+ "onUpdate:modelValue": e[6] || (e[6] = (n) => l.value.dineIn.displayStand.standSlotRange.min = n),
469
+ class: "w-1/2",
470
+ label: t(a)("order.start"),
471
+ labelMark: "required",
472
+ rules: k.value,
473
+ placeholder: t(a)("order.enterANumber")
474
+ }, null, 8, ["modelValue", "label", "rules", "placeholder"]),
475
+ s(x, {
476
+ modelValue: l.value.dineIn.displayStand.standSlotRange.max,
477
+ "onUpdate:modelValue": e[7] || (e[7] = (n) => l.value.dineIn.displayStand.standSlotRange.max = n),
478
+ class: "w-1/2",
479
+ label: t(a)("order.end"),
480
+ labelMark: "required",
481
+ rules: L.value,
482
+ placeholder: t(a)("order.enterANumber")
483
+ }, null, 8, ["modelValue", "label", "rules", "placeholder"])
484
+ ]),
485
+ s(x, {
486
+ modelValue: l.value.dineIn.displayStand.padDigit,
487
+ "onUpdate:modelValue": e[8] || (e[8] = (n) => l.value.dineIn.displayStand.padDigit = n),
488
+ label: t(a)("order.padDigit"),
489
+ labelMark: "required",
490
+ rules: h.value,
491
+ placeholder: t(a)("order.padDigit")
492
+ }, null, 8, ["modelValue", "label", "rules", "placeholder"])
493
+ ], 512), [
494
+ [R, l.value.dineIn.displayStand.enabled]
495
+ ]),
496
+ F(r("div", $e, [
497
+ r("span", Le, b(t(a)("order.submitOrderInstruction")), 1),
498
+ s(v, {
499
+ modelValue: l.value.dineIn.displayStand.submitOrderInstruction.payAtCounter,
500
+ "onUpdate:modelValue": e[9] || (e[9] = (n) => l.value.dineIn.displayStand.submitOrderInstruction.payAtCounter = n),
501
+ label: t(a)("order.payAtCounter"),
502
+ placeholder: "Collect your transaction slip below and present it to the cashier"
503
+ }, null, 8, ["modelValue", "label"]),
504
+ s(v, {
505
+ modelValue: l.value.dineIn.displayStand.submitOrderInstruction.paid,
506
+ "onUpdate:modelValue": e[10] || (e[10] = (n) => l.value.dineIn.displayStand.submitOrderInstruction.paid = n),
507
+ label: t(a)("order.paid"),
508
+ placeholder: "Please collect your receipt and we'll bring your food to your table once it's ready."
509
+ }, null, 8, ["modelValue", "label"])
510
+ ], 512), [
511
+ [R, l.value.dineIn.displayStand.enabled]
512
+ ])
513
+ ])
514
+ ], 512), [
515
+ [R, l.value.dineIn.enabled]
516
+ ])
517
+ ])
518
+ ]),
519
+ r("div", Ye, [
520
+ r("span", qe, b(t(a)("order.takeawayTitle")), 1),
521
+ s(f, {
522
+ modelValue: l.value.takeaway.enabled,
523
+ "onUpdate:modelValue": e[11] || (e[11] = (n) => l.value.takeaway.enabled = n),
524
+ label: t(a)("order.takeaway"),
525
+ "label-placement": "right",
526
+ class: "mb-5"
527
+ }, null, 8, ["modelValue", "label"]),
528
+ F(r("div", je, [
529
+ r("span", Be, b(t(a)("order.submitOrderInstruction")), 1),
530
+ s(v, {
531
+ modelValue: l.value.takeaway.submitOrderInstruction.payAtCounter,
532
+ "onUpdate:modelValue": e[12] || (e[12] = (n) => l.value.takeaway.submitOrderInstruction.payAtCounter = n),
533
+ label: t(a)("order.payAtCounter"),
534
+ placeholder: "Collect your transaction slip below and present it to the cashier"
535
+ }, null, 8, ["modelValue", "label"]),
536
+ s(v, {
537
+ modelValue: l.value.takeaway.submitOrderInstruction.paid,
538
+ "onUpdate:modelValue": e[13] || (e[13] = (n) => l.value.takeaway.submitOrderInstruction.paid = n),
539
+ label: t(a)("order.paid"),
540
+ placeholder: "Please wait as we prepare your food. We'll call your number when it's ready."
541
+ }, null, 8, ["modelValue", "label"])
542
+ ], 512), [
543
+ [R, l.value.takeaway.enabled]
544
+ ])
545
+ ]),
546
+ r("div", Qe, [
547
+ r("span", ze, b(t(a)("order.menuItem")), 1),
548
+ s(f, {
549
+ modelValue: l.value.menuItem.showAllOnly,
550
+ "onUpdate:modelValue": e[14] || (e[14] = (n) => l.value.menuItem.showAllOnly = n),
551
+ label: t(a)("order.showNotAvailableMenuItem"),
552
+ "label-placement": "right",
553
+ class: "mb-5"
554
+ }, null, 8, ["modelValue", "label"])
555
+ ]),
556
+ r("div", Ke, [
557
+ r("span", He, b(t(a)("order.coverImage")), 1),
558
+ r("span", Ge, b(t(a)("order.coverImageFallbackHint")), 1),
559
+ r("div", Xe, [
560
+ r("span", Ze, b(t(a)("order.coverImageLandscape")), 1),
561
+ r("span", Je, b(t(a)("order.coverImageLandscapeHint")), 1),
562
+ i("coverImageLandscape") ? (C(), j("div", ea, [
563
+ r("img", {
564
+ src: i("coverImageLandscape"),
565
+ alt: t(a)("order.coverImageLandscape"),
566
+ class: "max-w-[400px] aspect-video object-cover rounded-md border border-fm-color-neutral-gray-200"
567
+ }, null, 8, aa),
568
+ s(N, {
569
+ variant: "tertiary",
570
+ class: "mr-auto",
571
+ label: t(a)("common.delete"),
572
+ onClick: e[17] || (e[17] = (n) => p("coverImageLandscape"))
573
+ }, null, 8, ["label"])
574
+ ])) : (C(), K(T, {
575
+ key: 0,
576
+ accept: "image/*",
577
+ "max-file-size": ee,
578
+ "content-class": "w-full max-w-[400px] aspect-video",
579
+ onFileUpload: e[15] || (e[15] = (n) => U("coverImageLandscape", n)),
580
+ onFileRejected: e[16] || (e[16] = (n) => W("coverImageLandscape", n))
581
+ }))
582
+ ]),
583
+ r("div", la, [
584
+ r("span", ta, b(t(a)("order.coverImagePortrait")), 1),
585
+ r("span", na, b(t(a)("order.coverImagePortraitHint")), 1),
586
+ i("coverImagePortrait") ? (C(), j("div", oa, [
587
+ r("img", {
588
+ src: i("coverImagePortrait"),
589
+ alt: t(a)("order.coverImagePortrait"),
590
+ class: "max-w-[200px] aspect-[9/16] object-cover rounded-md border border-fm-color-neutral-gray-200"
591
+ }, null, 8, ra),
592
+ s(N, {
593
+ variant: "tertiary",
594
+ class: "mr-auto",
595
+ label: t(a)("common.delete"),
596
+ onClick: e[20] || (e[20] = (n) => p("coverImagePortrait"))
597
+ }, null, 8, ["label"])
598
+ ])) : (C(), K(T, {
599
+ key: 0,
600
+ accept: "image/*",
601
+ "max-file-size": ee,
602
+ "content-class": "w-[240px] aspect-[9/16]",
603
+ onFileUpload: e[18] || (e[18] = (n) => U("coverImagePortrait", n)),
604
+ onFileRejected: e[19] || (e[19] = (n) => W("coverImagePortrait", n))
605
+ }))
606
+ ])
607
+ ]),
608
+ r("div", sa, [
609
+ r("span", ia, b(t(a)("order.displayPaxDialogTitle")), 1),
610
+ s(f, {
611
+ modelValue: E.value,
612
+ "onUpdate:modelValue": e[21] || (e[21] = (n) => E.value = n),
613
+ label: t(a)("order.displayPaxDialogDescription"),
614
+ "label-placement": "right",
615
+ class: "mb-5"
616
+ }, null, 8, ["modelValue", "label"])
617
+ ]),
618
+ r("div", da, [
619
+ s(ge, {
620
+ "payment-types": l.value.paymentSetting.paymentTypes ?? [],
621
+ "allow-credit": !0,
622
+ "allow-e-payment": z.value,
623
+ "offline-payment-types": l.value.paymentSetting.offlinePaymentTypes ?? [],
624
+ ePaymentTypes: l.value.paymentSetting.ePaymentTypes ?? {},
625
+ "onUpdate:paymentTypes": Y,
626
+ "onUpdate:offlinePaymentTypes": e[22] || (e[22] = (n) => l.value.paymentSetting.offlinePaymentTypes = n),
627
+ "onUpdate:ePaymentTypes": q
628
+ }, null, 8, ["payment-types", "allow-e-payment", "offline-payment-types", "ePaymentTypes"])
629
+ ]),
630
+ s(N, {
631
+ class: "w-1/4 mb-10",
632
+ variant: "primary",
633
+ label: t(a)("order.updateSetting"),
634
+ disabled: !M.value,
635
+ onClick: $
636
+ }, null, 8, ["label", "disabled"])
637
+ ])) : (C(), j("div", ua, b(t(a)("order.pleaseSelectRestaurant")), 1));
638
+ };
639
+ }
640
+ });
641
+ export {
642
+ ba as default
643
+ };