@flowselections/logistiek-engine 1.0.34 → 1.0.89

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 (244) hide show
  1. package/dist-lib/components/AfrondWachtrijCard.d.ts +2 -0
  2. package/dist-lib/components/AfrondWachtrijCard.d.ts.map +1 -0
  3. package/dist-lib/components/AfrondWachtrijCard.js +27 -0
  4. package/dist-lib/components/BeladingsafwijkingenCard.d.ts +2 -0
  5. package/dist-lib/components/BeladingsafwijkingenCard.d.ts.map +1 -0
  6. package/dist-lib/components/BeladingsafwijkingenCard.js +44 -0
  7. package/dist-lib/components/FlowCanvas.d.ts +34 -0
  8. package/dist-lib/components/FlowCanvas.d.ts.map +1 -0
  9. package/dist-lib/components/FlowCanvas.js +490 -0
  10. package/dist-lib/components/FlowOrders.d.ts +8 -0
  11. package/dist-lib/components/FlowOrders.d.ts.map +1 -0
  12. package/dist-lib/components/FlowOrders.js +171 -0
  13. package/dist-lib/components/FlowPage.d.ts +2 -0
  14. package/dist-lib/components/FlowPage.d.ts.map +1 -0
  15. package/dist-lib/components/FlowPage.js +310 -0
  16. package/dist-lib/components/GeblokkeerdeOrdersCard.d.ts.map +1 -1
  17. package/dist-lib/components/GeblokkeerdeOrdersCard.js +21 -2
  18. package/dist-lib/components/InklapbaarVenster.d.ts +9 -0
  19. package/dist-lib/components/InklapbaarVenster.d.ts.map +1 -0
  20. package/dist-lib/components/InklapbaarVenster.js +10 -0
  21. package/dist-lib/components/KardekkingCard.d.ts +2 -0
  22. package/dist-lib/components/KardekkingCard.d.ts.map +1 -0
  23. package/dist-lib/components/KardekkingCard.js +29 -0
  24. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  25. package/dist-lib/components/LogistiekEnginePage.js +15 -3
  26. package/dist-lib/components/LogistiekEngineQueuePage.d.ts +2 -0
  27. package/dist-lib/components/LogistiekEngineQueuePage.d.ts.map +1 -0
  28. package/dist-lib/components/LogistiekEngineQueuePage.js +13 -0
  29. package/dist-lib/components/NodeTracePanel.d.ts +14 -0
  30. package/dist-lib/components/NodeTracePanel.d.ts.map +1 -0
  31. package/dist-lib/components/NodeTracePanel.js +46 -0
  32. package/dist-lib/components/OrderJourneyBar.d.ts +9 -0
  33. package/dist-lib/components/OrderJourneyBar.d.ts.map +1 -0
  34. package/dist-lib/components/OrderJourneyBar.js +26 -0
  35. package/dist-lib/components/OrderLogboek.d.ts +10 -0
  36. package/dist-lib/components/OrderLogboek.d.ts.map +1 -0
  37. package/dist-lib/components/OrderLogboek.js +92 -0
  38. package/dist-lib/components/OrderStopBanner.d.ts +12 -0
  39. package/dist-lib/components/OrderStopBanner.d.ts.map +1 -0
  40. package/dist-lib/components/OrderStopBanner.js +36 -0
  41. package/dist-lib/components/OrderTraceDetails.d.ts +22 -0
  42. package/dist-lib/components/OrderTraceDetails.d.ts.map +1 -0
  43. package/dist-lib/components/OrderTraceDetails.js +88 -0
  44. package/dist-lib/components/PlanWachtrijPage.d.ts +2 -0
  45. package/dist-lib/components/PlanWachtrijPage.d.ts.map +1 -0
  46. package/dist-lib/components/PlanWachtrijPage.js +99 -0
  47. package/dist-lib/components/PlannerDiffCard.d.ts +2 -0
  48. package/dist-lib/components/PlannerDiffCard.d.ts.map +1 -0
  49. package/dist-lib/components/PlannerDiffCard.js +25 -0
  50. package/dist-lib/components/RegiePage.d.ts.map +1 -1
  51. package/dist-lib/components/RegiePage.js +28 -78
  52. package/dist-lib/components/TaakGezondheidCard.d.ts +2 -0
  53. package/dist-lib/components/TaakGezondheidCard.d.ts.map +1 -0
  54. package/dist-lib/components/TaakGezondheidCard.js +31 -0
  55. package/dist-lib/components/WerktijdenCard.d.ts +2 -0
  56. package/dist-lib/components/WerktijdenCard.d.ts.map +1 -0
  57. package/dist-lib/components/WerktijdenCard.js +37 -0
  58. package/dist-lib/components/WerkwijzeHerindelingCard.d.ts.map +1 -1
  59. package/dist-lib/components/WerkwijzeHerindelingCard.js +100 -6
  60. package/dist-lib/hooks/useAfrondWachtrij.d.ts +28 -0
  61. package/dist-lib/hooks/useAfrondWachtrij.d.ts.map +1 -0
  62. package/dist-lib/hooks/useAfrondWachtrij.js +88 -0
  63. package/dist-lib/hooks/useBeladingsafwijkingen.d.ts +39 -0
  64. package/dist-lib/hooks/useBeladingsafwijkingen.d.ts.map +1 -0
  65. package/dist-lib/hooks/useBeladingsafwijkingen.js +119 -0
  66. package/dist-lib/hooks/useGeblokkeerdeOrders.d.ts +7 -0
  67. package/dist-lib/hooks/useGeblokkeerdeOrders.d.ts.map +1 -1
  68. package/dist-lib/hooks/useGeblokkeerdeOrders.js +28 -2
  69. package/dist-lib/hooks/useLogisticsTrace.d.ts +78 -0
  70. package/dist-lib/hooks/useLogisticsTrace.d.ts.map +1 -0
  71. package/dist-lib/hooks/useLogisticsTrace.js +152 -0
  72. package/dist-lib/hooks/useOrderNodeTrace.d.ts +11 -0
  73. package/dist-lib/hooks/useOrderNodeTrace.d.ts.map +1 -0
  74. package/dist-lib/hooks/useOrderNodeTrace.js +26 -0
  75. package/dist-lib/hooks/useOrderTrace.d.ts +74 -0
  76. package/dist-lib/hooks/useOrderTrace.d.ts.map +1 -0
  77. package/dist-lib/hooks/useOrderTrace.js +134 -0
  78. package/dist-lib/hooks/useOrderVersies.d.ts +47 -0
  79. package/dist-lib/hooks/useOrderVersies.d.ts.map +1 -0
  80. package/dist-lib/hooks/useOrderVersies.js +194 -0
  81. package/dist-lib/hooks/usePlanWachtrij.d.ts +33 -0
  82. package/dist-lib/hooks/usePlanWachtrij.d.ts.map +1 -0
  83. package/dist-lib/hooks/usePlanWachtrij.js +104 -0
  84. package/dist-lib/hooks/useRecalcJob.js +1 -1
  85. package/dist-lib/hooks/useRuleEngine.d.ts +1 -0
  86. package/dist-lib/hooks/useRuleEngine.d.ts.map +1 -1
  87. package/dist-lib/hooks/useRuleEngine.js +1 -0
  88. package/dist-lib/hooks/useShippingNoteDiagnose.d.ts +20 -0
  89. package/dist-lib/hooks/useShippingNoteDiagnose.d.ts.map +1 -0
  90. package/dist-lib/hooks/useShippingNoteDiagnose.js +52 -0
  91. package/dist-lib/hooks/useShippingNoteStatus.d.ts +29 -0
  92. package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -0
  93. package/dist-lib/hooks/useShippingNoteStatus.js +107 -0
  94. package/dist-lib/hooks/useTaakGezondheid.d.ts +16 -0
  95. package/dist-lib/hooks/useTaakGezondheid.d.ts.map +1 -0
  96. package/dist-lib/hooks/useTaakGezondheid.js +43 -0
  97. package/dist-lib/hooks/useWerktijden.d.ts +33 -0
  98. package/dist-lib/hooks/useWerktijden.d.ts.map +1 -0
  99. package/dist-lib/hooks/useWerktijden.js +88 -0
  100. package/dist-lib/hooks/useWerkwijzeStatus.d.ts +12 -1
  101. package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -1
  102. package/dist-lib/hooks/useWerkwijzeStatus.js +61 -5
  103. package/dist-lib/index.d.ts +23 -0
  104. package/dist-lib/index.d.ts.map +1 -1
  105. package/dist-lib/index.js +23 -0
  106. package/dist-lib/integrations/supabase/auth-middleware.d.ts +4993 -459
  107. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  108. package/dist-lib/integrations/supabase/client.server.d.ts +4993 -459
  109. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  110. package/dist-lib/integrations/supabase/client.server.js +1 -1
  111. package/dist-lib/integrations/supabase/moduleClient.d.ts +4993 -459
  112. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  113. package/dist-lib/integrations/supabase/previewAuthStorage.d.ts +1 -1
  114. package/dist-lib/integrations/supabase/previewAuthStorage.d.ts.map +1 -1
  115. package/dist-lib/integrations/supabase/previewAuthStorage.js +8 -1
  116. package/dist-lib/integrations/supabase/types.d.ts +5022 -432
  117. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  118. package/dist-lib/lib/attachAuthToken.js +1 -1
  119. package/dist-lib/lib/bufferDecision.test.d.ts +2 -0
  120. package/dist-lib/lib/bufferDecision.test.d.ts.map +1 -0
  121. package/dist-lib/lib/bufferDecision.test.js +104 -0
  122. package/dist-lib/lib/cartCoverage.functions.d.ts +30820 -0
  123. package/dist-lib/lib/cartCoverage.functions.d.ts.map +1 -0
  124. package/dist-lib/lib/cartCoverage.functions.js +20 -0
  125. package/dist-lib/lib/cartPlanRequests.server.d.ts +1 -1
  126. package/dist-lib/lib/cartPlanRequests.server.d.ts.map +1 -1
  127. package/dist-lib/lib/cartPlanRequests.server.js +49 -8
  128. package/dist-lib/lib/floridayDocuments.functions.d.ts +13623 -21
  129. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  130. package/dist-lib/lib/floridayDocuments.functions.js +5 -5
  131. package/dist-lib/lib/floridayDocuments.server.d.ts +14 -0
  132. package/dist-lib/lib/floridayDocuments.server.d.ts.map +1 -1
  133. package/dist-lib/lib/floridayDocuments.server.js +58 -0
  134. package/dist-lib/lib/floridayGuard.server.d.ts +1 -1
  135. package/dist-lib/lib/floridayGuard.server.d.ts.map +1 -1
  136. package/dist-lib/lib/floridayGuard.server.js +6 -3
  137. package/dist-lib/lib/floridayPush.functions.d.ts +4993 -459
  138. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  139. package/dist-lib/lib/floridayPush.functions.js +3 -3
  140. package/dist-lib/lib/flowGraph.d.ts +43 -0
  141. package/dist-lib/lib/flowGraph.d.ts.map +1 -0
  142. package/dist-lib/lib/flowGraph.js +153 -0
  143. package/dist-lib/lib/flowJourney.d.ts +40 -0
  144. package/dist-lib/lib/flowJourney.d.ts.map +1 -0
  145. package/dist-lib/lib/flowJourney.js +156 -0
  146. package/dist-lib/lib/flowNodes.d.ts +26 -0
  147. package/dist-lib/lib/flowNodes.d.ts.map +1 -0
  148. package/dist-lib/lib/flowNodes.js +64 -0
  149. package/dist-lib/lib/flowRoute.d.ts +117 -0
  150. package/dist-lib/lib/flowRoute.d.ts.map +1 -0
  151. package/dist-lib/lib/flowRoute.js +583 -0
  152. package/dist-lib/lib/flowTree.d.ts +149 -0
  153. package/dist-lib/lib/flowTree.d.ts.map +1 -0
  154. package/dist-lib/lib/flowTree.js +908 -0
  155. package/dist-lib/lib/foutTekst.d.ts +4 -0
  156. package/dist-lib/lib/foutTekst.d.ts.map +1 -0
  157. package/dist-lib/lib/foutTekst.js +43 -0
  158. package/dist-lib/lib/handlers/index.d.ts +1 -0
  159. package/dist-lib/lib/handlers/index.d.ts.map +1 -1
  160. package/dist-lib/lib/handlers/index.js +1 -0
  161. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts +3 -0
  162. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts.map +1 -0
  163. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.js +100 -0
  164. package/dist-lib/lib/handlers/logistics-tick.server.d.ts +2 -0
  165. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  166. package/dist-lib/lib/handlers/logistics-tick.server.js +153 -2
  167. package/dist-lib/lib/handlers/logistics-tick.test.d.ts +2 -0
  168. package/dist-lib/lib/handlers/logistics-tick.test.d.ts.map +1 -0
  169. package/dist-lib/lib/handlers/logistics-tick.test.js +63 -0
  170. package/dist-lib/lib/loadCarrierPlanner.d.ts +2 -0
  171. package/dist-lib/lib/loadCarrierPlanner.d.ts.map +1 -1
  172. package/dist-lib/lib/loadCarrierPlanner.js +18 -0
  173. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +22705 -35
  174. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  175. package/dist-lib/lib/loadCarrierPlanning.functions.js +7 -7
  176. package/dist-lib/lib/loadCarrierPlanning.server.d.ts +33 -12
  177. package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
  178. package/dist-lib/lib/loadCarrierPlanning.server.js +534 -228
  179. package/dist-lib/lib/logisticsPlanner.d.ts.map +1 -1
  180. package/dist-lib/lib/logisticsPlanner.js +14 -2
  181. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +9082 -14
  182. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  183. package/dist-lib/lib/logisticsRecalcJob.functions.js +4 -4
  184. package/dist-lib/lib/logisticsRecalcJob.server.d.ts.map +1 -1
  185. package/dist-lib/lib/logisticsRecalcJob.server.js +17 -2
  186. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +4993 -459
  187. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  188. package/dist-lib/lib/logisticsRecalculate.functions.js +2 -2
  189. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  190. package/dist-lib/lib/modulePrompts.js +893 -0
  191. package/dist-lib/lib/nodeTrace.d.ts +65 -0
  192. package/dist-lib/lib/nodeTrace.d.ts.map +1 -0
  193. package/dist-lib/lib/nodeTrace.js +182 -0
  194. package/dist-lib/lib/pickQueueCleanup.server.d.ts +14 -0
  195. package/dist-lib/lib/pickQueueCleanup.server.d.ts.map +1 -0
  196. package/dist-lib/lib/pickQueueCleanup.server.js +80 -0
  197. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  198. package/dist-lib/lib/planQueue.server.js +164 -3
  199. package/dist-lib/lib/plannerDiff.d.ts +37 -0
  200. package/dist-lib/lib/plannerDiff.d.ts.map +1 -0
  201. package/dist-lib/lib/plannerDiff.functions.d.ts +30821 -0
  202. package/dist-lib/lib/plannerDiff.functions.d.ts.map +1 -0
  203. package/dist-lib/lib/plannerDiff.functions.js +21 -0
  204. package/dist-lib/lib/plannerDiff.js +74 -0
  205. package/dist-lib/lib/plannerDiff.server.d.ts +5 -0
  206. package/dist-lib/lib/plannerDiff.server.d.ts.map +1 -0
  207. package/dist-lib/lib/plannerDiff.server.js +60 -0
  208. package/dist-lib/lib/plannerDiff.test.d.ts +2 -0
  209. package/dist-lib/lib/plannerDiff.test.d.ts.map +1 -0
  210. package/dist-lib/lib/plannerDiff.test.js +41 -0
  211. package/dist-lib/lib/resolveBuffer.test.d.ts +2 -0
  212. package/dist-lib/lib/resolveBuffer.test.d.ts.map +1 -0
  213. package/dist-lib/lib/resolveBuffer.test.js +38 -0
  214. package/dist-lib/lib/ruleEngineImpact.d.ts.map +1 -1
  215. package/dist-lib/lib/ruleEngineImpact.js +11 -4
  216. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  217. package/dist-lib/lib/ruleEngineSchema.js +102 -6
  218. package/dist-lib/lib/ruleEngineWizard.d.ts.map +1 -1
  219. package/dist-lib/lib/ruleEngineWizard.js +3 -1
  220. package/dist-lib/lib/shippingNoteQueue.server.d.ts +18 -0
  221. package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -0
  222. package/dist-lib/lib/shippingNoteQueue.server.js +304 -0
  223. package/dist-lib/lib/stopReden.d.ts +43 -0
  224. package/dist-lib/lib/stopReden.d.ts.map +1 -0
  225. package/dist-lib/lib/stopReden.js +197 -0
  226. package/dist-lib/lib/taskCounts.d.ts +2 -0
  227. package/dist-lib/lib/taskCounts.d.ts.map +1 -0
  228. package/dist-lib/lib/taskCounts.js +15 -0
  229. package/dist-lib/lib/taskCounts.test.d.ts +2 -0
  230. package/dist-lib/lib/taskCounts.test.d.ts.map +1 -0
  231. package/dist-lib/lib/taskCounts.test.js +12 -0
  232. package/dist-lib/lib/trace.server.d.ts +75 -0
  233. package/dist-lib/lib/trace.server.d.ts.map +1 -0
  234. package/dist-lib/lib/trace.server.js +78 -0
  235. package/dist-lib/lib/vakUitleg.d.ts +19 -0
  236. package/dist-lib/lib/vakUitleg.d.ts.map +1 -0
  237. package/dist-lib/lib/vakUitleg.js +133 -0
  238. package/package.json +158 -131
  239. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts +0 -2
  240. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts.map +0 -1
  241. package/dist-lib/components/rule-engine/FloridayConnectionBanner.js +0 -41
  242. package/dist-lib/integrations/supabase/client.d.ts +0 -20293
  243. package/dist-lib/integrations/supabase/client.d.ts.map +0 -1
  244. package/dist-lib/integrations/supabase/client.js +0 -13
@@ -0,0 +1,2 @@
1
+ export declare function AfrondWachtrijCard(): import("react").JSX.Element;
2
+ //# sourceMappingURL=AfrondWachtrijCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AfrondWachtrijCard.d.ts","sourceRoot":"","sources":["../../src/components/AfrondWachtrijCard.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,kBAAkB,gCAqFjC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // ============================================================================
3
+ // src/components/AfrondWachtrijCard.tsx — zichtbaarheid op de afronding
4
+ // ============================================================================
5
+ // Toont wat er na de eindcontrole nog moet worden afgerond, met waarschuwing
6
+ // wanneer iets te lang wacht. Alleen lezen, behalve de knoppen.
7
+ // ============================================================================
8
+ import { AlertTriangle, CheckCircle2, RefreshCw } from "lucide-react";
9
+ import { useAfrondWachtrij } from "../hooks/useAfrondWachtrij";
10
+ function duur(seconden) {
11
+ if (seconden < 60)
12
+ return `${seconden} sec`;
13
+ if (seconden < 3600)
14
+ return `${Math.round(seconden / 60)} min`;
15
+ return `${Math.round(seconden / 360) / 10} uur`;
16
+ }
17
+ export function AfrondWachtrijCard() {
18
+ const { stand, regels, laden, fout, herlaad, opnieuw, naloop } = useAfrondWachtrij();
19
+ const traag = stand.oudsteWachttijdSeconden > 300;
20
+ const alarm = traag || stand.mislukt > 0;
21
+ return (_jsxs("div", { className: "rounded-lg border bg-card p-4 text-card-foreground", children: [_jsxs("div", { className: "mb-3 flex items-center justify-between gap-2", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-semibold", children: "Afronding na controle" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Orders waarvan de karren zijn afgemeld en die nog moeten worden afgerond." })] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => void naloop(), className: "rounded-md border px-3 py-1.5 text-sm hover:bg-accent", children: "Naloop uitvoeren" }), _jsx("button", { type: "button", onClick: () => void herlaad(), className: "rounded-md border px-3 py-1.5 text-sm hover:bg-accent", "aria-label": "Vernieuwen", children: _jsx(RefreshCw, { className: "h-4 w-4" }) })] })] }), fout ? _jsx("p", { className: "mb-3 text-sm text-destructive", children: fout }) : null, _jsxs("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-4", children: [_jsx(Cijfer, { label: "Wachtend", waarde: stand.wachtend }), _jsx(Cijfer, { label: "Bezig", waarde: stand.bezig }), _jsx(Cijfer, { label: "Mislukt", waarde: stand.mislukt, nadruk: stand.mislukt > 0 }), _jsx(Cijfer, { label: "Oudste wacht", tekst: duur(stand.oudsteWachttijdSeconden), nadruk: traag })] }), !laden && !alarm && stand.wachtend === 0 && stand.bezig === 0 ? (_jsxs("p", { className: "mt-3 flex items-center gap-2 text-sm text-muted-foreground", children: [_jsx(CheckCircle2, { className: "h-4 w-4" }), " Alles is afgerond."] })) : null, alarm ? (_jsxs("p", { className: "mt-3 flex items-start gap-2 text-sm text-destructive", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-4 w-4 shrink-0" }), stand.mislukt > 0
22
+ ? "Er zijn orders die niet konden worden afgerond. Bekijk de reden hieronder en probeer opnieuw."
23
+ : "Er wacht een order langer dan vijf minuten. Controleer of de achtergrondtaak draait."] })) : null, regels.length > 0 ? (_jsx("ul", { className: "mt-4 space-y-2", children: regels.map((r) => (_jsxs("li", { className: "rounded-md border p-3 text-sm", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("span", { className: "font-medium", children: r.orderId }), _jsxs("span", { className: "text-muted-foreground", children: [r.status, " \u00B7 poging ", r.pogingen, r.maxPogingen ? `/${r.maxPogingen}` : ""] })] }), r.reden ? _jsx("p", { className: "text-muted-foreground", children: r.reden }) : null, r.fout ? _jsx("p", { className: "mt-1 text-destructive", children: r.fout }) : null, r.status === "failed" ? (_jsx("button", { type: "button", onClick: () => void opnieuw(r.orderId), className: "mt-2 rounded-md border px-2 py-1 text-xs hover:bg-accent", children: "Opnieuw proberen" })) : null] }, r.orderId))) })) : null] }));
24
+ }
25
+ function Cijfer({ label, waarde, tekst, nadruk, }) {
26
+ return (_jsxs("div", { className: "rounded-md border p-3", children: [_jsx("p", { className: "text-xs text-muted-foreground", children: label }), _jsx("p", { className: `text-lg font-semibold ${nadruk ? "text-destructive" : ""}`, children: tekst ?? waarde ?? 0 })] }));
27
+ }
@@ -0,0 +1,2 @@
1
+ export declare function BeladingsafwijkingenCard(): import("react").JSX.Element;
2
+ //# sourceMappingURL=BeladingsafwijkingenCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BeladingsafwijkingenCard.d.ts","sourceRoot":"","sources":["../../src/components/BeladingsafwijkingenCard.tsx"],"names":[],"mappings":"AA0FA,wBAAgB,wBAAwB,gCA8EvC"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ // ============================================================================
3
+ // src/components/BeladingsafwijkingenCard.tsx — belading naast de Floriday-stand
4
+ // ============================================================================
5
+ // Toont per gevonden afwijking welk product of welke order het betreft, wat wij
6
+ // hebben opgeslagen, wat Floriday nu zegt en sinds wanneer het verschil bestaat.
7
+ // Wat veilig kon worden bijgewerkt is al automatisch rechtgezet; de rest staat
8
+ // hier als "beoordelen".
9
+ // GEEN <Header /> hier — die levert de shell.
10
+ // ============================================================================
11
+ import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
12
+ import { Boxes, Check, RefreshCw } from "lucide-react";
13
+ import { useBeladingsafwijkingen, } from "../hooks/useBeladingsafwijkingen";
14
+ function beladingTekst(b) {
15
+ const deel = [
16
+ b.piecesPerPackage == null ? "?" : String(b.piecesPerPackage),
17
+ b.packagesPerLayer == null ? "?" : String(b.packagesPerLayer),
18
+ b.layersPerLoadCarrier == null ? "?" : String(b.layersPerLoadCarrier),
19
+ ];
20
+ const basis = `${deel[0]} per fust · ${deel[1]} fusten per laag · ${deel[2]} lagen per kar`;
21
+ return b.loadCarrier ? `${basis} (${b.loadCarrier.toLowerCase().replace(/_/g, " ")})` : basis;
22
+ }
23
+ function sindsTekst(sinds) {
24
+ if (!sinds)
25
+ return "onbekend";
26
+ const ms = Date.now() - new Date(sinds).getTime();
27
+ const minuten = Math.max(0, Math.round(ms / 60000));
28
+ if (minuten < 60)
29
+ return `${minuten} min`;
30
+ const uren = Math.round(minuten / 60);
31
+ if (uren < 48)
32
+ return `${uren} uur`;
33
+ return `${Math.round(uren / 24)} dagen`;
34
+ }
35
+ function Regel({ a, onAfsluiten, }) {
36
+ return (_jsxs("div", { className: "space-y-2 rounded-lg border p-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(Badge, { variant: a.beoordelen ? "destructive" : "secondary", children: a.beoordelen ? "Beoordelen" : "Wordt bijgewerkt" }), _jsxs("span", { className: "text-sm font-medium", children: [a.soort === "product" ? "Product" : "Order", " ", a.orderNummer ?? a.productNaam ?? "onbekend"] }), a.orderNummer && a.productNaam ? (_jsx("span", { className: "text-muted-foreground text-xs", children: a.productNaam })) : null, _jsxs("span", { className: "text-muted-foreground ml-auto text-xs", children: ["sinds ", sindsTekst(a.sinds)] })] }), _jsxs("div", { className: "grid gap-2 sm:grid-cols-2", children: [_jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Bij ons opgeslagen" }), _jsx("div", { className: "text-sm tabular-nums", children: beladingTekst(a.lokaal) })] }), _jsxs("div", { className: "rounded-md border p-2", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Floriday nu" }), _jsx("div", { className: "text-sm tabular-nums", children: beladingTekst(a.floriday) })] })] }), a.reden ? _jsx("p", { className: "text-muted-foreground text-xs", children: a.reden }) : null, a.beoordelen ? (_jsxs(Button, { variant: "outline", size: "sm", onClick: () => onAfsluiten(a.id), children: [_jsx(Check, { className: "mr-2 h-4 w-4" }), "Beoordeeld, afsluiten"] })) : null] }));
37
+ }
38
+ export function BeladingsafwijkingenCard() {
39
+ const { stand, afwijkingen, laden, bezig, fout, nuControleren, afsluiten } = useBeladingsafwijkingen();
40
+ const lijst = Array.isArray(afwijkingen) ? afwijkingen : [];
41
+ return (_jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Boxes, { className: "h-5 w-5 text-primary" }), "Beladingsafwijkingen"] }), _jsx(CardDescription, { children: "Elk uur vergelijken we de opgeslagen belading met de laatste Floriday-gegevens. Wat veilig kan, wordt vanzelf bijgewerkt; de rest wacht op uw beoordeling." })] }), _jsx(Button, { variant: "outline", size: "sm", onClick: () => void nuControleren(), disabled: bezig || laden, children: _jsx(RefreshCw, { className: `h-4 w-4 ${bezig ? "animate-spin" : ""}` }) })] }), _jsxs(CardContent, { className: "space-y-4", children: [fout ? _jsx("p", { className: "text-destructive text-sm", children: fout }) : null, laden && lijst.length === 0 ? (_jsx(Skeleton, { className: "h-24 w-full" })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4", children: [_jsxs("div", { className: "rounded-lg border p-3", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Openstaand" }), _jsx("div", { className: "text-2xl font-semibold tabular-nums", children: stand.openTotaal })] }), _jsxs("div", { className: "rounded-lg border p-3", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Mens moet kijken" }), _jsx("div", { className: "text-2xl font-semibold tabular-nums", children: stand.beoordelen })] }), _jsxs("div", { className: "rounded-lg border p-3", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Betrokken orders" }), _jsx("div", { className: "text-2xl font-semibold tabular-nums", children: stand.orders })] }), _jsxs("div", { className: "rounded-lg border p-3", children: [_jsx("div", { className: "text-muted-foreground text-xs", children: "Productgegevens" }), _jsx("div", { className: "text-2xl font-semibold tabular-nums", children: stand.producten })] })] }), lijst.length === 0 ? (_jsx("p", { className: "text-muted-foreground text-sm", children: "Geen verschillen gevonden. Onze belading komt overeen met Floriday." })) : (_jsx("div", { className: "space-y-3", children: lijst.map((a) => (_jsx(Regel, { a: a, onAfsluiten: (id) => void afsluiten(id) }, a.id))) })), _jsxs("p", { className: "text-muted-foreground text-xs", children: ["Laatste meting: ", stand.laatstGemeten ? sindsTekst(stand.laatstGemeten) + " geleden" : "nog niet", stand.laatstHersteld
42
+ ? ` · laatst automatisch bijgewerkt ${sindsTekst(stand.laatstHersteld)} geleden`
43
+ : "", ". Regels die handmatig zijn vastgezet worden nooit automatisch gewijzigd."] })] }))] })] }));
44
+ }
@@ -0,0 +1,34 @@
1
+ import "@xyflow/react/dist/style.css";
2
+ import { type FlowTree } from "../lib/flowTree";
3
+ import type { RouteMarker } from "../lib/flowRoute";
4
+ import type { StopReden } from "../lib/stopReden";
5
+ import type { NodeTraceGroep } from "../lib/nodeTrace";
6
+ import type { RuleEngineSettings } from "../lib/ruleEngineSchema";
7
+ export type { RouteMarker };
8
+ interface Props {
9
+ tree: FlowTree;
10
+ selectedStepId: string | null;
11
+ /** Alle waarden van de werkwijze, zodat een vakje zijn eigen velden kan tonen. */
12
+ settings: RuleEngineSettings;
13
+ /** Markeringen per knoop-id (vastgelopen / bezig / klaar) van een gekozen orderversie. */
14
+ markers?: Map<string, RouteMarker>;
15
+ /** Vakjes die vastlopen, met de reden erbij. Wordt als foutmelding getoond. */
16
+ problemen?: Map<string, StopReden>;
17
+ /** Wat de Engine per vakje voor de gekozen order heeft vastgelegd. */
18
+ nodeTrace?: Map<string, NodeTraceGroep> | null;
19
+ /** Tekst boven de kaart als een orderroute getoond wordt. */
20
+ routeLabel?: string | null;
21
+ /** Korte samenvatting van de gelopen route (waar hij nu staat of vastliep). */
22
+ routeSummary?: string | null;
23
+ /** Vakje waarvan het tracepaneel openstaat. */
24
+ traceNodeId?: string | null;
25
+ onTraceNode?: (nodeId: string | null) => void;
26
+ onClearRoute?: () => void;
27
+ onSelectStep: (stepId: string) => void;
28
+ onChangeChoice: (storeId: string, fieldKey: string, value: unknown) => void;
29
+ /** Aangeklikt samenkomstpunt (ruitje) om te beheren. */
30
+ mergeId?: string | null;
31
+ onSelectMerge?: (mergeId: string | null) => void;
32
+ }
33
+ export declare function FlowCanvas(props: Props): import("react").JSX.Element;
34
+ //# sourceMappingURL=FlowCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlowCanvas.d.ts","sourceRoot":"","sources":["../../src/components/FlowCanvas.tsx"],"names":[],"mappings":"AAiDA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAA6B,KAAK,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAOlE,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,UAAU,KAAK;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACnC,sEAAsE;IACtE,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;IAC/C,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5E,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAClD;AAymCD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,+BAMtC"}