@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
@@ -1,7 +1,7 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- import type { PlannerInputItem } from "./loadCarrierPlanner";
3
- import type { LoadCarrierTypeRow } from "./loadCarrierTypes";
4
- import type { DimensionCarrier, DimensionItem } from "./dimensionPlanner";
2
+ import type { PlannerInputItem } from "./loadCarrierPlanner.js";
3
+ import type { LoadCarrierTypeRow } from "./loadCarrierTypes.js";
4
+ import type { DimensionCarrier, DimensionItem } from "./dimensionPlanner.js";
5
5
  export interface MissingDimension {
6
6
  /** product | fust | ladingdrager */
7
7
  subject: "product" | "fust" | "ladingdrager";
@@ -3,7 +3,7 @@ export declare const getFloridayConnection: import("@tanstack/start-client-core"
3
3
  supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
4
4
  userId: string;
5
5
  claims: import("@supabase/auth-js").User;
6
- }, undefined, undefined, undefined>], undefined, Promise<import("./floridayDocuments.server").FloridayActiveConnection | import("./floridayDocuments.server").FloridayConnectionError>>;
6
+ }, undefined, undefined, undefined>], undefined, Promise<import("./floridayDocuments.server.js").FloridayActiveConnection | import("./floridayDocuments.server.js").FloridayConnectionError>>;
7
7
  /** Eén document voor een printtaak. ok:false is een printfout, geen crash. */
8
8
  export declare const fetchLogisticsDocument: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, undefined, undefined, undefined>, import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
9
9
  supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
@@ -11,7 +11,7 @@ export const getFloridayConnection = createServerFn({ method: "GET" })
11
11
  .middleware([readableServerErrors, requireSupabaseAuth])
12
12
  .handler(async () => {
13
13
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
14
- const { getFlorydayActiveConnection } = await import("./floridayDocuments.server");
14
+ const { getFlorydayActiveConnection } = await import("./floridayDocuments.server.js");
15
15
  return getFlorydayActiveConnection(supabaseAdmin);
16
16
  });
17
17
  /** Eén document voor een printtaak. ok:false is een printfout, geen crash. */
@@ -20,7 +20,7 @@ export const fetchLogisticsDocument = createServerFn({ method: "POST" })
20
20
  .inputValidator((input) => input)
21
21
  .handler(async ({ data }) => {
22
22
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
23
- const { getFlorydayDocument, claimDocumentPrint, finishDocumentPrint } = await import("./floridayDocuments.server");
23
+ const { getFlorydayDocument, claimDocumentPrint, finishDocumentPrint } = await import("./floridayDocuments.server.js");
24
24
  const supabase = supabaseAdmin;
25
25
  const claim = await claimDocumentPrint(supabase, {
26
26
  orderRef: data.orderRef,
@@ -49,7 +49,7 @@ export const fetchMergedLogisticsDocuments = createServerFn({ method: "POST" })
49
49
  .inputValidator((input) => input)
50
50
  .handler(async ({ data }) => {
51
51
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
52
- const { getFlorydayMergedDocument, claimDocumentPrint, finishDocumentPrint } = await import("./floridayDocuments.server");
52
+ const { getFlorydayMergedDocument, claimDocumentPrint, finishDocumentPrint } = await import("./floridayDocuments.server.js");
53
53
  const supabase = supabaseAdmin;
54
54
  const claim = await claimDocumentPrint(supabase, {
55
55
  orderRef: data.orderRef,
@@ -15,7 +15,7 @@ export const retryFloridayPush = createServerFn({ method: "POST" })
15
15
  })
16
16
  .handler(async ({ data }) => {
17
17
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
18
- const { queueFloridayPush } = await import("./floridayPush.server");
18
+ const { queueFloridayPush } = await import("./floridayPush.server.js");
19
19
  await queueFloridayPush(supabaseAdmin, data.orderRef);
20
20
  return { ok: true };
21
21
  });
@@ -1,5 +1,5 @@
1
- import { type RuleEngineSettings, type RuleField, type RuleGroup } from "./ruleEngineSchema";
2
- import { type WizardStep } from "./ruleEngineWizard";
1
+ import { type RuleEngineSettings, type RuleField, type RuleGroup } from "./ruleEngineSchema.js";
2
+ import { type WizardStep } from "./ruleEngineWizard.js";
3
3
  export interface FlowBranch {
4
4
  value: string;
5
5
  label: string;
@@ -6,8 +6,8 @@
6
6
  // de engine gebruikt. Er wordt hier geen aparte flow beschreven: verandert een
7
7
  // instelling, dan verandert dit schema mee.
8
8
  // ============================================================================
9
- import { fieldVisible, optionLabel, conditionFieldLabel, conditionOperatorLabel, } from "./ruleEngineSchema";
10
- import { WIZARD_STEPS } from "./ruleEngineWizard";
9
+ import { fieldVisible, optionLabel, conditionFieldLabel, conditionOperatorLabel, } from "./ruleEngineSchema.js";
10
+ import { WIZARD_STEPS } from "./ruleEngineWizard.js";
11
11
  const DAY_SHORT = {
12
12
  mon: "ma",
13
13
  tue: "di",
@@ -1,5 +1,5 @@
1
- import type { FlowTree, TreeNode } from "./flowTree";
2
- import type { TraceEvent } from "./trace.server";
1
+ import type { FlowTree, TreeNode } from "./flowTree.js";
2
+ import type { TraceEvent } from "./trace.server.js";
3
3
  /** Eén vakje op de route die voor deze order geldt. */
4
4
  export interface JourneyVak {
5
5
  nodeId: string;
@@ -9,7 +9,7 @@
9
9
  //
10
10
  // Puur observerend: hier wordt niets besloten, gepland, geprint of gewijzigd.
11
11
  // ============================================================================
12
- import { FLOW_NODE, bronNodeVoor } from "./flowNodes";
12
+ import { FLOW_NODE, bronNodeVoor } from "./flowNodes.js";
13
13
  const HOOFDSTAPPEN = new Set([
14
14
  FLOW_NODE.samenvoegen,
15
15
  FLOW_NODE.ontvangst,
@@ -1,7 +1,7 @@
1
- import type { FlowTree } from "./flowTree";
2
- import type { NodeTraceGroep } from "./nodeTrace";
3
- import { type StopReden } from "./stopReden";
4
- import type { TraceOrderStand } from "../hooks/useOrderTrace";
1
+ import type { FlowTree } from "./flowTree.js";
2
+ import type { NodeTraceGroep } from "./nodeTrace.js";
3
+ import { type StopReden } from "./stopReden.js";
4
+ import type { TraceOrderStand } from "../hooks/useOrderTrace.js";
5
5
  /** Eén herberekening zoals `logistics_trace_versions` die teruggeeft. */
6
6
  export interface OrderVersie {
7
7
  id: string;
@@ -11,10 +11,10 @@
11
11
  // stap gold, komt uit de instellingen van nú; het logboek bewaart (nog) geen
12
12
  // momentopname van de werkwijze per herberekening. Dat melden we in de kaart.
13
13
  // ============================================================================
14
- import { WIZARD_STEPS } from "./ruleEngineWizard";
15
- import { FLOW_NODE, bronNodeVoor } from "./flowNodes";
16
- import { vakUitleg } from "./vakUitleg";
17
- import { stopReden, samenkomstStop } from "./stopReden";
14
+ import { WIZARD_STEPS } from "./ruleEngineWizard.js";
15
+ import { FLOW_NODE, bronNodeVoor } from "./flowNodes.js";
16
+ import { vakUitleg } from "./vakUitleg.js";
17
+ import { stopReden, samenkomstStop } from "./stopReden.js";
18
18
  const STEP_IDS = WIZARD_STEPS.map((s) => s.id);
19
19
  const STAP = {
20
20
  combineren: STEP_IDS[0] ?? "orders_combineren",
@@ -1,4 +1,4 @@
1
- import { type RuleEngineSettings, type RuleField } from "./ruleEngineSchema";
1
+ import { type RuleEngineSettings, type RuleField } from "./ruleEngineSchema.js";
2
2
  export type FlowState = "active" | "possible" | "disabled";
3
3
  export type TreeNodeKind = "start" | "end" | "source" | "step" | "decision" | "setting" | "option" | "merge";
4
4
  export interface TreeOption {
@@ -8,8 +8,8 @@
8
8
  // dezelfde `fieldVisible`-logica bepaald die de engine en het instelscherm
9
9
  // gebruiken. Er staat hier geen aparte flowlogica.
10
10
  // ============================================================================
11
- import { fieldVisible, optionLabel, } from "./ruleEngineSchema";
12
- import { WIZARD_STEPS, fieldHelp } from "./ruleEngineWizard";
11
+ import { fieldVisible, optionLabel, } from "./ruleEngineSchema.js";
12
+ import { WIZARD_STEPS, fieldHelp } from "./ruleEngineWizard.js";
13
13
  export const NODE_SIZE = {
14
14
  start: { w: 240, h: 60 },
15
15
  end: { w: 240, h: 60 },
@@ -10,7 +10,7 @@ export declare const replanOrderLoadCarriers: import("@tanstack/start-client-cor
10
10
  orderId: string;
11
11
  dryRun?: boolean;
12
12
  carrierType?: string | null;
13
- }, Promise<import("./loadCarrierPlanning.server").ReplanResult | null>>;
13
+ }, Promise<import("./loadCarrierPlanning.server.js").ReplanResult | null>>;
14
14
  export declare const replanBufferLoadCarriers: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, undefined, undefined, undefined, undefined>, import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
15
15
  supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
16
16
  userId: string;
@@ -23,7 +23,7 @@ export declare const replanBufferLoadCarriers: import("@tanstack/start-client-co
23
23
  bufferId: string;
24
24
  dryRun?: boolean;
25
25
  carrierType?: string | null;
26
- }, Promise<import("./loadCarrierPlanning.server").ReplanResult>>;
26
+ }, Promise<import("./loadCarrierPlanning.server.js").ReplanResult>>;
27
27
  /**
28
28
  * Deelt alle orders in, in batches. De client roept dit net zo lang aan tot
29
29
  * `done` waar is en schakelt dan door naar de volgende fase.
@@ -40,7 +40,7 @@ export declare const planAllLoadCarriers: import("@tanstack/start-client-core").
40
40
  phase?: "buffers" | "orders";
41
41
  cursor?: string | null;
42
42
  limit?: number;
43
- }, Promise<import("./bulkLoadCarrierPlanning.server").BulkPlanBatchResult>>;
43
+ }, Promise<import("./bulkLoadCarrierPlanning.server.js").BulkPlanBatchResult>>;
44
44
  /**
45
45
  * Zet voor orders zonder takenketen alsnog een melding klaar, zodat de Engine
46
46
  * de volledige keten (inclusief load.compose) aanmaakt.
@@ -70,5 +70,5 @@ export declare const previewLoadCarrierPlan: import("@tanstack/start-client-core
70
70
  }) => {
71
71
  orderId: string;
72
72
  carrierType?: string | null;
73
- }, Promise<import("./loadCarrierPlanning.server").ReplanResult | null>>;
73
+ }, Promise<import("./loadCarrierPlanning.server.js").ReplanResult | null>>;
74
74
  //# sourceMappingURL=loadCarrierPlanning.functions.d.ts.map
@@ -14,8 +14,8 @@ export const replanOrderLoadCarriers = createServerFn({ method: "POST" })
14
14
  })
15
15
  .handler(async ({ data }) => {
16
16
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
17
- const { replanOrderInternal } = await import("./loadCarrierPlanning.server");
18
- const { attachIndelingToTasks } = await import("./loadCarrierTaskSync.server");
17
+ const { replanOrderInternal } = await import("./loadCarrierPlanning.server.js");
18
+ const { attachIndelingToTasks } = await import("./loadCarrierTaskSync.server.js");
19
19
  const result = await replanOrderInternal(supabaseAdmin, data.orderId, {
20
20
  dryRun: data.dryRun,
21
21
  carrierType: data.carrierType ?? null,
@@ -34,8 +34,8 @@ export const replanBufferLoadCarriers = createServerFn({ method: "POST" })
34
34
  })
35
35
  .handler(async ({ data }) => {
36
36
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
37
- const { replanBufferInternal } = await import("./loadCarrierPlanning.server");
38
- const { attachIndelingToTasks } = await import("./loadCarrierTaskSync.server");
37
+ const { replanBufferInternal } = await import("./loadCarrierPlanning.server.js");
38
+ const { attachIndelingToTasks } = await import("./loadCarrierTaskSync.server.js");
39
39
  const result = await replanBufferInternal(supabaseAdmin, data.bufferId, {
40
40
  dryRun: data.dryRun,
41
41
  carrierType: data.carrierType ?? null,
@@ -53,7 +53,7 @@ export const planAllLoadCarriers = createServerFn({ method: "POST" })
53
53
  .inputValidator((data) => data ?? {})
54
54
  .handler(async ({ data }) => {
55
55
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
56
- const { planBuffersBatch, planLooseOrdersBatch } = await import("./bulkLoadCarrierPlanning.server");
56
+ const { planBuffersBatch, planLooseOrdersBatch } = await import("./bulkLoadCarrierPlanning.server.js");
57
57
  const limit = Math.min(Math.max(Number(data.limit ?? 20), 1), 50);
58
58
  const cursor = data.cursor ?? null;
59
59
  if (data.phase === "orders")
@@ -69,7 +69,7 @@ export const ensureLogisticsTasks = createServerFn({ method: "POST" })
69
69
  .inputValidator((data) => data ?? {})
70
70
  .handler(async ({ data, context }) => {
71
71
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
72
- const { findOrdersWithoutTasks } = await import("./bulkLoadCarrierPlanning.server");
72
+ const { findOrdersWithoutTasks } = await import("./bulkLoadCarrierPlanning.server.js");
73
73
  const limit = Math.min(Math.max(Number(data.limit ?? 50), 1), 200);
74
74
  const orders = await findOrdersWithoutTasks(supabaseAdmin, limit);
75
75
  let created = 0;
@@ -107,6 +107,6 @@ export const previewLoadCarrierPlan = createServerFn({ method: "POST" })
107
107
  })
108
108
  .handler(async ({ data }) => {
109
109
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
110
- const { replanOrderInternal } = await import("./loadCarrierPlanning.server");
110
+ const { replanOrderInternal } = await import("./loadCarrierPlanning.server.js");
111
111
  return replanOrderInternal(supabaseAdmin, data.orderId, { dryRun: true, carrierType: data.carrierType ?? null });
112
112
  });
@@ -1,7 +1,7 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- import { type CarrierProfile, type PlannedLoadUnit, type PlannerInputItem } from "./loadCarrierPlanner";
3
- import { type LoadCarrierTypeRow } from "./loadCarrierTypes";
4
- import { type DimensionCart } from "./dimensionPlanner";
2
+ import { type CarrierProfile, type PlannedLoadUnit, type PlannerInputItem } from "./loadCarrierPlanner.js";
3
+ import { type LoadCarrierTypeRow } from "./loadCarrierTypes.js";
4
+ import { type DimensionCart } from "./dimensionPlanner.js";
5
5
  export declare function resolveBufferForOrderInternal(sb: SupabaseClient, orderId: string): Promise<string | null>;
6
6
  interface Belading {
7
7
  plants_per_crate: number;
@@ -5,12 +5,12 @@
5
5
  // draait de pure planner per ladingdragertype en schrijft het resultaat weg
6
6
  // naar order_carts / order_cart_items.
7
7
  // ============================================================================
8
- import { planLoadUnits, LOAD_CARRIER_PLANNER_VERSION, } from "./loadCarrierPlanner";
9
- import { traceBatch } from "./trace.server";
10
- import { MODULE_VERSION } from "./moduleVersion";
11
- import { fallbackCarrierProfile } from "./loadCarrierTypes";
12
- import { planByDimensions, DIMENSION_PLANNER_VERSION } from "./dimensionPlanner";
13
- import { buildDimensionItems, carrierDimensions } from "./dimensionData.server";
8
+ import { planLoadUnits, LOAD_CARRIER_PLANNER_VERSION, } from "./loadCarrierPlanner.js";
9
+ import { traceBatch } from "./trace.server.js";
10
+ import { MODULE_VERSION } from "./moduleVersion.js";
11
+ import { fallbackCarrierProfile } from "./loadCarrierTypes.js";
12
+ import { planByDimensions, DIMENSION_PLANNER_VERSION } from "./dimensionPlanner.js";
13
+ import { buildDimensionItems, carrierDimensions } from "./dimensionData.server.js";
14
14
  // ---------------------------------------------------------------------------
15
15
  // Buffer
16
16
  // ---------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
1
  import type { SupabaseClient } from "@supabase/supabase-js";
2
- import type { ReplanResult } from "./loadCarrierPlanning.server";
2
+ import type { ReplanResult } from "./loadCarrierPlanning.server.js";
3
3
  export declare function attachIndelingToTasks(sb: SupabaseClient, result: ReplanResult | null): Promise<number>;
4
4
  //# sourceMappingURL=loadCarrierTaskSync.server.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { CapacityModel, CarrierProfile } from "./loadCarrierPlanner";
1
+ import type { CapacityModel, CarrierProfile } from "./loadCarrierPlanner.js";
2
2
  export type LoadCarrierCode = "trolley" | "danish_container" | "euro_rolcontainer" | "pallet" | "euro_pallet" | "loose";
3
3
  export interface LoadCarrierTypeRow extends CarrierProfile {
4
4
  id: string;
@@ -1,5 +1,5 @@
1
- import type { RuleEngineSettings } from "./ruleEngineSchema";
2
- import { type LogisticsModuleKey, type LogisticsTaskType } from "./logisticsTasks";
1
+ import type { RuleEngineSettings } from "./ruleEngineSchema.js";
2
+ import { type LogisticsModuleKey, type LogisticsTaskType } from "./logisticsTasks.js";
3
3
  export type LoadCarrierType = "trolley" | "danish_container" | "euro_rolcontainer" | "pallet" | "euro_pallet" | "loose";
4
4
  export interface PlannerLoadCarrier {
5
5
  type: LoadCarrierType;
@@ -5,8 +5,8 @@
5
5
  // Volledig deterministisch: zelfde input geeft altijd dezelfde taken.
6
6
  // Geen database, geen netwerk — daardoor los testbaar.
7
7
  // ============================================================================
8
- import { TASK_OWNER } from "./logisticsTasks";
9
- import { normalizeBufferCriteria } from "./bufferMatching";
8
+ import { TASK_OWNER } from "./logisticsTasks.js";
9
+ import { normalizeBufferCriteria } from "./bufferMatching.js";
10
10
  // ---------------------------------------------------------------------------
11
11
  // Hulp
12
12
  // ---------------------------------------------------------------------------
@@ -9,7 +9,7 @@ export const startRecalcJob = createServerFn({ method: "POST" })
9
9
  .inputValidator((data) => data ?? {})
10
10
  .handler(async ({ data, context }) => {
11
11
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
12
- const { startJob } = await import("./logisticsRecalcJob.server");
12
+ const { startJob } = await import("./logisticsRecalcJob.server.js");
13
13
  const job = await startJob(supabaseAdmin, context.userId ?? null, data.strategyId ?? null);
14
14
  return { id: job.id, status: job.status, phase: job.phase };
15
15
  });
@@ -17,7 +17,7 @@ export const tickRecalcJob = createServerFn({ method: "POST" })
17
17
  .middleware([readableServerErrors, requireSupabaseAuth])
18
18
  .handler(async () => {
19
19
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
20
- const { tickJob } = await import("./logisticsRecalcJob.server");
20
+ const { tickJob } = await import("./logisticsRecalcJob.server.js");
21
21
  const job = await tickJob(supabaseAdmin);
22
22
  return job
23
23
  ? {
@@ -1 +1 @@
1
- {"version":3,"file":"modulePrompts.d.ts","sourceRoot":"","sources":["../../src/lib/modulePrompts.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAKvB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AA0qLD,eAAO,MAAM,cAAc,EAAE,YAAY,EAUL,CAAC;AAErC,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CAmBR;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAIR"}
1
+ {"version":3,"file":"modulePrompts.d.ts","sourceRoot":"","sources":["../../src/lib/modulePrompts.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAKvB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAguLD,eAAO,MAAM,cAAc,EAAE,YAAY,EAUL,CAAC;AAErC,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CAmBR;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAIR"}
@@ -6,7 +6,7 @@
6
6
  // bij (oplopend genummerd). Zo kan een al verstuurde prompt gewoon blijven
7
7
  // staan en stuur je alleen het nieuwe stuk door.
8
8
  // ============================================================================
9
- import { LOGISTICS_MODULES } from "./logisticsTasks";
9
+ import { LOGISTICS_MODULES } from "./logisticsTasks.js";
10
10
  /**
11
11
  * Modules met een koppelprompt. Naast de modules die taken uitvoeren staat hier
12
12
  * ook de Layout maker: die voert geen logistieke taken uit, maar levert wel de
@@ -1050,6 +1050,59 @@ REGELS
1050
1050
  CONTROLELIJST
1051
1051
  [ ] Buffer met 2 orders en 2 karren: beide orders tonen 2 karren, "gedeeld".
1052
1052
  [ ] Losse order: geen "gedeeld".
1053
+ [ ] Meld terug met je pakketversie.`,
1054
+ },
1055
+ {
1056
+ number: 24,
1057
+ title: "Ophaalmoment uitsluitend uit logistics_order_departure",
1058
+ date: "2026-10-19",
1059
+ summary: "Verkoop rekent ophalen/aanmelden zelf en toont bij HO-2601441 wo 21-10; de juiste uitkomst is di 20-10 15:00. Toon alleen wat de Engine teruggeeft.",
1060
+ body: `KOPPELPROMPT VERKOOP 24 – vereist Logistiek Engine 1.0.160
1061
+
1062
+ WAAROM
1063
+ Bij HO-2601441 (levering wo 21 okt 08:00, vervoerder met ophaalmoment
1064
+ "1 werkdag vóór levering 15:00, aanmelden 13:00") toont Verkoop
1065
+ "wo 21 okt 15:00 ophalen · aanmelden di 20 okt 13:00 · aanlevering 08:00".
1066
+ Dat klopt niet: ophalen is di 20 okt 15:00, aanmelden di 20 okt 13:00.
1067
+ Verkoop rekent het ophaalmoment zelf uit en telt de dagen voor ophalen niet
1068
+ terug. Pickstation, taken en karren gebruiken de Engine-uitkomst; Verkoop
1069
+ moet exact hetzelfde tonen.
1070
+
1071
+ WAT ER IS
1072
+ public.logistics_order_departure(p_order_id uuid) RETURNS jsonb
1073
+ Rechten: authenticated en service_role (niet anon). Eén aanroep per order.
1074
+ Velden (ontbrekend = null):
1075
+ - ok boolean – false als er geen geldig ophaalmoment is
1076
+ - reason text – Nederlandse reden als ok = false (of bij terugval op levermoment)
1077
+ - carrierId uuid – vervoerder van de order
1078
+ - momentKey text – ophaalmomentsleutel in Afhandeling-formaat, bv. "1@15:00|1@13:00"
1079
+ - departureAt timestamptz – ophaal/vertrekmoment
1080
+ - signupDeadline timestamptz – aanmelddeadline
1081
+ - lateSignup boolean – order kwam binnen na de aanmelddeadline
1082
+ Werkdagen komen uit logistics_is_pick_workday (incl. afwijkende dagen), de
1083
+ tijdzone uit Werktijden.
1084
+
1085
+ WAT JIJ DOET
1086
+ 1. Verwijder de eigen berekening van ophaal- en aanmeldmoment in Verkoop.
1087
+ 2. Toon "ophalen" uit departureAt en "aanmelden" uit signupDeadline, in de
1088
+ tijdzone die de Shell al gebruikt voor datums.
1089
+ 3. lateSignup = true: toon "te laat aangemeld" naast het ophaalmoment.
1090
+ 4. ok = false of geen antwoord: toon de reden uit reason, geen eigen
1091
+ berekening of terugvaltijd.
1092
+ 5. "aanlevering" (levermoment van de order) mag blijven, maar los van het
1093
+ ophaalmoment.
1094
+ 6. Meerdere orders tegelijk: roep per zichtbare order aan, of vraag de
1095
+ Engine om een lijstfunctie (meld dat terug); niet zelf rekenen.
1096
+
1097
+ REGELS
1098
+ - Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
1099
+ - Teksten in "je"-vorm, zonder technische termen.
1100
+
1101
+ CONTROLELIJST
1102
+ [ ] HO-2601441: "di 20 okt 15:00 ophalen · aanmelden di 20 okt 13:00".
1103
+ [ ] FO-2601440 (levering ma 26 okt): "vr 23 okt 15:00 ophalen".
1104
+ [ ] MO-2601442: "wo 21 okt 09:30 ophalen".
1105
+ [ ] Order zonder vervoerder: reden zichtbaar, geen verzonnen tijd.
1053
1106
  [ ] Meld terug met je pakketversie.`,
1054
1107
  },
1055
1108
  ],
@@ -1,2 +1,2 @@
1
- export declare const MODULE_VERSION = "1.0.157";
1
+ export declare const MODULE_VERSION = "1.0.162";
2
2
  //# sourceMappingURL=moduleVersion.d.ts.map
@@ -1,2 +1,2 @@
1
1
  // Automatisch gegenereerd door prebuild:lib; niet handmatig aanpassen.
2
- export const MODULE_VERSION = "1.0.157";
2
+ export const MODULE_VERSION = "1.0.162";
@@ -1,4 +1,4 @@
1
- import type { TraceEventRow } from "../hooks/useLogisticsTrace";
1
+ import type { TraceEventRow } from "../hooks/useLogisticsTrace.js";
2
2
  export type NodeStatus = "geslaagd" | "wachtend" | "waarschuwing" | "overgeslagen" | "mislukt";
3
3
  export interface NodeTraceGroep {
4
4
  nodeId: string;
@@ -5,7 +5,7 @@
5
5
  // gebeurtenissen missen dat; die plaatsen we met een terugval op stap/fase.
6
6
  // Alleen lezen: hier wordt niets bepaald, alleen gegroepeerd.
7
7
  // ============================================================================
8
- import { FLOW_NODE } from "./flowNodes";
8
+ import { FLOW_NODE } from "./flowNodes.js";
9
9
  /** Terugval voor oude gebeurtenissen zonder vastgelegd vakje. */
10
10
  export function gokNode(e) {
11
11
  if (e.nodeId)
@@ -14,6 +14,8 @@ export declare function runPlanQueue(sb: SupabaseClient, options?: {
14
14
  deadlineAt?: number;
15
15
  limit?: number | null;
16
16
  }): Promise<PlanQueueResult>;
17
+ /** Elke minuut: vertrek op nieuwe karren en taakstatus laten meelopen (alleen nieuwe orders). */
18
+ export declare const FOLLOW_UP_CALLS: readonly ["logistics_fill_cart_departure", "logistics_sync_task_status"];
17
19
  /** Ruimt afgeronde wachtrijrijen op volgens de ingestelde bewaartermijn. */
18
20
  export declare function prunePlanQueue(sb: SupabaseClient): Promise<void>;
19
21
  //# sourceMappingURL=planQueue.server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"planQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/planQueue.server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwBD,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,CAAC,CAwR1B;AAmDD,4EAA4E;AAE5E,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
1
+ {"version":3,"file":"planQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/planQueue.server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwBD,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,CAAC,CAwR1B;AAgCD,iGAAiG;AACjG,eAAO,MAAM,eAAe,0EAA2E,CAAC;AAgCxG,4EAA4E;AAE5E,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
@@ -310,6 +310,16 @@ async function runDayLevelSteps(sb, dates, result) {
310
310
  if (error && result.errors.length < 10)
311
311
  result.errors.push(`${call.fn}: ${error.message}`);
312
312
  }
313
+ await runCartAndTaskFollowUp(sb, result);
314
+ }
315
+ /** Elke minuut: vertrek op nieuwe karren en taakstatus laten meelopen (alleen nieuwe orders). */
316
+ export const FOLLOW_UP_CALLS = ["logistics_fill_cart_departure", "logistics_sync_task_status"];
317
+ async function runCartAndTaskFollowUp(sb, result) {
318
+ for (const fn of FOLLOW_UP_CALLS) {
319
+ const { error } = await sb.rpc(fn, {});
320
+ if (error && result.errors.length < 10)
321
+ result.errors.push(`${fn}: ${error.message}`);
322
+ }
313
323
  }
314
324
  /** Werkt alleen de pickwachtrij bij, ook als er niets te plannen viel. */
315
325
  async function syncPickQueue(sb, result) {
@@ -322,6 +332,7 @@ async function syncPickQueue(sb, result) {
322
332
  if (pruneError && result.errors.length < 10) {
323
333
  result.errors.push(`logistics_prune_buffer_member_queue: ${pruneError.message}`);
324
334
  }
335
+ await runCartAndTaskFollowUp(sb, result);
325
336
  // Ook zonder nieuwe planning schuift de reis van bestaande orders door.
326
337
  const { error: traceError } = await sb.rpc("logistics_trace_progress", { p_limit: 200 });
327
338
  if (traceError && result.errors.length < 10) {
@@ -2,7 +2,7 @@
2
2
  import { createServerFn } from "@tanstack/react-start";
3
3
  import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
4
4
  import { readableServerErrors } from "./readableServerErrors.js";
5
- import { summarizeDiffRuns } from "./plannerDiff";
5
+ import { summarizeDiffRuns } from "./plannerDiff.js";
6
6
  export const getPlannerDiffOverview = createServerFn({ method: "GET" })
7
7
  .middleware([readableServerErrors, requireSupabaseAuth])
8
8
  .handler(async () => {
@@ -1,4 +1,4 @@
1
- import { type RuleEngineSettings } from "./ruleEngineSchema";
1
+ import { type RuleEngineSettings } from "./ruleEngineSchema.js";
2
2
  export interface ImpactSignal {
3
3
  level: "info" | "warning" | "risk";
4
4
  title: string;
@@ -1,7 +1,7 @@
1
1
  // ============================================================================
2
2
  // src/lib/ruleEngineImpact.ts — impactanalyse en versievergelijking
3
3
  // ============================================================================
4
- import { RULE_STEPS, optionLabel, } from "./ruleEngineSchema";
4
+ import { RULE_STEPS, optionLabel, } from "./ruleEngineSchema.js";
5
5
  function f(settings, step, key) {
6
6
  return settings?.[step]?.fields?.[key];
7
7
  }
@@ -1,4 +1,4 @@
1
- import { type RuleField, type RuleGroup } from "./ruleEngineSchema";
1
+ import { type RuleField, type RuleGroup } from "./ruleEngineSchema.js";
2
2
  export interface WizardStep {
3
3
  id: string;
4
4
  label: string;
@@ -5,7 +5,7 @@
5
5
  // stappen en blokken. De opslag blijft ongewijzigd: elke wizardstap schrijft
6
6
  // naar de bestaande stap-id uit RULE_STEPS (`storeId`).
7
7
  // ============================================================================
8
- import { RULE_STEPS, optionLabel, } from "./ruleEngineSchema";
8
+ import { RULE_STEPS, optionLabel, } from "./ruleEngineSchema.js";
9
9
  function step(id) {
10
10
  const found = RULE_STEPS.find((s) => s.id === id);
11
11
  if (!found)
@@ -1,6 +1,6 @@
1
- import type { TraceOrderStand } from "../hooks/useOrderTrace";
2
- import type { ShippingNoteDiagnose } from "../hooks/useShippingNoteDiagnose";
3
- import type { NodeTraceGroep } from "./nodeTrace";
1
+ import type { TraceOrderStand } from "../hooks/useOrderTrace.js";
2
+ import type { ShippingNoteDiagnose } from "../hooks/useShippingNoteDiagnose.js";
3
+ import type { NodeTraceGroep } from "./nodeTrace.js";
4
4
  export type StopSoort = "mislukt" | "wachtrij" | "handeling" | "nietvastgelegd" | "klaar";
5
5
  export interface StopReden {
6
6
  soort: StopSoort;
@@ -5,9 +5,9 @@
5
5
  // de kaart, in het zijpaneel en in de balk boven de kaart wordt getoond.
6
6
  // Alleen lezen: hier wordt niets bepaald of gewijzigd.
7
7
  // ============================================================================
8
- import { FLOW_NODE, flowNodeLabel } from "./flowNodes";
9
- import { foutSoort, foutTekst } from "./foutTekst";
10
- import { vakUitleg } from "./vakUitleg";
8
+ import { FLOW_NODE, flowNodeLabel } from "./flowNodes.js";
9
+ import { foutSoort, foutTekst } from "./foutTekst.js";
10
+ import { vakUitleg } from "./vakUitleg.js";
11
11
  const WACHTRIJ_TEKST = {
12
12
  pending: "de berekening staat in de wachtrij en is nog niet opgepakt",
13
13
  queued: "de berekening staat in de wachtrij en is nog niet opgepakt",
@@ -1,4 +1,4 @@
1
- import { type NodeTraceGroep } from "./nodeTrace";
1
+ import { type NodeTraceGroep } from "./nodeTrace.js";
2
2
  export interface VakUitleg {
3
3
  /** Welke keuze de Engine hier maakte. */
4
4
  beslissing: string;
@@ -4,9 +4,9 @@
4
4
  // Eén bron van uitleg voor zowel het vakje op de flowkaart als het zijpaneel.
5
5
  // Alleen lezen: hier wordt niets bepaald, alleen leesbaar gemaakt.
6
6
  // ============================================================================
7
- import { FLOW_NODE } from "./flowNodes";
8
- import { foutTekst } from "./foutTekst";
9
- import { isAutomatisch } from "./nodeTrace";
7
+ import { FLOW_NODE } from "./flowNodes.js";
8
+ import { foutTekst } from "./foutTekst.js";
9
+ import { isAutomatisch } from "./nodeTrace.js";
10
10
  const LABELS = {
11
11
  aanmeldmoment: "Aanmeldmoment",
12
12
  nu: "Huidige tijd",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/logistiek-engine",
3
- "version": "1.0.157",
3
+ "version": "1.0.162",
4
4
  "flowselections": {
5
5
  "moduleId": "logistiek-engine",
6
6
  "pages": [
@@ -112,7 +112,7 @@
112
112
  "dev": "vite dev",
113
113
  "build": "vite build",
114
114
  "prebuild:lib": "node -e \"const v=require('./package.json').version;require('fs').writeFileSync('src/lib/moduleVersion.ts','// Automatisch gegenereerd door prebuild:lib; niet handmatig aanpassen.\\nexport const MODULE_VERSION = '+JSON.stringify(v)+';\\n')\"",
115
- "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
115
+ "build:lib": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json --resolve-full-paths && node -e \"require('fs').writeFileSync('dist-lib/styles.css', '@source \\\"./\\\";\\n')\"",
116
116
  "build:lib:watch": "tsc -p tsconfig.build.json --watch",
117
117
  "build:dev": "vite build --mode development",
118
118
  "preview": "vite preview",