@feedmepos/mf-menu 0.32.13 → 0.32.15

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 (73) hide show
  1. package/dist/{App-D70-FH5L.js → App-BFUyUrdi.js} +16 -9
  2. package/dist/{ApplyProduct.vue_vue_type_script_setup_true_lang-BJdja2N0.js → ApplyProduct.vue_vue_type_script_setup_true_lang-BbjRIN7Z.js} +20 -20
  3. package/dist/{Catalog-WMpN3a0p.js → Catalog-B6VFmr6e.js} +20 -20
  4. package/dist/{Category-C_VsQIHU.js → Category-B-bTjNFI.js} +24 -24
  5. package/dist/{Category-BwHhFTZ-.js → Category-C8uGxpST.js} +84 -84
  6. package/dist/{CookingGuide-D9RNkYDL.js → CookingGuide-BL3uetlO.js} +65 -65
  7. package/dist/{CustomAttributeChip.vue_vue_type_script_setup_true_lang-DtmrxDZm.js → CustomAttributeChip.vue_vue_type_script_setup_true_lang-8yIVwc8E.js} +1 -1
  8. package/dist/{Group-DexONgr2.js → Group-BvO-gQZe.js} +1 -1
  9. package/dist/{Group-qRZlg5ST.js → Group-DT9UkkOx.js} +3 -3
  10. package/dist/{Group.vue_vue_type_script_setup_true_lang-DtPY9uUt.js → Group.vue_vue_type_script_setup_true_lang-DZhM1Tpb.js} +56 -56
  11. package/dist/{GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-B5Qpmj2f.js → GroupMarkupPriceDialog.vue_vue_type_script_setup_true_lang-D48u_DHq.js} +5 -5
  12. package/dist/ImportProductDialog.vue_vue_type_script_setup_true_lang-C_X-lTnN.js +72979 -0
  13. package/dist/{Ingredient-BuOS_Wvm.js → Ingredient-7qWDD9e6.js} +26 -26
  14. package/dist/{InventoryBinding.vue_vue_type_script_setup_true_lang-DFvXklj9.js → InventoryBinding.vue_vue_type_script_setup_true_lang-CwjW0wfz.js} +2 -2
  15. package/dist/{LinkProductSideSheet-DJj8Nn4X.js → LinkProductSideSheet-BXW6eNgZ.js} +3 -3
  16. package/dist/{MenuSetting-D6B0gCGV.js → MenuSetting-BSF7O2NL.js} +5 -5
  17. package/dist/{PrintRoute-B7G8f1iC.js → PrintRoute-b1ii5Uz9.js} +20 -20
  18. package/dist/{Product-DpS5EepJ.js → Product-Ce0GJb3c.js} +1 -1
  19. package/dist/{Product.vue_vue_type_script_setup_true_lang-CdIukLqA.js → Product.vue_vue_type_script_setup_true_lang-BZVvTAOX.js} +49 -49
  20. package/dist/{ProductInternalTools-CBCyWHOS.js → ProductInternalTools-igbOLRap.js} +20 -20
  21. package/dist/Products-GAyUdhnN.js +292 -0
  22. package/dist/Publish-g60odzhM.js +1300 -0
  23. package/dist/{Recipe-D14rkATU.js → Recipe-B6aye_iC.js} +9 -9
  24. package/dist/{RuleView.vue_vue_type_script_setup_true_lang-CdH2ius3.js → RuleView.vue_vue_type_script_setup_true_lang-By8kwuMB.js} +134 -134
  25. package/dist/{Scheduler-DWZqa-jf.js → Scheduler-CyaG6Y5v.js} +7 -7
  26. package/dist/{ServingSequence-Mx7ovvJ1.js → ServingSequence-BXeypgrN.js} +27 -27
  27. package/dist/{Setting-DmHuVXVn.js → Setting-D7GcaNTk.js} +17 -17
  28. package/dist/{Subcategory-DixZPdnT.js → Subcategory-DNUp9ojI.js} +37 -37
  29. package/dist/{Takeaway-BVIymFV_.js → Takeaway-Baqvq5nP.js} +9 -9
  30. package/dist/{Takeaway-DDKeDEbV.js → Takeaway-BjXPeYRv.js} +1 -1
  31. package/dist/{Takeaway.vue_vue_type_script_setup_true_lang-CTaCQgRv.js → Takeaway.vue_vue_type_script_setup_true_lang-CgXT2UVL.js} +54 -54
  32. package/dist/{Thumbnail.vue_vue_type_script_setup_true_lang-DveI9xvU.js → Thumbnail.vue_vue_type_script_setup_true_lang-CX8cSbDe.js} +12 -12
  33. package/dist/{TreeEditorOpenner.vue_vue_type_script_setup_true_lang-2nBbq_Yk.js → TreeEditorOpenner.vue_vue_type_script_setup_true_lang-DcjGVQEO.js} +756 -763
  34. package/dist/{Unit-utuaNZBw.js → Unit-mI7lLzCf.js} +2 -2
  35. package/dist/{Variant-CzuJNwen.js → Variant-CVwnODRz.js} +14 -14
  36. package/dist/{_id_-DMDhPQCr.js → _id_-fpn0nBru.js} +14 -14
  37. package/dist/{app-BQUkvrAS.js → app-CCKI85Te.js} +26 -26
  38. package/dist/{app-Bqj3cAPJ.js → app-U5MEN4U1.js} +1 -1
  39. package/dist/app.js +1 -1
  40. package/dist/apps/mf-menu/src/Entry.vue.d.ts +1 -0
  41. package/dist/apps/mf-menu/src/components/feature/Fields/ImageDropField.vue.d.ts +0 -2
  42. package/dist/apps/mf-menu/src/composable/useClientEvent.d.ts +14 -0
  43. package/dist/apps/mf-menu/src/helper/import-export-utils.d.ts +22 -22
  44. package/dist/apps/mf-menu/src/helper/menuExport.d.ts +59 -33
  45. package/dist/apps/mf-menu/tsconfig.app.tsbuildinfo +1 -1
  46. package/dist/assets/{linked-status-ILQVL8r9.js → linked-status-6Jt70XBp.js} +2 -2
  47. package/dist/assets/menu-export-CR0a98CA.js +107 -0
  48. package/dist/assets/{override-menu-DVkGhbA9.js → override-menu-Chsc0CSI.js} +2 -2
  49. package/dist/assets/{validate-menu-y_NQUL02.js → validate-menu-pb0aN4gj.js} +2 -2
  50. package/dist/{catalog-BYzITAmC.js → catalog-BgQmytEA.js} +1 -1
  51. package/dist/{catalogSetting-DAo5tN3P.js → catalogSetting-BS5IaQKq.js} +1 -1
  52. package/dist/{category-D4x8r_lY.js → category-DJMVbmzx.js} +1 -1
  53. package/dist/{currency-CvoBdMM2.js → currency-FHrLDvzy.js} +1 -1
  54. package/dist/dayjs.min-DJGdQr-B.js +6 -0
  55. package/dist/{index-LuH6PJzW.js → index-BywPDIFW.js} +4 -4
  56. package/dist/{index-BLUIaanj.js → index-DYxLHjeC.js} +1 -1
  57. package/dist/{index-6lju0f3r.js → index-XVWDnyu-.js} +17 -17
  58. package/dist/{index.vue_vue_type_script_setup_true_lang-DxF14kn9.js → index.vue_vue_type_script_setup_true_lang-kj6HkxwD.js} +2306 -2306
  59. package/dist/{item-lXMLaKOb.js → item-cmnP2N-a.js} +1089 -1091
  60. package/dist/{jszip.min-CdZ-wY5m.js → jszip.min-psVCZNVl.js} +545 -545
  61. package/dist/{menu-PJc2dQHQ.js → menu-CgQPOu3W.js} +1 -1
  62. package/dist/{menuV2-DinFmdTL.js → menuV2-DHO9OmzU.js} +159 -159
  63. package/dist/mf-menu.css +1 -1
  64. package/dist/{priceTier-CzKIo11g.js → priceTier-CLm9vzaK.js} +1 -1
  65. package/dist/{scheduler-DQjxnoCk.js → scheduler-BMdZdtpj.js} +4 -4
  66. package/dist/{subcategory-CLkDImEU.js → subcategory-Dj_DOvFt.js} +2 -2
  67. package/dist/{toExcel-DPh8DaM0.js → toExcel-XwFFiTiA.js} +2 -2
  68. package/dist/{unit-QYkVoC6_.js → unit-CsuAQsy7.js} +12 -12
  69. package/package.json +3 -3
  70. package/dist/ImportProductDialog.vue_vue_type_script_setup_true_lang-BqhNkaw_.js +0 -96043
  71. package/dist/Products-CcyGNlUl.js +0 -794
  72. package/dist/Publish-rZLHFaJ5.js +0 -1264
  73. package/dist/dayjs.min-C6xioui7.js +0 -6
@@ -2,9 +2,9 @@ import { defineComponent as L, computed as d, ref as g, h as k, withModifiers as
2
2
  import { useI18n as E } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as K, components as R, useBreakpoints as D, FmButtonVariant as G } from "@feedmepos/ui-library";
4
4
  import { _ as I } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js";
5
- import { G as q, u as A, a3 as H } from "./index.vue_vue_type_script_setup_true_lang-DxF14kn9.js";
5
+ import { G as q, u as A, a4 as H } from "./index.vue_vue_type_script_setup_true_lang-kj6HkxwD.js";
6
6
  import { _ as J } from "./PageLayout.vue_vue_type_script_setup_true_lang-2f0QfweQ.js";
7
- import { u as O, U as P } from "./unit-QYkVoC6_.js";
7
+ import { u as O, U as P } from "./unit-CsuAQsy7.js";
8
8
  const Q = {
9
9
  key: 0,
10
10
  class: "h-[600px]"
@@ -1,18 +1,18 @@
1
1
  import { getCurrentInstance as U, defineComponent as $, computed as g, onMounted as O, h as z, resolveComponent as k, createBlock as F, openBlock as u, unref as t, withCtx as p, createElementBlock as f, Fragment as V, createElementVNode as r, createVNode as i, isRef as I, normalizeClass as L, renderList as R, toDisplayString as C, withModifiers as w, createCommentVNode as G } from "vue";
2
- import { useI18n as K } from "@feedmepos/mf-common";
3
- import { useDialog as Y, useSnackbar as N, FmButtonVariant as M, components as q, useBreakpoints as H } from "@feedmepos/ui-library";
4
- import { _ as J } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js";
5
- import { _ as Q } from "./app-BQUkvrAS.js";
6
- import { G as P, u as D, P as j, K as W, A as X, a3 as Z } from "./index.vue_vue_type_script_setup_true_lang-DxF14kn9.js";
7
- import { V as S } from "./index-6lju0f3r.js";
2
+ import { useI18n as N } from "@feedmepos/mf-common";
3
+ import { useDialog as Y, useSnackbar as D, FmButtonVariant as M, components as Q, useBreakpoints as q } from "@feedmepos/ui-library";
4
+ import { _ as H } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js";
5
+ import { _ as J } from "./app-CCKI85Te.js";
6
+ import { G as K, u as P, Q as j, M as W, A as X, a4 as Z } from "./index.vue_vue_type_script_setup_true_lang-kj6HkxwD.js";
7
+ import { V as S } from "./index-XVWDnyu-.js";
8
8
  import { _ as ee } from "./PageLayout.vue_vue_type_script_setup_true_lang-2f0QfweQ.js";
9
9
  import { u as te } from "./search-BAPEUu1R.js";
10
10
  import { defineStore as ne } from "pinia";
11
11
  import { c as oe } from "./createComponentProgrammatically-Bt2rn1IQ.js";
12
12
  const ae = ne("variant-manager", () => {
13
- const B = Y(), o = N(), _ = P(o), h = j(_);
14
- D();
15
- const d = U(), { t: c } = K(), x = (l) => {
13
+ const B = Y(), o = D(), _ = K(o), h = j(_);
14
+ P();
15
+ const d = U(), { t: c } = N(), x = (l) => {
16
16
  var y, a;
17
17
  const { vNode: b } = oe(
18
18
  S,
@@ -82,7 +82,7 @@ const ae = ne("variant-manager", () => {
82
82
  setup(B) {
83
83
  const {
84
84
  t: o
85
- } = K(), _ = D(), h = j(P(N())), d = ae(), c = g(() => _.variants.map((a) => ({
85
+ } = N(), _ = P(), h = j(K(D())), d = ae(), c = g(() => _.variants.map((a) => ({
86
86
  ...a,
87
87
  usedBy: _.items.filter((e) => {
88
88
  var s;
@@ -131,7 +131,7 @@ const ae = ne("variant-manager", () => {
131
131
  },
132
132
  cell: (a) => z("div", {
133
133
  class: "w-full flex justify-end items-center"
134
- }, [z(q.FmButton, {
134
+ }, [z(Q.FmButton, {
135
135
  prependIcon: "delete",
136
136
  variant: M.Tertiary,
137
137
  textColor: "neutral-gray-400",
@@ -139,7 +139,7 @@ const ae = ne("variant-manager", () => {
139
139
  e.stopPropagation(), d.deleteVariant(a.row.original);
140
140
  }
141
141
  })])
142
- }]), b = H(), y = g(() => b.breakpoints.value.xs);
142
+ }]), b = q(), y = g(() => b.breakpoints.value.xs);
143
143
  return (a, e) => {
144
144
  const s = k("fm-search"), A = k("fm-table"), E = k("fm-button");
145
145
  return u(), F(ee, {
@@ -150,7 +150,7 @@ const ae = ne("variant-manager", () => {
150
150
  }, {
151
151
  default: p(({
152
152
  trigger: n
153
- }) => [i(J, {
153
+ }) => [i(H, {
154
154
  class: "ml-auto",
155
155
  label: t(o)("menu.variant.add"),
156
156
  "prepend-icon": "add",
@@ -189,7 +189,7 @@ const ae = ne("variant-manager", () => {
189
189
  placeholder: t(o)("menu.common.labels.search_placeholder", {
190
190
  type: "variants"
191
191
  })
192
- }, null, 8, ["modelValue", "placeholder"])])]), i(Q, null, {
192
+ }, null, 8, ["modelValue", "placeholder"])])]), i(J, null, {
193
193
  default: p(() => [i(A, {
194
194
  "column-defs": l.value,
195
195
  loading: t(h).checkMenuIsLoading(),
@@ -1,23 +1,23 @@
1
- import { defineComponent as F, computed as d, ref as p, watch as A, onMounted as H, resolveComponent as m, createElementBlock as K, openBlock as b, Fragment as W, createVNode as n, withCtx as u, createElementVNode as i, toDisplayString as M, unref as e, createBlock as D } from "vue";
2
- import { D as j } from "./dayjs.min-C6xioui7.js";
3
- import { useRoute as J, useRouter as Q } from "vue-router";
4
- import { _ as X, w as Z } from "./ImportProductDialog.vue_vue_type_script_setup_true_lang-BqhNkaw_.js";
5
- import { G as ee, u as te, D as ae, I as oe, P as ne } from "./index.vue_vue_type_script_setup_true_lang-DxF14kn9.js";
1
+ import { defineComponent as F, computed as d, ref as p, watch as A, onMounted as H, resolveComponent as m, createElementBlock as K, openBlock as b, Fragment as Q, createVNode as n, withCtx as u, createElementVNode as i, toDisplayString as M, unref as e, createBlock as D } from "vue";
2
+ import { D as W } from "./dayjs.min-DJGdQr-B.js";
3
+ import { useRoute as j, useRouter as J } from "vue-router";
4
+ import { _ as X, w as Z } from "./ImportProductDialog.vue_vue_type_script_setup_true_lang-C_X-lTnN.js";
5
+ import { G as ee, u as te, D as ae, I as oe, Q as ne } from "./index.vue_vue_type_script_setup_true_lang-kj6HkxwD.js";
6
6
  import { useI18n as le } from "@feedmepos/mf-common";
7
7
  import { useSnackbar as se } from "@feedmepos/ui-library";
8
8
  import { _ as R } from "./ResponsiveFabButton.vue_vue_type_script_setup_true_lang-Cn-3MRBO.js";
9
- import { L as V } from "./LinkProductSideSheet-DJj8Nn4X.js";
9
+ import { L as V } from "./LinkProductSideSheet-BXW6eNgZ.js";
10
10
  import { _ as ue } from "./index-CisutoS9.js";
11
11
  import { _ as re } from "./PageLayout.vue_vue_type_script_setup_true_lang-2f0QfweQ.js";
12
- import { u as ie } from "./Thumbnail.vue_vue_type_script_setup_true_lang-DveI9xvU.js";
13
- import { a as me } from "./menu-PJc2dQHQ.js";
14
- import { m as ce } from "./toExcel-DPh8DaM0.js";
15
- import { _ as de, u as pe, c as _e } from "./scheduler-DQjxnoCk.js";
16
- import { R as r } from "./app-BQUkvrAS.js";
12
+ import { u as ie } from "./Thumbnail.vue_vue_type_script_setup_true_lang-CX8cSbDe.js";
13
+ import { a as me } from "./menu-CgQPOu3W.js";
14
+ import { m as ce } from "./toExcel-XwFFiTiA.js";
15
+ import { _ as de, u as pe, c as _e } from "./scheduler-BMdZdtpj.js";
16
+ import { R as r } from "./app-CCKI85Te.js";
17
17
  const fe = { class: "px-12 py-8" }, ve = { class: "px-12 py-8" }, ge = { class: "flex ml-auto space-x-8" }, be = { class: "flex-1 flex flex-col overflow-hidden" }, Ge = /* @__PURE__ */ F({
18
18
  __name: "[id]",
19
19
  setup(ke) {
20
- const E = J(), _ = Q(), k = ee(se()), L = ne(k), a = te(), { t: l } = le(), O = d(() => a.categorizedRawMenuItems), f = d(() => !a.state.currentSchedulerId), G = p();
20
+ const E = j(), _ = J(), k = ee(se()), L = ne(k), a = te(), { t: l } = le(), O = d(() => a.categorizedRawMenuItems), f = d(() => !a.state.currentSchedulerId), G = p();
21
21
  async function z(o) {
22
22
  const t = o._id ? pe(o) : _e(o);
23
23
  await L.updateMenu(t, o.name);
@@ -66,7 +66,7 @@ const fe = { class: "px-12 py-8" }, ve = { class: "px-12 py-8" }, ge = { class:
66
66
  await k.minor(
67
67
  async () => {
68
68
  await a.readMenu();
69
- const o = await ce($.value), t = `menu_${j().format("DD-MM-YYYY_HH-mm")}`;
69
+ const o = await ce($.value), t = `menu_${W().format("DD-MM-YYYY_HH-mm")}`;
70
70
  await Z(o, `${t}.xlsx`, {
71
71
  bookType: "xlsx",
72
72
  bookSST: !1,
@@ -87,7 +87,7 @@ const fe = { class: "px-12 py-8" }, ve = { class: "px-12 py-8" }, ge = { class:
87
87
  return me().resetOnUnmount(), (o, t) => {
88
88
  var w;
89
89
  const Y = m("fm-bottom-sheet"), N = m("fm-button"), P = m("router-link"), q = m("fm-tabs"), B = m("router-view");
90
- return b(), K(W, null, [
90
+ return b(), K(Q, null, [
91
91
  n(de, {
92
92
  ref_key: "schedulerDialogRef",
93
93
  ref: G,
@@ -97,7 +97,7 @@ const i = {
97
97
  {
98
98
  path: "/product",
99
99
  name: "$menu-products",
100
- component: t(e(() => import("./Products-CcyGNlUl.js"))),
100
+ component: t(e(() => import("./Products-GAyUdhnN.js"))),
101
101
  meta: {
102
102
  ...i,
103
103
  isNavItem: !0,
@@ -108,7 +108,7 @@ const i = {
108
108
  path: "/product-internal-tools",
109
109
  name: "$menu-product-internal-tools",
110
110
  component: t(
111
- e(() => import("./ProductInternalTools-CBCyWHOS.js"))
111
+ e(() => import("./ProductInternalTools-igbOLRap.js"))
112
112
  ),
113
113
  meta: {
114
114
  i18nId: "menu.productInternalTools.title",
@@ -121,7 +121,7 @@ const i = {
121
121
  {
122
122
  path: "/category",
123
123
  name: "$menu-category",
124
- component: t(e(() => import("./Category-BwHhFTZ-.js"))),
124
+ component: t(e(() => import("./Category-C8uGxpST.js"))),
125
125
  meta: {
126
126
  ...i,
127
127
  isNavItem: !0,
@@ -131,7 +131,7 @@ const i = {
131
131
  {
132
132
  path: "/subcategory",
133
133
  name: "$menu-subcategory",
134
- component: t(e(() => import("./Subcategory-DixZPdnT.js"))),
134
+ component: t(e(() => import("./Subcategory-DNUp9ojI.js"))),
135
135
  meta: {
136
136
  ...i,
137
137
  isNavItem: () => d.value,
@@ -141,7 +141,7 @@ const i = {
141
141
  {
142
142
  path: "/group",
143
143
  name: "$menu-group",
144
- component: t(e(() => import("./Group-qRZlg5ST.js"))),
144
+ component: t(e(() => import("./Group-DT9UkkOx.js"))),
145
145
  meta: {
146
146
  ...i,
147
147
  isNavItem: !0,
@@ -151,7 +151,7 @@ const i = {
151
151
  {
152
152
  path: "/takeaway",
153
153
  name: "$menu-takeaway",
154
- component: t(e(() => import("./Takeaway-BVIymFV_.js"))),
154
+ component: t(e(() => import("./Takeaway-Baqvq5nP.js"))),
155
155
  meta: {
156
156
  ...i,
157
157
  isNavItem: !0,
@@ -161,7 +161,7 @@ const i = {
161
161
  {
162
162
  path: "/scheduler",
163
163
  name: "$menu-scheduler",
164
- component: t(e(() => import("./Scheduler-DWZqa-jf.js"))),
164
+ component: t(e(() => import("./Scheduler-CyaG6Y5v.js"))),
165
165
  meta: {
166
166
  ...i,
167
167
  isNavItem: !0,
@@ -171,7 +171,7 @@ const i = {
171
171
  {
172
172
  path: "/variant",
173
173
  name: "$menu-variant",
174
- component: t(e(() => import("./Variant-CzuJNwen.js"))),
174
+ component: t(e(() => import("./Variant-CVwnODRz.js"))),
175
175
  meta: {
176
176
  ...i,
177
177
  isNavItem: !0,
@@ -181,7 +181,7 @@ const i = {
181
181
  {
182
182
  path: "/recipe",
183
183
  name: "$menu-recipe",
184
- component: t(e(() => import("./Recipe-D14rkATU.js"))),
184
+ component: t(e(() => import("./Recipe-B6aye_iC.js"))),
185
185
  meta: {
186
186
  ...i,
187
187
  isNavItem: () => !d.value,
@@ -191,7 +191,7 @@ const i = {
191
191
  {
192
192
  path: "/ingredient",
193
193
  name: "$menu-ingredient",
194
- component: t(e(() => import("./Ingredient-BuOS_Wvm.js"))),
194
+ component: t(e(() => import("./Ingredient-7qWDD9e6.js"))),
195
195
  meta: {
196
196
  ...i,
197
197
  isNavItem: () => !d.value,
@@ -201,7 +201,7 @@ const i = {
201
201
  {
202
202
  path: "/unit",
203
203
  name: "$menu-unit",
204
- component: t(e(() => import("./Unit-utuaNZBw.js"))),
204
+ component: t(e(() => import("./Unit-mI7lLzCf.js"))),
205
205
  meta: {
206
206
  ...i,
207
207
  isNavItem: () => !d.value,
@@ -211,7 +211,7 @@ const i = {
211
211
  {
212
212
  path: "/cooking-guide",
213
213
  name: "$menu-cooking-guide",
214
- component: t(e(() => import("./CookingGuide-D9RNkYDL.js"))),
214
+ component: t(e(() => import("./CookingGuide-BL3uetlO.js"))),
215
215
  meta: {
216
216
  ...i,
217
217
  isNavItem: !0,
@@ -221,7 +221,7 @@ const i = {
221
221
  {
222
222
  path: "/print-route",
223
223
  name: "$menu-print-route",
224
- component: t(e(() => import("./PrintRoute-B7G8f1iC.js"))),
224
+ component: t(e(() => import("./PrintRoute-b1ii5Uz9.js"))),
225
225
  meta: {
226
226
  ...i,
227
227
  isNavItem: !0,
@@ -232,7 +232,7 @@ const i = {
232
232
  path: "/serving-sequence",
233
233
  name: "$menu-serving-sequence",
234
234
  component: t(
235
- e(() => import("./ServingSequence-Mx7ovvJ1.js"))
235
+ e(() => import("./ServingSequence-BXeypgrN.js"))
236
236
  ),
237
237
  meta: {
238
238
  ...i,
@@ -243,7 +243,7 @@ const i = {
243
243
  {
244
244
  path: "/publish",
245
245
  name: "$menu-publish",
246
- component: t(e(() => import("./Publish-rZLHFaJ5.js"))),
246
+ component: t(e(() => import("./Publish-g60odzhM.js"))),
247
247
  meta: {
248
248
  ...i,
249
249
  isNavItem: !0,
@@ -257,7 +257,7 @@ const i = {
257
257
  {
258
258
  path: "/setting",
259
259
  name: "$menu-menu-setting",
260
- component: t(e(() => import("./MenuSetting-D6B0gCGV.js"))),
260
+ component: t(e(() => import("./MenuSetting-BSF7O2NL.js"))),
261
261
  meta: {
262
262
  ...i,
263
263
  isNavItem: !0,
@@ -272,7 +272,7 @@ const i = {
272
272
  {
273
273
  path: "/catalog",
274
274
  name: "$menu-catalog",
275
- component: t(e(() => import("./Catalog-WMpN3a0p.js"))),
275
+ component: t(e(() => import("./Catalog-B6VFmr6e.js"))),
276
276
  meta: {
277
277
  ...i,
278
278
  isNavItem: !0,
@@ -281,7 +281,7 @@ const i = {
281
281
  },
282
282
  {
283
283
  path: "/catalog/edit/:id",
284
- component: t(e(() => import("./_id_-DMDhPQCr.js"))),
284
+ component: t(e(() => import("./_id_-fpn0nBru.js"))),
285
285
  name: "$menu-catalog-edit",
286
286
  meta: {
287
287
  ...i
@@ -296,31 +296,31 @@ const i = {
296
296
  },
297
297
  {
298
298
  path: "/catalog/edit/:id/product",
299
- component: t(e(() => import("./Product-DpS5EepJ.js"))),
299
+ component: t(e(() => import("./Product-Ce0GJb3c.js"))),
300
300
  name: "$menu-catalog-edit-product",
301
301
  meta: { ...i }
302
302
  },
303
303
  {
304
304
  path: "/catalog/edit/:id/category",
305
- component: t(e(() => import("./Category-C_VsQIHU.js"))),
305
+ component: t(e(() => import("./Category-B-bTjNFI.js"))),
306
306
  name: "$menu-catalog-edit-category",
307
307
  meta: { ...i }
308
308
  },
309
309
  {
310
310
  path: "/catalog/edit/:id/group",
311
- component: t(e(() => import("./Group-DexONgr2.js"))),
311
+ component: t(e(() => import("./Group-BvO-gQZe.js"))),
312
312
  name: "$menu-catalog-edit-group",
313
313
  meta: { ...i }
314
314
  },
315
315
  {
316
316
  path: "/catalog/edit/:id/takeaway",
317
- component: t(e(() => import("./Takeaway-DDKeDEbV.js"))),
317
+ component: t(e(() => import("./Takeaway-BjXPeYRv.js"))),
318
318
  name: "$menu-catalog-edit-takeaway",
319
319
  meta: { ...i }
320
320
  },
321
321
  {
322
322
  path: "/catalog/edit/:id/setting",
323
- component: t(e(() => import("./Setting-DmHuVXVn.js"))),
323
+ component: t(e(() => import("./Setting-D7GcaNTk.js"))),
324
324
  name: "$menu-catalog-edit-setting",
325
325
  meta: { ...i }
326
326
  }
@@ -334,12 +334,12 @@ u.push({
334
334
  name: ((y = u[0].children) == null ? void 0 : y[0].name) || u[0].name
335
335
  }
336
336
  });
337
- t(e(() => import("./Catalog-WMpN3a0p.js"))), {
337
+ t(e(() => import("./Catalog-B6VFmr6e.js"))), {
338
338
  ...i
339
- }, t(e(() => import("./_id_-DMDhPQCr.js"))), { ...i }, t(e(() => import("./Product-DpS5EepJ.js"))), { ...i }, t(e(() => import("./Category-C_VsQIHU.js"))), { ...i }, t(e(() => import("./Group-DexONgr2.js"))), { ...i }, t(e(() => import("./Takeaway-DDKeDEbV.js"))), { ...i }, t(e(() => import("./Setting-DmHuVXVn.js"))), { ...i };
339
+ }, t(e(() => import("./_id_-fpn0nBru.js"))), { ...i }, t(e(() => import("./Product-Ce0GJb3c.js"))), { ...i }, t(e(() => import("./Category-B-bTjNFI.js"))), { ...i }, t(e(() => import("./Group-BvO-gQZe.js"))), { ...i }, t(e(() => import("./Takeaway-BjXPeYRv.js"))), { ...i }, t(e(() => import("./Setting-D7GcaNTk.js"))), { ...i };
340
340
  const K = "treeEditorOpen", Z = () => {
341
341
  window.postMessage({ type: K }, "*");
342
- }, ee = e(() => import("./App-D70-FH5L.js"));
342
+ }, ee = e(() => import("./App-BFUyUrdi.js"));
343
343
  function te(a, l) {
344
344
  }
345
345
  const ae = {
@@ -1,5 +1,5 @@
1
1
  import { defineStore as r } from "pinia";
2
- import { a8 as a, a9 as s, aa as l } from "./index.vue_vue_type_script_setup_true_lang-DxF14kn9.js";
2
+ import { a9 as a, aa as s, ab as l } from "./index.vue_vue_type_script_setup_true_lang-kj6HkxwD.js";
3
3
  const u = {
4
4
  async read() {
5
5
  return a(await s().get("/public-setting"));
package/dist/app.js CHANGED
@@ -1,4 +1,4 @@
1
- import { F as e, i as r, b as o, o as t, r as i, u as p } from "./app-BQUkvrAS.js";
1
+ import { F as e, i as r, b as o, o as t, r as i, u as p } from "./app-CCKI85Te.js";
2
2
  export {
3
3
  e as FmApp,
4
4
  r as i18nMessages,
@@ -1,3 +1,4 @@
1
1
  import "@feedmepos/ui-library/styles.css";
2
+ import "@feedmepos/mf-remy-panel/style.css";
2
3
  declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
3
4
  export default _default;
@@ -6,11 +6,9 @@ interface Props {
6
6
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
7
  "update:model-value": (file: File) => void;
8
8
  "reset:model-value": () => void;
9
- "update:tracking-id": (trackingId: string | undefined) => void;
10
9
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & Readonly<{
11
10
  "onUpdate:model-value"?: ((file: File) => any) | undefined;
12
11
  "onReset:model-value"?: (() => any) | undefined;
13
- "onUpdate:tracking-id"?: ((trackingId: string | undefined) => any) | undefined;
14
12
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
15
13
  export default _default;
16
14
  type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Listen for a named agent-driven client event dispatched by the Remy chat store.
3
+ *
4
+ * When the AI agent calls the `emitClientEvent` tool, the store fires a native
5
+ * `CustomEvent` on `window` with the given `eventName` and a `detail` matching
6
+ * the tool's `payload`. Use this composable in any component to cleanly subscribe
7
+ * and automatically unsubscribe.
8
+ *
9
+ * @example
10
+ * useClientEvent<number>('apply-pricing', (price) => {
11
+ * priceField.value = price
12
+ * })
13
+ */
14
+ export declare function useClientEvent<T = unknown>(eventName: string, handler: (payload: T) => void): void;
@@ -1,27 +1,26 @@
1
- import * as ExcelJS from "exceljs";
2
- import { type WorkBook } from "xlsx";
1
+ import { type WorkBook, type WorkSheet } from "xlsx";
3
2
  import { FdoCustomAttribute, FdoDinero } from "@feedmepos/core/entity";
4
- import { FdoMenuV4, FdoMenuV4Catalog, F_ORDER_FROM } from "@feedmepos/menu/entity";
3
+ import { FdoMenuV4, F_ORDER_FROM } from "@feedmepos/menu/entity";
5
4
  import type { GroupItem } from "@/manager/menu/group";
6
5
  export interface ExportMenuDataRow {
7
6
  _id: string;
8
- code: string;
9
- name: string;
10
- variantKey: string;
11
- variantName: string;
12
- category: string;
13
- subCategories: string;
14
- orderFrom: string;
15
- perXUnit: number | string;
16
- unit: string;
17
- openPrice: boolean | string;
18
- price: number | string;
19
- priceTier: Record<string, FdoDinero>;
20
- trackingCost: number | string;
21
- minPrice: number | string;
22
- groupByParent: boolean | string;
23
- takeawayName: string;
24
- takeawayPrice: number | string;
7
+ code: string | undefined;
8
+ name: string | undefined;
9
+ variantKey: string | undefined;
10
+ variantName: string | undefined;
11
+ category: string | undefined;
12
+ subCategories: string | undefined;
13
+ orderFrom: string | undefined;
14
+ perXUnit: number | string | undefined;
15
+ unit: string | undefined;
16
+ openPrice: boolean | string | undefined;
17
+ price: number | string | undefined;
18
+ priceTier: Record<string, FdoDinero> | undefined;
19
+ trackingCost: number | string | undefined;
20
+ minPrice: number | string | undefined;
21
+ groupByParent: boolean | string | undefined;
22
+ takeawayName: string | undefined;
23
+ takeawayPrice: number | string | undefined;
25
24
  tag: Record<string, any>;
26
25
  }
27
26
  export interface ExportAddonGroupRow {
@@ -101,8 +100,8 @@ export declare const ADDON = "ADDON";
101
100
  export declare function mapVariant(menu: FdoMenuV4, variantGroupIds: string[]): {
102
101
  [key: string]: string;
103
102
  };
104
- export declare function addDescriptionsAndHeadersExcelJS(worksheet: ExcelJS.Worksheet, attributeSettings: FdoCustomAttribute[], priceTierKeys: string[], catelog?: FdoMenuV4Catalog): ExcelJS.Worksheet;
105
- export declare function addAddonHeaderExcelJS(worksheet: ExcelJS.Worksheet, priceTierKeys?: string[]): ExcelJS.Worksheet;
103
+ export declare function generateHeaderRow(attributeSettings: FdoCustomAttribute[], priceTierKeys: string[], isCatalog?: boolean): string[];
104
+ export declare function generateAddonHeaderRow(priceTierKeys: string[], isCatalog?: boolean): string[];
106
105
  export declare function toDinero(price: number): {
107
106
  currency: "ALL" | "AED" | "AFN" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "INR" | "IQD" | "IRR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XTS" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL";
108
107
  amount: number;
@@ -122,3 +121,4 @@ export declare function processGroupItem(newItem: GroupedAddon, index: number, o
122
121
  export declare function normalizeSheetName(name: string): string;
123
122
  export declare function validateInputData(row: Record<string, any>, fileMap: Record<string, string>, isCatalog?: boolean, catalogName?: string): void;
124
123
  export declare function validateAddonInputData(row: Record<string, any>, addonFile: Record<string, string>, catalogName?: string): void;
124
+ export declare function stripWorkbookFormatting(sheet: WorkSheet): void;
@@ -1,35 +1,70 @@
1
- import * as ExcelJS from "exceljs";
1
+ import { type WorkBook } from "xlsx";
2
2
  import type { FdoCustomAttribute } from "@feedmepos/core/entity";
3
- import { FdoMenuV4, FdoMenuV4Category, FdoMenuV4Item, FdoMenuV4Takeaway, FdoItemOverriderV4, FdoMenuSubCategory } from "@feedmepos/menu/entity";
3
+ import { FdoMenuV4, FdoMenuV4Item, FdoItemOverriderV4 } from "@feedmepos/menu/entity";
4
4
  import type { FdoGroupOverriderV4 } from "@feedmepos/menu/entity";
5
- import { type ExportAddonGroupRow, type ExportMenuDataRow, type TransformDataResult } from "@/helper/import-export-utils";
5
+ import { type ExportMenuDataRow, type TransformDataResult } from "@/helper/import-export-utils";
6
6
  export declare class MenuExport {
7
7
  menu: FdoMenuV4;
8
8
  categoryMap: {
9
- [id: string]: FdoMenuV4Category;
9
+ [id: string]: number;
10
+ };
11
+ itemMap: {
12
+ [id: string]: number;
13
+ };
14
+ groupMap: {
15
+ [id: string]: number;
10
16
  };
11
17
  takeawayMap: {
12
- [id: string]: FdoMenuV4Takeaway;
18
+ [id: string]: number;
13
19
  };
14
20
  subCategoryMap: {
15
- [id: string]: FdoMenuSubCategory;
21
+ [id: string]: number;
16
22
  };
17
23
  attributeSettings: FdoCustomAttribute[];
24
+ priceTierKeys: string[];
18
25
  constructor(menu: FdoMenuV4, attributeSettings: FdoCustomAttribute[]);
19
- transformData(): TransformDataResult;
20
- transformOverrideData(data: FdoItemOverriderV4[]): TransformDataResult;
26
+ transformData(): {
27
+ rows: any[];
28
+ combinationNameMapping: {
29
+ [key: string]: {
30
+ [combinationKey: string]: string;
31
+ };
32
+ };
33
+ };
34
+ transformOverrideData(data: FdoItemOverriderV4[], combinationNameMappings: {
35
+ [itemId: string]: {
36
+ [combinationKey: string]: string;
37
+ };
38
+ }): TransformDataResult;
21
39
  private getSubCategoryNames;
22
40
  transformProductToDataRow(item: FdoMenuV4Item, combinationNameMapping: {
23
41
  [key: string]: string;
24
- }, combinationKey?: string | null | undefined): ExportMenuDataRow;
25
- transformOverrideDataToRow(d: FdoItemOverriderV4, combinationNameMapping: {
42
+ }, combinationKey?: string | null | undefined): any[];
43
+ transformOverrideDataToRow(item: FdoMenuV4Item, itemOverrider: FdoItemOverriderV4, // base or variant
44
+ combinationNameMapping: {
26
45
  [key: string]: string;
27
46
  }, combinationKey?: string | null | undefined): ExportMenuDataRow;
28
- transformAddonGroup(): ExportAddonGroupRow[];
29
- transformOverrideAddonGroup(data: FdoGroupOverriderV4[]): ExportAddonGroupRow[];
47
+ transformAddonGroup(combinationNameMapping: {
48
+ [key: string]: {
49
+ [combinationKey: string]: string;
50
+ };
51
+ }): any[];
52
+ transformOverrideAddonGroup(data: FdoGroupOverriderV4[], combinationNameMappings: {
53
+ [itemId: string]: {
54
+ [combinationKey: string]: string;
55
+ };
56
+ }): any[];
30
57
  private mapCatalogAddonGroup;
31
58
  private mapAddonGroup;
32
- transformItemsLinkWithGroup(): {};
59
+ transformItemsLinkWithGroup(): {
60
+ id: string;
61
+ name: string;
62
+ items: {
63
+ itemId: string;
64
+ itemName: string;
65
+ defaultCatalog: string;
66
+ }[];
67
+ }[];
33
68
  /**
34
69
  * @deprecated Use {@link exportToExcelStreaming} instead.
35
70
  * This method builds all 3 workbooks in memory simultaneously, which causes
@@ -37,24 +72,15 @@ export declare class MenuExport {
37
72
  * It also duplicates catalog data via intermediate workbook copying.
38
73
  */
39
74
  exportToExcel(): any[];
40
- /**
41
- * Memory-optimized export that processes each workbook sequentially.
42
- *
43
- * Key optimizations over {@link exportToExcel}:
44
- * 1. Sequential processing — only 1 workbook in memory at a time (vs all 3).
45
- * Each workbook is built, passed to the callback for serialization, then released for GC.
46
- * 2. Direct catalog sheets — catalog override sheets are added directly to the target workbook,
47
- * eliminating the intermediate workbook + row-by-row copy used by exportCatalogToExcelExcelJS.
48
- * 3. Set-based item-group linking (Book 3) — uses Map<groupId, Set<itemId>> instead of
49
- * deep-cloning all items for every group via JSON.parse(JSON.stringify(...)).
50
- *
51
- * @param onWorkbook - Called for each workbook (menu, addonGroup, itemLinkedAddon) in order.
52
- * The caller should serialize the workbook (e.g. writeBuffer) before the promise resolves.
53
- * After the callback resolves, the workbook reference is released.
54
- */
55
- exportToExcelStreaming(onWorkbook: (workbook: ExcelJS.Workbook) => Promise<void>): Promise<void>;
56
- private createWorkbookExcelJS;
57
- private formatWorkbookCell;
58
- exportCatalogToExcelExcelJS(): ExcelJS.Workbook;
59
- exportCatalogAddonToExcelExcelJS(): ExcelJS.Workbook;
75
+ exportCatalogToExcelExcelJS(combinationNameMapping: {
76
+ [itemId: string]: {
77
+ [combinationKey: string]: string;
78
+ };
79
+ }, workbook: WorkBook): void;
80
+ exportCatalogAddonToExcelExcelJS(combinationNameMappings: {
81
+ [itemId: string]: {
82
+ [combinationKey: string]: string;
83
+ };
84
+ }, workbook: WorkBook): void;
85
+ exportToExcelStreaming(onWorkbook: (workbook: WorkBook) => Promise<void>): Promise<void>;
60
86
  }