@feedmepos/mf-menu 0.31.42-beta.2 → 0.31.43-prod

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 (67) hide show
  1. package/dist/{App-BIRrS3La.js → App-DudzVdxN.js} +9 -9
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-Ch7-ic6J.js → ApplyProduct.vue_vue_type_script_setup_true_lang-Cx6BY_nW.js} +3 -3
  3. package/dist/{Catalog-B605xVZR.js → Catalog-BMuTQtqx.js} +6 -6
  4. package/dist/{Category-BXoK_pgb.js → Category-CUZ_xxMs.js} +4 -4
  5. package/dist/{Category-BoRXo44K.js → Category-NDkmqvdw.js} +6 -6
  6. package/dist/{CookingGuide-BauVrnFT.js → CookingGuide-3SgKZVRT.js} +4 -4
  7. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-BbRLZXiA.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-FuOBls0m.js} +1 -1
  8. package/dist/{Group-DRbXetRS.js → Group-ClTlb1X2.js} +1 -1
  9. package/dist/{Group-CxV0o5XZ.js → Group-CvUWYuaR.js} +3 -3
  10. package/dist/{Group.vue_vue_type_script_setup_true_lang-xLMGdgte.js → Group.vue_vue_type_script_setup_true_lang-jbtZjvRL.js} +7 -7
  11. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-DX-FW2lM.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-C_nvZOlm.js} +5 -5
  12. package/dist/{ImportProductDialog.vue_vue_type_script_setup_true_lang-Dk-hs_07.js → ImportProductDialog.vue_vue_type_script_setup_true_lang-BiwIRHka.js} +15325 -15684
  13. package/dist/{Ingredient-awz_D3J6.js → Ingredient-C3a4gt_G.js} +3 -3
  14. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-TYmfJm0p.js → InventoryBinding.vue_vue_type_script_setup_true_lang-CYoMl-_4.js} +2 -2
  15. package/dist/{LinkProductSideSheet-CpLGN83Z.js → LinkProductSideSheet-4GgEt5LN.js} +3 -3
  16. package/dist/{MenuSetting-Zd37XWJ4.js → MenuSetting-DMDHHBs2.js} +5 -5
  17. package/dist/{PrintRoute-PgumrAcK.js → PrintRoute-D8mE_R6M.js} +4 -4
  18. package/dist/{Product-Cf4qQ2Hs.js → Product-B7oT5kJ6.js} +1 -1
  19. package/dist/{Product.vue_vue_type_script_setup_true_lang-DfDnuNhp.js → Product.vue_vue_type_script_setup_true_lang-CUn6_bGq.js} +13 -13
  20. package/dist/{ProductInternalTools-BBhv0ttl.js → ProductInternalTools-BPnnO5dR.js} +6 -6
  21. package/dist/Products-iYZPVp8Y.js +675 -0
  22. package/dist/{Publish-CuoBeIsQ.js → Publish-BCFYIz0P.js} +3 -3
  23. package/dist/{Recipe-CC6dLu9a.js → Recipe-Be6kHRWd.js} +4 -4
  24. package/dist/{Scheduler-CZzjfN-Y.js → Scheduler-DTULqkZU.js} +3 -3
  25. package/dist/{ServingSequence-BxEf5yPv.js → ServingSequence-1B2t3IOz.js} +3 -3
  26. package/dist/{Setting-CBTJrbRH.js → Setting-Bfx_kAhO.js} +5 -5
  27. package/dist/{Subcategory-0-emUIEr.js → Subcategory-CspNxL0A.js} +4 -4
  28. package/dist/{Takeaway-z7WRCQCI.js → Takeaway-8ZrctPk8.js} +4 -4
  29. package/dist/{Takeaway-BA_VKKUw.js → Takeaway-DS9QWvP4.js} +1 -1
  30. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-CeKSmOQV.js → Takeaway.vue_vue_type_script_setup_true_lang-DPtA07uy.js} +5 -5
  31. package/dist/{Thumbnail.vue_vue_type_script_setup_true_lang-tqQkazvr.js → Thumbnail.vue_vue_type_script_setup_true_lang-CdaiLu5o.js} +4 -4
  32. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-CN8Zglcy.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-C39Fg0ZP.js} +15 -15
  33. package/dist/{Unit-CndLlk_X.js → Unit-qDXlKpxA.js} +2 -2
  34. package/dist/{Variant-DdeZ3f6x.js → Variant-tGw0WZcw.js} +3 -3
  35. package/dist/{_id_-D9_6BBVX.js → _id_-nUIFi5Lq.js} +10 -10
  36. package/dist/{app-BAhzMO2K.js → app-B-AEzoH6.js} +1 -1
  37. package/dist/{app-CoO3BIEu.js → app-BPqH1NSp.js} +25 -25
  38. package/dist/app.js +1 -1
  39. package/dist/apps/mf-menu/src/helper/import-export-utils.d.ts +123 -0
  40. package/dist/apps/mf-menu/src/helper/menuExport.d.ts +32 -0
  41. package/dist/apps/mf-menu/src/helper/{import-export.d.ts → menuImport.d.ts} +3 -127
  42. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  43. package/dist/assets/{linked-status-BBTvedGe.js → linked-status-CXZIhnqe.js} +2 -2
  44. package/dist/assets/{override-menu-rN2lSipP.js → override-menu-xw0Dqkm6.js} +2 -2
  45. package/dist/assets/{validate-menu-DlbGSq3_.js → validate-menu-ByQAWT_D.js} +2 -2
  46. package/dist/{catalog-Bv-at1c9.js → catalog-DLqIkhbq.js} +1 -1
  47. package/dist/{catalogSetting-CdOR5osN.js → catalogSetting-CD1xVSYG.js} +1 -1
  48. package/dist/{category-BkiR9ct2.js → category-CrJofVZH.js} +1 -1
  49. package/dist/{currency-5Q0W6WOS.js → currency-DvON4euj.js} +1 -1
  50. package/dist/{customAttributes-DYZ1-Ak2.js → customAttributes-C81bk6Ag.js} +1 -1
  51. package/dist/{dayjs.min-DObqJaNF.js → dayjs.min-DkxnzHIf.js} +1 -1
  52. package/dist/{index-B4MWwakK.js → index-Bi-tjPhn.js} +1 -1
  53. package/dist/{index-CAt03gJQ.js → index-DoMiLJrG.js} +3 -3
  54. package/dist/{index-7Gro_wfy.js → index-Y2Y_5NeG.js} +1 -1
  55. package/dist/{index-RfSFByAn.js → index-k8JBMmlm.js} +4 -4
  56. package/dist/{item-UogIz2VR.js → item-BI77lImE.js} +386 -386
  57. package/dist/{jszip.min-9fOTOLzt.js → jszip.min-K1Xi3iCG.js} +689 -689
  58. package/dist/{menu-DA-IYwFx.js → menu-Cg_li9fp.js} +7 -7
  59. package/dist/{menu-onwhSbn-.js → menu-v8tF5owz.js} +1 -1
  60. package/dist/{menuV2-1-YKf6_A.js → menuV2-BmOhyQh2.js} +58 -58
  61. package/dist/{priceTier-1gQSMcbN.js → priceTier-D89QKPQZ.js} +1 -1
  62. package/dist/{scheduler-BfZTL5YU.js → scheduler-CFnDK-I3.js} +4 -4
  63. package/dist/{subcategory-JVtc0Fwc.js → subcategory-CyIY_sdl.js} +2 -2
  64. package/dist/{toExcel-B4k_d7u6.js → toExcel-DIGelQ9s.js} +2 -2
  65. package/dist/{unit-DgmJTaJY.js → unit-Bk_zO_6l.js} +2 -2
  66. package/package.json +2 -2
  67. package/dist/Products-FdE9wKzA.js +0 -286
@@ -1,286 +0,0 @@
1
- import { defineComponent as Y, computed as v, ref as G, resolveComponent as w, createBlock as y, openBlock as p, unref as e, withCtx as d, createElementVNode as u, toDisplayString as O, createVNode as o, createCommentVNode as j, createElementBlock as N, Fragment as B } from "vue";
2
- import { D as S } from "./dayjs.min-DObqJaNF.js";
3
- import { M as oe, w as ne } from "./ImportProductDialog.vue_vue_type_script_setup_true_lang-Dk-hs_07.js";
4
- import { J as ae, F as re } from "./jszip.min-9fOTOLzt.js";
5
- import { u as J, G as Z, B as P, e as A, A as K, D as se, H as R, I as z } from "./menu-DA-IYwFx.js";
6
- import { useCoreStore as ie, useI18n as le } from "@feedmepos/mf-common";
7
- import { useDialog as Q, useDialogChild as ue, useSnackbar as W, useBreakpoints as ce, FmButtonVariant as $, FmButtonColorThemeVariant as x } from "@feedmepos/ui-library";
8
- import { _ as V } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js";
9
- import { _ as me, a as L } from "./BottomSheetMenuItem.vue_vue_type_script_setup_true_lang-DhrXKy3b.js";
10
- import { _ as de } from "./PageLayout.vue_vue_type_script_setup_true_lang-2f0QfweQ.js";
11
- import { u as pe, a as fe } from "./menu-onwhSbn-.js";
12
- import { u as _e } from "./item-UogIz2VR.js";
13
- import { _ as U, a as ve } from "./Product.vue_vue_type_script_setup_true_lang-DfDnuNhp.js";
14
- import { L as q } from "./LinkProductSideSheet-CpLGN83Z.js";
15
- import { _ as ge } from "./TreeEditorOpenner.vue_vue_type_script_setup_true_lang-CN8Zglcy.js";
16
- import { u as be } from "./Thumbnail.vue_vue_type_script_setup_true_lang-tqQkazvr.js";
17
- import { m as ye } from "./toExcel-B4k_d7u6.js";
18
- const ke = { class: "space-y-24 mb-24" }, xe = ["innerHTML"], Me = { class: "flex justify-end gap-8" }, he = /* @__PURE__ */ Y({
19
- __name: "ConfirmActionDialog",
20
- props: {
21
- description: {},
22
- value: {},
23
- message: { default: "To confirm your action, type <b>[[value]]</b> in the text field." }
24
- },
25
- setup(F) {
26
- const t = F, M = v(() => t.message.replace("[[value]]", t.value)), n = G(""), h = Q(), { emitAction: k } = ue();
27
- return (s, i) => {
28
- const f = w("FmTextField"), c = w("FmButton"), g = w("FmForm");
29
- return p(), y(g, {
30
- "on-validation-success": () => e(k)("primary"),
31
- "blame-form-child-on-validation-failed": ""
32
- }, {
33
- default: d(() => [
34
- u("div", ke, [
35
- u("div", null, O(s.description), 1),
36
- u("div", { innerHTML: M.value }, null, 8, xe),
37
- u("div", null, [
38
- o(f, {
39
- modelValue: n.value,
40
- "onUpdate:modelValue": [
41
- i[0] || (i[0] = (l) => n.value = l),
42
- i[1] || (i[1] = () => {
43
- })
44
- ],
45
- placeholder: s.value,
46
- rules: [(l) => l === s.value || "Value does not match"]
47
- }, null, 8, ["modelValue", "placeholder", "rules"])
48
- ]),
49
- u("div", Me, [
50
- o(c, {
51
- label: "Cancel",
52
- variant: "secondary",
53
- onClick: i[2] || (i[2] = (l) => e(h).close())
54
- }),
55
- o(c, {
56
- label: "Confirm",
57
- type: "submit"
58
- })
59
- ])
60
- ])
61
- ]),
62
- _: 1
63
- }, 8, ["on-validation-success"]);
64
- };
65
- }
66
- }), Se = /* @__PURE__ */ Y({
67
- __name: "Migrate",
68
- setup(F) {
69
- const t = J(), M = ie(), n = W(), { minor: h } = Z(n), k = G(!1), s = Q();
70
- async function i() {
71
- f.value || k.value || s.open({
72
- title: "Migrate to new version",
73
- contentComponent: he,
74
- contentComponentProps: {
75
- value: "MIGRATE",
76
- description: "Do you want to migrate to new version? Once migrate it will unable to revert to the older version."
77
- }
78
- }).onPrimary(async () => {
79
- s.close(), await h(
80
- async () => {
81
- await t.migrate(), setTimeout(() => {
82
- window.location.reload();
83
- }, 2e3);
84
- },
85
- {
86
- isLoading: k,
87
- customId: t.state.menu._id,
88
- message: "Migrating menu",
89
- successMessage: "Migration completed"
90
- }
91
- );
92
- });
93
- }
94
- const f = v(() => {
95
- const c = M.restaurants.value;
96
- if (!c.length) return "Required at least one restaurant to migrate";
97
- const g = c.filter((b) => !b.posVersion || !P.Pos.canUse({ feature: A.F_FEATURE.enum.menuV4, posVersion: b.posVersion }));
98
- return g.length ? `Upgrade POS to V${P.Pos.minVersionToUse(A.F_FEATURE.enum.menuV4)} to use new menu: ${g.map((b) => b.profile.name).join(", ")}` : null;
99
- });
100
- return v(() => f.value ? f.value : "Migrate your menu to new version to enjoy more features. Content of new menu will remain the same as current."), (c, g) => {
101
- const l = w("FmSnackbar");
102
- return !f.value && e(t).version !== e(K.F_MENU_VERSION).enum.v4 ? (p(), y(l, {
103
- key: 0,
104
- class: "!max-w-full",
105
- title: "New version of menu is out now!",
106
- description: "Migrate your current menu version to the latest to enjoy more features such as product sequential dispatch, serving sequence, scheduler and more! Your content and current setting will be preserved.",
107
- variant: "info",
108
- action: "Migrate",
109
- "z-index": 0,
110
- onOnAction: i
111
- })) : j("", !0);
112
- };
113
- }
114
- }), we = { class: "flex-1 flex justify-between gap-8 pl-8" }, Ce = { class: "flex items-center" }, Fe = { class: "bg-fm-color-neutral-gray-100 rounded-md px-8 py-4" }, $e = { class: "fm-typo-en-body-md-600 font-semibold" }, Ve = { class: "flex gap-8" }, je = /* @__PURE__ */ Y({
115
- __name: "Products",
116
- setup(F) {
117
- const { t } = le(), M = Z(W()), n = J(), h = v(() => n.rules.item), k = _e(), s = v(() => !n.state.currentSchedulerId), { selectedCategories: i } = pe(), f = v(() => ({
118
- ...se.menuV4ToV3(R(n.state.menu)),
119
- _id: n.state.menu._id,
120
- _rev: n.state.menu._rev
121
- })), c = v(() => {
122
- const m = z.flatten(i.value.map((a) => a.items));
123
- return z.uniqBy(m, (a) => a._id).length;
124
- });
125
- async function g(m, a) {
126
- const _ = new ae();
127
- for (let C = 0; C < m.length; C++) {
128
- const te = await m[C].xlsx.writeBuffer();
129
- _.file(`${a[C]}.xlsx`, te);
130
- }
131
- const r = await _.generateAsync({ type: "blob" });
132
- re.saveAs(r, `books_${S().format("DD-MM-YYYY_HH-mm")}.zip`);
133
- }
134
- async function l() {
135
- await M.minor(
136
- async () => {
137
- if (await n.readMenu(), n.version === K.F_MENU_VERSION.enum.v4) {
138
- const m = R(n.state.menu), a = new oe(m).exportToExcel(), _ = [
139
- `menu_${S().format("DD-MM-YYYY_HH-mm")}`,
140
- `addonGroup_${S().format("DD-MM-YYYY_HH-mm")}`,
141
- `itemLinkedAddon${S().format("DD-MM-YYYY_HH-mm")}`
142
- ];
143
- g(a, _);
144
- } else {
145
- const m = ye(f.value), a = `menu_${S().format("DD-MM-YYYY_HH-mm")}`;
146
- await ne(m, `${a}.xlsx`, {
147
- bookType: "xlsx",
148
- bookSST: !1,
149
- type: "array"
150
- });
151
- }
152
- },
153
- { successMessage: "Menu exported", customId: n.state.menu._id }
154
- );
155
- }
156
- const {
157
- menuItems: b,
158
- categories: E,
159
- linkItemRules: D,
160
- handleSubmit: T,
161
- catalogManager: I,
162
- schedulerManager: H
163
- } = be(!1), X = ce(), ee = v(() => X.breakpoints.value.xs);
164
- return fe().resetOnMount(), (m, a) => {
165
- const _ = w("fm-button");
166
- return p(), y(de, {
167
- heading: e(t)("menu.products.title")
168
- }, {
169
- default: d(() => [
170
- o(Se),
171
- o(ve)
172
- ]),
173
- "append-heading": d(() => [
174
- u("div", we, [
175
- u("div", Ce, [
176
- u("div", Fe, [
177
- u("p", $e, O(c.value), 1)
178
- ])
179
- ]),
180
- u("div", Ve, [
181
- ee.value ? (p(), y(U, { key: 1 }, {
182
- default: d(({ trigger: r }) => [
183
- o(me, null, {
184
- default: d(() => [
185
- o(L, {
186
- label: e(t)("menu.products.actions.export"),
187
- onClick: l
188
- }, null, 8, ["label"]),
189
- o(L, {
190
- label: e(t)("menu.products.actions.import"),
191
- onClick: r
192
- }, null, 8, ["label", "onClick"])
193
- ]),
194
- _: 2
195
- }, 1024)
196
- ]),
197
- _: 1
198
- })) : (p(), N(B, { key: 0 }, [
199
- o(ge, null, {
200
- default: d(({ trigger: r }) => [
201
- o(_, {
202
- label: e(t)("menu.tree_editor.title"),
203
- "bg-color": e(x).NeutralGray100,
204
- "text-color": e(x).TypoSecondary,
205
- variant: e($).Primary,
206
- onClick: r
207
- }, null, 8, ["label", "bg-color", "text-color", "variant", "onClick"])
208
- ]),
209
- _: 1
210
- }),
211
- o(_, {
212
- "bg-color": e(x).NeutralGray100,
213
- "text-color": e(x).TypoSecondary,
214
- variant: e($).Primary,
215
- label: e(t)("menu.products.actions.export"),
216
- onClick: l
217
- }, null, 8, ["bg-color", "text-color", "variant", "label"]),
218
- o(U, null, {
219
- default: d(({ trigger: r }) => [
220
- o(_, {
221
- "bg-color": e(x).NeutralGray100,
222
- "text-color": e(x).TypoSecondary,
223
- variant: e($).Primary,
224
- label: e(t)("menu.products.actions.import"),
225
- onClick: r
226
- }, null, 8, ["bg-color", "text-color", "variant", "label", "onClick"])
227
- ]),
228
- _: 1
229
- })
230
- ], 64)),
231
- c.value > 0 ? (p(), N(B, { key: 2 }, [
232
- h.value.create ? (p(), y(V, {
233
- key: 0,
234
- label: e(t)("menu.products.actions.add"),
235
- "prepend-icon": "add",
236
- onClick: a[0] || (a[0] = (r) => e(k).create(null))
237
- }, null, 8, ["label"])) : s.value ? (p(), y(q, {
238
- key: 1,
239
- "categorized-items": e(I).linkableItems.value,
240
- "initial-value": e(I).currentItems.value,
241
- "show-variant": !1,
242
- "menu-items": e(b),
243
- categories: e(E),
244
- "link-item-rules": e(D),
245
- "no-scheduler": s.value,
246
- onSubmit: e(T)
247
- }, {
248
- default: d(({ trigger: r }) => [
249
- o(V, {
250
- label: e(t)("menu.products.actions.link"),
251
- "prepend-icon": "link",
252
- onClick: r
253
- }, null, 8, ["label", "onClick"])
254
- ]),
255
- _: 1
256
- }, 8, ["categorized-items", "initial-value", "menu-items", "categories", "link-item-rules", "no-scheduler", "onSubmit"])) : (p(), y(q, {
257
- key: 2,
258
- "categorized-items": e(H).linkableItems.value,
259
- "initial-value": e(H).currentItems.value,
260
- "show-variant": !1,
261
- "menu-items": e(b),
262
- categories: e(E),
263
- "link-item-rules": e(D),
264
- "no-scheduler": s.value,
265
- onSubmit: e(T)
266
- }, {
267
- default: d(({ trigger: r }) => [
268
- o(V, {
269
- label: e(t)("menu.products.actions.apply_scheduler"),
270
- onClick: r
271
- }, null, 8, ["label", "onClick"])
272
- ]),
273
- _: 1
274
- }, 8, ["categorized-items", "initial-value", "menu-items", "categories", "link-item-rules", "no-scheduler", "onSubmit"]))
275
- ], 64)) : j("", !0)
276
- ])
277
- ])
278
- ]),
279
- _: 1
280
- }, 8, ["heading"]);
281
- };
282
- }
283
- });
284
- export {
285
- je as default
286
- };