@burdenoff/microfe-movethewheels 2026.930.4 → 2026.1010.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (377) hide show
  1. package/dist/MoveTheWheelsRoot.js +177 -102
  2. package/dist/MoveTheWheelsRoutes.js +55 -11
  3. package/dist/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/components/ContainerEvidencePicker.js +143 -0
  5. package/dist/components/FreeTimeAgreementForm.js +496 -0
  6. package/dist/components/ReturnInstructionForm.js +108 -0
  7. package/dist/components/ReuseControls.js +91 -0
  8. package/dist/components/ReusePermissionForm.js +114 -0
  9. package/dist/components/ReuseProposalForm.js +455 -0
  10. package/dist/components/ReuseSourceFields.js +78 -0
  11. package/dist/components/consolidation/ConsolidationHistory.js +244 -0
  12. package/dist/components/consolidation/ConsolidationLotEditor.js +133 -0
  13. package/dist/components/consolidation/ConsolidationManifestWorkbench.js +143 -0
  14. package/dist/components/consolidation/ConsolidationPlanForm.js +172 -0
  15. package/dist/components/consolidation/ConsolidationPlanWorkbench.js +321 -0
  16. package/dist/components/consolidation/ConsolidationReportForm.js +94 -0
  17. package/dist/components/consolidation/ConsolidationReportsWorkbench.js +195 -0
  18. package/dist/components/consolidation/ConsolidationSummary.js +76 -0
  19. package/dist/components/consolidation/OriginalConsolidationHistory.js +112 -0
  20. package/dist/components/freight-cost/FreightDraftForm.js +213 -0
  21. package/dist/components/freight-cost/FreightFields.js +70 -0
  22. package/dist/components/freight-cost/FreightFxEditor.js +90 -0
  23. package/dist/components/freight-cost/FreightHistory.js +164 -0
  24. package/dist/components/freight-cost/FreightLineEditor.js +191 -0
  25. package/dist/components/freight-cost/FreightScopeEditor.js +72 -0
  26. package/dist/components/freight-cost/FreightTotals.js +66 -0
  27. package/dist/components/logistics-procedure/ProcedureDecisionForm.js +197 -0
  28. package/dist/components/logistics-procedure/ProcedureFields.js +31 -0
  29. package/dist/components/logistics-procedure/ProcedureHistory.js +177 -0
  30. package/dist/components/logistics-procedure/ProcedurePolicyForm.js +227 -0
  31. package/dist/components/logistics-procedure/ProcedurePolicyWorkbench.js +155 -0
  32. package/dist/components/logistics-procedure/ProcedureReviewWorkbench.js +221 -0
  33. package/dist/components/logistics-procedure/ProcedureRunWorkbench.js +190 -0
  34. package/dist/components/logistics-procedure/ProcedureSubjectPicker.js +130 -0
  35. package/dist/components/pending-pick/PendingPickDraft.js +84 -0
  36. package/dist/components/pending-pick/PendingPickHistory.js +113 -0
  37. package/dist/components/pending-pick/PickCapture.js +166 -0
  38. package/dist/components/pending-pick/PickLineSelection.js +111 -0
  39. package/dist/components/stock-binding/StockAssessmentDraft.js +48 -0
  40. package/dist/components/stock-binding/StockAssessmentHistory.js +61 -0
  41. package/dist/components/stock-binding/StockAssessmentSummary.js +199 -0
  42. package/dist/components/stock-binding/StockFactForm.js +232 -0
  43. package/dist/components/stock-observation/StockIssueForm.js +148 -0
  44. package/dist/components/stock-observation/StockIssueHistory.js +116 -0
  45. package/dist/components/stock-observation/StockIssueReadPanel.js +70 -0
  46. package/dist/components/trip-utilization/TripReportForm.js +118 -0
  47. package/dist/components/trip-utilization/TripReportHistory.js +54 -0
  48. package/dist/components/trip-utilization/TripReportSummary.js +216 -0
  49. package/dist/components/trip-utilization/TripSegmentFields.js +166 -0
  50. package/dist/generated/consolidation-operations.d.ts +1060 -0
  51. package/dist/generated/container-condition-operations.d.ts +868 -0
  52. package/dist/generated/container-operations.d.ts +356 -0
  53. package/dist/generated/empty-reuse-operations.d.ts +1578 -0
  54. package/dist/generated/free-time-operations.d.ts +938 -0
  55. package/dist/generated/freight-cost-operations.d.ts +716 -0
  56. package/dist/generated/logistics-procedure-operations.d.ts +938 -0
  57. package/dist/generated/pending-pick-operations.d.ts +1969 -0
  58. package/dist/generated/stock-binding-operations.d.ts +930 -0
  59. package/dist/generated/stock-observation-operations.d.ts +476 -0
  60. package/dist/generated/trip-utilization-operations.d.ts +651 -0
  61. package/dist/generated/wspace-operations.d.ts +143 -50
  62. package/dist/hooks/useConsolidationAction.js +119 -0
  63. package/dist/hooks/useContainerCondition.js +105 -0
  64. package/dist/hooks/useContainerLifecycle.js +192 -0
  65. package/dist/hooks/useEmptyReuseAction.js +45 -0
  66. package/dist/hooks/useFreightRecoveryAction.js +117 -0
  67. package/dist/hooks/useInventory.js +12 -1
  68. package/dist/hooks/useProcedureAction.js +119 -0
  69. package/dist/hooks/useProcedureSelection.js +53 -0
  70. package/dist/hooks/useReuseRecoveryAction.js +116 -0
  71. package/dist/movethewheels/components/ContainerEvidencePicker.d.ts +10 -0
  72. package/dist/movethewheels/components/FreeTimeAgreementForm.d.ts +14 -0
  73. package/dist/movethewheels/components/ReturnInstructionForm.d.ts +8 -0
  74. package/dist/movethewheels/components/ReuseControls.d.ts +42 -0
  75. package/dist/movethewheels/components/ReusePermissionForm.d.ts +9 -0
  76. package/dist/movethewheels/components/ReuseProposalForm.d.ts +11 -0
  77. package/dist/movethewheels/components/ReuseSourceFields.d.ts +9 -0
  78. package/dist/movethewheels/components/consolidation/ConsolidationHistory.d.ts +13 -0
  79. package/dist/movethewheels/components/consolidation/ConsolidationLotEditor.d.ts +6 -0
  80. package/dist/movethewheels/components/consolidation/ConsolidationManifestWorkbench.d.ts +8 -0
  81. package/dist/movethewheels/components/consolidation/ConsolidationPlanForm.d.ts +8 -0
  82. package/dist/movethewheels/components/consolidation/ConsolidationPlanWorkbench.d.ts +5 -0
  83. package/dist/movethewheels/components/consolidation/ConsolidationReportForm.d.ts +9 -0
  84. package/dist/movethewheels/components/consolidation/ConsolidationReportsWorkbench.d.ts +7 -0
  85. package/dist/movethewheels/components/consolidation/ConsolidationSummary.d.ts +6 -0
  86. package/dist/movethewheels/components/consolidation/OriginalConsolidationHistory.d.ts +8 -0
  87. package/dist/movethewheels/components/freight-cost/FreightDraftForm.d.ts +8 -0
  88. package/dist/movethewheels/components/freight-cost/FreightFields.d.ts +23 -0
  89. package/dist/movethewheels/components/freight-cost/FreightFxEditor.d.ts +6 -0
  90. package/dist/movethewheels/components/freight-cost/FreightHistory.d.ts +5 -0
  91. package/dist/movethewheels/components/freight-cost/FreightLineEditor.d.ts +8 -0
  92. package/dist/movethewheels/components/freight-cost/FreightScopeEditor.d.ts +6 -0
  93. package/dist/movethewheels/components/freight-cost/FreightTotals.d.ts +6 -0
  94. package/dist/movethewheels/components/logistics-procedure/ProcedureDecisionForm.d.ts +20 -0
  95. package/dist/movethewheels/components/logistics-procedure/ProcedureFields.d.ts +17 -0
  96. package/dist/movethewheels/components/logistics-procedure/ProcedureHistory.d.ts +7 -0
  97. package/dist/movethewheels/components/logistics-procedure/ProcedurePolicyForm.d.ts +10 -0
  98. package/dist/movethewheels/components/logistics-procedure/ProcedurePolicyWorkbench.d.ts +5 -0
  99. package/dist/movethewheels/components/logistics-procedure/ProcedureReviewWorkbench.d.ts +5 -0
  100. package/dist/movethewheels/components/logistics-procedure/ProcedureRunWorkbench.d.ts +6 -0
  101. package/dist/movethewheels/components/logistics-procedure/ProcedureSubjectPicker.d.ts +7 -0
  102. package/dist/movethewheels/components/pending-pick/PendingPickDraft.d.ts +16 -0
  103. package/dist/movethewheels/components/pending-pick/PendingPickHistory.d.ts +5 -0
  104. package/dist/movethewheels/components/pending-pick/PickCapture.d.ts +6 -0
  105. package/dist/movethewheels/components/pending-pick/PickLineSelection.d.ts +17 -0
  106. package/dist/movethewheels/components/stock-binding/StockAssessmentDraft.d.ts +13 -0
  107. package/dist/movethewheels/components/stock-binding/StockAssessmentHistory.d.ts +18 -0
  108. package/dist/movethewheels/components/stock-binding/StockAssessmentSummary.d.ts +9 -0
  109. package/dist/movethewheels/components/stock-binding/StockFactForm.d.ts +6 -0
  110. package/dist/movethewheels/components/stock-observation/StockIssueForm.d.ts +7 -0
  111. package/dist/movethewheels/components/stock-observation/StockIssueHistory.d.ts +7 -0
  112. package/dist/movethewheels/components/stock-observation/StockIssueReadPanel.d.ts +5 -0
  113. package/dist/movethewheels/components/trip-utilization/TripReportForm.d.ts +6 -0
  114. package/dist/movethewheels/components/trip-utilization/TripReportHistory.d.ts +14 -0
  115. package/dist/movethewheels/components/trip-utilization/TripReportSummary.d.ts +5 -0
  116. package/dist/movethewheels/components/trip-utilization/TripSegmentFields.d.ts +9 -0
  117. package/dist/movethewheels/hooks/useConsolidationAction.d.ts +19 -0
  118. package/dist/movethewheels/hooks/useContainerCondition.d.ts +21 -0
  119. package/dist/movethewheels/hooks/useContainerLifecycle.d.ts +40 -0
  120. package/dist/movethewheels/hooks/useEmptyReuseAction.d.ts +14 -0
  121. package/dist/movethewheels/hooks/useFreightRecoveryAction.d.ts +23 -0
  122. package/dist/movethewheels/hooks/useProcedureAction.d.ts +18 -0
  123. package/dist/movethewheels/hooks/useProcedureSelection.d.ts +51 -0
  124. package/dist/movethewheels/hooks/useReuseRecoveryAction.d.ts +18 -0
  125. package/dist/movethewheels/pages/ConsolidationPage.d.ts +1 -0
  126. package/dist/movethewheels/pages/ContainerConditionPage.d.ts +1 -0
  127. package/dist/movethewheels/pages/ContainersPage.d.ts +2 -0
  128. package/dist/movethewheels/pages/EmptyReusePage.d.ts +1 -0
  129. package/dist/movethewheels/pages/FreeTimePage.d.ts +1 -0
  130. package/dist/movethewheels/pages/FreightEstimatePage.d.ts +1 -0
  131. package/dist/movethewheels/pages/LogisticsProceduresPage.d.ts +1 -0
  132. package/dist/movethewheels/pages/PendingPickPage.d.ts +1 -0
  133. package/dist/movethewheels/pages/StockBindingPage.d.ts +1 -0
  134. package/dist/movethewheels/pages/StockObservationsPage.d.ts +1 -0
  135. package/dist/movethewheels/pages/TripUtilizationPage.d.ts +1 -0
  136. package/dist/movethewheels/utils/consolidationHistoryTarget.d.ts +12 -0
  137. package/dist/movethewheels/utils/consolidationInput.d.ts +15 -0
  138. package/dist/movethewheels/utils/consolidationLot.d.ts +3 -0
  139. package/dist/movethewheels/utils/consolidationPins.d.ts +20 -0
  140. package/dist/movethewheels/utils/consolidationRecovery.d.ts +5 -0
  141. package/dist/movethewheels/utils/consolidationReportHead.d.ts +5 -0
  142. package/dist/movethewheels/utils/freeTimeDate.d.ts +1 -0
  143. package/dist/movethewheels/utils/freightAcknowledgement.d.ts +2 -0
  144. package/dist/movethewheels/utils/freightDraft.d.ts +36 -0
  145. package/dist/movethewheels/utils/freightRecovery.d.ts +5 -0
  146. package/dist/movethewheels/utils/graphqlClient.d.ts +2 -1
  147. package/dist/movethewheels/utils/pendingPickDraft.d.ts +8 -0
  148. package/dist/movethewheels/utils/procedureInput.d.ts +18 -0
  149. package/dist/movethewheels/utils/procedureRecovery.d.ts +5 -0
  150. package/dist/movethewheels/utils/reuseAttempt.d.ts +7 -0
  151. package/dist/movethewheels/utils/reuseForm.d.ts +6 -0
  152. package/dist/movethewheels/utils/reuseRecovery.d.ts +26 -0
  153. package/dist/movethewheels/utils/stockBindingForm.d.ts +23 -0
  154. package/dist/movethewheels/utils/stockBindingLabels.d.ts +10 -0
  155. package/dist/movethewheels/utils/stockObservationForm.d.ts +5 -0
  156. package/dist/movethewheels/utils/tripDraftContext.d.ts +25 -0
  157. package/dist/movethewheels/utils/tripUtilizationForm.d.ts +6 -0
  158. package/dist/node_modules/@react-leaflet/core/lib/component.js +5 -5
  159. package/dist/node_modules/fast-equals/dist/es/index.js +87 -74
  160. package/dist/node_modules/leaflet/dist/leaflet-src.js +8 -5
  161. package/dist/node_modules/lodash/_Stack.js +2 -1
  162. package/dist/node_modules/lucide-react/dist/esm/icons/clipboard-list.js +35 -0
  163. package/dist/node_modules/lucide-react/dist/esm/icons/repeat-2.js +22 -0
  164. package/dist/node_modules/react-leaflet/lib/MapContainer.js +3 -3
  165. package/dist/node_modules/react-smooth/es6/Animate.js +2 -2
  166. package/dist/node_modules/recharts/es6/cartesian/Area.js +13 -13
  167. package/dist/node_modules/recharts/es6/cartesian/Bar.js +9 -9
  168. package/dist/node_modules/recharts/es6/cartesian/Brush.js +12 -12
  169. package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +7 -7
  170. package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +13 -13
  171. package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +4 -4
  172. package/dist/node_modules/recharts/es6/cartesian/Line.js +10 -10
  173. package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +3 -3
  174. package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +3 -3
  175. package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +4 -4
  176. package/dist/node_modules/recharts/es6/cartesian/XAxis.js +3 -3
  177. package/dist/node_modules/recharts/es6/cartesian/YAxis.js +3 -3
  178. package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +1 -1
  179. package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +22 -22
  180. package/dist/node_modules/recharts/es6/component/Cursor.js +1 -1
  181. package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +11 -11
  182. package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +6 -6
  183. package/dist/node_modules/recharts/es6/component/Label.js +14 -14
  184. package/dist/node_modules/recharts/es6/component/LabelList.js +6 -6
  185. package/dist/node_modules/recharts/es6/component/Legend.js +5 -5
  186. package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +3 -3
  187. package/dist/node_modules/recharts/es6/component/Text.js +2 -2
  188. package/dist/node_modules/recharts/es6/component/Tooltip.js +3 -3
  189. package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +2 -2
  190. package/dist/node_modules/recharts/es6/container/Layer.js +2 -2
  191. package/dist/node_modules/recharts/es6/container/Surface.js +2 -2
  192. package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +2 -2
  193. package/dist/node_modules/recharts/es6/polar/Pie.js +13 -13
  194. package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +8 -8
  195. package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +6 -6
  196. package/dist/node_modules/recharts/es6/shape/Cross.js +1 -1
  197. package/dist/node_modules/recharts/es6/shape/Curve.js +1 -1
  198. package/dist/node_modules/recharts/es6/shape/Dot.js +1 -1
  199. package/dist/node_modules/recharts/es6/shape/Polygon.js +4 -4
  200. package/dist/node_modules/recharts/es6/shape/Rectangle.js +4 -4
  201. package/dist/node_modules/recharts/es6/shape/Sector.js +1 -1
  202. package/dist/node_modules/recharts/es6/shape/Symbols.js +1 -1
  203. package/dist/node_modules/recharts/es6/shape/Trapezoid.js +4 -4
  204. package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +9 -9
  205. package/dist/node_modules/recharts/es6/util/BarUtils.js +1 -1
  206. package/dist/node_modules/recharts/es6/util/CartesianUtils.js +1 -1
  207. package/dist/node_modules/recharts/es6/util/PolarUtils.js +1 -1
  208. package/dist/node_modules/recharts/es6/util/ReactUtils.js +2 -2
  209. package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +1 -1
  210. package/dist/node_modules/recharts/es6/util/types.js +1 -1
  211. package/dist/node_modules/{react-is → recharts/node_modules/react-is}/cjs/react-is.development.js +2 -2
  212. package/dist/node_modules/{react-is → recharts/node_modules/react-is}/cjs/react-is.production.min.js +2 -2
  213. package/dist/node_modules/{react-is → recharts/node_modules/react-is}/index.js +2 -2
  214. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +97 -18
  215. package/dist/node_modules/zustand/esm/middleware.js +2 -2
  216. package/dist/pages/ConsolidationPage.js +76 -0
  217. package/dist/pages/ContainerConditionPage.js +972 -0
  218. package/dist/pages/ContainersPage.js +522 -0
  219. package/dist/pages/EmptyReusePage.js +777 -0
  220. package/dist/pages/FreeTimePage.js +657 -0
  221. package/dist/pages/FreightEstimatePage.js +284 -0
  222. package/dist/pages/InventoryPage.js +77 -73
  223. package/dist/pages/LogisticsProceduresPage.js +100 -0
  224. package/dist/pages/PendingPickPage.js +155 -0
  225. package/dist/pages/StockBindingPage.js +236 -0
  226. package/dist/pages/StockObservationsPage.js +168 -0
  227. package/dist/pages/TripUtilizationPage.js +227 -0
  228. package/dist/src/generated/consolidation-operations.js +505 -0
  229. package/dist/src/generated/container-condition-operations.js +208 -0
  230. package/dist/src/generated/container-operations.js +101 -0
  231. package/dist/src/generated/empty-reuse-operations.js +749 -0
  232. package/dist/src/generated/free-time-operations.js +235 -0
  233. package/dist/src/generated/freight-cost-operations.js +325 -0
  234. package/dist/src/generated/logistics-procedure-operations.js +362 -0
  235. package/dist/src/generated/pending-pick-operations.js +1128 -0
  236. package/dist/src/generated/stock-binding-operations.js +175 -0
  237. package/dist/src/generated/stock-observation-operations.js +93 -0
  238. package/dist/src/generated/trip-utilization-operations.js +140 -0
  239. package/dist/src/generated/wspace-operations.js +708 -0
  240. package/dist/utils/consolidationHistoryTarget.js +27 -0
  241. package/dist/utils/consolidationInput.js +21 -0
  242. package/dist/utils/consolidationLot.js +29 -0
  243. package/dist/utils/consolidationPins.js +13 -0
  244. package/dist/utils/consolidationRecovery.js +40 -0
  245. package/dist/utils/consolidationReportHead.js +18 -0
  246. package/dist/utils/freeTimeDate.js +26 -0
  247. package/dist/utils/freightAcknowledgement.js +8 -0
  248. package/dist/utils/freightDraft.js +125 -0
  249. package/dist/utils/freightRecovery.js +36 -0
  250. package/dist/utils/graphqlClient.js +28 -28
  251. package/dist/utils/pendingPickDraft.js +46 -0
  252. package/dist/utils/procedureInput.js +43 -0
  253. package/dist/utils/procedureRecovery.js +42 -0
  254. package/dist/utils/reuseAttempt.js +20 -0
  255. package/dist/utils/reuseForm.js +25 -0
  256. package/dist/utils/reuseRecovery.js +71 -0
  257. package/dist/utils/stockBindingForm.js +142 -0
  258. package/dist/utils/stockBindingLabels.js +23 -0
  259. package/dist/utils/stockObservationForm.js +55 -0
  260. package/dist/utils/tripDraftContext.js +19 -0
  261. package/dist/utils/tripUtilizationForm.js +60 -0
  262. package/package.json +19 -5
  263. package/src/generated/consolidation-operations.ts +1138 -0
  264. package/src/generated/container-condition-operations.ts +771 -0
  265. package/src/generated/container-operations.ts +376 -0
  266. package/src/generated/empty-reuse-operations.ts +1648 -0
  267. package/src/generated/free-time-operations.ts +814 -0
  268. package/src/generated/freight-cost-operations.ts +753 -0
  269. package/src/generated/logistics-procedure-operations.ts +1047 -0
  270. package/src/generated/pending-pick-operations.ts +1508 -0
  271. package/src/generated/stock-binding-operations.ts +631 -0
  272. package/src/generated/stock-observation-operations.ts +373 -0
  273. package/src/generated/trip-utilization-operations.ts +500 -0
  274. package/src/generated/wspace-operations.ts +116 -0
  275. package/src/movethewheels/MoveTheWheelsRoot.tsx +79 -0
  276. package/src/movethewheels/MoveTheWheelsRoutes.tsx +22 -0
  277. package/src/movethewheels/components/ContainerEvidencePicker.tsx +146 -0
  278. package/src/movethewheels/components/FreeTimeAgreementForm.tsx +483 -0
  279. package/src/movethewheels/components/ReturnInstructionForm.tsx +102 -0
  280. package/src/movethewheels/components/ReuseControls.tsx +138 -0
  281. package/src/movethewheels/components/ReusePermissionForm.tsx +123 -0
  282. package/src/movethewheels/components/ReuseProposalForm.tsx +484 -0
  283. package/src/movethewheels/components/ReuseSourceFields.tsx +80 -0
  284. package/src/movethewheels/components/consolidation/ConsolidationHistory.tsx +159 -0
  285. package/src/movethewheels/components/consolidation/ConsolidationLotEditor.tsx +144 -0
  286. package/src/movethewheels/components/consolidation/ConsolidationManifestWorkbench.tsx +168 -0
  287. package/src/movethewheels/components/consolidation/ConsolidationPlanForm.tsx +185 -0
  288. package/src/movethewheels/components/consolidation/ConsolidationPlanWorkbench.tsx +395 -0
  289. package/src/movethewheels/components/consolidation/ConsolidationReportForm.tsx +124 -0
  290. package/src/movethewheels/components/consolidation/ConsolidationReportsWorkbench.tsx +233 -0
  291. package/src/movethewheels/components/consolidation/ConsolidationSummary.tsx +84 -0
  292. package/src/movethewheels/components/consolidation/OriginalConsolidationHistory.tsx +133 -0
  293. package/src/movethewheels/components/freight-cost/FreightDraftForm.tsx +224 -0
  294. package/src/movethewheels/components/freight-cost/FreightFields.tsx +91 -0
  295. package/src/movethewheels/components/freight-cost/FreightFxEditor.tsx +98 -0
  296. package/src/movethewheels/components/freight-cost/FreightHistory.tsx +91 -0
  297. package/src/movethewheels/components/freight-cost/FreightLineEditor.tsx +192 -0
  298. package/src/movethewheels/components/freight-cost/FreightScopeEditor.tsx +64 -0
  299. package/src/movethewheels/components/freight-cost/FreightTotals.tsx +68 -0
  300. package/src/movethewheels/components/logistics-procedure/ProcedureDecisionForm.tsx +204 -0
  301. package/src/movethewheels/components/logistics-procedure/ProcedureFields.tsx +43 -0
  302. package/src/movethewheels/components/logistics-procedure/ProcedureHistory.tsx +102 -0
  303. package/src/movethewheels/components/logistics-procedure/ProcedurePolicyForm.tsx +226 -0
  304. package/src/movethewheels/components/logistics-procedure/ProcedurePolicyWorkbench.tsx +174 -0
  305. package/src/movethewheels/components/logistics-procedure/ProcedureReviewWorkbench.tsx +278 -0
  306. package/src/movethewheels/components/logistics-procedure/ProcedureRunWorkbench.tsx +292 -0
  307. package/src/movethewheels/components/logistics-procedure/ProcedureSubjectPicker.tsx +111 -0
  308. package/src/movethewheels/components/pending-pick/PendingPickDraft.tsx +82 -0
  309. package/src/movethewheels/components/pending-pick/PendingPickHistory.tsx +93 -0
  310. package/src/movethewheels/components/pending-pick/PickCapture.tsx +70 -0
  311. package/src/movethewheels/components/pending-pick/PickLineSelection.tsx +130 -0
  312. package/src/movethewheels/components/stock-binding/StockAssessmentDraft.tsx +52 -0
  313. package/src/movethewheels/components/stock-binding/StockAssessmentHistory.tsx +56 -0
  314. package/src/movethewheels/components/stock-binding/StockAssessmentSummary.tsx +108 -0
  315. package/src/movethewheels/components/stock-binding/StockFactForm.tsx +186 -0
  316. package/src/movethewheels/components/stock-observation/StockIssueForm.tsx +103 -0
  317. package/src/movethewheels/components/stock-observation/StockIssueHistory.tsx +96 -0
  318. package/src/movethewheels/components/stock-observation/StockIssueReadPanel.tsx +72 -0
  319. package/src/movethewheels/components/trip-utilization/TripReportForm.tsx +116 -0
  320. package/src/movethewheels/components/trip-utilization/TripReportHistory.tsx +51 -0
  321. package/src/movethewheels/components/trip-utilization/TripReportSummary.tsx +127 -0
  322. package/src/movethewheels/components/trip-utilization/TripSegmentFields.tsx +118 -0
  323. package/src/movethewheels/hooks/useConsolidationAction.ts +196 -0
  324. package/src/movethewheels/hooks/useContainerCondition.ts +129 -0
  325. package/src/movethewheels/hooks/useContainerLifecycle.ts +291 -0
  326. package/src/movethewheels/hooks/useEmptyReuseAction.ts +72 -0
  327. package/src/movethewheels/hooks/useFreightRecoveryAction.ts +201 -0
  328. package/src/movethewheels/hooks/useInventory.ts +2 -20
  329. package/src/movethewheels/hooks/useProcedureAction.ts +196 -0
  330. package/src/movethewheels/hooks/useProcedureSelection.ts +75 -0
  331. package/src/movethewheels/hooks/useReuseRecoveryAction.ts +192 -0
  332. package/src/movethewheels/pages/ConsolidationPage.tsx +70 -0
  333. package/src/movethewheels/pages/ContainerConditionPage.tsx +959 -0
  334. package/src/movethewheels/pages/ContainersPage.tsx +490 -0
  335. package/src/movethewheels/pages/EmptyReusePage.tsx +823 -0
  336. package/src/movethewheels/pages/FreeTimePage.tsx +720 -0
  337. package/src/movethewheels/pages/FreightEstimatePage.tsx +353 -0
  338. package/src/movethewheels/pages/InventoryPage.tsx +16 -2
  339. package/src/movethewheels/pages/LogisticsProceduresPage.tsx +86 -0
  340. package/src/movethewheels/pages/PendingPickPage.tsx +226 -0
  341. package/src/movethewheels/pages/StockBindingPage.tsx +299 -0
  342. package/src/movethewheels/pages/StockObservationsPage.tsx +181 -0
  343. package/src/movethewheels/pages/TripUtilizationPage.tsx +315 -0
  344. package/src/movethewheels/utils/consolidationHistoryTarget.ts +39 -0
  345. package/src/movethewheels/utils/consolidationInput.ts +70 -0
  346. package/src/movethewheels/utils/consolidationLot.ts +24 -0
  347. package/src/movethewheels/utils/consolidationPins.ts +52 -0
  348. package/src/movethewheels/utils/consolidationRecovery.ts +88 -0
  349. package/src/movethewheels/utils/consolidationReportHead.ts +29 -0
  350. package/src/movethewheels/utils/freeTimeDate.ts +31 -0
  351. package/src/movethewheels/utils/freightAcknowledgement.ts +31 -0
  352. package/src/movethewheels/utils/freightDraft.ts +170 -0
  353. package/src/movethewheels/utils/freightRecovery.ts +79 -0
  354. package/src/movethewheels/utils/graphqlClient.ts +14 -5
  355. package/src/movethewheels/utils/pendingPickDraft.ts +61 -0
  356. package/src/movethewheels/utils/procedureInput.ts +98 -0
  357. package/src/movethewheels/utils/procedureRecovery.ts +92 -0
  358. package/src/movethewheels/utils/reuseAttempt.ts +29 -0
  359. package/src/movethewheels/utils/reuseForm.ts +30 -0
  360. package/src/movethewheels/utils/reuseRecovery.ts +151 -0
  361. package/src/movethewheels/utils/stockBindingForm.ts +209 -0
  362. package/src/movethewheels/utils/stockBindingLabels.ts +41 -0
  363. package/src/movethewheels/utils/stockObservationForm.ts +73 -0
  364. package/src/movethewheels/utils/tripDraftContext.ts +61 -0
  365. package/src/movethewheels/utils/tripUtilizationForm.ts +105 -0
  366. package/src/operations/condition/container-condition.graphql +41 -0
  367. package/src/operations/consolidation/consolidation.graphql +490 -0
  368. package/src/operations/container/container-lifecycle.graphql +80 -0
  369. package/src/operations/empty-reuse/empty-reuse.graphql +737 -0
  370. package/src/operations/free-time/free-time.graphql +47 -0
  371. package/src/operations/freight-cost/freight.graphql +6 -0
  372. package/src/operations/logistics-procedure/procedure.graphql +15 -0
  373. package/src/operations/pending-pick/pending-pick.graphql +1122 -0
  374. package/src/operations/stock-binding/stock-binding.graphql +160 -0
  375. package/src/operations/stock-observation/stock-observation.graphql +20 -0
  376. package/src/operations/trip-utilization/trip-utilization.graphql +126 -0
  377. package/src/operations/wspace/container-evidence.graphql +6 -0
@@ -0,0 +1,972 @@
1
+ import { ShieldCheck as e } from "../node_modules/lucide-react/dist/esm/icons/shield-check.js";
2
+ import { useMoveTheWheels as t } from "../providers/MoveTheWheelsProvider.js";
3
+ import { Button as n, Input as r } from "../components/ui.js";
4
+ import { PageLayout as i } from "../components/PageLayout.js";
5
+ import { useConditionAction as a, useConditionQuery as o } from "../hooks/useContainerCondition.js";
6
+ import { ContainerEvidencePicker as s } from "../components/ContainerEvidencePicker.js";
7
+ import { ConditionContainersDocument as c, ConditionDefectsDocument as l, ConditionHoldsDocument as ee, ConditionInspectionsDocument as te, ConditionQualificationsDocument as ne, ConditionReleasesDocument as re, ConditionRepairsDocument as ie, CreateConditionHoldDocument as ae, RecordConditionRepairDocument as oe, RecordInspectionDocument as se, ReleaseConditionHoldDocument as ce, ReviewInspectorQualificationDocument as le, RevokeInspectorQualificationDocument as ue, SubmitInspectorQualificationDocument as de } from "../src/generated/container-condition-operations.js";
8
+ import { useState as u } from "react";
9
+ import { Fragment as d, jsx as f, jsxs as p } from "react/jsx-runtime";
10
+ //#region src/movethewheels/pages/ContainerConditionPage.tsx
11
+ var m = "space-y-4 rounded-xl border bg-bg-surface p-5", fe = "mt-1 w-full rounded-md border p-2 text-sm", h = [
12
+ "inspection",
13
+ "hold",
14
+ "repair",
15
+ "qualification",
16
+ "review",
17
+ "revoke",
18
+ "release"
19
+ ], pe = {
20
+ inspection: "Record inspection",
21
+ hold: "Place operational hold",
22
+ repair: "Record repair",
23
+ qualification: "Submit my qualification",
24
+ review: "Review issuer qualification",
25
+ revoke: "Revoke qualification",
26
+ release: "Release hold"
27
+ }, me = [
28
+ "PES_EXAMINATION",
29
+ "ACEP_EXAMINATION",
30
+ "DRY_CARGO",
31
+ "REEFER_CARGO",
32
+ "FOOD_GRADE_CARGO",
33
+ "PEST_CARGO",
34
+ "DANGEROUS_CARGO"
35
+ ], g = (e) => e.replaceAll("_", " ").toLowerCase(), _ = (e) => new Date(e).toLocaleString();
36
+ function v({ label: e, name: t, type: n = "text", maxLength: i = 255, required: a = !0 }) {
37
+ return /* @__PURE__ */ p("label", {
38
+ className: "block text-sm",
39
+ children: [e, /* @__PURE__ */ f(r, {
40
+ name: t,
41
+ type: n,
42
+ required: a,
43
+ maxLength: i,
44
+ step: n === "datetime-local" ? 1 : void 0,
45
+ className: "mt-1"
46
+ })]
47
+ });
48
+ }
49
+ function y({ label: e, value: t, onChange: n, children: r }) {
50
+ return /* @__PURE__ */ p("label", {
51
+ className: "block text-sm",
52
+ children: [e, /* @__PURE__ */ f("select", {
53
+ "aria-label": e,
54
+ className: fe,
55
+ value: t,
56
+ onChange: (e) => n(e.target.value),
57
+ children: r
58
+ })]
59
+ });
60
+ }
61
+ function b({ offset: e, setOffset: t, hasMore: r, loading: i, label: a }) {
62
+ return /* @__PURE__ */ p("div", {
63
+ className: "flex flex-wrap gap-2",
64
+ children: [/* @__PURE__ */ p(n, {
65
+ type: "button",
66
+ variant: "outline",
67
+ disabled: e === 0 || i,
68
+ onClick: () => t(Math.max(0, e - 25)),
69
+ children: ["Previous ", a]
70
+ }), /* @__PURE__ */ p(n, {
71
+ type: "button",
72
+ variant: "outline",
73
+ disabled: !r || i || e >= 1e4,
74
+ onClick: () => t(e + 25),
75
+ children: ["Next ", a]
76
+ })]
77
+ });
78
+ }
79
+ function x() {
80
+ let { workspaceId: e, currentUser: n, tenantId: r, apiGatewayUrl: i } = t();
81
+ return /* @__PURE__ */ f(he, {}, `${e ?? ""}:${n?.id ?? ""}:${r ?? ""}:${i ?? ""}`);
82
+ }
83
+ function he() {
84
+ let [t, n] = u(""), [r, a] = u(0), s = o(c, { pagination: {
85
+ limit: 25,
86
+ offset: r
87
+ } });
88
+ return /* @__PURE__ */ f(i, {
89
+ title: "Container condition",
90
+ subtitle: "Recorded examinations, repairs and qualified hold release",
91
+ icon: /* @__PURE__ */ f(e, { size: 24 }),
92
+ children: /* @__PURE__ */ p("div", {
93
+ className: "space-y-6",
94
+ children: [
95
+ /* @__PURE__ */ f("p", {
96
+ className: "rounded-lg border p-4 text-sm",
97
+ children: "Operational records support a human decision. MoveTheWheels does not issue CSC approval, verify an issuer automatically, or certify fitness for carriage. A repair never releases a hold by itself."
98
+ }),
99
+ /* @__PURE__ */ p("section", {
100
+ className: m,
101
+ children: [
102
+ /* @__PURE__ */ f("h2", {
103
+ className: "text-lg font-semibold",
104
+ children: "Choose equipment"
105
+ }),
106
+ s.error && /* @__PURE__ */ f("p", {
107
+ role: "alert",
108
+ children: s.error
109
+ }),
110
+ s.loading && /* @__PURE__ */ f("p", {
111
+ role: "status",
112
+ children: "Loading containers…"
113
+ }),
114
+ /* @__PURE__ */ p(y, {
115
+ label: "Container",
116
+ value: t,
117
+ onChange: n,
118
+ children: [/* @__PURE__ */ f("option", {
119
+ value: "",
120
+ children: "Choose a container"
121
+ }), s.data?.mtwContainerPage.items.map((e) => /* @__PURE__ */ p("option", {
122
+ value: e.id,
123
+ children: [
124
+ e.containerNumber,
125
+ " — ",
126
+ g(e.equipmentType)
127
+ ]
128
+ }, e.id))]
129
+ }),
130
+ /* @__PURE__ */ f(b, {
131
+ offset: r,
132
+ loading: s.loading,
133
+ hasMore: s.data?.mtwContainerPage.hasMore,
134
+ label: "containers",
135
+ setOffset: (e) => {
136
+ a(e), n("");
137
+ }
138
+ })
139
+ ]
140
+ }),
141
+ t && /* @__PURE__ */ f(S, { containerId: t }, t)
142
+ ]
143
+ })
144
+ });
145
+ }
146
+ function S({ containerId: e }) {
147
+ let { currentUser: i } = t(), c = a(), [x, he] = u("inspection"), [S, C] = u(""), [w, T] = u(""), [E, D] = u(""), [O, ge] = u("PES"), [k, _e] = u("DRY"), [A, ve] = u("REVIEW_REQUIRED"), [j, M] = u([]), [N, P] = u([]), [F, ye] = u([]), [I, L] = u([]), [R, z] = u(null), [B, be] = u(0), [V, xe] = u(""), [Se, H] = u(0), [Ce, we] = u(0), [Te, Ee] = u(0), [De, U] = u(0), [W, Oe] = u(""), [ke, Ae] = u(0), G = o(te, {
148
+ containerId: e,
149
+ pagination: {
150
+ limit: 25,
151
+ offset: B
152
+ }
153
+ }, c.revision), K = o(l, V ? {
154
+ inspectionId: V,
155
+ pagination: {
156
+ limit: 25,
157
+ offset: Se
158
+ }
159
+ } : null, c.revision), q = o(ee, {
160
+ containerId: e,
161
+ pagination: {
162
+ limit: 25,
163
+ offset: Ce
164
+ }
165
+ }, c.revision), J = o(ne, { pagination: {
166
+ limit: 25,
167
+ offset: Te
168
+ } }, c.revision), Y = q.data?.mtwContainerHoldPage.items.find((e) => e.id === S), X = J.data?.mtwContainerQualificationPage.items.find((e) => e.id === E), Z = o(l, Y?.inspectionId ? {
169
+ inspectionId: Y.inspectionId,
170
+ pagination: {
171
+ limit: 25,
172
+ offset: 0
173
+ }
174
+ } : null, c.revision), Q = o(ie, W ? {
175
+ holdId: W,
176
+ pagination: {
177
+ limit: 25,
178
+ offset: De
179
+ }
180
+ } : null, c.revision), $ = o(re, {
181
+ containerId: e,
182
+ pagination: {
183
+ limit: 25,
184
+ offset: ke
185
+ }
186
+ }, c.revision), je = async (t) => {
187
+ t.preventDefault(), z(null);
188
+ let n = new FormData(t.currentTarget), r = (e) => String(n.get(e) ?? "").trim(), a = (e) => {
189
+ let t = new Date(r(e));
190
+ if (!Number.isFinite(t.getTime())) throw Error("Enter a valid date and time.");
191
+ return t.toISOString();
192
+ }, o = j.map(({ fileId: e, versionId: t }) => ({
193
+ fileId: e,
194
+ versionId: t
195
+ }));
196
+ try {
197
+ if (x !== "revoke" && o.length === 0) throw Error("Choose at least one exact evidence version.");
198
+ if (x === "inspection" && await c.run(se, {
199
+ containerId: e,
200
+ inspectedAt: a("inspectedAt"),
201
+ templateVersion: r("templateVersion"),
202
+ examinationScheme: O,
203
+ cscPlateVersionId: r("cscPlateVersionId"),
204
+ examinationVersionId: r("examinationVersionId"),
205
+ nextExaminationAt: O === "PES" ? a("nextExaminationAt") : void 0,
206
+ acepReference: O === "ACEP" ? r("acepReference") : void 0,
207
+ cargoCategory: k,
208
+ suitability: A,
209
+ evidence: o,
210
+ defects: I,
211
+ resolvedDefectIds: N
212
+ }, "Inspection recorded. Severe defects create a hold."), x === "hold" && await c.run(ae, {
213
+ containerId: e,
214
+ reason: r("reason"),
215
+ heldAt: a("heldAt"),
216
+ evidence: o
217
+ }, "Operational hold recorded."), x === "repair") {
218
+ if (!Y || Y.status !== "OPEN") throw Error("Choose an open hold.");
219
+ await c.run(oe, {
220
+ holdId: Y.id,
221
+ expectedVersion: Y.version,
222
+ completedAt: a("completedAt"),
223
+ workDescription: r("workDescription"),
224
+ defectIds: N,
225
+ evidence: o
226
+ }, "Repair recorded. The hold remains open.");
227
+ }
228
+ if (x === "qualification" && F.length === 0) throw Error("Choose at least one examination or cargo scope.");
229
+ if (x === "qualification" && await c.run(de, {
230
+ issuerName: r("issuerName"),
231
+ credentialReference: r("credentialReference"),
232
+ validFrom: a("validFrom"),
233
+ validUntil: a("validUntil"),
234
+ scopes: F,
235
+ evidence: o
236
+ }, "Qualification submitted for a separate human review."), x === "review") {
237
+ if (!X || X.subjectActorId === i?.id) throw Error("Choose a qualification submitted by another human.");
238
+ await c.run(le, {
239
+ qualificationId: X.id,
240
+ expectedVersion: X.version,
241
+ issuerConfirmationReference: r("issuerConfirmationReference"),
242
+ reviewNote: r("reviewNote"),
243
+ evidence: o
244
+ }, "Human issuer review recorded.");
245
+ }
246
+ if (x === "revoke") {
247
+ if (!X) throw Error("Choose a qualification.");
248
+ await c.run(ue, {
249
+ qualificationId: X.id,
250
+ expectedVersion: X.version,
251
+ reason: r("reason")
252
+ }, "Qualification revoked.");
253
+ }
254
+ if (x === "release") {
255
+ if (!Y || Y.status !== "OPEN" || !X || !w) throw Error("Choose an open hold, current inspection and your reviewed qualification.");
256
+ await c.run(ce, {
257
+ holdId: Y.id,
258
+ expectedVersion: Y.version,
259
+ inspectionId: w,
260
+ qualificationId: X.id,
261
+ resolutionReview: r("resolutionReview"),
262
+ evidence: o
263
+ }, "Qualified release decision recorded. Other open holds still apply.");
264
+ }
265
+ } catch (e) {
266
+ z(e instanceof Error ? e.message : "Check the record fields.");
267
+ }
268
+ };
269
+ return /* @__PURE__ */ p("div", {
270
+ className: "space-y-6",
271
+ children: [
272
+ /* @__PURE__ */ p("section", {
273
+ className: m,
274
+ children: [
275
+ /* @__PURE__ */ f("h2", {
276
+ className: "text-lg font-semibold",
277
+ children: "Condition history"
278
+ }),
279
+ G.error && /* @__PURE__ */ p("p", {
280
+ role: "alert",
281
+ children: ["Inspections unavailable: ", G.error]
282
+ }),
283
+ G.loading && /* @__PURE__ */ f("p", {
284
+ role: "status",
285
+ children: "Loading inspections…"
286
+ }),
287
+ /* @__PURE__ */ f("ul", {
288
+ className: "space-y-2",
289
+ children: G.data?.mtwContainerInspectionPage.items.map((e) => /* @__PURE__ */ p("li", {
290
+ className: "rounded border p-3 text-sm",
291
+ children: [
292
+ _(e.inspectedAt),
293
+ " — ",
294
+ g(e.suitability),
295
+ ", ",
296
+ e.examinationScheme,
297
+ ",",
298
+ " ",
299
+ g(e.cargoCategory),
300
+ ". ",
301
+ e.defectCount,
302
+ " defects, ",
303
+ e.severeDefectCount,
304
+ " ",
305
+ "severe. Template ",
306
+ e.templateVersion,
307
+ "."
308
+ ]
309
+ }, e.id))
310
+ }),
311
+ /* @__PURE__ */ f(b, {
312
+ offset: B,
313
+ setOffset: (e) => {
314
+ be(e), T(""), xe(""), H(0);
315
+ },
316
+ hasMore: G.data?.mtwContainerInspectionPage.hasMore,
317
+ loading: G.loading,
318
+ label: "inspections"
319
+ }),
320
+ G.data && G.data.mtwContainerInspectionPage.items.length === 0 && /* @__PURE__ */ f("p", { children: "No inspections recorded on this page." }),
321
+ /* @__PURE__ */ p(y, {
322
+ label: "Inspect recorded defects",
323
+ value: V,
324
+ onChange: (e) => {
325
+ xe(e), H(0);
326
+ },
327
+ children: [/* @__PURE__ */ f("option", {
328
+ value: "",
329
+ children: "Choose an inspection"
330
+ }), G.data?.mtwContainerInspectionPage.items.map((e) => /* @__PURE__ */ p("option", {
331
+ value: e.id,
332
+ children: [
333
+ _(e.inspectedAt),
334
+ " — ",
335
+ g(e.suitability),
336
+ " — ",
337
+ e.templateVersion
338
+ ]
339
+ }, e.id))]
340
+ }),
341
+ V && /* @__PURE__ */ p("div", {
342
+ className: "space-y-2",
343
+ children: [
344
+ K.error && /* @__PURE__ */ f("p", {
345
+ role: "alert",
346
+ children: K.error
347
+ }),
348
+ K.loading && /* @__PURE__ */ f("p", {
349
+ role: "status",
350
+ children: "Loading recorded defects…"
351
+ }),
352
+ /* @__PURE__ */ f("ul", {
353
+ className: "space-y-2",
354
+ children: K.data?.mtwContainerDefectPage.items.map((e) => /* @__PURE__ */ p("li", {
355
+ className: "rounded border p-3 text-sm",
356
+ children: [
357
+ e.code,
358
+ " — ",
359
+ g(e.severity),
360
+ " — ",
361
+ e.details
362
+ ]
363
+ }, e.id))
364
+ }),
365
+ K.data?.mtwContainerDefectPage.items.length === 0 && /* @__PURE__ */ f("p", { children: "No defects were recorded in this inspection." }),
366
+ /* @__PURE__ */ f(b, {
367
+ offset: Se,
368
+ setOffset: H,
369
+ hasMore: K.data?.mtwContainerDefectPage.hasMore,
370
+ loading: K.loading,
371
+ label: "defects"
372
+ })
373
+ ]
374
+ }),
375
+ q.error && /* @__PURE__ */ p("p", {
376
+ role: "alert",
377
+ children: ["Holds unavailable: ", q.error]
378
+ }),
379
+ /* @__PURE__ */ f("ul", {
380
+ className: "space-y-2",
381
+ children: q.data?.mtwContainerHoldPage.items.map((e) => /* @__PURE__ */ p("li", {
382
+ className: "rounded border p-3 text-sm",
383
+ children: [
384
+ g(e.status),
385
+ " — ",
386
+ e.reason,
387
+ " — ",
388
+ _(e.heldAt),
389
+ ". Revision ",
390
+ e.version,
391
+ "."
392
+ ]
393
+ }, e.id))
394
+ }),
395
+ /* @__PURE__ */ f(b, {
396
+ offset: Ce,
397
+ setOffset: (e) => {
398
+ we(e), C(""), P([]);
399
+ },
400
+ hasMore: q.data?.mtwContainerHoldPage.hasMore,
401
+ loading: q.loading,
402
+ label: "holds"
403
+ })
404
+ ]
405
+ }),
406
+ /* @__PURE__ */ p("section", {
407
+ className: m,
408
+ children: [
409
+ /* @__PURE__ */ f("h2", {
410
+ className: "text-lg font-semibold",
411
+ children: "Record a decision or event"
412
+ }),
413
+ /* @__PURE__ */ f(y, {
414
+ label: "Action",
415
+ value: x,
416
+ onChange: (e) => {
417
+ if (h.some((t) => t === e)) {
418
+ let t = h.find((t) => t === e);
419
+ t && he(t);
420
+ }
421
+ D(""), M([]), P([]), z(null), c.resetFeedback();
422
+ },
423
+ children: h.map((e) => /* @__PURE__ */ f("option", {
424
+ value: e,
425
+ children: pe[e]
426
+ }, e))
427
+ }),
428
+ R && /* @__PURE__ */ f("p", {
429
+ role: "alert",
430
+ children: R
431
+ }),
432
+ c.error && /* @__PURE__ */ f("p", {
433
+ role: "alert",
434
+ children: c.error
435
+ }),
436
+ c.notice && /* @__PURE__ */ f("p", {
437
+ role: "status",
438
+ children: c.notice
439
+ }),
440
+ c.hasPendingAttempt && /* @__PURE__ */ p("div", {
441
+ className: "space-y-2 rounded border p-3 text-sm",
442
+ children: [/* @__PURE__ */ f("p", { children: "A failed response may still have committed. An unchanged retry preserves its original request and revision. Check history before discarding the attempt to start another." }), /* @__PURE__ */ f(n, {
443
+ type: "button",
444
+ variant: "outline",
445
+ disabled: c.busy,
446
+ onClick: c.discardAttempt,
447
+ children: "Discard failed attempt"
448
+ })]
449
+ }),
450
+ /* @__PURE__ */ p("form", {
451
+ onSubmit: (e) => {
452
+ je(e);
453
+ },
454
+ className: "space-y-4",
455
+ children: [
456
+ [
457
+ "inspection",
458
+ "repair",
459
+ "release"
460
+ ].includes(x) && /* @__PURE__ */ p(y, {
461
+ label: "Hold being addressed",
462
+ value: S,
463
+ onChange: (e) => {
464
+ C(e), P([]), U(0);
465
+ },
466
+ children: [/* @__PURE__ */ f("option", {
467
+ value: "",
468
+ children: "Choose a hold (optional for a new inspection)"
469
+ }), q.data?.mtwContainerHoldPage.items.filter((e) => e.status === "OPEN").map((e) => /* @__PURE__ */ p("option", {
470
+ value: e.id,
471
+ children: [
472
+ e.reason,
473
+ " — ",
474
+ _(e.heldAt)
475
+ ]
476
+ }, e.id))]
477
+ }),
478
+ x === "inspection" && /* @__PURE__ */ p(d, { children: [
479
+ /* @__PURE__ */ f(v, {
480
+ label: "Actual inspection time",
481
+ name: "inspectedAt",
482
+ type: "datetime-local"
483
+ }),
484
+ /* @__PURE__ */ f(v, {
485
+ label: "Inspection template version",
486
+ name: "templateVersion",
487
+ maxLength: 120
488
+ }),
489
+ /* @__PURE__ */ p(y, {
490
+ label: "Recorded examination scheme",
491
+ value: O,
492
+ onChange: (e) => ge(e === "ACEP" ? "ACEP" : "PES"),
493
+ children: [/* @__PURE__ */ f("option", {
494
+ value: "PES",
495
+ children: "Periodic examination (PES)"
496
+ }), /* @__PURE__ */ f("option", {
497
+ value: "ACEP",
498
+ children: "Approved continuous examination programme (ACEP)"
499
+ })]
500
+ }),
501
+ O === "PES" ? /* @__PURE__ */ f(v, {
502
+ label: "Recorded next examination due",
503
+ name: "nextExaminationAt",
504
+ type: "datetime-local"
505
+ }) : /* @__PURE__ */ f(v, {
506
+ label: "Recorded ACEP programme reference",
507
+ name: "acepReference"
508
+ }),
509
+ /* @__PURE__ */ f(y, {
510
+ label: "Cargo category",
511
+ value: k,
512
+ onChange: (e) => {
513
+ let t = [
514
+ "DRY",
515
+ "REEFER",
516
+ "FOOD_GRADE",
517
+ "PEST",
518
+ "DANGEROUS"
519
+ ].find((t) => t === e);
520
+ t && _e(t);
521
+ },
522
+ children: [
523
+ "DRY",
524
+ "REEFER",
525
+ "FOOD_GRADE",
526
+ "PEST",
527
+ "DANGEROUS"
528
+ ].map((e) => /* @__PURE__ */ f("option", {
529
+ value: e,
530
+ children: g(e)
531
+ }, e))
532
+ }),
533
+ /* @__PURE__ */ f(y, {
534
+ label: "Recorded suitability",
535
+ value: A,
536
+ onChange: (e) => {
537
+ let t = [
538
+ "ACCEPTABLE",
539
+ "REJECTED",
540
+ "REVIEW_REQUIRED"
541
+ ].find((t) => t === e);
542
+ t && ve(t);
543
+ },
544
+ children: [
545
+ "ACCEPTABLE",
546
+ "REJECTED",
547
+ "REVIEW_REQUIRED"
548
+ ].map((e) => /* @__PURE__ */ f("option", {
549
+ value: e,
550
+ children: g(e)
551
+ }, e))
552
+ }),
553
+ /* @__PURE__ */ p("fieldset", {
554
+ className: "space-y-3",
555
+ children: [
556
+ /* @__PURE__ */ f("legend", { children: "Defects found (up to 20)" }),
557
+ I.map((e, t) => /* @__PURE__ */ p("div", {
558
+ className: "space-y-2 rounded border p-3",
559
+ children: [
560
+ /* @__PURE__ */ p("label", {
561
+ className: "block text-sm",
562
+ children: ["Defect code", /* @__PURE__ */ f(r, {
563
+ required: !0,
564
+ maxLength: 120,
565
+ value: e.code,
566
+ onChange: (e) => L(I.map((n, r) => r === t ? {
567
+ ...n,
568
+ code: e.target.value
569
+ } : n))
570
+ })]
571
+ }),
572
+ /* @__PURE__ */ f(y, {
573
+ label: `Defect ${t + 1} severity`,
574
+ value: e.severity,
575
+ onChange: (e) => {
576
+ let n = [
577
+ "MINOR",
578
+ "MAJOR",
579
+ "SEVERE"
580
+ ].find((t) => t === e);
581
+ n && L(I.map((e, r) => r === t ? {
582
+ ...e,
583
+ severity: n
584
+ } : e));
585
+ },
586
+ children: [
587
+ "MINOR",
588
+ "MAJOR",
589
+ "SEVERE"
590
+ ].map((e) => /* @__PURE__ */ f("option", {
591
+ value: e,
592
+ children: g(e)
593
+ }, e))
594
+ }),
595
+ /* @__PURE__ */ p("label", {
596
+ className: "block text-sm",
597
+ children: ["Defect details", /* @__PURE__ */ f(r, {
598
+ required: !0,
599
+ maxLength: 2e3,
600
+ value: e.details,
601
+ onChange: (e) => L(I.map((n, r) => r === t ? {
602
+ ...n,
603
+ details: e.target.value
604
+ } : n))
605
+ })]
606
+ }),
607
+ /* @__PURE__ */ f(n, {
608
+ type: "button",
609
+ variant: "outline",
610
+ onClick: () => L(I.filter((e, n) => n !== t)),
611
+ children: "Remove defect"
612
+ })
613
+ ]
614
+ }, t)),
615
+ /* @__PURE__ */ f(n, {
616
+ type: "button",
617
+ variant: "outline",
618
+ disabled: I.length >= 20,
619
+ onClick: () => L([...I, {
620
+ code: "",
621
+ severity: "MINOR",
622
+ details: ""
623
+ }]),
624
+ children: "Add defect"
625
+ })
626
+ ]
627
+ })
628
+ ] }),
629
+ x === "hold" && /* @__PURE__ */ p(d, { children: [/* @__PURE__ */ f(v, {
630
+ label: "Operational hold reason",
631
+ name: "reason",
632
+ maxLength: 2e3
633
+ }), /* @__PURE__ */ f(v, {
634
+ label: "Actual hold time",
635
+ name: "heldAt",
636
+ type: "datetime-local"
637
+ })] }),
638
+ x === "repair" && /* @__PURE__ */ p(d, { children: [
639
+ /* @__PURE__ */ f(v, {
640
+ label: "Actual repair completion time",
641
+ name: "completedAt",
642
+ type: "datetime-local"
643
+ }),
644
+ /* @__PURE__ */ f(v, {
645
+ label: "Repair work performed",
646
+ name: "workDescription",
647
+ maxLength: 2e3
648
+ }),
649
+ /* @__PURE__ */ f("p", {
650
+ className: "text-sm",
651
+ children: "Recording repair evidence leaves the hold open."
652
+ })
653
+ ] }),
654
+ ["inspection", "repair"].includes(x) && Y?.inspectionId && /* @__PURE__ */ p("fieldset", {
655
+ className: "space-y-2",
656
+ children: [
657
+ /* @__PURE__ */ f("legend", { children: x === "inspection" ? "Held defects explicitly resolved by this examination" : "Held defects addressed by this repair" }),
658
+ Z.error && /* @__PURE__ */ f("p", {
659
+ role: "alert",
660
+ children: Z.error
661
+ }),
662
+ Z.data?.mtwContainerDefectPage.items.filter((e) => Y.defectIds.includes(e.id)).map((e) => /* @__PURE__ */ p("label", {
663
+ className: "flex gap-2 text-sm",
664
+ children: [
665
+ /* @__PURE__ */ f("input", {
666
+ type: "checkbox",
667
+ checked: N.includes(e.id),
668
+ onChange: () => P(N.includes(e.id) ? N.filter((t) => t !== e.id) : [...N, e.id])
669
+ }),
670
+ e.code,
671
+ " — ",
672
+ e.details
673
+ ]
674
+ }, e.id))
675
+ ]
676
+ }),
677
+ x === "qualification" && /* @__PURE__ */ p(d, { children: [
678
+ /* @__PURE__ */ f("p", {
679
+ className: "text-sm",
680
+ children: "This submission belongs to you. Another authorized human must record issuer confirmation."
681
+ }),
682
+ /* @__PURE__ */ f(v, {
683
+ label: "Credential issuer",
684
+ name: "issuerName"
685
+ }),
686
+ /* @__PURE__ */ f(v, {
687
+ label: "Credential reference",
688
+ name: "credentialReference"
689
+ }),
690
+ /* @__PURE__ */ f(v, {
691
+ label: "Qualification valid from",
692
+ name: "validFrom",
693
+ type: "datetime-local"
694
+ }),
695
+ /* @__PURE__ */ f(v, {
696
+ label: "Qualification valid until",
697
+ name: "validUntil",
698
+ type: "datetime-local"
699
+ }),
700
+ /* @__PURE__ */ p("fieldset", {
701
+ className: "space-y-2",
702
+ children: [/* @__PURE__ */ f("legend", { children: "Examination and cargo scopes" }), me.map((e) => /* @__PURE__ */ p("label", {
703
+ className: "flex gap-2 text-sm",
704
+ children: [/* @__PURE__ */ f("input", {
705
+ type: "checkbox",
706
+ checked: F.includes(e),
707
+ onChange: () => ye(F.includes(e) ? F.filter((t) => t !== e) : [...F, e])
708
+ }), g(e)]
709
+ }, e))]
710
+ })
711
+ ] }),
712
+ [
713
+ "review",
714
+ "revoke",
715
+ "release"
716
+ ].includes(x) && /* @__PURE__ */ p(y, {
717
+ label: "Qualification",
718
+ value: E,
719
+ onChange: D,
720
+ children: [/* @__PURE__ */ f("option", {
721
+ value: "",
722
+ children: "Choose a qualification"
723
+ }), J.data?.mtwContainerQualificationPage.items.map((e) => /* @__PURE__ */ p("option", {
724
+ value: e.id,
725
+ disabled: x === "review" ? e.status !== "SUBMITTED" || e.subjectActorId === i?.id : x === "release" ? e.status !== "HUMAN_REVIEWED" || e.subjectActorId !== i?.id : e.status === "REVOKED",
726
+ children: [
727
+ e.issuerName,
728
+ " — ",
729
+ e.credentialReference,
730
+ " — ",
731
+ g(e.status)
732
+ ]
733
+ }, e.id))]
734
+ }),
735
+ x === "review" && /* @__PURE__ */ p(d, { children: [
736
+ /* @__PURE__ */ f(v, {
737
+ label: "Issuer confirmation reference",
738
+ name: "issuerConfirmationReference"
739
+ }),
740
+ /* @__PURE__ */ f(v, {
741
+ label: "Human review notes",
742
+ name: "reviewNote",
743
+ maxLength: 2e3
744
+ }),
745
+ /* @__PURE__ */ f("p", {
746
+ className: "text-sm",
747
+ children: "Record what you independently confirmed with the issuer. Software does not validate the credential automatically."
748
+ })
749
+ ] }),
750
+ x === "revoke" && /* @__PURE__ */ f(v, {
751
+ label: "Revocation reason",
752
+ name: "reason",
753
+ maxLength: 2e3
754
+ }),
755
+ x === "release" && /* @__PURE__ */ p(d, { children: [
756
+ /* @__PURE__ */ p(y, {
757
+ label: "Release inspection",
758
+ value: w,
759
+ onChange: T,
760
+ children: [/* @__PURE__ */ f("option", {
761
+ value: "",
762
+ children: "Choose a current inspection"
763
+ }), G.data?.mtwContainerInspectionPage.items.map((e) => /* @__PURE__ */ p("option", {
764
+ value: e.id,
765
+ disabled: e.suitability !== "ACCEPTABLE" || e.severeDefectCount !== 0,
766
+ children: [
767
+ _(e.inspectedAt),
768
+ " — ",
769
+ g(e.suitability),
770
+ " —",
771
+ " ",
772
+ g(e.cargoCategory)
773
+ ]
774
+ }, e.id))]
775
+ }),
776
+ /* @__PURE__ */ f(v, {
777
+ label: "Explicit hold resolution review",
778
+ name: "resolutionReview",
779
+ maxLength: 2e3
780
+ }),
781
+ /* @__PURE__ */ f("p", {
782
+ className: "text-sm",
783
+ children: "The server checks current qualification, resolved defects, inspection chronology and exact evidence. A newer conflicting inspection blocks release."
784
+ })
785
+ ] }),
786
+ x !== "revoke" && /* @__PURE__ */ f(s, {
787
+ value: j,
788
+ onChange: M
789
+ }),
790
+ x === "inspection" && /* @__PURE__ */ p("fieldset", {
791
+ className: "space-y-3 rounded-lg border p-4",
792
+ children: [
793
+ /* @__PURE__ */ f("legend", { children: "Identify examination evidence" }),
794
+ /* @__PURE__ */ f("p", {
795
+ className: "text-sm",
796
+ children: "Identify which selected version contains the CSC plate and which contains the examination record. A combined document can serve both roles. These are your recorded classifications; the software does not certify their contents."
797
+ }),
798
+ [["cscPlateVersionId", "CSC plate evidence"], ["examinationVersionId", "Examination document evidence"]].map(([e, t]) => /* @__PURE__ */ p("label", {
799
+ className: "block text-sm",
800
+ children: [t, /* @__PURE__ */ p("select", {
801
+ name: e,
802
+ "aria-label": t,
803
+ required: !0,
804
+ className: fe,
805
+ defaultValue: "",
806
+ children: [/* @__PURE__ */ f("option", {
807
+ value: "",
808
+ children: "Choose a selected evidence version"
809
+ }), j.map((e) => /* @__PURE__ */ f("option", {
810
+ value: e.versionId,
811
+ children: e.label
812
+ }, e.versionId))]
813
+ })]
814
+ }, e))
815
+ ]
816
+ }),
817
+ /* @__PURE__ */ f(n, {
818
+ type: "submit",
819
+ disabled: c.busy,
820
+ children: c.busy ? "Saving…" : pe[x]
821
+ })
822
+ ]
823
+ }, x)
824
+ ]
825
+ }),
826
+ /* @__PURE__ */ p("section", {
827
+ className: m,
828
+ children: [
829
+ /* @__PURE__ */ f("h2", {
830
+ className: "text-lg font-semibold",
831
+ children: "Qualifications"
832
+ }),
833
+ J.error && /* @__PURE__ */ p("p", {
834
+ role: "alert",
835
+ children: ["Qualification records are unavailable for your current access: ", J.error]
836
+ }),
837
+ /* @__PURE__ */ f("ul", {
838
+ className: "space-y-2",
839
+ children: J.data?.mtwContainerQualificationPage.items.map((e) => /* @__PURE__ */ p("li", {
840
+ className: "rounded border p-3 text-sm",
841
+ children: [
842
+ e.issuerName,
843
+ " — ",
844
+ e.credentialReference,
845
+ " — ",
846
+ g(e.status),
847
+ ". Valid",
848
+ " ",
849
+ _(e.validFrom),
850
+ " to ",
851
+ _(e.validUntil),
852
+ ". Scopes:",
853
+ " ",
854
+ e.scopes.map(g).join(", "),
855
+ ".",
856
+ " ",
857
+ e.subjectActorId === i?.id ? "Your qualification." : "Another inspector."
858
+ ]
859
+ }, e.id))
860
+ }),
861
+ /* @__PURE__ */ f(b, {
862
+ offset: Te,
863
+ setOffset: (e) => {
864
+ Ee(e), D("");
865
+ },
866
+ hasMore: J.data?.mtwContainerQualificationPage.hasMore,
867
+ loading: J.loading,
868
+ label: "qualifications"
869
+ })
870
+ ]
871
+ }),
872
+ /* @__PURE__ */ p("section", {
873
+ className: m,
874
+ children: [/* @__PURE__ */ f("h2", {
875
+ className: "text-lg font-semibold",
876
+ children: "Inspect repair history"
877
+ }), /* @__PURE__ */ p(y, {
878
+ label: "History hold",
879
+ value: W,
880
+ onChange: (e) => {
881
+ Oe(e), U(0);
882
+ },
883
+ children: [/* @__PURE__ */ f("option", {
884
+ value: "",
885
+ children: "Choose a recorded hold"
886
+ }), q.data?.mtwContainerHoldPage.items.map((e) => /* @__PURE__ */ p("option", {
887
+ value: e.id,
888
+ children: [
889
+ g(e.status),
890
+ " — ",
891
+ e.reason,
892
+ " — ",
893
+ _(e.heldAt)
894
+ ]
895
+ }, e.id))]
896
+ })]
897
+ }),
898
+ W && /* @__PURE__ */ p("section", {
899
+ className: m,
900
+ children: [
901
+ /* @__PURE__ */ f("h2", {
902
+ className: "text-lg font-semibold",
903
+ children: "Repair history for selected hold"
904
+ }),
905
+ Q.error && /* @__PURE__ */ f("p", {
906
+ role: "alert",
907
+ children: Q.error
908
+ }),
909
+ /* @__PURE__ */ f("ul", {
910
+ className: "space-y-2",
911
+ children: Q.data?.mtwContainerRepairPage.items.map((e) => /* @__PURE__ */ p("li", {
912
+ className: "rounded border p-3 text-sm",
913
+ children: [
914
+ _(e.completedAt),
915
+ " — ",
916
+ e.workDescription,
917
+ ". Evidence: ",
918
+ e.evidence.length,
919
+ " ",
920
+ "versions."
921
+ ]
922
+ }, e.id))
923
+ }),
924
+ /* @__PURE__ */ f(b, {
925
+ offset: De,
926
+ setOffset: U,
927
+ hasMore: Q.data?.mtwContainerRepairPage.hasMore,
928
+ loading: Q.loading,
929
+ label: "repairs"
930
+ })
931
+ ]
932
+ }),
933
+ /* @__PURE__ */ p("section", {
934
+ className: m,
935
+ children: [
936
+ /* @__PURE__ */ f("h2", {
937
+ className: "text-lg font-semibold",
938
+ children: "Release decision history"
939
+ }),
940
+ $.error && /* @__PURE__ */ f("p", {
941
+ role: "alert",
942
+ children: $.error
943
+ }),
944
+ /* @__PURE__ */ f("ul", {
945
+ className: "space-y-2",
946
+ children: $.data?.mtwContainerReleaseDecisionPage.items.map((e) => /* @__PURE__ */ p("li", {
947
+ className: "rounded border p-3 text-sm",
948
+ children: [
949
+ _(e.decidedAt),
950
+ " — ",
951
+ e.resolutionReview,
952
+ ". Evidence: ",
953
+ e.evidence.length,
954
+ " ",
955
+ "versions."
956
+ ]
957
+ }, e.id))
958
+ }),
959
+ /* @__PURE__ */ f(b, {
960
+ offset: ke,
961
+ setOffset: Ae,
962
+ hasMore: $.data?.mtwContainerReleaseDecisionPage.hasMore,
963
+ loading: $.loading,
964
+ label: "decisions"
965
+ })
966
+ ]
967
+ })
968
+ ]
969
+ });
970
+ }
971
+ //#endregion
972
+ export { x as default };