@feedmepos/mf-inventory-portal 1.0.22 → 1.0.24-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 (64) hide show
  1. package/dist/{App-Cm-J0Og-.js → App-CFXH6Thq.js} +2 -2
  2. package/dist/{ApprovalView-BhO_g8Nv.js → ApprovalView-DOY_naPs.js} +2 -2
  3. package/dist/{BindingsDialog--6Lpb9jF.js → BindingsDialog-CJ4l2930.js} +2 -2
  4. package/dist/{BindingsPicker-zVDraAOz.js → BindingsPicker-Cqz2NzKk.js} +1 -1
  5. package/dist/{BindingsTable-BDX10BNR.js → BindingsTable-CRu-YovM.js} +1 -1
  6. package/dist/{ClosingDraftView-DGIJ7LG-.js → ClosingDraftView-ClExGlUw.js} +2 -2
  7. package/dist/{ClosingTemplateView-DtRHcW9E.js → ClosingTemplateView-DfIgbv2y.js} +2 -2
  8. package/dist/{DeliveryOrderPrintPreview-D6IWwxjF.js → DeliveryOrderPrintPreview-CEUz-r7t.js} +1 -1
  9. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-Q7OlZ7Wm.js +220 -0
  10. package/dist/{FmMultiselectDialog-D-o5vkyE.js → FmMultiselectDialog-D1qcXzLm.js} +1 -1
  11. package/dist/FmUnitInput.vue_vue_type_script_setup_true_lang-dqJr8hqd.js +357 -0
  12. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-5BVrMAHJ.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-CvEYm6Sm.js} +1 -1
  13. package/dist/{IngredientGroupView-nm89Mhcl.js → IngredientGroupView-BqN3c-py.js} +2 -2
  14. package/dist/{IngredientsView-BbdQPgSj.js → IngredientsView-DIOzst6V.js} +5 -5
  15. package/dist/{IntegrationView-BhWzXIwC.js → IntegrationView-DQvlxOiW.js} +5 -5
  16. package/dist/{InventoryBindingForm-DUXi267X.js → InventoryBindingForm-bVaAGTni.js} +1 -1
  17. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-OEbKZaki.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-C5SGHXlr.js} +3 -3
  18. package/dist/{InventoryBindingSummary-n8MXgi9j.js → InventoryBindingSummary-DcdrPfhQ.js} +1 -1
  19. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-Dh9yMlwd.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-eSr-BwSH.js} +1 -1
  20. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-DJZQPLJd.js → PremiumBadge.vue_vue_type_script_setup_true_lang-B4WUlaZG.js} +37 -37
  21. package/dist/{PublishView-CStCO6jq.js → PublishView-B3xkfjqK.js} +2 -2
  22. package/dist/PurchaseOrderPrintPreview-B2Vp0mbh.js +154 -0
  23. package/dist/ReceiveRequestView-BdgOuy__.js +2696 -0
  24. package/dist/{RecipeView-CASjzWjN.js → RecipeView-9U07MY9I.js} +4 -4
  25. package/dist/{StockView-DAE47Gar.js → StockView-EFLHTymu.js} +7 -7
  26. package/dist/{SupplierView-DJ5sjFCK.js → SupplierView-tdqOBz3z.js} +4 -4
  27. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang--vnYNYzo.js +2194 -0
  28. package/dist/{TransferTemplateView-CzwyWTVH.js → TransferTemplateView-IjKF_HOB.js} +15 -10
  29. package/dist/{UnitView-BOlT6vPf.js → UnitView-CEBtj78g.js} +3 -3
  30. package/dist/{WarehouseView-BZgFhrzl.js → WarehouseView-l0uJqa6N.js} +1 -1
  31. package/dist/api/inventory.d.ts +66 -66
  32. package/dist/api/stock-estimate.d.ts +1 -1
  33. package/dist/{app-BLpmMivS.js → app-Cz-sI8Q3.js} +6872 -7289
  34. package/dist/app.js +1 -1
  35. package/dist/{decimal-BWudFkD2.js → decimal-D2a6vMQg.js} +1 -1
  36. package/dist/{feature-w74Z2HB1.js → feature-0qdIGGkt.js} +83 -92
  37. package/dist/{format-unit-display-OsvRSLdg.js → format-unit-display-bvlZKOKT.js} +2 -2
  38. package/dist/{index-6YcqoCF8.js → index-BFDc_JOu.js} +2 -2
  39. package/dist/{index-CWbNqLx3.js → index-qLkEUKBF.js} +1 -1
  40. package/dist/{stock-Dm374eGL.js → stock-CUyyRP3k.js} +1 -1
  41. package/dist/stores/inventory.d.ts +66 -66
  42. package/dist/stores/stock-estimate.d.ts +1 -1
  43. package/dist/style.css +1 -1
  44. package/dist/{supplier-BXTp-bVu.js → supplier-BOtBK9qG.js} +2 -2
  45. package/dist/tsconfig.app.tsbuildinfo +1 -1
  46. package/dist/types/forecast.d.ts +6 -0
  47. package/dist/{use-ingredient-select-dialog-B6T6j_P1.js → use-ingredient-select-dialog-CAixHfY4.js} +1 -1
  48. package/dist/{use-inventory-binding-dialog-Diszlqrb.js → use-inventory-binding-dialog-CVuSkCPx.js} +1 -1
  49. package/dist/views/adjustment-template/wastage-template/actions.d.ts +12 -12
  50. package/dist/views/adjustment-template/wastage-template/form/WastageTemplateItemTable.vue.d.ts +2 -2
  51. package/dist/views/adjustment-template/wastage-template/form/useAdjustmentTemplateItems.d.ts +1 -1
  52. package/dist/views/adjustment-template/wastage-template/table.d.ts +12 -12
  53. package/dist/views/ingredients/helper/calculate-default-cost.d.ts +3 -3
  54. package/dist/views/receive-request/components/transfer-form/components/ForecastStock.vue.d.ts +9 -0
  55. package/dist/views/receive-request/components/transfer-form/composables/use-transfer-items.d.ts +2 -0
  56. package/dist/views/receive-request/helper/print-po.d.ts +7 -1
  57. package/dist/views/receive-request/print-preview/PurchaseOrderPrintPreview.vue.d.ts +1 -0
  58. package/dist/{vue-i18n-CpE-ShBy.js → vue-i18n-Ci7cic8e.js} +494 -494
  59. package/package.json +1 -1
  60. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DEHSBeuj.js +0 -211
  61. package/dist/FmUnitInput.vue_vue_type_script_setup_true_lang-CKCxgh1z.js +0 -338
  62. package/dist/PurchaseOrderPrintPreview-DsemRJqd.js +0 -154
  63. package/dist/ReceiveRequestView-hSmZkcXF.js +0 -2582
  64. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-B0V3redE.js +0 -2181
@@ -1,8 +1,8 @@
1
1
  import { ref as U, onUnmounted as F, defineComponent as h, watch as P, onMounted as w, computed as R, resolveComponent as b, openBlock as S, createElementBlock as I, unref as v, createVNode as _, createElementVNode as p, toDisplayString as G, createBlock as x, createCommentVNode as k } from "vue";
2
- import { u as M, a as D, b as H, R as e, g as s, c as W } from "./app-BLpmMivS.js";
2
+ import { u as M, a as D, b as H, R as e, g as s, c as W } from "./app-Cz-sI8Q3.js";
3
3
  import { useCoreStore as A, useI18n as B } from "@feedmepos/mf-common";
4
4
  import { useRouter as L, useRoute as K } from "vue-router";
5
- import { u as O } from "./feature-w74Z2HB1.js";
5
+ import { u as O } from "./feature-0qdIGGkt.js";
6
6
  import { u as $ } from "./useTabStorage-BkIVScW_.js";
7
7
  import { u as Q } from "./googlemap-Dm8ERVai.js";
8
8
  import "./array-Ca8T3f_G.js";
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as le, ref as D, watch as ue, computed as d, resolveComponent as ie, openBlock as x, createBlock as W, unref as n, withCtx as k, createElementVNode as i, normalizeClass as ce, createVNode as u, normalizeStyle as pe, toDisplayString as de, createElementBlock as me, createCommentVNode as fe, Teleport as ve, mergeProps as he } from "vue";
2
- import { u as _e, b as ge, aA as b, aL as ye, ad as X, z as De, N as be, H as Oe, _ as Re, B as Se, C as xe, E as O } from "./app-BLpmMivS.js";
3
- import { a as ke, P as q, b as qe, _ as we } from "./TransferDetails.vue_vue_type_script_setup_true_lang-B0V3redE.js";
2
+ import { u as _e, b as ge, aA as b, aL as ye, ad as X, z as De, N as be, H as Oe, _ as Re, B as Se, C as xe, E as O } from "./app-Cz-sI8Q3.js";
3
+ import { a as ke, P as q, b as qe, _ as we } from "./TransferDetails.vue_vue_type_script_setup_true_lang--vnYNYzo.js";
4
4
  import { useBreakpoints as Pe } from "@feedmepos/ui-library";
5
5
  import { useI18n as Ne } from "@feedmepos/mf-common";
6
6
  const Te = { class: "flex flex-col py-8" }, Ae = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, Ce = { class: "fm-typo-en-body-lg-600 text-fm-color-typo-primary line-clamp-1" }, Le = { class: "fm-typo-en-body-md-400 text-fm-color-typo-primary line-clamp-1" }, Ve = {
@@ -1,6 +1,6 @@
1
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-OEbKZaki.js";
3
- import { a as L, bc as S } from "./app-BLpmMivS.js";
2
+ import { _ as V } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-C5SGHXlr.js";
3
+ import { a as L, bc as S } from "./app-Cz-sI8Q3.js";
4
4
  const U = {
5
5
  key: 0,
6
6
  class: "flex justify-end gap-8 items-center"
@@ -1,5 +1,5 @@
1
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 { a as M, bc as x, a1 as z } from "./app-BLpmMivS.js";
2
+ import { a as M, bc as x, a1 as z } from "./app-Cz-sI8Q3.js";
3
3
  const F = {
4
4
  key: 0,
5
5
  class: "flex flex-col gap-16"
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as x, ref as r, provide as C, computed as g, resolveComponent as h, openBlock as l, createElementBlock as u, createStaticVNode as F, Fragment as L, 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, bc as R } from "./app-BLpmMivS.js";
2
+ import { F as b, a as P, bc as R } from "./app-Cz-sI8Q3.js";
3
3
  import "@feedmepos/ui-library";
4
4
  import "@feedmepos/mf-common";
5
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({
@@ -1,9 +1,9 @@
1
1
  import { defineComponent as $e, ref as z, onMounted as Ie, computed as E, resolveComponent as I, openBlock as x, createElementBlock as T, Fragment as K, createTextVNode as pe, createBlock as Q, withCtx as O, createElementVNode as o, toDisplayString as V, unref as h, createVNode as w, createCommentVNode as Z, h as F, reactive as Ze, watch as Qe, isRef as Ue, normalizeClass as ve, renderList as he, normalizeStyle as Ee, Teleport as Je, mergeProps as Xe } from "vue";
2
- import { a2 as et, u as je, ad as tt, ak as at, al as G, l as nt, O as Be, i as H, t as ot, Q as De, q as st, r as rt, s as lt, am as He, an as Le, a8 as ze, ao as ne, ae as ct, aj as ae, $ as Ne, D as Me, h as ke, f as it, e as ut, a as dt, z as mt, _ as ft, B as pt, C as vt, E as we } from "./app-BLpmMivS.js";
2
+ import { a2 as et, u as je, ad as tt, ak as at, al as G, l as nt, O as Be, i as H, t as ot, Q as De, q as st, r as rt, s as lt, am as He, an as Le, a8 as ze, ao as ne, ae as ct, aj as ae, $ as Ne, D as Me, h as ke, f as it, e as ut, a as dt, z as mt, _ as ft, B as pt, C as vt, E as we } from "./app-Cz-sI8Q3.js";
3
3
  import { useCoreStore as yt, useI18n as Ve } from "@feedmepos/mf-common";
4
4
  import { useSnackbar as Te, useDialog as gt, useProxiedModel as bt, components as fe, useBreakpoints as ht } from "@feedmepos/ui-library";
5
5
  import { defineStore as Oe, storeToRefs as Dt } from "pinia";
6
- import { a as Ye, u as Ke } from "./stock-Dm374eGL.js";
6
+ import { a as Ye, u as Ke } from "./stock-CUyyRP3k.js";
7
7
  import { E as xt } from "./empty-placeholder-wf6-BWE8.js";
8
8
  const Fe = et((n, s) => {
9
9
  function e() {
@@ -1,9 +1,9 @@
1
1
  import { ref as D, h as F, defineComponent as j, resolveComponent as R, openBlock as T, createElementBlock as I, createElementVNode as _, normalizeClass as Y, createTextVNode as Fe, toDisplayString as C, unref as v, createCommentVNode as G, createVNode as $, withCtx as P, Fragment as H, renderList as J, computed as E, watch as Re, createSlots as Pe, createBlock as V, isRef as Oe, normalizeStyle as Ye, Teleport as Ke, normalizeProps as Ge, guardReactiveProps as Je, mergeProps as We } from "vue";
2
- import { a2 as qe, u as le, ae as Qe, D as Se, h as N, f as Xe, e as Ae, af as oe, r as Ze, ag as Ee, s as Ue, a as ae, b as et, v as tt, w as Ve, x as nt, y as ot, d as z, E as O, J as st, ah as lt, l as at, C as Ne, A as rt, ai as it, aj as ne, z as ct, _ as mt, B as ut } from "./app-BLpmMivS.js";
2
+ import { a2 as qe, u as le, ae as Qe, D as Se, h as N, f as Xe, e as Ae, af as oe, r as Ze, ag as Ee, s as Ue, a as ae, b as et, v as tt, w as Ve, x as nt, y as ot, d as z, E as O, J as st, ah as lt, l as at, C as Ne, A as rt, ai as it, aj as ne, z as ct, _ as mt, B as ut } from "./app-Cz-sI8Q3.js";
3
3
  import { useCoreStore as re, useI18n as B } from "@feedmepos/mf-common";
4
4
  import { useDialogChild as dt, useSnackbar as Z, useDialog as ie, FmButtonVariant as De, components as L, useProxiedModel as pt, useBreakpoints as ft } from "@feedmepos/ui-library";
5
5
  import { defineStore as Be, storeToRefs as Le } from "pinia";
6
- import { u as vt } from "./use-ingredient-select-dialog-B6T6j_P1.js";
6
+ import { u as vt } from "./use-ingredient-select-dialog-CAixHfY4.js";
7
7
  const ee = qe((i, o) => {
8
8
  function s() {
9
9
  var t;
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as x, computed as f, ref as h, onMounted as g, openBlock as u, createElementBlock as i, createElementVNode as t, createTextVNode as n, toDisplayString as e, createCommentVNode as d, Fragment as o, renderList as p, normalizeClass as _ } from "vue";
2
2
  import { useRoute as k } from "vue-router";
3
- import { av as y, ai as w } from "./app-BLpmMivS.js";
3
+ import { av as y, ai as w } from "./app-Cz-sI8Q3.js";
4
4
  const c = { class: "purchase-box" }, A = { valign: "bottom" }, N = { class: "sub-header" }, O = ["src"], P = { style: { "padding-left": "10px" } }, C = { class: "address" }, D = { class: "text-right" }, R = {
5
5
  key: 0,
6
6
  class: "subtitle"
@@ -0,0 +1,220 @@
1
+ import { i as C, t as R, at as w, u as B, ax as E, aI as D, aJ as H, aK as U } from "./app-Cz-sI8Q3.js";
2
+ import { u as z } from "./supplier-BOtBK9qG.js";
3
+ import { P as T } from "./format-unit-display-bvlZKOKT.js";
4
+ import { computed as f, defineComponent as x, mergeModels as j, useModel as q, ref as W, resolveComponent as V, openBlock as k, createElementBlock as O, normalizeStyle as $, createElementVNode as I, createVNode as J, withCtx as K, createBlock as g, createCommentVNode as N, Fragment as Q, renderList as X, unref as M } from "vue";
5
+ function Y(t, l, i) {
6
+ var s;
7
+ if (!!l.measurement === !!i && ((s = l.measurement) == null ? void 0 : s.id) === i)
8
+ return l;
9
+ if (!i)
10
+ return {
11
+ costPerUnit: l.costPerUnit
12
+ };
13
+ const n = t.measurements.find((p) => p.id === i);
14
+ return n ? {
15
+ costPerUnit: l.costPerUnit,
16
+ measurement: n
17
+ } : {
18
+ costPerUnit: l.costPerUnit
19
+ };
20
+ }
21
+ function se(t, l, i, u) {
22
+ var P, _, o;
23
+ const r = (o = (_ = (P = u == null ? void 0 : u.supplier) == null ? void 0 : P.supplyItems) == null ? void 0 : _.find(
24
+ (e) => e.skuId === t._id
25
+ )) == null ? void 0 : o.defaultCost;
26
+ if (u != null && u.manualTotalCost)
27
+ return {
28
+ cost: u.manualTotalCost,
29
+ skuDefaultCost: t.defaultCost ?? void 0,
30
+ supplierOverrideCost: r ?? void 0
31
+ };
32
+ const n = t.defaultCost ? Y(t.unit, t.defaultCost, t.trackingMeasurement) : void 0, s = r ?? n, p = s == null ? void 0 : s.costPerUnit, v = p ? s != null && s.measurement ? +C(p) / +C(s == null ? void 0 : s.measurement.conversion) : +C(p) : void 0, b = v ? i ? v * +C(i.conversion) : v : void 0, h = b ? +C(l) * b : void 0;
33
+ return {
34
+ cost: h ? {
35
+ ...R(h ?? 0, 2),
36
+ currency: w()
37
+ } : {
38
+ amount: 0,
39
+ precision: 0,
40
+ currency: w()
41
+ },
42
+ skuDefaultCost: t.defaultCost ?? void 0,
43
+ supplierOverrideCost: r ?? void 0
44
+ };
45
+ }
46
+ function F(t) {
47
+ return D.parse(t);
48
+ }
49
+ function L(t) {
50
+ return {
51
+ _id: t.doc._id,
52
+ internal: t.type,
53
+ contactName: t.doc.profile.name,
54
+ name: t.doc.profile.name ?? "",
55
+ email: t.doc.profile.email,
56
+ phoneNumber: t.doc.profile.phoneNo,
57
+ registrationNumber: t.doc.profile.regNo,
58
+ address: t.doc.profile.address ?? {
59
+ line1: "",
60
+ state: "",
61
+ city: "",
62
+ postcode: "",
63
+ country: ""
64
+ }
65
+ };
66
+ }
67
+ function ne(t, l, i = !1, u = !1) {
68
+ const r = z(), n = B();
69
+ n.watchLocation(async () => {
70
+ var y;
71
+ await r.readSuppliers();
72
+ const o = t();
73
+ if ((y = o.supplier) != null && y._id) return;
74
+ const e = u ? r.suppliers[0] : r.businessSuppliers[0], a = (i ? n.locations.filter((d) => d.doc._id !== n.currentLocation.doc._id) : n.locations)[0];
75
+ l({
76
+ ...o,
77
+ supplier: e ? F(e) : a ? L(a) : o.supplier
78
+ });
79
+ });
80
+ const s = f(
81
+ () => {
82
+ var o, e;
83
+ return typeof ((e = (o = t()) == null ? void 0 : o.supplier) == null ? void 0 : e.internal) == "string" ? T.TRANSFER : T.PURCHASE;
84
+ }
85
+ ), p = f({
86
+ get() {
87
+ var o, e;
88
+ return (e = (o = t()) == null ? void 0 : o.supplier) == null ? void 0 : e._id;
89
+ },
90
+ set(o) {
91
+ const e = t() ?? {};
92
+ if (s.value === T.PURCHASE) {
93
+ const S = (u ? r.suppliers : r.businessSuppliers).find((A) => A._id === o);
94
+ l({
95
+ ...e,
96
+ supplier: S ? F(S) : e.supplier
97
+ });
98
+ return;
99
+ }
100
+ const y = (i ? n.locations.filter((d) => d.doc._id !== n.currentLocation.doc._id) : n.locations).find((d) => d.doc._id === o);
101
+ l({
102
+ ...e,
103
+ supplier: y ? L(y) : e.supplier
104
+ });
105
+ }
106
+ }), v = f(() => r.locationSuppliers.map(F)), b = f(() => r.businessSuppliers.map(F)), h = f(() => {
107
+ const o = [...v.value], e = [...b.value];
108
+ return u ? [...e, ...o] : e;
109
+ }), c = f(() => {
110
+ var m;
111
+ const o = ((m = n._currentLocation) == null ? void 0 : m.type) === E.warehouse;
112
+ return (i ? n.locations.filter((a) => a.doc._id !== n.currentLocation.doc._id) : n.locations).filter((a) => o || a.acceptRequest).map(L);
113
+ }), P = f(() => {
114
+ if (s.value === T.PURCHASE) {
115
+ const e = v.value.map((a) => ({
116
+ label: a.name,
117
+ value: a._id
118
+ })), m = b.value.map((a) => ({
119
+ label: a.name,
120
+ sublabel: "Business supplier",
121
+ value: a._id
122
+ }));
123
+ return u ? [...e, ...m] : m;
124
+ }
125
+ return c.value.map((e) => ({
126
+ label: e.name,
127
+ sublabel: e.internal ? `${e.internal}` : void 0,
128
+ value: e._id
129
+ }));
130
+ }), _ = f(() => {
131
+ var a, y;
132
+ const o = (y = (a = t()) == null ? void 0 : a.supplier) == null ? void 0 : y._id;
133
+ if (s.value === T.PURCHASE) {
134
+ const d = r.suppliers.find((S) => S._id === o);
135
+ return d ? F(d) : null;
136
+ }
137
+ const m = n.locations.find((d) => d.doc._id);
138
+ return m ? L(m) : null;
139
+ });
140
+ return {
141
+ transferLocationModel: p,
142
+ transferLocationOptions: P,
143
+ locationOptionsTypePurchase: h,
144
+ locationOptionsTypePurchaseLocationLevel: v,
145
+ locationOptionsTypeTransfer: c,
146
+ selectedLocation: _
147
+ };
148
+ }
149
+ const Z = { class: "overflow-y-auto h-full pb-8" }, ie = /* @__PURE__ */ x({
150
+ __name: "FmFilterableMenuOptions",
151
+ props: /* @__PURE__ */ j({
152
+ modelValue: {},
153
+ maxHeight: {},
154
+ width: {},
155
+ handleItemChange: { type: Function },
156
+ items: {},
157
+ options: {}
158
+ }, {
159
+ search: {},
160
+ searchModifiers: {}
161
+ }),
162
+ emits: ["update:search"],
163
+ setup(t) {
164
+ const l = t, i = q(t, "search"), u = f(
165
+ () => new H(l.items, ["label", "sublabel"], l.options)
166
+ ), r = f(() => u.value.search(i.value)), n = W();
167
+ return console.log({ stickyRef: n }), (s, p) => {
168
+ const v = V("FmButton"), b = V("FmTextField"), h = V("FmMenuItem");
169
+ return k(), O("div", {
170
+ class: "relative",
171
+ style: $({ width: s.width })
172
+ }, [
173
+ I("div", {
174
+ class: "sticky top-0 bg-white mb-8",
175
+ ref_key: "stickyRef",
176
+ ref: n
177
+ }, [
178
+ J(b, {
179
+ modelValue: i.value,
180
+ "onUpdate:modelValue": p[1] || (p[1] = (c) => i.value = c),
181
+ placeholder: "Filter options"
182
+ }, {
183
+ append: K(() => [
184
+ i.value ? (k(), g(v, {
185
+ key: 0,
186
+ variant: "tertiary",
187
+ "prepend-icon": "close",
188
+ onClick: p[0] || (p[0] = (c) => i.value = "")
189
+ })) : N("", !0)
190
+ ]),
191
+ _: 1
192
+ }, 8, ["modelValue"])
193
+ ], 512),
194
+ I("div", Z, [
195
+ (k(!0), O(Q, null, X(r.value, (c, P) => (k(), g(h, {
196
+ key: P,
197
+ label: c.label,
198
+ sublabel: c.sublabel,
199
+ "model-value": M(U)(s.modelValue, c.value),
200
+ onClick: () => s.handleItemChange(M(U)(s.modelValue, c.value), c),
201
+ onVnodeMounted: (_) => {
202
+ var o, e;
203
+ return M(U)(s.modelValue, c.value) && ((o = _.el) == null || o.scrollIntoView({ behavior: "instant", block: "end" }), (e = _.el) == null || e.scrollIntoView({ behavior: "smooth", block: "center" })), void 0;
204
+ }
205
+ }, null, 8, ["label", "sublabel", "model-value", "onClick", "onVnodeMounted"]))), 128)),
206
+ r.value.length ? N("", !0) : (k(), g(h, {
207
+ key: 0,
208
+ disabled: "",
209
+ label: "No options available"
210
+ }))
211
+ ])
212
+ ], 4);
213
+ };
214
+ }
215
+ });
216
+ export {
217
+ ie as _,
218
+ se as c,
219
+ ne as u
220
+ };
@@ -1,7 +1,7 @@
1
1
  import { defineStore as p } from "pinia";
2
2
  import { useDialog as y } from "@feedmepos/ui-library";
3
3
  import { useI18n as v } from "@feedmepos/mf-common";
4
- import { a1 as a } from "./app-BLpmMivS.js";
4
+ import { a1 as a } from "./app-Cz-sI8Q3.js";
5
5
  import { h as S } from "vue";
6
6
  const w = p("inventoryMultiSelectDialog", () => {
7
7
  const l = y(), { t: n } = v();
@@ -0,0 +1,357 @@
1
+ import { defineComponent as ie, mergeModels as E, useModel as ae, computed as v, ref as B, watch as W, onBeforeUnmount as le, inject as ue, resolveComponent as b, openBlock as d, createElementBlock as y, createElementVNode as u, createVNode as h, withCtx as F, renderSlot as G, normalizeClass as O, toDisplayString as _, withDirectives as re, vModelText as me, createCommentVNode as I, createTextVNode as ce, createBlock as U, Fragment as de, renderList as pe } from "vue";
2
+ import { P as D, I as R, X as j, Q as fe, i as M, aG as ve, t as be, bf as ye, O as he, an as Me, aE as ge, aD as xe } from "./app-Cz-sI8Q3.js";
3
+ import "@feedmepos/ui-library";
4
+ function H() {
5
+ return {
6
+ amount: D.reset()
7
+ };
8
+ }
9
+ function X() {
10
+ return function(f) {
11
+ return R()(f.amountAsString);
12
+ };
13
+ }
14
+ function $e(l) {
15
+ return function(t) {
16
+ return R()(t.amountAsString) !== !0 ? !0 : +t.amountAsString < l ? `Must be at least ${l}` : !0;
17
+ };
18
+ }
19
+ function qe(l) {
20
+ return function(t) {
21
+ return R()(t.amountAsString) !== !0 ? !0 : +t.amountAsString > l ? `Must be at most ${l}` : !0;
22
+ };
23
+ }
24
+ function Q(l, f = !1) {
25
+ return function(c) {
26
+ const s = X()(c);
27
+ if (s != !0)
28
+ return f ? s : !0;
29
+ const A = typeof l == "number" ? l : j(l, c.modelValue.measurement);
30
+ return fe(+c.amountAsString).precision > A ? `Cannot exceed precision more than ${M({
31
+ amount: 1,
32
+ precision: A
33
+ })}` : !0;
34
+ };
35
+ }
36
+ function ze(l) {
37
+ const f = ve(l);
38
+ return function(c) {
39
+ return f(c.modelValue.amount);
40
+ };
41
+ }
42
+ const Fe = { class: "flex flex-col" }, _e = { class: "flex flex-col" }, Ae = { class: "flex-1" }, Pe = { class: "flex items-center gap-4" }, ke = { class: "flex-1 flex gap-4" }, Be = { class: "shrink-0 grow basis-2/5" }, Ie = {
43
+ key: 0,
44
+ class: "text-fm-color-typo-secondary"
45
+ }, Ue = {
46
+ key: 0,
47
+ class: "flex"
48
+ }, De = { class: "line-clamp-1 text-ellipsis break-all" }, Re = { class: "flex items-center gap-4" }, we = { class: "flex items-center" }, Ce = { class: "line-clamp-1 text-ellipsis break-all" }, Se = { class: "max-w-[200px] flex flex-col gap-[1px]" }, Ne = {
49
+ key: 1,
50
+ class: "flex flex-col gap-4 pl-8 shrink-0"
51
+ }, Ve = {
52
+ class: "flex items-center",
53
+ style: { "pointer-events": "none" }
54
+ }, Te = {
55
+ class: "flex items-center",
56
+ style: { "pointer-events": "none" }
57
+ }, Ee = /* @__PURE__ */ ie({
58
+ __name: "FmUnitInput",
59
+ props: /* @__PURE__ */ E({
60
+ modelValue: {},
61
+ unit: {},
62
+ rules: {},
63
+ zIndex: {},
64
+ applyDefaultRules: { type: Boolean },
65
+ placement: {},
66
+ separator: {},
67
+ precision: {},
68
+ convertAmountOnChangeUnit: { type: Boolean },
69
+ formatMinimumPrecision: {},
70
+ disableUnit: { type: Boolean },
71
+ stepperOnly: { type: Boolean },
72
+ stepper: {},
73
+ placeholder: {},
74
+ minLength: {},
75
+ maxLength: {},
76
+ inputmode: {},
77
+ type: {},
78
+ readonly: { type: Boolean },
79
+ labelMark: {},
80
+ prependIcon: {},
81
+ appendIcon: {},
82
+ showValidBorder: { type: Boolean },
83
+ labelInfo: {},
84
+ showWordCount: { type: Boolean },
85
+ invalid: { type: Boolean },
86
+ autofocus: { type: Boolean },
87
+ formatter: { type: Function },
88
+ decimal: {},
89
+ datalist: {},
90
+ shiftDatalist: { type: Boolean },
91
+ datalistMaxHeight: {},
92
+ datalistMinHeight: {},
93
+ offsetDatalist: {},
94
+ datalistPlacement: {},
95
+ datalistZIndex: {},
96
+ datalistWidth: {},
97
+ label: {},
98
+ disabled: { type: Boolean },
99
+ focused: { type: Boolean },
100
+ helperText: {},
101
+ helperState: {}
102
+ }, {
103
+ modelValue: {},
104
+ modelModifiers: {}
105
+ }),
106
+ emits: /* @__PURE__ */ E(["update:amount", "update:measurement"], ["update:modelValue"]),
107
+ setup(l, { emit: f }) {
108
+ const t = l, c = f, s = ae(l, "modelValue"), A = R(), w = v(() => {
109
+ var n;
110
+ return j(t.unit, (n = s.value) == null ? void 0 : n.measurement);
111
+ }), p = B((() => {
112
+ var o;
113
+ const e = ((o = s.value) == null ? void 0 : o.amount) ?? D.reset(), n = ge(e), i = t.formatMinimumPrecision ?? n.precision, a = xe(n, i);
114
+ return M(a);
115
+ })());
116
+ let x = null;
117
+ W(p, (e) => {
118
+ x && clearTimeout(x), x = setTimeout(() => {
119
+ var r;
120
+ const n = A(e), i = t.precision ?? w.value, o = typeof t.formatMinimumPrecision == "number" && t.formatMinimumPrecision > i ? t.formatMinimumPrecision : i;
121
+ if (n == !0) {
122
+ const g = be(+e, o);
123
+ ((r = s.value) == null ? void 0 : r.amount) !== g && (s.value = {
124
+ ...s.value,
125
+ amount: g
126
+ });
127
+ }
128
+ c("update:amount", e);
129
+ }, 500);
130
+ }), le(() => {
131
+ x && clearTimeout(x);
132
+ });
133
+ const J = Symbol.for("fm:form-state"), C = ue(J, null), P = v(() => t.disabled ?? (C == null ? void 0 : C.getDisabled()) ?? !1), K = B(), S = B(!1), $ = B(!1), Y = v(() => S.value || $.value), ee = v(() => {
134
+ var a;
135
+ const e = t.unit.measurements.filter((o) => !o.name.toLocaleLowerCase().includes("inactive")).filter((o) => o.abbrev !== t.unit.abbrev || +M(o.conversion) != 1), n = ye.groupBy(
136
+ e,
137
+ (o) => `${o.abbrev}${M(o.conversion)}`
138
+ ), i = Object.values(n).map((o) => o[0]);
139
+ return [
140
+ {
141
+ label: (a = t.unit) == null ? void 0 : a.abbrev,
142
+ value: null,
143
+ isBaseUnit: !0
144
+ },
145
+ ...i.map((o) => ({
146
+ label: o.abbrev,
147
+ value: o.id,
148
+ isBaseUnit: !1
149
+ }))
150
+ ];
151
+ }), N = v({
152
+ get() {
153
+ var e, n;
154
+ return ((n = (e = s.value) == null ? void 0 : e.measurement) == null ? void 0 : n.id) ?? null;
155
+ },
156
+ set(e) {
157
+ if (e == null)
158
+ s.value = {
159
+ ...s.value ?? H(),
160
+ measurement: null
161
+ }, c("update:measurement", null);
162
+ else {
163
+ const n = t.unit.measurements.find((i) => i.id === e) ?? null;
164
+ s.value = {
165
+ ...s.value ?? H(),
166
+ measurement: n
167
+ }, c("update:measurement", n);
168
+ }
169
+ }
170
+ });
171
+ W(N, (e, n) => {
172
+ var m;
173
+ if (!t.convertAmountOnChangeUnit)
174
+ return;
175
+ const i = ((m = s.value) == null ? void 0 : m.amount) ?? D.reset(), a = t.unit.measurements.find((k) => k.id === n) ?? null, o = t.unit.measurements.find((k) => k.id === e) ?? null, r = a ? he(i, a.conversion) : i, g = o ? Me(r, o.conversion) : r, T = j(t.unit, o), L = D.convertPrecision({
176
+ value: g,
177
+ precision: T
178
+ });
179
+ p.value = M(L);
180
+ });
181
+ const q = v(() => {
182
+ var e;
183
+ return !((e = s.value) != null && e.measurement);
184
+ }), V = v(() => {
185
+ var e, n;
186
+ return ((n = (e = s.value) == null ? void 0 : e.measurement) == null ? void 0 : n.abbrev) ?? t.unit.abbrev;
187
+ }), te = v(
188
+ () => {
189
+ var e;
190
+ return ((e = t.rules) == null ? void 0 : e.map(
191
+ (n) => (i) => typeof n == "function" ? n(i) : n
192
+ )) ?? [];
193
+ }
194
+ ), ne = v(() => [...t.applyDefaultRules ? [
195
+ X(),
196
+ typeof t.precision == "number" ? Q(t.precision) : Q(t.unit)
197
+ ] : [], ...te.value]);
198
+ function z(e) {
199
+ const n = t.precision ?? w.value, a = typeof t.formatMinimumPrecision == "number" && t.formatMinimumPrecision > n ? t.formatMinimumPrecision : n, o = e.toFixed(a), r = o.includes(".") ? o.replace(/0+$/, "") : o;
200
+ return r.endsWith(".") ? r.slice(0, r.length - 1) : r;
201
+ }
202
+ function oe() {
203
+ if (!t.stepper)
204
+ return;
205
+ const e = +p.value + +M(t.stepper);
206
+ p.value = z(e);
207
+ }
208
+ function se() {
209
+ if (!t.stepper)
210
+ return;
211
+ const e = +p.value - +M(t.stepper);
212
+ p.value = z(e);
213
+ }
214
+ return (e, n) => {
215
+ const i = b("FmLabel"), a = b("FmIcon"), o = b("FmMenuItem"), r = b("FmMenu"), g = b("FmTooltip"), T = b("FmField"), L = b("FmFormGroup");
216
+ return d(), y("div", Fe, [
217
+ u("div", _e, [
218
+ u("div", Ae, [
219
+ h(i, {
220
+ label: e.label,
221
+ disabled: e.disabled,
222
+ required: e.labelMark === "required",
223
+ optional: e.labelMark === "optional"
224
+ }, null, 8, ["label", "disabled", "required", "optional"])
225
+ ]),
226
+ h(T, { focused: Y.value }, {
227
+ default: F(() => [
228
+ u("div", Pe, [
229
+ G(e.$slots, "prepend"),
230
+ u("div", ke, [
231
+ u("div", Be, [
232
+ e.stepperOnly ? (d(), y("span", {
233
+ key: 0,
234
+ class: O({
235
+ "fm-text-field--input fm-typo-en-body-lg-400": !0,
236
+ "text-fm-color-typo-primary": !P.value,
237
+ "text-fm-color-typo-disabled": P.value
238
+ })
239
+ }, _(p.value), 3)) : re((d(), y("input", {
240
+ key: 1,
241
+ type: "text",
242
+ ref_key: "inputRef",
243
+ ref: K,
244
+ onFocus: n[0] || (n[0] = () => S.value = !0),
245
+ onBlur: n[1] || (n[1] = () => S.value = !1),
246
+ "onUpdate:modelValue": n[2] || (n[2] = (m) => p.value = m),
247
+ class: O({
248
+ "fm-text-field--input fm-typo-en-body-lg-400": !0,
249
+ "text-fm-color-typo-primary": !P.value,
250
+ "text-fm-color-typo-disabled": P.value
251
+ })
252
+ }, null, 34)), [
253
+ [me, p.value]
254
+ ])
255
+ ]),
256
+ e.separator ? (d(), y("div", Ie, _(e.separator), 1)) : I("", !0),
257
+ u("div", {
258
+ class: O([e.disabled ? "text-fm-color-typo-disabled" : "text-fm-color-typo-secondary"])
259
+ }, [
260
+ h(g, { "z-index": 51 }, {
261
+ content: F(() => [
262
+ ce(_(V.value), 1)
263
+ ]),
264
+ default: F(() => [
265
+ e.disableUnit ? (d(), y("div", Ue, [
266
+ q.value ? I("", !0) : (d(), U(a, {
267
+ key: 0,
268
+ name: "square_foot"
269
+ })),
270
+ u("div", De, _(V.value), 1)
271
+ ])) : (d(), U(r, {
272
+ key: 1,
273
+ onMenuChanged: n[3] || (n[3] = (m) => $.value = m),
274
+ "z-index": 500,
275
+ placement: e.placement,
276
+ disabled: e.disabled
277
+ }, {
278
+ "menu-button": F(() => [
279
+ u("div", Re, [
280
+ u("div", we, [
281
+ q.value ? I("", !0) : (d(), U(a, {
282
+ key: 0,
283
+ name: "square_foot"
284
+ })),
285
+ u("div", Ce, _(V.value), 1)
286
+ ]),
287
+ h(a, { name: "keyboard_arrow_down" })
288
+ ])
289
+ ]),
290
+ default: F(() => [
291
+ u("div", Se, [
292
+ (d(!0), y(de, null, pe(ee.value, (m) => (d(), U(o, {
293
+ key: m.value ?? void 0,
294
+ label: m.label,
295
+ icon: m.isBaseUnit ? void 0 : "square_foot",
296
+ "model-value": m.value == N.value,
297
+ onClick: (k) => N.value = m.value
298
+ }, null, 8, ["label", "icon", "model-value", "onClick"]))), 128))
299
+ ])
300
+ ]),
301
+ _: 1
302
+ }, 8, ["placement", "disabled"]))
303
+ ]),
304
+ _: 1
305
+ })
306
+ ], 2),
307
+ e.stepper ? (d(), y("div", Ne, [
308
+ u("div", {
309
+ class: "w-24 h-12 flex items-center justify-center fm-corner-radius-sm bg-fm-color-neutral-gray-100 hover:bg-fm-color-neutral-gray-200",
310
+ onClick: oe
311
+ }, [
312
+ u("div", Ve, [
313
+ h(a, {
314
+ name: "expand_less",
315
+ size: "md"
316
+ })
317
+ ])
318
+ ]),
319
+ u("div", {
320
+ class: "w-24 h-12 flex items-center justify-center fm-corner-radius-sm bg-fm-color-neutral-gray-100 hover:bg-fm-color-neutral-gray-200",
321
+ onClick: se
322
+ }, [
323
+ u("div", Te, [
324
+ h(a, {
325
+ name: "expand_more",
326
+ size: "md"
327
+ })
328
+ ])
329
+ ])
330
+ ])) : I("", !0)
331
+ ]),
332
+ G(e.$slots, "append")
333
+ ])
334
+ ]),
335
+ _: 3
336
+ }, 8, ["focused"])
337
+ ]),
338
+ h(L, {
339
+ class: "flex-1",
340
+ "model-value": { modelValue: s.value, amountAsString: String(p.value) },
341
+ info: e.labelInfo,
342
+ rules: ne.value,
343
+ "helper-text": e.helperText,
344
+ "helper-state": e.helperState
345
+ }, null, 8, ["model-value", "info", "rules", "helper-text", "helper-state"])
346
+ ]);
347
+ };
348
+ }
349
+ });
350
+ export {
351
+ $e as F,
352
+ Ee as _,
353
+ qe as a,
354
+ ze as b,
355
+ X as c,
356
+ Q as d
357
+ };