@burdenoff/microfe-theglobalfuel 2026.1107.1 → 2026.1107.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/theglobalfuel/TheGlobalFuelRoot.d.ts.map +1 -1
- package/dist/theglobalfuel/TheGlobalFuelRoot.js +93 -61
- package/dist/theglobalfuel/TheGlobalFuelRoot.js.map +1 -1
- package/dist/theglobalfuel/TheGlobalFuelRoutes.d.ts.map +1 -1
- package/dist/theglobalfuel/TheGlobalFuelRoutes.js +44 -28
- package/dist/theglobalfuel/TheGlobalFuelRoutes.js.map +1 -1
- package/dist/theglobalfuel/components/StatusBadge.d.ts.map +1 -1
- package/dist/theglobalfuel/components/StatusBadge.js +9 -1
- package/dist/theglobalfuel/components/StatusBadge.js.map +1 -1
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts +54 -1
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.d.ts.map +1 -1
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.js +245 -68
- package/dist/theglobalfuel/hooks/useTheGlobalFuelApi.js.map +1 -1
- package/dist/theglobalfuel/pages/assets/AssetDetailPage.d.ts.map +1 -1
- package/dist/theglobalfuel/pages/assets/AssetDetailPage.js +446 -439
- package/dist/theglobalfuel/pages/assets/AssetDetailPage.js.map +1 -1
- package/dist/theglobalfuel/pages/field/FieldWorkOrdersPage.d.ts +17 -0
- package/dist/theglobalfuel/pages/field/FieldWorkOrdersPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/field/FieldWorkOrdersPage.js +181 -0
- package/dist/theglobalfuel/pages/field/FieldWorkOrdersPage.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/AssetMaintenanceHistory.d.ts +15 -0
- package/dist/theglobalfuel/pages/maintenance/AssetMaintenanceHistory.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/AssetMaintenanceHistory.js +130 -0
- package/dist/theglobalfuel/pages/maintenance/AssetMaintenanceHistory.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/EquipmentPage.d.ts +12 -0
- package/dist/theglobalfuel/pages/maintenance/EquipmentPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/EquipmentPage.js +570 -0
- package/dist/theglobalfuel/pages/maintenance/EquipmentPage.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/MaintenanceDashboardPage.d.ts +11 -0
- package/dist/theglobalfuel/pages/maintenance/MaintenanceDashboardPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/MaintenanceDashboardPage.js +186 -0
- package/dist/theglobalfuel/pages/maintenance/MaintenanceDashboardPage.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrderDialogs.d.ts +19 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrderDialogs.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrderDialogs.js +540 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrderDialogs.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrdersPage.d.ts +13 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrdersPage.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrdersPage.js +213 -0
- package/dist/theglobalfuel/pages/maintenance/WorkOrdersPage.js.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/lifecycle.d.ts +23 -0
- package/dist/theglobalfuel/pages/maintenance/lifecycle.d.ts.map +1 -0
- package/dist/theglobalfuel/pages/maintenance/lifecycle.js +82 -0
- package/dist/theglobalfuel/pages/maintenance/lifecycle.js.map +1 -0
- package/dist/theglobalfuel/types/index.d.ts +152 -0
- package/dist/theglobalfuel/types/index.d.ts.map +1 -1
- package/dist/theglobalfuel/utils/pageContext.d.ts.map +1 -1
- package/dist/theglobalfuel/utils/pageContext.js +4 -0
- package/dist/theglobalfuel/utils/pageContext.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheGlobalFuelRoot.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TheGlobalFuelRoot.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AA2BhC,OAAO,KAAK,EAAE,sBAAsB,EAAW,MAAM,SAAS,CAAC;AAY/D,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA8LxD,CAAC"}
|
|
@@ -5,153 +5,185 @@ import { useCallback as r, useEffect as i, useMemo as a } from "react";
|
|
|
5
5
|
import { QueryClient as o, QueryClientProvider as s } from "@tanstack/react-query";
|
|
6
6
|
import { FeatureFlagProvider as c, useFeatureFlags as l } from "@burdenoff/fe-libs/shared/feature-flags";
|
|
7
7
|
import { useI18n as u } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
8
|
-
import { Boxes as d,
|
|
9
|
-
import { jsx as
|
|
8
|
+
import { Boxes as d, ClipboardCheck as f, ClipboardList as p, Cog as m, Factory as h, FileCheck2 as g, FileText as _, Gauge as v, HardHat as y, Layers as b, LayoutDashboard as x, Leaf as S, ShieldAlert as C, ShieldCheck as w, Truck as T, Waypoints as E, Wrench as D } from "lucide-react";
|
|
9
|
+
import { jsx as O } from "react/jsx-runtime";
|
|
10
10
|
//#region src/theglobalfuel/TheGlobalFuelRoot.tsx
|
|
11
|
-
var
|
|
11
|
+
var k = new o({ defaultOptions: { queries: {
|
|
12
12
|
staleTime: 300 * 1e3,
|
|
13
13
|
retry: 1,
|
|
14
14
|
refetchOnWindowFocus: !1
|
|
15
|
-
} } }),
|
|
16
|
-
let { registerNavItems:
|
|
17
|
-
let n =
|
|
15
|
+
} } }), A = (o) => {
|
|
16
|
+
let { registerNavItems: A, registerFooterItems: j, basePath: M = "/" } = o, { t: N } = u(), { isEnabled: P, evaluations: F } = l(), I = r((e, t) => {
|
|
17
|
+
let n = N(e);
|
|
18
18
|
return n === e ? t : n;
|
|
19
|
-
}, [
|
|
19
|
+
}, [N]), L = a(() => [
|
|
20
20
|
{
|
|
21
21
|
id: "theglobalfuel-dashboard",
|
|
22
|
-
label:
|
|
23
|
-
path: e(
|
|
24
|
-
icon: /* @__PURE__ */
|
|
22
|
+
label: I("theglobalfuel.nav.dashboard", "Dashboard"),
|
|
23
|
+
path: e(M, ""),
|
|
24
|
+
icon: /* @__PURE__ */ O(x, { size: 20 }),
|
|
25
25
|
order: 0,
|
|
26
26
|
group: "products"
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
id: "theglobalfuel-assets",
|
|
30
|
-
label:
|
|
31
|
-
path: e(
|
|
32
|
-
icon: /* @__PURE__ */
|
|
30
|
+
label: I("theglobalfuel.nav.assets", "Assets"),
|
|
31
|
+
path: e(M, "assets"),
|
|
32
|
+
icon: /* @__PURE__ */ O(h, { size: 20 }),
|
|
33
33
|
order: 1,
|
|
34
34
|
group: "products"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
37
|
id: "theglobalfuel-production",
|
|
38
|
-
label:
|
|
39
|
-
path: e(
|
|
40
|
-
icon: /* @__PURE__ */
|
|
38
|
+
label: I("theglobalfuel.nav.production", "Production"),
|
|
39
|
+
path: e(M, "production"),
|
|
40
|
+
icon: /* @__PURE__ */ O(v, { size: 20 }),
|
|
41
41
|
order: 2,
|
|
42
42
|
group: "products"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
id: "theglobalfuel-reserves",
|
|
46
|
-
label:
|
|
47
|
-
path: e(
|
|
48
|
-
icon: /* @__PURE__ */
|
|
46
|
+
label: I("theglobalfuel.nav.reserves", "Reserves"),
|
|
47
|
+
path: e(M, "reserves"),
|
|
48
|
+
icon: /* @__PURE__ */ O(b, { size: 20 }),
|
|
49
49
|
order: 3,
|
|
50
50
|
group: "products"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
id: "theglobalfuel-contracts",
|
|
54
|
-
label:
|
|
55
|
-
path: e(
|
|
56
|
-
icon: /* @__PURE__ */
|
|
54
|
+
label: I("theglobalfuel.nav.contracts", "Offtake Contracts"),
|
|
55
|
+
path: e(M, "contracts"),
|
|
56
|
+
icon: /* @__PURE__ */ O(_, { size: 20 }),
|
|
57
57
|
order: 4,
|
|
58
58
|
group: "products"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
id: "theglobalfuel-shipments",
|
|
62
|
-
label:
|
|
63
|
-
path: e(
|
|
64
|
-
icon: /* @__PURE__ */
|
|
62
|
+
label: I("theglobalfuel.nav.shipments", "Shipments"),
|
|
63
|
+
path: e(M, "shipments"),
|
|
64
|
+
icon: /* @__PURE__ */ O(T, { size: 20 }),
|
|
65
65
|
order: 5,
|
|
66
66
|
group: "products"
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
id: "theglobalfuel-inventory",
|
|
70
|
-
label:
|
|
71
|
-
path: e(
|
|
72
|
-
icon: /* @__PURE__ */
|
|
70
|
+
label: I("theglobalfuel.nav.inventory", "Inventory"),
|
|
71
|
+
path: e(M, "inventory"),
|
|
72
|
+
icon: /* @__PURE__ */ O(d, { size: 20 }),
|
|
73
73
|
order: 6,
|
|
74
74
|
group: "products"
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
id: "theglobalfuel-emissions",
|
|
78
|
-
label:
|
|
79
|
-
path: e(
|
|
80
|
-
icon: /* @__PURE__ */
|
|
78
|
+
label: I("theglobalfuel.nav.emissions", "Emissions"),
|
|
79
|
+
path: e(M, "emissions"),
|
|
80
|
+
icon: /* @__PURE__ */ O(S, { size: 20 }),
|
|
81
81
|
order: 7,
|
|
82
82
|
group: "products"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
id: "theglobalfuel-compliance",
|
|
86
|
-
label:
|
|
87
|
-
path: e(
|
|
88
|
-
icon: /* @__PURE__ */ w
|
|
86
|
+
label: I("theglobalfuel.nav.compliance", "Compliance"),
|
|
87
|
+
path: e(M, "compliance"),
|
|
88
|
+
icon: /* @__PURE__ */ O(w, { size: 20 }),
|
|
89
89
|
order: 8,
|
|
90
90
|
group: "products"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
id: "theglobalfuel-provenance",
|
|
94
|
-
label:
|
|
95
|
-
path: e(
|
|
96
|
-
icon: /* @__PURE__ */
|
|
94
|
+
label: I("theglobalfuel.nav.provenance", "Provenance"),
|
|
95
|
+
path: e(M, "provenance"),
|
|
96
|
+
icon: /* @__PURE__ */ O(E, { size: 20 }),
|
|
97
97
|
order: 9,
|
|
98
98
|
group: "products"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
id: "theglobalfuel-safety",
|
|
102
|
-
label:
|
|
103
|
-
path: e(
|
|
104
|
-
icon: /* @__PURE__ */
|
|
102
|
+
label: I("theglobalfuel.nav.safety", "Safety"),
|
|
103
|
+
path: e(M, "safety"),
|
|
104
|
+
icon: /* @__PURE__ */ O(C, { size: 20 }),
|
|
105
105
|
order: 10,
|
|
106
106
|
group: "products"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
109
|
id: "theglobalfuel-incidents",
|
|
110
|
-
label:
|
|
111
|
-
path: e(
|
|
112
|
-
icon: /* @__PURE__ */
|
|
110
|
+
label: I("theglobalfuel.nav.incidents", "Incidents"),
|
|
111
|
+
path: e(M, "safety/incidents"),
|
|
112
|
+
icon: /* @__PURE__ */ O(p, { size: 20 }),
|
|
113
113
|
order: 11,
|
|
114
114
|
group: "products"
|
|
115
115
|
},
|
|
116
|
+
{
|
|
117
|
+
id: "theglobalfuel-maintenance",
|
|
118
|
+
label: I("theglobalfuel.nav.maintenance", "Maintenance"),
|
|
119
|
+
path: e(M, "maintenance"),
|
|
120
|
+
icon: /* @__PURE__ */ O(D, { size: 20 }),
|
|
121
|
+
order: 13,
|
|
122
|
+
group: "products"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
id: "theglobalfuel-work-orders",
|
|
126
|
+
label: I("theglobalfuel.nav.workOrders", "Work Orders"),
|
|
127
|
+
path: e(M, "maintenance/work-orders"),
|
|
128
|
+
icon: /* @__PURE__ */ O(f, { size: 20 }),
|
|
129
|
+
order: 14,
|
|
130
|
+
group: "products"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
id: "theglobalfuel-equipment",
|
|
134
|
+
label: I("theglobalfuel.nav.equipment", "Equipment"),
|
|
135
|
+
path: e(M, "maintenance/equipment"),
|
|
136
|
+
icon: /* @__PURE__ */ O(m, { size: 20 }),
|
|
137
|
+
order: 15,
|
|
138
|
+
group: "products"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
id: "theglobalfuel-field",
|
|
142
|
+
label: I("theglobalfuel.nav.field", "Field Work"),
|
|
143
|
+
path: e(M, "field"),
|
|
144
|
+
icon: /* @__PURE__ */ O(y, { size: 20 }),
|
|
145
|
+
order: 16,
|
|
146
|
+
group: "products"
|
|
147
|
+
},
|
|
116
148
|
{
|
|
117
149
|
id: "theglobalfuel-esg-disclosures",
|
|
118
|
-
label:
|
|
119
|
-
path: e(
|
|
120
|
-
icon: /* @__PURE__ */
|
|
121
|
-
order:
|
|
150
|
+
label: I("theglobalfuel.nav.esgDisclosures", "ESG Disclosures"),
|
|
151
|
+
path: e(M, "esg-disclosures"),
|
|
152
|
+
icon: /* @__PURE__ */ O(g, { size: 20 }),
|
|
153
|
+
order: 17,
|
|
122
154
|
group: "products"
|
|
123
155
|
}
|
|
124
|
-
], [
|
|
156
|
+
], [M, I]), R = r((e) => `theglobalfuel.${e.replace("theglobalfuel-", "")}`, []);
|
|
125
157
|
return i(() => {
|
|
126
|
-
if (
|
|
158
|
+
if (A) return A(L.filter((e) => P(R(e.id), !0)));
|
|
127
159
|
}, [
|
|
128
|
-
E,
|
|
129
|
-
N,
|
|
130
160
|
A,
|
|
131
|
-
|
|
132
|
-
P
|
|
161
|
+
L,
|
|
162
|
+
P,
|
|
163
|
+
F,
|
|
164
|
+
R
|
|
133
165
|
]), i(() => {
|
|
134
|
-
if (
|
|
166
|
+
if (j) return j([{
|
|
135
167
|
id: "theglobalfuel-status",
|
|
136
|
-
label:
|
|
168
|
+
label: I("theglobalfuel.footer.ready", "TheGlobalFuel Ready"),
|
|
137
169
|
type: "status",
|
|
138
170
|
section: "left",
|
|
139
171
|
order: 10
|
|
140
172
|
}]);
|
|
141
|
-
}, [
|
|
142
|
-
client:
|
|
143
|
-
children: /* @__PURE__ */
|
|
173
|
+
}, [j, I]), /* @__PURE__ */ O(s, {
|
|
174
|
+
client: k,
|
|
175
|
+
children: /* @__PURE__ */ O(c, {
|
|
144
176
|
workspaceId: null,
|
|
145
177
|
gateway: "global",
|
|
146
178
|
defaultEnabled: !0,
|
|
147
|
-
children: /* @__PURE__ */
|
|
179
|
+
children: /* @__PURE__ */ O(t, {
|
|
148
180
|
...o,
|
|
149
|
-
children: /* @__PURE__ */
|
|
181
|
+
children: /* @__PURE__ */ O(n, {})
|
|
150
182
|
})
|
|
151
183
|
})
|
|
152
184
|
});
|
|
153
185
|
};
|
|
154
186
|
//#endregion
|
|
155
|
-
export {
|
|
187
|
+
export { A as TheGlobalFuelRoot };
|
|
156
188
|
|
|
157
189
|
//# sourceMappingURL=TheGlobalFuelRoot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheGlobalFuelRoot.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Root Component\n * @module theglobalfuel\n *\n * Host-contract entry point. Registers the product's sidebar nav (sections that\n * map 1:1 to the wspace-theglobalfuel-svc `the*` backend, including the\n * process-safety / EHS incident surfaces) and mounts the routed pages inside\n * the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { FeatureFlagProvider, useFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Factory,\n Gauge,\n Layers,\n FileText,\n Truck,\n Boxes,\n Leaf,\n ShieldCheck,\n ShieldAlert,\n ClipboardList,\n FileCheck2,\n Waypoints,\n} from 'lucide-react';\nimport { TheGlobalFuelProvider } from './context/TheGlobalFuelContext';\nimport { TheGlobalFuelRoutes } from './TheGlobalFuelRoutes';\nimport { joinPath } from './utils/navigation';\nimport type { TheGlobalFuelRootProps, NavItem } from './types';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const TheGlobalFuelRoot: FC<TheGlobalFuelRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t: translate } = useI18n();\n const { isEnabled, evaluations } = useFeatureFlags();\n const t = useCallback(\n (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n },\n [translate]\n );\n\n // Register navigation items with the shell on mount. Ids/paths/orders match\n // the app-shell static NavRegistration block so the two are a single,\n // consistent source of truth.\n const navItems = useMemo<NavItem[]>(\n () => [\n {\n id: 'theglobalfuel-dashboard',\n label: t('theglobalfuel.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 0,\n group: 'products',\n },\n {\n id: 'theglobalfuel-assets',\n label: t('theglobalfuel.nav.assets', 'Assets'),\n path: joinPath(basePath, 'assets'),\n icon: <Factory size={20} />,\n order: 1,\n group: 'products',\n },\n {\n id: 'theglobalfuel-production',\n label: t('theglobalfuel.nav.production', 'Production'),\n path: joinPath(basePath, 'production'),\n icon: <Gauge size={20} />,\n order: 2,\n group: 'products',\n },\n {\n id: 'theglobalfuel-reserves',\n label: t('theglobalfuel.nav.reserves', 'Reserves'),\n path: joinPath(basePath, 'reserves'),\n icon: <Layers size={20} />,\n order: 3,\n group: 'products',\n },\n {\n id: 'theglobalfuel-contracts',\n label: t('theglobalfuel.nav.contracts', 'Offtake Contracts'),\n path: joinPath(basePath, 'contracts'),\n icon: <FileText size={20} />,\n order: 4,\n group: 'products',\n },\n {\n id: 'theglobalfuel-shipments',\n label: t('theglobalfuel.nav.shipments', 'Shipments'),\n path: joinPath(basePath, 'shipments'),\n icon: <Truck size={20} />,\n order: 5,\n group: 'products',\n },\n {\n id: 'theglobalfuel-inventory',\n label: t('theglobalfuel.nav.inventory', 'Inventory'),\n path: joinPath(basePath, 'inventory'),\n icon: <Boxes size={20} />,\n order: 6,\n group: 'products',\n },\n {\n id: 'theglobalfuel-emissions',\n label: t('theglobalfuel.nav.emissions', 'Emissions'),\n path: joinPath(basePath, 'emissions'),\n icon: <Leaf size={20} />,\n order: 7,\n group: 'products',\n },\n {\n id: 'theglobalfuel-compliance',\n label: t('theglobalfuel.nav.compliance', 'Compliance'),\n path: joinPath(basePath, 'compliance'),\n icon: <ShieldCheck size={20} />,\n order: 8,\n group: 'products',\n },\n {\n id: 'theglobalfuel-provenance',\n label: t('theglobalfuel.nav.provenance', 'Provenance'),\n path: joinPath(basePath, 'provenance'),\n icon: <Waypoints size={20} />,\n order: 9,\n group: 'products',\n },\n {\n id: 'theglobalfuel-safety',\n label: t('theglobalfuel.nav.safety', 'Safety'),\n path: joinPath(basePath, 'safety'),\n icon: <ShieldAlert size={20} />,\n order: 10,\n group: 'products',\n },\n {\n id: 'theglobalfuel-incidents',\n label: t('theglobalfuel.nav.incidents', 'Incidents'),\n path: joinPath(basePath, 'safety/incidents'),\n icon: <ClipboardList size={20} />,\n order: 11,\n group: 'products',\n },\n {\n id: 'theglobalfuel-esg-disclosures',\n label: t('theglobalfuel.nav.esgDisclosures', 'ESG Disclosures'),\n path: joinPath(basePath, 'esg-disclosures'),\n icon: <FileCheck2 size={20} />,\n order: 12,\n group: 'products',\n },\n ],\n [basePath, t]\n );\n\n const flagForNav = useCallback((itemId: string): string => {\n const suffix = itemId.replace('theglobalfuel-', '');\n return `theglobalfuel.${suffix}`;\n }, []);\n\n useEffect(() => {\n if (!registerNavItems) return;\n const visible = navItems.filter((item) => isEnabled(flagForNav(item.id), true));\n return registerNavItems(visible);\n }, [registerNavItems, navItems, isEnabled, evaluations, flagForNav]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n return registerFooterItems([\n {\n id: 'theglobalfuel-status',\n label: t('theglobalfuel.footer.ready', 'TheGlobalFuel Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TheGlobalFuelProvider {...props}>\n <TheGlobalFuelRoutes />\n </TheGlobalFuelProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TheGlobalFuelRoot.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoot.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Root Component\n * @module theglobalfuel\n *\n * Host-contract entry point. Registers the product's sidebar nav (sections that\n * map 1:1 to the wspace-theglobalfuel-svc `the*` backend, including the\n * process-safety / EHS incident surfaces) and mounts the routed pages inside\n * the shared QueryClient + FeatureFlag providers.\n */\n\nimport type { FC } from 'react';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { FeatureFlagProvider, useFeatureFlags } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport {\n LayoutDashboard,\n Factory,\n Gauge,\n Layers,\n FileText,\n Truck,\n Boxes,\n Leaf,\n ShieldCheck,\n ShieldAlert,\n ClipboardList,\n FileCheck2,\n Waypoints,\n Wrench,\n ClipboardCheck,\n Cog,\n HardHat,\n} from 'lucide-react';\nimport { TheGlobalFuelProvider } from './context/TheGlobalFuelContext';\nimport { TheGlobalFuelRoutes } from './TheGlobalFuelRoutes';\nimport { joinPath } from './utils/navigation';\nimport type { TheGlobalFuelRootProps, NavItem } from './types';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n staleTime: 5 * 60 * 1000,\n retry: 1,\n refetchOnWindowFocus: false,\n },\n },\n});\n\nexport const TheGlobalFuelRoot: FC<TheGlobalFuelRootProps> = (props) => {\n const { registerNavItems, registerFooterItems, basePath = '/' } = props;\n const { t: translate } = useI18n();\n const { isEnabled, evaluations } = useFeatureFlags();\n const t = useCallback(\n (key: string, fallback: string): string => {\n const value = translate(key);\n return value === key ? fallback : value;\n },\n [translate]\n );\n\n // Register navigation items with the shell on mount. Ids/paths/orders match\n // the app-shell static NavRegistration block so the two are a single,\n // consistent source of truth.\n const navItems = useMemo<NavItem[]>(\n () => [\n {\n id: 'theglobalfuel-dashboard',\n label: t('theglobalfuel.nav.dashboard', 'Dashboard'),\n path: joinPath(basePath, ''),\n icon: <LayoutDashboard size={20} />,\n order: 0,\n group: 'products',\n },\n {\n id: 'theglobalfuel-assets',\n label: t('theglobalfuel.nav.assets', 'Assets'),\n path: joinPath(basePath, 'assets'),\n icon: <Factory size={20} />,\n order: 1,\n group: 'products',\n },\n {\n id: 'theglobalfuel-production',\n label: t('theglobalfuel.nav.production', 'Production'),\n path: joinPath(basePath, 'production'),\n icon: <Gauge size={20} />,\n order: 2,\n group: 'products',\n },\n {\n id: 'theglobalfuel-reserves',\n label: t('theglobalfuel.nav.reserves', 'Reserves'),\n path: joinPath(basePath, 'reserves'),\n icon: <Layers size={20} />,\n order: 3,\n group: 'products',\n },\n {\n id: 'theglobalfuel-contracts',\n label: t('theglobalfuel.nav.contracts', 'Offtake Contracts'),\n path: joinPath(basePath, 'contracts'),\n icon: <FileText size={20} />,\n order: 4,\n group: 'products',\n },\n {\n id: 'theglobalfuel-shipments',\n label: t('theglobalfuel.nav.shipments', 'Shipments'),\n path: joinPath(basePath, 'shipments'),\n icon: <Truck size={20} />,\n order: 5,\n group: 'products',\n },\n {\n id: 'theglobalfuel-inventory',\n label: t('theglobalfuel.nav.inventory', 'Inventory'),\n path: joinPath(basePath, 'inventory'),\n icon: <Boxes size={20} />,\n order: 6,\n group: 'products',\n },\n {\n id: 'theglobalfuel-emissions',\n label: t('theglobalfuel.nav.emissions', 'Emissions'),\n path: joinPath(basePath, 'emissions'),\n icon: <Leaf size={20} />,\n order: 7,\n group: 'products',\n },\n {\n id: 'theglobalfuel-compliance',\n label: t('theglobalfuel.nav.compliance', 'Compliance'),\n path: joinPath(basePath, 'compliance'),\n icon: <ShieldCheck size={20} />,\n order: 8,\n group: 'products',\n },\n {\n id: 'theglobalfuel-provenance',\n label: t('theglobalfuel.nav.provenance', 'Provenance'),\n path: joinPath(basePath, 'provenance'),\n icon: <Waypoints size={20} />,\n order: 9,\n group: 'products',\n },\n {\n id: 'theglobalfuel-safety',\n label: t('theglobalfuel.nav.safety', 'Safety'),\n path: joinPath(basePath, 'safety'),\n icon: <ShieldAlert size={20} />,\n order: 10,\n group: 'products',\n },\n {\n id: 'theglobalfuel-incidents',\n label: t('theglobalfuel.nav.incidents', 'Incidents'),\n path: joinPath(basePath, 'safety/incidents'),\n icon: <ClipboardList size={20} />,\n order: 11,\n group: 'products',\n },\n {\n id: 'theglobalfuel-maintenance',\n label: t('theglobalfuel.nav.maintenance', 'Maintenance'),\n path: joinPath(basePath, 'maintenance'),\n icon: <Wrench size={20} />,\n order: 13,\n group: 'products',\n },\n {\n id: 'theglobalfuel-work-orders',\n label: t('theglobalfuel.nav.workOrders', 'Work Orders'),\n path: joinPath(basePath, 'maintenance/work-orders'),\n icon: <ClipboardCheck size={20} />,\n order: 14,\n group: 'products',\n },\n {\n id: 'theglobalfuel-equipment',\n label: t('theglobalfuel.nav.equipment', 'Equipment'),\n path: joinPath(basePath, 'maintenance/equipment'),\n icon: <Cog size={20} />,\n order: 15,\n group: 'products',\n },\n {\n id: 'theglobalfuel-field',\n label: t('theglobalfuel.nav.field', 'Field Work'),\n path: joinPath(basePath, 'field'),\n icon: <HardHat size={20} />,\n order: 16,\n group: 'products',\n },\n {\n id: 'theglobalfuel-esg-disclosures',\n label: t('theglobalfuel.nav.esgDisclosures', 'ESG Disclosures'),\n path: joinPath(basePath, 'esg-disclosures'),\n icon: <FileCheck2 size={20} />,\n order: 17,\n group: 'products',\n },\n ],\n [basePath, t]\n );\n\n const flagForNav = useCallback((itemId: string): string => {\n const suffix = itemId.replace('theglobalfuel-', '');\n return `theglobalfuel.${suffix}`;\n }, []);\n\n useEffect(() => {\n if (!registerNavItems) return;\n const visible = navItems.filter((item) => isEnabled(flagForNav(item.id), true));\n return registerNavItems(visible);\n }, [registerNavItems, navItems, isEnabled, evaluations, flagForNav]);\n\n useEffect(() => {\n if (!registerFooterItems) return;\n return registerFooterItems([\n {\n id: 'theglobalfuel-status',\n label: t('theglobalfuel.footer.ready', 'TheGlobalFuel Ready'),\n type: 'status',\n section: 'left',\n order: 10,\n },\n ]);\n }, [registerFooterItems, t]);\n\n return (\n <QueryClientProvider client={queryClient}>\n <FeatureFlagProvider workspaceId={null} gateway=\"global\" defaultEnabled={true}>\n <TheGlobalFuelProvider {...props}>\n <TheGlobalFuelRoutes />\n </TheGlobalFuelProvider>\n </FeatureFlagProvider>\n </QueryClientProvider>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheGlobalFuelRoutes.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TheGlobalFuelRoutes.d.ts","sourceRoot":"","sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAkC,MAAM,OAAO,CAAC;AAkHhE,eAAO,MAAM,mBAAmB,EAAE,EAgGjC,CAAC"}
|
|
@@ -6,11 +6,11 @@ import { Navigate as a, Route as o, Routes as s, useLocation as c } from "react-
|
|
|
6
6
|
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
7
7
|
import { Spinner as d } from "@burdenoff/fe-libs/ui";
|
|
8
8
|
//#region src/theglobalfuel/TheGlobalFuelRoutes.tsx
|
|
9
|
-
var f = r(() => import("./pages/assets/AssetsPage.js").then((e) => ({ default: e.AssetsPage }))), p = r(() => import("./pages/assets/AssetDetailPage.js").then((e) => ({ default: e.AssetDetailPage }))), m = r(() => import("./pages/production/ProductionPage.js").then((e) => ({ default: e.ProductionPage }))), h = r(() => import("./pages/reserves/ReservesPage.js").then((e) => ({ default: e.ReservesPage }))), g = r(() => import("./pages/contracts/ContractsPage.js").then((e) => ({ default: e.ContractsPage }))), _ = r(() => import("./pages/contracts/ContractDetailPage.js").then((e) => ({ default: e.ContractDetailPage }))), v = r(() => import("./pages/shipments/ShipmentsPage.js").then((e) => ({ default: e.ShipmentsPage }))), y = r(() => import("./pages/inventory/InventoryPage.js").then((e) => ({ default: e.InventoryPage }))), b = r(() => import("./pages/emissions/EmissionsPage.js").then((e) => ({ default: e.EmissionsPage }))), x = r(() => import("./pages/compliance/CompliancePage.js").then((e) => ({ default: e.CompliancePage }))), S = r(() => import("./pages/provenance/ProvenancePage.js").then((e) => ({ default: e.ProvenancePage }))), C = r(() => import("./pages/esg-disclosures/EsgDisclosuresPage.js").then((e) => ({ default: e.EsgDisclosuresPage }))), w = r(() => import("./pages/safety/SafetyDashboardPage.js").then((e) => ({ default: e.SafetyDashboardPage }))), T = r(() => import("./pages/safety/IncidentsPage.js").then((e) => ({ default: e.IncidentsPage }))), E = r(() => import("./pages/analytics/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))),
|
|
9
|
+
var f = r(() => import("./pages/assets/AssetsPage.js").then((e) => ({ default: e.AssetsPage }))), p = r(() => import("./pages/assets/AssetDetailPage.js").then((e) => ({ default: e.AssetDetailPage }))), m = r(() => import("./pages/production/ProductionPage.js").then((e) => ({ default: e.ProductionPage }))), h = r(() => import("./pages/reserves/ReservesPage.js").then((e) => ({ default: e.ReservesPage }))), g = r(() => import("./pages/contracts/ContractsPage.js").then((e) => ({ default: e.ContractsPage }))), _ = r(() => import("./pages/contracts/ContractDetailPage.js").then((e) => ({ default: e.ContractDetailPage }))), v = r(() => import("./pages/shipments/ShipmentsPage.js").then((e) => ({ default: e.ShipmentsPage }))), y = r(() => import("./pages/inventory/InventoryPage.js").then((e) => ({ default: e.InventoryPage }))), b = r(() => import("./pages/emissions/EmissionsPage.js").then((e) => ({ default: e.EmissionsPage }))), x = r(() => import("./pages/compliance/CompliancePage.js").then((e) => ({ default: e.CompliancePage }))), S = r(() => import("./pages/provenance/ProvenancePage.js").then((e) => ({ default: e.ProvenancePage }))), C = r(() => import("./pages/esg-disclosures/EsgDisclosuresPage.js").then((e) => ({ default: e.EsgDisclosuresPage }))), w = r(() => import("./pages/safety/SafetyDashboardPage.js").then((e) => ({ default: e.SafetyDashboardPage }))), T = r(() => import("./pages/safety/IncidentsPage.js").then((e) => ({ default: e.IncidentsPage }))), E = r(() => import("./pages/maintenance/MaintenanceDashboardPage.js").then((e) => ({ default: e.MaintenanceDashboardPage }))), D = r(() => import("./pages/maintenance/WorkOrdersPage.js").then((e) => ({ default: e.WorkOrdersPage }))), O = r(() => import("./pages/maintenance/EquipmentPage.js").then((e) => ({ default: e.EquipmentPage }))), k = r(() => import("./pages/field/FieldWorkOrdersPage.js").then((e) => ({ default: e.FieldWorkOrdersPage }))), A = r(() => import("./pages/analytics/AnalyticsPage.js").then((e) => ({ default: e.AnalyticsPage }))), j = r(() => import("./pages/reports/ReportsPage.js").then((e) => ({ default: e.ReportsPage }))), M = r(() => import("./pages/alerts/AlertsPage.js").then((e) => ({ default: e.AlertsPage }))), N = () => /* @__PURE__ */ l("div", {
|
|
10
10
|
className: "flex min-h-[400px] items-center justify-center",
|
|
11
11
|
children: /* @__PURE__ */ l(d, { size: "lg" })
|
|
12
12
|
});
|
|
13
|
-
function
|
|
13
|
+
function P() {
|
|
14
14
|
return /* @__PURE__ */ u("div", {
|
|
15
15
|
className: "flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6",
|
|
16
16
|
children: [/* @__PURE__ */ l("p", {
|
|
@@ -22,97 +22,113 @@ function A() {
|
|
|
22
22
|
})]
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
function
|
|
25
|
+
function F(e, t) {
|
|
26
26
|
return /* @__PURE__ */ l(i, {
|
|
27
27
|
flag: e,
|
|
28
28
|
defaultValue: !0,
|
|
29
|
-
fallback: /* @__PURE__ */ l(
|
|
29
|
+
fallback: /* @__PURE__ */ l(P, {}),
|
|
30
30
|
children: t
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
var
|
|
34
|
-
let { basePath: r, isStandalone: i } = e(), d = c(),
|
|
35
|
-
return
|
|
33
|
+
var I = () => {
|
|
34
|
+
let { basePath: r, isStandalone: i } = e(), d = c(), P = r === "/" ? "" : (r ?? "").replace(/\/$/, "");
|
|
35
|
+
return P && !i && !(d.pathname === P || d.pathname.startsWith(P + "/")) ? null : /* @__PURE__ */ l("div", {
|
|
36
36
|
className: "flex min-h-full flex-col",
|
|
37
37
|
children: /* @__PURE__ */ l(n, {
|
|
38
|
-
fallback: /* @__PURE__ */ l(
|
|
38
|
+
fallback: /* @__PURE__ */ l(N, {}),
|
|
39
39
|
children: /* @__PURE__ */ u(s, { children: [
|
|
40
40
|
/* @__PURE__ */ l(o, {
|
|
41
41
|
index: !0,
|
|
42
|
-
element:
|
|
42
|
+
element: F("theglobalfuel.dashboard", /* @__PURE__ */ l(t, {}))
|
|
43
43
|
}),
|
|
44
44
|
/* @__PURE__ */ l(o, {
|
|
45
45
|
path: "assets",
|
|
46
|
-
element:
|
|
46
|
+
element: F("theglobalfuel.assets", /* @__PURE__ */ l(f, {}))
|
|
47
47
|
}),
|
|
48
48
|
/* @__PURE__ */ l(o, {
|
|
49
49
|
path: "assets/:id",
|
|
50
|
-
element:
|
|
50
|
+
element: F("theglobalfuel.assets", /* @__PURE__ */ l(p, {}))
|
|
51
51
|
}),
|
|
52
52
|
/* @__PURE__ */ l(o, {
|
|
53
53
|
path: "production",
|
|
54
|
-
element:
|
|
54
|
+
element: F("theglobalfuel.production", /* @__PURE__ */ l(m, {}))
|
|
55
55
|
}),
|
|
56
56
|
/* @__PURE__ */ l(o, {
|
|
57
57
|
path: "reserves",
|
|
58
|
-
element:
|
|
58
|
+
element: F("theglobalfuel.reserves", /* @__PURE__ */ l(h, {}))
|
|
59
59
|
}),
|
|
60
60
|
/* @__PURE__ */ l(o, {
|
|
61
61
|
path: "contracts",
|
|
62
|
-
element:
|
|
62
|
+
element: F("theglobalfuel.contracts", /* @__PURE__ */ l(g, {}))
|
|
63
63
|
}),
|
|
64
64
|
/* @__PURE__ */ l(o, {
|
|
65
65
|
path: "contracts/:id",
|
|
66
|
-
element:
|
|
66
|
+
element: F("theglobalfuel.contracts", /* @__PURE__ */ l(_, {}))
|
|
67
67
|
}),
|
|
68
68
|
/* @__PURE__ */ l(o, {
|
|
69
69
|
path: "shipments",
|
|
70
|
-
element:
|
|
70
|
+
element: F("theglobalfuel.shipments", /* @__PURE__ */ l(v, {}))
|
|
71
71
|
}),
|
|
72
72
|
/* @__PURE__ */ l(o, {
|
|
73
73
|
path: "inventory",
|
|
74
|
-
element:
|
|
74
|
+
element: F("theglobalfuel.inventory", /* @__PURE__ */ l(y, {}))
|
|
75
75
|
}),
|
|
76
76
|
/* @__PURE__ */ l(o, {
|
|
77
77
|
path: "emissions",
|
|
78
|
-
element:
|
|
78
|
+
element: F("theglobalfuel.emissions", /* @__PURE__ */ l(b, {}))
|
|
79
79
|
}),
|
|
80
80
|
/* @__PURE__ */ l(o, {
|
|
81
81
|
path: "compliance",
|
|
82
|
-
element:
|
|
82
|
+
element: F("theglobalfuel.compliance", /* @__PURE__ */ l(x, {}))
|
|
83
83
|
}),
|
|
84
84
|
/* @__PURE__ */ l(o, {
|
|
85
85
|
path: "provenance",
|
|
86
|
-
element:
|
|
86
|
+
element: F("theglobalfuel.provenance", /* @__PURE__ */ l(S, {}))
|
|
87
87
|
}),
|
|
88
88
|
/* @__PURE__ */ l(o, {
|
|
89
89
|
path: "esg-disclosures",
|
|
90
|
-
element:
|
|
90
|
+
element: F("theglobalfuel.esg-disclosures", /* @__PURE__ */ l(C, {}))
|
|
91
91
|
}),
|
|
92
92
|
/* @__PURE__ */ l(o, {
|
|
93
93
|
path: "safety",
|
|
94
|
-
element:
|
|
94
|
+
element: F("theglobalfuel.safety", /* @__PURE__ */ l(w, {}))
|
|
95
95
|
}),
|
|
96
96
|
/* @__PURE__ */ l(o, {
|
|
97
97
|
path: "safety/incidents",
|
|
98
|
-
element:
|
|
98
|
+
element: F("theglobalfuel.safety", /* @__PURE__ */ l(T, {}))
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ l(o, {
|
|
101
|
+
path: "maintenance",
|
|
102
|
+
element: F("theglobalfuel.maintenance", /* @__PURE__ */ l(E, {}))
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ l(o, {
|
|
105
|
+
path: "maintenance/work-orders",
|
|
106
|
+
element: F("theglobalfuel.maintenance", /* @__PURE__ */ l(D, {}))
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ l(o, {
|
|
109
|
+
path: "maintenance/equipment",
|
|
110
|
+
element: F("theglobalfuel.maintenance", /* @__PURE__ */ l(O, {}))
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ l(o, {
|
|
113
|
+
path: "field",
|
|
114
|
+
element: F("theglobalfuel.maintenance", /* @__PURE__ */ l(k, {}))
|
|
99
115
|
}),
|
|
100
116
|
/* @__PURE__ */ l(o, {
|
|
101
117
|
path: "analytics",
|
|
102
|
-
element:
|
|
118
|
+
element: F("theglobalfuel.analytics", /* @__PURE__ */ l(A, {}))
|
|
103
119
|
}),
|
|
104
120
|
/* @__PURE__ */ l(o, {
|
|
105
121
|
path: "reports",
|
|
106
|
-
element:
|
|
122
|
+
element: F("theglobalfuel.reports", /* @__PURE__ */ l(j, {}))
|
|
107
123
|
}),
|
|
108
124
|
/* @__PURE__ */ l(o, {
|
|
109
125
|
path: "alerts",
|
|
110
|
-
element:
|
|
126
|
+
element: F("theglobalfuel.alerts", /* @__PURE__ */ l(M, {}))
|
|
111
127
|
}),
|
|
112
128
|
/* @__PURE__ */ l(o, {
|
|
113
129
|
path: "*",
|
|
114
130
|
element: /* @__PURE__ */ l(a, {
|
|
115
|
-
to:
|
|
131
|
+
to: P || "/",
|
|
116
132
|
replace: !0
|
|
117
133
|
})
|
|
118
134
|
})
|
|
@@ -121,6 +137,6 @@ var M = () => {
|
|
|
121
137
|
});
|
|
122
138
|
};
|
|
123
139
|
//#endregion
|
|
124
|
-
export {
|
|
140
|
+
export { I as TheGlobalFuelRoutes };
|
|
125
141
|
|
|
126
142
|
//# sourceMappingURL=TheGlobalFuelRoutes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TheGlobalFuelRoutes.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Routes\n * @module theglobalfuel\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `the*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTheGlobalFuel } from './context/TheGlobalFuelContext';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/dashboard/DashboardPage';\n\n// Registry — Assets, Production, Reserves\nconst AssetsPage = lazy(() =>\n import('./pages/assets/AssetsPage').then((m) => ({ default: m.AssetsPage }))\n);\nconst AssetDetailPage = lazy(() =>\n import('./pages/assets/AssetDetailPage').then((m) => ({ default: m.AssetDetailPage }))\n);\nconst ProductionPage = lazy(() =>\n import('./pages/production/ProductionPage').then((m) => ({ default: m.ProductionPage }))\n);\nconst ReservesPage = lazy(() =>\n import('./pages/reserves/ReservesPage').then((m) => ({ default: m.ReservesPage }))\n);\n\n// Commerce — Offtake Contracts, Shipments, Inventory\nconst ContractsPage = lazy(() =>\n import('./pages/contracts/ContractsPage').then((m) => ({ default: m.ContractsPage }))\n);\nconst ContractDetailPage = lazy(() =>\n import('./pages/contracts/ContractDetailPage').then((m) => ({ default: m.ContractDetailPage }))\n);\nconst ShipmentsPage = lazy(() =>\n import('./pages/shipments/ShipmentsPage').then((m) => ({ default: m.ShipmentsPage }))\n);\nconst InventoryPage = lazy(() =>\n import('./pages/inventory/InventoryPage').then((m) => ({ default: m.InventoryPage }))\n);\n\n// Sustainability — Emissions, Compliance\nconst EmissionsPage = lazy(() =>\n import('./pages/emissions/EmissionsPage').then((m) => ({ default: m.EmissionsPage }))\n);\nconst CompliancePage = lazy(() =>\n import('./pages/compliance/CompliancePage').then((m) => ({ default: m.CompliancePage }))\n);\nconst ProvenancePage = lazy(() =>\n import('./pages/provenance/ProvenancePage').then((m) => ({ default: m.ProvenancePage }))\n);\n\n// Sustainability — framework-aligned ESG disclosures (BOFF-4185).\nconst EsgDisclosuresPage = lazy(() =>\n import('./pages/esg-disclosures/EsgDisclosuresPage').then((m) => ({\n default: m.EsgDisclosuresPage,\n }))\n);\n\n// Safety — process-safety / EHS incident management (BOFF-4186).\nconst SafetyDashboardPage = lazy(() =>\n import('./pages/safety/SafetyDashboardPage').then((m) => ({ default: m.SafetyDashboardPage }))\n);\nconst IncidentsPage = lazy(() =>\n import('./pages/safety/IncidentsPage').then((m) => ({ default: m.IncidentsPage }))\n);\n\n// Cross-cutting operator surfaces — analytics, report extracts and exceptions.\nconst AnalyticsPage = lazy(() =>\n import('./pages/analytics/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst ReportsPage = lazy(() =>\n import('./pages/reports/ReportsPage').then((m) => ({ default: m.ReportsPage }))\n);\nconst AlertsPage = lazy(() =>\n import('./pages/alerts/AlertsPage').then((m) => ({ default: m.AlertsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6\">\n <p className=\"text-sm font-medium text-text-secondary\">This feature is not available.</p>\n <p className=\"text-xs text-text-tertiary\">Ask your workspace admin to enable it.</p>\n </div>\n );\n}\n\nfunction gated(flag: string, element: ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nexport const TheGlobalFuelRoutes: FC = () => {\n const { basePath, isStandalone } = useTheGlobalFuel();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render if the current path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('theglobalfuel.dashboard', <DashboardPage />)} />\n\n <Route path=\"assets\" element={gated('theglobalfuel.assets', <AssetsPage />)} />\n <Route path=\"assets/:id\" element={gated('theglobalfuel.assets', <AssetDetailPage />)} />\n\n <Route\n path=\"production\"\n element={gated('theglobalfuel.production', <ProductionPage />)}\n />\n\n <Route path=\"reserves\" element={gated('theglobalfuel.reserves', <ReservesPage />)} />\n\n <Route path=\"contracts\" element={gated('theglobalfuel.contracts', <ContractsPage />)} />\n <Route\n path=\"contracts/:id\"\n element={gated('theglobalfuel.contracts', <ContractDetailPage />)}\n />\n\n <Route path=\"shipments\" element={gated('theglobalfuel.shipments', <ShipmentsPage />)} />\n\n <Route path=\"inventory\" element={gated('theglobalfuel.inventory', <InventoryPage />)} />\n\n <Route path=\"emissions\" element={gated('theglobalfuel.emissions', <EmissionsPage />)} />\n\n <Route\n path=\"compliance\"\n element={gated('theglobalfuel.compliance', <CompliancePage />)}\n />\n\n <Route\n path=\"provenance\"\n element={gated('theglobalfuel.provenance', <ProvenancePage />)}\n />\n\n <Route\n path=\"esg-disclosures\"\n element={gated('theglobalfuel.esg-disclosures', <EsgDisclosuresPage />)}\n />\n\n <Route path=\"safety\" element={gated('theglobalfuel.safety', <SafetyDashboardPage />)} />\n <Route\n path=\"safety/incidents\"\n element={gated('theglobalfuel.safety', <IncidentsPage />)}\n />\n\n <Route path=\"analytics\" element={gated('theglobalfuel.analytics', <AnalyticsPage />)} />\n\n <Route path=\"reports\" element={gated('theglobalfuel.reports', <ReportsPage />)} />\n\n <Route path=\"alerts\" element={gated('theglobalfuel.alerts', <AlertsPage />)} />\n\n {/* Unknown subpaths (e.g. /theglobalfuel/dashboard, stale bookmarks) canonicalize\n to the product root (the dashboard index). An absolute target avoids the\n self-referential `to=\"\"` loop that renders blank inside the nested Routes. */}\n <Route path=\"*\" element={<Navigate to={normalizedBasePath || '/'} replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TheGlobalFuelRoutes.js","names":[],"sources":["../../src/theglobalfuel/TheGlobalFuelRoutes.tsx"],"sourcesContent":["/**\n * TheGlobalFuel Routes\n * @module theglobalfuel\n *\n * Domain routes. The dashboard is eager-loaded (primary landing); all other\n * pages are lazy-loaded. Every route maps to a real `the*` backend capability.\n */\n\nimport { type FC, lazy, Suspense, type ReactNode } from 'react';\nimport { Routes, Route, Navigate, useLocation } from 'react-router';\nimport { Spinner } from '@burdenoff/fe-libs/ui';\nimport { FeatureGate } from '@burdenoff/fe-libs/shared/feature-flags';\nimport { useTheGlobalFuel } from './context/TheGlobalFuelContext';\n\n// Eager — primary landing\nimport { DashboardPage } from './pages/dashboard/DashboardPage';\n\n// Registry — Assets, Production, Reserves\nconst AssetsPage = lazy(() =>\n import('./pages/assets/AssetsPage').then((m) => ({ default: m.AssetsPage }))\n);\nconst AssetDetailPage = lazy(() =>\n import('./pages/assets/AssetDetailPage').then((m) => ({ default: m.AssetDetailPage }))\n);\nconst ProductionPage = lazy(() =>\n import('./pages/production/ProductionPage').then((m) => ({ default: m.ProductionPage }))\n);\nconst ReservesPage = lazy(() =>\n import('./pages/reserves/ReservesPage').then((m) => ({ default: m.ReservesPage }))\n);\n\n// Commerce — Offtake Contracts, Shipments, Inventory\nconst ContractsPage = lazy(() =>\n import('./pages/contracts/ContractsPage').then((m) => ({ default: m.ContractsPage }))\n);\nconst ContractDetailPage = lazy(() =>\n import('./pages/contracts/ContractDetailPage').then((m) => ({ default: m.ContractDetailPage }))\n);\nconst ShipmentsPage = lazy(() =>\n import('./pages/shipments/ShipmentsPage').then((m) => ({ default: m.ShipmentsPage }))\n);\nconst InventoryPage = lazy(() =>\n import('./pages/inventory/InventoryPage').then((m) => ({ default: m.InventoryPage }))\n);\n\n// Sustainability — Emissions, Compliance\nconst EmissionsPage = lazy(() =>\n import('./pages/emissions/EmissionsPage').then((m) => ({ default: m.EmissionsPage }))\n);\nconst CompliancePage = lazy(() =>\n import('./pages/compliance/CompliancePage').then((m) => ({ default: m.CompliancePage }))\n);\nconst ProvenancePage = lazy(() =>\n import('./pages/provenance/ProvenancePage').then((m) => ({ default: m.ProvenancePage }))\n);\n\n// Sustainability — framework-aligned ESG disclosures (BOFF-4185).\nconst EsgDisclosuresPage = lazy(() =>\n import('./pages/esg-disclosures/EsgDisclosuresPage').then((m) => ({\n default: m.EsgDisclosuresPage,\n }))\n);\n\n// Safety — process-safety / EHS incident management (BOFF-4186).\nconst SafetyDashboardPage = lazy(() =>\n import('./pages/safety/SafetyDashboardPage').then((m) => ({ default: m.SafetyDashboardPage }))\n);\nconst IncidentsPage = lazy(() =>\n import('./pages/safety/IncidentsPage').then((m) => ({ default: m.IncidentsPage }))\n);\n\n// Maintenance / EAM — equipment register, preventive schedules, work orders and\n// the technician field queue (BOFF-4184).\nconst MaintenanceDashboardPage = lazy(() =>\n import('./pages/maintenance/MaintenanceDashboardPage').then((m) => ({\n default: m.MaintenanceDashboardPage,\n }))\n);\nconst WorkOrdersPage = lazy(() =>\n import('./pages/maintenance/WorkOrdersPage').then((m) => ({ default: m.WorkOrdersPage }))\n);\nconst EquipmentPage = lazy(() =>\n import('./pages/maintenance/EquipmentPage').then((m) => ({ default: m.EquipmentPage }))\n);\nconst FieldWorkOrdersPage = lazy(() =>\n import('./pages/field/FieldWorkOrdersPage').then((m) => ({ default: m.FieldWorkOrdersPage }))\n);\n\n// Cross-cutting operator surfaces — analytics, report extracts and exceptions.\nconst AnalyticsPage = lazy(() =>\n import('./pages/analytics/AnalyticsPage').then((m) => ({ default: m.AnalyticsPage }))\n);\nconst ReportsPage = lazy(() =>\n import('./pages/reports/ReportsPage').then((m) => ({ default: m.ReportsPage }))\n);\nconst AlertsPage = lazy(() =>\n import('./pages/alerts/AlertsPage').then((m) => ({ default: m.AlertsPage }))\n);\n\nconst PageLoader: FC = () => (\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Spinner size=\"lg\" />\n </div>\n);\n\nfunction FeatureDisabledFallback() {\n return (\n <div className=\"flex min-h-[400px] flex-col items-center justify-center gap-3 text-center p-6\">\n <p className=\"text-sm font-medium text-text-secondary\">This feature is not available.</p>\n <p className=\"text-xs text-text-tertiary\">Ask your workspace admin to enable it.</p>\n </div>\n );\n}\n\nfunction gated(flag: string, element: ReactNode): React.ReactElement {\n return (\n <FeatureGate flag={flag} defaultValue={true} fallback={<FeatureDisabledFallback />}>\n {element}\n </FeatureGate>\n );\n}\n\nexport const TheGlobalFuelRoutes: FC = () => {\n const { basePath, isStandalone } = useTheGlobalFuel();\n const location = useLocation();\n\n const normalizedBasePath = basePath === '/' ? '' : (basePath ?? '').replace(/\\/$/, '');\n\n // Guard: only render if the current path matches basePath (integrated mode).\n if (normalizedBasePath && !isStandalone) {\n const pathMatches =\n location.pathname === normalizedBasePath ||\n location.pathname.startsWith(normalizedBasePath + '/');\n if (!pathMatches) {\n return null;\n }\n }\n\n return (\n <div className=\"flex min-h-full flex-col\">\n <Suspense fallback={<PageLoader />}>\n <Routes>\n <Route index element={gated('theglobalfuel.dashboard', <DashboardPage />)} />\n\n <Route path=\"assets\" element={gated('theglobalfuel.assets', <AssetsPage />)} />\n <Route path=\"assets/:id\" element={gated('theglobalfuel.assets', <AssetDetailPage />)} />\n\n <Route\n path=\"production\"\n element={gated('theglobalfuel.production', <ProductionPage />)}\n />\n\n <Route path=\"reserves\" element={gated('theglobalfuel.reserves', <ReservesPage />)} />\n\n <Route path=\"contracts\" element={gated('theglobalfuel.contracts', <ContractsPage />)} />\n <Route\n path=\"contracts/:id\"\n element={gated('theglobalfuel.contracts', <ContractDetailPage />)}\n />\n\n <Route path=\"shipments\" element={gated('theglobalfuel.shipments', <ShipmentsPage />)} />\n\n <Route path=\"inventory\" element={gated('theglobalfuel.inventory', <InventoryPage />)} />\n\n <Route path=\"emissions\" element={gated('theglobalfuel.emissions', <EmissionsPage />)} />\n\n <Route\n path=\"compliance\"\n element={gated('theglobalfuel.compliance', <CompliancePage />)}\n />\n\n <Route\n path=\"provenance\"\n element={gated('theglobalfuel.provenance', <ProvenancePage />)}\n />\n\n <Route\n path=\"esg-disclosures\"\n element={gated('theglobalfuel.esg-disclosures', <EsgDisclosuresPage />)}\n />\n\n <Route path=\"safety\" element={gated('theglobalfuel.safety', <SafetyDashboardPage />)} />\n <Route\n path=\"safety/incidents\"\n element={gated('theglobalfuel.safety', <IncidentsPage />)}\n />\n\n <Route\n path=\"maintenance\"\n element={gated('theglobalfuel.maintenance', <MaintenanceDashboardPage />)}\n />\n <Route\n path=\"maintenance/work-orders\"\n element={gated('theglobalfuel.maintenance', <WorkOrdersPage />)}\n />\n <Route\n path=\"maintenance/equipment\"\n element={gated('theglobalfuel.maintenance', <EquipmentPage />)}\n />\n <Route\n path=\"field\"\n element={gated('theglobalfuel.maintenance', <FieldWorkOrdersPage />)}\n />\n\n <Route path=\"analytics\" element={gated('theglobalfuel.analytics', <AnalyticsPage />)} />\n\n <Route path=\"reports\" element={gated('theglobalfuel.reports', <ReportsPage />)} />\n\n <Route path=\"alerts\" element={gated('theglobalfuel.alerts', <AlertsPage />)} />\n\n {/* Unknown subpaths (e.g. /theglobalfuel/dashboard, stale bookmarks) canonicalize\n to the product root (the dashboard index). An absolute target avoids the\n self-referential `to=\"\"` loop that renders blank inside the nested Routes. */}\n <Route path=\"*\" element={<Navigate to={normalizedBasePath || '/'} replace />} />\n </Routes>\n </Suspense>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"StatusBadge.d.ts","sourceRoot":"","sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsID,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAsB5C,CAAC"}
|
|
@@ -82,7 +82,15 @@ var i = {
|
|
|
82
82
|
SKIPPED: "outline",
|
|
83
83
|
FAILED: "destructive",
|
|
84
84
|
UNALLOCATED: "warning",
|
|
85
|
-
DRAFT_PENDING: "secondary"
|
|
85
|
+
DRAFT_PENDING: "secondary",
|
|
86
|
+
OPERATIONAL: "success",
|
|
87
|
+
DEGRADED: "warning",
|
|
88
|
+
DOWN: "destructive",
|
|
89
|
+
PLANNED: "info",
|
|
90
|
+
CONDITION_BASED: "warning",
|
|
91
|
+
REACTIVE: "secondary",
|
|
92
|
+
URGENT: "destructive",
|
|
93
|
+
OVERDUE: "destructive"
|
|
86
94
|
}, s = ({ status: s, className: c }) => {
|
|
87
95
|
let l = s.toUpperCase(), u = o[l] ?? "secondary", d = a.has(l);
|
|
88
96
|
return /* @__PURE__ */ r("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBadge.js","names":[],"sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"sourcesContent":["/**\n * Status Badge Component\n * @module theglobalfuel/components\n *\n * A colored badge for TheGlobalFuel domain statuses (asset lifecycle, contract\n * lifecycle & side, shipment status, inventory status, compliance status,\n * emission scope, reserve category, pricing basis) with semantic color mapping.\n * Accepts the raw server enum value.\n */\n\nimport type { FC } from 'react';\nimport { cn } from '../utils/cn';\nimport { formatEnumLabel } from '../utils/formatters';\n\ninterface StatusBadgeProps {\n status: string;\n className?: string;\n}\n\ntype BadgeVariant = 'success' | 'warning' | 'destructive' | 'secondary' | 'info' | 'outline';\n\nconst variantStyles: Record<BadgeVariant, string> = {\n success: 'bg-status-success-bg-subtle text-status-success-text',\n warning: 'bg-status-warning-bg-subtle text-status-warning-text',\n destructive: 'bg-status-error-bg-subtle text-status-error-text',\n secondary: 'bg-bg-sunken text-text-secondary',\n info: 'bg-[var(--color-accent-soft)] text-text-primary',\n outline: 'border border-border-seam text-text-primary',\n};\n\n// Statuses that represent a \"live\" / in-progress condition get a subtle,\n// opacity-only glow pulse (reduced-motion safe via motion-safe:).\nconst liveStatuses = new Set(['PRODUCING', 'ACTIVE', 'IN_TRANSIT', 'LOADING']);\n\nconst statusVariantMap: Record<string, BadgeVariant> = {\n // Asset lifecycle\n EXPLORATION: 'secondary',\n APPRAISAL: 'info',\n DEVELOPMENT: 'warning',\n PRODUCING: 'success',\n SUSPENDED: 'warning',\n DECOMMISSIONING: 'warning',\n RETIRED: 'outline',\n\n // Offtake-contract lifecycle\n DRAFT: 'secondary',\n NEGOTIATION: 'info',\n SIGNED: 'info',\n ACTIVE: 'success',\n COMPLETED: 'success',\n TERMINATED: 'destructive',\n\n // Contract side\n BUY: 'info',\n SELL: 'secondary',\n\n // Pricing basis\n FIXED: 'outline',\n INDEX_LINKED: 'outline',\n FORMULA: 'outline',\n SPOT: 'secondary',\n\n // Shipment status\n SCHEDULED: 'secondary',\n LOADING: 'info',\n IN_TRANSIT: 'warning',\n DELIVERED: 'success',\n CANCELLED: 'destructive',\n\n // Inventory status\n AVAILABLE: 'success',\n RESERVED: 'info',\n CONSUMED: 'outline',\n WRITTEN_OFF: 'destructive',\n\n // Compliance status\n PENDING: 'secondary',\n SUBMITTED: 'info',\n APPROVED: 'success',\n REVERSED: 'outline',\n REJECTED: 'destructive',\n EXPIRED: 'warning',\n REVOKED: 'destructive',\n\n // Emission scope\n SCOPE_1: 'destructive',\n SCOPE_2: 'warning',\n SCOPE_3: 'info',\n\n // Reserve category\n PROVED: 'success',\n PROBABLE: 'info',\n POSSIBLE: 'warning',\n CONTINGENT: 'secondary',\n PROSPECTIVE: 'outline',\n\n // Safety incident category\n NEAR_MISS: 'info',\n INJURY: 'destructive',\n SPILL: 'warning',\n RELEASE: 'warning',\n EQUIPMENT_FAILURE: 'secondary',\n\n // Safety incident severity\n LOW: 'secondary',\n MEDIUM: 'warning',\n HIGH: 'destructive',\n CRITICAL: 'destructive',\n\n // Safety incident investigation lifecycle\n REPORTED: 'secondary',\n INVESTIGATING: 'info',\n ROOT_CAUSE_IDENTIFIED: 'warning',\n CORRECTIVE_ACTION: 'warning',\n CLOSED: 'success',\n\n // Corrective/preventive action lifecycle\n OPEN: 'warning',\n IN_PROGRESS: 'info',\n VERIFIED: 'success',\n\n // ESG disclosure status (DRAFT is shared with the contract lifecycle above)\n FINAL: 'success',\n\n // Allocation period close (CLOSED is shared with the incident lifecycle above)\n REOPENED: 'warning',\n\n // Bulk allocation outcomes (APPROVED is shared above)\n VALIDATED: 'info',\n ALLOCATED: 'success',\n SKIPPED: 'outline',\n FAILED: 'destructive',\n\n // Allocation exceptions\n UNALLOCATED: 'warning',\n DRAFT_PENDING: 'secondary',\n};\n\nexport const StatusBadge: FC<StatusBadgeProps> = ({ status, className }) => {\n const key = status.toUpperCase();\n const variant = statusVariantMap[key] ?? 'secondary';\n const isLive = liveStatuses.has(key);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n variantStyles[variant],\n className\n )}\n >\n {isLive && (\n <span\n aria-hidden=\"true\"\n className=\"size-1.5 rounded-full bg-current motion-safe:animate-vc-glow-pulse\"\n />\n )}\n {formatEnumLabel(status)}\n </span>\n );\n};\n"],"mappings":";;;;AAqBA,IAAM,IAA8C;CAClD,SAAS;CACT,SAAS;CACT,aAAa;CACb,WAAW;CACX,MAAM;CACN,SAAS;CACV,EAIK,IAAe,IAAI,IAAI;CAAC;CAAa;CAAU;CAAc;CAAU,CAAC,EAExE,IAAiD;CAErD,aAAa;CACb,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,SAAS;CAGT,OAAO;CACP,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,YAAY;CAGZ,KAAK;CACL,MAAM;CAGN,OAAO;CACP,cAAc;CACd,SAAS;CACT,MAAM;CAGN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,WAAW;CACX,WAAW;CAGX,WAAW;CACX,UAAU;CACV,UAAU;CACV,aAAa;CAGb,SAAS;CACT,WAAW;CACX,UAAU;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CAGT,SAAS;CACT,SAAS;CACT,SAAS;CAGT,QAAQ;CACR,UAAU;CACV,UAAU;CACV,YAAY;CACZ,aAAa;CAGb,WAAW;CACX,QAAQ;CACR,OAAO;CACP,SAAS;CACT,mBAAmB;CAGnB,KAAK;CACL,QAAQ;CACR,MAAM;CACN,UAAU;CAGV,UAAU;CACV,eAAe;CACf,uBAAuB;CACvB,mBAAmB;CACnB,QAAQ;CAGR,MAAM;CACN,aAAa;CACb,UAAU;CAGV,OAAO;CAGP,UAAU;CAGV,WAAW;CACX,WAAW;CACX,SAAS;CACT,QAAQ;CAGR,aAAa;CACb,eAAe;
|
|
1
|
+
{"version":3,"file":"StatusBadge.js","names":[],"sources":["../../../src/theglobalfuel/components/StatusBadge.tsx"],"sourcesContent":["/**\n * Status Badge Component\n * @module theglobalfuel/components\n *\n * A colored badge for TheGlobalFuel domain statuses (asset lifecycle, contract\n * lifecycle & side, shipment status, inventory status, compliance status,\n * emission scope, reserve category, pricing basis) with semantic color mapping.\n * Accepts the raw server enum value.\n */\n\nimport type { FC } from 'react';\nimport { cn } from '../utils/cn';\nimport { formatEnumLabel } from '../utils/formatters';\n\ninterface StatusBadgeProps {\n status: string;\n className?: string;\n}\n\ntype BadgeVariant = 'success' | 'warning' | 'destructive' | 'secondary' | 'info' | 'outline';\n\nconst variantStyles: Record<BadgeVariant, string> = {\n success: 'bg-status-success-bg-subtle text-status-success-text',\n warning: 'bg-status-warning-bg-subtle text-status-warning-text',\n destructive: 'bg-status-error-bg-subtle text-status-error-text',\n secondary: 'bg-bg-sunken text-text-secondary',\n info: 'bg-[var(--color-accent-soft)] text-text-primary',\n outline: 'border border-border-seam text-text-primary',\n};\n\n// Statuses that represent a \"live\" / in-progress condition get a subtle,\n// opacity-only glow pulse (reduced-motion safe via motion-safe:).\nconst liveStatuses = new Set(['PRODUCING', 'ACTIVE', 'IN_TRANSIT', 'LOADING']);\n\nconst statusVariantMap: Record<string, BadgeVariant> = {\n // Asset lifecycle\n EXPLORATION: 'secondary',\n APPRAISAL: 'info',\n DEVELOPMENT: 'warning',\n PRODUCING: 'success',\n SUSPENDED: 'warning',\n DECOMMISSIONING: 'warning',\n RETIRED: 'outline',\n\n // Offtake-contract lifecycle\n DRAFT: 'secondary',\n NEGOTIATION: 'info',\n SIGNED: 'info',\n ACTIVE: 'success',\n COMPLETED: 'success',\n TERMINATED: 'destructive',\n\n // Contract side\n BUY: 'info',\n SELL: 'secondary',\n\n // Pricing basis\n FIXED: 'outline',\n INDEX_LINKED: 'outline',\n FORMULA: 'outline',\n SPOT: 'secondary',\n\n // Shipment status\n SCHEDULED: 'secondary',\n LOADING: 'info',\n IN_TRANSIT: 'warning',\n DELIVERED: 'success',\n CANCELLED: 'destructive',\n\n // Inventory status\n AVAILABLE: 'success',\n RESERVED: 'info',\n CONSUMED: 'outline',\n WRITTEN_OFF: 'destructive',\n\n // Compliance status\n PENDING: 'secondary',\n SUBMITTED: 'info',\n APPROVED: 'success',\n REVERSED: 'outline',\n REJECTED: 'destructive',\n EXPIRED: 'warning',\n REVOKED: 'destructive',\n\n // Emission scope\n SCOPE_1: 'destructive',\n SCOPE_2: 'warning',\n SCOPE_3: 'info',\n\n // Reserve category\n PROVED: 'success',\n PROBABLE: 'info',\n POSSIBLE: 'warning',\n CONTINGENT: 'secondary',\n PROSPECTIVE: 'outline',\n\n // Safety incident category\n NEAR_MISS: 'info',\n INJURY: 'destructive',\n SPILL: 'warning',\n RELEASE: 'warning',\n EQUIPMENT_FAILURE: 'secondary',\n\n // Safety incident severity\n LOW: 'secondary',\n MEDIUM: 'warning',\n HIGH: 'destructive',\n CRITICAL: 'destructive',\n\n // Safety incident investigation lifecycle\n REPORTED: 'secondary',\n INVESTIGATING: 'info',\n ROOT_CAUSE_IDENTIFIED: 'warning',\n CORRECTIVE_ACTION: 'warning',\n CLOSED: 'success',\n\n // Corrective/preventive action lifecycle\n OPEN: 'warning',\n IN_PROGRESS: 'info',\n VERIFIED: 'success',\n\n // ESG disclosure status (DRAFT is shared with the contract lifecycle above)\n FINAL: 'success',\n\n // Allocation period close (CLOSED is shared with the incident lifecycle above)\n REOPENED: 'warning',\n\n // Bulk allocation outcomes (APPROVED is shared above)\n VALIDATED: 'info',\n ALLOCATED: 'success',\n SKIPPED: 'outline',\n FAILED: 'destructive',\n\n // Allocation exceptions\n UNALLOCATED: 'warning',\n DRAFT_PENDING: 'secondary',\n\n // Equipment condition (RETIRED is shared with the asset lifecycle above)\n OPERATIONAL: 'success',\n DEGRADED: 'warning',\n DOWN: 'destructive',\n\n // Work-order type, priority and overdue flag (OPEN / SCHEDULED / IN_PROGRESS /\n // COMPLETED / CLOSED / CANCELLED and LOW / MEDIUM / HIGH are shared above)\n PLANNED: 'info',\n CONDITION_BASED: 'warning',\n REACTIVE: 'secondary',\n URGENT: 'destructive',\n OVERDUE: 'destructive',\n};\n\nexport const StatusBadge: FC<StatusBadgeProps> = ({ status, className }) => {\n const key = status.toUpperCase();\n const variant = statusVariantMap[key] ?? 'secondary';\n const isLive = liveStatuses.has(key);\n\n return (\n <span\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-2.5 py-0.5 text-xs font-medium',\n variantStyles[variant],\n className\n )}\n >\n {isLive && (\n <span\n aria-hidden=\"true\"\n className=\"size-1.5 rounded-full bg-current motion-safe:animate-vc-glow-pulse\"\n />\n )}\n {formatEnumLabel(status)}\n </span>\n );\n};\n"],"mappings":";;;;AAqBA,IAAM,IAA8C;CAClD,SAAS;CACT,SAAS;CACT,aAAa;CACb,WAAW;CACX,MAAM;CACN,SAAS;CACV,EAIK,IAAe,IAAI,IAAI;CAAC;CAAa;CAAU;CAAc;CAAU,CAAC,EAExE,IAAiD;CAErD,aAAa;CACb,WAAW;CACX,aAAa;CACb,WAAW;CACX,WAAW;CACX,iBAAiB;CACjB,SAAS;CAGT,OAAO;CACP,aAAa;CACb,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,YAAY;CAGZ,KAAK;CACL,MAAM;CAGN,OAAO;CACP,cAAc;CACd,SAAS;CACT,MAAM;CAGN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,WAAW;CACX,WAAW;CAGX,WAAW;CACX,UAAU;CACV,UAAU;CACV,aAAa;CAGb,SAAS;CACT,WAAW;CACX,UAAU;CACV,UAAU;CACV,UAAU;CACV,SAAS;CACT,SAAS;CAGT,SAAS;CACT,SAAS;CACT,SAAS;CAGT,QAAQ;CACR,UAAU;CACV,UAAU;CACV,YAAY;CACZ,aAAa;CAGb,WAAW;CACX,QAAQ;CACR,OAAO;CACP,SAAS;CACT,mBAAmB;CAGnB,KAAK;CACL,QAAQ;CACR,MAAM;CACN,UAAU;CAGV,UAAU;CACV,eAAe;CACf,uBAAuB;CACvB,mBAAmB;CACnB,QAAQ;CAGR,MAAM;CACN,aAAa;CACb,UAAU;CAGV,OAAO;CAGP,UAAU;CAGV,WAAW;CACX,WAAW;CACX,SAAS;CACT,QAAQ;CAGR,aAAa;CACb,eAAe;CAGf,aAAa;CACb,UAAU;CACV,MAAM;CAIN,SAAS;CACT,iBAAiB;CACjB,UAAU;CACV,QAAQ;CACR,SAAS;CACV,EAEY,KAAqC,EAAE,WAAQ,mBAAgB;CAC1E,IAAM,IAAM,EAAO,aAAa,EAC1B,IAAU,EAAiB,MAAQ,aACnC,IAAS,EAAa,IAAI,EAAI;AAEpC,QACE,kBAAC,QAAD;EACE,WAAW,EACT,mFACA,EAAc,IACd,EACD;YALH,CAOG,KACC,kBAAC,QAAD;GACE,eAAY;GACZ,WAAU;GACV,CAAA,EAEH,EAAgB,EAAO,CACnB"}
|