@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,166 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
+ import { Building as t, Clock as n, MapPin as r, Navigation as i, Radio as a, RefreshCw as o, Search as s } from "lucide-react";
3
+ import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardHeader as p, CardTitle as m, Input as h } from "@burdenoff/fe-libs/ui";
4
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
5
+ //#region src/assethandler/pages/AssetsAssetTrackingPage.tsx
6
+ var v = {
7
+ active: "default",
8
+ inactive: "outline",
9
+ under_maintenance: "secondary"
10
+ };
11
+ function y() {
12
+ let { assetLocations: y } = e(), b = y.reduce((e, t) => (e[t.building] || (e[t.building] = []), e[t.building].push(t), e), {});
13
+ return /* @__PURE__ */ _("div", {
14
+ className: "space-y-6 p-6",
15
+ children: [
16
+ /* @__PURE__ */ _("div", {
17
+ className: "flex items-center justify-between",
18
+ children: [/* @__PURE__ */ _("div", { children: [/* @__PURE__ */ g("h1", {
19
+ className: "text-2xl font-bold",
20
+ children: "Asset Tracking"
21
+ }), /* @__PURE__ */ _("p", {
22
+ className: "text-sm text-muted-foreground",
23
+ children: [
24
+ "Real-time location tracking for ",
25
+ y.length,
26
+ " assets"
27
+ ]
28
+ })] }), /* @__PURE__ */ _("div", {
29
+ className: "flex gap-2",
30
+ children: [/* @__PURE__ */ _(l, {
31
+ variant: "outline",
32
+ size: "sm",
33
+ children: [/* @__PURE__ */ g(o, { className: "mr-2 h-4 w-4" }), "Refresh"]
34
+ }), /* @__PURE__ */ _(l, {
35
+ size: "sm",
36
+ children: [/* @__PURE__ */ g(a, { className: "mr-2 h-4 w-4" }), "Track New Asset"]
37
+ })]
38
+ })]
39
+ }),
40
+ /* @__PURE__ */ _("div", {
41
+ className: "grid gap-4 md:grid-cols-4",
42
+ children: [
43
+ /* @__PURE__ */ g(u, { children: /* @__PURE__ */ _(d, {
44
+ className: "pt-4",
45
+ children: [/* @__PURE__ */ _("div", {
46
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
47
+ children: [/* @__PURE__ */ g(a, { className: "h-4 w-4" }), "Tracked Assets"]
48
+ }), /* @__PURE__ */ g("p", {
49
+ className: "text-2xl font-bold mt-1",
50
+ children: y.length
51
+ })]
52
+ }) }),
53
+ /* @__PURE__ */ g(u, { children: /* @__PURE__ */ _(d, {
54
+ className: "pt-4",
55
+ children: [/* @__PURE__ */ _("div", {
56
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
57
+ children: [/* @__PURE__ */ g(t, { className: "h-4 w-4" }), "Buildings"]
58
+ }), /* @__PURE__ */ g("p", {
59
+ className: "text-2xl font-bold mt-1",
60
+ children: Object.keys(b).length
61
+ })]
62
+ }) }),
63
+ /* @__PURE__ */ g(u, { children: /* @__PURE__ */ _(d, {
64
+ className: "pt-4",
65
+ children: [/* @__PURE__ */ _("div", {
66
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
67
+ children: [/* @__PURE__ */ g(i, { className: "h-4 w-4" }), "In Field"]
68
+ }), /* @__PURE__ */ g("p", {
69
+ className: "text-2xl font-bold mt-1",
70
+ children: y.filter((e) => e.building === "Field").length
71
+ })]
72
+ }) }),
73
+ /* @__PURE__ */ g(u, { children: /* @__PURE__ */ _(d, {
74
+ className: "pt-4",
75
+ children: [/* @__PURE__ */ _("div", {
76
+ className: "flex items-center gap-2 text-sm text-muted-foreground",
77
+ children: [/* @__PURE__ */ g(n, { className: "h-4 w-4" }), "Last Update"]
78
+ }), /* @__PURE__ */ g("p", {
79
+ className: "text-lg font-bold mt-1",
80
+ children: "Just now"
81
+ })]
82
+ }) })
83
+ ]
84
+ }),
85
+ /* @__PURE__ */ _("div", {
86
+ className: "grid gap-6 lg:grid-cols-5",
87
+ children: [/* @__PURE__ */ _(u, {
88
+ className: "lg:col-span-3",
89
+ children: [/* @__PURE__ */ _(p, { children: [/* @__PURE__ */ g(m, { children: "Location Map" }), /* @__PURE__ */ g(f, { children: "Geographic distribution of tracked assets" })] }), /* @__PURE__ */ g(d, { children: /* @__PURE__ */ g("div", {
90
+ className: "bg-muted rounded-lg h-80 flex items-center justify-center border-2 border-dashed",
91
+ children: /* @__PURE__ */ _("div", {
92
+ className: "text-center",
93
+ children: [
94
+ /* @__PURE__ */ g(r, { className: "h-12 w-12 text-muted-foreground mx-auto mb-2" }),
95
+ /* @__PURE__ */ g("p", {
96
+ className: "text-muted-foreground",
97
+ children: "Interactive map view"
98
+ }),
99
+ /* @__PURE__ */ g("p", {
100
+ className: "text-xs text-muted-foreground mt-1",
101
+ children: "Map integration would render here"
102
+ })
103
+ ]
104
+ })
105
+ }) })]
106
+ }), /* @__PURE__ */ _(u, {
107
+ className: "lg:col-span-2",
108
+ children: [/* @__PURE__ */ _(p, { children: [/* @__PURE__ */ g(m, { children: "Asset Locations" }), /* @__PURE__ */ _("div", {
109
+ className: "relative mt-2",
110
+ children: [/* @__PURE__ */ g(s, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ g(h, {
111
+ placeholder: "Search assets...",
112
+ className: "pl-9"
113
+ })]
114
+ })] }), /* @__PURE__ */ g(d, { children: /* @__PURE__ */ g("div", {
115
+ className: "space-y-4",
116
+ children: Object.entries(b).map(([e, n]) => /* @__PURE__ */ _("div", { children: [/* @__PURE__ */ _("h4", {
117
+ className: "text-sm font-medium flex items-center gap-2 mb-2",
118
+ children: [
119
+ /* @__PURE__ */ g(t, { className: "h-3.5 w-3.5" }),
120
+ e,
121
+ /* @__PURE__ */ g(c, {
122
+ variant: "secondary",
123
+ className: "text-[10px]",
124
+ children: n.length
125
+ })
126
+ ]
127
+ }), /* @__PURE__ */ g("div", {
128
+ className: "space-y-2 ml-5",
129
+ children: n.map((e) => /* @__PURE__ */ _("div", {
130
+ className: "flex items-start gap-3 rounded border p-2.5",
131
+ children: [/* @__PURE__ */ g(r, { className: "h-3.5 w-3.5 mt-0.5 text-muted-foreground shrink-0" }), /* @__PURE__ */ _("div", {
132
+ className: "flex-1 min-w-0",
133
+ children: [
134
+ /* @__PURE__ */ g("p", {
135
+ className: "text-sm font-medium truncate",
136
+ children: e.assetName
137
+ }),
138
+ /* @__PURE__ */ _("p", {
139
+ className: "text-xs text-muted-foreground",
140
+ children: [e.floor === "-" ? "" : `Floor ${e.floor}, `, e.room]
141
+ }),
142
+ /* @__PURE__ */ _("div", {
143
+ className: "flex items-center gap-2 mt-1",
144
+ children: [/* @__PURE__ */ g(c, {
145
+ variant: v[e.status] || "outline",
146
+ className: "text-[10px]",
147
+ children: e.status.replace("_", " ")
148
+ }), /* @__PURE__ */ _("span", {
149
+ className: "text-[10px] text-muted-foreground",
150
+ children: ["Updated: ", new Date(e.lastUpdated).toLocaleTimeString()]
151
+ })]
152
+ })
153
+ ]
154
+ })]
155
+ }, e.assetId))
156
+ })] }, e))
157
+ }) })]
158
+ })]
159
+ })
160
+ ]
161
+ });
162
+ }
163
+ //#endregion
164
+ export { y as AssetsAssetTrackingPage };
165
+
166
+ //# sourceMappingURL=AssetsAssetTrackingPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetsAssetTrackingPage.js","names":[],"sources":["../../../src/assethandler/pages/AssetsAssetTrackingPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { MapPin, Search, RefreshCw, Radio, Navigation, Building, Clock } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst statusColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n active: 'default',\n inactive: 'outline',\n under_maintenance: 'secondary',\n};\n\nexport function AssetsAssetTrackingPage() {\n const { assetLocations } = useAssetHandlerStore();\n\n const buildingGroups = assetLocations.reduce<Record<string, typeof assetLocations>>(\n (acc, loc) => {\n if (!acc[loc.building]) acc[loc.building] = [];\n acc[loc.building].push(loc);\n return acc;\n },\n {}\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-bold\">Asset Tracking</h1>\n <p className=\"text-sm text-muted-foreground\">\n Real-time location tracking for {assetLocations.length} assets\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <RefreshCw className=\"mr-2 h-4 w-4\" />\n Refresh\n </Button>\n <Button size=\"sm\">\n <Radio className=\"mr-2 h-4 w-4\" />\n Track New Asset\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Radio className=\"h-4 w-4\" />\n Tracked Assets\n </div>\n <p className=\"text-2xl font-bold mt-1\">{assetLocations.length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Building className=\"h-4 w-4\" />\n Buildings\n </div>\n <p className=\"text-2xl font-bold mt-1\">{Object.keys(buildingGroups).length}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Navigation className=\"h-4 w-4\" />\n In Field\n </div>\n <p className=\"text-2xl font-bold mt-1\">\n {assetLocations.filter((l) => l.building === 'Field').length}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Clock className=\"h-4 w-4\" />\n Last Update\n </div>\n <p className=\"text-lg font-bold mt-1\">Just now</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-5\">\n <Card className=\"lg:col-span-3\">\n <CardHeader>\n <CardTitle>Location Map</CardTitle>\n <CardDescription>Geographic distribution of tracked assets</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"bg-muted rounded-lg h-80 flex items-center justify-center border-2 border-dashed\">\n <div className=\"text-center\">\n <MapPin className=\"h-12 w-12 text-muted-foreground mx-auto mb-2\" />\n <p className=\"text-muted-foreground\">Interactive map view</p>\n <p className=\"text-xs text-muted-foreground mt-1\">\n Map integration would render here\n </p>\n </div>\n </div>\n </CardContent>\n </Card>\n\n <Card className=\"lg:col-span-2\">\n <CardHeader>\n <CardTitle>Asset Locations</CardTitle>\n <div className=\"relative mt-2\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input placeholder=\"Search assets...\" className=\"pl-9\" />\n </div>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-4\">\n {Object.entries(buildingGroups).map(([building, locations]) => (\n <div key={building}>\n <h4 className=\"text-sm font-medium flex items-center gap-2 mb-2\">\n <Building className=\"h-3.5 w-3.5\" />\n {building}\n <Badge variant=\"secondary\" className=\"text-[10px]\">\n {locations.length}\n </Badge>\n </h4>\n <div className=\"space-y-2 ml-5\">\n {locations.map((loc) => (\n <div\n key={loc.assetId}\n className=\"flex items-start gap-3 rounded border p-2.5\"\n >\n <MapPin className=\"h-3.5 w-3.5 mt-0.5 text-muted-foreground shrink-0\" />\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">{loc.assetName}</p>\n <p className=\"text-xs text-muted-foreground\">\n {loc.floor !== '-' ? `Floor ${loc.floor}, ` : ''}\n {loc.room}\n </p>\n <div className=\"flex items-center gap-2 mt-1\">\n <Badge\n variant={statusColors[loc.status] || 'outline'}\n className=\"text-[10px]\"\n >\n {loc.status.replace('_', ' ')}\n </Badge>\n <span className=\"text-[10px] text-muted-foreground\">\n Updated: {new Date(loc.lastUpdated).toLocaleTimeString()}\n </span>\n </div>\n </div>\n </div>\n ))}\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 AuditTrailPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=AuditTrailPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditTrailPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/AuditTrailPage.tsx"],"names":[],"mappings":"AA0CA,wBAAgB,cAAc,4CAqM7B"}
@@ -0,0 +1,197 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
+ import { useState as t } from "react";
3
+ import { ArrowRight as n, ChevronDown as r, ChevronRight as i, ClipboardList as a, Download as o, Filter as s, Layers as c, Search as l, Users as u } from "lucide-react";
4
+ import { Badge as d, Button as f, Card as p, CardContent as m, CardHeader as h, CardTitle as g, Input as _, Select as v, SelectContent as y, SelectItem as b, SelectTrigger as x, SelectValue as S, Table as C, TableBody as w, TableCell as T, TableHead as E, TableHeader as D, TableRow as O } from "@burdenoff/fe-libs/ui";
5
+ import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
6
+ //#region src/assethandler/pages/AuditTrailPage.tsx
7
+ var M = {
8
+ "Asset Management": "default",
9
+ ITIL: "secondary",
10
+ "User Management": "outline",
11
+ Finance: "secondary",
12
+ Security: "destructive"
13
+ };
14
+ function N() {
15
+ let { auditEntries: N } = e(), [P, F] = t(""), [I, L] = t("all"), [R, z] = t(null), B = [...new Set(N.map((e) => e.module))], V = N.filter((e) => {
16
+ if (I !== "all" && e.module !== I) return !1;
17
+ if (P) {
18
+ let t = P.toLowerCase();
19
+ return e.action.toLowerCase().includes(t) || e.entityName.toLowerCase().includes(t) || e.userName.toLowerCase().includes(t);
20
+ }
21
+ return !0;
22
+ }), H = [...new Set(N.map((e) => e.module))].length, U = [...new Set(N.map((e) => e.userId))].length;
23
+ return /* @__PURE__ */ j("div", {
24
+ className: "space-y-6 p-6",
25
+ children: [
26
+ /* @__PURE__ */ j("div", {
27
+ className: "flex items-center justify-between",
28
+ children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("h1", {
29
+ className: "text-2xl font-semibold",
30
+ children: "Audit Trail"
31
+ }), /* @__PURE__ */ A("p", {
32
+ className: "text-sm text-muted-foreground",
33
+ children: "Complete log of all system actions, changes, and access events."
34
+ })] }), /* @__PURE__ */ j(f, {
35
+ variant: "outline",
36
+ size: "sm",
37
+ children: [/* @__PURE__ */ A(o, { className: "mr-2 h-4 w-4" }), "Export Log"]
38
+ })]
39
+ }),
40
+ /* @__PURE__ */ j("div", {
41
+ className: "grid gap-4 md:grid-cols-4",
42
+ children: [
43
+ /* @__PURE__ */ j(p, { children: [/* @__PURE__ */ j(h, {
44
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
45
+ children: [/* @__PURE__ */ A(g, {
46
+ className: "text-sm font-medium",
47
+ children: "Total Entries"
48
+ }), /* @__PURE__ */ A(a, { className: "h-4 w-4 text-muted-foreground" })]
49
+ }), /* @__PURE__ */ A(m, { children: /* @__PURE__ */ A("div", {
50
+ className: "text-2xl font-bold",
51
+ children: N.length
52
+ }) })] }),
53
+ /* @__PURE__ */ j(p, { children: [/* @__PURE__ */ j(h, {
54
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
55
+ children: [/* @__PURE__ */ A(g, {
56
+ className: "text-sm font-medium",
57
+ children: "Modules Covered"
58
+ }), /* @__PURE__ */ A(c, { className: "h-4 w-4 text-muted-foreground" })]
59
+ }), /* @__PURE__ */ A(m, { children: /* @__PURE__ */ A("div", {
60
+ className: "text-2xl font-bold",
61
+ children: H
62
+ }) })] }),
63
+ /* @__PURE__ */ j(p, { children: [/* @__PURE__ */ j(h, {
64
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
65
+ children: [/* @__PURE__ */ A(g, {
66
+ className: "text-sm font-medium",
67
+ children: "Active Users"
68
+ }), /* @__PURE__ */ A(u, { className: "h-4 w-4 text-muted-foreground" })]
69
+ }), /* @__PURE__ */ A(m, { children: /* @__PURE__ */ A("div", {
70
+ className: "text-2xl font-bold",
71
+ children: U
72
+ }) })] }),
73
+ /* @__PURE__ */ j(p, { children: [/* @__PURE__ */ j(h, {
74
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
75
+ children: [/* @__PURE__ */ A(g, {
76
+ className: "text-sm font-medium",
77
+ children: "Today"
78
+ }), /* @__PURE__ */ A(n, { className: "h-4 w-4 text-muted-foreground" })]
79
+ }), /* @__PURE__ */ j(m, { children: [/* @__PURE__ */ A("div", {
80
+ className: "text-2xl font-bold",
81
+ children: N.filter((e) => new Date(e.timestamp).toDateString() === (/* @__PURE__ */ new Date()).toDateString()).length
82
+ }), /* @__PURE__ */ A("p", {
83
+ className: "text-xs text-muted-foreground",
84
+ children: "Actions today"
85
+ })] })] })
86
+ ]
87
+ }),
88
+ /* @__PURE__ */ j(p, { children: [/* @__PURE__ */ A(h, { children: /* @__PURE__ */ j("div", {
89
+ className: "flex items-center justify-between",
90
+ children: [/* @__PURE__ */ A(g, { children: "Audit Log" }), /* @__PURE__ */ j("div", {
91
+ className: "flex items-center gap-2",
92
+ children: [/* @__PURE__ */ j("div", {
93
+ className: "relative",
94
+ children: [/* @__PURE__ */ A(l, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ A(_, {
95
+ placeholder: "Search entries...",
96
+ value: P,
97
+ onChange: (e) => F(e.target.value),
98
+ className: "pl-9 w-[200px]"
99
+ })]
100
+ }), /* @__PURE__ */ j(v, {
101
+ value: I,
102
+ onValueChange: L,
103
+ children: [/* @__PURE__ */ j(x, {
104
+ className: "w-[180px]",
105
+ children: [/* @__PURE__ */ A(s, { className: "mr-2 h-4 w-4" }), /* @__PURE__ */ A(S, { placeholder: "Module" })]
106
+ }), /* @__PURE__ */ j(y, { children: [/* @__PURE__ */ A(b, {
107
+ value: "all",
108
+ children: "All Modules"
109
+ }), B.map((e) => /* @__PURE__ */ A(b, {
110
+ value: e,
111
+ children: e
112
+ }, e))] })]
113
+ })]
114
+ })]
115
+ }) }), /* @__PURE__ */ A(m, { children: /* @__PURE__ */ j(C, { children: [/* @__PURE__ */ A(D, { children: /* @__PURE__ */ j(O, { children: [
116
+ /* @__PURE__ */ A(E, { className: "w-8" }),
117
+ /* @__PURE__ */ A(E, { children: "Timestamp" }),
118
+ /* @__PURE__ */ A(E, { children: "User" }),
119
+ /* @__PURE__ */ A(E, { children: "Action" }),
120
+ /* @__PURE__ */ A(E, { children: "Module" }),
121
+ /* @__PURE__ */ A(E, { children: "Entity Type" }),
122
+ /* @__PURE__ */ A(E, { children: "Entity" }),
123
+ /* @__PURE__ */ A(E, { children: "IP Address" })
124
+ ] }) }), /* @__PURE__ */ j(w, { children: [V.map((e) => /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ j(O, {
125
+ className: "cursor-pointer hover:bg-muted/50",
126
+ onClick: () => z(R === e.id ? null : e.id),
127
+ children: [
128
+ /* @__PURE__ */ A(T, { children: e.changes.length > 0 && (R === e.id ? /* @__PURE__ */ A(r, { className: "h-4 w-4 text-muted-foreground" }) : /* @__PURE__ */ A(i, { className: "h-4 w-4 text-muted-foreground" })) }),
129
+ /* @__PURE__ */ A(T, {
130
+ className: "text-sm",
131
+ children: new Date(e.timestamp).toLocaleString()
132
+ }),
133
+ /* @__PURE__ */ A(T, {
134
+ className: "font-medium",
135
+ children: e.userName
136
+ }),
137
+ /* @__PURE__ */ A(T, { children: e.action }),
138
+ /* @__PURE__ */ A(T, { children: /* @__PURE__ */ A(d, {
139
+ variant: M[e.module] || "secondary",
140
+ children: e.module
141
+ }) }),
142
+ /* @__PURE__ */ A(T, { children: e.entityType }),
143
+ /* @__PURE__ */ j(T, { children: [/* @__PURE__ */ A("span", {
144
+ className: "font-mono text-xs",
145
+ children: e.entityId
146
+ }), /* @__PURE__ */ j("span", {
147
+ className: "ml-1 text-muted-foreground",
148
+ children: [
149
+ "(",
150
+ e.entityName,
151
+ ")"
152
+ ]
153
+ })] }),
154
+ /* @__PURE__ */ A(T, {
155
+ className: "font-mono text-sm",
156
+ children: e.ipAddress
157
+ })
158
+ ]
159
+ }, e.id), R === e.id && e.changes.length > 0 && /* @__PURE__ */ A(O, { children: /* @__PURE__ */ j(T, {
160
+ colSpan: 8,
161
+ className: "bg-muted/30 p-4",
162
+ children: [/* @__PURE__ */ A("p", {
163
+ className: "text-sm font-medium mb-2",
164
+ children: "Changes:"
165
+ }), /* @__PURE__ */ A("div", {
166
+ className: "space-y-1",
167
+ children: e.changes.map((e, t) => /* @__PURE__ */ j("div", {
168
+ className: "flex items-center gap-2 text-sm",
169
+ children: [
170
+ /* @__PURE__ */ A("span", {
171
+ className: "font-medium w-28",
172
+ children: e.field
173
+ }),
174
+ /* @__PURE__ */ A("span", {
175
+ className: "text-destructive line-through",
176
+ children: e.oldValue || "(empty)"
177
+ }),
178
+ /* @__PURE__ */ A(n, { className: "h-3 w-3 text-muted-foreground" }),
179
+ /* @__PURE__ */ A("span", {
180
+ className: "text-green-600",
181
+ children: e.newValue
182
+ })
183
+ ]
184
+ }, t))
185
+ })]
186
+ }) }, `${e.id}-changes`)] })), V.length === 0 && /* @__PURE__ */ A(O, { children: /* @__PURE__ */ A(T, {
187
+ colSpan: 8,
188
+ className: "text-center text-muted-foreground py-8",
189
+ children: "No audit entries found."
190
+ }) })] })] }) })] })
191
+ ]
192
+ });
193
+ }
194
+ //#endregion
195
+ export { N as AuditTrailPage };
196
+
197
+ //# sourceMappingURL=AuditTrailPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditTrailPage.js","names":[],"sources":["../../../src/assethandler/pages/AuditTrailPage.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 Download,\n Filter,\n ClipboardList,\n Users,\n Layers,\n ArrowRight,\n ChevronDown,\n ChevronRight,\n} from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst moduleColors: Record<string, 'default' | 'secondary' | 'destructive' | 'outline'> = {\n 'Asset Management': 'default',\n ITIL: 'secondary',\n 'User Management': 'outline',\n Finance: 'secondary',\n Security: 'destructive',\n};\n\nexport function AuditTrailPage() {\n const { auditEntries } = useAssetHandlerStore();\n const [search, setSearch] = useState('');\n const [moduleFilter, setModuleFilter] = useState('all');\n const [expandedRow, setExpandedRow] = useState<string | null>(null);\n\n const modules = [...new Set(auditEntries.map((e) => e.module))];\n\n const filtered = auditEntries.filter((e) => {\n if (moduleFilter !== 'all' && e.module !== moduleFilter) return false;\n if (search) {\n const q = search.toLowerCase();\n return (\n e.action.toLowerCase().includes(q) ||\n e.entityName.toLowerCase().includes(q) ||\n e.userName.toLowerCase().includes(q)\n );\n }\n return true;\n });\n\n const uniqueModules = [...new Set(auditEntries.map((e) => e.module))].length;\n const uniqueUsers = [...new Set(auditEntries.map((e) => e.userId))].length;\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\">Audit Trail</h1>\n <p className=\"text-sm text-muted-foreground\">\n Complete log of all system actions, changes, and access events.\n </p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n Export Log\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\">Total Entries</CardTitle>\n <ClipboardList className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{auditEntries.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\">Modules Covered</CardTitle>\n <Layers className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{uniqueModules}</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\">Active Users</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{uniqueUsers}</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\">Today</CardTitle>\n <ArrowRight className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {\n auditEntries.filter(\n (e) => new Date(e.timestamp).toDateString() === new Date().toDateString()\n ).length\n }\n </div>\n <p className=\"text-xs text-muted-foreground\">Actions today</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle>Audit Log</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=\"Search entries...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-9 w-[200px]\"\n />\n </div>\n <Select value={moduleFilter} onValueChange={setModuleFilter}>\n <SelectTrigger className=\"w-[180px]\">\n <Filter className=\"mr-2 h-4 w-4\" />\n <SelectValue placeholder=\"Module\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Modules</SelectItem>\n {modules.map((m) => (\n <SelectItem key={m} value={m}>\n {m}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-8\"></TableHead>\n <TableHead>Timestamp</TableHead>\n <TableHead>User</TableHead>\n <TableHead>Action</TableHead>\n <TableHead>Module</TableHead>\n <TableHead>Entity Type</TableHead>\n <TableHead>Entity</TableHead>\n <TableHead>IP Address</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filtered.map((entry) => (\n <>\n <TableRow\n key={entry.id}\n className=\"cursor-pointer hover:bg-muted/50\"\n onClick={() => setExpandedRow(expandedRow === entry.id ? null : entry.id)}\n >\n <TableCell>\n {entry.changes.length > 0 &&\n (expandedRow === entry.id ? (\n <ChevronDown className=\"h-4 w-4 text-muted-foreground\" />\n ) : (\n <ChevronRight className=\"h-4 w-4 text-muted-foreground\" />\n ))}\n </TableCell>\n <TableCell className=\"text-sm\">\n {new Date(entry.timestamp).toLocaleString()}\n </TableCell>\n <TableCell className=\"font-medium\">{entry.userName}</TableCell>\n <TableCell>{entry.action}</TableCell>\n <TableCell>\n <Badge variant={moduleColors[entry.module] || 'secondary'}>\n {entry.module}\n </Badge>\n </TableCell>\n <TableCell>{entry.entityType}</TableCell>\n <TableCell>\n <span className=\"font-mono text-xs\">{entry.entityId}</span>\n <span className=\"ml-1 text-muted-foreground\">({entry.entityName})</span>\n </TableCell>\n <TableCell className=\"font-mono text-sm\">{entry.ipAddress}</TableCell>\n </TableRow>\n {expandedRow === entry.id && entry.changes.length > 0 && (\n <TableRow key={`${entry.id}-changes`}>\n <TableCell colSpan={8} className=\"bg-muted/30 p-4\">\n <p className=\"text-sm font-medium mb-2\">Changes:</p>\n <div className=\"space-y-1\">\n {entry.changes.map((change, i) => (\n <div key={i} className=\"flex items-center gap-2 text-sm\">\n <span className=\"font-medium w-28\">{change.field}</span>\n <span className=\"text-destructive line-through\">\n {change.oldValue || '(empty)'}\n </span>\n <ArrowRight className=\"h-3 w-3 text-muted-foreground\" />\n <span className=\"text-green-600\">{change.newValue}</span>\n </div>\n ))}\n </div>\n </TableCell>\n </TableRow>\n )}\n </>\n ))}\n {filtered.length === 0 && (\n <TableRow>\n <TableCell colSpan={8} className=\"text-center text-muted-foreground py-8\">\n No audit entries 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 CmdbBrowserPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=CmdbBrowserPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CmdbBrowserPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/CmdbBrowserPage.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,eAAe,4CAyD9B"}
@@ -0,0 +1,75 @@
1
+ import { Network as e } from "lucide-react";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
+ import { gql as r } from "@apollo/client";
4
+ import { useQuery as i } from "@apollo/client/react";
5
+ //#region src/assethandler/pages/CmdbBrowserPage.tsx
6
+ var a = r`
7
+ query AssetHandlerConfigurationItems {
8
+ configurationItems {
9
+ id
10
+ ciNumber
11
+ name
12
+ ciType
13
+ status
14
+ environment
15
+ owner
16
+ updatedAt
17
+ }
18
+ }
19
+ `;
20
+ function o() {
21
+ let { data: r, loading: o } = i(a, { fetchPolicy: "cache-and-network" }), s = r?.configurationItems ?? [];
22
+ return /* @__PURE__ */ n("div", {
23
+ className: "space-y-4 p-4",
24
+ children: [
25
+ /* @__PURE__ */ n("h1", {
26
+ className: "flex items-center gap-2 text-2xl font-semibold",
27
+ children: [/* @__PURE__ */ t(e, { className: "h-6 w-6" }), " CMDB Browser"]
28
+ }),
29
+ /* @__PURE__ */ t("p", {
30
+ className: "text-muted-foreground",
31
+ children: "Browse configuration items and relationship topology from the CMDB domain."
32
+ }),
33
+ /* @__PURE__ */ n("div", {
34
+ className: "rounded-lg border",
35
+ children: [
36
+ /* @__PURE__ */ n("div", {
37
+ className: "grid grid-cols-5 gap-3 border-b px-4 py-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground",
38
+ children: [
39
+ /* @__PURE__ */ t("span", { children: "CI Number" }),
40
+ /* @__PURE__ */ t("span", { children: "Name" }),
41
+ /* @__PURE__ */ t("span", { children: "Type" }),
42
+ /* @__PURE__ */ t("span", { children: "Status" }),
43
+ /* @__PURE__ */ t("span", { children: "Environment" })
44
+ ]
45
+ }),
46
+ o && s.length === 0 ? /* @__PURE__ */ t("div", {
47
+ className: "px-4 py-4 text-sm text-muted-foreground",
48
+ children: "Loading configuration items..."
49
+ }) : null,
50
+ !o && s.length === 0 ? /* @__PURE__ */ t("div", {
51
+ className: "px-4 py-4 text-sm text-muted-foreground",
52
+ children: "No configuration items found."
53
+ }) : null,
54
+ s.map((e) => /* @__PURE__ */ n("div", {
55
+ className: "grid grid-cols-5 gap-3 border-b px-4 py-3 text-sm last:border-b-0",
56
+ children: [
57
+ /* @__PURE__ */ t("span", {
58
+ className: "font-medium",
59
+ children: e.ciNumber
60
+ }),
61
+ /* @__PURE__ */ t("span", { children: e.name }),
62
+ /* @__PURE__ */ t("span", { children: e.ciType }),
63
+ /* @__PURE__ */ t("span", { children: e.status }),
64
+ /* @__PURE__ */ t("span", { children: e.environment ?? "n/a" })
65
+ ]
66
+ }, e.id))
67
+ ]
68
+ })
69
+ ]
70
+ });
71
+ }
72
+ //#endregion
73
+ export { o as CmdbBrowserPage };
74
+
75
+ //# sourceMappingURL=CmdbBrowserPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CmdbBrowserPage.js","names":[],"sources":["../../../src/assethandler/pages/CmdbBrowserPage.tsx"],"sourcesContent":["import { Network } from 'lucide-react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\n\nconst CONFIGURATION_ITEMS_QUERY = gql`\n query AssetHandlerConfigurationItems {\n configurationItems {\n id\n ciNumber\n name\n ciType\n status\n environment\n owner\n updatedAt\n }\n }\n`;\n\nexport function CmdbBrowserPage() {\n const { data, loading } = useQuery<{\n configurationItems: Array<{\n id: string;\n ciNumber: string;\n name: string;\n ciType: string;\n status: string;\n environment: string | null;\n owner: string | null;\n updatedAt: string;\n }>;\n }>(CONFIGURATION_ITEMS_QUERY, { fetchPolicy: 'cache-and-network' });\n\n const cis = data?.configurationItems ?? [];\n\n return (\n <div className=\"space-y-4 p-4\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <Network className=\"h-6 w-6\" /> CMDB Browser\n </h1>\n <p className=\"text-muted-foreground\">\n Browse configuration items and relationship topology from the CMDB domain.\n </p>\n <div className=\"rounded-lg border\">\n <div className=\"grid grid-cols-5 gap-3 border-b px-4 py-3 text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n <span>CI Number</span>\n <span>Name</span>\n <span>Type</span>\n <span>Status</span>\n <span>Environment</span>\n </div>\n {loading && cis.length === 0 ? (\n <div className=\"px-4 py-4 text-sm text-muted-foreground\">\n Loading configuration items...\n </div>\n ) : null}\n {!loading && cis.length === 0 ? (\n <div className=\"px-4 py-4 text-sm text-muted-foreground\">\n No configuration items found.\n </div>\n ) : null}\n {cis.map((ci) => (\n <div\n key={ci.id}\n className=\"grid grid-cols-5 gap-3 border-b px-4 py-3 text-sm last:border-b-0\"\n >\n <span className=\"font-medium\">{ci.ciNumber}</span>\n <span>{ci.name}</span>\n <span>{ci.ciType}</span>\n <span>{ci.status}</span>\n <span>{ci.environment ?? 'n/a'}</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,IAAM,IAA4B,CAAG;;;;;;;;;;;;;;AAerC,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,eAAY,EAWvB,GAA2B,EAAE,aAAa,qBAAqB,CAAC,EAE7D,IAAM,GAAM,sBAAsB,EAAE;AAE1C,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAAA,gBAC5B;;GACL,kBAAC,KAAD;IAAG,WAAU;cAAwB;IAEjC,CAAA;GACJ,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,OAAD;MAAK,WAAU;gBAAf;OACE,kBAAC,QAAD,EAAA,UAAM,aAAgB,CAAA;OACtB,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;OACjB,kBAAC,QAAD,EAAA,UAAM,QAAW,CAAA;OACjB,kBAAC,QAAD,EAAA,UAAM,UAAa,CAAA;OACnB,kBAAC,QAAD,EAAA,UAAM,eAAkB,CAAA;OACpB;;KACL,KAAW,EAAI,WAAW,IACzB,kBAAC,OAAD;MAAK,WAAU;gBAA0C;MAEnD,CAAA,GACJ;KACH,CAAC,KAAW,EAAI,WAAW,IAC1B,kBAAC,OAAD;MAAK,WAAU;gBAA0C;MAEnD,CAAA,GACJ;KACH,EAAI,KAAK,MACR,kBAAC,OAAD;MAEE,WAAU;gBAFZ;OAIE,kBAAC,QAAD;QAAM,WAAU;kBAAe,EAAG;QAAgB,CAAA;OAClD,kBAAC,QAAD,EAAA,UAAO,EAAG,MAAY,CAAA;OACtB,kBAAC,QAAD,EAAA,UAAO,EAAG,QAAc,CAAA;OACxB,kBAAC,QAAD,EAAA,UAAO,EAAG,QAAc,CAAA;OACxB,kBAAC,QAAD,EAAA,UAAO,EAAG,eAAe,OAAa,CAAA;OAClC;QARC,EAAG,GAQJ,CACN;KACE;;GACF"}
@@ -0,0 +1,2 @@
1
+ export declare function DashboardPage(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=DashboardPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/DashboardPage.tsx"],"names":[],"mappings":"AA6BA,wBAAgB,aAAa,4CA+Z5B"}