@burdenoff/microfe-assethandler 2026.510.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/README.md +12 -0
  2. package/dist/assethandler/AssetHandlerRoot.d.ts +5 -0
  3. package/dist/assethandler/AssetHandlerRoot.d.ts.map +1 -0
  4. package/dist/assethandler/AssetHandlerRoot.js +159 -0
  5. package/dist/assethandler/AssetHandlerRoot.js.map +1 -0
  6. package/dist/assethandler/AssetHandlerRoutes.d.ts +2 -0
  7. package/dist/assethandler/AssetHandlerRoutes.d.ts.map +1 -0
  8. package/dist/assethandler/AssetHandlerRoutes.js +255 -0
  9. package/dist/assethandler/AssetHandlerRoutes.js.map +1 -0
  10. package/dist/assethandler/index.d.ts +5 -0
  11. package/dist/assethandler/index.d.ts.map +1 -0
  12. package/dist/assethandler/index.js +3 -0
  13. package/dist/assethandler/pages/AiPredictionsPage.d.ts +2 -0
  14. package/dist/assethandler/pages/AiPredictionsPage.d.ts.map +1 -0
  15. package/dist/assethandler/pages/AiPredictionsPage.js +133 -0
  16. package/dist/assethandler/pages/AiPredictionsPage.js.map +1 -0
  17. package/dist/assethandler/pages/AnalyticsPage.d.ts +2 -0
  18. package/dist/assethandler/pages/AnalyticsPage.d.ts.map +1 -0
  19. package/dist/assethandler/pages/AnalyticsPage.js +576 -0
  20. package/dist/assethandler/pages/AnalyticsPage.js.map +1 -0
  21. package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts +2 -0
  22. package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts.map +1 -0
  23. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +162 -0
  24. package/dist/assethandler/pages/AssetsAssetCategoriesPage.js.map +1 -0
  25. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts +2 -0
  26. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts.map +1 -0
  27. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +249 -0
  28. package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -0
  29. package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts +2 -0
  30. package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts.map +1 -0
  31. package/dist/assethandler/pages/AssetsAssetCreatePage.js +323 -0
  32. package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -0
  33. package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts +2 -0
  34. package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts.map +1 -0
  35. package/dist/assethandler/pages/AssetsAssetDetailPage.js +392 -0
  36. package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -0
  37. package/dist/assethandler/pages/AssetsAssetEditPage.d.ts +2 -0
  38. package/dist/assethandler/pages/AssetsAssetEditPage.d.ts.map +1 -0
  39. package/dist/assethandler/pages/AssetsAssetEditPage.js +341 -0
  40. package/dist/assethandler/pages/AssetsAssetEditPage.js.map +1 -0
  41. package/dist/assethandler/pages/AssetsAssetListPage.d.ts +2 -0
  42. package/dist/assethandler/pages/AssetsAssetListPage.d.ts.map +1 -0
  43. package/dist/assethandler/pages/AssetsAssetListPage.js +459 -0
  44. package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -0
  45. package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts +2 -0
  46. package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts.map +1 -0
  47. package/dist/assethandler/pages/AssetsAssetTrackingPage.js +166 -0
  48. package/dist/assethandler/pages/AssetsAssetTrackingPage.js.map +1 -0
  49. package/dist/assethandler/pages/AuditTrailPage.d.ts +2 -0
  50. package/dist/assethandler/pages/AuditTrailPage.d.ts.map +1 -0
  51. package/dist/assethandler/pages/AuditTrailPage.js +197 -0
  52. package/dist/assethandler/pages/AuditTrailPage.js.map +1 -0
  53. package/dist/assethandler/pages/CmdbBrowserPage.d.ts +2 -0
  54. package/dist/assethandler/pages/CmdbBrowserPage.d.ts.map +1 -0
  55. package/dist/assethandler/pages/CmdbBrowserPage.js +75 -0
  56. package/dist/assethandler/pages/CmdbBrowserPage.js.map +1 -0
  57. package/dist/assethandler/pages/DashboardPage.d.ts +2 -0
  58. package/dist/assethandler/pages/DashboardPage.d.ts.map +1 -0
  59. package/dist/assethandler/pages/DashboardPage.js +336 -0
  60. package/dist/assethandler/pages/DashboardPage.js.map +1 -0
  61. package/dist/assethandler/pages/DigitalTwinPage.d.ts +2 -0
  62. package/dist/assethandler/pages/DigitalTwinPage.d.ts.map +1 -0
  63. package/dist/assethandler/pages/DigitalTwinPage.js +71 -0
  64. package/dist/assethandler/pages/DigitalTwinPage.js.map +1 -0
  65. package/dist/assethandler/pages/DiscoveryJobsPage.d.ts +2 -0
  66. package/dist/assethandler/pages/DiscoveryJobsPage.d.ts.map +1 -0
  67. package/dist/assethandler/pages/DiscoveryJobsPage.js +115 -0
  68. package/dist/assethandler/pages/DiscoveryJobsPage.js.map +1 -0
  69. package/dist/assethandler/pages/EsgDashboardPage.d.ts +2 -0
  70. package/dist/assethandler/pages/EsgDashboardPage.d.ts.map +1 -0
  71. package/dist/assethandler/pages/EsgDashboardPage.js +130 -0
  72. package/dist/assethandler/pages/EsgDashboardPage.js.map +1 -0
  73. package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts +2 -0
  74. package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts.map +1 -0
  75. package/dist/assethandler/pages/FinanceBudgetDetailPage.js +182 -0
  76. package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -0
  77. package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts +2 -0
  78. package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts.map +1 -0
  79. package/dist/assethandler/pages/FinanceFinanceHubPage.js +324 -0
  80. package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -0
  81. package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts +2 -0
  82. package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts.map +1 -0
  83. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +172 -0
  84. package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -0
  85. package/dist/assethandler/pages/IotDevicesPage.d.ts +2 -0
  86. package/dist/assethandler/pages/IotDevicesPage.d.ts.map +1 -0
  87. package/dist/assethandler/pages/IotDevicesPage.js +80 -0
  88. package/dist/assethandler/pages/IotDevicesPage.js.map +1 -0
  89. package/dist/assethandler/pages/ItilChangeDetailPage.d.ts +2 -0
  90. package/dist/assethandler/pages/ItilChangeDetailPage.d.ts.map +1 -0
  91. package/dist/assethandler/pages/ItilChangeDetailPage.js +221 -0
  92. package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -0
  93. package/dist/assethandler/pages/ItilChangeManagementPage.d.ts +2 -0
  94. package/dist/assethandler/pages/ItilChangeManagementPage.d.ts.map +1 -0
  95. package/dist/assethandler/pages/ItilChangeManagementPage.js +179 -0
  96. package/dist/assethandler/pages/ItilChangeManagementPage.js.map +1 -0
  97. package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts +2 -0
  98. package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts.map +1 -0
  99. package/dist/assethandler/pages/ItilIncidentDetailPage.js +222 -0
  100. package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -0
  101. package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts +2 -0
  102. package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts.map +1 -0
  103. package/dist/assethandler/pages/ItilIncidentManagementPage.js +265 -0
  104. package/dist/assethandler/pages/ItilIncidentManagementPage.js.map +1 -0
  105. package/dist/assethandler/pages/ItilItilhubPage.d.ts +2 -0
  106. package/dist/assethandler/pages/ItilItilhubPage.d.ts.map +1 -0
  107. package/dist/assethandler/pages/ItilItilhubPage.js +374 -0
  108. package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -0
  109. package/dist/assethandler/pages/ItilProblemDetailPage.d.ts +2 -0
  110. package/dist/assethandler/pages/ItilProblemDetailPage.d.ts.map +1 -0
  111. package/dist/assethandler/pages/ItilProblemDetailPage.js +177 -0
  112. package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -0
  113. package/dist/assethandler/pages/ItilProblemManagementPage.d.ts +2 -0
  114. package/dist/assethandler/pages/ItilProblemManagementPage.d.ts.map +1 -0
  115. package/dist/assethandler/pages/ItilProblemManagementPage.js +167 -0
  116. package/dist/assethandler/pages/ItilProblemManagementPage.js.map +1 -0
  117. package/dist/assethandler/pages/KnowledgeBasePage.d.ts +2 -0
  118. package/dist/assethandler/pages/KnowledgeBasePage.d.ts.map +1 -0
  119. package/dist/assethandler/pages/KnowledgeBasePage.js +116 -0
  120. package/dist/assethandler/pages/KnowledgeBasePage.js.map +1 -0
  121. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts +2 -0
  122. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts.map +1 -0
  123. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +185 -0
  124. package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js.map +1 -0
  125. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts +2 -0
  126. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts.map +1 -0
  127. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +133 -0
  128. package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js.map +1 -0
  129. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts +2 -0
  130. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts.map +1 -0
  131. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js +166 -0
  132. package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js.map +1 -0
  133. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts +2 -0
  134. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts.map +1 -0
  135. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js +155 -0
  136. package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js.map +1 -0
  137. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts +2 -0
  138. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts.map +1 -0
  139. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js +126 -0
  140. package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js.map +1 -0
  141. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts +2 -0
  142. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts.map +1 -0
  143. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js +157 -0
  144. package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js.map +1 -0
  145. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts +2 -0
  146. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts.map +1 -0
  147. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +179 -0
  148. package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -0
  149. package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts +2 -0
  150. package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts.map +1 -0
  151. package/dist/assethandler/pages/OperationsOperationsHubPage.js +291 -0
  152. package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -0
  153. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts +2 -0
  154. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts.map +1 -0
  155. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +172 -0
  156. package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -0
  157. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts +2 -0
  158. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts.map +1 -0
  159. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +203 -0
  160. package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js.map +1 -0
  161. package/dist/assethandler/pages/ProvenancePage.d.ts +2 -0
  162. package/dist/assethandler/pages/ProvenancePage.d.ts.map +1 -0
  163. package/dist/assethandler/pages/ProvenancePage.js +118 -0
  164. package/dist/assethandler/pages/ProvenancePage.js.map +1 -0
  165. package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts +2 -0
  166. package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts.map +1 -0
  167. package/dist/assethandler/pages/ReportsReportBuilderPage.js +201 -0
  168. package/dist/assethandler/pages/ReportsReportBuilderPage.js.map +1 -0
  169. package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts +2 -0
  170. package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts.map +1 -0
  171. package/dist/assethandler/pages/ReportsReportsDashboardPage.js +201 -0
  172. package/dist/assethandler/pages/ReportsReportsDashboardPage.js.map +1 -0
  173. package/dist/assethandler/pages/ReportsReportsListPage.d.ts +2 -0
  174. package/dist/assethandler/pages/ReportsReportsListPage.d.ts.map +1 -0
  175. package/dist/assethandler/pages/ReportsReportsListPage.js +128 -0
  176. package/dist/assethandler/pages/ReportsReportsListPage.js.map +1 -0
  177. package/dist/assethandler/pages/SamLicensesPage.d.ts +2 -0
  178. package/dist/assethandler/pages/SamLicensesPage.d.ts.map +1 -0
  179. package/dist/assethandler/pages/SamLicensesPage.js +79 -0
  180. package/dist/assethandler/pages/SamLicensesPage.js.map +1 -0
  181. package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts +2 -0
  182. package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts.map +1 -0
  183. package/dist/assethandler/pages/SecurityComplianceDetailPage.js +109 -0
  184. package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -0
  185. package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts +2 -0
  186. package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts.map +1 -0
  187. package/dist/assethandler/pages/SecurityPolicyDetailPage.js +133 -0
  188. package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -0
  189. package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts +2 -0
  190. package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts.map +1 -0
  191. package/dist/assethandler/pages/SecurityScheduleBackupPage.js +143 -0
  192. package/dist/assethandler/pages/SecurityScheduleBackupPage.js.map +1 -0
  193. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts +2 -0
  194. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts.map +1 -0
  195. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +135 -0
  196. package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -0
  197. package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts +2 -0
  198. package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts.map +1 -0
  199. package/dist/assethandler/pages/SecuritySecurityHubPage.js +355 -0
  200. package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -0
  201. package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts +2 -0
  202. package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts.map +1 -0
  203. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +281 -0
  204. package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -0
  205. package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts +2 -0
  206. package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts.map +1 -0
  207. package/dist/assethandler/pages/TransactionsTransactionListPage.js +220 -0
  208. package/dist/assethandler/pages/TransactionsTransactionListPage.js.map +1 -0
  209. package/dist/assethandler/pages/UsersPage.d.ts +2 -0
  210. package/dist/assethandler/pages/UsersPage.d.ts.map +1 -0
  211. package/dist/assethandler/pages/UsersPage.js +183 -0
  212. package/dist/assethandler/pages/UsersPage.js.map +1 -0
  213. package/dist/assethandler/pages/UsersUserCreatePage.d.ts +2 -0
  214. package/dist/assethandler/pages/UsersUserCreatePage.d.ts.map +1 -0
  215. package/dist/assethandler/pages/UsersUserCreatePage.js +213 -0
  216. package/dist/assethandler/pages/UsersUserCreatePage.js.map +1 -0
  217. package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts +2 -0
  218. package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts.map +1 -0
  219. package/dist/assethandler/pages/UsersUserManagementHubPage.js +325 -0
  220. package/dist/assethandler/pages/UsersUserManagementHubPage.js.map +1 -0
  221. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts +2 -0
  222. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts.map +1 -0
  223. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js +246 -0
  224. package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js.map +1 -0
  225. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts +2 -0
  226. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts.map +1 -0
  227. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js +188 -0
  228. package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js.map +1 -0
  229. package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts +2 -0
  230. package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts.map +1 -0
  231. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js +163 -0
  232. package/dist/assethandler/pages/WorkflowsWorkflowListPage.js.map +1 -0
  233. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts +2 -0
  234. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts.map +1 -0
  235. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js +158 -0
  236. package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js.map +1 -0
  237. package/dist/assethandler/providers/AssetHandlerProvider.d.ts +6 -0
  238. package/dist/assethandler/providers/AssetHandlerProvider.d.ts.map +1 -0
  239. package/dist/assethandler/providers/AssetHandlerProvider.js +214 -0
  240. package/dist/assethandler/providers/AssetHandlerProvider.js.map +1 -0
  241. package/dist/assethandler/store/assethandlerStore.d.ts +635 -0
  242. package/dist/assethandler/store/assethandlerStore.d.ts.map +1 -0
  243. package/dist/assethandler/store/assethandlerStore.js +2337 -0
  244. package/dist/assethandler/store/assethandlerStore.js.map +1 -0
  245. package/dist/assethandler/types/index.d.ts +56 -0
  246. package/dist/assethandler/types/index.d.ts.map +1 -0
  247. package/dist/assethandler/utils/cn.d.ts +4 -0
  248. package/dist/assethandler/utils/cn.d.ts.map +1 -0
  249. package/dist/assethandler/utils/i18n.d.ts +6 -0
  250. package/dist/assethandler/utils/i18n.d.ts.map +1 -0
  251. package/dist/assethandler/utils/i18n.js +9 -0
  252. package/dist/assethandler/utils/i18n.js.map +1 -0
  253. package/dist/assethandler/utils/navigation.d.ts +2 -0
  254. package/dist/assethandler/utils/navigation.d.ts.map +1 -0
  255. package/dist/assethandler/utils/navigation.js +8 -0
  256. package/dist/assethandler/utils/navigation.js.map +1 -0
  257. package/dist/dev/main.d.ts +2 -0
  258. package/dist/dev/main.d.ts.map +1 -0
  259. package/dist/generated/global-operations.d.ts +2 -0
  260. package/dist/generated/global-operations.d.ts.map +1 -0
  261. package/dist/generated/global-types.d.ts +20716 -0
  262. package/dist/generated/global-types.d.ts.map +1 -0
  263. package/dist/generated/wspace-operations.d.ts +210 -0
  264. package/dist/generated/wspace-operations.d.ts.map +1 -0
  265. package/dist/generated/wspace-types.d.ts +53363 -0
  266. package/dist/generated/wspace-types.d.ts.map +1 -0
  267. package/dist/index.d.ts +2 -0
  268. package/dist/index.d.ts.map +1 -0
  269. package/dist/index.js +5 -0
  270. package/package.json +108 -0
@@ -0,0 +1,281 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
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 { useParams as d } from "react-router-dom";
4
+ import { Badge as f, Button as p, Card as m, CardContent as h, CardHeader as g, CardTitle as _, Separator as v } from "@burdenoff/fe-libs/ui";
5
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
6
+ //#region src/assethandler/pages/TransactionsTransactionDetailPage.tsx
7
+ var x = {
8
+ pending: "outline",
9
+ approved: "default",
10
+ completed: "secondary",
11
+ rejected: "destructive",
12
+ cancelled: "outline"
13
+ }, S = {
14
+ purchase: "default",
15
+ lease: "secondary",
16
+ disposal: "destructive",
17
+ transfer: "outline",
18
+ maintenance: "secondary",
19
+ depreciation: "outline"
20
+ }, C = [
21
+ {
22
+ status: "Created",
23
+ date: "2026-01-15T10:30:00Z",
24
+ actor: "Procurement System"
25
+ },
26
+ {
27
+ status: "Pending Approval",
28
+ date: "2026-01-15T10:30:00Z",
29
+ actor: "Auto-routed"
30
+ },
31
+ {
32
+ status: "Approved",
33
+ date: "2026-01-16T14:20:00Z",
34
+ actor: "Michael Chen"
35
+ },
36
+ {
37
+ status: "Completed",
38
+ date: "2026-01-17T09:00:00Z",
39
+ actor: "Finance System"
40
+ }
41
+ ];
42
+ function w() {
43
+ let { transactionId: w } = d(), { transactions: T } = e(), E = T.find((e) => e.id === w) ?? T[0];
44
+ return E ? /* @__PURE__ */ b("div", {
45
+ className: "space-y-6 p-6 max-w-5xl",
46
+ children: [/* @__PURE__ */ b("div", {
47
+ className: "flex items-center justify-between",
48
+ children: [/* @__PURE__ */ b("div", {
49
+ className: "flex items-center gap-3",
50
+ children: [/* @__PURE__ */ y(p, {
51
+ variant: "outline",
52
+ size: "sm",
53
+ children: /* @__PURE__ */ y(t, { className: "h-4 w-4" })
54
+ }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ b("div", {
55
+ className: "flex items-center gap-2",
56
+ children: [
57
+ /* @__PURE__ */ y("h1", {
58
+ className: "text-2xl font-semibold",
59
+ children: E.id
60
+ }),
61
+ /* @__PURE__ */ y(f, {
62
+ variant: x[E.status],
63
+ children: E.status
64
+ }),
65
+ /* @__PURE__ */ y(f, {
66
+ variant: S[E.type],
67
+ children: E.type
68
+ })
69
+ ]
70
+ }), /* @__PURE__ */ y("p", {
71
+ className: "text-sm text-muted-foreground",
72
+ children: E.description
73
+ })] })]
74
+ }), /* @__PURE__ */ b("div", {
75
+ className: "flex gap-2",
76
+ children: [
77
+ /* @__PURE__ */ b(p, {
78
+ variant: "outline",
79
+ size: "sm",
80
+ children: [/* @__PURE__ */ y(c, { className: "mr-2 h-4 w-4" }), "Print"]
81
+ }),
82
+ /* @__PURE__ */ b(p, {
83
+ variant: "outline",
84
+ size: "sm",
85
+ children: [/* @__PURE__ */ y(i, { className: "mr-2 h-4 w-4" }), "Approve"]
86
+ }),
87
+ /* @__PURE__ */ b(p, {
88
+ variant: "destructive",
89
+ size: "sm",
90
+ children: [/* @__PURE__ */ y(u, { className: "mr-2 h-4 w-4" }), "Reject"]
91
+ })
92
+ ]
93
+ })]
94
+ }), /* @__PURE__ */ b("div", {
95
+ className: "grid gap-6 md:grid-cols-2",
96
+ children: [
97
+ /* @__PURE__ */ b(m, { children: [/* @__PURE__ */ y(g, { children: /* @__PURE__ */ b(_, {
98
+ className: "flex items-center gap-2",
99
+ children: [/* @__PURE__ */ y(o, { className: "h-5 w-5" }), "Transaction Information"]
100
+ }) }), /* @__PURE__ */ b(h, {
101
+ className: "space-y-4",
102
+ children: [
103
+ /* @__PURE__ */ b("div", {
104
+ className: "grid grid-cols-2 gap-4",
105
+ children: [
106
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
107
+ className: "text-sm text-muted-foreground",
108
+ children: "Transaction ID"
109
+ }), /* @__PURE__ */ y("p", {
110
+ className: "font-mono font-medium",
111
+ children: E.id
112
+ })] }),
113
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
114
+ className: "text-sm text-muted-foreground",
115
+ children: "Type"
116
+ }), /* @__PURE__ */ y(f, {
117
+ variant: S[E.type],
118
+ children: E.type
119
+ })] }),
120
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
121
+ className: "text-sm text-muted-foreground",
122
+ children: "Category"
123
+ }), /* @__PURE__ */ y("p", {
124
+ className: "font-medium",
125
+ children: E.category
126
+ })] }),
127
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
128
+ className: "text-sm text-muted-foreground",
129
+ children: "Status"
130
+ }), /* @__PURE__ */ y(f, {
131
+ variant: x[E.status],
132
+ children: E.status
133
+ })] })
134
+ ]
135
+ }),
136
+ /* @__PURE__ */ y(v, {}),
137
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
138
+ className: "text-sm text-muted-foreground",
139
+ children: "Description"
140
+ }), /* @__PURE__ */ y("p", {
141
+ className: "mt-1",
142
+ children: E.description
143
+ })] })
144
+ ]
145
+ })] }),
146
+ /* @__PURE__ */ b(m, { children: [/* @__PURE__ */ y(g, { children: /* @__PURE__ */ b(_, {
147
+ className: "flex items-center gap-2",
148
+ children: [/* @__PURE__ */ y(a, { className: "h-5 w-5" }), "Financial Details"]
149
+ }) }), /* @__PURE__ */ b(h, {
150
+ className: "space-y-4",
151
+ children: [
152
+ /* @__PURE__ */ b("div", {
153
+ className: "grid grid-cols-2 gap-4",
154
+ children: [
155
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
156
+ className: "text-sm text-muted-foreground",
157
+ children: "Amount"
158
+ }), /* @__PURE__ */ y("p", {
159
+ className: `text-2xl font-bold ${E.amount < 0 ? "text-destructive" : ""}`,
160
+ children: ((e) => Math.abs(e).toLocaleString("en-US", {
161
+ style: "currency",
162
+ currency: "USD"
163
+ }))(E.amount)
164
+ })] }),
165
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
166
+ className: "text-sm text-muted-foreground",
167
+ children: "Currency"
168
+ }), /* @__PURE__ */ y("p", {
169
+ className: "font-medium",
170
+ children: E.currency
171
+ })] }),
172
+ E.poNumber && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
173
+ className: "text-sm text-muted-foreground",
174
+ children: "PO Number"
175
+ }), /* @__PURE__ */ y("p", {
176
+ className: "font-mono font-medium",
177
+ children: E.poNumber
178
+ })] }),
179
+ E.invoiceNumber && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
180
+ className: "text-sm text-muted-foreground",
181
+ children: "Invoice Number"
182
+ }), /* @__PURE__ */ y("p", {
183
+ className: "font-mono font-medium",
184
+ children: E.invoiceNumber
185
+ })] })
186
+ ]
187
+ }),
188
+ /* @__PURE__ */ y(v, {}),
189
+ /* @__PURE__ */ b("div", {
190
+ className: "grid grid-cols-2 gap-4",
191
+ children: [E.approvedBy && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
192
+ className: "text-sm text-muted-foreground",
193
+ children: "Approved By"
194
+ }), /* @__PURE__ */ b("div", {
195
+ className: "flex items-center gap-1 mt-1",
196
+ children: [/* @__PURE__ */ y(l, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ y("p", {
197
+ className: "font-medium",
198
+ children: E.approvedBy
199
+ })]
200
+ })] }), /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
201
+ className: "text-sm text-muted-foreground",
202
+ children: "Date"
203
+ }), /* @__PURE__ */ b("div", {
204
+ className: "flex items-center gap-1 mt-1",
205
+ children: [/* @__PURE__ */ y(r, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ y("p", {
206
+ className: "font-medium",
207
+ children: new Date(E.date).toLocaleDateString()
208
+ })]
209
+ })] })]
210
+ })
211
+ ]
212
+ })] }),
213
+ /* @__PURE__ */ b(m, { children: [/* @__PURE__ */ y(g, { children: /* @__PURE__ */ b(_, {
214
+ className: "flex items-center gap-2",
215
+ children: [/* @__PURE__ */ y(s, { className: "h-5 w-5" }), "Related Items"]
216
+ }) }), /* @__PURE__ */ y(h, {
217
+ className: "space-y-4",
218
+ children: /* @__PURE__ */ b("div", {
219
+ className: "grid grid-cols-2 gap-4",
220
+ children: [
221
+ E.vendor && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
222
+ className: "text-sm text-muted-foreground",
223
+ children: "Vendor"
224
+ }), /* @__PURE__ */ y("p", {
225
+ className: "font-medium",
226
+ children: E.vendor
227
+ })] }),
228
+ /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
229
+ className: "text-sm text-muted-foreground",
230
+ children: "Department"
231
+ }), /* @__PURE__ */ b("div", {
232
+ className: "flex items-center gap-1 mt-1",
233
+ children: [/* @__PURE__ */ y(n, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ y("p", {
234
+ className: "font-medium",
235
+ children: E.department
236
+ })]
237
+ })] }),
238
+ E.relatedAsset && /* @__PURE__ */ b("div", { children: [/* @__PURE__ */ y("p", {
239
+ className: "text-sm text-muted-foreground",
240
+ children: "Related Asset"
241
+ }), /* @__PURE__ */ y("p", {
242
+ className: "font-mono font-medium",
243
+ children: E.relatedAsset
244
+ })] })
245
+ ]
246
+ })
247
+ })] }),
248
+ /* @__PURE__ */ b(m, { children: [/* @__PURE__ */ y(g, { children: /* @__PURE__ */ y(_, { children: "Status Timeline" }) }), /* @__PURE__ */ y(h, { children: /* @__PURE__ */ y("div", {
249
+ className: "space-y-4",
250
+ children: C.map((e, t) => /* @__PURE__ */ b("div", {
251
+ className: "flex gap-4",
252
+ children: [/* @__PURE__ */ b("div", {
253
+ className: "flex flex-col items-center",
254
+ children: [/* @__PURE__ */ y("div", { className: `h-3 w-3 rounded-full ${t === C.length - 1 ? "bg-green-500" : "bg-primary"}` }), t < C.length - 1 && /* @__PURE__ */ y("div", { className: "w-px flex-1 bg-border" })]
255
+ }), /* @__PURE__ */ b("div", {
256
+ className: "pb-4",
257
+ children: [/* @__PURE__ */ y("p", {
258
+ className: "font-medium text-sm",
259
+ children: e.status
260
+ }), /* @__PURE__ */ b("p", {
261
+ className: "text-xs text-muted-foreground",
262
+ children: [
263
+ new Date(e.date).toLocaleString(),
264
+ " by ",
265
+ e.actor
266
+ ]
267
+ })]
268
+ })]
269
+ }, t))
270
+ }) })] })
271
+ ]
272
+ })]
273
+ }) : /* @__PURE__ */ y("div", {
274
+ className: "p-6 text-center text-muted-foreground",
275
+ children: "Transaction not found."
276
+ });
277
+ }
278
+ //#endregion
279
+ export { w as TransactionsTransactionDetailPage };
280
+
281
+ //# sourceMappingURL=TransactionsTransactionDetailPage.js.map
@@ -0,0 +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} 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-muted-foreground\">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\">{transaction.id}</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-muted-foreground\">{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-muted-foreground\">Transaction ID</p>\n <p className=\"font-mono font-medium\">{transaction.id}</p>\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground\">Type</p>\n <Badge variant={typeColors[transaction.type]}>{transaction.type}</Badge>\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground\">Category</p>\n <p className=\"font-medium\">{transaction.category}</p>\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground\">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-muted-foreground\">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-muted-foreground\">Amount</p>\n <p\n className={`text-2xl font-bold ${transaction.amount < 0 ? 'text-destructive' : ''}`}\n >\n {formatAmount(transaction.amount)}\n </p>\n </div>\n <div>\n <p className=\"text-sm text-muted-foreground\">Currency</p>\n <p className=\"font-medium\">{transaction.currency}</p>\n </div>\n {transaction.poNumber && (\n <div>\n <p className=\"text-sm text-muted-foreground\">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-muted-foreground\">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-muted-foreground\">Approved By</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <User className=\"h-4 w-4 text-muted-foreground\" />\n <p className=\"font-medium\">{transaction.approvedBy}</p>\n </div>\n </div>\n )}\n <div>\n <p className=\"text-sm text-muted-foreground\">Date</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Calendar className=\"h-4 w-4 text-muted-foreground\" />\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-muted-foreground\">Vendor</p>\n <p className=\"font-medium\">{transaction.vendor}</p>\n </div>\n )}\n <div>\n <p className=\"text-sm text-muted-foreground\">Department</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Building className=\"h-4 w-4 text-muted-foreground\" />\n <p className=\"font-medium\">{transaction.department}</p>\n </div>\n </div>\n {transaction.relatedAsset && (\n <div>\n <p className=\"text-sm text-muted-foreground\">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-green-500' : 'bg-primary'}`}\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-muted-foreground\">\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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"}
@@ -0,0 +1,2 @@
1
+ export declare function TransactionsTransactionListPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=TransactionsTransactionListPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionsTransactionListPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/TransactionsTransactionListPage.tsx"],"names":[],"mappings":"AAmDA,wBAAgB,+BAA+B,4CAsS9C"}
@@ -0,0 +1,220 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
+ import { tWithFallback as t } from "../utils/i18n.js";
3
+ import { useState as n } from "react";
4
+ import { ArrowUpDown as r, CheckCircle2 as i, Clock as a, DollarSign as o, Download as s, Filter as c, Search as l } from "lucide-react";
5
+ import { Badge as u, Button as d, Card as f, CardContent as p, CardHeader as m, CardTitle as h, Input as g, Select as _, SelectContent as v, SelectItem as y, SelectTrigger as b, SelectValue as x, Table as S, TableBody as C, TableCell as w, TableHead as T, TableHeader as E, TableRow as D } from "@burdenoff/fe-libs/ui";
6
+ import { useI18n as O } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
7
+ import { jsx as k, jsxs as A } from "react/jsx-runtime";
8
+ //#region src/assethandler/pages/TransactionsTransactionListPage.tsx
9
+ var j = {
10
+ purchase: "default",
11
+ lease: "secondary",
12
+ disposal: "destructive",
13
+ transfer: "outline",
14
+ maintenance: "secondary",
15
+ depreciation: "outline"
16
+ }, M = {
17
+ pending: "outline",
18
+ approved: "default",
19
+ completed: "secondary",
20
+ rejected: "destructive",
21
+ cancelled: "outline"
22
+ };
23
+ function N() {
24
+ let { t: N } = O(), { transactions: P } = e(), [F, I] = n(""), [L, R] = n("all"), [z, B] = n("all"), V = P.filter((e) => !(L !== "all" && e.type !== L || z !== "all" && e.status !== z || F && !e.description.toLowerCase().includes(F.toLowerCase()) && !e.id.toLowerCase().includes(F.toLowerCase()))), H = P.filter((e) => e.amount > 0).reduce((e, t) => e + t.amount, 0), U = P.filter((e) => e.status === "pending").length, W = P.filter((e) => e.status === "completed").length, G = (e) => {
25
+ let t = Math.abs(e).toLocaleString("en-US", {
26
+ style: "currency",
27
+ currency: "USD"
28
+ });
29
+ return e < 0 ? `-${t}` : t;
30
+ };
31
+ return /* @__PURE__ */ A("div", {
32
+ className: "space-y-6 p-6",
33
+ children: [
34
+ /* @__PURE__ */ A("div", {
35
+ className: "flex items-center justify-between",
36
+ children: [/* @__PURE__ */ A("div", { children: [/* @__PURE__ */ k("h1", {
37
+ className: "text-2xl font-semibold",
38
+ children: t(N, "assethandler.transactions.title", "Transactions")
39
+ }), /* @__PURE__ */ k("p", {
40
+ className: "text-sm text-muted-foreground",
41
+ children: t(N, "assethandler.transactions.description", "Track all financial transactions related to asset management.")
42
+ })] }), /* @__PURE__ */ A(d, {
43
+ variant: "outline",
44
+ size: "sm",
45
+ children: [/* @__PURE__ */ k(s, { className: "mr-2 h-4 w-4" }), t(N, "assethandler.transactions.actions.export", "Export")]
46
+ })]
47
+ }),
48
+ /* @__PURE__ */ A("div", {
49
+ className: "grid gap-4 md:grid-cols-4",
50
+ children: [
51
+ /* @__PURE__ */ A(f, { children: [/* @__PURE__ */ A(m, {
52
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
53
+ children: [/* @__PURE__ */ k(h, {
54
+ className: "text-sm font-medium",
55
+ children: t(N, "assethandler.transactions.stats.totalTransactions", "Total Transactions")
56
+ }), /* @__PURE__ */ k(r, { className: "h-4 w-4 text-muted-foreground" })]
57
+ }), /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k("div", {
58
+ className: "text-2xl font-bold",
59
+ children: P.length
60
+ }) })] }),
61
+ /* @__PURE__ */ A(f, { children: [/* @__PURE__ */ A(m, {
62
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
63
+ children: [/* @__PURE__ */ k(h, {
64
+ className: "text-sm font-medium",
65
+ children: t(N, "assethandler.transactions.stats.totalSpend", "Total Spend")
66
+ }), /* @__PURE__ */ k(o, { className: "h-4 w-4 text-green-500" })]
67
+ }), /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k("div", {
68
+ className: "text-2xl font-bold",
69
+ children: G(H)
70
+ }) })] }),
71
+ /* @__PURE__ */ A(f, { children: [/* @__PURE__ */ A(m, {
72
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
73
+ children: [/* @__PURE__ */ k(h, {
74
+ className: "text-sm font-medium",
75
+ children: t(N, "assethandler.transactions.stats.pendingApprovals", "Pending Approvals")
76
+ }), /* @__PURE__ */ k(a, { className: "h-4 w-4 text-yellow-500" })]
77
+ }), /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k("div", {
78
+ className: "text-2xl font-bold",
79
+ children: U
80
+ }) })] }),
81
+ /* @__PURE__ */ A(f, { children: [/* @__PURE__ */ A(m, {
82
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
83
+ children: [/* @__PURE__ */ k(h, {
84
+ className: "text-sm font-medium",
85
+ children: t(N, "assethandler.transactions.stats.completed", "Completed")
86
+ }), /* @__PURE__ */ k(i, { className: "h-4 w-4 text-green-500" })]
87
+ }), /* @__PURE__ */ k(p, { children: /* @__PURE__ */ k("div", {
88
+ className: "text-2xl font-bold",
89
+ children: W
90
+ }) })] })
91
+ ]
92
+ }),
93
+ /* @__PURE__ */ A(f, { children: [/* @__PURE__ */ k(m, { children: /* @__PURE__ */ A("div", {
94
+ className: "flex items-center justify-between",
95
+ children: [/* @__PURE__ */ k(h, { children: t(N, "assethandler.transactions.table.title", "All Transactions") }), /* @__PURE__ */ A("div", {
96
+ className: "flex items-center gap-2",
97
+ children: [
98
+ /* @__PURE__ */ A("div", {
99
+ className: "relative",
100
+ children: [/* @__PURE__ */ k(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ k(g, {
101
+ placeholder: t(N, "assethandler.transactions.search.placeholder", "Search..."),
102
+ value: F,
103
+ onChange: (e) => I(e.target.value),
104
+ className: "pl-9 w-[200px]"
105
+ })]
106
+ }),
107
+ /* @__PURE__ */ A(_, {
108
+ value: L,
109
+ onValueChange: R,
110
+ children: [/* @__PURE__ */ A(b, {
111
+ className: "w-[140px]",
112
+ children: [/* @__PURE__ */ k(c, { className: "mr-2 h-4 w-4" }), /* @__PURE__ */ k(x, { placeholder: t(N, "assethandler.transactions.filters.type.placeholder", "Type") })]
113
+ }), /* @__PURE__ */ A(v, { children: [
114
+ /* @__PURE__ */ k(y, {
115
+ value: "all",
116
+ children: t(N, "assethandler.transactions.filters.type.all", "All Types")
117
+ }),
118
+ /* @__PURE__ */ k(y, {
119
+ value: "purchase",
120
+ children: t(N, "assethandler.transactions.filters.type.purchase", "Purchase")
121
+ }),
122
+ /* @__PURE__ */ k(y, {
123
+ value: "lease",
124
+ children: t(N, "assethandler.transactions.filters.type.lease", "Lease")
125
+ }),
126
+ /* @__PURE__ */ k(y, {
127
+ value: "disposal",
128
+ children: t(N, "assethandler.transactions.filters.type.disposal", "Disposal")
129
+ }),
130
+ /* @__PURE__ */ k(y, {
131
+ value: "transfer",
132
+ children: t(N, "assethandler.transactions.filters.type.transfer", "Transfer")
133
+ }),
134
+ /* @__PURE__ */ k(y, {
135
+ value: "maintenance",
136
+ children: t(N, "assethandler.transactions.filters.type.maintenance", "Maintenance")
137
+ })
138
+ ] })]
139
+ }),
140
+ /* @__PURE__ */ A(_, {
141
+ value: z,
142
+ onValueChange: B,
143
+ children: [/* @__PURE__ */ k(b, {
144
+ className: "w-[140px]",
145
+ children: /* @__PURE__ */ k(x, { placeholder: t(N, "assethandler.transactions.filters.status.placeholder", "Status") })
146
+ }), /* @__PURE__ */ A(v, { children: [
147
+ /* @__PURE__ */ k(y, {
148
+ value: "all",
149
+ children: t(N, "assethandler.transactions.filters.status.all", "All Statuses")
150
+ }),
151
+ /* @__PURE__ */ k(y, {
152
+ value: "pending",
153
+ children: t(N, "assethandler.transactions.filters.status.pending", "Pending")
154
+ }),
155
+ /* @__PURE__ */ k(y, {
156
+ value: "approved",
157
+ children: t(N, "assethandler.transactions.filters.status.approved", "Approved")
158
+ }),
159
+ /* @__PURE__ */ k(y, {
160
+ value: "completed",
161
+ children: t(N, "assethandler.transactions.filters.status.completed", "Completed")
162
+ }),
163
+ /* @__PURE__ */ k(y, {
164
+ value: "rejected",
165
+ children: t(N, "assethandler.transactions.filters.status.rejected", "Rejected")
166
+ })
167
+ ] })]
168
+ })
169
+ ]
170
+ })]
171
+ }) }), /* @__PURE__ */ k(p, { children: /* @__PURE__ */ A(S, { children: [/* @__PURE__ */ k(E, { children: /* @__PURE__ */ A(D, { children: [
172
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.id", "ID") }),
173
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.type", "Type") }),
174
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.description", "Description") }),
175
+ /* @__PURE__ */ k(T, {
176
+ className: "text-right",
177
+ children: t(N, "assethandler.transactions.table.amount", "Amount")
178
+ }),
179
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.category", "Category") }),
180
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.date", "Date") }),
181
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.status", "Status") }),
182
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.vendor", "Vendor") }),
183
+ /* @__PURE__ */ k(T, { children: t(N, "assethandler.transactions.table.department", "Department") })
184
+ ] }) }), /* @__PURE__ */ A(C, { children: [V.map((e) => /* @__PURE__ */ A(D, { children: [
185
+ /* @__PURE__ */ k(w, {
186
+ className: "font-mono text-sm",
187
+ children: e.id
188
+ }),
189
+ /* @__PURE__ */ k(w, { children: /* @__PURE__ */ k(u, {
190
+ variant: j[e.type] || "secondary",
191
+ children: e.type
192
+ }) }),
193
+ /* @__PURE__ */ k(w, {
194
+ className: "max-w-[200px] truncate",
195
+ children: e.description
196
+ }),
197
+ /* @__PURE__ */ k(w, {
198
+ className: `text-right font-medium ${e.amount < 0 ? "text-destructive" : ""}`,
199
+ children: G(e.amount)
200
+ }),
201
+ /* @__PURE__ */ k(w, { children: e.category }),
202
+ /* @__PURE__ */ k(w, { children: new Date(e.date).toLocaleDateString() }),
203
+ /* @__PURE__ */ k(w, { children: /* @__PURE__ */ k(u, {
204
+ variant: M[e.status] || "secondary",
205
+ children: e.status
206
+ }) }),
207
+ /* @__PURE__ */ k(w, { children: e.vendor || "—" }),
208
+ /* @__PURE__ */ k(w, { children: e.department })
209
+ ] }, e.id)), V.length === 0 && /* @__PURE__ */ k(D, { children: /* @__PURE__ */ k(w, {
210
+ colSpan: 9,
211
+ className: "text-center text-muted-foreground py-8",
212
+ children: t(N, "assethandler.transactions.empty", "No transactions found.")
213
+ }) })] })] }) })] })
214
+ ]
215
+ });
216
+ }
217
+ //#endregion
218
+ export { N as TransactionsTransactionListPage };
219
+
220
+ //# sourceMappingURL=TransactionsTransactionListPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionsTransactionListPage.js","names":[],"sources":["../../../src/assethandler/pages/TransactionsTransactionListPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Search,\n Filter,\n Download,\n DollarSign,\n Clock,\n CheckCircle2,\n ArrowUpDown,\n} from 'lucide-react';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\nimport { tWithFallback } from '../utils/i18n';\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 statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n pending: 'outline',\n approved: 'default',\n completed: 'secondary',\n rejected: 'destructive',\n cancelled: 'outline',\n};\n\nexport function TransactionsTransactionListPage() {\n const { t } = useI18n();\n const { transactions } = useAssetHandlerStore();\n const [search, setSearch] = useState('');\n const [typeFilter, setTypeFilter] = useState('all');\n const [statusFilter, setStatusFilter] = useState('all');\n\n const filtered = transactions.filter((t) => {\n if (typeFilter !== 'all' && t.type !== typeFilter) return false;\n if (statusFilter !== 'all' && t.status !== statusFilter) return false;\n if (\n search &&\n !t.description.toLowerCase().includes(search.toLowerCase()) &&\n !t.id.toLowerCase().includes(search.toLowerCase())\n )\n return false;\n return true;\n });\n\n const totalSpend = transactions.filter((t) => t.amount > 0).reduce((a, t) => a + t.amount, 0);\n const pending = transactions.filter((t) => t.status === 'pending').length;\n const completed = transactions.filter((t) => t.status === 'completed').length;\n\n const formatAmount = (amount: number) => {\n const formatted = Math.abs(amount).toLocaleString('en-US', {\n style: 'currency',\n currency: 'USD',\n });\n return amount < 0 ? `-${formatted}` : formatted;\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">\n {tWithFallback(t, 'assethandler.transactions.title', 'Transactions')}\n </h1>\n <p className=\"text-sm text-muted-foreground\">\n {tWithFallback(\n t,\n 'assethandler.transactions.description',\n 'Track all financial transactions related to asset management.'\n )}\n </p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n {tWithFallback(t, 'assethandler.transactions.actions.export', 'Export')}\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {tWithFallback(\n t,\n 'assethandler.transactions.stats.totalTransactions',\n 'Total Transactions'\n )}\n </CardTitle>\n <ArrowUpDown className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{transactions.length}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {tWithFallback(t, 'assethandler.transactions.stats.totalSpend', 'Total Spend')}\n </CardTitle>\n <DollarSign className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{formatAmount(totalSpend)}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {tWithFallback(\n t,\n 'assethandler.transactions.stats.pendingApprovals',\n 'Pending Approvals'\n )}\n </CardTitle>\n <Clock className=\"h-4 w-4 text-yellow-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{pending}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">\n {tWithFallback(t, 'assethandler.transactions.stats.completed', 'Completed')}\n </CardTitle>\n <CheckCircle2 className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{completed}</div>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle>\n {tWithFallback(t, 'assethandler.transactions.table.title', 'All Transactions')}\n </CardTitle>\n <div className=\"flex items-center gap-2\">\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder={tWithFallback(\n t,\n 'assethandler.transactions.search.placeholder',\n 'Search...'\n )}\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-9 w-[200px]\"\n />\n </div>\n <Select value={typeFilter} onValueChange={setTypeFilter}>\n <SelectTrigger className=\"w-[140px]\">\n <Filter className=\"mr-2 h-4 w-4\" />\n <SelectValue\n placeholder={tWithFallback(\n t,\n 'assethandler.transactions.filters.type.placeholder',\n 'Type'\n )}\n />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">\n {tWithFallback(t, 'assethandler.transactions.filters.type.all', 'All Types')}\n </SelectItem>\n <SelectItem value=\"purchase\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.type.purchase',\n 'Purchase'\n )}\n </SelectItem>\n <SelectItem value=\"lease\">\n {tWithFallback(t, 'assethandler.transactions.filters.type.lease', 'Lease')}\n </SelectItem>\n <SelectItem value=\"disposal\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.type.disposal',\n 'Disposal'\n )}\n </SelectItem>\n <SelectItem value=\"transfer\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.type.transfer',\n 'Transfer'\n )}\n </SelectItem>\n <SelectItem value=\"maintenance\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.type.maintenance',\n 'Maintenance'\n )}\n </SelectItem>\n </SelectContent>\n </Select>\n <Select value={statusFilter} onValueChange={setStatusFilter}>\n <SelectTrigger className=\"w-[140px]\">\n <SelectValue\n placeholder={tWithFallback(\n t,\n 'assethandler.transactions.filters.status.placeholder',\n 'Status'\n )}\n />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.status.all',\n 'All Statuses'\n )}\n </SelectItem>\n <SelectItem value=\"pending\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.status.pending',\n 'Pending'\n )}\n </SelectItem>\n <SelectItem value=\"approved\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.status.approved',\n 'Approved'\n )}\n </SelectItem>\n <SelectItem value=\"completed\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.status.completed',\n 'Completed'\n )}\n </SelectItem>\n <SelectItem value=\"rejected\">\n {tWithFallback(\n t,\n 'assethandler.transactions.filters.status.rejected',\n 'Rejected'\n )}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.id', 'ID')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.type', 'Type')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.description', 'Description')}\n </TableHead>\n <TableHead className=\"text-right\">\n {tWithFallback(t, 'assethandler.transactions.table.amount', 'Amount')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.category', 'Category')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.date', 'Date')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.status', 'Status')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.vendor', 'Vendor')}\n </TableHead>\n <TableHead>\n {tWithFallback(t, 'assethandler.transactions.table.department', 'Department')}\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filtered.map((t) => (\n <TableRow key={t.id}>\n <TableCell className=\"font-mono text-sm\">{t.id}</TableCell>\n <TableCell>\n <Badge variant={typeColors[t.type] || 'secondary'}>{t.type}</Badge>\n </TableCell>\n <TableCell className=\"max-w-[200px] truncate\">{t.description}</TableCell>\n <TableCell\n className={`text-right font-medium ${t.amount < 0 ? 'text-destructive' : ''}`}\n >\n {formatAmount(t.amount)}\n </TableCell>\n <TableCell>{t.category}</TableCell>\n <TableCell>{new Date(t.date).toLocaleDateString()}</TableCell>\n <TableCell>\n <Badge variant={statusColors[t.status] || 'secondary'}>{t.status}</Badge>\n </TableCell>\n <TableCell>{t.vendor || '—'}</TableCell>\n <TableCell>{t.department}</TableCell>\n </TableRow>\n ))}\n {filtered.length === 0 && (\n <TableRow>\n <TableCell colSpan={9} className=\"text-center text-muted-foreground py-8\">\n {tWithFallback(t, 'assethandler.transactions.empty', 'No transactions found.')}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function UsersPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=UsersPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UsersPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/UsersPage.tsx"],"names":[],"mappings":"AAyCA,wBAAgB,SAAS,4CAoMxB"}