@feedmepos/mf-inventory-portal 1.7.9-dev.0 → 1.7.9-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.
- package/dist/{App-DvBMEcuJ.js → App-DEdkuDaS.js} +6 -6
- package/dist/{ApprovalView-Bc6xo-gg.js → ApprovalView-DpkYimTU.js} +9 -9
- package/dist/{BindingsDialog-BbTkoM05.js → BindingsDialog-9MteMW5_.js} +2 -2
- package/dist/{BindingsPicker-CkK79U9V.js → BindingsPicker-C3R1Iaci.js} +2 -2
- package/dist/{BindingsTable-CmdCc1mG.js → BindingsTable-yWS4vjmz.js} +4 -4
- package/dist/{BulkReceiveRequestView-BOt07CYr.js → BulkReceiveRequestView-MYLE3mXl.js} +19 -19
- package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-YMRGpkS4.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DrehE0r3.js} +1 -1
- package/dist/{ClosingDraftView-Dec1xuFQ.js → ClosingDraftView-BO0eUpk7.js} +19 -19
- package/dist/{ClosingHistoryView-DuX0UpLC.js → ClosingHistoryView-1Gu4B0qB.js} +5 -5
- package/dist/{ClosingTemplateView-DBPGxWt2.js → ClosingTemplateView-CvAn5afN.js} +16 -16
- package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DWfblvtV.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-CwWbC1oH.js} +1 -1
- package/dist/{DefaultView-D_XfvHrs.js → DefaultView-DeXxhLsq.js} +2 -2
- package/dist/{DeliveryOrderPrintPreview-DfAAAfCJ.js → DeliveryOrderPrintPreview-Bilzn1WS.js} +2 -2
- package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-CdcBrUHW.js → EmailDialog.vue_vue_type_script_setup_true_lang-C5xp1ceO.js} +2250 -2250
- package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-lge1DZ4v.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DL5i2-tq.js} +1 -1
- package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DjYAwlg9.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-Bq36-nnH.js} +2 -2
- package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-vwp2n9KL.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-D2l0nTi_.js} +2 -2
- package/dist/{FmMultiselectDialog-C-kDJtv_.js → FmMultiselectDialog-CKQ1eFVZ.js} +2 -2
- package/dist/{FmMultiselectDialog-BTVaIESZ.js → FmMultiselectDialog-COp24wS3.js} +1 -1
- package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-Mo-hF_cA.js → FmUnitInput.vue_vue_type_script_setup_true_lang-CN4ENCPZ.js} +6 -6
- package/dist/{ImportView-CRAFZVSk.js → ImportView-CB3qjhvy.js} +6 -6
- package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-CuEDzJ0s.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-CBxUyjH8.js} +1 -1
- package/dist/{IngredientGroupView-OeeBfJau.js → IngredientGroupView-DuY6Gw5V.js} +5 -5
- package/dist/{IngredientsView-BHX3xUDm.js → IngredientsView-DxzyJE_h.js} +17 -16
- package/dist/{IntegrationExplorerView-BwxSGD2N.js → IntegrationExplorerView-Ma59NTHM.js} +4 -4
- package/dist/{IntegrationView-CevJNVqG.js → IntegrationView-SBMEO_e9.js} +14 -14
- package/dist/{InventoryBindingForm-wE--IP2D.js → InventoryBindingForm-CBFJRVNH.js} +1 -1
- package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-B-nEFGKA.js +563 -0
- package/dist/{InventoryBindingSummary-BQ-U7tHs.js → InventoryBindingSummary-c5g-35nq.js} +1 -1
- package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-jnXbX2lS.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DEtNW2wJ.js} +1 -1
- package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-BNMCbrIo.js → PremiumBadge.vue_vue_type_script_setup_true_lang-BInLhmxe.js} +1 -1
- package/dist/{ProductionView-CvU9N_mb.js → ProductionView-BlhsrkXW.js} +7 -7
- package/dist/{PublishView-BNnxGtEQ.js → PublishView-bMEZSiVN.js} +3 -3
- package/dist/{PurchaseOrderPrintPreview-Bq9kMWdx.js → PurchaseOrderPrintPreview-HvIFszQX.js} +2 -2
- package/dist/{ReceiveRequestView-zUSU0Uvq.js → ReceiveRequestView-jwXYj2Wy.js} +14 -14
- package/dist/RecipeView-DKd5h85n.js +3625 -0
- package/dist/{SettingsView-CPgsU8Kr.js → SettingsView-BqELMK6p.js} +4 -4
- package/dist/{StockView-D-TJzHhP.js → StockView-6xDfuSnV.js} +21 -21
- package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-B6ez4H3Z.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-CBUZIEA5.js} +1 -1
- package/dist/{SupplierView-D-rODe-B.js → SupplierView-BwMl9JFO.js} +12 -12
- package/dist/{SurchargeView-C88KTCML.js → SurchargeView-AGXGqhxy.js} +6 -6
- package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-CFIK8eEl.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-DQSq3UGp.js} +2 -2
- package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-BNjjTYtk.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-BBUG8N2w.js} +1 -1
- package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-E0FeDPFB.js → TransferDetails.vue_vue_type_script_setup_true_lang-BMrGsD-f.js} +20 -20
- package/dist/{TransferTemplateView-f9A4-wEL.js → TransferTemplateView-DJYXlxpw.js} +20 -20
- package/dist/{UnitCostHistoryView-D26St5yl.js → UnitCostHistoryView-DRgWgXhB.js} +4 -4
- package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-D2z5vabu.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-CR8a6DkX.js} +4 -4
- package/dist/{UnitView-algS_4rD.js → UnitView-mWUCF13E.js} +7 -7
- package/dist/{WarehouseView-BRM-euG4.js → WarehouseView-DY4_bxzS.js} +5 -5
- package/dist/{WastageTemplateView-BWPYvTMC.js → WastageTemplateView-D4YFC_zj.js} +14 -14
- package/dist/{app-BI1fLJ8H.js → app-DCSH6Br7.js} +19 -15
- package/dist/app.d.ts +10 -0
- package/dist/app.js +1 -1
- package/dist/{closing-template-DRQ-A04S.js → closing-template-knrmn7Jq.js} +1 -1
- package/dist/{date2-paxg81i_.js → date2-m9Qq52B4.js} +1 -1
- package/dist/{dayjs.min-CqWwbKI1.js → dayjs.min-BX2fRC46.js} +1 -1
- package/dist/{decimal-tY0JrFld.js → decimal-pgdYbjfw.js} +2 -2
- package/dist/{defineDeepModel-CaP78Goh.js → defineDeepModel-C5kt7Waa.js} +1 -1
- package/dist/{duplicate-template-pTXXQ0VS.js → duplicate-template-B74iiBzz.js} +1 -1
- package/dist/{feature-B2r32qOO.js → feature-CfkazbcV.js} +2 -2
- package/dist/{format-time-from-id-DXMYus4N.js → format-time-from-id-C1AIz8rq.js} +1 -1
- package/dist/{format-unit-display-5hlsZBY2.js → format-unit-display-A-G-IaSa.js} +12 -12
- package/dist/{import-export.helper-BiC2Ghbl.js → import-export.helper-Dx6UODpr.js} +6 -6
- package/dist/{index-rqdAWR69.js → index-CiQiwzTH.js} +3306 -3232
- package/dist/{index-B7eouqPa.js → index-DjKTLy_K.js} +1 -1
- package/dist/{index-KP2-U9x_.js → index-uk9CA-G3.js} +3 -3
- package/dist/{inventory-core-dart.default-ClRRaGtG.js → inventory-core-dart.default-CMAgxo1z.js} +1 -1
- package/dist/{lz-string-CAl-OrXa.js → lz-string-DZI7eVks.js} +1 -1
- package/dist/{netsuite-cH4OybGV.js → netsuite-CoajVOCj.js} +2 -2
- package/dist/{number-BzmDQm_s.js → number-qzibfxtV.js} +3 -3
- package/dist/{predefined-templates-Baz8GEGx.js → predefined-templates-Bi2KN0S0.js} +1 -1
- package/dist/{purchase-order-template-0So3c2iS.js → purchase-order-template-q60hgvfd.js} +1 -1
- package/dist/{recalculationUtils-DJlz5mJL.js → recalculationUtils-ThdsSQXA.js} +1 -1
- package/dist/{rules-BKdtla9-.js → rules-DkRl1mdI.js} +2 -2
- package/dist/{stock-HCSCwSH0.js → stock-CDBl371n.js} +3 -3
- package/dist/{stock-D8M5e53w.js → stock-CfGnNgNm.js} +1 -1
- package/dist/{supplier-1mbcQSiQ.js → supplier-m95t74cw.js} +2 -2
- package/dist/{surcharge-DuxYBaWV.js → surcharge-D0KNDUtM.js} +1 -1
- package/dist/tsconfig.app.tsbuildinfo +1 -1
- package/dist/{uom-rules-Dkbgtow8.js → uom-rules-DoC_viYg.js} +1 -1
- package/dist/{use-ingredient-select-dialog-BXvBvELI.js → use-ingredient-select-dialog-DUDA6jkc.js} +2 -2
- package/dist/{use-inventory-binding-dialog-2lrzHWdQ.js → use-inventory-binding-dialog-DyZVwYRw.js} +2 -2
- package/dist/{use-template-enabled-locations-CrDuAaCj.js → use-template-enabled-locations-DU6ebPLW.js} +2 -2
- package/dist/{use-transfer-locations-C4oTuW_f.js → use-transfer-locations-i4WVdQfZ.js} +2 -2
- package/dist/{useHrmPermission-CxeYlUgA.js → useHrmPermission-D4dofQF9.js} +1 -1
- package/dist/{useNavigationMenu-BWgwgA4U.js → useNavigationMenu-BwZoEiX3.js} +2 -2
- package/dist/{useSseClient-DPA1zg96.js → useSseClient-vOXEoq_d.js} +1 -1
- package/dist/views/ingredients/components/inventory-binding/InventoryBindingForm.vue.d.ts +2 -0
- package/dist/views/ingredients/components/inventory-binding/RecipeBindingBreakdown.vue.d.ts +25 -0
- package/dist/views/ingredients/components/inventory-binding/composables/recipe-breakdown.d.ts +34 -0
- package/dist/views/ingredients/components/inventory-binding/composables/recipe-breakdown.spec.d.ts +1 -0
- package/dist/views/ingredients/components/inventory-binding/v2/InventoryBindingFormV2.vue.d.ts +2 -0
- package/dist/views/ingredients/components/inventory-binding/v2/components/InventoryRecipeBindingV2Field.vue.d.ts +4 -0
- package/dist/views/recipe/composables/use-recipe-table.d.ts +11 -0
- package/dist/{vue-i18n-BSfpVmaF.js → vue-i18n-CV9ieqUG.js} +375 -375
- package/dist/{xlsx.util-DSA9o0Zu.js → xlsx.util-CfgV0r9W.js} +2 -2
- package/package.json +3 -3
- package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-O5IbSGWu.js +0 -441
- package/dist/RecipeView-DkXOK1Iy.js +0 -3584
package/dist/{use-ingredient-select-dialog-BXvBvELI.js → use-ingredient-select-dialog-DUDA6jkc.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineStore as S } from "pinia";
|
|
2
|
-
import { a as b } from "./app-
|
|
3
|
-
import { a as A } from "./FmMultiselectDialog-
|
|
2
|
+
import { a as b } from "./app-DCSH6Br7.js";
|
|
3
|
+
import { a as A } from "./FmMultiselectDialog-CKQ1eFVZ.js";
|
|
4
4
|
import { useDialog as I } from "@feedmepos/ui-library";
|
|
5
5
|
import { useI18n as D } from "@feedmepos/mf-common";
|
|
6
6
|
const w = S(
|
package/dist/{use-inventory-binding-dialog-2lrzHWdQ.js → use-inventory-binding-dialog-DyZVwYRw.js}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as g } from "./FmMultiselectDialog-
|
|
2
|
-
import { a as P } from "./app-
|
|
1
|
+
import { a as g } from "./FmMultiselectDialog-CKQ1eFVZ.js";
|
|
2
|
+
import { a as P } from "./app-DCSH6Br7.js";
|
|
3
3
|
import { useDialog as E } from "@feedmepos/ui-library";
|
|
4
4
|
function A() {
|
|
5
5
|
const u = P(), _ = E();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as A } from "./FmMultiselectDialog-
|
|
2
|
-
import { u as S } from "./app-
|
|
1
|
+
import { a as A } from "./FmMultiselectDialog-CKQ1eFVZ.js";
|
|
2
|
+
import { u as S } from "./app-DCSH6Br7.js";
|
|
3
3
|
import { useI18n as w, useCoreStore as i, useCustomAttributes as _ } from "@feedmepos/mf-common";
|
|
4
4
|
import { useDialog as C, components as p } from "@feedmepos/ui-library";
|
|
5
5
|
import { computed as r, h as c } from "vue";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { u as g, r as l, V as w, Y as R } from "./app-
|
|
2
|
-
import { u as E } from "./supplier-
|
|
1
|
+
import { u as g, r as l, V as w, Y as R } from "./app-DCSH6Br7.js";
|
|
2
|
+
import { u as E } from "./supplier-m95t74cw.js";
|
|
3
3
|
import { computed as u } from "vue";
|
|
4
4
|
function d(n) {
|
|
5
5
|
const c = R.safeParse(n);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { computed as T } from "vue";
|
|
2
|
-
import { b as v, R as e, a6 as b, a7 as O, a5 as A } from "./app-
|
|
2
|
+
import { b as v, R as e, a6 as b, a7 as O, a5 as A } from "./app-DCSH6Br7.js";
|
|
3
3
|
import { useCoreStore as C, useI18n as U } from "@feedmepos/mf-common";
|
|
4
|
-
import { u as _ } from "./feature-
|
|
4
|
+
import { u as _ } from "./feature-CfkazbcV.js";
|
|
5
5
|
const L = O.reduce(
|
|
6
6
|
(o, r) => {
|
|
7
7
|
var i;
|
|
@@ -8,6 +8,8 @@ export interface InventoryBindingFormProps {
|
|
|
8
8
|
disabled?: boolean;
|
|
9
9
|
readonly?: boolean;
|
|
10
10
|
enableIngredientGroup?: boolean;
|
|
11
|
+
/** recipe amounts may be keyed in with decimals — off keeps them whole numbers */
|
|
12
|
+
allowRecipeDecimal?: boolean;
|
|
11
13
|
}
|
|
12
14
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<InventoryBindingFormProps>, {
|
|
13
15
|
modelValue: () => never[];
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
2
|
+
recipeId: string;
|
|
3
|
+
/**
|
|
4
|
+
* The amount keyed in on the row, as typed — every contained amount previews as
|
|
5
|
+
* configured × this. Raw text rather than a number so a cleared field is not read as 0.
|
|
6
|
+
*/
|
|
7
|
+
multiplier: string;
|
|
8
|
+
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
|
|
9
|
+
recipeId: string;
|
|
10
|
+
/**
|
|
11
|
+
* The amount keyed in on the row, as typed — every contained amount previews as
|
|
12
|
+
* configured × this. Raw text rather than a number so a cleared field is not read as 0.
|
|
13
|
+
*/
|
|
14
|
+
multiplier: string;
|
|
15
|
+
}>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
18
|
+
type __VLS_TypePropsToRuntimeProps<T> = {
|
|
19
|
+
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
20
|
+
type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
|
|
21
|
+
} : {
|
|
22
|
+
type: import('vue').PropType<T[K]>;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FdoDecimal } from '@feedmepos/core/entity';
|
|
2
|
+
export interface RecipeBreakdownNode {
|
|
3
|
+
key: string;
|
|
4
|
+
name: string;
|
|
5
|
+
/** configured amount, already compounded through the parent recipes above it */
|
|
6
|
+
amount: FdoDecimal;
|
|
7
|
+
/** unit the amount is keyed in, empty for a recipe or an unresolved binding */
|
|
8
|
+
unit: string;
|
|
9
|
+
depth: number;
|
|
10
|
+
isRecipe: boolean;
|
|
11
|
+
}
|
|
12
|
+
/** what a recipe contains, and how to label a binding — supplied by the store in the composable */
|
|
13
|
+
export interface RecipeBreakdownSource {
|
|
14
|
+
contentsOf: (recipeId: string) => FdoInventoryBinding[];
|
|
15
|
+
bindingName: (binding: FdoInventoryBinding) => string;
|
|
16
|
+
bindingUnit: (binding: FdoInventoryBinding) => string;
|
|
17
|
+
}
|
|
18
|
+
/** exact decimal multiply: integer amounts multiply, precisions add — no float drift */
|
|
19
|
+
export declare function multiplyDecimal(a: FdoDecimal, b: FdoDecimal): FdoDecimal;
|
|
20
|
+
/**
|
|
21
|
+
* What a contained amount works out to for the amount keyed in on the row:
|
|
22
|
+
* configured × input. Takes the raw text, so a row cleared mid-typing previews
|
|
23
|
+
* unscaled rather than flashing zeros — `+''` would read as 0.
|
|
24
|
+
*/
|
|
25
|
+
export declare function previewAmount(amount: FdoDecimal, multiplier: string): string;
|
|
26
|
+
/** the keyed-in text as a decimal; unscaled while it is blank or not yet a number */
|
|
27
|
+
export declare function parseMultiplier(multiplier: string): FdoDecimal;
|
|
28
|
+
/**
|
|
29
|
+
* Flattens a recipe's binding tree depth-first, descending into nested recipes and
|
|
30
|
+
* multiplying each amount by the chain of recipe amounts above it.
|
|
31
|
+
* `visited` keeps a recipe that (transitively) contains itself from recursing forever —
|
|
32
|
+
* the form reports that separately as a circular-dependency error.
|
|
33
|
+
*/
|
|
34
|
+
export declare function flattenRecipeTree(recipeId: string, source: RecipeBreakdownSource, depth?: number, visited?: Set<string>, factor?: FdoDecimal): RecipeBreakdownNode[];
|
package/dist/views/ingredients/components/inventory-binding/composables/recipe-breakdown.spec.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/views/ingredients/components/inventory-binding/v2/InventoryBindingFormV2.vue.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface InventoryBindingFormProps {
|
|
|
19
19
|
recipeBindingConfig?: InventoryRecipeBindingFormConfig;
|
|
20
20
|
skuBindingConfig?: InventorySkuBindingFormConfig;
|
|
21
21
|
enableIngredientGroup?: boolean;
|
|
22
|
+
/** recipe amounts may be keyed in with decimals — off keeps them whole numbers */
|
|
23
|
+
allowRecipeDecimal?: boolean;
|
|
22
24
|
}
|
|
23
25
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<InventoryBindingFormProps>, {
|
|
24
26
|
modelValue: () => never[];
|
|
@@ -27,6 +27,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
27
27
|
} | undefined;
|
|
28
28
|
displayName: string;
|
|
29
29
|
showError: boolean;
|
|
30
|
+
/** recipe amount may be keyed in with decimals — off keeps it a whole number */
|
|
31
|
+
allowRecipeDecimal?: boolean | undefined;
|
|
30
32
|
}>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
31
33
|
delete: (id: string) => void;
|
|
32
34
|
"update:modelValue": (value: {
|
|
@@ -83,6 +85,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
83
85
|
} | undefined;
|
|
84
86
|
displayName: string;
|
|
85
87
|
showError: boolean;
|
|
88
|
+
/** recipe amount may be keyed in with decimals — off keeps it a whole number */
|
|
89
|
+
allowRecipeDecimal?: boolean | undefined;
|
|
86
90
|
}>>> & Readonly<{
|
|
87
91
|
onDelete?: ((id: string) => any) | undefined;
|
|
88
92
|
"onUpdate:modelValue"?: ((value: {
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import type { ColumnDef } from '@tanstack/vue-table';
|
|
2
|
+
/** one resolved binding of a recipe: which nested recipe it came from, and the amount keyed in */
|
|
3
|
+
export type RecipeBindingCell = {
|
|
4
|
+
parentRecipe: string | null;
|
|
5
|
+
label: string;
|
|
6
|
+
};
|
|
7
|
+
/** the bindings of one nested recipe, or the recipe's own when `parentRecipe` is null */
|
|
8
|
+
export type RecipeBindingGroup = {
|
|
9
|
+
parentRecipe: string | null;
|
|
10
|
+
labels: string[];
|
|
11
|
+
};
|
|
2
12
|
export type FormattedRecipe = {
|
|
3
13
|
recipe: string;
|
|
4
14
|
readonly ingredients: string;
|
|
15
|
+
readonly bindings: RecipeBindingGroup[];
|
|
5
16
|
original: FdoInventoryRecipe;
|
|
6
17
|
};
|
|
7
18
|
export declare function useRecipeTable(): {
|