@feedmepos/mf-menu 0.32.11-dev → 0.32.12-dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/{App-BMQJXzfs.js → App-D0JZMDPU.js} +14 -10
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-BwPzEkZi.js → ApplyProduct.vue_vue_type_script_setup_true_lang-C5fI7pDt.js} +3 -3
  3. package/dist/{Catalog-DD9pz5om.js → Catalog-BIVVmu4F.js} +6 -6
  4. package/dist/{Category-Dbxxz-jo.js → Category-Cmf6dD5G.js} +6 -6
  5. package/dist/{Category-B_PZ_G_u.js → Category-DoEzIDPA.js} +4 -4
  6. package/dist/{CookingGuide-DHnJp0ti.js → CookingGuide-DxQ5vDF5.js} +4 -4
  7. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-DwLbvoN2.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-BQscJC6_.js} +1 -1
  8. package/dist/{Group-D5DNbNUE.js → Group-EAACXFDr.js} +1 -1
  9. package/dist/{Group-TogIQUnh.js → Group-l59a7MQy.js} +3 -3
  10. package/dist/{Group.vue_vue_type_script_setup_true_lang-BtiHaKaM.js → Group.vue_vue_type_script_setup_true_lang-CdIKM2jO.js} +7 -7
  11. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-DRYeG7wX.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-CendqbFI.js} +5 -5
  12. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-CX-Q1qT4.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-B3I3jPxC.js} +3891 -3871
  13. package/dist/{Ingredient-B_Cu5XUX.js → Ingredient-B7kPk3oV.js} +3 -3
  14. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-JMpeJ55c.js → InventoryBinding.vue_vue_type_script_setup_true_lang-CzpY9mWg.js} +2 -2
  15. package/dist/{LinkProductSideSheet-qp0TBdii.js → LinkProductSideSheet-CeXhbGnn.js} +208 -213
  16. package/dist/{MenuSetting-CuMpJ9E0.js → MenuSetting-CCtL2qui.js} +5 -5
  17. package/dist/{PrintRoute-DQVaF9Jy.js → PrintRoute-DMLRAZJg.js} +4 -4
  18. package/dist/{Product-DZkUA6iZ.js → Product-BAcGhIEf.js} +1 -1
  19. package/dist/{Product.vue_vue_type_script_setup_true_lang-BJfoQDpz.js → Product.vue_vue_type_script_setup_true_lang-V8-_F7WQ.js} +14 -14
  20. package/dist/{ProductInternalTools-KzWVZEWb.js → ProductInternalTools-BrQwrwyG.js} +28 -29
  21. package/dist/{Products-Bo7V88vF.js → Products-O5YVYdlT.js} +11 -11
  22. package/dist/Publish-CtKo19_y.js +1262 -0
  23. package/dist/{Recipe-DDIYbpDs.js → Recipe-ORx3rnvx.js} +4 -4
  24. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-CEtK-cui.js → RuleView.vue_vue_type_script_setup_true_lang-biTDrokQ.js} +2 -2
  25. package/dist/{Scheduler-CnRzjrae.js → Scheduler-B7v3W8eG.js} +3 -3
  26. package/dist/{ServingSequence-BI-_zfXH.js → ServingSequence-DczYH8BU.js} +3 -3
  27. package/dist/{Setting-CObzXORw.js → Setting-fNLED9R0.js} +5 -5
  28. package/dist/{Subcategory-SwoAI9Ll.js → Subcategory-DjK1PTao.js} +4 -4
  29. package/dist/{Takeaway-CoRzd77l.js → Takeaway-ChMYycO_.js} +1 -1
  30. package/dist/{Takeaway-DtwZd8AR.js → Takeaway-LjEJbd4e.js} +4 -4
  31. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-Dug9sZJl.js → Takeaway.vue_vue_type_script_setup_true_lang-CMdZM60P.js} +5 -5
  32. package/dist/{Thumbnail.vue_vue_type_script_setup_true_lang-1lzIehRE.js → Thumbnail.vue_vue_type_script_setup_true_lang-Yh_aUxqS.js} +4 -4
  33. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-NjBNW9ch.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-CEmOkHc5.js} +21 -20
  34. package/dist/{Unit-BkIkJdrO.js → Unit-DGZ9xVpM.js} +2 -2
  35. package/dist/{Variant-DNqk4G2y.js → Variant-CUasE1B5.js} +3 -3
  36. package/dist/{_id_-uch349de.js → _id_-CXV1a1UW.js} +10 -10
  37. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  38. package/dist/{app-C5IMDITK.js → app--9ZjQ_dH.js} +35 -35
  39. package/dist/{app-0e_XOvyp.js → app-E7mszfIB.js} +1 -1
  40. package/dist/app.js +1 -1
  41. package/dist/apps/mf-menu/src/api/menu.d.ts +9 -3
  42. package/dist/apps/mf-menu/src/app.d.ts +47 -0
  43. package/dist/apps/mf-menu/src/components/ProgressBar.vue.d.ts +17 -0
  44. package/dist/apps/mf-menu/src/components/calender/DateTimePicker.vue.d.ts +73 -0
  45. package/dist/apps/mf-menu/src/components/calender/FmCalendar.vue.d.ts +80 -0
  46. package/dist/apps/mf-menu/src/components/calender/FmDateRangeYearMonthPicker.vue.d.ts +22 -0
  47. package/dist/apps/mf-menu/src/components/calender/FmTimeInput.vue.d.ts +26 -0
  48. package/dist/apps/mf-menu/src/components/calender/TimeInput.vue.d.ts +32 -0
  49. package/dist/apps/mf-menu/src/components/feature/Fields/ImageDropField.vue.d.ts +3 -0
  50. package/dist/apps/mf-menu/src/components/feature/TreeEditor/fmtree/FmTreeNode.vue.d.ts +1 -1
  51. package/dist/apps/mf-menu/src/components/feature/TreeEditor/item/ItemForm.vue.d.ts +5 -0
  52. package/dist/apps/mf-menu/src/components/feature/TreeEditor/item/ProductDetail.vue.d.ts +5 -1
  53. package/dist/apps/mf-menu/src/components/feature/TreeEditor/item/ProductPrice.vue.d.ts +5 -1
  54. package/dist/apps/mf-menu/src/stores/menu.d.ts +9 -2
  55. package/dist/apps/mf-menu/src/views/Catalog/Edit/AddProductPopup/ProductDetail.vue.d.ts +9 -1
  56. package/dist/apps/mf-menu/src/views/Catalog/Edit/AddProductPopup/ProductPrice.vue.d.ts +5 -1
  57. package/dist/apps/mf-menu/src/views/Publish/PublishProgressView.vue.d.ts +198 -0
  58. package/dist/apps/mf-menu/src/views/Publish/PublishRestaurantSelector.vue.d.ts +17 -0
  59. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  60. package/dist/assets/{linked-status-BLErS-90.js → linked-status-Doclb1U6.js} +2 -2
  61. package/dist/assets/{override-menu-Bns6Vkk-.js → override-menu-BWkFILg4.js} +2 -2
  62. package/dist/assets/{validate-menu-v_LSEIFo.js → validate-menu-BS4T4zZm.js} +2 -2
  63. package/dist/{catalog-BuRtQI40.js → catalog-PkvD9BV_.js} +1 -1
  64. package/dist/{catalogSetting-B6GcQUXu.js → catalogSetting-Cd9aIJs2.js} +1 -1
  65. package/dist/{category-CztP5_ri.js → category-1NLh1OVo.js} +1 -1
  66. package/dist/{currency-qSlZ481F.js → currency-J1RZcMOx.js} +1 -1
  67. package/dist/dayjs.min-CXjOYO85.js +6 -0
  68. package/dist/{index-BbIeWj3n.js → index-BPpNi-Hh.js} +3 -3
  69. package/dist/{index-DMdZCp2g.js → index-BiCSP8Fy.js} +1 -1
  70. package/dist/{index-9XceRQZF.js → index-CisutoS9.js} +1 -1
  71. package/dist/{index-CJg7adB_.js → index-D9h3wl03.js} +4 -4
  72. package/dist/{index.vue_vue_type_script_setup_true_lang-CgDE93jl.js → index.vue_vue_type_script_setup_true_lang-B3Eku0Ig.js} +4479 -4432
  73. package/dist/{item-ByIhAQnU.js → item-Ctnd-m_D.js} +956 -925
  74. package/dist/{jszip.min-C4evSkfb.js → jszip.min-Bwz_vC7R.js} +353 -353
  75. package/dist/{menu-VanBYNI5.js → menu-DpTANxng.js} +1 -1
  76. package/dist/{menuV2-Pl32HC6Y.js → menuV2-BBMwj4p0.js} +61 -61
  77. package/dist/mf-menu.css +1 -1
  78. package/dist/{priceTier-COST6Ohr.js → priceTier-DAG2W_y3.js} +1 -1
  79. package/dist/{scheduler-DIFsyx8F.js → scheduler-DYuLkKsc.js} +4 -4
  80. package/dist/{subcategory-D_YPCzZt.js → subcategory-BJ0oG92x.js} +2 -2
  81. package/dist/{toExcel-BTHGNmrM.js → toExcel-C5_3G21q.js} +2 -2
  82. package/dist/tooltip-B5BiPMx9.js +32 -0
  83. package/dist/{unit-scfKpGAE.js → unit-CNwmGzjU.js} +2 -2
  84. package/package.json +2 -3
  85. package/dist/Publish-B1cSJdud.js +0 -586
  86. package/dist/iteration-Brm6sHmJ.js +0 -27
  87. package/dist/tooltip-CQW9YRO5.js +0 -60
@@ -1,586 +0,0 @@
1
- import { defineComponent as G, ref as V, computed as R, onMounted as re, resolveComponent as w, createElementBlock as U, openBlock as y, createVNode as i, createElementVNode as o, toDisplayString as A, unref as r, Fragment as O, renderList as J, createBlock as T, withCtx as L, createCommentVNode as ce, withModifiers as z, h as Y } from "vue";
2
- import { D as ae, c as de } from "./iteration-Brm6sHmJ.js";
3
- import { useRouter as me } from "vue-router";
4
- import { O as pe, b as ge } from "./app-5fxKLAzS.js";
5
- import { B as be, H as ve, G as te, ab as fe, I as Z, J as _e, u as he, A as ye, a3 as Ce } from "./index.vue_vue_type_script_setup_true_lang-CgDE93jl.js";
6
- import { useI18n as W, useCoreStore as ke, RestaurantSelector as we } from "@feedmepos/mf-common";
7
- import { useSnackbar as le, useDialogChild as xe, useDialog as Ve, components as ee } from "@feedmepos/ui-library";
8
- import { _ as Se } from "./TextChip.vue_vue_type_script_setup_true_lang-8frWuZFL.js";
9
- import { _ as Fe } from "./app-C5IMDITK.js";
10
- import { a as Ie, w as Ae, p as Me } from "./tooltip-CQW9YRO5.js";
11
- import { u as $e } from "./discardConfirm-BHni0LNu.js";
12
- function se(S) {
13
- return S ? ae(S).format("DD/MM/YY HH:mm") : "-";
14
- }
15
- function Re(S, F, l) {
16
- const c = (u, f = !1) => {
17
- var v;
18
- return u === void 0 && !f ? "-" : ((v = l.find((x) => x.value === (u || null))) == null ? void 0 : v.label) || "-";
19
- };
20
- return S.map((u) => {
21
- var t;
22
- const f = (t = F.find(({ _id: d }) => d === u._id)) == null ? void 0 : t.posVersion, v = !!f && !!be.Pos.canUse({ feature: ve.F_FEATURE.enum.taxAndServiceChargeV4, posVersion: f }), x = c(u.catalogId);
23
- return {
24
- ...u,
25
- _default: x,
26
- _posTakeaway: u.takeawayCatalog ? c(u.takeawayCatalog) : x,
27
- _additionalCatalogs: (u.additionalCatalogs || []).map((d) => c(d)),
28
- _lastUpdate: se(u.updatedAt),
29
- _pickup: v ? c(u.pickupCatalog, !0) : "-",
30
- _canUsePickup: v,
31
- _posVersion: f || "-"
32
- };
33
- });
34
- }
35
- const De = {
36
- key: 0,
37
- class: "flex items-center justify-center"
38
- }, Pe = {
39
- key: 1,
40
- class: "space-y-16"
41
- }, Ue = { class: "text-fm-color-typo-secondary" }, Le = { class: "space-y-4" }, Be = /* @__PURE__ */ G({
42
- __name: "RevertDialog",
43
- props: {
44
- restaurant: {}
45
- },
46
- setup(S) {
47
- const F = S, l = le(), { custom: c } = te(l), u = V(!1), f = V(null);
48
- async function v() {
49
- await c(
50
- async () => {
51
- var m;
52
- f.value = await fe.readMenuById(((m = F.restaurant.revertConfig) == null ? void 0 : m._id) || "");
53
- },
54
- { isLoading: u }
55
- );
56
- }
57
- const x = R(() => {
58
- var m;
59
- return [
60
- { label: "Main", value: null },
61
- ...(((m = f.value) == null ? void 0 : m.modules.catalog) || []).map((C) => ({
62
- label: C.name,
63
- value: C._id
64
- }))
65
- ];
66
- }), { t } = W(), d = R(() => {
67
- var _;
68
- const m = F.restaurant.revertConfig;
69
- if (!m) return [];
70
- const C = Re(
71
- [
72
- {
73
- ...m,
74
- catalogId: m.catalogId || null
75
- }
76
- ],
77
- ke().restaurants.value,
78
- x.value
79
- )[0];
80
- return [
81
- { label: t("menu.revert.labels.restaurant"), value: F.restaurant.name },
82
- {
83
- label: t("menu.revert.labels.revert_to"),
84
- value: se((_ = f.value) == null ? void 0 : _.updatedAt)
85
- },
86
- { label: t("menu.revert.labels.default"), value: C._default },
87
- { label: t("menu.revert.labels.pos_takeaway"), value: C._posTakeaway },
88
- { label: t("menu.revert.labels.pickup"), value: C._pickup },
89
- {
90
- label: t("menu.revert.labels.additional_catalogs"),
91
- value: C._additionalCatalogs.join(", ")
92
- }
93
- ];
94
- });
95
- re(async () => v());
96
- const { emitData: D } = xe();
97
- return (m, C) => {
98
- const _ = w("FmCircularProgress");
99
- return u.value ? (y(), U("div", De, [
100
- i(_, { size: "lg" })
101
- ])) : (y(), U("div", Pe, [
102
- o("div", Ue, A(r(t)("menu.revert.description", { name: F.restaurant.name })), 1),
103
- o("div", Le, [
104
- (y(!0), U(O, null, J(d.value, (P) => (y(), T(Ie, {
105
- key: P.label,
106
- name: P.label,
107
- value: P.value || "--"
108
- }, null, 8, ["name", "value"]))), 128))
109
- ])
110
- ]));
111
- };
112
- }
113
- }), Ee = { class: "fm-typo-en-title-md-600" }, Oe = { class: "mt-40" }, Te = { class: "fm-typo-en-title-sm-600" }, Ne = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary mt-4 mb-8" }, ze = { class: "flex gap-8 items-center justify-start" }, He = /* @__PURE__ */ G({
114
- __name: "UpdateCatalogDialog",
115
- props: {
116
- catalogs: {
117
- type: Array,
118
- required: !0
119
- }
120
- },
121
- emits: ["onComplete"],
122
- setup(S, { expose: F, emit: l }) {
123
- const { t: c } = W(), u = S;
124
- F({
125
- show: C,
126
- hide: _
127
- });
128
- const f = l;
129
- function v() {
130
- return {
131
- restaurantId: "",
132
- catalogId: void 0,
133
- takeawayCatalog: void 0,
134
- pickupCatalog: null,
135
- additionalCatalogs: []
136
- };
137
- }
138
- const x = R(() => [
139
- {
140
- label: c("menu.publish.update_catalog_dialog.sections.default.use_default"),
141
- value: null
142
- },
143
- ...u.catalogs.map((h) => ({
144
- label: h.name,
145
- value: h._id
146
- }))
147
- ]), t = R(() => [
148
- {
149
- label: c("menu.publish.update_catalog_dialog.sections.default.use_default"),
150
- value: null
151
- },
152
- ...u.catalogs.map((h) => ({
153
- label: h.name,
154
- value: h._id
155
- }))
156
- ]), d = V(v()), D = V(!1), m = V(void 0);
157
- function C(h) {
158
- m.value = h ? Z(h) : v(), d.value = Z(m.value), D.value = !0;
159
- }
160
- function _() {
161
- D.value = !1;
162
- }
163
- const P = $e(
164
- () => !_e.isEqual(m.value, d.value),
165
- () => {
166
- _();
167
- }
168
- );
169
- function M() {
170
- _(), f("onComplete", d.value);
171
- }
172
- return (h, g) => {
173
- const B = w("FmSelect"), N = w("FmCheckbox"), $ = w("FmButton"), E = w("FmSideSheet");
174
- return y(), T(E, {
175
- modelValue: D.value,
176
- "onUpdate:modelValue": g[5] || (g[5] = (b) => D.value = b),
177
- "max-width": 560,
178
- "onOn:clickedAway": r(P)
179
- }, {
180
- "side-sheet-header": L(() => [
181
- o("span", Ee, A(r(c)("menu.publish.update_catalog_dialog.title")), 1)
182
- ]),
183
- "side-sheet-footer": L(() => [
184
- o("div", ze, [
185
- i($, {
186
- label: r(c)("menu.publish.update_catalog_dialog.actions.update"),
187
- size: "lg",
188
- variant: "primary",
189
- onClick: g[4] || (g[4] = () => M())
190
- }, null, 8, ["label"]),
191
- i($, {
192
- label: r(c)("menu.publish.update_catalog_dialog.actions.cancel"),
193
- size: "lg",
194
- variant: "tertiary",
195
- onClick: _
196
- }, null, 8, ["label"])
197
- ])
198
- ]),
199
- default: L(() => [
200
- i(B, {
201
- modelValue: d.value.catalogId,
202
- "onUpdate:modelValue": g[0] || (g[0] = (b) => d.value.catalogId = b),
203
- items: x.value,
204
- class: "mb-24",
205
- label: r(c)("menu.publish.update_catalog_dialog.sections.default.label")
206
- }, null, 8, ["modelValue", "items", "label"]),
207
- i(B, {
208
- modelValue: d.value.takeawayCatalog,
209
- "onUpdate:modelValue": g[1] || (g[1] = (b) => d.value.takeawayCatalog = b),
210
- items: t.value,
211
- class: "mb-24",
212
- label: r(c)("menu.publish.update_catalog_dialog.sections.pos_takeaway.label")
213
- }, null, 8, ["modelValue", "items", "label"]),
214
- i(B, {
215
- modelValue: d.value.pickupCatalog,
216
- "onUpdate:modelValue": g[2] || (g[2] = (b) => d.value.pickupCatalog = b),
217
- items: t.value,
218
- label: r(c)("menu.publish.update_catalog_dialog.sections.pickup.label")
219
- }, null, 8, ["modelValue", "items", "label"]),
220
- o("div", Oe, [
221
- o("div", Te, A(r(c)("menu.publish.update_catalog_dialog.sections.additional.title")), 1),
222
- o("div", Ne, A(r(c)("menu.publish.update_catalog_dialog.sections.additional.subtitle")), 1),
223
- (y(!0), U(O, null, J(S.catalogs, (b) => (y(), U("div", {
224
- key: b._id
225
- }, [
226
- i(N, {
227
- modelValue: d.value.additionalCatalogs,
228
- "onUpdate:modelValue": g[3] || (g[3] = (k) => d.value.additionalCatalogs = k),
229
- label: b.name,
230
- value: b._id
231
- }, null, 8, ["modelValue", "label", "value"])
232
- ]))), 128))
233
- ])
234
- ]),
235
- _: 1
236
- }, 8, ["modelValue", "onOn:clickedAway"]);
237
- };
238
- }
239
- }), Ke = {
240
- class: "flex flex-col p-24 bg-fm-color-neutral-white min-h-[calc(100dvh-56px)] xs:max-h-[calc(100dvh-56px)]"
241
- }, je = {
242
- class: "flex items-center xs:mb-8 mb-24"
243
- }, Ye = {
244
- class: "mr-8"
245
- }, qe = {
246
- class: "fm-typo-en-title-md-600"
247
- }, Ge = {
248
- class: "xs:hidden mr-16"
249
- }, Je = {
250
- class: "xs:hidden"
251
- }, We = {
252
- class: "pb-8 flex justify-between items-start xs:flex-col xs:items-stretch gap-8"
253
- }, Qe = {
254
- class: "grow flex flex-col gap-4"
255
- }, Xe = {
256
- class: "flex gap-8 items-center"
257
- }, Ze = {
258
- class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary"
259
- }, ea = {
260
- class: "space-y-4"
261
- }, aa = {
262
- class: "fm-typo-en-body-lg-600"
263
- }, ta = {
264
- class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary"
265
- }, la = {
266
- class: "flex gap-8"
267
- }, sa = {
268
- class: "xs:block hidden fixed bottom-72 right-16"
269
- }, q = 40, va = /* @__PURE__ */ G({
270
- __name: "Publish",
271
- setup(S) {
272
- const F = me(), {
273
- t: l
274
- } = W(), c = ({
275
- row: e
276
- }) => {
277
- const a = e.status === "latest";
278
- return i(Se, {
279
- label: l(a ? "menu.publish.table.status.latest" : "menu.publish.table.status.outdated"),
280
- variant: a ? "success" : "warning"
281
- }, null);
282
- }, u = V({}), f = [{
283
- accessorKey: "name",
284
- header: () => l("menu.publish.table.columns.restaurant"),
285
- cell: (e) => e.getValue(),
286
- enableSorting: !0
287
- }, {
288
- accessorKey: "catalog",
289
- header: () => l("menu.publish.table.columns.default"),
290
- enableSorting: !1,
291
- cell: (e) => e.getValue().default
292
- }, {
293
- accessorKey: "catalog",
294
- header: () => l("menu.publish.table.columns.pos_takeaway"),
295
- enableSorting: !1,
296
- cell: (e) => e.getValue().takeaway
297
- }, {
298
- accessorKey: "catalog",
299
- header: () => l("menu.publish.table.columns.pickup"),
300
- enableSorting: !1,
301
- cell: (e) => e.getValue().pickup
302
- }, {
303
- accessorKey: "updatedAt",
304
- header: () => l("menu.publish.table.columns.version"),
305
- enableSorting: !1,
306
- cell: (e) => {
307
- const a = e.getValue();
308
- return _(a);
309
- }
310
- }, {
311
- accessorKey: "status",
312
- header: () => l("menu.common.labels.status"),
313
- enableSorting: !1,
314
- cell: (e) => i(c, {
315
- row: e.row.original
316
- }, null)
317
- }, {
318
- accessorKey: "_id",
319
- header: "",
320
- size: 52,
321
- enableSorting: !1,
322
- cell: (e) => {
323
- const a = e.row.original;
324
- return Y("div", {
325
- class: "flex justify-end gap-8"
326
- }, [D.value && a.revertConfig ? Ae(Y(ee.FmButton, {
327
- prependIcon: "undo",
328
- variant: "secondary",
329
- onClick: z(async () => {
330
- await m(e.row.original);
331
- }, ["stop", "prevent"])
332
- }), l("menu.publish.actions.revert")) : null, Y(ee.FmButton, {
333
- label: l("menu.publish.actions.publish"),
334
- icon: "ios_share",
335
- variant: "secondary",
336
- onClick: z(async () => {
337
- const s = g(e.row.original);
338
- await E(s);
339
- }, ["stop", "prevent"])
340
- })]);
341
- },
342
- meta: {
343
- width: "150px"
344
- }
345
- }], v = V(""), x = V(), t = he(), d = Ve(), D = R(() => t.version !== ye.F_MENU_VERSION.enum.v3);
346
- async function m(e) {
347
- e.revertConfig && d.open({
348
- title: "Revert menu",
349
- contentComponent: Be,
350
- contentComponentProps: {
351
- restaurant: e
352
- },
353
- primaryActions: {
354
- text: "Revert",
355
- close: !0
356
- },
357
- secondaryActions: {
358
- text: "Cancel",
359
- close: !0
360
- }
361
- }).onPrimary(async () => {
362
- await $.minor(async () => {
363
- await t.revertRestaurantMenu(e._id);
364
- }, {
365
- customId: e._id,
366
- message: `Revert menu of ${e.name}`
367
- });
368
- });
369
- }
370
- const C = R(() => l("menu.publish.labels.main_version", {
371
- version: _(t.state.menu.updatedAt)
372
- }));
373
- function _(e) {
374
- return e ? ae(e).format("DD/MM/YYYY hh:mmA") : "";
375
- }
376
- const P = R(() => t.state.menu.modules.catalog), M = R(() => $.queue.value.some((e) => e.id === t.state.menu._id));
377
- function h(e) {
378
- var a;
379
- return e ? ((a = P.value.find((s) => s._id === e)) == null ? void 0 : a.name) ?? l("menu.publish.labels.catalog.invalid") : l("menu.publish.labels.catalog.main");
380
- }
381
- function g(e) {
382
- return {
383
- restaurantId: e._id,
384
- catalogId: e.catalogId,
385
- takeawayCatalog: e.takeawayCatalog,
386
- pickupCatalog: e.pickupCatalog || null,
387
- additionalCatalogs: e.additionalCatalogs
388
- };
389
- }
390
- function B(e) {
391
- var s;
392
- const a = g(e);
393
- (s = x.value) == null || s.show(a);
394
- }
395
- const N = le(), $ = te(N);
396
- async function E(e) {
397
- var s;
398
- const a = (s = k.value.find((p) => p._id === e.restaurantId)) == null ? void 0 : s.name;
399
- await $.minor(async () => await t.publishMenu(e), {
400
- customId: t.state.menu._id,
401
- message: `Publishing menu for ${a}`,
402
- successMessage: `Published to ${a}`
403
- });
404
- }
405
- const b = V(null), k = R(() => {
406
- const e = v.value.toLowerCase(), a = t.state.menu.updatedAt;
407
- return t.state.restaurants.filter((s) => {
408
- var p;
409
- return !b.value || ((p = b.value) == null ? void 0 : p.includes(s._id));
410
- }).map((s) => ({
411
- ...s,
412
- catalog: {
413
- default: h(s.catalogId),
414
- takeaway: h(s.takeawayCatalog),
415
- pickup: h(s.pickupCatalog)
416
- },
417
- status: a === s.updatedAt ? "latest" : "outdated"
418
- })).filter((s) => pe(s, H.value)).filter(({
419
- name: s,
420
- catalog: p
421
- }) => e ? s.toLowerCase().includes(e) || p.default.toLowerCase().includes(e) || p.takeaway.toLowerCase().includes(e) || p.pickup.toLowerCase().includes(e) : !0);
422
- }), H = V({
423
- logic: "AND",
424
- rules: []
425
- }), oe = [{
426
- type: "string",
427
- key: "status",
428
- entity: "menu",
429
- values: ["latest", "outdated"]
430
- }];
431
- async function ne(e) {
432
- const a = e.map((I) => I._id), s = de(a, q), p = V("");
433
- await $.minor(async () => {
434
- await Me({
435
- items: s,
436
- processor: async (I) => await t.publishMultipleMenu(I, !1),
437
- batchSize: 1,
438
- batchDelay: 50,
439
- // 50ms delay to reduce server load
440
- onProgress({
441
- total: I,
442
- batchStart: K,
443
- batchEnd: X
444
- }) {
445
- const j = (K - 1) * q;
446
- p.value = `Processed ${j} of ${e.length} restaurants`;
447
- }
448
- }), await t.readRestaurants(), await t.readMenu();
449
- }, {
450
- customId: t.state.menu._id,
451
- message: "Publishing menu",
452
- caption: p,
453
- successMessage: `Published to ${e.length} restaurant${e.length > 1 ? "s" : ""}`
454
- });
455
- }
456
- async function ie() {
457
- await $.minor(async () => await t.readRestaurants(), {
458
- customId: t.state.menu._id
459
- });
460
- }
461
- async function Q() {
462
- if (M.value) return;
463
- const e = Object.keys(u.value).filter((p) => u.value[p]), a = e.length === 0 || e.length === k.value.length ? k.value : k.value.filter((p) => e.includes(p._id));
464
- k.value.length === t.state.restaurants.length && (e.length === 0 || e.length === k.value.length) ? t.state.restaurants.length > q ? (t.publishAllMenu(), N.open({
465
- type: "info",
466
- title: "Publish menu request sent"
467
- })) : await $.minor(async () => await t.publishAllMenu(), {
468
- customId: t.state.menu._id
469
- }) : await ne(a);
470
- }
471
- return (e, a) => {
472
- const s = w("FmChip"), p = w("FmSpacer"), I = w("FmButton"), K = w("FmSearch"), X = w("FmTable"), j = w("FmListItem"), ue = w("FmList");
473
- return y(), U(O, null, [o("div", Ke, [o("div", je, [o("div", Ye, [o("div", qe, A(r(l)("menu.publish.title")), 1), a[8] || (a[8] = o("div", {
474
- class: "hidden xs:block fm-typo-en-body-sm-400 text-fm-color-typo-secondary"
475
- }, null, -1))]), i(s, {
476
- label: C.value,
477
- class: "xs:hidden text-fm-color-primary bg-fm-color-system-warning-100"
478
- }, null, 8, ["label"]), i(p), o("div", Ge, [i(I, {
479
- disabled: M.value,
480
- label: r(l)("menu.publish.actions.refresh"),
481
- variant: "secondary",
482
- onClick: a[0] || (a[0] = () => ie())
483
- }, null, 8, ["disabled", "label"])]), o("div", Je, [i(I, {
484
- disabled: M.value,
485
- icon: "ios_share",
486
- label: r(l)("menu.publish.actions.publish_all"),
487
- variant: "primary",
488
- onClick: a[1] || (a[1] = () => Q())
489
- }, null, 8, ["disabled", "label"])])]), o("div", We, [i(r(we), {
490
- multiple: "",
491
- modelValue: b.value,
492
- "onUpdate:modelValue": a[3] || (a[3] = (n) => b.value = n)
493
- }, {
494
- "append-right": L(() => [i(r(ge), {
495
- modelValue: H.value,
496
- "onUpdate:modelValue": a[2] || (a[2] = (n) => H.value = n),
497
- attributes: oe
498
- }, null, 8, ["modelValue"])]),
499
- _: 1
500
- }, 8, ["modelValue"]), i(K, {
501
- modelValue: v.value,
502
- "onUpdate:modelValue": a[4] || (a[4] = (n) => v.value = n),
503
- autofocus: "",
504
- class: "w-[320px] xs:w-full",
505
- placeholder: r(l)("menu.publish.table.search.placeholder")
506
- }, null, 8, ["modelValue", "placeholder"])]), k.value.length > 0 ? (y(), U(O, {
507
- key: 0
508
- }, [i(Fe, {
509
- class: "xs:hidden block"
510
- }, {
511
- default: L(() => [i(X, {
512
- modelValue: u.value,
513
- "onUpdate:modelValue": a[5] || (a[5] = (n) => u.value = n),
514
- "get-row-id": (n) => n._id,
515
- "column-defs": f,
516
- loading: M.value,
517
- "page-size": k.value.length,
518
- "row-data": k.value,
519
- shrinkAt: !1,
520
- virtual: !0,
521
- selection: "multiple",
522
- "hide-footer": "",
523
- "pin-header-row": "",
524
- onRowClick: a[6] || (a[6] = (n) => B(n.original))
525
- }, null, 8, ["modelValue", "get-row-id", "loading", "page-size", "row-data"])]),
526
- _: 1
527
- }), i(ue, {
528
- class: "flex-col flex-1 min-h-0 overflow-auto xs:flex hidden w-full pb-64",
529
- separator: ""
530
- }, {
531
- default: L(() => [(y(!0), U(O, null, J(k.value, (n) => (y(), T(j, {
532
- key: n._id,
533
- label: n.name,
534
- style: {
535
- padding: "12px 0 !important"
536
- },
537
- onClick: () => B(n)
538
- }, {
539
- default: L(() => [o("div", Qe, [o("div", Xe, [o("div", Ze, A(_(n.updatedAt)), 1), i(c, {
540
- row: n
541
- }, null, 8, ["row"])]), o("div", ea, [o("div", aa, A(n.name), 1), o("div", ta, [o("div", null, "Default: " + A(n.catalog.default), 1), o("div", null, "POS takeaway: " + A(n.catalog.takeaway), 1), o("div", null, "Pickup: " + A(n.catalog.pickup), 1)])])]), o("div", la, [D.value && n.revertConfig ? (y(), T(I, {
542
- key: 0,
543
- disabled: M.value,
544
- icon: "undo",
545
- variant: "tertiary",
546
- onClick: z(() => m(n), ["stop"])
547
- }, null, 8, ["disabled", "onClick"])) : ce("", !0), i(I, {
548
- disabled: M.value,
549
- icon: "ios_share",
550
- variant: "tertiary",
551
- onClick: z(() => E(g(n)), ["stop"])
552
- }, null, 8, ["disabled", "onClick"])])]),
553
- _: 2
554
- }, 1032, ["label", "onClick"]))), 128))]),
555
- _: 1
556
- })], 64)) : (y(), T(r(Ce), {
557
- key: 1,
558
- title: r(l)("menu.publish.empty.title"),
559
- subtitle: r(l)("menu.publish.empty.subtitle"),
560
- action: {
561
- text: r(l)("menu.publish.empty.action"),
562
- icon: "add",
563
- callback: () => {
564
- r(F).push({
565
- name: "$settings-my-business"
566
- });
567
- }
568
- }
569
- }, null, 8, ["title", "subtitle", "action"]))]), o("div", sa, [i(I, {
570
- disabled: M.value,
571
- icon: "ios_share",
572
- label: r(l)("menu.publish.actions.publish_all"),
573
- variant: "fab",
574
- onClick: a[7] || (a[7] = () => Q())
575
- }, null, 8, ["disabled", "label"])]), i(He, {
576
- ref_key: "updateCatalogDialogRef",
577
- ref: x,
578
- catalogs: P.value,
579
- onOnComplete: E
580
- }, null, 8, ["catalogs"])], 64);
581
- };
582
- }
583
- });
584
- export {
585
- va as default
586
- };
@@ -1,27 +0,0 @@
1
- import { g as d, al as g } from "./index.vue_vue_type_script_setup_true_lang-CgDE93jl.js";
2
- var h = g();
3
- const v = /* @__PURE__ */ d(h);
4
- function n(e, r) {
5
- return r === void 0 ? e : typeof r == "function" ? r(e) : `${e[r]}`;
6
- }
7
- function y(e, r) {
8
- return [...e].sort((s, t) => {
9
- let u = n(s, r == null ? void 0 : r.selector), a = n(t, r == null ? void 0 : r.selector);
10
- if (r != null && r.descending) {
11
- const [l, f] = [u, a];
12
- u = f, a = l;
13
- }
14
- return u.localeCompare(a, "en", { numeric: !0, sensitivity: "base" });
15
- });
16
- }
17
- function D(e, r) {
18
- const c = [];
19
- for (let s = 0; s < e.length; s += r)
20
- c.push(e.slice(s, s + r > e.length ? e.length : s + r));
21
- return c;
22
- }
23
- export {
24
- v as D,
25
- D as c,
26
- y as s
27
- };
@@ -1,60 +0,0 @@
1
- import { defineComponent as v, createElementBlock as w, openBlock as B, createElementVNode as d, toDisplayString as f, resolveDirective as P, withDirectives as S } from "vue";
2
- const x = { class: "space-y-4" }, D = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, E = { class: "fm-typo-en-body-lg-600" }, I = /* @__PURE__ */ v({
3
- __name: "InfoBasic",
4
- props: {
5
- name: {
6
- type: String,
7
- required: !0
8
- },
9
- value: {
10
- type: String,
11
- required: !0
12
- }
13
- },
14
- setup(s) {
15
- return (t, n) => (B(), w("div", x, [
16
- d("div", D, f(s.name), 1),
17
- d("div", E, f(s.value), 1)
18
- ]));
19
- }
20
- });
21
- async function M(s) {
22
- const {
23
- items: t,
24
- processor: n,
25
- batchSize: o = 5,
26
- batchDelay: g = 200,
27
- onProgress: c,
28
- progressMessage: a,
29
- onBatchEnd: r
30
- } = s, i = t.length, l = [];
31
- for (let e = 0; e < t.length; e += o) {
32
- const y = t.slice(e, e + o), h = e + 1, m = Math.min(e + o, t.length), u = `Processing items ${h}-${m}/${i}...`;
33
- a && (a.value = u), c && c({
34
- current: e,
35
- total: i,
36
- batchStart: h,
37
- batchEnd: m,
38
- message: u
39
- });
40
- const _ = y.map(n), p = await Promise.all(_);
41
- l.push(...p), r && r({
42
- batchIndex: Math.floor(e / o),
43
- results: p
44
- }), e + o < t.length && await new Promise((b) => setTimeout(b, g));
45
- }
46
- return l;
47
- }
48
- function $(s, t, n = 110) {
49
- const o = P("tooltip");
50
- return S(s, [[o, { content: t, zIndex: n }]]);
51
- }
52
- function k(s, t = 110) {
53
- return { content: s, zIndex: t };
54
- }
55
- export {
56
- k as _,
57
- I as a,
58
- M as p,
59
- $ as w
60
- };