@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.
- package/dist/assethandler/AssetHandlerRoot.js +18 -18
- package/dist/assethandler/hooks/useAssetHandlerNavigate.js +19 -0
- package/dist/assethandler/hooks/useAssetHandlerNavigate.js.map +1 -0
- package/dist/assethandler/pages/AiPredictionsPage.js +29 -29
- package/dist/assethandler/pages/AnalyticsPage.js +154 -154
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +48 -48
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +84 -84
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetCreatePage.js +82 -82
- package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetDetailPage.js +104 -103
- package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetListPage.js +132 -132
- package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetTrackingPage.js +52 -52
- package/dist/assethandler/pages/CmdbBrowserPage.js +27 -27
- package/dist/assethandler/pages/DashboardPage.js +119 -119
- package/dist/assethandler/pages/DashboardPage.js.map +1 -1
- package/dist/assethandler/pages/DigitalTwinPage.js +22 -22
- package/dist/assethandler/pages/DiscoveryJobsPage.js +35 -35
- package/dist/assethandler/pages/EsgDashboardPage.js +32 -32
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js +57 -56
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -1
- package/dist/assethandler/pages/FinanceFinanceHubPage.js +98 -98
- package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -1
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +58 -57
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/IotDevicesPage.js +29 -29
- package/dist/assethandler/pages/ItilChangeDetailPage.js +76 -75
- package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilChangeManagementPage.js +49 -49
- package/dist/assethandler/pages/ItilIncidentDetailPage.js +63 -62
- package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilIncidentManagementPage.js +72 -72
- package/dist/assethandler/pages/ItilItilhubPage.js +112 -112
- package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -1
- package/dist/assethandler/pages/ItilProblemDetailPage.js +61 -60
- package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilProblemManagementPage.js +46 -46
- package/dist/assethandler/pages/KnowledgeBasePage.js +28 -28
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +52 -52
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +29 -29
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +58 -57
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/OperationsOperationsHubPage.js +80 -80
- package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -1
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +49 -48
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -1
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +52 -52
- package/dist/assethandler/pages/ProvenancePage.js +36 -36
- package/dist/assethandler/pages/SamLicensesPage.js +27 -27
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js +39 -38
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js +50 -49
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +47 -46
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecuritySecurityHubPage.js +104 -104
- package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -1
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +74 -73
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -1
- package/dist/assethandler/pages/TransactionsTransactionListPage.js +77 -77
- package/dist/assethandler/providers/AssetHandlerProvider.js +12 -12
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useState as e } from "react";
|
|
2
2
|
import { BookOpen as t } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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/KnowledgeBasePage.tsx
|
|
8
|
-
var d =
|
|
8
|
+
var d = n`
|
|
9
9
|
query AssetHandlerKnowledgeArticles {
|
|
10
10
|
knowledgeArticles {
|
|
11
11
|
id
|
|
@@ -17,7 +17,7 @@ var d = c`
|
|
|
17
17
|
updatedAt
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
|
-
`, f =
|
|
20
|
+
`, f = n`
|
|
21
21
|
mutation AssetHandlerCreateKnowledgeArticle($input: CreateKnowledgeArticleInput!) {
|
|
22
22
|
createKnowledgeArticle(input: $input) {
|
|
23
23
|
id
|
|
@@ -25,29 +25,29 @@ var d = c`
|
|
|
25
25
|
}
|
|
26
26
|
`;
|
|
27
27
|
function p() {
|
|
28
|
-
let [
|
|
28
|
+
let [n, p] = e("Runbook: Failed Discovery Job Recovery"), [m, h] = e("runbook-failed-discovery-recovery"), { data: g, loading: _, refetch: v } = i(d, { fetchPolicy: "cache-and-network" }), [y, { loading: b }] = r(f, { onCompleted: () => {
|
|
29
29
|
v();
|
|
30
30
|
} }), x = g?.knowledgeArticles ?? [];
|
|
31
|
-
return /* @__PURE__ */
|
|
31
|
+
return /* @__PURE__ */ o("div", {
|
|
32
32
|
className: "space-y-4 p-4",
|
|
33
33
|
children: [
|
|
34
|
-
/* @__PURE__ */
|
|
34
|
+
/* @__PURE__ */ o("h1", {
|
|
35
35
|
className: "flex items-center gap-2 text-2xl font-semibold",
|
|
36
36
|
children: [
|
|
37
|
-
/* @__PURE__ */
|
|
37
|
+
/* @__PURE__ */ a(t, { className: "h-6 w-6" }),
|
|
38
38
|
" ",
|
|
39
|
-
/* @__PURE__ */
|
|
39
|
+
/* @__PURE__ */ a(c, { children: "Knowledge Base" })
|
|
40
40
|
]
|
|
41
41
|
}),
|
|
42
|
-
/* @__PURE__ */
|
|
43
|
-
/* @__PURE__ */ s
|
|
42
|
+
/* @__PURE__ */ a(u, { children: "Capture the fixes and runbooks your team relies on so the next person doesn't start from scratch. Link articles to incidents and assets, then search them when troubleshooting — turning one-off resolutions into repeatable, shareable operational knowledge." }),
|
|
43
|
+
/* @__PURE__ */ o(s, { children: [/* @__PURE__ */ a("h2", {
|
|
44
44
|
className: "text-sm font-semibold mb-3",
|
|
45
45
|
children: "Publish an article"
|
|
46
|
-
}), /* @__PURE__ */
|
|
46
|
+
}), /* @__PURE__ */ o("form", {
|
|
47
47
|
className: "grid gap-3 md:grid-cols-3",
|
|
48
48
|
onSubmit: (e) => {
|
|
49
49
|
e.preventDefault(), y({ variables: { input: {
|
|
50
|
-
title:
|
|
50
|
+
title: n,
|
|
51
51
|
slug: m,
|
|
52
52
|
summary: "Operational recovery guidance for discovery pipeline failures.",
|
|
53
53
|
content: "1) Verify connector credentials. 2) Re-run with scoped segment. 3) Escalate to platform ops if retries fail.",
|
|
@@ -60,19 +60,19 @@ function p() {
|
|
|
60
60
|
} } });
|
|
61
61
|
},
|
|
62
62
|
children: [
|
|
63
|
-
/* @__PURE__ */
|
|
63
|
+
/* @__PURE__ */ a("input", {
|
|
64
64
|
className: "rounded-md border px-3 py-2",
|
|
65
|
-
value:
|
|
65
|
+
value: n,
|
|
66
66
|
onChange: (e) => p(e.target.value),
|
|
67
67
|
"aria-label": "Article title"
|
|
68
68
|
}),
|
|
69
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ a("input", {
|
|
70
70
|
className: "rounded-md border px-3 py-2",
|
|
71
71
|
value: m,
|
|
72
72
|
onChange: (e) => h(e.target.value),
|
|
73
73
|
"aria-label": "Article slug"
|
|
74
74
|
}),
|
|
75
|
-
/* @__PURE__ */
|
|
75
|
+
/* @__PURE__ */ a("button", {
|
|
76
76
|
className: "rounded-md bg-action-primary-bg px-3 py-2 text-action-primary-text",
|
|
77
77
|
disabled: b,
|
|
78
78
|
type: "submit",
|
|
@@ -80,34 +80,34 @@ function p() {
|
|
|
80
80
|
})
|
|
81
81
|
]
|
|
82
82
|
})] }),
|
|
83
|
-
/* @__PURE__ */
|
|
83
|
+
/* @__PURE__ */ o("div", {
|
|
84
84
|
className: "grid gap-3 md:grid-cols-2",
|
|
85
85
|
children: [
|
|
86
|
-
_ && x.length === 0 ? /* @__PURE__ */
|
|
86
|
+
_ && x.length === 0 ? /* @__PURE__ */ a("div", {
|
|
87
87
|
className: "space-y-2 px-4 py-4",
|
|
88
|
-
children: Array.from({ length: 4 }).map((e, t) => /* @__PURE__ */
|
|
88
|
+
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))
|
|
89
89
|
}) : null,
|
|
90
|
-
!_ && x.length === 0 ? /* @__PURE__ */
|
|
90
|
+
!_ && x.length === 0 ? /* @__PURE__ */ a(l, {
|
|
91
91
|
illustration: "empty-data",
|
|
92
92
|
title: "No knowledge articles found",
|
|
93
93
|
description: "Create an article to start building your knowledge base."
|
|
94
94
|
}) : null,
|
|
95
|
-
x.map((e) => /* @__PURE__ */
|
|
95
|
+
x.map((e) => /* @__PURE__ */ o("article", {
|
|
96
96
|
className: "rounded-lg border p-4",
|
|
97
97
|
children: [
|
|
98
|
-
/* @__PURE__ */
|
|
98
|
+
/* @__PURE__ */ a("p", {
|
|
99
99
|
className: "text-xs uppercase tracking-wide text-text-secondary",
|
|
100
100
|
children: e.status
|
|
101
101
|
}),
|
|
102
|
-
/* @__PURE__ */
|
|
102
|
+
/* @__PURE__ */ a("h2", {
|
|
103
103
|
className: "mt-1 text-base font-semibold",
|
|
104
104
|
children: e.title
|
|
105
105
|
}),
|
|
106
|
-
/* @__PURE__ */
|
|
106
|
+
/* @__PURE__ */ a("p", {
|
|
107
107
|
className: "mt-1 text-sm text-text-secondary",
|
|
108
108
|
children: e.summary ?? "No summary available."
|
|
109
109
|
}),
|
|
110
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ o("p", {
|
|
111
111
|
className: "mt-2 text-xs text-text-secondary",
|
|
112
112
|
children: ["/", e.slug]
|
|
113
113
|
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
2
|
import { Calendar as t, CheckCircle as n, Clock as r, Wrench as i } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as s, Button as c, Card as l, CardContent as u, CardHeader as d, CardTitle as f, EmphasisPanel as p, GradientText as m, IllustratedEmptyState as h, PagePurpose as g } from "@burdenoff/fe-libs/ui";
|
|
5
5
|
//#region src/assethandler/pages/MaintenanceMaintenanceCalendarPage.tsx
|
|
6
6
|
var _ = {
|
|
7
7
|
critical: "destructive",
|
|
@@ -11,59 +11,59 @@ var _ = {
|
|
|
11
11
|
};
|
|
12
12
|
function v() {
|
|
13
13
|
let { maintenanceRecords: v } = e(), y = v.filter((e) => e.status === "scheduled"), b = v.filter((e) => e.status === "in_progress"), x = v.filter((e) => e.status === "completed"), S = Array.from({ length: 28 }, (e, t) => t + 1);
|
|
14
|
-
return /* @__PURE__ */
|
|
14
|
+
return /* @__PURE__ */ o("div", {
|
|
15
15
|
className: "space-y-6 p-6",
|
|
16
16
|
children: [
|
|
17
|
-
/* @__PURE__ */
|
|
17
|
+
/* @__PURE__ */ o("div", {
|
|
18
18
|
className: "flex items-center justify-between",
|
|
19
|
-
children: [/* @__PURE__ */
|
|
19
|
+
children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("h1", {
|
|
20
20
|
className: "text-2xl font-bold",
|
|
21
|
-
children: /* @__PURE__ */
|
|
22
|
-
}), /* @__PURE__ */
|
|
21
|
+
children: /* @__PURE__ */ a(m, { children: "Maintenance Calendar" })
|
|
22
|
+
}), /* @__PURE__ */ o("p", {
|
|
23
23
|
className: "text-sm text-text-secondary",
|
|
24
24
|
children: [v.length, " maintenance activities tracked"]
|
|
25
|
-
})] }), /* @__PURE__ */
|
|
25
|
+
})] }), /* @__PURE__ */ o(c, {
|
|
26
26
|
size: "sm",
|
|
27
|
-
children: [/* @__PURE__ */
|
|
27
|
+
children: [/* @__PURE__ */ a(i, { className: "mr-2 h-4 w-4" }), "Schedule Maintenance"]
|
|
28
28
|
})]
|
|
29
29
|
}),
|
|
30
|
-
/* @__PURE__ */
|
|
31
|
-
/* @__PURE__ */
|
|
30
|
+
/* @__PURE__ */ a(g, { children: "See all planned, in-progress and completed maintenance on one calendar so you can spot clashes, balance the workload and never miss a due service. Use it to plan the month at a glance and keep assets healthy before they fail." }),
|
|
31
|
+
/* @__PURE__ */ o("div", {
|
|
32
32
|
className: "grid gap-4 md:grid-cols-3",
|
|
33
33
|
children: [
|
|
34
|
-
/* @__PURE__ */
|
|
34
|
+
/* @__PURE__ */ o(p, { children: [/* @__PURE__ */ o("div", {
|
|
35
35
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
36
|
-
children: [/* @__PURE__ */
|
|
37
|
-
}), /* @__PURE__ */
|
|
36
|
+
children: [/* @__PURE__ */ a(r, { className: "h-4 w-4" }), "Scheduled"]
|
|
37
|
+
}), /* @__PURE__ */ a("p", {
|
|
38
38
|
className: "text-2xl font-bold mt-1 tabular-nums",
|
|
39
39
|
children: y.length
|
|
40
40
|
})] }),
|
|
41
|
-
/* @__PURE__ */
|
|
41
|
+
/* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
|
|
42
42
|
className: "pt-4",
|
|
43
|
-
children: [/* @__PURE__ */
|
|
43
|
+
children: [/* @__PURE__ */ o("div", {
|
|
44
44
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
45
|
-
children: [/* @__PURE__ */
|
|
46
|
-
}), /* @__PURE__ */
|
|
45
|
+
children: [/* @__PURE__ */ a(i, { className: "h-4 w-4" }), "In Progress"]
|
|
46
|
+
}), /* @__PURE__ */ a("p", {
|
|
47
47
|
className: "text-2xl font-bold mt-1 text-status-info-text",
|
|
48
48
|
children: b.length
|
|
49
49
|
})]
|
|
50
50
|
}) }),
|
|
51
|
-
/* @__PURE__ */
|
|
51
|
+
/* @__PURE__ */ a(l, { children: /* @__PURE__ */ o(u, {
|
|
52
52
|
className: "pt-4",
|
|
53
|
-
children: [/* @__PURE__ */
|
|
53
|
+
children: [/* @__PURE__ */ o("div", {
|
|
54
54
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
55
|
-
children: [/* @__PURE__ */
|
|
56
|
-
}), /* @__PURE__ */
|
|
55
|
+
children: [/* @__PURE__ */ a(n, { className: "h-4 w-4" }), "Completed"]
|
|
56
|
+
}), /* @__PURE__ */ a("p", {
|
|
57
57
|
className: "text-2xl font-bold mt-1 text-status-success-text",
|
|
58
58
|
children: x.length
|
|
59
59
|
})]
|
|
60
60
|
}) })
|
|
61
61
|
]
|
|
62
62
|
}),
|
|
63
|
-
/* @__PURE__ */
|
|
63
|
+
/* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ o(f, {
|
|
64
64
|
className: "flex items-center gap-2",
|
|
65
|
-
children: [/* @__PURE__ */
|
|
66
|
-
}) }), /* @__PURE__ */
|
|
65
|
+
children: [/* @__PURE__ */ a(t, { className: "h-4 w-4" }), "February 2026"]
|
|
66
|
+
}) }), /* @__PURE__ */ a(u, { children: /* @__PURE__ */ o("div", {
|
|
67
67
|
className: "grid grid-cols-7 gap-1 text-center text-sm",
|
|
68
68
|
children: [[
|
|
69
69
|
"Sun",
|
|
@@ -73,19 +73,19 @@ function v() {
|
|
|
73
73
|
"Thu",
|
|
74
74
|
"Fri",
|
|
75
75
|
"Sat"
|
|
76
|
-
].map((e) => /* @__PURE__ */
|
|
76
|
+
].map((e) => /* @__PURE__ */ a("div", {
|
|
77
77
|
className: "p-2 font-medium text-text-secondary",
|
|
78
78
|
children: e
|
|
79
79
|
}, e)), S.map((e) => {
|
|
80
80
|
let t = `2026-02-${String(e).padStart(2, "0")}`, n = v.filter((e) => e.scheduledDate === t);
|
|
81
|
-
return /* @__PURE__ */
|
|
81
|
+
return /* @__PURE__ */ o("div", {
|
|
82
82
|
className: `p-2 rounded min-h-[60px] border ${n.length > 0 ? "bg-action-primary-bg/5 border-primary/20" : "border-transparent"}`,
|
|
83
|
-
children: [/* @__PURE__ */
|
|
83
|
+
children: [/* @__PURE__ */ a("span", {
|
|
84
84
|
className: "text-xs",
|
|
85
85
|
children: e
|
|
86
|
-
}), n.map((e) => /* @__PURE__ */
|
|
86
|
+
}), n.map((e) => /* @__PURE__ */ a("div", {
|
|
87
87
|
className: "mt-1",
|
|
88
|
-
children: /* @__PURE__ */
|
|
88
|
+
children: /* @__PURE__ */ a(s, {
|
|
89
89
|
variant: _[e.priority],
|
|
90
90
|
className: "text-[9px] w-full justify-center",
|
|
91
91
|
children: e.title.slice(0, 15)
|
|
@@ -94,81 +94,81 @@ function v() {
|
|
|
94
94
|
}, e);
|
|
95
95
|
})]
|
|
96
96
|
}) })] }),
|
|
97
|
-
/* @__PURE__ */
|
|
97
|
+
/* @__PURE__ */ o(l, { children: [/* @__PURE__ */ a(d, { children: /* @__PURE__ */ a(f, { children: "All Maintenance Activities" }) }), /* @__PURE__ */ a(u, {
|
|
98
98
|
className: "p-0",
|
|
99
|
-
children: v.length === 0 ? /* @__PURE__ */ h
|
|
99
|
+
children: v.length === 0 ? /* @__PURE__ */ a(h, {
|
|
100
100
|
illustration: "empty-generic",
|
|
101
101
|
title: "No maintenance activities",
|
|
102
102
|
description: "Schedule maintenance and it will show up on the calendar and in this list."
|
|
103
|
-
}) : /* @__PURE__ */
|
|
103
|
+
}) : /* @__PURE__ */ a("div", {
|
|
104
104
|
className: "overflow-x-auto",
|
|
105
|
-
children: /* @__PURE__ */
|
|
105
|
+
children: /* @__PURE__ */ o("table", {
|
|
106
106
|
className: "w-full text-sm",
|
|
107
|
-
children: [/* @__PURE__ */
|
|
107
|
+
children: [/* @__PURE__ */ a("thead", { children: /* @__PURE__ */ o("tr", {
|
|
108
108
|
className: "border-b bg-bg-sunken/50",
|
|
109
109
|
children: [
|
|
110
|
-
/* @__PURE__ */
|
|
110
|
+
/* @__PURE__ */ a("th", {
|
|
111
111
|
className: "text-left p-3 font-medium",
|
|
112
112
|
children: "ID"
|
|
113
113
|
}),
|
|
114
|
-
/* @__PURE__ */
|
|
114
|
+
/* @__PURE__ */ a("th", {
|
|
115
115
|
className: "text-left p-3 font-medium",
|
|
116
116
|
children: "Asset"
|
|
117
117
|
}),
|
|
118
|
-
/* @__PURE__ */
|
|
118
|
+
/* @__PURE__ */ a("th", {
|
|
119
119
|
className: "text-left p-3 font-medium",
|
|
120
120
|
children: "Title"
|
|
121
121
|
}),
|
|
122
|
-
/* @__PURE__ */
|
|
122
|
+
/* @__PURE__ */ a("th", {
|
|
123
123
|
className: "text-left p-3 font-medium",
|
|
124
124
|
children: "Type"
|
|
125
125
|
}),
|
|
126
|
-
/* @__PURE__ */
|
|
126
|
+
/* @__PURE__ */ a("th", {
|
|
127
127
|
className: "text-left p-3 font-medium",
|
|
128
128
|
children: "Priority"
|
|
129
129
|
}),
|
|
130
|
-
/* @__PURE__ */
|
|
130
|
+
/* @__PURE__ */ a("th", {
|
|
131
131
|
className: "text-left p-3 font-medium",
|
|
132
132
|
children: "Date"
|
|
133
133
|
}),
|
|
134
|
-
/* @__PURE__ */
|
|
134
|
+
/* @__PURE__ */ a("th", {
|
|
135
135
|
className: "text-left p-3 font-medium",
|
|
136
136
|
children: "Status"
|
|
137
137
|
})
|
|
138
138
|
]
|
|
139
|
-
}) }), /* @__PURE__ */
|
|
139
|
+
}) }), /* @__PURE__ */ a("tbody", { children: v.map((e) => /* @__PURE__ */ o("tr", {
|
|
140
140
|
className: "border-b hover:bg-bg-sunken/50 cursor-pointer",
|
|
141
141
|
children: [
|
|
142
|
-
/* @__PURE__ */
|
|
142
|
+
/* @__PURE__ */ a("td", {
|
|
143
143
|
className: "p-3 font-mono text-xs",
|
|
144
144
|
children: e.id
|
|
145
145
|
}),
|
|
146
|
-
/* @__PURE__ */
|
|
146
|
+
/* @__PURE__ */ a("td", {
|
|
147
147
|
className: "p-3 text-xs",
|
|
148
148
|
children: e.assetId
|
|
149
149
|
}),
|
|
150
|
-
/* @__PURE__ */
|
|
150
|
+
/* @__PURE__ */ a("td", {
|
|
151
151
|
className: "p-3 font-medium",
|
|
152
152
|
children: e.title
|
|
153
153
|
}),
|
|
154
|
-
/* @__PURE__ */
|
|
154
|
+
/* @__PURE__ */ a("td", {
|
|
155
155
|
className: "p-3 capitalize text-xs",
|
|
156
156
|
children: e.type
|
|
157
157
|
}),
|
|
158
|
-
/* @__PURE__ */
|
|
158
|
+
/* @__PURE__ */ a("td", {
|
|
159
159
|
className: "p-3",
|
|
160
|
-
children: /* @__PURE__ */
|
|
160
|
+
children: /* @__PURE__ */ a(s, {
|
|
161
161
|
variant: _[e.priority],
|
|
162
162
|
children: e.priority
|
|
163
163
|
})
|
|
164
164
|
}),
|
|
165
|
-
/* @__PURE__ */
|
|
165
|
+
/* @__PURE__ */ a("td", {
|
|
166
166
|
className: "p-3 text-xs",
|
|
167
167
|
children: e.scheduledDate
|
|
168
168
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
169
|
+
/* @__PURE__ */ a("td", {
|
|
170
170
|
className: "p-3",
|
|
171
|
-
children: /* @__PURE__ */
|
|
171
|
+
children: /* @__PURE__ */ a(s, {
|
|
172
172
|
variant: e.status === "completed" ? "default" : "outline",
|
|
173
173
|
children: e.status.replace("_", " ")
|
|
174
174
|
})
|
|
@@ -1,74 +1,74 @@
|
|
|
1
1
|
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
2
|
import { Plus as t } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
+
import { Badge as i, Button as a, Card as o, CardContent as s, CardHeader as c, CardTitle as l, GradientText as u, IllustratedEmptyState as d, PagePurpose as f, Separator as p } from "@burdenoff/fe-libs/ui";
|
|
5
5
|
//#region src/assethandler/pages/MaintenanceMaintenanceSchedulerPage.tsx
|
|
6
6
|
function m() {
|
|
7
7
|
let { maintenanceRecords: m } = e(), h = m.filter((e) => e.status === "scheduled");
|
|
8
|
-
return /* @__PURE__ */
|
|
8
|
+
return /* @__PURE__ */ r("div", {
|
|
9
9
|
className: "space-y-6 p-6",
|
|
10
10
|
children: [
|
|
11
|
-
/* @__PURE__ */
|
|
11
|
+
/* @__PURE__ */ r("div", {
|
|
12
12
|
className: "flex items-center justify-between",
|
|
13
|
-
children: [/* @__PURE__ */
|
|
13
|
+
children: [/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ n("h1", {
|
|
14
14
|
className: "text-2xl font-bold",
|
|
15
|
-
children: /* @__PURE__ */
|
|
16
|
-
}), /* @__PURE__ */
|
|
15
|
+
children: /* @__PURE__ */ n(u, { children: "Maintenance Scheduler" })
|
|
16
|
+
}), /* @__PURE__ */ n("p", {
|
|
17
17
|
className: "text-sm text-text-secondary",
|
|
18
18
|
children: "Schedule and manage maintenance tasks"
|
|
19
|
-
})] }), /* @__PURE__ */
|
|
19
|
+
})] }), /* @__PURE__ */ r(a, {
|
|
20
20
|
size: "sm",
|
|
21
|
-
children: [/* @__PURE__ */
|
|
21
|
+
children: [/* @__PURE__ */ n(t, { className: "mr-2 h-4 w-4" }), "Schedule New"]
|
|
22
22
|
})]
|
|
23
23
|
}),
|
|
24
|
-
/* @__PURE__ */ f
|
|
25
|
-
/* @__PURE__ */
|
|
24
|
+
/* @__PURE__ */ n(f, { children: "Plan maintenance before things break. Schedule jobs against an asset (each with its own checklist and cost estimate), then track the upcoming work here — turning reactive firefighting into predictable preventive upkeep." }),
|
|
25
|
+
/* @__PURE__ */ r(o, { children: [/* @__PURE__ */ n(c, { children: /* @__PURE__ */ r(l, { children: [
|
|
26
26
|
"Scheduled Maintenance (",
|
|
27
27
|
h.length,
|
|
28
28
|
")"
|
|
29
|
-
] }) }), /* @__PURE__ */
|
|
29
|
+
] }) }), /* @__PURE__ */ n(s, { children: h.length === 0 ? /* @__PURE__ */ n(d, {
|
|
30
30
|
illustration: "empty-generic",
|
|
31
31
|
title: "Nothing scheduled",
|
|
32
32
|
description: "Schedule maintenance from a template or for a specific asset to see it here."
|
|
33
|
-
}) : /* @__PURE__ */
|
|
33
|
+
}) : /* @__PURE__ */ n("div", {
|
|
34
34
|
className: "space-y-3",
|
|
35
|
-
children: h.map((e) => /* @__PURE__ */
|
|
35
|
+
children: h.map((e) => /* @__PURE__ */ r("div", {
|
|
36
36
|
className: "rounded-lg border p-4",
|
|
37
37
|
children: [
|
|
38
|
-
/* @__PURE__ */
|
|
38
|
+
/* @__PURE__ */ r("div", {
|
|
39
39
|
className: "flex items-center justify-between",
|
|
40
|
-
children: [/* @__PURE__ */
|
|
41
|
-
/* @__PURE__ */
|
|
40
|
+
children: [/* @__PURE__ */ r("div", { children: [
|
|
41
|
+
/* @__PURE__ */ r("div", {
|
|
42
42
|
className: "flex items-center gap-2",
|
|
43
|
-
children: [/* @__PURE__ */
|
|
43
|
+
children: [/* @__PURE__ */ n("span", {
|
|
44
44
|
className: "font-mono text-xs text-text-secondary",
|
|
45
45
|
children: e.id
|
|
46
|
-
}), /* @__PURE__ */
|
|
46
|
+
}), /* @__PURE__ */ n(i, {
|
|
47
47
|
variant: "outline",
|
|
48
48
|
children: e.type
|
|
49
49
|
})]
|
|
50
50
|
}),
|
|
51
|
-
/* @__PURE__ */
|
|
51
|
+
/* @__PURE__ */ n("p", {
|
|
52
52
|
className: "font-medium mt-1",
|
|
53
53
|
children: e.title
|
|
54
54
|
}),
|
|
55
|
-
/* @__PURE__ */
|
|
55
|
+
/* @__PURE__ */ n("p", {
|
|
56
56
|
className: "text-sm text-text-secondary",
|
|
57
57
|
children: e.assetId
|
|
58
58
|
})
|
|
59
|
-
] }), /* @__PURE__ */
|
|
59
|
+
] }), /* @__PURE__ */ r("div", {
|
|
60
60
|
className: "text-right",
|
|
61
|
-
children: [/* @__PURE__ */
|
|
61
|
+
children: [/* @__PURE__ */ n("p", {
|
|
62
62
|
className: "text-sm font-medium",
|
|
63
63
|
children: e.scheduledDate ? new Date(e.scheduledDate).toLocaleDateString() : "Not scheduled"
|
|
64
|
-
}), e.estimatedCost != null && /* @__PURE__ */
|
|
64
|
+
}), e.estimatedCost != null && /* @__PURE__ */ r("p", {
|
|
65
65
|
className: "text-xs text-text-secondary",
|
|
66
66
|
children: ["Est. $", e.estimatedCost.toLocaleString()]
|
|
67
67
|
})]
|
|
68
68
|
})]
|
|
69
69
|
}),
|
|
70
|
-
/* @__PURE__ */
|
|
71
|
-
/* @__PURE__ */
|
|
70
|
+
/* @__PURE__ */ n(p, { className: "my-3" }),
|
|
71
|
+
/* @__PURE__ */ r("div", { children: [/* @__PURE__ */ r("p", {
|
|
72
72
|
className: "text-xs font-medium text-text-secondary mb-2",
|
|
73
73
|
children: [
|
|
74
74
|
"Checklist (",
|
|
@@ -77,11 +77,11 @@ function m() {
|
|
|
77
77
|
e.checklist.length,
|
|
78
78
|
")"
|
|
79
79
|
]
|
|
80
|
-
}), /* @__PURE__ */
|
|
80
|
+
}), /* @__PURE__ */ n("div", {
|
|
81
81
|
className: "space-y-1",
|
|
82
|
-
children: e.checklist.map((e, t) => /* @__PURE__ */
|
|
82
|
+
children: e.checklist.map((e, t) => /* @__PURE__ */ r("div", {
|
|
83
83
|
className: "flex items-center gap-2 text-xs",
|
|
84
|
-
children: [/* @__PURE__ */
|
|
84
|
+
children: [/* @__PURE__ */ n("div", { className: `h-3 w-3 rounded border ${e.completed ? "bg-action-primary-bg border-primary" : "border-muted-foreground"}` }), /* @__PURE__ */ n("span", {
|
|
85
85
|
className: e.completed ? "line-through text-text-secondary" : "",
|
|
86
86
|
children: e.task
|
|
87
87
|
})]
|