@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,576 @@
1
+ import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
2
+ import { useState as t } from "react";
3
+ import { Activity as n, ArrowUpRight as r, BarChart3 as i, Box as a, DollarSign as o, Download as s, PieChart as c, TrendingDown as l } from "lucide-react";
4
+ import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g, Separator as _, Tabs as v, TabsContent as y, TabsList as b, TabsTrigger as x } from "@burdenoff/fe-libs/ui";
5
+ import { jsx as S, jsxs as C } from "react/jsx-runtime";
6
+ //#region src/assethandler/pages/AnalyticsPage.tsx
7
+ function w() {
8
+ let { assets: w, portfolio: T, transactions: E, incidents: D, maintenanceRecords: O, workflows: k } = e(), [A, j] = t("30d"), M = w.reduce((e, t) => e + t.currentValue, 0), N = w.reduce((e, t) => e + t.value, 0), P = N - M, F = N > 0 ? (P / N * 100).toFixed(1) : "0", I = w.length > 0 ? Math.round(M / w.length) : 0, L = w.reduce((e, t) => {
9
+ let n = t.category.replace("_", " ");
10
+ return e[n] || (e[n] = {
11
+ count: 0,
12
+ value: 0
13
+ }), e[n].count++, e[n].value += t.currentValue, e;
14
+ }, {}), R = w.reduce((e, t) => (e[t.status] = (e[t.status] || 0) + 1, e), {}), z = w.reduce((e, t) => (e[t.department] || (e[t.department] = {
15
+ count: 0,
16
+ value: 0
17
+ }), e[t.department].count++, e[t.department].value += t.currentValue, e), {}), B = D.filter((e) => e.status === "resolved" || e.status === "closed"), V = D.filter((e) => e.slaBreached), H = O.filter((e) => e.status === "completed"), U = O.reduce((e, t) => e + t.cost, 0);
18
+ return /* @__PURE__ */ C("div", {
19
+ className: "space-y-6 p-6",
20
+ children: [/* @__PURE__ */ C("div", {
21
+ className: "flex items-center justify-between",
22
+ children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h1", {
23
+ className: "text-3xl font-bold",
24
+ children: "Analytics & Business Intelligence"
25
+ }), /* @__PURE__ */ S("p", {
26
+ className: "text-sm text-muted-foreground mt-1",
27
+ children: "Comprehensive asset management analytics and insights"
28
+ })] }), /* @__PURE__ */ C("div", {
29
+ className: "flex gap-2",
30
+ children: [
31
+ /* @__PURE__ */ C("select", {
32
+ value: A,
33
+ onChange: (e) => j(e.target.value),
34
+ className: "rounded-md border border-input bg-background px-3 py-1.5 text-sm",
35
+ children: [
36
+ /* @__PURE__ */ S("option", {
37
+ value: "7d",
38
+ children: "Last 7 days"
39
+ }),
40
+ /* @__PURE__ */ S("option", {
41
+ value: "30d",
42
+ children: "Last 30 days"
43
+ }),
44
+ /* @__PURE__ */ S("option", {
45
+ value: "90d",
46
+ children: "Last 90 days"
47
+ }),
48
+ /* @__PURE__ */ S("option", {
49
+ value: "1y",
50
+ children: "Last year"
51
+ })
52
+ ]
53
+ }),
54
+ /* @__PURE__ */ C(d, {
55
+ variant: "outline",
56
+ size: "sm",
57
+ children: [/* @__PURE__ */ S(s, { className: "mr-2 h-4 w-4" }), "Export"]
58
+ }),
59
+ /* @__PURE__ */ S(d, {
60
+ size: "sm",
61
+ children: "Generate Report"
62
+ })
63
+ ]
64
+ })]
65
+ }), /* @__PURE__ */ C(v, {
66
+ defaultValue: "overview",
67
+ children: [
68
+ /* @__PURE__ */ C(b, { children: [
69
+ /* @__PURE__ */ S(x, {
70
+ value: "overview",
71
+ children: "Overview"
72
+ }),
73
+ /* @__PURE__ */ S(x, {
74
+ value: "financial",
75
+ children: "Financial"
76
+ }),
77
+ /* @__PURE__ */ S(x, {
78
+ value: "operational",
79
+ children: "Operational"
80
+ }),
81
+ /* @__PURE__ */ S(x, {
82
+ value: "insights",
83
+ children: "Insights"
84
+ })
85
+ ] }),
86
+ /* @__PURE__ */ C(y, {
87
+ value: "overview",
88
+ className: "space-y-6 mt-6",
89
+ children: [
90
+ /* @__PURE__ */ C("div", {
91
+ className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
92
+ children: [
93
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, {
94
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
95
+ children: [/* @__PURE__ */ S(g, {
96
+ className: "text-sm font-medium",
97
+ children: "Total Portfolio Value"
98
+ }), /* @__PURE__ */ S(o, { className: "h-4 w-4 text-muted-foreground" })]
99
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ C("div", {
100
+ className: "text-2xl font-bold",
101
+ children: ["$", T.totalValue.toLocaleString()]
102
+ }), /* @__PURE__ */ C("p", {
103
+ className: "text-xs text-muted-foreground flex items-center mt-1",
104
+ children: [
105
+ /* @__PURE__ */ S(r, { className: "mr-1 h-3 w-3 text-green-600" }),
106
+ /* @__PURE__ */ S("span", {
107
+ className: "text-green-600",
108
+ children: "+5.6%"
109
+ }),
110
+ " from last quarter"
111
+ ]
112
+ })] })] }),
113
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, {
114
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
115
+ children: [/* @__PURE__ */ S(g, {
116
+ className: "text-sm font-medium",
117
+ children: "Total Depreciation"
118
+ }), /* @__PURE__ */ S(l, { className: "h-4 w-4 text-muted-foreground" })]
119
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ C("div", {
120
+ className: "text-2xl font-bold text-red-600",
121
+ children: ["-$", P.toLocaleString()]
122
+ }), /* @__PURE__ */ C("p", {
123
+ className: "text-xs text-muted-foreground",
124
+ children: [F, "% of original value"]
125
+ })] })] }),
126
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, {
127
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
128
+ children: [/* @__PURE__ */ S(g, {
129
+ className: "text-sm font-medium",
130
+ children: "Total Assets"
131
+ }), /* @__PURE__ */ S(a, { className: "h-4 w-4 text-muted-foreground" })]
132
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
133
+ className: "text-2xl font-bold",
134
+ children: T.totalAssets
135
+ }), /* @__PURE__ */ C("p", {
136
+ className: "text-xs text-muted-foreground",
137
+ children: [w.filter((e) => e.status === "active").length, " currently active"]
138
+ })] })] }),
139
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, {
140
+ className: "flex flex-row items-center justify-between space-y-0 pb-2",
141
+ children: [/* @__PURE__ */ S(g, {
142
+ className: "text-sm font-medium",
143
+ children: "Avg. Asset Value"
144
+ }), /* @__PURE__ */ S(i, { className: "h-4 w-4 text-muted-foreground" })]
145
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ C("div", {
146
+ className: "text-2xl font-bold",
147
+ children: ["$", I.toLocaleString()]
148
+ }), /* @__PURE__ */ S("p", {
149
+ className: "text-xs text-muted-foreground",
150
+ children: "Across all categories"
151
+ })] })] })
152
+ ]
153
+ }),
154
+ /* @__PURE__ */ C("div", {
155
+ className: "grid gap-6 lg:grid-cols-2",
156
+ children: [/* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, { children: [/* @__PURE__ */ C(g, {
157
+ className: "flex items-center gap-2",
158
+ children: [/* @__PURE__ */ S(c, { className: "h-4 w-4" }), "Category Distribution"]
159
+ }), /* @__PURE__ */ S(m, { children: "Assets by category with values" })] }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ S("div", {
160
+ className: "space-y-3",
161
+ children: Object.entries(L).sort((e, t) => t[1].value - e[1].value).map(([e, t]) => {
162
+ let n = Math.round(t.count / w.length * 100);
163
+ return /* @__PURE__ */ C("div", {
164
+ className: "space-y-1",
165
+ children: [/* @__PURE__ */ C("div", {
166
+ className: "flex items-center justify-between text-sm",
167
+ children: [/* @__PURE__ */ S("span", {
168
+ className: "font-medium capitalize",
169
+ children: e
170
+ }), /* @__PURE__ */ C("span", {
171
+ className: "text-muted-foreground",
172
+ children: [
173
+ t.count,
174
+ " · $",
175
+ (t.value / 1e3).toFixed(1),
176
+ "K"
177
+ ]
178
+ })]
179
+ }), /* @__PURE__ */ S("div", {
180
+ className: "h-2 rounded-full bg-muted overflow-hidden",
181
+ children: /* @__PURE__ */ S("div", {
182
+ className: "h-full rounded-full bg-primary",
183
+ style: { width: `${n}%` }
184
+ })
185
+ })]
186
+ }, e);
187
+ })
188
+ }) })] }), /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, { children: [/* @__PURE__ */ C(g, {
189
+ className: "flex items-center gap-2",
190
+ children: [/* @__PURE__ */ S(n, { className: "h-4 w-4" }), "Status Breakdown"]
191
+ }), /* @__PURE__ */ S(m, { children: "Current asset status distribution" })] }), /* @__PURE__ */ C(p, { children: [
192
+ /* @__PURE__ */ S("div", {
193
+ className: "space-y-3",
194
+ children: Object.entries(R).map(([e, t]) => {
195
+ let n = Math.round(t / w.length * 100);
196
+ return /* @__PURE__ */ C("div", {
197
+ className: "flex items-center justify-between",
198
+ children: [/* @__PURE__ */ S("div", {
199
+ className: "flex items-center gap-2",
200
+ children: /* @__PURE__ */ S(u, {
201
+ variant: e === "active" ? "default" : e === "under_maintenance" ? "secondary" : "outline",
202
+ children: e.replace("_", " ")
203
+ })
204
+ }), /* @__PURE__ */ C("div", {
205
+ className: "flex items-center gap-3",
206
+ children: [/* @__PURE__ */ S("div", {
207
+ className: "h-2 w-24 rounded-full bg-muted overflow-hidden",
208
+ children: /* @__PURE__ */ S("div", {
209
+ className: "h-full rounded-full bg-primary",
210
+ style: { width: `${n}%` }
211
+ })
212
+ }), /* @__PURE__ */ S("span", {
213
+ className: "text-sm font-medium w-8 text-right",
214
+ children: t
215
+ })]
216
+ })]
217
+ }, e);
218
+ })
219
+ }),
220
+ /* @__PURE__ */ S(_, { className: "my-4" }),
221
+ /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h4", {
222
+ className: "text-sm font-medium mb-3",
223
+ children: "By Department"
224
+ }), /* @__PURE__ */ S("div", {
225
+ className: "space-y-2",
226
+ children: Object.entries(z).sort((e, t) => t[1].count - e[1].count).slice(0, 5).map(([e, t]) => /* @__PURE__ */ C("div", {
227
+ className: "flex items-center justify-between text-sm",
228
+ children: [/* @__PURE__ */ S("span", { children: e }), /* @__PURE__ */ C("span", {
229
+ className: "text-muted-foreground",
230
+ children: [t.count, " assets"]
231
+ })]
232
+ }, e))
233
+ })] })
234
+ ] })] })]
235
+ }),
236
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, { children: [/* @__PURE__ */ S(g, { children: "Depreciation Trend" }), /* @__PURE__ */ S(m, { children: "Portfolio depreciation over the last 6 months" })] }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ S("div", {
237
+ className: "flex items-end gap-2 h-40",
238
+ children: T.depreciationTrend.map((e) => {
239
+ let t = Math.max(...T.depreciationTrend.map((e) => e.value)), n = t > 0 ? e.value / t * 100 : 0;
240
+ return /* @__PURE__ */ C("div", {
241
+ className: "flex-1 flex flex-col items-center gap-1",
242
+ children: [
243
+ /* @__PURE__ */ C("span", {
244
+ className: "text-[10px] text-muted-foreground",
245
+ children: [
246
+ "$",
247
+ (e.value / 1e6).toFixed(2),
248
+ "M"
249
+ ]
250
+ }),
251
+ /* @__PURE__ */ S("div", {
252
+ className: "w-full bg-primary/80 rounded-t",
253
+ style: { height: `${n}%` }
254
+ }),
255
+ /* @__PURE__ */ S("span", {
256
+ className: "text-[10px] text-muted-foreground",
257
+ children: e.month.replace(" 20", "'")
258
+ })
259
+ ]
260
+ }, e.month);
261
+ })
262
+ }) })] })
263
+ ]
264
+ }),
265
+ /* @__PURE__ */ C(y, {
266
+ value: "financial",
267
+ className: "space-y-6 mt-6",
268
+ children: [
269
+ /* @__PURE__ */ C("div", {
270
+ className: "grid gap-4 md:grid-cols-3",
271
+ children: [
272
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
273
+ className: "pb-2",
274
+ children: /* @__PURE__ */ S(g, {
275
+ className: "text-sm font-medium",
276
+ children: "Total Transactions"
277
+ })
278
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
279
+ className: "text-2xl font-bold",
280
+ children: E.length
281
+ }), /* @__PURE__ */ C("p", {
282
+ className: "text-xs text-muted-foreground",
283
+ children: [
284
+ "$",
285
+ E.reduce((e, t) => e + Math.abs(t.amount), 0).toLocaleString(),
286
+ " total value"
287
+ ]
288
+ })] })] }),
289
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
290
+ className: "pb-2",
291
+ children: /* @__PURE__ */ S(g, {
292
+ className: "text-sm font-medium",
293
+ children: "Maintenance Cost"
294
+ })
295
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ C("div", {
296
+ className: "text-2xl font-bold",
297
+ children: ["$", U.toLocaleString()]
298
+ }), /* @__PURE__ */ C("p", {
299
+ className: "text-xs text-muted-foreground",
300
+ children: [O.length, " maintenance records"]
301
+ })] })] }),
302
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
303
+ className: "pb-2",
304
+ children: /* @__PURE__ */ S(g, {
305
+ className: "text-sm font-medium",
306
+ children: "Acquisitions (6mo)"
307
+ })
308
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
309
+ className: "text-2xl font-bold",
310
+ children: T.acquisitionTrend.reduce((e, t) => e + t.count, 0)
311
+ }), /* @__PURE__ */ C("p", {
312
+ className: "text-xs text-muted-foreground",
313
+ children: [
314
+ "$",
315
+ (T.acquisitionTrend.reduce((e, t) => e + t.value, 0) / 1e3).toFixed(0),
316
+ "K total spend"
317
+ ]
318
+ })] })] })
319
+ ]
320
+ }),
321
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, { children: [/* @__PURE__ */ S(g, { children: "Acquisition Trend" }), /* @__PURE__ */ S(m, { children: "New assets acquired over the last 6 months" })] }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ S("div", {
322
+ className: "flex items-end gap-2 h-40",
323
+ children: T.acquisitionTrend.map((e) => {
324
+ let t = Math.max(...T.acquisitionTrend.map((e) => e.count)), n = t > 0 ? e.count / t * 100 : 0;
325
+ return /* @__PURE__ */ C("div", {
326
+ className: "flex-1 flex flex-col items-center gap-1",
327
+ children: [
328
+ /* @__PURE__ */ C("span", {
329
+ className: "text-[10px] text-muted-foreground",
330
+ children: [e.count, " units"]
331
+ }),
332
+ /* @__PURE__ */ S("div", {
333
+ className: "w-full bg-green-500/80 rounded-t",
334
+ style: { height: `${n}%` }
335
+ }),
336
+ /* @__PURE__ */ S("span", {
337
+ className: "text-[10px] text-muted-foreground",
338
+ children: e.month.replace(" 20", "'")
339
+ })
340
+ ]
341
+ }, e.month);
342
+ })
343
+ }) })] }),
344
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, { children: /* @__PURE__ */ S(g, { children: "Recent Transactions" }) }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ S("div", {
345
+ className: "overflow-x-auto",
346
+ children: /* @__PURE__ */ C("table", {
347
+ className: "w-full text-sm",
348
+ children: [/* @__PURE__ */ S("thead", { children: /* @__PURE__ */ C("tr", {
349
+ className: "border-b",
350
+ children: [
351
+ /* @__PURE__ */ S("th", {
352
+ className: "text-left py-2 font-medium",
353
+ children: "ID"
354
+ }),
355
+ /* @__PURE__ */ S("th", {
356
+ className: "text-left py-2 font-medium",
357
+ children: "Type"
358
+ }),
359
+ /* @__PURE__ */ S("th", {
360
+ className: "text-left py-2 font-medium",
361
+ children: "Description"
362
+ }),
363
+ /* @__PURE__ */ S("th", {
364
+ className: "text-right py-2 font-medium",
365
+ children: "Amount"
366
+ }),
367
+ /* @__PURE__ */ S("th", {
368
+ className: "text-left py-2 font-medium",
369
+ children: "Status"
370
+ })
371
+ ]
372
+ }) }), /* @__PURE__ */ S("tbody", { children: E.slice(0, 5).map((e) => /* @__PURE__ */ C("tr", {
373
+ className: "border-b hover:bg-muted/50",
374
+ children: [
375
+ /* @__PURE__ */ S("td", {
376
+ className: "py-2 font-mono text-xs",
377
+ children: e.id
378
+ }),
379
+ /* @__PURE__ */ S("td", {
380
+ className: "py-2 capitalize",
381
+ children: e.type
382
+ }),
383
+ /* @__PURE__ */ S("td", {
384
+ className: "py-2 truncate max-w-xs",
385
+ children: e.description
386
+ }),
387
+ /* @__PURE__ */ C("td", {
388
+ className: `py-2 text-right font-medium ${e.amount < 0 ? "text-red-600" : ""}`,
389
+ children: ["$", Math.abs(e.amount).toLocaleString()]
390
+ }),
391
+ /* @__PURE__ */ S("td", {
392
+ className: "py-2",
393
+ children: /* @__PURE__ */ S(u, {
394
+ variant: "outline",
395
+ children: e.status
396
+ })
397
+ })
398
+ ]
399
+ }, e.id)) })]
400
+ })
401
+ }) })] })
402
+ ]
403
+ }),
404
+ /* @__PURE__ */ S(y, {
405
+ value: "operational",
406
+ className: "space-y-6 mt-6",
407
+ children: /* @__PURE__ */ C("div", {
408
+ className: "grid gap-4 md:grid-cols-4",
409
+ children: [
410
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
411
+ className: "pb-2",
412
+ children: /* @__PURE__ */ S(g, {
413
+ className: "text-sm font-medium",
414
+ children: "Incidents"
415
+ })
416
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
417
+ className: "text-2xl font-bold",
418
+ children: D.length
419
+ }), /* @__PURE__ */ C("p", {
420
+ className: "text-xs text-muted-foreground",
421
+ children: [B.length, " resolved"]
422
+ })] })] }),
423
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
424
+ className: "pb-2",
425
+ children: /* @__PURE__ */ S(g, {
426
+ className: "text-sm font-medium",
427
+ children: "SLA Breaches"
428
+ })
429
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
430
+ className: "text-2xl font-bold text-red-600",
431
+ children: V.length
432
+ }), /* @__PURE__ */ C("p", {
433
+ className: "text-xs text-muted-foreground",
434
+ children: [((1 - V.length / Math.max(D.length, 1)) * 100).toFixed(1), "% compliance"]
435
+ })] })] }),
436
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
437
+ className: "pb-2",
438
+ children: /* @__PURE__ */ S(g, {
439
+ className: "text-sm font-medium",
440
+ children: "Maintenance Done"
441
+ })
442
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ S("div", {
443
+ className: "text-2xl font-bold",
444
+ children: H.length
445
+ }), /* @__PURE__ */ C("p", {
446
+ className: "text-xs text-muted-foreground",
447
+ children: [
448
+ "of ",
449
+ O.length,
450
+ " total"
451
+ ]
452
+ })] })] }),
453
+ /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ S(h, {
454
+ className: "pb-2",
455
+ children: /* @__PURE__ */ S(g, {
456
+ className: "text-sm font-medium",
457
+ children: "Workflow Success"
458
+ })
459
+ }), /* @__PURE__ */ C(p, { children: [/* @__PURE__ */ C("div", {
460
+ className: "text-2xl font-bold",
461
+ children: [(k.reduce((e, t) => e + t.successRate, 0) / Math.max(k.length, 1)).toFixed(1), "%"]
462
+ }), /* @__PURE__ */ C("p", {
463
+ className: "text-xs text-muted-foreground",
464
+ children: [k.length, " active workflows"]
465
+ })] })] })
466
+ ]
467
+ })
468
+ }),
469
+ /* @__PURE__ */ C(y, {
470
+ value: "insights",
471
+ className: "space-y-6 mt-6",
472
+ children: [/* @__PURE__ */ C("div", {
473
+ className: "grid gap-4 md:grid-cols-3",
474
+ children: [
475
+ /* @__PURE__ */ C(f, {
476
+ className: "border-blue-200 bg-blue-50/50",
477
+ children: [/* @__PURE__ */ S(h, { children: /* @__PURE__ */ S(g, {
478
+ className: "text-blue-900 text-base",
479
+ children: "Diversification"
480
+ }) }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ C("p", {
481
+ className: "text-sm text-blue-800",
482
+ children: [
483
+ "Your portfolio spans ",
484
+ Object.keys(L).length,
485
+ " categories across",
486
+ " ",
487
+ Object.keys(z).length,
488
+ " departments. IT Hardware represents the largest segment at ",
489
+ T.byCategory[0]?.count || 0,
490
+ " assets."
491
+ ]
492
+ }) })]
493
+ }),
494
+ /* @__PURE__ */ C(f, {
495
+ className: "border-green-200 bg-green-50/50",
496
+ children: [/* @__PURE__ */ S(h, { children: /* @__PURE__ */ S(g, {
497
+ className: "text-green-900 text-base",
498
+ children: "Performance"
499
+ }) }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ C("p", {
500
+ className: "text-sm text-green-800",
501
+ children: [
502
+ "Portfolio depreciated value stands at $",
503
+ (T.depreciatedValue / 1e6).toFixed(2),
504
+ "M. Depreciation rate is within expected range at ",
505
+ F,
506
+ "% of original cost."
507
+ ]
508
+ }) })]
509
+ }),
510
+ /* @__PURE__ */ C(f, {
511
+ className: "border-amber-200 bg-amber-50/50",
512
+ children: [/* @__PURE__ */ S(h, { children: /* @__PURE__ */ S(g, {
513
+ className: "text-amber-900 text-base",
514
+ children: "Maintenance"
515
+ }) }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ C("p", {
516
+ className: "text-sm text-amber-800",
517
+ children: [
518
+ O.filter((e) => e.status === "scheduled").length,
519
+ " maintenance tasks are scheduled. Total maintenance spend is $",
520
+ U.toLocaleString(),
521
+ ". Stay on top of preventive maintenance."
522
+ ]
523
+ }) })]
524
+ })
525
+ ]
526
+ }), /* @__PURE__ */ C(f, { children: [/* @__PURE__ */ C(h, { children: [/* @__PURE__ */ S(g, { children: "Top Assets by Value" }), /* @__PURE__ */ S(m, { children: "Highest value assets in your portfolio" })] }), /* @__PURE__ */ S(p, { children: /* @__PURE__ */ S("div", {
527
+ className: "space-y-3",
528
+ children: [...w].sort((e, t) => t.currentValue - e.currentValue).slice(0, 5).map((e, t) => /* @__PURE__ */ C("div", {
529
+ className: "flex items-center justify-between p-3 rounded-lg border",
530
+ children: [/* @__PURE__ */ C("div", {
531
+ className: "flex items-center gap-3",
532
+ children: [/* @__PURE__ */ S("div", {
533
+ className: "w-8 h-8 rounded-full bg-primary/10 flex items-center justify-center text-xs font-medium text-primary",
534
+ children: t + 1
535
+ }), /* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("p", {
536
+ className: "text-sm font-medium",
537
+ children: e.name
538
+ }), /* @__PURE__ */ C("p", {
539
+ className: "text-xs text-muted-foreground",
540
+ children: [
541
+ e.department,
542
+ " · ",
543
+ e.category.replace("_", " ")
544
+ ]
545
+ })] })]
546
+ }), /* @__PURE__ */ C("div", {
547
+ className: "text-right",
548
+ children: [/* @__PURE__ */ C("p", {
549
+ className: "text-sm font-medium",
550
+ children: ["$", e.currentValue.toLocaleString()]
551
+ }), /* @__PURE__ */ S("p", {
552
+ className: "text-xs text-muted-foreground",
553
+ children: e.currentValue < e.value ? /* @__PURE__ */ C("span", {
554
+ className: "text-red-600",
555
+ children: [
556
+ "-",
557
+ ((1 - e.currentValue / e.value) * 100).toFixed(1),
558
+ "%"
559
+ ]
560
+ }) : /* @__PURE__ */ S("span", {
561
+ className: "text-green-600",
562
+ children: "No depreciation"
563
+ })
564
+ })]
565
+ })]
566
+ }, e.id))
567
+ }) })] })]
568
+ })
569
+ ]
570
+ })]
571
+ });
572
+ }
573
+ //#endregion
574
+ export { w as AnalyticsPage };
575
+
576
+ //# sourceMappingURL=AnalyticsPage.js.map