@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,23 +1,23 @@
|
|
|
1
1
|
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
2
|
import { ArrowLeft as t, Building as n, Calendar as r, CheckCircle2 as i, DollarSign as a, FileText as o, Package as s, Printer as c, User as l, XCircle as u } from "lucide-react";
|
|
3
|
-
import {
|
|
4
|
-
import { Badge as
|
|
5
|
-
import { jsx as
|
|
3
|
+
import { useNavigate as d, useParams as f } from "react-router-dom";
|
|
4
|
+
import { Badge as p, Button as m, Card as h, CardContent as g, CardHeader as _, CardTitle as v, EmphasisPanel as y, GradientText as b, IllustratedEmptyState as x, PagePurpose as S, Separator as C } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as w, jsxs as T } from "react/jsx-runtime";
|
|
6
6
|
//#region src/assethandler/pages/TransactionsTransactionDetailPage.tsx
|
|
7
|
-
var
|
|
7
|
+
var E = {
|
|
8
8
|
pending: "outline",
|
|
9
9
|
approved: "default",
|
|
10
10
|
completed: "secondary",
|
|
11
11
|
rejected: "destructive",
|
|
12
12
|
cancelled: "outline"
|
|
13
|
-
},
|
|
13
|
+
}, D = {
|
|
14
14
|
purchase: "default",
|
|
15
15
|
lease: "secondary",
|
|
16
16
|
disposal: "destructive",
|
|
17
17
|
transfer: "outline",
|
|
18
18
|
maintenance: "secondary",
|
|
19
19
|
depreciation: "outline"
|
|
20
|
-
},
|
|
20
|
+
}, O = [
|
|
21
21
|
{
|
|
22
22
|
status: "Created",
|
|
23
23
|
date: "2026-01-15T10:30:00Z",
|
|
@@ -39,243 +39,260 @@ var S = {
|
|
|
39
39
|
actor: "Finance System"
|
|
40
40
|
}
|
|
41
41
|
];
|
|
42
|
-
function
|
|
43
|
-
let { transactionId:
|
|
44
|
-
return
|
|
42
|
+
function k() {
|
|
43
|
+
let k = d(), { transactionId: A } = f(), { transactions: j } = e(), M = j.find((e) => e.id === A) ?? j[0];
|
|
44
|
+
return M ? /* @__PURE__ */ T("div", {
|
|
45
45
|
className: "space-y-6 p-6 max-w-5xl",
|
|
46
|
-
children: [
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
46
|
+
children: [
|
|
47
|
+
/* @__PURE__ */ T("div", {
|
|
48
|
+
className: "flex items-center justify-between",
|
|
49
|
+
children: [/* @__PURE__ */ T("div", {
|
|
50
|
+
className: "flex items-center gap-3",
|
|
51
|
+
children: [/* @__PURE__ */ w(m, {
|
|
52
|
+
variant: "outline",
|
|
53
|
+
size: "sm",
|
|
54
|
+
onClick: () => k("/transactions/transaction-list"),
|
|
55
|
+
children: /* @__PURE__ */ w(t, { className: "h-4 w-4" })
|
|
56
|
+
}), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ T("div", {
|
|
57
|
+
className: "flex items-center gap-2",
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ w("h1", {
|
|
60
|
+
className: "text-2xl font-semibold",
|
|
61
|
+
children: /* @__PURE__ */ w(b, { children: M.id })
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ w(p, {
|
|
64
|
+
variant: E[M.status],
|
|
65
|
+
children: M.status
|
|
66
|
+
}),
|
|
67
|
+
/* @__PURE__ */ w(p, {
|
|
68
|
+
variant: D[M.type],
|
|
69
|
+
children: M.type
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
}), /* @__PURE__ */ w("p", {
|
|
73
|
+
className: "text-sm text-text-secondary",
|
|
74
|
+
children: M.description
|
|
75
|
+
})] })]
|
|
76
|
+
}), /* @__PURE__ */ T("div", {
|
|
77
|
+
className: "flex gap-2",
|
|
56
78
|
children: [
|
|
57
|
-
/* @__PURE__ */
|
|
58
|
-
|
|
59
|
-
|
|
79
|
+
/* @__PURE__ */ T(m, {
|
|
80
|
+
variant: "outline",
|
|
81
|
+
size: "sm",
|
|
82
|
+
children: [/* @__PURE__ */ w(c, { className: "mr-2 h-4 w-4" }), "Print"]
|
|
60
83
|
}),
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
variant:
|
|
63
|
-
|
|
84
|
+
/* @__PURE__ */ T(m, {
|
|
85
|
+
variant: "outline",
|
|
86
|
+
size: "sm",
|
|
87
|
+
children: [/* @__PURE__ */ w(i, { className: "mr-2 h-4 w-4" }), "Approve"]
|
|
64
88
|
}),
|
|
65
|
-
/* @__PURE__ */
|
|
66
|
-
variant:
|
|
67
|
-
|
|
89
|
+
/* @__PURE__ */ T(m, {
|
|
90
|
+
variant: "destructive",
|
|
91
|
+
size: "sm",
|
|
92
|
+
children: [/* @__PURE__ */ w(u, { className: "mr-2 h-4 w-4" }), "Reject"]
|
|
68
93
|
})
|
|
69
94
|
]
|
|
70
|
-
})
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
className: "flex gap-2",
|
|
95
|
+
})]
|
|
96
|
+
}),
|
|
97
|
+
/* @__PURE__ */ w(S, { children: "The complete record of a single financial transaction tied to your assets — what it was for, how much, against which budget and asset, and its approval timeline. Use this page to verify, approve or reject a transaction with a full audit trail." }),
|
|
98
|
+
/* @__PURE__ */ T("div", {
|
|
99
|
+
className: "grid gap-6 md:grid-cols-2",
|
|
76
100
|
children: [
|
|
77
|
-
/* @__PURE__ */
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
101
|
+
/* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ T(v, {
|
|
102
|
+
className: "flex items-center gap-2",
|
|
103
|
+
children: [/* @__PURE__ */ w(o, { className: "h-5 w-5" }), "Transaction Information"]
|
|
104
|
+
}) }), /* @__PURE__ */ T(g, {
|
|
105
|
+
className: "space-y-4",
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ T("div", {
|
|
108
|
+
className: "grid grid-cols-2 gap-4",
|
|
109
|
+
children: [
|
|
110
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
111
|
+
className: "text-sm text-text-secondary",
|
|
112
|
+
children: "Transaction ID"
|
|
113
|
+
}), /* @__PURE__ */ w("p", {
|
|
114
|
+
className: "font-mono font-medium",
|
|
115
|
+
children: M.id
|
|
116
|
+
})] }),
|
|
117
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
118
|
+
className: "text-sm text-text-secondary",
|
|
119
|
+
children: "Type"
|
|
120
|
+
}), /* @__PURE__ */ w(p, {
|
|
121
|
+
variant: D[M.type],
|
|
122
|
+
children: M.type
|
|
123
|
+
})] }),
|
|
124
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
125
|
+
className: "text-sm text-text-secondary",
|
|
126
|
+
children: "Category"
|
|
127
|
+
}), /* @__PURE__ */ w("p", {
|
|
128
|
+
className: "font-medium",
|
|
129
|
+
children: M.category
|
|
130
|
+
})] }),
|
|
131
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
132
|
+
className: "text-sm text-text-secondary",
|
|
133
|
+
children: "Status"
|
|
134
|
+
}), /* @__PURE__ */ w(p, {
|
|
135
|
+
variant: E[M.status],
|
|
136
|
+
children: M.status
|
|
137
|
+
})] })
|
|
138
|
+
]
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ w(C, {}),
|
|
141
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
142
|
+
className: "text-sm text-text-secondary",
|
|
143
|
+
children: "Description"
|
|
144
|
+
}), /* @__PURE__ */ w("p", {
|
|
145
|
+
className: "mt-1",
|
|
146
|
+
children: M.description
|
|
147
|
+
})] })
|
|
148
|
+
]
|
|
149
|
+
})] }),
|
|
150
|
+
/* @__PURE__ */ T(y, { children: [/* @__PURE__ */ w(_, {
|
|
151
|
+
className: "px-0 pt-0",
|
|
152
|
+
children: /* @__PURE__ */ T(v, {
|
|
153
|
+
className: "flex items-center gap-2",
|
|
154
|
+
children: [/* @__PURE__ */ w(a, { className: "h-5 w-5" }), "Financial Details"]
|
|
155
|
+
})
|
|
156
|
+
}), /* @__PURE__ */ T(g, {
|
|
157
|
+
className: "space-y-4 px-0 pb-0",
|
|
158
|
+
children: [
|
|
159
|
+
/* @__PURE__ */ T("div", {
|
|
160
|
+
className: "grid grid-cols-2 gap-4",
|
|
161
|
+
children: [
|
|
162
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
163
|
+
className: "text-sm text-text-secondary",
|
|
164
|
+
children: "Amount"
|
|
165
|
+
}), /* @__PURE__ */ w("p", {
|
|
166
|
+
className: `text-2xl font-bold ${M.amount < 0 ? "text-status-error-text" : ""}`,
|
|
167
|
+
children: ((e) => Math.abs(e).toLocaleString("en-US", {
|
|
168
|
+
style: "currency",
|
|
169
|
+
currency: "USD"
|
|
170
|
+
}))(M.amount)
|
|
171
|
+
})] }),
|
|
172
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
173
|
+
className: "text-sm text-text-secondary",
|
|
174
|
+
children: "Currency"
|
|
175
|
+
}), /* @__PURE__ */ w("p", {
|
|
176
|
+
className: "font-medium",
|
|
177
|
+
children: M.currency
|
|
178
|
+
})] }),
|
|
179
|
+
M.poNumber && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
180
|
+
className: "text-sm text-text-secondary",
|
|
181
|
+
children: "PO Number"
|
|
182
|
+
}), /* @__PURE__ */ w("p", {
|
|
183
|
+
className: "font-mono font-medium",
|
|
184
|
+
children: M.poNumber
|
|
185
|
+
})] }),
|
|
186
|
+
M.invoiceNumber && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
187
|
+
className: "text-sm text-text-secondary",
|
|
188
|
+
children: "Invoice Number"
|
|
189
|
+
}), /* @__PURE__ */ w("p", {
|
|
190
|
+
className: "font-mono font-medium",
|
|
191
|
+
children: M.invoiceNumber
|
|
192
|
+
})] })
|
|
193
|
+
]
|
|
194
|
+
}),
|
|
195
|
+
/* @__PURE__ */ w(C, {}),
|
|
196
|
+
/* @__PURE__ */ T("div", {
|
|
197
|
+
className: "grid grid-cols-2 gap-4",
|
|
198
|
+
children: [M.approvedBy && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
121
199
|
className: "text-sm text-text-secondary",
|
|
122
|
-
children: "
|
|
123
|
-
}), /* @__PURE__ */
|
|
124
|
-
className: "
|
|
125
|
-
children:
|
|
126
|
-
|
|
127
|
-
|
|
200
|
+
children: "Approved By"
|
|
201
|
+
}), /* @__PURE__ */ T("div", {
|
|
202
|
+
className: "flex items-center gap-1 mt-1",
|
|
203
|
+
children: [/* @__PURE__ */ w(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
|
|
204
|
+
className: "font-medium",
|
|
205
|
+
children: M.approvedBy
|
|
206
|
+
})]
|
|
207
|
+
})] }), /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
128
208
|
className: "text-sm text-text-secondary",
|
|
129
|
-
children: "
|
|
130
|
-
}), /* @__PURE__ */
|
|
131
|
-
|
|
132
|
-
children:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
/* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ x(_, {
|
|
147
|
-
className: "flex items-center gap-2",
|
|
148
|
-
children: [/* @__PURE__ */ b(a, { className: "h-5 w-5" }), "Financial Details"]
|
|
149
|
-
}) }), /* @__PURE__ */ x(h, {
|
|
150
|
-
className: "space-y-4",
|
|
151
|
-
children: [
|
|
152
|
-
/* @__PURE__ */ x("div", {
|
|
209
|
+
children: "Date"
|
|
210
|
+
}), /* @__PURE__ */ T("div", {
|
|
211
|
+
className: "flex items-center gap-1 mt-1",
|
|
212
|
+
children: [/* @__PURE__ */ w(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
|
|
213
|
+
className: "font-medium",
|
|
214
|
+
children: new Date(M.date).toLocaleDateString()
|
|
215
|
+
})]
|
|
216
|
+
})] })]
|
|
217
|
+
})
|
|
218
|
+
]
|
|
219
|
+
})] }),
|
|
220
|
+
/* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ T(v, {
|
|
221
|
+
className: "flex items-center gap-2",
|
|
222
|
+
children: [/* @__PURE__ */ w(s, { className: "h-5 w-5" }), "Related Items"]
|
|
223
|
+
}) }), /* @__PURE__ */ w(g, {
|
|
224
|
+
className: "space-y-4",
|
|
225
|
+
children: /* @__PURE__ */ T("div", {
|
|
153
226
|
className: "grid grid-cols-2 gap-4",
|
|
154
227
|
children: [
|
|
155
|
-
/* @__PURE__ */
|
|
228
|
+
M.vendor && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
156
229
|
className: "text-sm text-text-secondary",
|
|
157
|
-
children: "
|
|
158
|
-
}), /* @__PURE__ */
|
|
159
|
-
className: `text-2xl font-bold ${D.amount < 0 ? "text-status-error-text" : ""}`,
|
|
160
|
-
children: ((e) => Math.abs(e).toLocaleString("en-US", {
|
|
161
|
-
style: "currency",
|
|
162
|
-
currency: "USD"
|
|
163
|
-
}))(D.amount)
|
|
164
|
-
})] }),
|
|
165
|
-
/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
166
|
-
className: "text-sm text-text-secondary",
|
|
167
|
-
children: "Currency"
|
|
168
|
-
}), /* @__PURE__ */ b("p", {
|
|
230
|
+
children: "Vendor"
|
|
231
|
+
}), /* @__PURE__ */ w("p", {
|
|
169
232
|
className: "font-medium",
|
|
170
|
-
children:
|
|
233
|
+
children: M.vendor
|
|
171
234
|
})] }),
|
|
172
|
-
|
|
235
|
+
/* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
173
236
|
className: "text-sm text-text-secondary",
|
|
174
|
-
children: "
|
|
175
|
-
}), /* @__PURE__ */
|
|
176
|
-
className: "
|
|
177
|
-
children:
|
|
237
|
+
children: "Department"
|
|
238
|
+
}), /* @__PURE__ */ T("div", {
|
|
239
|
+
className: "flex items-center gap-1 mt-1",
|
|
240
|
+
children: [/* @__PURE__ */ w(n, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ w("p", {
|
|
241
|
+
className: "font-medium",
|
|
242
|
+
children: M.department
|
|
243
|
+
})]
|
|
178
244
|
})] }),
|
|
179
|
-
|
|
245
|
+
M.relatedAsset && /* @__PURE__ */ T("div", { children: [/* @__PURE__ */ w("p", {
|
|
180
246
|
className: "text-sm text-text-secondary",
|
|
181
|
-
children: "
|
|
182
|
-
}), /* @__PURE__ */
|
|
247
|
+
children: "Related Asset"
|
|
248
|
+
}), /* @__PURE__ */ w("p", {
|
|
183
249
|
className: "font-mono font-medium",
|
|
184
|
-
children:
|
|
250
|
+
children: M.relatedAsset
|
|
185
251
|
})] })
|
|
186
252
|
]
|
|
187
|
-
}),
|
|
188
|
-
/* @__PURE__ */ b(y, {}),
|
|
189
|
-
/* @__PURE__ */ x("div", {
|
|
190
|
-
className: "grid grid-cols-2 gap-4",
|
|
191
|
-
children: [D.approvedBy && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
192
|
-
className: "text-sm text-text-secondary",
|
|
193
|
-
children: "Approved By"
|
|
194
|
-
}), /* @__PURE__ */ x("div", {
|
|
195
|
-
className: "flex items-center gap-1 mt-1",
|
|
196
|
-
children: [/* @__PURE__ */ b(l, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
|
|
197
|
-
className: "font-medium",
|
|
198
|
-
children: D.approvedBy
|
|
199
|
-
})]
|
|
200
|
-
})] }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
201
|
-
className: "text-sm text-text-secondary",
|
|
202
|
-
children: "Date"
|
|
203
|
-
}), /* @__PURE__ */ x("div", {
|
|
204
|
-
className: "flex items-center gap-1 mt-1",
|
|
205
|
-
children: [/* @__PURE__ */ b(r, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
|
|
206
|
-
className: "font-medium",
|
|
207
|
-
children: new Date(D.date).toLocaleDateString()
|
|
208
|
-
})]
|
|
209
|
-
})] })]
|
|
210
253
|
})
|
|
211
|
-
]
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}), /* @__PURE__ */ x("div", {
|
|
232
|
-
className: "flex items-center gap-1 mt-1",
|
|
233
|
-
children: [/* @__PURE__ */ b(n, { className: "h-4 w-4 text-text-secondary" }), /* @__PURE__ */ b("p", {
|
|
234
|
-
className: "font-medium",
|
|
235
|
-
children: D.department
|
|
254
|
+
})] }),
|
|
255
|
+
/* @__PURE__ */ T(h, { children: [/* @__PURE__ */ w(_, { children: /* @__PURE__ */ w(v, { children: "Status Timeline" }) }), /* @__PURE__ */ w(g, { children: /* @__PURE__ */ w("div", {
|
|
256
|
+
className: "space-y-4",
|
|
257
|
+
children: O.map((e, t) => /* @__PURE__ */ T("div", {
|
|
258
|
+
className: "flex gap-4",
|
|
259
|
+
children: [/* @__PURE__ */ T("div", {
|
|
260
|
+
className: "flex flex-col items-center",
|
|
261
|
+
children: [/* @__PURE__ */ w("div", { className: `h-3 w-3 rounded-full ${t === O.length - 1 ? "bg-status-success-bg" : "bg-action-primary-bg"}` }), t < O.length - 1 && /* @__PURE__ */ w("div", { className: "w-px flex-1 bg-border" })]
|
|
262
|
+
}), /* @__PURE__ */ T("div", {
|
|
263
|
+
className: "pb-4",
|
|
264
|
+
children: [/* @__PURE__ */ w("p", {
|
|
265
|
+
className: "font-medium text-sm",
|
|
266
|
+
children: e.status
|
|
267
|
+
}), /* @__PURE__ */ T("p", {
|
|
268
|
+
className: "text-xs text-text-secondary",
|
|
269
|
+
children: [
|
|
270
|
+
new Date(e.date).toLocaleString(),
|
|
271
|
+
" by ",
|
|
272
|
+
e.actor
|
|
273
|
+
]
|
|
236
274
|
})]
|
|
237
|
-
})] }),
|
|
238
|
-
D.relatedAsset && /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
|
|
239
|
-
className: "text-sm text-text-secondary",
|
|
240
|
-
children: "Related Asset"
|
|
241
|
-
}), /* @__PURE__ */ b("p", {
|
|
242
|
-
className: "font-mono font-medium",
|
|
243
|
-
children: D.relatedAsset
|
|
244
|
-
})] })
|
|
245
|
-
]
|
|
246
|
-
})
|
|
247
|
-
})] }),
|
|
248
|
-
/* @__PURE__ */ x(m, { children: [/* @__PURE__ */ b(g, { children: /* @__PURE__ */ b(_, { children: "Status Timeline" }) }), /* @__PURE__ */ b(h, { children: /* @__PURE__ */ b("div", {
|
|
249
|
-
className: "space-y-4",
|
|
250
|
-
children: w.map((e, t) => /* @__PURE__ */ x("div", {
|
|
251
|
-
className: "flex gap-4",
|
|
252
|
-
children: [/* @__PURE__ */ x("div", {
|
|
253
|
-
className: "flex flex-col items-center",
|
|
254
|
-
children: [/* @__PURE__ */ b("div", { className: `h-3 w-3 rounded-full ${t === w.length - 1 ? "bg-status-success-bg" : "bg-action-primary-bg"}` }), t < w.length - 1 && /* @__PURE__ */ b("div", { className: "w-px flex-1 bg-border" })]
|
|
255
|
-
}), /* @__PURE__ */ x("div", {
|
|
256
|
-
className: "pb-4",
|
|
257
|
-
children: [/* @__PURE__ */ b("p", {
|
|
258
|
-
className: "font-medium text-sm",
|
|
259
|
-
children: e.status
|
|
260
|
-
}), /* @__PURE__ */ x("p", {
|
|
261
|
-
className: "text-xs text-text-secondary",
|
|
262
|
-
children: [
|
|
263
|
-
new Date(e.date).toLocaleString(),
|
|
264
|
-
" by ",
|
|
265
|
-
e.actor
|
|
266
|
-
]
|
|
267
275
|
})]
|
|
268
|
-
})
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}) : /* @__PURE__ */
|
|
274
|
-
className: "p-6
|
|
275
|
-
children:
|
|
276
|
+
}, t))
|
|
277
|
+
}) })] })
|
|
278
|
+
]
|
|
279
|
+
})
|
|
280
|
+
]
|
|
281
|
+
}) : /* @__PURE__ */ w("div", {
|
|
282
|
+
className: "p-6",
|
|
283
|
+
children: /* @__PURE__ */ w(x, {
|
|
284
|
+
illustration: "empty-search",
|
|
285
|
+
title: "Transaction not found",
|
|
286
|
+
description: "This transaction may have been removed. Return to the transaction list to find it.",
|
|
287
|
+
action: /* @__PURE__ */ w(m, {
|
|
288
|
+
size: "sm",
|
|
289
|
+
onClick: () => k("/transactions/transaction-list"),
|
|
290
|
+
children: "Back to transactions"
|
|
291
|
+
})
|
|
292
|
+
})
|
|
276
293
|
});
|
|
277
294
|
}
|
|
278
295
|
//#endregion
|
|
279
|
-
export {
|
|
296
|
+
export { k as TransactionsTransactionDetailPage };
|
|
280
297
|
|
|
281
298
|
//# sourceMappingURL=TransactionsTransactionDetailPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionsTransactionDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/TransactionsTransactionDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n} from '@burdenoff/fe-libs/ui';\nimport {\n ArrowLeft,\n Printer,\n CheckCircle2,\n XCircle,\n DollarSign,\n Calendar,\n Building,\n FileText,\n User,\n Package,\n} from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n pending: 'outline',\n approved: 'default',\n completed: 'secondary',\n rejected: 'destructive',\n cancelled: 'outline',\n};\n\nconst typeColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n purchase: 'default',\n lease: 'secondary',\n disposal: 'destructive',\n transfer: 'outline',\n maintenance: 'secondary',\n depreciation: 'outline',\n};\n\nconst statusTimeline = [\n { status: 'Created', date: '2026-01-15T10:30:00Z', actor: 'Procurement System' },\n { status: 'Pending Approval', date: '2026-01-15T10:30:00Z', actor: 'Auto-routed' },\n { status: 'Approved', date: '2026-01-16T14:20:00Z', actor: 'Michael Chen' },\n { status: 'Completed', date: '2026-01-17T09:00:00Z', actor: 'Finance System' },\n];\n\nexport function TransactionsTransactionDetailPage() {\n const { transactionId } = useParams<{ transactionId: string }>();\n const { transactions } = useAssetHandlerStore();\n const transaction = transactions.find((item) => item.id === transactionId) ?? transactions[0];\n\n if (!transaction) {\n return <div className=\"p-6 text-center text-text-secondary\">Transaction not found.</div>;\n }\n\n const formatAmount = (amount: number) => {\n return Math.abs(amount).toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-5xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"sm\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{transaction.id}</GradientText>\n </h1>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">{transaction.description}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Printer className=\"mr-2 h-4 w-4\" />\n Print\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <CheckCircle2 className=\"mr-2 h-4 w-4\" />\n Approve\n </Button>\n <Button variant=\"destructive\" size=\"sm\">\n <XCircle className=\"mr-2 h-4 w-4\" />\n Reject\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-6 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <FileText className=\"h-5 w-5\" />\n Transaction Information\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transaction ID</p>\n <p className=\"font-mono font-medium\">{transaction.id}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Type</p>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Category</p>\n <p className=\"font-medium\">{transaction.category}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Status</p>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n </div>\n </div>\n <Separator />\n <div>\n <p className=\"text-sm text-text-secondary\">Description</p>\n <p className=\"mt-1\">{transaction.description}</p>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <DollarSign className=\"h-5 w-5\" />\n Financial Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Amount</p>\n <p\n className={`text-2xl font-bold ${transaction.amount < 0 ? 'text-status-error-text' : ''}`}\n >\n {formatAmount(transaction.amount)}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Currency</p>\n <p className=\"font-medium\">{transaction.currency}</p>\n </div>\n {transaction.poNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">PO Number</p>\n <p className=\"font-mono font-medium\">{transaction.poNumber}</p>\n </div>\n )}\n {transaction.invoiceNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">Invoice Number</p>\n <p className=\"font-mono font-medium\">{transaction.invoiceNumber}</p>\n </div>\n )}\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.approvedBy && (\n <div>\n <p className=\"text-sm text-text-secondary\">Approved By</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <User className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.approvedBy}</p>\n </div>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Date</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Calendar className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{new Date(transaction.date).toLocaleDateString()}</p>\n </div>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Package className=\"h-5 w-5\" />\n Related Items\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.vendor && (\n <div>\n <p className=\"text-sm text-text-secondary\">Vendor</p>\n <p className=\"font-medium\">{transaction.vendor}</p>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Department</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Building className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.department}</p>\n </div>\n </div>\n {transaction.relatedAsset && (\n <div>\n <p className=\"text-sm text-text-secondary\">Related Asset</p>\n <p className=\"font-mono font-medium\">{transaction.relatedAsset}</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Status Timeline</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {statusTimeline.map((entry, i) => (\n <div key={i} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`h-3 w-3 rounded-full ${i === statusTimeline.length - 1 ? 'bg-status-success-bg' : 'bg-action-primary-bg'}`}\n />\n {i < statusTimeline.length - 1 && <div className=\"w-px flex-1 bg-border\" />}\n </div>\n <div className=\"pb-4\">\n <p className=\"font-medium text-sm\">{entry.status}</p>\n <p className=\"text-xs text-text-secondary\">\n {new Date(entry.date).toLocaleString()} by {entry.actor}\n </p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TransactionsTransactionDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/TransactionsTransactionDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n GradientText,\n EmphasisPanel,\n PagePurpose,\n IllustratedEmptyState,\n} from '@burdenoff/fe-libs/ui';\nimport {\n ArrowLeft,\n Printer,\n CheckCircle2,\n XCircle,\n DollarSign,\n Calendar,\n Building,\n FileText,\n User,\n Package,\n} from 'lucide-react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n pending: 'outline',\n approved: 'default',\n completed: 'secondary',\n rejected: 'destructive',\n cancelled: 'outline',\n};\n\nconst typeColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n purchase: 'default',\n lease: 'secondary',\n disposal: 'destructive',\n transfer: 'outline',\n maintenance: 'secondary',\n depreciation: 'outline',\n};\n\nconst statusTimeline = [\n { status: 'Created', date: '2026-01-15T10:30:00Z', actor: 'Procurement System' },\n { status: 'Pending Approval', date: '2026-01-15T10:30:00Z', actor: 'Auto-routed' },\n { status: 'Approved', date: '2026-01-16T14:20:00Z', actor: 'Michael Chen' },\n { status: 'Completed', date: '2026-01-17T09:00:00Z', actor: 'Finance System' },\n];\n\nexport function TransactionsTransactionDetailPage() {\n const navigate = useNavigate();\n const { transactionId } = useParams<{ transactionId: string }>();\n const { transactions } = useAssetHandlerStore();\n const transaction = transactions.find((item) => item.id === transactionId) ?? transactions[0];\n\n if (!transaction) {\n return (\n <div className=\"p-6\">\n <IllustratedEmptyState\n illustration=\"empty-search\"\n title=\"Transaction not found\"\n description=\"This transaction may have been removed. Return to the transaction list to find it.\"\n action={\n <Button size=\"sm\" onClick={() => navigate('/transactions/transaction-list')}>\n Back to transactions\n </Button>\n }\n />\n </div>\n );\n }\n\n const formatAmount = (amount: number) => {\n return Math.abs(amount).toLocaleString('en-US', { style: 'currency', currency: 'USD' });\n };\n\n return (\n <div className=\"space-y-6 p-6 max-w-5xl\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <Button variant=\"outline\" size=\"sm\" onClick={() => navigate('/transactions/transaction-list')}>\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">\n <GradientText>{transaction.id}</GradientText>\n </h1>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <p className=\"text-sm text-text-secondary\">{transaction.description}</p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Printer className=\"mr-2 h-4 w-4\" />\n Print\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <CheckCircle2 className=\"mr-2 h-4 w-4\" />\n Approve\n </Button>\n <Button variant=\"destructive\" size=\"sm\">\n <XCircle className=\"mr-2 h-4 w-4\" />\n Reject\n </Button>\n </div>\n </div>\n\n <PagePurpose>\n The complete record of a single financial transaction tied to your assets — what it was\n for, how much, against which budget and asset, and its approval timeline. Use this page to\n verify, approve or reject a transaction with a full audit trail.\n </PagePurpose>\n\n <div className=\"grid gap-6 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <FileText className=\"h-5 w-5\" />\n Transaction Information\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Transaction ID</p>\n <p className=\"font-mono font-medium\">{transaction.id}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Type</p>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Category</p>\n <p className=\"font-medium\">{transaction.category}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Status</p>\n <Badge variant={statusColors[transaction.status]}>{transaction.status}</Badge>\n </div>\n </div>\n <Separator />\n <div>\n <p className=\"text-sm text-text-secondary\">Description</p>\n <p className=\"mt-1\">{transaction.description}</p>\n </div>\n </CardContent>\n </Card>\n\n <EmphasisPanel>\n <CardHeader className=\"px-0 pt-0\">\n <CardTitle className=\"flex items-center gap-2\">\n <DollarSign className=\"h-5 w-5\" />\n Financial Details\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4 px-0 pb-0\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">Amount</p>\n <p\n className={`text-2xl font-bold ${transaction.amount < 0 ? 'text-status-error-text' : ''}`}\n >\n {formatAmount(transaction.amount)}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">Currency</p>\n <p className=\"font-medium\">{transaction.currency}</p>\n </div>\n {transaction.poNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">PO Number</p>\n <p className=\"font-mono font-medium\">{transaction.poNumber}</p>\n </div>\n )}\n {transaction.invoiceNumber && (\n <div>\n <p className=\"text-sm text-text-secondary\">Invoice Number</p>\n <p className=\"font-mono font-medium\">{transaction.invoiceNumber}</p>\n </div>\n )}\n </div>\n <Separator />\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.approvedBy && (\n <div>\n <p className=\"text-sm text-text-secondary\">Approved By</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <User className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.approvedBy}</p>\n </div>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Date</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Calendar className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{new Date(transaction.date).toLocaleDateString()}</p>\n </div>\n </div>\n </div>\n </CardContent>\n </EmphasisPanel>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <Package className=\"h-5 w-5\" />\n Related Items\n </CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n {transaction.vendor && (\n <div>\n <p className=\"text-sm text-text-secondary\">Vendor</p>\n <p className=\"font-medium\">{transaction.vendor}</p>\n </div>\n )}\n <div>\n <p className=\"text-sm text-text-secondary\">Department</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Building className=\"h-4 w-4 text-text-secondary\" />\n <p className=\"font-medium\">{transaction.department}</p>\n </div>\n </div>\n {transaction.relatedAsset && (\n <div>\n <p className=\"text-sm text-text-secondary\">Related Asset</p>\n <p className=\"font-mono font-medium\">{transaction.relatedAsset}</p>\n </div>\n )}\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>Status Timeline</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {statusTimeline.map((entry, i) => (\n <div key={i} className=\"flex gap-4\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`h-3 w-3 rounded-full ${i === statusTimeline.length - 1 ? 'bg-status-success-bg' : 'bg-action-primary-bg'}`}\n />\n {i < statusTimeline.length - 1 && <div className=\"w-px flex-1 bg-border\" />}\n </div>\n <div className=\"pb-4\">\n <p className=\"font-medium text-sm\">{entry.status}</p>\n <p className=\"text-xs text-text-secondary\">\n {new Date(entry.date).toLocaleString()} by {entry.actor}\n </p>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;AA4BA,IAAM,IAAoF;CACxF,SAAS;CACT,UAAU;CACV,WAAW;CACX,UAAU;CACV,WAAW;CACZ,EAEK,IAAkF;CACtF,UAAU;CACV,OAAO;CACP,UAAU;CACV,UAAU;CACV,aAAa;CACb,cAAc;CACf,EAEK,IAAiB;CACrB;EAAE,QAAQ;EAAW,MAAM;EAAwB,OAAO;EAAsB;CAChF;EAAE,QAAQ;EAAoB,MAAM;EAAwB,OAAO;EAAe;CAClF;EAAE,QAAQ;EAAY,MAAM;EAAwB,OAAO;EAAgB;CAC3E;EAAE,QAAQ;EAAa,MAAM;EAAwB,OAAO;EAAkB;CAC/E;AAED,SAAgB,IAAoC;CAClD,IAAM,IAAW,GAAa,EACxB,EAAE,qBAAkB,GAAsC,EAC1D,EAAE,oBAAiB,GAAsB,EACzC,IAAc,EAAa,MAAM,MAAS,EAAK,OAAO,EAAc,IAAI,EAAa;AAuB3F,QArBK,IAsBH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAU,MAAK;MAAK,eAAe,EAAS,iCAAiC;gBAC3F,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA;MAC1B,CAAA,EACT,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,MAAD;QAAI,WAAU;kBACZ,kBAAC,GAAD,EAAA,UAAe,EAAY,IAAkB,CAAA;QAC1C,CAAA;OACL,kBAAC,GAAD;QAAO,SAAS,EAAa,EAAY;kBAAU,EAAY;QAAe,CAAA;OAC9E,kBAAC,GAAD;QAAO,SAAS,EAAW,EAAY;kBAAQ,EAAY;QAAa,CAAA;OACpE;SACN,kBAAC,KAAD;MAAG,WAAU;gBAA+B,EAAY;MAAgB,CAAA,CACpE,EAAA,CAAA,CACF;QACN,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAS,WAAU,gBAAiB,CAAA,EAAA,QAE7B;;MACT,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAc,WAAU,gBAAiB,CAAA,EAAA,UAElC;;MACT,kBAAC,GAAD;OAAQ,SAAQ;OAAc,MAAK;iBAAnC,CACE,kBAAC,GAAD,EAAS,WAAU,gBAAiB,CAAA,EAAA,SAE7B;;MACL;OACF;;GAEN,kBAAC,GAAD,EAAA,UAAa,uPAIC,CAAA;GAEd,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAArB,CACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA,EAAA,0BAEtB;SACD,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAkB,CAAA,EAC7D,kBAAC,KAAD;UAAG,WAAU;oBAAyB,EAAY;UAAO,CAAA,CACrD,EAAA,CAAA;SACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAQ,CAAA,EACnD,kBAAC,GAAD;UAAO,SAAS,EAAW,EAAY;oBAAQ,EAAY;UAAa,CAAA,CACpE,EAAA,CAAA;SACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAY,CAAA,EACvD,kBAAC,KAAD;UAAG,WAAU;oBAAe,EAAY;UAAa,CAAA,CACjD,EAAA,CAAA;SACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAU,CAAA,EACrD,kBAAC,GAAD;UAAO,SAAS,EAAa,EAAY;oBAAU,EAAY;UAAe,CAAA,CAC1E,EAAA,CAAA;SACF;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;QAAG,WAAU;kBAA8B;QAAe,CAAA,EAC1D,kBAAC,KAAD;QAAG,WAAU;kBAAQ,EAAY;QAAgB,CAAA,CAC7C,EAAA,CAAA;OACM;QACT,EAAA,CAAA;KAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBACpB,kBAAC,GAAD;OAAW,WAAU;iBAArB,CACE,kBAAC,GAAD,EAAY,WAAU,WAAY,CAAA,EAAA,oBAExB;;MACD,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBAAvB;OACE,kBAAC,OAAD;QAAK,WAAU;kBAAf;SACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAU,CAAA,EACrD,kBAAC,KAAD;UACE,WAAW,sBAAsB,EAAY,SAAS,IAAI,2BAA2B;sBA3F/E,MACb,KAAK,IAAI,EAAO,CAAC,eAAe,SAAS;WAAE,OAAO;WAAY,UAAU;WAAO,CAAC,EA4F3D,EAAY,OAAO;UAC/B,CAAA,CACA,EAAA,CAAA;SACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAY,CAAA,EACvD,kBAAC,KAAD;UAAG,WAAU;oBAAe,EAAY;UAAa,CAAA,CACjD,EAAA,CAAA;SACL,EAAY,YACX,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAa,CAAA,EACxD,kBAAC,KAAD;UAAG,WAAU;oBAAyB,EAAY;UAAa,CAAA,CAC3D,EAAA,CAAA;SAEP,EAAY,iBACX,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;UAAG,WAAU;oBAA8B;UAAkB,CAAA,EAC7D,kBAAC,KAAD;UAAG,WAAU;oBAAyB,EAAY;UAAkB,CAAA,CAChE,EAAA,CAAA;SAEJ;;OACN,kBAAC,GAAD,EAAa,CAAA;OACb,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACG,EAAY,cACX,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAe,CAAA,EAC1D,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD,EAAM,WAAU,+BAAgC,CAAA,EAChD,kBAAC,KAAD;UAAG,WAAU;oBAAe,EAAY;UAAe,CAAA,CACnD;WACF,EAAA,CAAA,EAER,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAQ,CAAA,EACnD,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD,EAAU,WAAU,+BAAgC,CAAA,EACpD,kBAAC,KAAD;UAAG,WAAU;oBAAe,IAAI,KAAK,EAAY,KAAK,CAAC,oBAAoB;UAAK,CAAA,CAC5E;WACF,EAAA,CAAA,CACF;;OACM;QACA,EAAA,CAAA;KAEhB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAW,WAAU;gBAArB,CACE,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAAA,gBAErB;SACD,CAAA,EACb,kBAAC,GAAD;MAAa,WAAU;gBACrB,kBAAC,OAAD;OAAK,WAAU;iBAAf;QACG,EAAY,UACX,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAU,CAAA,EACrD,kBAAC,KAAD;SAAG,WAAU;mBAAe,EAAY;SAAW,CAAA,CAC/C,EAAA,CAAA;QAER,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAc,CAAA,EACzD,kBAAC,OAAD;SAAK,WAAU;mBAAf,CACE,kBAAC,GAAD,EAAU,WAAU,+BAAgC,CAAA,EACpD,kBAAC,KAAD;UAAG,WAAU;oBAAe,EAAY;UAAe,CAAA,CACnD;WACF,EAAA,CAAA;QACL,EAAY,gBACX,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD;SAAG,WAAU;mBAA8B;SAAiB,CAAA,EAC5D,kBAAC,KAAD;SAAG,WAAU;mBAAyB,EAAY;SAAiB,CAAA,CAC/D,EAAA,CAAA;QAEJ;;MACM,CAAA,CACT,EAAA,CAAA;KAEP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,mBAA2B,CAAA,EAC3B,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAe,KAAK,GAAO,MAC1B,kBAAC,OAAD;OAAa,WAAU;iBAAvB,CACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,OAAD,EACE,WAAW,wBAAwB,MAAM,EAAe,SAAS,IAAI,yBAAyB,0BAC9F,CAAA,EACD,IAAI,EAAe,SAAS,KAAK,kBAAC,OAAD,EAAK,WAAU,yBAA0B,CAAA,CACvE;WACN,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,KAAD;SAAG,WAAU;mBAAuB,EAAM;SAAW,CAAA,EACrD,kBAAC,KAAD;SAAG,WAAU;mBAAb;UACG,IAAI,KAAK,EAAM,KAAK,CAAC,gBAAgB;UAAC;UAAK,EAAM;UAChD;WACA;UACF;SAbI,EAaJ,CACN;MACE,CAAA,EACM,CAAA,CACT,EAAA,CAAA;KACH;;GACF;MAhNJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,GAAD;GACE,cAAa;GACb,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,GAAD;IAAQ,MAAK;IAAK,eAAe,EAAS,iCAAiC;cAAE;IAEpE,CAAA;GAEX,CAAA;EACE,CAAA"}
|