@burdenoff/microfe-assethandler 2026.703.2 → 2026.703.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/assethandler/AssetHandlerRoot.js +18 -18
  2. package/dist/assethandler/hooks/useAssetHandlerNavigate.js +19 -0
  3. package/dist/assethandler/hooks/useAssetHandlerNavigate.js.map +1 -0
  4. package/dist/assethandler/pages/AiPredictionsPage.js +29 -29
  5. package/dist/assethandler/pages/AnalyticsPage.js +154 -154
  6. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +48 -48
  7. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +84 -84
  8. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -1
  9. package/dist/assethandler/pages/AssetsAssetCreatePage.js +82 -82
  10. package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -1
  11. package/dist/assethandler/pages/AssetsAssetDetailPage.js +104 -103
  12. package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -1
  13. package/dist/assethandler/pages/AssetsAssetListPage.js +132 -132
  14. package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -1
  15. package/dist/assethandler/pages/AssetsAssetTrackingPage.js +52 -52
  16. package/dist/assethandler/pages/CmdbBrowserPage.js +27 -27
  17. package/dist/assethandler/pages/DashboardPage.js +119 -119
  18. package/dist/assethandler/pages/DashboardPage.js.map +1 -1
  19. package/dist/assethandler/pages/DigitalTwinPage.js +22 -22
  20. package/dist/assethandler/pages/DiscoveryJobsPage.js +35 -35
  21. package/dist/assethandler/pages/EsgDashboardPage.js +32 -32
  22. package/dist/assethandler/pages/FinanceBudgetDetailPage.js +57 -56
  23. package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -1
  24. package/dist/assethandler/pages/FinanceFinanceHubPage.js +98 -98
  25. package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -1
  26. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +58 -57
  27. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -1
  28. package/dist/assethandler/pages/IotDevicesPage.js +29 -29
  29. package/dist/assethandler/pages/ItilChangeDetailPage.js +76 -75
  30. package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -1
  31. package/dist/assethandler/pages/ItilChangeManagementPage.js +49 -49
  32. package/dist/assethandler/pages/ItilIncidentDetailPage.js +63 -62
  33. package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -1
  34. package/dist/assethandler/pages/ItilIncidentManagementPage.js +72 -72
  35. package/dist/assethandler/pages/ItilItilhubPage.js +112 -112
  36. package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -1
  37. package/dist/assethandler/pages/ItilProblemDetailPage.js +61 -60
  38. package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -1
  39. package/dist/assethandler/pages/ItilProblemManagementPage.js +46 -46
  40. package/dist/assethandler/pages/KnowledgeBasePage.js +28 -28
  41. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +52 -52
  42. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +29 -29
  43. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +58 -57
  44. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -1
  45. package/dist/assethandler/pages/OperationsOperationsHubPage.js +80 -80
  46. package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -1
  47. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +49 -48
  48. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -1
  49. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +52 -52
  50. package/dist/assethandler/pages/ProvenancePage.js +36 -36
  51. package/dist/assethandler/pages/SamLicensesPage.js +27 -27
  52. package/dist/assethandler/pages/SecurityComplianceDetailPage.js +39 -38
  53. package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -1
  54. package/dist/assethandler/pages/SecurityPolicyDetailPage.js +50 -49
  55. package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -1
  56. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +47 -46
  57. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -1
  58. package/dist/assethandler/pages/SecuritySecurityHubPage.js +104 -104
  59. package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -1
  60. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +74 -73
  61. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -1
  62. package/dist/assethandler/pages/TransactionsTransactionListPage.js +77 -77
  63. package/dist/assethandler/providers/AssetHandlerProvider.js +12 -12
  64. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { AssetHandlerRoutes as e } from "./AssetHandlerRoutes.js";
2
- import { AssetHandlerProvider as t } from "./providers/AssetHandlerProvider.js";
3
- import { joinPath as n } from "./utils/navigation.js";
1
+ import { AssetHandlerProvider as e } from "./providers/AssetHandlerProvider.js";
2
+ import { joinPath as t } from "./utils/navigation.js";
3
+ import { AssetHandlerRoutes as n } from "./AssetHandlerRoutes.js";
4
4
  import { useEffect as r } from "react";
5
5
  import { Boxes as i, BrainCircuit as a, Cpu as o, KeyRound as s, Leaf as c, Network as l, Radar as u, ShieldCheck as d } from "lucide-react";
6
6
  import { jsx as f } from "react/jsx-runtime";
@@ -26,86 +26,86 @@ var m = (m) => {
26
26
  {
27
27
  id: "assethandler-assets",
28
28
  label: "Assets",
29
- path: n(_, "assets/asset-list"),
29
+ path: t(_, "assets/asset-list"),
30
30
  order: 1
31
31
  },
32
32
  {
33
33
  id: "assethandler-operations",
34
34
  label: "Operations",
35
- path: n(_, "operations/operations-hub"),
35
+ path: t(_, "operations/operations-hub"),
36
36
  order: 2
37
37
  },
38
38
  {
39
39
  id: "assethandler-itil",
40
40
  label: "ITIL",
41
- path: n(_, "itil/itilhub"),
41
+ path: t(_, "itil/itilhub"),
42
42
  order: 3
43
43
  },
44
44
  {
45
45
  id: "assethandler-finance",
46
46
  label: "Finance",
47
- path: n(_, "finance/finance-hub"),
47
+ path: t(_, "finance/finance-hub"),
48
48
  order: 4
49
49
  },
50
50
  {
51
51
  id: "assethandler-security",
52
52
  label: "Security",
53
- path: n(_, "security/security-hub"),
53
+ path: t(_, "security/security-hub"),
54
54
  order: 7
55
55
  },
56
56
  {
57
57
  id: "assethandler-iot",
58
58
  label: "IoT Devices",
59
- path: n(_, "advanced/iot-devices"),
59
+ path: t(_, "advanced/iot-devices"),
60
60
  icon: /* @__PURE__ */ f(o, { size: 16 }),
61
61
  order: 10
62
62
  },
63
63
  {
64
64
  id: "assethandler-digital-twin",
65
65
  label: "Digital Twin",
66
- path: n(_, "advanced/digital-twin"),
66
+ path: t(_, "advanced/digital-twin"),
67
67
  icon: /* @__PURE__ */ f(i, { size: 16 }),
68
68
  order: 11
69
69
  },
70
70
  {
71
71
  id: "assethandler-sam",
72
72
  label: "SAM",
73
- path: n(_, "advanced/sam-licenses"),
73
+ path: t(_, "advanced/sam-licenses"),
74
74
  icon: /* @__PURE__ */ f(s, { size: 16 }),
75
75
  order: 12
76
76
  },
77
77
  {
78
78
  id: "assethandler-cmdb",
79
79
  label: "CMDB",
80
- path: n(_, "advanced/cmdb-browser"),
80
+ path: t(_, "advanced/cmdb-browser"),
81
81
  icon: /* @__PURE__ */ f(l, { size: 16 }),
82
82
  order: 13
83
83
  },
84
84
  {
85
85
  id: "assethandler-discovery",
86
86
  label: "Discovery",
87
- path: n(_, "advanced/discovery-jobs"),
87
+ path: t(_, "advanced/discovery-jobs"),
88
88
  icon: /* @__PURE__ */ f(u, { size: 16 }),
89
89
  order: 14
90
90
  },
91
91
  {
92
92
  id: "assethandler-provenance",
93
93
  label: "Provenance",
94
- path: n(_, "advanced/provenance"),
94
+ path: t(_, "advanced/provenance"),
95
95
  icon: /* @__PURE__ */ f(d, { size: 16 }),
96
96
  order: 15
97
97
  },
98
98
  {
99
99
  id: "assethandler-esg",
100
100
  label: "ESG",
101
- path: n(_, "advanced/esg-dashboard"),
101
+ path: t(_, "advanced/esg-dashboard"),
102
102
  icon: /* @__PURE__ */ f(c, { size: 16 }),
103
103
  order: 16
104
104
  },
105
105
  {
106
106
  id: "assethandler-ai",
107
107
  label: "AI Predictions",
108
- path: n(_, "advanced/ai-predictions"),
108
+ path: t(_, "advanced/ai-predictions"),
109
109
  icon: /* @__PURE__ */ f(a, { size: 16 }),
110
110
  order: 17
111
111
  }
@@ -123,9 +123,9 @@ var m = (m) => {
123
123
  workspaceId: null,
124
124
  gateway: "global",
125
125
  defaultEnabled: !0,
126
- children: /* @__PURE__ */ f(t, {
126
+ children: /* @__PURE__ */ f(e, {
127
127
  ...m,
128
- children: /* @__PURE__ */ f(e, {})
128
+ children: /* @__PURE__ */ f(n, {})
129
129
  })
130
130
  });
131
131
  };
@@ -0,0 +1,19 @@
1
+ import { useAssetHandler as e } from "../providers/AssetHandlerProvider.js";
2
+ import { joinPath as t } from "../utils/navigation.js";
3
+ import { useCallback as n } from "react";
4
+ import { useNavigate as r } from "react-router-dom";
5
+ //#region src/assethandler/hooks/useAssetHandlerNavigate.ts
6
+ function i() {
7
+ let i = r(), { basePath: a = "/" } = e();
8
+ return n((e, n) => {
9
+ if (typeof e == "number") {
10
+ i(e);
11
+ return;
12
+ }
13
+ i(e.startsWith("/") ? t(a, e) : e, n);
14
+ }, [i, a]);
15
+ }
16
+ //#endregion
17
+ export { i as useAssetHandlerNavigate };
18
+
19
+ //# sourceMappingURL=useAssetHandlerNavigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAssetHandlerNavigate.js","names":[],"sources":["../../../src/assethandler/hooks/useAssetHandlerNavigate.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useNavigate, type NavigateOptions } from 'react-router-dom';\nimport { useAssetHandler } from '../providers/AssetHandlerProvider';\nimport { joinPath } from '../utils/navigation';\n\n/**\n * Base-path-aware navigation for in-MFE links.\n *\n * The AssetHandler MFE is mounted under a host base path (e.g. `/assethandler`)\n * when integrated into an app shell, or at `/` when running standalone. React\n * Router's `navigate('/assets/...')` resolves against the HOST router root, so\n * an absolute in-MFE path would escape the mount and land on a nonexistent host\n * route (which the shell bounces to `/dashboard`).\n *\n * This hook prefixes the active `basePath` onto absolute string targets so\n * `navigate('/assets/asset-create')` correctly resolves to\n * `/assethandler/assets/asset-create` when integrated and `/assets/asset-create`\n * when standalone. Relative paths and numeric deltas (`navigate(-1)`) pass\n * through untouched.\n */\nexport function useAssetHandlerNavigate() {\n const navigate = useNavigate();\n const { basePath = '/' } = useAssetHandler();\n\n return useCallback(\n (to: string | number, options?: NavigateOptions) => {\n if (typeof to === 'number') {\n navigate(to);\n return;\n }\n const resolved = to.startsWith('/') ? joinPath(basePath, to) : to;\n navigate(resolved, options);\n },\n [navigate, basePath]\n );\n}\n"],"mappings":";;;;;AAoBA,SAAgB,IAA0B;CACxC,IAAM,IAAW,GAAa,EACxB,EAAE,cAAW,QAAQ,GAAiB;AAE5C,QAAO,GACJ,GAAqB,MAA8B;AAClD,MAAI,OAAO,KAAO,UAAU;AAC1B,KAAS,EAAG;AACZ;;AAGF,IADiB,EAAG,WAAW,IAAI,GAAG,EAAS,GAAU,EAAG,GAAG,GAC5C,EAAQ;IAE7B,CAAC,GAAU,EAAS,CACrB"}
@@ -1,11 +1,11 @@
1
1
  import { useState as e } from "react";
2
2
  import { BrainCircuit as t } from "lucide-react";
3
- import { EmphasisPanel as n, GradientText as r, IllustratedEmptyState as i, PagePurpose as a } from "@burdenoff/fe-libs/ui";
4
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
5
- import { gql as c } from "@apollo/client";
6
- import { useMutation as l, useQuery as u } from "@apollo/client/react";
3
+ import { gql as n } from "@apollo/client";
4
+ import { useMutation as r, useQuery as i } from "@apollo/client/react";
5
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
6
+ import { EmphasisPanel as s, GradientText as c, IllustratedEmptyState as l, PagePurpose as u } from "@burdenoff/fe-libs/ui";
7
7
  //#region src/assethandler/pages/AiPredictionsPage.tsx
8
- var d = c`
8
+ var d = n`
9
9
  query AssetHandlerAiPredictions {
10
10
  aiPredictions {
11
11
  id
@@ -18,7 +18,7 @@ var d = c`
18
18
  modelVersion
19
19
  }
20
20
  }
21
- `, f = c`
21
+ `, f = n`
22
22
  mutation AssetHandlerRequestAiPrediction($input: RequestAIPredictionInput!) {
23
23
  requestAIPrediction(input: $input) {
24
24
  id
@@ -26,29 +26,29 @@ var d = c`
26
26
  }
27
27
  `;
28
28
  function p() {
29
- let [c, p] = e("AST-001"), { data: m, loading: h, refetch: g } = u(d, { fetchPolicy: "cache-and-network" }), [_, { loading: v }] = l(f, { onCompleted: () => {
29
+ let [n, p] = e("AST-001"), { data: m, loading: h, refetch: g } = i(d, { fetchPolicy: "cache-and-network" }), [_, { loading: v }] = r(f, { onCompleted: () => {
30
30
  g();
31
31
  } }), y = m?.aiPredictions ?? [];
32
- return /* @__PURE__ */ s("div", {
32
+ return /* @__PURE__ */ o("div", {
33
33
  className: "space-y-4 p-4",
34
34
  children: [
35
- /* @__PURE__ */ s("h1", {
35
+ /* @__PURE__ */ o("h1", {
36
36
  className: "flex items-center gap-2 text-2xl font-semibold",
37
37
  children: [
38
- /* @__PURE__ */ o(t, { className: "h-6 w-6" }),
38
+ /* @__PURE__ */ a(t, { className: "h-6 w-6" }),
39
39
  " ",
40
- /* @__PURE__ */ o(r, { children: "AI Predictions" })
40
+ /* @__PURE__ */ a(c, { children: "AI Predictions" })
41
41
  ]
42
42
  }),
43
- /* @__PURE__ */ o(a, { children: "Forecast failures before they happen. Enter an asset and run a model to get a risk score, confidence level and a concrete recommendation — so you can schedule preventive maintenance instead of reacting to breakdowns. Use it to prioritise which high-value or aging assets to service next." }),
44
- /* @__PURE__ */ s(n, { children: [/* @__PURE__ */ o("h2", {
43
+ /* @__PURE__ */ a(u, { children: "Forecast failures before they happen. Enter an asset and run a model to get a risk score, confidence level and a concrete recommendation — so you can schedule preventive maintenance instead of reacting to breakdowns. Use it to prioritise which high-value or aging assets to service next." }),
44
+ /* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a("h2", {
45
45
  className: "text-sm font-semibold mb-3",
46
46
  children: "Run a prediction"
47
- }), /* @__PURE__ */ s("form", {
47
+ }), /* @__PURE__ */ o("form", {
48
48
  className: "grid gap-3 md:grid-cols-3",
49
49
  onSubmit: (e) => {
50
50
  e.preventDefault(), _({ variables: { input: {
51
- assetId: c,
51
+ assetId: n,
52
52
  predictionType: "maintenance-risk",
53
53
  featureVector: {
54
54
  runtimeHours: 10240,
@@ -58,17 +58,17 @@ function p() {
58
58
  } } });
59
59
  },
60
60
  children: [
61
- /* @__PURE__ */ o("input", {
61
+ /* @__PURE__ */ a("input", {
62
62
  className: "rounded-md border px-3 py-2",
63
- value: c,
63
+ value: n,
64
64
  onChange: (e) => p(e.target.value),
65
65
  "aria-label": "Asset ID"
66
66
  }),
67
- /* @__PURE__ */ o("div", {
67
+ /* @__PURE__ */ a("div", {
68
68
  className: "text-sm text-text-secondary",
69
69
  children: "Prediction Type: maintenance-risk"
70
70
  }),
71
- /* @__PURE__ */ o("button", {
71
+ /* @__PURE__ */ a("button", {
72
72
  className: "rounded-md bg-action-primary-bg px-3 py-2 text-action-primary-text",
73
73
  disabled: v,
74
74
  type: "submit",
@@ -76,22 +76,22 @@ function p() {
76
76
  })
77
77
  ]
78
78
  })] }),
79
- /* @__PURE__ */ s("div", {
79
+ /* @__PURE__ */ o("div", {
80
80
  className: "grid gap-3 md:grid-cols-2",
81
81
  children: [
82
- h && y.length === 0 ? /* @__PURE__ */ o("div", {
82
+ h && y.length === 0 ? /* @__PURE__ */ a("div", {
83
83
  className: "space-y-2 px-4 py-4",
84
- children: Array.from({ length: 4 }).map((e, t) => /* @__PURE__ */ o("div", { className: "h-8 rounded-md bg-bg-sunken motion-safe:animate-vc-shimmer" }, t))
84
+ children: Array.from({ length: 4 }).map((e, t) => /* @__PURE__ */ a("div", { className: "h-8 rounded-md bg-bg-sunken motion-safe:animate-vc-shimmer" }, t))
85
85
  }) : null,
86
- !h && y.length === 0 ? /* @__PURE__ */ o(i, {
86
+ !h && y.length === 0 ? /* @__PURE__ */ a(l, {
87
87
  illustration: "empty-data",
88
88
  title: "No AI predictions available yet",
89
89
  description: "AI-generated predictions for your assets will appear here."
90
90
  }) : null,
91
- y.map((e) => /* @__PURE__ */ s("article", {
91
+ y.map((e) => /* @__PURE__ */ o("article", {
92
92
  className: "rounded-lg border p-4",
93
93
  children: [
94
- /* @__PURE__ */ s("p", {
94
+ /* @__PURE__ */ o("p", {
95
95
  className: "text-xs uppercase tracking-wide text-text-secondary",
96
96
  children: [
97
97
  e.predictionType,
@@ -99,7 +99,7 @@ function p() {
99
99
  e.assetId
100
100
  ]
101
101
  }),
102
- /* @__PURE__ */ s("h2", {
102
+ /* @__PURE__ */ o("h2", {
103
103
  className: "mt-1 text-base font-semibold",
104
104
  children: [
105
105
  "Risk score ",
@@ -107,7 +107,7 @@ function p() {
107
107
  "%"
108
108
  ]
109
109
  }),
110
- /* @__PURE__ */ s("p", {
110
+ /* @__PURE__ */ o("p", {
111
111
  className: "mt-1 text-sm text-text-secondary",
112
112
  children: [
113
113
  "Confidence ",
@@ -115,11 +115,11 @@ function p() {
115
115
  "%"
116
116
  ]
117
117
  }),
118
- /* @__PURE__ */ o("p", {
118
+ /* @__PURE__ */ a("p", {
119
119
  className: "mt-2 text-sm",
120
120
  children: e.recommendation
121
121
  }),
122
- /* @__PURE__ */ s("p", {
122
+ /* @__PURE__ */ o("p", {
123
123
  className: "mt-2 text-xs text-text-secondary",
124
124
  children: [
125
125
  e.modelVersion,