@feedmepos/mf-inventory-portal 1.3.14 → 1.3.16-dev.2

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 (102) hide show
  1. package/dist/App-BckRpjrE.js +309 -0
  2. package/dist/{ApprovalView-BVszC4Cw.js → ApprovalView-C5rVI_O7.js} +17 -17
  3. package/dist/{BindingsDialog-B3L_3xdo.js → BindingsDialog-Y530TN7D.js} +13 -13
  4. package/dist/{BindingsPicker-A4togB2v.js → BindingsPicker-BbQ9Ygep.js} +2 -2
  5. package/dist/{BindingsTable-DacoMdY6.js → BindingsTable-ClHmMFLP.js} +3 -3
  6. package/dist/{ClosingDraftView-C9tvMgLl.js → ClosingDraftView-Dn16j97_.js} +15 -15
  7. package/dist/{ClosingHistoryView-CqqzqSqU.js → ClosingHistoryView-BK7KJbbf.js} +5 -5
  8. package/dist/{ClosingTemplateView-CLi0XE8S.js → ClosingTemplateView-D2petgop.js} +14 -14
  9. package/dist/DefaultView-CdCpGT5n.js +31 -0
  10. package/dist/{DeliveryOrderPrintPreview-DEHEfd80.js → DeliveryOrderPrintPreview-C_S4SG8h.js} +11 -11
  11. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-GT5YUrJz.js +76 -0
  12. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-xxS4P6uo.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-q8fQfbEV.js} +2 -2
  13. package/dist/{FmMultiselectDialog-CR2peMEL.js → FmMultiselectDialog-6JADZ5xC.js} +1 -1
  14. package/dist/{FmMultiselectDialog-FGR8t9rz.js → FmMultiselectDialog-BEkAAZZp.js} +16 -16
  15. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-DgXOsVLe.js → FmUnitInput.vue_vue_type_script_setup_true_lang-kaW8FwP5.js} +6 -5
  16. package/dist/{ImportView-CEI0QqGz.js → ImportView-D8i5_GO9.js} +6 -6
  17. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-cRgKjHY0.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-baV8qK0P.js} +1 -1
  18. package/dist/{IngredientGroupView-DEELNMpl.js → IngredientGroupView-BiqFuJx0.js} +5 -5
  19. package/dist/{IngredientsView-D3OcjZdT.js → IngredientsView-CQHobUvF.js} +15 -15
  20. package/dist/{IntegrationExplorerView-ByPpT3hC.js → IntegrationExplorerView-BFbGH5-S.js} +5 -5
  21. package/dist/{IntegrationView-BSqlJBp-.js → IntegrationView-UF8UwPNk.js} +81 -81
  22. package/dist/{InventoryBindingForm-SgmyJvCs.js → InventoryBindingForm-DB4LwgzC.js} +1 -1
  23. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-GLipe2bO.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-Dc0sxYMV.js} +5 -5
  24. package/dist/{InventoryBindingSummary-D6deGR6B.js → InventoryBindingSummary-Bwn4HZy5.js} +1 -1
  25. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DGDL-t7m.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-BvBOo5wi.js} +1 -1
  26. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-ff1rPUJW.js → PremiumBadge.vue_vue_type_script_setup_true_lang-D2wiVygJ.js} +7 -7
  27. package/dist/{PublishView-7TAa2QQB.js → PublishView-BFac9M5C.js} +15 -15
  28. package/dist/{PurchaseOrderPrintPreview-DhcnInSW.js → PurchaseOrderPrintPreview-tree07u5.js} +11 -11
  29. package/dist/{ReceiveRequestView-Z3JYH3gf.js → ReceiveRequestView-DLERk28I.js} +30 -29
  30. package/dist/RecipeView-DDgN0DkI.js +2898 -0
  31. package/dist/{SettingsView-F_BWUxoq.js → SettingsView-BWw7AhqT.js} +4 -4
  32. package/dist/StockView-D0wW54eN.js +2439 -0
  33. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-CxNgi5uv.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Btor1W6X.js} +1 -1
  34. package/dist/{SupplierView-DklOXwHD.js → SupplierView-Bd_PLuYt.js} +12 -12
  35. package/dist/{SurchargeView-DcImorUr.js → SurchargeView-F1B_fcv-.js} +16 -16
  36. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-xdLxGAOM.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-95m2qnoM.js} +2 -2
  37. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-Bu4XKhII.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-DHKDRFgr.js} +1 -1
  38. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-DMrRfwKD.js → TransferDetails.vue_vue_type_script_setup_true_lang-BC0PNCtM.js} +812 -828
  39. package/dist/{TransferTemplateView-DTdlSI2b.js → TransferTemplateView-DM8qOCpO.js} +20 -19
  40. package/dist/{UnitCostHistoryView-CQ_DJE-t.js → UnitCostHistoryView-Bzocbij3.js} +246 -243
  41. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-QuejzcCL.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-BDzz91rl.js} +4 -4
  42. package/dist/{UnitView-DzcCdCGw.js → UnitView-EndrhMnI.js} +7 -7
  43. package/dist/{WarehouseView-BYj9DD1N.js → WarehouseView-BJZELae1.js} +25 -25
  44. package/dist/{WastageTemplateView--w6an2Ar.js → WastageTemplateView-s6ZiQR8E.js} +14 -14
  45. package/dist/{app-CPlgHGkC.js → app-CaGW5ogt.js} +23768 -22367
  46. package/dist/app.d.ts +148 -6
  47. package/dist/app.js +5 -5
  48. package/dist/{closing-template-B9JOB9ah.js → closing-template-CUgXd6Na.js} +1 -1
  49. package/dist/components/HrmPermissionGuard.vue.d.ts +54 -0
  50. package/dist/composable/useHrmPermission.d.ts +17 -0
  51. package/dist/composable/useInventoryAccess.d.ts +11 -0
  52. package/dist/composable/useNavigationMenu.d.ts +14 -0
  53. package/dist/{date2-Ci9tlLMJ.js → date2-fQDP1Rtk.js} +1 -1
  54. package/dist/{dayjs.min-DTx2lmq6.js → dayjs.min-UwaUKDHA.js} +32 -32
  55. package/dist/{decimal-iKhH_VJO.js → decimal-CKysiOcn.js} +2 -2
  56. package/dist/{defineDeepModel-C25T8oyP.js → defineDeepModel-CwM7TJuT.js} +1 -1
  57. package/dist/{duplicate-template-BptIBRQ3.js → duplicate-template-Bb5b_40t.js} +1 -1
  58. package/dist/{empty-placeholder-wf6-BWE8.js → empty-placeholder-B0QU467o.js} +1 -1
  59. package/dist/{export-CKuVd5pP.js → export-nbyx5EYR.js} +1 -1
  60. package/dist/{feature-CXMSo4z7.js → feature-Dqme8-Xr.js} +22 -22
  61. package/dist/{format-time-from-id-Bk60g6lh.js → format-time-from-id-DsRN_JB-.js} +1 -1
  62. package/dist/{format-unit-display-C4nf8hG8.js → format-unit-display-Df1v6CMC.js} +11 -11
  63. package/dist/{import-export.helper-BDzsQcYD.js → import-export.helper-QInnTLhY.js} +6 -6
  64. package/dist/{index-CUVlQagt.js → index-BCwp1fKe.js} +3 -3
  65. package/dist/{index-DiKOwY5C.js → index-CbwjQK_M.js} +1 -1
  66. package/dist/{index-DTszDSPO.js → index-Cij7rBSm.js} +1 -1
  67. package/dist/{inventory-core-dart.default-Cn3sonot.js → inventory-core-dart.default-Bgq3Sd7C.js} +10 -10
  68. package/dist/{lodash-DGOK6ZkA.js → lodash-B15PREHg.js} +1 -1
  69. package/dist/{lz-string-QrWbdmw6.js → lz-string-DdnEcXDA.js} +21 -21
  70. package/dist/{netsuite-DglgyKcZ.js → netsuite-NcBlI9QO.js} +37 -37
  71. package/dist/{number-Ut7u2ZEE.js → number-DQ-rkxYN.js} +11 -11
  72. package/dist/{predefined-templates-DZtFebPU.js → predefined-templates-zYAuXO9-.js} +1 -1
  73. package/dist/{purchase-order-template-DhNVhXmD.js → purchase-order-template-DcoKKoiW.js} +1 -1
  74. package/dist/{recalculationUtils-CqJRd9B2.js → recalculationUtils-MW6hf5oz.js} +1 -1
  75. package/dist/router/name.d.ts +1 -0
  76. package/dist/router/route-permission.d.ts +10 -0
  77. package/dist/{rules-BIm67nl_.js → rules-CxC7ePEb.js} +2 -2
  78. package/dist/{stock-Dc4_U69J.js → stock-Bly2vXJq.js} +28 -27
  79. package/dist/{stock-CzdMn9n8.js → stock-Bqk5_C4b.js} +3 -3
  80. package/dist/{supplier-De5G6CeF.js → supplier-B0yIc028.js} +2 -2
  81. package/dist/{surcharge-CN5FtDZq.js → surcharge-BZa9y16I.js} +8 -8
  82. package/dist/tsconfig.app.tsbuildinfo +1 -1
  83. package/dist/{use-ingredient-select-dialog-Wy4CtYcZ.js → use-ingredient-select-dialog-BGPPfGO-.js} +2 -2
  84. package/dist/{use-inventory-binding-dialog-C1LCH0jV.js → use-inventory-binding-dialog-DUsjKdNr.js} +2 -2
  85. package/dist/{use-template-enabled-locations-BfZFcXZ_.js → use-template-enabled-locations-D2EWKhWK.js} +2 -2
  86. package/dist/use-transfer-locations-BRQbfZYI.js +116 -0
  87. package/dist/useHrmPermission-BZSfcBwi.js +16 -0
  88. package/dist/useNavigationMenu-C7F5h-H5.js +162 -0
  89. package/dist/views/DefaultView.vue.d.ts +2 -0
  90. package/dist/views/receive-request/composables/use-order-draft-permission.d.ts +2 -5
  91. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorDialog.vue.d.ts +19 -0
  92. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorQueryStep.vue.d.ts +2 -0
  93. package/dist/views/recipe/components/recipe-bulk-editor/RecipeBulkEditorSummaryStep.vue.d.ts +2 -0
  94. package/dist/views/recipe/composables/use-recipe-bulk-editor.d.ts +634 -0
  95. package/dist/{vue-i18n-CvVV4Xof.js → vue-i18n-BuXEP0EQ.js} +348 -348
  96. package/dist/{xlsx-lawW6Hwh.js → xlsx-C0BSmeBh.js} +1 -1
  97. package/dist/{xlsx.util-DSCqPt8v.js → xlsx.util-CyLHh8k-.js} +1 -1
  98. package/package.json +4 -3
  99. package/dist/App-BQZQFNKG.js +0 -411
  100. package/dist/FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BDZVaj3l.js +0 -188
  101. package/dist/RecipeView--ALwYD-O.js +0 -1692
  102. package/dist/StockView-BLrquJf2.js +0 -2406
@@ -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">>;