@feedmepos/mf-inventory-portal 1.8.0-dev.2 → 1.8.0-dev.21

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 (248) hide show
  1. package/dist/App-BxpqrT2x.js +1445 -0
  2. package/dist/{ApprovalView-RaXuWWSu.js → ApprovalView-DZBM9n1Y.js} +26 -25
  3. package/dist/{BindingsDialog-DomvXijP.js → BindingsDialog-jjHrmqY_.js} +2 -2
  4. package/dist/{BindingsPicker-DGnzxEs7.js → BindingsPicker-Dv1KwHIQ.js} +2 -2
  5. package/dist/{BindingsTable-DfG9kWrv.js → BindingsTable-Ch_TlrZu.js} +10 -10
  6. package/dist/BulkReceiveRequestPage-BVB3PNxF.js +2839 -0
  7. package/dist/{ChangeLocationComponent.vue_vue_type_script_setup_true_lang-CVekIoiN.js → ChangeLocationComponent.vue_vue_type_script_setup_true_lang-DpHYhOmI.js} +1 -1
  8. package/dist/{ClosingDraftView-C3n66bbh.js → ClosingDraftView-DQQkWYOh.js} +748 -746
  9. package/dist/ClosingHistoryView-CXXd0Csp.js +769 -0
  10. package/dist/{ClosingTemplateView-DwGloYxn.js → ClosingTemplateView-Bf5Ivxjw.js} +22 -21
  11. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-9eY_r8LF.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-C3Y_rwNE.js} +1 -1
  12. package/dist/{DefaultView-JC_e4xgC.js → DefaultView-Bt8ZFV10.js} +2 -2
  13. package/dist/{DeliveryOrderPrintPreview-BBCvI67S.js → DeliveryOrderPrintPreview-BS5ZKe1f.js} +15 -15
  14. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-H4FWc9ga.js → EmailDialog.vue_vue_type_script_setup_true_lang-BvDFKrFF.js} +10077 -9950
  15. package/dist/FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-B389iY-f.js +48 -0
  16. package/dist/FeatureCapabilityGate-BAOroN-j.js +82 -0
  17. package/dist/FeaturePageGate.vue_vue_type_script_setup_true_lang-Xapa8xyy.js +189 -0
  18. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-Q8Mptiv3.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-CgbvPK8u.js} +1 -1
  19. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-CE1_yyHe.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DnCj1qv6.js} +2 -2
  20. package/dist/{FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CGJi3f86.js → FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-CUb4VGOc.js} +2 -2
  21. package/dist/{FmMultiselectDialog-DCaRlBIy.js → FmMultiselectDialog-Bz8bNuK2.js} +2 -2
  22. package/dist/FmMultiselectDialog-CosTDuNE.js +123 -0
  23. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-ClaLVtpK.js → FmUnitInput.vue_vue_type_script_setup_true_lang-3OrHiybe.js} +105 -99
  24. package/dist/ImportView-BoTmcCyn.js +1540 -0
  25. package/dist/{IngredientsView-DPj9lBTK.js → IngredientsView-VED94pGW.js} +691 -689
  26. package/dist/{IntegrationExplorerView-CO2wpUR_.js → IntegrationExplorerView-B9ZY9hG1.js} +1537 -1620
  27. package/dist/IntegrationPlatformView-Bar1zj3R.js +13385 -0
  28. package/dist/{IntegrationView-DIeZoey0.js → IntegrationView-BvzBDBGp.js} +2604 -2565
  29. package/dist/{InventoryBindingForm-Cj4_Chue.js → InventoryBindingForm-DWhXHIaL.js} +1 -1
  30. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-mZRrPywY.js +472 -0
  31. package/dist/{InventoryBindingSummary-yzGzd7jJ.js → InventoryBindingSummary-Imo2J8O2.js} +1 -1
  32. package/dist/JsonViewer.vue_vue_type_script_setup_true_lang-C_hg75l0.js +25 -0
  33. package/dist/NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CChCnKxa.js +79 -0
  34. package/dist/PlanTierBadge.vue_vue_type_script_setup_true_lang-CM3gtYZo.js +19 -0
  35. package/dist/PlanUpgradeDialog.vue_vue_type_script_setup_true_lang-0F-yOcPC.js +79 -0
  36. package/dist/PremiumUpgradePage.vue_vue_type_script_setup_true_lang-DGAxPOEh.js +58 -0
  37. package/dist/ProductionRunDetailPage-KFKeWhhY.js +2317 -0
  38. package/dist/{ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-BYyiiAWb.js → ProductionRunLifecycleDialogs.vue_vue_type_script_setup_true_lang-CobaPkUr.js} +3053 -3163
  39. package/dist/ProductionRunPage-BrXsPo-A.js +954 -0
  40. package/dist/{PublishView-CPK9NeVF.js → PublishView-_k3N44Pl.js} +3 -3
  41. package/dist/{PurchaseOrderPrintPreview-DosqWQeN.js → PurchaseOrderPrintPreview-DXVEhy-G.js} +17 -17
  42. package/dist/{ReceiveRequestView-BxSkpK2t.js → ReceiveRequestView-ByWddqiL.js} +17 -16
  43. package/dist/RecipeView-C29uNZxj.js +3272 -0
  44. package/dist/SettingsView-CyE6ZM8x.js +1005 -0
  45. package/dist/StockView-BBR404Ie.js +3003 -0
  46. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-GdGJCuc0.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-Cmnk66T9.js} +1 -1
  47. package/dist/{SupplierView-BKxKoi_0.js → SupplierView-CIB5GCwp.js} +304 -301
  48. package/dist/{SurchargeView-Db4cwhZv.js → SurchargeView-DNtEbO7I.js} +7 -7
  49. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-CpkF77Ow.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-ClCi5rLI.js} +2 -2
  50. package/dist/TableActionableRow.vue_vue_type_script_setup_true_lang-gJQQKKAC.js +71 -0
  51. package/dist/TemplatePublishDialog.vue_vue_type_script_setup_true_lang-C19KOLrQ.js +332 -0
  52. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-DD5nMsrn.js +4953 -0
  53. package/dist/TransferTemplateView-BftwH1_W.js +2347 -0
  54. package/dist/{UnitCostHistoryView-CqcyjCCd.js → UnitCostHistoryView-CE-1joTV.js} +4 -4
  55. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-DO80_8SZ.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-reJFavQF.js} +4 -4
  56. package/dist/{UnitView-BqdK1AM_.js → UnitView-T-Vo8IpV.js} +111 -106
  57. package/dist/{WarehouseView-COJM9IXM.js → WarehouseView-CzQcj5VY.js} +12 -11
  58. package/dist/{WastageTemplateView-DW3viTHN.js → WastageTemplateView-Cm5_V2zN.js} +19 -18
  59. package/dist/api/bill.d.ts +4 -2
  60. package/dist/api/bill.spec.d.ts +1 -0
  61. package/dist/api/closing.d.ts +1 -0
  62. package/dist/api/feature-flags.d.ts +4 -0
  63. package/dist/api/integration-sync-log.d.ts +0 -13
  64. package/dist/api/license.d.ts +0 -2
  65. package/dist/api/netsuite-explorer.d.ts +1 -0
  66. package/dist/api/stock.d.ts +1 -1
  67. package/dist/{app-yvK__CBL.js → app-DnOtng5V.js} +10177 -10126
  68. package/dist/app.d.ts +151 -164
  69. package/dist/app.js +1 -1
  70. package/dist/bulk-edit-simulation.helper-BZRyNbpM.js +178 -0
  71. package/dist/{closing-template-DezidSM0.js → closing-template-BiJRchG9.js} +4 -4
  72. package/dist/components/FeatureCapabilityBadge.vue.d.ts +4 -0
  73. package/dist/components/FeatureCapabilityGate.spec.d.ts +1 -0
  74. package/dist/components/FeatureCapabilityGate.vue.d.ts +5 -0
  75. package/dist/components/FeatureGateLayout.vue.d.ts +11 -0
  76. package/dist/components/FeaturePageGate.spec.d.ts +1 -0
  77. package/dist/components/FeaturePageGate.vue.d.ts +34 -0
  78. package/dist/components/FmAdminCollapsiblePanel.vue.d.ts +1 -1
  79. package/dist/components/FmDroppableField.vue.d.ts +1 -1
  80. package/dist/components/FmInventoryTableToolbar.vue.d.ts +2 -2
  81. package/dist/components/FmUnitInputProps.d.ts +1 -0
  82. package/dist/components/FmUnitInputRules.d.ts +1 -1
  83. package/dist/components/HrmPermissionGuard.vue.d.ts +1 -1
  84. package/dist/components/NumberPrecisionInput.spec.d.ts +1 -0
  85. package/dist/{views/ingredient-group/IngredientGroupView.vue.d.ts → components/PremiumUpgradePage.vue.d.ts} +0 -1
  86. package/dist/components/TemplatePublishDialog.d.ts +2 -0
  87. package/dist/components/TemplatePublishDialog.spec.d.ts +1 -0
  88. package/dist/composable/defineApi.d.ts +1 -1
  89. package/dist/{date2-2XjepIqc.js → date2-Bzlk0lSj.js} +1 -1
  90. package/dist/{dayjs.min-CNp5DLBB.js → dayjs.min-B8gqMYa7.js} +1 -1
  91. package/dist/{decimal-Z7oJdGk8.js → decimal-utE08Cjv.js} +2 -2
  92. package/dist/{defineDeepModel-CMxJn_H2.js → defineDeepModel-D_tKNP-n.js} +5 -5
  93. package/dist/{duplicate-template-BetV5oy_.js → duplicate-template-lCi99jVD.js} +1 -1
  94. package/dist/{feature-CkWaZ-5K.js → feature-Zeyz4pJe.js} +2089 -2854
  95. package/dist/feature-flags/core.d.ts +4 -2
  96. package/dist/feature-flags/portal-feature-catalog.d.ts +1 -6
  97. package/dist/feature-flags/portal-feature-catalog.spec.d.ts +1 -0
  98. package/dist/feature-flags/vue.d.ts +24 -1
  99. package/dist/feature-flags/vue.spec.d.ts +1 -0
  100. package/dist/{format-time-from-id-DatSI9uD.js → format-time-from-id-v_KvI4jM.js} +1 -1
  101. package/dist/{format-unit-display-DM5We5cx.js → format-unit-display-C8oexlpM.js} +209 -208
  102. package/dist/helper/country.spec.d.ts +1 -0
  103. package/dist/helper/menu-usage-module.d.ts +2 -1
  104. package/dist/helper/number.d.ts +5 -1
  105. package/dist/helper/rules.d.ts +1 -1
  106. package/dist/{id-to-date-Dxw2jKhy.js → id-to-date-Doi1vn9Q.js} +1 -1
  107. package/dist/{import-export.helper-BOmADwUw.js → import-export.helper-DyRPa4wa.js} +17 -17
  108. package/dist/{index-CIH9NCvs.js → index-B-SVjo8N.js} +1 -1
  109. package/dist/{index-ClYgfwW7.js → index-Bl8qrC1m.js} +2234 -2163
  110. package/dist/{JsonViewer.vue_vue_type_script_setup_true_lang-ig2zSXAB.js → index-C25C1Dg7.js} +1074 -1066
  111. package/dist/{index-7fz5sGDO.js → index-DZ9i-1uy.js} +3 -3
  112. package/dist/index-eGvSlWMU.js +1892 -0
  113. package/dist/layout/SingleColumnLayout.vue.d.ts +1 -1
  114. package/dist/{lz-string-CCsc2X7t.js → lz-string-pPNhTzCj.js} +1 -1
  115. package/dist/menu-usage-module-Bq_KLsO4.js +74 -0
  116. package/dist/{netsuite-COumFXC2.js → netsuite-C5s0JXRA.js} +254 -263
  117. package/dist/netsuite-explorer-BF-bujxD.js +79 -0
  118. package/dist/{predefined-templates-Bw9A9LNA.js → predefined-templates-C6hmqqhm.js} +1 -1
  119. package/dist/production-run-list-DR1WsaBR.js +61 -0
  120. package/dist/{purchase-order-template-BaZjdGq8.js → purchase-order-template-C0XlITpK.js} +1 -1
  121. package/dist/{recalculationUtils-t32wAurN.js → recalculationUtils-CnzCEyIJ.js} +1 -1
  122. package/dist/router/name.d.ts +2 -2
  123. package/dist/{row-action.enum-BDeudY4d.js → row-action.enum-Ci5mHFdS.js} +1 -1
  124. package/dist/rules-rAD4INHX.js +243 -0
  125. package/dist/{stock-B59sfN28.js → stock-CukGlv0u.js} +1 -1
  126. package/dist/stock-DUQYl3xe.js +78 -0
  127. package/dist/stores/feature.d.ts +41 -11
  128. package/dist/stores/feature.load-state.spec.d.ts +1 -0
  129. package/dist/stores/inventory.d.ts +0 -47
  130. package/dist/stores/inventory.no-location.spec.d.ts +1 -0
  131. package/dist/stores/supplier.d.ts +1 -1
  132. package/dist/stores/warehouse.d.ts +1 -1
  133. package/dist/style.css +1 -1
  134. package/dist/{supplier-DnbLJ_cS.js → supplier-CDPdi2B5.js} +2 -2
  135. package/dist/{surcharge-C1uE3uQa.js → surcharge-XABFccMt.js} +1 -1
  136. package/dist/tsconfig.app.tsbuildinfo +1 -1
  137. package/dist/{uom-rules-DjfyrFHJ.js → uom-rules-BbNTM-Xw.js} +1 -1
  138. package/dist/{use-ingredient-select-dialog-7A7fWyEH.js → use-ingredient-select-dialog-CxrFXfoM.js} +2 -2
  139. package/dist/use-inventory-binding-dialog-BZpguHE1.js +113 -0
  140. package/dist/{use-template-enabled-locations-C-Hqqgzt.js → use-template-enabled-locations-B9n-uc36.js} +2 -2
  141. package/dist/{use-transfer-locations-CqsXvOI2.js → use-transfer-locations-z78M6XgR.js} +14 -14
  142. package/dist/{useHrmPermission-BzwD3Ctc.js → useHrmPermission-CfMWeFGZ.js} +1 -1
  143. package/dist/{useNavigationMenu-PrZg9HS7.js → useNavigationMenu-B6dCSflb.js} +111 -117
  144. package/dist/{useSseClient-FCyLWq8k.js → useSseClient-ICUObHUB.js} +1 -1
  145. package/dist/views/changelog/composables/use-snapshot-diff.d.ts +2 -2
  146. package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +1 -1
  147. package/dist/views/closing-draft/helpers/draft-status-to-class-name.helper.d.ts +1 -1
  148. package/dist/views/import/helper/submit-rows.d.ts +1 -1
  149. package/dist/views/ingredients/components/inventory-binding/InventoryBindingForm.vue.d.ts +0 -1
  150. package/dist/views/ingredients/components/inventory-binding/composables/use-inventory-binding-dialog.d.ts +0 -1
  151. package/dist/views/ingredients/components/inventory-binding/recipe-amount-validation.spec.d.ts +1 -0
  152. package/dist/views/ingredients/components/inventory-binding/v2/InventoryBindingFormV2.vue.d.ts +0 -1
  153. package/dist/views/ingredients/components/inventory-binding/v2/composables/use-inventory-binding-dialog.d.ts +0 -1
  154. package/dist/views/ingredients/helper/is-linked-ingredient-error.d.ts +3 -1
  155. package/dist/views/{ingredient-group/components/ingredient-group-rule-field/IngredientGroupRuleField.vue.d.ts → integration/IntegrationPlatformView.vue.d.ts} +11 -24
  156. package/dist/views/integration/components/Synergy/importFn.spec.d.ts +1 -0
  157. package/dist/views/integration/components/Xilnex/importFn.spec.d.ts +1 -0
  158. package/dist/views/integration/helper/opening-balance.d.ts +22 -0
  159. package/dist/views/integration/helper/opening-balance.spec.d.ts +1 -0
  160. package/dist/views/production-run/ProductionRunDetailPage.spec.d.ts +1 -0
  161. package/dist/views/{integration/components/IntegrationSyncLogTab.vue.d.ts → production-run/ProductionRunDetailPage.vue.d.ts} +2 -2
  162. package/dist/views/production-run/ProductionRunPage.vue.d.ts +2 -0
  163. package/dist/views/production-run/features/detail/ProductionRunItemsTable.vue.d.ts +2 -2
  164. package/dist/views/production-run/features/detail/ProductionRunOverviewTab.vue.d.ts +4 -4
  165. package/dist/views/production-run/features/detail/use-production-run-detail.d.ts +19 -9
  166. package/dist/views/production-run/features/lifecycle/CancelRunDialog.vue.d.ts +4 -4
  167. package/dist/views/production-run/features/lifecycle/CloseRunDialog.vue.d.ts +4 -4
  168. package/dist/views/production-run/features/lifecycle/ProductionRunLifecycleDialogs.vue.d.ts +14 -14
  169. package/dist/views/production-run/features/lifecycle/TargetReachedDialog.vue.d.ts +4 -4
  170. package/dist/views/production-run/features/planning/ProductionRunFormDialog.vue.d.ts +4 -4
  171. package/dist/views/production-run/features/planning/ProductionRunPlanner.vue.d.ts +1 -1
  172. package/dist/views/production-run/features/planning/use-production-run-duplicate-sources.d.ts +6 -6
  173. package/dist/views/production-run/shared/helpers/production-run-navigation.d.ts +0 -1
  174. package/dist/views/production-run/shared/model/production-run-list.d.ts +1 -1
  175. package/dist/views/production-run/shared/ui/ProductionRunInfoBadge.vue.d.ts +1 -1
  176. package/dist/views/production-run/shared/ui/ProductionRunInfoText.vue.d.ts +1 -1
  177. package/dist/views/production-run/shared/ui/ProductionRunScrollHint.vue.d.ts +2 -2
  178. package/dist/views/production-run/shared/ui/ProductionRunTextarea.vue.d.ts +3 -3
  179. package/dist/views/receive-request/composables/netsuite-order-label.d.ts +11 -0
  180. package/dist/views/receive-request/composables/netsuite-order-label.spec.d.ts +1 -0
  181. package/dist/views/receive-request/composables/use-process-purchase-order.d.ts +1 -1
  182. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +9 -9
  183. package/dist/views/receive-request/composables/use-receive-request-form.spec.d.ts +1 -0
  184. package/dist/views/receive-request/composables/use-receive-request-table.d.ts +7 -7
  185. package/dist/views/receive-request/import/export.spec.d.ts +1 -0
  186. package/dist/views/receive-request-bulk/BulkReceiveRequestPage.vue.d.ts +2 -0
  187. package/dist/views/receive-request-bulk/components/CreateTransferWizard.spec.d.ts +1 -0
  188. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-form.d.ts +20 -20
  189. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-form.readiness.spec.d.ts +1 -0
  190. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-table.d.ts +2 -2
  191. package/dist/views/recipe/components/recipe-bulk-editor/components/ModificationCard.spec.d.ts +1 -0
  192. package/dist/views/recipe/helper/bulk-edit-simulation.helper.d.ts +0 -1
  193. package/dist/views/recipe/helper/import-recipe.d.ts +32 -2
  194. package/dist/views/recipe/helper/import-recipe.spec.d.ts +1 -0
  195. package/dist/views/settings/PlanLicenseDisplay.spec.d.ts +1 -0
  196. package/dist/views/settings/PlanLicenseDisplay.vue.d.ts +2 -0
  197. package/dist/views/stock/components/StockRecordCard.spec.d.ts +1 -0
  198. package/dist/views/stock/components/StockRecordCard.vue.d.ts +19 -865
  199. package/dist/views/stock/components/dialog/AmendAdjustmentForm.spec.d.ts +1 -0
  200. package/dist/views/stock/components/dialog/BillInventoryInfoDialog.spec.d.ts +1 -0
  201. package/dist/views/stock/components/dialog/BillInventoryInfoDialog.vue.d.ts +36 -0
  202. package/dist/views/stock/components/dialog/ConvertSkuDialog.spec.d.ts +1 -0
  203. package/dist/views/stock/composables/use-last-closing-summary.d.ts +4 -0
  204. package/dist/views/stock/composables/use-last-closing-summary.spec.d.ts +1 -0
  205. package/dist/views/transfer-template/components/transfer-template-form/composables/use-transfer-template-items.spec.d.ts +1 -0
  206. package/dist/views/transfer-template/helpers/template-item.error.helper.spec.d.ts +1 -0
  207. package/dist/views/unit/composables/use-unit-form.spec.d.ts +1 -0
  208. package/dist/views/warehouse/components/WarehouseForm.vue.d.ts +2 -2
  209. package/dist/vue-DBxqzbt5.js +295 -0
  210. package/dist/{vue-i18n-C34f-Tph.js → vue-i18n-CdbY8MsR.js} +539 -539
  211. package/dist/{xlsx.util-X4amwe_k.js → xlsx.util-CD5NablT.js} +2 -2
  212. package/package.json +71 -66
  213. package/dist/App-DVHgBTHP.js +0 -1499
  214. package/dist/BulkReceiveRequestView-DxHWrfbi.js +0 -2656
  215. package/dist/ClosingHistoryView-kdpYGy1Y.js +0 -761
  216. package/dist/DeprecateSoonWarningDialog.vue_vue_type_script_setup_true_lang-5Cc08Svt.js +0 -58
  217. package/dist/FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-C1C8aDA6.js +0 -61
  218. package/dist/FmMultiselectDialog-yVPY5aBV.js +0 -77
  219. package/dist/ImportView-DQrVMzxN.js +0 -1302
  220. package/dist/IngredientBindedItem.vue_vue_type_script_setup_true_lang-7lT5UZc8.js +0 -51
  221. package/dist/IngredientGroupView-BMUnEaY7.js +0 -1000
  222. package/dist/InventoryBindingForm.vue_vue_type_script_setup_true_lang-CaBOK7NC.js +0 -563
  223. package/dist/NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DzzTPdyF.js +0 -72
  224. package/dist/ProductionRunDetailView-Cw-ecaey.js +0 -2312
  225. package/dist/ProductionRunView-C11eseXQ.js +0 -930
  226. package/dist/RecipeView-oHDWsT0P.js +0 -3624
  227. package/dist/SettingsView-QlUNwFhM.js +0 -983
  228. package/dist/StockView-a8LbVZ_7.js +0 -2614
  229. package/dist/TableActionableRow.vue_vue_type_script_setup_true_lang-DAMpuZ1X.js +0 -84
  230. package/dist/TemplatePublishDialog.vue_vue_type_script_setup_true_lang-CCCj4WVF.js +0 -299
  231. package/dist/TransferDetails.vue_vue_type_script_setup_true_lang-CFNPXqt5.js +0 -4796
  232. package/dist/TransferTemplateView-CzwxOBMQ.js +0 -2326
  233. package/dist/menu-usage-module-BdjYEk3s.js +0 -57
  234. package/dist/number-gSLvxNqA.js +0 -138
  235. package/dist/portal-feature-catalog-yGIESKTc.js +0 -246
  236. package/dist/random-CSbEbElR.js +0 -10
  237. package/dist/rules-C1btu0Md.js +0 -98
  238. package/dist/stock-BF86TMW0.js +0 -75
  239. package/dist/use-inventory-binding-dialog-Cc1tjTfV.js +0 -152
  240. package/dist/usePromise-CbVUCxhj.js +0 -29
  241. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialog.vue.d.ts +0 -31
  242. package/dist/views/ingredient-group/components/ingredient-group-dialog/IngredientGroupDialogProps.d.ts +0 -10
  243. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupForm.vue.d.ts +0 -21
  244. package/dist/views/ingredient-group/components/ingredient-group-form/IngredientGroupFormProps.d.ts +0 -12
  245. package/dist/views/ingredient-group/composables/use-ingredient-group-actions.d.ts +0 -24
  246. package/dist/views/ingredient-group/composables/use-ingredient-group-rule-item.d.ts +0 -31
  247. package/dist/views/ingredient-group/composables/use-ingredient-group-table.d.ts +0 -77
  248. package/dist/views/integration/composables/use-integration-sync-log.d.ts +0 -45
@@ -0,0 +1,79 @@
1
+ import { d as i } from "./app-DnOtng5V.js";
2
+ import { useCoreStore as $ } from "@feedmepos/mf-common";
3
+ const B = i((n, s) => {
4
+ const u = $();
5
+ function o() {
6
+ var e;
7
+ return ((e = u.currentBusiness.value) == null ? void 0 : e._id) ?? "";
8
+ }
9
+ return {
10
+ // ============================ Orders ============================
11
+ /**
12
+ * Look up a single NetSuite order by its internal ID.
13
+ */
14
+ async readOrderById(e, r) {
15
+ const t = o(), a = `${n.netSuiteBackendUrl}/${t}/v2/explorer/order/${e}/${r}`;
16
+ return await s.get(a);
17
+ },
18
+ async readOrderTypeById(e) {
19
+ const r = o(), t = `${n.netSuiteBackendUrl}/${r}/v2/explorer/order/type/${encodeURIComponent(e)}`;
20
+ return (await s.get(t)).recordType;
21
+ },
22
+ /**
23
+ * List NetSuite records by date range, cross-referenced with FM POs.
24
+ * Returns records with purchaseOrderSeqNo (null = unsynced, number = synced).
25
+ */
26
+ async browseOrdersByDateRange(e, r, t, a) {
27
+ const d = o(), c = `${n.netSuiteBackendUrl}/${d}/v2/explorer/order/${e}/${r}`;
28
+ return await s.post(c, {
29
+ startDate: t,
30
+ endDate: a
31
+ });
32
+ },
33
+ /**
34
+ * Query NetSuite records by IDs or date range using unified endpoint.
35
+ * Supports lookup by recordIds, transactionIds, or date range.
36
+ * Returns standardized NSOrderExplorerResultDto[] format with sync status.
37
+ */
38
+ async browseOrdersByFilter(e, r, t) {
39
+ const a = o(), d = `${n.netSuiteBackendUrl}/${a}/v2/explorer/order/query/${e}/${r}`;
40
+ return await s.post(d, t);
41
+ },
42
+ // ============================ Items ============================
43
+ /**
44
+ * List NetSuite items from the `item` table.
45
+ * Pass an optional filter object to narrow results (e.g. { itemtype: 'InvtPart' }).
46
+ */
47
+ async browseItemsByFilter(e) {
48
+ const r = o(), t = `${n.netSuiteBackendUrl}/${r}/v2/explorer/item/query`;
49
+ return await s.post(t, e ? { where: e } : {});
50
+ },
51
+ /**
52
+ * Look up a single NetSuite item by its internal ID.
53
+ */
54
+ async readItemById(e, r) {
55
+ const t = o(), a = `${n.netSuiteBackendUrl}/${t}/v2/explorer/item/${e}/${r}`;
56
+ return await s.get(a);
57
+ },
58
+ // ============================ Vendors ============================
59
+ /**
60
+ * List NetSuite vendors from the `vendor` table.
61
+ * Pass an optional raw SuiteQL WHERE clause to narrow results.
62
+ */
63
+ async browseVendorsByFilter(e) {
64
+ const r = o(), t = `${n.netSuiteBackendUrl}/${r}/v2/explorer/vendor/query`;
65
+ return await s.post(t, e ? { where: e } : {});
66
+ },
67
+ async readVendorById(e) {
68
+ const r = o(), t = `${n.netSuiteBackendUrl}/${r}/v2/explorer/vendor/${e}`;
69
+ return await s.get(t);
70
+ },
71
+ async triggerWebHook(e) {
72
+ const r = o(), t = `${n.netSuiteBackendUrl}/${r}/v2/explorer/trigger-webhook`;
73
+ await s.post(t, e);
74
+ }
75
+ };
76
+ });
77
+ export {
78
+ B as useNetSuiteExplorerApi
79
+ };
@@ -1,4 +1,4 @@
1
- import { d as qn, j as Wn, y as zn } from "./app-yvK__CBL.js";
1
+ import { d as qn, j as Wn, y as zn } from "./app-DnOtng5V.js";
2
2
  import { defineStore as Vn } from "pinia";
3
3
  import { ref as mt, computed as Kn } from "vue";
4
4
  import { useCoreStore as Yn } from "@feedmepos/mf-common";
@@ -0,0 +1,61 @@
1
+ const l = [
2
+ { key: "all", label: "All" },
3
+ { key: "drafts", label: "Drafts" },
4
+ { key: "active", label: "Active" },
5
+ { key: "history", label: "History" }
6
+ ], u = {
7
+ drafts: ["DRAFT"],
8
+ active: ["REQUESTING", "PREPARING"],
9
+ history: ["CLOSED", "CANCEL"]
10
+ }, c = {
11
+ DRAFT: 0,
12
+ REQUESTING: 1,
13
+ PREPARING: 2,
14
+ CLOSED: 3,
15
+ CANCEL: 4
16
+ };
17
+ function m(t) {
18
+ const n = c[t];
19
+ if (n == null) throw new Error(`Unsupported production run status: ${t}`);
20
+ return n;
21
+ }
22
+ function R(t, n) {
23
+ return n === "all" ? !0 : u[n].includes(t.status);
24
+ }
25
+ function N(t) {
26
+ const n = t.activityLogs;
27
+ if (!n.length) return null;
28
+ const e = n[n.length - 1];
29
+ return { action: e.action, at: e.performedAt };
30
+ }
31
+ function d(t, n) {
32
+ var r;
33
+ const e = n.replace(new RegExp(`\\s+#${t.runNo}$`), "");
34
+ return ((r = t.runName) == null ? void 0 : r.trim()) || `${e} #${t.runNo}`;
35
+ }
36
+ function p(t) {
37
+ var r;
38
+ const n = String(t.runNo).padStart(12, "0"), e = (r = t.runName) == null ? void 0 : r.trim().toLowerCase();
39
+ return e ? `0:${e}` : `1:${n}`;
40
+ }
41
+ function f(t, n, e = () => null) {
42
+ var o;
43
+ const r = n.trim().toLowerCase().replace(/^#/, "");
44
+ return r ? [
45
+ ((o = t.runName) == null ? void 0 : o.trim()) ?? "",
46
+ `${t.runNo}`,
47
+ ...t.plan.items.map((a) => {
48
+ var s;
49
+ return ((s = e(a.skuId)) == null ? void 0 : s.name) ?? "";
50
+ })
51
+ ].some((a) => a.toLowerCase().includes(r)) : !0;
52
+ }
53
+ export {
54
+ l as P,
55
+ N as a,
56
+ f as b,
57
+ m as c,
58
+ p as d,
59
+ R as m,
60
+ d as p
61
+ };
@@ -1,4 +1,4 @@
1
- import { d as s } from "./app-yvK__CBL.js";
1
+ import { d as s } from "./app-DnOtng5V.js";
2
2
  import { useCoreStore as c } from "@feedmepos/mf-common";
3
3
  const u = s((n, a) => {
4
4
  function o() {
@@ -1,4 +1,4 @@
1
- import { B as p } from "./app-yvK__CBL.js";
1
+ import { B as p } from "./app-DnOtng5V.js";
2
2
  function l(s) {
3
3
  return Math.floor(s.getTime() / 1e3) * 1e3;
4
4
  }
@@ -1,7 +1,7 @@
1
+ import { IntegrationPlatformRouteName } from '@feedmepos/integration-portal';
1
2
  export declare enum RouteName {
2
3
  LOADING = "DEFAULT",
3
4
  INGREDIENTS = "INGREDIENTS",
4
- INGREDIENT_GROUP = "INGREDIENT_GROUP",
5
5
  RECIPE = "RECIPE",
6
6
  UNIT = "UNIT",
7
7
  STOCK = "STOCK",
@@ -31,4 +31,4 @@ export declare enum RouteName {
31
31
  IFRAME_INVENTORY_BINDINGS_DIALOG = "IFRAME_INVENTORY_BINDINGS_DIALOG",
32
32
  IFRAME_INVENTORY_BINDINGS_PICKER = "IFRAME_INVENTORY_BINDINGS_PICKER"
33
33
  }
34
- export declare function getReadableRouteName(route: RouteName, t: Translator): string | undefined;
34
+ export declare function getReadableRouteName(route: RouteName | IntegrationPlatformRouteName, t: Translator): string | undefined;
@@ -1,5 +1,5 @@
1
1
  import { h as r } from "vue";
2
- import { a as o } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-C1C8aDA6.js";
2
+ import { _ as o } from "./FeatureCapabilityBadge.vue_vue_type_script_setup_true_lang-B389iY-f.js";
3
3
  var e = /* @__PURE__ */ ((t) => (t.Add = "Add", t.Create = "Create", t.Print = "Print", t.PrintCustom = "PrintCustom", t.PrintPdf = "PrintPdf", t.Export = "Export", t.Update = "Update", t.Details = "Details", t.Edit = "Edit", t.Delete = "Delete", t.Publish = "Publish", t.Duplicate = "Duplicate", t.Email = "Email", t))(e || {});
4
4
  const i = {
5
5
  Add: {
@@ -0,0 +1,243 @@
1
+ import { s as u } from "./app-DnOtng5V.js";
2
+ import { c as l, d as h } from "./date2-Bzlk0lSj.js";
3
+ import { F as $ } from "./decimal-utE08Cjv.js";
4
+ function F(t, n) {
5
+ return u.convertPrecision({
6
+ value: t,
7
+ precision: n
8
+ });
9
+ }
10
+ function T(t, n) {
11
+ return u.subtract([t, n]);
12
+ }
13
+ function O(t, n) {
14
+ return u.add([t, n]);
15
+ }
16
+ function L(t, n) {
17
+ return u.multiply([t, n]);
18
+ }
19
+ function S(t, n) {
20
+ return u.multiply([t, n]);
21
+ }
22
+ function R(t, n) {
23
+ const r = +c(t), o = +c(n);
24
+ return r / o;
25
+ }
26
+ function q(t, n) {
27
+ return u.divideSignificant([t, n]);
28
+ }
29
+ function A(t) {
30
+ const n = t == null ? "" : String(t).trim();
31
+ if (n === "" || n === "undefined") return "is empty";
32
+ const r = Number(n);
33
+ if (!isFinite(r)) return "is not a number";
34
+ if (u.validateNumber(r) !== null)
35
+ return "has too many digits";
36
+ const o = (e) => {
37
+ var p;
38
+ const i = /^([+-]?)(\d*\.?\d+)(?:e([+-]?\d+))?$/i.exec(e);
39
+ if (!i) return null;
40
+ const [, a, d, M = "0"] = i, N = ((p = d.split(".")[1]) == null ? void 0 : p.length) ?? 0, f = d.replace(".", "").replace(/^0+/, "");
41
+ if (!f) return "0";
42
+ const b = f.replace(/0+$/, "");
43
+ return `${a === "-" ? "-" : ""}${b}e${Number(M) - N + f.length - b.length}`;
44
+ };
45
+ return o(n.replace(/\.(?=e|$)/i, ".0")) !== o(String(r)) ? "has too many digits" : null;
46
+ }
47
+ function B(t, n) {
48
+ return t.precision >= n ? t : u.convertPrecision({ value: t, precision: n });
49
+ }
50
+ function g(t) {
51
+ if (t.amount === 0) return u.fromNumber(0);
52
+ const n = y(t.amount), r = t.precision - n;
53
+ return u.convertPrecision({ value: t, precision: Math.max(0, r) });
54
+ }
55
+ function c(t, n = !0) {
56
+ return n ? Number(t.amount / Math.pow(10, t.precision)).toFixed(t.precision) : Number(t.amount / Math.pow(10, t.precision)).toString();
57
+ }
58
+ function V(t, n) {
59
+ n = n ?? P(t);
60
+ const r = n, o = t.toFixed(r), e = o.includes(".") ? o.replace(/0+$/, "") : o;
61
+ return e.endsWith(".") ? e.slice(0, e.length - 1) : e;
62
+ }
63
+ function C(t, n = !1, r = 2) {
64
+ const o = Number(t.amount / Math.pow(10, t.precision)), e = o.toFixed(
65
+ Number.isInteger(o) ? 2 : Math.min(4, Math.max(2, r))
66
+ );
67
+ return n ? `${e} ${t.currency}` : t.currency === "MYR" ? `RM ${e}` : `${t.currency} ${e}`;
68
+ }
69
+ function Y(t) {
70
+ return {
71
+ ...t,
72
+ amount: Math.abs(t.amount)
73
+ };
74
+ }
75
+ function P(t) {
76
+ if (!isFinite(t)) return 0;
77
+ let n = 1, r = 0;
78
+ for (; Math.round(t * n) / n !== t; )
79
+ n *= 10, r++;
80
+ return r;
81
+ }
82
+ function k(t, n = 0, r = !1) {
83
+ let o = 0;
84
+ return Number.isNaN(Number(t)) || (r || Number(t) >= 0) && (o = Number(t)), {
85
+ amount: Number((o * 10 ** n).toFixed(0)),
86
+ precision: n
87
+ };
88
+ }
89
+ function y(t) {
90
+ const n = `${t}`, r = n.replace(/0*$/g, "");
91
+ return n.length - r.length;
92
+ }
93
+ function j(t, n) {
94
+ if (!n)
95
+ return t.precision;
96
+ const r = y(n.conversion.amount);
97
+ return t.precision - n.conversion.precision + r;
98
+ }
99
+ const U = (t) => `${t}`.length && s()(t) === !0;
100
+ function Z(t, n = {}) {
101
+ if (t == null)
102
+ throw new Error("Value cannot be null or undefined");
103
+ const { minPrecision: r = 2, maxPrecision: o = 2, locale: e = "en-US" } = n;
104
+ if (r > o)
105
+ throw new Error("minPrecision cannot be greater than maxPrecision");
106
+ let i = 0;
107
+ switch (typeof t) {
108
+ case "number": {
109
+ i = t;
110
+ break;
111
+ }
112
+ case "string": {
113
+ i = Number(t);
114
+ break;
115
+ }
116
+ case "object": {
117
+ if (t.amount === void 0 || t.precision === void 0)
118
+ throw new Error("Invalid AdjustmentAmount object");
119
+ i = $.toDouble(t);
120
+ break;
121
+ }
122
+ default:
123
+ throw new Error("Invalid value type");
124
+ }
125
+ return i.toLocaleString(e, {
126
+ minimumFractionDigits: r,
127
+ maximumFractionDigits: o
128
+ });
129
+ }
130
+ function H() {
131
+ return function(n) {
132
+ return !!n || "Required";
133
+ };
134
+ }
135
+ function m(t) {
136
+ return t && typeof t == "object" && Object.prototype.hasOwnProperty.call(t, "amount") && Object.prototype.hasOwnProperty.call(t, "precision");
137
+ }
138
+ function I(t, n) {
139
+ const r = typeof t == "object" ? +c(t) : t;
140
+ function o(e) {
141
+ return Object.prototype.hasOwnProperty.call(e, "length");
142
+ }
143
+ return function(i) {
144
+ return m(i) && (i = +c(i)), Number.isFinite(+i) && (i = +i), o(i) ? i.length >= r ? !0 : typeof n == "function" ? n(i.length) : n ?? `Must be at least ${r}` : typeof i == "number" ? i >= r ? !0 : typeof n == "function" ? n(i) : n ?? `Must be at least ${r}` : `Cannot validate at least ${r}`;
145
+ };
146
+ }
147
+ function W(t) {
148
+ const n = typeof t == "object" ? +c(t) : t;
149
+ function r(o) {
150
+ return Object.prototype.hasOwnProperty.call(o, "length");
151
+ }
152
+ return function(e, i) {
153
+ return m(e) && (e = +c(e)), r(e) ? e.length > n ? !0 : typeof i == "function" ? i(e.length) : i ?? `Must be more than ${n}` : typeof e == "number" ? e > n ? !0 : typeof i == "function" ? i(e) : i ?? `Must be more than ${n}` : `Cannot validate more than ${n}`;
154
+ };
155
+ }
156
+ function z(t, n) {
157
+ return t instanceof Date && n instanceof Date ? function(o) {
158
+ const e = new Date(o);
159
+ return isNaN(e.getTime()) ? "Invalid date" : e.getTime() < t.getTime() ? `Date must be at least ${l(t)} ${h(t)}` : e.getTime() >= n.getTime() ? `Date must be less than ${l(n)} ${h(n)}` : !0;
160
+ } : typeof t == "number" && typeof n == "number" ? function(o) {
161
+ const e = +o;
162
+ return isNaN(e) ? "Invalid number" : e < t ? `Value must be at least ${t}` : e >= n ? `Value must be less than ${n}` : !0;
163
+ } : function() {
164
+ return "Progamming error: invalid range parameter.";
165
+ };
166
+ }
167
+ function s() {
168
+ return function(t) {
169
+ if (t = String(t), t.trim().length === 0) return !0;
170
+ const n = A(t);
171
+ return n !== null ? n === "has too many digits" ? "Number has too many digits" : "Must be a number" : !0;
172
+ };
173
+ }
174
+ function G(t, n) {
175
+ return typeof t == "number" ? function(o) {
176
+ const e = s()(o);
177
+ return typeof e == "string" ? e : u.fromNumber(+o).precision > t ? `Precision cannot be more than ${t} decimal point.` : !0;
178
+ } : function(o) {
179
+ const e = s()(o);
180
+ if (typeof e == "string")
181
+ return e;
182
+ const i = j(t, n);
183
+ return u.fromNumber(+o).precision > i ? `Precision cannot be more than ${i} decimal point.` : !0;
184
+ };
185
+ }
186
+ function J(t, n) {
187
+ return function(o) {
188
+ const e = s()(o);
189
+ if (typeof e == "string")
190
+ return e;
191
+ const i = u.fromNumber(+o);
192
+ return i.precision > t ? typeof n == "function" ? n(i.precision) : n ?? `Precision cannot be more than ${t}` : !0;
193
+ };
194
+ }
195
+ function K(t, n, r) {
196
+ return function(e) {
197
+ if (e === n) return !0;
198
+ const i = t.find((a) => a.value === e);
199
+ return i ? r ? r(i) : `Already used in ${i.label}` : !0;
200
+ };
201
+ }
202
+ function Q(t) {
203
+ let n = typeof t == "number" ? u.fromNumber(t) : t;
204
+ n = g(n);
205
+ const r = c(n);
206
+ return function(e) {
207
+ if (!m(e)) {
208
+ if (e = +e, s()(e) !== !0) return !0;
209
+ e = u.fromNumber(e);
210
+ }
211
+ return e = g(e), e.amount % n.amount === 0 && e.precision <= n.precision ? !0 : `${c(e)} must be a multiple of ${r}`;
212
+ };
213
+ }
214
+ export {
215
+ I as A,
216
+ z as B,
217
+ s as I,
218
+ G as M,
219
+ H as R,
220
+ K as U,
221
+ c as a,
222
+ g as b,
223
+ Q as c,
224
+ C as d,
225
+ J as e,
226
+ W as f,
227
+ j as g,
228
+ S as h,
229
+ P as i,
230
+ Y as j,
231
+ L as k,
232
+ O as l,
233
+ F as m,
234
+ V as n,
235
+ Z as o,
236
+ T as p,
237
+ q,
238
+ R as r,
239
+ U as s,
240
+ k as t,
241
+ B as u,
242
+ A as v
243
+ };
@@ -1,4 +1,4 @@
1
- import { d as m, u as $ } from "./app-yvK__CBL.js";
1
+ import { d as m, u as $ } from "./app-DnOtng5V.js";
2
2
  import { useCoreStore as B } from "@feedmepos/mf-common";
3
3
  import { useSnackbar as y } from "@feedmepos/ui-library";
4
4
  const N = m((r, a) => {
@@ -0,0 +1,78 @@
1
+ import { u as p } from "./stock-CukGlv0u.js";
2
+ import { a as r, s as B, u as d, Z as k, _ as m } from "./app-DnOtng5V.js";
3
+ import { computed as f, ref as v } from "vue";
4
+ function y() {
5
+ return {
6
+ stockBalance: {
7
+ _id: "",
8
+ items: []
9
+ },
10
+ productBalance: []
11
+ };
12
+ }
13
+ const S = B.fromNumber(0), g = {
14
+ id: "",
15
+ balance: S,
16
+ closing: null,
17
+ costs: null
18
+ }, c = v(y()), w = () => {
19
+ const u = r(), l = f(() => {
20
+ var n;
21
+ const t = (n = c.value.stockBalance.skus) == null ? void 0 : n.groupBy((o) => o.id), a = (o) => {
22
+ var e;
23
+ return ((e = t == null ? void 0 : t.get(o)) == null ? void 0 : e[0]) ?? { ...g, id: o };
24
+ };
25
+ return u.skus.map((o) => a(o._id));
26
+ }), i = p();
27
+ return {
28
+ // state
29
+ get stockBalance() {
30
+ return {
31
+ ...c.value.stockBalance,
32
+ skus: l.value
33
+ };
34
+ },
35
+ set stockBalance(t) {
36
+ c.value.stockBalance = t;
37
+ },
38
+ get productBalance() {
39
+ return c.value.productBalance;
40
+ },
41
+ set productBalance(t) {
42
+ c.value.productBalance = t;
43
+ },
44
+ // actions
45
+ async readStockBalance() {
46
+ this.stockBalance = await i.readStockBalance();
47
+ },
48
+ async readProductBalance() {
49
+ this.productBalance = [];
50
+ const t = r(), a = d().currentLocation, n = k({
51
+ recipes: t.recipes,
52
+ skus: t.skus,
53
+ skuGroups: [],
54
+ inventoryBindingMapping: {},
55
+ stockBalance: this.stockBalance,
56
+ customAttributes: m.buildCustomAttributeContext({
57
+ profile: a.doc.profile ?? null,
58
+ settingCustomAttributes: a.customAttributes ?? null
59
+ })
60
+ // silent: true
61
+ });
62
+ function o(e, s) {
63
+ return Object.prototype.hasOwnProperty.call(e, s);
64
+ }
65
+ for (const e in n.convertCountdown)
66
+ if (o(n.convertCountdown, e)) {
67
+ const s = n.convertCountdown[e];
68
+ this.productBalance.push({
69
+ id: e,
70
+ count: s
71
+ });
72
+ }
73
+ }
74
+ };
75
+ };
76
+ export {
77
+ w as u
78
+ };
@@ -1,12 +1,16 @@
1
- import { type InventoryPlanTier } from '@/feature-flags/plan-tier';
2
- import { type InventoryLicensePlan, type WarehouseLicense } from '@/api/license';
1
+ import { type WarehouseLicense } from '@/api/license';
2
+ import { type LocationFeatureFlag } from '@/api/feature-flags';
3
3
  export { InventoryFeatureFlags } from '@feedmepos/inventory-core-2';
4
+ export declare enum InventoryModule {
5
+ Costing = "Costing"
6
+ }
4
7
  export interface FeatureState {
5
8
  isLoaded: boolean;
6
- planTier: InventoryPlanTier;
7
- inventoryPlan: InventoryLicensePlan;
9
+ flags: LocationFeatureFlag[];
10
+ premium: boolean;
8
11
  warehouseQuota: WarehouseLicense[];
9
- enableTotalCost: boolean;
12
+ costing: boolean;
13
+ enableEditOrderCosting: boolean;
10
14
  enableBackdatePo: boolean;
11
15
  /** @deprecated TODO: remove */
12
16
  autoReceiveWarehouse: boolean;
@@ -15,7 +19,6 @@ export interface FeatureState {
15
19
  enablePoTemplate: boolean;
16
20
  enableClosingTemplate: boolean;
17
21
  enableWastageTemplate: boolean;
18
- enableIngredientGroup: boolean;
19
22
  mustUsePoTemplate: boolean;
20
23
  mustUseDefaultCost?: boolean;
21
24
  businessSupplierOnly: boolean;
@@ -57,28 +60,44 @@ export interface FeatureState {
57
60
  */
58
61
  report_portal_po_forecast_days_default: number;
59
62
  }
63
+ export type FeatureLoadStatus = 'idle' | 'loading' | 'ready' | 'error';
64
+ export type LocationFeatureWait = 'ready' | 'error' | 'superseded';
65
+ export declare const FEATURE_LOAD_TIMEOUT_MS = 30000;
60
66
  export declare const useFeatureStore: () => {
61
67
  readonly businessDbName: string;
62
68
  readonly isWarehouse: boolean;
63
69
  readonly restaurantPosVersion: string | null | undefined;
64
70
  readonly enableTotalCost: boolean;
71
+ readonly enableEditOrderCosting: boolean;
65
72
  readonly enableBackdatePo: boolean;
66
73
  /** @deprecated TODO: remove */
67
74
  readonly autoReceiveWarehouse: boolean;
68
75
  /** @deprecated TODO: remove */
69
76
  readonly manualReceive: boolean;
70
77
  readonly isLoaded: boolean;
71
- readonly planTier: "lite" | "standard" | "premium";
72
- readonly inventoryPlan: InventoryLicensePlan;
78
+ readonly loadState: {
79
+ dbName: string | null;
80
+ status: FeatureLoadStatus;
81
+ };
82
+ /** Reloads the current location's flags; a no-op before `init` has run. */
83
+ retryLoad(): Promise<void>;
84
+ readonly flags: {
85
+ name: string;
86
+ enabled: boolean;
87
+ beta: boolean;
88
+ value?: string | number | boolean | null | undefined;
89
+ }[];
90
+ readonly premium: boolean;
73
91
  readonly warehouseQuota: {
74
92
  id: string;
75
93
  expiredAt: string;
76
94
  }[];
77
- hasPlanTier(minimum: InventoryPlanTier): boolean;
95
+ isFlagOn(flag: string): boolean;
96
+ isModuleEnabled(module: InventoryModule): boolean;
97
+ isModuleBeta(module: InventoryModule): boolean;
78
98
  readonly enablePoTemplate: boolean;
79
99
  readonly enableClosingTemplate: boolean;
80
100
  readonly enableWastageTemplate: boolean;
81
- readonly enableIngredientGroup: boolean;
82
101
  readonly mustUsePoTemplate: boolean;
83
102
  readonly businessSupplierOnly: boolean;
84
103
  readonly enableXilnexTransferNote: boolean;
@@ -108,5 +127,16 @@ export declare const useFeatureStore: () => {
108
127
  readonly poForecastDaysConstraint: string | null;
109
128
  readonly poForecastDaysDefault: number;
110
129
  init(): Promise<void>;
111
- awaitFeatureLoaded(callback: () => boolean): Promise<boolean>;
130
+ /**
131
+ * Waits, bounded by FEATURE_LOAD_TIMEOUT_MS, for the flags of `dbName` to be
132
+ * confirmed. `ready` includes a confirmed outlet refreshing in the background.
133
+ * `error` means the flags are unknown (failed or stalled), never "off".
134
+ * `superseded` means the outlet changed or `signal` aborted, so the caller's
135
+ * work is stale and must stop. With `retryOnError`, an outlet already in error
136
+ * reloads first, so a caller's own refresh doubles as the flag retry.
137
+ */
138
+ awaitLocationFeatures(dbName: string | null | undefined, options?: {
139
+ signal?: AbortSignal;
140
+ retryOnError?: boolean;
141
+ }): Promise<LocationFeatureWait>;
112
142
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -2497,50 +2497,6 @@ export declare function useInventoryStore(): {
2497
2497
  }>;
2498
2498
  readonly skuBindingFlattenCache: Record<string, FlattenInventoryBindingResult>;
2499
2499
  readonly recipeBindingFlattenCache: Record<string, FlattenInventoryBindingResult>;
2500
- readonly skuGroups: {
2501
- rules?: {
2502
- rule?: any;
2503
- _id: string;
2504
- name: string;
2505
- skuRefs: {
2506
- default?: boolean | null | undefined;
2507
- trackingMeasurement?: string | null | undefined;
2508
- priority?: number | null | undefined;
2509
- _id: string;
2510
- }[];
2511
- }[] | null | undefined;
2512
- ref?: string | null | undefined;
2513
- defaultSkuRefs?: {
2514
- default?: boolean | null | undefined;
2515
- trackingMeasurement?: string | null | undefined;
2516
- priority?: number | null | undefined;
2517
- _id: string;
2518
- }[] | null | undefined;
2519
- _id: string;
2520
- name: string;
2521
- }[];
2522
- readonly skuGroupById: Record<string, {
2523
- rules?: {
2524
- rule?: any;
2525
- _id: string;
2526
- name: string;
2527
- skuRefs: {
2528
- default?: boolean | null | undefined;
2529
- trackingMeasurement?: string | null | undefined;
2530
- priority?: number | null | undefined;
2531
- _id: string;
2532
- }[];
2533
- }[] | null | undefined;
2534
- ref?: string | null | undefined;
2535
- defaultSkuRefs?: {
2536
- default?: boolean | null | undefined;
2537
- trackingMeasurement?: string | null | undefined;
2538
- priority?: number | null | undefined;
2539
- _id: string;
2540
- }[] | null | undefined;
2541
- _id: string;
2542
- name: string;
2543
- }>;
2544
2500
  readonly skuTags: Map<unknown, [{
2545
2501
  trackingMeasurement?: string | null | undefined;
2546
2502
  isInactive?: boolean | null | undefined;
@@ -2713,7 +2669,4 @@ export declare function useInventoryStore(): {
2713
2669
  importRecipes(recipes: Omit<FdtoBulkRecipeRequest, '_rev'>): Promise<any>;
2714
2670
  importSkus(skus: Omit<FdtoBulkSkuRequest, '_rev'>): Promise<any>;
2715
2671
  deleteSku({ _id }: FdoInventorySku): Promise<void>;
2716
- createSkuGroup(skuGroup: CreateType<FdoInventorySkuGroup>): Promise<void>;
2717
- updateSkuGroup(skuGroup: FdoInventorySkuGroup): Promise<void>;
2718
- deleteSkuGroup({ _id }: FdoInventorySkuGroup): Promise<void>;
2719
2672
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -998,4 +998,4 @@ export declare const useSupplierStore: import("pinia").StoreDefinition<"supplier
998
998
  };
999
999
  };
1000
1000
  }>;
1001
- }, "init" | "readSuppliers" | "createSupplier" | "updateSupplier" | "deleteSupplier" | "importSuppliers">>;
1001
+ }, "readSuppliers" | "createSupplier" | "updateSupplier" | "deleteSupplier" | "importSuppliers" | "init">>;