@flowselections/logistiek-engine 1.0.225 → 1.0.229

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 (38) hide show
  1. package/db/schema/logistiek-engine.sql +757 -0
  2. package/dist-lib/components/BeheerPage.d.ts.map +1 -1
  3. package/dist-lib/components/BeheerPage.js +2 -0
  4. package/dist-lib/components/FlowPage.d.ts.map +1 -1
  5. package/dist-lib/components/FlowPage.js +2 -0
  6. package/dist-lib/components/LadingdragersPage.d.ts.map +1 -1
  7. package/dist-lib/components/LadingdragersPage.js +2 -0
  8. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  9. package/dist-lib/components/LogistiekEnginePage.js +2 -1
  10. package/dist-lib/components/LogistiekEngineQueuePage.d.ts.map +1 -1
  11. package/dist-lib/components/LogistiekEngineQueuePage.js +2 -0
  12. package/dist-lib/components/PlanWachtrijPage.d.ts.map +1 -1
  13. package/dist-lib/components/PlanWachtrijPage.js +2 -0
  14. package/dist-lib/components/ProefindelingPage.d.ts.map +1 -1
  15. package/dist-lib/components/ProefindelingPage.js +2 -0
  16. package/dist-lib/components/RegiePage.d.ts.map +1 -1
  17. package/dist-lib/components/RegiePage.js +2 -0
  18. package/dist-lib/components/RuleEnginePage.d.ts.map +1 -1
  19. package/dist-lib/components/RuleEnginePage.js +2 -0
  20. package/dist-lib/components/StandaardgegevensCard.d.ts +2 -0
  21. package/dist-lib/components/StandaardgegevensCard.d.ts.map +1 -0
  22. package/dist-lib/components/StandaardgegevensCard.js +42 -0
  23. package/dist-lib/hooks/useEngineZelfherstel.d.ts +22 -0
  24. package/dist-lib/hooks/useEngineZelfherstel.d.ts.map +1 -0
  25. package/dist-lib/hooks/useEngineZelfherstel.js +61 -0
  26. package/dist-lib/index.d.ts +2 -0
  27. package/dist-lib/index.d.ts.map +1 -1
  28. package/dist-lib/index.js +2 -0
  29. package/dist-lib/integrations/supabase/types.d.ts +701 -0
  30. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  31. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  32. package/dist-lib/lib/handlers/logistics-tick.server.js +11 -1
  33. package/dist-lib/lib/moduleVersion.d.ts +1 -1
  34. package/dist-lib/lib/moduleVersion.js +1 -1
  35. package/dist-lib/lib/planQueue.server.d.ts +4 -1
  36. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  37. package/dist-lib/lib/planQueue.server.js +5 -1
  38. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"AAgKA,wBAAgB,UAAU,gCAwBzB"}
1
+ {"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"AAiKA,wBAAgB,UAAU,gCAyBzB"}
@@ -25,6 +25,7 @@ import { DataGereedheidCard } from "./DataGereedheidCard.js";
25
25
  import { StartlijstCard } from "./StartlijstCard.js";
26
26
  import { MinuutrondeStartMelding } from "./MinuutrondeStartMelding.js";
27
27
  import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
28
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
28
29
  function HerindelenBeheer() {
29
30
  const [datum, setDatum] = useState("");
30
31
  const [ookBevroren, setOokBevroren] = useState(false);
@@ -82,5 +83,6 @@ function HerindelenBeheer() {
82
83
  : `${voor?.geprintOfGepickt ?? 0} order(s) die al geprint of gepickt zijn, blijven ongemoeid.` })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Annuleren" }), _jsxs(AlertDialogAction, { onClick: () => void voerUit(), disabled: (voor?.aantal ?? 0) === 0, children: ["Ja, ", voor?.aantal ?? 0, " order(s) opnieuw indelen"] })] })] }) })] }));
83
84
  }
84
85
  export function BeheerPage() {
86
+ useEngineZelfherstel();
85
87
  return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.beheer, children: _jsxs("div", { className: "space-y-6 p-6", children: [_jsx(MinuutrondeStartMelding, {}), _jsx(StartlijstCard, {}), _jsx(HerindelenBeheer, {}), _jsxs("p", { className: "text-sm", children: [_jsx(Link, { to: "/logistiek-engine/proefindeling", className: "underline", children: "Proefindeling" }), " ", "\u2014 reken de karindeling na zonder iets op te slaan."] }), _jsx(HerindelingMeldingCard, {}), _jsx(VervoerderBewakingCard, {}), _jsx(EtiketInstellenMelding, {}), _jsx(DataGereedheidCard, {}), _jsx(GeblokkeerdeStickersCard, {}), _jsx(OudeOrderregelsCard, {}), _jsx(BeladingVerstuurderCard, {}), _jsx(DocumentkeuzeCard, {}), _jsx(AutomatischVersturenCard, {}), _jsx(OpruimlijstKarrenCard, {})] }) }));
86
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FlowPage.d.ts","sourceRoot":"","sources":["../../src/components/FlowPage.tsx"],"names":[],"mappings":"AA0xBA,gFAAgF;AAChF,wBAAgB,QAAQ,gCAMvB"}
1
+ {"version":3,"file":"FlowPage.d.ts","sourceRoot":"","sources":["../../src/components/FlowPage.tsx"],"names":[],"mappings":"AA2xBA,gFAAgF;AAChF,wBAAgB,QAAQ,gCAOvB"}
@@ -31,6 +31,7 @@ import { CollapsibleGroup } from "./rule-engine/CollapsibleGroup.js";
31
31
  import { ConditionsEditor } from "./rule-engine/ConditionsEditor.js";
32
32
  import { RolPoort } from "./RolPoort.js";
33
33
  import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
34
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
34
35
  const WIDE_TYPES = ["priority", "toggle", "days", "radio", "textarea", "guidance"];
35
36
  function fieldClass(field) {
36
37
  return WIDE_TYPES.includes(field.type) ? "md:col-span-2" : "";
@@ -312,5 +313,6 @@ function FlowPageInhoud() {
312
313
  }
313
314
  /** Alleen zichtbaar voor de juiste rollen; de database controleert zelf ook. */
314
315
  export function FlowPage() {
316
+ useEngineZelfherstel();
315
317
  return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.flow, children: _jsx(FlowPageInhoud, {}) }));
316
318
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LadingdragersPage.d.ts","sourceRoot":"","sources":["../../src/components/LadingdragersPage.tsx"],"names":[],"mappings":"AAkIA,wBAAgB,iBAAiB,gCA4UhC"}
1
+ {"version":3,"file":"LadingdragersPage.d.ts","sourceRoot":"","sources":["../../src/components/LadingdragersPage.tsx"],"names":[],"mappings":"AAmIA,wBAAgB,iBAAiB,gCA6UhC"}
@@ -15,6 +15,7 @@ import { Link } from "@tanstack/react-router";
15
15
  import { useLadingdragers } from "../hooks/useLadingdragers.js";
16
16
  import { LadingdragerVoorstellenCard } from "./LadingdragerVoorstellenCard.js";
17
17
  import { CAPACITY_MODEL_LABELS } from "../lib/loadCarrierTypes.js";
18
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
18
19
  const LEEG = {
19
20
  code: "",
20
21
  name: "",
@@ -76,6 +77,7 @@ function toPayload(form) {
76
77
  };
77
78
  }
78
79
  export function LadingdragersPage() {
80
+ useEngineZelfherstel();
79
81
  const { items, loading, saving, reload, create, update, remove } = useLadingdragers();
80
82
  const floricodeNamen = useFloricodeLadingdragers();
81
83
  const [open, setOpen] = useState(false);
@@ -1 +1 @@
1
- {"version":3,"file":"LogistiekEnginePage.d.ts","sourceRoot":"","sources":["../../src/components/LogistiekEnginePage.tsx"],"names":[],"mappings":"AAkGA,wBAAgB,mBAAmB,gCAiPlC"}
1
+ {"version":3,"file":"LogistiekEnginePage.d.ts","sourceRoot":"","sources":["../../src/components/LogistiekEnginePage.tsx"],"names":[],"mappings":"AAmGA,wBAAgB,mBAAmB,gCAkPlC"}
@@ -12,6 +12,7 @@ import { Link } from "@tanstack/react-router";
12
12
  import { StrategieDialog } from "./StrategieDialog.js";
13
13
  import { WerkwijzeHerindelingCard } from "./WerkwijzeHerindelingCard.js";
14
14
  import { WerktijdenCard } from "./WerktijdenCard.js";
15
+ import { StandaardgegevensCard } from "./StandaardgegevensCard.js";
15
16
  import { ENGINE_TOEGANG, heeftToegang, useEngineRollen } from "../hooks/useEngineRollen.js";
16
17
  import { useLogistiekStrategieen, } from "../hooks/useLogistiekStrategieen.js";
17
18
  const SNELKOPPELINGEN = [
@@ -88,7 +89,7 @@ export function LogistiekEnginePage() {
88
89
  setEditing(item);
89
90
  setDialogOpen(true);
90
91
  };
91
- return (_jsxs("main", { className: "p-6 space-y-6", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Hier bepaal je hoe orders in je bedrijf logistiek worden afgehandeld." }), _jsx("div", { className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4", children: SNELKOPPELINGEN.filter((k) => !k.rollen || heeftToegang(rollen, k.rollen)).map(({ to, icon: Icon, titel, uitleg }) => (_jsx(Link, { to: to, className: "group", children: _jsx(Card, { className: "h-full transition-colors group-hover:border-primary", children: _jsxs(CardHeader, { className: "p-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary", children: _jsx(Icon, { className: "h-4 w-4" }) }), _jsx(CardTitle, { className: "text-sm font-semibold leading-tight", children: titel })] }), _jsx(CardDescription, { className: "pt-1 text-xs leading-relaxed", children: uitleg })] }) }) }, to))) }), _jsx(WerkwijzeHerindelingCard, {}), _jsx(WerktijdenCard, {}), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx(CardTitle, { children: "Werkwijzen" }), _jsx(CardDescription, { children: "Alleen een werkwijze die aan staat wordt op je orders toegepast." })] }), _jsxs(Button, { size: "sm", onClick: openNew, children: [_jsx(Plus, { className: "h-4 w-4" }), "Nieuwe werkwijze"] })] }) }), _jsx(CardContent, { children: loading ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-8 w-full" }), _jsx(Skeleton, { className: "h-8 w-full" }), _jsx(Skeleton, { className: "h-8 w-full" })] })) : error ? (_jsx("p", { className: "text-sm text-destructive", children: "Kon de gegevens niet ophalen. Probeer het over een moment opnieuw." })) : safeItems.length === 0 ? (_jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Je hebt nog geen werkwijze ingesteld." }), _jsxs(Button, { variant: "outline", size: "sm", onClick: openNew, children: [_jsx(Plus, { className: "h-4 w-4" }), "Eerste werkwijze aanmaken"] })] })) : (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Naam" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { className: "w-48 text-right", children: "Acties" })] }) }), _jsx(TableBody, { children: safeItems.map((item) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "h-3 w-3 shrink-0 rounded-full border border-border", style: { backgroundColor: item.color ?? "#3b82f6" } }), _jsxs("div", { children: [_jsx("p", { className: "font-medium", children: item.name ?? "—" }), item.description && (_jsx("p", { className: "text-xs text-muted-foreground", children: item.description }))] })] }) }), _jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm", children: [_jsx("input", { type: "radio", name: "actieve-werkwijze", className: "h-4 w-4 accent-primary", checked: !!item.is_active, disabled: saving, onChange: () => kiesWerkwijze(item), "aria-label": `${item.name ?? "Werkwijze"} als actieve werkwijze kiezen` }), _jsx("span", { className: "sr-only", children: "Actief" })] }), _jsx(Badge, { variant: item.is_active ? "default" : "secondary", children: item.is_active ? "Actief" : "Uit" }), item.is_active && (_jsx(Button, { size: "sm", variant: "ghost", disabled: saving, onClick: () => void clearActive(), children: "Uitzetten" }))] }) }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { size: "sm", variant: "outline", asChild: true, children: _jsxs(Link, { to: "/logistiek-engine/rule-engine", search: { strategy: String(item.id), naam: item.name ?? "" }, children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Instellen"] }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: () => openEdit(item), "aria-label": "Bewerken", children: _jsx(Pencil, { className: "h-4 w-4" }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: () => setDeleting(item), "aria-label": "Verwijderen", children: _jsx(Trash2, { className: "h-4 w-4" }) })] }) })] }, String(item.id)))) })] })) })] }), _jsx(StrategieDialog, { open: dialogOpen, onOpenChange: setDialogOpen, strategie: editing, saving: saving, onSubmit: (input) => (editing ? update(editing.id, input) : create(input)) }), _jsx(AlertDialog, { open: !!deleting, onOpenChange: (open) => !open && setDeleting(null), children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Werkwijze verwijderen?" }), _jsxs(AlertDialogDescription, { children: ["\"", deleting?.name, "\" wordt definitief verwijderd. Dit kan niet ongedaan worden gemaakt."] })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Annuleren" }), _jsx(AlertDialogAction, { onClick: async () => {
92
+ return (_jsxs("main", { className: "p-6 space-y-6", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Hier bepaal je hoe orders in je bedrijf logistiek worden afgehandeld." }), _jsx("div", { className: "grid gap-3 sm:grid-cols-2 lg:grid-cols-4", children: SNELKOPPELINGEN.filter((k) => !k.rollen || heeftToegang(rollen, k.rollen)).map(({ to, icon: Icon, titel, uitleg }) => (_jsx(Link, { to: to, className: "group", children: _jsx(Card, { className: "h-full transition-colors group-hover:border-primary", children: _jsxs(CardHeader, { className: "p-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-primary/10 text-primary", children: _jsx(Icon, { className: "h-4 w-4" }) }), _jsx(CardTitle, { className: "text-sm font-semibold leading-tight", children: titel })] }), _jsx(CardDescription, { className: "pt-1 text-xs leading-relaxed", children: uitleg })] }) }) }, to))) }), _jsx(StandaardgegevensCard, {}), _jsx(WerkwijzeHerindelingCard, {}), _jsx(WerktijdenCard, {}), _jsxs(Card, { children: [_jsx(CardHeader, { children: _jsxs("div", { className: "flex flex-wrap items-start justify-between gap-3", children: [_jsxs("div", { children: [_jsx(CardTitle, { children: "Werkwijzen" }), _jsx(CardDescription, { children: "Alleen een werkwijze die aan staat wordt op je orders toegepast." })] }), _jsxs(Button, { size: "sm", onClick: openNew, children: [_jsx(Plus, { className: "h-4 w-4" }), "Nieuwe werkwijze"] })] }) }), _jsx(CardContent, { children: loading ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-8 w-full" }), _jsx(Skeleton, { className: "h-8 w-full" }), _jsx(Skeleton, { className: "h-8 w-full" })] })) : error ? (_jsx("p", { className: "text-sm text-destructive", children: "Kon de gegevens niet ophalen. Probeer het over een moment opnieuw." })) : safeItems.length === 0 ? (_jsxs("div", { className: "space-y-3", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "Je hebt nog geen werkwijze ingesteld." }), _jsxs(Button, { variant: "outline", size: "sm", onClick: openNew, children: [_jsx(Plus, { className: "h-4 w-4" }), "Eerste werkwijze aanmaken"] })] })) : (_jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Naam" }), _jsx(TableHead, { children: "Status" }), _jsx(TableHead, { className: "w-48 text-right", children: "Acties" })] }) }), _jsx(TableBody, { children: safeItems.map((item) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "h-3 w-3 shrink-0 rounded-full border border-border", style: { backgroundColor: item.color ?? "#3b82f6" } }), _jsxs("div", { children: [_jsx("p", { className: "font-medium", children: item.name ?? "—" }), item.description && (_jsx("p", { className: "text-xs text-muted-foreground", children: item.description }))] })] }) }), _jsx(TableCell, { children: _jsxs("div", { className: "flex items-center gap-3", children: [_jsxs("label", { className: "flex items-center gap-2 text-sm", children: [_jsx("input", { type: "radio", name: "actieve-werkwijze", className: "h-4 w-4 accent-primary", checked: !!item.is_active, disabled: saving, onChange: () => kiesWerkwijze(item), "aria-label": `${item.name ?? "Werkwijze"} als actieve werkwijze kiezen` }), _jsx("span", { className: "sr-only", children: "Actief" })] }), _jsx(Badge, { variant: item.is_active ? "default" : "secondary", children: item.is_active ? "Actief" : "Uit" }), item.is_active && (_jsx(Button, { size: "sm", variant: "ghost", disabled: saving, onClick: () => void clearActive(), children: "Uitzetten" }))] }) }), _jsx(TableCell, { className: "text-right", children: _jsxs("div", { className: "flex justify-end gap-1", children: [_jsx(Button, { size: "sm", variant: "outline", asChild: true, children: _jsxs(Link, { to: "/logistiek-engine/rule-engine", search: { strategy: String(item.id), naam: item.name ?? "" }, children: [_jsx(SlidersHorizontal, { className: "h-4 w-4" }), "Instellen"] }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: () => openEdit(item), "aria-label": "Bewerken", children: _jsx(Pencil, { className: "h-4 w-4" }) }), _jsx(Button, { size: "icon", variant: "ghost", onClick: () => setDeleting(item), "aria-label": "Verwijderen", children: _jsx(Trash2, { className: "h-4 w-4" }) })] }) })] }, String(item.id)))) })] })) })] }), _jsx(StrategieDialog, { open: dialogOpen, onOpenChange: setDialogOpen, strategie: editing, saving: saving, onSubmit: (input) => (editing ? update(editing.id, input) : create(input)) }), _jsx(AlertDialog, { open: !!deleting, onOpenChange: (open) => !open && setDeleting(null), children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: "Werkwijze verwijderen?" }), _jsxs(AlertDialogDescription, { children: ["\"", deleting?.name, "\" wordt definitief verwijderd. Dit kan niet ongedaan worden gemaakt."] })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Annuleren" }), _jsx(AlertDialogAction, { onClick: async () => {
92
93
  if (deleting)
93
94
  await remove(deleting.id);
94
95
  setDeleting(null);
@@ -1 +1 @@
1
- {"version":3,"file":"LogistiekEngineQueuePage.d.ts","sourceRoot":"","sources":["../../src/components/LogistiekEngineQueuePage.tsx"],"names":[],"mappings":"AAWA,wBAAgB,wBAAwB,gCAYvC"}
1
+ {"version":3,"file":"LogistiekEngineQueuePage.d.ts","sourceRoot":"","sources":["../../src/components/LogistiekEngineQueuePage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,wBAAwB,gCAavC"}
@@ -8,6 +8,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { OrderLogboek } from "./OrderLogboek.js";
9
9
  import { AfrondWachtrijCard } from "./AfrondWachtrijCard.js";
10
10
  import { TaakGezondheidCard } from "./TaakGezondheidCard.js";
11
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
11
12
  export function LogistiekEngineQueuePage() {
13
+ useEngineZelfherstel();
12
14
  return (_jsxs("div", { className: "space-y-4 p-4", children: [_jsx(AfrondWachtrijCard, {}), _jsx(TaakGezondheidCard, {}), _jsx(OrderLogboek, { titel: "Queue \u2014 volledige orderflow", omschrijving: "Per order precies wat de Logistiek Engine heeft gedaan, waarom, en wat er is gewijzigd. Alleen echt vastgelegde stappen; er wordt niets aangevuld." })] }));
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PlanWachtrijPage.d.ts","sourceRoot":"","sources":["../../src/components/PlanWachtrijPage.tsx"],"names":[],"mappings":"AAuEA,wBAAgB,gBAAgB,gCAmO/B"}
1
+ {"version":3,"file":"PlanWachtrijPage.d.ts","sourceRoot":"","sources":["../../src/components/PlanWachtrijPage.tsx"],"names":[],"mappings":"AAwEA,wBAAgB,gBAAgB,gCAoO/B"}
@@ -13,6 +13,7 @@ import { toast } from "sonner";
13
13
  import { usePlanWachtrij } from "../hooks/usePlanWachtrij.js";
14
14
  import { foutTekst } from "../lib/foutTekst.js";
15
15
  import { GearchiveerdeOrdersCard } from "./GearchiveerdeOrdersCard.js";
16
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
16
17
  const STAND_KLEUR = {
17
18
  wacht: "bg-amber-500/15 text-amber-700 dark:text-amber-300",
18
19
  bezig: "bg-sky-500/15 text-sky-700 dark:text-sky-300",
@@ -53,6 +54,7 @@ function past(regel, filter, zoek) {
53
54
  return regel.stand === filter;
54
55
  }
55
56
  export function PlanWachtrijPage() {
57
+ useEngineZelfherstel();
56
58
  const { regels, loading, busy, error, refresh, reset, opnieuw } = usePlanWachtrij();
57
59
  const [filter, setFilter] = useState("alles");
58
60
  const [zoek, setZoek] = useState("");
@@ -1 +1 @@
1
- {"version":3,"file":"ProefindelingPage.d.ts","sourceRoot":"","sources":["../../src/components/ProefindelingPage.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAW3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAqBnE;AAED,wBAAgB,iBAAiB,gCA2HhC"}
1
+ {"version":3,"file":"ProefindelingPage.d.ts","sourceRoot":"","sources":["../../src/components/ProefindelingPage.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAqBnE;AAED,wBAAgB,iBAAiB,gCA4HhC"}
@@ -15,6 +15,7 @@ import { supabase } from "../integrations/supabase/moduleClient.js";
15
15
  import { logisticsPlanPreview } from "../lib/planPreview.functions.js";
16
16
  import { RolPoort } from "./RolPoort.js";
17
17
  import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
18
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
18
19
  const MAX = 50;
19
20
  function csvCel(v) {
20
21
  const s = v == null ? "" : String(v);
@@ -43,6 +44,7 @@ export function proefindelingCsv(orders) {
43
44
  return [kop, ...rijen].map((r) => r.map(csvCel).join(";")).join("\n");
44
45
  }
45
46
  export function ProefindelingPage() {
47
+ useEngineZelfherstel();
46
48
  const preview = useServerFn(logisticsPlanPreview);
47
49
  const [datum, setDatum] = useState("");
48
50
  const [klant, setKlant] = useState("");
@@ -1 +1 @@
1
- {"version":3,"file":"RegiePage.d.ts","sourceRoot":"","sources":["../../src/components/RegiePage.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,SAAS,gCA+FxB"}
1
+ {"version":3,"file":"RegiePage.d.ts","sourceRoot":"","sources":["../../src/components/RegiePage.tsx"],"names":[],"mappings":"AAoCA,wBAAgB,SAAS,gCAgGxB"}
@@ -23,7 +23,9 @@ import { MinuutrondeCard } from "./MinuutrondeCard.js";
23
23
  import { InklapbaarVenster } from "./InklapbaarVenster.js";
24
24
  import { tellOpenTaken } from "../lib/taskCounts.js";
25
25
  import { LOGISTICS_MODULES } from "../lib/logisticsTasks.js";
26
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
26
27
  export function RegiePage() {
28
+ useEngineZelfherstel();
27
29
  // Alleen open en geplande taken, geteld in de database (geen 500-grens, geen geannuleerde).
28
30
  const [perModule, setPerModule] = useState({});
29
31
  const [loading, setLoading] = useState(true);
@@ -1 +1 @@
1
- {"version":3,"file":"RuleEnginePage.d.ts","sourceRoot":"","sources":["../../src/components/RuleEnginePage.tsx"],"names":[],"mappings":"AAuEA,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAueD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,+BAMxC"}
1
+ {"version":3,"file":"RuleEnginePage.d.ts","sourceRoot":"","sources":["../../src/components/RuleEnginePage.tsx"],"names":[],"mappings":"AAwEA,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAueD,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,+BAOxC"}
@@ -19,6 +19,7 @@ import { ImpactPanel } from "./rule-engine/ImpactPanel.js";
19
19
  import { VersionsPanel } from "./rule-engine/VersionsPanel.js";
20
20
  import { RolPoort } from "./RolPoort.js";
21
21
  import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
22
+ import { useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
22
23
  const WIDE_TYPES = ["priority", "toggle", "days", "radio", "textarea", "guidance"];
23
24
  function fieldClass(field) {
24
25
  return WIDE_TYPES.includes(field.type) ? "md:col-span-2" : "";
@@ -162,6 +163,7 @@ function RuleEnginePageInhoud({ strategyId: strategyIdProp = null, strategyName:
162
163
  }
163
164
  /** Alleen zichtbaar voor de juiste rollen; de database controleert zelf ook. */
164
165
  export function RuleEnginePage(props) {
166
+ useEngineZelfherstel();
165
167
  return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.ruleEngine, children: _jsx(RuleEnginePageInhoud, { ...props }) }));
166
168
  }
167
169
  /** 1.0.190 (B): "x van y" zolang het totaal bekend is, anders alleen x. */
@@ -0,0 +1,2 @@
1
+ export declare function StandaardgegevensCard(): import("react").JSX.Element;
2
+ //# sourceMappingURL=StandaardgegevensCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StandaardgegevensCard.d.ts","sourceRoot":"","sources":["../../src/components/StandaardgegevensCard.tsx"],"names":[],"mappings":"AAaA,wBAAgB,qBAAqB,gCA6CpC"}
@@ -0,0 +1,42 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ // ============================================================================
3
+ // src/components/StandaardgegevensCard.tsx — Engine-status: standaardgegevens
4
+ // ============================================================================
5
+ // Laat zien welke standaardgegevens ontbraken en zijn aangevuld (laatste keer
6
+ // dat er iets is aangevuld), plus meldingen zoals "Geen actieve strategie".
7
+ // GEEN <Header /> hier — die levert de shell.
8
+ // ============================================================================
9
+ import { useEffect, useState } from "react";
10
+ import { Badge, Card, CardContent, CardDescription, CardHeader, CardTitle, supabase } from "@flowselections/core";
11
+ import { Database } from "lucide-react";
12
+ import { aangevuldeOnderdelen, useEngineZelfherstel } from "../hooks/useEngineZelfherstel.js";
13
+ export function StandaardgegevensCard() {
14
+ const { resultaat, fout } = useEngineZelfherstel();
15
+ const [laatste, setLaatste] = useState(null);
16
+ useEffect(() => {
17
+ if (!resultaat && !fout)
18
+ return;
19
+ supabase.rpc("logistics_defaults_status").then(({ data }) => {
20
+ setLaatste(data && typeof data === "object" ? data : null);
21
+ });
22
+ }, [resultaat, fout]);
23
+ const nu = aangevuldeOnderdelen(resultaat);
24
+ const eerder = aangevuldeOnderdelen(laatste);
25
+ const meldingen = Array.isArray(resultaat?.meldingen) ? resultaat.meldingen : [];
26
+ return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2 text-base", children: [_jsx(Database, { className: "h-4 w-4" }), " Standaardgegevens", fout ? _jsx(Badge, { variant: "destructive", children: "Controle mislukt" })
27
+ : resultaat ? _jsx(Badge, { variant: "secondary", children: nu.length ? "Aangevuld" : "Compleet" }) : null] }), _jsx(CardDescription, { children: "Ladingdragers, Floriday-vertalingen, planinstellingen, tijdinstelling en strategie." })] }), _jsxs(CardContent, { className: "space-y-2 text-sm", children: [fout && _jsxs("p", { className: "text-destructive", children: ["Kon niet controleren: ", fout] }), nu.length > 0 && (_jsxs("div", { children: [_jsx("p", { className: "font-medium", children: "Zojuist aangevuld:" }), _jsx("ul", { className: "list-disc pl-5", children: nu.map((t) => _jsx("li", { children: t }, t)) })] })), nu.length === 0 && eerder.length > 0 && laatste?.op && (_jsxs("div", { children: [_jsxs("p", { className: "text-muted-foreground", children: ["Laatst aangevuld op ", new Date(laatste.op).toLocaleString("nl-NL"), ":"] }), _jsx("ul", { className: "list-disc pl-5 text-muted-foreground", children: eerder.map((t) => _jsx("li", { children: t }, t)) })] })), resultaat && nu.length === 0 && eerder.length === 0 && _jsx("p", { className: "text-muted-foreground", children: "Alle standaardgegevens zijn aanwezig." }), meldingen.map((m) => _jsx("p", { className: "text-destructive", children: m }, m)), _jsx(OnderhoudStatus, {})] })] }));
28
+ }
29
+ // 1.0.228: wachtrij per status, oudste trace-regel en laatste opruimronde.
30
+ function OnderhoudStatus() {
31
+ const [o, setO] = useState(null);
32
+ useEffect(() => {
33
+ supabase.rpc("logistics_onderhoud_status").then(({ data }) => {
34
+ setO(data && typeof data === "object" ? data : null);
35
+ });
36
+ }, []);
37
+ if (!o)
38
+ return null;
39
+ const wachtrij = o.wachtrij && typeof o.wachtrij === "object" ? Object.entries(o.wachtrij) : [];
40
+ const prune = o.laatsteOpruimronde;
41
+ return (_jsxs("div", { className: "border-t pt-2 text-muted-foreground", children: [_jsx("p", { className: "font-medium text-foreground", children: "Onderhoud" }), _jsxs("p", { children: ["Wachtrij: ", wachtrij.length ? wachtrij.map(([s, n]) => `${s} ${n}`).join(" · ") : "leeg"] }), _jsxs("p", { children: ["Oudste trace-regel: ", o.oudsteTrace ? new Date(o.oudsteTrace).toLocaleString("nl-NL") : "geen"] }), _jsxs("p", { children: ["Laatste opruimronde: ", prune?.op ? `${new Date(prune.op).toLocaleString("nl-NL")} (${prune.verwijderd ?? 0} verwijderd)` : "nog niet"] })] }));
42
+ }
@@ -0,0 +1,22 @@
1
+ export type StandaardResultaat = {
2
+ gewijzigd?: boolean;
3
+ op?: string;
4
+ ladingdragers?: string[];
5
+ ladingdrager_velden?: string[];
6
+ floriday_vertalingen?: string[];
7
+ plan_instellingen?: string[];
8
+ tijdinstellingen?: string | null;
9
+ basisstrategie?: boolean;
10
+ meldingen?: string[];
11
+ };
12
+ export declare function ensureEngineDefaults(): Promise<{
13
+ data: StandaardResultaat | null;
14
+ fout: string | null;
15
+ }>;
16
+ export declare function useEngineZelfherstel(): {
17
+ resultaat: StandaardResultaat | null;
18
+ fout: string | null;
19
+ };
20
+ /** Somt in gewone taal op wat er is aangevuld. Lege lijst = niets aangevuld. */
21
+ export declare function aangevuldeOnderdelen(r: StandaardResultaat | null | undefined): string[];
22
+ //# sourceMappingURL=useEngineZelfherstel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEngineZelfherstel.d.ts","sourceRoot":"","sources":["../../src/hooks/useEngineZelfherstel.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAIF,wBAAgB,oBAAoB;UAFR,kBAAkB,GAAG,IAAI;UAAQ,MAAM,GAAG,IAAI;GAczE;AAED,wBAAgB,oBAAoB;;;EAenC;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAWvF"}
@@ -0,0 +1,61 @@
1
+ // ============================================================================
2
+ // src/hooks/useEngineZelfherstel.ts — standaardgegevens aanvullen (1.0.227)
3
+ // ============================================================================
4
+ // Roept public.logistics_ensure_defaults() aan bij het openen van een
5
+ // Engine-pagina, hooguit één keer per browsersessie. De functie vult alleen
6
+ // ontbrekende standaardgegevens aan en schrijft niets als alles er al is.
7
+ // Een fout blokkeert de pagina niet; die wordt in de status getoond.
8
+ // ============================================================================
9
+ import { useEffect, useState } from "react";
10
+ import { supabase } from "@flowselections/core";
11
+ let lopend = null;
12
+ export function ensureEngineDefaults() {
13
+ if (!lopend) {
14
+ lopend = (async () => {
15
+ const { data, error } = await supabase.rpc("logistics_ensure_defaults");
16
+ if (error) {
17
+ lopend = null; // volgende pagina probeert opnieuw
18
+ return { data: null, fout: String(error.message ?? error) };
19
+ }
20
+ return { data: (data ?? null), fout: null };
21
+ })();
22
+ }
23
+ return lopend;
24
+ }
25
+ export function useEngineZelfherstel() {
26
+ const [resultaat, setResultaat] = useState(null);
27
+ const [fout, setFout] = useState(null);
28
+ useEffect(() => {
29
+ let actief = true;
30
+ ensureEngineDefaults().then((r) => {
31
+ if (!actief)
32
+ return;
33
+ setResultaat(r.data);
34
+ setFout(r.fout);
35
+ });
36
+ return () => {
37
+ actief = false;
38
+ };
39
+ }, []);
40
+ return { resultaat, fout };
41
+ }
42
+ /** Somt in gewone taal op wat er is aangevuld. Lege lijst = niets aangevuld. */
43
+ export function aangevuldeOnderdelen(r) {
44
+ if (!r)
45
+ return [];
46
+ const uit = [];
47
+ const lijst = (x) => (Array.isArray(x) ? x : []);
48
+ if (lijst(r.ladingdragers).length)
49
+ uit.push(`Ladingdragers toegevoegd: ${lijst(r.ladingdragers).join(", ")}`);
50
+ if (lijst(r.ladingdrager_velden).length)
51
+ uit.push(`Lege velden aangevuld bij: ${lijst(r.ladingdrager_velden).join(", ")}`);
52
+ if (lijst(r.floriday_vertalingen).length)
53
+ uit.push(`Floriday-vertalingen toegevoegd: ${lijst(r.floriday_vertalingen).length}`);
54
+ if (lijst(r.plan_instellingen).length)
55
+ uit.push(`Planinstellingen toegevoegd: ${lijst(r.plan_instellingen).join(", ")}`);
56
+ if (r.tijdinstellingen)
57
+ uit.push(`Tijdinstelling ${r.tijdinstellingen}`);
58
+ if (r.basisstrategie)
59
+ uit.push("Basisstrategie met werkwijze aangemaakt");
60
+ return uit;
61
+ }
@@ -27,6 +27,8 @@ export { LadingdragerVoorstellenCard } from './components/LadingdragerVoorstelle
27
27
  export { EtiketInstellenMelding } from './components/EtiketInstellenMelding.js';
28
28
  export { VervoerderBewakingCard, leesVervoerderStand } from './components/VervoerderBewakingCard.js';
29
29
  export { WerktijdenCard } from './components/WerktijdenCard.js';
30
+ export { StandaardgegevensCard } from './components/StandaardgegevensCard.js';
31
+ export { useEngineZelfherstel, ensureEngineDefaults } from './hooks/useEngineZelfherstel.js';
30
32
  export { useWerktijden } from './hooks/useWerktijden.js';
31
33
  export { FloridayPoortCard } from './components/FloridayPoortCard.js';
32
34
  export * from './hooks/useFloridayGate.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist-lib/index.js CHANGED
@@ -30,6 +30,8 @@ export { LadingdragerVoorstellenCard } from './components/LadingdragerVoorstelle
30
30
  export { EtiketInstellenMelding } from './components/EtiketInstellenMelding.js';
31
31
  export { VervoerderBewakingCard, leesVervoerderStand } from './components/VervoerderBewakingCard.js';
32
32
  export { WerktijdenCard } from './components/WerktijdenCard.js';
33
+ export { StandaardgegevensCard } from './components/StandaardgegevensCard.js';
34
+ export { useEngineZelfherstel, ensureEngineDefaults } from './hooks/useEngineZelfherstel.js';
33
35
  export { useWerktijden } from './hooks/useWerktijden.js';
34
36
  export { FloridayPoortCard } from './components/FloridayPoortCard.js';
35
37
  export * from './hooks/useFloridayGate.js';