@flowselections/logistiek-engine 1.0.157 → 1.0.162

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 (120) hide show
  1. package/dist-lib/components/AfrondWachtrijCard.js +1 -1
  2. package/dist-lib/components/BeheerPage.js +5 -5
  3. package/dist-lib/components/BeladingIndelingCard.js +3 -3
  4. package/dist-lib/components/BeladingsafwijkingenCard.js +1 -1
  5. package/dist-lib/components/BufferDebugCard.d.ts +1 -1
  6. package/dist-lib/components/BufferDebugCard.js +1 -1
  7. package/dist-lib/components/CapaciteitMeldingenCard.js +1 -1
  8. package/dist-lib/components/FloridayPoortCard.js +1 -1
  9. package/dist-lib/components/FloridayPushCard.js +1 -1
  10. package/dist-lib/components/FlowCanvas.d.ts +5 -5
  11. package/dist-lib/components/FlowCanvas.js +4 -4
  12. package/dist-lib/components/FlowOrders.d.ts +1 -1
  13. package/dist-lib/components/FlowOrders.js +3 -3
  14. package/dist-lib/components/FlowPage.js +21 -21
  15. package/dist-lib/components/GearchiveerdeOrdersCard.js +1 -1
  16. package/dist-lib/components/GeblokkeerdeOrdersCard.js +1 -1
  17. package/dist-lib/components/KardekkingCard.js +1 -1
  18. package/dist-lib/components/LadingdragersPage.js +2 -2
  19. package/dist-lib/components/LogistiekEnginePage.js +5 -5
  20. package/dist-lib/components/LogistiekEngineQueuePage.js +3 -3
  21. package/dist-lib/components/MinuutrondeCard.d.ts.map +1 -1
  22. package/dist-lib/components/MinuutrondeCard.js +4 -4
  23. package/dist-lib/components/ModulePromptsPage.js +3 -3
  24. package/dist-lib/components/NodeTracePanel.d.ts +2 -2
  25. package/dist-lib/components/NodeTracePanel.js +4 -4
  26. package/dist-lib/components/OrderJourneyBar.d.ts +1 -1
  27. package/dist-lib/components/OrderJourneyBar.js +2 -2
  28. package/dist-lib/components/OrderLogboek.d.ts +1 -1
  29. package/dist-lib/components/OrderLogboek.js +1 -1
  30. package/dist-lib/components/OrderStopBanner.d.ts +1 -1
  31. package/dist-lib/components/OrderStopBanner.js +4 -4
  32. package/dist-lib/components/OrderTraceDetails.d.ts +1 -1
  33. package/dist-lib/components/OrderTraceDetails.js +2 -2
  34. package/dist-lib/components/PlanWachtrijPage.js +3 -3
  35. package/dist-lib/components/PlannerDiffCard.js +1 -1
  36. package/dist-lib/components/PrintjobsCard.js +1 -1
  37. package/dist-lib/components/RegiePage.js +11 -11
  38. package/dist-lib/components/RolPoort.d.ts +1 -1
  39. package/dist-lib/components/RolPoort.js +1 -1
  40. package/dist-lib/components/RuleEnginePage.js +11 -11
  41. package/dist-lib/components/StrategieDialog.d.ts +1 -1
  42. package/dist-lib/components/TaakGezondheidCard.js +1 -1
  43. package/dist-lib/components/VertragingMeldingenCard.js +1 -1
  44. package/dist-lib/components/VoorraadMeldingenCard.js +1 -1
  45. package/dist-lib/components/WerktijdenCard.js +1 -1
  46. package/dist-lib/components/WerkwijzeHerindelingCard.js +1 -1
  47. package/dist-lib/components/rule-engine/CollapsibleGroup.js +1 -1
  48. package/dist-lib/components/rule-engine/ConditionsEditor.d.ts +1 -1
  49. package/dist-lib/components/rule-engine/ConditionsEditor.js +1 -1
  50. package/dist-lib/components/rule-engine/ImpactPanel.d.ts +1 -1
  51. package/dist-lib/components/rule-engine/ImpactPanel.js +1 -1
  52. package/dist-lib/components/rule-engine/RuleFieldInput.d.ts +1 -1
  53. package/dist-lib/components/rule-engine/RuleFieldInput.js +5 -5
  54. package/dist-lib/components/rule-engine/VersionsPanel.d.ts +2 -2
  55. package/dist-lib/components/rule-engine/VersionsPanel.js +1 -1
  56. package/dist-lib/hooks/useFloridayPushes.js +1 -1
  57. package/dist-lib/hooks/useLadingdragers.d.ts +1 -1
  58. package/dist-lib/hooks/useLogistiekTaken.d.ts +1 -1
  59. package/dist-lib/hooks/useLogistiekTaken.js +1 -1
  60. package/dist-lib/hooks/useMinuutronde.d.ts +5 -0
  61. package/dist-lib/hooks/useMinuutronde.d.ts.map +1 -1
  62. package/dist-lib/hooks/useMinuutronde.js +3 -0
  63. package/dist-lib/hooks/useOrderNodeTrace.d.ts +3 -3
  64. package/dist-lib/hooks/useOrderNodeTrace.js +3 -3
  65. package/dist-lib/hooks/useOrderVersies.d.ts +2 -2
  66. package/dist-lib/hooks/useOrderVersies.js +1 -1
  67. package/dist-lib/hooks/useRecalcJob.js +1 -1
  68. package/dist-lib/hooks/useRuleEngine.d.ts +1 -1
  69. package/dist-lib/hooks/useRuleEngine.js +1 -1
  70. package/dist-lib/hooks/useShellAdres.d.ts +1 -1
  71. package/dist-lib/hooks/useShellAdres.js +2 -2
  72. package/dist-lib/hooks/useWerkwijzeStatus.js +1 -1
  73. package/dist-lib/index.d.ts +74 -74
  74. package/dist-lib/index.js +75 -75
  75. package/dist-lib/integrations/supabase/auth-attacher.js +1 -1
  76. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
  77. package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
  78. package/dist-lib/integrations/supabase/moduleClient.d.ts +1 -1
  79. package/dist-lib/integrations/supabase/types.d.ts +236 -0
  80. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  81. package/dist-lib/lib/dimensionData.server.d.ts +3 -3
  82. package/dist-lib/lib/floridayDocuments.functions.d.ts +1 -1
  83. package/dist-lib/lib/floridayDocuments.functions.js +3 -3
  84. package/dist-lib/lib/floridayPush.functions.js +1 -1
  85. package/dist-lib/lib/flowGraph.d.ts +2 -2
  86. package/dist-lib/lib/flowGraph.js +2 -2
  87. package/dist-lib/lib/flowJourney.d.ts +2 -2
  88. package/dist-lib/lib/flowJourney.js +1 -1
  89. package/dist-lib/lib/flowRoute.d.ts +4 -4
  90. package/dist-lib/lib/flowRoute.js +4 -4
  91. package/dist-lib/lib/flowTree.d.ts +1 -1
  92. package/dist-lib/lib/flowTree.js +2 -2
  93. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +4 -4
  94. package/dist-lib/lib/loadCarrierPlanning.functions.js +7 -7
  95. package/dist-lib/lib/loadCarrierPlanning.server.d.ts +3 -3
  96. package/dist-lib/lib/loadCarrierPlanning.server.js +6 -6
  97. package/dist-lib/lib/loadCarrierTaskSync.server.d.ts +1 -1
  98. package/dist-lib/lib/loadCarrierTypes.d.ts +1 -1
  99. package/dist-lib/lib/logisticsPlanner.d.ts +2 -2
  100. package/dist-lib/lib/logisticsPlanner.js +2 -2
  101. package/dist-lib/lib/logisticsRecalcJob.functions.js +2 -2
  102. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  103. package/dist-lib/lib/modulePrompts.js +54 -1
  104. package/dist-lib/lib/moduleVersion.d.ts +1 -1
  105. package/dist-lib/lib/moduleVersion.js +1 -1
  106. package/dist-lib/lib/nodeTrace.d.ts +1 -1
  107. package/dist-lib/lib/nodeTrace.js +1 -1
  108. package/dist-lib/lib/planQueue.server.d.ts +2 -0
  109. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  110. package/dist-lib/lib/planQueue.server.js +11 -0
  111. package/dist-lib/lib/plannerDiff.functions.js +1 -1
  112. package/dist-lib/lib/ruleEngineImpact.d.ts +1 -1
  113. package/dist-lib/lib/ruleEngineImpact.js +1 -1
  114. package/dist-lib/lib/ruleEngineWizard.d.ts +1 -1
  115. package/dist-lib/lib/ruleEngineWizard.js +1 -1
  116. package/dist-lib/lib/stopReden.d.ts +3 -3
  117. package/dist-lib/lib/stopReden.js +3 -3
  118. package/dist-lib/lib/vakUitleg.d.ts +1 -1
  119. package/dist-lib/lib/vakUitleg.js +3 -3
  120. package/package.json +2 -2
@@ -6,7 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  // wanneer iets te lang wacht. Alleen lezen, behalve de knoppen.
7
7
  // ============================================================================
8
8
  import { AlertTriangle, CheckCircle2, RefreshCw } from "lucide-react";
9
- import { useAfrondWachtrij } from "../hooks/useAfrondWachtrij";
9
+ import { useAfrondWachtrij } from "../hooks/useAfrondWachtrij.js";
10
10
  function duur(seconden) {
11
11
  if (seconden < 60)
12
12
  return `${seconden} sec`;
@@ -10,11 +10,11 @@ import { useState } from "react";
10
10
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Label, } from "@flowselections/core";
11
11
  import { RotateCcw } from "lucide-react";
12
12
  import { supabase } from "../integrations/supabase/moduleClient.js";
13
- import { RolPoort } from "./RolPoort";
14
- import { OudeOrderregelsCard } from "./OudeOrderregelsCard";
15
- import { AutomatischVersturenCard } from "./AutomatischVersturenCard";
16
- import { OpruimlijstKarrenCard } from "./OpruimlijstKarrenCard";
17
- import { ENGINE_TOEGANG } from "../hooks/useEngineRollen";
13
+ import { RolPoort } from "./RolPoort.js";
14
+ import { OudeOrderregelsCard } from "./OudeOrderregelsCard.js";
15
+ import { AutomatischVersturenCard } from "./AutomatischVersturenCard.js";
16
+ import { OpruimlijstKarrenCard } from "./OpruimlijstKarrenCard.js";
17
+ import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
18
18
  function HerindelenBeheer() {
19
19
  const [datum, setDatum] = useState("");
20
20
  const [ookBevroren, setOokBevroren] = useState(false);
@@ -9,9 +9,9 @@ import { useState } from "react";
9
9
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Label, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, supabase, toast, } from "@flowselections/core";
10
10
  import { useServerFn } from "@tanstack/react-start";
11
11
  import { Boxes, Search } from "lucide-react";
12
- import { previewLoadCarrierPlan, replanOrderLoadCarriers } from "../lib/loadCarrierPlanning.functions";
13
- import { carrierLabel } from "../lib/loadCarrierTypes";
14
- import { layerUtilizationPct } from "../lib/layerUtilization";
12
+ import { previewLoadCarrierPlan, replanOrderLoadCarriers } from "../lib/loadCarrierPlanning.functions.js";
13
+ import { carrierLabel } from "../lib/loadCarrierTypes.js";
14
+ import { layerUtilizationPct } from "../lib/layerUtilization.js";
15
15
  const db = () => supabase;
16
16
  export function BeladingIndelingCard() {
17
17
  const preview = useServerFn(previewLoadCarrierPlan);
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
10
10
  // ============================================================================
11
11
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
12
12
  import { Boxes, Check, RefreshCw } from "lucide-react";
13
- import { useBeladingsafwijkingen, } from "../hooks/useBeladingsafwijkingen";
13
+ import { useBeladingsafwijkingen, } from "../hooks/useBeladingsafwijkingen.js";
14
14
  function beladingTekst(b) {
15
15
  const deel = [
16
16
  b.piecesPerPackage == null ? "?" : String(b.piecesPerPackage),
@@ -1,4 +1,4 @@
1
- import type { BulkIndelingTotaal, LogistiekTaak } from "../hooks/useLogistiekTaken";
1
+ import type { BulkIndelingTotaal, LogistiekTaak } from "../hooks/useLogistiekTaken.js";
2
2
  interface Props {
3
3
  taken: LogistiekTaak[];
4
4
  strategyId?: string | null;
@@ -8,7 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useMemo, useState } from "react";
9
9
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@flowselections/core";
10
10
  import { Boxes, Layers, RefreshCw, Wand2, Zap } from "lucide-react";
11
- import { bufferCriterionLabel, bufferReasonLabel } from "../lib/bufferMatching";
11
+ import { bufferCriterionLabel, bufferReasonLabel } from "../lib/bufferMatching.js";
12
12
  export function BufferDebugCard({ taken, strategyId, simuleerBuffers, herindelenBuffers, herindelenOrders, deelAllesIn, }) {
13
13
  const [voortgang, setVoortgang] = useState(null);
14
14
  const [indelingTotaal, setIndelingTotaal] = useState(null);
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // ============================================================================
5
5
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
6
6
  import { AlertTriangle, CheckCircle2, RefreshCw } from "lucide-react";
7
- import { useCapaciteitMeldingen } from "../hooks/useCapaciteitMeldingen";
7
+ import { useCapaciteitMeldingen } from "../hooks/useCapaciteitMeldingen.js";
8
8
  function datum(value) {
9
9
  if (!value)
10
10
  return "onbekend";
@@ -7,7 +7,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
7
7
  // ============================================================================
8
8
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
9
9
  import { RefreshCw, ShieldCheck, ShieldOff } from "lucide-react";
10
- import { useFloridayGate } from "../hooks/useFloridayGate";
10
+ import { useFloridayGate } from "../hooks/useFloridayGate.js";
11
11
  function tijd(value) {
12
12
  if (!value)
13
13
  return "-";
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // ============================================================================
5
5
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
6
6
  import { CheckCircle2, RefreshCw, Send } from "lucide-react";
7
- import { PUSH_STATUS_LABELS, isEindstatus, useFloridayPushes } from "../hooks/useFloridayPushes";
7
+ import { PUSH_STATUS_LABELS, isEindstatus, useFloridayPushes } from "../hooks/useFloridayPushes.js";
8
8
  function tijd(value) {
9
9
  if (!value)
10
10
  return "-";
@@ -1,9 +1,9 @@
1
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";
2
+ import { type FlowTree } from "../lib/flowTree.js";
3
+ import type { RouteMarker } from "../lib/flowRoute.js";
4
+ import type { StopReden } from "../lib/stopReden.js";
5
+ import type { NodeTraceGroep } from "../lib/nodeTrace.js";
6
+ import type { RuleEngineSettings } from "../lib/ruleEngineSchema.js";
7
7
  export type { RouteMarker };
8
8
  interface Props {
9
9
  tree: FlowTree;
@@ -13,10 +13,10 @@ import dagre from "@dagrejs/dagre";
13
13
  import { Button } from "@flowselections/core";
14
14
  import { AlertTriangle, ArrowDownUp, ArrowLeftRight, CheckCircle2, ChevronDown, ChevronRight, ChevronUp, Clock, Maximize2, Minimize2, Expand, ListChecks, Pencil, Settings2, Minus, Plus, X, } from "lucide-react";
15
15
  import "@xyflow/react/dist/style.css";
16
- import { fieldsFor } from "../lib/flowTree";
17
- import { RuleFieldInput } from "./rule-engine/RuleFieldInput";
18
- import { NodeTracePanel } from "./NodeTracePanel";
19
- import { duur as duurTekst, klok } from "./OrderTraceDetails";
16
+ import { fieldsFor } from "../lib/flowTree.js";
17
+ import { RuleFieldInput } from "./rule-engine/RuleFieldInput.js";
18
+ import { NodeTracePanel } from "./NodeTracePanel.js";
19
+ import { duur as duurTekst, klok } from "./OrderTraceDetails.js";
20
20
  // ── Toestand → uiterlijk ────────────────────────────────────────────────────
21
21
  /** Extra opmaak voor vakjes op (of juist buiten) de gelopen orderroute. */
22
22
  function routeClass(node) {
@@ -1,4 +1,4 @@
1
- import { type OrderRoute, type OrderVersie } from "../lib/flowRoute";
1
+ import { type OrderRoute, type OrderVersie } from "../lib/flowRoute.js";
2
2
  interface Props {
3
3
  /** Wordt aangeroepen zodra een versie gekozen/losgelaten wordt. */
4
4
  onRoute: (route: OrderRoute | null, label: string | null, orderRef: string | null, versie: OrderVersie | null) => void;
@@ -12,9 +12,9 @@ import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitl
12
12
  import { AlertTriangle, CheckCircle2, ChevronDown, ChevronRight, Clock, RefreshCw, RotateCcw, Search, X } from "lucide-react";
13
13
  import { toast } from "sonner";
14
14
  import { supabase } from "../integrations/supabase/moduleClient.js";
15
- import { useAlleOrders, useOrderVersies, useVersieEvents } from "../hooks/useOrderVersies";
16
- import { bepaalRoute, redenTekst } from "../lib/flowRoute";
17
- import { Gebeurtenis } from "./OrderLogboek";
15
+ import { useAlleOrders, useOrderVersies, useVersieEvents } from "../hooks/useOrderVersies.js";
16
+ import { bepaalRoute, redenTekst } from "../lib/flowRoute.js";
17
+ import { Gebeurtenis } from "./OrderLogboek.js";
18
18
  function tijd(v) {
19
19
  if (!v)
20
20
  return "—";
@@ -10,27 +10,27 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
11
11
  import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Skeleton, toast, } from "@flowselections/core";
12
12
  import { CheckCircle2, RefreshCw, Save, X } from "lucide-react";
13
- import { fieldVisible, } from "../lib/ruleEngineSchema";
14
- import { WIZARD_STEPS, groupSummary, isAdvancedField } from "../lib/ruleEngineWizard";
15
- import { buildFlowTree, pasMergeOverridesToe, verbergEindnodeLijnen, verduidelijkVerzendbrief, mergeVoorwaarde, MERGE_MAX_WACHT_MINUTEN, } from "../lib/flowTree";
16
- import { applyRoute } from "../lib/flowRoute";
17
- import { ontbrekendeJourneyEvents } from "../lib/flowJourney";
18
- import { FlowCanvas } from "./FlowCanvas";
19
- import { FlowOrders } from "./FlowOrders";
20
- import { OrderJourneyBar } from "./OrderJourneyBar";
21
- import { OrderStopBanner } from "./OrderStopBanner";
22
- import { useOrderNodeTrace } from "../hooks/useOrderNodeTrace";
23
- import { useShippingNoteDiagnose } from "../hooks/useShippingNoteDiagnose";
24
- import { stopReden, verzendbriefStop } from "../lib/stopReden";
25
- import { useOrderTraceStand } from "../hooks/useOrderTrace";
26
- import { useRuleEngine } from "../hooks/useRuleEngine";
27
- import { useLogistiekStrategieen } from "../hooks/useLogistiekStrategieen";
28
- import { useRecalcJob, phaseLabel } from "../hooks/useRecalcJob";
29
- import { RuleFieldInput } from "./rule-engine/RuleFieldInput";
30
- import { CollapsibleGroup } from "./rule-engine/CollapsibleGroup";
31
- import { ConditionsEditor } from "./rule-engine/ConditionsEditor";
32
- import { RolPoort } from "./RolPoort";
33
- import { ENGINE_TOEGANG } from "../hooks/useEngineRollen";
13
+ import { fieldVisible, } from "../lib/ruleEngineSchema.js";
14
+ import { WIZARD_STEPS, groupSummary, isAdvancedField } from "../lib/ruleEngineWizard.js";
15
+ import { buildFlowTree, pasMergeOverridesToe, verbergEindnodeLijnen, verduidelijkVerzendbrief, mergeVoorwaarde, MERGE_MAX_WACHT_MINUTEN, } from "../lib/flowTree.js";
16
+ import { applyRoute } from "../lib/flowRoute.js";
17
+ import { ontbrekendeJourneyEvents } from "../lib/flowJourney.js";
18
+ import { FlowCanvas } from "./FlowCanvas.js";
19
+ import { FlowOrders } from "./FlowOrders.js";
20
+ import { OrderJourneyBar } from "./OrderJourneyBar.js";
21
+ import { OrderStopBanner } from "./OrderStopBanner.js";
22
+ import { useOrderNodeTrace } from "../hooks/useOrderNodeTrace.js";
23
+ import { useShippingNoteDiagnose } from "../hooks/useShippingNoteDiagnose.js";
24
+ import { stopReden, verzendbriefStop } from "../lib/stopReden.js";
25
+ import { useOrderTraceStand } from "../hooks/useOrderTrace.js";
26
+ import { useRuleEngine } from "../hooks/useRuleEngine.js";
27
+ import { useLogistiekStrategieen } from "../hooks/useLogistiekStrategieen.js";
28
+ import { useRecalcJob, phaseLabel } from "../hooks/useRecalcJob.js";
29
+ import { RuleFieldInput } from "./rule-engine/RuleFieldInput.js";
30
+ import { CollapsibleGroup } from "./rule-engine/CollapsibleGroup.js";
31
+ import { ConditionsEditor } from "./rule-engine/ConditionsEditor.js";
32
+ import { RolPoort } from "./RolPoort.js";
33
+ import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
34
34
  const WIDE_TYPES = ["priority", "toggle", "days", "radio", "textarea", "guidance"];
35
35
  function fieldClass(field) {
36
36
  return WIDE_TYPES.includes(field.type) ? "md:col-span-2" : "";
@@ -8,7 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  import { useState } from "react";
9
9
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
10
10
  import { Archive, RefreshCw, RotateCcw } from "lucide-react";
11
- import { redenLabel, useGearchiveerdeOrders } from "../hooks/useGeblokkeerdeOrders";
11
+ import { redenLabel, useGearchiveerdeOrders } from "../hooks/useGeblokkeerdeOrders.js";
12
12
  function datum(waarde) {
13
13
  if (!waarde)
14
14
  return "—";
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
10
10
  import { useMemo, useState } from "react";
11
11
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
12
12
  import { AlertTriangle, RefreshCw, RotateCcw } from "lucide-react";
13
- import { useGeblokkeerdeOrders, redenLabel } from "../hooks/useGeblokkeerdeOrders";
13
+ import { useGeblokkeerdeOrders, redenLabel } from "../hooks/useGeblokkeerdeOrders.js";
14
14
  function datum(waarde) {
15
15
  if (!waarde)
16
16
  return "—";
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useQuery } from "@tanstack/react-query";
3
3
  import { useServerFn } from "@tanstack/react-start";
4
4
  import { Badge, Skeleton, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@flowselections/core";
5
- import { getCartCoverage } from "../lib/cartCoverage.functions";
5
+ import { getCartCoverage } from "../lib/cartCoverage.functions.js";
6
6
  const LABEL = {
7
7
  gelijk: "Gelijk",
8
8
  gelijk_afgerond: "Gelijk (afgerond op fust)",
@@ -10,8 +10,8 @@ import { useState } from "react";
10
10
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Skeleton, Switch, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@flowselections/core";
11
11
  import { Container, Pencil, Plus, RefreshCw, Trash2 } from "lucide-react";
12
12
  import { Link } from "@tanstack/react-router";
13
- import { useLadingdragers } from "../hooks/useLadingdragers";
14
- import { CAPACITY_MODEL_LABELS } from "../lib/loadCarrierTypes";
13
+ import { useLadingdragers } from "../hooks/useLadingdragers.js";
14
+ import { CAPACITY_MODEL_LABELS } from "../lib/loadCarrierTypes.js";
15
15
  const LEEG = {
16
16
  code: "",
17
17
  name: "",
@@ -9,11 +9,11 @@ import { useState } from "react";
9
9
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Badge, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Skeleton, } from "@flowselections/core";
10
10
  import { Container, GitBranch, ListChecks, Pencil, Plus, Puzzle, ShieldCheck, SlidersHorizontal, Trash2, Workflow } from "lucide-react";
11
11
  import { Link } from "@tanstack/react-router";
12
- import { StrategieDialog } from "./StrategieDialog";
13
- import { WerkwijzeHerindelingCard } from "./WerkwijzeHerindelingCard";
14
- import { WerktijdenCard } from "./WerktijdenCard";
15
- import { ENGINE_TOEGANG, heeftToegang, useEngineRollen } from "../hooks/useEngineRollen";
16
- import { useLogistiekStrategieen, } from "../hooks/useLogistiekStrategieen";
12
+ import { StrategieDialog } from "./StrategieDialog.js";
13
+ import { WerkwijzeHerindelingCard } from "./WerkwijzeHerindelingCard.js";
14
+ import { WerktijdenCard } from "./WerktijdenCard.js";
15
+ import { ENGINE_TOEGANG, heeftToegang, useEngineRollen } from "../hooks/useEngineRollen.js";
16
+ import { useLogistiekStrategieen, } from "../hooks/useLogistiekStrategieen.js";
17
17
  const SNELKOPPELINGEN = [
18
18
  {
19
19
  to: "/logistiek-engine/rule-engine",
@@ -5,9 +5,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  // Gebruikt hetzelfde orderlogboek als het overzicht, zodat er één weergave is.
6
6
  // GEEN <Header /> hier — die levert de shell.
7
7
  // ============================================================================
8
- import { OrderLogboek } from "./OrderLogboek";
9
- import { AfrondWachtrijCard } from "./AfrondWachtrijCard";
10
- import { TaakGezondheidCard } from "./TaakGezondheidCard";
8
+ import { OrderLogboek } from "./OrderLogboek.js";
9
+ import { AfrondWachtrijCard } from "./AfrondWachtrijCard.js";
10
+ import { TaakGezondheidCard } from "./TaakGezondheidCard.js";
11
11
  export function LogistiekEngineQueuePage() {
12
12
  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
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MinuutrondeCard.d.ts","sourceRoot":"","sources":["../../src/components/MinuutrondeCard.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,eAAe,gCA6E9B"}
1
+ {"version":3,"file":"MinuutrondeCard.d.ts","sourceRoot":"","sources":["../../src/components/MinuutrondeCard.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,eAAe,gCAqF9B"}
@@ -6,9 +6,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
6
6
  // laatste rondes echt door de Engine zijn ontvangen. Alleen lezen.
7
7
  // ============================================================================
8
8
  import { AlertTriangle, CheckCircle2, Info, RefreshCw } from "lucide-react";
9
- import { useMinuutronde } from "../hooks/useMinuutronde";
10
- import { useShellAdres } from "../hooks/useShellAdres";
11
- import { SHELL_ADRES_TEKST } from "../lib/shellAdres";
9
+ import { useMinuutronde } from "../hooks/useMinuutronde.js";
10
+ import { useShellAdres } from "../hooks/useShellAdres.js";
11
+ import { SHELL_ADRES_TEKST } from "../lib/shellAdres.js";
12
12
  function tijd(t) {
13
13
  if (!t)
14
14
  return "nooit";
@@ -30,7 +30,7 @@ export function MinuutrondeCard() {
30
30
  const kleur = status === "groen" ? "text-primary" : status === "rood" ? "text-destructive" : "text-muted-foreground";
31
31
  return (_jsxs("div", { className: "rounded-lg border bg-card p-4 text-card-foreground", children: [_jsxs("div", { className: "mb-3 flex items-start justify-between gap-2", children: [_jsxs("div", { className: "flex items-start gap-2", children: [_jsx(Icoon, { className: `mt-0.5 h-5 w-5 ${kleur}` }), _jsxs("div", { children: [_jsx("h3", { className: "font-semibold", children: kop }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Karindeling en herplanning draaien elke minuut via deze ronde." })] })] }), _jsx("button", { type: "button", onClick: () => void herlaad(), className: "rounded-md border px-3 py-1.5 text-sm hover:bg-accent", "aria-label": "Minuutronde vernieuwen", children: _jsx(RefreshCw, { className: "h-4 w-4" }) })] }), fout && _jsxs("p", { className: "text-sm text-destructive", children: ["Stand niet beschikbaar: ", fout] }), laatste && (_jsxs("dl", { className: "grid gap-1 text-sm sm:grid-cols-2", children: [_jsx("dt", { className: "text-muted-foreground", children: "Adres" }), _jsx("dd", { children: laatste.target_host ?? "geen adres ingesteld" }), _jsx("dt", { className: "text-muted-foreground", children: "Moduleversie die antwoordde" }), _jsxs("dd", { children: [stand?.laatsteAntwoordVersie ?? laatste.module_version ?? "onbekend", !laatste.module_version && stand?.laatsteAntwoordVersie ? " (allerlaatste ronde gaf geen antwoord)" : ""] }), _jsx("dt", { className: "text-muted-foreground", children: "Laatste geslaagde ronde" }), _jsx("dd", { children: tijd(stand?.laatsteOk) }), status === "rood" && (_jsxs(_Fragment, { children: [_jsx("dt", { className: "text-muted-foreground", children: "Reden" }), _jsxs("dd", { className: "text-destructive", children: [laatste.error ?? "onbekend", laatste.status_code === 200 && !laatste.engine_ok
32
32
  ? " — er kwam wel een antwoord, maar zonder herkenning: een oudere moduleversie (vóór 1.0.107) of een andere pagina op dit adres"
33
- : "", stand && stand.misluktOpRij > 0 ? ` (${stand.misluktOpRij} rondes op rij mislukt)` : ""] })] }))] })), status === "oranje" && (_jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: "Het adres wijst naar het eigen moduleproject. Bij een klant hoort het naar de eigen shell te wijzen." })), _jsx(ShellAdresBlok, {})] }));
33
+ : "", stand && stand.misluktOpRij > 0 ? ` (${stand.misluktOpRij} rondes op rij mislukt)` : ""] })] }))] })), stand && (stand.mislukt24u > 0 || stand.stapfout24u > 0) && (_jsxs("p", { className: "mt-3 text-sm text-destructive", children: ["De minuutronde is de laatste 24 uur ", stand.mislukt24u + stand.stapfout24u, " keer niet afgerond", stand.laatsteMislukt ? ` (laatst ${tijd(stand.laatsteMislukt)})` : "", ". Volgende rondes pakken het werk vanzelf op."] })), status === "oranje" && laatste?.module_project && (_jsx("p", { className: "mt-3 text-sm text-muted-foreground", children: "Het adres wijst naar het eigen moduleproject. Bij een klant hoort het naar de eigen shell te wijzen." })), _jsx(ShellAdresBlok, {})] }));
34
34
  }
35
35
  function ShellAdresBlok() {
36
36
  const { stand, fout, bezig, controleer } = useShellAdres();
@@ -9,9 +9,9 @@ import { useState } from "react";
9
9
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, toast, } from "@flowselections/core";
10
10
  import { Check, ChevronDown, ChevronUp, Copy, Download, Puzzle } from "lucide-react";
11
11
  import { Link } from "@tanstack/react-router";
12
- import { MODULE_PROMPTS, buildAllModulePrompts, buildRevisionPrompt, modulePromptFilename, } from "../lib/modulePrompts";
13
- import { RolPoort } from "./RolPoort";
14
- import { ENGINE_TOEGANG } from "../hooks/useEngineRollen";
12
+ import { MODULE_PROMPTS, buildAllModulePrompts, buildRevisionPrompt, modulePromptFilename, } from "../lib/modulePrompts.js";
13
+ import { RolPoort } from "./RolPoort.js";
14
+ import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
15
15
  function downloadMarkdown(filename, content) {
16
16
  const blob = new Blob([content], { type: "text/markdown;charset=utf-8" });
17
17
  const url = URL.createObjectURL(blob);
@@ -1,5 +1,5 @@
1
- import { type NodeTraceGroep } from "../lib/nodeTrace";
2
- import type { StopReden } from "../lib/stopReden";
1
+ import { type NodeTraceGroep } from "../lib/nodeTrace.js";
2
+ import type { StopReden } from "../lib/stopReden.js";
3
3
  interface Props {
4
4
  groep: NodeTraceGroep;
5
5
  /** Gevuld als de reis van de order bij dit vakje ophoudt. */
@@ -10,10 +10,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import { useMemo, useState } from "react";
11
11
  import { Badge, Button } from "@flowselections/core";
12
12
  import { ChevronDown, ChevronRight, X } from "lucide-react";
13
- import { flowNodeLabel } from "../lib/flowNodes";
14
- import { bundelGebeurtenissen, samenvatVak, } from "../lib/nodeTrace";
15
- import { vakUitleg } from "../lib/vakUitleg";
16
- import { FOUTSOORT_LABEL, FOUTSOORT_UITLEG, STATUS_KLEUR, Stap, Veld, duur, tijd, } from "./OrderTraceDetails";
13
+ import { flowNodeLabel } from "../lib/flowNodes.js";
14
+ import { bundelGebeurtenissen, samenvatVak, } from "../lib/nodeTrace.js";
15
+ import { vakUitleg } from "../lib/vakUitleg.js";
16
+ import { FOUTSOORT_LABEL, FOUTSOORT_UITLEG, STATUS_KLEUR, Stap, Veld, duur, tijd, } from "./OrderTraceDetails.js";
17
17
  const EERSTE_AANTAL = 20;
18
18
  function Bundel({ item, debug }) {
19
19
  const [open, setOpen] = useState(false);
@@ -1,4 +1,4 @@
1
- import type { NodeTraceGroep } from "../lib/nodeTrace";
1
+ import type { NodeTraceGroep } from "../lib/nodeTrace.js";
2
2
  interface Props {
3
3
  reis: NodeTraceGroep[];
4
4
  actiefNodeId: string | null;
@@ -6,8 +6,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  // opent datzelfde vakje op de kaart. Alleen lezen.
7
7
  // ============================================================================
8
8
  import { AlertTriangle, CheckCircle2, ChevronRight, Clock } from "lucide-react";
9
- import { flowNodeLabel } from "../lib/flowNodes";
10
- import { duur, klok } from "./OrderTraceDetails";
9
+ import { flowNodeLabel } from "../lib/flowNodes.js";
10
+ import { duur, klok } from "./OrderTraceDetails.js";
11
11
  export function OrderJourneyBar({ reis, actiefNodeId, onKies }) {
12
12
  const veilig = Array.isArray(reis) ? reis : [];
13
13
  if (veilig.length === 0)
@@ -1,4 +1,4 @@
1
- import { type TraceEventRow } from "../hooks/useLogisticsTrace";
1
+ import { type TraceEventRow } from "../hooks/useLogisticsTrace.js";
2
2
  export declare function Gebeurtenis({ event }: {
3
3
  event: TraceEventRow;
4
4
  }): import("react").JSX.Element;
@@ -10,7 +10,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
10
  import { useMemo, useState } from "react";
11
11
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Skeleton, } from "@flowselections/core";
12
12
  import { AlertTriangle, ChevronDown, ChevronRight, Clock, Database, ExternalLink, FileText, RefreshCw, Search, } from "lucide-react";
13
- import { useLogisticsTrace, useLogisticsTraceTimeline, } from "../hooks/useLogisticsTrace";
13
+ import { useLogisticsTrace, useLogisticsTraceTimeline, } from "../hooks/useLogisticsTrace.js";
14
14
  const STATUS_FILTERS = [
15
15
  { waarde: "", label: "Alles" },
16
16
  { waarde: "bezig", label: "Bezig" },
@@ -1,4 +1,4 @@
1
- import { type StopReden } from "../lib/stopReden";
1
+ import { type StopReden } from "../lib/stopReden.js";
2
2
  interface Props {
3
3
  orderRef: string;
4
4
  /** De reden bij het laatste vakje van de route (uit de flowkaart). */
@@ -6,10 +6,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  // zo is, wat de bepalende gegevens zijn en wat er moet gebeuren. Alleen lezen.
7
7
  // ============================================================================
8
8
  import { AlertTriangle, CheckCircle2, Clock } from "lucide-react";
9
- import { useOrderTraceStand } from "../hooks/useOrderTrace";
10
- import { flowNodeLabel } from "../lib/flowNodes";
11
- import { stopReden } from "../lib/stopReden";
12
- import { Veld, sinds, tijd } from "./OrderTraceDetails";
9
+ import { useOrderTraceStand } from "../hooks/useOrderTrace.js";
10
+ import { flowNodeLabel } from "../lib/flowNodes.js";
11
+ import { stopReden } from "../lib/stopReden.js";
12
+ import { Veld, sinds, tijd } from "./OrderTraceDetails.js";
13
13
  const KLEUR = {
14
14
  mislukt: "border-destructive/50 bg-destructive/5",
15
15
  wachtrij: "border-amber-500/40 bg-amber-500/5",
@@ -1,4 +1,4 @@
1
- import type { TraceEventRow } from "../hooks/useLogisticsTrace";
1
+ import type { TraceEventRow } from "../hooks/useLogisticsTrace.js";
2
2
  export declare const FOUTSOORT_LABEL: Record<string, string>;
3
3
  export declare const FOUTSOORT_UITLEG: Record<string, string>;
4
4
  export declare const STATUS_KLEUR: Record<string, string>;
@@ -9,8 +9,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
9
9
  import { useState } from "react";
10
10
  import { Badge } from "@flowselections/core";
11
11
  import { AlertTriangle, ChevronDown, ChevronRight, Database, ExternalLink } from "lucide-react";
12
- import { flowNodeLabel } from "../lib/flowNodes";
13
- import { foutTekst } from "../lib/foutTekst";
12
+ import { flowNodeLabel } from "../lib/flowNodes.js";
13
+ import { foutTekst } from "../lib/foutTekst.js";
14
14
  export const FOUTSOORT_LABEL = {
15
15
  technisch: "Technische fout",
16
16
  ontbrekende_gegevens: "Ontbrekende gegevens",
@@ -10,9 +10,9 @@ import { useMemo, useState } from "react";
10
10
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Skeleton, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@flowselections/core";
11
11
  import { AlertTriangle, RefreshCw, RotateCcw } from "lucide-react";
12
12
  import { toast } from "sonner";
13
- import { usePlanWachtrij } from "../hooks/usePlanWachtrij";
14
- import { foutTekst } from "../lib/foutTekst";
15
- import { GearchiveerdeOrdersCard } from "./GearchiveerdeOrdersCard";
13
+ import { usePlanWachtrij } from "../hooks/usePlanWachtrij.js";
14
+ import { foutTekst } from "../lib/foutTekst.js";
15
+ import { GearchiveerdeOrdersCard } from "./GearchiveerdeOrdersCard.js";
16
16
  const STAND_KLEUR = {
17
17
  wacht: "bg-amber-500/15 text-amber-700 dark:text-amber-300",
18
18
  bezig: "bg-sky-500/15 text-sky-700 dark:text-sky-300",
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useQuery } from "@tanstack/react-query";
3
3
  import { useServerFn } from "@tanstack/react-start";
4
4
  import { Badge, Skeleton, Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@flowselections/core";
5
- import { getPlannerDiffOverview } from "../lib/plannerDiff.functions";
5
+ import { getPlannerDiffOverview } from "../lib/plannerDiff.functions.js";
6
6
  const MODUS = {
7
7
  off: "Uit (wissen en opnieuw opbouwen)",
8
8
  dry_run: "Proef (oude aanpak leidend, vergelijking ernaast)",
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  // ============================================================================
6
6
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
7
7
  import { AlertTriangle, Printer, RefreshCw } from "lucide-react";
8
- import { PRINTJOB_STATUS_LABEL, PRINTJOB_STUCK_MINUTES, formatAge, usePrintjobs, } from "../hooks/usePrintjobs";
8
+ import { PRINTJOB_STATUS_LABEL, PRINTJOB_STUCK_MINUTES, formatAge, usePrintjobs, } from "../hooks/usePrintjobs.js";
9
9
  function tijd(value) {
10
10
  try {
11
11
  return new Date(value).toLocaleString("nl-NL", { dateStyle: "short", timeStyle: "short" });
@@ -10,17 +10,17 @@ import { useCallback, useEffect, useState } from "react";
10
10
  import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, supabase, } from "@flowselections/core";
11
11
  import { RefreshCw, Workflow } from "lucide-react";
12
12
  import { Link } from "@tanstack/react-router";
13
- import { ConsistentieCard } from "./ConsistentieCard";
14
- import { KarplanStatusCard } from "./KarplanStatusCard";
15
- import { KardekkingCard } from "./KardekkingCard";
16
- import { MisluktVerzendbrievenCard } from "./MisluktVerzendbrievenCard";
17
- import { PlannerDiffCard } from "./PlannerDiffCard";
18
- import { BeladingsafwijkingenCard } from "./BeladingsafwijkingenCard";
19
- import { OrderLogboek } from "./OrderLogboek";
20
- import { MinuutrondeCard } from "./MinuutrondeCard";
21
- import { InklapbaarVenster } from "./InklapbaarVenster";
22
- import { tellOpenTaken } from "../lib/taskCounts";
23
- import { LOGISTICS_MODULES } from "../lib/logisticsTasks";
13
+ import { ConsistentieCard } from "./ConsistentieCard.js";
14
+ import { KarplanStatusCard } from "./KarplanStatusCard.js";
15
+ import { KardekkingCard } from "./KardekkingCard.js";
16
+ import { MisluktVerzendbrievenCard } from "./MisluktVerzendbrievenCard.js";
17
+ import { PlannerDiffCard } from "./PlannerDiffCard.js";
18
+ import { BeladingsafwijkingenCard } from "./BeladingsafwijkingenCard.js";
19
+ import { OrderLogboek } from "./OrderLogboek.js";
20
+ import { MinuutrondeCard } from "./MinuutrondeCard.js";
21
+ import { InklapbaarVenster } from "./InklapbaarVenster.js";
22
+ import { tellOpenTaken } from "../lib/taskCounts.js";
23
+ import { LOGISTICS_MODULES } from "../lib/logisticsTasks.js";
24
24
  export function RegiePage() {
25
25
  // Alleen open en geplande taken, geteld in de database (geen 500-grens, geen geannuleerde).
26
26
  const [perModule, setPerModule] = useState({});
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import { type EngineRol } from "../hooks/useEngineRollen";
2
+ import { type EngineRol } from "../hooks/useEngineRollen.js";
3
3
  export declare function RolPoort({ rollen, children }: {
4
4
  rollen: readonly EngineRol[];
5
5
  children: ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Card, CardContent, Skeleton } from "@flowselections/core";
3
- import { heeftToegang, useEngineRollen } from "../hooks/useEngineRollen";
3
+ import { heeftToegang, useEngineRollen } from "../hooks/useEngineRollen.js";
4
4
  export function RolPoort({ rollen, children }) {
5
5
  const { rollen: mijn, geladen } = useEngineRollen();
6
6
  if (!geladen)
@@ -8,17 +8,17 @@ import { useSearch } from "@tanstack/react-router";
8
8
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, Input, Label, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Skeleton, } from "@flowselections/core";
9
9
  import { AlertTriangle, CheckCircle2, ChevronLeft, ChevronRight, MoreVertical, Plus, RefreshCw, Save, Trash2, } from "lucide-react";
10
10
  import { toast } from "@flowselections/core";
11
- import { useRecalcJob, phaseLabel } from "../hooks/useRecalcJob";
12
- import { fieldVisible, } from "../lib/ruleEngineSchema";
13
- import { WIZARD_STEPS, groupSummary, isAdvancedField, } from "../lib/ruleEngineWizard";
14
- import { useRuleEngine } from "../hooks/useRuleEngine";
15
- import { RuleFieldInput } from "./rule-engine/RuleFieldInput";
16
- import { CollapsibleGroup } from "./rule-engine/CollapsibleGroup";
17
- import { ConditionsEditor } from "./rule-engine/ConditionsEditor";
18
- import { ImpactPanel } from "./rule-engine/ImpactPanel";
19
- import { VersionsPanel } from "./rule-engine/VersionsPanel";
20
- import { RolPoort } from "./RolPoort";
21
- import { ENGINE_TOEGANG } from "../hooks/useEngineRollen";
11
+ import { useRecalcJob, phaseLabel } from "../hooks/useRecalcJob.js";
12
+ import { fieldVisible, } from "../lib/ruleEngineSchema.js";
13
+ import { WIZARD_STEPS, groupSummary, isAdvancedField, } from "../lib/ruleEngineWizard.js";
14
+ import { useRuleEngine } from "../hooks/useRuleEngine.js";
15
+ import { RuleFieldInput } from "./rule-engine/RuleFieldInput.js";
16
+ import { CollapsibleGroup } from "./rule-engine/CollapsibleGroup.js";
17
+ import { ConditionsEditor } from "./rule-engine/ConditionsEditor.js";
18
+ import { ImpactPanel } from "./rule-engine/ImpactPanel.js";
19
+ import { VersionsPanel } from "./rule-engine/VersionsPanel.js";
20
+ import { RolPoort } from "./RolPoort.js";
21
+ import { ENGINE_TOEGANG } from "../hooks/useEngineRollen.js";
22
22
  const WIDE_TYPES = ["priority", "toggle", "days", "radio", "textarea", "guidance"];
23
23
  function fieldClass(field) {
24
24
  return WIDE_TYPES.includes(field.type) ? "md:col-span-2" : "";
@@ -1,4 +1,4 @@
1
- import type { LogistiekStrategie, StrategieInput } from "../hooks/useLogistiekStrategieen";
1
+ import type { LogistiekStrategie, StrategieInput } from "../hooks/useLogistiekStrategieen.js";
2
2
  interface Props {
3
3
  open: boolean;
4
4
  onOpenChange: (open: boolean) => void;
@@ -6,7 +6,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  // en of hij mislukt. Alleen lezen.
7
7
  // ============================================================================
8
8
  import { AlertTriangle, CheckCircle2, RefreshCw } from "lucide-react";
9
- import { useTaakGezondheid } from "../hooks/useTaakGezondheid";
9
+ import { useTaakGezondheid } from "../hooks/useTaakGezondheid.js";
10
10
  function geleden(tijd) {
11
11
  if (!tijd)
12
12
  return "nooit gedraaid";
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // ============================================================================
5
5
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
6
6
  import { CheckCircle2, Clock, RefreshCw, ThumbsUp } from "lucide-react";
7
- import { VERTRAGING_PRIORITEIT, useVertragingMeldingen } from "../hooks/useVertragingMeldingen";
7
+ import { VERTRAGING_PRIORITEIT, useVertragingMeldingen } from "../hooks/useVertragingMeldingen.js";
8
8
  function tijd(value) {
9
9
  if (!value)
10
10
  return "onbekend";
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  // ============================================================================
5
5
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Skeleton, } from "@flowselections/core";
6
6
  import { AlertTriangle, CheckCircle2, Mail, RefreshCw } from "lucide-react";
7
- import { PRIORITEIT_LABELS, useVoorraadMeldingen } from "../hooks/useVoorraadMeldingen";
7
+ import { PRIORITEIT_LABELS, useVoorraadMeldingen } from "../hooks/useVoorraadMeldingen.js";
8
8
  function tijd(value) {
9
9
  try {
10
10
  return new Date(value).toLocaleString("nl-NL", { dateStyle: "short", timeStyle: "short" });