@feedmepos/mf-order-setting 0.0.52-dev.2 → 0.0.53

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