@feedmepos/mf-inventory-portal 0.0.9-dev.4 → 0.0.9-dev.5

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 (40) hide show
  1. package/dist/{ApprovalView-CxLA9Tk4.js → ApprovalView-DZ7G3Dpw.js} +6 -6
  2. package/dist/{BindingsDialog-2d8KMiNt.js → BindingsDialog-C4T58DLy.js} +2 -2
  3. package/dist/{BindingsPicker-Dq3KYBOH.js → BindingsPicker-tk740qzr.js} +2 -2
  4. package/dist/{BindingsTable-VR_PJt-H.js → BindingsTable-CHlxRr9d.js} +3 -3
  5. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BI1e8qoK.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-BnVvi9YB.js} +1 -1
  6. package/dist/{FmMultiselectDialog.vue_vue_type_script_setup_true_lang-BXmff--W.js → FmMultiselectDialog.vue_vue_type_script_setup_true_lang-FLtXQrxO.js} +2 -2
  7. package/dist/FmUnitInput.vue_vue_type_script_setup_true_lang-C1soNoi-.js +220 -0
  8. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-Y14_-iJZ.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-BZ9Tqeho.js} +1 -1
  9. package/dist/{IngredientsView-BBebPKbz.js → IngredientsView-DWimVSXF.js} +6 -6
  10. package/dist/{IntegrationView-B37GHYlO.js → IntegrationView-Dim5QETq.js} +3 -3
  11. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-DESMP89v.js +275 -0
  12. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-g073RKQ2.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CHzRvOOD.js} +1 -1
  13. package/dist/{PurchaseOrderPrintPreview-BhdBZIJt.js → PurchaseOrderPrintPreview-DWLpugcd.js} +1 -1
  14. package/dist/{ReceiveRequestView-CFfPqNJl.js → ReceiveRequestView-Dc7jAVbO.js} +387 -385
  15. package/dist/{RecipeView-B5TcxFNE.js → RecipeView-BFlxbyu_.js} +7 -7
  16. package/dist/{StockView-CVCN3wkh.js → StockView-Dv2jJlF6.js} +12 -12
  17. package/dist/SupplierView-BMrGQpLJ.js +799 -0
  18. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-M0Z_1-dh.js → TransferDetails.vue_vue_type_script_setup_true_lang-D5dbypxK.js} +5 -5
  19. package/dist/{UnitView-VjvCa-_J.js → UnitView-TYcL9inB.js} +6 -6
  20. package/dist/{WarehouseView-CudKexeI.js → WarehouseView-CsjJ6mZW.js} +3 -3
  21. package/dist/{app-BKRjwub_.js → app-M9Z8lUHo.js} +3 -3
  22. package/dist/app.js +1 -1
  23. package/dist/components/FmDecimalInputProps.d.ts +13 -0
  24. package/dist/components/FmUnitInputProps.d.ts +6 -0
  25. package/dist/{date2-C8AM1GIN.js → date2-OJLPOd91.js} +1 -1
  26. package/dist/{dayjs.min-DYayH1UN.js → dayjs.min-Cw0T-_42.js} +2 -2
  27. package/dist/{decimal-CMayQ-Di.js → decimal-D1Tz_3Ib.js} +1 -1
  28. package/dist/{fuzzy-DfvjJF-Y.js → fuzzy-TX8jTlf3.js} +1 -1
  29. package/dist/{init-date-range-DdbbMhPB.js → init-date-range-wn-dTxvH.js} +1 -1
  30. package/dist/{layout-JDXCtoya.js → layout-8y0JGpGb.js} +1 -1
  31. package/dist/{rules-CyIMpyLJ.js → rules-BM4xu-zd.js} +25 -28
  32. package/dist/{stock-estimate-B_iBijXH.js → stock-estimate-UhIlC8We.js} +2 -2
  33. package/dist/{supplier-CGgz9s7x.js → supplier-9CUF_94y.js} +1 -1
  34. package/dist/tsconfig.app.tsbuildinfo +1 -1
  35. package/dist/{use-inventory-binding-dialog-BLeDIWYh.js → use-inventory-binding-dialog-DFA1NpNT.js} +2 -2
  36. package/dist/views/dev/components/FmDecimalInputTest.vue.d.ts +2 -0
  37. package/dist/{xlsx-CeDIlGss.js → xlsx-gm4jAAS2.js} +637 -637
  38. package/package.json +3 -3
  39. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-CEthycAQ.js +0 -476
  40. package/dist/SupplierView-CRpaJJyN.js +0 -831
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feedmepos/mf-inventory-portal",
3
- "version": "0.0.9-dev.4",
3
+ "version": "0.0.9-dev.5",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -37,9 +37,9 @@
37
37
  "vue-router": "^4.3.2",
38
38
  "xlsx": "^0.18.5",
39
39
  "zod": "3.17.9",
40
- "@feedmepos/inventory-core-js": "^1.0.0",
41
40
  "@feedmepos/zod-inventory": "^1.0.8",
42
- "@feedmepos/inventory-core": "^0.2.15-alpha.8"
41
+ "@feedmepos/inventory-core": "^0.2.15-alpha.8",
42
+ "@feedmepos/inventory-core-js": "^1.0.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@rushstack/eslint-patch": "^1.10.3",
@@ -1,476 +0,0 @@
1
- import { defineComponent as te, mergeModels as Z, useModel as ae, computed as p, ref as $, watch as J, inject as se, resolveComponent as y, openBlock as _, createElementBlock as B, createElementVNode as t, createVNode as m, withCtx as A, withDirectives as ie, normalizeClass as ue, vModelText as re, toDisplayString as q, Fragment as O, renderList as W, createBlock as T, reactive as de, unref as g, createTextVNode as me, createCommentVNode as Q, nextTick as ce } from "vue";
2
- import { u as pe, h as fe } from "./app-BKRjwub_.js";
3
- import { g as H, c as ne, a as k, t as ve, b as ye, v as be } from "./date2-C8AM1GIN.js";
4
- import { u as _e } from "./use-inventory-binding-dialog-BLeDIWYh.js";
5
- import { I as oe, A as xe, b as he, a as X } from "./rules-CyIMpyLJ.js";
6
- import { F as E, g as ge } from "./dayjs.min-DYayH1UN.js";
7
- function ee() {
8
- return {
9
- amount: E.reset()
10
- };
11
- }
12
- function Y() {
13
- return function(V) {
14
- return oe()(V.amountAsString);
15
- };
16
- }
17
- function le(F, V = !1) {
18
- return function(x) {
19
- const i = Y()(x);
20
- if (i != !0)
21
- return V ? i : !0;
22
- const c = H(F, x.modelValue.measurement);
23
- return ne(+x.amountAsString).precision > c ? `Cannot exceed precision more than ${k({
24
- amount: 1,
25
- precision: c
26
- })}` : !0;
27
- };
28
- }
29
- const Fe = { class: "flex flex-col" }, Ve = { class: "flex flex-col" }, Ie = { class: "flex-1" }, ke = { class: "flex items-center gap-4" }, we = { class: "flex-1" }, Me = { class: "text-fm-color-typo-secondary whitespace-nowrap" }, Be = { class: "flex items-center gap-4" }, Ae = { class: "max-w-[200px] flex flex-col gap-[1px]" }, Re = /* @__PURE__ */ te({
30
- __name: "FmUnitInput",
31
- props: /* @__PURE__ */ Z({
32
- modelValue: {},
33
- unit: {},
34
- rules: {},
35
- zIndex: {},
36
- applyDefaultRules: { type: Boolean },
37
- placement: {},
38
- placeholder: {},
39
- minLength: {},
40
- maxLength: {},
41
- inputmode: {},
42
- type: {},
43
- readonly: { type: Boolean },
44
- labelMark: {},
45
- prependIcon: {},
46
- appendIcon: {},
47
- showValidBorder: { type: Boolean },
48
- labelInfo: {},
49
- showWordCount: { type: Boolean },
50
- invalid: { type: Boolean },
51
- autofocus: { type: Boolean },
52
- formatter: { type: Function },
53
- decimal: {},
54
- datalist: {},
55
- shiftDatalist: { type: Boolean },
56
- datalistMaxHeight: {},
57
- datalistMinHeight: {},
58
- offsetDatalist: {},
59
- datalistPlacement: {},
60
- datalistZIndex: {},
61
- datalistWidth: {},
62
- label: {},
63
- disabled: { type: Boolean },
64
- focused: { type: Boolean },
65
- helperText: {},
66
- helperState: {}
67
- }, {
68
- modelValue: {},
69
- modelModifiers: {}
70
- }),
71
- emits: /* @__PURE__ */ Z(["update:amount", "update:measurement"], ["update:modelValue"]),
72
- setup(F, { emit: V }) {
73
- var N;
74
- const r = F, x = V, i = ae(F, "modelValue"), c = oe(), b = p(() => {
75
- var e;
76
- return H(r.unit, (e = i.value) == null ? void 0 : e.measurement);
77
- }), f = $(k(((N = i.value) == null ? void 0 : N.amount) ?? E.reset()));
78
- J(f, (n) => {
79
- const e = c(n), l = b.value;
80
- e == !0 && (i.value = {
81
- ...i.value,
82
- amount: ve(+n, l)
83
- }), x("update:amount", n);
84
- });
85
- const L = Symbol.for("fm:form-state"), R = se(L, null), U = p(() => r.disabled ?? (R == null ? void 0 : R.getDisabled()) ?? !1), z = $(), w = $(!1), S = $(!1), j = p(() => w.value || S.value), D = p(() => {
86
- var n;
87
- return [
88
- {
89
- label: (n = r.unit) == null ? void 0 : n.abbrev,
90
- value: null
91
- },
92
- ...r.unit.measurements.map((e) => ({
93
- label: e.abbrev,
94
- value: e.id
95
- }))
96
- ];
97
- }), M = p({
98
- get() {
99
- var n, e;
100
- return ((e = (n = i.value) == null ? void 0 : n.measurement) == null ? void 0 : e.id) ?? null;
101
- },
102
- set(n) {
103
- if (n == null)
104
- i.value = {
105
- ...i.value ?? ee(),
106
- measurement: null
107
- }, x("update:measurement", null);
108
- else {
109
- const e = r.unit.measurements.find((l) => l.id === n) ?? null;
110
- i.value = {
111
- ...i.value ?? ee(),
112
- measurement: e
113
- }, x("update:measurement", e);
114
- }
115
- }
116
- });
117
- J(M, (n, e) => {
118
- var I;
119
- const l = ((I = i.value) == null ? void 0 : I.amount) ?? E.reset(), a = r.unit.measurements.find((h) => h.id === e) ?? null, s = r.unit.measurements.find((h) => h.id === n) ?? null, u = a ? ye(l, a.conversion) : l, d = s ? be(u, s.conversion) : u, C = H(r.unit, s), o = E.convertPrecision({
120
- value: d,
121
- precision: C
122
- });
123
- f.value = k(o);
124
- });
125
- const G = p(() => {
126
- var n, e;
127
- return ((e = (n = i.value) == null ? void 0 : n.measurement) == null ? void 0 : e.abbrev) ?? r.unit.abbrev;
128
- }), K = p(
129
- () => {
130
- var n;
131
- return ((n = r.rules) == null ? void 0 : n.map(
132
- (e) => (l) => typeof e == "function" ? e(l) : e
133
- )) ?? [];
134
- }
135
- ), P = p(() => [...r.applyDefaultRules ? [Y(), le(r.unit)] : [], ...K.value]);
136
- return (n, e) => {
137
- const l = y("FmLabel"), a = y("FmIcon"), s = y("FmMenuItem"), u = y("FmMenu"), d = y("FmField"), C = y("FmFormGroup");
138
- return _(), B("div", Fe, [
139
- t("div", Ve, [
140
- t("div", Ie, [
141
- m(l, {
142
- label: n.label,
143
- disabled: n.disabled,
144
- required: n.labelMark === "required",
145
- optional: n.labelMark === "optional"
146
- }, null, 8, ["label", "disabled", "required", "optional"])
147
- ]),
148
- m(d, { focused: j.value }, {
149
- default: A(() => [
150
- t("div", ke, [
151
- t("div", we, [
152
- ie(t("input", {
153
- type: "text",
154
- ref_key: "inputRef",
155
- ref: z,
156
- onFocus: e[0] || (e[0] = () => w.value = !0),
157
- onBlur: e[1] || (e[1] = () => w.value = !1),
158
- "onUpdate:modelValue": e[2] || (e[2] = (o) => f.value = o),
159
- class: ue({
160
- "fm-text-field--input fm-typo-en-body-lg-400 text-right": !0,
161
- "text-fm-color-typo-primary": !U.value,
162
- "text-fm-color-typo-disabled": U.value
163
- })
164
- }, null, 34), [
165
- [re, f.value]
166
- ])
167
- ]),
168
- t("div", Me, [
169
- m(u, {
170
- onMenuChanged: e[3] || (e[3] = (o) => S.value = o),
171
- "z-index": 500,
172
- placement: n.placement
173
- }, {
174
- "menu-button": A(() => [
175
- t("div", Be, [
176
- t("div", null, q(G.value), 1),
177
- m(a, { name: "keyboard_arrow_down" })
178
- ])
179
- ]),
180
- default: A(() => [
181
- t("div", Ae, [
182
- (_(!0), B(O, null, W(D.value, (o) => (_(), T(s, {
183
- key: o.value ?? void 0,
184
- label: o.label,
185
- "model-value": o.value == M.value,
186
- onClick: (I) => M.value = o.value
187
- }, null, 8, ["label", "model-value", "onClick"]))), 128))
188
- ])
189
- ]),
190
- _: 1
191
- }, 8, ["placement"])
192
- ])
193
- ])
194
- ]),
195
- _: 1
196
- }, 8, ["focused"])
197
- ]),
198
- m(C, {
199
- class: "flex-1",
200
- "model-value": { modelValue: i.value, amountAsNumber: f.value },
201
- info: n.labelInfo,
202
- rules: P.value,
203
- "helper-text": n.helperText,
204
- "helper-state": n.helperState
205
- }, null, 8, ["model-value", "info", "rules", "helper-text", "helper-state"])
206
- ]);
207
- };
208
- }
209
- }), Ce = { class: "flex flex-col gap-24" }, Ue = { class: "flex flex-col gap-16" }, Se = { class: "flex items-center" }, De = /* @__PURE__ */ t("div", { class: "flex-1 fm-typo-en-title-sm-600" }, "Recipe", -1), Pe = { class: "flex flex-col" }, Ne = /* @__PURE__ */ t("div", { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, [
210
- /* @__PURE__ */ t("div", { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, "Recipe"),
211
- /* @__PURE__ */ t("div", { class: "w-[200px]" }),
212
- /* @__PURE__ */ t("div", { class: "w-[52px]" })
213
- ], -1), $e = {
214
- class: "flex items-center w-full border-b border-fm-color-neutral-gray-100",
215
- style: { "min-height": "48px" }
216
- }, Te = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, Ee = { class: "w-[200px]" }, Le = { class: "w-[52px]" }, ze = { class: "flex flex-col gap-16" }, je = { class: "flex items-center" }, Ge = /* @__PURE__ */ t("div", { class: "flex-1 fm-typo-en-title-sm-600" }, "Ingredient", -1), Ke = { class: "flex flex-col" }, qe = /* @__PURE__ */ t("div", { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, [
217
- /* @__PURE__ */ t("div", { class: "flex-1 fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, "Ingredient"),
218
- /* @__PURE__ */ t("div", { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary w-[150px] px-16" }, " Amount "),
219
- /* @__PURE__ */ t("div", { class: "w-[52px]" })
220
- ], -1), Oe = {
221
- class: "flex items-center w-full",
222
- style: { "min-height": "48px" }
223
- }, We = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, He = { class: "line-clamp-1" }, Ye = { class: "w-[150px]" }, Ze = { class: "w-[52px]" }, Je = { class: "flex flex-col px-12 pb-4" }, Qe = /* @__PURE__ */ t("div", null, null, -1), at = /* @__PURE__ */ te({
224
- __name: "InventoryBindingForm",
225
- props: {
226
- id: {},
227
- modelValue: { default: () => [] },
228
- excludeBindingId: {},
229
- iframeMode: { type: Boolean },
230
- disabled: { type: Boolean }
231
- },
232
- emits: ["update:modelValue", "click:pick-inventory-bindings"],
233
- setup(F, { emit: V }) {
234
- const r = pe(), x = p(() => r.inventory.recipe ?? []), i = p(() => r.inventory.sku ?? []), c = F, b = V, f = p(
235
- () => ge({
236
- id: c.id ?? "",
237
- skus: r.skus,
238
- recipes: r.recipes
239
- })
240
- ), L = p(() => c.modelValue.filter((e) => e.type === "RECIPE")), { promptIngredientsBinding: R, promptRecipesBinding: U } = _e();
241
- async function z() {
242
- if (c.iframeMode) {
243
- b("click:pick-inventory-bindings", "RECIPE");
244
- return;
245
- }
246
- U(
247
- c.modelValue,
248
- (e) => b("update:modelValue", e),
249
- f.value.recipes
250
- );
251
- }
252
- const w = p(() => c.modelValue.filter((e) => e.type === "SKU") ?? []);
253
- async function S() {
254
- if (c.iframeMode) {
255
- b("click:pick-inventory-bindings", "SKU");
256
- return;
257
- }
258
- R(
259
- c.modelValue,
260
- (e) => b("update:modelValue", e),
261
- c.excludeBindingId,
262
- f.value.skus
263
- );
264
- }
265
- function j(e, l, a) {
266
- const s = +l;
267
- let u = a;
268
- l.length > 0 && isFinite(s) ? u = a.map((d) => (d.id !== e || (d.amount = ne(s)), d)) : u = a.map((d) => (d.id !== e || (d.amount = { amount: 0, precision: 0 }), d)), b("update:modelValue", u);
269
- }
270
- function D(e, l) {
271
- const a = l.filter((s) => s.id !== e);
272
- b("update:modelValue", a);
273
- }
274
- function M(e) {
275
- var a, s;
276
- if (e.type !== fe.enum.SKU)
277
- throw new Error("Non-SKU binding does not have unit");
278
- if (!((a = i.value.find((u) => u._id === e.id)) == null ? void 0 : a.unit))
279
- throw new Error(`Cannot find ingredient: ${e.id}`);
280
- return (s = i.value.find((u) => u._id === e.id)) == null ? void 0 : s.unit;
281
- }
282
- function G(e) {
283
- return { amount: e.amount, measurement: e.measurement };
284
- }
285
- function K(e, l, a) {
286
- const s = a.map((u) => u.id !== e ? u : {
287
- ...u,
288
- amount: l.amount,
289
- measurement: l.measurement
290
- });
291
- b("update:modelValue", s);
292
- }
293
- const P = de({});
294
- function N(e) {
295
- return P[e.id] ?? {
296
- modelValue: {
297
- amount: e.amount,
298
- measurement: e.measurement
299
- },
300
- amountAsString: k(e.amount)
301
- };
302
- }
303
- function n(e, l) {
304
- ce(() => {
305
- P[e.id] = {
306
- modelValue: {
307
- amount: e.amount,
308
- measurement: e.measurement
309
- },
310
- amountAsString: l
311
- };
312
- });
313
- }
314
- return (e, l) => {
315
- const a = y("FmFormGroup"), s = y("FmButton"), u = y("FmIcon"), d = y("FmTooltip"), C = y("FmTextField");
316
- return _(), B("div", Ce, [
317
- m(a, {
318
- disabled: e.disabled,
319
- "model-value": e.modelValue,
320
- rules: e.iframeMode ? void 0 : [g(xe)(1, "Must have at least one inventory binding")]
321
- }, null, 8, ["disabled", "model-value", "rules"]),
322
- t("div", Ue, [
323
- t("div", Se, [
324
- De,
325
- m(s, {
326
- variant: "secondary",
327
- "text-color": "primary",
328
- "border-color": "primary",
329
- label: "Link recipe",
330
- "prepend-icon": "link",
331
- onClick: z
332
- })
333
- ]),
334
- t("div", Pe, [
335
- Ne,
336
- (_(!0), B(O, null, W(L.value, (o) => (_(), T(a, {
337
- key: o.id,
338
- disabled: e.disabled,
339
- modelValue: +g(k)(o.amount ?? { amount: 1, precision: 0 }),
340
- rules: [g(he)(0), g(X)(0)]
341
- }, {
342
- default: A(({ invalid: I }) => {
343
- var h;
344
- return [
345
- t("div", $e, [
346
- t("div", Te, [
347
- me(q((h = x.value.find((v) => v._id === o.id)) == null ? void 0 : h.name) + " ", 1),
348
- f.value.recipes.includes(o.id) ? (_(), T(d, {
349
- key: 0,
350
- variant: "plain",
351
- placement: "bottom",
352
- content: "It is invalid, please verify or remove it.",
353
- "hide-arrow": !0,
354
- "z-index": 50
355
- }, {
356
- default: A(() => [
357
- m(u, {
358
- name: "error",
359
- size: "sm",
360
- color: "#ff3b30"
361
- })
362
- ]),
363
- _: 1
364
- })) : Q("", !0)
365
- ]),
366
- t("div", Ee, [
367
- m(C, {
368
- class: "w-full",
369
- disabled: e.disabled,
370
- modelValue: +g(k)(o.amount ?? { amount: 1, precision: 0 }),
371
- "onUpdate:modelValue": (v) => j(o.id, v, e.modelValue),
372
- invalid: I
373
- }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue", "invalid"])
374
- ]),
375
- t("div", Le, [
376
- m(s, {
377
- disabled: e.disabled,
378
- type: "button",
379
- variant: "plain",
380
- icon: "delete",
381
- "icon-color": "#000000",
382
- onClick: (v) => D(o.id, e.modelValue)
383
- }, null, 8, ["disabled", "onClick"])
384
- ])
385
- ])
386
- ];
387
- }),
388
- _: 2
389
- }, 1032, ["disabled", "modelValue", "rules"]))), 128))
390
- ])
391
- ]),
392
- t("div", ze, [
393
- t("div", je, [
394
- Ge,
395
- m(s, {
396
- variant: "secondary",
397
- "text-color": "primary",
398
- "border-color": "primary",
399
- label: "Link ingredient",
400
- "prepend-icon": "link",
401
- onClick: S
402
- })
403
- ]),
404
- t("div", Ke, [
405
- qe,
406
- (_(!0), B(O, null, W(w.value, (o, I) => {
407
- var h;
408
- return _(), B("div", {
409
- key: o.id,
410
- class: "flex flex-col border-b border-fm-color-neutral-gray-100"
411
- }, [
412
- t("div", Oe, [
413
- t("div", We, [
414
- t("span", He, q((h = i.value.find((v) => v._id === o.id)) == null ? void 0 : h.name), 1),
415
- f.value.skus.includes(o.id) ? (_(), T(d, {
416
- key: 0,
417
- variant: "plain",
418
- placement: "bottom",
419
- content: "It is invalid, please verify or remove it.",
420
- "hide-arrow": !0,
421
- "z-index": 50
422
- }, {
423
- default: A(() => [
424
- m(u, {
425
- name: "error",
426
- size: "sm",
427
- color: "#ff3b30"
428
- })
429
- ]),
430
- _: 1
431
- })) : Q("", !0)
432
- ]),
433
- t("div", Ye, [
434
- m(Re, {
435
- "model-value": G(o),
436
- "onUpdate:modelValue": (v) => K(o.id, v, e.modelValue),
437
- "onUpdate:amount": (v) => n(o, v),
438
- unit: M(o),
439
- placement: I === w.value.length - 1 ? "top" : "bottom"
440
- }, null, 8, ["model-value", "onUpdate:modelValue", "onUpdate:amount", "unit", "placement"])
441
- ]),
442
- t("div", Ze, [
443
- m(s, {
444
- disabled: e.disabled,
445
- type: "button",
446
- variant: "tertiary",
447
- icon: "delete",
448
- onClick: (v) => D(o.id, e.modelValue)
449
- }, null, 8, ["disabled", "onClick"])
450
- ])
451
- ]),
452
- t("div", Je, [
453
- m(a, {
454
- modelValue: +g(k)(o.amount ?? { amount: 1, precision: 0 }),
455
- rules: [g(X)(0)]
456
- }, null, 8, ["modelValue", "rules"]),
457
- m(a, {
458
- modelValue: N(o),
459
- rules: [
460
- g(Y)(),
461
- g(le)(M(o))
462
- ]
463
- }, null, 8, ["modelValue", "rules"])
464
- ])
465
- ]);
466
- }), 128))
467
- ]),
468
- Qe
469
- ])
470
- ]);
471
- };
472
- }
473
- });
474
- export {
475
- at as _
476
- };