@feedmepos/mf-inventory-portal 1.2.17-dev.1 → 1.2.18

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 (47) hide show
  1. package/dist/{App-CvQI16_m.js → App-C7bnTGbg.js} +1 -1
  2. package/dist/{ApprovalView-Bpmp0EiN.js → ApprovalView-WhdGpygb.js} +2 -2
  3. package/dist/{BindingsDialog-Dj3Ul3Hv.js → BindingsDialog-CHKnpitE.js} +2 -2
  4. package/dist/{BindingsPicker-DFaOJ9Mr.js → BindingsPicker-BXUv8H0c.js} +1 -1
  5. package/dist/{BindingsTable-D_gYSqc3.js → BindingsTable-4Ndm5r7H.js} +1 -1
  6. package/dist/{ClosingDraftView-Ds7yRxye.js → ClosingDraftView-C0XTMbHo.js} +2 -2
  7. package/dist/{ClosingTemplateView-BEknM3gR.js → ClosingTemplateView-C17StrHT.js} +296 -296
  8. package/dist/{DeliveryOrderPrintPreview-pKBREKAn.js → DeliveryOrderPrintPreview-C7t3WZV1.js} +1 -1
  9. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-D4Fy0CRH.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DRSUXz--.js} +3 -3
  10. package/dist/{FmMultiselectDialog-KFA3Oe14.js → FmMultiselectDialog-BnAHRAAM.js} +1 -1
  11. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-CHViCIO9.js → FmUnitInput.vue_vue_type_script_setup_true_lang-DbaD9qUk.js} +1 -1
  12. package/dist/{ImportView-BMIp5iNg.js → ImportView-BJyqR26k.js} +275 -279
  13. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-BbR7BY5t.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-DYskeNa8.js} +1 -1
  14. package/dist/{IngredientGroupView-DyPWmsHp.js → IngredientGroupView-CmTrE28Q.js} +2 -2
  15. package/dist/{IngredientsView-BBrYRXgE.js → IngredientsView-CZSd4iI2.js} +8 -8
  16. package/dist/{IntegrationView-ClHFof33.js → IntegrationView-BcdRocma.js} +3 -3
  17. package/dist/{InventoryBindingForm-BBA5xLdJ.js → InventoryBindingForm-hsjpKGlq.js} +1 -1
  18. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-CmPAkzJn.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-5yGfFt02.js} +3 -3
  19. package/dist/{InventoryBindingSummary-BjXlLwGS.js → InventoryBindingSummary-AE1tIBZX.js} +1 -1
  20. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-mFE4CC3D.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-qhWKUytO.js} +1 -1
  21. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-AWY6QeLj.js → PremiumBadge.vue_vue_type_script_setup_true_lang-BN07OE3j.js} +1 -1
  22. package/dist/{PublishView-D3xxqwhK.js → PublishView-CPWKoKv4.js} +1 -1
  23. package/dist/{PurchaseOrderPrintPreview-mwyZgu5h.js → PurchaseOrderPrintPreview-CkiHTmgC.js} +1 -1
  24. package/dist/{ReceiveRequestView-NyKfbtAl.js → ReceiveRequestView-B-Q5LDit.js} +185 -193
  25. package/dist/{RecipeView-Cg7_T6-B.js → RecipeView-DEd2uP8R.js} +3 -3
  26. package/dist/{StockView-C9K7xKpF.js → StockView-DGL_EghN.js} +7 -7
  27. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DZhRVJwr.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-D6-lImIW.js} +1 -1
  28. package/dist/{SupplierView-CaEzwVVw.js → SupplierView-uY0HvMr-.js} +4 -4
  29. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-BVSyv6NL.js → TransferDetails.vue_vue_type_script_setup_true_lang-C0LNY9CK.js} +5 -5
  30. package/dist/{TransferTemplateView-B4_J_O_U.js → TransferTemplateView-DjI7px12.js} +7 -7
  31. package/dist/{UnitView-DuiQRfl9.js → UnitView-CANjtjhH.js} +3 -3
  32. package/dist/{WarehouseView-Bb2VB3uH.js → WarehouseView-BzGxfJI-.js} +1 -1
  33. package/dist/{app-C_ybIeQL.js → app-ZxL49u29.js} +2468 -2480
  34. package/dist/app.js +1 -1
  35. package/dist/{closing-template-BjPPidb4.js → closing-template-BA7jw5Ib.js} +1 -1
  36. package/dist/{decimal-DIKbgzfe.js → decimal-YUVJ1ppE.js} +1 -1
  37. package/dist/{format-unit-display-SiJQnJk-.js → format-unit-display-B8-ONx5f.js} +3 -3
  38. package/dist/{import-export.helper-DdPmfMT_.js → import-export.helper-B0RkcNAy.js} +62 -67
  39. package/dist/{index-CowO4VHt.js → index-BOLpjtRD.js} +1 -1
  40. package/dist/{index-bIhW74tJ.js → index-By0SWtFG.js} +1 -1
  41. package/dist/{purchase-order-template-C8y1AzcV.js → purchase-order-template-CppyMHCz.js} +1 -1
  42. package/dist/{stock-BQVrprBx.js → stock-8M_JUjPp.js} +1 -1
  43. package/dist/style.css +1 -1
  44. package/dist/{supplier-B6kYUhIp.js → supplier-BkEYL5KY.js} +1 -1
  45. package/dist/{use-ingredient-select-dialog-BA8NYDBZ.js → use-ingredient-select-dialog-BNr7wDV-.js} +1 -1
  46. package/dist/{use-inventory-binding-dialog-DM-6mqUf.js → use-inventory-binding-dialog-C3r06vdY.js} +1 -1
  47. package/package.json +3 -3
package/dist/app.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import "vue";
2
- import { bn as o, bo as a, bp as e, bm as m, bq as t, a as i } from "./app-C_ybIeQL.js";
2
+ import { bn as o, bo as a, bp as e, bm as m, bq as t, a as i } from "./app-ZxL49u29.js";
3
3
  export {
4
4
  o as FmApp,
5
5
  a as InventoryBindingForm,
@@ -1,4 +1,4 @@
1
- import { a7 as c } from "./app-C_ybIeQL.js";
1
+ import { a7 as c } from "./app-ZxL49u29.js";
2
2
  import { useCoreStore as l } from "@feedmepos/mf-common";
3
3
  const p = c((r, s) => {
4
4
  function o() {
@@ -1,4 +1,4 @@
1
- import "./app-C_ybIeQL.js";
1
+ import "./app-ZxL49u29.js";
2
2
  function m(a) {
3
3
  function t(o, n = !0) {
4
4
  const e = Math.round(Math.log10(o));
@@ -1,11 +1,11 @@
1
- import { a as q, $ as Ie, ao as U, X as Ne, ap as ye, W as he, u as X, l as L, aq as De, z as le, ar as ve, b as te, t as G, y as Z, aS as Oe, aL as Fe, a5 as Pe, B as Me, C as Ue, as as Le, e as ce, f as re, R as me, w as Be, am as Qe, D as j, j as N, i as He } from "./app-C_ybIeQL.js";
1
+ import { a as q, $ as Ie, ao as U, X as Ne, ap as ye, W as he, u as X, l as L, aq as De, z as le, ar as ve, b as te, t as G, y as Z, aS as Oe, aL as Fe, a5 as Pe, B as Me, C as Ue, as as Le, e as ce, f as re, R as me, w as Be, am as Qe, D as j, j as N, i as He } from "./app-ZxL49u29.js";
2
2
  import { useCoreStore as ge, useI18n as ne } from "@feedmepos/mf-common";
3
3
  import { useDialogChild as Ve, useSnackbar as be, useDialog as qe, FmButtonVariant as z, components as J } from "@feedmepos/ui-library";
4
4
  import { defineStore as xe } from "pinia";
5
- import { u as Se } from "./purchase-order-template-C8y1AzcV.js";
5
+ import { u as Se } from "./purchase-order-template-CppyMHCz.js";
6
6
  import { defineComponent as oe, resolveComponent as Q, openBlock as _, createElementBlock as E, createElementVNode as C, normalizeClass as H, createTextVNode as je, toDisplayString as D, unref as I, createCommentVNode as V, createVNode as P, withCtx as ee, Fragment as B, renderList as W, ref as k, onMounted as ze, computed as ue, watch as Ke, createSlots as We, createBlock as K, h as Y } from "vue";
7
7
  import { useRouter as Ye } from "vue-router";
8
- import { u as ae } from "./supplier-B6kYUhIp.js";
8
+ import { u as ae } from "./supplier-BkEYL5KY.js";
9
9
  function Te(e) {
10
10
  const t = q(), a = e.sku, u = t.skuById[a._id];
11
11
  if (u.unit._id !== a.unit._id) return !0;
@@ -1,54 +1,50 @@
1
- import { a as y, V as U, X as E, W as $, l as _, n as N, aq as H, c as T, ar as I, p as C, t as O, a3 as P, O as j } from "./app-C_ybIeQL.js";
2
- import { useCoreStore as b } from "@feedmepos/mf-common";
3
- import { r as D } from "./random-CSbEbElR.js";
4
- function k() {
1
+ import { a as y, V as k, X as w, W as N, l as H, n as $, aq as T, c as P, ar as j, p as S, t as O, a3 as _, O as I } from "./app-ZxL49u29.js";
2
+ import { useCoreStore as g } from "@feedmepos/mf-common";
3
+ function R() {
5
4
  return {
6
5
  low: 6,
7
6
  mid: 14
8
7
  };
9
8
  }
10
- function B() {
11
- return `sku_${(/* @__PURE__ */ new Date()).toISOString()}_${D()}`;
12
- }
13
- const V = {
9
+ const B = {
14
10
  _id: "",
15
11
  name: "",
16
12
  abbrev: "",
17
13
  precision: 0,
18
14
  measurements: []
19
15
  };
20
- function L(e) {
21
- return !e || Object.keys(e).length === 0 ? "" : Object.entries(e).map(([t, a]) => `${t}: ${a}`).join(", ");
16
+ function D(e) {
17
+ return !e || Object.keys(e).length === 0 ? "" : Object.entries(e).map(([t, r]) => `${t}: ${r}`).join(", ");
22
18
  }
23
19
  function A(e) {
24
20
  if (!e || e.trim() === "")
25
21
  return;
26
- const t = {}, a = e.split(",").map((n) => n.trim());
27
- for (const n of a) {
22
+ const t = {}, r = e.split(",").map((n) => n.trim());
23
+ for (const n of r) {
28
24
  const s = n.indexOf(":");
29
25
  if (s > 0) {
30
- const c = n.substring(0, s).trim(), r = n.substring(s + 1).trim();
31
- c && r && (t[c] = r);
26
+ const c = n.substring(0, s).trim(), a = n.substring(s + 1).trim();
27
+ c && a && (t[c] = a);
32
28
  }
33
29
  }
34
30
  return Object.keys(t).length > 0 ? t : void 0;
35
31
  }
36
- function Y(e) {
37
- var a, n, s, c, r;
32
+ function V(e) {
33
+ var r, n, s, c, a;
38
34
  return {
39
35
  code: e.code,
40
36
  name: e.name,
41
37
  unit: e.unit.name,
42
38
  baseUnit: e.unit.abbrev,
43
- measurementName: ((a = e.unit.measurements.find((m) => m.id === e.trackingMeasurement)) == null ? void 0 : a.abbrev) ?? e.unit.abbrev,
39
+ measurementName: ((r = e.unit.measurements.find((m) => m.id === e.trackingMeasurement)) == null ? void 0 : r.abbrev) ?? e.unit.abbrev,
44
40
  valuationMethod: e.valuation ?? "WAVG",
45
- pricePerUnit: (n = e.defaultCost) != null && n.costPerUnit ? +_((s = e.defaultCost) == null ? void 0 : s.costPerUnit) : 0,
46
- thresholdLow: ((c = e.thresholds) == null ? void 0 : c.low) ?? k().low,
47
- thresholdMid: ((r = e.thresholds) == null ? void 0 : r.mid) ?? k().mid,
48
- customAttributes: L(e.customAttributes)
41
+ pricePerUnit: (n = e.defaultCost) != null && n.costPerUnit ? +H((s = e.defaultCost) == null ? void 0 : s.costPerUnit) : 0,
42
+ thresholdLow: ((c = e.thresholds) == null ? void 0 : c.low) ?? R().low,
43
+ thresholdMid: ((a = e.thresholds) == null ? void 0 : a.mid) ?? R().mid,
44
+ customAttributes: D(e.customAttributes)
49
45
  };
50
46
  }
51
- function w() {
47
+ function E() {
52
48
  var s;
53
49
  const e = [
54
50
  {
@@ -71,7 +67,7 @@ function w() {
71
67
  id: "measurementName",
72
68
  name: "Measurement Name"
73
69
  }
74
- ], t = T(), a = b(), n = N(a.currentCountry.value);
70
+ ], t = P(), r = g(), n = $(r.currentCountry.value);
75
71
  return t.enableTotalCost && e.push(
76
72
  {
77
73
  id: "valuationMethod",
@@ -81,7 +77,7 @@ function w() {
81
77
  id: "pricePerUnit",
82
78
  name: `Price per unit (${n == null ? void 0 : n.currency})`
83
79
  }
84
- ), ((s = a.currentBusiness.value) == null ? void 0 : s.menuVersion) === "v4" && e.push(
80
+ ), ((s = r.currentBusiness.value) == null ? void 0 : s.menuVersion) === "v4" && e.push(
85
81
  {
86
82
  id: "thresholdLow",
87
83
  name: "Show RED when remaining"
@@ -95,37 +91,37 @@ function w() {
95
91
  name: "Custom Attributes"
96
92
  }), e;
97
93
  }
98
- function J() {
99
- const t = y().skus.map(Y), n = b().currentBusiness.value, s = w(), c = [
94
+ function G() {
95
+ const t = y().skus.map(V), n = g().currentBusiness.value, s = E(), c = [
100
96
  ["Business name:", n == null ? void 0 : n.name],
101
97
  ["Business ID:", n == null ? void 0 : n._id],
102
98
  ["Menu version", n == null ? void 0 : n.menuVersion],
103
99
  [],
104
100
  s.map((o) => o.name),
105
101
  ...t.map((o) => s.map((u) => o[u.id]))
106
- ], r = s.map((o) => `system:${o.id}`), m = U(c, r), d = `${n == null ? void 0 : n.name} ingredients (${E(/* @__PURE__ */ new Date())}).xlsx`;
107
- return $(m, d), d;
102
+ ], a = s.map((o) => `system:${o.id}`), m = k(c, a), d = `${n == null ? void 0 : n.name} ingredients (${w(/* @__PURE__ */ new Date())}).xlsx`;
103
+ return N(m, d), d;
108
104
  }
109
- function K() {
110
- const t = b().currentBusiness.value, a = w(), n = [
105
+ function X() {
106
+ const t = g().currentBusiness.value, r = E(), n = [
111
107
  ["Business name:", t == null ? void 0 : t.name],
112
108
  ["Business ID:", t == null ? void 0 : t._id],
113
109
  ["Menu version", t == null ? void 0 : t.menuVersion],
114
110
  [],
115
- a.map((m) => m.name)
116
- ], s = a.map((m) => `system:${m.id}`), c = U(n, s), r = "FeedMe ingredients template.xlsx";
117
- return $(c, r), r;
111
+ r.map((m) => m.name)
112
+ ], s = r.map((m) => `system:${m.id}`), c = k(n, s), a = "FeedMe ingredients template.xlsx";
113
+ return N(c, a), a;
118
114
  }
119
- function F(e) {
115
+ function L(e) {
120
116
  const [
121
117
  t,
122
- a,
118
+ r,
123
119
  n,
124
120
  s,
125
121
  c,
126
- r,
122
+ a,
127
123
  ...m
128
- ] = I(e);
124
+ ] = j(e);
129
125
  if (!t || !t.length || t.some((l) => l.length && !l.startsWith("system:")))
130
126
  throw new Error("Missing meta header. Excel file does not come from the template.");
131
127
  const d = t.map((l) => l.split(":")[1]), u = ["code", "name", "unit", "baseUnit", "measurementName"].filter((l) => !d.includes(l));
@@ -136,8 +132,8 @@ function F(e) {
136
132
  return m.map((l, p) => {
137
133
  const f = {};
138
134
  for (const v in d) {
139
- const g = d[v];
140
- Object.assign(f, { [g]: l[v] });
135
+ const b = d[v];
136
+ Object.assign(f, { [b]: l[v] });
141
137
  }
142
138
  return {
143
139
  index: p,
@@ -145,61 +141,60 @@ function F(e) {
145
141
  };
146
142
  });
147
143
  }
148
- function R(e, t, a, { ignoreErrors: n = !1 } = {}) {
144
+ function U(e, t, r, { ignoreErrors: n = !1 } = {}) {
149
145
  var M;
150
- const c = y().units, r = new Array(), m = a.filter((i) => i.data.code === e.code);
151
- m.length > 1 && r.push(
146
+ const c = y().units, a = new Array(), m = r.filter((i) => i.data.code === e.code);
147
+ m.length > 1 && a.push(
152
148
  `Code ${e.code} is already used in row ${m.map((i) => i.index + 6).join()}.`
153
149
  );
154
150
  const d = c.find((i) => {
155
- var S, x;
156
- return i.abbrev === e.baseUnit && ((S = i.name) == null ? void 0 : S.trim()) === ((x = e.unit) == null ? void 0 : x.trim());
151
+ var x, C;
152
+ return i.abbrev === e.baseUnit && ((x = i.name) == null ? void 0 : x.trim()) === ((C = e.unit) == null ? void 0 : C.trim());
157
153
  }), o = d == null ? void 0 : d.measurements.find((i) => i.abbrev === e.measurementName);
158
154
  if (!d)
159
- r.push(`Cannot find base unit of symbol ${e.baseUnit}.`);
155
+ a.push(`Cannot find base unit of symbol ${e.baseUnit}.`);
160
156
  else if (e.baseUnit !== e.measurementName && !o) {
161
157
  const i = `Cannot find unit conversion for ${e.baseUnit} with symbol ${e.measurementName || "[empty]"}.`;
162
- r.push(i);
158
+ a.push(i);
163
159
  }
164
- const u = C.options.find(
160
+ const u = S.options.find(
165
161
  (i) => i === e.valuationMethod
166
162
  );
167
- e.valuationMethod && !u && r.push(
168
- `Expected valuation method to be one of ${C.options.join()} but got ${e.valuationMethod} instead.`
163
+ e.valuationMethod && !u && a.push(
164
+ `Expected valuation method to be one of ${S.options.join()} but got ${e.valuationMethod} instead.`
169
165
  );
170
- const l = b().currentCountry.value, p = (i) => `${i}`.length && j()(i) === !0, f = p(`${e.pricePerUnit}`) === !0 ? {
166
+ const l = g().currentCountry.value, p = (i) => `${i}`.length && I()(i) === !0, f = p(`${e.pricePerUnit}`) === !0 ? {
171
167
  costPerUnit: {
172
- ...O(Number(e.pricePerUnit) || 0, P(Number(e.pricePerUnit) || 0)),
173
- currency: ((M = N(l)) == null ? void 0 : M.currency) ?? "MYR"
168
+ ...O(Number(e.pricePerUnit) || 0, _(Number(e.pricePerUnit) || 0)),
169
+ currency: ((M = $(l)) == null ? void 0 : M.currency) ?? "MYR"
174
170
  },
175
171
  measurement: o
176
172
  } : void 0, v = p(`${e.thresholdLow}`) && p(`${e.thresholdMid}`) ? {
177
173
  low: Number(e.thresholdLow) || 0,
178
174
  mid: Number(e.thresholdMid) || 0
179
- } : void 0, g = "customAttributes" in e ? A(e.customAttributes) : null;
175
+ } : void 0, b = "customAttributes" in e ? A(e.customAttributes) : null;
180
176
  return {
181
177
  type: "create",
182
178
  sku: {
183
- _id: B(),
184
179
  code: e.code,
185
180
  name: e.name,
186
- unit: d ?? c.find((i) => i) ?? V,
181
+ unit: d ?? c.find((i) => i) ?? B,
187
182
  trackingMeasurement: o == null ? void 0 : o.id,
188
183
  valuation: u,
189
184
  defaultCost: f,
190
185
  thresholds: v,
191
- ...g !== null && { customAttributes: g }
186
+ ...b !== null && { customAttributes: b }
192
187
  },
193
- errors: r,
188
+ errors: a,
194
189
  excelRowNumber: t + 6
195
190
  };
196
191
  }
197
- function Q(e) {
192
+ function z(e) {
198
193
  try {
199
- const t = F(e).filter((o) => o.data.code), n = y().skus, s = H(n, "code"), c = t.filter((o) => !s[o.data.code]), r = t.filter((o) => s[o.data.code]), m = c.map(
200
- (o) => R(o.data, o.index, t)
201
- ), d = r.map((o) => {
202
- const u = R(o.data, o.index, t), h = s[o.data.code];
194
+ const t = L(e).filter((o) => o.data.code), n = y().skus, s = T(n, "code"), c = t.filter((o) => !s[o.data.code]), a = t.filter((o) => s[o.data.code]), m = c.map(
195
+ (o) => U(o.data, o.index, t)
196
+ ), d = a.map((o) => {
197
+ const u = U(o.data, o.index, t), h = s[o.data.code];
203
198
  let l = h.customAttributes;
204
199
  return "customAttributes" in o.data && (l = A(o.data.customAttributes)), {
205
200
  ...u,
@@ -234,10 +229,10 @@ function Q(e) {
234
229
  }
235
230
  }
236
231
  export {
237
- K as a,
238
- w as b,
239
- k as d,
240
- J as e,
241
- Q as g,
232
+ X as a,
233
+ E as b,
234
+ R as d,
235
+ G as e,
236
+ z as g,
242
237
  A as s
243
238
  };
@@ -1,5 +1,5 @@
1
1
  import { ref as b, computed as u } from "vue";
2
- import { u as d, b7 as p, aY as v, c as m, b as h } from "./app-C_ybIeQL.js";
2
+ import { u as d, b7 as p, aY as v, c as m, b as h } from "./app-ZxL49u29.js";
3
3
  import { useSnackbar as E } from "@feedmepos/ui-library";
4
4
  function I() {
5
5
  return {
@@ -1,4 +1,4 @@
1
- import { b6 as x, be as V, bf as q, bg as Ne, bh as cl, bi as sr, bj as Lt, bk as fl, bl as $l } from "./app-C_ybIeQL.js";
1
+ import { b6 as x, be as V, bf as q, bg as Ne, bh as cl, bi as sr, bj as Lt, bk as fl, bl as $l } from "./app-ZxL49u29.js";
2
2
  function vl(t, e) {
3
3
  for (var r = 0; r < e.length; r++) {
4
4
  const n = e[r];
@@ -1,4 +1,4 @@
1
- import { a7 as s } from "./app-C_ybIeQL.js";
1
+ import { a7 as s } from "./app-ZxL49u29.js";
2
2
  import { useCoreStore as c } from "@feedmepos/mf-common";
3
3
  const u = s((n, a) => {
4
4
  function o() {
@@ -1,4 +1,4 @@
1
- import { a7 as m, u as k, a as l, aA as B, $ as p } from "./app-C_ybIeQL.js";
1
+ import { a7 as m, u as k, a as l, aA as B, $ as p } from "./app-ZxL49u29.js";
2
2
  import { useCoreStore as v } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as $ } from "@feedmepos/ui-library";
4
4
  import { ref as y, computed as b } from "vue";
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .fm-admin-badge[data-v-643bdbae]{pointer-events:none;opacity:.9;display:flex;align-items:center;justify-content:center;border-radius:360px;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fm-droppable-field[data-v-2937afd0]{display:flex;flex-direction:column;gap:4px}.fm-droppable-field__container[data-v-2937afd0]{position:relative;background-color:var(--fm-color-neutral-white);padding:12px;border-radius:8px;border-width:2px;border-style:dashed;border-color:var(--fm-color-neutral-gray-300);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.fm-droppable-field__container--disabled[data-v-2937afd0]{cursor:not-allowed;color:var(--fm-color-neutral-gray-200);border-color:var(--fm-color-neutral-gray-200)}.fm-droppable-field__container--dragging[data-v-2937afd0]{border-color:var(--fm-color-primary)}.fm-droppable-field__container--invalid[data-v-2937afd0]{border-color:var(--fm-color-system-red-300)}.fm-droppable-field__container[data-v-2937afd0]:hover:not(.fm-droppable-field__container--disabled){border-color:var(--fm-color-neutral-gray-400)}.fm-droppable-field__input[data-v-2937afd0]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;height:100%;width:100%}.fm-droppable-field__input[data-v-2937afd0]:disabled{display:none;cursor:not-allowed}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}.fade-enter-active[data-v-6f532501],.fade-leave-active[data-v-6f532501]{transition:opacity .25s ease}.fade-enter[data-v-6f532501],.fade-leave-to[data-v-6f532501]{opacity:0}.fm-forecast-notification-low{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-forecast-notification-mid{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-high{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-forecast-notification-indicator{display:inline-block;height:12px;width:12px;border-radius:9999px}.fm-forecast-notification-indicator-low{background-color:var(--fm-color-system-red-400)}.fm-forecast-notification-indicator-mid{background-color:var(--fm-color-system-orange-400)}.fm-forecast-notification-indicator-high{background-color:var(--fm-color-system-green-400)}.map-button[data-v-272f5e8b]{border-top-width:1px;border-top-color:var(--fm-color-neutral-gray-200);color:var(--fm-color-neutral-gray-400);padding:.2rem 1rem;border-radius:8px}table[data-v-3cb85541]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-3cb85541],table th[data-v-3cb85541]{padding:3px 5px;vertical-align:top}hr[data-v-3cb85541]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-3cb85541]{text-align:left}.text-right[data-v-3cb85541]{text-align:right}.purchase-box[data-v-3cb85541]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-3cb85541]{padding-bottom:0;font-size:30px;color:#333}.header[data-v-3cb85541]{font-weight:600;color:#333}.sub-header[data-v-3cb85541]{font-size:18px;color:#333}.caption[data-v-3cb85541]{font-size:14px;color:#666}.address[data-v-3cb85541]{font-size:16px;line-height:1.2;color:#666}.purchase-body[data-v-3cb85541]{margin-top:30px}.item-header[data-v-3cb85541]{border:0px;background:#ccc;color:#444}table[data-v-805a706a]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-805a706a],table th[data-v-805a706a]{padding:3px 5px;vertical-align:top}hr[data-v-805a706a]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-805a706a]{text-align:left}.text-right[data-v-805a706a]{text-align:right}.purchase-box[data-v-805a706a]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-805a706a]{padding-bottom:0;font-size:32px;color:#333}.subtitle[data-v-805a706a]{padding-bottom:0;font-size:25px;color:#333}.header[data-v-805a706a]{font-weight:600;color:#333}.sub-header[data-v-805a706a]{font-size:18px;color:#333}.caption[data-v-805a706a]{font-size:14px;color:#666}.address[data-v-805a706a]{font-size:14px;line-height:1.2;color:#666}.purchase-body[data-v-805a706a]{margin-top:30px}.item-header[data-v-805a706a]{border:0px;background:#ccc;color:#444}.logo[data-v-805a706a]{max-width:100%;height:100px;-o-object-fit:contain;object-fit:contain}img[data-v-805a706a]{width:100px;height:100px;-o-object-fit:contain;object-fit:contain}.fm-status-badge{font-size:.875rem;font-weight:600;line-height:1.125rem;letter-spacing:.0125em;text-decoration-line:none;border-radius:8px;display:flex;align-items:center;padding-left:8px;padding-right:8px;min-height:24px}.fm-status-badge-draft{background-color:var(--fm-color-neutral-gray-100);color:var(--fm-color-neutral-gray-500)}.fm-status-badge-receiving,.fm-status-badge-partial_received{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-cancel{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-status-badge-close,.fm-status-badge-complete{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-processing,.fm-status-badge-requesting{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-status-badge-transfer-info,.fm-status-badge-info-secondary{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-success-secondary{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-error{border-width:2px;--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}@media print{.print-mode .overflow-auto{overflow:visible!important}}
1
+ .fm-admin-badge[data-v-643bdbae]{pointer-events:none;opacity:.9;display:flex;align-items:center;justify-content:center;border-radius:360px;--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fm-droppable-field[data-v-2937afd0]{display:flex;flex-direction:column;gap:4px}.fm-droppable-field__container[data-v-2937afd0]{position:relative;background-color:var(--fm-color-neutral-white);padding:12px;border-radius:8px;border-width:2px;border-style:dashed;border-color:var(--fm-color-neutral-gray-300);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}.fm-droppable-field__container--disabled[data-v-2937afd0]{cursor:not-allowed;color:var(--fm-color-neutral-gray-200);border-color:var(--fm-color-neutral-gray-200)}.fm-droppable-field__container--dragging[data-v-2937afd0]{border-color:var(--fm-color-primary)}.fm-droppable-field__container--invalid[data-v-2937afd0]{border-color:var(--fm-color-system-red-300)}.fm-droppable-field__container[data-v-2937afd0]:hover:not(.fm-droppable-field__container--disabled){border-color:var(--fm-color-neutral-gray-400)}.fm-droppable-field__input[data-v-2937afd0]{cursor:pointer;opacity:0;position:absolute;top:0;left:0;height:100%;width:100%}.fm-droppable-field__input[data-v-2937afd0]:disabled{display:none;cursor:not-allowed}.fade-enter-active,.fade-leave-active{transition:opacity .5s ease}.fade-enter-from,.fade-leave-to{opacity:0}.fade-enter-active[data-v-cff1dd22],.fade-leave-active[data-v-cff1dd22]{transition:opacity .25s ease}.fade-enter[data-v-cff1dd22],.fade-leave-to[data-v-cff1dd22]{opacity:0}.fm-forecast-notification-low{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-forecast-notification-mid{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-forecast-notification-high{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-forecast-notification-indicator{display:inline-block;height:12px;width:12px;border-radius:9999px}.fm-forecast-notification-indicator-low{background-color:var(--fm-color-system-red-400)}.fm-forecast-notification-indicator-mid{background-color:var(--fm-color-system-orange-400)}.fm-forecast-notification-indicator-high{background-color:var(--fm-color-system-green-400)}.map-button[data-v-272f5e8b]{border-top-width:1px;border-top-color:var(--fm-color-neutral-gray-200);color:var(--fm-color-neutral-gray-400);padding:.2rem 1rem;border-radius:8px}table[data-v-3cb85541]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-3cb85541],table th[data-v-3cb85541]{padding:3px 5px;vertical-align:top}hr[data-v-3cb85541]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-3cb85541]{text-align:left}.text-right[data-v-3cb85541]{text-align:right}.purchase-box[data-v-3cb85541]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-3cb85541]{padding-bottom:0;font-size:30px;color:#333}.header[data-v-3cb85541]{font-weight:600;color:#333}.sub-header[data-v-3cb85541]{font-size:18px;color:#333}.caption[data-v-3cb85541]{font-size:14px;color:#666}.address[data-v-3cb85541]{font-size:16px;line-height:1.2;color:#666}.purchase-body[data-v-3cb85541]{margin-top:30px}.item-header[data-v-3cb85541]{border:0px;background:#ccc;color:#444}table[data-v-805a706a]{width:100%;border-spacing:unset;line-height:inherit}table td[data-v-805a706a],table th[data-v-805a706a]{padding:3px 5px;vertical-align:top}hr[data-v-805a706a]{border-collapse:unset;background:#888;height:2px;border:0px}.text-left[data-v-805a706a]{text-align:left}.text-right[data-v-805a706a]{text-align:right}.purchase-box[data-v-805a706a]{max-width:800px;margin:auto;padding:30px;border:1px solid #eee;box-shadow:0 0 10px #00000026;font-size:16px;line-height:1.5;font-family:Helvetica Neue,Helvetica,Helvetica,Arial,sans-serif;color:#555}.title[data-v-805a706a]{padding-bottom:0;font-size:32px;color:#333}.subtitle[data-v-805a706a]{padding-bottom:0;font-size:25px;color:#333}.header[data-v-805a706a]{font-weight:600;color:#333}.sub-header[data-v-805a706a]{font-size:18px;color:#333}.caption[data-v-805a706a]{font-size:14px;color:#666}.address[data-v-805a706a]{font-size:14px;line-height:1.2;color:#666}.purchase-body[data-v-805a706a]{margin-top:30px}.item-header[data-v-805a706a]{border:0px;background:#ccc;color:#444}.logo[data-v-805a706a]{max-width:100%;height:100px;-o-object-fit:contain;object-fit:contain}img[data-v-805a706a]{width:100px;height:100px;-o-object-fit:contain;object-fit:contain}.fm-status-badge{font-size:.875rem;font-weight:600;line-height:1.125rem;letter-spacing:.0125em;text-decoration-line:none;border-radius:8px;display:flex;align-items:center;padding-left:8px;padding-right:8px;min-height:24px}.fm-status-badge-draft{background-color:var(--fm-color-neutral-gray-100);color:var(--fm-color-neutral-gray-500)}.fm-status-badge-receiving,.fm-status-badge-partial_received{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-cancel{background-color:var(--fm-color-system-red-100);color:var(--fm-color-system-red-400)}.fm-status-badge-close,.fm-status-badge-complete{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-processing,.fm-status-badge-requesting{background-color:var(--fm-color-system-orange-100);color:var(--fm-color-system-orange-400)}.fm-status-badge-transfer-info,.fm-status-badge-info-secondary{background-color:var(--fm-color-system-blue-100);color:var(--fm-color-system-blue-400)}.fm-status-badge-success-secondary{background-color:var(--fm-color-system-green-100);color:var(--fm-color-system-green-400)}.fm-status-badge-error{border-width:2px;--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}@media print{.print-mode .overflow-auto{overflow:visible!important}}
@@ -1,4 +1,4 @@
1
- import { a7 as m, u, c as b, aq as w, aB as v, aC as $ } from "./app-C_ybIeQL.js";
1
+ import { a7 as m, u, c as b, aq as w, aB as v, aC as $ } from "./app-ZxL49u29.js";
2
2
  import { useCoreStore as c } from "@feedmepos/mf-common";
3
3
  import { defineStore as A } from "pinia";
4
4
  import { ref as l, computed as d } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { defineStore as y } from "pinia";
2
- import { a as S, w as b } from "./app-C_ybIeQL.js";
2
+ import { a as S, w as b } from "./app-ZxL49u29.js";
3
3
  import { useDialog as A } from "@feedmepos/ui-library";
4
4
  import { useI18n as I } from "@feedmepos/mf-common";
5
5
  const h = y(
@@ -1,4 +1,4 @@
1
- import { a as P, w as g } from "./app-C_ybIeQL.js";
1
+ import { a as P, w as g } from "./app-ZxL49u29.js";
2
2
  import { useDialog as E } from "@feedmepos/ui-library";
3
3
  function B() {
4
4
  const u = P(), _ = E();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-inventory-portal",
3
- "version": "1.2.17-dev.1",
3
+ "version": "1.2.18",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -43,10 +43,10 @@
43
43
  "vue-i18n": "^10.0.5",
44
44
  "vue-router": "^4.4.0",
45
45
  "xlsx": "^0.18.5",
46
- "@feedmepos/inventory-core-2": "^2.0.0",
47
46
  "@feedmepos/inventory-core": "^1.0.1-dev.2",
48
- "@feedmepos/inventory-core-js": "^1.0.1",
47
+ "@feedmepos/inventory-core-2": "^2.0.0",
49
48
  "@feedmepos/inventory-core-dart": "^1.0.0",
49
+ "@feedmepos/inventory-core-js": "^1.0.1",
50
50
  "@feedmepos/netsuite-core": "^1.0.0",
51
51
  "@feedmepos/zod-inventory": "^1.0.12"
52
52
  },