@burdenoff/microfe-movethewheels 2026.728.1 → 2026.731.2
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.
- package/dist/MoveTheWheelsRoutes.js +7 -3
- package/dist/hooks/useMultiModalShipments.js +137 -0
- package/dist/movethewheels/hooks/useMultiModalShipments.d.ts +76 -0
- package/dist/movethewheels/pages/MultiModalShipmentPage.d.ts +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/calculator.js +56 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/plane.js +8 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/ship.js +26 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/train-front.js +30 -0
- package/dist/pages/DashboardPage.js +156 -151
- package/dist/pages/MultiModalShipmentPage.js +420 -0
- package/package.json +1 -1
- package/src/movethewheels/MoveTheWheelsRoutes.tsx +4 -0
- package/src/movethewheels/hooks/useMultiModalShipments.ts +344 -0
- package/src/movethewheels/pages/DashboardPage.tsx +6 -0
- package/src/movethewheels/pages/MultiModalShipmentPage.tsx +552 -0
|
@@ -25,8 +25,8 @@ function u() {
|
|
|
25
25
|
})
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
var d = n(() => import("./pages/DashboardPage.js")), f = n(() => import("./pages/OrdersListPage.js")), p = n(() => import("./pages/OrderDetailsPage.js")), m = n(() => import("./pages/CreateOrderPage.js")), h = n(() => import("./pages/TrackingPage.js")), g = n(() => import("./pages/LiveTrackingPage.js")), _ = n(() => import("./pages/FleetPage.js")), v = n(() => import("./pages/VehiclesPage.js")), y = n(() => import("./pages/VehicleDetailsPage.js")), b = n(() => import("./pages/DriversPage.js")), x = n(() => import("./pages/DriverDetailsPage.js")), S = n(() => import("./pages/InventoryPage.js")), C = n(() => import("./pages/ProductsPage.js")), w = n(() => import("./pages/ProductDetailsPage.js")), T = n(() => import("./pages/WarehousesPage.js")), E = n(() => import("./pages/WarehouseDetailsPage.js")), D = n(() => import("./pages/CustomersPage.js")), O = n(() => import("./pages/CustomerDetailsPage.js")), k = n(() => import("./pages/RoutesPage.js")), A = n(() => import("./pages/RouteDetailsPage.js")), j = n(() => import("./pages/AnalyticsPage.js")), M = n(() => import("./pages/FinancePage.js")), N = n(() => import("./pages/MarketplacePage.js")), P = n(() => import("./pages/ImportExportPage.js")), F = n(() => import("./pages/ReportsPage.js")), I = n(() => import("./pages/SettingsPage.js")), L = n(() => import("./pages/AIAssistantPage.js")), R = n(() => import("./pages/DeliveryCapturePage.js"));
|
|
29
|
-
function
|
|
28
|
+
var d = n(() => import("./pages/DashboardPage.js")), f = n(() => import("./pages/OrdersListPage.js")), p = n(() => import("./pages/OrderDetailsPage.js")), m = n(() => import("./pages/CreateOrderPage.js")), h = n(() => import("./pages/TrackingPage.js")), g = n(() => import("./pages/LiveTrackingPage.js")), _ = n(() => import("./pages/FleetPage.js")), v = n(() => import("./pages/VehiclesPage.js")), y = n(() => import("./pages/VehicleDetailsPage.js")), b = n(() => import("./pages/DriversPage.js")), x = n(() => import("./pages/DriverDetailsPage.js")), S = n(() => import("./pages/InventoryPage.js")), C = n(() => import("./pages/ProductsPage.js")), w = n(() => import("./pages/ProductDetailsPage.js")), T = n(() => import("./pages/WarehousesPage.js")), E = n(() => import("./pages/WarehouseDetailsPage.js")), D = n(() => import("./pages/CustomersPage.js")), O = n(() => import("./pages/CustomerDetailsPage.js")), k = n(() => import("./pages/RoutesPage.js")), A = n(() => import("./pages/RouteDetailsPage.js")), j = n(() => import("./pages/AnalyticsPage.js")), M = n(() => import("./pages/FinancePage.js")), N = n(() => import("./pages/MarketplacePage.js")), P = n(() => import("./pages/ImportExportPage.js")), F = n(() => import("./pages/ReportsPage.js")), I = n(() => import("./pages/SettingsPage.js")), L = n(() => import("./pages/AIAssistantPage.js")), R = n(() => import("./pages/DeliveryCapturePage.js")), z = n(() => import("./pages/MultiModalShipmentPage.js"));
|
|
29
|
+
function B() {
|
|
30
30
|
return /* @__PURE__ */ o(t, {
|
|
31
31
|
fallback: /* @__PURE__ */ o(u, {}),
|
|
32
32
|
children: /* @__PURE__ */ s(i, { children: [
|
|
@@ -62,6 +62,10 @@ function z() {
|
|
|
62
62
|
path: "deliveries/mine",
|
|
63
63
|
element: /* @__PURE__ */ o(R, {})
|
|
64
64
|
}),
|
|
65
|
+
/* @__PURE__ */ o(r, {
|
|
66
|
+
path: "shipments/multi-modal",
|
|
67
|
+
element: /* @__PURE__ */ o(z, {})
|
|
68
|
+
}),
|
|
65
69
|
/* @__PURE__ */ o(r, {
|
|
66
70
|
path: "fleet",
|
|
67
71
|
element: /* @__PURE__ */ o(_, {})
|
|
@@ -198,4 +202,4 @@ function z() {
|
|
|
198
202
|
});
|
|
199
203
|
}
|
|
200
204
|
//#endregion
|
|
201
|
-
export {
|
|
205
|
+
export { B as MoveTheWheelsRoutes };
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { useMoveTheWheels as e } from "../providers/MoveTheWheelsProvider.js";
|
|
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";
|
|
4
|
+
//#region src/movethewheels/hooks/useMultiModalShipments.ts
|
|
5
|
+
var o = "\n id\n shipmentNumber\n status\n primaryMode\n isMultiModal\n totalFreightCost\n freightCurrency\n origin\n destination\n createdAt\n legs {\n \n id\n legNumber\n mode\n status\n origin\n destination\n distanceKm\n weightKg\n lengthCm\n widthCm\n heightCm\n volumeCbm\n containerType\n containerCount\n carrierName\n chargeableWeightKg\n calculatedCost\n currency\n\n }\n", s = `
|
|
6
|
+
query ListMultiModalShipments($pagination: PaginationInput) {
|
|
7
|
+
shipments(filter: { isMultiModal: true }, pagination: $pagination) {
|
|
8
|
+
${o}
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
`, c = "\n query CalculateFreightRate($input: FreightRateInput!) {\n calculateFreightRate(input: $input) {\n mode\n chargeableWeightKg\n ratePerUnit\n calculatedCost\n currency\n breakdown {\n label\n amount\n }\n }\n }\n", l = `
|
|
12
|
+
mutation PlanMultiModalShipment($input: PlanMultiModalShipmentInput!) {
|
|
13
|
+
planMultiModalShipment(input: $input) {
|
|
14
|
+
${o}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
`;
|
|
18
|
+
function u(e) {
|
|
19
|
+
return {
|
|
20
|
+
mode: e.mode,
|
|
21
|
+
origin: e.origin,
|
|
22
|
+
destination: e.destination,
|
|
23
|
+
distanceKm: e.distanceKm,
|
|
24
|
+
weightKg: e.weightKg,
|
|
25
|
+
lengthCm: e.lengthCm,
|
|
26
|
+
widthCm: e.widthCm,
|
|
27
|
+
heightCm: e.heightCm,
|
|
28
|
+
volumeCbm: e.volumeCbm,
|
|
29
|
+
containerType: e.containerType,
|
|
30
|
+
containerCount: e.containerCount,
|
|
31
|
+
carrierName: e.carrierName
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function d(e) {
|
|
35
|
+
return {
|
|
36
|
+
mode: e.mode,
|
|
37
|
+
distanceKm: e.distanceKm,
|
|
38
|
+
weightKg: e.weightKg,
|
|
39
|
+
lengthCm: e.lengthCm,
|
|
40
|
+
widthCm: e.widthCm,
|
|
41
|
+
heightCm: e.heightCm,
|
|
42
|
+
volumeCbm: e.volumeCbm,
|
|
43
|
+
containerType: e.containerType,
|
|
44
|
+
containerCount: e.containerCount
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function f(e) {
|
|
48
|
+
return {
|
|
49
|
+
id: e.id,
|
|
50
|
+
legNumber: e.legNumber,
|
|
51
|
+
mode: e.mode,
|
|
52
|
+
status: e.status,
|
|
53
|
+
origin: e.origin ?? {},
|
|
54
|
+
destination: e.destination ?? {},
|
|
55
|
+
distanceKm: e.distanceKm ?? void 0,
|
|
56
|
+
weightKg: e.weightKg ?? void 0,
|
|
57
|
+
lengthCm: e.lengthCm ?? void 0,
|
|
58
|
+
widthCm: e.widthCm ?? void 0,
|
|
59
|
+
heightCm: e.heightCm ?? void 0,
|
|
60
|
+
volumeCbm: e.volumeCbm ?? void 0,
|
|
61
|
+
containerType: e.containerType ?? void 0,
|
|
62
|
+
containerCount: e.containerCount ?? void 0,
|
|
63
|
+
carrierName: e.carrierName ?? void 0,
|
|
64
|
+
chargeableWeightKg: e.chargeableWeightKg,
|
|
65
|
+
calculatedCost: e.calculatedCost,
|
|
66
|
+
currency: e.currency
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
function p(e) {
|
|
70
|
+
return {
|
|
71
|
+
id: e.id,
|
|
72
|
+
shipmentNumber: e.shipmentNumber,
|
|
73
|
+
status: e.status,
|
|
74
|
+
primaryMode: e.primaryMode,
|
|
75
|
+
isMultiModal: e.isMultiModal,
|
|
76
|
+
totalFreightCost: e.totalFreightCost,
|
|
77
|
+
freightCurrency: e.freightCurrency,
|
|
78
|
+
origin: e.origin ?? {},
|
|
79
|
+
destination: e.destination ?? {},
|
|
80
|
+
createdAt: e.createdAt,
|
|
81
|
+
legs: (e.legs ?? []).map(f)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
function m() {
|
|
85
|
+
let { apiGatewayUrl: t, authToken: n, workspaceToken: r, workspaceId: a, tenantId: o, currentUser: s } = e();
|
|
86
|
+
return i(() => ({
|
|
87
|
+
apiGatewayUrl: t,
|
|
88
|
+
authToken: n,
|
|
89
|
+
workspaceToken: r,
|
|
90
|
+
workspaceId: a,
|
|
91
|
+
tenantId: o,
|
|
92
|
+
actorId: s?.id
|
|
93
|
+
}), [
|
|
94
|
+
t,
|
|
95
|
+
n,
|
|
96
|
+
r,
|
|
97
|
+
a,
|
|
98
|
+
o,
|
|
99
|
+
s?.id
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
function h() {
|
|
103
|
+
let e = m(), [i, o] = a([]), [f, h] = a(!1), [g, _] = a(null), v = n(async () => {
|
|
104
|
+
h(!0), _(null);
|
|
105
|
+
try {
|
|
106
|
+
o((await t(e, s, { pagination: {
|
|
107
|
+
limit: 100,
|
|
108
|
+
offset: 0
|
|
109
|
+
} })).shipments.map(p));
|
|
110
|
+
} catch (e) {
|
|
111
|
+
_(e instanceof Error ? e : /* @__PURE__ */ Error("Failed to load multi-modal shipments"));
|
|
112
|
+
} finally {
|
|
113
|
+
h(!1);
|
|
114
|
+
}
|
|
115
|
+
}, [e]);
|
|
116
|
+
return r(() => {
|
|
117
|
+
v();
|
|
118
|
+
}, [v]), {
|
|
119
|
+
shipments: i,
|
|
120
|
+
isLoading: f,
|
|
121
|
+
error: g,
|
|
122
|
+
refetch: () => void v(),
|
|
123
|
+
calculateFreightRate: n(async (n) => (await t(e, c, { input: d(n) })).calculateFreightRate, [e]),
|
|
124
|
+
planMultiModalShipment: n(async (n) => {
|
|
125
|
+
let r = p((await t(e, l, { input: {
|
|
126
|
+
shipmentNumber: n.shipmentNumber,
|
|
127
|
+
customerId: n.customerId,
|
|
128
|
+
origin: n.origin,
|
|
129
|
+
destination: n.destination,
|
|
130
|
+
legs: n.legs.map(u)
|
|
131
|
+
} })).planMultiModalShipment);
|
|
132
|
+
return o((e) => [r, ...e]), r;
|
|
133
|
+
}, [e])
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
//#endregion
|
|
137
|
+
export { h as useMultiModalShipments };
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
export type TransportMode = 'ROAD' | 'AIR' | 'OCEAN' | 'RAIL';
|
|
2
|
+
export type ShipmentLegStatus = 'PLANNED' | 'BOOKED' | 'IN_TRANSIT' | 'ARRIVED' | 'DELIVERED' | 'CANCELLED';
|
|
3
|
+
export type OceanContainerType = 'LCL' | 'FCL_20FT' | 'FCL_40FT' | 'FCL_40FT_HC';
|
|
4
|
+
export interface FreightRateBreakdownLine {
|
|
5
|
+
label: string;
|
|
6
|
+
amount: number;
|
|
7
|
+
}
|
|
8
|
+
export interface FreightRateQuote {
|
|
9
|
+
mode: TransportMode;
|
|
10
|
+
chargeableWeightKg?: number | null;
|
|
11
|
+
ratePerUnit: number;
|
|
12
|
+
calculatedCost: number;
|
|
13
|
+
currency: string;
|
|
14
|
+
breakdown: FreightRateBreakdownLine[];
|
|
15
|
+
}
|
|
16
|
+
export interface ShipmentLegDraft {
|
|
17
|
+
mode: TransportMode;
|
|
18
|
+
origin: {
|
|
19
|
+
address?: string;
|
|
20
|
+
};
|
|
21
|
+
destination: {
|
|
22
|
+
address?: string;
|
|
23
|
+
};
|
|
24
|
+
distanceKm?: number;
|
|
25
|
+
weightKg?: number;
|
|
26
|
+
lengthCm?: number;
|
|
27
|
+
widthCm?: number;
|
|
28
|
+
heightCm?: number;
|
|
29
|
+
volumeCbm?: number;
|
|
30
|
+
containerType?: OceanContainerType;
|
|
31
|
+
containerCount?: number;
|
|
32
|
+
carrierName?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface ShipmentLeg extends ShipmentLegDraft {
|
|
35
|
+
id: string;
|
|
36
|
+
legNumber: number;
|
|
37
|
+
status: ShipmentLegStatus;
|
|
38
|
+
chargeableWeightKg?: number | null;
|
|
39
|
+
calculatedCost?: number | null;
|
|
40
|
+
currency: string;
|
|
41
|
+
}
|
|
42
|
+
export interface MultiModalShipment {
|
|
43
|
+
id: string;
|
|
44
|
+
shipmentNumber: string;
|
|
45
|
+
status: string;
|
|
46
|
+
primaryMode: TransportMode;
|
|
47
|
+
isMultiModal: boolean;
|
|
48
|
+
totalFreightCost?: number | null;
|
|
49
|
+
freightCurrency?: string | null;
|
|
50
|
+
origin: {
|
|
51
|
+
address?: string;
|
|
52
|
+
};
|
|
53
|
+
destination: {
|
|
54
|
+
address?: string;
|
|
55
|
+
};
|
|
56
|
+
createdAt: string;
|
|
57
|
+
legs: ShipmentLeg[];
|
|
58
|
+
}
|
|
59
|
+
export declare function useMultiModalShipments(): {
|
|
60
|
+
shipments: MultiModalShipment[];
|
|
61
|
+
isLoading: boolean;
|
|
62
|
+
error: Error | null;
|
|
63
|
+
refetch: () => undefined;
|
|
64
|
+
calculateFreightRate: (leg: ShipmentLegDraft) => Promise<FreightRateQuote>;
|
|
65
|
+
planMultiModalShipment: (input: {
|
|
66
|
+
shipmentNumber: string;
|
|
67
|
+
customerId?: string;
|
|
68
|
+
origin: {
|
|
69
|
+
address?: string;
|
|
70
|
+
};
|
|
71
|
+
destination: {
|
|
72
|
+
address?: string;
|
|
73
|
+
};
|
|
74
|
+
legs: ShipmentLegDraft[];
|
|
75
|
+
}) => Promise<MultiModalShipment>;
|
|
76
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-Modal Freight Shipment Page (BOFF-4398)
|
|
3
|
+
*
|
|
4
|
+
* Lets an operator plan a shipment composed of multiple real transport legs
|
|
5
|
+
* across ROAD/AIR/OCEAN/RAIL, previewing each leg's real mode-specific rate
|
|
6
|
+
* before booking, then lists previously planned multi-modal shipments.
|
|
7
|
+
*/
|
|
8
|
+
export default function MultiModalShipmentPage(): import("react").JSX.Element;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
//#region node_modules/lucide-react/dist/esm/icons/calculator.js
|
|
3
|
+
var t = e("Calculator", [
|
|
4
|
+
["rect", {
|
|
5
|
+
width: "16",
|
|
6
|
+
height: "20",
|
|
7
|
+
x: "4",
|
|
8
|
+
y: "2",
|
|
9
|
+
rx: "2",
|
|
10
|
+
key: "1nb95v"
|
|
11
|
+
}],
|
|
12
|
+
["line", {
|
|
13
|
+
x1: "8",
|
|
14
|
+
x2: "16",
|
|
15
|
+
y1: "6",
|
|
16
|
+
y2: "6",
|
|
17
|
+
key: "x4nwl0"
|
|
18
|
+
}],
|
|
19
|
+
["line", {
|
|
20
|
+
x1: "16",
|
|
21
|
+
x2: "16",
|
|
22
|
+
y1: "14",
|
|
23
|
+
y2: "18",
|
|
24
|
+
key: "wjye3r"
|
|
25
|
+
}],
|
|
26
|
+
["path", {
|
|
27
|
+
d: "M16 10h.01",
|
|
28
|
+
key: "1m94wz"
|
|
29
|
+
}],
|
|
30
|
+
["path", {
|
|
31
|
+
d: "M12 10h.01",
|
|
32
|
+
key: "1nrarc"
|
|
33
|
+
}],
|
|
34
|
+
["path", {
|
|
35
|
+
d: "M8 10h.01",
|
|
36
|
+
key: "19clt8"
|
|
37
|
+
}],
|
|
38
|
+
["path", {
|
|
39
|
+
d: "M12 14h.01",
|
|
40
|
+
key: "1etili"
|
|
41
|
+
}],
|
|
42
|
+
["path", {
|
|
43
|
+
d: "M8 14h.01",
|
|
44
|
+
key: "6423bh"
|
|
45
|
+
}],
|
|
46
|
+
["path", {
|
|
47
|
+
d: "M12 18h.01",
|
|
48
|
+
key: "mhygvu"
|
|
49
|
+
}],
|
|
50
|
+
["path", {
|
|
51
|
+
d: "M8 18h.01",
|
|
52
|
+
key: "lrp35t"
|
|
53
|
+
}]
|
|
54
|
+
]);
|
|
55
|
+
//#endregion
|
|
56
|
+
export { t as Calculator };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
//#region node_modules/lucide-react/dist/esm/icons/plane.js
|
|
3
|
+
var t = e("Plane", [["path", {
|
|
4
|
+
d: "M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2z",
|
|
5
|
+
key: "1v9wt8"
|
|
6
|
+
}]]);
|
|
7
|
+
//#endregion
|
|
8
|
+
export { t as Plane };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
//#region node_modules/lucide-react/dist/esm/icons/ship.js
|
|
3
|
+
var t = e("Ship", [
|
|
4
|
+
["path", {
|
|
5
|
+
d: "M12 10.189V14",
|
|
6
|
+
key: "1p8cqu"
|
|
7
|
+
}],
|
|
8
|
+
["path", {
|
|
9
|
+
d: "M12 2v3",
|
|
10
|
+
key: "qbqxhf"
|
|
11
|
+
}],
|
|
12
|
+
["path", {
|
|
13
|
+
d: "M19 13V7a2 2 0 0 0-2-2H7a2 2 0 0 0-2 2v6",
|
|
14
|
+
key: "qpkstq"
|
|
15
|
+
}],
|
|
16
|
+
["path", {
|
|
17
|
+
d: "M19.38 20A11.6 11.6 0 0 0 21 14l-8.188-3.639a2 2 0 0 0-1.624 0L3 14a11.6 11.6 0 0 0 2.81 7.76",
|
|
18
|
+
key: "7tigtc"
|
|
19
|
+
}],
|
|
20
|
+
["path", {
|
|
21
|
+
d: "M2 21c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1s1.2 1 2.5 1c2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",
|
|
22
|
+
key: "1924j5"
|
|
23
|
+
}]
|
|
24
|
+
]);
|
|
25
|
+
//#endregion
|
|
26
|
+
export { t as Ship };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { createLucideIcon as e } from "../createLucideIcon.js";
|
|
2
|
+
//#region node_modules/lucide-react/dist/esm/icons/train-front.js
|
|
3
|
+
var t = e("TrainFront", [
|
|
4
|
+
["path", {
|
|
5
|
+
d: "M8 3.1V7a4 4 0 0 0 8 0V3.1",
|
|
6
|
+
key: "1v71zp"
|
|
7
|
+
}],
|
|
8
|
+
["path", {
|
|
9
|
+
d: "m9 15-1-1",
|
|
10
|
+
key: "1yrq24"
|
|
11
|
+
}],
|
|
12
|
+
["path", {
|
|
13
|
+
d: "m15 15 1-1",
|
|
14
|
+
key: "1t0d6s"
|
|
15
|
+
}],
|
|
16
|
+
["path", {
|
|
17
|
+
d: "M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z",
|
|
18
|
+
key: "1p0hjs"
|
|
19
|
+
}],
|
|
20
|
+
["path", {
|
|
21
|
+
d: "m8 19-2 3",
|
|
22
|
+
key: "13i0xs"
|
|
23
|
+
}],
|
|
24
|
+
["path", {
|
|
25
|
+
d: "m16 19 2 3",
|
|
26
|
+
key: "xo31yx"
|
|
27
|
+
}]
|
|
28
|
+
]);
|
|
29
|
+
//#endregion
|
|
30
|
+
export { t as TrainFront };
|