@feedmepos/mf-inventory-portal 1.7.13-dev.4 → 1.7.13-dev.6

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 (270) hide show
  1. package/dist/{App-Cfp4CqzQ.js → App-JqoqVVdP.js} +354 -348
  2. package/dist/{ApprovalView-DO91AQ5f.js → ApprovalView-JiWbXkVU.js} +9 -9
  3. package/dist/{BindingsDialog-DUj0z6N7.js → BindingsDialog-BK4xofWu.js} +2 -2
  4. package/dist/{BindingsPicker-CD2J6-_Z.js → BindingsPicker-CLMsAseG.js} +2 -2
  5. package/dist/{BindingsTable-B2FEKZXU.js → BindingsTable-DKrBQTxN.js} +4 -4
  6. package/dist/{BulkReceiveRequestView-ejHyukEp.js → BulkReceiveRequestView-bttHw2ub.js} +19 -19
  7. package/dist/{ClosingDraftView-tIvrsfYH.js → ClosingDraftView-Bhdwo-n8.js} +19 -19
  8. package/dist/ClosingHistoryView-DrQPWnr6.js +761 -0
  9. package/dist/{ClosingTemplateView-C-hL9uPv.js → ClosingTemplateView-UkwXCrz_.js} +16 -16
  10. package/dist/{CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-BffF8S_q.js → CustomPrintTemplatePreview.vue_vue_type_script_setup_true_lang-DNtMdFVF.js} +1 -1
  11. package/dist/{DefaultView-BLbtx0Ho.js → DefaultView-sGrYeUGh.js} +2 -2
  12. package/dist/{DeliveryOrderPrintPreview-BLQHL7aB.js → DeliveryOrderPrintPreview-CVnqC9Jy.js} +10 -10
  13. package/dist/{EmailDialog.vue_vue_type_script_setup_true_lang-BnTAuutB.js → EmailDialog.vue_vue_type_script_setup_true_lang-CYtHQ2Ru.js} +2250 -2250
  14. package/dist/{FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-Mxhn0b6c.js → FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DXTdvT0C.js} +1 -1
  15. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-hrk0cTBX.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DtfiRgsD.js} +2 -2
  16. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-yBIbCJYy.js +243 -0
  17. package/dist/{FmMultiselectDialog-Bpi5rI0h.js → FmMultiselectDialog-A9VIMLGn.js} +1 -1
  18. package/dist/{FmMultiselectDialog-Bi6XlAAU.js → FmMultiselectDialog-DL00XnUc.js} +2 -2
  19. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-e55tnl4u.js → FmUnitInput.vue_vue_type_script_setup_true_lang-RJKOB-cm.js} +66 -63
  20. package/dist/{ImportView-xPTzBekx.js → ImportView-DPrLnJO8.js} +6 -6
  21. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-tvmS42s_.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-IAQyFPmi.js} +1 -1
  22. package/dist/{IngredientGroupView-RFcqjF8T.js → IngredientGroupView-DyhC6lJ8.js} +5 -5
  23. package/dist/{IngredientsView-CvWOgquN.js → IngredientsView-P4AqPikD.js} +15 -15
  24. package/dist/{IntegrationExplorerView-CYNhsJSS.js → IntegrationExplorerView-CujhjHHV.js} +4 -4
  25. package/dist/{IntegrationView-ZtLokbu3.js → IntegrationView-CFqsZyzI.js} +3074 -2999
  26. package/dist/{InventoryBindingForm-DwiAIf5v.js → InventoryBindingForm-B0NJ8H51.js} +1 -1
  27. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-njDaQe10.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-bbIpFo_4.js} +5 -5
  28. package/dist/{InventoryBindingSummary-zim_Bp5_.js → InventoryBindingSummary-CBgO_tCz.js} +1 -1
  29. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CfTgt5xW.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-DuuXzyKH.js} +1 -1
  30. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-LLtd1VvM.js → PremiumBadge.vue_vue_type_script_setup_true_lang-C418f34P.js} +1 -1
  31. package/dist/ProductionRunDetailView-tSByC3nQ.js +5165 -0
  32. package/dist/ProductionRunPreparePrintView-zPAATL-n.js +31 -0
  33. package/dist/ProductionRunTabs.vue_vue_type_script_setup_true_lang-DgtZJgrs.js +3506 -0
  34. package/dist/ProductionRunView-BsP02jgC.js +815 -0
  35. package/dist/{PublishView-DFXOi7Hx.js → PublishView-Cf0Tn7xt.js} +3 -3
  36. package/dist/{PurchaseOrderPrintPreview-CG6kBQ26.js → PurchaseOrderPrintPreview-BTlSyQqZ.js} +6 -6
  37. package/dist/{ReceiveRequestView-DKMVMo7M.js → ReceiveRequestView-9LFOl2hJ.js} +14 -14
  38. package/dist/{RecipeView-cLLKlLmE.js → RecipeView-C4KxMCpQ.js} +17 -17
  39. package/dist/{SettingsView-Cmf2ZOUL.js → SettingsView-ShrefnTM.js} +4 -4
  40. package/dist/{StockView-DTai8l8U.js → StockView-BVd6f7Fr.js} +21 -21
  41. package/dist/{SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-BlKm7GLw.js → SubsidiaryTreeDialog.vue_vue_type_script_setup_true_lang-B-rB7p9o.js} +1 -1
  42. package/dist/{SupplierView-CRAHOOLm.js → SupplierView-DZSY6_eU.js} +12 -12
  43. package/dist/{SurchargeView-3XymEvcr.js → SurchargeView-UUYoT8MK.js} +6 -6
  44. package/dist/{SystemTrailDialog.vue_vue_type_script_setup_true_lang-DcXfQr_8.js → SystemTrailDialog.vue_vue_type_script_setup_true_lang-BLMxzi1C.js} +2 -2
  45. package/dist/{TemplatePublishDialog.vue_vue_type_script_setup_true_lang-qhJVHahS.js → TemplatePublishDialog.vue_vue_type_script_setup_true_lang-z3qIVKP7.js} +1 -1
  46. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-CibsrZXw.js → TransferDetails.vue_vue_type_script_setup_true_lang-DEO8CP-X.js} +20 -20
  47. package/dist/{TransferTemplateView-ByhvK4Ua.js → TransferTemplateView-C21o2V_1.js} +20 -20
  48. package/dist/{UnitCostHistoryView-DHHWNJYA.js → UnitCostHistoryView-DPEGVLBP.js} +4 -4
  49. package/dist/{UnitDisplayControl.vue_vue_type_script_setup_true_lang-bQu2KOI7.js → UnitDisplayControl.vue_vue_type_script_setup_true_lang-BuGmmHBk.js} +4 -4
  50. package/dist/{UnitView-BZTS-Ahu.js → UnitView-Bx03E4uc.js} +7 -7
  51. package/dist/{WarehouseView-DVak1RPs.js → WarehouseView-BehHQ9Ao.js} +6 -6
  52. package/dist/{WastageTemplateView-CUDL3HUD.js → WastageTemplateView-gmr7doXL.js} +14 -14
  53. package/dist/api/netsuite.d.ts +13 -0
  54. package/dist/api/production-run-error.d.ts +36 -0
  55. package/dist/api/production-run-error.spec.d.ts +1 -0
  56. package/dist/api/production-run.d.ts +58 -0
  57. package/dist/api/stock.d.ts +0 -6
  58. package/dist/{app-BUQUpe4c.js → app-BT7hD4az.js} +16491 -12629
  59. package/dist/app.d.ts +2958 -14
  60. package/dist/app.js +1 -1
  61. package/dist/{closing-template-DzxDiEQB.js → closing-template-BNfr1RIX.js} +1 -1
  62. package/dist/components/FmInventoryBanner.vue.d.ts +39 -0
  63. package/dist/components/FmUnitInput.spec.d.ts +1 -0
  64. package/dist/components/FmUnitInputProps.d.ts +2 -0
  65. package/dist/composable/useModalA11y.d.ts +9 -0
  66. package/dist/composable/useModalA11y.spec.d.ts +1 -0
  67. package/dist/{date2-6jkfRNS_.js → date2-CAh7rsAp.js} +1 -1
  68. package/dist/{dayjs.min-ByRnXzrl.js → dayjs.min-BJk-edO7.js} +7 -7
  69. package/dist/{decimal-CqWBdj8E.js → decimal-DYlKNkVX.js} +2 -2
  70. package/dist/{defineDeepModel-CaT-4fiq.js → defineDeepModel-BPHl7mTD.js} +1 -1
  71. package/dist/{duplicate-template-Cyvx-WK7.js → duplicate-template-BWUUIdzG.js} +1 -1
  72. package/dist/{feature-FjXz4WXw.js → feature-CSvVyBN2.js} +2 -2
  73. package/dist/{format-time-from-id-cSri3OoO.js → format-time-from-id-Dh3lxXpc.js} +1 -1
  74. package/dist/{format-unit-display-DPbcT7Ff.js → format-unit-display-B1ft2wxm.js} +12 -12
  75. package/dist/{import-export.helper-_yqcePYs.js → import-export.helper-txDvkMf0.js} +6 -6
  76. package/dist/{index-CyJVMHQW.js → index-AmTodx3_.js} +1 -1
  77. package/dist/{index-CGvNoBid.js → index-B4wQijn6.js} +1 -1
  78. package/dist/{index-nSL5yxNn.js → index-TIX5DyQk.js} +3 -3
  79. package/dist/inventory-core-dart.default-BpMxAF-0.js +31060 -0
  80. package/dist/{lz-string-iyER1Klb.js → lz-string-CFDYH-K6.js} +1 -1
  81. package/dist/{netsuite-BD8LVxaA.js → netsuite-CdW9v92G.js} +477 -462
  82. package/dist/{number-C7CJ9ZfE.js → number-DRRlTYv7.js} +6 -6
  83. package/dist/{predefined-templates-o-_pKVSM.js → predefined-templates-C68U85pc.js} +1 -1
  84. package/dist/production-run-display-DmyfdjHR.js +239 -0
  85. package/dist/production-run-prepare-sheet-BvxMd19E.js +189 -0
  86. package/dist/{purchase-order-template-BHS8T1VA.js → purchase-order-template-BvED3CpO.js} +1 -1
  87. package/dist/{recalculationUtils-BCByr_CU.js → recalculationUtils-9rFepwwr.js} +1 -1
  88. package/dist/router/name.d.ts +2 -0
  89. package/dist/{rules-wZo-8FZ0.js → rules-C8RmopTe.js} +2 -2
  90. package/dist/{stock-DwqEvWM5.js → stock-BKkluaaM.js} +26 -36
  91. package/dist/{stock-CnAjxV7P.js → stock-CiCsT5JK.js} +3 -3
  92. package/dist/stores/integration/codemax.d.ts +1 -1
  93. package/dist/stores/integration/netsuite.d.ts +54 -0
  94. package/dist/style.css +1 -1
  95. package/dist/{supplier-DkqNwQmi.js → supplier--zZMQHPc.js} +2 -2
  96. package/dist/{surcharge-Csj1WYbH.js → surcharge-BLF3XV0G.js} +1 -1
  97. package/dist/tsconfig.app.tsbuildinfo +1 -1
  98. package/dist/{uom-rules-BI1CdWeS.js → uom-rules-CjCCXiGL.js} +1 -1
  99. package/dist/{use-ingredient-select-dialog-5AqoZJDA.js → use-ingredient-select-dialog-DnUiY-Ic.js} +2 -2
  100. package/dist/{use-inventory-binding-dialog-ChiyhiuP.js → use-inventory-binding-dialog-BAU-P8kV.js} +2 -2
  101. package/dist/{use-template-enabled-locations-BqXxegct.js → use-template-enabled-locations-DZMzYCi-.js} +2 -2
  102. package/dist/{use-transfer-locations-Ckj_diGt.js → use-transfer-locations-DomGLsT2.js} +2 -2
  103. package/dist/{useHrmPermission-USG_KRoq.js → useHrmPermission-CrhsV_5z.js} +1 -1
  104. package/dist/{useNavigationMenu-BhYf87KI.js → useNavigationMenu-1h-G_-el.js} +2 -2
  105. package/dist/{useSseClient-BqoE-ir6.js → useSseClient-o_3wiqhX.js} +1 -1
  106. package/dist/views/changelog/composables/use-inventory-record-commits.d.ts +1 -1
  107. package/dist/views/closing-draft/helpers/draft-status-to-class-name.helper.d.ts +1 -1
  108. package/dist/views/integration/components/ApplyProductDialogCodemax.vue.d.ts +2 -2
  109. package/dist/views/integration/components/CodemaxDialog.vue.d.ts +2 -2
  110. package/dist/views/integration/components/netsuite/business/vendor-publish.d.ts +7 -0
  111. package/dist/views/integration/components/netsuite/business/vendor-publish.spec.d.ts +1 -0
  112. package/dist/views/production-run/ProductionRunDetailView.spec.d.ts +1 -0
  113. package/dist/views/production-run/ProductionRunDetailView.vue.d.ts +15 -0
  114. package/dist/views/production-run/ProductionRunPreparePrintView.spec.d.ts +1 -0
  115. package/dist/views/production-run/ProductionRunPreparePrintView.vue.d.ts +2 -0
  116. package/dist/views/production-run/ProductionRunView.spec.d.ts +1 -0
  117. package/dist/views/production-run/ProductionRunView.vue.d.ts +2 -0
  118. package/dist/views/production-run/components/CancelRunDialog.spec.d.ts +1 -0
  119. package/dist/views/production-run/components/CancelRunDialog.vue.d.ts +918 -0
  120. package/dist/views/production-run/components/CancelRunDialogProps.d.ts +9 -0
  121. package/dist/views/production-run/components/CloseRunDialog.spec.d.ts +1 -0
  122. package/dist/views/production-run/components/CloseRunDialog.vue.d.ts +918 -0
  123. package/dist/views/production-run/components/CloseRunDialogProps.d.ts +29 -0
  124. package/dist/views/production-run/components/PrepareRunConfirmationDialog.spec.d.ts +1 -0
  125. package/dist/views/production-run/components/PrepareRunConfirmationDialog.vue.d.ts +29 -0
  126. package/dist/views/production-run/components/PrepareRunDialog.spec.d.ts +1 -0
  127. package/dist/views/production-run/components/PrepareRunDialog.vue.d.ts +18 -0
  128. package/dist/views/production-run/components/PrepareRunDialogProps.d.ts +29 -0
  129. package/dist/views/production-run/components/PrepareSheetDialog.spec.d.ts +1 -0
  130. package/dist/views/production-run/components/PrepareSheetDialog.vue.d.ts +26 -0
  131. package/dist/views/{stock/components/dialog/SnapshotRecalculationDialog.vue.d.ts → production-run/components/ProductionRunActionMenuItem.vue.d.ts} +7 -10
  132. package/dist/views/production-run/components/ProductionRunActionsCell.spec.d.ts +1 -0
  133. package/dist/views/production-run/components/ProductionRunActionsCell.vue.d.ts +20 -0
  134. package/dist/views/production-run/components/ProductionRunActivityTab.spec.d.ts +1 -0
  135. package/dist/views/production-run/components/ProductionRunActivityTab.vue.d.ts +15 -0
  136. package/dist/views/production-run/components/ProductionRunBanner.spec.d.ts +1 -0
  137. package/dist/views/production-run/components/ProductionRunBanner.vue.d.ts +42 -0
  138. package/dist/views/production-run/components/ProductionRunBatchCard.spec.d.ts +1 -0
  139. package/dist/views/production-run/components/ProductionRunBatchCard.vue.d.ts +69 -0
  140. package/dist/views/production-run/components/ProductionRunBatchWastageDetails.spec.d.ts +1 -0
  141. package/dist/views/production-run/components/ProductionRunBatchWastageDetails.vue.d.ts +33 -0
  142. package/dist/views/production-run/components/ProductionRunBindingsDisclosure.spec.d.ts +1 -0
  143. package/dist/views/production-run/components/ProductionRunBindingsDisclosure.vue.d.ts +25 -0
  144. package/dist/views/production-run/components/ProductionRunBindingsList.vue.d.ts +51 -0
  145. package/dist/views/production-run/components/ProductionRunCompactDisclosure.vue.d.ts +25 -0
  146. package/dist/views/production-run/components/ProductionRunContributorBranch.spec.d.ts +1 -0
  147. package/dist/views/production-run/components/ProductionRunContributorBranch.vue.d.ts +25 -0
  148. package/dist/views/production-run/components/ProductionRunCostRail.spec.d.ts +1 -0
  149. package/dist/views/production-run/components/ProductionRunCostRail.vue.d.ts +77 -0
  150. package/dist/views/production-run/components/ProductionRunDialog.spec.d.ts +1 -0
  151. package/dist/views/production-run/components/ProductionRunDialog.vue.d.ts +24 -0
  152. package/dist/views/production-run/components/ProductionRunDialogProps.d.ts +15 -0
  153. package/dist/views/production-run/components/ProductionRunDialogSurface.vue.d.ts +33 -0
  154. package/dist/views/production-run/components/ProductionRunDiscardDialog.spec.d.ts +1 -0
  155. package/dist/views/production-run/components/ProductionRunDiscardDialog.vue.d.ts +21 -0
  156. package/dist/views/production-run/components/ProductionRunDuplicateDialog.spec.d.ts +1 -0
  157. package/dist/views/production-run/components/ProductionRunDuplicateDialog.vue.d.ts +51 -0
  158. package/dist/views/production-run/components/ProductionRunFormDialog.spec.d.ts +1 -0
  159. package/dist/views/production-run/components/ProductionRunFormDialog.vue.d.ts +918 -0
  160. package/dist/views/production-run/components/ProductionRunFormDialogProps.d.ts +22 -0
  161. package/dist/views/production-run/components/ProductionRunHeader.spec.d.ts +1 -0
  162. package/dist/views/production-run/components/ProductionRunHeader.vue.d.ts +65 -0
  163. package/dist/views/production-run/components/ProductionRunHelpPopover.spec.d.ts +1 -0
  164. package/dist/views/production-run/components/ProductionRunHelpPopover.vue.d.ts +52 -0
  165. package/dist/views/production-run/components/ProductionRunIngredientTree.spec.d.ts +1 -0
  166. package/dist/views/production-run/components/ProductionRunIngredientTree.vue.d.ts +42 -0
  167. package/dist/views/production-run/components/ProductionRunIngredientsTab.spec.d.ts +1 -0
  168. package/dist/views/production-run/components/ProductionRunIngredientsTab.vue.d.ts +63 -0
  169. package/dist/views/production-run/components/ProductionRunInstructionsCard.spec.d.ts +1 -0
  170. package/dist/views/production-run/components/ProductionRunInstructionsCard.vue.d.ts +15 -0
  171. package/dist/views/production-run/components/ProductionRunItemPickerDialog.spec.d.ts +1 -0
  172. package/dist/views/production-run/components/ProductionRunItemPickerDialog.vue.d.ts +30 -0
  173. package/dist/views/production-run/components/ProductionRunItemsCell.spec.d.ts +1 -0
  174. package/dist/views/production-run/components/ProductionRunItemsCell.vue.d.ts +33 -0
  175. package/dist/views/production-run/components/ProductionRunItemsTable.spec.d.ts +1 -0
  176. package/dist/views/production-run/components/ProductionRunItemsTable.vue.d.ts +73 -0
  177. package/dist/views/production-run/components/ProductionRunLoadBannerContract.spec.d.ts +1 -0
  178. package/dist/views/production-run/components/ProductionRunNoBindingsHelp.spec.d.ts +1 -0
  179. package/dist/views/production-run/components/ProductionRunNoBindingsHelp.vue.d.ts +15 -0
  180. package/dist/views/production-run/components/ProductionRunOutputTab.spec.d.ts +1 -0
  181. package/dist/views/production-run/components/ProductionRunOutputTab.vue.d.ts +26 -0
  182. package/dist/views/production-run/components/ProductionRunOverviewTab.spec.d.ts +1 -0
  183. package/dist/views/production-run/components/ProductionRunOverviewTab.vue.d.ts +999 -0
  184. package/dist/views/production-run/components/ProductionRunPlanCard.spec.d.ts +1 -0
  185. package/dist/views/production-run/components/ProductionRunPlanCard.vue.d.ts +50 -0
  186. package/dist/views/production-run/components/ProductionRunPlanner.spec.d.ts +1 -0
  187. package/dist/views/production-run/components/ProductionRunPlanner.vue.d.ts +61 -0
  188. package/dist/views/production-run/components/ProductionRunPrepareSheet.vue.d.ts +16 -0
  189. package/dist/views/production-run/components/ProductionRunProjectionFeedback.spec.d.ts +1 -0
  190. package/dist/views/production-run/components/ProductionRunProjectionFeedback.vue.d.ts +41 -0
  191. package/dist/views/production-run/components/ProductionRunRecordOutputDetails.spec.d.ts +1 -0
  192. package/dist/views/production-run/components/ProductionRunRecordOutputDetails.vue.d.ts +43 -0
  193. package/dist/views/production-run/components/ProductionRunRecordOutputWastageStatus.spec.d.ts +1 -0
  194. package/dist/views/production-run/components/ProductionRunRecordOutputWastageStatus.vue.d.ts +31 -0
  195. package/dist/views/production-run/components/ProductionRunRequestedOverview.spec.d.ts +1 -0
  196. package/dist/views/production-run/components/ProductionRunRequestedOverview.vue.d.ts +48 -0
  197. package/dist/views/production-run/components/ProductionRunResultTable.spec.d.ts +1 -0
  198. package/dist/views/production-run/components/ProductionRunResultTable.vue.d.ts +31 -0
  199. package/dist/views/production-run/components/ProductionRunScrollHint.spec.d.ts +1 -0
  200. package/dist/views/production-run/components/ProductionRunScrollHint.vue.d.ts +31 -0
  201. package/dist/views/production-run/components/ProductionRunSelectionCheckbox.vue.d.ts +31 -0
  202. package/dist/views/production-run/components/ProductionRunSelectionControls.spec.d.ts +1 -0
  203. package/dist/views/production-run/components/ProductionRunSelectionRadio.spec.d.ts +1 -0
  204. package/dist/views/production-run/components/ProductionRunSelectionRadio.vue.d.ts +37 -0
  205. package/dist/views/production-run/components/ProductionRunSideSheet.spec.d.ts +1 -0
  206. package/dist/views/production-run/components/ProductionRunSideSheet.vue.d.ts +77 -0
  207. package/dist/views/production-run/components/ProductionRunSideSheetSurface.vue.d.ts +52 -0
  208. package/dist/views/production-run/components/ProductionRunSortHeader.spec.d.ts +1 -0
  209. package/dist/views/production-run/components/ProductionRunSortHeader.vue.d.ts +25 -0
  210. package/dist/views/production-run/components/ProductionRunStatusBadge.vue.d.ts +15 -0
  211. package/dist/views/production-run/components/ProductionRunTabs.spec.d.ts +1 -0
  212. package/dist/views/production-run/components/ProductionRunTabs.vue.d.ts +47 -0
  213. package/dist/views/production-run/components/ProductionRunTerminalNotice.spec.d.ts +1 -0
  214. package/dist/views/production-run/components/ProductionRunTerminalNotice.vue.d.ts +15 -0
  215. package/dist/views/production-run/components/ProductionRunTextarea.spec.d.ts +1 -0
  216. package/dist/views/production-run/components/ProductionRunTextarea.vue.d.ts +53 -0
  217. package/dist/views/production-run/components/ProductionRunUnitInput.spec.d.ts +1 -0
  218. package/dist/views/production-run/components/ProductionRunUnitInput.vue.d.ts +34 -0
  219. package/dist/views/production-run/components/ProductionRunWastageDisclosure.spec.d.ts +1 -0
  220. package/dist/views/production-run/components/ProductionRunWastageDisclosure.vue.d.ts +23 -0
  221. package/dist/views/production-run/components/RecordOutputDialog.spec.d.ts +1 -0
  222. package/dist/views/production-run/components/RecordOutputDialog.vue.d.ts +20 -0
  223. package/dist/views/production-run/components/RecordOutputDialogProps.d.ts +28 -0
  224. package/dist/views/production-run/components/TargetReachedDialog.spec.d.ts +1 -0
  225. package/dist/views/production-run/components/TargetReachedDialog.vue.d.ts +927 -0
  226. package/dist/views/production-run/components/production-run-deduction-parity.spec.d.ts +1 -0
  227. package/dist/views/production-run/components/production-run-prepare-sheet.d.ts +17 -0
  228. package/dist/views/production-run/components/production-run-typography-contract.spec.d.ts +1 -0
  229. package/dist/views/production-run/components/production-run-unit-snapshot.d.ts +39 -0
  230. package/dist/views/production-run/composables/production-run-display.d.ts +272 -0
  231. package/dist/views/production-run/composables/production-run-display.spec.d.ts +1 -0
  232. package/dist/views/production-run/composables/production-run-list.d.ts +46 -0
  233. package/dist/views/production-run/composables/production-run-list.spec.d.ts +1 -0
  234. package/dist/views/production-run/composables/production-run-request-confirmation.d.ts +20 -0
  235. package/dist/views/production-run/composables/use-production-run-actions.d.ts +37 -0
  236. package/dist/views/production-run/composables/use-production-run-actions.spec.d.ts +1 -0
  237. package/dist/views/production-run/composables/use-production-run-cost.d.ts +672 -0
  238. package/dist/views/production-run/composables/use-production-run-cost.spec.d.ts +1 -0
  239. package/dist/views/production-run/composables/use-production-run-detail.d.ts +1894 -0
  240. package/dist/views/production-run/composables/use-production-run-detail.spec.d.ts +1 -0
  241. package/dist/views/production-run/composables/use-production-run-disclosure.d.ts +15 -0
  242. package/dist/views/production-run/composables/use-production-run-disclosure.spec.d.ts +1 -0
  243. package/dist/views/production-run/composables/use-production-run-duplicate-sources.d.ts +19 -0
  244. package/dist/views/production-run/composables/use-production-run-duplicate-sources.spec.d.ts +1 -0
  245. package/dist/views/production-run/composables/use-production-run-economics.d.ts +92 -0
  246. package/dist/views/production-run/composables/use-production-run-economics.spec.d.ts +1 -0
  247. package/dist/views/production-run/composables/use-production-run-form.d.ts +277 -0
  248. package/dist/views/production-run/composables/use-production-run-form.spec.d.ts +1 -0
  249. package/dist/views/production-run/composables/use-production-run-record-output.d.ts +261 -0
  250. package/dist/views/production-run/composables/use-production-run-record-output.spec.d.ts +1 -0
  251. package/dist/views/production-run/composables/use-production-run-scroll-hint.d.ts +9 -0
  252. package/dist/views/production-run/composables/use-production-run-table.d.ts +19 -0
  253. package/dist/views/production-run/composables/use-production-run-table.spec.d.ts +1 -0
  254. package/dist/views/production-run/helpers/production-run-precision.helper.d.ts +31 -0
  255. package/dist/views/production-run/helpers/production-run-quantity.helper.d.ts +55 -0
  256. package/dist/views/production-run/helpers/production-run-quantity.helper.spec.d.ts +1 -0
  257. package/dist/views/production-run/production-run.fixture.d.ts +70 -0
  258. package/dist/views/production-run/production-run.fixture.spec.d.ts +1 -0
  259. package/dist/views/receive-request/composables/use-receive-request-form.d.ts +3 -3
  260. package/dist/views/receive-request-bulk/composables/use-bulk-receive-request-form.d.ts +3 -3
  261. package/dist/views/stock/components/dialog/RecalculationDialog.vue.d.ts +2 -17
  262. package/dist/{vue-i18n-DoKioQ81.js → vue-i18n-hE8n67Ig.js} +202 -202
  263. package/dist/{xlsx.util-BXjE2o-3.js → xlsx.util-Jv7EpwFc.js} +2 -2
  264. package/package.json +4 -4
  265. package/dist/ChangeLocationComponent.vue_vue_type_script_setup_true_lang-ashHOuZt.js +0 -130
  266. package/dist/ClosingHistoryView-BYVZ01Ma.js +0 -1112
  267. package/dist/FmInventoryTableToolbar.vue_vue_type_script_setup_true_lang-hTQmIyaf.js +0 -120
  268. package/dist/ProductionView-BWn7RBEg.js +0 -1441
  269. package/dist/inventory-core-dart.default-DSYRPQNZ.js +0 -25155
  270. package/dist/views/stock/components/StockRecalculateDialog.vue.d.ts +0 -9
@@ -1,28 +1,28 @@
1
- import { ref as S, onUnmounted as ct, computed as C, defineComponent as ce, watch as q, onMounted as Fe, resolveComponent as H, createElementBlock as c, openBlock as i, createBlock as pe, createCommentVNode as E, unref as $, createVNode as D, createElementVNode as g, toDisplayString as _, Fragment as z, renderList as ne, withKeys as Me, normalizeClass as se, withModifiers as dt, withCtx as te, createTextVNode as re, h as ft, onBeforeUnmount as mt, nextTick as pt, Teleport as vt, normalizeStyle as gt, withDirectives as yt, vModelText as ht } from "vue";
2
- import { _ as _t } from "./empty-placeholder-B0QU467o.js";
3
- import { u as je, a as Ke, R as ue, d as xt, S as bt, b as wt } from "./app-BUQUpe4c.js";
1
+ import { ref as S, onUnmounted as dt, computed as R, defineComponent as ce, watch as q, onMounted as Ee, resolveComponent as H, createElementBlock as c, openBlock as i, createBlock as pe, createCommentVNode as F, unref as $, createVNode as D, createElementVNode as g, toDisplayString as _, Fragment as z, renderList as ne, withKeys as Me, normalizeClass as se, withModifiers as ft, withCtx as te, createTextVNode as re, h as mt, onBeforeUnmount as pt, nextTick as vt, Teleport as gt, normalizeStyle as yt, withDirectives as ht, vModelText as _t } from "vue";
2
+ import { _ as xt } from "./empty-placeholder-B0QU467o.js";
3
+ import { u as je, a as He, R as ue, d as bt, S as wt, b as kt } from "./app-BT7hD4az.js";
4
4
  import { useCoreStore as ge, useI18n as he } from "@feedmepos/mf-common";
5
- import { useRouter as Ee, useRoute as kt } from "vue-router";
6
- import { u as St, a as $t, I as Lt } from "./feature-FjXz4WXw.js";
7
- import { u as Rt } from "./netsuite-BD8LVxaA.js";
8
- import { u as He } from "./useNavigationMenu-BhYf87KI.js";
9
- import { useBreakpoints as Ct } from "@feedmepos/ui-library";
5
+ import { useRouter as Fe, useRoute as St } from "vue-router";
6
+ import { u as $t, a as Lt, I as Ct } from "./feature-CSvVyBN2.js";
7
+ import { u as Rt } from "./netsuite-CdW9v92G.js";
8
+ import { u as Je } from "./useNavigationMenu-1h-G_-el.js";
9
+ import { useBreakpoints as Dt } from "@feedmepos/ui-library";
10
10
  import { F as Pe } from "./FmAdminBadge-DlplQOHb.js";
11
- import { i as Dt, _ as It } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-Mxhn0b6c.js";
12
- import { F as Ft } from "./decimal-CqWBdj8E.js";
13
- import { t as Et, a as Pt } from "./date2-6jkfRNS_.js";
11
+ import { i as It, _ as Et } from "./FmDateRangePickerChip.vue_vue_type_script_setup_true_lang-DXTdvT0C.js";
12
+ import { F as Ft } from "./decimal-DYlKNkVX.js";
13
+ import { t as Pt, a as Tt } from "./date2-CAh7rsAp.js";
14
14
  import { _ as Nt } from "./_plugin-vue_export-helper-CHgC5LLL.js";
15
- import { u as Tt } from "./useTabStorage-BkIVScW_.js";
16
- import { u as Vt } from "./googlemap-D9vA7GsS.js";
17
- function Bt() {
15
+ import { u as Vt } from "./useTabStorage-BkIVScW_.js";
16
+ import { u as Bt } from "./googlemap-D9vA7GsS.js";
17
+ function Ut() {
18
18
  return {
19
19
  loadingHookInstalled: !1,
20
20
  isLoading: !1
21
21
  };
22
22
  }
23
- const me = S(Bt());
24
- function Ut() {
25
- const o = Ee();
23
+ const me = S(Ut());
24
+ function At() {
25
+ const o = Fe();
26
26
  if (!me.value.loadingHookInstalled) {
27
27
  me.value.loadingHookInstalled = !0;
28
28
  const e = o.beforeEach(() => {
@@ -30,7 +30,7 @@ function Ut() {
30
30
  }), t = o.afterEach(() => {
31
31
  me.value.isLoading = !1;
32
32
  });
33
- ct(() => {
33
+ dt(() => {
34
34
  me.value.loadingHookInstalled = !1, e(), t();
35
35
  });
36
36
  }
@@ -40,29 +40,29 @@ function Ut() {
40
40
  }
41
41
  };
42
42
  }
43
- function At() {
44
- const { firstAccessibleRouteName: o } = He();
45
- return { hasAnyAccessibleInventoryRoute: C(() => o.value !== null) };
43
+ function Mt() {
44
+ const { firstAccessibleRouteName: o } = Je();
45
+ return { hasAnyAccessibleInventoryRoute: R(() => o.value !== null) };
46
46
  }
47
- const Mt = {
47
+ const Ot = {
48
48
  key: 0,
49
49
  class: "flex flex-col items-center w-full h-full gap-24"
50
- }, Ot = {
50
+ }, zt = {
51
51
  key: 1,
52
52
  class: "flex flex-col pt-[200px] gap-32 items-center"
53
- }, zt = { class: "flex flex-col gap-12 items-center text-center px-24 max-w-[600px]" }, Gt = { class: "fm-typo-en-title-lg-600" }, jt = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Kt = {
53
+ }, Gt = { class: "flex flex-col gap-12 items-center text-center px-24 max-w-[600px]" }, Kt = { class: "fm-typo-en-title-lg-600" }, jt = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Ht = {
54
54
  key: 2,
55
55
  class: "flex flex-col pt-[200px] gap-32 items-center"
56
- }, Ht = { class: "flex flex-col gap-12 items-center text-center px-24 max-w-[1000px]" }, Jt = { class: "fm-typo-en-title-lg-600" }, Yt = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Xt = { class: "flex gap-16" }, Wt = { href: "https://feedme.ai/product/inventory/features?tab=plans_%26_prices" }, qt = { href: "https://feedme.ai/form" }, Zt = /* @__PURE__ */ ce({
56
+ }, Jt = { class: "flex flex-col gap-12 items-center text-center px-24 max-w-[1000px]" }, Yt = { class: "fm-typo-en-title-lg-600" }, Xt = { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, Wt = { class: "flex gap-16" }, qt = { href: "https://feedme.ai/product/inventory/features?tab=plans_%26_prices" }, Zt = { href: "https://feedme.ai/form" }, Qt = /* @__PURE__ */ ce({
57
57
  __name: "InventoryView",
58
58
  setup(o) {
59
- const e = je(), t = Ke(), l = Rt(), s = ge(), a = Ee(), u = Ut(), r = St(), { t: v } = he(), { hasAnyAccessibleInventoryRoute: m } = At();
59
+ const e = je(), t = He(), l = Rt(), s = ge(), a = Fe(), u = At(), r = $t(), { t: v } = he(), { hasAnyAccessibleInventoryRoute: m } = Mt();
60
60
  q(
61
61
  [() => s.sessionUser.value, () => s.currentBusiness.value],
62
62
  ([O, I]) => {
63
63
  h(O, I);
64
64
  }
65
- ), Fe(async () => {
65
+ ), Ee(async () => {
66
66
  await r.init(), await s.readBusinesses();
67
67
  const O = s.sessionUser.value, I = s.currentBusiness.value;
68
68
  h(O, I);
@@ -75,13 +75,13 @@ const Mt = {
75
75
  console.error("[all] error on reading netsuite store", O);
76
76
  }), await t.init();
77
77
  }
78
- const N = C(() => a.currentRoute.value.name === ue.TRANSFER_TEMPLATE ? r.enablePoTemplate : a.currentRoute.value.name === ue.INGREDIENT_GROUP ? r.enableIngredientGroup : !0), U = C(
78
+ const T = R(() => a.currentRoute.value.name === ue.TRANSFER_TEMPLATE ? r.enablePoTemplate : a.currentRoute.value.name === ue.INGREDIENT_GROUP ? r.enableIngredientGroup : !0), U = R(
79
79
  () => a.currentRoute.value.matched.some((O) => {
80
- var R;
80
+ var C;
81
81
  const I = O.meta, Y = I == null ? void 0 : I.validationManifest;
82
- return (((R = Y == null ? void 0 : Y.requiredCaslPermissions) == null ? void 0 : R.length) ?? 0) > 0;
82
+ return (((C = Y == null ? void 0 : Y.requiredCaslPermissions) == null ? void 0 : C.length) ?? 0) > 0;
83
83
  })
84
- ), oe = C(() => {
84
+ ), oe = R(() => {
85
85
  if (!s.sessionUser.value) return !1;
86
86
  if (e._locations !== null && e.locations.length === 0) return !0;
87
87
  if (!r.isLoaded) return !1;
@@ -89,39 +89,39 @@ const Mt = {
89
89
  return !m.value && (Y || U.value);
90
90
  });
91
91
  return (O, I) => {
92
- const Y = H("FmSpacer"), R = H("FmCircularProgress"), T = H("FmButton"), G = H("RouterView");
92
+ const Y = H("FmSpacer"), C = H("FmCircularProgress"), N = H("FmButton"), G = H("RouterView");
93
93
  return i(), c("div", null, [
94
- $(u).isLoading ? (i(), c("div", Mt, [
94
+ $(u).isLoading ? (i(), c("div", Ot, [
95
95
  D(Y),
96
96
  g("div", null, [
97
- D(R, { size: "xl" })
97
+ D(C, { size: "xl" })
98
98
  ]),
99
99
  I[0] || (I[0] = g("div", { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary pl-8" }, "Loading page...", -1)),
100
100
  D(Y)
101
- ])) : oe.value ? (i(), c("div", Ot, [
101
+ ])) : oe.value ? (i(), c("div", zt, [
102
102
  I[1] || (I[1] = g("img", {
103
- src: _t,
103
+ src: xt,
104
104
  alt: "No permission",
105
105
  class: "w-[200px] h-[200px]"
106
106
  }, null, -1)),
107
- g("div", zt, [
108
- g("div", Gt, _($(v)("inventory.common.noPermission.title")), 1),
107
+ g("div", Gt, [
108
+ g("div", Kt, _($(v)("inventory.common.noPermission.title")), 1),
109
109
  g("div", jt, _($(v)("inventory.common.noPermission.description")), 1)
110
110
  ])
111
- ])) : N.value ? $(s).sessionUser.value ? (i(), pe(G, { key: 3 })) : E("", !0) : (i(), c("div", Kt, [
112
- g("div", Ht, [
113
- g("div", Jt, _($(v)("inventory.common.proPlan.title")), 1),
114
- g("div", Yt, _($(v)("inventory.common.proPlan.subtitle")), 1)
111
+ ])) : T.value ? $(s).sessionUser.value ? (i(), pe(G, { key: 3 })) : F("", !0) : (i(), c("div", Ht, [
112
+ g("div", Jt, [
113
+ g("div", Yt, _($(v)("inventory.common.proPlan.title")), 1),
114
+ g("div", Xt, _($(v)("inventory.common.proPlan.subtitle")), 1)
115
115
  ]),
116
- g("div", Xt, [
117
- g("a", Wt, [
118
- D(T, {
116
+ g("div", Wt, [
117
+ g("a", qt, [
118
+ D(N, {
119
119
  label: $(v)("inventory.common.proPlan.comparePlans"),
120
120
  variant: "secondary"
121
121
  }, null, 8, ["label"])
122
122
  ]),
123
- g("a", qt, [
124
- D(T, {
123
+ g("a", Zt, [
124
+ D(N, {
125
125
  label: $(v)("inventory.common.proPlan.callUs"),
126
126
  "prepend-icon": "call"
127
127
  }, null, 8, ["label"])
@@ -131,7 +131,7 @@ const Mt = {
131
131
  ]);
132
132
  };
133
133
  }
134
- }), Re = {
134
+ }), Ce = {
135
135
  // Template/PO item rows carry no id of their own — the embedded sku's _id is
136
136
  // the element identity, and kit names the element from that object's name
137
137
  // field, so an item change reads "Items › <sku name> › …" instead of a bare
@@ -193,8 +193,8 @@ const Mt = {
193
193
  "version"
194
194
  ]
195
195
  }
196
- }, Ce = {
197
- ...Re,
196
+ }, Re = {
197
+ ...Ce,
198
198
  array_keys: {
199
199
  measurements: "id",
200
200
  "unit.measurements": "id",
@@ -204,10 +204,10 @@ const Mt = {
204
204
  "contains.alternatives": "_id"
205
205
  }
206
206
  };
207
- function Qt(o) {
208
- return o instanceof bt && o.errorResponse.statusCode === 409;
207
+ function en(o) {
208
+ return o instanceof wt && o.errorResponse.statusCode === 409;
209
209
  }
210
- const _e = xt((o, e) => ({
210
+ const _e = bt((o, e) => ({
211
211
  /**
212
212
  * Commits for one record. recordId is the changelog docId, `${dbName}/${id}`.
213
213
  * The dbName scopes the (access-checked) backend route; only the bare id is
@@ -285,7 +285,7 @@ const _e = xt((o, e) => ({
285
285
  return await e.get(s);
286
286
  }
287
287
  })), Se = 50;
288
- function en() {
288
+ function tn() {
289
289
  const o = _e(), e = S([]), t = S(!1), l = S(!1);
290
290
  let s = null, a = 0;
291
291
  async function u(v, m, h) {
@@ -296,11 +296,11 @@ function en() {
296
296
  }
297
297
  t.value = !0;
298
298
  try {
299
- const N = m ?? Se, U = await o.getRecordChangelog(v, N, h);
299
+ const T = m ?? Se, U = await o.getRecordChangelog(v, T, h);
300
300
  if (w !== a) return;
301
- e.value = U, m == null && (s = { recordId: v, explain: h }, l.value = U.length === N);
302
- } catch (N) {
303
- throw w === a && (e.value = []), N;
301
+ e.value = U, m == null && (s = { recordId: v, explain: h }, l.value = U.length === T);
302
+ } catch (T) {
303
+ throw w === a && (e.value = []), T;
304
304
  } finally {
305
305
  w === a && (t.value = !1);
306
306
  }
@@ -320,19 +320,25 @@ function en() {
320
320
  }
321
321
  return { commits: e, isLoading: t, hasMore: l, load: u, loadMore: r };
322
322
  }
323
- const Je = 1e3;
324
- function tn(o, e) {
325
- return [...o, ...e].sort((t, l) => l.at.localeCompare(t.at));
323
+ const Ye = 1e3;
324
+ function Oe(o) {
325
+ const e = /^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})(?:\.(\d+))?/.exec(o);
326
+ return e ? `${e[1]}.${(e[2] ?? "").padEnd(9, "0").slice(0, 9)}` : o;
327
+ }
328
+ function nn(o, e) {
329
+ return [...o, ...e].sort(
330
+ (t, l) => Oe(l.at).localeCompare(Oe(t.at)) || l.id.localeCompare(t.id)
331
+ );
326
332
  }
327
- function nn() {
333
+ function on() {
328
334
  const o = _e(), e = S([]);
329
335
  async function t(l) {
330
336
  if (e.value = [], !!l)
331
337
  try {
332
338
  e.value = await o.getRecordChangelog(
333
339
  l,
334
- Je,
335
- Ce
340
+ Ye,
341
+ Re
336
342
  );
337
343
  } catch (s) {
338
344
  console.error("changelog per-entity load failed", s);
@@ -340,7 +346,7 @@ function nn() {
340
346
  }
341
347
  return { commits: e, load: t };
342
348
  }
343
- function Ye(o) {
349
+ function Xe(o) {
344
350
  if (!o) return null;
345
351
  try {
346
352
  const e = JSON.parse(o);
@@ -353,28 +359,28 @@ function Ye(o) {
353
359
  return null;
354
360
  }
355
361
  }
356
- function Xe(o) {
362
+ function We(o) {
357
363
  return o.startsWith("inventory.changelog.");
358
364
  }
359
- const We = "";
365
+ const qe = "";
360
366
  function De(o) {
361
- const e = o.indexOf(We);
367
+ const e = o.indexOf(qe);
362
368
  return e === -1 ? { raw: o, human: o } : { raw: o.slice(0, e), human: o.slice(e + 1) };
363
369
  }
364
- const on = [
370
+ const an = [
365
371
  "inventory.changelog.label.recipe",
366
372
  "inventory.changelog.label.sku",
367
373
  "inventory.changelog.label.unit"
368
- ], an = [...on, "Recipe", "Ingredient", "Unit"];
369
- function sn(o) {
374
+ ], sn = [...an, "Recipe", "Ingredient", "Unit"];
375
+ function ln(o) {
370
376
  const { human: e } = De(o);
371
377
  if (!e) return { type: "Document", name: "", field: [] };
372
378
  const t = e.split(" › ");
373
- return t.length >= 2 && an.includes(t[0]) ? { type: t[0], name: t[1], field: t.slice(2) } : { type: "Document", name: "", field: t };
379
+ return t.length >= 2 && sn.includes(t[0]) ? { type: t[0], name: t[1], field: t.slice(2) } : { type: "Document", name: "", field: t };
374
380
  }
375
- const Oe = 800;
376
- function qe(o, e, t = 2) {
377
- const l = ze(o), s = ze(e);
381
+ const ze = 800;
382
+ function Ze(o, e, t = 2) {
383
+ const l = Ge(o), s = Ge(e);
378
384
  if (!l || !s) return null;
379
385
  let a = 0;
380
386
  for (; a < l.length && a < s.length && l[a] === s[a]; ) a++;
@@ -382,14 +388,14 @@ function qe(o, e, t = 2) {
382
388
  for (; u < l.length - a && u < s.length - a && l[l.length - 1 - u] === s[s.length - 1 - u]; )
383
389
  u++;
384
390
  const r = l.slice(a, l.length - u), v = s.slice(a, s.length - u);
385
- if (r.length > Oe || v.length > Oe) return null;
391
+ if (r.length > ze || v.length > ze) return null;
386
392
  const m = (h) => ({ type: "same", text: h });
387
- return rn(
388
- [...l.slice(0, a).map(m), ...ln(r, v), ...l.slice(l.length - u).map(m)],
393
+ return un(
394
+ [...l.slice(0, a).map(m), ...rn(r, v), ...l.slice(l.length - u).map(m)],
389
395
  t
390
396
  );
391
397
  }
392
- function ze(o) {
398
+ function Ge(o) {
393
399
  try {
394
400
  const e = JSON.parse(o);
395
401
  return e === null || typeof e != "object" ? null : JSON.stringify(e, null, 2).split(`
@@ -398,7 +404,7 @@ function ze(o) {
398
404
  return null;
399
405
  }
400
406
  }
401
- function ln(o, e) {
407
+ function rn(o, e) {
402
408
  const t = o.length, l = e.length, s = Array.from({ length: t + 1 }, () => new Uint32Array(l + 1));
403
409
  for (let v = t - 1; v >= 0; v--)
404
410
  for (let m = l - 1; m >= 0; m--)
@@ -411,7 +417,7 @@ function ln(o, e) {
411
417
  for (; r < l; ) a.push({ type: "add", text: e[r++] });
412
418
  return a;
413
419
  }
414
- function rn(o, e) {
420
+ function un(o, e) {
415
421
  const t = o.map(() => !1);
416
422
  o.forEach((a, u) => {
417
423
  if (a.type !== "same")
@@ -424,7 +430,7 @@ function rn(o, e) {
424
430
  t[u] ? (l.push(a), s = !1) : s || (l.push({ type: "skip", text: "⋯" }), s = !0);
425
431
  }), l;
426
432
  }
427
- function un(o, e) {
433
+ function cn(o, e) {
428
434
  let t;
429
435
  try {
430
436
  t = JSON.parse(o);
@@ -435,13 +441,13 @@ function un(o, e) {
435
441
  }
436
442
  function Ie(o, e, t = 0, l) {
437
443
  var m;
438
- const s = o.label == null ? void 0 : Xe(o.label) ? e(o.label) : o.label, a = s != null || o.value != null || o.display != null, u = !((m = o.kids) != null && m.length), r = [];
444
+ const s = o.label == null ? void 0 : We(o.label) ? e(o.label) : o.label, a = s != null || o.value != null || o.display != null, u = !((m = o.kids) != null && m.length), r = [];
439
445
  a && r.push({
440
446
  depth: t,
441
447
  // A bare array index says nothing a reader needs — a leaf list entry
442
448
  // shows just its value. Branch nodes keep the index as their header.
443
449
  label: s != null && u && /^\d+$/.test(s) ? void 0 : s,
444
- text: u ? cn(o, e, l) : void 0,
450
+ text: u ? dn(o, e, l) : void 0,
445
451
  bookkeeping: !!o.bookkeeping
446
452
  });
447
453
  const v = a ? t + 1 : t;
@@ -449,16 +455,16 @@ function Ie(o, e, t = 0, l) {
449
455
  r.push(...Ie(h, e, v, l));
450
456
  return r;
451
457
  }
452
- function cn(o, e, t) {
458
+ function dn(o, e, t) {
453
459
  if (o.value == null) return o.display || void 0;
454
- const l = un(o.value, e);
460
+ const l = cn(o.value, e);
455
461
  return (t == null ? void 0 : t(l)) ?? o.display ?? l;
456
462
  }
457
463
  function $e(o, e) {
458
464
  return JSON.stringify(o, null, 2).split(`
459
465
  `).map((t) => ({ type: e, text: t }));
460
466
  }
461
- function dn() {
467
+ function fn() {
462
468
  const o = _e(), e = /* @__PURE__ */ new Map(), t = S(!1), l = S(null);
463
469
  async function s(a) {
464
470
  const u = e.get(a.id);
@@ -471,13 +477,13 @@ function dn() {
471
477
  const r = a.doc_id.indexOf("/"), v = a.doc_id.slice(0, r), m = a.doc_id.slice(r + 1), [h, w] = await Promise.all([
472
478
  a.parent ? o.getState(v, m, a.parent) : Promise.resolve({}),
473
479
  o.getState(v, m, a.id)
474
- ]), U = { diff: a.parent ? qe(JSON.stringify(h), JSON.stringify(w)) ?? [
480
+ ]), U = { diff: a.parent ? Ze(JSON.stringify(h), JSON.stringify(w)) ?? [
475
481
  ...$e(h, "del"),
476
482
  ...$e(w, "add")
477
483
  ] : $e(w, "add"), conflict: !1 };
478
484
  e.set(a.id, U), l.value = U;
479
485
  } catch (r) {
480
- if (!Qt(r))
486
+ if (!en(r))
481
487
  throw l.value = null, r;
482
488
  const v = { diff: null, conflict: !0 };
483
489
  e.set(a.id, v), l.value = v;
@@ -487,67 +493,67 @@ function dn() {
487
493
  }
488
494
  return { isLoading: t, result: l, load: s };
489
495
  }
490
- const fn = {
496
+ const mn = {
491
497
  key: 0,
492
498
  class: "flex justify-center p-16"
493
- }, mn = {
499
+ }, pn = {
494
500
  key: 1,
495
501
  class: "p-16 text-center text-gray-500"
496
- }, pn = {
502
+ }, vn = {
497
503
  key: 2,
498
504
  class: "flex h-full min-h-0 gap-8"
499
- }, vn = { class: "w-1/3 shrink-0 overflow-y-auto border-r border-gray-200 pr-4" }, gn = ["onClick", "onKeydown"], yn = { class: "fm-typo-en-body-md-600" }, hn = { class: "text-xs text-gray-500" }, _n = {
505
+ }, gn = { class: "w-1/3 shrink-0 overflow-y-auto border-r border-gray-200 pr-4" }, yn = ["onClick", "onKeydown"], hn = { class: "fm-typo-en-body-md-600" }, _n = { class: "text-xs text-gray-500" }, xn = {
500
506
  key: 0,
501
507
  class: "flex-1 overflow-y-auto pl-4"
502
- }, xn = { class: "mb-12 flex flex-col gap-2 border-b border-gray-200 pb-8" }, bn = { class: "flex flex-wrap items-center gap-8" }, wn = { class: "fm-typo-en-body-lg-600" }, kn = {
508
+ }, bn = { class: "mb-12 flex flex-col gap-2 border-b border-gray-200 pb-8" }, wn = { class: "flex flex-wrap items-center gap-8" }, kn = { class: "fm-typo-en-body-lg-600" }, Sn = {
503
509
  key: 0,
504
510
  class: "rounded-full bg-gray-100 px-8 text-xs text-gray-500"
505
- }, Sn = { class: "text-xs text-gray-500" }, $n = { class: "mb-12" }, Ln = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary pl-8" }, Rn = {
511
+ }, $n = { class: "text-xs text-gray-500" }, Ln = { class: "mb-12" }, Cn = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary pl-8" }, Rn = {
506
512
  key: 0,
507
513
  class: "mb-12"
508
- }, Cn = {
514
+ }, Dn = {
509
515
  key: 1,
510
516
  class: "text-sm text-gray-400"
511
- }, Dn = {
517
+ }, In = {
512
518
  key: 2,
513
519
  class: "w-full overflow-x-auto rounded border border-gray-200 py-4 font-mono text-xs"
514
- }, In = {
520
+ }, En = {
515
521
  key: 0,
516
522
  class: "text-xs text-gray-400"
517
- }, Fn = { class: "fm-typo-en-body-md-600" }, En = { class: "flex flex-col gap-6" }, Pn = {
523
+ }, Fn = { class: "fm-typo-en-body-md-600" }, Pn = { class: "flex flex-col gap-6" }, Tn = {
518
524
  key: 0,
519
525
  class: "text-gray-700"
520
- }, Nn = { class: "min-w-[120px] shrink-0 text-gray-500" }, Tn = {
526
+ }, Nn = { class: "min-w-[120px] shrink-0 text-gray-500" }, Vn = {
521
527
  key: 0,
522
528
  class: "flex w-full flex-col gap-4"
523
- }, Vn = {
529
+ }, Bn = {
524
530
  key: 0,
525
531
  class: "w-full overflow-x-auto rounded border border-gray-200 py-4 font-mono text-xs"
526
- }, Bn = { key: 0 }, Un = { key: 1 }, An = {
532
+ }, Un = { key: 0 }, An = { key: 1 }, Mn = {
527
533
  key: 1,
528
534
  class: "w-full overflow-x-auto rounded border border-gray-200 py-4 font-mono text-xs"
529
- }, Mn = { key: 0 }, On = { key: 1 }, zn = {
535
+ }, On = { key: 0 }, zn = { key: 1 }, Gn = {
530
536
  key: 1,
531
537
  class: "w-full overflow-x-auto rounded border border-gray-200 py-4 font-mono text-xs"
532
- }, Gn = {
538
+ }, Kn = {
533
539
  key: 2,
534
540
  class: "flex w-full flex-wrap items-baseline gap-4"
535
541
  }, jn = {
536
542
  key: 0,
537
543
  class: "rounded bg-red-50 px-4 text-red-700"
538
- }, Kn = {
544
+ }, Hn = {
539
545
  key: 1,
540
546
  class: "text-gray-400"
541
- }, Hn = {
547
+ }, Jn = {
542
548
  key: 2,
543
549
  class: "rounded bg-green-50 px-4 text-green-700"
544
- }, Jn = {
550
+ }, Yn = {
545
551
  key: 1,
546
552
  class: "text-sm text-gray-500"
547
- }, Yn = {
553
+ }, Xn = {
548
554
  key: 2,
549
555
  class: "mt-16 break-all border-t border-gray-200 pt-8 font-mono text-xs text-gray-400"
550
- }, Xn = { key: 0 }, Wn = "capture baseline", qn = /* @__PURE__ */ ce({
556
+ }, Wn = { key: 0 }, qn = "capture baseline", Zn = /* @__PURE__ */ ce({
551
557
  __name: "ChangelogPanel",
552
558
  props: {
553
559
  commits: {},
@@ -555,9 +561,9 @@ const fn = {
555
561
  resolveName: { type: Function }
556
562
  },
557
563
  setup(o) {
558
- const e = o, { t } = he(), l = S(null), s = C(
564
+ const e = o, { t } = he(), l = S(null), s = R(
559
565
  () => e.commits.find((p) => p.id === l.value)
560
- ), a = /* @__PURE__ */ new Set(["updatedAt", "createdAt", "updatedBy", "createdBy", "_rev"]), u = C(() => {
566
+ ), a = /* @__PURE__ */ new Set(["updatedAt", "createdAt", "updatedBy", "createdBy", "_rev"]), u = R(() => {
561
567
  var b;
562
568
  return (((b = s.value) == null ? void 0 : b.changes) ?? []).filter((B) => {
563
569
  const { raw: V } = De(B.path);
@@ -572,7 +578,7 @@ const fn = {
572
578
  },
573
579
  { immediate: !0 }
574
580
  );
575
- const r = S(!1), { isLoading: v, result: m, load: h } = dn();
581
+ const r = S(!1), { isLoading: v, result: m, load: h } = fn();
576
582
  q([r, s], ([p, b]) => {
577
583
  m.value = null, !(!p || !b) && h(b).catch((B) => {
578
584
  console.error("changelog snapshot load failed", B), r.value = !1;
@@ -581,7 +587,7 @@ const fn = {
581
587
  function w(p) {
582
588
  return p ? p.slice(0, 8) : "";
583
589
  }
584
- function N(p) {
590
+ function T(p) {
585
591
  return p ? new Date(p).toLocaleString() : "";
586
592
  }
587
593
  function U(p) {
@@ -598,20 +604,20 @@ const fn = {
598
604
  return (p.authors || []).join(", ") || t("inventory.changelog.unknownActor");
599
605
  }
600
606
  function O(p) {
601
- if (p.message === Wn) return t("inventory.changelog.captureBaseline");
602
- const b = Ye(p.message);
607
+ if (p.message === qn) return t("inventory.changelog.captureBaseline");
608
+ const b = Xe(p.message);
603
609
  if (!b) return p.message || t("inventory.changelog.noMessage");
604
610
  const B = I(b.labelKey);
605
611
  return b.name ? t(`inventory.changelog.message.${b.verb}`, { module: B, name: b.name }) : t(`inventory.changelog.message.${b.verb}NoName`, { module: B });
606
612
  }
607
613
  function I(p) {
608
- return Xe(p) ? t(p) : p;
614
+ return We(p) ? t(p) : p;
609
615
  }
610
616
  const Y = (p) => /[^a-zA-Z]/.test(p);
611
- function R(p, b) {
612
- return p == null || b == null ? null : qe(p, b);
617
+ function C(p, b) {
618
+ return p == null || b == null ? null : Ze(p, b);
613
619
  }
614
- function T(p) {
620
+ function N(p) {
615
621
  if (!(!p.to_value && !p.from_value))
616
622
  return {
617
623
  toTree: p.to_value ? Ie(p.to_value, t, 0, e.resolveName) : void 0,
@@ -621,36 +627,36 @@ const fn = {
621
627
  function G(p) {
622
628
  return p === "add" ? "bg-green-50 text-green-700" : p === "del" ? "bg-red-50 text-red-700" : p === "skip" ? "text-gray-400" : "text-gray-600";
623
629
  }
624
- function j(p) {
630
+ function K(p) {
625
631
  return p.type === "skip" ? p.text : (p.type === "add" ? "+ " : p.type === "del" ? "- " : " ") + p.text;
626
632
  }
627
- const Q = C(() => {
633
+ const Q = R(() => {
628
634
  const p = /* @__PURE__ */ new Map(), b = [], B = (y, f) => {
629
- let F = p.get(y);
630
- return F || (F = f(), p.set(y, F), b.push(F)), F;
635
+ let E = p.get(y);
636
+ return E || (E = f(), p.set(y, E), b.push(E)), E;
631
637
  }, V = () => B("@doc", () => ({ header: "", lines: [] })), X = (y, f) => {
632
638
  var P;
633
639
  if (y == null) return f;
634
- let F;
640
+ let E;
635
641
  try {
636
- F = JSON.parse(y);
642
+ E = JSON.parse(y);
637
643
  } catch {
638
- F = y;
644
+ E = y;
639
645
  }
640
- return (typeof F == "string" ? (P = e.resolveName) == null ? void 0 : P.call(e, F) : void 0) ?? f;
641
- }, K = (y, f, F) => {
646
+ return (typeof E == "string" ? (P = e.resolveName) == null ? void 0 : P.call(e, E) : void 0) ?? f;
647
+ }, j = (y, f, E) => {
642
648
  var P, J, Z, ee;
643
- const x = T(f);
644
- x ? y.lines.push({ label: F, ...x }) : f.from != null && f.to != null ? y.lines.push({
645
- label: F,
649
+ const x = N(f);
650
+ x ? y.lines.push({ label: E, ...x }) : f.from != null && f.to != null ? y.lines.push({
651
+ label: E,
646
652
  from: f.from,
647
653
  to: f.to,
648
- diff: R(f.from, f.to),
654
+ diff: C(f.from, f.to),
649
655
  fromDisplay: X(f.from, (P = f.display) == null ? void 0 : P.from),
650
656
  toDisplay: X(f.to, (J = f.display) == null ? void 0 : J.to)
651
- }) : f.to != null ? y.lines.push({ label: F, to: f.to, toDisplay: X(f.to, (Z = f.display) == null ? void 0 : Z.to) }) : y.lines.push({ label: F, from: f.from, fromDisplay: X(f.from, (ee = f.display) == null ? void 0 : ee.from) });
657
+ }) : f.to != null ? y.lines.push({ label: E, to: f.to, toDisplay: X(f.to, (Z = f.display) == null ? void 0 : Z.to) }) : y.lines.push({ label: E, from: f.from, fromDisplay: X(f.from, (ee = f.display) == null ? void 0 : ee.from) });
652
658
  }, L = (y) => {
653
- var F;
659
+ var E;
654
660
  const f = y.element;
655
661
  if (f) {
656
662
  const x = B(`kit:${(f.trail ?? []).join(".")}:${f.id ?? ""}`, () => ({
@@ -658,57 +664,57 @@ const fn = {
658
664
  header: f.name || f.id || "",
659
665
  lines: []
660
666
  }));
661
- if ((F = y.field) != null && F.length)
662
- K(x, y, y.field.map(I).join(" › "));
667
+ if ((E = y.field) != null && E.length)
668
+ j(x, y, y.field.map(I).join(" › "));
663
669
  else {
664
670
  x.badge = y.to != null ? "added" : "removed";
665
- const P = T(y);
671
+ const P = N(y);
666
672
  P && x.lines.push(P);
667
673
  }
668
674
  return;
669
675
  }
670
- K(V(), y, (y.field ?? []).map(I).join(" › "));
676
+ j(V(), y, (y.field ?? []).map(I).join(" › "));
671
677
  };
672
678
  for (const y of u.value) {
673
- const { raw: f, human: F } = De(y.path);
679
+ const { raw: f, human: E } = De(y.path);
674
680
  if (y.kind === "create" && !f) {
675
- const Z = T(y);
681
+ const Z = N(y);
676
682
  V().lines.push(
677
683
  Z ? { label: t("inventory.changelog.kind.created"), ...Z } : { text: t("inventory.changelog.kind.created") }
678
684
  );
679
685
  continue;
680
686
  }
681
- if (!y.path.includes(We) && (y.field || y.element)) {
687
+ if (!y.path.includes(qe) && (y.field || y.element)) {
682
688
  L(y);
683
689
  continue;
684
690
  }
685
- const x = f ? f.split(".") : [], P = F ? F.split(" › ") : [], J = x.findIndex((Z, ee) => ee > 0 && Y(Z));
691
+ const x = f ? f.split(".") : [], P = E ? E.split(" › ") : [], J = x.findIndex((Z, ee) => ee > 0 && Y(Z));
686
692
  if (J > 0 && P.length === x.length) {
687
693
  const Z = P[J], ee = B(x.slice(0, J + 1).join("."), () => ({
688
694
  kind: P.slice(0, J).map(I).join(" › "),
689
695
  header: Z,
690
696
  lines: []
691
697
  })), ie = P.slice(J + 1).map(I).join(" › ");
692
- if (ie) K(ee, y, ie);
693
- else if (y.from != null && y.to != null) K(ee, y, Z);
698
+ if (ie) j(ee, y, ie);
699
+ else if (y.from != null && y.to != null) j(ee, y, Z);
694
700
  else {
695
701
  ee.badge = y.to != null ? "added" : "removed";
696
- const de = T(y);
702
+ const de = N(y);
697
703
  de && ee.lines.push(de);
698
704
  }
699
705
  continue;
700
706
  }
701
- K(V(), y, P.map(I).join(" › "));
707
+ j(V(), y, P.map(I).join(" › "));
702
708
  }
703
709
  return b;
704
710
  });
705
711
  return (p, b) => {
706
- var X, K;
712
+ var X, j;
707
713
  const B = H("FmCircularProgress"), V = H("FmSwitch");
708
- return p.isLoading ? (i(), c("div", fn, [
714
+ return p.isLoading ? (i(), c("div", mn, [
709
715
  D(B)
710
- ])) : p.commits.length ? (i(), c("div", pn, [
711
- g("ol", vn, [
716
+ ])) : p.commits.length ? (i(), c("div", vn, [
717
+ g("ol", gn, [
712
718
  (i(!0), c(z, null, ne(p.commits, (L) => (i(), c("li", {
713
719
  key: L.id,
714
720
  role: "button",
@@ -720,25 +726,25 @@ const fn = {
720
726
  onClick: (y) => l.value = L.id,
721
727
  onKeydown: [
722
728
  Me((y) => l.value = L.id, ["enter"]),
723
- Me(dt((y) => l.value = L.id, ["prevent"]), ["space"])
729
+ Me(ft((y) => l.value = L.id, ["prevent"]), ["space"])
724
730
  ]
725
731
  }, [
726
- g("div", yn, _(O(L)), 1),
727
- g("div", hn, _(oe(L)) + " · " + _(N(L.at)) + " · " + _(w(L.id)), 1)
728
- ], 42, gn))), 128))
732
+ g("div", hn, _(O(L)), 1),
733
+ g("div", _n, _(oe(L)) + " · " + _(T(L.at)) + " · " + _(w(L.id)), 1)
734
+ ], 42, yn))), 128))
729
735
  ]),
730
- s.value ? (i(), c("div", _n, [
731
- g("div", xn, [
732
- g("div", bn, [
733
- g("div", wn, _(O(s.value)), 1),
734
- s.value.parent ? E("", !0) : (i(), c("span", kn, _($(t)("inventory.changelog.rootCommit")), 1))
736
+ s.value ? (i(), c("div", xn, [
737
+ g("div", bn, [
738
+ g("div", wn, [
739
+ g("div", kn, _(O(s.value)), 1),
740
+ s.value.parent ? F("", !0) : (i(), c("span", Sn, _($(t)("inventory.changelog.rootCommit")), 1))
735
741
  ]),
736
- g("div", Sn, _(oe(s.value)) + " · " + _(N(s.value.at)), 1)
742
+ g("div", $n, _(oe(s.value)) + " · " + _(T(s.value.at)), 1)
737
743
  ]),
738
- g("div", $n, [
744
+ g("div", Ln, [
739
745
  D(Pe, null, {
740
746
  default: te(() => [
741
- g("span", Ln, _($(t)("inventory.changelog.dataDiff")), 1),
747
+ g("span", Cn, _($(t)("inventory.changelog.dataDiff")), 1),
742
748
  D(V, {
743
749
  modelValue: r.value,
744
750
  "onUpdate:modelValue": b[0] || (b[0] = (L) => r.value = L)
@@ -748,13 +754,13 @@ const fn = {
748
754
  })
749
755
  ]),
750
756
  r.value ? (i(), c("div", Rn, [
751
- $(v) ? (i(), pe(B, { key: 0 })) : (X = $(m)) != null && X.conflict ? (i(), c("div", Cn, _($(t)("inventory.changelog.snapshotUnavailable")), 1)) : (K = $(m)) != null && K.diff ? (i(), c("div", Dn, [
757
+ $(v) ? (i(), pe(B, { key: 0 })) : (X = $(m)) != null && X.conflict ? (i(), c("div", Dn, _($(t)("inventory.changelog.snapshotUnavailable")), 1)) : (j = $(m)) != null && j.diff ? (i(), c("div", In, [
752
758
  (i(!0), c(z, null, ne($(m).diff, (L, y) => (i(), c("div", {
753
759
  key: y,
754
760
  class: se(["whitespace-pre px-4", G(L.type)])
755
- }, _(j(L)), 3))), 128))
756
- ])) : E("", !0)
757
- ])) : E("", !0),
761
+ }, _(K(L)), 3))), 128))
762
+ ])) : F("", !0)
763
+ ])) : F("", !0),
758
764
  (i(!0), c(z, null, ne(Q.value, (L, y) => (i(), c("div", {
759
765
  key: y,
760
766
  class: "mb-12 rounded-lg border border-gray-200 p-12"
@@ -763,22 +769,22 @@ const fn = {
763
769
  key: 0,
764
770
  class: se(["flex flex-wrap items-baseline gap-8", L.lines.length ? "mb-8" : ""])
765
771
  }, [
766
- L.kind ? (i(), c("span", In, _(L.kind), 1)) : E("", !0),
772
+ L.kind ? (i(), c("span", En, _(L.kind), 1)) : F("", !0),
767
773
  g("span", Fn, _(L.header), 1),
768
774
  L.badge ? (i(), c("span", {
769
775
  key: 1,
770
776
  class: se(["rounded-full px-8 text-xs", L.badge === "added" ? "bg-green-100 text-green-700" : "bg-red-100 text-red-700"])
771
- }, _(L.badge === "added" ? $(t)("inventory.changelog.added") : $(t)("inventory.changelog.kind.removed")), 3)) : E("", !0)
772
- ], 2)) : E("", !0),
773
- g("ul", En, [
774
- (i(!0), c(z, null, ne(L.lines, (f, F) => (i(), c("li", {
775
- key: F,
777
+ }, _(L.badge === "added" ? $(t)("inventory.changelog.added") : $(t)("inventory.changelog.kind.removed")), 3)) : F("", !0)
778
+ ], 2)) : F("", !0),
779
+ g("ul", Pn, [
780
+ (i(!0), c(z, null, ne(L.lines, (f, E) => (i(), c("li", {
781
+ key: E,
776
782
  class: "flex flex-wrap items-baseline gap-8 text-sm"
777
783
  }, [
778
- f.text ? (i(), c("span", Pn, _(f.text), 1)) : (i(), c(z, { key: 1 }, [
784
+ f.text ? (i(), c("span", Tn, _(f.text), 1)) : (i(), c(z, { key: 1 }, [
779
785
  g("span", Nn, _(f.label), 1),
780
- f.toTree || f.fromTree ? (i(), c("div", Tn, [
781
- f.fromTree ? (i(), c("div", Vn, [
786
+ f.toTree || f.fromTree ? (i(), c("div", Vn, [
787
+ f.fromTree ? (i(), c("div", Bn, [
782
788
  (i(!0), c(z, null, ne(f.fromTree, (x, P) => (i(), c("div", {
783
789
  key: P,
784
790
  class: se(["flex items-baseline gap-4 px-4", x.bookkeeping ? "text-gray-400" : "text-red-700"])
@@ -787,16 +793,16 @@ const fn = {
787
793
  key: J,
788
794
  class: "inline-block w-16"
789
795
  }))), 128)),
790
- x.label ? (i(), c("span", Bn, [
796
+ x.label ? (i(), c("span", Un, [
791
797
  re(_(x.label), 1),
792
798
  x.text ? (i(), c(z, { key: 0 }, [
793
799
  re(":")
794
- ], 64)) : E("", !0)
795
- ])) : E("", !0),
796
- x.text ? (i(), c("span", Un, _(x.text), 1)) : E("", !0)
800
+ ], 64)) : F("", !0)
801
+ ])) : F("", !0),
802
+ x.text ? (i(), c("span", An, _(x.text), 1)) : F("", !0)
797
803
  ], 2))), 128))
798
- ])) : E("", !0),
799
- f.toTree ? (i(), c("div", An, [
804
+ ])) : F("", !0),
805
+ f.toTree ? (i(), c("div", Mn, [
800
806
  (i(!0), c(z, null, ne(f.toTree, (x, P) => (i(), c("div", {
801
807
  key: P,
802
808
  class: se(["flex items-baseline gap-4 px-4", x.bookkeeping ? "text-gray-400" : "text-green-700"])
@@ -805,65 +811,65 @@ const fn = {
805
811
  key: J,
806
812
  class: "inline-block w-16"
807
813
  }))), 128)),
808
- x.label ? (i(), c("span", Mn, [
814
+ x.label ? (i(), c("span", On, [
809
815
  re(_(x.label), 1),
810
816
  x.text ? (i(), c(z, { key: 0 }, [
811
817
  re(":")
812
- ], 64)) : E("", !0)
813
- ])) : E("", !0),
814
- x.text ? (i(), c("span", On, _(x.text), 1)) : E("", !0)
818
+ ], 64)) : F("", !0)
819
+ ])) : F("", !0),
820
+ x.text ? (i(), c("span", zn, _(x.text), 1)) : F("", !0)
815
821
  ], 2))), 128))
816
- ])) : E("", !0)
817
- ])) : f.diff ? (i(), c("div", zn, [
822
+ ])) : F("", !0)
823
+ ])) : f.diff ? (i(), c("div", Gn, [
818
824
  (i(!0), c(z, null, ne(f.diff, (x, P) => (i(), c("div", {
819
825
  key: P,
820
826
  class: se(["whitespace-pre px-4", G(x.type)])
821
- }, _(j(x)), 3))), 128))
822
- ])) : (i(), c("span", Gn, [
823
- f.from != null ? (i(), c("span", jn, _(f.fromDisplay ?? U(f.from)), 1)) : E("", !0),
824
- f.from != null && f.to != null ? (i(), c("span", Kn, "→")) : E("", !0),
825
- f.to != null ? (i(), c("span", Hn, _(f.toDisplay ?? U(f.to)), 1)) : E("", !0)
827
+ }, _(K(x)), 3))), 128))
828
+ ])) : (i(), c("span", Kn, [
829
+ f.from != null ? (i(), c("span", jn, _(f.fromDisplay ?? U(f.from)), 1)) : F("", !0),
830
+ f.from != null && f.to != null ? (i(), c("span", Hn, "→")) : F("", !0),
831
+ f.to != null ? (i(), c("span", Jn, _(f.toDisplay ?? U(f.to)), 1)) : F("", !0)
826
832
  ]))
827
833
  ], 64))
828
834
  ]))), 128))
829
835
  ])
830
836
  ]))), 128)),
831
- Q.value.length ? E("", !0) : (i(), c("div", Jn, _($(t)("inventory.changelog.empty")), 1)),
832
- r.value ? (i(), c("div", Yn, [
837
+ Q.value.length ? F("", !0) : (i(), c("div", Yn, _($(t)("inventory.changelog.empty")), 1)),
838
+ r.value ? (i(), c("div", Xn, [
833
839
  re(_(s.value.id) + " ", 1),
834
- s.value.parent ? (i(), c("span", Xn, "← " + _(s.value.parent), 1)) : E("", !0)
835
- ])) : E("", !0)
836
- ])) : E("", !0)
837
- ])) : (i(), c("div", mn, _($(t)("inventory.changelog.empty")), 1));
840
+ s.value.parent ? (i(), c("span", Wn, "← " + _(s.value.parent), 1)) : F("", !0)
841
+ ])) : F("", !0)
842
+ ])) : F("", !0)
843
+ ])) : (i(), c("div", pn, _($(t)("inventory.changelog.empty")), 1));
838
844
  };
839
845
  }
840
- }), Zn = { class: "flex flex-col gap-8" }, Qn = { class: "flex flex-wrap items-center gap-16" }, eo = { class: "fm-typo-en-heading-lg-600" }, to = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, no = { class: "flex h-full min-h-0 flex-col gap-12 p-16" }, oo = { class: "flex flex-wrap items-center gap-12" }, ao = { class: "flex shrink-0 items-center gap-8" }, so = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, lo = { class: "flex flex-wrap items-center gap-12" }, ro = {
846
+ }), Qn = { class: "flex flex-col gap-8" }, eo = { class: "flex flex-wrap items-center gap-16" }, to = { class: "fm-typo-en-heading-lg-600" }, no = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, oo = { class: "flex h-full min-h-0 flex-col gap-12 p-16" }, ao = { class: "flex flex-wrap items-center gap-12" }, so = { class: "flex shrink-0 items-center gap-8" }, lo = { class: "fm-typo-en-body-md-400 text-fm-color-typo-secondary" }, ro = { class: "flex flex-wrap items-center gap-12" }, io = {
841
847
  key: 0,
842
848
  class: "fm-typo-en-body-md-600"
843
- }, io = { class: "fm-typo-en-heading-md-600" }, uo = {
849
+ }, uo = { class: "fm-typo-en-heading-md-600" }, co = {
844
850
  key: 0,
845
851
  class: "flex justify-center py-8"
846
- }, Le = "inventory.changelog.label.", co = /* @__PURE__ */ ce({
852
+ }, Le = "inventory.changelog.label.", fo = /* @__PURE__ */ ce({
847
853
  __name: "ChangelogDialog",
848
854
  props: {
849
855
  modelValue: { type: Boolean }
850
856
  },
851
857
  emits: ["update:modelValue"],
852
858
  setup(o, { emit: e }) {
853
- const t = o, l = e, s = C({
859
+ const t = o, l = e, s = R({
854
860
  get: () => t.modelValue,
855
861
  set: (n) => l("update:modelValue", n)
856
- }), { t: a } = he(), u = ge(), r = Ke(), v = je(), m = _e(), { breakpoints: h } = Ct(), w = C(() => h.value.xs || h.value.sm), N = C(() => w.value ? "98vw" : "72vw"), { commits: U, isLoading: oe, hasMore: O, load: I, loadMore: Y } = en();
857
- function R() {
862
+ }), { t: a } = he(), u = ge(), r = He(), v = je(), m = _e(), { breakpoints: h } = Dt(), w = R(() => h.value.xs || h.value.sm), T = R(() => w.value ? "98vw" : "72vw"), { commits: U, isLoading: oe, hasMore: O, load: I, loadMore: Y } = tn();
863
+ function C() {
858
864
  Y().catch((n) => console.error("changelog load more failed", n));
859
865
  }
860
- function T(n) {
866
+ function N(n) {
861
867
  return n ? new Date(n).toLocaleString() : "—";
862
868
  }
863
869
  function G(n) {
864
870
  return [...n].sort((d, k) => (k.lastUpdate ?? "").localeCompare(d.lastUpdate ?? ""));
865
871
  }
866
- function j(n, d, k) {
872
+ function K(n, d, k) {
867
873
  I(n, d, k).catch((A) => console.error("changelog load failed", A));
868
874
  }
869
875
  const Q = S([]);
@@ -877,29 +883,29 @@ const fn = {
877
883
  console.error("changelog domain list load failed", k), Q.value = [];
878
884
  }
879
885
  }
880
- const b = C(() => [
886
+ const b = R(() => [
881
887
  { label: a("inventory.changelog.label.purchaseOrder"), value: "purchaseOrder" },
882
888
  { label: a("inventory.changelog.label.closingDraft"), value: "closingDraft" },
883
889
  { label: a("inventory.changelog.domainInventory"), value: "inventory" },
884
890
  ...Q.value.map((n) => ({ label: a(n.labelKey), value: n.domain }))
885
- ]), B = S(b.value[0]), V = C(() => {
891
+ ]), B = S(b.value[0]), V = R(() => {
886
892
  var n;
887
893
  return ((n = B.value) == null ? void 0 : n.value) ?? "purchaseOrder";
888
- }), X = C(
894
+ }), X = R(
889
895
  () => Q.value.some((n) => n.domain === V.value)
890
- ), K = S(!1), L = C(
896
+ ), j = S(!1), L = R(
891
897
  () => ["sku", "recipe", "unit"].map((n) => ({
892
898
  label: a(Le + n),
893
899
  value: n
894
900
  }))
895
- ), y = S(L.value[0]), f = C(() => {
901
+ ), y = S(L.value[0]), f = R(() => {
896
902
  var n;
897
903
  return ((n = y.value) == null ? void 0 : n.value) ?? "sku";
898
- }), F = S(""), x = S(null), P = S(!1), J = C(() => {
904
+ }), E = S(""), x = S(null), P = S(!1), J = R(() => {
899
905
  var k;
900
906
  const n = (k = u.currentBusiness.value) == null ? void 0 : k._id, d = r.inventory._id;
901
907
  return n && d ? `business_${n}/${d}` : "";
902
- }), Z = C(() => {
908
+ }), Z = R(() => {
903
909
  const n = /* @__PURE__ */ new Map(), d = r.inventory;
904
910
  for (const k of [d.sku, d.recipe, d.unit, d.skuGroup])
905
911
  for (const A of k ?? [])
@@ -914,7 +920,7 @@ const fn = {
914
920
  }
915
921
  return n;
916
922
  }), ee = (n) => Z.value.get(n), ie = S([]), de = S(!1);
917
- async function Ne() {
923
+ async function Te() {
918
924
  var d;
919
925
  const n = (d = u.currentBusiness.value) == null ? void 0 : d._id;
920
926
  if (n) {
@@ -930,9 +936,9 @@ const fn = {
930
936
  }
931
937
  }
932
938
  }
933
- const Ze = C(
939
+ const Qe = R(
934
940
  () => P.value ? ie.value : ie.value.filter((n) => !n.deleted)
935
- ), Qe = C(() => [
941
+ ), et = R(() => [
936
942
  { accessorKey: "id", header: () => a("inventory.closing.draft.table.id"), size: 320 },
937
943
  {
938
944
  id: "name",
@@ -940,7 +946,7 @@ const fn = {
940
946
  accessorFn: (n) => n.name,
941
947
  // Deleted records sit in the same list as live ones, so the row says which
942
948
  // it is; nothing else distinguishes them.
943
- cell: ({ row: n }) => n.original.deleted ? ft(
949
+ cell: ({ row: n }) => n.original.deleted ? mt(
944
950
  "span",
945
951
  { "data-deleted": "" },
946
952
  `${n.original.name} (${a("inventory.changelog.deleted")})`
@@ -953,28 +959,28 @@ const fn = {
953
959
  // Raw ISO is the sort key — clicking the header on formatted dates would
954
960
  // order them lexicographically by locale string. Formatted only to display.
955
961
  accessorFn: (n) => n.lastUpdate ?? "",
956
- cell: ({ getValue: n }) => T(n() || void 0)
962
+ cell: ({ getValue: n }) => N(n() || void 0)
957
963
  }
958
- ]), { commits: et, load: tt } = nn();
959
- function nt(n) {
960
- x.value = n, K.value = !0, j(J.value, Je, Ce), n.id && tt(`${J.value}/${f.value}/${n.id}`).catch(
964
+ ]), { commits: tt, load: nt } = on();
965
+ function ot(n) {
966
+ x.value = n, j.value = !0, K(J.value, Ye, Re), n.id && nt(`${J.value}/${f.value}/${n.id}`).catch(
961
967
  (d) => console.error("changelog per-entity load failed", d)
962
968
  );
963
969
  }
964
- function ot(n, d) {
965
- const k = Ye(n.message);
970
+ function at(n, d) {
971
+ const k = Xe(n.message);
966
972
  return k && k.labelKey === Le + f.value && k.name === d.name ? !0 : (n.changes ?? []).some((A) => {
967
- const W = sn(A.path);
973
+ const W = ln(A.path);
968
974
  return W.type === Le + f.value && W.name === d.name;
969
975
  });
970
976
  }
971
- const at = C(() => {
977
+ const st = R(() => {
972
978
  const n = x.value;
973
979
  if (!n) return [];
974
- const d = U.value.filter((k) => ot(k, n));
975
- return tn(d, et.value);
980
+ const d = U.value.filter((k) => at(k, n));
981
+ return nn(d, tt.value);
976
982
  }), xe = S([]), be = S(!1), we = S(null);
977
- async function st() {
983
+ async function lt() {
978
984
  var d;
979
985
  const n = (d = u.currentBusiness.value) == null ? void 0 : d._id;
980
986
  if (n) {
@@ -990,15 +996,15 @@ const fn = {
990
996
  }
991
997
  }
992
998
  }
993
- function lt(n) {
999
+ function rt(n) {
994
1000
  var k;
995
1001
  const d = (k = u.currentBusiness.value) == null ? void 0 : k._id;
996
- d && (we.value = n, K.value = !0, j(`business_${d}/${n.id}`, void 0, Re));
1002
+ d && (we.value = n, j.value = !0, K(`business_${d}/${n.id}`, void 0, Ce));
997
1003
  }
998
- const ve = S(Dt()), ye = S([]), ke = S(!1), fe = S(null), Te = C(() => {
1004
+ const ve = S(It()), ye = S([]), ke = S(!1), fe = S(null), Ne = R(() => {
999
1005
  const n = v._currentLocation;
1000
1006
  return n ? `${n.name} (${n.doc.profile.code ?? "--"})` : "";
1001
- }), Ve = C(() => [
1007
+ }), Ve = R(() => [
1002
1008
  { accessorKey: "id", header: () => a("inventory.closing.draft.table.id"), size: 320 },
1003
1009
  {
1004
1010
  accessorKey: "name",
@@ -1011,14 +1017,14 @@ const fn = {
1011
1017
  size: 200,
1012
1018
  // Raw ISO is the sort key; see the note on the inventory table.
1013
1019
  accessorFn: (n) => n.lastUpdate ?? "",
1014
- cell: ({ getValue: n }) => T(n() || void 0)
1020
+ cell: ({ getValue: n }) => N(n() || void 0)
1015
1021
  }
1016
1022
  ]);
1017
1023
  async function Be() {
1018
1024
  var A;
1019
1025
  const n = (A = v._currentLocation) == null ? void 0 : A.dbName;
1020
1026
  if (!n) return;
1021
- const d = Et(new Date(ve.value.startDate)).toISOString(), k = Pt(new Date(ve.value.endDate)).toISOString();
1027
+ const d = Pt(new Date(ve.value.startDate)).toISOString(), k = Tt(new Date(ve.value.endDate)).toISOString();
1022
1028
  ke.value = !0;
1023
1029
  try {
1024
1030
  ye.value = G(
@@ -1032,21 +1038,21 @@ const fn = {
1032
1038
  fe.value && !ye.value.find((W) => {
1033
1039
  var ae;
1034
1040
  return W.id === ((ae = fe.value) == null ? void 0 : ae.id);
1035
- }) && (fe.value = null, j(""));
1041
+ }) && (fe.value = null, K(""));
1036
1042
  }
1037
- function rt(n) {
1038
- fe.value = n, K.value = !0, j(`${v.currentLocationDBName}/${n.id}`, void 0, Re);
1043
+ function it(n) {
1044
+ fe.value = n, j.value = !0, K(`${v.currentLocationDBName}/${n.id}`, void 0, Ce);
1039
1045
  }
1040
- const it = C(() => {
1046
+ const ut = R(() => {
1041
1047
  var n, d, k;
1042
1048
  return V.value === "inventory" ? ((n = x.value) == null ? void 0 : n.name) ?? "" : X.value ? ((d = we.value) == null ? void 0 : d.name) ?? "" : ((k = fe.value) == null ? void 0 : k.name) ?? "";
1043
1049
  });
1044
1050
  function Ue() {
1045
- K.value = !1, V.value === "inventory" ? (x.value = null, P.value = !1, j(""), Ne().catch(
1051
+ j.value = !1, V.value === "inventory" ? (x.value = null, P.value = !1, K(""), Te().catch(
1046
1052
  (n) => console.error("changelog inventory list failed", n)
1047
- )) : X.value ? (we.value = null, j(""), st().catch(
1053
+ )) : X.value ? (we.value = null, K(""), lt().catch(
1048
1054
  (n) => console.error("changelog domain records failed", n)
1049
- )) : (fe.value = null, j(""), Be().catch((n) => console.error("changelog location list failed", n)));
1055
+ )) : (fe.value = null, K(""), Be().catch((n) => console.error("changelog location list failed", n)));
1050
1056
  }
1051
1057
  return q(s, (n) => {
1052
1058
  n && (p().catch((d) => console.error("changelog domain list failed", d)), Ue());
@@ -1056,15 +1062,15 @@ const fn = {
1056
1062
  s.value && V.value !== "inventory" && !X.value && Be().catch((n) => console.error("changelog location list failed", n));
1057
1063
  }), q(P, (n) => {
1058
1064
  var d;
1059
- !n && ((d = x.value) != null && d.deleted) && (x.value = null, K.value = !1);
1065
+ !n && ((d = x.value) != null && d.deleted) && (x.value = null, j.value = !1);
1060
1066
  }), q(f, () => {
1061
- x.value = null, K.value = !1, s.value && V.value === "inventory" && Ne().catch(
1067
+ x.value = null, j.value = !1, s.value && V.value === "inventory" && Te().catch(
1062
1068
  (n) => console.error("changelog inventory list failed", n)
1063
1069
  );
1064
1070
  }), q(J, (n) => {
1065
- x.value = null, s.value && V.value === "inventory" && j(n, void 0, Ce);
1071
+ x.value = null, s.value && V.value === "inventory" && K(n, void 0, Re);
1066
1072
  }), (n, d) => {
1067
- const k = H("FmButtonGroup"), A = H("FmSearch"), W = H("FmSwitch"), ae = H("FmTable"), Ae = H("FmDialog"), ut = H("FmButton");
1073
+ const k = H("FmButtonGroup"), A = H("FmSearch"), W = H("FmSwitch"), ae = H("FmTable"), Ae = H("FmDialog"), ct = H("FmButton");
1068
1074
  return i(), c(z, null, [
1069
1075
  D(Ae, {
1070
1076
  modelValue: s.value,
@@ -1077,35 +1083,35 @@ const fn = {
1077
1083
  "content-class": "!p-0 h-[86vh]"
1078
1084
  }, {
1079
1085
  "dialog-header": te(() => [
1080
- g("div", Zn, [
1081
- g("div", Qn, [
1082
- g("div", eo, _($(a)("inventory.changelog.title")), 1),
1086
+ g("div", Qn, [
1087
+ g("div", eo, [
1088
+ g("div", to, _($(a)("inventory.changelog.title")), 1),
1083
1089
  D(k, {
1084
1090
  modelValue: B.value,
1085
1091
  "onUpdate:modelValue": d[0] || (d[0] = (M) => B.value = M),
1086
1092
  items: b.value
1087
1093
  }, null, 8, ["modelValue", "items"])
1088
1094
  ]),
1089
- g("div", to, _($(a)("inventory.changelog.scopeDescription")), 1)
1095
+ g("div", no, _($(a)("inventory.changelog.scopeDescription")), 1)
1090
1096
  ])
1091
1097
  ]),
1092
1098
  default: te(() => [
1093
- g("div", no, [
1099
+ g("div", oo, [
1094
1100
  V.value === "inventory" ? (i(), c(z, { key: 0 }, [
1095
- g("div", oo, [
1101
+ g("div", ao, [
1096
1102
  D(k, {
1097
1103
  modelValue: y.value,
1098
1104
  "onUpdate:modelValue": d[1] || (d[1] = (M) => y.value = M),
1099
1105
  items: L.value
1100
1106
  }, null, 8, ["modelValue", "items"]),
1101
1107
  D(A, {
1102
- modelValue: F.value,
1103
- "onUpdate:modelValue": d[2] || (d[2] = (M) => F.value = M),
1108
+ modelValue: E.value,
1109
+ "onUpdate:modelValue": d[2] || (d[2] = (M) => E.value = M),
1104
1110
  class: "flex-1",
1105
1111
  placeholder: $(a)("inventory.changelog.searchInventory")
1106
1112
  }, null, 8, ["modelValue", "placeholder"]),
1107
- g("div", ao, [
1108
- g("span", so, _($(a)("inventory.changelog.includeDeleted")), 1),
1113
+ g("div", so, [
1114
+ g("span", lo, _($(a)("inventory.changelog.includeDeleted")), 1),
1109
1115
  D(W, {
1110
1116
  modelValue: P.value,
1111
1117
  "onUpdate:modelValue": d[3] || (d[3] = (M) => P.value = M)
@@ -1114,12 +1120,12 @@ const fn = {
1114
1120
  ]),
1115
1121
  D(ae, {
1116
1122
  class: "min-h-0 flex-1",
1117
- "row-data": Ze.value,
1118
- "column-defs": Qe.value,
1119
- "search-value": F.value,
1123
+ "row-data": Qe.value,
1124
+ "column-defs": et.value,
1125
+ "search-value": E.value,
1120
1126
  loading: de.value,
1121
1127
  "page-size": 20,
1122
- onRowClick: d[4] || (d[4] = (M) => nt(M.original))
1128
+ onRowClick: d[4] || (d[4] = (M) => ot(M.original))
1123
1129
  }, null, 8, ["row-data", "column-defs", "search-value", "loading"])
1124
1130
  ], 64)) : X.value ? (i(), pe(ae, {
1125
1131
  key: 1,
@@ -1128,14 +1134,14 @@ const fn = {
1128
1134
  "column-defs": Ve.value,
1129
1135
  loading: be.value,
1130
1136
  "page-size": 20,
1131
- onRowClick: d[5] || (d[5] = (M) => lt(M.original))
1137
+ onRowClick: d[5] || (d[5] = (M) => rt(M.original))
1132
1138
  }, null, 8, ["row-data", "column-defs", "loading"])) : (i(), c(z, { key: 2 }, [
1133
- g("div", lo, [
1134
- D(It, {
1139
+ g("div", ro, [
1140
+ D(Et, {
1135
1141
  modelValue: ve.value,
1136
1142
  "onUpdate:modelValue": d[6] || (d[6] = (M) => ve.value = M)
1137
1143
  }, null, 8, ["modelValue"]),
1138
- Te.value ? (i(), c("span", ro, _(Te.value), 1)) : E("", !0)
1144
+ Ne.value ? (i(), c("span", io, _(Ne.value), 1)) : F("", !0)
1139
1145
  ]),
1140
1146
  D(ae, {
1141
1147
  class: "min-h-0 flex-1",
@@ -1143,7 +1149,7 @@ const fn = {
1143
1149
  "column-defs": Ve.value,
1144
1150
  loading: ke.value,
1145
1151
  "page-size": 20,
1146
- onRowClick: d[7] || (d[7] = (M) => rt(M.original))
1152
+ onRowClick: d[7] || (d[7] = (M) => it(M.original))
1147
1153
  }, null, 8, ["row-data", "column-defs", "loading"])
1148
1154
  ], 64))
1149
1155
  ])
@@ -1151,106 +1157,106 @@ const fn = {
1151
1157
  _: 1
1152
1158
  }, 8, ["modelValue"]),
1153
1159
  D(Ae, {
1154
- modelValue: K.value,
1155
- "onUpdate:modelValue": d[9] || (d[9] = (M) => K.value = M),
1160
+ modelValue: j.value,
1161
+ "onUpdate:modelValue": d[9] || (d[9] = (M) => j.value = M),
1156
1162
  "close-button": "",
1157
1163
  "dismiss-away": "",
1158
- "min-width": N.value,
1159
- "max-width": N.value,
1164
+ "min-width": T.value,
1165
+ "max-width": T.value,
1160
1166
  "max-height": "86vh"
1161
1167
  }, {
1162
1168
  "dialog-header": te(() => [
1163
- g("div", io, _(it.value), 1)
1169
+ g("div", uo, _(ut.value), 1)
1164
1170
  ]),
1165
1171
  default: te(() => [
1166
- D(qn, {
1167
- commits: V.value === "inventory" ? at.value : $(U),
1172
+ D(Zn, {
1173
+ commits: V.value === "inventory" ? st.value : $(U),
1168
1174
  "is-loading": $(oe),
1169
1175
  "resolve-name": ee
1170
1176
  }, null, 8, ["commits", "is-loading"]),
1171
- V.value !== "inventory" && $(O) ? (i(), c("div", uo, [
1172
- D(ut, {
1177
+ V.value !== "inventory" && $(O) ? (i(), c("div", co, [
1178
+ D(ct, {
1173
1179
  label: $(a)("inventory.changelog.loadMore"),
1174
1180
  variant: "secondary",
1175
1181
  disabled: $(oe),
1176
- onClick: R
1182
+ onClick: C
1177
1183
  }, null, 8, ["label", "disabled"])
1178
- ])) : E("", !0)
1184
+ ])) : F("", !0)
1179
1185
  ]),
1180
1186
  _: 1
1181
1187
  }, 8, ["modelValue", "min-width", "max-width"])
1182
1188
  ], 64);
1183
1189
  };
1184
1190
  }
1185
- }), fo = /* @__PURE__ */ Nt(co, [["__scopeId", "data-v-ae9bd171"]]), le = 8;
1186
- function mo(o, e) {
1191
+ }), mo = /* @__PURE__ */ Nt(fo, [["__scopeId", "data-v-ae9bd171"]]), le = 8;
1192
+ function po(o, e) {
1187
1193
  return { x: le, y: Math.max(le, e - o - le) };
1188
1194
  }
1189
- const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1195
+ const vo = ["title"], Ke = 48, go = 8, yo = /* @__PURE__ */ ce({
1190
1196
  __name: "ChangelogFloatingButton",
1191
1197
  setup(o) {
1192
- const { t: e } = he(), t = ge(), l = C(() => {
1193
- var R;
1194
- return !!((R = t.sessionUser.value) != null && R.role.isAdmin);
1198
+ const { t: e } = he(), t = ge(), l = R(() => {
1199
+ var C;
1200
+ return !!((C = t.sessionUser.value) != null && C.role.isAdmin);
1195
1201
  }), s = S(!1), a = S(null);
1196
1202
  function u() {
1197
- var R, T;
1203
+ var C, N;
1198
1204
  return {
1199
- width: ((R = a.value) == null ? void 0 : R.offsetWidth) ?? Ge,
1200
- height: ((T = a.value) == null ? void 0 : T.offsetHeight) ?? Ge
1205
+ width: ((C = a.value) == null ? void 0 : C.offsetWidth) ?? Ke,
1206
+ height: ((N = a.value) == null ? void 0 : N.offsetHeight) ?? Ke
1201
1207
  };
1202
1208
  }
1203
1209
  const r = S({ x: 0, y: 0 });
1204
- function v(R, T, G) {
1205
- return Math.min(Math.max(R, T), G);
1210
+ function v(C, N, G) {
1211
+ return Math.min(Math.max(C, N), G);
1206
1212
  }
1207
1213
  function m() {
1208
- const { width: R, height: T } = u(), G = Math.max(le, window.innerWidth - R - le - vo), j = Math.max(le, window.innerHeight - T - le), Q = r.value.x + R / 2;
1214
+ const { width: C, height: N } = u(), G = Math.max(le, window.innerWidth - C - le - go), K = Math.max(le, window.innerHeight - N - le), Q = r.value.x + C / 2;
1209
1215
  r.value = {
1210
1216
  x: Q < window.innerWidth / 2 ? le : G,
1211
- y: v(r.value.y, le, j)
1217
+ y: v(r.value.y, le, K)
1212
1218
  };
1213
1219
  }
1214
1220
  function h() {
1215
- r.value = mo(u().height, window.innerHeight);
1221
+ r.value = po(u().height, window.innerHeight);
1216
1222
  }
1217
- Fe(() => {
1223
+ Ee(() => {
1218
1224
  h(), window.addEventListener("resize", m), window.addEventListener("orientationchange", m);
1219
- }), mt(() => {
1225
+ }), pt(() => {
1220
1226
  window.removeEventListener("resize", m), window.removeEventListener("orientationchange", m);
1221
- }), q(l, async (R) => {
1222
- R && (await pt(), h());
1227
+ }), q(l, async (C) => {
1228
+ C && (await vt(), h());
1223
1229
  });
1224
1230
  const w = S(!1);
1225
- let N = null, U = !1;
1226
- function oe(R) {
1227
- N = { x: R.clientX, y: R.clientY, px: r.value.x, py: r.value.y }, w.value = !0, U = !1, R.currentTarget.setPointerCapture(R.pointerId);
1231
+ let T = null, U = !1;
1232
+ function oe(C) {
1233
+ T = { x: C.clientX, y: C.clientY, px: r.value.x, py: r.value.y }, w.value = !0, U = !1, C.currentTarget.setPointerCapture(C.pointerId);
1228
1234
  }
1229
- function O(R) {
1230
- if (!N) return;
1231
- const T = R.clientX - N.x, G = R.clientY - N.y;
1232
- Math.abs(T) + Math.abs(G) > 3 && (U = !0);
1233
- const { width: j, height: Q } = u();
1235
+ function O(C) {
1236
+ if (!T) return;
1237
+ const N = C.clientX - T.x, G = C.clientY - T.y;
1238
+ Math.abs(N) + Math.abs(G) > 3 && (U = !0);
1239
+ const { width: K, height: Q } = u();
1234
1240
  r.value = {
1235
- x: v(N.px + T, 0, window.innerWidth - j),
1236
- y: v(N.py + G, 0, window.innerHeight - Q)
1241
+ x: v(T.px + N, 0, window.innerWidth - K),
1242
+ y: v(T.py + G, 0, window.innerHeight - Q)
1237
1243
  };
1238
1244
  }
1239
1245
  function I() {
1240
- N = null, w.value = !1, m();
1246
+ T = null, w.value = !1, m();
1241
1247
  }
1242
1248
  function Y() {
1243
- N && (I(), U || (s.value = !0));
1249
+ T && (I(), U || (s.value = !0));
1244
1250
  }
1245
- return (R, T) => {
1251
+ return (C, N) => {
1246
1252
  const G = H("FmIcon");
1247
- return i(), pe(vt, { to: "body" }, [
1253
+ return i(), pe(gt, { to: "body" }, [
1248
1254
  l.value ? (i(), c(z, { key: 0 }, [
1249
1255
  g("div", {
1250
1256
  ref_key: "wrapperRef",
1251
1257
  ref: a,
1252
1258
  class: se(["fixed z-50 cursor-grab touch-none", w.value ? "" : "transition-[left,top] duration-200 ease-out"]),
1253
- style: gt({ left: `${r.value.x}px`, top: `${r.value.y}px` })
1259
+ style: yt({ left: `${r.value.x}px`, top: `${r.value.y}px` })
1254
1260
  }, [
1255
1261
  D(Pe, null, {
1256
1262
  default: te(() => [
@@ -1269,47 +1275,47 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1269
1275
  outline: ""
1270
1276
  }),
1271
1277
  g("span", null, _($(e)("inventory.changelog.fabLabel")), 1)
1272
- ], 42, po)
1278
+ ], 42, vo)
1273
1279
  ]),
1274
1280
  _: 1
1275
1281
  })
1276
1282
  ], 6),
1277
- D(fo, {
1283
+ D(mo, {
1278
1284
  modelValue: s.value,
1279
- "onUpdate:modelValue": T[0] || (T[0] = (j) => s.value = j)
1285
+ "onUpdate:modelValue": N[0] || (N[0] = (K) => s.value = K)
1280
1286
  }, null, 8, ["modelValue"])
1281
- ], 64)) : E("", !0)
1287
+ ], 64)) : F("", !0)
1282
1288
  ]);
1283
1289
  };
1284
1290
  }
1285
- }), yo = { class: "flex items-center gap-2" }, ho = { class: "text-xs text-gray-400 font-normal" }, _o = { class: "flex flex-col gap-3" }, xo = { class: "max-h-[480px] flex flex-col gap-1" }, bo = { class: "font-mono text-xs text-gray-700 break-all min-w-0" }, wo = {
1291
+ }), ho = { class: "flex items-center gap-2" }, _o = { class: "text-xs text-gray-400 font-normal" }, xo = { class: "flex flex-col gap-3" }, bo = { class: "max-h-[480px] flex flex-col gap-1" }, wo = { class: "font-mono text-xs text-gray-700 break-all min-w-0" }, ko = {
1286
1292
  key: 0,
1287
1293
  class: "inline-flex items-center gap-1 text-xs font-medium text-green-700 bg-green-50 px-2 py-0.5 rounded-full"
1288
- }, ko = {
1294
+ }, So = {
1289
1295
  key: 1,
1290
1296
  class: "inline-flex items-center gap-1 text-xs font-medium text-red-700 bg-red-50 px-2 py-0.5 rounded-full"
1291
- }, So = {
1297
+ }, $o = {
1292
1298
  key: 2,
1293
1299
  class: "inline-flex items-center gap-1 text-xs font-medium text-gray-500 bg-gray-100 px-2 py-0.5 rounded-full"
1294
- }, $o = {
1300
+ }, Lo = {
1295
1301
  key: 0,
1296
1302
  class: "text-center text-sm text-gray-400 py-4"
1297
- }, Lo = /* @__PURE__ */ ce({
1303
+ }, Co = /* @__PURE__ */ ce({
1298
1304
  __name: "FmFeatureFlagDialog",
1299
1305
  setup(o) {
1300
- const e = S(!1), t = S(""), l = C(() => {
1301
- const { getFlagValue: u } = $t();
1302
- return Object.values(Lt).map((r) => {
1306
+ const e = S(!1), t = S(""), l = R(() => {
1307
+ const { getFlagValue: u } = Lt();
1308
+ return Object.values(Ct).map((r) => {
1303
1309
  const v = u(r, (m) => m === "true");
1304
1310
  return {
1305
1311
  name: r,
1306
1312
  enabled: v
1307
1313
  };
1308
1314
  });
1309
- }), s = C(() => {
1315
+ }), s = R(() => {
1310
1316
  const u = t.value.toLowerCase();
1311
1317
  return u ? l.value.filter((r) => r.name.toLowerCase().includes(u)) : l.value;
1312
- }), a = C(() => {
1318
+ }), a = R(() => {
1313
1319
  const u = l.value.filter((m) => m.enabled === !0).length, r = l.value.filter((m) => m.enabled === !1).length, v = l.value.filter((m) => m.enabled === null).length;
1314
1320
  return { enabled: u, disabled: r, unknown: v, total: l.value.length };
1315
1321
  });
@@ -1332,9 +1338,9 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1332
1338
  })
1333
1339
  ]),
1334
1340
  "dialog-header": te(() => [
1335
- g("div", yo, [
1341
+ g("div", ho, [
1336
1342
  r[3] || (r[3] = g("span", null, "Feature Flags", -1)),
1337
- g("span", ho, _(a.value.enabled) + " enabled · " + _(a.value.disabled) + " disabled · " + _(a.value.unknown) + " unknown ", 1)
1343
+ g("span", _o, _(a.value.enabled) + " enabled · " + _(a.value.disabled) + " disabled · " + _(a.value.unknown) + " unknown ", 1)
1338
1344
  ])
1339
1345
  ]),
1340
1346
  "dialog-footer": te(() => [
@@ -1348,33 +1354,33 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1348
1354
  })
1349
1355
  ]),
1350
1356
  default: te(() => [
1351
- g("div", _o, [
1352
- yt(g("input", {
1357
+ g("div", xo, [
1358
+ ht(g("input", {
1353
1359
  "onUpdate:modelValue": r[0] || (r[0] = (w) => t.value = w),
1354
1360
  type: "text",
1355
1361
  placeholder: "Search flags...",
1356
1362
  class: "w-full px-3 py-2 text-sm border border-gray-300 rounded-md focus:outline-none focus:ring-1 focus:ring-blue-500"
1357
1363
  }, null, 512), [
1358
- [ht, t.value]
1364
+ [_t, t.value]
1359
1365
  ]),
1360
- g("div", xo, [
1366
+ g("div", bo, [
1361
1367
  (i(!0), c(z, null, ne(s.value, (w) => (i(), c("div", {
1362
1368
  key: w.name,
1363
1369
  class: "flex items-start justify-between gap-2 px-3 py-2 rounded-md hover:bg-gray-50 text-sm"
1364
1370
  }, [
1365
- g("span", bo, _(w.name), 1),
1366
- w.enabled === !0 ? (i(), c("span", wo, r[4] || (r[4] = [
1371
+ g("span", wo, _(w.name), 1),
1372
+ w.enabled === !0 ? (i(), c("span", ko, r[4] || (r[4] = [
1367
1373
  g("span", { class: "w-1.5 h-1.5 rounded-full bg-green-500" }, null, -1),
1368
1374
  re(" Enabled ")
1369
- ]))) : w.enabled === !1 ? (i(), c("span", ko, r[5] || (r[5] = [
1375
+ ]))) : w.enabled === !1 ? (i(), c("span", So, r[5] || (r[5] = [
1370
1376
  g("span", { class: "w-1.5 h-1.5 rounded-full bg-red-500" }, null, -1),
1371
1377
  re(" Disabled ")
1372
- ]))) : (i(), c("span", So, r[6] || (r[6] = [
1378
+ ]))) : (i(), c("span", $o, r[6] || (r[6] = [
1373
1379
  g("span", { class: "w-1.5 h-1.5 rounded-full bg-gray-400" }, null, -1),
1374
1380
  re(" Unknown ")
1375
1381
  ])))
1376
1382
  ]))), 128)),
1377
- s.value.length === 0 ? (i(), c("div", $o, ' No flags matching "' + _(t.value) + '" ', 1)) : E("", !0)
1383
+ s.value.length === 0 ? (i(), c("div", Lo, ' No flags matching "' + _(t.value) + '" ', 1)) : F("", !0)
1378
1384
  ])
1379
1385
  ])
1380
1386
  ]),
@@ -1382,14 +1388,14 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1382
1388
  }, 8, ["modelValue"]);
1383
1389
  };
1384
1390
  }
1385
- }), Ro = { class: "h-full flex flex-col overflow-auto py-16 gap-2" }, Co = /* @__PURE__ */ ce({
1391
+ }), Ro = { class: "h-full flex flex-col overflow-auto py-16 gap-2" }, Do = /* @__PURE__ */ ce({
1386
1392
  __name: "NavigationTab",
1387
1393
  setup(o) {
1388
- const e = kt(), t = Ee(), l = ge(), s = Tt(), { menuItems: a } = He();
1394
+ const e = St(), t = Fe(), l = ge(), s = Vt(), { menuItems: a } = Je();
1389
1395
  q([() => l.currentBusiness.value, () => e.name], ([h, w]) => {
1390
1396
  (h == null ? void 0 : h.menuVersion) === "v3" && (w === ue.INGREDIENTS || w === ue.RECIPE || w === ue.UNIT) && t.push({ name: ue.STOCK });
1391
1397
  });
1392
- const u = C({
1398
+ const u = R({
1393
1399
  get() {
1394
1400
  if (e.name)
1395
1401
  return String(e.name);
@@ -1397,12 +1403,12 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1397
1403
  set(h) {
1398
1404
  h && t.push({ name: h });
1399
1405
  }
1400
- }), r = C(
1406
+ }), r = R(
1401
1407
  () => {
1402
1408
  var h;
1403
1409
  return `NavigationTab.${(h = l.currentBusiness.value) == null ? void 0 : h._id}`;
1404
1410
  }
1405
- ), v = S(!1), m = C({
1411
+ ), v = S(!1), m = R({
1406
1412
  get() {
1407
1413
  return v.value;
1408
1414
  },
@@ -1415,10 +1421,10 @@ const po = ["title"], Ge = 48, vo = 8, go = /* @__PURE__ */ ce({
1415
1421
  m.value = !s.getItem(r.value);
1416
1422
  }, 2e3);
1417
1423
  }), (h, w) => {
1418
- const N = H("FmCollapsibleTabs");
1424
+ const T = H("FmCollapsibleTabs");
1419
1425
  return i(), c("div", Ro, [
1420
- D(Lo),
1421
- D(N, {
1426
+ D(Co),
1427
+ D(T, {
1422
1428
  modelValue: u.value,
1423
1429
  "onUpdate:modelValue": w[0] || (w[0] = (U) => u.value = U),
1424
1430
  items: $(a)
@@ -1436,16 +1442,16 @@ typeof Promise.withResolvers > "u" && (Promise.withResolvers = () => {
1436
1442
  typeof Promise.prototype.delayed > "u" && (Promise.prototype.delayed = async function(o) {
1437
1443
  return await new Promise((e) => setTimeout(e, o)), Promise.resolve(this);
1438
1444
  });
1439
- const Ko = /* @__PURE__ */ ce({
1445
+ const Ho = /* @__PURE__ */ ce({
1440
1446
  __name: "App",
1441
1447
  setup(o) {
1442
- const e = ge(), t = Vt(), l = wt(), s = window.location.href.includes("print-preview");
1443
- Fe(() => {
1448
+ const e = ge(), t = Bt(), l = kt(), s = window.location.href.includes("print-preview");
1449
+ Ee(() => {
1444
1450
  if (window.location.href.includes("print-preview")) {
1445
1451
  e.setEmbedded(!0), document.body.classList.add("print-mode");
1446
1452
  return;
1447
1453
  }
1448
- e.registerSidebarComponent(Co), t.initGoogleMap(l.appApi.googleMap).catch(() => {
1454
+ e.registerSidebarComponent(Do), t.initGoogleMap(l.appApi.googleMap).catch(() => {
1449
1455
  console.error("Google map cannot be loaded");
1450
1456
  });
1451
1457
  }), q([() => e.currentCountry.value], () => {
@@ -1460,11 +1466,11 @@ const Ko = /* @__PURE__ */ ce({
1460
1466
  }
1461
1467
  }
1462
1468
  return (u, r) => (i(), c(z, null, [
1463
- D(Zt),
1464
- $(s) ? E("", !0) : (i(), pe(go, { key: 0 }))
1469
+ D(Qt),
1470
+ $(s) ? F("", !0) : (i(), pe(yo, { key: 0 }))
1465
1471
  ], 64));
1466
1472
  }
1467
1473
  });
1468
1474
  export {
1469
- Ko as default
1475
+ Ho as default
1470
1476
  };