@feedmepos/mf-inventory-portal 0.0.23-dev.8 → 0.0.23-prod.1

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 (154) hide show
  1. package/dist/App-BOqFJz8l.js +276 -0
  2. package/dist/{ApprovalView-D1BiL6Eb.js → ApprovalView-CdFpfV57.js} +18 -21
  3. package/dist/{BindingsDialog-Svbe6kls.js → BindingsDialog-BCojALob.js} +6 -6
  4. package/dist/{BindingsPicker-CuPWowOy.js → BindingsPicker-DPfV2Otm.js} +11 -12
  5. package/dist/BindingsTable-B3UfKS0K.js +120 -0
  6. package/dist/ClosingDraftView-D2CJcw8U.js +1225 -0
  7. package/dist/{ClosingTemplateView-DYB4bk26.js → ClosingTemplateView-UqrSCt3M.js} +271 -285
  8. package/dist/FmCustomAttribute.vue_vue_type_script_setup_true_lang-BjSgGBz-.js +142 -0
  9. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DApYBey2.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CpJjQN4N.js} +19 -20
  10. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-BZijME3G.js → FmUnitInput.vue_vue_type_script_setup_true_lang-BJ1Mq9E0.js} +59 -60
  11. package/dist/{IngredientGroupView-CwyP0VR-.js → IngredientGroupView-Dblfat5J.js} +63 -69
  12. package/dist/IngredientsView-Bo0MoWRT.js +1706 -0
  13. package/dist/{IntegrationView-CGBphMfH.js → IntegrationView-CSsNhze9.js} +89 -92
  14. package/dist/{InventoryBindingForm-C86nm-C1.js → InventoryBindingForm-DKHD6Dwc.js} +1 -1
  15. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-B-hMO0wv.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-D9_DCFOd.js} +115 -107
  16. package/dist/{InventoryBindingSummary-DLQRCqmv.js → InventoryBindingSummary-9KLMFG8d.js} +3 -3
  17. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CZsvmIju.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-Dmx33_tN.js} +6 -6
  18. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-BsEfEmYR.js → PremiumBadge.vue_vue_type_script_setup_true_lang-Behy47bd.js} +21 -22
  19. package/dist/{PreviewBadge.vue_vue_type_script_setup_true_lang-CRZiQHjx.js → PreviewBadge.vue_vue_type_script_setup_true_lang-DX2MJqL4.js} +2 -2
  20. package/dist/PublishView-CcPpgk_8.js +192 -0
  21. package/dist/{PurchaseOrderPrintPreview-BQ4eedE7.js → PurchaseOrderPrintPreview-Df5hJv1A.js} +14 -15
  22. package/dist/ReceiveRequestView-Djl7C4bv.js +1863 -0
  23. package/dist/RecipeView-DRFOR7ZX.js +609 -0
  24. package/dist/{StockForecast.vue_vue_type_style_index_0_lang-KLXSWvo5.js → StockForecast.vue_vue_type_style_index_0_lang-mEsX3B1X.js} +3 -3
  25. package/dist/StockView--HWI7WJt.js +1816 -0
  26. package/dist/{SupplierView-Bz44BdU-.js → SupplierView-5XSPVyjv.js} +812 -2367
  27. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-DRYpeGZN.js +1327 -0
  28. package/dist/TransferTemplateView-Cx1YERKh.js +1263 -0
  29. package/dist/{UnitView-C0BQQzCx.js → UnitView-Cd6V0bMd.js} +228 -227
  30. package/dist/{WarehouseView-CXZwvNvG.js → WarehouseView-Fgbv1oN1.js} +197 -203
  31. package/dist/api/adjustment-template.d.ts +25 -0
  32. package/dist/api/bill.d.ts +246 -84
  33. package/dist/api/closing-draft.d.ts +6 -0
  34. package/dist/api/closing.d.ts +1 -0
  35. package/dist/api/inventory.d.ts +19 -6
  36. package/dist/api/netsuite.d.ts +3 -3
  37. package/dist/app-DRmhrBg9.js +85556 -0
  38. package/dist/app.d.ts +88 -6
  39. package/dist/app.js +2 -2
  40. package/dist/components/FmCustomAttribute.vue.d.ts +23 -0
  41. package/dist/components/FmLockableField.vue.d.ts +37 -0
  42. package/dist/components/FmMultiselectDialogProps.d.ts +1 -0
  43. package/dist/components/inventory-binding/InventoryBinding.vue.d.ts +3 -1
  44. package/dist/components/row-action.enum.d.ts +1 -0
  45. package/dist/components/shell/inventory/binding-ui.vue.d.ts +3 -1
  46. package/dist/composable/defineDeepModel.d.ts +1 -1
  47. package/dist/{decimal-BfCXdz5w.js → decimal-BOZgtAM7.js} +1 -1
  48. package/dist/format-unit-display-CVndnCbw.js +1213 -0
  49. package/dist/index-Ce8Grw-X.js +10545 -0
  50. package/dist/{is-linked-ingredient-error-fJ2TJb3z.js → is-linked-ingredient-error-C5KlE2db.js} +3 -3
  51. package/dist/layout/SingleColumnLayout.vue.d.ts +1 -0
  52. package/dist/normalizeArguments-CjbQkCn-.js +1548 -0
  53. package/dist/router/name.d.ts +3 -0
  54. package/dist/stock-PJGEsIwQ.js +125 -0
  55. package/dist/stores/feature.d.ts +41 -1
  56. package/dist/stores/integration/netsuite.d.ts +3 -2
  57. package/dist/stores/inventory.d.ts +21 -12
  58. package/dist/stores/location.d.ts +29 -1
  59. package/dist/stores/supplier.d.ts +3 -3
  60. package/dist/stores/warehouse.d.ts +4 -7
  61. package/dist/style.css +1 -1
  62. package/dist/{supplier-J8OTJPSV.js → supplier-BNiyVN5O.js} +15 -15
  63. package/dist/tsconfig.app.tsbuildinfo +1 -1
  64. package/dist/{use-inventory-binding-dialog-BYHugl4t.js → use-inventory-binding-dialog-6IwpXo5F.js} +10 -11
  65. package/dist/views/adjustment-template/import/AdjustmentTemplateImport.vue.d.ts +2 -0
  66. package/dist/views/adjustment-template/import/AdjustmentTemplateImportItem.vue.d.ts +18 -0
  67. package/dist/views/adjustment-template/import/export.d.ts +60 -0
  68. package/dist/views/adjustment-template/wastage-template/WastageTemplateDetails.vue.d.ts +2 -0
  69. package/dist/views/adjustment-template/wastage-template/WastageTemplateDialog.vue.d.ts +22 -0
  70. package/dist/views/adjustment-template/wastage-template/WastageTemplatePublish.vue.d.ts +6 -0
  71. package/dist/views/adjustment-template/wastage-template/WastageTemplateReason.vue.d.ts +18 -0
  72. package/dist/views/adjustment-template/wastage-template/WastageTemplateView.vue.d.ts +2 -0
  73. package/dist/views/adjustment-template/wastage-template/actions.d.ts +1377 -0
  74. package/dist/views/adjustment-template/wastage-template/form/WastageTemplateForm.vue.d.ts +16 -0
  75. package/dist/views/adjustment-template/wastage-template/form/WastageTemplateItemTable.vue.d.ts +35 -0
  76. package/dist/views/adjustment-template/wastage-template/form/useAdjustmentTemplateItems.d.ts +20 -0
  77. package/dist/views/adjustment-template/wastage-template/props.d.ts +36 -0
  78. package/dist/views/adjustment-template/wastage-template/table.d.ts +1351 -0
  79. package/dist/views/closing-draft/ClosingDraftView.vue.d.ts +2 -0
  80. package/dist/views/closing-draft/components/closing-draft-action/ClosingDraftAction.vue.d.ts +22 -0
  81. package/dist/views/closing-draft/components/closing-draft-dialog/ClosingDraftDialog.vue.d.ts +633 -0
  82. package/dist/views/closing-draft/composables/use-closing-draft-actions.d.ts +25 -0
  83. package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +3693 -0
  84. package/dist/views/closing-draft/helpers/draft-status-to-class-name.helper.d.ts +1 -0
  85. package/dist/views/closing-draft/helpers/export-draft.helper.d.ts +19 -0
  86. package/dist/views/closing-draft/helpers/get-calculated-total.helper.d.ts +4 -0
  87. package/dist/views/closing-template/components/closing-template-form/composables/use-closing-template-items.d.ts +2 -1
  88. package/dist/views/closing-template/composables/use-closing-template-actions.d.ts +98 -206
  89. package/dist/views/closing-template/composables/use-closing-template-table.d.ts +98 -206
  90. package/dist/views/ingredient-group/composables/use-ingredient-group-actions.d.ts +2 -2
  91. package/dist/views/ingredient-group/composables/use-ingredient-group-table.d.ts +8 -5
  92. package/dist/views/ingredients/components/convert/ConvertFormProps.d.ts +1 -0
  93. package/dist/views/ingredients/components/ingredient-form/IngredientForm.vue.d.ts +4 -2
  94. package/dist/views/ingredients/components/inventory-binding/InventoryBindingForm.vue.d.ts +1 -0
  95. package/dist/views/ingredients/composables/use-ingredient-form.d.ts +2 -2
  96. package/dist/views/ingredients/composables/use-ingredient-table.d.ts +2 -1
  97. package/dist/views/publish/PublishView.vue.d.ts +2 -0
  98. package/dist/views/receive-request/components/netsuite/NetSuiteInfo.vue.d.ts +12 -0
  99. package/dist/views/receive-request/components/netsuite/NetSuiteProps.d.ts +13 -0
  100. package/dist/views/receive-request/components/netsuite/NetSuiteSync.vue.d.ts +12 -0
  101. package/dist/views/receive-request/components/transfer-form/NetSuiteField.vue.d.ts +13 -0
  102. package/dist/views/receive-request/components/transfer-form/SparkIcon.vue.d.ts +1 -1
  103. package/dist/views/receive-request/components/transfer-form/TransferForm.vue.d.ts +94 -25
  104. package/dist/views/receive-request/components/transfer-form/components/ForecastStock.vue.d.ts +6 -4
  105. package/dist/views/receive-request/components/transfer-form/composables/use-transfer-items.d.ts +3 -2
  106. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +138 -36
  107. package/dist/views/receive-request/composables/use-receive-request-table.d.ts +138 -36
  108. package/dist/views/recipe/components/recipe-form/RecipeForm.vue.d.ts +2 -0
  109. package/dist/views/recipe/composables/use-recipe-form.d.ts +2 -2
  110. package/dist/views/stock/components/StockRecordCard.vue.d.ts +123 -42
  111. package/dist/views/stock/components/dialog/AdjustedItemForm.vue.d.ts +6 -4
  112. package/dist/views/stock/composables/use-stock-action.d.ts +2 -2
  113. package/dist/views/stock/helper/compute-summary-total.d.ts +2 -2
  114. package/dist/views/supplier/composables/use-supplier-actions.d.ts +2 -2
  115. package/dist/views/transfer-template/components/transfer-template-form/composables/use-template-enabled-locations.d.ts +4 -0
  116. package/dist/views/transfer-template/components/transfer-template-form/composables/use-transfer-template-items.d.ts +3 -2
  117. package/dist/views/transfer-template/composables/use-transfer-template-actions.d.ts +86 -26
  118. package/dist/views/transfer-template/composables/use-transfer-template-table.d.ts +86 -26
  119. package/dist/views/transfer-template/helpers/import-export.helper.d.ts +2 -1
  120. package/dist/views/unit/composables/use-unit-form.d.ts +2 -2
  121. package/dist/views/warehouse/components/WarehouseForm.vue.d.ts +8 -14
  122. package/dist/vue-i18n-CFGSrpc6.js +2351 -0
  123. package/package.json +5 -4
  124. package/dist/App-PIGOcNDx.js +0 -255
  125. package/dist/BindingsTable-C0wTK7Tu.js +0 -149
  126. package/dist/FmDroppableField-8RzKjEdL.js +0 -154
  127. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BHY6DKjD.js +0 -436
  128. package/dist/FmMultiselectDialog-DmiCS2MH.js +0 -415
  129. package/dist/IngredientBindedItem.vue_vue_type_script_setup_true_lang-DEmObD4q.js +0 -51
  130. package/dist/IngredientsView-NtoU_ukl.js +0 -1665
  131. package/dist/ReceiveRequestView-5CJF48wa.js +0 -4165
  132. package/dist/RecipeView-DxCEmBEs.js +0 -597
  133. package/dist/StockView-DcTDvPWu.js +0 -7778
  134. package/dist/TableActionableRow.vue_vue_type_script_setup_true_lang-DlNJ6kRg.js +0 -135
  135. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-DpVa6Exh.js +0 -1228
  136. package/dist/TransferTemplateView-D-bEaxob.js +0 -1261
  137. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +0 -9
  138. package/dist/app-D0Gx27w2.js +0 -33503
  139. package/dist/date2-Ci5ROICb.js +0 -117
  140. package/dist/dayjs.min-CHLyNvFi.js +0 -282
  141. package/dist/defineDeepModel-BUK9npmw.js +0 -13
  142. package/dist/feature-B_jNIFmj.js +0 -92
  143. package/dist/format-time-from-id-DBB6aOha.js +0 -15
  144. package/dist/format-unit-display-CDJ1ljmF.js +0 -1216
  145. package/dist/fuzzy-t_DxwCxM.js +0 -41
  146. package/dist/index-CEnwiSNc.js +0 -12087
  147. package/dist/index-CaC2cCOr.js +0 -22283
  148. package/dist/index-Cqh8dnaX.js +0 -45
  149. package/dist/netsuite-Amm_idsL.js +0 -225
  150. package/dist/row-action.enum-PMKMRrZR.js +0 -50
  151. package/dist/rules-DrmWDZZ7.js +0 -199
  152. package/dist/use-template-enabled-locations-2-rSd9SeNy.js +0 -86
  153. package/dist/xlsx-BCfGO1MX.js +0 -24004
  154. package/dist/xlsx.util-Bf_CCXgS.js +0 -78
@@ -0,0 +1,276 @@
1
+ import { ref as x, onUnmounted as F, defineComponent as h, watch as P, onMounted as U, computed as g, resolveComponent as b, createElementBlock as I, openBlock as S, createBlock as G, createCommentVNode as M, unref as v, createVNode as _, createElementVNode as p, toDisplayString as w } from "vue";
2
+ import { u as k, a as D, b as H, c as B, R as e, g as s, d as W } from "./app-DRmhrBg9.js";
3
+ import { useCoreStore as A, useI18n as O } from "@feedmepos/mf-common";
4
+ import { useRouter as C, useRoute as K } from "vue-router";
5
+ import { u as $ } from "./useTabStorage-BkIVScW_.js";
6
+ import { u as Q } from "./googlemap-Dm8ERVai.js";
7
+ import "./array-hChJVZLE.js";
8
+ function j() {
9
+ return {
10
+ loadingHookInstalled: !1,
11
+ isLoading: !1
12
+ };
13
+ }
14
+ const E = x(j());
15
+ function z() {
16
+ const l = C();
17
+ if (!E.value.loadingHookInstalled) {
18
+ E.value.loadingHookInstalled = !0;
19
+ const n = l.beforeEach(() => {
20
+ E.value.isLoading = !0;
21
+ }), i = l.afterEach(() => {
22
+ E.value.isLoading = !1;
23
+ });
24
+ F(() => {
25
+ E.value.loadingHookInstalled = !1, n(), i();
26
+ });
27
+ }
28
+ return {
29
+ get isLoading() {
30
+ return E.value.isLoading;
31
+ }
32
+ };
33
+ }
34
+ const q = {
35
+ key: 0,
36
+ class: "flex flex-col items-center w-full h-full gap-24"
37
+ }, J = {
38
+ key: 1,
39
+ class: "flex flex-col pt-[200px] gap-32 items-center"
40
+ }, X = { class: "flex flex-col gap-12 items-center text-center px-24 max-w-[1000px]" }, Y = { class: "fm-typo-en-title-lg-600" }, Z = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, ee = { class: "flex gap-16" }, te = { href: "https://feedme.ai/product/inventory/features?tab=plans_%26_prices" }, oe = { href: "https://feedme.ai/form" }, ne = /* @__PURE__ */ h({
41
+ __name: "InventoryView",
42
+ setup(l) {
43
+ const n = k(), i = D(), u = H(), r = A(), c = C(), o = z(), R = B(), { t: d } = O();
44
+ P(
45
+ [() => r.sessionUser.value, () => r.currentBusiness.value],
46
+ ([t, a]) => {
47
+ f(t, a);
48
+ }
49
+ ), U(async () => {
50
+ await R.init(), await r.readBusinesses();
51
+ const t = r.sessionUser.value, a = r.currentBusiness.value;
52
+ f(t, a);
53
+ });
54
+ function f(t, a) {
55
+ !t || !a || T();
56
+ }
57
+ async function T() {
58
+ return await n.init(), await u.readSetting().catch((t) => {
59
+ console.error("error on reading netsuite store", t);
60
+ }), await i.init();
61
+ }
62
+ const y = g(() => c.currentRoute.value.name === e.TRANSFER_TEMPLATE ? R.enablePoTemplate : !0);
63
+ return (t, a) => {
64
+ const m = b("FmSpacer"), N = b("FmCircularProgress"), L = b("FmButton"), V = b("RouterView");
65
+ return S(), I("div", null, [
66
+ v(o).isLoading ? (S(), I("div", q, [
67
+ _(m),
68
+ p("div", null, [
69
+ _(N, { size: "xl" })
70
+ ]),
71
+ a[0] || (a[0] = p("div", { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary pl-8" }, "Loading page...", -1)),
72
+ _(m)
73
+ ])) : y.value ? v(r).sessionUser.value ? (S(), G(V, { key: 2 })) : M("", !0) : (S(), I("div", J, [
74
+ p("div", X, [
75
+ p("div", Y, w(v(d)("inventory.common.proPlan.title")), 1),
76
+ p("div", Z, w(v(d)("inventory.common.proPlan.subtitle")), 1)
77
+ ]),
78
+ p("div", ee, [
79
+ p("a", te, [
80
+ _(L, {
81
+ label: v(d)("inventory.common.proPlan.comparePlans"),
82
+ variant: "secondary"
83
+ }, null, 8, ["label"])
84
+ ]),
85
+ p("a", oe, [
86
+ _(L, {
87
+ label: v(d)("inventory.common.proPlan.callUs"),
88
+ "prepend-icon": "call"
89
+ }, null, 8, ["label"])
90
+ ])
91
+ ])
92
+ ]))
93
+ ]);
94
+ };
95
+ }
96
+ }), ae = { class: "h-full flex flex-col overflow-auto py-16" }, re = /* @__PURE__ */ h({
97
+ __name: "NavigationTab",
98
+ setup(l) {
99
+ const n = K(), i = C(), u = A(), r = B(), c = $(), { t: o } = O();
100
+ P([() => u.currentBusiness.value, () => n.name], ([t, a]) => {
101
+ (t == null ? void 0 : t.menuVersion) === "v3" && (a === e.INGREDIENTS || a === e.RECIPE || a === e.UNIT) && i.push({ name: e.STOCK });
102
+ });
103
+ const R = g(() => {
104
+ var a;
105
+ const t = [
106
+ {
107
+ label: s(e.STOCK, o),
108
+ // icon: 'inventory_2',
109
+ children: [
110
+ {
111
+ label: "Stock balance",
112
+ value: e.STOCK
113
+ },
114
+ ...r.enableWastageTemplate ? [
115
+ {
116
+ label: s(e.WASTAGE_TEMPLATE, o),
117
+ value: e.WASTAGE_TEMPLATE
118
+ }
119
+ ] : []
120
+ ]
121
+ },
122
+ ...r.enableClosingTemplate ? [
123
+ {
124
+ label: "Closing",
125
+ children: [
126
+ {
127
+ label: s(e.CLOSING_TEMPLATE, o),
128
+ value: e.CLOSING_TEMPLATE
129
+ },
130
+ {
131
+ label: s(e.CLOSING_DRAFT, o),
132
+ value: e.CLOSING_DRAFT
133
+ }
134
+ ]
135
+ }
136
+ ] : [],
137
+ {
138
+ label: s(e.INGREDIENTS, o),
139
+ // icon: 'grocery',
140
+ value: e.INGREDIENTS
141
+ },
142
+ ...r.enableIngredientGroup ? [
143
+ {
144
+ label: s(e.INGREDIENT_GROUP, o),
145
+ // icon: 'grocery',
146
+ value: e.INGREDIENT_GROUP
147
+ }
148
+ ] : [],
149
+ {
150
+ label: s(e.RECIPE, o),
151
+ // icon: 'weight',
152
+ value: e.RECIPE
153
+ },
154
+ {
155
+ label: s(e.UNIT, o),
156
+ // icon: 'fastfood',
157
+ value: e.UNIT
158
+ },
159
+ {
160
+ label: o("inventory.transfer.title"),
161
+ // icon: 'swap_horiz',
162
+ children: [
163
+ {
164
+ label: s(e.RECEIVE_REQUEST, o),
165
+ value: e.RECEIVE_REQUEST
166
+ },
167
+ {
168
+ label: s(e.APPROVAL, o),
169
+ value: e.APPROVAL
170
+ },
171
+ ...r.enablePoTemplate ? [
172
+ {
173
+ label: s(e.TRANSFER_TEMPLATE, o),
174
+ value: e.TRANSFER_TEMPLATE
175
+ }
176
+ ] : []
177
+ ]
178
+ },
179
+ {
180
+ label: s(e.SUPPLIER, o),
181
+ // icon: 'group',
182
+ value: e.SUPPLIER
183
+ },
184
+ {
185
+ label: s(e.WAREHOUSE, o),
186
+ // icon: 'warehouse',
187
+ value: e.WAREHOUSE
188
+ },
189
+ {
190
+ label: s(e.PUBLISH, o),
191
+ value: e.PUBLISH
192
+ },
193
+ {
194
+ label: s(e.INTEGRATION, o),
195
+ // icon: 'integration_instructions',
196
+ value: e.INTEGRATION
197
+ }
198
+ ];
199
+ return ((a = u.currentBusiness.value) == null ? void 0 : a.menuVersion) === "v3" ? t.filter(
200
+ (m) => m.value !== e.INGREDIENTS && m.value !== e.RECIPE && m.value !== e.UNIT
201
+ ) : t;
202
+ }), d = g({
203
+ get() {
204
+ if (n.name)
205
+ return String(n.name);
206
+ },
207
+ set(t) {
208
+ t && i.push({ name: t });
209
+ }
210
+ }), f = g(
211
+ () => {
212
+ var t;
213
+ return `NavigationTab.${(t = u.currentBusiness.value) == null ? void 0 : t._id}`;
214
+ }
215
+ ), T = x(!1), y = g({
216
+ get() {
217
+ return T.value;
218
+ },
219
+ set(t) {
220
+ T.value = t, t || c.setItem(f.value, "true");
221
+ }
222
+ });
223
+ return P([() => f.value], () => {
224
+ T.value = !1, setTimeout(() => {
225
+ y.value = !c.getItem(f.value);
226
+ }, 2e3);
227
+ }), (t, a) => {
228
+ const m = b("FmCollapsibleTabs");
229
+ return S(), I("div", ae, [
230
+ _(m, {
231
+ modelValue: d.value,
232
+ "onUpdate:modelValue": a[0] || (a[0] = (N) => d.value = N),
233
+ items: R.value
234
+ }, null, 8, ["modelValue", "items"])
235
+ ]);
236
+ };
237
+ }
238
+ });
239
+ typeof Promise.withResolvers > "u" && (Promise.withResolvers = () => {
240
+ let l, n;
241
+ return { promise: new Promise((u, r) => {
242
+ l = u, n = r;
243
+ }), resolve: l, reject: n };
244
+ });
245
+ typeof Promise.prototype.delayed > "u" && (Promise.prototype.delayed = async function(l) {
246
+ return await new Promise((n) => setTimeout(n, l)), Promise.resolve(this);
247
+ });
248
+ const de = /* @__PURE__ */ h({
249
+ __name: "App",
250
+ setup(l) {
251
+ const n = A(), i = Q(), u = W();
252
+ U(() => {
253
+ if (window.location.href.includes("print-preview")) {
254
+ n.setEmbedded(!0);
255
+ return;
256
+ }
257
+ n.registerSidebarComponent(re), i.initGoogleMap(u.appApi.googleMap).catch(() => {
258
+ console.error("Google map cannot be loaded");
259
+ });
260
+ }), P([() => n.currentCountry.value], () => {
261
+ r();
262
+ });
263
+ async function r() {
264
+ var c;
265
+ try {
266
+ await n.readBusinesses(), n.currentBusiness.value = (c = n.businesses.value) == null ? void 0 : c.find((o) => o);
267
+ } catch (o) {
268
+ console.error("error when trying to reset businesses:", o);
269
+ }
270
+ }
271
+ return (c, o) => (S(), G(ne));
272
+ }
273
+ });
274
+ export {
275
+ de as default
276
+ };
@@ -1,18 +1,15 @@
1
- import { defineComponent as ae, ref as g, watch as oe, computed as b, resolveComponent as re, openBlock as x, createBlock as J, unref as e, withCtx as y, createElementVNode as s, normalizeClass as ne, createVNode as n, normalizeStyle as se, toDisplayString as le, createElementBlock as ce, createCommentVNode as ie, Teleport as pe, mergeProps as ue } from "vue";
2
- import { u as me, w as v } from "./app-D0Gx27w2.js";
3
- import { b as de, u as fe, _ as ve, a as _e } from "./FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-BHY6DKjD.js";
4
- import { a as he, b as De, _ as ge } from "./TransferDetails.vue_vue_type_script_setup_true_lang-DpVa6Exh.js";
5
- import { c as K } from "./date2-Ci5ROICb.js";
6
- import { _ as be, F as _ } from "./TableActionableRow.vue_vue_type_script_setup_true_lang-DlNJ6kRg.js";
1
+ import { defineComponent as ae, ref as g, watch as oe, computed as b, resolveComponent as re, createBlock as J, openBlock as x, unref as e, withCtx as y, createElementVNode as s, normalizeClass as ne, createVNode as n, normalizeStyle as se, createElementBlock as le, createCommentVNode as ce, toDisplayString as ie, Teleport as ue, mergeProps as pe } from "vue";
2
+ import { u as me, av as v, aF as de, a8 as K, z as fe, _ as ve, B as _e, E as he, G as _ } from "./app-DRmhrBg9.js";
3
+ import { a as De, b as ge, _ as be } from "./TransferDetails.vue_vue_type_script_setup_true_lang-DRYpeGZN.js";
7
4
  import { useBreakpoints as xe } from "@feedmepos/ui-library";
8
5
  import { useI18n as ye } from "@feedmepos/mf-common";
9
6
  const we = { class: "flex flex-col py-8" }, Re = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ke = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary line-clamp-1" }, Oe = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary line-clamp-1" }, Se = {
10
7
  key: 0,
11
8
  class: "fm-typo-en-body-md-400 text-fm-color-typo-primary line-clamp-1"
12
- }, Te = { class: "pt-8" }, Ne = /* @__PURE__ */ ae({
9
+ }, Te = { class: "pt-8" }, Ye = /* @__PURE__ */ ae({
13
10
  __name: "ApprovalView",
14
11
  setup(Ce) {
15
- const o = he("approval"), { columnDefs: Q } = De("approval", o), W = me();
12
+ const o = De("approval"), { columnDefs: Q } = ge("approval", o), W = me();
16
13
  v.object({
17
14
  name: v.string().optional().nullable(),
18
15
  start: v.date().optional().nullable(),
@@ -83,12 +80,12 @@ const we = { class: "flex flex-col py-8" }, Re = { class: "fm-typo-en-body-md-40
83
80
  "page-size": X.value
84
81
  }, {
85
82
  "list-row": y((r) => [
86
- n(be, {
83
+ n(he, {
87
84
  row: r,
88
85
  onRowClick: (t) => e(o).promptShowTransferDetails(t.purchaseOrder, t)
89
86
  }, {
90
87
  default: y((t) => {
91
- var O, S, T, i, C, z, F, M, p, $, V, u, Y, m, q, L, N, P, j, d, A, E, H, U, f, G;
88
+ var O, S, T, i, C, z, F, M, u, $, V, p, Y, m, q, E, L, N, P, d, j, A, H, G, f, U;
92
89
  return [
93
90
  s("div", we, [
94
91
  s("div", Re, [
@@ -100,20 +97,20 @@ const we = { class: "flex flex-col py-8" }, Re = { class: "fm-typo-en-body-md-40
100
97
  s("div", ke, [
101
98
  n(e(_), {
102
99
  render: (M = (F = (z = t.to_name) == null ? void 0 : z.column) == null ? void 0 : F.columnDef) == null ? void 0 : M.cell,
103
- props: ($ = (p = t.to_name) == null ? void 0 : p.getContext) == null ? void 0 : $.call(p)
100
+ props: ($ = (u = t.to_name) == null ? void 0 : u.getContext) == null ? void 0 : $.call(u)
104
101
  }, null, 8, ["render", "props"])
105
102
  ]),
106
- s("div", Oe, le((q = (m = (Y = (u = (V = r.original.purchaseOrder) == null ? void 0 : V.items) == null ? void 0 : u.map) == null ? void 0 : Y.call(u, (te) => `${te.name}`)) == null ? void 0 : m.join) == null ? void 0 : q.call(m, ", ")), 1),
107
- (L = r.original.purchaseOrder) != null && L.ref ? (x(), ce("div", Se, [
103
+ s("div", Oe, ie((q = (m = (Y = (p = (V = r.original.purchaseOrder) == null ? void 0 : V.items) == null ? void 0 : p.map) == null ? void 0 : Y.call(p, (te) => `${te.name}`)) == null ? void 0 : m.join) == null ? void 0 : q.call(m, ", ")), 1),
104
+ (E = r.original.purchaseOrder) != null && E.ref ? (x(), le("div", Se, [
108
105
  n(e(_), {
109
- render: (j = (P = (N = t.purchaseOrder_ref) == null ? void 0 : N.column) == null ? void 0 : P.columnDef) == null ? void 0 : j.cell,
110
- props: (A = (d = t.purchaseOrder_ref) == null ? void 0 : d.getContext) == null ? void 0 : A.call(d)
106
+ render: (P = (N = (L = t.purchaseOrder_ref) == null ? void 0 : L.column) == null ? void 0 : N.columnDef) == null ? void 0 : P.cell,
107
+ props: (j = (d = t.purchaseOrder_ref) == null ? void 0 : d.getContext) == null ? void 0 : j.call(d)
111
108
  }, null, 8, ["render", "props"])
112
- ])) : ie("", !0),
109
+ ])) : ce("", !0),
113
110
  s("div", Te, [
114
111
  n(e(_), {
115
- render: (U = (H = (E = t.purchaseOrder_status) == null ? void 0 : E.column) == null ? void 0 : H.columnDef) == null ? void 0 : U.cell,
116
- props: (G = (f = t.purchaseOrder_status) == null ? void 0 : f.getContext) == null ? void 0 : G.call(f)
112
+ render: (G = (H = (A = t.purchaseOrder_status) == null ? void 0 : A.column) == null ? void 0 : H.columnDef) == null ? void 0 : G.cell,
113
+ props: (U = (f = t.purchaseOrder_status) == null ? void 0 : f.getContext) == null ? void 0 : U.call(f)
117
114
  }, null, 8, ["render", "props"])
118
115
  ])
119
116
  ])
@@ -125,8 +122,8 @@ const we = { class: "flex flex-col py-8" }, Re = { class: "fm-typo-en-body-md-40
125
122
  _: 1
126
123
  }, 8, ["style", "column-defs", "row-data", "search-value", "loading", "page-size"])
127
124
  ], 2),
128
- (x(), J(pe, { to: "body" }, [
129
- n(ge, ue(e(o).transferDetailsProps.value, {
125
+ (x(), J(ue, { to: "body" }, [
126
+ n(be, pe(e(o).transferDetailsProps.value, {
130
127
  onSubmitted: e(o).fetchData
131
128
  }), null, 16, ["onSubmitted"])
132
129
  ]))
@@ -137,5 +134,5 @@ const we = { class: "flex flex-col py-8" }, Re = { class: "fm-typo-en-body-md-40
137
134
  }
138
135
  });
139
136
  export {
140
- Ne as default
137
+ Ye as default
141
138
  };
@@ -1,6 +1,6 @@
1
- import { defineComponent as C, ref as o, onMounted as M, onUnmounted as F, watch as x, resolveComponent as l, openBlock as i, createElementBlock as c, createBlock as I, withCtx as R, createVNode as a, createCommentVNode as z, createElementVNode as P } from "vue";
2
- import { _ as V } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-B-hMO0wv.js";
3
- import { a as L, G as S } from "./app-D0Gx27w2.js";
1
+ import { defineComponent as C, ref as o, onMounted as M, onUnmounted as F, watch as x, resolveComponent as l, createElementBlock as c, openBlock as i, createBlock as I, withCtx as R, createVNode as a, createCommentVNode as z, createElementVNode as L } from "vue";
2
+ import { _ as P } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-D9_DCFOd.js";
3
+ import { a as V, aL as S } from "./app-DRmhrBg9.js";
4
4
  const U = {
5
5
  key: 0,
6
6
  class: "flex justify-end gap-8 items-center"
@@ -10,7 +10,7 @@ const U = {
10
10
  }, D = /* @__PURE__ */ C({
11
11
  __name: "BindingsDialog",
12
12
  setup(N) {
13
- const p = L(), d = o(!0), s = o(new Array()), u = o(), t = S(y);
13
+ const p = V(), d = o(!0), s = o(new Array()), u = o(), t = S(y);
14
14
  async function y() {
15
15
  await p.readInventory(), u.value = t.onMessage("props:inventory-bindings", (e) => {
16
16
  d.value = !1, s.value = e;
@@ -55,7 +55,7 @@ const U = {
55
55
  }, [
56
56
  d.value ? (i(), c("div", E, [
57
57
  a(h, { size: "md" }),
58
- n[2] || (n[2] = P("div", null, "Loading bindings dialog...", -1))
58
+ n[2] || (n[2] = L("div", null, "Loading bindings dialog...", -1))
59
59
  ])) : (i(), I(B, {
60
60
  key: 0,
61
61
  onValidationSuccess: n[1] || (n[1] = () => r.value ? void 0 : b()),
@@ -64,7 +64,7 @@ const U = {
64
64
  class: "flex flex-col gap-16"
65
65
  }, {
66
66
  default: R(() => [
67
- a(V, {
67
+ a(P, {
68
68
  "model-value": s.value,
69
69
  "onUpdate:modelValue": n[0] || (n[0] = (w) => s.value = w),
70
70
  "iframe-mode": "",
@@ -1,16 +1,15 @@
1
- import { defineComponent as S, computed as r, ref as l, onMounted as U, onUnmounted as V, resolveComponent as E, openBlock as p, createElementBlock as f, createVNode as u, createElementVNode as k } from "vue";
2
- import { F as M } from "./FmMultiselectDialog-DmiCS2MH.js";
3
- import { a as x, G as F } from "./app-D0Gx27w2.js";
4
- const z = {
1
+ import { defineComponent as S, computed as r, ref as l, onMounted as U, onUnmounted as V, resolveComponent as E, createElementBlock as p, openBlock as f, createVNode as u, createElementVNode as k } from "vue";
2
+ import { a as M, aL as x, J as z } from "./app-DRmhrBg9.js";
3
+ const F = {
5
4
  key: 0,
6
5
  class: "flex flex-col gap-16"
7
6
  }, K = { class: "flex justify-end gap-8 items-center" }, w = {
8
7
  key: 1,
9
8
  class: "p-24 flex items-center justify-center gap-16"
10
- }, A = /* @__PURE__ */ S({
9
+ }, N = /* @__PURE__ */ S({
11
10
  __name: "BindingsPicker",
12
11
  setup(L) {
13
- const d = x(), C = r(() => d.recipes), I = r(() => d.skus), g = l(!0), i = l(new Array()), a = l("RECIPE"), c = r(() => a.value === "SKU" ? I.value.map((s) => ({
12
+ const d = M(), C = r(() => d.recipes), I = r(() => d.skus), g = l(!0), i = l(new Array()), a = l("RECIPE"), c = r(() => a.value === "SKU" ? I.value.map((s) => ({
14
13
  label: s.name,
15
14
  sublabel: s.code,
16
15
  value: s
@@ -63,7 +62,7 @@ const z = {
63
62
  ];
64
63
  }
65
64
  }
66
- }), _ = l(), o = F(B);
65
+ }), _ = l(), o = x(B);
67
66
  async function B() {
68
67
  await d.readInventory(), _.value = o.onMessage(
69
68
  "props:binding-items",
@@ -89,16 +88,16 @@ const z = {
89
88
  (s = (e = _.value) == null ? void 0 : e.removeEventListener) == null || s.call(e);
90
89
  }), (e, s) => {
91
90
  const n = E("FmButton"), t = E("FmCircularProgress");
92
- return p(), f("div", {
91
+ return f(), p("div", {
93
92
  class: "bg-white",
94
93
  ref_key: "resizeableRef",
95
94
  ref: y
96
95
  }, [
97
- g.value ? (p(), f("div", w, [
96
+ g.value ? (f(), p("div", w, [
98
97
  u(t, { size: "md" }),
99
98
  s[1] || (s[1] = k("div", null, "Loading bindings dialog...", -1))
100
- ])) : (p(), f("div", z, [
101
- u(M, {
99
+ ])) : (f(), p("div", F, [
100
+ u(z, {
102
101
  "model-value": b.value,
103
102
  "onUpdate:modelValue": s[0] || (s[0] = (m) => b.value = m),
104
103
  items: c.value
@@ -120,5 +119,5 @@ const z = {
120
119
  }
121
120
  });
122
121
  export {
123
- A as default
122
+ N as default
124
123
  };
@@ -0,0 +1,120 @@
1
+ import { defineComponent as x, ref as r, provide as B, computed as g, resolveComponent as h, createElementBlock as u, openBlock as l, createStaticVNode as C, Fragment as F, renderList as I, createElementVNode as p, toDisplayString as v, createVNode as w, withModifiers as N, onMounted as E, onUnmounted as z, createBlock as M } from "vue";
2
+ import { F as b, a as P, aL as R } from "./app-DRmhrBg9.js";
3
+ import "@feedmepos/ui-library";
4
+ import "@feedmepos/mf-common";
5
+ const U = { class: "" }, D = ["onClick"], O = { class: "flex-grow-0 flex-shrink-0 basis-5/12 py-8 pl-8" }, V = { class: "flex-grow-0 flex-shrink-0 basis-3/12 py-8" }, S = { class: "flex-grow-0 flex-shrink-0 basis-3/12 py-8" }, $ = { class: "flex-grow-0 flex-shrink-0 basis-1/12 py-4" }, T = /* @__PURE__ */ x({
6
+ __name: "binding-ui",
7
+ props: {
8
+ items: { default: () => [] },
9
+ recipes: { default: () => [] },
10
+ skus: { default: () => [] },
11
+ type: { default: "Product" },
12
+ editable: { type: Boolean, default: !1 }
13
+ },
14
+ emits: ["click:open-binding-dialog"],
15
+ setup(_, { emit: a }) {
16
+ const d = r({
17
+ isOpen: !1,
18
+ initialValue: [],
19
+ context: "",
20
+ name: ""
21
+ });
22
+ B("closeDialog", () => {
23
+ d.value.isOpen = !d.value.isOpen;
24
+ });
25
+ const i = _, f = a, m = g(() => i.items.map((s) => ({
26
+ key: s.key,
27
+ name: s.name,
28
+ _skuLinked: s.bindings.filter(
29
+ ({ type: t, id: e }) => t === b.enum.SKU && i.skus.some((c) => c._id === e)
30
+ ).length,
31
+ _recipeLinked: s.bindings.filter(
32
+ ({ type: t, id: e }) => t === b.enum.RECIPE && i.recipes.some((c) => c._id === e)
33
+ ).length,
34
+ onUpdate: async () => {
35
+ i.editable && f("click:open-binding-dialog", i.type, s);
36
+ }
37
+ })));
38
+ return (k, s) => {
39
+ const t = h("FmButton");
40
+ return l(), u("div", U, [
41
+ s[0] || (s[0] = C('<div class="flex font-bold bg-[#F7F8FA]"><div class="flex-grow-0 flex-shrink-0 basis-5/12 py-8"></div><div class="flex-grow-0 flex-shrink-0 basis-3/12 py-8">Ingredient</div><div class="flex-grow-0 flex-shrink-0 basis-3/12 py-8">Recipe</div><div class="flex-grow-0 flex-shrink-0 basis-1/12 py-8"></div></div>', 1)),
42
+ (l(!0), u(F, null, I(m.value, (e) => (l(), u("div", {
43
+ key: e.key,
44
+ class: "cursor-pointer flex border-t border-[rgba(17,32,47,0.15] items-center",
45
+ onClick: e.onUpdate
46
+ }, [
47
+ p("div", O, v(e.name), 1),
48
+ p("div", V, v(e._skuLinked ? `${e._skuLinked} linked` : "Not linked"), 1),
49
+ p("div", S, v(e._recipeLinked ? `${e._recipeLinked} linked` : "Not linked"), 1),
50
+ p("div", $, [
51
+ w(t, {
52
+ variant: "tertiary",
53
+ icon: "edit",
54
+ "icon-color": "#000",
55
+ size: "md",
56
+ disabled: !i.editable,
57
+ type: "button",
58
+ onClick: N(e.onUpdate, ["stop"])
59
+ }, null, 8, ["disabled", "onClick"])
60
+ ])
61
+ ], 8, D))), 128))
62
+ ]);
63
+ };
64
+ }
65
+ }), A = {
66
+ key: 1,
67
+ class: "p-24 flex items-center justify-center gap-16"
68
+ }, K = /* @__PURE__ */ x({
69
+ __name: "BindingsTable",
70
+ setup(_) {
71
+ const a = P(), d = r(!0), i = r(new Array()), f = g(() => a.recipes), m = g(() => a.skus), k = r(""), s = R(e), t = r();
72
+ async function e() {
73
+ await a.readInventory(), t.value = s.onMessage(
74
+ "props:grouped-bindings",
75
+ (n) => {
76
+ d.value = !1, i.value = n;
77
+ }
78
+ ), s.sendMessage("props:grouped-bindings");
79
+ }
80
+ async function c(n, o) {
81
+ s.sendMessage("@click:open-binding-dialog", {
82
+ key: n,
83
+ binding: o
84
+ });
85
+ }
86
+ const y = r();
87
+ return E(() => {
88
+ const n = y.value;
89
+ n && new ResizeObserver(() => {
90
+ s.sendMessage("resize", n.scrollHeight);
91
+ }).observe(n);
92
+ }), z(() => {
93
+ var n, o;
94
+ (o = (n = t.value) == null ? void 0 : n.removeEventListener) == null || o.call(n);
95
+ }), (n, o) => {
96
+ const L = h("FmCircularProgress");
97
+ return l(), u("div", {
98
+ class: "bg-white",
99
+ ref_key: "resizeableRef",
100
+ ref: y
101
+ }, [
102
+ d.value ? (l(), u("div", A, [
103
+ w(L, { size: "md" }),
104
+ o[0] || (o[0] = p("div", null, "Loading bindings table...", -1))
105
+ ])) : (l(), M(T, {
106
+ key: 0,
107
+ items: i.value,
108
+ recipes: f.value,
109
+ skus: m.value,
110
+ type: k.value,
111
+ editable: "",
112
+ "onClick:openBindingDialog": c
113
+ }, null, 8, ["items", "recipes", "skus", "type"]))
114
+ ], 512);
115
+ };
116
+ }
117
+ });
118
+ export {
119
+ K as default
120
+ };