@burdenoff/microfe-movethewheels 2026.921.1 → 2026.923.1

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.
@@ -1,9 +1,9 @@
1
1
  import "../shared/hooks/useTr.js";
2
+ import "./useRoutes.js";
2
3
  import "./useOrders.js";
3
4
  import "./useFleet.js";
4
5
  import "./useInventory.js";
5
6
  import "./useCustomers.js";
6
- import "./useRoutes.js";
7
7
  import "./useAnalytics.js";
8
8
  import "./useTracking.js";
9
9
  import "./useReports.js";
@@ -157,6 +157,7 @@ function E(e = {}) {
157
157
  c?.driverId,
158
158
  c?.search,
159
159
  c?.status,
160
+ c?.vehicleId,
160
161
  c?.vehicleType
161
162
  ]), d = T(), [f, _] = a([]), [v, y] = a([]), [x, S] = a(!1), [E, D] = a(null), O = n(async () => {
162
163
  S(!0), D(null);
@@ -165,7 +166,8 @@ function E(e = {}) {
165
166
  filter: {
166
167
  search: u?.search,
167
168
  type: u?.vehicleType?.toUpperCase(),
168
- status: u?.status ? b(u.status) : void 0
169
+ status: u?.status ? b(u.status) : void 0,
170
+ driverId: u?.driverId
169
171
  },
170
172
  pagination: {
171
173
  limit: l,
@@ -174,7 +176,7 @@ function E(e = {}) {
174
176
  }), t(d, s, {
175
177
  filter: {
176
178
  search: u?.search,
177
- vehicleId: u?.driverId
179
+ vehicleId: u?.vehicleId
178
180
  },
179
181
  pagination: {
180
182
  limit: l,
@@ -1,40 +1,41 @@
1
1
  import { useMoveTheWheels as e } from "../providers/MoveTheWheelsProvider.js";
2
2
  import { executeGraphQL as t } from "../utils/graphqlClient.js";
3
- import { useCallback as n, useEffect as r, useMemo as i, useState as a } from "react";
3
+ import { mapRoute as n } from "./useRoutes.js";
4
+ import { useCallback as r, useEffect as i, useMemo as a, useState as o } from "react";
4
5
  //#region src/movethewheels/hooks/useOrders.ts
5
- var o = "\n id\n deliveryJobNumber\n customerId\n status\n priority\n pickupAddress\n deliveryAddress\n cargoItems\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n", s = `
6
+ var s = "\n id\n deliveryJobNumber\n customerId\n status\n priority\n pickupAddress\n deliveryAddress\n cargoItems\n pricing\n trackingNumber\n specialInstructions\n scheduledDelivery\n vehicleId\n driverId\n routeId\n route {\n id\n name\n status\n vehicleId\n driverId\n waypoints\n estimatedDistance\n estimatedDuration\n fuelCost\n actualDistance\n actualDuration\n createdAt\n }\n createdAt\n updatedAt\n customer {\n name\n email\n phone\n company\n }\n statusHistory {\n status\n notes\n location\n createdAt\n createdBy\n }\n", c = `
6
7
  query ListDeliveryJobs($filter: DeliveryJobFilterInput, $pagination: PaginationInput) {
7
8
  deliveryJobs(filter: $filter, pagination: $pagination) {
8
- ${o}
9
+ ${s}
9
10
  }
10
11
  deliveryJobsCount(filter: $filter)
11
12
  }
12
- `, c = `
13
+ `, l = `
13
14
  query GetDeliveryJob($id: ID!) {
14
15
  deliveryJob(id: $id) {
15
- ${o}
16
+ ${s}
16
17
  }
17
18
  }
18
- `, l = "\n query GetDeliveryJobStatsBundle {\n deliveryJobStats {\n total\n pending\n inTransit\n delivered\n cancelled\n failed\n }\n financeMetrics {\n revenue {\n totalRevenue\n averageOrderValue\n }\n }\n }\n", u = `
19
+ `, u = "\n query GetDeliveryJobStatsBundle {\n deliveryJobStats {\n total\n pending\n inTransit\n delivered\n cancelled\n failed\n }\n financeMetrics {\n revenue {\n totalRevenue\n averageOrderValue\n }\n }\n }\n", d = `
19
20
  mutation CreateDeliveryJob($input: CreateDeliveryJobInput!) {
20
21
  createDeliveryJob(input: $input) {
21
- ${o}
22
+ ${s}
22
23
  }
23
24
  }
24
- `, d = `
25
+ `, f = `
25
26
  mutation UpdateDeliveryJob($id: ID!, $input: UpdateDeliveryJobInput!) {
26
27
  updateDeliveryJob(id: $id, input: $input) {
27
- ${o}
28
+ ${s}
28
29
  }
29
30
  }
30
- `, f = `
31
+ `, p = `
31
32
  mutation UpdateDeliveryJobStatus($id: ID!, $input: UpdateDeliveryJobStatusInput!) {
32
33
  updateDeliveryJobStatus(id: $id, input: $input) {
33
- ${o}
34
+ ${s}
34
35
  }
35
36
  }
36
- `, p = "\n mutation DeleteDeliveryJob($id: ID!) {\n deleteDeliveryJob(id: $id)\n }\n";
37
- function m(e) {
37
+ `, m = "\n mutation DeleteDeliveryJob($id: ID!) {\n deleteDeliveryJob(id: $id)\n }\n";
38
+ function h(e) {
38
39
  switch (e) {
39
40
  case "PENDING": return "pending";
40
41
  case "CONFIRMED": return "confirmed";
@@ -47,7 +48,7 @@ function m(e) {
47
48
  default: return "failed";
48
49
  }
49
50
  }
50
- function h(e) {
51
+ function g(e) {
51
52
  switch (e) {
52
53
  case "LOW": return "low";
53
54
  case "HIGH": return "high";
@@ -56,7 +57,7 @@ function h(e) {
56
57
  default: return "normal";
57
58
  }
58
59
  }
59
- function g(e) {
60
+ function _(e) {
60
61
  switch (e) {
61
62
  case "pending": return "PENDING";
62
63
  case "confirmed": return "CONFIRMED";
@@ -69,7 +70,7 @@ function g(e) {
69
70
  default: return "FAILED";
70
71
  }
71
72
  }
72
- function _(e) {
73
+ function v(e) {
73
74
  switch (e) {
74
75
  case "low": return "LOW";
75
76
  case "high": return "HIGH";
@@ -77,7 +78,7 @@ function _(e) {
77
78
  default: return "MEDIUM";
78
79
  }
79
80
  }
80
- function v(e) {
81
+ function y(e) {
81
82
  return {
82
83
  street: "",
83
84
  city: "",
@@ -87,7 +88,7 @@ function v(e) {
87
88
  ...e ?? {}
88
89
  };
89
90
  }
90
- function y(e) {
91
+ function b(e) {
91
92
  return {
92
93
  id: e.id,
93
94
  orderNumber: e.deliveryJobNumber,
@@ -99,10 +100,10 @@ function y(e) {
99
100
  company: e.customer?.company ?? void 0
100
101
  },
101
102
  items: Array.isArray(e.cargoItems) ? e.cargoItems : [],
102
- status: m(e.status),
103
- priority: h(e.priority),
104
- pickupAddress: v(e.pickupAddress),
105
- deliveryAddress: v(e.deliveryAddress),
103
+ status: h(e.status),
104
+ priority: g(e.priority),
105
+ pickupAddress: y(e.pickupAddress),
106
+ deliveryAddress: y(e.deliveryAddress),
106
107
  trackingNumber: e.trackingNumber ?? "",
107
108
  specialInstructions: e.specialInstructions ?? void 0,
108
109
  pricing: {
@@ -120,7 +121,7 @@ function y(e) {
120
121
  },
121
122
  timeline: e.statusHistory?.map((e) => ({
122
123
  timestamp: new Date(e.createdAt),
123
- status: m(e.status),
124
+ status: h(e.status),
124
125
  location: e.location,
125
126
  notes: e.notes ?? void 0,
126
127
  performedBy: e.createdBy ?? "system"
@@ -128,39 +129,41 @@ function y(e) {
128
129
  scheduledDelivery: e.scheduledDelivery ? new Date(e.scheduledDelivery) : void 0,
129
130
  vehicleId: e.vehicleId ?? void 0,
130
131
  driverId: e.driverId ?? void 0,
132
+ routeId: e.routeId ?? void 0,
133
+ route: e.route ? n(e.route) : void 0,
131
134
  createdAt: new Date(e.createdAt),
132
135
  updatedAt: new Date(e.updatedAt)
133
136
  };
134
137
  }
135
- function b(o = {}) {
136
- let { filters: c, limit: l = 20, offset: m = 0 } = o, h = i(() => c, [
137
- c?.status,
138
- c?.priority,
139
- c?.customerId,
140
- c?.driverId,
141
- c?.search,
142
- c?.unassigned
143
- ]), { apiGatewayUrl: v, authToken: b, workspaceToken: x, workspaceId: S, tenantId: C, currentUser: w } = e(), [T, E] = a([]), [D, O] = a(0), [k, A] = a(!1), [j, M] = a(!1), [N, P] = a(null), F = i(() => ({
144
- apiGatewayUrl: v,
145
- authToken: b,
138
+ function x(n = {}) {
139
+ let { filters: s, limit: l = 20, offset: u = 0 } = n, h = a(() => s, [
140
+ s?.status,
141
+ s?.priority,
142
+ s?.customerId,
143
+ s?.driverId,
144
+ s?.search,
145
+ s?.unassigned
146
+ ]), { apiGatewayUrl: g, authToken: y, workspaceToken: x, workspaceId: S, tenantId: C, currentUser: w } = e(), [T, E] = o([]), [D, O] = o(0), [k, A] = o(!1), [j, M] = o(!1), [N, P] = o(null), F = a(() => ({
147
+ apiGatewayUrl: g,
148
+ authToken: y,
146
149
  workspaceToken: x,
147
150
  workspaceId: S,
148
151
  tenantId: C,
149
152
  actorId: w?.id
150
153
  }), [
151
- v,
152
- b,
154
+ g,
155
+ y,
153
156
  x,
154
157
  S,
155
158
  C,
156
159
  w?.id
157
- ]), I = n(async () => {
160
+ ]), I = r(async () => {
158
161
  M(!0), P(null);
159
162
  try {
160
- let e = await t(F, s, {
163
+ let e = await t(F, c, {
161
164
  filter: {
162
- status: h?.status ? g(h.status) : void 0,
163
- priority: h?.priority ? _(h.priority) : void 0,
165
+ status: h?.status ? _(h.status) : void 0,
166
+ priority: h?.priority ? v(h.priority) : void 0,
164
167
  customerId: h?.customerId,
165
168
  driverId: h?.driverId,
166
169
  unassigned: h?.unassigned,
@@ -168,10 +171,10 @@ function b(o = {}) {
168
171
  },
169
172
  pagination: {
170
173
  limit: l,
171
- offset: m
174
+ offset: u
172
175
  }
173
176
  }), n = e.deliveryJobs;
174
- O(e.deliveryJobsCount), A(m + n.length < e.deliveryJobsCount), E(n.map(y));
177
+ O(e.deliveryJobsCount), A(u + n.length < e.deliveryJobsCount), E(n.map(b));
175
178
  } catch (e) {
176
179
  P(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load orders"));
177
180
  } finally {
@@ -181,9 +184,9 @@ function b(o = {}) {
181
184
  h,
182
185
  F,
183
186
  l,
184
- m
187
+ u
185
188
  ]);
186
- return r(() => {
189
+ return i(() => {
187
190
  I();
188
191
  }, [I]), {
189
192
  orders: T,
@@ -191,14 +194,14 @@ function b(o = {}) {
191
194
  hasMore: k,
192
195
  isLoading: j,
193
196
  error: N,
194
- refetch: n(() => {
197
+ refetch: r(() => {
195
198
  I();
196
199
  }, [I]),
197
- createOrder: n(async (e) => {
198
- let n = y((await t(F, u, { input: {
200
+ createOrder: r(async (e) => {
201
+ let n = b((await t(F, d, { input: {
199
202
  deliveryJobNumber: e.orderNumber ?? `ORD-${(/* @__PURE__ */ new Date()).getFullYear()}-${Date.now().toString().slice(-6)}`,
200
- status: g(e.status ?? "pending"),
201
- priority: _(e.priority),
203
+ status: _(e.status ?? "pending"),
204
+ priority: v(e.priority),
202
205
  customerId: e.customerId,
203
206
  pickupAddress: e.pickupAddress ?? {},
204
207
  deliveryAddress: e.deliveryAddress ?? {},
@@ -208,16 +211,17 @@ function b(o = {}) {
208
211
  trackingNumber: e.trackingNumber,
209
212
  scheduledDelivery: e.scheduledDelivery?.toISOString(),
210
213
  vehicleId: e.vehicleId,
211
- driverId: e.driverId
214
+ driverId: e.driverId,
215
+ routeId: e.routeId
212
216
  } })).createDeliveryJob);
213
217
  return E((e) => [n, ...e]), n;
214
218
  }, [F]),
215
- updateOrder: n(async (e, n) => {
216
- let r = y((await t(F, d, {
219
+ updateOrder: r(async (e, n) => {
220
+ let r = b((await t(F, f, {
217
221
  id: e,
218
222
  input: {
219
- status: n.status ? g(n.status) : void 0,
220
- priority: n.priority ? _(n.priority) : void 0,
223
+ status: n.status ? _(n.status) : void 0,
224
+ priority: n.priority ? v(n.priority) : void 0,
221
225
  customerId: n.customerId,
222
226
  pickupAddress: n.pickupAddress,
223
227
  deliveryAddress: n.deliveryAddress,
@@ -227,66 +231,67 @@ function b(o = {}) {
227
231
  trackingNumber: n.trackingNumber,
228
232
  scheduledDelivery: n.scheduledDelivery === null ? null : n.scheduledDelivery?.toISOString(),
229
233
  vehicleId: n.vehicleId,
230
- driverId: n.driverId
234
+ driverId: n.driverId,
235
+ routeId: n.routeId
231
236
  }
232
237
  })).updateDeliveryJob);
233
238
  return E((t) => t.map((t) => t.id === e ? r : t)), r;
234
239
  }, [F]),
235
- deleteOrder: n(async (e) => {
236
- await t(F, p, { id: e }), E((t) => t.filter((t) => t.id !== e));
240
+ deleteOrder: r(async (e) => {
241
+ await t(F, m, { id: e }), E((t) => t.filter((t) => t.id !== e));
237
242
  }, [F]),
238
- updateOrderStatus: n(async (e, n) => {
239
- let r = y((await t(F, f, {
243
+ updateOrderStatus: r(async (e, n) => {
244
+ let r = b((await t(F, p, {
240
245
  id: e,
241
- input: { status: g(n) }
246
+ input: { status: _(n) }
242
247
  })).updateDeliveryJobStatus);
243
248
  return E((t) => t.map((t) => t.id === e ? r : t)), r;
244
249
  }, [F])
245
250
  };
246
251
  }
247
- function x(o) {
248
- let { apiGatewayUrl: s, authToken: l, workspaceToken: u, workspaceId: d, tenantId: f, currentUser: p } = e(), [m, h] = a(null), [g, _] = a(!1), [v, b] = a(null), x = i(() => ({
252
+ function S(n) {
253
+ let { apiGatewayUrl: s, authToken: c, workspaceToken: u, workspaceId: d, tenantId: f, currentUser: p } = e(), [m, h] = o(null), [g, _] = o(!1), [v, y] = o(null), x = a(() => ({
249
254
  apiGatewayUrl: s,
250
- authToken: l,
255
+ authToken: c,
251
256
  workspaceToken: u,
252
257
  workspaceId: d,
253
258
  tenantId: f,
254
259
  actorId: p?.id
255
260
  }), [
256
261
  s,
257
- l,
262
+ c,
258
263
  u,
259
264
  d,
260
265
  f,
261
266
  p?.id
262
- ]), S = n(async () => {
263
- if (!o) {
267
+ ]), S = r(async () => {
268
+ if (!n) {
264
269
  h(null);
265
270
  return;
266
271
  }
267
- _(!0), b(null);
272
+ _(!0), y(null);
268
273
  try {
269
- let e = await t(x, c, { id: o });
270
- h(e.deliveryJob ? y(e.deliveryJob) : null);
274
+ let e = await t(x, l, { id: n });
275
+ h(e.deliveryJob ? b(e.deliveryJob) : null);
271
276
  } catch (e) {
272
- b(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load order"));
277
+ y(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load order"));
273
278
  } finally {
274
279
  _(!1);
275
280
  }
276
- }, [x, o]);
277
- return r(() => {
281
+ }, [x, n]);
282
+ return i(() => {
278
283
  S();
279
284
  }, [S]), {
280
285
  order: m,
281
286
  isLoading: g,
282
287
  error: v,
283
- refetch: n(() => {
288
+ refetch: r(() => {
284
289
  S();
285
290
  }, [S])
286
291
  };
287
292
  }
288
- function S() {
289
- let { apiGatewayUrl: o, authToken: s, workspaceToken: c, workspaceId: u, tenantId: d, currentUser: f } = e(), [p, m] = a(!1), [h, g] = a(null), [_, v] = a({
293
+ function C() {
294
+ let { apiGatewayUrl: n, authToken: s, workspaceToken: c, workspaceId: l, tenantId: d, currentUser: f } = e(), [p, m] = o(!1), [h, g] = o(null), [_, v] = o({
290
295
  total: 0,
291
296
  byStatus: {
292
297
  pending: 0,
@@ -302,24 +307,24 @@ function S() {
302
307
  totalRevenue: 0,
303
308
  todayOrders: 0,
304
309
  avgOrderValue: 0
305
- }), y = i(() => ({
306
- apiGatewayUrl: o,
310
+ }), y = a(() => ({
311
+ apiGatewayUrl: n,
307
312
  authToken: s,
308
313
  workspaceToken: c,
309
- workspaceId: u,
314
+ workspaceId: l,
310
315
  tenantId: d,
311
316
  actorId: f?.id
312
317
  }), [
313
- o,
318
+ n,
314
319
  s,
315
320
  c,
316
- u,
321
+ l,
317
322
  d,
318
323
  f?.id
319
- ]), b = n(async () => {
324
+ ]), b = r(async () => {
320
325
  m(!0), g(null);
321
326
  try {
322
- let e = await t(y, l);
327
+ let e = await t(y, u);
323
328
  v({
324
329
  total: e.deliveryJobStats.total,
325
330
  byStatus: {
@@ -343,7 +348,7 @@ function S() {
343
348
  m(!1);
344
349
  }
345
350
  }, [y]);
346
- return r(() => {
351
+ return i(() => {
347
352
  b();
348
353
  }, [b]), {
349
354
  stats: _,
@@ -352,4 +357,4 @@ function S() {
352
357
  };
353
358
  }
354
359
  //#endregion
355
- export { y as mapOrder, h as mapOrderPriority, m as mapOrderStatus, x as useOrder, S as useOrderStats, b as useOrders };
360
+ export { b as mapOrder, g as mapOrderPriority, h as mapOrderStatus, S as useOrder, C as useOrderStats, x as useOrders };
@@ -252,4 +252,4 @@ function b() {
252
252
  };
253
253
  }
254
254
  //#endregion
255
- export { v as useRoute, b as useRouteStats, _ as useRoutes };
255
+ export { h as mapRoute, v as useRoute, b as useRouteStats, _ as useRoutes };
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { useMoveTheWheels as e, useMoveTheWheelsNavigate as t } from "./providers/MoveTheWheelsProvider.js";
2
2
  import { useTr as n } from "./shared/hooks/useTr.js";
3
- import { useOrder as r, useOrderStats as i, useOrders as a } from "./hooks/useOrders.js";
4
- import { useDriver as o, useDriverStatusCounts as s, useDrivers as c, useFleet as l, useFleetStats as u, useVehicle as d, useVehicleDrivers as f, useVehicles as p } from "./hooks/useFleet.js";
5
- import { useInventory as m, useInventoryStats as h, useInventoryTransactions as g, useProduct as _, useProductStockLevels as v, useProducts as y, useWarehouse as b, useWarehouses as x } from "./hooks/useInventory.js";
6
- import { useCustomer as S, useCustomerStats as C, useCustomers as w } from "./hooks/useCustomers.js";
7
- import { useRoute as T, useRouteStats as E, useRoutes as D } from "./hooks/useRoutes.js";
3
+ import { useRoute as r, useRouteStats as i, useRoutes as a } from "./hooks/useRoutes.js";
4
+ import { useOrder as o, useOrderStats as s, useOrders as c } from "./hooks/useOrders.js";
5
+ import { useDriver as l, useDriverStatusCounts as u, useDrivers as d, useFleet as f, useFleetStats as p, useVehicle as m, useVehicleDrivers as h, useVehicles as g } from "./hooks/useFleet.js";
6
+ import { useInventory as _, useInventoryStats as v, useInventoryTransactions as y, useProduct as b, useProductStockLevels as x, useProducts as S, useWarehouse as C, useWarehouses as w } from "./hooks/useInventory.js";
7
+ import { useCustomer as T, useCustomerStats as E, useCustomers as D } from "./hooks/useCustomers.js";
8
8
  import { useAnalytics as O, useDashboardMetrics as k, useEmissionsSummary as A, useFinanceMetrics as j, useFleetAnalytics as M, useOrderAnalytics as N, usePerformanceAnalytics as P, useRevenueAnalytics as F } from "./hooks/useAnalytics.js";
9
9
  import { useDriverTracking as I, useGeofence as L, useLiveTracking as R, useOrderTracking as z, useTracking as B, useTrackingAlerts as V, useVehicleTracking as H } from "./hooks/useTracking.js";
10
10
  import { useReports as U } from "./hooks/useReports.js";
@@ -38,4 +38,4 @@ import { Notice as At, useNotice as jt } from "./components/Notice.js";
38
38
  import { DocumentsCard as Mt } from "./components/DocumentsCard.js";
39
39
  import { CarbonFootprintPanel as Nt } from "./components/CarbonFootprintPanel.js";
40
40
  import "./components/index.js";
41
- export { te as Avatar, ne as AvatarFallback, re as AvatarImage, ie as Badge, ae as Button, Nt as CarbonFootprintPanel, oe as Card, se as CardContent, ce as CardDescription, le as CardFooter, ue as CardHeader, de as CardTitle, ut as ChartEmpty, dt as ChartTooltip, fe as Checkbox, Ot as DataTable, pe as Dialog, me as DialogContent, he as DialogDescription, ge as DialogFooter, _e as DialogHeader, ve as DialogTitle, ye as DialogTrigger, Mt as DocumentsCard, be as DropdownMenu, xe as DropdownMenuContent, Se as DropdownMenuItem, Ce as DropdownMenuSeparator, we as DropdownMenuTrigger, Qe as EmptyState, $e as ErrorState, kt as FormError, lt as GlassPanel, Te as Input, Ee as Label, et as LoadingState, bt as LogisticsMap, yt as MapCanvas, ot as MetricCard, st as MetricCardSkeleton, ct as MetricGrid, Q as MoveTheWheelsRoot, At as Notice, tt as PageLayout, nt as PageSection, Ct as PaymentStatusBadge, wt as PriorityBadge, De as Progress, xt as RouteMap, Oe as ScrollArea, ke as Select, Ae as SelectContent, je as SelectItem, Me as SelectTrigger, Ne as SelectValue, Pe as Separator, Fe as Skeleton, at as Sparkline, Tt as StatusBadge, mt as StatusDonut, Ie as Switch, Le as Table, Re as TableBody, ze as TableCell, Be as TableHead, Ve as TableHeader, He as TableRow, Ue as Tabs, We as TabsContent, Ge as TabsList, Ke as TabsTrigger, qe as Textarea, Je as Tooltip, Ye as TooltipContent, Xe as TooltipProvider, Ze as TooltipTrigger, St as TrackingMap, ft as TrendChart, Et as TypeBadge, Dt as VehicleTypeBadge, pt as VolumeBar, rt as chartTokens, ht as createCurrentIcon, gt as createPinIcon, _t as createStopIcon, vt as isRealCoord, it as seriesColor, O as useAnalytics, q as useCaptureEpod, S as useCustomer, C as useCustomerStats, w as useCustomers, k as useDashboardMetrics, o as useDriver, s as useDriverStatusCounts, I as useDriverTracking, c as useDrivers, A as useEmissionsSummary, K as useEntityDocuments, J as useEpod, Y as useEpodPhotoUpload, X as useEpodPhotoUrl, j as useFinanceMetrics, l as useFleet, M as useFleetAnalytics, u as useFleetStats, L as useGeofence, W as useImportExport, m as useInventory, h as useInventoryStats, g as useInventoryTransactions, R as useLiveTracking, G as useModuleSettings, e as useMoveTheWheels, t as useMoveTheWheelsNavigate, $ as useMoveTheWheelsStore, Z as useMyPendingEpodDeliveryJobs, jt as useNotice, r as useOrder, N as useOrderAnalytics, i as useOrderStats, z as useOrderTracking, a as useOrders, P as usePerformanceAnalytics, _ as useProduct, v as useProductStockLevels, y as useProducts, U as useReports, F as useRevenueAnalytics, T as useRoute, E as useRouteStats, D as useRoutes, ee as useSandboxAssistantTransport, n as useTr, B as useTracking, V as useTrackingAlerts, d as useVehicle, f as useVehicleDrivers, H as useVehicleTracking, p as useVehicles, b as useWarehouse, x as useWarehouses };
41
+ export { te as Avatar, ne as AvatarFallback, re as AvatarImage, ie as Badge, ae as Button, Nt as CarbonFootprintPanel, oe as Card, se as CardContent, ce as CardDescription, le as CardFooter, ue as CardHeader, de as CardTitle, ut as ChartEmpty, dt as ChartTooltip, fe as Checkbox, Ot as DataTable, pe as Dialog, me as DialogContent, he as DialogDescription, ge as DialogFooter, _e as DialogHeader, ve as DialogTitle, ye as DialogTrigger, Mt as DocumentsCard, be as DropdownMenu, xe as DropdownMenuContent, Se as DropdownMenuItem, Ce as DropdownMenuSeparator, we as DropdownMenuTrigger, Qe as EmptyState, $e as ErrorState, kt as FormError, lt as GlassPanel, Te as Input, Ee as Label, et as LoadingState, bt as LogisticsMap, yt as MapCanvas, ot as MetricCard, st as MetricCardSkeleton, ct as MetricGrid, Q as MoveTheWheelsRoot, At as Notice, tt as PageLayout, nt as PageSection, Ct as PaymentStatusBadge, wt as PriorityBadge, De as Progress, xt as RouteMap, Oe as ScrollArea, ke as Select, Ae as SelectContent, je as SelectItem, Me as SelectTrigger, Ne as SelectValue, Pe as Separator, Fe as Skeleton, at as Sparkline, Tt as StatusBadge, mt as StatusDonut, Ie as Switch, Le as Table, Re as TableBody, ze as TableCell, Be as TableHead, Ve as TableHeader, He as TableRow, Ue as Tabs, We as TabsContent, Ge as TabsList, Ke as TabsTrigger, qe as Textarea, Je as Tooltip, Ye as TooltipContent, Xe as TooltipProvider, Ze as TooltipTrigger, St as TrackingMap, ft as TrendChart, Et as TypeBadge, Dt as VehicleTypeBadge, pt as VolumeBar, rt as chartTokens, ht as createCurrentIcon, gt as createPinIcon, _t as createStopIcon, vt as isRealCoord, it as seriesColor, O as useAnalytics, q as useCaptureEpod, T as useCustomer, E as useCustomerStats, D as useCustomers, k as useDashboardMetrics, l as useDriver, u as useDriverStatusCounts, I as useDriverTracking, d as useDrivers, A as useEmissionsSummary, K as useEntityDocuments, J as useEpod, Y as useEpodPhotoUpload, X as useEpodPhotoUrl, j as useFinanceMetrics, f as useFleet, M as useFleetAnalytics, p as useFleetStats, L as useGeofence, W as useImportExport, _ as useInventory, v as useInventoryStats, y as useInventoryTransactions, R as useLiveTracking, G as useModuleSettings, e as useMoveTheWheels, t as useMoveTheWheelsNavigate, $ as useMoveTheWheelsStore, Z as useMyPendingEpodDeliveryJobs, jt as useNotice, o as useOrder, N as useOrderAnalytics, s as useOrderStats, z as useOrderTracking, c as useOrders, P as usePerformanceAnalytics, b as useProduct, x as useProductStockLevels, S as useProducts, U as useReports, F as useRevenueAnalytics, r as useRoute, i as useRouteStats, a as useRoutes, ee as useSandboxAssistantTransport, n as useTr, B as useTracking, V as useTrackingAlerts, m as useVehicle, h as useVehicleDrivers, H as useVehicleTracking, g as useVehicles, C as useWarehouse, w as useWarehouses };
@@ -43,6 +43,21 @@ export interface ApiOrder {
43
43
  scheduledDelivery?: string | null;
44
44
  vehicleId?: string | null;
45
45
  driverId?: string | null;
46
+ routeId?: string | null;
47
+ route?: {
48
+ id: string;
49
+ name: string;
50
+ status: string;
51
+ vehicleId?: string | null;
52
+ driverId?: string | null;
53
+ waypoints?: unknown;
54
+ estimatedDistance?: number | null;
55
+ estimatedDuration?: number | null;
56
+ fuelCost?: number | null;
57
+ actualDistance?: number | null;
58
+ actualDuration?: number | null;
59
+ createdAt: string;
60
+ } | null;
46
61
  createdAt: string;
47
62
  updatedAt: string;
48
63
  customer?: {
@@ -22,6 +22,22 @@ interface UseRoutesResult {
22
22
  optimizeRoute: (routeId: string) => Promise<Route>;
23
23
  updateStopStatus: (routeId: string, stopId: string, status: RouteStop['status']) => Promise<Route>;
24
24
  }
25
+ interface ApiRoute {
26
+ id: string;
27
+ name: string;
28
+ status: string;
29
+ shipmentId?: string | null;
30
+ vehicleId?: string | null;
31
+ driverId?: string | null;
32
+ waypoints?: unknown;
33
+ estimatedDistance?: number | null;
34
+ estimatedDuration?: number | null;
35
+ fuelCost?: number | null;
36
+ actualDistance?: number | null;
37
+ actualDuration?: number | null;
38
+ createdAt: string;
39
+ }
40
+ export declare function mapRoute(route: ApiRoute): Route;
25
41
  export declare function useRoutes(options?: UseRoutesOptions): UseRoutesResult;
26
42
  export declare function useRoute(routeId: string | undefined): {
27
43
  route: Route | null;
@@ -223,6 +223,8 @@ export interface Order {
223
223
  actualDelivery?: Date;
224
224
  driverId?: string;
225
225
  vehicleId?: string;
226
+ routeId?: string;
227
+ route?: Route;
226
228
  trackingNumber: string;
227
229
  specialInstructions?: string;
228
230
  pricing: OrderPricing;
@@ -671,7 +673,10 @@ export interface OrderFilter {
671
673
  export interface FleetFilter {
672
674
  vehicleType?: VehicleType;
673
675
  status?: VehicleStatus;
676
+ /** Filter vehicles to those linked to this driver. */
674
677
  driverId?: string;
678
+ /** Filter drivers to those linked to this vehicle. */
679
+ vehicleId?: string;
675
680
  search?: string;
676
681
  }
677
682
  export interface InventoryFilter {