@feedmepos/mf-inventory-portal 1.8.0-dev.3 → 1.8.0-dev.5

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 (133) hide show
  1. package/dist/App-DEbWEOwe.js +1537 -0
  2. package/dist/{ApprovalView-hV1msz5Y.js → ApprovalView-BEnYHIlU.js} +9 -9
  3. package/dist/{BindingsDialog-BX1Lopf0.js → BindingsDialog-CJVkMoBS.js} +2 -2
  4. package/dist/{BindingsPicker-BNKW8-XY.js → BindingsPicker-CX9o-xdQ.js} +2 -2
  5. package/dist/{BindingsTable-DiLDsL83.js → BindingsTable-Cil4LJ7l.js} +4 -4
  6. package/dist/{BulkReceiveRequestView-oQh6kFLc.js → BulkReceiveRequestView-DYEc2jPw.js} +21 -22
  7. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BaMcGU-x.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DoAv2mHA.js} +1 -1
  8. package/dist/{ClosingDraftView-sgLoaSf4.js → ClosingDraftView-Bz94Iejf.js} +20 -20
  9. package/dist/{ClosingHistoryView-BnE9HrzA.js → ClosingHistoryView-B479Y-mH.js} +5 -5
  10. package/dist/{ClosingTemplateView-BD3Pa11r.js → ClosingTemplateView-F_nx43n6.js} +18 -18
  11. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DlbyxkMQ.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DddYGHxQ.js} +1 -1
  12. package/dist/{DefaultView-CuzvVkfE.js → DefaultView-CkZOl0ov.js} +5 -5
  13. package/dist/{DeliveryOrderPrintPreview-w-1aAOY1.js → DeliveryOrderPrintPreview-BJEpwAX6.js} +2 -2
  14. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-CxD12Qct.js → EmailDialog.vue_vue_type_script_setup_true_lang-BW988AoC.js} +29 -30
  15. package/dist/{FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-CMoQKl_a.js → FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-Izn-hTjK.js} +107 -118
  16. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-BqCh_vTP.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-CoUWxHlj.js} +1 -1
  17. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CAXnmdUy.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-Ci81xTbl.js} +2 -2
  18. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-NhOdW33O.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CnaHTAUZ.js} +2 -2
  19. package/dist/{FmMultiselectDialog-CULwA_hi.js → FmMultiselectDialog-BE8BlO6_.js} +2 -2
  20. package/dist/FmMultiselectDialog-COKgBmPZ.js +123 -0
  21. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-CI3Y9kDl.js → FmUnitInput.vue_vue_type_script_setup_true_lang-BQHd3NjM.js} +6 -6
  22. package/dist/ImportView-Crb_yrNb.js +1291 -0
  23. package/dist/{IngredientsView-pzpP6oXT.js → IngredientsView-lDypeR4c.js} +34 -35
  24. package/dist/{IntegrationExplorerView-C5aAhB6e.js → IntegrationExplorerView-DgOFGj7H.js} +4 -4
  25. package/dist/{IntegrationView-Bqun7nX0.js → IntegrationView-0sbjINo5.js} +973 -974
  26. package/dist/{InventoryBindingForm-r_Ua1C4a.js → InventoryBindingForm-BhyrjIXJ.js} +1 -1
  27. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-KCz_BQ6T.js +472 -0
  28. package/dist/{InventoryBindingSummary-BQuZLohR.js → InventoryBindingSummary-CsfNKd1r.js} +1 -1
  29. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-7r-QcJdU.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-C32OoIBz.js} +1 -1
  30. package/dist/{ProductionRunDetailView-95fu_CfH.js → ProductionRunDetailView-BxbDtGMo.js} +4 -4
  31. package/dist/{ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-CdOca1tV.js → ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-BdJVvwSP.js} +9 -9
  32. package/dist/{ProductionRunView-DIjor_Ix.js → ProductionRunView-CJhNEIzT.js} +3 -3
  33. package/dist/{PublishView-DYObyHQq.js → PublishView-vkt6-D6P.js} +3 -3
  34. package/dist/{PurchaseOrderPrintPreview-C0jCmI9L.js → PurchaseOrderPrintPreview-25dHfVKp.js} +2 -2
  35. package/dist/{ReceiveRequestView-i7ibPfIE.js → ReceiveRequestView-BO4Z2dZu.js} +15 -16
  36. package/dist/RecipeView-B_AE7QQv.js +3428 -0
  37. package/dist/{SettingsView-CdBloj9k.js → SettingsView-qTUvQCuu.js} +163 -168
  38. package/dist/{StockView-g_6eJ62R.js → StockView-yh6qkYUS.js} +269 -270
  39. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-C1rKc7MA.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Cn_fx9qG.js} +1 -1
  40. package/dist/{SupplierView-DkYp_Frj.js → SupplierView-Dqzu1Bvh.js} +14 -14
  41. package/dist/{SurchargeView-CfkV4Y3y.js → SurchargeView-CDosn36c.js} +7 -7
  42. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-2MtN1p5t.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-DZ3Gdlp9.js} +2 -2
  43. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CYMjKXq4.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CWoh2FqQ.js} +1 -1
  44. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-D0zNr_vQ.js → TransferDetails.vue_vue_type_script_setup_true_lang-BtjKnIwf.js} +867 -844
  45. package/dist/{TransferTemplateView-Ne2gYUSn.js → TransferTemplateView-fDZcC9i4.js} +22 -23
  46. package/dist/{UnitCostHistoryView-Db0_otOb.js → UnitCostHistoryView-CmTTIXAp.js} +4 -4
  47. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-BzO1lq7j.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-DZihCM0T.js} +4 -4
  48. package/dist/{UnitView-CiCeQ63i.js → UnitView-BTx59sFK.js} +8 -8
  49. package/dist/{WarehouseView-BcuJSOMF.js → WarehouseView-BIFe08FJ.js} +8 -8
  50. package/dist/{WastageTemplateView-CPQmtOKQ.js → WastageTemplateView-B_oJqm0_.js} +15 -15
  51. package/dist/api/feature-flags.d.ts +2 -0
  52. package/dist/api/license.d.ts +0 -2
  53. package/dist/{app-DqJp3dcI.js → app-DyEvx3Em.js} +1628 -1817
  54. package/dist/app.d.ts +0 -150
  55. package/dist/app.js +1 -1
  56. package/dist/{closing-template-BNlgZviN.js → closing-template-FgcLy4RT.js} +1 -1
  57. package/dist/components/FeatureCapabilityBadge.vue.d.ts +1 -1
  58. package/dist/{date2-Ci7521dn.js → date2-Rv4IwT9a.js} +1 -1
  59. package/dist/{dayjs.min-Cyp32v4J.js → dayjs.min-DOq1QM_M.js} +1 -1
  60. package/dist/{decimal-BGdm5R3A.js → decimal-7vA05AaD.js} +2 -2
  61. package/dist/{defineDeepModel-B2cJ-rtd.js → defineDeepModel-22Md2SKY.js} +1 -1
  62. package/dist/{duplicate-template-By5WeKZ0.js → duplicate-template-D2tjCY7C.js} +1 -1
  63. package/dist/{core-Js7d-3Pv.js → feature-BMTKl6PK.js} +732 -389
  64. package/dist/feature-flags/core.d.ts +3 -2
  65. package/dist/feature-flags/portal-feature-catalog.d.ts +0 -5
  66. package/dist/feature-flags/vue.d.ts +2 -0
  67. package/dist/{format-time-from-id-Q8C2P96H.js → format-time-from-id-DXhm_Ji1.js} +1 -1
  68. package/dist/{format-unit-display-CICrmm8r.js → format-unit-display-DxWLjFPz.js} +13 -13
  69. package/dist/helper/menu-usage-module.d.ts +1 -1
  70. package/dist/{id-to-date-DeN5x0LR.js → id-to-date-VKlOL3mN.js} +1 -1
  71. package/dist/{import-export.helper-BOTQWxr6.js → import-export.helper-BiF5aKUp.js} +28 -28
  72. package/dist/{index-BbbqCCfp.js → index-DEl_gZn0.js} +3 -3
  73. package/dist/{index-tCYhLCKP.js → index-DdtsVAcv.js} +1 -1
  74. package/dist/{index-Cxm3Sgfv.js → index-DoBWE4Ci.js} +1 -1
  75. package/dist/{lz-string-Dy4Pg8mh.js → lz-string-BwQj8QRN.js} +1 -1
  76. package/dist/{netsuite-BaJjkDM8.js → netsuite-s1S33-lP.js} +2 -2
  77. package/dist/{number-CB36d2PQ.js → number-BmKjsNrc.js} +3 -3
  78. package/dist/{predefined-templates-DLm93Bpx.js → predefined-templates-BZ2KqNix.js} +1 -1
  79. package/dist/{purchase-order-template-CDhn9ZIF.js → purchase-order-template-CINU4my1.js} +1 -1
  80. package/dist/{recalculationUtils-Cqvefakh.js → recalculationUtils-R5tFu_ts.js} +1 -1
  81. package/dist/router/name.d.ts +0 -1
  82. package/dist/{row-action.enum-NTfVmGY8.js → row-action.enum-ePO-Py0V.js} +1 -1
  83. package/dist/{rules-C8dfM84-.js → rules-BZrZVzw7.js} +2 -2
  84. package/dist/{stock-BGB0Siue.js → stock-C2HOKq0k.js} +8 -8
  85. package/dist/{stock-Qu5IiN2_.js → stock-Ce1UvAZ3.js} +1 -1
  86. package/dist/stores/feature.d.ts +10 -9
  87. package/dist/stores/inventory.d.ts +0 -47
  88. package/dist/stores/supplier.d.ts +1 -1
  89. package/dist/style.css +1 -1
  90. package/dist/{supplier-CZdNOSMN.js → supplier-DgT66emI.js} +17 -17
  91. package/dist/{surcharge-Cm40oJvU.js → surcharge-CsVMuzPM.js} +1 -1
  92. package/dist/tsconfig.app.tsbuildinfo +1 -1
  93. package/dist/{uom-rules-L-IW4Nwk.js → uom-rules-CR1XukyM.js} +1 -1
  94. package/dist/{use-ingredient-select-dialog-B2TDVJM6.js → use-ingredient-select-dialog-CJkG4hEX.js} +2 -2
  95. package/dist/use-inventory-binding-dialog-B36kPj4V.js +113 -0
  96. package/dist/{use-template-enabled-locations-DYAPMvo9.js → use-template-enabled-locations-Boa9QLPV.js} +2 -2
  97. package/dist/{use-transfer-locations-w-9tymYS.js → use-transfer-locations-BxOygSUg.js} +2 -2
  98. package/dist/{useHrmPermission-BFCIo5sA.js → useHrmPermission-DLHAqbLV.js} +1 -1
  99. package/dist/{useNavigationMenu-BPHAH5sJ.js → useNavigationMenu-D6abZMGz.js} +102 -109
  100. package/dist/{useSseClient-CWjRacRs.js → useSseClient-C7pff-EW.js} +1 -1
  101. package/dist/views/ingredients/components/inventory-binding/InventoryBindingForm.vue.d.ts +0 -1
  102. package/dist/views/ingredients/components/inventory-binding/composables/use-inventory-binding-dialog.d.ts +0 -1
  103. package/dist/views/ingredients/components/inventory-binding/v2/InventoryBindingFormV2.vue.d.ts +0 -1
  104. package/dist/views/ingredients/components/inventory-binding/v2/composables/use-inventory-binding-dialog.d.ts +0 -1
  105. package/dist/views/ingredients/helper/is-linked-ingredient-error.d.ts +1 -1
  106. package/dist/views/integration/components/IntegrationCard.vue.d.ts +3 -3
  107. package/dist/views/recipe/helper/bulk-edit-simulation.helper.d.ts +0 -1
  108. package/dist/views/recipe/helper/import-recipe.d.ts +2 -2
  109. package/dist/{vue-i18n-S4YQ9w6a.js → vue-i18n-CpOOFhVU.js} +219 -219
  110. package/dist/{xlsx.util-CP8_VajN.js → xlsx.util-xwI5tVz6.js} +2 -2
  111. package/package.json +5 -5
  112. package/dist/App-DRXADP0k.js +0 -1498
  113. package/dist/DeprecateSoonWarningDialog.vue_vue_type_script_setup_true_lang-Bp8bjDU1.js +0 -58
  114. package/dist/FmMultiselectDialog-BqZgHP8s.js +0 -77
  115. package/dist/ImportView-DqQG673_.js +0 -1302
  116. package/dist/IngredientBindedItem.vue_vue_type_script_setup_true_lang-DfvNUu80.js +0 -51
  117. package/dist/IngredientGroupView-CyngKxPo.js +0 -1000
  118. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-CYDuu4kU.js +0 -563
  119. package/dist/RecipeView-C5VO7yr3.js +0 -3625
  120. package/dist/feature-fG7d73oi.js +0 -371
  121. package/dist/index-Dqf27vLH.js +0 -841
  122. package/dist/random-CSbEbElR.js +0 -10
  123. package/dist/use-inventory-binding-dialog-BJ00hl5f.js +0 -152
  124. package/dist/usePromise-CbVUCxhj.js +0 -29
  125. package/dist/views/ingredient-group/IngredientGroupView.vue.d.ts +0 -3
  126. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialog.vue.d.ts +0 -31
  127. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialogProps.d.ts +0 -10
  128. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupForm.vue.d.ts +0 -21
  129. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupFormProps.d.ts +0 -12
  130. package/dist/views/ingredient-group/components/ingredient-group-rule-field/IngredientGroupRuleField.vue.d.ts +0 -37
  131. package/dist/views/ingredient-group/composables/use-ingredient-group-actions.d.ts +0 -24
  132. package/dist/views/ingredient-group/composables/use-ingredient-group-rule-item.d.ts +0 -31
  133. package/dist/views/ingredient-group/composables/use-ingredient-group-table.d.ts +0 -77
@@ -1,5 +1,5 @@
1
1
  import { computed as o } from "vue";
2
- import { u } from "./netsuite-BaJjkDM8.js";
2
+ import { u } from "./netsuite-s1S33-lP.js";
3
3
  function i(e) {
4
4
  const t = (n) => !!n && n.toLocaleLowerCase().includes("inactive");
5
5
  return t(e.name) || t(e.abbrev);
@@ -1,6 +1,6 @@
1
1
  import { defineStore as S } from "pinia";
2
- import { a as b } from "./app-DqJp3dcI.js";
3
- import { a as A } from "./FmMultiselectDialog-CULwA_hi.js";
2
+ import { a as b } from "./app-DyEvx3Em.js";
3
+ import { a as A } from "./FmMultiselectDialog-BE8BlO6_.js";
4
4
  import { useDialog as I } from "@feedmepos/ui-library";
5
5
  import { useI18n as D } from "@feedmepos/mf-common";
6
6
  const w = S(
@@ -0,0 +1,113 @@
1
+ import { a as y } from "./FmMultiselectDialog-BE8BlO6_.js";
2
+ import { a as S } from "./app-DyEvx3Em.js";
3
+ import { useDialog as E } from "@feedmepos/ui-library";
4
+ function w() {
5
+ const c = S(), g = E();
6
+ async function _(s, p, d, f = []) {
7
+ var n, a;
8
+ const b = s.filter((i) => i.type === "SKU"), l = s.filter((i) => i.type !== "SKU"), r = /* @__PURE__ */ new Set();
9
+ if (d)
10
+ for (const i of c.skus)
11
+ !f.some((o) => o === i._id) && i._id !== d && !((a = (n = i.convert) == null ? void 0 : n.inventoryBindings) != null && a.some((o) => o.id === d)) || r.add(i._id);
12
+ const m = c.skus.map((i) => ({
13
+ label: i.name,
14
+ sublabel: `${i.code}${r.has(i._id) ? " (Cannot bind, will cause recursive binding)" : ""}`,
15
+ value: i,
16
+ disabled: r.has(i._id)
17
+ })), u = m.filter(
18
+ (i) => b.find((t) => t.id === i.value._id) && !r.has(i.value._id)
19
+ ).map((i) => i.value);
20
+ g.open({
21
+ title: "Select ingredients",
22
+ contentComponent: y,
23
+ contentComponentProps: {
24
+ items: m,
25
+ modelValue: u,
26
+ virtualScroll: !0
27
+ },
28
+ primaryActions: {
29
+ text: "Confirm",
30
+ close: !0
31
+ },
32
+ secondaryActions: {
33
+ text: "Close",
34
+ close: !0,
35
+ variant: "tertiary"
36
+ }
37
+ }).onPrimary((i) => {
38
+ const t = [
39
+ ...l,
40
+ ...s.filter((o) => i.find((e) => e._id === o.id)),
41
+ ...i.filter((o) => !s.find((e) => e.id === o._id)).map((o) => ({
42
+ type: "SKU",
43
+ id: o._id,
44
+ amount: {
45
+ amount: 1,
46
+ precision: 0
47
+ }
48
+ }))
49
+ ];
50
+ p(t);
51
+ });
52
+ }
53
+ async function v(s, p, d = []) {
54
+ var u;
55
+ const f = s.filter((n) => n.type === "RECIPE"), b = s.filter((n) => n.type !== "RECIPE"), l = /* @__PURE__ */ new Set();
56
+ if (d.length)
57
+ for (const n of c.recipes) {
58
+ const a = ((u = c.recipeBindingFlattenCache[n._id]) == null ? void 0 : u.inventoryBindings) ?? [], i = a.some(
59
+ (e) => e.bindingPaths.some((C) => d.some((h) => h === C.id))
60
+ ), t = a.some(
61
+ (e) => "success" in e && d.includes(e.ingredient._id)
62
+ );
63
+ (d.some((e) => e === n._id) || i || t) && l.add(n._id);
64
+ }
65
+ const r = c.recipes.filter((n) => !d.includes(n._id)).map((n) => ({
66
+ label: n.name,
67
+ sublabel: l.has(n._id) ? "(Cannot bind, will cause recursive binding)" : `${n.contains.length} inventory bindings`,
68
+ value: n,
69
+ disabled: l.has(n._id)
70
+ })), m = r.filter(
71
+ (n) => f.find((a) => a.id === n.value._id) && !l.has(n.value._id)
72
+ ).map((n) => n.value);
73
+ g.open({
74
+ title: "Select recipes",
75
+ contentComponent: y,
76
+ contentComponentProps: {
77
+ items: r,
78
+ modelValue: m,
79
+ virtualScroll: !0
80
+ },
81
+ primaryActions: {
82
+ text: "Confirm",
83
+ close: !0
84
+ },
85
+ secondaryActions: {
86
+ text: "Close",
87
+ close: !0,
88
+ variant: "tertiary"
89
+ }
90
+ }).onPrimary((n) => {
91
+ const a = [
92
+ ...s.filter((i) => n.find((t) => t._id === i.id)),
93
+ ...n.filter((i) => !s.find((t) => t.id === i._id)).map((i) => ({
94
+ type: "RECIPE",
95
+ id: i._id,
96
+ amount: {
97
+ amount: 1,
98
+ precision: 0
99
+ }
100
+ })),
101
+ ...b
102
+ ];
103
+ p(a);
104
+ });
105
+ }
106
+ return {
107
+ promptIngredientsBinding: _,
108
+ promptRecipesBinding: v
109
+ };
110
+ }
111
+ export {
112
+ w as u
113
+ };
@@ -1,5 +1,5 @@
1
- import { a as A } from "./FmMultiselectDialog-CULwA_hi.js";
2
- import { u as S } from "./app-DqJp3dcI.js";
1
+ import { a as A } from "./FmMultiselectDialog-BE8BlO6_.js";
2
+ import { u as S } from "./app-DyEvx3Em.js";
3
3
  import { useI18n as w, useCoreStore as i, useCustomAttributes as _ } from "@feedmepos/mf-common";
4
4
  import { useDialog as C, components as p } from "@feedmepos/ui-library";
5
5
  import { computed as r, h as c } from "vue";
@@ -1,5 +1,5 @@
1
- import { u as g, r as l, $ as w, a2 as R } from "./app-DqJp3dcI.js";
2
- import { u as E } from "./supplier-CZdNOSMN.js";
1
+ import { u as g, r as l, $ as w, a2 as R } from "./app-DyEvx3Em.js";
2
+ import { u as E } from "./supplier-DgT66emI.js";
3
3
  import { computed as u } from "vue";
4
4
  function d(n) {
5
5
  const c = R.safeParse(n);
@@ -1,5 +1,5 @@
1
1
  import { computed as p, toValue as o } from "vue";
2
- import { ab as n } from "./app-DqJp3dcI.js";
2
+ import { ab as n } from "./app-DyEvx3Em.js";
3
3
  import { useCoreStore as c } from "@feedmepos/mf-common";
4
4
  function g(t, i = "all") {
5
5
  const m = c();
@@ -1,9 +1,9 @@
1
- import { computed as E, h as P } from "vue";
2
- import { R as e, ac as C, ad as f, ab as O } from "./app-DqJp3dcI.js";
3
- import { useCoreStore as b, useI18n as _ } from "@feedmepos/mf-common";
4
- import { useFeatureStore as U } from "./feature-fG7d73oi.js";
5
- import { e as A, d as L, g as S, a as G } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-CMoQKl_a.js";
6
- const p = [
1
+ import { computed as R, h as C } from "vue";
2
+ import { R as e, ac as P, ad as O, ab as A } from "./app-DyEvx3Em.js";
3
+ import { useCoreStore as U, useI18n as b } from "@feedmepos/mf-common";
4
+ import { I as E, u as L } from "./feature-BMTKl6PK.js";
5
+ import { e as y, g as v, d as G, a as H } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-Izn-hTjK.js";
6
+ const _ = [
7
7
  {
8
8
  route: e.STOCK,
9
9
  module: "Stock",
@@ -57,13 +57,6 @@ const p = [
57
57
  tier: "standard",
58
58
  description: "Manage ingredients and SKUs."
59
59
  },
60
- {
61
- route: e.INGREDIENT_GROUP,
62
- module: "Catalogue",
63
- tier: "standard",
64
- description: "Organize ingredients into reusable groups.",
65
- featureKey: "ingredient-group"
66
- },
67
60
  {
68
61
  route: e.RECIPE,
69
62
  module: "Catalogue",
@@ -146,85 +139,90 @@ const p = [
146
139
  tier: "standard",
147
140
  description: "Inspect and manage integration records and synchronization."
148
141
  }
149
- ], y = Object.fromEntries(
150
- p.map((s) => {
151
- var n, u;
142
+ ], K = Object.fromEntries(
143
+ _.map((o) => {
144
+ var u;
145
+ const s = v(o.featureKey ?? "");
152
146
  return [
153
- s.route,
154
- L({
155
- key: s.route,
156
- minimumTier: s.tier,
157
- release: s.release ?? ((u = (n = S(s.featureKey ?? "")) == null ? void 0 : n.definition) == null ? void 0 : u.release)
147
+ o.route,
148
+ G({
149
+ key: o.route,
150
+ minimumTier: o.tier,
151
+ release: o.release ?? ((u = s == null ? void 0 : s.definition) == null ? void 0 : u.release),
152
+ flagKeys: s == null ? void 0 : s.flagKeys
158
153
  })
159
154
  ];
160
155
  })
161
156
  );
162
- function H(s) {
163
- return p.find((n) => n.route === s) ?? null;
157
+ function M(o) {
158
+ return _.find((s) => s.route === o) ?? null;
164
159
  }
165
- function K(s) {
166
- return s ? y[s] ?? null : null;
160
+ function F(o) {
161
+ return o ? K[o] ?? null : null;
167
162
  }
168
- function W(s, n) {
169
- const u = K(s);
170
- return u ? A(u, n) : { enabled: !0, disabled: !1, stage: "ga", eligible: !0 };
163
+ function Q(o, s) {
164
+ const u = F(o);
165
+ return u ? y(u, s) : { enabled: !0, disabled: !1, stage: "ga", eligible: !0 };
171
166
  }
172
- const M = f.reduce(
173
- (s, n) => {
167
+ const k = O.reduce(
168
+ (o, s) => {
174
169
  var u;
175
- return n.name && (s[n.name] = (u = n.meta) == null ? void 0 : u.validationManifest), s;
170
+ return s.name && (o[s.name] = (u = s.meta) == null ? void 0 : u.validationManifest), o;
176
171
  },
177
172
  {}
178
173
  );
179
- function w() {
180
- const s = b(), n = U(), { t: u } = _(), t = (o) => C(o, u), g = E(
174
+ function Y() {
175
+ const o = U(), s = L(), { t: u } = b(), a = (r) => P(r, u), g = R(
181
176
  () => {
182
- var o;
183
- return ((o = s.sessionUser.value) == null ? void 0 : o.permissions) ?? [];
177
+ var r;
178
+ return ((r = o.sessionUser.value) == null ? void 0 : r.permissions) ?? [];
184
179
  }
185
- ), h = (o = []) => o.length === 0 ? !0 : O(o, g.value).granted, a = (o) => {
186
- const r = M[o];
187
- return h(r == null ? void 0 : r.requiredCaslPermissions);
188
- }, R = (o) => o.filter((r) => !r.hide).map((r) => r.children ? { ...r, children: R(r.children) } : r).filter((r) => !r.children || r.children.length > 0), T = (o) => o.map((r) => {
189
- const { hide: d, children: i, ...l } = r, c = { ...l };
190
- return i && (c.children = T(i)), c;
191
- }), I = (o) => o.map((r) => {
192
- const d = r.value, i = H(d), l = S((i == null ? void 0 : i.featureKey) ?? ""), c = l == null ? void 0 : l.category, v = i && (i.tier === "premium" || c === "beta" || l != null && l.deprecateSoon) ? () => P(G, {
180
+ ), h = (r = []) => r.length === 0 ? !0 : A(r, g.value).granted, n = (r) => {
181
+ const t = k[r];
182
+ return h(t == null ? void 0 : t.requiredCaslPermissions);
183
+ }, d = (r) => {
184
+ var t;
185
+ return ((t = s.flags.find((c) => c.name === r)) == null ? void 0 : t.beta) !== !1 && !s.isFlagOn(r);
186
+ }, m = (r) => r.filter((t) => !t.hide).map((t) => t.children ? { ...t, children: m(t.children) } : t).filter((t) => !t.children || t.children.length > 0), I = (r) => r.map((t) => {
187
+ const { hide: c, children: i, ...l } = t, T = { ...l };
188
+ return i && (T.children = I(i)), T;
189
+ }), p = (r) => r.map((t) => {
190
+ const c = t.value, i = M(c), l = v((i == null ? void 0 : i.featureKey) ?? ""), T = l == null ? void 0 : l.category, f = i && (i.tier === "premium" || T === "beta" || l != null && l.deprecateSoon) ? () => C(H, {
193
191
  tier: i.tier,
194
- category: c,
192
+ category: T,
195
193
  deprecateSoon: l == null ? void 0 : l.deprecateSoon,
196
194
  featureKey: i.featureKey
197
195
  }) : void 0;
198
196
  return {
199
- ...r,
200
- badge: v,
201
- children: r.children ? I(r.children) : void 0
197
+ ...t,
198
+ badge: f,
199
+ children: t.children ? p(t.children) : void 0
202
200
  };
203
- }), m = E(() => {
204
- var d;
205
- const o = [
201
+ }), S = R(() => {
202
+ var c;
203
+ const r = [
206
204
  {
207
- label: t(e.STOCK),
205
+ label: a(e.STOCK),
208
206
  children: [
209
207
  {
210
208
  label: u("inventory.stock.stock_balance.title"),
211
209
  value: e.STOCK,
212
- hide: !a(e.STOCK)
210
+ hide: !n(e.STOCK)
213
211
  },
214
212
  {
215
- label: t(e.PRODUCTION_RUN),
213
+ label: a(e.PRODUCTION_RUN),
216
214
  value: e.PRODUCTION_RUN,
217
- hide: !a(e.PRODUCTION_RUN) || !n.enableProductionRun
215
+ hide: !n(e.PRODUCTION_RUN) || d(E.inventory_portal_production_item)
218
216
  },
219
217
  {
220
- label: t(e.UNIT_COST_HISTORY),
218
+ label: a(e.UNIT_COST_HISTORY),
221
219
  value: e.UNIT_COST_HISTORY,
222
- hide: !a(e.UNIT_COST_HISTORY) || !n.enableTotalCost
220
+ hide: !n(e.UNIT_COST_HISTORY) || d(E.inventory_pos_costing)
223
221
  },
224
222
  {
225
- label: t(e.WASTAGE_TEMPLATE),
223
+ label: a(e.WASTAGE_TEMPLATE),
226
224
  value: e.WASTAGE_TEMPLATE,
227
- hide: !a(e.WASTAGE_TEMPLATE) || !n.enableWastageTemplate
225
+ hide: !n(e.WASTAGE_TEMPLATE) || d(E.inventory_pos_adjust_v2_wastage)
228
226
  }
229
227
  ]
230
228
  },
@@ -232,121 +230,116 @@ function w() {
232
230
  label: u("inventory.closing.title"),
233
231
  children: [
234
232
  {
235
- label: t(e.CLOSING_HISTORY),
233
+ label: a(e.CLOSING_HISTORY),
236
234
  value: e.CLOSING_HISTORY,
237
- hide: !a(e.CLOSING_HISTORY)
235
+ hide: !n(e.CLOSING_HISTORY)
238
236
  },
239
237
  {
240
- label: t(e.CLOSING_TEMPLATE),
238
+ label: a(e.CLOSING_TEMPLATE),
241
239
  value: e.CLOSING_TEMPLATE,
242
- hide: !a(e.CLOSING_TEMPLATE) || !n.enableClosingTemplate
240
+ hide: !n(e.CLOSING_TEMPLATE) || d(E.inventory_pos_closing_v2)
243
241
  },
244
242
  {
245
- label: t(e.CLOSING_DRAFT),
243
+ label: a(e.CLOSING_DRAFT),
246
244
  value: e.CLOSING_DRAFT,
247
- hide: !a(e.CLOSING_DRAFT) || !n.enableClosingTemplate
245
+ hide: !n(e.CLOSING_DRAFT) || d(E.inventory_pos_closing_v2)
248
246
  }
249
247
  ]
250
248
  },
251
249
  {
252
- label: t(e.INGREDIENTS),
250
+ label: a(e.INGREDIENTS),
253
251
  value: e.INGREDIENTS,
254
- hide: !a(e.INGREDIENTS)
255
- },
256
- {
257
- label: t(e.INGREDIENT_GROUP),
258
- value: e.INGREDIENT_GROUP,
259
- hide: !a(e.INGREDIENT_GROUP) || !n.enableIngredientGroup
252
+ hide: !n(e.INGREDIENTS)
260
253
  },
261
254
  {
262
- label: t(e.RECIPE),
255
+ label: a(e.RECIPE),
263
256
  value: e.RECIPE,
264
- hide: !a(e.RECIPE)
257
+ hide: !n(e.RECIPE)
265
258
  },
266
259
  {
267
- label: t(e.UNIT),
260
+ label: a(e.UNIT),
268
261
  value: e.UNIT,
269
- hide: !a(e.UNIT)
262
+ hide: !n(e.UNIT)
270
263
  },
271
264
  {
272
265
  label: u("inventory.transfer.title"),
273
266
  children: [
274
267
  {
275
- label: t(e.RECEIVE_REQUEST),
268
+ label: a(e.RECEIVE_REQUEST),
276
269
  value: e.RECEIVE_REQUEST,
277
- hide: !a(e.RECEIVE_REQUEST)
270
+ hide: !n(e.RECEIVE_REQUEST)
278
271
  },
279
272
  {
280
- label: t(e.RECEIVE_REQUEST_BULK),
273
+ label: a(e.RECEIVE_REQUEST_BULK),
281
274
  value: e.RECEIVE_REQUEST_BULK,
282
- hide: !a(e.RECEIVE_REQUEST_BULK) || !n.enableReceiveRequestBeta
275
+ hide: !n(e.RECEIVE_REQUEST_BULK) || d(E.inventory_receive_request_beta)
283
276
  },
284
277
  {
285
- label: t(e.APPROVAL),
278
+ label: a(e.APPROVAL),
286
279
  value: e.APPROVAL,
287
- hide: !a(e.APPROVAL)
280
+ hide: !n(e.APPROVAL)
288
281
  },
289
282
  {
290
- label: t(e.SURCHARGE),
283
+ label: a(e.SURCHARGE),
291
284
  value: e.SURCHARGE,
292
- hide: !a(e.SURCHARGE) || !n.enableSurcharge
285
+ hide: !n(e.SURCHARGE) || d(E.inventory_portal_surcharge)
293
286
  },
294
287
  {
295
- label: t(e.TRANSFER_TEMPLATE),
288
+ label: a(e.TRANSFER_TEMPLATE),
296
289
  value: e.TRANSFER_TEMPLATE,
297
- hide: !a(e.TRANSFER_TEMPLATE) || !n.enablePoTemplate
290
+ hide: !n(e.TRANSFER_TEMPLATE) || d(E.inventory_portal_must_use_transfer_template)
298
291
  }
299
292
  ]
300
293
  },
301
294
  {
302
- label: t(e.SUPPLIER),
295
+ label: a(e.SUPPLIER),
303
296
  value: e.SUPPLIER,
304
- hide: !a(e.SUPPLIER)
297
+ hide: !n(e.SUPPLIER)
305
298
  },
306
299
  {
307
- label: t(e.WAREHOUSE),
300
+ label: a(e.WAREHOUSE),
308
301
  value: e.WAREHOUSE,
309
- hide: !a(e.WAREHOUSE)
302
+ hide: !n(e.WAREHOUSE)
310
303
  },
311
304
  {
312
- label: t(e.PUBLISH),
305
+ label: a(e.PUBLISH),
313
306
  value: e.PUBLISH,
314
- hide: !a(e.PUBLISH)
307
+ hide: !n(e.PUBLISH)
315
308
  },
316
309
  {
317
- label: t(e.IMPORT),
310
+ label: a(e.IMPORT),
318
311
  value: e.IMPORT,
319
- hide: !a(e.IMPORT) || !n.enableBulkImport
312
+ hide: !n(e.IMPORT) || d(E.inventory_bulk_import)
320
313
  },
321
314
  {
322
- label: t(e.INTEGRATION),
315
+ label: a(e.INTEGRATION),
323
316
  value: e.INTEGRATION,
324
- hide: !a(e.INTEGRATION)
317
+ hide: !n(e.INTEGRATION)
325
318
  },
326
319
  {
327
- label: t(e.SETTINGS),
320
+ label: a(e.SETTINGS),
328
321
  value: e.SETTINGS,
329
- hide: !a(e.SETTINGS)
322
+ hide: !n(e.SETTINGS)
330
323
  }
331
- ], r = I(T(R(o)));
332
- return ((d = s.currentBusiness.value) == null ? void 0 : d.menuVersion) === "v3" ? r.filter(
324
+ ], t = p(I(m(r)));
325
+ return ((c = o.currentBusiness.value) == null ? void 0 : c.menuVersion) === "v3" ? t.filter(
333
326
  (i) => i.value !== e.INGREDIENTS && i.value !== e.RECIPE && i.value !== e.UNIT && i.value !== e.PUBLISH
334
- ) : r;
335
- }), N = E(() => {
336
- function o(d) {
337
- for (const i of d)
327
+ ) : t;
328
+ }), N = R(() => {
329
+ function r(c) {
330
+ for (const i of c)
338
331
  if (i.children && i.children.length > 0) {
339
- const l = o(i.children);
332
+ const l = r(i.children);
340
333
  if (l) return l;
341
334
  } else if (i.value)
342
335
  return i.value;
343
336
  }
344
- return o(m.value) ?? null;
337
+ return r(S.value) ?? null;
345
338
  });
346
- return { menuItems: m, firstAccessibleRouteName: N };
339
+ return { menuItems: S, firstAccessibleRouteName: N };
347
340
  }
348
341
  export {
349
- W as e,
350
- p as n,
351
- w as u
342
+ Q as e,
343
+ _ as n,
344
+ Y as u
352
345
  };
@@ -1,4 +1,4 @@
1
- import { d as se } from "./app-DqJp3dcI.js";
1
+ import { d as se } from "./app-DyEvx3Em.js";
2
2
  import { useCoreStore as ne } from "@feedmepos/mf-common";
3
3
  const re = se((e, t) => ({
4
4
  getSubscribeUrl(s, r, a) {
@@ -7,7 +7,6 @@ export interface InventoryBindingFormProps {
7
7
  iframeMode?: boolean;
8
8
  disabled?: boolean;
9
9
  readonly?: boolean;
10
- enableIngredientGroup?: boolean;
11
10
  /** recipe amounts may be keyed in with decimals — off keeps them whole numbers */
12
11
  allowRecipeDecimal?: boolean;
13
12
  }
@@ -1,5 +1,4 @@
1
1
  export declare function useInventoryBindingDialog(): {
2
2
  promptIngredientsBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (bindings: FdoInventoryBinding[]) => void, excludeBindingId?: string, excludeIds?: string[]) => Promise<void>;
3
3
  promptRecipesBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (mv: FdoInventoryBinding[]) => void, excludeIds?: string[]) => Promise<void>;
4
- promptIngredientGroupsBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (mv: FdoInventoryBinding[]) => void, excludeIds?: string[]) => Promise<void>;
5
4
  };
@@ -18,7 +18,6 @@ export interface InventoryBindingFormProps {
18
18
  readonly?: boolean;
19
19
  recipeBindingConfig?: InventoryRecipeBindingFormConfig;
20
20
  skuBindingConfig?: InventorySkuBindingFormConfig;
21
- enableIngredientGroup?: boolean;
22
21
  /** recipe amounts may be keyed in with decimals — off keeps them whole numbers */
23
22
  allowRecipeDecimal?: boolean;
24
23
  }
@@ -1,5 +1,4 @@
1
1
  export declare function useInventoryBindingDialogV2(): {
2
2
  promptIngredientsBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (bindings: FdoInventoryBinding[]) => void, excludeBindingId?: string, excludeIds?: string[]) => Promise<void>;
3
3
  promptRecipesBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (mv: FdoInventoryBinding[]) => void, excludeIds?: string[]) => Promise<void>;
4
- promptIngredientGroupsBinding: (currentBindings: FdoInventoryBinding[], onUpdateInventoryBindings: (mv: FdoInventoryBinding[]) => void, excludeIds?: string[]) => Promise<void>;
5
4
  };
@@ -1,6 +1,6 @@
1
1
  import type { SvcCompanyApiError } from '@/api/error';
2
2
  export type LinkedIngredientError = {
3
- module: 'sku' | 'recipe' | 'skuGroup';
3
+ module: 'sku' | 'recipe';
4
4
  name: string;
5
5
  _id: string;
6
6
  message?: string;
@@ -1,13 +1,13 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
2
- capability?: "premium" | "beta" | undefined;
2
+ capability?: "beta" | "premium" | undefined;
3
3
  }>, {
4
4
  capability: undefined;
5
5
  }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
6
- capability?: "premium" | "beta" | undefined;
6
+ capability?: "beta" | "premium" | undefined;
7
7
  }>, {
8
8
  capability: undefined;
9
9
  }>>> & Readonly<{}>, {
10
- capability: "premium" | "beta";
10
+ capability: "beta" | "premium";
11
11
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<{
12
12
  default(): unknown;
13
13
  }> & {
@@ -49,7 +49,6 @@ export interface RecipeBulkEditEntry {
49
49
  }
50
50
  export type FlatBinding = FdoInventoryBinding & {
51
51
  recipeIds: string[];
52
- isGroup?: boolean;
53
52
  };
54
53
  export declare function flattenBindings(bindings: FdoInventoryBinding[], visitedIds: Set<string>, recipeById: Record<string, FdoInventoryRecipe>): FlatBinding[];
55
54
  export declare function decimalsEqual(a: FdoDecimal, b: FdoDecimal): boolean;
@@ -5,7 +5,7 @@ export type ObjectWithIndex<T> = {
5
5
  };
6
6
  export interface RecipeRow {
7
7
  recipeName: string;
8
- type: 'RECIPE' | 'INGREDIENT' | 'SKU_GROUP';
8
+ type: 'RECIPE' | 'INGREDIENT';
9
9
  code: string;
10
10
  name: string;
11
11
  amount: string;
@@ -15,7 +15,7 @@ export interface RecipeRow {
15
15
  customAttributes?: string;
16
16
  }
17
17
  export interface RecipeContainsRow {
18
- type: 'RECIPE' | 'SKU' | 'SKU_GROUP';
18
+ type: 'RECIPE' | 'SKU';
19
19
  id: string;
20
20
  amount: {
21
21
  amount: number;