@feedmepos/mf-order-setting 0.0.23 → 0.0.25

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 (65) hide show
  1. package/dist/{KioskDevicesView-BdJCcotz.js → KioskDevicesView-gzH9-zL_.js} +1 -1
  2. package/dist/{KioskDevicesView.vue_vue_type_script_setup_true_lang-DUPfN7ti.js → KioskDevicesView.vue_vue_type_script_setup_true_lang-CLpClo-r.js} +3 -3
  3. package/dist/KioskSettingView-D1WdpaQN.js +821 -0
  4. package/dist/{KioskView-DPU-oQ1H.js → KioskView-D6-1bn1n.js} +90 -76
  5. package/dist/{OrderSettingsView-BOiflwB_.js → OrderSettingsView-CqZREmjo.js} +6155 -6096
  6. package/dist/{app-CaYWSLe1.js → app-i4N2c7ms.js} +54 -38
  7. package/dist/app.js +1 -1
  8. package/dist/{dayjs.min-8NyoNely.js → dayjs.min-CA-XbgTY.js} +36 -36
  9. package/dist/frontend/mf-order/src/app.d.ts +16 -0
  10. package/dist/frontend/mf-order/src/main.d.ts +797 -0
  11. package/dist/frontend/mf-order/src/modules/order-setting/kiosk/interface.d.ts +4 -0
  12. package/dist/frontend/mf-order/src/stores/iframe/index.d.ts +6 -6
  13. package/dist/frontend/mf-order/src/stores/kiosk/index.d.ts +8 -260
  14. package/dist/frontend/mf-order/src/stores/order-setting/index.d.ts +29 -710
  15. package/dist/frontend/mf-order/src/stores/order-setting/mapper.d.ts +3 -2
  16. package/dist/frontend/mf-order/src/stores/restaurant/index.d.ts +1456 -2239
  17. package/dist/frontend/mf-order/src/views/kiosk/settings/KioskEnablePaxDialogSection.vue.d.ts +9 -0
  18. package/dist/frontend/mf-order/tsconfig.app.tsbuildinfo +1 -1
  19. package/dist/{index-B7GFhkAE.js → index-C4HI1NS4.js} +2 -2
  20. package/dist/package/entity/delivery/delivery.dto.d.ts +11 -6
  21. package/dist/package/entity/food-court/food-court.dto.d.ts +1 -1
  22. package/dist/package/entity/food-court/order.dto.d.ts +727 -378
  23. package/dist/package/entity/incoming-order/incoming-order-to-bill.dto.d.ts +6 -6
  24. package/dist/package/entity/incoming-order/incoming-order.do.d.ts +8 -8
  25. package/dist/package/entity/incoming-order/incoming-order.dto.d.ts +16 -16
  26. package/dist/package/entity/index.d.ts +1 -0
  27. package/dist/package/entity/kiosk/marketing/marketing.dto.d.ts +1337 -656
  28. package/dist/package/entity/order/order.dto.d.ts +4942 -2401
  29. package/dist/package/entity/order/order.enum.d.ts +1 -1
  30. package/dist/package/entity/order/payment/payment.dto.d.ts +2899 -1419
  31. package/dist/package/entity/order-platform/external/order/external-order.do.d.ts +9 -21
  32. package/dist/package/entity/order-platform/external/order/external-order.dto.d.ts +19 -51
  33. package/dist/package/entity/order-setting/kiosk/kiosk.do.d.ts +14 -0
  34. package/dist/package/entity/order-setting/kiosk/kiosk.dto.d.ts +30 -0
  35. package/dist/package/entity/order-setting/order-setting.do.d.ts +26 -0
  36. package/dist/package/entity/order-setting/order-setting.dto.d.ts +52 -0
  37. package/dist/package/entity/order-setting/v3/v3.do.d.ts +3 -0
  38. package/dist/package/entity/order-setting/v3/v3.dto.d.ts +3 -0
  39. package/dist/package/entity/order-setting/v3/v3.enum.d.ts +3 -0
  40. package/dist/package/entity/payment/payment.dto.d.ts +3 -3
  41. package/dist/package/entity/restaurant/restaurant.dto.d.ts +37 -11
  42. package/dist/package/entity/websocket/websocket.dto.d.ts +40 -0
  43. package/dist/{queue.do-CIyIpp22.js → queue.do-DcOVgeUq.js} +17143 -16655
  44. package/package.json +3 -3
  45. package/src/Entry.vue +3 -3
  46. package/src/locales/en-US.json +8 -0
  47. package/src/locales/th-TH.json +257 -0
  48. package/src/locales/zh-CN.json +8 -0
  49. package/src/main.ts +9 -1
  50. package/src/modules/order-setting/kiosk/interface.ts +4 -0
  51. package/src/stores/iframe/index.ts +1 -1
  52. package/src/stores/kiosk/index.ts +1 -1
  53. package/src/stores/order-setting/index.ts +1 -1
  54. package/src/stores/order-setting/mapper.ts +27 -11
  55. package/src/stores/restaurant/index.ts +106 -85
  56. package/src/views/kiosk/settings/KioskEnablePaxDialogSection.vue +33 -0
  57. package/src/views/kiosk/settings/KioskSettingView.vue +26 -0
  58. package/src/views/order-settings/delivery/DeliverySetting.vue +12 -12
  59. package/src/views/order-settings/delivery/inhouse/InHouseDelivery.vue +39 -35
  60. package/src/views/order-settings/dine-in/DineInSetting.vue +158 -24
  61. package/src/views/order-settings/general/GeneralSetting.vue +29 -33
  62. package/src/views/order-settings/pickup/PickUpSetting.vue +4 -2
  63. package/src/views/order-settings/pickup/PickUpSettingDialogContent.vue +23 -10
  64. package/src/views/order-settings/servicecharge/ServiceChargeSetting.vue +17 -8
  65. package/dist/KioskSettingView-BChhriPk.js +0 -782
@@ -0,0 +1,821 @@
1
+ import { defineComponent as A, resolveComponent as k, openBlock as c, createElementBlock as _, createElementVNode as m, toDisplayString as V, unref as t, Fragment as j, renderList as Q, createVNode as s, computed as C, withDirectives as M, vShow as W, createBlock as q, createCommentVNode as K, ref as N, onMounted as te, withCtx as U, createTextVNode as le } from "vue";
2
+ import { useI18n as R } from "@feedmepos/mf-common";
3
+ import { F as $, c as P } from "./queue.do-DcOVgeUq.js";
4
+ import { _ as ie, u as de } from "./index-DSCb3ndM.js";
5
+ import { useSnackbar as oe } from "@feedmepos/ui-library";
6
+ function se(v, g) {
7
+ let e = v.toString(), n = g - e.length;
8
+ return n > 0 && (e = Array(n + 1).join("0") + e), e;
9
+ }
10
+ const ue = {
11
+ applyPadDigits: se
12
+ }, re = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, pe = { class: "fm-typo-en-title-sm-600" }, G = /* @__PURE__ */ A({
13
+ __name: "KioskInstructionSection",
14
+ props: {
15
+ fields: {}
16
+ },
17
+ emits: ["update:field"],
18
+ setup(v, { emit: g }) {
19
+ const { t: e } = R(), n = v, p = g;
20
+ function b(l, y) {
21
+ p("update:field", l, y);
22
+ }
23
+ return (l, y) => {
24
+ const i = k("FmTextField");
25
+ return c(), _("div", re, [
26
+ m("span", pe, V(t(e)("order.submitOrderInstruction")), 1),
27
+ (c(!0), _(j, null, Q(n.fields, (u) => (c(), _("div", {
28
+ class: "flex flex-col gap-10",
29
+ key: u.title
30
+ }, [
31
+ s(i, {
32
+ "model-value": u.value,
33
+ label: u.title,
34
+ placeholder: u.defaultValue,
35
+ "onUpdate:modelValue": (S) => b(u.id, S)
36
+ }, null, 8, ["model-value", "label", "placeholder", "onUpdate:modelValue"])
37
+ ]))), 128))
38
+ ]);
39
+ };
40
+ }
41
+ }), me = { class: "border p-[1.5rem] fm-corner-radius-lg flex flex-col gap-2 my-5 w-11/12" }, ce = { class: "fm-typo-en-title-sm-600" }, ye = { class: "flex flex-col gap-10" }, fe = { class: "flex flex-row gap-2" }, ve = /* @__PURE__ */ A({
42
+ __name: "KioskDisplayStandSection",
43
+ props: {
44
+ displayStand: {}
45
+ },
46
+ emits: ["updateDisplayStand"],
47
+ setup(v, { emit: g }) {
48
+ const { t: e } = R(), n = v, p = g, b = C(() => {
49
+ const o = n.displayStand.submitOrderInstruction;
50
+ return [
51
+ {
52
+ id: "payAtCounter",
53
+ value: o.payAtCounter ?? void 0,
54
+ title: e("order.payAtCounter"),
55
+ defaultValue: "Collect your transaction slip below and present it to the cashier"
56
+ },
57
+ {
58
+ id: "paid",
59
+ value: o.paid ?? void 0,
60
+ title: e("order.paid"),
61
+ defaultValue: "Please collect your receipt and we'll bring your food to your table once it's ready."
62
+ }
63
+ ];
64
+ });
65
+ function l(o, a) {
66
+ p("updateDisplayStand", {
67
+ ...n.displayStand,
68
+ submitOrderInstruction: {
69
+ ...n.displayStand.submitOrderInstruction,
70
+ [o]: a
71
+ }
72
+ });
73
+ }
74
+ const y = (o) => o < 0 ? e("order.nonNegativeRule") : !0, i = (o) => o <= (n.displayStand.standSlotRange.min ?? 0) ? e("order.greaterThanMinRule") : !0, u = C(() => [y]), S = C(() => [y]), I = C(() => [y, i]);
75
+ C(() => {
76
+ const a = ue.applyPadDigits(5, n.displayStand.padDigit ?? 0);
77
+ return `Preview: ${n.displayStand.prefix}${a}`;
78
+ });
79
+ function x(o) {
80
+ p("updateDisplayStand", {
81
+ ...n.displayStand,
82
+ enabled: o
83
+ });
84
+ }
85
+ function w(o) {
86
+ o && p("updateDisplayStand", {
87
+ ...n.displayStand,
88
+ standSlotRange: {
89
+ ...n.displayStand.standSlotRange,
90
+ min: o
91
+ }
92
+ });
93
+ }
94
+ function T(o) {
95
+ o && p("updateDisplayStand", {
96
+ ...n.displayStand,
97
+ standSlotRange: {
98
+ ...n.displayStand.standSlotRange,
99
+ max: o
100
+ }
101
+ });
102
+ }
103
+ function Y(o) {
104
+ p("updateDisplayStand", {
105
+ ...n.displayStand,
106
+ prefix: o
107
+ });
108
+ }
109
+ function B(o) {
110
+ o && p("updateDisplayStand", {
111
+ ...n.displayStand,
112
+ padDigit: o
113
+ });
114
+ }
115
+ return (o, a) => {
116
+ const f = k("FmSwitch"), E = k("FmTextField"), F = k("FmStepperField");
117
+ return c(), _("div", null, [
118
+ s(f, {
119
+ "model-value": o.displayStand.enabled,
120
+ label: t(e)("order.displayStand"),
121
+ "label-placement": "right",
122
+ "onUpdate:modelValue": x
123
+ }, null, 8, ["model-value", "label"]),
124
+ M(m("div", me, [
125
+ m("span", ce, V(t(e)("order.tableServiceSetting")), 1),
126
+ m("div", ye, [
127
+ s(E, {
128
+ "model-value": o.displayStand.prefix,
129
+ label: t(e)("order.prefix"),
130
+ placeholder: t(e)("order.prefix"),
131
+ "onUpdate:modelValue": Y
132
+ }, null, 8, ["model-value", "label", "placeholder"])
133
+ ]),
134
+ m("div", fe, [
135
+ s(F, {
136
+ class: "w-1/2",
137
+ "model-value": o.displayStand.standSlotRange.min,
138
+ label: t(e)("order.start"),
139
+ labelMark: "required",
140
+ rules: S.value,
141
+ placeholder: t(e)("order.enterANumber"),
142
+ "onUpdate:modelValue": w
143
+ }, null, 8, ["model-value", "label", "rules", "placeholder"]),
144
+ s(F, {
145
+ class: "w-1/2",
146
+ "model-value": o.displayStand.standSlotRange.max,
147
+ label: t(e)("order.end"),
148
+ labelMark: "required",
149
+ rules: I.value,
150
+ placeholder: t(e)("order.enterANumber"),
151
+ "onUpdate:modelValue": T
152
+ }, null, 8, ["model-value", "label", "rules", "placeholder"])
153
+ ]),
154
+ m("div", null, [
155
+ s(F, {
156
+ "model-value": o.displayStand.padDigit,
157
+ label: t(e)("order.padDigit"),
158
+ labelMark: "required",
159
+ rules: u.value,
160
+ placeholder: t(e)("order.padDigit"),
161
+ "onUpdate:modelValue": B
162
+ }, null, 8, ["model-value", "label", "rules", "placeholder"])
163
+ ])
164
+ ], 512), [
165
+ [W, o.displayStand.enabled]
166
+ ]),
167
+ M(s(G, {
168
+ fields: b.value,
169
+ "onUpdate:field": l
170
+ }, null, 8, ["fields"]), [
171
+ [W, o.displayStand.enabled]
172
+ ])
173
+ ]);
174
+ };
175
+ }
176
+ }), be = /* @__PURE__ */ A({
177
+ __name: "KioskPickAtCounterSection",
178
+ props: {
179
+ form: {}
180
+ },
181
+ emits: ["update-pick-up"],
182
+ setup(v, { emit: g }) {
183
+ const { t: e } = R(), n = v, p = g, b = C(() => [
184
+ {
185
+ id: "payAtCounter",
186
+ value: n.form.submitOrderInstruction.payAtCounter ?? void 0,
187
+ title: e("order.payAtCounter"),
188
+ defaultValue: "Collect your transaction slip below and present it to the cashier"
189
+ },
190
+ {
191
+ id: "paid",
192
+ value: n.form.submitOrderInstruction.paid ?? void 0,
193
+ title: e("order.paid"),
194
+ defaultValue: "Please wait as we prepare your food. We'll call your number when it's ready."
195
+ }
196
+ ]);
197
+ function l(i) {
198
+ p("update-pick-up", {
199
+ ...n.form,
200
+ enabled: i
201
+ });
202
+ }
203
+ function y(i, u) {
204
+ p("update-pick-up", {
205
+ ...n.form,
206
+ submitOrderInstruction: {
207
+ ...n.form.submitOrderInstruction,
208
+ [i]: u
209
+ }
210
+ });
211
+ }
212
+ return (i, u) => {
213
+ const S = k("FmSwitch");
214
+ return c(), _("div", null, [
215
+ s(S, {
216
+ "model-value": i.form.enabled,
217
+ label: t(e)("order.pickAtCounter"),
218
+ "label-placement": "right",
219
+ "onUpdate:modelValue": l
220
+ }, null, 8, ["model-value", "label"]),
221
+ M(s(G, {
222
+ fields: b.value,
223
+ "onUpdate:field": y
224
+ }, null, 8, ["fields"]), [
225
+ [W, i.form.enabled]
226
+ ])
227
+ ]);
228
+ };
229
+ }
230
+ }), Se = { class: "flex flex-col gap-5" }, ge = { class: "flex flex-col gap-16" }, Pe = { class: "flex flex-col gap-16" }, _e = /* @__PURE__ */ A({
231
+ __name: "KioskDineInSection",
232
+ props: {
233
+ v: {}
234
+ },
235
+ emits: ["updateDineIn"],
236
+ setup(v, { emit: g }) {
237
+ const { t: e } = R();
238
+ function n(i) {
239
+ y("updateDineIn", {
240
+ ...l.v,
241
+ pickUp: i
242
+ });
243
+ }
244
+ function p(i) {
245
+ y("updateDineIn", {
246
+ ...l.v,
247
+ displayStand: i
248
+ });
249
+ }
250
+ function b(i) {
251
+ y("updateDineIn", {
252
+ ...l.v,
253
+ enabled: i
254
+ });
255
+ }
256
+ const l = v, y = g;
257
+ return (i, u) => {
258
+ const S = k("FmSwitch");
259
+ return c(), _("div", Se, [
260
+ m("div", ge, [
261
+ s(S, {
262
+ "model-value": i.v.enabled,
263
+ label: t(e)("order.dineIn"),
264
+ "label-placement": "right",
265
+ "onUpdate:modelValue": b
266
+ }, null, 8, ["model-value", "label"]),
267
+ M(m("div", Pe, [
268
+ i.v.pickUp ? (c(), q(be, {
269
+ key: 0,
270
+ form: i.v.pickUp,
271
+ onUpdatePickUp: n
272
+ }, null, 8, ["form"])) : K("", !0),
273
+ i.v.displayStand ? (c(), q(ve, {
274
+ key: 1,
275
+ "display-stand": i.v.displayStand,
276
+ onUpdateDisplayStand: p
277
+ }, null, 8, ["display-stand"])) : K("", !0)
278
+ ], 512), [
279
+ [W, i.v.enabled]
280
+ ])
281
+ ])
282
+ ]);
283
+ };
284
+ }
285
+ }), he = /* @__PURE__ */ A({
286
+ __name: "KioskTakeawaySection",
287
+ props: {
288
+ v: {}
289
+ },
290
+ emits: ["updateTakeaway"],
291
+ setup(v, { emit: g }) {
292
+ const { t: e } = R(), n = v, p = g, b = C(() => [
293
+ {
294
+ id: "payAtCounter",
295
+ value: n.v.submitOrderInstruction.payAtCounter ?? void 0,
296
+ title: e("order.payAtCounter"),
297
+ defaultValue: "Collect your transaction slip below and present it to the cashier"
298
+ },
299
+ {
300
+ id: "paid",
301
+ value: n.v.submitOrderInstruction.paid ?? void 0,
302
+ title: e("order.paid"),
303
+ defaultValue: "Please wait as we prepare your food. We'll call your number when it's ready."
304
+ }
305
+ ]);
306
+ function l(i) {
307
+ p("updateTakeaway", { ...n.v, enabled: i });
308
+ }
309
+ function y(i, u) {
310
+ p("updateTakeaway", {
311
+ ...n.v,
312
+ submitOrderInstruction: {
313
+ ...n.v.submitOrderInstruction,
314
+ [i]: u
315
+ }
316
+ });
317
+ }
318
+ return (i, u) => {
319
+ const S = k("FmSwitch");
320
+ return c(), _("div", null, [
321
+ s(S, {
322
+ "model-value": i.v.enabled,
323
+ label: t(e)("order.takeaway"),
324
+ "label-placement": "right",
325
+ "onUpdate:modelValue": l,
326
+ class: "mb-5"
327
+ }, null, 8, ["model-value", "label"]),
328
+ M(s(G, {
329
+ fields: b.value,
330
+ "onUpdate:field": y
331
+ }, null, 8, ["fields"]), [
332
+ [W, i.v.enabled]
333
+ ])
334
+ ]);
335
+ };
336
+ }
337
+ }), Ie = { class: "flex flex-row items-center" }, ke = { key: 0 }, Te = {
338
+ key: 1,
339
+ class: "ml-7"
340
+ }, xe = { key: 0 }, we = { class: "font-bold" }, De = {
341
+ key: 2,
342
+ class: "ml-7"
343
+ }, Ve = { class: "ml-7" }, Ce = { class: "ml-7" }, Fe = { class: "flex flex-row gap-9" }, Ue = /* @__PURE__ */ A({
344
+ __name: "KioskPaymentTypeSection",
345
+ props: {
346
+ paymentTypes: {
347
+ type: Array,
348
+ required: !0
349
+ },
350
+ offlinePaymentTypes: {
351
+ type: Array,
352
+ required: !0
353
+ },
354
+ allowEPayment: {
355
+ type: [Boolean, String],
356
+ required: !0
357
+ },
358
+ ePaymentTypes: {
359
+ type: Object,
360
+ required: !0
361
+ }
362
+ },
363
+ emits: ["update:paymentTypes", "update:offlinePaymentTypes", "update:ePaymentTypes"],
364
+ setup(v, { emit: g }) {
365
+ const { t: e } = R(), n = v, p = g;
366
+ async function b(r) {
367
+ p(
368
+ "update:offlinePaymentTypes",
369
+ n.offlinePaymentTypes.filter((d, D) => D !== r)
370
+ );
371
+ }
372
+ const l = C(() => (n.paymentTypes || []).includes($.enum.ePayment)), y = C(() => {
373
+ const r = n.paymentTypes || [], d = n.offlinePaymentTypes || [];
374
+ return r.includes($.enum.cash) || d.length > 0;
375
+ }), i = N(!1), u = N([]), S = N(), I = N([]), x = N(!1), w = N(!1), T = [
376
+ { label: e("order.offlinePayment"), value: "offline" },
377
+ { label: e("order.ePayment"), value: "e-payment" }
378
+ ], Y = () => {
379
+ const r = [];
380
+ y.value && r.push("offline"), l.value && r.push("e-payment"), u.value = r, i.value = r.length === T.length, Object.keys(n.ePaymentTypes).length !== 0 && (n.ePaymentTypes.card.terminal ? (S.value = P.enum.TERMINAL, x.value = !0) : n.ePaymentTypes.card.nfc && (S.value = P.enum.NFC, x.value = !0), n.ePaymentTypes.eWallet.qrPay && (I.value.push(P.enum.QRPAY), w.value = !0), n.ePaymentTypes.eWallet.scanPay && (I.value.push(P.enum.SCANPAY), w.value = !0));
381
+ };
382
+ Y();
383
+ const B = (r) => {
384
+ u.value = r ? T.map((O) => O.value) : [], i.value = r;
385
+ const d = [], D = r ? n.offlinePaymentTypes || [] : [];
386
+ u.value.includes("e-payment") && (d.push($.enum.ePayment), x.value = !0, w.value = !0), u.value.includes("offline") && d.push($.enum.cash), p("update:paymentTypes", d), p("update:offlinePaymentTypes", D), E(x.value), F(w.value);
387
+ }, o = (r) => {
388
+ const d = u.value;
389
+ u.value = r, i.value = r.length === T.length;
390
+ const D = [], O = r.includes("offline") ? n.offlinePaymentTypes || [] : [];
391
+ r.includes("e-payment") && D.push($.enum.ePayment), r.includes("offline") && D.push($.enum.cash), d.includes("e-payment") || (x.value = !0, w.value = !0, E(x.value), F(w.value)), p("update:paymentTypes", D), p("update:offlinePaymentTypes", O);
392
+ }, a = (r) => {
393
+ const d = {
394
+ card: {
395
+ terminal: !1,
396
+ nfc: !1
397
+ },
398
+ eWallet: {
399
+ qrPay: !1,
400
+ scanPay: !1
401
+ }
402
+ };
403
+ u.value.includes("e-payment") && (r == P.enum.TERMINAL && (d.card.terminal = !0), r == P.enum.NFC && (d.card.nfc = !0), I.value.length > 0 && (I.value.includes(P.enum.QRPAY) && (d.eWallet.qrPay = !0), I.value.includes(P.enum.SCANPAY) && (d.eWallet.scanPay = !0))), p("update:ePaymentTypes", d);
404
+ }, f = () => {
405
+ const r = {
406
+ card: {
407
+ terminal: !1,
408
+ nfc: !1
409
+ },
410
+ eWallet: {
411
+ qrPay: !1,
412
+ scanPay: !1
413
+ }
414
+ };
415
+ u.value.includes("e-payment") && (S.value && (S.value === P.enum.TERMINAL && (r.card.terminal = !0), S.value === P.enum.NFC && (r.card.nfc = !0)), I.value.includes(P.enum.QRPAY) && (r.eWallet.qrPay = !0), I.value.includes(P.enum.SCANPAY) && (r.eWallet.scanPay = !0)), p("update:ePaymentTypes", r);
416
+ }, E = (r) => {
417
+ S.value = "", r && (S.value = P.enum.TERMINAL), f();
418
+ }, F = (r) => {
419
+ I.value = [], r && (I.value = [
420
+ P.enum.QRPAY,
421
+ P.enum.SCANPAY
422
+ ]), f();
423
+ };
424
+ return te(() => {
425
+ Y();
426
+ }), (r, d) => {
427
+ var J, X;
428
+ const D = k("FmCheckbox"), O = k("FmCardSection"), L = k("FmCard"), ee = k("FmButton"), z = k("FmSwitch"), H = k("FmRadio"), ae = k("FmRadioGroup");
429
+ return c(), _(j, null, [
430
+ s(D, {
431
+ value: "",
432
+ "model-value": i.value,
433
+ label: t(e)("order.all"),
434
+ indeterminate: u.value.length > 0 && u.value.length < T.length,
435
+ "onUpdate:modelValue": B
436
+ }, null, 8, ["model-value", "label", "indeterminate"]),
437
+ m("div", Ie, [
438
+ s(D, {
439
+ modelValue: u.value,
440
+ "onUpdate:modelValue": [
441
+ d[0] || (d[0] = (h) => u.value = h),
442
+ o
443
+ ],
444
+ label: T[0].label,
445
+ value: T[0].value
446
+ }, null, 8, ["modelValue", "label", "value"])
447
+ ]),
448
+ u.value.includes(T[0].value) && ((J = v.offlinePaymentTypes) == null ? void 0 : J.length) === 0 ? (c(), _("div", ke, [
449
+ s(ie, {
450
+ "onUpdate:offlinePaymentTypes": d[1] || (d[1] = (h) => p("update:offlinePaymentTypes", h))
451
+ })
452
+ ])) : K("", !0),
453
+ u.value.includes("offline") ? (c(), _("div", Te, [
454
+ ((X = v.offlinePaymentTypes) == null ? void 0 : X.length) === 0 ? (c(), _("div", xe, [
455
+ s(L, { variant: "outlined" }, {
456
+ default: U(() => [
457
+ s(O, null, {
458
+ default: U(() => [
459
+ le(V(t(e)("order.payAtCounter")), 1)
460
+ ]),
461
+ _: 1
462
+ })
463
+ ]),
464
+ _: 1
465
+ })
466
+ ])) : K("", !0),
467
+ (c(!0), _(j, null, Q(v.offlinePaymentTypes, (h, ne) => (c(), _("p", { key: ne }, [
468
+ s(L, { variant: "outlined" }, {
469
+ default: U(() => [
470
+ s(O, { class: "flex items-center justify-between" }, {
471
+ default: U(() => [
472
+ m("div", null, [
473
+ m("span", we, V(h.name), 1),
474
+ d[8] || (d[8] = m("br", null, null, -1)),
475
+ m("span", null, V(h.instruction), 1)
476
+ ]),
477
+ (c(!0), _(j, null, Q(v.offlinePaymentTypes, (Ge, Z) => (c(), _("div", { key: Z }, [
478
+ s(ee, {
479
+ "append-icon": "delete",
480
+ variant: "tertiary",
481
+ onClick: (ze) => b(Z)
482
+ }, null, 8, ["onClick"])
483
+ ]))), 128))
484
+ ]),
485
+ _: 2
486
+ }, 1024)
487
+ ]),
488
+ _: 2
489
+ }, 1024)
490
+ ]))), 128))
491
+ ])) : K("", !0),
492
+ s(D, {
493
+ modelValue: u.value,
494
+ "onUpdate:modelValue": [
495
+ d[2] || (d[2] = (h) => u.value = h),
496
+ o
497
+ ],
498
+ label: T[1].label,
499
+ value: T[1].value
500
+ }, null, 8, ["modelValue", "label", "value"]),
501
+ u.value.includes(T[1].value) ? (c(), _("div", De, [
502
+ s(L, { variant: "outlined" }, {
503
+ default: U(() => [
504
+ s(O, null, {
505
+ default: U(() => [
506
+ s(z, {
507
+ label: t(e)("order.bankCard"),
508
+ sublabel: t(e)("order.cardPaymentDescription"),
509
+ "label-placement": "right",
510
+ modelValue: x.value,
511
+ "onUpdate:modelValue": [
512
+ d[3] || (d[3] = (h) => x.value = h),
513
+ E
514
+ ]
515
+ }, null, 8, ["label", "sublabel", "modelValue"]),
516
+ d[9] || (d[9] = m("br", null, null, -1)),
517
+ M(m("div", Ve, [
518
+ s(ae, {
519
+ modelValue: S.value,
520
+ "onUpdate:modelValue": [
521
+ d[4] || (d[4] = (h) => S.value = h),
522
+ a
523
+ ],
524
+ inline: ""
525
+ }, {
526
+ default: U(() => [
527
+ s(H, {
528
+ label: t(e)("order.terminal"),
529
+ value: t(P).enum.TERMINAL
530
+ }, null, 8, ["label", "value"]),
531
+ s(H, {
532
+ label: t(e)("order.nfc"),
533
+ value: t(P).enum.NFC
534
+ }, null, 8, ["label", "value"])
535
+ ]),
536
+ _: 1
537
+ }, 8, ["modelValue"])
538
+ ], 512), [
539
+ [W, x.value]
540
+ ])
541
+ ]),
542
+ _: 1
543
+ })
544
+ ]),
545
+ _: 1
546
+ }),
547
+ s(L, {
548
+ variant: "outlined",
549
+ class: "mt-2"
550
+ }, {
551
+ default: U(() => [
552
+ s(O, null, {
553
+ default: U(() => [
554
+ s(z, {
555
+ label: t(e)("order.eWallet"),
556
+ sublabel: t(e)("order.eWalletDescription"),
557
+ "label-placement": "right",
558
+ modelValue: w.value,
559
+ "onUpdate:modelValue": [
560
+ d[5] || (d[5] = (h) => w.value = h),
561
+ F
562
+ ]
563
+ }, null, 8, ["label", "sublabel", "modelValue"]),
564
+ d[10] || (d[10] = m("br", null, null, -1)),
565
+ M(m("div", Ce, [
566
+ m("div", Fe, [
567
+ s(D, {
568
+ modelValue: I.value,
569
+ "onUpdate:modelValue": [
570
+ d[6] || (d[6] = (h) => I.value = h),
571
+ f
572
+ ],
573
+ label: t(e)("order.qrPay"),
574
+ value: t(P).enum.QRPAY
575
+ }, null, 8, ["modelValue", "label", "value"]),
576
+ s(D, {
577
+ modelValue: I.value,
578
+ "onUpdate:modelValue": [
579
+ d[7] || (d[7] = (h) => I.value = h),
580
+ f
581
+ ],
582
+ label: t(e)("order.scanPay"),
583
+ value: t(P).enum.SCANPAY
584
+ }, null, 8, ["modelValue", "label", "value"])
585
+ ])
586
+ ], 512), [
587
+ [W, w.value]
588
+ ])
589
+ ]),
590
+ _: 1
591
+ })
592
+ ]),
593
+ _: 1
594
+ })
595
+ ])) : K("", !0)
596
+ ], 64);
597
+ };
598
+ }
599
+ }), Ae = /* @__PURE__ */ A({
600
+ __name: "KioskMenuItemSection",
601
+ props: {
602
+ v: { type: Boolean }
603
+ },
604
+ emits: ["update:modelValue"],
605
+ setup(v, { emit: g }) {
606
+ const { t: e } = R(), n = g, p = (b) => {
607
+ n("update:modelValue", b);
608
+ };
609
+ return (b, l) => {
610
+ const y = k("FmSwitch");
611
+ return c(), q(y, {
612
+ "model-value": b.v,
613
+ label: `${t(e)("order.hideNotAvailableMenuItem")}`,
614
+ "label-placement": "right",
615
+ "onUpdate:modelValue": p,
616
+ class: "mb-5"
617
+ }, null, 8, ["model-value", "label"]);
618
+ };
619
+ }
620
+ }), Re = /* @__PURE__ */ A({
621
+ __name: "KioskEnablePaxDialogSection",
622
+ props: {
623
+ v: { type: Boolean }
624
+ },
625
+ emits: ["updateEnablePaxDialog"],
626
+ setup(v, { emit: g }) {
627
+ const { t: e } = R(), n = g;
628
+ function p(b) {
629
+ n("updateEnablePaxDialog", b);
630
+ }
631
+ return (b, l) => {
632
+ const y = k("FmSwitch");
633
+ return c(), _("div", null, [
634
+ s(y, {
635
+ "model-value": b.v,
636
+ label: t(e)("order.displayPaxDialogDescription"),
637
+ "label-placement": "right",
638
+ "onUpdate:modelValue": p,
639
+ class: "mb-5"
640
+ }, null, 8, ["model-value", "label"])
641
+ ]);
642
+ };
643
+ }
644
+ }), Oe = {
645
+ key: 0,
646
+ class: "flex flex-col gap-32"
647
+ }, Ee = { class: "flex flex-col gap-2" }, Ne = { class: "fm-typo-en-title-sm-600" }, $e = { class: "flex flex-col gap-2" }, qe = { class: "fm-typo-en-title-sm-600" }, Me = { class: "flex flex-col gap-2" }, We = { class: "fm-typo-en-title-sm-600" }, Ye = { class: "flex flex-col gap-2" }, Ke = { class: "fm-typo-en-title-sm-600" }, Be = { class: "flex flex-col gap-2" }, Le = { class: "fm-typo-en-title-sm-600" }, je = { class: "fm-typo-en-title-sm-400 font-bold" }, Qe = { key: 1 }, aa = /* @__PURE__ */ A({
648
+ __name: "KioskSettingView",
649
+ props: {
650
+ restaurantId: {},
651
+ form: {}
652
+ },
653
+ emits: ["updateKioskOrderSetting"],
654
+ setup(v, { emit: g }) {
655
+ const { t: e } = R(), n = v, p = oe(), b = g, l = N(n.form), y = C(() => {
656
+ const a = l.value;
657
+ if (!a.dineIn.enabled)
658
+ return {
659
+ ...a,
660
+ dineIn: {
661
+ enabled: a.dineIn.enabled,
662
+ sequenceNumber: a.dineIn.sequenceNumber,
663
+ pickUp: a.dineIn.pickUp,
664
+ displayStand: {
665
+ enabled: !1,
666
+ padDigit: a.dineIn.displayStand.padDigit ?? 0,
667
+ standSlotRange: {
668
+ min: a.dineIn.displayStand.standSlotRange.min ?? 0,
669
+ max: a.dineIn.displayStand.standSlotRange.max ?? 10
670
+ },
671
+ prefix: a.dineIn.displayStand.prefix ?? "",
672
+ enablePaxDialog: a.dineIn.displayStand.enablePaxDialog,
673
+ submitOrderInstruction: {
674
+ payAtCounter: a.dineIn.displayStand.submitOrderInstruction.payAtCounter ?? null,
675
+ paid: a.dineIn.displayStand.submitOrderInstruction.paid ?? null
676
+ }
677
+ }
678
+ }
679
+ };
680
+ if (a.dineIn.enabled && a.dineIn.displayStand.enabled) {
681
+ const f = a.dineIn.displayStand;
682
+ return f.padDigit != null && f.padDigit >= 0 && f.standSlotRange.min && f.standSlotRange.max && f.standSlotRange.min <= f.standSlotRange.max ? {
683
+ ...a,
684
+ dineIn: {
685
+ enabled: a.dineIn.enabled,
686
+ sequenceNumber: a.dineIn.sequenceNumber,
687
+ pickUp: a.dineIn.pickUp,
688
+ displayStand: {
689
+ enabled: f.enabled,
690
+ padDigit: f.padDigit,
691
+ standSlotRange: {
692
+ min: f.standSlotRange.min,
693
+ max: f.standSlotRange.max
694
+ },
695
+ prefix: f.prefix ?? "",
696
+ enablePaxDialog: f.enablePaxDialog,
697
+ submitOrderInstruction: {
698
+ payAtCounter: f.submitOrderInstruction.payAtCounter ?? null,
699
+ paid: f.submitOrderInstruction.paid ?? null
700
+ }
701
+ }
702
+ }
703
+ } : null;
704
+ }
705
+ return {
706
+ ...a,
707
+ dineIn: {
708
+ enabled: a.dineIn.enabled,
709
+ sequenceNumber: a.dineIn.sequenceNumber,
710
+ pickUp: a.dineIn.pickUp,
711
+ displayStand: {
712
+ enabled: !1,
713
+ padDigit: a.dineIn.displayStand.padDigit ?? 0,
714
+ standSlotRange: {
715
+ min: a.dineIn.displayStand.standSlotRange.min ?? 0,
716
+ max: a.dineIn.displayStand.standSlotRange.max ?? 10
717
+ },
718
+ prefix: a.dineIn.displayStand.prefix ?? "",
719
+ enablePaxDialog: a.dineIn.displayStand.enablePaxDialog,
720
+ submitOrderInstruction: {
721
+ payAtCounter: a.dineIn.displayStand.submitOrderInstruction.payAtCounter ?? null,
722
+ paid: a.dineIn.displayStand.submitOrderInstruction.paid ?? null
723
+ }
724
+ }
725
+ }
726
+ };
727
+ }), { startAsyncCall: i } = de();
728
+ async function u(a) {
729
+ l.value.dineIn = a;
730
+ }
731
+ async function S(a) {
732
+ l.value.takeaway = a;
733
+ }
734
+ async function I(a) {
735
+ l.value.menuItem.showAllOnly = a;
736
+ }
737
+ async function x(a) {
738
+ l.value.paymentSetting.paymentTypes = a;
739
+ }
740
+ async function w(a) {
741
+ l.value.paymentSetting.ePaymentTypes = a;
742
+ }
743
+ const T = C(() => (l.value.paymentSetting.paymentTypes || []).includes($.enum.ePayment));
744
+ async function Y(a) {
745
+ l.value.dineIn.displayStand.enablePaxDialog = a, l.value.dineIn.pickUp.enablePaxDialog = a;
746
+ }
747
+ const B = C(() => (l.value.dineIn.displayStand.enabled && l.value.dineIn.displayStand.enablePaxDialog || l.value.dineIn.pickUp.enablePaxDialog) ?? !1);
748
+ async function o() {
749
+ if (y.value) {
750
+ const a = y.value;
751
+ i(async () => {
752
+ await b("updateKioskOrderSetting", a);
753
+ });
754
+ } else
755
+ p.open({
756
+ title: e("order.failedToUpdateSetting"),
757
+ type: "error"
758
+ });
759
+ }
760
+ return (a, f) => {
761
+ const E = k("FmButton");
762
+ return l.value ? (c(), _("div", Oe, [
763
+ m("div", Ee, [
764
+ m("span", Ne, V(t(e)("order.dineIn")), 1),
765
+ (c(), q(_e, {
766
+ key: "dine-in-" + a.restaurantId,
767
+ v: l.value.dineIn,
768
+ onUpdateDineIn: u
769
+ }, null, 8, ["v"]))
770
+ ]),
771
+ m("div", $e, [
772
+ m("span", qe, V(t(e)("order.takeawayTitle")), 1),
773
+ (c(), q(he, {
774
+ key: "takeaway-" + a.restaurantId,
775
+ v: l.value.takeaway,
776
+ onUpdateTakeaway: S
777
+ }, null, 8, ["v"]))
778
+ ]),
779
+ m("div", Me, [
780
+ m("span", We, V(t(e)("order.menuItem")), 1),
781
+ (c(), q(Ae, {
782
+ key: "menu-item-" + a.restaurantId,
783
+ v: l.value.menuItem.showAllOnly,
784
+ "onUpdate:modelValue": I
785
+ }, null, 8, ["v"]))
786
+ ]),
787
+ m("div", Ye, [
788
+ m("span", Ke, V(t(e)("order.displayPaxDialogTitle")), 1),
789
+ (c(), q(Re, {
790
+ key: "enable-pax-dialog-" + a.restaurantId,
791
+ v: B.value,
792
+ onUpdateEnablePaxDialog: Y
793
+ }, null, 8, ["v"]))
794
+ ]),
795
+ m("div", Be, [
796
+ m("span", Le, V(t(e)("order.acceptedPayment")), 1),
797
+ m("span", je, V(t(e)("order.configuration")), 1),
798
+ s(Ue, {
799
+ "payment-types": l.value.paymentSetting.paymentTypes ?? [],
800
+ "allow-e-payment": T.value,
801
+ "offline-payment-types": l.value.paymentSetting.offlinePaymentTypes ?? [],
802
+ ePaymentTypes: l.value.paymentSetting.ePaymentTypes ?? {},
803
+ "onUpdate:paymentTypes": x,
804
+ "onUpdate:offlinePaymentTypes": f[0] || (f[0] = (F) => l.value.paymentSetting.offlinePaymentTypes = F),
805
+ "onUpdate:ePaymentTypes": w
806
+ }, null, 8, ["payment-types", "allow-e-payment", "offline-payment-types", "ePaymentTypes"])
807
+ ]),
808
+ s(E, {
809
+ class: "w-1/4 mb-10",
810
+ variant: "primary",
811
+ label: t(e)("order.updateSetting"),
812
+ disabled: !y.value,
813
+ onClick: o
814
+ }, null, 8, ["label", "disabled"])
815
+ ])) : (c(), _("div", Qe, V(t(e)("order.pleaseSelectRestaurant")), 1));
816
+ };
817
+ }
818
+ });
819
+ export {
820
+ aa as default
821
+ };