@feedmepos/mf-inventory-portal 1.0.9-dev.4 → 1.0.10-dev.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 (52) hide show
  1. package/dist/{App-BOKGVcoO.js → App-B650rzJv.js} +2 -2
  2. package/dist/{ApprovalView-Bo-4fnEU.js → ApprovalView-H0w0Pbkj.js} +2 -2
  3. package/dist/{BindingsDialog-DM2b4GN4.js → BindingsDialog-BTEnbuSr.js} +2 -2
  4. package/dist/{BindingsPicker-CJKBXA0c.js → BindingsPicker-DJVlBOBU.js} +3 -3
  5. package/dist/{BindingsTable-BxCEEJfb.js → BindingsTable-BWsGdzSB.js} +1 -1
  6. package/dist/{ClosingDraftView-bQxPF18V.js → ClosingDraftView-AWcZjvya.js} +106 -106
  7. package/dist/{ClosingTemplateView-DLkp9Qt8.js → ClosingTemplateView-N2Ap8Ekd.js} +2 -2
  8. package/dist/{DeliveryOrderPrintPreview-CK3HdYVb.js → DeliveryOrderPrintPreview-C5EPAWPK.js} +1 -1
  9. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DvCBsPdI.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DVfj4MgV.js} +3 -3
  10. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-R8f-Q9Nk.js → FmUnitInput.vue_vue_type_script_setup_true_lang-wvRtPslo.js} +20 -20
  11. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-BOyqgaik.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DRygALNq.js} +1 -1
  12. package/dist/IngredientGroupView-B_xMnLFQ.js +604 -0
  13. package/dist/{IngredientsView-DmKCy_JQ.js → IngredientsView-DZxBsZI-.js} +4 -4
  14. package/dist/{IntegrationView-B1dzt8WK.js → IntegrationView-p63ruxVJ.js} +4 -4
  15. package/dist/{InventoryBindingForm-CeTlH0U1.js → InventoryBindingForm-DOCKvvbd.js} +1 -1
  16. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-DsM2bCNe.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-Bzfh5vhC.js} +19 -19
  17. package/dist/{InventoryBindingSummary-QVSD87YL.js → InventoryBindingSummary-Bot16bHd.js} +1 -1
  18. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-C-lgLo2e.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-Cq1W66FY.js} +1 -1
  19. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-CEMRfo1C.js → PremiumBadge.vue_vue_type_script_setup_true_lang-CLkcV3TQ.js} +1 -1
  20. package/dist/{PublishView-BYGKLC9D.js → PublishView-gf-pE1NP.js} +2 -2
  21. package/dist/{PurchaseOrderPrintPreview-CEVjGeom.js → PurchaseOrderPrintPreview-BB5aGGvb.js} +1 -1
  22. package/dist/{ReceiveRequestView-D5PcGCLv.js → ReceiveRequestView-CR2Ive4l.js} +42 -42
  23. package/dist/{RecipeView-DmTDCsvk.js → RecipeView-Cr1h7m7C.js} +3 -3
  24. package/dist/{StockView-EmTqUcP1.js → StockView-CbJu6pz1.js} +7 -7
  25. package/dist/{SupplierView-BaLnW761.js → SupplierView-DLnf0IXT.js} +4 -4
  26. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-B3ew6mc5.js → TransferDetails.vue_vue_type_script_setup_true_lang-9saG4V9_.js} +36 -36
  27. package/dist/{TransferTemplateView-DoeLAFmJ.js → TransferTemplateView-Cwn20Rza.js} +114 -114
  28. package/dist/{UnitView-6Kobe5di.js → UnitView-ir5d8Ls0.js} +18 -18
  29. package/dist/{WarehouseView-BBMS14jU.js → WarehouseView-BA0b8JDG.js} +1 -1
  30. package/dist/api/inventory.d.ts +207 -0
  31. package/dist/{app-CUTIQqG_.js → app-DmpPc6HP.js} +15490 -15057
  32. package/dist/app.js +1 -1
  33. package/dist/{decimal-Bb7Chjpr.js → decimal-BdCdQEd5.js} +1 -1
  34. package/dist/{feature-D5GLIW5h.js → feature-B_qG9zNF.js} +579 -466
  35. package/dist/{format-unit-display-CqqBiewI.js → format-unit-display-y8ZPuai0.js} +29 -29
  36. package/dist/{index-B7QMXzGe.js → index-BdbeTU14.js} +2823 -2739
  37. package/dist/{index-DiEdX1Bs.js → index-rWHZ5j80.js} +2 -2
  38. package/dist/{stock-CO0XWh8j.js → stock-C05OFvav.js} +1 -1
  39. package/dist/stores/inventory.d.ts +211 -1
  40. package/dist/{supplier-C877x7mU.js → supplier-B58dle3W.js} +1 -1
  41. package/dist/tsconfig.app.tsbuildinfo +1 -1
  42. package/dist/{use-ingredient-select-dialog-ClufUFeU.js → use-ingredient-select-dialog-CrfP3e6M.js} +1 -1
  43. package/dist/{use-inventory-binding-dialog-BuRe6QNp.js → use-inventory-binding-dialog-D0RpVsqZ.js} +1 -1
  44. package/dist/views/ingredient-group/IngredientGroupView.vue.d.ts +3 -0
  45. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialog.vue.d.ts +31 -0
  46. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialogProps.d.ts +12 -0
  47. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupForm.vue.d.ts +20 -0
  48. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupFormProps.d.ts +12 -0
  49. package/dist/views/ingredient-group/composables/use-ingredient-group-actions.d.ts +24 -0
  50. package/dist/views/ingredient-group/composables/use-ingredient-group-table.d.ts +218 -0
  51. package/dist/{vue-i18n-CxuQa0ds.js → vue-i18n-Dt--gl9w.js} +337 -337
  52. package/package.json +3 -3
@@ -0,0 +1,604 @@
1
+ import { ref as F, computed as C, defineComponent as Y, resolveComponent as S, openBlock as M, createBlock as O, withCtx as R, createElementVNode as x, createVNode as g, unref as l, createElementBlock as ee, toDisplayString as j, createTextVNode as te, watch as ue, isRef as ce, normalizeClass as de, normalizeStyle as me, createSlots as pe, Teleport as fe, normalizeProps as ve, guardReactiveProps as ge } from "vue";
2
+ import { a as J, d as h, e as B, f as ye, D as oe, h as Q, G as be, l as _e, A as xe, H as ne, p as se, u as ke, z as he, _ as we, B as Se, C as Ie, E as ae } from "./app-DmpPc6HP.js";
3
+ import { useDialog as le, useSnackbar as Z, useProxiedModel as Ce, useBreakpoints as Fe } from "@feedmepos/ui-library";
4
+ import { useI18n as W } from "@feedmepos/mf-common";
5
+ import { defineStore as ie, storeToRefs as re } from "pinia";
6
+ import "./array-hChJVZLE.js";
7
+ const X = ie(
8
+ "ingredientGroupactions",
9
+ function() {
10
+ const c = le(), w = Z(), o = J(), { t: r } = W(), i = F();
11
+ function p() {
12
+ const d = {
13
+ modelValue: {},
14
+ mode: h.CREATE,
15
+ show: !0,
16
+ "onUpdate:show"(a) {
17
+ i.value.show = a;
18
+ }
19
+ };
20
+ i.value = d;
21
+ }
22
+ async function v(d) {
23
+ const a = {
24
+ modelValue: B(d),
25
+ mode: h.UPDATE,
26
+ show: !0,
27
+ "onUpdate:show"(s) {
28
+ i.value.show = s;
29
+ }
30
+ };
31
+ i.value = a;
32
+ }
33
+ async function f(d, a, s) {
34
+ a.value = !0;
35
+ try {
36
+ await o.deleteSkuGroup(d), w.open({
37
+ title: "Success",
38
+ message: `Deleted ${d.name}`,
39
+ type: "success"
40
+ });
41
+ } catch (n) {
42
+ w.open({
43
+ title: `Cannot delete ${d.name}`,
44
+ message: "Please try again.",
45
+ type: "error"
46
+ }), console.error("failed to delete ingredient", n);
47
+ } finally {
48
+ a.value = !1, s();
49
+ }
50
+ }
51
+ function y(d, a, s) {
52
+ c.open({
53
+ title: r("inventory.ingredient.delete.title", [(d == null ? void 0 : d.name) ?? ""]),
54
+ closeButton: !1,
55
+ message: r("inventory.ingredient.delete.message"),
56
+ primaryActions: {
57
+ text: r("common.delete"),
58
+ close: !0,
59
+ variant: "destructive"
60
+ },
61
+ secondaryActions: {
62
+ text: r("common.cancel"),
63
+ close: !0
64
+ }
65
+ }).onPrimary(() => f(d, a, s));
66
+ }
67
+ function G() {
68
+ }
69
+ function b() {
70
+ }
71
+ return {
72
+ createIngredientGroup: p,
73
+ updateIngredientGroup: v,
74
+ deleteIngredientGroup: y,
75
+ importIngredientGroups: G,
76
+ exportIngredientGroups: b,
77
+ ingredientGroupDialogProps: i
78
+ };
79
+ }
80
+ ), Ge = ie(
81
+ "ingredientGroupTable",
82
+ function() {
83
+ const c = F(!1), w = Z(), o = J(), r = X();
84
+ async function i() {
85
+ c.value = !0;
86
+ try {
87
+ await o.readInventory();
88
+ } catch (f) {
89
+ console.error("error on reading inventory", f), w.open({
90
+ title: "Error",
91
+ message: "Something went wrong, please try again.",
92
+ type: "error"
93
+ });
94
+ } finally {
95
+ c.value = !1;
96
+ }
97
+ }
98
+ function p(f, y) {
99
+ switch (y = B(y), f) {
100
+ case Q.Edit:
101
+ return r.updateIngredientGroup(y);
102
+ case Q.Delete:
103
+ return r.deleteIngredientGroup(
104
+ y,
105
+ c,
106
+ () => i()
107
+ );
108
+ }
109
+ }
110
+ const v = C(() => [
111
+ {
112
+ accessorKey: "name",
113
+ header: () => "Name"
114
+ },
115
+ {
116
+ accessorKey: "skus.length",
117
+ header: () => "No. of items"
118
+ },
119
+ {
120
+ accessorKey: "ref",
121
+ header: () => "Reference"
122
+ },
123
+ {
124
+ id: "action",
125
+ header: "",
126
+ cell(f) {
127
+ return ye(
128
+ [oe[Q.Edit], oe[Q.Delete]],
129
+ (y) => {
130
+ p(y, f.row.original);
131
+ }
132
+ );
133
+ },
134
+ enableSorting: !1,
135
+ size: 40,
136
+ meta: {
137
+ cellClass: "",
138
+ headerClass: ""
139
+ }
140
+ }
141
+ ]);
142
+ return {
143
+ fetchIngredientGroups: i,
144
+ loading: c,
145
+ columnDefs: v
146
+ };
147
+ }
148
+ ), Ae = { class: "flex flex-col gap-16" }, De = { class: "flex flex-col gap-8 cursor-pointer" }, Ve = {
149
+ key: 0,
150
+ class: "text-fm-color-typo-primary fm-typo-en-body-lg-400 line-clamp-1 break-all"
151
+ }, Ee = { class: "text-fm-color-typo-secondary" }, Re = {
152
+ key: 1,
153
+ class: "text-fm-color-typo-secondary fm-typo-en-body-lg-400 line-clamp-1 break-all"
154
+ }, Te = { class: "text-fm-color-typo-secondary fm-typo-en-body-sm-400 flex flex-col gap-4" }, $e = { class: "flex flex-col gap-16" }, Pe = { class: "flex items-center" }, Me = /* @__PURE__ */ Y({
155
+ __name: "IngredientGroupForm",
156
+ props: {
157
+ mode: {},
158
+ disabled: { type: Boolean },
159
+ modelValue: {}
160
+ },
161
+ emits: ["validation-success"],
162
+ setup(U, { expose: c, emit: w }) {
163
+ const o = be("modelValue"), r = w, i = J(), p = le(), { t: v } = W(), f = F();
164
+ c({
165
+ validateInputs: () => {
166
+ var a;
167
+ return (a = f.value) == null ? void 0 : a.validateInputs();
168
+ },
169
+ resetInputsValidation: () => {
170
+ var a;
171
+ return (a = f.value) == null ? void 0 : a.resetInputsValidation();
172
+ },
173
+ resetInputs: () => {
174
+ var a;
175
+ return (a = f.value) == null ? void 0 : a.resetInputs();
176
+ }
177
+ });
178
+ const y = C(() => i.skus.groupBy((a) => a.unit._id));
179
+ function G() {
180
+ var s;
181
+ const a = i.skus.filter((n) => {
182
+ var t;
183
+ return (((t = y.value.get(n.unit._id)) == null ? void 0 : t.length) ?? 0) > 1;
184
+ }).map((n) => ({
185
+ label: n.name,
186
+ sublabel: n.code,
187
+ value: n
188
+ })).sort((n, t) => {
189
+ var e, u, _, m;
190
+ return (m = (e = n.value) == null ? void 0 : e.unit) == null ? void 0 : m.abbrev.localeCompare((_ = (u = t.value) == null ? void 0 : u.unit) == null ? void 0 : _.abbrev);
191
+ });
192
+ p.open({
193
+ title: v("inventory.closing.form.items.selectItem"),
194
+ closeButton: !0,
195
+ contentComponent: ne,
196
+ contentComponentProps: {
197
+ modelValue: [(s = o.skus) == null ? void 0 : s[0]],
198
+ items: a,
199
+ singleSelect: !0,
200
+ virtualScroll: !0
201
+ },
202
+ primaryActions: {
203
+ text: v("common.confirm"),
204
+ close: !0
205
+ },
206
+ secondaryActions: {
207
+ text: v("common.close"),
208
+ close: !0,
209
+ variant: "tertiary"
210
+ }
211
+ }).onPrimary((n) => {
212
+ var t;
213
+ o.skus = n.map((e) => B(e)), o.unit = ((t = n[0]) == null ? void 0 : t.unit) ?? o.unit;
214
+ });
215
+ }
216
+ function b() {
217
+ const a = i.skus.filter((n) => {
218
+ var t, e, u;
219
+ return n.unit._id === ((t = o == null ? void 0 : o.unit) == null ? void 0 : t._id) && n._id !== ((u = (e = o.skus) == null ? void 0 : e[0]) == null ? void 0 : u._id);
220
+ }).map((n) => ({
221
+ label: n.name,
222
+ sublabel: n.code,
223
+ value: n
224
+ })).sort((n, t) => {
225
+ var e, u, _, m;
226
+ return (m = (e = n.value) == null ? void 0 : e.unit) == null ? void 0 : m.abbrev.localeCompare((_ = (u = t.value) == null ? void 0 : u.unit) == null ? void 0 : _.abbrev);
227
+ }), s = a.filter((n) => {
228
+ var t;
229
+ return (t = o.skus) == null ? void 0 : t.find((e) => (e == null ? void 0 : e._id) === n.value._id);
230
+ }).map((n) => n.value);
231
+ p.open({
232
+ title: v("inventory.closing.form.items.selectItem"),
233
+ closeButton: !0,
234
+ contentComponent: ne,
235
+ contentComponentProps: {
236
+ modelValue: s,
237
+ items: a,
238
+ virtualScroll: !0
239
+ },
240
+ primaryActions: {
241
+ text: v("common.confirm"),
242
+ close: !0
243
+ },
244
+ secondaryActions: {
245
+ text: v("common.close"),
246
+ close: !0,
247
+ variant: "tertiary"
248
+ }
249
+ }).onPrimary((n) => {
250
+ var u, _;
251
+ const t = ((u = o.skus) == null ? void 0 : u.slice(1)) ?? [], e = n.map((m) => {
252
+ const A = t.find((D) => (D == null ? void 0 : D._id) === m._id);
253
+ return A || B(m, ["unit"]);
254
+ });
255
+ o.skus = [(_ = o.skus) == null ? void 0 : _[0], ...e];
256
+ });
257
+ }
258
+ const d = [
259
+ {
260
+ accessorKey: "code",
261
+ header: () => "Code",
262
+ enableSorting: !1
263
+ },
264
+ {
265
+ accessorKey: "name",
266
+ header: () => "Name",
267
+ enableSorting: !1
268
+ }
269
+ ];
270
+ return (a, s) => {
271
+ const n = S("FmTextField"), t = S("FmLabel"), e = S("FmField"), u = S("FmFormGroup"), _ = S("FmButton"), m = S("FmTable"), A = S("FmForm");
272
+ return M(), O(A, {
273
+ onValidationSuccess: s[5] || (s[5] = (I) => r("validation-success")),
274
+ ref_key: "formRef",
275
+ ref: f,
276
+ class: "flex flex-col gap-32"
277
+ }, {
278
+ default: R(() => {
279
+ var I, D, V, T, z;
280
+ return [
281
+ x("div", Ae, [
282
+ g(n, {
283
+ label: "Name",
284
+ "label-mark": "required",
285
+ rules: [l(_e)()],
286
+ modelValue: l(o).name,
287
+ "onUpdate:modelValue": s[0] || (s[0] = (k) => l(o).name = k)
288
+ }, null, 8, ["rules", "modelValue"]),
289
+ g(n, {
290
+ label: "Reference",
291
+ "label-mark": "optional",
292
+ modelValue: l(o).ref,
293
+ "onUpdate:modelValue": s[1] || (s[1] = (k) => l(o).ref = k)
294
+ }, null, 8, ["modelValue"]),
295
+ x("div", De, [
296
+ g(t, {
297
+ label: "Main ingredient",
298
+ required: ""
299
+ }),
300
+ g(e, {
301
+ onClick: s[2] || (s[2] = (k) => G())
302
+ }, {
303
+ default: R(() => {
304
+ var k, E, $, L, N, K, q, P, H;
305
+ return [
306
+ ($ = (E = (k = l(o)) == null ? void 0 : k.skus) == null ? void 0 : E[0]) != null && $.name ? (M(), ee("span", Ve, [
307
+ x("span", Ee, "[" + j((K = (N = (L = l(o)) == null ? void 0 : L.skus) == null ? void 0 : N[0]) == null ? void 0 : K.code) + "]", 1),
308
+ te(" " + j((H = (P = (q = l(o)) == null ? void 0 : q.skus) == null ? void 0 : P[0]) == null ? void 0 : H.name), 1)
309
+ ])) : (M(), ee("span", Re, j("Click to select main item")))
310
+ ];
311
+ }),
312
+ _: 1
313
+ }),
314
+ x("div", Te, [
315
+ s[6] || (s[6] = te(j("Select a main item to filter out substitutable items with same unit.") + " ")),
316
+ g(u, {
317
+ "model-value": ((I = l(o)) == null ? void 0 : I.skus) ?? [],
318
+ rules: [l(xe)(1, "Required")]
319
+ }, null, 8, ["model-value", "rules"])
320
+ ])
321
+ ])
322
+ ]),
323
+ x("div", $e, [
324
+ x("div", Pe, [
325
+ s[7] || (s[7] = x("div", { class: "flex-1 fm-typo-en-title-sm-600" }, "Substitutables", -1)),
326
+ x("div", null, [
327
+ g(_, {
328
+ label: "Add items",
329
+ disabled: (((V = (D = l(o)) == null ? void 0 : D.skus) == null ? void 0 : V.length) ?? 0) < 1,
330
+ onClick: s[3] || (s[3] = (k) => b()),
331
+ "prepend-icon": "add",
332
+ variant: "secondary",
333
+ "text-color": "primary",
334
+ "bg-color": "transparent",
335
+ "border-color": "primary"
336
+ }, null, 8, ["disabled"])
337
+ ])
338
+ ]),
339
+ g(m, {
340
+ "shrink-at": 9999,
341
+ "column-defs": d,
342
+ "row-data": (T = l(o).skus) == null ? void 0 : T.slice(1),
343
+ onDndChanged: s[4] || (s[4] = (k) => {
344
+ var E;
345
+ return l(o).skus = [(E = l(o).skus) == null ? void 0 : E[0], ...k];
346
+ }),
347
+ draggable: "",
348
+ "hide-footer": "",
349
+ "page-size": ((z = l(o).skus) == null ? void 0 : z.length) ?? 0
350
+ }, null, 8, ["row-data", "page-size"])
351
+ ])
352
+ ];
353
+ }),
354
+ _: 1
355
+ }, 512);
356
+ };
357
+ }
358
+ }), Be = { class: "flex gap-4" }, Ue = /* @__PURE__ */ Y({
359
+ __name: "IngredientGroupDialog",
360
+ props: {
361
+ show: { type: Boolean },
362
+ mode: { default: h.READ },
363
+ modelValue: {}
364
+ },
365
+ emits: ["update:show"],
366
+ setup(U) {
367
+ const c = U, w = J(), o = Z(), { t: r } = W(), i = Ce(c, "show"), p = F({}), v = F(`${Math.random()}`);
368
+ ue(
369
+ () => c.show,
370
+ (t) => {
371
+ t && (Object.keys(p.value).forEach((e) => {
372
+ delete p.value[e];
373
+ }), Object.keys(c.modelValue ?? {}).forEach((e) => {
374
+ var u;
375
+ p.value[e] = (u = c.modelValue) == null ? void 0 : u[e];
376
+ }), v.value = `${Math.random()}`);
377
+ }
378
+ );
379
+ const f = C(() => {
380
+ switch (c.mode) {
381
+ case h.READ:
382
+ return "";
383
+ case h.UPDATE:
384
+ return r("inventory.ingredient.update.title");
385
+ case h.CREATE:
386
+ return r("inventory.ingredient.create.title");
387
+ }
388
+ return "";
389
+ }), y = C(() => {
390
+ switch (c.mode) {
391
+ case h.READ:
392
+ return "";
393
+ case h.UPDATE:
394
+ return r("common.save");
395
+ case h.CREATE:
396
+ return r("common.add");
397
+ }
398
+ return "";
399
+ }), G = F(), b = F(!1);
400
+ async function d() {
401
+ b.value = !0;
402
+ const t = B(p.value);
403
+ try {
404
+ await w.createSkuGroup(t), i.value = !1, o.open({
405
+ title: r("inventory.common.success"),
406
+ message: r("inventory.ingredient.create.success", { name: t.name }),
407
+ type: "success"
408
+ });
409
+ } catch (e) {
410
+ e instanceof se || o.open({
411
+ title: r("inventory.ingredient.create.error.title"),
412
+ message: r("inventory.ingredient.create.error.message"),
413
+ type: "error"
414
+ });
415
+ } finally {
416
+ b.value = !1;
417
+ }
418
+ }
419
+ async function a() {
420
+ b.value = !0;
421
+ const t = B(p.value);
422
+ try {
423
+ await w.updateSkuGroup(t), b.value = !1, i.value = !1, o.open({
424
+ title: r("inventory.common.success"),
425
+ message: r("inventory.ingredient.update.success", { name: t.name }),
426
+ type: "success"
427
+ });
428
+ } catch (e) {
429
+ e instanceof se || o.open({
430
+ title: r("inventory.ingredient.update.error.title"),
431
+ message: r("inventory.ingredient.update.error.message"),
432
+ type: "error"
433
+ });
434
+ } finally {
435
+ b.value = !1;
436
+ }
437
+ }
438
+ function s() {
439
+ var t, e;
440
+ (e = (t = G.value) == null ? void 0 : t.validateInputs) == null || e.call(t);
441
+ }
442
+ function n() {
443
+ switch (c.mode) {
444
+ case h.READ:
445
+ return;
446
+ case h.UPDATE:
447
+ return a();
448
+ case h.CREATE:
449
+ return d();
450
+ }
451
+ }
452
+ return (t, e) => {
453
+ const u = S("FmButton"), _ = S("FmSideSheet");
454
+ return M(), O(_, {
455
+ "model-value": l(i),
456
+ "onUpdate:modelValue": e[3] || (e[3] = (m) => ce(i) ? i.value = m : null),
457
+ header: f.value,
458
+ "close-button": "",
459
+ "dismiss-away": "",
460
+ "max-width": 500
461
+ }, {
462
+ "side-sheet-footer": R(() => [
463
+ x("div", Be, [
464
+ g(u, {
465
+ loading: b.value,
466
+ label: y.value,
467
+ onClick: s
468
+ }, null, 8, ["loading", "label"]),
469
+ g(u, {
470
+ disabled: b.value,
471
+ label: l(r)("common.close"),
472
+ variant: "tertiary",
473
+ onClick: e[2] || (e[2] = (m) => i.value = !1)
474
+ }, null, 8, ["disabled", "label"])
475
+ ])
476
+ ]),
477
+ default: R(() => [
478
+ (M(), O(Me, {
479
+ class: "w-full",
480
+ ref_key: "hasValidationExpose",
481
+ ref: G,
482
+ key: v.value,
483
+ "model-value": p.value,
484
+ "onUpdate:modelValue": e[0] || (e[0] = (m) => p.value = m),
485
+ mode: t.mode,
486
+ disabled: b.value,
487
+ onValidationSuccess: e[1] || (e[1] = (m) => n())
488
+ }, null, 8, ["model-value", "mode", "disabled"]))
489
+ ]),
490
+ _: 1
491
+ }, 8, ["model-value", "header"]);
492
+ };
493
+ }
494
+ }), ze = { class: "flex flex-col py-8" }, Le = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ne = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary" }, Qe = /* @__PURE__ */ Y({
495
+ __name: "IngredientGroupView",
496
+ setup(U) {
497
+ const c = J(), w = C(() => c.skuGroups), o = ke(), { t: r } = W(), {
498
+ createIngredientGroup: i,
499
+ updateIngredientGroup: p,
500
+ importIngredientGroups: v,
501
+ exportIngredientGroups: f
502
+ } = X(), { columnDefs: y, loading: G } = re(Ge()), { ingredientGroupDialogProps: b } = re(X());
503
+ function d(A) {
504
+ switch (A) {
505
+ case "add":
506
+ return i();
507
+ case "import":
508
+ return v();
509
+ case "export":
510
+ return f();
511
+ }
512
+ }
513
+ const a = F(""), s = F(!1), n = C(() => s.value || G.value), { breakpoints: t } = Fe(), e = C(() => t.value.xs || t.value.sm), u = C(() => e.value ? 10 : 20), _ = he(), m = C(() => [
514
+ {
515
+ label: r("inventory.ingredient.create.title"),
516
+ value: "add",
517
+ isPrimary: !0,
518
+ prependIcon: "add"
519
+ },
520
+ { label: r("common.import"), value: "import" },
521
+ { label: r("common.export"), value: "export" }
522
+ ]);
523
+ return (A, I) => {
524
+ const D = S("FmTable");
525
+ return M(), O(we, {
526
+ title: l(r)("inventory.ingredientGroup.title"),
527
+ actions: m.value,
528
+ "onClick:action": d
529
+ }, {
530
+ default: R(() => [
531
+ x("div", {
532
+ class: de([
533
+ "flex flex-col gap-8 max-h-full",
534
+ {
535
+ "p-0": e.value,
536
+ "px-24 ": !e.value
537
+ }
538
+ ])
539
+ }, [
540
+ g(Se, {
541
+ searchable: "",
542
+ search: a.value,
543
+ "onUpdate:search": I[0] || (I[0] = (V) => a.value = V)
544
+ }, null, 8, ["search"]),
545
+ g(D, {
546
+ style: me(l(_).tableHeight),
547
+ "column-defs": l(y),
548
+ "row-data": w.value,
549
+ "search-value": a.value,
550
+ loading: !l(o)._currentLocation || n.value,
551
+ "loading-text": "Loading",
552
+ onRowClick: I[1] || (I[1] = (V) => l(p)(V.original)),
553
+ "page-size": u.value
554
+ }, {
555
+ "list-row": R((V) => [
556
+ g(Ie, {
557
+ row: V,
558
+ onRowClick: l(p)
559
+ }, pe({
560
+ default: R((T) => {
561
+ var z, k, E, $, L, N, K, q, P, H;
562
+ return [
563
+ x("div", ze, [
564
+ x("div", Le, [
565
+ g(l(ae), {
566
+ render: (E = (k = (z = T.code) == null ? void 0 : z.column) == null ? void 0 : k.columnDef) == null ? void 0 : E.cell,
567
+ props: (L = ($ = T.code) == null ? void 0 : $.getContext) == null ? void 0 : L.call($)
568
+ }, null, 8, ["render", "props"])
569
+ ]),
570
+ x("div", Ne, [
571
+ g(l(ae), {
572
+ render: (q = (K = (N = T.name) == null ? void 0 : N.column) == null ? void 0 : K.columnDef) == null ? void 0 : q.cell,
573
+ props: (H = (P = T.name) == null ? void 0 : P.getContext) == null ? void 0 : H.call(P)
574
+ }, null, 8, ["render", "props"])
575
+ ])
576
+ ])
577
+ ];
578
+ }),
579
+ _: 2
580
+ }, [
581
+ s.value ? {
582
+ name: "loading-text",
583
+ fn: R(() => [
584
+ x("div", null, j(l(r)("inventory.ingredient.table.importing")), 1)
585
+ ]),
586
+ key: "0"
587
+ } : void 0
588
+ ]), 1032, ["row", "onRowClick"])
589
+ ]),
590
+ _: 1
591
+ }, 8, ["style", "column-defs", "row-data", "search-value", "loading", "page-size"])
592
+ ], 2),
593
+ (M(), O(fe, { to: "body" }, [
594
+ g(Ue, ve(ge(l(b))), null, 16)
595
+ ]))
596
+ ]),
597
+ _: 1
598
+ }, 8, ["title", "actions"]);
599
+ };
600
+ }
601
+ });
602
+ export {
603
+ Qe as default
604
+ };
@@ -1,13 +1,13 @@
1
1
  import { ref as q, defineComponent as te, computed as S, resolveComponent as w, openBlock as f, createBlock as B, withCtx as V, createVNode as c, unref as d, createElementBlock as A, Fragment as X, createElementVNode as m, createCommentVNode as j, renderSlot as ce, createTextVNode as Me, toDisplayString as T, normalizeClass as ee, onMounted as st, watch as Ye, renderList as se, isRef as De, createSlots as Ge, normalizeStyle as rt, Teleport as Pe, normalizeProps as it, guardReactiveProps as ut } from "vue";
2
- import { a as ne, d as K, e as We, S as dt, f as mt, D as Be, h as be, A as _e, b as Ie, i as Ke, j as xe, t as Ze, k as ve, l as Ve, U as ct, m as pt, M as vt, n as Ne, o as ze, p as Le, q as Je, r as ft, s as Qe, v as yt, w as gt, I as bt, x as ht, y as _t, u as xt, z as kt, _ as Vt, B as St, C as Ct, E as He } from "./app-CUTIQqG_.js";
2
+ import { a as ne, d as K, e as We, S as dt, f as mt, D as Be, h as be, A as _e, b as Ie, i as Ke, j as xe, t as Ze, k as ve, l as Ve, U as ct, m as pt, M as vt, n as Ne, o as ze, p as Le, q as Je, r as ft, s as Qe, v as yt, w as gt, I as bt, x as ht, y as _t, u as xt, z as kt, _ as Vt, B as St, C as Ct, E as He } from "./app-DmpPc6HP.js";
3
3
  import { useDialog as Xe, useSnackbar as ke, useProxiedModel as Oe, useDialogChild as wt, useBreakpoints as Ft } from "@feedmepos/ui-library";
4
4
  import { i as Mt, _ as It } from "./is-linked-ingredient-error-fJ2TJb3z.js";
5
5
  import { useI18n as oe, useCoreStore as fe } from "@feedmepos/mf-common";
6
6
  import { defineStore as $t, storeToRefs as Et } from "pinia";
7
7
  import { g as Ut, _ as Se, S as Ce } from "./StockForecast.vue_vue_type_style_index_0_lang-KLXSWvo5.js";
8
- import { _ as Rt } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-DsM2bCNe.js";
9
- import { _ as we } from "./IngredientBindedItem.vue_vue_type_script_setup_true_lang-BOyqgaik.js";
10
- import { u as et } from "./feature-D5GLIW5h.js";
8
+ import { _ as Rt } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-Bzfh5vhC.js";
9
+ import { _ as we } from "./IngredientBindedItem.vue_vue_type_script_setup_true_lang-DRygALNq.js";
10
+ import { u as et } from "./feature-B_qG9zNF.js";
11
11
  import { _ as he } from "./PreviewBadge.vue_vue_type_script_setup_true_lang-CRZiQHjx.js";
12
12
  import { _ as At } from "./FmCustomAttribute.vue_vue_type_script_setup_true_lang-D-IWRjRD.js";
13
13
  import "./array-hChJVZLE.js";
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as J, mergeModels as xe, useModel as Ee, onMounted as ae, ref as j, computed as R, resolveComponent as k, openBlock as S, createElementBlock as N, createElementVNode as r, toDisplayString as H, unref as E, createVNode as B, createBlock as Q, withCtx as O, Fragment as Z, renderList as W, normalizeClass as G, normalizeStyle as Be, createSlots as le, createCommentVNode as T, withModifiers as Ce, reactive as re, watch as ue, isRef as te, Teleport as de, h as z, createTextVNode as pe } from "vue";
2
2
  import { E as Se } from "./empty-placeholder-wf6-BWE8.js";
3
- import { aN as we, aF as ke, e as q, u as $, aO as Ve, b as ce, $ as _, Q as Fe, aP as Le, aw as Ne, a as Me, aI as Re, ae as Oe, r as He, ar as ze, x as je, T as ee, _ as De, B as Xe } from "./app-CUTIQqG_.js";
3
+ import { aN as we, aF as ke, e as q, u as $, aO as Ve, b as ce, $ as _, T as Fe, aP as Le, aw as Ne, a as Me, aI as Re, ae as Oe, r as He, ar as ze, x as je, V as ee, _ as De, B as Xe } from "./app-DmpPc6HP.js";
4
4
  import { useDialogChild as Te, useDialog as me, useProxiedModel as ne, useSnackbar as fe, useBreakpoints as oe, components as se } from "@feedmepos/ui-library";
5
5
  import { useI18n as U, useCoreStore as Ae } from "@feedmepos/mf-common";
6
- import { a as Qe, b as Je, u as Ye } from "./index-DiEdX1Bs.js";
7
- import { u as Ke } from "./feature-D5GLIW5h.js";
8
- import { u as Ze } from "./vue-i18n-CxuQa0ds.js";
6
+ import { a as Qe, b as Je, u as Ye } from "./index-rWHZ5j80.js";
7
+ import { u as Ke } from "./feature-B_qG9zNF.js";
8
+ import { u as Ze } from "./vue-i18n-Dt--gl9w.js";
9
9
  const Ue = "data:image/svg+xml,%3csvg%20width='200'%20height='101'%20viewBox='0%200%20200%20101'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M98.9161%2038.4456V24.1772H108.527V27.1988H102.12V30.2202H107.347V32.7382H102.12V38.4456H98.9161Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.382%2031.2276C110.382%2027.5345%20113.249%2024.1772%20117.127%2024.1772C121.174%2024.1772%20123.872%2027.7024%20123.872%2031.3953C123.872%2035.0884%20121.005%2038.6133%20117.127%2038.6133C113.08%2038.4456%20110.382%2034.9204%20110.382%2031.2276ZM117.127%2035.5919C119.487%2035.5919%20120.499%2033.4096%20120.499%2031.2276C120.499%2029.0452%20119.319%2027.0309%20117.127%2027.0309C114.935%2027.0309%20113.754%2029.213%20113.754%2031.2276C113.754%2033.5776%20114.935%2035.5919%20117.127%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M126.232%2031.2276C126.232%2027.5345%20129.099%2024.1772%20132.977%2024.1772C137.024%2024.1772%20139.722%2027.7024%20139.722%2031.3953C139.722%2035.0884%20136.855%2038.6133%20132.977%2038.6133C128.93%2038.4456%20126.232%2034.9204%20126.232%2031.2276ZM132.977%2035.5919C135.337%2035.5919%20136.349%2033.4096%20136.349%2031.2276C136.349%2029.0452%20135.169%2027.0309%20132.977%2027.0309C130.785%2027.0309%20129.604%2029.213%20129.604%2031.2276C129.604%2033.5776%20130.785%2035.5919%20132.977%2035.5919Z'%20fill='%235D5359'/%3e%3cpath%20d='M142.926%2038.4455V24.345H148.153C152.874%2024.345%20155.235%2027.5343%20155.235%2031.3952C155.235%2035.5918%20152.368%2038.4455%20148.153%2038.4455H142.926ZM148.153%2027.0308H146.129V35.4238H148.153C150.513%2035.4238%20151.862%2033.5775%20151.862%2031.2272C151.862%2028.8773%20150.513%2027.0308%20148.153%2027.0308Z'%20fill='%235D5359'/%3e%3cpath%20d='M110.045%2057.5607V49.1676L107.009%2055.2107H105.324L102.12%2049.1676V57.5607H98.9161V43.4604H102.457L106.167%2050.8465L109.876%2043.4604H113.417V57.5607H110.045Z'%20fill='%235D5359'/%3e%3cpath%20d='M115.947%2057.5607L121.342%2043.4604H124.04L129.436%2057.5607H125.895L124.715%2054.3716H120.331L119.319%2057.5607H115.947ZM122.691%2046.9856L121.005%2052.1893H124.378L122.691%2046.9856Z'%20fill='%235D5359'/%3e%3cpath%20d='M131.965%2057.5607V43.4604H138.373C141.07%2043.4604%20142.925%2045.8105%20142.925%2048.1605C142.925%2049.8393%20142.082%2051.5179%20140.565%2052.1893L143.768%2057.393H140.059L137.192%2052.8607H135V57.393H131.965V57.5607ZM135.169%2050.175H138.204C139.047%2050.175%20139.553%2049.3356%20139.553%2048.1605C139.553%2046.9856%20138.71%2046.3142%20138.035%2046.3142H135.169V50.175Z'%20fill='%235D5359'/%3e%3cpath%20d='M146.635%2057.5607V43.4604H150.007V49.8393L155.403%2043.4604H158.776L153.548%2049.6713L159.281%2057.5607H155.74L151.693%2051.5179L150.007%2053.3642V57.5607H146.635Z'%20fill='%235D5359'/%3e%3cpath%20d='M171.422%2054.7073V57.5607H161.474V43.4604H171.253V46.3142H164.677V48.9999H170.242V51.6856H164.677V54.7073H171.422Z'%20fill='%235D5359'/%3e%3cpath%20d='M185.417%2046.3142H181.202V57.5607H177.829V46.3142H173.614V43.4604H185.417V46.3142Z'%20fill='%235D5359'/%3e%3cpath%20d='M111.057%2062.5967V76.6973H107.853V70.9898H102.12V76.6973H98.9161V62.5967H102.12V68.1361H107.853V62.5967H111.057Z'%20fill='%235D5359'/%3e%3cpath%20d='M124.04%2069.815V62.5967H127.244V69.815C127.244%2073.6758%20125.389%2076.865%20121.005%2076.865C116.453%2076.865%20114.766%2073.5078%20114.766%2069.815V62.5967H117.97V69.815C117.97%2071.997%20118.813%2074.0115%20121.005%2074.0115C123.366%2074.0115%20124.04%2071.997%20124.04%2069.815Z'%20fill='%235D5359'/%3e%3cpath%20d='M138.036%2076.6973H131.122V62.5967H139.047C141.071%2062.5967%20142.251%2064.4433%20142.251%2066.2898C142.251%2067.6327%20141.576%2068.9755%20140.228%2069.4793C141.914%2069.9827%20142.926%2071.1578%20142.926%2073.1721C142.757%2075.5221%20140.733%2076.6973%20138.036%2076.6973ZM134.326%2065.4504V68.3041H137.53C138.204%2068.3041%20138.879%2067.8004%20138.879%2066.7933C138.879%2065.7861%20138.373%2065.2827%20137.698%2065.2827H134.326V65.4504ZM138.204%2070.8221H134.494V73.8435H138.204C139.047%2073.8435%20139.722%2073.1721%20139.722%2072.3327C139.553%2071.6613%20138.879%2070.8221%20138.204%2070.8221Z'%20fill='%235D5359'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M73.4753%2051.4994C78.7281%2050.5396%2082.8911%2046.4891%2083.9954%2041.3137L84.1232%2040.7134L83.9445%2040.1256C80.5804%2029.066%2071.9945%2020.2704%2061.0373%2016.5726C57.4%2015.3451%2053.5046%2014.6804%2049.458%2014.6804C45.4112%2014.6804%2041.5158%2015.3451%2037.8784%2016.5726C26.9214%2020.2704%2018.3354%2029.066%2014.9712%2040.1256L14.7924%2040.7134L14.9206%2041.3137C16.0247%2046.4891%2020.1875%2050.5396%2025.4405%2051.4994V58.8839H14.4183C14.6758%2059.9557%2014.9818%2061.0088%2015.3337%2062.0411C20.1553%2076.1811%2033.6083%2086.3619%2049.458%2086.3619C65.3074%2086.3619%2078.7606%2076.1811%2083.5822%2062.0411C83.9342%2061.0088%2084.2399%2059.9557%2084.4974%2058.8839H73.4753V51.4994ZM41.0517%2020.5973V38.5742C41.0517%2043.1931%2044.8155%2046.9371%2049.458%2046.9371C54.1005%2046.9371%2057.8641%2043.1931%2057.8641%2038.5742V20.5973C55.1919%2019.856%2052.3732%2019.4592%2049.458%2019.4592C46.5428%2019.4592%2043.7241%2019.856%2041.0517%2020.5973ZM62.6675%2022.3673V38.5742C62.6675%2043.1931%2066.431%2046.9371%2071.0735%2046.9371C74.9051%2046.9371%2078.1425%2044.3848%2079.1528%2040.8942C76.4672%2032.6902%2070.4379%2025.9824%2062.6675%2022.3673ZM60.2658%2046.1322C57.8753%2049.5094%2053.9255%2051.7159%2049.458%2051.7159C44.9902%2051.7159%2041.0408%2049.5094%2038.65%2046.1322C36.6982%2048.8894%2033.7074%2050.8662%2030.2439%2051.4994V58.8839H68.6718V51.4994C65.2083%2050.8662%2062.2175%2048.8894%2060.2658%2046.1322ZM21.1583%2063.6628C26.1349%2074.2514%2036.9382%2081.5834%2049.458%2081.5834C61.9776%2081.5834%2072.781%2074.2514%2077.7574%2063.6628H21.1583ZM36.2482%2038.5742V22.3673C28.4779%2025.9824%2022.4486%2032.6902%2019.7631%2040.8942C20.7733%2044.3848%2024.0106%2046.9371%2027.8422%2046.9371C32.4847%2046.9371%2036.2482%2043.1931%2036.2482%2038.5742Z'%20fill='%23FFC35D'/%3e%3c/svg%3e";
10
10
  var ye = { exports: {} };
11
11
  (function(C, g) {
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-DsM2bCNe.js";
1
+ import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-Bzfh5vhC.js";
2
2
  export {
3
3
  f as default
4
4
  };