@flowselections/logistiek-engine 1.0.33 → 1.0.53

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 (166) hide show
  1. package/README.md +24 -24
  2. package/dist-lib/components/FloridayPoortCard.d.ts.map +1 -1
  3. package/dist-lib/components/FloridayPoortCard.js +2 -1
  4. package/dist-lib/components/FlowCanvas.d.ts +28 -0
  5. package/dist-lib/components/FlowCanvas.d.ts.map +1 -0
  6. package/dist-lib/components/FlowCanvas.js +429 -0
  7. package/dist-lib/components/FlowOrders.d.ts +8 -0
  8. package/dist-lib/components/FlowOrders.d.ts.map +1 -0
  9. package/dist-lib/components/FlowOrders.js +125 -0
  10. package/dist-lib/components/FlowPage.d.ts +2 -0
  11. package/dist-lib/components/FlowPage.d.ts.map +1 -0
  12. package/dist-lib/components/FlowPage.js +141 -0
  13. package/dist-lib/components/InklapbaarVenster.d.ts +9 -0
  14. package/dist-lib/components/InklapbaarVenster.d.ts.map +1 -0
  15. package/dist-lib/components/InklapbaarVenster.js +10 -0
  16. package/dist-lib/components/LogistiekEnginePage.d.ts.map +1 -1
  17. package/dist-lib/components/LogistiekEnginePage.js +9 -3
  18. package/dist-lib/components/LogistiekEngineQueuePage.d.ts +2 -0
  19. package/dist-lib/components/LogistiekEngineQueuePage.d.ts.map +1 -0
  20. package/dist-lib/components/LogistiekEngineQueuePage.js +11 -0
  21. package/dist-lib/components/NodeTracePanel.d.ts +11 -0
  22. package/dist-lib/components/NodeTracePanel.d.ts.map +1 -0
  23. package/dist-lib/components/NodeTracePanel.js +40 -0
  24. package/dist-lib/components/OrderJourneyBar.d.ts +9 -0
  25. package/dist-lib/components/OrderJourneyBar.d.ts.map +1 -0
  26. package/dist-lib/components/OrderJourneyBar.js +26 -0
  27. package/dist-lib/components/OrderLogboek.d.ts +10 -0
  28. package/dist-lib/components/OrderLogboek.d.ts.map +1 -0
  29. package/dist-lib/components/OrderLogboek.js +92 -0
  30. package/dist-lib/components/OrderStopBanner.d.ts +5 -0
  31. package/dist-lib/components/OrderStopBanner.d.ts.map +1 -0
  32. package/dist-lib/components/OrderStopBanner.js +22 -0
  33. package/dist-lib/components/OrderTraceDetails.d.ts +22 -0
  34. package/dist-lib/components/OrderTraceDetails.d.ts.map +1 -0
  35. package/dist-lib/components/OrderTraceDetails.js +87 -0
  36. package/dist-lib/components/RegiePage.d.ts.map +1 -1
  37. package/dist-lib/components/RegiePage.js +11 -69
  38. package/dist-lib/components/WerktijdenCard.d.ts +2 -0
  39. package/dist-lib/components/WerktijdenCard.d.ts.map +1 -0
  40. package/dist-lib/components/WerktijdenCard.js +37 -0
  41. package/dist-lib/components/WerkwijzeHerindelingCard.d.ts.map +1 -1
  42. package/dist-lib/components/WerkwijzeHerindelingCard.js +100 -6
  43. package/dist-lib/hooks/useFloridayGate.d.ts +10 -0
  44. package/dist-lib/hooks/useFloridayGate.d.ts.map +1 -1
  45. package/dist-lib/hooks/useFloridayGate.js +4 -0
  46. package/dist-lib/hooks/useLogisticsTrace.d.ts +78 -0
  47. package/dist-lib/hooks/useLogisticsTrace.d.ts.map +1 -0
  48. package/dist-lib/hooks/useLogisticsTrace.js +152 -0
  49. package/dist-lib/hooks/useOrderNodeTrace.d.ts +11 -0
  50. package/dist-lib/hooks/useOrderNodeTrace.d.ts.map +1 -0
  51. package/dist-lib/hooks/useOrderNodeTrace.js +26 -0
  52. package/dist-lib/hooks/useOrderTrace.d.ts +74 -0
  53. package/dist-lib/hooks/useOrderTrace.d.ts.map +1 -0
  54. package/dist-lib/hooks/useOrderTrace.js +134 -0
  55. package/dist-lib/hooks/useOrderVersies.d.ts +47 -0
  56. package/dist-lib/hooks/useOrderVersies.d.ts.map +1 -0
  57. package/dist-lib/hooks/useOrderVersies.js +180 -0
  58. package/dist-lib/hooks/useRuleEngine.d.ts +1 -0
  59. package/dist-lib/hooks/useRuleEngine.d.ts.map +1 -1
  60. package/dist-lib/hooks/useRuleEngine.js +1 -0
  61. package/dist-lib/hooks/useShippingNoteStatus.d.ts +29 -0
  62. package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -0
  63. package/dist-lib/hooks/useShippingNoteStatus.js +107 -0
  64. package/dist-lib/hooks/useWerktijden.d.ts +33 -0
  65. package/dist-lib/hooks/useWerktijden.d.ts.map +1 -0
  66. package/dist-lib/hooks/useWerktijden.js +88 -0
  67. package/dist-lib/hooks/useWerkwijzeStatus.d.ts +12 -1
  68. package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -1
  69. package/dist-lib/hooks/useWerkwijzeStatus.js +60 -4
  70. package/dist-lib/index.d.ts +13 -0
  71. package/dist-lib/index.d.ts.map +1 -1
  72. package/dist-lib/index.js +13 -0
  73. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1600 -54
  74. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  75. package/dist-lib/integrations/supabase/client.server.d.ts +1600 -54
  76. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  77. package/dist-lib/integrations/supabase/client.server.js +1 -1
  78. package/dist-lib/integrations/supabase/moduleClient.d.ts +1600 -54
  79. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  80. package/dist-lib/integrations/supabase/types.d.ts +1618 -50
  81. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  82. package/dist-lib/lib/cartPlanRequests.server.d.ts +1 -1
  83. package/dist-lib/lib/cartPlanRequests.server.d.ts.map +1 -1
  84. package/dist-lib/lib/cartPlanRequests.server.js +49 -8
  85. package/dist-lib/lib/floridayDocuments.functions.d.ts +4644 -6
  86. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  87. package/dist-lib/lib/floridayDocuments.functions.js +1 -1
  88. package/dist-lib/lib/floridayDocuments.server.d.ts +14 -0
  89. package/dist-lib/lib/floridayDocuments.server.d.ts.map +1 -1
  90. package/dist-lib/lib/floridayDocuments.server.js +58 -0
  91. package/dist-lib/lib/floridayGuard.server.d.ts +2 -2
  92. package/dist-lib/lib/floridayGuard.server.d.ts.map +1 -1
  93. package/dist-lib/lib/floridayGuard.server.js +34 -5
  94. package/dist-lib/lib/floridayPush.functions.d.ts +1600 -54
  95. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  96. package/dist-lib/lib/floridayPush.functions.js +1 -1
  97. package/dist-lib/lib/flowGraph.d.ts +43 -0
  98. package/dist-lib/lib/flowGraph.d.ts.map +1 -0
  99. package/dist-lib/lib/flowGraph.js +153 -0
  100. package/dist-lib/lib/flowNodes.d.ts +23 -0
  101. package/dist-lib/lib/flowNodes.d.ts.map +1 -0
  102. package/dist-lib/lib/flowNodes.js +58 -0
  103. package/dist-lib/lib/flowRoute.d.ts +107 -0
  104. package/dist-lib/lib/flowRoute.d.ts.map +1 -0
  105. package/dist-lib/lib/flowRoute.js +280 -0
  106. package/dist-lib/lib/flowTree.d.ts +64 -0
  107. package/dist-lib/lib/flowTree.d.ts.map +1 -0
  108. package/dist-lib/lib/flowTree.js +519 -0
  109. package/dist-lib/lib/handlers/index.d.ts +1 -0
  110. package/dist-lib/lib/handlers/index.d.ts.map +1 -1
  111. package/dist-lib/lib/handlers/index.js +1 -0
  112. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts +3 -0
  113. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.d.ts.map +1 -0
  114. package/dist-lib/lib/handlers/logistics-shipping-note-now.server.js +100 -0
  115. package/dist-lib/lib/handlers/logistics-tick.server.d.ts.map +1 -1
  116. package/dist-lib/lib/handlers/logistics-tick.server.js +97 -2
  117. package/dist-lib/lib/loadCarrierPlanner.d.ts +2 -0
  118. package/dist-lib/lib/loadCarrierPlanner.d.ts.map +1 -1
  119. package/dist-lib/lib/loadCarrierPlanner.js +18 -0
  120. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +7740 -10
  121. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  122. package/dist-lib/lib/loadCarrierPlanning.functions.js +1 -1
  123. package/dist-lib/lib/loadCarrierPlanning.server.d.ts +9 -0
  124. package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
  125. package/dist-lib/lib/loadCarrierPlanning.server.js +44 -17
  126. package/dist-lib/lib/logisticsPlanner.d.ts.map +1 -1
  127. package/dist-lib/lib/logisticsPlanner.js +14 -2
  128. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +3096 -4
  129. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  130. package/dist-lib/lib/logisticsRecalcJob.functions.js +1 -1
  131. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +1600 -54
  132. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  133. package/dist-lib/lib/logisticsRecalculate.functions.js +1 -1
  134. package/dist-lib/lib/modulePrompts.d.ts +1 -0
  135. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  136. package/dist-lib/lib/modulePrompts.js +3482 -2610
  137. package/dist-lib/lib/nodeTrace.d.ts +61 -0
  138. package/dist-lib/lib/nodeTrace.d.ts.map +1 -0
  139. package/dist-lib/lib/nodeTrace.js +191 -0
  140. package/dist-lib/lib/pickQueueCleanup.server.d.ts +14 -0
  141. package/dist-lib/lib/pickQueueCleanup.server.d.ts.map +1 -0
  142. package/dist-lib/lib/pickQueueCleanup.server.js +80 -0
  143. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  144. package/dist-lib/lib/planQueue.server.js +140 -0
  145. package/dist-lib/lib/ruleEngineImpact.d.ts.map +1 -1
  146. package/dist-lib/lib/ruleEngineImpact.js +11 -4
  147. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  148. package/dist-lib/lib/ruleEngineSchema.js +57 -6
  149. package/dist-lib/lib/ruleEngineWizard.d.ts.map +1 -1
  150. package/dist-lib/lib/ruleEngineWizard.js +3 -1
  151. package/dist-lib/lib/shippingNoteQueue.server.d.ts +18 -0
  152. package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -0
  153. package/dist-lib/lib/shippingNoteQueue.server.js +304 -0
  154. package/dist-lib/lib/trace.server.d.ts +75 -0
  155. package/dist-lib/lib/trace.server.d.ts.map +1 -0
  156. package/dist-lib/lib/trace.server.js +75 -0
  157. package/dist-lib/lib/vakUitleg.d.ts +19 -0
  158. package/dist-lib/lib/vakUitleg.d.ts.map +1 -0
  159. package/dist-lib/lib/vakUitleg.js +132 -0
  160. package/package.json +26 -2
  161. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts +0 -2
  162. package/dist-lib/components/rule-engine/FloridayConnectionBanner.d.ts.map +0 -1
  163. package/dist-lib/components/rule-engine/FloridayConnectionBanner.js +0 -41
  164. package/dist-lib/integrations/supabase/client.d.ts +0 -20293
  165. package/dist-lib/integrations/supabase/client.d.ts.map +0 -1
  166. package/dist-lib/integrations/supabase/client.js +0 -13
@@ -0,0 +1,180 @@
1
+ // ============================================================================
2
+ // src/hooks/useOrderVersies.ts — alle orders + herberekeningen (versies) per order
3
+ // ============================================================================
4
+ // Leest uitsluitend via de logboek-RPC's; wijzigt niets.
5
+ // ============================================================================
6
+ import { useCallback, useEffect, useState } from "react";
7
+ import { supabase } from "../integrations/supabase/moduleClient";
8
+ import { mapEvent } from "./useLogisticsTrace";
9
+ const n = (v) => (typeof v === "number" ? v : Number(v) || 0);
10
+ const s = (v) => (v == null ? null : String(v));
11
+ export function useAlleOrders(zoek) {
12
+ const [rows, setRows] = useState([]);
13
+ const [loading, setLoading] = useState(true);
14
+ const [error, setError] = useState(null);
15
+ const load = useCallback(async () => {
16
+ setLoading(true);
17
+ setError(null);
18
+ try {
19
+ const { data, error: rpcError } = await supabase.rpc("logistics_trace_all_orders", {
20
+ p_search: zoek || null,
21
+ p_limit: 300,
22
+ });
23
+ if (rpcError)
24
+ throw new Error(rpcError.message);
25
+ const safe = Array.isArray(data) ? data : [];
26
+ setRows(safe.map((r) => ({
27
+ orderNumber: String(r?.orderNumber ?? ""),
28
+ orderSource: s(r?.orderSource),
29
+ orderStatus: s(r?.orderStatus),
30
+ deliveryDate: s(r?.deliveryDate),
31
+ customerName: s(r?.customerName),
32
+ createdAt: s(r?.createdAt),
33
+ cancelledAt: s(r?.cancelledAt),
34
+ bufferId: s(r?.bufferId),
35
+ events: n(r?.events),
36
+ versions: n(r?.versions),
37
+ errors: n(r?.errors),
38
+ lastAt: s(r?.lastAt),
39
+ lastStep: s(r?.lastStep),
40
+ lastStatus: s(r?.lastStatus),
41
+ queueStatus: s(r?.queueStatus),
42
+ reasonCode: s(r?.reasonCode),
43
+ queueError: s(r?.queueError),
44
+ })));
45
+ }
46
+ catch (e) {
47
+ setError(e?.message ? String(e.message) : "De orders konden niet worden gelezen.");
48
+ setRows([]);
49
+ }
50
+ finally {
51
+ setLoading(false);
52
+ }
53
+ }, [zoek]);
54
+ useEffect(() => {
55
+ void load();
56
+ }, [load]);
57
+ return { rows, loading, error, refresh: load };
58
+ }
59
+ function mapVersie(v) {
60
+ return {
61
+ id: String(v?.id ?? ""),
62
+ nr: n(v?.nr),
63
+ startedAt: s(v?.startedAt),
64
+ claimedAt: s(v?.claimedAt),
65
+ finishedAt: s(v?.finishedAt),
66
+ windowEnd: s(v?.windowEnd),
67
+ status: s(v?.status),
68
+ error: s(v?.error),
69
+ reason: s(v?.reason),
70
+ reasonCode: s(v?.reasonCode),
71
+ attempts: n(v?.attempts),
72
+ events: n(v?.events),
73
+ errors: n(v?.errors),
74
+ warnings: n(v?.warnings),
75
+ waiting: n(v?.waiting),
76
+ printJobs: n(v?.printJobs),
77
+ printFailed: n(v?.printFailed),
78
+ shippingEvents: n(v?.shippingEvents),
79
+ shippingStatus: s(v?.shippingStatus),
80
+ lastErrorStep: s(v?.lastErrorStep),
81
+ lastError: s(v?.lastError),
82
+ lastPhase: s(v?.lastPhase),
83
+ lastStep: s(v?.lastStep),
84
+ lastEventAt: s(v?.lastEventAt),
85
+ };
86
+ }
87
+ export function useOrderVersies(orderRef) {
88
+ const [data, setData] = useState({ order: null, carts: null, versions: [] });
89
+ const [loading, setLoading] = useState(false);
90
+ const [error, setError] = useState(null);
91
+ const load = useCallback(async () => {
92
+ if (!orderRef) {
93
+ setData({ order: null, carts: null, versions: [] });
94
+ return;
95
+ }
96
+ setLoading(true);
97
+ setError(null);
98
+ try {
99
+ const { data: raw, error: rpcError } = await supabase.rpc("logistics_trace_versions", {
100
+ p_order_ref: orderRef,
101
+ });
102
+ if (rpcError)
103
+ throw new Error(rpcError.message);
104
+ const r = (raw ?? {});
105
+ const versions = Array.isArray(r?.versions) ? r.versions.map(mapVersie) : [];
106
+ const o = r?.order;
107
+ const c = r?.carts;
108
+ setData({
109
+ order: o
110
+ ? {
111
+ orderNumber: String(o.orderNumber ?? orderRef),
112
+ orderSource: s(o.orderSource),
113
+ status: s(o.status),
114
+ deliveryDate: s(o.deliveryDate),
115
+ customerName: s(o.customerName),
116
+ createdAt: s(o.createdAt),
117
+ bufferId: s(o.bufferId),
118
+ planLockedAt: s(o.planLockedAt),
119
+ cancelledAt: s(o.cancelledAt),
120
+ }
121
+ : null,
122
+ carts: c
123
+ ? { total: n(c.total), printed: n(c.printed), controlled: n(c.controlled), announced: n(c.announced) }
124
+ : null,
125
+ versions,
126
+ });
127
+ }
128
+ catch (e) {
129
+ setError(e?.message ? String(e.message) : "De versies konden niet worden gelezen.");
130
+ setData({ order: null, carts: null, versions: [] });
131
+ }
132
+ finally {
133
+ setLoading(false);
134
+ }
135
+ }, [orderRef]);
136
+ useEffect(() => {
137
+ void load();
138
+ }, [load]);
139
+ return { ...data, loading, error, refresh: load };
140
+ }
141
+ export function useVersieEvents(orderRef, versie) {
142
+ const [events, setEvents] = useState([]);
143
+ const [loading, setLoading] = useState(false);
144
+ const [error, setError] = useState(null);
145
+ const versieId = versie?.id ?? null;
146
+ const from = versie?.startedAt ?? null;
147
+ const to = versie?.windowEnd ?? null;
148
+ const load = useCallback(async () => {
149
+ if (!orderRef || !versieId) {
150
+ setEvents([]);
151
+ return;
152
+ }
153
+ setLoading(true);
154
+ setError(null);
155
+ try {
156
+ const { data, error: rpcError } = await supabase.rpc("logistics_trace_version_events", {
157
+ p_order_ref: orderRef,
158
+ p_version_id: versieId,
159
+ p_from: from,
160
+ p_to: to,
161
+ p_limit: 500,
162
+ });
163
+ if (rpcError)
164
+ throw new Error(rpcError.message);
165
+ const safe = Array.isArray(data) ? data : [];
166
+ setEvents(safe.map(mapEvent));
167
+ }
168
+ catch (e) {
169
+ setError(e?.message ? String(e.message) : "De gebeurtenissen konden niet worden gelezen.");
170
+ setEvents([]);
171
+ }
172
+ finally {
173
+ setLoading(false);
174
+ }
175
+ }, [orderRef, versieId, from, to]);
176
+ useEffect(() => {
177
+ void load();
178
+ }, [load]);
179
+ return { events, loading, error, refresh: load };
180
+ }
@@ -8,6 +8,7 @@ export interface RuleConfig {
8
8
  current_version: number;
9
9
  settings: RuleEngineSettings;
10
10
  updated_at: string;
11
+ strategy_id?: string | null;
11
12
  }
12
13
  export interface RuleVersion {
13
14
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useRuleEngine.d.ts","sourceRoot":"","sources":["../../src/hooks/useRuleEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEtG,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAiBD,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;;;;;;;;;yBAwF3C,MAAM,gBAAgB,MAAM;8BA2BE,MAAM,YAAY,kBAAkB;yBAUhE,UAAU,YAAY;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;+BA4CtD,MAAM;8BAmCP,WAAW;6BAYqB,MAAM;;EA4BzD"}
1
+ {"version":3,"file":"useRuleEngine.d.ts","sourceRoot":"","sources":["../../src/hooks/useRuleEngine.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsC,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEtG,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAmBD,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;;;;;;;;;yBAwF3C,MAAM,gBAAgB,MAAM;8BA2BE,MAAM,YAAY,kBAAkB;yBAUhE,UAAU,YAAY;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;+BA4CtD,MAAM;8BAmCP,WAAW;6BAYqB,MAAM;;EA4BzD"}
@@ -15,6 +15,7 @@ function toConfig(row) {
15
15
  current_version: row.current_version ?? 1,
16
16
  settings: normalizeSettings(row.settings),
17
17
  updated_at: row.updated_at,
18
+ strategy_id: row.strategy_id ?? null,
18
19
  };
19
20
  }
20
21
  export function useRuleEngine(options) {
@@ -0,0 +1,29 @@
1
+ export type ShippingNoteStatusCode = "klaar_voor_print" | "wacht_op_floriday" | "geprint" | "mislukt";
2
+ export interface ShippingNoteStatus {
3
+ status: ShippingNoteStatusCode;
4
+ message: string;
5
+ attempts: number;
6
+ nextAttemptAt: string | null;
7
+ slipJobId: string | null;
8
+ shippingNoteJobId: string | null;
9
+ cartId: string | null;
10
+ orderNumber: string | null;
11
+ }
12
+ /**
13
+ * Zet de verzendbriefverwerking direct aan het werk zodra de pakbon naar het
14
+ * pickstation is gestuurd, zodat niet op de volgende ronde hoeft te worden
15
+ * gewacht. Alleen-lezen richting Floriday en idempotent: nooit een dubbele
16
+ * aanvraag of printopdracht. Ontbreekt de sleutel, dan gebeurt er niets extra
17
+ * en blijft de gewone achtergrondverwerking de status bijwerken.
18
+ */
19
+ export declare function kickShippingNoteQueue(): Promise<void>;
20
+ export declare function useShippingNoteStatus(slipJobId: string | null, cartId: string | null, options?: {
21
+ pollMs?: number;
22
+ maxPollMs?: number;
23
+ fetchNow?: boolean;
24
+ }): {
25
+ data: ShippingNoteStatus | null;
26
+ loading: boolean;
27
+ reload: () => Promise<void>;
28
+ };
29
+ //# sourceMappingURL=useShippingNoteStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useShippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA+BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe3D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO;;;;EAqD1E"}
@@ -0,0 +1,107 @@
1
+ // ============================================================================
2
+ // Alleen-lezen status van de verzendbrief die bij een pakbon hoort.
3
+ // Verversen maakt nooit een nieuwe aanvraag of printopdracht aan.
4
+ // ============================================================================
5
+ import { useCallback, useEffect, useState } from "react";
6
+ import { supabase } from "@flowselections/core";
7
+ const WAITING = new Set(["klaar_voor_print", "wacht_op_floriday"]);
8
+ function safeStatus(value) {
9
+ if (!value || typeof value !== "object")
10
+ return null;
11
+ const row = value;
12
+ const status = String(row["status"] ?? "");
13
+ if (status !== "klaar_voor_print" &&
14
+ status !== "wacht_op_floriday" &&
15
+ status !== "geprint" &&
16
+ status !== "mislukt") {
17
+ return null;
18
+ }
19
+ return {
20
+ status,
21
+ message: String(row["message"] ?? "Verzendbriefstatus is niet beschikbaar."),
22
+ attempts: Number(row["attempts"] ?? 0),
23
+ nextAttemptAt: typeof row["nextAttemptAt"] === "string" ? row["nextAttemptAt"] : null,
24
+ slipJobId: typeof row["slipJobId"] === "string" ? row["slipJobId"] : null,
25
+ shippingNoteJobId: typeof row["shippingNoteJobId"] === "string" ? row["shippingNoteJobId"] : null,
26
+ cartId: typeof row["cartId"] === "string" ? row["cartId"] : null,
27
+ orderNumber: typeof row["orderNumber"] === "string" ? row["orderNumber"] : null,
28
+ };
29
+ }
30
+ /**
31
+ * Zet de verzendbriefverwerking direct aan het werk zodra de pakbon naar het
32
+ * pickstation is gestuurd, zodat niet op de volgende ronde hoeft te worden
33
+ * gewacht. Alleen-lezen richting Floriday en idempotent: nooit een dubbele
34
+ * aanvraag of printopdracht. Ontbreekt de sleutel, dan gebeurt er niets extra
35
+ * en blijft de gewone achtergrondverwerking de status bijwerken.
36
+ */
37
+ export async function kickShippingNoteQueue() {
38
+ const apikey = import.meta.env["VITE_SUPABASE_PUBLISHABLE_KEY"] ??
39
+ import.meta.env["VITE_SUPABASE_ANON_KEY"] ??
40
+ "";
41
+ if (!apikey)
42
+ return;
43
+ try {
44
+ await fetch("/api/public/hooks/logistics-shipping-note-now", {
45
+ method: "POST",
46
+ headers: { apikey, "Content-Type": "application/json" },
47
+ body: "{}",
48
+ });
49
+ }
50
+ catch {
51
+ // Een mislukte directe verwerking mag het scherm nooit blokkeren.
52
+ }
53
+ }
54
+ export function useShippingNoteStatus(slipJobId, cartId, options = {}) {
55
+ const [data, setData] = useState(null);
56
+ const [loading, setLoading] = useState(false);
57
+ const [startedAt, setStartedAt] = useState(null);
58
+ const pollMs = options.pollMs ?? 3000;
59
+ const maxPollMs = options.maxPollMs ?? 15 * 60000;
60
+ const fetchNow = options.fetchNow ?? true;
61
+ const reload = useCallback(async () => {
62
+ if (!slipJobId && !cartId)
63
+ return;
64
+ setLoading(true);
65
+ try {
66
+ const { data: result, error } = await supabase.rpc("logistics_shipping_note_status", { p_slip_job_id: slipJobId, p_cart_id: cartId });
67
+ if (error)
68
+ throw error;
69
+ setData(safeStatus(result));
70
+ }
71
+ catch {
72
+ setData({
73
+ status: "mislukt",
74
+ message: "De verzendbriefstatus kon niet worden opgehaald. Probeer het opnieuw.",
75
+ attempts: 0,
76
+ nextAttemptAt: null,
77
+ slipJobId,
78
+ shippingNoteJobId: null,
79
+ cartId,
80
+ orderNumber: null,
81
+ });
82
+ }
83
+ finally {
84
+ setLoading(false);
85
+ }
86
+ }, [cartId, slipJobId]);
87
+ useEffect(() => {
88
+ setStartedAt(Date.now());
89
+ setData(null);
90
+ if (!slipJobId && !cartId)
91
+ return;
92
+ void (async () => {
93
+ if (fetchNow)
94
+ await kickShippingNoteQueue();
95
+ await reload();
96
+ })();
97
+ }, [cartId, fetchNow, reload, slipJobId]);
98
+ useEffect(() => {
99
+ if (!data || !WAITING.has(data.status) || startedAt === null)
100
+ return;
101
+ if (Date.now() - startedAt >= maxPollMs)
102
+ return;
103
+ const timer = window.setTimeout(() => void reload(), pollMs);
104
+ return () => window.clearTimeout(timer);
105
+ }, [data, maxPollMs, pollMs, reload, startedAt]);
106
+ return { data, loading, reload };
107
+ }
@@ -0,0 +1,33 @@
1
+ export interface Werkvenster {
2
+ id: string;
3
+ weekday: number;
4
+ opens: string;
5
+ closes: string;
6
+ note: string | null;
7
+ }
8
+ export interface Uitzondering {
9
+ id: string;
10
+ day: string;
11
+ closed: boolean;
12
+ opens: string | null;
13
+ closes: string | null;
14
+ note: string | null;
15
+ }
16
+ export interface WerktijdenStatus {
17
+ timezone: string | null;
18
+ windows: Werkvenster[];
19
+ exceptions: Uitzondering[];
20
+ usable: boolean;
21
+ }
22
+ export declare function useWerktijden(): {
23
+ status: WerktijdenStatus | null;
24
+ loading: boolean;
25
+ error: string | null;
26
+ refresh: () => Promise<void>;
27
+ zetTijdzone: (timezone: string) => Promise<void>;
28
+ voegVensterToe: (weekday: number, opens: string, closes: string) => Promise<void>;
29
+ verwijderVenster: (id: string) => Promise<void>;
30
+ voegUitzonderingToe: (day: string, closed: boolean, opens: string | null, closes: string | null, note: string | null) => Promise<void>;
31
+ verwijderUitzondering: (id: string) => Promise<void>;
32
+ };
33
+ //# sourceMappingURL=useWerktijden.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWerktijden.d.ts","sourceRoot":"","sources":["../../src/hooks/useWerktijden.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB;AAMD,wBAAgB,aAAa;;;;;4BA8BR,MAAM;8BAWP,MAAM,SAAS,MAAM,UAAU,MAAM;2BAW1C,MAAM;+BASL,MAAM,UAAU,OAAO,SAAS,MAAM,GAAG,IAAI,UAAU,MAAM,GAAG,IAAI,QAAQ,MAAM,GAAG,IAAI;gCAW1F,MAAM;EAmBpB"}
@@ -0,0 +1,88 @@
1
+ // ============================================================================
2
+ // src/hooks/useWerktijden.ts — openingstijden, uitzonderingen en tijdzone
3
+ // ============================================================================
4
+ // De Engine rekent picktijd terug in werkuren. De vensters komen uit de
5
+ // instellingentabellen; ontbreken ze, dan wordt er niets geraden.
6
+ // ============================================================================
7
+ import { useCallback, useEffect, useState } from "react";
8
+ import { supabase } from "../integrations/supabase/moduleClient";
9
+ function lijst(value) {
10
+ return Array.isArray(value) ? value : [];
11
+ }
12
+ export function useWerktijden() {
13
+ const [status, setStatus] = useState(null);
14
+ const [loading, setLoading] = useState(true);
15
+ const [error, setError] = useState(null);
16
+ const load = useCallback(async () => {
17
+ setLoading(true);
18
+ setError(null);
19
+ try {
20
+ const { data, error: rpcError } = await supabase.rpc("logistics_working_hours_status");
21
+ if (rpcError)
22
+ throw rpcError;
23
+ const raw = (data ?? {});
24
+ setStatus({
25
+ timezone: typeof raw["timezone"] === "string" ? raw["timezone"] : null,
26
+ windows: lijst(raw["windows"]),
27
+ exceptions: lijst(raw["exceptions"]),
28
+ usable: raw["usable"] === true,
29
+ });
30
+ }
31
+ catch (e) {
32
+ setError(e?.message ? String(e.message) : "Werktijden konden niet worden opgehaald.");
33
+ }
34
+ finally {
35
+ setLoading(false);
36
+ }
37
+ }, []);
38
+ useEffect(() => {
39
+ void load();
40
+ }, [load]);
41
+ const zetTijdzone = useCallback(async (timezone) => {
42
+ const { error: e } = await supabase
43
+ .from("logistics_time_settings")
44
+ .upsert({ id: true, timezone, updated_at: new Date().toISOString() });
45
+ if (e)
46
+ throw e;
47
+ await load();
48
+ }, [load]);
49
+ const voegVensterToe = useCallback(async (weekday, opens, closes) => {
50
+ const { error: e } = await supabase
51
+ .from("logistics_opening_hours")
52
+ .insert({ weekday, opens, closes });
53
+ if (e)
54
+ throw e;
55
+ await load();
56
+ }, [load]);
57
+ const verwijderVenster = useCallback(async (id) => {
58
+ const { error: e } = await supabase.from("logistics_opening_hours").delete().eq("id", id);
59
+ if (e)
60
+ throw e;
61
+ await load();
62
+ }, [load]);
63
+ const voegUitzonderingToe = useCallback(async (day, closed, opens, closes, note) => {
64
+ const { error: e } = await supabase
65
+ .from("logistics_opening_exceptions")
66
+ .insert({ day, is_closed: closed, opens, closes, note });
67
+ if (e)
68
+ throw e;
69
+ await load();
70
+ }, [load]);
71
+ const verwijderUitzondering = useCallback(async (id) => {
72
+ const { error: e } = await supabase.from("logistics_opening_exceptions").delete().eq("id", id);
73
+ if (e)
74
+ throw e;
75
+ await load();
76
+ }, [load]);
77
+ return {
78
+ status,
79
+ loading,
80
+ error,
81
+ refresh: load,
82
+ zetTijdzone,
83
+ voegVensterToe,
84
+ verwijderVenster,
85
+ voegUitzonderingToe,
86
+ verwijderUitzondering,
87
+ };
88
+ }
@@ -11,7 +11,18 @@ export declare function useWerkwijzeStatus(): {
11
11
  loading: boolean;
12
12
  busy: boolean;
13
13
  error: string | null;
14
- refresh: () => Promise<void>;
14
+ refresh: (quiet?: boolean) => Promise<void>;
15
+ refreshQuiet: () => Promise<void>;
15
16
  herindelen: () => Promise<number>;
17
+ alsnogAllesHerindelen: () => Promise<{
18
+ aangemeld: number;
19
+ karrenVerwijderd: number;
20
+ pakbonnenVervallen: number;
21
+ }>;
22
+ pakbonnenGereedmaken: () => Promise<{
23
+ gereed: number;
24
+ open: number;
25
+ totaal: number;
26
+ }>;
16
27
  };
17
28
  //# sourceMappingURL=useWerkwijzeStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useWerkwijzeStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useWerkwijzeStatus.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,kBAAkB;;;;;;sBAiCS,OAAO,CAAC,MAAM,CAAC;EAezD"}
1
+ {"version":3,"file":"useWerkwijzeStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useWerkwijzeStatus.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,kBAAkB;;;;;;;sBAkCS,OAAO,CAAC,MAAM,CAAC;iCAmBJ,OAAO,CAAC;QAC1D,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;gCA4BiD,OAAO,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;EA4BH"}
@@ -6,13 +6,15 @@
6
6
  // ============================================================================
7
7
  import { useCallback, useEffect, useState } from "react";
8
8
  import { supabase } from "../integrations/supabase/moduleClient";
9
+ import { kickShippingNoteQueue } from "./useShippingNoteStatus";
9
10
  export function useWerkwijzeStatus() {
10
11
  const [status, setStatus] = useState(null);
11
12
  const [loading, setLoading] = useState(true);
12
13
  const [busy, setBusy] = useState(false);
13
14
  const [error, setError] = useState(null);
14
- const load = useCallback(async () => {
15
- setLoading(true);
15
+ const load = useCallback(async (quiet = false) => {
16
+ if (!quiet)
17
+ setLoading(true);
16
18
  setError(null);
17
19
  try {
18
20
  const { data, error: rpcError } = await supabase.rpc("logistics_layout_method_status");
@@ -32,7 +34,8 @@ export function useWerkwijzeStatus() {
32
34
  setError(e?.message ? String(e.message) : "Status kon niet worden opgehaald.");
33
35
  }
34
36
  finally {
35
- setLoading(false);
37
+ if (!quiet)
38
+ setLoading(false);
36
39
  }
37
40
  }, []);
38
41
  useEffect(() => {
@@ -54,5 +57,58 @@ export function useWerkwijzeStatus() {
54
57
  setBusy(false);
55
58
  }
56
59
  }, [load]);
57
- return { status, loading, busy, error, refresh: load, herindelen };
60
+ /**
61
+ * Alles opnieuw indelen, ook orders waarvan de pakbon al is geprint of die al
62
+ * gepickt zijn. Oude karren, barcodes en pakbonnen vervallen; de Engine maakt
63
+ * overal nieuwe aan.
64
+ */
65
+ const alsnogAllesHerindelen = useCallback(async () => {
66
+ setBusy(true);
67
+ try {
68
+ const { data, error: rpcError } = await supabase.rpc("logistics_replan_all_force", {
69
+ p_reason: "volledige_herindeling",
70
+ });
71
+ if (rpcError)
72
+ throw rpcError;
73
+ // Nieuwe pakbonnen betekenen nieuwe verzendbrieven: haal de officiele
74
+ // Floriday-afleverbrieven meteen op in plaats van te wachten op de ronde.
75
+ await kickShippingNoteQueue();
76
+ await load();
77
+ const raw = (data ?? {});
78
+ return {
79
+ aangemeld: Number(raw["aangemeld"] ?? 0),
80
+ karrenVerwijderd: Number(raw["karrenVerwijderd"] ?? 0),
81
+ pakbonnenVervallen: Number(raw["barcodesVervallen"] ?? 0) + Number(raw["pickregelsVervallen"] ?? 0),
82
+ };
83
+ }
84
+ finally {
85
+ setBusy(false);
86
+ }
87
+ }, [load]);
88
+ /**
89
+ * Zet de pakbongegevens van openstaande pickregels alvast klaar. De Engine
90
+ * doet dit idempotent: bestaande kar-ID's, nummers en barcodes blijven staan.
91
+ */
92
+ const pakbonnenGereedmaken = useCallback(async () => {
93
+ const { data, error: rpcError } = await supabase.rpc("logistics_prepare_pick_documents", { p_limit: 25 });
94
+ if (rpcError)
95
+ throw rpcError;
96
+ const raw = (data ?? {});
97
+ return {
98
+ gereed: Number(raw["gereed"] ?? 0),
99
+ open: Number(raw["open"] ?? 0),
100
+ totaal: Number(raw["totaal"] ?? 0),
101
+ };
102
+ }, []);
103
+ return {
104
+ status,
105
+ loading,
106
+ busy,
107
+ error,
108
+ refresh: load,
109
+ refreshQuiet: () => load(true),
110
+ herindelen,
111
+ alsnogAllesHerindelen,
112
+ pakbonnenGereedmaken,
113
+ };
58
114
  }
@@ -14,10 +14,13 @@ export { KarplanStatusCard } from './components/KarplanStatusCard';
14
14
  export { GeblokkeerdeOrdersCard } from './components/GeblokkeerdeOrdersCard';
15
15
  export { AfmetingenBronnenCard } from './components/AfmetingenBronnenCard';
16
16
  export { WerkwijzeHerindelingCard } from './components/WerkwijzeHerindelingCard';
17
+ export { WerktijdenCard } from './components/WerktijdenCard';
18
+ export { useWerktijden } from './hooks/useWerktijden';
17
19
  export { FloridayPoortCard } from './components/FloridayPoortCard';
18
20
  export * from './hooks/useFloridayGate';
19
21
  export * from './hooks/useWerkwijzeStatus';
20
22
  export * from './hooks/usePrintjobs';
23
+ export * from './hooks/useShippingNoteStatus';
21
24
  export * from './components/VertragingMeldingenCard';
22
25
  export * from './components/CapaciteitMeldingenCard';
23
26
  export * from './hooks/useCapaciteitMeldingen';
@@ -29,6 +32,14 @@ export { RuleEnginePage } from './components/RuleEnginePage';
29
32
  export { RegiePage } from './components/RegiePage';
30
33
  export { ModulePromptsPage } from './components/ModulePromptsPage';
31
34
  export { LadingdragersPage } from './components/LadingdragersPage';
35
+ export { LogistiekEngineQueuePage } from './components/LogistiekEngineQueuePage';
36
+ export { FlowPage } from './components/FlowPage';
37
+ export * from './hooks/useLogisticsTrace';
38
+ export * from './hooks/useOrderTrace';
39
+ export * from './hooks/useOrderNodeTrace';
40
+ export * from './lib/flowNodes';
41
+ export * from './lib/nodeTrace';
42
+ export * from './lib/vakUitleg';
32
43
  export { LogistiekEngineLogo } from './components/LogistiekEngineLogo';
33
44
  export { LogistiekEngineSettingsCard } from './components/settings/LogistiekEngineSettingsCard';
34
45
  export * from './hooks/useLogistiekStrategieen';
@@ -44,4 +55,6 @@ export * from './lib/loadCarrierPlanner';
44
55
  export * from './lib/loadCarrierTypes';
45
56
  export * from './lib/loadCarrierPlanning.functions';
46
57
  export declare const logistiekEngineModule: FlowModule;
58
+ export { OrderLogboek } from './components/OrderLogboek';
59
+ export { InklapbaarVenster } from './components/InklapbaarVenster';
47
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AAGrC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AAMpD,eAAO,MAAM,qBAAqB,EAAE,UAcnC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAG9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAIhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,mDAAmD,CAAC;AAChG,cAAc,iCAAiC,CAAC;AAChD,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qCAAqC,CAAC;AAMpD,eAAO,MAAM,qBAAqB,EAAE,UAcnC,CAAC;AACF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC"}