@feedmepos/mf-inventory-portal 1.3.16 → 1.3.17-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 (91) hide show
  1. package/dist/{App-JcVy7z89.js → App-BM6XrIzj.js} +4 -4
  2. package/dist/{ApprovalView-TTCe-eqc.js → ApprovalView-DZg5b1Vo.js} +7 -7
  3. package/dist/{BindingsDialog-lrqjnmk3.js → BindingsDialog-DEOaWAfN.js} +2 -2
  4. package/dist/{BindingsPicker-B_ks2aoD.js → BindingsPicker-CBaP0_go.js} +2 -2
  5. package/dist/{BindingsTable-BTzb7bl6.js → BindingsTable-CYSQbBMo.js} +3 -3
  6. package/dist/{ClosingDraftView-CT3BYmhy.js → ClosingDraftView-Bwq-P_gh.js} +14 -14
  7. package/dist/{ClosingHistoryView-D22YN948.js → ClosingHistoryView-ByZgy8dJ.js} +5 -5
  8. package/dist/{ClosingTemplateView-DWZlbRNR.js → ClosingTemplateView-Xp6B7V86.js} +14 -14
  9. package/dist/{DefaultView-B55cXPDQ.js → DefaultView-Ww9EZ3Tw.js} +2 -2
  10. package/dist/{DeliveryOrderPrintPreview-C2OsEmYL.js → DeliveryOrderPrintPreview-Bxff18MY.js} +2 -2
  11. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-D4TCAKPB.js +76 -0
  12. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-C2VqHIzn.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-Y8uj4A2g.js} +2 -2
  13. package/dist/{FmMultiselectDialog-Bf5LoETU.js → FmMultiselectDialog-EIm10WKr.js} +2 -2
  14. package/dist/{FmMultiselectDialog-CtqcYKez.js → FmMultiselectDialog-yBaoE2it.js} +1 -1
  15. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-D0fbjDen.js → FmUnitInput.vue_vue_type_script_setup_true_lang-CWZ4_Jbz.js} +6 -5
  16. package/dist/{ImportView-C6VMwns6.js → ImportView-C3jmiWuj.js} +6 -6
  17. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-Bbp6FwaC.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-BAx0OI85.js} +1 -1
  18. package/dist/{IngredientGroupView-Cq6HSE9I.js → IngredientGroupView-Dw0vYx2a.js} +5 -5
  19. package/dist/{IngredientsView-g_VlbWO3.js → IngredientsView-HpEyhu3q.js} +15 -15
  20. package/dist/{IntegrationExplorerView-CuLRbx45.js → IntegrationExplorerView-B2Zbmg9L.js} +5 -5
  21. package/dist/{IntegrationView-Deu36yy_.js → IntegrationView-D8Lf-JBn.js} +13 -13
  22. package/dist/{InventoryBindingForm-BY9a4LbA.js → InventoryBindingForm-DhvR3VDJ.js} +1 -1
  23. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-BDS8xAAy.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-D0e5Do4W.js} +5 -5
  24. package/dist/{InventoryBindingSummary-wRACZM3H.js → InventoryBindingSummary-ByCzh7Zw.js} +1 -1
  25. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-Cln33pev.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DHDa6Va8.js} +1 -1
  26. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-Bhubwroc.js → PremiumBadge.vue_vue_type_script_setup_true_lang-C3VB9eo-.js} +1 -1
  27. package/dist/{PublishView-Bz4DwRln.js → PublishView-DShogj2Y.js} +3 -3
  28. package/dist/{PurchaseOrderPrintPreview-CwMUlAzW.js → PurchaseOrderPrintPreview-CSYDukX0.js} +2 -2
  29. package/dist/{ReceiveRequestView-jzKL7wwc.js → ReceiveRequestView-BilYjNHA.js} +30 -29
  30. package/dist/RecipeView-CEPnsxV6.js +2898 -0
  31. package/dist/{SettingsView-BGK8xDQj.js → SettingsView-BWUsUMT0.js} +4 -4
  32. package/dist/{StockView-D_1M2j2H.js → StockView-DimVSo18.js} +19 -19
  33. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-DmAHd2Ma.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BoZNHsLl.js} +1 -1
  34. package/dist/{SupplierView-_HVROcl0.js → SupplierView-BL1Vt8Hu.js} +12 -12
  35. package/dist/{SurchargeView-C9uFLUHz.js → SurchargeView-C5iu7nmx.js} +6 -6
  36. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-DDq5fRab.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-D8AngCJN.js} +2 -2
  37. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-DDgl-JA-.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CJ3hpM0q.js} +1 -1
  38. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-CIs8k2X-.js → TransferDetails.vue_vue_type_script_setup_true_lang-V3vfzaKm.js} +20 -20
  39. package/dist/{TransferTemplateView-f2jqyWDC.js → TransferTemplateView-C9FMvKjc.js} +20 -19
  40. package/dist/{UnitCostHistoryView-CDRVItD5.js → UnitCostHistoryView-BfblkkmE.js} +4 -4
  41. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-DvHmw68v.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-WCXlKiXi.js} +4 -4
  42. package/dist/{UnitView-B-4VmAZ1.js → UnitView-DszSyUEG.js} +7 -7
  43. package/dist/{WarehouseView-DTuDf6uX.js → WarehouseView-mFtihMUO.js} +5 -5
  44. package/dist/{WastageTemplateView-CNbBRdic.js → WastageTemplateView-CCrrtx0D.js} +14 -14
  45. package/dist/{app-DAjgWaIt.js → app-DLDCXd9a.js} +694 -566
  46. package/dist/app.d.ts +126 -0
  47. package/dist/app.js +1 -1
  48. package/dist/{closing-template-Cr5yjIGk.js → closing-template-CrG02xOu.js} +1 -1
  49. package/dist/{date2-Dc-LkH4Q.js → date2-CHswjJUp.js} +1 -1
  50. package/dist/{dayjs.min-C6TKmoSA.js → dayjs.min-CWIk1QcT.js} +1 -1
  51. package/dist/{decimal-BiUxwHW1.js → decimal-1bd9FS8v.js} +2 -2
  52. package/dist/{defineDeepModel-DgkjK79L.js → defineDeepModel-DK3g-3gd.js} +1 -1
  53. package/dist/{duplicate-template-D2C8HFBF.js → duplicate-template-BzMQSrk7.js} +1 -1
  54. package/dist/{export-wJraMdL-.js → export-BHQOvJzX.js} +1 -1
  55. package/dist/{feature-DDNuIU5x.js → feature-D4UFa4w1.js} +2 -2
  56. package/dist/{format-time-from-id-CZFp1tYB.js → format-time-from-id-Bp95nZWH.js} +1 -1
  57. package/dist/{format-unit-display-TmmuJhva.js → format-unit-display-MAZr_RkJ.js} +11 -11
  58. package/dist/{import-export.helper-CvnY5IpI.js → import-export.helper-Drn_mkbI.js} +6 -6
  59. package/dist/{index-DhLglBIu.js → index-B0WIt2Bw.js} +1 -1
  60. package/dist/{index-CSQXsQbV.js → index-CWfJ663c.js} +3 -3
  61. package/dist/{index-BjGCVl4C.js → index-cSv3T8Vj.js} +1 -1
  62. package/dist/{inventory-core-dart.default-Cy3rCrre.js → inventory-core-dart.default-Bj4nC1QO.js} +1 -1
  63. package/dist/{lodash-BqVoI4i-.js → lodash-CMUcme2U.js} +1 -1
  64. package/dist/{lz-string-CCV8vJiL.js → lz-string-C_9wi8p9.js} +1 -1
  65. package/dist/{netsuite-Fuewxz8C.js → netsuite-BOZY0FbI.js} +3 -3
  66. package/dist/{number-TlKuaioM.js → number-j9IKb1r-.js} +3 -3
  67. package/dist/{predefined-templates-DwR19gNy.js → predefined-templates-1ef-YY5Z.js} +1 -1
  68. package/dist/{purchase-order-template-DAkHu-9-.js → purchase-order-template-CGjaX-yS.js} +1 -1
  69. package/dist/{recalculationUtils-blkN0S5G.js → recalculationUtils-Dyp9O9Cn.js} +1 -1
  70. package/dist/{rules-BT_bX_zP.js → rules-D6uxkKZX.js} +2 -2
  71. package/dist/{stock-Do-AQ1Rj.js → stock-C7dY8O1s.js} +1 -1
  72. package/dist/{stock-D9jClHC1.js → stock-DH1PnK0M.js} +3 -3
  73. package/dist/{supplier-DI8witR9.js → supplier-Dra-Ks3T.js} +2 -2
  74. package/dist/{surcharge-CLd8VHwX.js → surcharge-BmtRuvq_.js} +1 -1
  75. package/dist/tsconfig.app.tsbuildinfo +1 -1
  76. package/dist/{use-ingredient-select-dialog-CKFmldHx.js → use-ingredient-select-dialog-DFVuLsiI.js} +2 -2
  77. package/dist/{use-inventory-binding-dialog-eMJtDSHG.js → use-inventory-binding-dialog-CKQ-gykJ.js} +2 -2
  78. package/dist/{use-template-enabled-locations-CEeVrUI2.js → use-template-enabled-locations-DNA-6td0.js} +2 -2
  79. package/dist/use-transfer-locations-DTYCSRdI.js +116 -0
  80. package/dist/{useHrmPermission-C1l7OOr5.js → useHrmPermission-D_GdqoyM.js} +1 -1
  81. package/dist/{useNavigationMenu-DAk6M_hW.js → useNavigationMenu-Dq9nSvfl.js} +2 -2
  82. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorDialog.vue.d.ts +19 -0
  83. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorQueryStep.vue.d.ts +2 -0
  84. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorSummaryStep.vue.d.ts +2 -0
  85. package/dist/views/recipe/composables/use-recipe-bulk-editor.d.ts +634 -0
  86. package/dist/{vue-i18n-CdJcBjBL.js → vue-i18n-AgOoUQs7.js} +524 -524
  87. package/dist/{xlsx-CWLyQh30.js → xlsx-BaV8TO1y.js} +1 -1
  88. package/dist/{xlsx.util-DXzmppo9.js → xlsx.util-D61aHgAt.js} +1 -1
  89. package/package.json +4 -4
  90. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-vYqITtJe.js +0 -188
  91. package/dist/RecipeView-DhSB9pz6.js +0 -1692
@@ -0,0 +1,634 @@
1
+ import type { FdoDecimal } from '@feedmepos/core/entity';
2
+ export interface BindingSelector {
3
+ type: FdoInventoryBinding['type'];
4
+ id: string;
5
+ amount?: FdoDecimal;
6
+ measurementId?: string | null;
7
+ rules?: Record<string, any> | null;
8
+ alternatives?: FdoInventoryBindingAlternative[];
9
+ }
10
+ export type BindingChange = {
11
+ type: 'replace-binding';
12
+ from: BindingSelector;
13
+ to: FdoInventoryBinding;
14
+ } | {
15
+ type: 'remove-binding';
16
+ target: BindingSelector;
17
+ } | {
18
+ type: 'add-binding';
19
+ binding: FdoInventoryBinding;
20
+ } | {
21
+ type: 'update-binding-rule';
22
+ target: BindingSelector;
23
+ rule: Record<string, any> | null;
24
+ } | {
25
+ type: 'update-alternatives';
26
+ target: BindingSelector;
27
+ alternatives: FdoInventoryBindingAlternative[];
28
+ };
29
+ export type RecipeChangeOutcome = 'applied' | 'ignored' | 'already-satisfied' | 'blocked';
30
+ export interface RecipeChangeResult {
31
+ change: BindingChange;
32
+ outcome: RecipeChangeOutcome;
33
+ reason?: string;
34
+ }
35
+ export type RecipeBulkEditEntryStatus = 'will-update' | 'already-satisfied' | 'partially-ignored' | 'blocked' | 'no-applicable-changes';
36
+ export interface RecipeBulkEditEntry {
37
+ recipeId: string;
38
+ recipeName: string;
39
+ original: FdoInventoryRecipe;
40
+ projected: FdoInventoryRecipe | null;
41
+ status: RecipeBulkEditEntryStatus;
42
+ changes: RecipeChangeResult[];
43
+ counts: {
44
+ applied: number;
45
+ ignored: number;
46
+ blocked: number;
47
+ satisfied: number;
48
+ };
49
+ }
50
+ export interface RecipeBulkEditQuery {
51
+ skuId: string;
52
+ amount?: FdoDecimal | null;
53
+ measurementId?: string | null;
54
+ }
55
+ export type FlatBinding = FdoInventoryBinding & {
56
+ recipeIds: string[];
57
+ isGroup?: boolean;
58
+ };
59
+ export declare function flattenBindings(bindings: FdoInventoryBinding[], visitedIds: Set<string>, recipeById: Record<string, FdoInventoryRecipe>): FlatBinding[];
60
+ export declare function deriveChangesFromDiff(original: FdoInventoryRecipe, draft: FdoInventoryRecipe): BindingChange[];
61
+ export declare const useRecipeBulkEditor: import("pinia").StoreDefinition<"recipeBulkEditor", import("pinia")._UnwrapAll<Pick<{
62
+ show: import("vue").Ref<boolean, boolean>;
63
+ currentStep: import("vue").Ref<number, number>;
64
+ query: import("vue").Ref<{
65
+ skuId: string;
66
+ amount?: {
67
+ amount: number;
68
+ precision: number;
69
+ } | null | undefined;
70
+ measurementId?: string | null | undefined;
71
+ } | null, RecipeBulkEditQuery | {
72
+ skuId: string;
73
+ amount?: {
74
+ amount: number;
75
+ precision: number;
76
+ } | null | undefined;
77
+ measurementId?: string | null | undefined;
78
+ } | null>;
79
+ selectedRecipeIds: import("vue").Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
80
+ activeRecipeId: import("vue").Ref<string | null, string | null>;
81
+ activeOriginal: import("vue").ComputedRef<{
82
+ customAttributes?: Record<string, any> | null | undefined;
83
+ version?: "v2" | null | undefined;
84
+ _id: string;
85
+ name: string;
86
+ contains: {
87
+ measurement?: {
88
+ id: string;
89
+ name: string;
90
+ abbrev: string;
91
+ conversion: {
92
+ amount: number;
93
+ precision: number;
94
+ };
95
+ } | null | undefined;
96
+ rules?: Record<string, any> | null | undefined;
97
+ alternatives?: {
98
+ priority?: number | null | undefined;
99
+ default?: boolean | null | undefined;
100
+ trackingMeasurement?: string | null | undefined;
101
+ _id: string;
102
+ }[] | null | undefined;
103
+ id: string;
104
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
105
+ amount: {
106
+ amount: number;
107
+ precision: number;
108
+ };
109
+ }[];
110
+ } | null>;
111
+ activeDraft: import("vue").Ref<{
112
+ customAttributes?: Record<string, any> | null | undefined;
113
+ version?: "v2" | null | undefined;
114
+ _id: string;
115
+ name: string;
116
+ contains: {
117
+ measurement?: {
118
+ id: string;
119
+ name: string;
120
+ abbrev: string;
121
+ conversion: {
122
+ amount: number;
123
+ precision: number;
124
+ };
125
+ } | null | undefined;
126
+ rules?: Record<string, any> | null | undefined;
127
+ alternatives?: {
128
+ priority?: number | null | undefined;
129
+ default?: boolean | null | undefined;
130
+ trackingMeasurement?: string | null | undefined;
131
+ _id: string;
132
+ }[] | null | undefined;
133
+ id: string;
134
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
135
+ amount: {
136
+ amount: number;
137
+ precision: number;
138
+ };
139
+ }[];
140
+ } | null, {
141
+ customAttributes?: Record<string, any> | null | undefined;
142
+ version?: "v2" | null | undefined;
143
+ _id: string;
144
+ name: string;
145
+ contains: {
146
+ measurement?: {
147
+ id: string;
148
+ name: string;
149
+ abbrev: string;
150
+ conversion: {
151
+ amount: number;
152
+ precision: number;
153
+ };
154
+ } | null | undefined;
155
+ rules?: Record<string, any> | null | undefined;
156
+ alternatives?: {
157
+ priority?: number | null | undefined;
158
+ default?: boolean | null | undefined;
159
+ trackingMeasurement?: string | null | undefined;
160
+ _id: string;
161
+ }[] | null | undefined;
162
+ id: string;
163
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
164
+ amount: {
165
+ amount: number;
166
+ precision: number;
167
+ };
168
+ }[];
169
+ } | {
170
+ customAttributes?: Record<string, any> | null | undefined;
171
+ version?: "v2" | null | undefined;
172
+ _id: string;
173
+ name: string;
174
+ contains: {
175
+ measurement?: {
176
+ id: string;
177
+ name: string;
178
+ abbrev: string;
179
+ conversion: {
180
+ amount: number;
181
+ precision: number;
182
+ };
183
+ } | null | undefined;
184
+ rules?: Record<string, any> | null | undefined;
185
+ alternatives?: {
186
+ priority?: number | null | undefined;
187
+ default?: boolean | null | undefined;
188
+ trackingMeasurement?: string | null | undefined;
189
+ _id: string;
190
+ }[] | null | undefined;
191
+ id: string;
192
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
193
+ amount: {
194
+ amount: number;
195
+ precision: number;
196
+ };
197
+ }[];
198
+ } | null>;
199
+ entries: import("vue").Ref<Record<string, RecipeBulkEditEntry>, Record<string, RecipeBulkEditEntry>>;
200
+ isSaving: import("vue").Ref<boolean, boolean>;
201
+ applyErrors: import("vue").Ref<Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>, Map<string, string> | (Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>)>;
202
+ matchedRecipes: import("vue").ComputedRef<{
203
+ customAttributes?: Record<string, any> | null | undefined;
204
+ version?: "v2" | null | undefined;
205
+ _id: string;
206
+ name: string;
207
+ contains: {
208
+ measurement?: {
209
+ id: string;
210
+ name: string;
211
+ abbrev: string;
212
+ conversion: {
213
+ amount: number;
214
+ precision: number;
215
+ };
216
+ } | null | undefined;
217
+ rules?: Record<string, any> | null | undefined;
218
+ alternatives?: {
219
+ priority?: number | null | undefined;
220
+ default?: boolean | null | undefined;
221
+ trackingMeasurement?: string | null | undefined;
222
+ _id: string;
223
+ }[] | null | undefined;
224
+ id: string;
225
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
226
+ amount: {
227
+ amount: number;
228
+ precision: number;
229
+ };
230
+ }[];
231
+ }[]>;
232
+ hasDraftChanges: import("vue").ComputedRef<boolean>;
233
+ hasVersionChange: import("vue").ComputedRef<boolean>;
234
+ pendingChanges: import("vue").ComputedRef<BindingChange[]>;
235
+ openDialog: () => void;
236
+ closeDialog: () => void;
237
+ reset: () => void;
238
+ setQuery: (q: RecipeBulkEditQuery) => void;
239
+ updateFilter: (q: RecipeBulkEditQuery) => void;
240
+ clearQuery: () => void;
241
+ initSelectionFromQuery: () => void;
242
+ setActiveRecipe: (recipeId: string) => void;
243
+ updateDraft: (draft: FdoInventoryRecipe) => void;
244
+ revertActive: () => void;
245
+ toggleSelection: (recipeId: string) => void;
246
+ isSelected: (recipeId: string) => boolean;
247
+ applyDraftToActive: () => void;
248
+ flushAllDraftCache: () => void;
249
+ applyToAll: () => void;
250
+ buildPayload: () => FdoInventoryRecipe[];
251
+ confirmAndApply: () => Promise<void>;
252
+ }, "entries" | "currentStep" | "show" | "query" | "selectedRecipeIds" | "activeRecipeId" | "activeDraft" | "isSaving" | "applyErrors">>, Pick<{
253
+ show: import("vue").Ref<boolean, boolean>;
254
+ currentStep: import("vue").Ref<number, number>;
255
+ query: import("vue").Ref<{
256
+ skuId: string;
257
+ amount?: {
258
+ amount: number;
259
+ precision: number;
260
+ } | null | undefined;
261
+ measurementId?: string | null | undefined;
262
+ } | null, RecipeBulkEditQuery | {
263
+ skuId: string;
264
+ amount?: {
265
+ amount: number;
266
+ precision: number;
267
+ } | null | undefined;
268
+ measurementId?: string | null | undefined;
269
+ } | null>;
270
+ selectedRecipeIds: import("vue").Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
271
+ activeRecipeId: import("vue").Ref<string | null, string | null>;
272
+ activeOriginal: import("vue").ComputedRef<{
273
+ customAttributes?: Record<string, any> | null | undefined;
274
+ version?: "v2" | null | undefined;
275
+ _id: string;
276
+ name: string;
277
+ contains: {
278
+ measurement?: {
279
+ id: string;
280
+ name: string;
281
+ abbrev: string;
282
+ conversion: {
283
+ amount: number;
284
+ precision: number;
285
+ };
286
+ } | null | undefined;
287
+ rules?: Record<string, any> | null | undefined;
288
+ alternatives?: {
289
+ priority?: number | null | undefined;
290
+ default?: boolean | null | undefined;
291
+ trackingMeasurement?: string | null | undefined;
292
+ _id: string;
293
+ }[] | null | undefined;
294
+ id: string;
295
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
296
+ amount: {
297
+ amount: number;
298
+ precision: number;
299
+ };
300
+ }[];
301
+ } | null>;
302
+ activeDraft: import("vue").Ref<{
303
+ customAttributes?: Record<string, any> | null | undefined;
304
+ version?: "v2" | null | undefined;
305
+ _id: string;
306
+ name: string;
307
+ contains: {
308
+ measurement?: {
309
+ id: string;
310
+ name: string;
311
+ abbrev: string;
312
+ conversion: {
313
+ amount: number;
314
+ precision: number;
315
+ };
316
+ } | null | undefined;
317
+ rules?: Record<string, any> | null | undefined;
318
+ alternatives?: {
319
+ priority?: number | null | undefined;
320
+ default?: boolean | null | undefined;
321
+ trackingMeasurement?: string | null | undefined;
322
+ _id: string;
323
+ }[] | null | undefined;
324
+ id: string;
325
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
326
+ amount: {
327
+ amount: number;
328
+ precision: number;
329
+ };
330
+ }[];
331
+ } | null, {
332
+ customAttributes?: Record<string, any> | null | undefined;
333
+ version?: "v2" | null | undefined;
334
+ _id: string;
335
+ name: string;
336
+ contains: {
337
+ measurement?: {
338
+ id: string;
339
+ name: string;
340
+ abbrev: string;
341
+ conversion: {
342
+ amount: number;
343
+ precision: number;
344
+ };
345
+ } | null | undefined;
346
+ rules?: Record<string, any> | null | undefined;
347
+ alternatives?: {
348
+ priority?: number | null | undefined;
349
+ default?: boolean | null | undefined;
350
+ trackingMeasurement?: string | null | undefined;
351
+ _id: string;
352
+ }[] | null | undefined;
353
+ id: string;
354
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
355
+ amount: {
356
+ amount: number;
357
+ precision: number;
358
+ };
359
+ }[];
360
+ } | {
361
+ customAttributes?: Record<string, any> | null | undefined;
362
+ version?: "v2" | null | undefined;
363
+ _id: string;
364
+ name: string;
365
+ contains: {
366
+ measurement?: {
367
+ id: string;
368
+ name: string;
369
+ abbrev: string;
370
+ conversion: {
371
+ amount: number;
372
+ precision: number;
373
+ };
374
+ } | null | undefined;
375
+ rules?: Record<string, any> | null | undefined;
376
+ alternatives?: {
377
+ priority?: number | null | undefined;
378
+ default?: boolean | null | undefined;
379
+ trackingMeasurement?: string | null | undefined;
380
+ _id: string;
381
+ }[] | null | undefined;
382
+ id: string;
383
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
384
+ amount: {
385
+ amount: number;
386
+ precision: number;
387
+ };
388
+ }[];
389
+ } | null>;
390
+ entries: import("vue").Ref<Record<string, RecipeBulkEditEntry>, Record<string, RecipeBulkEditEntry>>;
391
+ isSaving: import("vue").Ref<boolean, boolean>;
392
+ applyErrors: import("vue").Ref<Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>, Map<string, string> | (Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>)>;
393
+ matchedRecipes: import("vue").ComputedRef<{
394
+ customAttributes?: Record<string, any> | null | undefined;
395
+ version?: "v2" | null | undefined;
396
+ _id: string;
397
+ name: string;
398
+ contains: {
399
+ measurement?: {
400
+ id: string;
401
+ name: string;
402
+ abbrev: string;
403
+ conversion: {
404
+ amount: number;
405
+ precision: number;
406
+ };
407
+ } | null | undefined;
408
+ rules?: Record<string, any> | null | undefined;
409
+ alternatives?: {
410
+ priority?: number | null | undefined;
411
+ default?: boolean | null | undefined;
412
+ trackingMeasurement?: string | null | undefined;
413
+ _id: string;
414
+ }[] | null | undefined;
415
+ id: string;
416
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
417
+ amount: {
418
+ amount: number;
419
+ precision: number;
420
+ };
421
+ }[];
422
+ }[]>;
423
+ hasDraftChanges: import("vue").ComputedRef<boolean>;
424
+ hasVersionChange: import("vue").ComputedRef<boolean>;
425
+ pendingChanges: import("vue").ComputedRef<BindingChange[]>;
426
+ openDialog: () => void;
427
+ closeDialog: () => void;
428
+ reset: () => void;
429
+ setQuery: (q: RecipeBulkEditQuery) => void;
430
+ updateFilter: (q: RecipeBulkEditQuery) => void;
431
+ clearQuery: () => void;
432
+ initSelectionFromQuery: () => void;
433
+ setActiveRecipe: (recipeId: string) => void;
434
+ updateDraft: (draft: FdoInventoryRecipe) => void;
435
+ revertActive: () => void;
436
+ toggleSelection: (recipeId: string) => void;
437
+ isSelected: (recipeId: string) => boolean;
438
+ applyDraftToActive: () => void;
439
+ flushAllDraftCache: () => void;
440
+ applyToAll: () => void;
441
+ buildPayload: () => FdoInventoryRecipe[];
442
+ confirmAndApply: () => Promise<void>;
443
+ }, "activeOriginal" | "matchedRecipes" | "hasDraftChanges" | "hasVersionChange" | "pendingChanges">, Pick<{
444
+ show: import("vue").Ref<boolean, boolean>;
445
+ currentStep: import("vue").Ref<number, number>;
446
+ query: import("vue").Ref<{
447
+ skuId: string;
448
+ amount?: {
449
+ amount: number;
450
+ precision: number;
451
+ } | null | undefined;
452
+ measurementId?: string | null | undefined;
453
+ } | null, RecipeBulkEditQuery | {
454
+ skuId: string;
455
+ amount?: {
456
+ amount: number;
457
+ precision: number;
458
+ } | null | undefined;
459
+ measurementId?: string | null | undefined;
460
+ } | null>;
461
+ selectedRecipeIds: import("vue").Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
462
+ activeRecipeId: import("vue").Ref<string | null, string | null>;
463
+ activeOriginal: import("vue").ComputedRef<{
464
+ customAttributes?: Record<string, any> | null | undefined;
465
+ version?: "v2" | null | undefined;
466
+ _id: string;
467
+ name: string;
468
+ contains: {
469
+ measurement?: {
470
+ id: string;
471
+ name: string;
472
+ abbrev: string;
473
+ conversion: {
474
+ amount: number;
475
+ precision: number;
476
+ };
477
+ } | null | undefined;
478
+ rules?: Record<string, any> | null | undefined;
479
+ alternatives?: {
480
+ priority?: number | null | undefined;
481
+ default?: boolean | null | undefined;
482
+ trackingMeasurement?: string | null | undefined;
483
+ _id: string;
484
+ }[] | null | undefined;
485
+ id: string;
486
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
487
+ amount: {
488
+ amount: number;
489
+ precision: number;
490
+ };
491
+ }[];
492
+ } | null>;
493
+ activeDraft: import("vue").Ref<{
494
+ customAttributes?: Record<string, any> | null | undefined;
495
+ version?: "v2" | null | undefined;
496
+ _id: string;
497
+ name: string;
498
+ contains: {
499
+ measurement?: {
500
+ id: string;
501
+ name: string;
502
+ abbrev: string;
503
+ conversion: {
504
+ amount: number;
505
+ precision: number;
506
+ };
507
+ } | null | undefined;
508
+ rules?: Record<string, any> | null | undefined;
509
+ alternatives?: {
510
+ priority?: number | null | undefined;
511
+ default?: boolean | null | undefined;
512
+ trackingMeasurement?: string | null | undefined;
513
+ _id: string;
514
+ }[] | null | undefined;
515
+ id: string;
516
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
517
+ amount: {
518
+ amount: number;
519
+ precision: number;
520
+ };
521
+ }[];
522
+ } | null, {
523
+ customAttributes?: Record<string, any> | null | undefined;
524
+ version?: "v2" | null | undefined;
525
+ _id: string;
526
+ name: string;
527
+ contains: {
528
+ measurement?: {
529
+ id: string;
530
+ name: string;
531
+ abbrev: string;
532
+ conversion: {
533
+ amount: number;
534
+ precision: number;
535
+ };
536
+ } | null | undefined;
537
+ rules?: Record<string, any> | null | undefined;
538
+ alternatives?: {
539
+ priority?: number | null | undefined;
540
+ default?: boolean | null | undefined;
541
+ trackingMeasurement?: string | null | undefined;
542
+ _id: string;
543
+ }[] | null | undefined;
544
+ id: string;
545
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
546
+ amount: {
547
+ amount: number;
548
+ precision: number;
549
+ };
550
+ }[];
551
+ } | {
552
+ customAttributes?: Record<string, any> | null | undefined;
553
+ version?: "v2" | null | undefined;
554
+ _id: string;
555
+ name: string;
556
+ contains: {
557
+ measurement?: {
558
+ id: string;
559
+ name: string;
560
+ abbrev: string;
561
+ conversion: {
562
+ amount: number;
563
+ precision: number;
564
+ };
565
+ } | null | undefined;
566
+ rules?: Record<string, any> | null | undefined;
567
+ alternatives?: {
568
+ priority?: number | null | undefined;
569
+ default?: boolean | null | undefined;
570
+ trackingMeasurement?: string | null | undefined;
571
+ _id: string;
572
+ }[] | null | undefined;
573
+ id: string;
574
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
575
+ amount: {
576
+ amount: number;
577
+ precision: number;
578
+ };
579
+ }[];
580
+ } | null>;
581
+ entries: import("vue").Ref<Record<string, RecipeBulkEditEntry>, Record<string, RecipeBulkEditEntry>>;
582
+ isSaving: import("vue").Ref<boolean, boolean>;
583
+ applyErrors: import("vue").Ref<Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>, Map<string, string> | (Map<string, string> & Omit<Map<string, string>, keyof Map<any, any>>)>;
584
+ matchedRecipes: import("vue").ComputedRef<{
585
+ customAttributes?: Record<string, any> | null | undefined;
586
+ version?: "v2" | null | undefined;
587
+ _id: string;
588
+ name: string;
589
+ contains: {
590
+ measurement?: {
591
+ id: string;
592
+ name: string;
593
+ abbrev: string;
594
+ conversion: {
595
+ amount: number;
596
+ precision: number;
597
+ };
598
+ } | null | undefined;
599
+ rules?: Record<string, any> | null | undefined;
600
+ alternatives?: {
601
+ priority?: number | null | undefined;
602
+ default?: boolean | null | undefined;
603
+ trackingMeasurement?: string | null | undefined;
604
+ _id: string;
605
+ }[] | null | undefined;
606
+ id: string;
607
+ type: "RECIPE" | "SKU" | "SKU_GROUP";
608
+ amount: {
609
+ amount: number;
610
+ precision: number;
611
+ };
612
+ }[];
613
+ }[]>;
614
+ hasDraftChanges: import("vue").ComputedRef<boolean>;
615
+ hasVersionChange: import("vue").ComputedRef<boolean>;
616
+ pendingChanges: import("vue").ComputedRef<BindingChange[]>;
617
+ openDialog: () => void;
618
+ closeDialog: () => void;
619
+ reset: () => void;
620
+ setQuery: (q: RecipeBulkEditQuery) => void;
621
+ updateFilter: (q: RecipeBulkEditQuery) => void;
622
+ clearQuery: () => void;
623
+ initSelectionFromQuery: () => void;
624
+ setActiveRecipe: (recipeId: string) => void;
625
+ updateDraft: (draft: FdoInventoryRecipe) => void;
626
+ revertActive: () => void;
627
+ toggleSelection: (recipeId: string) => void;
628
+ isSelected: (recipeId: string) => boolean;
629
+ applyDraftToActive: () => void;
630
+ flushAllDraftCache: () => void;
631
+ applyToAll: () => void;
632
+ buildPayload: () => FdoInventoryRecipe[];
633
+ confirmAndApply: () => Promise<void>;
634
+ }, "reset" | "openDialog" | "closeDialog" | "setQuery" | "updateFilter" | "clearQuery" | "initSelectionFromQuery" | "setActiveRecipe" | "updateDraft" | "revertActive" | "toggleSelection" | "isSelected" | "applyDraftToActive" | "flushAllDraftCache" | "applyToAll" | "buildPayload" | "confirmAndApply">>;