@feedmepos/mf-inventory-portal 1.7.9-dev.4 → 1.7.10

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 (127) hide show
  1. package/dist/App-CT5mXYl4.js +311 -0
  2. package/dist/{ApprovalView-B0MC_Gv4.js → ApprovalView-4CriKmQs.js} +9 -9
  3. package/dist/{BindingsDialog-CUyLeRvh.js → BindingsDialog-D5avj8DX.js} +2 -2
  4. package/dist/{BindingsPicker-UkwLozYB.js → BindingsPicker-B2JyOm_w.js} +2 -2
  5. package/dist/{BindingsTable-4WbqclQu.js → BindingsTable-DJfkWc5P.js} +4 -4
  6. package/dist/BulkReceiveRequestView-C4r4B2n6.js +2595 -0
  7. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-aHOlyDp1.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-CRY1w8Uc.js} +1 -1
  8. package/dist/{ClosingDraftView-BZChpOPr.js → ClosingDraftView-C_JJDMNJ.js} +19 -19
  9. package/dist/{ClosingHistoryView-B8kE6kDk.js → ClosingHistoryView-Cy9fcVVb.js} +5 -5
  10. package/dist/{ClosingTemplateView-cJuk2ph0.js → ClosingTemplateView-CFrmV6RZ.js} +16 -16
  11. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-CraIMmym.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-D_Y4h8g5.js} +1 -1
  12. package/dist/{DefaultView-2P-3baXd.js → DefaultView-CyhHLBCD.js} +2 -2
  13. package/dist/{DeliveryOrderPrintPreview-JrmelmiW.js → DeliveryOrderPrintPreview-BOzx-kfp.js} +2 -2
  14. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-DK8FWZde.js → EmailDialog.vue_vue_type_script_setup_true_lang-Wvxs_biL.js} +3432 -3437
  15. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DSO8GPQh.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-CWmS36Up.js} +6 -6
  16. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BX4lkn8x.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CNGKBlwp.js} +2 -2
  17. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-D4ASSJTr.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CWqr4ICd.js} +2 -2
  18. package/dist/{FmMultiselectDialog-C3KVaJ4n.js → FmMultiselectDialog-A3tJaEBt.js} +2 -2
  19. package/dist/{FmMultiselectDialog-Cf2O3ZGm.js → FmMultiselectDialog-JvuPIzZ9.js} +1 -1
  20. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-B8Iz9egz.js → FmUnitInput.vue_vue_type_script_setup_true_lang-FATEPxnN.js} +6 -6
  21. package/dist/{ImportView-BpcbGOsq.js → ImportView-Jok6zpZ0.js} +496 -499
  22. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-CPqxv23A.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-CxxVwj29.js} +1 -1
  23. package/dist/{IngredientGroupView-DGiHqjGP.js → IngredientGroupView-BB6OBLUK.js} +5 -5
  24. package/dist/{IngredientsView-CymfMlp3.js → IngredientsView-DcGhQPOm.js} +17 -18
  25. package/dist/{IntegrationExplorerView-B4ihljuB.js → IntegrationExplorerView-D8GhmHTT.js} +4 -4
  26. package/dist/{IntegrationView-DBC5-V2I.js → IntegrationView-QMy0h7t-.js} +925 -912
  27. package/dist/{InventoryBindingForm-BrC9MQI_.js → InventoryBindingForm-CKvocLMW.js} +1 -1
  28. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-GcuRE825.js +441 -0
  29. package/dist/{InventoryBindingSummary-DJnyHxXU.js → InventoryBindingSummary-C8eGVfFI.js} +1 -1
  30. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-Cu7JdR_i.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BplA_VhH.js} +1 -1
  31. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-D29jHwzz.js → PremiumBadge.vue_vue_type_script_setup_true_lang-BkvJ-zUb.js} +1 -1
  32. package/dist/{ProductionView-BFXAINYn.js → ProductionView-DumThbF9.js} +7 -7
  33. package/dist/{PublishView-C2ZKNjV0.js → PublishView-Dz2d8J5W.js} +3 -3
  34. package/dist/{PurchaseOrderPrintPreview-DUaNv22q.js → PurchaseOrderPrintPreview-BWuFnitC.js} +2 -2
  35. package/dist/{ReceiveRequestView-B0bHSidO.js → ReceiveRequestView-D3RFPv1X.js} +14 -14
  36. package/dist/RecipeView-8KT5mjQG.js +3584 -0
  37. package/dist/{SettingsView-GU0zqJPQ.js → SettingsView-D7N5tJ1d.js} +4 -4
  38. package/dist/{StockView-KEXdcwRV.js → StockView-Du9YBbV4.js} +21 -21
  39. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-CrF431ux.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Oj_EIBiV.js} +1 -1
  40. package/dist/{SupplierView-J5XPtBtn.js → SupplierView-C3g_atPq.js} +12 -12
  41. package/dist/{SurchargeView-vbWzu1yC.js → SurchargeView-uumxAdLb.js} +6 -6
  42. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-DO3XuHWt.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-DjpAimFP.js} +2 -2
  43. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CnATZ2gf.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-BrDA6x40.js} +1 -1
  44. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-BekwCPEW.js → TransferDetails.vue_vue_type_script_setup_true_lang-DoeW6SAT.js} +1575 -1639
  45. package/dist/{TransferTemplateView-V4XgaVtH.js → TransferTemplateView-DLTlaG0Q.js} +20 -20
  46. package/dist/{UnitCostHistoryView-CLC3Bk51.js → UnitCostHistoryView-D7lguCzD.js} +4 -4
  47. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-QfJddUKl.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-B1ULmOk_.js} +4 -4
  48. package/dist/{UnitView-zdd28Okm.js → UnitView-CiWarwFw.js} +8 -8
  49. package/dist/{WarehouseView-80yYhx0q.js → WarehouseView-D_viW3um.js} +5 -5
  50. package/dist/{WastageTemplateView-BdkoxGXU.js → WastageTemplateView-BsGkTDVl.js} +14 -14
  51. package/dist/api/codemax.d.ts +5 -1
  52. package/dist/api/purchase-order.d.ts +0 -2
  53. package/dist/{app-BNb3mgP7.js → app-CmK8hghR.js} +18885 -19669
  54. package/dist/app.d.ts +9 -900
  55. package/dist/app.js +1 -1
  56. package/dist/{closing-template-B0OnLwK4.js → closing-template-DgGSyate.js} +1 -1
  57. package/dist/{date2-CEZilXJj.js → date2-CQePW31N.js} +5 -5
  58. package/dist/{dayjs.min-CM9pMep8.js → dayjs.min-lHU_s16T.js} +1 -1
  59. package/dist/{decimal-C7T3duiU.js → decimal-Q-0yK4sD.js} +2 -2
  60. package/dist/{defineDeepModel-BqXFlLTg.js → defineDeepModel-DTWu03v1.js} +1 -1
  61. package/dist/{duplicate-template-DNNNayq0.js → duplicate-template-BVN2zmVh.js} +1 -1
  62. package/dist/{feature-TVuArq91.js → feature-DskgoIu-.js} +2 -2
  63. package/dist/{format-time-from-id-BnKJ6XGj.js → format-time-from-id-DFIRpxdl.js} +1 -1
  64. package/dist/{format-unit-display-CXPWPWDC.js → format-unit-display-DnU4JEjD.js} +27 -27
  65. package/dist/{import-export.helper-BD5ZmNlI.js → import-export.helper-D7rPvGnr.js} +6 -6
  66. package/dist/{index-HB5HxMo3.js → index-Ck0KnOaw.js} +33 -27
  67. package/dist/{index-B6exMf0H.js → index-CzKCjhD3.js} +1 -1
  68. package/dist/{index-DB5lmTJv.js → index-N5G5c2tx.js} +3232 -3306
  69. package/dist/{inventory-core-dart.default-DIZjn9Qf.js → inventory-core-dart.default-B_ynwM9E.js} +1 -1
  70. package/dist/{lz-string-Ba7A8pQ9.js → lz-string-Dqta9kLv.js} +1 -1
  71. package/dist/{netsuite-DfDg_rIm.js → netsuite-C6tsULzY.js} +2 -3
  72. package/dist/{number-Da0xDyut.js → number-B_a5obOf.js} +3 -3
  73. package/dist/{predefined-templates-6OB7_XaD.js → predefined-templates-DQRYYpsy.js} +1 -1
  74. package/dist/{purchase-order-template-B5tBswYT.js → purchase-order-template-C85h_67x.js} +1 -1
  75. package/dist/{recalculationUtils-De3fjfMb.js → recalculationUtils-B4_UwPtC.js} +1 -1
  76. package/dist/{rules-CEMsIT_O.js → rules-CepJg59P.js} +2 -2
  77. package/dist/{stock-v1xKxzUF.js → stock-CXK2UPZu.js} +1 -1
  78. package/dist/{stock-B8Es7Hve.js → stock-Cz3EmZVG.js} +3 -3
  79. package/dist/stores/bulk-job.d.ts +0 -13
  80. package/dist/style.css +1 -1
  81. package/dist/{supplier-CutnfZkn.js → supplier-CeTkaUn4.js} +2 -2
  82. package/dist/{surcharge-B_J4MXnT.js → surcharge-CZZH4mHP.js} +8 -8
  83. package/dist/tsconfig.app.tsbuildinfo +1 -1
  84. package/dist/{uom-rules-iPENmQml.js → uom-rules-T1KgfW3u.js} +1 -1
  85. package/dist/{use-ingredient-select-dialog-pf4BGGJC.js → use-ingredient-select-dialog-BwIL8Qbe.js} +2 -2
  86. package/dist/{use-inventory-binding-dialog-EQZqHiBh.js → use-inventory-binding-dialog-D41PpdND.js} +2 -2
  87. package/dist/{use-template-enabled-locations-BBWgOLck.js → use-template-enabled-locations-BMX79cCz.js} +2 -2
  88. package/dist/{use-transfer-locations-BN_jm_Uj.js → use-transfer-locations-DXULS6Qy.js} +2 -2
  89. package/dist/{useHrmPermission-C0Uv8j0R.js → useHrmPermission-Cbo_q33w.js} +1 -1
  90. package/dist/{useNavigationMenu-DK7Fgr5l.js → useNavigationMenu-DrDBMCyh.js} +2 -2
  91. package/dist/{useSseClient-EppRU129.js → useSseClient-BBQaDkMe.js} +1 -1
  92. package/dist/views/ingredients/components/inventory-binding/InventoryBindingForm.vue.d.ts +0 -2
  93. package/dist/views/ingredients/components/inventory-binding/v2/InventoryBindingFormV2.vue.d.ts +0 -2
  94. package/dist/views/ingredients/components/inventory-binding/v2/components/InventoryRecipeBindingV2Field.vue.d.ts +0 -4
  95. package/dist/views/receive-request/components/email-dialog/EmailDialogProps.d.ts +9 -23
  96. package/dist/views/recipe/composables/use-recipe-table.d.ts +0 -11
  97. package/dist/{vue-i18n-CKFIvxhf.js → vue-i18n-AIAscLzr.js} +421 -421
  98. package/dist/{xlsx.util-DIO7WN8q.js → xlsx.util-Bws7po4u.js} +2 -2
  99. package/package.json +5 -5
  100. package/dist/App-Bte0vWY7.js +0 -1434
  101. package/dist/BulkReceiveRequestView-Bt_Kz7Pw.js +0 -2657
  102. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-CHTlQULY.js +0 -563
  103. package/dist/RecipeView-D8lfLSJW.js +0 -3625
  104. package/dist/api/changelog.d.ts +0 -132
  105. package/dist/views/changelog/components/ChangelogDialog.vue.d.ts +0 -19
  106. package/dist/views/changelog/components/ChangelogFloatingButton.vue.d.ts +0 -2
  107. package/dist/views/changelog/components/ChangelogPanel.spec.d.ts +0 -1
  108. package/dist/views/changelog/components/ChangelogPanel.vue.d.ts +0 -20
  109. package/dist/views/changelog/composables/change-path.d.ts +0 -10
  110. package/dist/views/changelog/composables/commit-message.d.ts +0 -9
  111. package/dist/views/changelog/composables/commit-message.spec.d.ts +0 -1
  112. package/dist/views/changelog/composables/json-line-diff.d.ts +0 -10
  113. package/dist/views/changelog/composables/json-line-diff.spec.d.ts +0 -1
  114. package/dist/views/changelog/composables/use-changelog.d.ts +0 -90
  115. package/dist/views/changelog/composables/use-changelog.spec.d.ts +0 -1
  116. package/dist/views/changelog/composables/use-inventory-record-commits.d.ts +0 -97
  117. package/dist/views/changelog/composables/use-inventory-record-commits.spec.d.ts +0 -1
  118. package/dist/views/changelog/composables/use-snapshot-diff.d.ts +0 -29
  119. package/dist/views/changelog/composables/use-snapshot-diff.spec.d.ts +0 -1
  120. package/dist/views/changelog/composables/value-tree.d.ts +0 -14
  121. package/dist/views/changelog/composables/value-tree.spec.d.ts +0 -1
  122. package/dist/views/import/helper/submit-rows.d.ts +0 -13
  123. package/dist/views/import/helper/submit-rows.spec.d.ts +0 -1
  124. package/dist/views/ingredients/components/inventory-binding/RecipeBindingBreakdown.vue.d.ts +0 -25
  125. package/dist/views/ingredients/components/inventory-binding/composables/recipe-breakdown.d.ts +0 -34
  126. package/dist/views/ingredients/components/inventory-binding/composables/recipe-breakdown.spec.d.ts +0 -1
  127. package/dist/views/receive-request/components/email-dialog/EmailDialog.spec.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-CHTlQULY.js";
1
+ import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-GcuRE825.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -0,0 +1,441 @@
1
+ import { defineComponent as oe, computed as x, reactive as te, resolveComponent as B, createElementBlock as c, openBlock as d, createVNode as u, createElementVNode as n, createCommentVNode as v, withCtx as I, createBlock as w, toDisplayString as p, unref as i, Fragment as U, renderList as G, nextTick as le } from "vue";
2
+ import { a as ie, t as se, v as de, F as re } from "./app-CmK8hghR.js";
3
+ import { a as h, c as ae } from "./number-B_a5obOf.js";
4
+ import { u as ue } from "./use-inventory-binding-dialog-D41PpdND.js";
5
+ import { b as $, c as A } from "./rules-CepJg59P.js";
6
+ import { _ as me, c as ce, d as pe } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-FATEPxnN.js";
7
+ import { useI18n as ye } from "@feedmepos/mf-common";
8
+ const fe = { class: "flex flex-col gap-24" }, ve = { class: "flex flex-col gap-16" }, be = { class: "flex items-center" }, _e = { class: "flex-1 fm-typo-en-title-sm-600" }, xe = { class: "flex flex-col" }, ge = { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, he = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, Ve = { class: "flex flex-col w-full border-b border-fm-color-neutral-gray-100" }, ke = {
9
+ class: "flex items-center",
10
+ style: { "min-height": "48px" }
11
+ }, Be = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, Ie = { class: "flex flex-col" }, we = { class: "line-clamp-1" }, Fe = { class: "w-[200px]" }, Ue = {
12
+ key: 0,
13
+ class: "w-[52px]"
14
+ }, Ce = {
15
+ key: 0,
16
+ class: "flex gap-4 text-fm-color-system-error-400 fm-typo-en-body-sm-400 px-8"
17
+ }, Ee = {
18
+ key: 0,
19
+ class: "flex flex-col gap-16"
20
+ }, Ge = { class: "flex items-center" }, Ae = { class: "flex-1 fm-typo-en-title-sm-600" }, Re = { class: "flex flex-col" }, Se = { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, Pe = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, Te = { class: "flex flex-col w-full border-b border-fm-color-neutral-gray-100" }, Me = {
21
+ key: 0,
22
+ class: "flex gap-4 text-fm-color-system-error-400 fm-typo-en-body-sm-400"
23
+ }, Ne = {
24
+ class: "flex items-center",
25
+ style: { "min-height": "48px" }
26
+ }, $e = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, ze = { class: "flex flex-col" }, De = { class: "w-[200px]" }, Ke = {
27
+ key: 0,
28
+ class: "w-[52px]"
29
+ }, je = { class: "flex flex-col gap-16" }, Le = { class: "flex items-center" }, Oe = { class: "flex-1 fm-typo-en-title-sm-600" }, Ye = { class: "flex flex-col" }, We = { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, qe = { class: "flex-1 fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, He = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary w-[150px] px-16" }, Je = {
30
+ key: 0,
31
+ class: "flex flex-col border-b border-fm-color-neutral-gray-100"
32
+ }, Qe = {
33
+ class: "flex items-center w-full",
34
+ style: { "min-height": "48px" }
35
+ }, Xe = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12 text-fm-color-typo-secondary line-clamp-1" }, Ze = {
36
+ key: 0,
37
+ class: "w-[52px]"
38
+ }, en = { class: "flex gap-4 text-fm-color-system-error-400 fm-typo-en-body-sm-400 px-12 pb-4" }, nn = {
39
+ key: 1,
40
+ class: "flex flex-col border-b border-fm-color-neutral-gray-100"
41
+ }, on = {
42
+ class: "flex items-center w-full",
43
+ style: { "min-height": "48px" }
44
+ }, tn = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, ln = { class: "line-clamp-1 w-full" }, sn = { class: "w-[150px]" }, dn = {
45
+ key: 0,
46
+ class: "w-[52px]"
47
+ }, rn = { class: "flex flex-col px-12 pb-4" }, vn = /* @__PURE__ */ oe({
48
+ __name: "InventoryBindingForm",
49
+ props: {
50
+ id: {},
51
+ modelValue: { default: () => [] },
52
+ excludeBindingId: {},
53
+ rules: { default: () => [] },
54
+ iframeMode: { type: Boolean },
55
+ disabled: { type: Boolean },
56
+ readonly: { type: Boolean },
57
+ enableIngredientGroup: { type: Boolean }
58
+ },
59
+ emits: ["update:modelValue", "click:pick-inventory-bindings"],
60
+ setup(z, { emit: D }) {
61
+ const { t: m } = ye(), g = ie(), R = x(() => g.recipeById), V = x(() => g.skuById), K = x(() => g.skuGroupById), s = z, b = D, S = x(() => se({
62
+ parentId: s.id,
63
+ bindings: s.modelValue,
64
+ recipes: g.recipes.map((t) => t._id === s.id ? {
65
+ ...t,
66
+ contains: s.modelValue
67
+ } : t),
68
+ skus: g.skus.map((t) => t._id === s.id ? {
69
+ ...t,
70
+ convert: {
71
+ inventoryBindings: s.modelValue
72
+ }
73
+ } : t),
74
+ skuGroups: g.skuGroups
75
+ }).inventoryBindings.filter((t) => "error" in t && t.error).map((t) => t).filter((t) => t.reason === de.enum.circularDependency)), C = x(
76
+ () => new Set(S.value.map((e) => {
77
+ var l;
78
+ return (l = e.bindingPaths[0]) == null ? void 0 : l.id;
79
+ }))
80
+ ), j = x(() => s.modelValue.filter((e) => e.type === "RECIPE")), { promptIngredientsBinding: L, promptRecipesBinding: O, promptIngredientGroupsBinding: Y } = ue();
81
+ async function W() {
82
+ if (s.iframeMode) {
83
+ b("click:pick-inventory-bindings", "RECIPE");
84
+ return;
85
+ }
86
+ O(
87
+ s.modelValue,
88
+ (e) => b("update:modelValue", e),
89
+ s.id ? [s.id] : []
90
+ );
91
+ }
92
+ const q = x(() => s.modelValue.filter((e) => e.type === "SKU_GROUP"));
93
+ async function H() {
94
+ Y(
95
+ s.modelValue,
96
+ (e) => b("update:modelValue", e),
97
+ s.id ? [s.id] : []
98
+ );
99
+ }
100
+ const P = x(() => s.modelValue.filter((e) => e.type === "SKU") ?? []);
101
+ async function J() {
102
+ if (s.iframeMode) {
103
+ b("click:pick-inventory-bindings", "SKU");
104
+ return;
105
+ }
106
+ L(
107
+ s.modelValue,
108
+ (e) => b("update:modelValue", e),
109
+ s.excludeBindingId,
110
+ s.id ? [s.id] : []
111
+ );
112
+ }
113
+ function T(e, l, t) {
114
+ const a = +l;
115
+ let f = t;
116
+ l.length > 0 && isFinite(a) ? f = t.map((y) => (y.id !== e || (y.amount = ae(a)), y)) : f = t.map((y) => (y.id !== e || (y.amount = { amount: 0, precision: 0 }), y)), b("update:modelValue", f);
117
+ }
118
+ function F(e, l) {
119
+ const t = l.filter((a) => a.id !== e);
120
+ b("update:modelValue", t);
121
+ }
122
+ function M(e) {
123
+ var t, a;
124
+ if (e.type !== re.enum.SKU)
125
+ throw new Error("Non-SKU binding does not have unit");
126
+ if (!((t = V.value[e.id]) == null ? void 0 : t.unit))
127
+ throw new Error(`Cannot find ingredient: ${e.id}`);
128
+ return (a = V.value[e.id]) == null ? void 0 : a.unit;
129
+ }
130
+ function Q(e) {
131
+ return !V.value[e.id];
132
+ }
133
+ function X(e) {
134
+ return { amount: e.amount, measurement: e.measurement };
135
+ }
136
+ function Z(e, l, t) {
137
+ const a = t.map((f) => f.id !== e ? f : {
138
+ ...f,
139
+ amount: l.amount,
140
+ measurement: l.measurement
141
+ });
142
+ b("update:modelValue", a);
143
+ }
144
+ const N = te({});
145
+ function ee(e) {
146
+ return N[e.id] ?? {
147
+ modelValue: {
148
+ amount: e.amount,
149
+ measurement: e.measurement
150
+ },
151
+ amountAsString: h(e.amount)
152
+ };
153
+ }
154
+ function ne(e, l) {
155
+ le(() => {
156
+ N[e.id] = {
157
+ modelValue: {
158
+ amount: e.amount,
159
+ measurement: e.measurement
160
+ },
161
+ amountAsString: l
162
+ };
163
+ });
164
+ }
165
+ return (e, l) => {
166
+ const t = B("FmFormGroup"), a = B("FmButton"), f = B("FmTooltip"), y = B("FmTextField"), E = B("FmIcon");
167
+ return d(), c("div", fe, [
168
+ u(t, {
169
+ disabled: e.disabled,
170
+ "model-value": e.modelValue,
171
+ rules: [
172
+ ...e.rules,
173
+ () => S.value.length ? "There is a binding error in your configuration" : !0
174
+ ]
175
+ }, {
176
+ label: I(() => l[0] || (l[0] = [
177
+ n("div", { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, " Define the inventory bindings for this recipe or ingredient. ", -1)
178
+ ])),
179
+ _: 1
180
+ }, 8, ["disabled", "model-value", "rules"]),
181
+ n("div", ve, [
182
+ n("div", be, [
183
+ n("div", _e, p(i(m)("inventory.inventoryBindings.recipe")), 1),
184
+ e.readonly ? v("", !0) : (d(), w(a, {
185
+ key: 0,
186
+ variant: "secondary",
187
+ "text-color": "primary",
188
+ "border-color": "primary",
189
+ label: i(m)("inventory.inventoryBindings.linkRecipe"),
190
+ "prepend-icon": "link",
191
+ onClick: W
192
+ }, null, 8, ["label"]))
193
+ ]),
194
+ n("div", xe, [
195
+ n("div", ge, [
196
+ n("div", he, p(i(m)("inventory.inventoryBindings.recipe")), 1),
197
+ l[1] || (l[1] = n("div", { class: "w-[200px]" }, null, -1)),
198
+ l[2] || (l[2] = n("div", { class: "w-[52px]" }, null, -1))
199
+ ]),
200
+ (d(!0), c(U, null, G(j.value, (o) => (d(), w(t, {
201
+ key: o.id,
202
+ disabled: e.disabled,
203
+ modelValue: +i(h)(o.amount ?? { amount: 1, precision: 0 }),
204
+ rules: [i($)(0), i(A)(-1)]
205
+ }, {
206
+ default: I(({ invalid: k }) => {
207
+ var _;
208
+ return [
209
+ n("div", Ve, [
210
+ n("div", ke, [
211
+ n("div", Be, [
212
+ n("div", Ie, [
213
+ u(f, {
214
+ zIndex: 51,
215
+ variant: "plain",
216
+ placement: "top",
217
+ content: (_ = R.value[o.id]) == null ? void 0 : _.name
218
+ }, {
219
+ default: I(() => {
220
+ var r;
221
+ return [
222
+ n("span", we, p((r = R.value[o.id]) == null ? void 0 : r.name), 1)
223
+ ];
224
+ }),
225
+ _: 2
226
+ }, 1032, ["content"])
227
+ ])
228
+ ]),
229
+ n("div", Fe, [
230
+ u(y, {
231
+ class: "w-full",
232
+ disabled: e.disabled,
233
+ modelValue: +i(h)(o.amount ?? { amount: 1, precision: 0 }),
234
+ "onUpdate:modelValue": (r) => T(o.id, r, e.modelValue),
235
+ invalid: k
236
+ }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue", "invalid"])
237
+ ]),
238
+ e.readonly ? v("", !0) : (d(), c("div", Ue, [
239
+ u(a, {
240
+ disabled: e.disabled,
241
+ type: "button",
242
+ variant: "plain",
243
+ icon: "delete",
244
+ "icon-color": "#000000",
245
+ onClick: (r) => F(o.id, e.modelValue)
246
+ }, null, 8, ["disabled", "onClick"])
247
+ ]))
248
+ ]),
249
+ C.value.has(o.id) ? (d(), c("div", Ce, [
250
+ u(E, {
251
+ name: "error",
252
+ color: "system-error-300",
253
+ size: "sm"
254
+ }),
255
+ n("div", null, p(i(m)("inventory.inventoryBindings.circularError")), 1)
256
+ ])) : v("", !0)
257
+ ])
258
+ ];
259
+ }),
260
+ _: 2
261
+ }, 1032, ["disabled", "modelValue", "rules"]))), 128))
262
+ ])
263
+ ]),
264
+ e.enableIngredientGroup ? (d(), c("div", Ee, [
265
+ n("div", Ge, [
266
+ n("div", Ae, p(i(m)("inventory.inventoryBindings.ingredientGroup")), 1),
267
+ e.readonly ? v("", !0) : (d(), w(a, {
268
+ key: 0,
269
+ variant: "secondary",
270
+ "text-color": "primary",
271
+ "border-color": "primary",
272
+ label: i(m)("inventory.inventoryBindings.linkIngredientGroup"),
273
+ "prepend-icon": "link",
274
+ onClick: H
275
+ }, null, 8, ["label"]))
276
+ ]),
277
+ n("div", Re, [
278
+ n("div", Se, [
279
+ n("div", Pe, p(i(m)("inventory.inventoryBindings.ingredientGroup")), 1),
280
+ l[3] || (l[3] = n("div", { class: "w-[200px]" }, null, -1)),
281
+ l[4] || (l[4] = n("div", { class: "w-[52px]" }, null, -1))
282
+ ]),
283
+ (d(!0), c(U, null, G(q.value, (o) => (d(), w(t, {
284
+ key: o.id,
285
+ disabled: e.disabled,
286
+ modelValue: +i(h)(o.amount ?? { amount: 1, precision: 0 }),
287
+ rules: [i($)(0), i(A)(0)]
288
+ }, {
289
+ default: I(({ invalid: k }) => {
290
+ var _;
291
+ return [
292
+ n("div", Te, [
293
+ C.value.has(o.id) ? (d(), c("div", Me, [
294
+ u(E, {
295
+ name: "error",
296
+ color: "system-error-300",
297
+ size: "sm"
298
+ }),
299
+ n("div", null, p(i(m)("inventory.inventoryBindings.circularError")), 1)
300
+ ])) : v("", !0),
301
+ n("div", Ne, [
302
+ n("div", $e, [
303
+ n("div", ze, p((_ = K.value[o.id]) == null ? void 0 : _.name), 1)
304
+ ]),
305
+ n("div", De, [
306
+ u(y, {
307
+ class: "w-full",
308
+ disabled: e.disabled,
309
+ modelValue: +i(h)(o.amount ?? { amount: 1, precision: 0 }),
310
+ "onUpdate:modelValue": (r) => T(o.id, r, e.modelValue),
311
+ invalid: k
312
+ }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue", "invalid"])
313
+ ]),
314
+ e.readonly ? v("", !0) : (d(), c("div", Ke, [
315
+ u(a, {
316
+ disabled: e.disabled,
317
+ type: "button",
318
+ variant: "plain",
319
+ icon: "delete",
320
+ "icon-color": "#000000",
321
+ onClick: (r) => F(o.id, e.modelValue)
322
+ }, null, 8, ["disabled", "onClick"])
323
+ ]))
324
+ ])
325
+ ])
326
+ ];
327
+ }),
328
+ _: 2
329
+ }, 1032, ["disabled", "modelValue", "rules"]))), 128))
330
+ ])
331
+ ])) : v("", !0),
332
+ n("div", je, [
333
+ n("div", Le, [
334
+ n("div", Oe, p(i(m)("inventory.inventoryBindings.ingredient")), 1),
335
+ e.readonly ? v("", !0) : (d(), w(a, {
336
+ key: 0,
337
+ variant: "secondary",
338
+ "text-color": "primary",
339
+ "border-color": "primary",
340
+ label: i(m)("inventory.inventoryBindings.linkIngredient"),
341
+ "prepend-icon": "link",
342
+ onClick: J
343
+ }, null, 8, ["label"]))
344
+ ]),
345
+ n("div", Ye, [
346
+ n("div", We, [
347
+ n("div", qe, p(i(m)("inventory.inventoryBindings.ingredient")), 1),
348
+ n("div", He, p(i(m)("inventory.inventoryBindings.amount")), 1),
349
+ l[5] || (l[5] = n("div", { class: "w-[52px]" }, null, -1))
350
+ ]),
351
+ (d(!0), c(U, null, G(P.value, (o, k) => {
352
+ var _;
353
+ return d(), c(U, {
354
+ key: o.id
355
+ }, [
356
+ Q(o) ? (d(), c("div", Je, [
357
+ n("div", Qe, [
358
+ n("div", Xe, p(o.id), 1),
359
+ e.readonly ? v("", !0) : (d(), c("div", Ze, [
360
+ u(a, {
361
+ disabled: e.disabled,
362
+ type: "button",
363
+ variant: "tertiary",
364
+ icon: "delete",
365
+ onClick: (r) => F(o.id, e.modelValue)
366
+ }, null, 8, ["disabled", "onClick"])
367
+ ]))
368
+ ]),
369
+ n("div", en, [
370
+ u(E, {
371
+ name: "error",
372
+ color: "system-error-300",
373
+ size: "sm"
374
+ }),
375
+ n("div", null, p(i(m)("inventory.inventoryBindings.missingIngredient")), 1)
376
+ ])
377
+ ])) : (d(), c("div", nn, [
378
+ n("div", on, [
379
+ n("div", tn, [
380
+ u(f, {
381
+ zIndex: 51,
382
+ variant: "plain",
383
+ placement: "top",
384
+ content: (_ = V.value[o.id]) == null ? void 0 : _.name
385
+ }, {
386
+ default: I(() => {
387
+ var r;
388
+ return [
389
+ n("span", ln, p((r = V.value[o.id]) == null ? void 0 : r.name), 1)
390
+ ];
391
+ }),
392
+ _: 2
393
+ }, 1032, ["content"])
394
+ ]),
395
+ n("div", sn, [
396
+ u(me, {
397
+ "model-value": X(o),
398
+ "onUpdate:modelValue": (r) => r && Z(o.id, r, e.modelValue),
399
+ "onUpdate:amount": (r) => ne(o, r),
400
+ unit: M(o),
401
+ placement: k === P.value.length - 1 ? "top" : "bottom",
402
+ "convert-amount-on-change-unit": "",
403
+ disabled: e.readonly
404
+ }, null, 8, ["model-value", "onUpdate:modelValue", "onUpdate:amount", "unit", "placement", "disabled"])
405
+ ]),
406
+ e.readonly ? v("", !0) : (d(), c("div", dn, [
407
+ u(a, {
408
+ disabled: e.disabled,
409
+ type: "button",
410
+ variant: "tertiary",
411
+ icon: "delete",
412
+ onClick: (r) => F(o.id, e.modelValue)
413
+ }, null, 8, ["disabled", "onClick"])
414
+ ]))
415
+ ]),
416
+ n("div", rn, [
417
+ u(t, {
418
+ modelValue: +i(h)(o.amount ?? { amount: 1, precision: 0 }),
419
+ rules: [i(A)(0)]
420
+ }, null, 8, ["modelValue", "rules"]),
421
+ u(t, {
422
+ modelValue: ee(o),
423
+ rules: [
424
+ i(ce)(),
425
+ i(pe)(M(o)),
426
+ () => C.value.has(o.id) ? i(m)("inventory.inventoryBindings.invalidWarning") : !0
427
+ ]
428
+ }, null, 8, ["modelValue", "rules"])
429
+ ])
430
+ ]))
431
+ ], 64);
432
+ }), 128))
433
+ ])
434
+ ])
435
+ ]);
436
+ };
437
+ }
438
+ });
439
+ export {
440
+ vn as _
441
+ };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as l, resolveComponent as m, createBlock as c, openBlock as d, h as g } from "vue";
2
2
  import { useI18n as p } from "@feedmepos/mf-common";
3
3
  import { components as u } from "@feedmepos/ui-library";
4
- import { F as r } from "./app-BNb3mgP7.js";
4
+ import { F as r } from "./app-CmK8hghR.js";
5
5
  const w = /* @__PURE__ */ l({
6
6
  __name: "InventoryBindingSummary",
7
7
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as V, computed as w, ref as h, watch as u, resolveComponent as i, createBlock as F, openBlock as g, withCtx as d, createVNode as A, createElementVNode as k, normalizeClass as K } from "vue";
2
- import { c as s } from "./number-Da0xDyut.js";
2
+ import { c as s } from "./number-B_a5obOf.js";
3
3
  const _ = ["value", "disabled"], C = /* @__PURE__ */ V({
4
4
  __name: "NumberPrecisionInput",
5
5
  props: {
@@ -1,4 +1,4 @@
1
- import { d as F, u as f } from "./app-BNb3mgP7.js";
1
+ import { m as F, u as f } from "./app-CmK8hghR.js";
2
2
  import { useCoreStore as v } from "@feedmepos/mf-common";
3
3
  import { ref as _, defineComponent as h, resolveComponent as l, createElementBlock as y, openBlock as g, renderSlot as k, createVNode as p, withCtx as S } from "vue";
4
4
  const m = F((e, t) => {
@@ -1,14 +1,14 @@
1
1
  import { defineComponent as ce, ref as F, createElementBlock as c, openBlock as r, createElementVNode as t, createBlock as V, createTextVNode as G, toDisplayString as a, normalizeClass as ue, Teleport as Ce, createCommentVNode as P, Fragment as q, normalizeStyle as $e, renderList as U, computed as _, watch as ie, resolveComponent as j, withCtx as K, createVNode as M, onMounted as Se, h as E, reactive as Ie, withDirectives as Fe, vModelText as De, unref as Ne } from "vue";
2
2
  import { _ as Te } from "./SingleColumnLayout.vue_vue_type_script_setup_true_lang-DwrLsWX_.js";
3
3
  import { useDialog as ve, useSnackbar as ge, components as se } from "@feedmepos/ui-library";
4
- import { d as Be, u as be, a as xe } from "./app-BNb3mgP7.js";
5
- import { _ as Ee } from "./ChangeLocationComponent.vue_vue_type_script_setup_true_lang-aHOlyDp1.js";
4
+ import { m as Be, u as be, a as xe } from "./app-CmK8hghR.js";
5
+ import { _ as Ee } from "./ChangeLocationComponent.vue_vue_type_script_setup_true_lang-CRY1w8Uc.js";
6
6
  import { useI18n as Ae } from "@feedmepos/mf-common";
7
- import { c as ke } from "./inventory-core-dart.default-DIZjn9Qf.js";
8
- import { u as Pe } from "./stock-B8Es7Hve.js";
9
- import { a as Re } from "./FmMultiselectDialog-C3KVaJ4n.js";
10
- import { e as qe, _ as Me } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-B8Iz9egz.js";
11
- import { u as Le } from "./stock-v1xKxzUF.js";
7
+ import { c as ke } from "./inventory-core-dart.default-B_ynwM9E.js";
8
+ import { u as Pe } from "./stock-Cz3EmZVG.js";
9
+ import { a as Re } from "./FmMultiselectDialog-A3tJaEBt.js";
10
+ import { e as qe, _ as Me } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-FATEPxnN.js";
11
+ import { u as Le } from "./stock-CXK2UPZu.js";
12
12
  const he = Be((Q, w) => {
13
13
  const y = be(), u = () => `${Q.inventoryBackendUrl}/${y.currentLocationDBName}/production`;
14
14
  return {
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as D, ref as A, computed as s, watch as H, resolveComponent as c, createBlock as S, openBlock as x, unref as l, createSlots as Y, withCtx as h, createElementVNode as N, normalizeClass as U, createVNode as m, normalizeStyle as $, Teleport as q, h as p } from "vue";
2
- import { u as E, a as K, x as j } from "./app-BNb3mgP7.js";
2
+ import { u as E, a as K, x as j } from "./app-CmK8hghR.js";
3
3
  import { u as G, _ as J } from "./SingleColumnLayout.vue_vue_type_script_setup_true_lang-DwrLsWX_.js";
4
4
  import { useBreakpoints as O, useDialog as Q, useSnackbar as R, components as I } from "@feedmepos/ui-library";
5
- import { u as X } from "./vue-i18n-CKFIvxhf.js";
6
- import { b as k } from "./date2-CEZilXJj.js";
5
+ import { u as X } from "./vue-i18n-AIAscLzr.js";
6
+ import { a as k } from "./date2-CQePW31N.js";
7
7
  const se = /* @__PURE__ */ D({
8
8
  __name: "PublishView",
9
9
  setup(Z) {
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as b, computed as x, ref as f, onMounted as g, createElementBlock as n, openBlock as o, createElementVNode as t, toDisplayString as e, normalizeStyle as w, createTextVNode as u, createCommentVNode as v, Fragment as i, renderList as p } from "vue";
2
2
  import { useRoute as k } from "vue-router";
3
- import { T as y } from "./app-BNb3mgP7.js";
4
- import { L as C } from "./lz-string-Ba7A8pQ9.js";
3
+ import { T as y } from "./app-CmK8hghR.js";
4
+ import { L as C } from "./lz-string-Dqta9kLv.js";
5
5
  import { _ as N } from "./_plugin-vue_export-helper-CHgC5LLL.js";
6
6
  const R = { class: "purchase-box" }, A = { valign: "bottom" }, E = { class: "title" }, P = { class: "text-right" }, D = { class: "header" }, O = { class: "sub-header" }, S = { class: "caption" }, T = { class: "address" }, F = { class: "text-right" }, L = {
7
7
  key: 0,
@@ -1,24 +1,24 @@
1
1
  import { defineComponent as Se, computed as d, ref as O, watch as ee, resolveComponent as De, createBlock as E, openBlock as y, unref as r, withCtx as q, createElementVNode as f, normalizeClass as xe, createVNode as u, normalizeStyle as Re, createElementBlock as Oe, createCommentVNode as te, toDisplayString as Ee, Teleport as Pe, normalizeProps as re, mergeProps as N, guardReactiveProps as Te, isRef as ke } from "vue";
2
- import { D as P, u as Ce } from "./app-BNb3mgP7.js";
3
- import { i as ae } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DSO8GPQh.js";
4
- import { u as we, P as U, a as qe, _ as Ne, g as Ue } from "./TransferDetails.vue_vue_type_script_setup_true_lang-BekwCPEW.js";
5
- import { a as ne, d as Fe } from "./number-Da0xDyut.js";
6
- import { i as Me } from "./PremiumBadge.vue_vue_type_script_setup_true_lang-D29jHwzz.js";
7
- import { d as se } from "./dayjs.min-CM9pMep8.js";
8
- import { e as Ve } from "./UnitDisplayControl.vue_vue_type_script_setup_true_lang-QfJddUKl.js";
2
+ import { D as P, u as Ce } from "./app-CmK8hghR.js";
3
+ import { i as ae } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-CWmS36Up.js";
4
+ import { u as we, P as U, a as qe, _ as Ne, g as Ue } from "./TransferDetails.vue_vue_type_script_setup_true_lang-DoeW6SAT.js";
5
+ import { a as ne, d as Fe } from "./number-B_a5obOf.js";
6
+ import { i as Me } from "./PremiumBadge.vue_vue_type_script_setup_true_lang-BkvJ-zUb.js";
7
+ import { d as se } from "./dayjs.min-lHU_s16T.js";
8
+ import { e as Ve } from "./UnitDisplayControl.vue_vue_type_script_setup_true_lang-B1ULmOk_.js";
9
9
  import { u as $e } from "./useTabStorage-BkIVScW_.js";
10
10
  import { u as Ae, _ as Ye } from "./SingleColumnLayout.vue_vue_type_script_setup_true_lang-DwrLsWX_.js";
11
11
  import { useSnackbar as He, useBreakpoints as ze } from "@feedmepos/ui-library";
12
- import { _ as Ie, a as je, b as Ke } from "./EmailDialog.vue_vue_type_script_setup_true_lang-DK8FWZde.js";
12
+ import { _ as Ie, a as je, b as Ke } from "./EmailDialog.vue_vue_type_script_setup_true_lang-Wvxs_biL.js";
13
13
  import { _ as Le, F as T } from "./TableActionableRow.vue_vue_type_script_setup_true_lang-DAMpuZ1X.js";
14
- import { u as Qe } from "./feature-TVuArq91.js";
15
- import { _ as Je } from "./FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-D4ASSJTr.js";
14
+ import { u as Qe } from "./feature-DskgoIu-.js";
15
+ import { _ as Je } from "./FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CWqr4ICd.js";
16
16
  import { useI18n as Xe } from "@feedmepos/mf-common";
17
- import { _ as Ge } from "./CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-CraIMmym.js";
17
+ import { _ as Ge } from "./CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-D_Y4h8g5.js";
18
18
  import { P as We, J as Ze } from "./app-C39bYJmq.js";
19
- import { u as Be } from "./netsuite-DfDg_rIm.js";
20
- import { f as et } from "./predefined-templates-6OB7_XaD.js";
21
- import "./inventory-core-dart.default-DIZjn9Qf.js";
19
+ import { u as Be } from "./netsuite-C6tsULzY.js";
20
+ import { f as et } from "./predefined-templates-DQRYYpsy.js";
21
+ import "./inventory-core-dart.default-B_ynwM9E.js";
22
22
  const tt = { class: "flex flex-col py-8" }, rt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, at = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary line-clamp-1" }, nt = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary line-clamp-1" }, st = {
23
23
  key: 0,
24
24
  class: "fm-typo-en-body-md-400 text-fm-color-typo-primary line-clamp-1"