@burdenoff/microfe-assethandler 2026.625.1 → 2026.625.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/assethandler/pages/AiPredictionsPage.js +42 -41
- package/dist/assethandler/pages/AiPredictionsPage.js.map +1 -1
- package/dist/assethandler/pages/AnalyticsPage.js +538 -534
- package/dist/assethandler/pages/AnalyticsPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +135 -125
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +90 -92
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetCreatePage.js +131 -124
- package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetDetailPage.js +214 -185
- package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetEditPage.js +168 -156
- package/dist/assethandler/pages/AssetsAssetEditPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetListPage.js +207 -187
- package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -1
- package/dist/assethandler/pages/AssetsAssetTrackingPage.js +82 -71
- package/dist/assethandler/pages/AssetsAssetTrackingPage.js.map +1 -1
- package/dist/assethandler/pages/AuditTrailPage.js +93 -91
- package/dist/assethandler/pages/AuditTrailPage.js.map +1 -1
- package/dist/assethandler/pages/CmdbBrowserPage.js +32 -33
- package/dist/assethandler/pages/CmdbBrowserPage.js.map +1 -1
- package/dist/assethandler/pages/DashboardPage.js +157 -126
- package/dist/assethandler/pages/DashboardPage.js.map +1 -1
- package/dist/assethandler/pages/DigitalTwinPage.js +25 -26
- package/dist/assethandler/pages/DigitalTwinPage.js.map +1 -1
- package/dist/assethandler/pages/DiscoveryJobsPage.js +50 -50
- package/dist/assethandler/pages/DiscoveryJobsPage.js.map +1 -1
- package/dist/assethandler/pages/EsgDashboardPage.js +43 -42
- package/dist/assethandler/pages/EsgDashboardPage.js.map +1 -1
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js +96 -82
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -1
- package/dist/assethandler/pages/FinanceFinanceHubPage.js +137 -103
- package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -1
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +77 -66
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/IotDevicesPage.js +34 -35
- package/dist/assethandler/pages/IotDevicesPage.js.map +1 -1
- package/dist/assethandler/pages/ItilChangeDetailPage.js +236 -199
- package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilChangeManagementPage.js +66 -64
- package/dist/assethandler/pages/ItilChangeManagementPage.js.map +1 -1
- package/dist/assethandler/pages/ItilIncidentDetailPage.js +237 -200
- package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilIncidentManagementPage.js +99 -97
- package/dist/assethandler/pages/ItilIncidentManagementPage.js.map +1 -1
- package/dist/assethandler/pages/ItilItilhubPage.js +166 -122
- package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -1
- package/dist/assethandler/pages/ItilProblemDetailPage.js +193 -156
- package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -1
- package/dist/assethandler/pages/ItilProblemManagementPage.js +63 -61
- package/dist/assethandler/pages/ItilProblemManagementPage.js.map +1 -1
- package/dist/assethandler/pages/KnowledgeBasePage.js +45 -43
- package/dist/assethandler/pages/KnowledgeBasePage.js.map +1 -1
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +70 -68
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js.map +1 -1
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +77 -62
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js.map +1 -1
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js +162 -151
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js +64 -57
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js.map +1 -1
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js +125 -108
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js.map +1 -1
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js +67 -61
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js.map +1 -1
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +203 -166
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/OperationsOperationsHubPage.js +125 -95
- package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -1
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +165 -151
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -1
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +83 -81
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js.map +1 -1
- package/dist/assethandler/pages/ProvenancePage.js +56 -53
- package/dist/assethandler/pages/ProvenancePage.js.map +1 -1
- package/dist/assethandler/pages/ReportsReportBuilderPage.js +80 -73
- package/dist/assethandler/pages/ReportsReportBuilderPage.js.map +1 -1
- package/dist/assethandler/pages/ReportsReportsDashboardPage.js +112 -77
- package/dist/assethandler/pages/ReportsReportsDashboardPage.js.map +1 -1
- package/dist/assethandler/pages/ReportsReportsListPage.js +119 -103
- package/dist/assethandler/pages/ReportsReportsListPage.js.map +1 -1
- package/dist/assethandler/pages/SamLicensesPage.js +32 -33
- package/dist/assethandler/pages/SamLicensesPage.js.map +1 -1
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js +60 -52
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js +134 -117
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecurityScheduleBackupPage.js +63 -57
- package/dist/assethandler/pages/SecurityScheduleBackupPage.js.map +1 -1
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +131 -117
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -1
- package/dist/assethandler/pages/SecuritySecurityHubPage.js +147 -113
- package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -1
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +235 -218
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -1
- package/dist/assethandler/pages/TransactionsTransactionListPage.js +118 -116
- package/dist/assethandler/pages/TransactionsTransactionListPage.js.map +1 -1
- package/dist/assethandler/pages/UsersPage.js +108 -99
- package/dist/assethandler/pages/UsersPage.js.map +1 -1
- package/dist/assethandler/pages/UsersUserCreatePage.js +74 -67
- package/dist/assethandler/pages/UsersUserCreatePage.js.map +1 -1
- package/dist/assethandler/pages/UsersUserManagementHubPage.js +128 -93
- package/dist/assethandler/pages/UsersUserManagementHubPage.js.map +1 -1
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js +211 -193
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js.map +1 -1
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js +88 -86
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js.map +1 -1
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.js +68 -60
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.js.map +1 -1
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js +71 -68
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,259 +1,288 @@
|
|
|
1
1
|
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
2
|
import { tWithFallback as t } from "../utils/i18n.js";
|
|
3
3
|
import { ArrowLeft as n, Building as r, Calendar as i, Clock as a, DollarSign as o, Download as s, Edit as c, MapPin as l, Tag as u, User as d, Wrench as f } from "lucide-react";
|
|
4
|
-
import {
|
|
5
|
-
import { Badge as
|
|
6
|
-
import { useI18n as
|
|
7
|
-
import { jsx as
|
|
4
|
+
import { useNavigate as p, useParams as m } from "react-router-dom";
|
|
5
|
+
import { Badge as h, Button as g, Card as _, CardContent as v, CardDescription as y, CardHeader as b, CardTitle as x, EmphasisPanel as S, GradientText as C, IllustratedEmptyState as w, NextSteps as T, PagePurpose as E, Separator as D, Tabs as O, TabsContent as k, TabsList as A, TabsTrigger as j } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
import { useI18n as M } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
|
+
import { jsx as N, jsxs as P } from "react/jsx-runtime";
|
|
8
8
|
//#region src/assethandler/pages/AssetsAssetDetailPage.tsx
|
|
9
|
-
var
|
|
9
|
+
var F = {
|
|
10
10
|
active: "default",
|
|
11
11
|
inactive: "outline",
|
|
12
12
|
under_maintenance: "secondary",
|
|
13
13
|
disposed: "destructive",
|
|
14
14
|
reserved: "secondary",
|
|
15
15
|
in_transit: "outline"
|
|
16
|
-
},
|
|
16
|
+
}, I = {
|
|
17
17
|
excellent: "text-status-success-text bg-status-success-bg-subtle",
|
|
18
18
|
good: "text-status-info-text bg-status-info-bg-subtle",
|
|
19
19
|
fair: "text-status-warning-text bg-status-warning-bg-subtle",
|
|
20
20
|
poor: "text-status-warning-text bg-status-warning-bg-subtle",
|
|
21
21
|
non_functional: "text-status-error-text bg-status-error-bg-subtle"
|
|
22
22
|
};
|
|
23
|
-
function
|
|
24
|
-
let { t:
|
|
25
|
-
if (!
|
|
23
|
+
function L() {
|
|
24
|
+
let { t: L } = M(), z = p(), { assetId: B } = m(), { assets: V, maintenanceRecords: H } = e(), U = V.find((e) => e.id === B || e.assetTag === B) ?? V[0];
|
|
25
|
+
if (!U) return /* @__PURE__ */ N("div", {
|
|
26
26
|
className: "p-6",
|
|
27
|
-
children: /* @__PURE__ */
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
children: /* @__PURE__ */ N(w, {
|
|
28
|
+
illustration: "empty-search",
|
|
29
|
+
title: t(L, "assethandler.assets.detail.notFound", "Asset not found"),
|
|
30
|
+
description: "This asset may have been disposed or removed. Return to the inventory to find it.",
|
|
31
|
+
action: /* @__PURE__ */ N(g, {
|
|
32
|
+
size: "sm",
|
|
33
|
+
onClick: () => z("/assets/asset-list"),
|
|
34
|
+
children: "Back to inventory"
|
|
35
|
+
})
|
|
30
36
|
})
|
|
31
37
|
});
|
|
32
|
-
let
|
|
33
|
-
return /* @__PURE__ */
|
|
38
|
+
let W = H.filter((e) => e.assetId === U.id), G = U.value - U.currentValue, K = (G / U.value * 100).toFixed(1);
|
|
39
|
+
return /* @__PURE__ */ P("div", {
|
|
34
40
|
className: "space-y-6 p-6",
|
|
35
41
|
children: [
|
|
36
|
-
/* @__PURE__ */
|
|
42
|
+
/* @__PURE__ */ P("div", {
|
|
37
43
|
className: "flex items-center justify-between",
|
|
38
|
-
children: [/* @__PURE__ */
|
|
44
|
+
children: [/* @__PURE__ */ P("div", {
|
|
39
45
|
className: "flex items-center gap-4",
|
|
40
|
-
children: [/* @__PURE__ */
|
|
46
|
+
children: [/* @__PURE__ */ N(g, {
|
|
41
47
|
variant: "ghost",
|
|
42
48
|
size: "icon",
|
|
43
|
-
|
|
44
|
-
|
|
49
|
+
onClick: () => z("/assets/asset-list"),
|
|
50
|
+
children: /* @__PURE__ */ N(n, { className: "h-4 w-4" })
|
|
51
|
+
}), /* @__PURE__ */ P("div", { children: [/* @__PURE__ */ P("div", {
|
|
45
52
|
className: "flex items-center gap-3",
|
|
46
53
|
children: [
|
|
47
|
-
/* @__PURE__ */
|
|
54
|
+
/* @__PURE__ */ N("h1", {
|
|
48
55
|
className: "text-2xl font-bold",
|
|
49
|
-
children: /* @__PURE__ */
|
|
56
|
+
children: /* @__PURE__ */ N(C, { children: U.name })
|
|
50
57
|
}),
|
|
51
|
-
/* @__PURE__ */
|
|
52
|
-
variant:
|
|
53
|
-
children:
|
|
58
|
+
/* @__PURE__ */ N(h, {
|
|
59
|
+
variant: F[U.status],
|
|
60
|
+
children: U.status.replace("_", " ")
|
|
54
61
|
}),
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
className: `rounded-md px-2 py-0.5 text-xs font-medium ${
|
|
57
|
-
children:
|
|
62
|
+
/* @__PURE__ */ N("span", {
|
|
63
|
+
className: `rounded-md px-2 py-0.5 text-xs font-medium ${I[U.condition]}`,
|
|
64
|
+
children: U.condition
|
|
58
65
|
})
|
|
59
66
|
]
|
|
60
|
-
}), /* @__PURE__ */
|
|
67
|
+
}), /* @__PURE__ */ P("p", {
|
|
61
68
|
className: "text-sm text-text-secondary mt-1",
|
|
62
69
|
children: [
|
|
63
|
-
|
|
70
|
+
U.assetTag,
|
|
64
71
|
" · SN: ",
|
|
65
|
-
|
|
72
|
+
U.serialNumber
|
|
66
73
|
]
|
|
67
74
|
})] })]
|
|
68
|
-
}), /* @__PURE__ */
|
|
75
|
+
}), /* @__PURE__ */ P("div", {
|
|
69
76
|
className: "flex gap-2",
|
|
70
|
-
children: [/* @__PURE__ */
|
|
77
|
+
children: [/* @__PURE__ */ P(g, {
|
|
71
78
|
variant: "outline",
|
|
72
79
|
size: "sm",
|
|
73
|
-
children: [/* @__PURE__ */
|
|
74
|
-
}), /* @__PURE__ */
|
|
80
|
+
children: [/* @__PURE__ */ N(s, { className: "mr-2 h-4 w-4" }), t(L, "assethandler.assets.detail.actions.export", "Export")]
|
|
81
|
+
}), /* @__PURE__ */ P(g, {
|
|
75
82
|
size: "sm",
|
|
76
|
-
|
|
83
|
+
onClick: () => z(`/assets/${U.id}/edit`),
|
|
84
|
+
children: [/* @__PURE__ */ N(c, { className: "mr-2 h-4 w-4" }), t(L, "assethandler.assets.detail.actions.editAsset", "Edit Asset")]
|
|
77
85
|
})]
|
|
78
86
|
})]
|
|
79
87
|
}),
|
|
80
|
-
/* @__PURE__ */
|
|
88
|
+
/* @__PURE__ */ N(E, { children: t(L, "assethandler.assets.detail.purpose", "The complete profile of a single asset — its identity, value, condition, location, assignment and full maintenance history. Use this page as the asset's home base: edit its details, check it in or out, and schedule the next service.") }),
|
|
89
|
+
/* @__PURE__ */ N(T, {
|
|
90
|
+
storageKey: "assethandler-asset-detail",
|
|
91
|
+
steps: [
|
|
92
|
+
{
|
|
93
|
+
id: "edit",
|
|
94
|
+
label: "Edit asset details",
|
|
95
|
+
description: "Update value, status, location or assignment.",
|
|
96
|
+
onClick: () => z(`/assets/${U.id}/edit`)
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
id: "checkinout",
|
|
100
|
+
label: "Check this asset in or out",
|
|
101
|
+
description: "Record who is using it and when it returns.",
|
|
102
|
+
onClick: () => z("/assets/asset-check-in-out")
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
id: "maintenance",
|
|
106
|
+
label: "Schedule maintenance",
|
|
107
|
+
description: "Plan the next service before it is overdue.",
|
|
108
|
+
onClick: () => z("/maintenance/maintenance-scheduler")
|
|
109
|
+
}
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/* @__PURE__ */ P("div", {
|
|
81
113
|
className: "grid gap-4 md:grid-cols-4",
|
|
82
114
|
children: [
|
|
83
|
-
/* @__PURE__ */
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
]
|
|
103
|
-
}) }),
|
|
104
|
-
/* @__PURE__ */ O(g, { children: /* @__PURE__ */ k(_, {
|
|
115
|
+
/* @__PURE__ */ P(S, { children: [
|
|
116
|
+
/* @__PURE__ */ P("div", {
|
|
117
|
+
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
118
|
+
children: [/* @__PURE__ */ N(o, { className: "h-4 w-4" }), t(L, "assethandler.assets.detail.stats.currentValue", "Current Value")]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ P("p", {
|
|
121
|
+
className: "text-2xl font-bold mt-1 tabular-nums",
|
|
122
|
+
children: ["$", U.currentValue.toLocaleString()]
|
|
123
|
+
}),
|
|
124
|
+
/* @__PURE__ */ P("p", {
|
|
125
|
+
className: "text-xs text-text-secondary",
|
|
126
|
+
children: [
|
|
127
|
+
t(L, "assethandler.assets.detail.stats.original", "Original"),
|
|
128
|
+
": $",
|
|
129
|
+
U.value.toLocaleString()
|
|
130
|
+
]
|
|
131
|
+
})
|
|
132
|
+
] }),
|
|
133
|
+
/* @__PURE__ */ N(_, { children: /* @__PURE__ */ P(v, {
|
|
105
134
|
className: "pt-4",
|
|
106
135
|
children: [
|
|
107
|
-
/* @__PURE__ */
|
|
136
|
+
/* @__PURE__ */ N("div", {
|
|
108
137
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
109
|
-
children: t(
|
|
138
|
+
children: t(L, "assethandler.assets.detail.stats.depreciation", "Depreciation")
|
|
110
139
|
}),
|
|
111
|
-
/* @__PURE__ */
|
|
140
|
+
/* @__PURE__ */ P("p", {
|
|
112
141
|
className: "text-2xl font-bold mt-1 text-status-error-text",
|
|
113
|
-
children: ["-$",
|
|
142
|
+
children: ["-$", G.toLocaleString()]
|
|
114
143
|
}),
|
|
115
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ P("p", {
|
|
116
145
|
className: "text-xs text-text-secondary",
|
|
117
146
|
children: [
|
|
118
|
-
|
|
147
|
+
K,
|
|
119
148
|
"% ·",
|
|
120
149
|
" ",
|
|
121
|
-
t(
|
|
150
|
+
t(L, "assethandler.assets.detail.stats.rate", "Rate"),
|
|
122
151
|
":",
|
|
123
152
|
" ",
|
|
124
|
-
|
|
153
|
+
U.depreciationRate,
|
|
125
154
|
"%/yr"
|
|
126
155
|
]
|
|
127
156
|
})
|
|
128
157
|
]
|
|
129
158
|
}) }),
|
|
130
|
-
/* @__PURE__ */
|
|
159
|
+
/* @__PURE__ */ N(_, { children: /* @__PURE__ */ P(v, {
|
|
131
160
|
className: "pt-4",
|
|
132
161
|
children: [
|
|
133
|
-
/* @__PURE__ */
|
|
162
|
+
/* @__PURE__ */ P("div", {
|
|
134
163
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
135
|
-
children: [/* @__PURE__ */
|
|
164
|
+
children: [/* @__PURE__ */ N(i, { className: "h-4 w-4" }), t(L, "assethandler.assets.detail.stats.warranty", "Warranty")]
|
|
136
165
|
}),
|
|
137
|
-
/* @__PURE__ */
|
|
166
|
+
/* @__PURE__ */ N("p", {
|
|
138
167
|
className: "text-lg font-bold mt-1",
|
|
139
|
-
children:
|
|
168
|
+
children: U.warrantyExpiry
|
|
140
169
|
}),
|
|
141
|
-
/* @__PURE__ */
|
|
170
|
+
/* @__PURE__ */ P("p", {
|
|
142
171
|
className: "text-xs text-text-secondary",
|
|
143
172
|
children: [
|
|
144
|
-
t(
|
|
173
|
+
t(L, "assethandler.assets.detail.stats.purchased", "Purchased"),
|
|
145
174
|
":",
|
|
146
175
|
" ",
|
|
147
|
-
|
|
176
|
+
U.purchaseDate
|
|
148
177
|
]
|
|
149
178
|
})
|
|
150
179
|
]
|
|
151
180
|
}) }),
|
|
152
|
-
/* @__PURE__ */
|
|
181
|
+
/* @__PURE__ */ N(_, { children: /* @__PURE__ */ P(v, {
|
|
153
182
|
className: "pt-4",
|
|
154
183
|
children: [
|
|
155
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ P("div", {
|
|
156
185
|
className: "flex items-center gap-2 text-sm text-text-secondary",
|
|
157
|
-
children: [/* @__PURE__ */
|
|
186
|
+
children: [/* @__PURE__ */ N(a, { className: "h-4 w-4" }), t(L, "assethandler.assets.detail.stats.lastAudit", "Last Audit")]
|
|
158
187
|
}),
|
|
159
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ N("p", {
|
|
160
189
|
className: "text-lg font-bold mt-1",
|
|
161
|
-
children:
|
|
190
|
+
children: U.lastAuditDate
|
|
162
191
|
}),
|
|
163
|
-
/* @__PURE__ */
|
|
192
|
+
/* @__PURE__ */ P("p", {
|
|
164
193
|
className: "text-xs text-text-secondary",
|
|
165
194
|
children: [
|
|
166
|
-
|
|
195
|
+
W.length,
|
|
167
196
|
" ",
|
|
168
|
-
t(
|
|
197
|
+
t(L, "assethandler.assets.detail.stats.maintenanceRecords", "maintenance records")
|
|
169
198
|
]
|
|
170
199
|
})
|
|
171
200
|
]
|
|
172
201
|
}) })
|
|
173
202
|
]
|
|
174
203
|
}),
|
|
175
|
-
/* @__PURE__ */
|
|
204
|
+
/* @__PURE__ */ P(O, {
|
|
176
205
|
defaultValue: "details",
|
|
177
206
|
children: [
|
|
178
|
-
/* @__PURE__ */
|
|
179
|
-
/* @__PURE__ */
|
|
207
|
+
/* @__PURE__ */ P(A, { children: [
|
|
208
|
+
/* @__PURE__ */ N(j, {
|
|
180
209
|
value: "details",
|
|
181
|
-
children: t(
|
|
210
|
+
children: t(L, "assethandler.assets.detail.tabs.details", "Details")
|
|
182
211
|
}),
|
|
183
|
-
/* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ N(j, {
|
|
184
213
|
value: "maintenance",
|
|
185
|
-
children: t(
|
|
214
|
+
children: t(L, "assethandler.assets.detail.tabs.maintenance", "Maintenance")
|
|
186
215
|
}),
|
|
187
|
-
/* @__PURE__ */
|
|
216
|
+
/* @__PURE__ */ N(j, {
|
|
188
217
|
value: "financial",
|
|
189
|
-
children: t(
|
|
218
|
+
children: t(L, "assethandler.assets.detail.tabs.financial", "Financial")
|
|
190
219
|
})
|
|
191
220
|
] }),
|
|
192
|
-
/* @__PURE__ */
|
|
221
|
+
/* @__PURE__ */ N(k, {
|
|
193
222
|
value: "details",
|
|
194
223
|
className: "space-y-6 mt-4",
|
|
195
|
-
children: /* @__PURE__ */
|
|
224
|
+
children: /* @__PURE__ */ P("div", {
|
|
196
225
|
className: "grid gap-6 lg:grid-cols-2",
|
|
197
|
-
children: [/* @__PURE__ */
|
|
226
|
+
children: [/* @__PURE__ */ P(_, { children: [/* @__PURE__ */ N(b, { children: /* @__PURE__ */ N(x, { children: t(L, "assethandler.assets.detail.sections.generalInformation", "General Information") }) }), /* @__PURE__ */ N(v, { children: /* @__PURE__ */ P("dl", {
|
|
198
227
|
className: "space-y-3 text-sm",
|
|
199
228
|
children: [
|
|
200
|
-
/* @__PURE__ */
|
|
201
|
-
label: t(
|
|
202
|
-
value:
|
|
229
|
+
/* @__PURE__ */ N(R, {
|
|
230
|
+
label: t(L, "assethandler.assets.detail.fields.description", "Description"),
|
|
231
|
+
value: U.description
|
|
203
232
|
}),
|
|
204
|
-
/* @__PURE__ */
|
|
205
|
-
label: t(
|
|
206
|
-
value:
|
|
233
|
+
/* @__PURE__ */ N(R, {
|
|
234
|
+
label: t(L, "assethandler.assets.detail.fields.category", "Category"),
|
|
235
|
+
value: U.category.replace("_", " ")
|
|
207
236
|
}),
|
|
208
|
-
/* @__PURE__ */
|
|
209
|
-
label: t(
|
|
210
|
-
value:
|
|
237
|
+
/* @__PURE__ */ N(R, {
|
|
238
|
+
label: t(L, "assethandler.assets.detail.fields.manufacturer", "Manufacturer"),
|
|
239
|
+
value: U.manufacturer
|
|
211
240
|
}),
|
|
212
|
-
/* @__PURE__ */
|
|
213
|
-
label: t(
|
|
214
|
-
value:
|
|
241
|
+
/* @__PURE__ */ N(R, {
|
|
242
|
+
label: t(L, "assethandler.assets.detail.fields.model", "Model"),
|
|
243
|
+
value: U.model
|
|
215
244
|
}),
|
|
216
|
-
/* @__PURE__ */
|
|
217
|
-
label: t(
|
|
218
|
-
value:
|
|
245
|
+
/* @__PURE__ */ N(R, {
|
|
246
|
+
label: t(L, "assethandler.assets.detail.fields.vendor", "Vendor"),
|
|
247
|
+
value: U.vendor
|
|
219
248
|
}),
|
|
220
|
-
/* @__PURE__ */
|
|
221
|
-
label: t(
|
|
222
|
-
value:
|
|
249
|
+
/* @__PURE__ */ N(R, {
|
|
250
|
+
label: t(L, "assethandler.assets.detail.fields.serialNumber", "Serial Number"),
|
|
251
|
+
value: U.serialNumber
|
|
223
252
|
}),
|
|
224
|
-
/* @__PURE__ */
|
|
225
|
-
label: t(
|
|
226
|
-
value:
|
|
253
|
+
/* @__PURE__ */ N(R, {
|
|
254
|
+
label: t(L, "assethandler.assets.detail.fields.assetTag", "Asset Tag"),
|
|
255
|
+
value: U.assetTag
|
|
227
256
|
})
|
|
228
257
|
]
|
|
229
|
-
}) })] }), /* @__PURE__ */
|
|
230
|
-
/* @__PURE__ */
|
|
258
|
+
}) })] }), /* @__PURE__ */ P(_, { children: [/* @__PURE__ */ N(b, { children: /* @__PURE__ */ N(x, { children: t(L, "assethandler.assets.detail.sections.assignmentLocation", "Assignment & Location") }) }), /* @__PURE__ */ P(v, { children: [
|
|
259
|
+
/* @__PURE__ */ P("dl", {
|
|
231
260
|
className: "space-y-3 text-sm",
|
|
232
261
|
children: [
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
-
label: t(
|
|
235
|
-
value:
|
|
236
|
-
icon: /* @__PURE__ */
|
|
262
|
+
/* @__PURE__ */ N(R, {
|
|
263
|
+
label: t(L, "assethandler.assets.detail.fields.assignedTo", "Assigned To"),
|
|
264
|
+
value: U.assignedTo,
|
|
265
|
+
icon: /* @__PURE__ */ N(d, { className: "h-3.5 w-3.5" })
|
|
237
266
|
}),
|
|
238
|
-
/* @__PURE__ */
|
|
239
|
-
label: t(
|
|
240
|
-
value:
|
|
241
|
-
icon: /* @__PURE__ */
|
|
267
|
+
/* @__PURE__ */ N(R, {
|
|
268
|
+
label: t(L, "assethandler.assets.detail.fields.department", "Department"),
|
|
269
|
+
value: U.department,
|
|
270
|
+
icon: /* @__PURE__ */ N(r, { className: "h-3.5 w-3.5" })
|
|
242
271
|
}),
|
|
243
|
-
/* @__PURE__ */
|
|
244
|
-
label: t(
|
|
245
|
-
value:
|
|
246
|
-
icon: /* @__PURE__ */
|
|
272
|
+
/* @__PURE__ */ N(R, {
|
|
273
|
+
label: t(L, "assethandler.assets.detail.fields.location", "Location"),
|
|
274
|
+
value: U.location,
|
|
275
|
+
icon: /* @__PURE__ */ N(l, { className: "h-3.5 w-3.5" })
|
|
247
276
|
})
|
|
248
277
|
]
|
|
249
278
|
}),
|
|
250
|
-
/* @__PURE__ */
|
|
251
|
-
/* @__PURE__ */
|
|
279
|
+
/* @__PURE__ */ N(D, { className: "my-4" }),
|
|
280
|
+
/* @__PURE__ */ P("div", { children: [/* @__PURE__ */ P("h4", {
|
|
252
281
|
className: "text-sm font-medium mb-2 flex items-center gap-2",
|
|
253
|
-
children: [/* @__PURE__ */
|
|
254
|
-
}), /* @__PURE__ */
|
|
282
|
+
children: [/* @__PURE__ */ N(u, { className: "h-3.5 w-3.5" }), t(L, "assethandler.assets.detail.fields.tags", "Tags")]
|
|
283
|
+
}), /* @__PURE__ */ N("div", {
|
|
255
284
|
className: "flex flex-wrap gap-1.5",
|
|
256
|
-
children:
|
|
285
|
+
children: U.tags.map((e) => /* @__PURE__ */ N(h, {
|
|
257
286
|
variant: "secondary",
|
|
258
287
|
className: "text-xs",
|
|
259
288
|
children: e
|
|
@@ -262,66 +291,66 @@ function M() {
|
|
|
262
291
|
] })] })]
|
|
263
292
|
})
|
|
264
293
|
}),
|
|
265
|
-
/* @__PURE__ */
|
|
294
|
+
/* @__PURE__ */ N(k, {
|
|
266
295
|
value: "maintenance",
|
|
267
296
|
className: "mt-4",
|
|
268
|
-
children: /* @__PURE__ */
|
|
297
|
+
children: /* @__PURE__ */ P(_, { children: [/* @__PURE__ */ P(b, { children: [/* @__PURE__ */ P(x, {
|
|
269
298
|
className: "flex items-center gap-2",
|
|
270
|
-
children: [/* @__PURE__ */
|
|
271
|
-
}), /* @__PURE__ */
|
|
272
|
-
|
|
299
|
+
children: [/* @__PURE__ */ N(f, { className: "h-4 w-4" }), t(L, "assethandler.assets.detail.maintenance.title", "Maintenance History")]
|
|
300
|
+
}), /* @__PURE__ */ P(y, { children: [
|
|
301
|
+
W.length,
|
|
273
302
|
" ",
|
|
274
|
-
t(
|
|
275
|
-
] })] }), /* @__PURE__ */
|
|
303
|
+
t(L, "assethandler.assets.detail.maintenance.recordsFound", "records found")
|
|
304
|
+
] })] }), /* @__PURE__ */ N(v, { children: W.length === 0 ? /* @__PURE__ */ N("p", {
|
|
276
305
|
className: "text-center text-text-secondary py-8",
|
|
277
|
-
children: t(
|
|
278
|
-
}) : /* @__PURE__ */
|
|
306
|
+
children: t(L, "assethandler.assets.detail.maintenance.empty", "No maintenance records for this asset.")
|
|
307
|
+
}) : /* @__PURE__ */ N("div", {
|
|
279
308
|
className: "space-y-3",
|
|
280
|
-
children:
|
|
309
|
+
children: W.map((e) => /* @__PURE__ */ N("div", {
|
|
281
310
|
className: "flex items-start gap-4 rounded-lg border p-4",
|
|
282
|
-
children: /* @__PURE__ */
|
|
311
|
+
children: /* @__PURE__ */ P("div", {
|
|
283
312
|
className: "flex-1",
|
|
284
313
|
children: [
|
|
285
|
-
/* @__PURE__ */
|
|
314
|
+
/* @__PURE__ */ P("div", {
|
|
286
315
|
className: "flex items-center gap-2",
|
|
287
316
|
children: [
|
|
288
|
-
/* @__PURE__ */
|
|
317
|
+
/* @__PURE__ */ N("span", {
|
|
289
318
|
className: "font-mono text-xs text-text-secondary",
|
|
290
319
|
children: e.id
|
|
291
320
|
}),
|
|
292
|
-
/* @__PURE__ */
|
|
321
|
+
/* @__PURE__ */ N(h, {
|
|
293
322
|
variant: "outline",
|
|
294
323
|
children: e.type
|
|
295
324
|
}),
|
|
296
|
-
/* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ N(h, {
|
|
297
326
|
variant: e.status === "completed" ? "default" : "secondary",
|
|
298
327
|
children: e.status.replace("_", " ")
|
|
299
328
|
})
|
|
300
329
|
]
|
|
301
330
|
}),
|
|
302
|
-
/* @__PURE__ */
|
|
331
|
+
/* @__PURE__ */ N("p", {
|
|
303
332
|
className: "font-medium mt-1",
|
|
304
333
|
children: e.title
|
|
305
334
|
}),
|
|
306
|
-
/* @__PURE__ */
|
|
335
|
+
/* @__PURE__ */ N("p", {
|
|
307
336
|
className: "text-sm text-text-secondary",
|
|
308
337
|
children: e.description
|
|
309
338
|
}),
|
|
310
|
-
/* @__PURE__ */
|
|
339
|
+
/* @__PURE__ */ P("div", {
|
|
311
340
|
className: "flex gap-4 mt-2 text-xs text-text-secondary",
|
|
312
341
|
children: [
|
|
313
|
-
/* @__PURE__ */
|
|
314
|
-
t(
|
|
342
|
+
/* @__PURE__ */ P("span", { children: [
|
|
343
|
+
t(L, "assethandler.assets.detail.maintenance.scheduled", "Scheduled"),
|
|
315
344
|
": ",
|
|
316
345
|
e.scheduledDate
|
|
317
346
|
] }),
|
|
318
|
-
/* @__PURE__ */
|
|
319
|
-
t(
|
|
347
|
+
/* @__PURE__ */ P("span", { children: [
|
|
348
|
+
t(L, "assethandler.assets.detail.maintenance.cost", "Cost"),
|
|
320
349
|
": $",
|
|
321
350
|
e.cost
|
|
322
351
|
] }),
|
|
323
|
-
/* @__PURE__ */
|
|
324
|
-
t(
|
|
352
|
+
/* @__PURE__ */ P("span", { children: [
|
|
353
|
+
t(L, "assethandler.assets.detail.maintenance.assigned", "Assigned"),
|
|
325
354
|
": ",
|
|
326
355
|
e.assignedTo
|
|
327
356
|
] })
|
|
@@ -332,39 +361,39 @@ function M() {
|
|
|
332
361
|
}, e.id))
|
|
333
362
|
}) })] })
|
|
334
363
|
}),
|
|
335
|
-
/* @__PURE__ */
|
|
364
|
+
/* @__PURE__ */ N(k, {
|
|
336
365
|
value: "financial",
|
|
337
366
|
className: "mt-4",
|
|
338
|
-
children: /* @__PURE__ */
|
|
367
|
+
children: /* @__PURE__ */ P(_, { children: [/* @__PURE__ */ N(b, { children: /* @__PURE__ */ N(x, { children: t(L, "assethandler.assets.detail.financial.title", "Financial Details") }) }), /* @__PURE__ */ N(v, { children: /* @__PURE__ */ P("dl", {
|
|
339
368
|
className: "grid grid-cols-2 gap-4 text-sm",
|
|
340
369
|
children: [
|
|
341
|
-
/* @__PURE__ */
|
|
342
|
-
label: t(
|
|
343
|
-
value: `$${
|
|
370
|
+
/* @__PURE__ */ N(R, {
|
|
371
|
+
label: t(L, "assethandler.assets.detail.financial.purchasePrice", "Purchase Price"),
|
|
372
|
+
value: `$${U.value.toLocaleString()}`
|
|
344
373
|
}),
|
|
345
|
-
/* @__PURE__ */
|
|
346
|
-
label: t(
|
|
347
|
-
value: `$${
|
|
374
|
+
/* @__PURE__ */ N(R, {
|
|
375
|
+
label: t(L, "assethandler.assets.detail.financial.currentValue", "Current Value"),
|
|
376
|
+
value: `$${U.currentValue.toLocaleString()}`
|
|
348
377
|
}),
|
|
349
|
-
/* @__PURE__ */
|
|
350
|
-
label: t(
|
|
351
|
-
value: `-$${
|
|
378
|
+
/* @__PURE__ */ N(R, {
|
|
379
|
+
label: t(L, "assethandler.assets.detail.financial.depreciation", "Depreciation"),
|
|
380
|
+
value: `-$${G.toLocaleString()} (${K}%)`
|
|
352
381
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
354
|
-
label: t(
|
|
355
|
-
value: `${
|
|
382
|
+
/* @__PURE__ */ N(R, {
|
|
383
|
+
label: t(L, "assethandler.assets.detail.financial.annualDepreciationRate", "Annual Dep. Rate"),
|
|
384
|
+
value: `${U.depreciationRate}%`
|
|
356
385
|
}),
|
|
357
|
-
/* @__PURE__ */
|
|
358
|
-
label: t(
|
|
359
|
-
value:
|
|
386
|
+
/* @__PURE__ */ N(R, {
|
|
387
|
+
label: t(L, "assethandler.assets.detail.financial.purchaseDate", "Purchase Date"),
|
|
388
|
+
value: U.purchaseDate
|
|
360
389
|
}),
|
|
361
|
-
/* @__PURE__ */
|
|
362
|
-
label: t(
|
|
363
|
-
value:
|
|
390
|
+
/* @__PURE__ */ N(R, {
|
|
391
|
+
label: t(L, "assethandler.assets.detail.financial.warrantyExpiry", "Warranty Expiry"),
|
|
392
|
+
value: U.warrantyExpiry
|
|
364
393
|
}),
|
|
365
|
-
/* @__PURE__ */
|
|
366
|
-
label: t(
|
|
367
|
-
value:
|
|
394
|
+
/* @__PURE__ */ N(R, {
|
|
395
|
+
label: t(L, "assethandler.assets.detail.financial.vendor", "Vendor"),
|
|
396
|
+
value: U.vendor
|
|
368
397
|
})
|
|
369
398
|
]
|
|
370
399
|
}) })] })
|
|
@@ -374,19 +403,19 @@ function M() {
|
|
|
374
403
|
]
|
|
375
404
|
});
|
|
376
405
|
}
|
|
377
|
-
function
|
|
378
|
-
return /* @__PURE__ */
|
|
406
|
+
function R({ label: e, value: t, icon: n }) {
|
|
407
|
+
return /* @__PURE__ */ P("div", {
|
|
379
408
|
className: "flex items-start justify-between gap-4",
|
|
380
|
-
children: [/* @__PURE__ */
|
|
409
|
+
children: [/* @__PURE__ */ P("dt", {
|
|
381
410
|
className: "text-text-secondary flex items-center gap-1.5 shrink-0",
|
|
382
411
|
children: [n, e]
|
|
383
|
-
}), /* @__PURE__ */
|
|
412
|
+
}), /* @__PURE__ */ N("dd", {
|
|
384
413
|
className: "font-medium text-right capitalize",
|
|
385
414
|
children: t
|
|
386
415
|
})]
|
|
387
416
|
});
|
|
388
417
|
}
|
|
389
418
|
//#endregion
|
|
390
|
-
export {
|
|
419
|
+
export { L as AssetsAssetDetailPage };
|
|
391
420
|
|
|
392
421
|
//# sourceMappingURL=AssetsAssetDetailPage.js.map
|