@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,196 +1,202 @@
|
|
|
1
1
|
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
2
|
import { useState as t } from "react";
|
|
3
3
|
import { ArrowLeft as n, Save as r, X as i } from "lucide-react";
|
|
4
|
-
import {
|
|
5
|
-
import { Button as
|
|
6
|
-
import { jsx as
|
|
4
|
+
import { useNavigate as a, useParams as o } from "react-router-dom";
|
|
5
|
+
import { Button as s, Card as c, CardContent as l, CardHeader as u, CardTitle as d, EmphasisPanel as f, GradientText as p, IllustratedEmptyState as m, Input as h, Label as g, PagePurpose as _, Select as v, SelectContent as y, SelectItem as b, SelectTrigger as x, SelectValue as S, Textarea as C } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
7
7
|
//#region src/assethandler/pages/AssetsAssetEditPage.tsx
|
|
8
|
-
function
|
|
9
|
-
let { assetId:
|
|
10
|
-
name:
|
|
11
|
-
description:
|
|
12
|
-
category:
|
|
13
|
-
status:
|
|
14
|
-
condition:
|
|
15
|
-
serialNumber:
|
|
16
|
-
assetTag:
|
|
17
|
-
value: String(
|
|
18
|
-
currentValue: String(
|
|
19
|
-
location:
|
|
20
|
-
department:
|
|
21
|
-
assignedTo:
|
|
22
|
-
vendor:
|
|
23
|
-
model:
|
|
24
|
-
manufacturer:
|
|
25
|
-
depreciationRate: String(
|
|
26
|
-
purchaseDate:
|
|
27
|
-
warrantyExpiry:
|
|
28
|
-
tags:
|
|
29
|
-
}),
|
|
8
|
+
function E() {
|
|
9
|
+
let E = a(), { assetId: D } = o(), { assets: O } = e(), k = O.find((e) => e.id === D || e.assetTag === D) ?? O[0], [A, j] = t({
|
|
10
|
+
name: k?.name || "",
|
|
11
|
+
description: k?.description || "",
|
|
12
|
+
category: k?.category || "it_hardware",
|
|
13
|
+
status: k?.status || "active",
|
|
14
|
+
condition: k?.condition || "good",
|
|
15
|
+
serialNumber: k?.serialNumber || "",
|
|
16
|
+
assetTag: k?.assetTag || "",
|
|
17
|
+
value: String(k?.value || ""),
|
|
18
|
+
currentValue: String(k?.currentValue || ""),
|
|
19
|
+
location: k?.location || "",
|
|
20
|
+
department: k?.department || "",
|
|
21
|
+
assignedTo: k?.assignedTo || "",
|
|
22
|
+
vendor: k?.vendor || "",
|
|
23
|
+
model: k?.model || "",
|
|
24
|
+
manufacturer: k?.manufacturer || "",
|
|
25
|
+
depreciationRate: String(k?.depreciationRate || "20"),
|
|
26
|
+
purchaseDate: k?.purchaseDate || "",
|
|
27
|
+
warrantyExpiry: k?.warrantyExpiry || "",
|
|
28
|
+
tags: k?.tags.join(", ") || ""
|
|
29
|
+
}), M = (e, t) => j((n) => ({
|
|
30
30
|
...n,
|
|
31
31
|
[e]: t
|
|
32
32
|
}));
|
|
33
|
-
return
|
|
33
|
+
return k ? /* @__PURE__ */ T("div", {
|
|
34
34
|
className: "space-y-6 p-6 max-w-4xl",
|
|
35
35
|
children: [
|
|
36
|
-
/* @__PURE__ */
|
|
36
|
+
/* @__PURE__ */ T("div", {
|
|
37
37
|
className: "flex items-center justify-between",
|
|
38
|
-
children: [/* @__PURE__ */
|
|
38
|
+
children: [/* @__PURE__ */ T("div", {
|
|
39
39
|
className: "flex items-center gap-4",
|
|
40
|
-
children: [/* @__PURE__ */
|
|
40
|
+
children: [/* @__PURE__ */ w(s, {
|
|
41
41
|
variant: "ghost",
|
|
42
42
|
size: "icon",
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
onClick: () => E(`/assets/${k.id}`),
|
|
44
|
+
children: /* @__PURE__ */ w(n, { className: "h-4 w-4" })
|
|
45
|
+
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("h1", {
|
|
45
46
|
className: "text-2xl font-bold",
|
|
46
|
-
children: /* @__PURE__ */
|
|
47
|
-
}), /* @__PURE__ */
|
|
47
|
+
children: /* @__PURE__ */ w(p, { children: "Edit Asset" })
|
|
48
|
+
}), /* @__PURE__ */ T("p", {
|
|
48
49
|
className: "text-sm text-text-secondary",
|
|
49
50
|
children: [
|
|
50
|
-
|
|
51
|
+
k.assetTag,
|
|
51
52
|
" · ",
|
|
52
|
-
|
|
53
|
+
k.name
|
|
53
54
|
]
|
|
54
55
|
})] })]
|
|
55
|
-
}), /* @__PURE__ */
|
|
56
|
+
}), /* @__PURE__ */ T("div", {
|
|
56
57
|
className: "flex gap-2",
|
|
57
|
-
children: [/* @__PURE__ */
|
|
58
|
+
children: [/* @__PURE__ */ T(s, {
|
|
58
59
|
variant: "outline",
|
|
59
60
|
size: "sm",
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
onClick: () => E(`/assets/${k.id}`),
|
|
62
|
+
children: [/* @__PURE__ */ w(i, { className: "mr-2 h-4 w-4" }), "Cancel"]
|
|
63
|
+
}), /* @__PURE__ */ T(s, {
|
|
62
64
|
size: "sm",
|
|
63
|
-
children: [/* @__PURE__ */
|
|
65
|
+
children: [/* @__PURE__ */ w(r, { className: "mr-2 h-4 w-4" }), "Save Changes"]
|
|
64
66
|
})]
|
|
65
67
|
})]
|
|
66
68
|
}),
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
-
|
|
69
|
+
/* @__PURE__ */ w(_, { children: "Keep an asset's record accurate as it moves, changes hands or changes condition. Update its details, status and valuation here — accurate data keeps depreciation, maintenance planning and audit reporting trustworthy across the whole estate." }),
|
|
70
|
+
/* @__PURE__ */ T(f, { children: [/* @__PURE__ */ w(u, {
|
|
71
|
+
className: "px-0 pt-0",
|
|
72
|
+
children: /* @__PURE__ */ w(d, { children: "General Information" })
|
|
73
|
+
}), /* @__PURE__ */ T(l, {
|
|
74
|
+
className: "space-y-4 px-0 pb-0",
|
|
69
75
|
children: [
|
|
70
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ T("div", {
|
|
71
77
|
className: "grid gap-4 md:grid-cols-2",
|
|
72
|
-
children: [/* @__PURE__ */
|
|
78
|
+
children: [/* @__PURE__ */ T("div", {
|
|
73
79
|
className: "space-y-2",
|
|
74
|
-
children: [/* @__PURE__ */
|
|
75
|
-
value:
|
|
76
|
-
onChange: (e) =>
|
|
80
|
+
children: [/* @__PURE__ */ w(g, { children: "Asset Name" }), /* @__PURE__ */ w(h, {
|
|
81
|
+
value: A.name,
|
|
82
|
+
onChange: (e) => M("name", e.target.value)
|
|
77
83
|
})]
|
|
78
|
-
}), /* @__PURE__ */
|
|
84
|
+
}), /* @__PURE__ */ T("div", {
|
|
79
85
|
className: "space-y-2",
|
|
80
|
-
children: [/* @__PURE__ */
|
|
81
|
-
value:
|
|
82
|
-
onChange: (e) =>
|
|
86
|
+
children: [/* @__PURE__ */ w(g, { children: "Asset Tag" }), /* @__PURE__ */ w(h, {
|
|
87
|
+
value: A.assetTag,
|
|
88
|
+
onChange: (e) => M("assetTag", e.target.value)
|
|
83
89
|
})]
|
|
84
90
|
})]
|
|
85
91
|
}),
|
|
86
|
-
/* @__PURE__ */
|
|
92
|
+
/* @__PURE__ */ T("div", {
|
|
87
93
|
className: "space-y-2",
|
|
88
|
-
children: [/* @__PURE__ */
|
|
89
|
-
value:
|
|
90
|
-
onChange: (e) =>
|
|
94
|
+
children: [/* @__PURE__ */ w(g, { children: "Description" }), /* @__PURE__ */ w(C, {
|
|
95
|
+
value: A.description,
|
|
96
|
+
onChange: (e) => M("description", e.target.value),
|
|
91
97
|
rows: 3
|
|
92
98
|
})]
|
|
93
99
|
}),
|
|
94
|
-
/* @__PURE__ */
|
|
100
|
+
/* @__PURE__ */ T("div", {
|
|
95
101
|
className: "grid gap-4 md:grid-cols-3",
|
|
96
102
|
children: [
|
|
97
|
-
/* @__PURE__ */
|
|
103
|
+
/* @__PURE__ */ T("div", {
|
|
98
104
|
className: "space-y-2",
|
|
99
|
-
children: [/* @__PURE__ */
|
|
100
|
-
value:
|
|
101
|
-
onValueChange: (e) =>
|
|
102
|
-
children: [/* @__PURE__ */
|
|
103
|
-
/* @__PURE__ */ b
|
|
105
|
+
children: [/* @__PURE__ */ w(g, { children: "Category" }), /* @__PURE__ */ T(v, {
|
|
106
|
+
value: A.category,
|
|
107
|
+
onValueChange: (e) => M("category", e),
|
|
108
|
+
children: [/* @__PURE__ */ w(x, { children: /* @__PURE__ */ w(S, {}) }), /* @__PURE__ */ T(y, { children: [
|
|
109
|
+
/* @__PURE__ */ w(b, {
|
|
104
110
|
value: "electronics",
|
|
105
111
|
children: "Electronics"
|
|
106
112
|
}),
|
|
107
|
-
/* @__PURE__ */ b
|
|
113
|
+
/* @__PURE__ */ w(b, {
|
|
108
114
|
value: "it_hardware",
|
|
109
115
|
children: "IT Hardware"
|
|
110
116
|
}),
|
|
111
|
-
/* @__PURE__ */ b
|
|
117
|
+
/* @__PURE__ */ w(b, {
|
|
112
118
|
value: "furniture",
|
|
113
119
|
children: "Furniture"
|
|
114
120
|
}),
|
|
115
|
-
/* @__PURE__ */ b
|
|
121
|
+
/* @__PURE__ */ w(b, {
|
|
116
122
|
value: "vehicles",
|
|
117
123
|
children: "Vehicles"
|
|
118
124
|
}),
|
|
119
|
-
/* @__PURE__ */ b
|
|
125
|
+
/* @__PURE__ */ w(b, {
|
|
120
126
|
value: "equipment",
|
|
121
127
|
children: "Equipment"
|
|
122
128
|
}),
|
|
123
|
-
/* @__PURE__ */ b
|
|
129
|
+
/* @__PURE__ */ w(b, {
|
|
124
130
|
value: "software",
|
|
125
131
|
children: "Software"
|
|
126
132
|
}),
|
|
127
|
-
/* @__PURE__ */ b
|
|
133
|
+
/* @__PURE__ */ w(b, {
|
|
128
134
|
value: "networking",
|
|
129
135
|
children: "Networking"
|
|
130
136
|
}),
|
|
131
|
-
/* @__PURE__ */ b
|
|
137
|
+
/* @__PURE__ */ w(b, {
|
|
132
138
|
value: "servers",
|
|
133
139
|
children: "Servers"
|
|
134
140
|
})
|
|
135
141
|
] })]
|
|
136
142
|
})]
|
|
137
143
|
}),
|
|
138
|
-
/* @__PURE__ */
|
|
144
|
+
/* @__PURE__ */ T("div", {
|
|
139
145
|
className: "space-y-2",
|
|
140
|
-
children: [/* @__PURE__ */
|
|
141
|
-
value:
|
|
142
|
-
onValueChange: (e) =>
|
|
143
|
-
children: [/* @__PURE__ */
|
|
144
|
-
/* @__PURE__ */ b
|
|
146
|
+
children: [/* @__PURE__ */ w(g, { children: "Status" }), /* @__PURE__ */ T(v, {
|
|
147
|
+
value: A.status,
|
|
148
|
+
onValueChange: (e) => M("status", e),
|
|
149
|
+
children: [/* @__PURE__ */ w(x, { children: /* @__PURE__ */ w(S, {}) }), /* @__PURE__ */ T(y, { children: [
|
|
150
|
+
/* @__PURE__ */ w(b, {
|
|
145
151
|
value: "active",
|
|
146
152
|
children: "Active"
|
|
147
153
|
}),
|
|
148
|
-
/* @__PURE__ */ b
|
|
154
|
+
/* @__PURE__ */ w(b, {
|
|
149
155
|
value: "inactive",
|
|
150
156
|
children: "Inactive"
|
|
151
157
|
}),
|
|
152
|
-
/* @__PURE__ */ b
|
|
158
|
+
/* @__PURE__ */ w(b, {
|
|
153
159
|
value: "under_maintenance",
|
|
154
160
|
children: "Under Maintenance"
|
|
155
161
|
}),
|
|
156
|
-
/* @__PURE__ */ b
|
|
162
|
+
/* @__PURE__ */ w(b, {
|
|
157
163
|
value: "disposed",
|
|
158
164
|
children: "Disposed"
|
|
159
165
|
}),
|
|
160
|
-
/* @__PURE__ */ b
|
|
166
|
+
/* @__PURE__ */ w(b, {
|
|
161
167
|
value: "reserved",
|
|
162
168
|
children: "Reserved"
|
|
163
169
|
}),
|
|
164
|
-
/* @__PURE__ */ b
|
|
170
|
+
/* @__PURE__ */ w(b, {
|
|
165
171
|
value: "in_transit",
|
|
166
172
|
children: "In Transit"
|
|
167
173
|
})
|
|
168
174
|
] })]
|
|
169
175
|
})]
|
|
170
176
|
}),
|
|
171
|
-
/* @__PURE__ */
|
|
177
|
+
/* @__PURE__ */ T("div", {
|
|
172
178
|
className: "space-y-2",
|
|
173
|
-
children: [/* @__PURE__ */
|
|
174
|
-
value:
|
|
175
|
-
onValueChange: (e) =>
|
|
176
|
-
children: [/* @__PURE__ */
|
|
177
|
-
/* @__PURE__ */ b
|
|
179
|
+
children: [/* @__PURE__ */ w(g, { children: "Condition" }), /* @__PURE__ */ T(v, {
|
|
180
|
+
value: A.condition,
|
|
181
|
+
onValueChange: (e) => M("condition", e),
|
|
182
|
+
children: [/* @__PURE__ */ w(x, { children: /* @__PURE__ */ w(S, {}) }), /* @__PURE__ */ T(y, { children: [
|
|
183
|
+
/* @__PURE__ */ w(b, {
|
|
178
184
|
value: "excellent",
|
|
179
185
|
children: "Excellent"
|
|
180
186
|
}),
|
|
181
|
-
/* @__PURE__ */ b
|
|
187
|
+
/* @__PURE__ */ w(b, {
|
|
182
188
|
value: "good",
|
|
183
189
|
children: "Good"
|
|
184
190
|
}),
|
|
185
|
-
/* @__PURE__ */ b
|
|
191
|
+
/* @__PURE__ */ w(b, {
|
|
186
192
|
value: "fair",
|
|
187
193
|
children: "Fair"
|
|
188
194
|
}),
|
|
189
|
-
/* @__PURE__ */ b
|
|
195
|
+
/* @__PURE__ */ w(b, {
|
|
190
196
|
value: "poor",
|
|
191
197
|
children: "Poor"
|
|
192
198
|
}),
|
|
193
|
-
/* @__PURE__ */ b
|
|
199
|
+
/* @__PURE__ */ w(b, {
|
|
194
200
|
value: "non_functional",
|
|
195
201
|
children: "Non-functional"
|
|
196
202
|
})
|
|
@@ -201,141 +207,147 @@ function S() {
|
|
|
201
207
|
})
|
|
202
208
|
]
|
|
203
209
|
})] }),
|
|
204
|
-
/* @__PURE__ */
|
|
210
|
+
/* @__PURE__ */ T(c, { children: [/* @__PURE__ */ w(u, { children: /* @__PURE__ */ w(d, { children: "Identification" }) }), /* @__PURE__ */ w(l, {
|
|
205
211
|
className: "space-y-4",
|
|
206
|
-
children: /* @__PURE__ */
|
|
212
|
+
children: /* @__PURE__ */ T("div", {
|
|
207
213
|
className: "grid gap-4 md:grid-cols-2",
|
|
208
214
|
children: [
|
|
209
|
-
/* @__PURE__ */
|
|
215
|
+
/* @__PURE__ */ T("div", {
|
|
210
216
|
className: "space-y-2",
|
|
211
|
-
children: [/* @__PURE__ */
|
|
212
|
-
value:
|
|
213
|
-
onChange: (e) =>
|
|
217
|
+
children: [/* @__PURE__ */ w(g, { children: "Serial Number" }), /* @__PURE__ */ w(h, {
|
|
218
|
+
value: A.serialNumber,
|
|
219
|
+
onChange: (e) => M("serialNumber", e.target.value)
|
|
214
220
|
})]
|
|
215
221
|
}),
|
|
216
|
-
/* @__PURE__ */
|
|
222
|
+
/* @__PURE__ */ T("div", {
|
|
217
223
|
className: "space-y-2",
|
|
218
|
-
children: [/* @__PURE__ */
|
|
219
|
-
value:
|
|
220
|
-
onChange: (e) =>
|
|
224
|
+
children: [/* @__PURE__ */ w(g, { children: "Vendor" }), /* @__PURE__ */ w(h, {
|
|
225
|
+
value: A.vendor,
|
|
226
|
+
onChange: (e) => M("vendor", e.target.value)
|
|
221
227
|
})]
|
|
222
228
|
}),
|
|
223
|
-
/* @__PURE__ */
|
|
229
|
+
/* @__PURE__ */ T("div", {
|
|
224
230
|
className: "space-y-2",
|
|
225
|
-
children: [/* @__PURE__ */
|
|
226
|
-
value:
|
|
227
|
-
onChange: (e) =>
|
|
231
|
+
children: [/* @__PURE__ */ w(g, { children: "Manufacturer" }), /* @__PURE__ */ w(h, {
|
|
232
|
+
value: A.manufacturer,
|
|
233
|
+
onChange: (e) => M("manufacturer", e.target.value)
|
|
228
234
|
})]
|
|
229
235
|
}),
|
|
230
|
-
/* @__PURE__ */
|
|
236
|
+
/* @__PURE__ */ T("div", {
|
|
231
237
|
className: "space-y-2",
|
|
232
|
-
children: [/* @__PURE__ */
|
|
233
|
-
value:
|
|
234
|
-
onChange: (e) =>
|
|
238
|
+
children: [/* @__PURE__ */ w(g, { children: "Model" }), /* @__PURE__ */ w(h, {
|
|
239
|
+
value: A.model,
|
|
240
|
+
onChange: (e) => M("model", e.target.value)
|
|
235
241
|
})]
|
|
236
242
|
})
|
|
237
243
|
]
|
|
238
244
|
})
|
|
239
245
|
})] }),
|
|
240
|
-
/* @__PURE__ */
|
|
246
|
+
/* @__PURE__ */ T(c, { children: [/* @__PURE__ */ w(u, { children: /* @__PURE__ */ w(d, { children: "Financial" }) }), /* @__PURE__ */ T(l, {
|
|
241
247
|
className: "space-y-4",
|
|
242
|
-
children: [/* @__PURE__ */
|
|
248
|
+
children: [/* @__PURE__ */ T("div", {
|
|
243
249
|
className: "grid gap-4 md:grid-cols-2",
|
|
244
250
|
children: [
|
|
245
|
-
/* @__PURE__ */
|
|
251
|
+
/* @__PURE__ */ T("div", {
|
|
246
252
|
className: "space-y-2",
|
|
247
|
-
children: [/* @__PURE__ */
|
|
253
|
+
children: [/* @__PURE__ */ w(g, { children: "Original Value ($)" }), /* @__PURE__ */ w(h, {
|
|
248
254
|
type: "number",
|
|
249
|
-
value:
|
|
250
|
-
onChange: (e) =>
|
|
255
|
+
value: A.value,
|
|
256
|
+
onChange: (e) => M("value", e.target.value)
|
|
251
257
|
})]
|
|
252
258
|
}),
|
|
253
|
-
/* @__PURE__ */
|
|
259
|
+
/* @__PURE__ */ T("div", {
|
|
254
260
|
className: "space-y-2",
|
|
255
|
-
children: [/* @__PURE__ */
|
|
261
|
+
children: [/* @__PURE__ */ w(g, { children: "Current Value ($)" }), /* @__PURE__ */ w(h, {
|
|
256
262
|
type: "number",
|
|
257
|
-
value:
|
|
258
|
-
onChange: (e) =>
|
|
263
|
+
value: A.currentValue,
|
|
264
|
+
onChange: (e) => M("currentValue", e.target.value)
|
|
259
265
|
})]
|
|
260
266
|
}),
|
|
261
|
-
/* @__PURE__ */
|
|
267
|
+
/* @__PURE__ */ T("div", {
|
|
262
268
|
className: "space-y-2",
|
|
263
|
-
children: [/* @__PURE__ */
|
|
269
|
+
children: [/* @__PURE__ */ w(g, { children: "Depreciation Rate (%)" }), /* @__PURE__ */ w(h, {
|
|
264
270
|
type: "number",
|
|
265
|
-
value:
|
|
266
|
-
onChange: (e) =>
|
|
271
|
+
value: A.depreciationRate,
|
|
272
|
+
onChange: (e) => M("depreciationRate", e.target.value)
|
|
267
273
|
})]
|
|
268
274
|
}),
|
|
269
|
-
/* @__PURE__ */
|
|
275
|
+
/* @__PURE__ */ T("div", {
|
|
270
276
|
className: "space-y-2",
|
|
271
|
-
children: [/* @__PURE__ */
|
|
277
|
+
children: [/* @__PURE__ */ w(g, { children: "Purchase Date" }), /* @__PURE__ */ w(h, {
|
|
272
278
|
type: "date",
|
|
273
|
-
value:
|
|
274
|
-
onChange: (e) =>
|
|
279
|
+
value: A.purchaseDate,
|
|
280
|
+
onChange: (e) => M("purchaseDate", e.target.value)
|
|
275
281
|
})]
|
|
276
282
|
})
|
|
277
283
|
]
|
|
278
|
-
}), /* @__PURE__ */
|
|
284
|
+
}), /* @__PURE__ */ T("div", {
|
|
279
285
|
className: "space-y-2",
|
|
280
|
-
children: [/* @__PURE__ */
|
|
286
|
+
children: [/* @__PURE__ */ w(g, { children: "Warranty Expiry" }), /* @__PURE__ */ w(h, {
|
|
281
287
|
type: "date",
|
|
282
|
-
value:
|
|
283
|
-
onChange: (e) =>
|
|
288
|
+
value: A.warrantyExpiry,
|
|
289
|
+
onChange: (e) => M("warrantyExpiry", e.target.value)
|
|
284
290
|
})]
|
|
285
291
|
})]
|
|
286
292
|
})] }),
|
|
287
|
-
/* @__PURE__ */
|
|
293
|
+
/* @__PURE__ */ T(c, { children: [/* @__PURE__ */ w(u, { children: /* @__PURE__ */ w(d, { children: "Assignment" }) }), /* @__PURE__ */ T(l, {
|
|
288
294
|
className: "space-y-4",
|
|
289
295
|
children: [
|
|
290
|
-
/* @__PURE__ */
|
|
296
|
+
/* @__PURE__ */ T("div", {
|
|
291
297
|
className: "grid gap-4 md:grid-cols-2",
|
|
292
|
-
children: [/* @__PURE__ */
|
|
298
|
+
children: [/* @__PURE__ */ T("div", {
|
|
293
299
|
className: "space-y-2",
|
|
294
|
-
children: [/* @__PURE__ */
|
|
295
|
-
value:
|
|
296
|
-
onChange: (e) =>
|
|
300
|
+
children: [/* @__PURE__ */ w(g, { children: "Assigned To" }), /* @__PURE__ */ w(h, {
|
|
301
|
+
value: A.assignedTo,
|
|
302
|
+
onChange: (e) => M("assignedTo", e.target.value)
|
|
297
303
|
})]
|
|
298
|
-
}), /* @__PURE__ */
|
|
304
|
+
}), /* @__PURE__ */ T("div", {
|
|
299
305
|
className: "space-y-2",
|
|
300
|
-
children: [/* @__PURE__ */
|
|
301
|
-
value:
|
|
302
|
-
onChange: (e) =>
|
|
306
|
+
children: [/* @__PURE__ */ w(g, { children: "Department" }), /* @__PURE__ */ w(h, {
|
|
307
|
+
value: A.department,
|
|
308
|
+
onChange: (e) => M("department", e.target.value)
|
|
303
309
|
})]
|
|
304
310
|
})]
|
|
305
311
|
}),
|
|
306
|
-
/* @__PURE__ */
|
|
312
|
+
/* @__PURE__ */ T("div", {
|
|
307
313
|
className: "space-y-2",
|
|
308
|
-
children: [/* @__PURE__ */
|
|
309
|
-
value:
|
|
310
|
-
onChange: (e) =>
|
|
314
|
+
children: [/* @__PURE__ */ w(g, { children: "Location" }), /* @__PURE__ */ w(h, {
|
|
315
|
+
value: A.location,
|
|
316
|
+
onChange: (e) => M("location", e.target.value)
|
|
311
317
|
})]
|
|
312
318
|
}),
|
|
313
|
-
/* @__PURE__ */
|
|
319
|
+
/* @__PURE__ */ T("div", {
|
|
314
320
|
className: "space-y-2",
|
|
315
|
-
children: [/* @__PURE__ */
|
|
316
|
-
value:
|
|
317
|
-
onChange: (e) =>
|
|
321
|
+
children: [/* @__PURE__ */ w(g, { children: "Tags (comma-separated)" }), /* @__PURE__ */ w(h, {
|
|
322
|
+
value: A.tags,
|
|
323
|
+
onChange: (e) => M("tags", e.target.value)
|
|
318
324
|
})]
|
|
319
325
|
})
|
|
320
326
|
]
|
|
321
327
|
})] }),
|
|
322
|
-
/* @__PURE__ */
|
|
328
|
+
/* @__PURE__ */ T("div", {
|
|
323
329
|
className: "flex justify-end gap-2",
|
|
324
|
-
children: [/* @__PURE__ */
|
|
330
|
+
children: [/* @__PURE__ */ w(s, {
|
|
325
331
|
variant: "outline",
|
|
326
332
|
children: "Cancel"
|
|
327
|
-
}), /* @__PURE__ */
|
|
333
|
+
}), /* @__PURE__ */ T(s, { children: [/* @__PURE__ */ w(r, { className: "mr-2 h-4 w-4" }), "Save Changes"] })]
|
|
328
334
|
})
|
|
329
335
|
]
|
|
330
|
-
}) : /* @__PURE__ */
|
|
336
|
+
}) : /* @__PURE__ */ w("div", {
|
|
331
337
|
className: "p-6",
|
|
332
|
-
children: /* @__PURE__ */
|
|
333
|
-
|
|
334
|
-
|
|
338
|
+
children: /* @__PURE__ */ w(m, {
|
|
339
|
+
illustration: "empty-search",
|
|
340
|
+
title: "Asset not found",
|
|
341
|
+
description: "This asset may have been disposed or removed. Return to the inventory to find it.",
|
|
342
|
+
action: /* @__PURE__ */ w(s, {
|
|
343
|
+
size: "sm",
|
|
344
|
+
onClick: () => E("/assets/asset-list"),
|
|
345
|
+
children: "Back to inventory"
|
|
346
|
+
})
|
|
335
347
|
})
|
|
336
348
|
});
|
|
337
349
|
}
|
|
338
350
|
//#endregion
|
|
339
|
-
export {
|
|
351
|
+
export { E as AssetsAssetEditPage };
|
|
340
352
|
|
|
341
353
|
//# sourceMappingURL=AssetsAssetEditPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssetsAssetEditPage.js","names":[],"sources":["../../../src/assethandler/pages/AssetsAssetEditPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Textarea,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, Save, X } from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function AssetsAssetEditPage() {\n const { assetId } = useParams<{ assetId: string }>();\n const { assets } = useAssetHandlerStore();\n const asset =\n assets.find((item) => item.id === assetId || item.assetTag === assetId) ?? assets[0];\n\n const [formData, setFormData] = useState({\n name: asset?.name || '',\n description: asset?.description || '',\n category: asset?.category || 'it_hardware',\n status: asset?.status || 'active',\n condition: asset?.condition || 'good',\n serialNumber: asset?.serialNumber || '',\n assetTag: asset?.assetTag || '',\n value: String(asset?.value || ''),\n currentValue: String(asset?.currentValue || ''),\n location: asset?.location || '',\n department: asset?.department || '',\n assignedTo: asset?.assignedTo || '',\n vendor: asset?.vendor || '',\n model: asset?.model || '',\n manufacturer: asset?.manufacturer || '',\n depreciationRate: String(asset?.depreciationRate || '20'),\n purchaseDate: asset?.purchaseDate || '',\n warrantyExpiry: asset?.warrantyExpiry || '',\n tags: asset?.tags.join(', ') || '',\n });\n\n const handleChange = (field: string, value: string) =>\n setFormData((prev) => ({ ...prev, [field]: value }));\n\n if (!asset)\n return (\n <div className=\"p-6\">\n <p className=\"text-text-secondary\">Asset not found.</p>\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-bold\">\n <GradientText>Edit Asset</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {asset.assetTag} · {asset.name}\n </p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <X className=\"mr-2 h-4 w-4\" />\n Cancel\n </Button>\n <Button size=\"sm\">\n <Save className=\"mr-2 h-4 w-4\" />\n Save Changes\n </Button>\n </div>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>General Information</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Asset Name</Label>\n <Input value={formData.name} onChange={(e) => handleChange('name', e.target.value)} />\n </div>\n <div className=\"space-y-2\">\n <Label>Asset Tag</Label>\n <Input\n value={formData.assetTag}\n onChange={(e) => handleChange('assetTag', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Description</Label>\n <Textarea\n value={formData.description}\n onChange={(e) => handleChange('description', e.target.value)}\n rows={3}\n />\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <div className=\"space-y-2\">\n <Label>Category</Label>\n <Select value={formData.category} onValueChange={(v) => handleChange('category', v)}>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"electronics\">Electronics</SelectItem>\n <SelectItem value=\"it_hardware\">IT Hardware</SelectItem>\n <SelectItem value=\"furniture\">Furniture</SelectItem>\n <SelectItem value=\"vehicles\">Vehicles</SelectItem>\n <SelectItem value=\"equipment\">Equipment</SelectItem>\n <SelectItem value=\"software\">Software</SelectItem>\n <SelectItem value=\"networking\">Networking</SelectItem>\n <SelectItem value=\"servers\">Servers</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label>Status</Label>\n <Select value={formData.status} onValueChange={(v) => handleChange('status', v)}>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"active\">Active</SelectItem>\n <SelectItem value=\"inactive\">Inactive</SelectItem>\n <SelectItem value=\"under_maintenance\">Under Maintenance</SelectItem>\n <SelectItem value=\"disposed\">Disposed</SelectItem>\n <SelectItem value=\"reserved\">Reserved</SelectItem>\n <SelectItem value=\"in_transit\">In Transit</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label>Condition</Label>\n <Select\n value={formData.condition}\n onValueChange={(v) => handleChange('condition', v)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"excellent\">Excellent</SelectItem>\n <SelectItem value=\"good\">Good</SelectItem>\n <SelectItem value=\"fair\">Fair</SelectItem>\n <SelectItem value=\"poor\">Poor</SelectItem>\n <SelectItem value=\"non_functional\">Non-functional</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Identification</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Serial Number</Label>\n <Input\n value={formData.serialNumber}\n onChange={(e) => handleChange('serialNumber', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Vendor</Label>\n <Input\n value={formData.vendor}\n onChange={(e) => handleChange('vendor', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Manufacturer</Label>\n <Input\n value={formData.manufacturer}\n onChange={(e) => handleChange('manufacturer', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Model</Label>\n <Input\n value={formData.model}\n onChange={(e) => handleChange('model', e.target.value)}\n />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Financial</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Original Value ($)</Label>\n <Input\n type=\"number\"\n value={formData.value}\n onChange={(e) => handleChange('value', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Current Value ($)</Label>\n <Input\n type=\"number\"\n value={formData.currentValue}\n onChange={(e) => handleChange('currentValue', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Depreciation Rate (%)</Label>\n <Input\n type=\"number\"\n value={formData.depreciationRate}\n onChange={(e) => handleChange('depreciationRate', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Purchase Date</Label>\n <Input\n type=\"date\"\n value={formData.purchaseDate}\n onChange={(e) => handleChange('purchaseDate', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Warranty Expiry</Label>\n <Input\n type=\"date\"\n value={formData.warrantyExpiry}\n onChange={(e) => handleChange('warrantyExpiry', e.target.value)}\n />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Assignment</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Assigned To</Label>\n <Input\n value={formData.assignedTo}\n onChange={(e) => handleChange('assignedTo', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Department</Label>\n <Input\n value={formData.department}\n onChange={(e) => handleChange('department', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Location</Label>\n <Input\n value={formData.location}\n onChange={(e) => handleChange('location', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Tags (comma-separated)</Label>\n <Input value={formData.tags} onChange={(e) => handleChange('tags', e.target.value)} />\n </div>\n </CardContent>\n </Card>\n\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\">Cancel</Button>\n <Button>\n <Save className=\"mr-2 h-4 w-4\" />\n Save Changes\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AssetsAssetEditPage.js","names":[],"sources":["../../../src/assethandler/pages/AssetsAssetEditPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n Label,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Textarea,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, Save, X } from 'lucide-react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function AssetsAssetEditPage() {\n const navigate = useNavigate();\n const { assetId } = useParams<{ assetId: string }>();\n const { assets } = useAssetHandlerStore();\n const asset =\n assets.find((item) => item.id === assetId || item.assetTag === assetId) ?? assets[0];\n\n const [formData, setFormData] = useState({\n name: asset?.name || '',\n description: asset?.description || '',\n category: asset?.category || 'it_hardware',\n status: asset?.status || 'active',\n condition: asset?.condition || 'good',\n serialNumber: asset?.serialNumber || '',\n assetTag: asset?.assetTag || '',\n value: String(asset?.value || ''),\n currentValue: String(asset?.currentValue || ''),\n location: asset?.location || '',\n department: asset?.department || '',\n assignedTo: asset?.assignedTo || '',\n vendor: asset?.vendor || '',\n model: asset?.model || '',\n manufacturer: asset?.manufacturer || '',\n depreciationRate: String(asset?.depreciationRate || '20'),\n purchaseDate: asset?.purchaseDate || '',\n warrantyExpiry: asset?.warrantyExpiry || '',\n tags: asset?.tags.join(', ') || '',\n });\n\n const handleChange = (field: string, value: string) =>\n setFormData((prev) => ({ ...prev, [field]: value }));\n\n if (!asset)\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Asset not found\"\n description=\"This asset may have been disposed or removed. Return to the inventory to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/assets/asset-list')}>\n Back to inventory\n </Button>\n }\n />\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6 max-w-4xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\" onClick={() => navigate(`/assets/${asset.id}`)}>\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-bold\">\n <GradientText>Edit Asset</GradientText>\n </h1>\n <p className=\"text-sm text-text-secondary\">\n {asset.assetTag} · {asset.name}\n </p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => navigate(`/assets/${asset.id}`)}>\n <X className=\"mr-2 h-4 w-4\" />\n Cancel\n </Button>\n <Button size=\"sm\">\n <Save className=\"mr-2 h-4 w-4\" />\n Save Changes\n </Button>\n </div>\n </div>\n\n <PagePurpose>\n Keep an asset's record accurate as it moves, changes hands or changes condition. Update its\n details, status and valuation here — accurate data keeps depreciation, maintenance planning\n and audit reporting trustworthy across the whole estate.\n </PagePurpose>\n\n <EmphasisPanel>\n <CardHeader className=\"px-0 pt-0\">\n <CardTitle>General Information</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4 px-0 pb-0\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Asset Name</Label>\n <Input value={formData.name} onChange={(e) => handleChange('name', e.target.value)} />\n </div>\n <div className=\"space-y-2\">\n <Label>Asset Tag</Label>\n <Input\n value={formData.assetTag}\n onChange={(e) => handleChange('assetTag', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Description</Label>\n <Textarea\n value={formData.description}\n onChange={(e) => handleChange('description', e.target.value)}\n rows={3}\n />\n </div>\n <div className=\"grid gap-4 md:grid-cols-3\">\n <div className=\"space-y-2\">\n <Label>Category</Label>\n <Select value={formData.category} onValueChange={(v) => handleChange('category', v)}>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"electronics\">Electronics</SelectItem>\n <SelectItem value=\"it_hardware\">IT Hardware</SelectItem>\n <SelectItem value=\"furniture\">Furniture</SelectItem>\n <SelectItem value=\"vehicles\">Vehicles</SelectItem>\n <SelectItem value=\"equipment\">Equipment</SelectItem>\n <SelectItem value=\"software\">Software</SelectItem>\n <SelectItem value=\"networking\">Networking</SelectItem>\n <SelectItem value=\"servers\">Servers</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label>Status</Label>\n <Select value={formData.status} onValueChange={(v) => handleChange('status', v)}>\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"active\">Active</SelectItem>\n <SelectItem value=\"inactive\">Inactive</SelectItem>\n <SelectItem value=\"under_maintenance\">Under Maintenance</SelectItem>\n <SelectItem value=\"disposed\">Disposed</SelectItem>\n <SelectItem value=\"reserved\">Reserved</SelectItem>\n <SelectItem value=\"in_transit\">In Transit</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label>Condition</Label>\n <Select\n value={formData.condition}\n onValueChange={(v) => handleChange('condition', v)}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"excellent\">Excellent</SelectItem>\n <SelectItem value=\"good\">Good</SelectItem>\n <SelectItem value=\"fair\">Fair</SelectItem>\n <SelectItem value=\"poor\">Poor</SelectItem>\n <SelectItem value=\"non_functional\">Non-functional</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <CardTitle>Identification</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Serial Number</Label>\n <Input\n value={formData.serialNumber}\n onChange={(e) => handleChange('serialNumber', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Vendor</Label>\n <Input\n value={formData.vendor}\n onChange={(e) => handleChange('vendor', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Manufacturer</Label>\n <Input\n value={formData.manufacturer}\n onChange={(e) => handleChange('manufacturer', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Model</Label>\n <Input\n value={formData.model}\n onChange={(e) => handleChange('model', e.target.value)}\n />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Financial</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Original Value ($)</Label>\n <Input\n type=\"number\"\n value={formData.value}\n onChange={(e) => handleChange('value', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Current Value ($)</Label>\n <Input\n type=\"number\"\n value={formData.currentValue}\n onChange={(e) => handleChange('currentValue', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Depreciation Rate (%)</Label>\n <Input\n type=\"number\"\n value={formData.depreciationRate}\n onChange={(e) => handleChange('depreciationRate', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Purchase Date</Label>\n <Input\n type=\"date\"\n value={formData.purchaseDate}\n onChange={(e) => handleChange('purchaseDate', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Warranty Expiry</Label>\n <Input\n type=\"date\"\n value={formData.warrantyExpiry}\n onChange={(e) => handleChange('warrantyExpiry', e.target.value)}\n />\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Assignment</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid gap-4 md:grid-cols-2\">\n <div className=\"space-y-2\">\n <Label>Assigned To</Label>\n <Input\n value={formData.assignedTo}\n onChange={(e) => handleChange('assignedTo', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Department</Label>\n <Input\n value={formData.department}\n onChange={(e) => handleChange('department', e.target.value)}\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label>Location</Label>\n <Input\n value={formData.location}\n onChange={(e) => handleChange('location', e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Tags (comma-separated)</Label>\n <Input value={formData.tags} onChange={(e) => handleChange('tags', e.target.value)} />\n </div>\n </CardContent>\n </Card>\n\n <div className=\"flex justify-end gap-2\">\n <Button variant=\"outline\">Cancel</Button>\n <Button>\n <Save className=\"mr-2 h-4 w-4\" />\n Save Changes\n </Button>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|