@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.
- package/README.md +12 -0
- package/dist/assethandler/AssetHandlerRoot.d.ts +5 -0
- package/dist/assethandler/AssetHandlerRoot.d.ts.map +1 -0
- package/dist/assethandler/AssetHandlerRoot.js +159 -0
- package/dist/assethandler/AssetHandlerRoot.js.map +1 -0
- package/dist/assethandler/AssetHandlerRoutes.d.ts +2 -0
- package/dist/assethandler/AssetHandlerRoutes.d.ts.map +1 -0
- package/dist/assethandler/AssetHandlerRoutes.js +255 -0
- package/dist/assethandler/AssetHandlerRoutes.js.map +1 -0
- package/dist/assethandler/index.d.ts +5 -0
- package/dist/assethandler/index.d.ts.map +1 -0
- package/dist/assethandler/index.js +3 -0
- package/dist/assethandler/pages/AiPredictionsPage.d.ts +2 -0
- package/dist/assethandler/pages/AiPredictionsPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AiPredictionsPage.js +133 -0
- package/dist/assethandler/pages/AiPredictionsPage.js.map +1 -0
- package/dist/assethandler/pages/AnalyticsPage.d.ts +2 -0
- package/dist/assethandler/pages/AnalyticsPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AnalyticsPage.js +576 -0
- package/dist/assethandler/pages/AnalyticsPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.js +162 -0
- package/dist/assethandler/pages/AssetsAssetCategoriesPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js +249 -0
- package/dist/assethandler/pages/AssetsAssetCheckInOutPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetCreatePage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetCreatePage.js +323 -0
- package/dist/assethandler/pages/AssetsAssetCreatePage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetDetailPage.js +392 -0
- package/dist/assethandler/pages/AssetsAssetDetailPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetEditPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetEditPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetEditPage.js +341 -0
- package/dist/assethandler/pages/AssetsAssetEditPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetListPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetListPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetListPage.js +459 -0
- package/dist/assethandler/pages/AssetsAssetListPage.js.map +1 -0
- package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts +2 -0
- package/dist/assethandler/pages/AssetsAssetTrackingPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AssetsAssetTrackingPage.js +166 -0
- package/dist/assethandler/pages/AssetsAssetTrackingPage.js.map +1 -0
- package/dist/assethandler/pages/AuditTrailPage.d.ts +2 -0
- package/dist/assethandler/pages/AuditTrailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/AuditTrailPage.js +197 -0
- package/dist/assethandler/pages/AuditTrailPage.js.map +1 -0
- package/dist/assethandler/pages/CmdbBrowserPage.d.ts +2 -0
- package/dist/assethandler/pages/CmdbBrowserPage.d.ts.map +1 -0
- package/dist/assethandler/pages/CmdbBrowserPage.js +75 -0
- package/dist/assethandler/pages/CmdbBrowserPage.js.map +1 -0
- package/dist/assethandler/pages/DashboardPage.d.ts +2 -0
- package/dist/assethandler/pages/DashboardPage.d.ts.map +1 -0
- package/dist/assethandler/pages/DashboardPage.js +336 -0
- package/dist/assethandler/pages/DashboardPage.js.map +1 -0
- package/dist/assethandler/pages/DigitalTwinPage.d.ts +2 -0
- package/dist/assethandler/pages/DigitalTwinPage.d.ts.map +1 -0
- package/dist/assethandler/pages/DigitalTwinPage.js +71 -0
- package/dist/assethandler/pages/DigitalTwinPage.js.map +1 -0
- package/dist/assethandler/pages/DiscoveryJobsPage.d.ts +2 -0
- package/dist/assethandler/pages/DiscoveryJobsPage.d.ts.map +1 -0
- package/dist/assethandler/pages/DiscoveryJobsPage.js +115 -0
- package/dist/assethandler/pages/DiscoveryJobsPage.js.map +1 -0
- package/dist/assethandler/pages/EsgDashboardPage.d.ts +2 -0
- package/dist/assethandler/pages/EsgDashboardPage.d.ts.map +1 -0
- package/dist/assethandler/pages/EsgDashboardPage.js +130 -0
- package/dist/assethandler/pages/EsgDashboardPage.js.map +1 -0
- package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/FinanceBudgetDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js +182 -0
- package/dist/assethandler/pages/FinanceBudgetDetailPage.js.map +1 -0
- package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts +2 -0
- package/dist/assethandler/pages/FinanceFinanceHubPage.d.ts.map +1 -0
- package/dist/assethandler/pages/FinanceFinanceHubPage.js +324 -0
- package/dist/assethandler/pages/FinanceFinanceHubPage.js.map +1 -0
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js +172 -0
- package/dist/assethandler/pages/FinanceInvoiceDetailPage.js.map +1 -0
- package/dist/assethandler/pages/IotDevicesPage.d.ts +2 -0
- package/dist/assethandler/pages/IotDevicesPage.d.ts.map +1 -0
- package/dist/assethandler/pages/IotDevicesPage.js +80 -0
- package/dist/assethandler/pages/IotDevicesPage.js.map +1 -0
- package/dist/assethandler/pages/ItilChangeDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilChangeDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilChangeDetailPage.js +221 -0
- package/dist/assethandler/pages/ItilChangeDetailPage.js.map +1 -0
- package/dist/assethandler/pages/ItilChangeManagementPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilChangeManagementPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilChangeManagementPage.js +179 -0
- package/dist/assethandler/pages/ItilChangeManagementPage.js.map +1 -0
- package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilIncidentDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilIncidentDetailPage.js +222 -0
- package/dist/assethandler/pages/ItilIncidentDetailPage.js.map +1 -0
- package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilIncidentManagementPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilIncidentManagementPage.js +265 -0
- package/dist/assethandler/pages/ItilIncidentManagementPage.js.map +1 -0
- package/dist/assethandler/pages/ItilItilhubPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilItilhubPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilItilhubPage.js +374 -0
- package/dist/assethandler/pages/ItilItilhubPage.js.map +1 -0
- package/dist/assethandler/pages/ItilProblemDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilProblemDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilProblemDetailPage.js +177 -0
- package/dist/assethandler/pages/ItilProblemDetailPage.js.map +1 -0
- package/dist/assethandler/pages/ItilProblemManagementPage.d.ts +2 -0
- package/dist/assethandler/pages/ItilProblemManagementPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ItilProblemManagementPage.js +167 -0
- package/dist/assethandler/pages/ItilProblemManagementPage.js.map +1 -0
- package/dist/assethandler/pages/KnowledgeBasePage.d.ts +2 -0
- package/dist/assethandler/pages/KnowledgeBasePage.d.ts.map +1 -0
- package/dist/assethandler/pages/KnowledgeBasePage.js +116 -0
- package/dist/assethandler/pages/KnowledgeBasePage.js.map +1 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts +2 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js +185 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceCalendarPage.js.map +1 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts +2 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js +133 -0
- package/dist/assethandler/pages/MaintenanceMaintenanceSchedulerPage.js.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js +166 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceDetailPage.js.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts +2 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js +155 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceListPage.js.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts +2 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js +126 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceOrdersPage.js.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts +2 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.d.ts.map +1 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js +157 -0
- package/dist/assethandler/pages/MarketplaceMarketplaceSellPage.js.map +1 -0
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js +179 -0
- package/dist/assethandler/pages/OperationsMaintenanceDetailPage.js.map +1 -0
- package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts +2 -0
- package/dist/assethandler/pages/OperationsOperationsHubPage.d.ts.map +1 -0
- package/dist/assethandler/pages/OperationsOperationsHubPage.js +291 -0
- package/dist/assethandler/pages/OperationsOperationsHubPage.js.map +1 -0
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js +172 -0
- package/dist/assethandler/pages/OperationsWorkOrderDetailPage.js.map +1 -0
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts +2 -0
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.d.ts.map +1 -0
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js +203 -0
- package/dist/assethandler/pages/PortfolioPortfolioOverviewPage.js.map +1 -0
- package/dist/assethandler/pages/ProvenancePage.d.ts +2 -0
- package/dist/assethandler/pages/ProvenancePage.d.ts.map +1 -0
- package/dist/assethandler/pages/ProvenancePage.js +118 -0
- package/dist/assethandler/pages/ProvenancePage.js.map +1 -0
- package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts +2 -0
- package/dist/assethandler/pages/ReportsReportBuilderPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ReportsReportBuilderPage.js +201 -0
- package/dist/assethandler/pages/ReportsReportBuilderPage.js.map +1 -0
- package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts +2 -0
- package/dist/assethandler/pages/ReportsReportsDashboardPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ReportsReportsDashboardPage.js +201 -0
- package/dist/assethandler/pages/ReportsReportsDashboardPage.js.map +1 -0
- package/dist/assethandler/pages/ReportsReportsListPage.d.ts +2 -0
- package/dist/assethandler/pages/ReportsReportsListPage.d.ts.map +1 -0
- package/dist/assethandler/pages/ReportsReportsListPage.js +128 -0
- package/dist/assethandler/pages/ReportsReportsListPage.js.map +1 -0
- package/dist/assethandler/pages/SamLicensesPage.d.ts +2 -0
- package/dist/assethandler/pages/SamLicensesPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SamLicensesPage.js +79 -0
- package/dist/assethandler/pages/SamLicensesPage.js.map +1 -0
- package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/SecurityComplianceDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js +109 -0
- package/dist/assethandler/pages/SecurityComplianceDetailPage.js.map +1 -0
- package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/SecurityPolicyDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js +133 -0
- package/dist/assethandler/pages/SecurityPolicyDetailPage.js.map +1 -0
- package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts +2 -0
- package/dist/assethandler/pages/SecurityScheduleBackupPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SecurityScheduleBackupPage.js +143 -0
- package/dist/assethandler/pages/SecurityScheduleBackupPage.js.map +1 -0
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js +135 -0
- package/dist/assethandler/pages/SecuritySecurityEventDetailPage.js.map +1 -0
- package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts +2 -0
- package/dist/assethandler/pages/SecuritySecurityHubPage.d.ts.map +1 -0
- package/dist/assethandler/pages/SecuritySecurityHubPage.js +355 -0
- package/dist/assethandler/pages/SecuritySecurityHubPage.js.map +1 -0
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts +2 -0
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.d.ts.map +1 -0
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js +281 -0
- package/dist/assethandler/pages/TransactionsTransactionDetailPage.js.map +1 -0
- package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts +2 -0
- package/dist/assethandler/pages/TransactionsTransactionListPage.d.ts.map +1 -0
- package/dist/assethandler/pages/TransactionsTransactionListPage.js +220 -0
- package/dist/assethandler/pages/TransactionsTransactionListPage.js.map +1 -0
- package/dist/assethandler/pages/UsersPage.d.ts +2 -0
- package/dist/assethandler/pages/UsersPage.d.ts.map +1 -0
- package/dist/assethandler/pages/UsersPage.js +183 -0
- package/dist/assethandler/pages/UsersPage.js.map +1 -0
- package/dist/assethandler/pages/UsersUserCreatePage.d.ts +2 -0
- package/dist/assethandler/pages/UsersUserCreatePage.d.ts.map +1 -0
- package/dist/assethandler/pages/UsersUserCreatePage.js +213 -0
- package/dist/assethandler/pages/UsersUserCreatePage.js.map +1 -0
- package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts +2 -0
- package/dist/assethandler/pages/UsersUserManagementHubPage.d.ts.map +1 -0
- package/dist/assethandler/pages/UsersUserManagementHubPage.js +325 -0
- package/dist/assethandler/pages/UsersUserManagementHubPage.js.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts +2 -0
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.d.ts.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js +246 -0
- package/dist/assethandler/pages/WorkflowsWorkflowBuilderPage.js.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts +2 -0
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.d.ts.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js +188 -0
- package/dist/assethandler/pages/WorkflowsWorkflowExecutionsPage.js.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts +2 -0
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.d.ts.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.js +163 -0
- package/dist/assethandler/pages/WorkflowsWorkflowListPage.js.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts +2 -0
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.d.ts.map +1 -0
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js +158 -0
- package/dist/assethandler/pages/WorkflowsWorkflowTemplatesPage.js.map +1 -0
- package/dist/assethandler/providers/AssetHandlerProvider.d.ts +6 -0
- package/dist/assethandler/providers/AssetHandlerProvider.d.ts.map +1 -0
- package/dist/assethandler/providers/AssetHandlerProvider.js +214 -0
- package/dist/assethandler/providers/AssetHandlerProvider.js.map +1 -0
- package/dist/assethandler/store/assethandlerStore.d.ts +635 -0
- package/dist/assethandler/store/assethandlerStore.d.ts.map +1 -0
- package/dist/assethandler/store/assethandlerStore.js +2337 -0
- package/dist/assethandler/store/assethandlerStore.js.map +1 -0
- package/dist/assethandler/types/index.d.ts +56 -0
- package/dist/assethandler/types/index.d.ts.map +1 -0
- package/dist/assethandler/utils/cn.d.ts +4 -0
- package/dist/assethandler/utils/cn.d.ts.map +1 -0
- package/dist/assethandler/utils/i18n.d.ts +6 -0
- package/dist/assethandler/utils/i18n.d.ts.map +1 -0
- package/dist/assethandler/utils/i18n.js +9 -0
- package/dist/assethandler/utils/i18n.js.map +1 -0
- package/dist/assethandler/utils/navigation.d.ts +2 -0
- package/dist/assethandler/utils/navigation.d.ts.map +1 -0
- package/dist/assethandler/utils/navigation.js +8 -0
- package/dist/assethandler/utils/navigation.js.map +1 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +20716 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +210 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-types.d.ts +53363 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/package.json +108 -0
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { CheckCircle as t, Clock as n, Download as r, FileText as i, Loader2 as a, Plus as o, XCircle as s } from "lucide-react";
|
|
3
|
+
import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/ReportsReportsDashboardPage.tsx
|
|
6
|
+
function g() {
|
|
7
|
+
let { reports: g, reportExecutions: _ } = e(), v = _.filter((e) => e.status === "completed"), y = _.filter((e) => e.status === "running");
|
|
8
|
+
_.filter((e) => e.status === "failed");
|
|
9
|
+
let b = g.filter((e) => e.schedule);
|
|
10
|
+
return /* @__PURE__ */ h("div", {
|
|
11
|
+
className: "space-y-6 p-6",
|
|
12
|
+
children: [
|
|
13
|
+
/* @__PURE__ */ h("div", {
|
|
14
|
+
className: "flex items-center justify-between",
|
|
15
|
+
children: [/* @__PURE__ */ h("div", { children: [/* @__PURE__ */ m("h1", {
|
|
16
|
+
className: "text-2xl font-bold",
|
|
17
|
+
children: "Reports Dashboard"
|
|
18
|
+
}), /* @__PURE__ */ m("p", {
|
|
19
|
+
className: "text-sm text-muted-foreground",
|
|
20
|
+
children: "Overview of all reports and executions"
|
|
21
|
+
})] }), /* @__PURE__ */ h(l, {
|
|
22
|
+
size: "sm",
|
|
23
|
+
children: [/* @__PURE__ */ m(o, { className: "mr-2 h-4 w-4" }), "New Report"]
|
|
24
|
+
})]
|
|
25
|
+
}),
|
|
26
|
+
/* @__PURE__ */ h("div", {
|
|
27
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ m(u, { children: /* @__PURE__ */ h(d, {
|
|
30
|
+
className: "pt-4",
|
|
31
|
+
children: [/* @__PURE__ */ h("div", {
|
|
32
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
33
|
+
children: [/* @__PURE__ */ m(i, { className: "h-4 w-4" }), "Total Reports"]
|
|
34
|
+
}), /* @__PURE__ */ m("p", {
|
|
35
|
+
className: "text-2xl font-bold mt-1",
|
|
36
|
+
children: g.length
|
|
37
|
+
})]
|
|
38
|
+
}) }),
|
|
39
|
+
/* @__PURE__ */ m(u, { children: /* @__PURE__ */ h(d, {
|
|
40
|
+
className: "pt-4",
|
|
41
|
+
children: [/* @__PURE__ */ h("div", {
|
|
42
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
43
|
+
children: [/* @__PURE__ */ m(n, { className: "h-4 w-4" }), "Scheduled"]
|
|
44
|
+
}), /* @__PURE__ */ m("p", {
|
|
45
|
+
className: "text-2xl font-bold mt-1",
|
|
46
|
+
children: b.length
|
|
47
|
+
})]
|
|
48
|
+
}) }),
|
|
49
|
+
/* @__PURE__ */ m(u, { children: /* @__PURE__ */ h(d, {
|
|
50
|
+
className: "pt-4",
|
|
51
|
+
children: [/* @__PURE__ */ h("div", {
|
|
52
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
53
|
+
children: [/* @__PURE__ */ m(t, { className: "h-4 w-4" }), "Completed"]
|
|
54
|
+
}), /* @__PURE__ */ m("p", {
|
|
55
|
+
className: "text-2xl font-bold mt-1 text-green-600",
|
|
56
|
+
children: v.length
|
|
57
|
+
})]
|
|
58
|
+
}) }),
|
|
59
|
+
/* @__PURE__ */ m(u, { children: /* @__PURE__ */ h(d, {
|
|
60
|
+
className: "pt-4",
|
|
61
|
+
children: [/* @__PURE__ */ h("div", {
|
|
62
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
63
|
+
children: [/* @__PURE__ */ m(a, { className: "h-4 w-4" }), "Running"]
|
|
64
|
+
}), /* @__PURE__ */ m("p", {
|
|
65
|
+
className: "text-2xl font-bold mt-1 text-blue-600",
|
|
66
|
+
children: y.length
|
|
67
|
+
})]
|
|
68
|
+
}) })
|
|
69
|
+
]
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ h(u, { children: [/* @__PURE__ */ m(f, { children: /* @__PURE__ */ m(p, { children: "Recent Executions" }) }), /* @__PURE__ */ m(d, {
|
|
72
|
+
className: "p-0",
|
|
73
|
+
children: /* @__PURE__ */ m("div", {
|
|
74
|
+
className: "overflow-x-auto",
|
|
75
|
+
children: /* @__PURE__ */ h("table", {
|
|
76
|
+
className: "w-full text-sm",
|
|
77
|
+
children: [/* @__PURE__ */ m("thead", { children: /* @__PURE__ */ h("tr", {
|
|
78
|
+
className: "border-b bg-muted/50",
|
|
79
|
+
children: [
|
|
80
|
+
/* @__PURE__ */ m("th", {
|
|
81
|
+
className: "text-left p-3 font-medium",
|
|
82
|
+
children: "Report"
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ m("th", {
|
|
85
|
+
className: "text-left p-3 font-medium",
|
|
86
|
+
children: "Executed By"
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ m("th", {
|
|
89
|
+
className: "text-left p-3 font-medium",
|
|
90
|
+
children: "Status"
|
|
91
|
+
}),
|
|
92
|
+
/* @__PURE__ */ m("th", {
|
|
93
|
+
className: "text-left p-3 font-medium",
|
|
94
|
+
children: "Format"
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ m("th", {
|
|
97
|
+
className: "text-left p-3 font-medium",
|
|
98
|
+
children: "Duration"
|
|
99
|
+
}),
|
|
100
|
+
/* @__PURE__ */ m("th", {
|
|
101
|
+
className: "text-left p-3 font-medium",
|
|
102
|
+
children: "Time"
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ m("th", { className: "p-3" })
|
|
105
|
+
]
|
|
106
|
+
}) }), /* @__PURE__ */ m("tbody", { children: _.map((e) => /* @__PURE__ */ h("tr", {
|
|
107
|
+
className: "border-b hover:bg-muted/50",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ m("td", {
|
|
110
|
+
className: "p-3 font-medium",
|
|
111
|
+
children: e.reportName
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ m("td", {
|
|
114
|
+
className: "p-3 text-xs",
|
|
115
|
+
children: e.executedBy
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ h("td", {
|
|
118
|
+
className: "p-3",
|
|
119
|
+
children: [
|
|
120
|
+
e.status === "completed" && /* @__PURE__ */ h(c, {
|
|
121
|
+
variant: "default",
|
|
122
|
+
children: [/* @__PURE__ */ m(t, { className: "mr-1 h-3 w-3" }), "Completed"]
|
|
123
|
+
}),
|
|
124
|
+
e.status === "running" && /* @__PURE__ */ h(c, {
|
|
125
|
+
variant: "secondary",
|
|
126
|
+
children: [/* @__PURE__ */ m(a, { className: "mr-1 h-3 w-3 animate-spin" }), "Running"]
|
|
127
|
+
}),
|
|
128
|
+
e.status === "failed" && /* @__PURE__ */ h(c, {
|
|
129
|
+
variant: "destructive",
|
|
130
|
+
children: [/* @__PURE__ */ m(s, { className: "mr-1 h-3 w-3" }), "Failed"]
|
|
131
|
+
}),
|
|
132
|
+
e.status === "queued" && /* @__PURE__ */ m(c, {
|
|
133
|
+
variant: "outline",
|
|
134
|
+
children: "Queued"
|
|
135
|
+
})
|
|
136
|
+
]
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ m("td", {
|
|
139
|
+
className: "p-3 text-xs",
|
|
140
|
+
children: e.format
|
|
141
|
+
}),
|
|
142
|
+
/* @__PURE__ */ h("td", {
|
|
143
|
+
className: "p-3 text-xs",
|
|
144
|
+
children: [e.duration, "s"]
|
|
145
|
+
}),
|
|
146
|
+
/* @__PURE__ */ m("td", {
|
|
147
|
+
className: "p-3 text-xs",
|
|
148
|
+
children: new Date(e.executedAt).toLocaleString()
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ m("td", {
|
|
151
|
+
className: "p-3",
|
|
152
|
+
children: e.status === "completed" && /* @__PURE__ */ m(l, {
|
|
153
|
+
variant: "ghost",
|
|
154
|
+
size: "sm",
|
|
155
|
+
children: /* @__PURE__ */ m(r, { className: "h-3 w-3" })
|
|
156
|
+
})
|
|
157
|
+
})
|
|
158
|
+
]
|
|
159
|
+
}, e.id)) })]
|
|
160
|
+
})
|
|
161
|
+
})
|
|
162
|
+
})] }),
|
|
163
|
+
/* @__PURE__ */ h(u, { children: [/* @__PURE__ */ m(f, { children: /* @__PURE__ */ m(p, { children: "Available Reports" }) }), /* @__PURE__ */ m(d, { children: /* @__PURE__ */ m("div", {
|
|
164
|
+
className: "grid gap-3 md:grid-cols-2 lg:grid-cols-3",
|
|
165
|
+
children: g.map((e) => /* @__PURE__ */ h("div", {
|
|
166
|
+
className: "rounded-lg border p-4 hover:shadow-sm transition-shadow cursor-pointer",
|
|
167
|
+
children: [
|
|
168
|
+
/* @__PURE__ */ h("div", {
|
|
169
|
+
className: "flex items-center justify-between",
|
|
170
|
+
children: [/* @__PURE__ */ m(c, {
|
|
171
|
+
variant: "outline",
|
|
172
|
+
className: "text-xs",
|
|
173
|
+
children: e.type
|
|
174
|
+
}), /* @__PURE__ */ m(c, {
|
|
175
|
+
variant: "secondary",
|
|
176
|
+
className: "text-xs",
|
|
177
|
+
children: e.category
|
|
178
|
+
})]
|
|
179
|
+
}),
|
|
180
|
+
/* @__PURE__ */ m("h4", {
|
|
181
|
+
className: "font-medium mt-2",
|
|
182
|
+
children: e.name
|
|
183
|
+
}),
|
|
184
|
+
/* @__PURE__ */ m("p", {
|
|
185
|
+
className: "text-xs text-muted-foreground mt-1",
|
|
186
|
+
children: e.description
|
|
187
|
+
}),
|
|
188
|
+
/* @__PURE__ */ h("div", {
|
|
189
|
+
className: "flex items-center gap-2 mt-2 text-xs text-muted-foreground",
|
|
190
|
+
children: [e.schedule && /* @__PURE__ */ h("span", { children: ["Schedule: ", e.schedule] }), e.lastRun && /* @__PURE__ */ h("span", { children: ["· Last: ", new Date(e.lastRun).toLocaleDateString()] })]
|
|
191
|
+
})
|
|
192
|
+
]
|
|
193
|
+
}, e.id))
|
|
194
|
+
}) })] })
|
|
195
|
+
]
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
//#endregion
|
|
199
|
+
export { g as ReportsReportsDashboardPage };
|
|
200
|
+
|
|
201
|
+
//# sourceMappingURL=ReportsReportsDashboardPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportsReportsDashboardPage.js","names":[],"sources":["../../../src/assethandler/pages/ReportsReportsDashboardPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport {\n BarChart3,\n FileText,\n Clock,\n Download,\n Plus,\n CheckCircle,\n XCircle,\n Loader2,\n} from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function ReportsReportsDashboardPage() {\n const { reports, reportExecutions } = useAssetHandlerStore();\n\n const completed = reportExecutions.filter((e) => e.status === 'completed');\n const running = reportExecutions.filter((e) => e.status === 'running');\n const failed = reportExecutions.filter((e) => e.status === 'failed');\n const scheduled = reports.filter((r) => r.schedule);\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\">Reports Dashboard</h1>\n <p className=\"text-sm text-muted-foreground\">Overview of all reports and executions</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n New Report\n </Button>\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 <FileText className=\"h-4 w-4\" />\n Total Reports\n </div>\n <p className=\"text-2xl font-bold mt-1\">{reports.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 <Clock className=\"h-4 w-4\" />\n Scheduled\n </div>\n <p className=\"text-2xl font-bold mt-1\">{scheduled.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 <CheckCircle className=\"h-4 w-4\" />\n Completed\n </div>\n <p className=\"text-2xl font-bold mt-1 text-green-600\">{completed.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 <Loader2 className=\"h-4 w-4\" />\n Running\n </div>\n <p className=\"text-2xl font-bold mt-1 text-blue-600\">{running.length}</p>\n </CardContent>\n </Card>\n </div>\n\n {/* Recent Executions */}\n <Card>\n <CardHeader>\n <CardTitle>Recent Executions</CardTitle>\n </CardHeader>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-3 font-medium\">Report</th>\n <th className=\"text-left p-3 font-medium\">Executed By</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Format</th>\n <th className=\"text-left p-3 font-medium\">Duration</th>\n <th className=\"text-left p-3 font-medium\">Time</th>\n <th className=\"p-3\"></th>\n </tr>\n </thead>\n <tbody>\n {reportExecutions.map((exec) => (\n <tr key={exec.id} className=\"border-b hover:bg-muted/50\">\n <td className=\"p-3 font-medium\">{exec.reportName}</td>\n <td className=\"p-3 text-xs\">{exec.executedBy}</td>\n <td className=\"p-3\">\n {exec.status === 'completed' && (\n <Badge variant=\"default\">\n <CheckCircle className=\"mr-1 h-3 w-3\" />\n Completed\n </Badge>\n )}\n {exec.status === 'running' && (\n <Badge variant=\"secondary\">\n <Loader2 className=\"mr-1 h-3 w-3 animate-spin\" />\n Running\n </Badge>\n )}\n {exec.status === 'failed' && (\n <Badge variant=\"destructive\">\n <XCircle className=\"mr-1 h-3 w-3\" />\n Failed\n </Badge>\n )}\n {exec.status === 'queued' && <Badge variant=\"outline\">Queued</Badge>}\n </td>\n <td className=\"p-3 text-xs\">{exec.format}</td>\n <td className=\"p-3 text-xs\">{exec.duration}s</td>\n <td className=\"p-3 text-xs\">{new Date(exec.executedAt).toLocaleString()}</td>\n <td className=\"p-3\">\n {exec.status === 'completed' && (\n <Button variant=\"ghost\" size=\"sm\">\n <Download className=\"h-3 w-3\" />\n </Button>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n\n {/* Report Configs */}\n <Card>\n <CardHeader>\n <CardTitle>Available Reports</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 md:grid-cols-2 lg:grid-cols-3\">\n {reports.map((report) => (\n <div\n key={report.id}\n className=\"rounded-lg border p-4 hover:shadow-sm transition-shadow cursor-pointer\"\n >\n <div className=\"flex items-center justify-between\">\n <Badge variant=\"outline\" className=\"text-xs\">\n {report.type}\n </Badge>\n <Badge variant=\"secondary\" className=\"text-xs\">\n {report.category}\n </Badge>\n </div>\n <h4 className=\"font-medium mt-2\">{report.name}</h4>\n <p className=\"text-xs text-muted-foreground mt-1\">{report.description}</p>\n <div className=\"flex items-center gap-2 mt-2 text-xs text-muted-foreground\">\n {report.schedule && <span>Schedule: {report.schedule}</span>}\n {report.lastRun && (\n <span>· Last: {new Date(report.lastRun).toLocaleDateString()}</span>\n )}\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;AAqBA,SAAgB,IAA8B;CAC5C,IAAM,EAAE,YAAS,wBAAqB,GAAsB,EAEtD,IAAY,EAAiB,QAAQ,MAAM,EAAE,WAAW,YAAY,EACpE,IAAU,EAAiB,QAAQ,MAAM,EAAE,WAAW,UAAU;AACvD,GAAiB,QAAQ,MAAM,EAAE,WAAW,SAAS;CACpE,IAAM,IAAY,EAAQ,QAAQ,MAAM,EAAE,SAAS;AAEnD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAqB;KAAsB,CAAA,EACzD,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAA0C,CAAA,CACnF,EAAA,CAAA,EACN,kBAAC,GAAD;KAAQ,MAAK;eAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,aAE1B;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA,EAAA,gBAE5B;UACN,kBAAC,KAAD;OAAG,WAAU;iBAA2B,EAAQ;OAAW,CAAA,CAC/C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAO,WAAU,WAAY,CAAA,EAAA,YAEzB;UACN,kBAAC,KAAD;OAAG,WAAU;iBAA2B,EAAU;OAAW,CAAA,CACjD;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAa,WAAU,WAAY,CAAA,EAAA,YAE/B;UACN,kBAAC,KAAD;OAAG,WAAU;iBAA0C,EAAU;OAAW,CAAA,CAChE;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD,EAAS,WAAU,WAAY,CAAA,EAAA,UAE3B;UACN,kBAAC,KAAD;OAAG,WAAU;iBAAyC,EAAQ;OAAW,CAAA,CAC7D;SACT,CAAA;KACH;;GAGN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,qBAA6B,CAAA,EAC7B,CAAA,EACb,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,SAAD,EAAA,UACE,kBAAC,MAAD;OAAI,WAAU;iBAAd;QACE,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAW,CAAA;QACrD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAgB,CAAA;QAC1D,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAW,CAAA;QACrD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAW,CAAA;QACrD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAa,CAAA;QACvD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAS,CAAA;QACnD,kBAAC,MAAD,EAAI,WAAU,OAAW,CAAA;QACtB;UACC,CAAA,EACR,kBAAC,SAAD,EAAA,UACG,EAAiB,KAAK,MACrB,kBAAC,MAAD;OAAkB,WAAU;iBAA5B;QACE,kBAAC,MAAD;SAAI,WAAU;mBAAmB,EAAK;SAAgB,CAAA;QACtD,kBAAC,MAAD;SAAI,WAAU;mBAAe,EAAK;SAAgB,CAAA;QAClD,kBAAC,MAAD;SAAI,WAAU;mBAAd;UACG,EAAK,WAAW,eACf,kBAAC,GAAD;WAAO,SAAQ;qBAAf,CACE,kBAAC,GAAD,EAAa,WAAU,gBAAiB,CAAA,EAAA,YAElC;;UAET,EAAK,WAAW,aACf,kBAAC,GAAD;WAAO,SAAQ;qBAAf,CACE,kBAAC,GAAD,EAAS,WAAU,6BAA8B,CAAA,EAAA,UAE3C;;UAET,EAAK,WAAW,YACf,kBAAC,GAAD;WAAO,SAAQ;qBAAf,CACE,kBAAC,GAAD,EAAS,WAAU,gBAAiB,CAAA,EAAA,SAE9B;;UAET,EAAK,WAAW,YAAY,kBAAC,GAAD;WAAO,SAAQ;qBAAU;WAAc,CAAA;UACjE;;QACL,kBAAC,MAAD;SAAI,WAAU;mBAAe,EAAK;SAAY,CAAA;QAC9C,kBAAC,MAAD;SAAI,WAAU;mBAAd,CAA6B,EAAK,UAAS,IAAM;;QACjD,kBAAC,MAAD;SAAI,WAAU;mBAAe,IAAI,KAAK,EAAK,WAAW,CAAC,gBAAgB;SAAM,CAAA;QAC7E,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAK,WAAW,eACf,kBAAC,GAAD;UAAQ,SAAQ;UAAQ,MAAK;oBAC3B,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA;UACzB,CAAA;SAER,CAAA;QACF;SAlCI,EAAK,GAkCT,CACL,EACI,CAAA,CACF;;KACJ,CAAA;IACM,CAAA,CACT,EAAA,CAAA;GAGP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,qBAA6B,CAAA,EAC7B,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;IAAK,WAAU;cACZ,EAAQ,KAAK,MACZ,kBAAC,OAAD;KAEE,WAAU;eAFZ;MAIE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,GAAD;QAAO,SAAQ;QAAU,WAAU;kBAChC,EAAO;QACF,CAAA,EACR,kBAAC,GAAD;QAAO,SAAQ;QAAY,WAAU;kBAClC,EAAO;QACF,CAAA,CACJ;;MACN,kBAAC,MAAD;OAAI,WAAU;iBAAoB,EAAO;OAAU,CAAA;MACnD,kBAAC,KAAD;OAAG,WAAU;iBAAsC,EAAO;OAAgB,CAAA;MAC1E,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACG,EAAO,YAAY,kBAAC,QAAD,EAAA,UAAA,CAAM,cAAW,EAAO,SAAgB,EAAA,CAAA,EAC3D,EAAO,WACN,kBAAC,QAAD,EAAA,UAAA,CAAM,YAAgB,IAAI,KAAK,EAAO,QAAQ,CAAC,oBAAoB,CAAQ,EAAA,CAAA,CAEzE;;MACF;OAnBC,EAAO,GAmBR,CACN;IACE,CAAA,EACM,CAAA,CACT,EAAA,CAAA;GACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportsReportsListPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/ReportsReportsListPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,sBAAsB,4CA0ErC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { Play as t, Plus as n, Search as r } from "lucide-react";
|
|
3
|
+
import { Badge as i, Button as a, Card as o, CardContent as s, Input as c } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/ReportsReportsListPage.tsx
|
|
6
|
+
function d() {
|
|
7
|
+
let { reports: d } = e();
|
|
8
|
+
return /* @__PURE__ */ u("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ u("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("h1", {
|
|
14
|
+
className: "text-2xl font-bold",
|
|
15
|
+
children: "Reports List"
|
|
16
|
+
}), /* @__PURE__ */ u("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: [d.length, " configured reports"]
|
|
19
|
+
})] }), /* @__PURE__ */ u(a, {
|
|
20
|
+
size: "sm",
|
|
21
|
+
children: [/* @__PURE__ */ l(n, { className: "mr-2 h-4 w-4" }), "Create Report"]
|
|
22
|
+
})]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ u("div", {
|
|
25
|
+
className: "relative max-w-md",
|
|
26
|
+
children: [/* @__PURE__ */ l(r, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ l(c, {
|
|
27
|
+
placeholder: "Search reports...",
|
|
28
|
+
className: "pl-9"
|
|
29
|
+
})]
|
|
30
|
+
}),
|
|
31
|
+
/* @__PURE__ */ l(o, { children: /* @__PURE__ */ l(s, {
|
|
32
|
+
className: "p-0",
|
|
33
|
+
children: /* @__PURE__ */ l("div", {
|
|
34
|
+
className: "overflow-x-auto",
|
|
35
|
+
children: /* @__PURE__ */ u("table", {
|
|
36
|
+
className: "w-full text-sm",
|
|
37
|
+
children: [/* @__PURE__ */ l("thead", { children: /* @__PURE__ */ u("tr", {
|
|
38
|
+
className: "border-b bg-muted/50",
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ l("th", {
|
|
41
|
+
className: "text-left p-3 font-medium",
|
|
42
|
+
children: "Name"
|
|
43
|
+
}),
|
|
44
|
+
/* @__PURE__ */ l("th", {
|
|
45
|
+
className: "text-left p-3 font-medium",
|
|
46
|
+
children: "Category"
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ l("th", {
|
|
49
|
+
className: "text-left p-3 font-medium",
|
|
50
|
+
children: "Type"
|
|
51
|
+
}),
|
|
52
|
+
/* @__PURE__ */ l("th", {
|
|
53
|
+
className: "text-left p-3 font-medium",
|
|
54
|
+
children: "Schedule"
|
|
55
|
+
}),
|
|
56
|
+
/* @__PURE__ */ l("th", {
|
|
57
|
+
className: "text-left p-3 font-medium",
|
|
58
|
+
children: "Last Run"
|
|
59
|
+
}),
|
|
60
|
+
/* @__PURE__ */ l("th", {
|
|
61
|
+
className: "text-left p-3 font-medium",
|
|
62
|
+
children: "Tags"
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ l("th", { className: "p-3" })
|
|
65
|
+
]
|
|
66
|
+
}) }), /* @__PURE__ */ l("tbody", { children: d.map((e) => /* @__PURE__ */ u("tr", {
|
|
67
|
+
className: "border-b hover:bg-muted/50 cursor-pointer",
|
|
68
|
+
children: [
|
|
69
|
+
/* @__PURE__ */ u("td", {
|
|
70
|
+
className: "p-3",
|
|
71
|
+
children: [/* @__PURE__ */ l("p", {
|
|
72
|
+
className: "font-medium",
|
|
73
|
+
children: e.name
|
|
74
|
+
}), /* @__PURE__ */ l("p", {
|
|
75
|
+
className: "text-xs text-muted-foreground",
|
|
76
|
+
children: e.description
|
|
77
|
+
})]
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ l("td", {
|
|
80
|
+
className: "p-3",
|
|
81
|
+
children: /* @__PURE__ */ l(i, {
|
|
82
|
+
variant: "outline",
|
|
83
|
+
children: e.category
|
|
84
|
+
})
|
|
85
|
+
}),
|
|
86
|
+
/* @__PURE__ */ l("td", {
|
|
87
|
+
className: "p-3 capitalize text-xs",
|
|
88
|
+
children: e.type
|
|
89
|
+
}),
|
|
90
|
+
/* @__PURE__ */ l("td", {
|
|
91
|
+
className: "p-3 text-xs",
|
|
92
|
+
children: e.schedule || "Manual"
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ l("td", {
|
|
95
|
+
className: "p-3 text-xs",
|
|
96
|
+
children: e.lastRun ? new Date(e.lastRun).toLocaleDateString() : "Never"
|
|
97
|
+
}),
|
|
98
|
+
/* @__PURE__ */ l("td", {
|
|
99
|
+
className: "p-3",
|
|
100
|
+
children: /* @__PURE__ */ l("div", {
|
|
101
|
+
className: "flex flex-wrap gap-1",
|
|
102
|
+
children: e.tags.map((e) => /* @__PURE__ */ l(i, {
|
|
103
|
+
variant: "secondary",
|
|
104
|
+
className: "text-[10px]",
|
|
105
|
+
children: e
|
|
106
|
+
}, e))
|
|
107
|
+
})
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ l("td", {
|
|
110
|
+
className: "p-3",
|
|
111
|
+
children: /* @__PURE__ */ l(a, {
|
|
112
|
+
variant: "ghost",
|
|
113
|
+
size: "sm",
|
|
114
|
+
children: /* @__PURE__ */ l(t, { className: "h-3 w-3" })
|
|
115
|
+
})
|
|
116
|
+
})
|
|
117
|
+
]
|
|
118
|
+
}, e.id)) })]
|
|
119
|
+
})
|
|
120
|
+
})
|
|
121
|
+
}) })
|
|
122
|
+
]
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { d as ReportsReportsListPage };
|
|
127
|
+
|
|
128
|
+
//# sourceMappingURL=ReportsReportsListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportsReportsListPage.js","names":[],"sources":["../../../src/assethandler/pages/ReportsReportsListPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { FileText, Plus, Search, Play, Clock } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function ReportsReportsListPage() {\n const { reports } = useAssetHandlerStore();\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\">Reports List</h1>\n <p className=\"text-sm text-muted-foreground\">{reports.length} configured reports</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Report\n </Button>\n </div>\n\n <div className=\"relative max-w-md\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input placeholder=\"Search reports...\" className=\"pl-9\" />\n </div>\n\n <Card>\n <CardContent className=\"p-0\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-3 font-medium\">Name</th>\n <th className=\"text-left p-3 font-medium\">Category</th>\n <th className=\"text-left p-3 font-medium\">Type</th>\n <th className=\"text-left p-3 font-medium\">Schedule</th>\n <th className=\"text-left p-3 font-medium\">Last Run</th>\n <th className=\"text-left p-3 font-medium\">Tags</th>\n <th className=\"p-3\"></th>\n </tr>\n </thead>\n <tbody>\n {reports.map((report) => (\n <tr key={report.id} className=\"border-b hover:bg-muted/50 cursor-pointer\">\n <td className=\"p-3\">\n <p className=\"font-medium\">{report.name}</p>\n <p className=\"text-xs text-muted-foreground\">{report.description}</p>\n </td>\n <td className=\"p-3\">\n <Badge variant=\"outline\">{report.category}</Badge>\n </td>\n <td className=\"p-3 capitalize text-xs\">{report.type}</td>\n <td className=\"p-3 text-xs\">{report.schedule || 'Manual'}</td>\n <td className=\"p-3 text-xs\">\n {report.lastRun ? new Date(report.lastRun).toLocaleDateString() : 'Never'}\n </td>\n <td className=\"p-3\">\n <div className=\"flex flex-wrap gap-1\">\n {report.tags.map((t) => (\n <Badge key={t} variant=\"secondary\" className=\"text-[10px]\">\n {t}\n </Badge>\n ))}\n </div>\n </td>\n <td className=\"p-3\">\n <Button variant=\"ghost\" size=\"sm\">\n <Play className=\"h-3 w-3\" />\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;AAYA,SAAgB,IAAyB;CACvC,IAAM,EAAE,eAAY,GAAsB;AAE1C,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAqB;KAAiB,CAAA,EACpD,kBAAC,KAAD;KAAG,WAAU;eAAb,CAA8C,EAAQ,QAAO,sBAAuB;OAChF,EAAA,CAAA,EACN,kBAAC,GAAD;KAAQ,MAAK;eAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,gBAE1B;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD,EAAQ,WAAU,0EAA2E,CAAA,EAC7F,kBAAC,GAAD;KAAO,aAAY;KAAoB,WAAU;KAAS,CAAA,CACtD;;GAEN,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,SAAD;MAAO,WAAU;gBAAjB,CACE,kBAAC,SAAD,EAAA,UACE,kBAAC,MAAD;OAAI,WAAU;iBAAd;QACE,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAS,CAAA;QACnD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAa,CAAA;QACvD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAS,CAAA;QACnD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAa,CAAA;QACvD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAa,CAAA;QACvD,kBAAC,MAAD;SAAI,WAAU;mBAA4B;SAAS,CAAA;QACnD,kBAAC,MAAD,EAAI,WAAU,OAAW,CAAA;QACtB;UACC,CAAA,EACR,kBAAC,SAAD,EAAA,UACG,EAAQ,KAAK,MACZ,kBAAC,MAAD;OAAoB,WAAU;iBAA9B;QACE,kBAAC,MAAD;SAAI,WAAU;mBAAd,CACE,kBAAC,KAAD;UAAG,WAAU;oBAAe,EAAO;UAAS,CAAA,EAC5C,kBAAC,KAAD;UAAG,WAAU;oBAAiC,EAAO;UAAgB,CAAA,CAClE;;QACL,kBAAC,MAAD;SAAI,WAAU;mBACZ,kBAAC,GAAD;UAAO,SAAQ;oBAAW,EAAO;UAAiB,CAAA;SAC/C,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBAA0B,EAAO;SAAU,CAAA;QACzD,kBAAC,MAAD;SAAI,WAAU;mBAAe,EAAO,YAAY;SAAc,CAAA;QAC9D,kBAAC,MAAD;SAAI,WAAU;mBACX,EAAO,UAAU,IAAI,KAAK,EAAO,QAAQ,CAAC,oBAAoB,GAAG;SAC/D,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACZ,kBAAC,OAAD;UAAK,WAAU;oBACZ,EAAO,KAAK,KAAK,MAChB,kBAAC,GAAD;WAAe,SAAQ;WAAY,WAAU;qBAC1C;WACK,EAFI,EAEJ,CACR;UACE,CAAA;SACH,CAAA;QACL,kBAAC,MAAD;SAAI,WAAU;mBACZ,kBAAC,GAAD;UAAQ,SAAQ;UAAQ,MAAK;oBAC3B,kBAAC,GAAD,EAAM,WAAU,WAAY,CAAA;UACrB,CAAA;SACN,CAAA;QACF;SA3BI,EAAO,GA2BX,CACL,EACI,CAAA,CACF;;KACJ,CAAA;IACM,CAAA,EACT,CAAA;GACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SamLicensesPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/SamLicensesPage.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,eAAe,4CAuD9B"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { KeyRound 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/SamLicensesPage.tsx
|
|
6
|
+
var a = r`
|
|
7
|
+
query AssetHandlerSoftwareAssets {
|
|
8
|
+
softwareAssets {
|
|
9
|
+
id
|
|
10
|
+
name
|
|
11
|
+
vendor
|
|
12
|
+
version
|
|
13
|
+
licenseType
|
|
14
|
+
seatsPurchased
|
|
15
|
+
seatsUsed
|
|
16
|
+
compliancePercent
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
`;
|
|
20
|
+
function o() {
|
|
21
|
+
let { data: r, loading: o } = i(a, { fetchPolicy: "cache-and-network" }), s = r?.softwareAssets ?? [];
|
|
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" }), " SAM Licenses"]
|
|
28
|
+
}),
|
|
29
|
+
/* @__PURE__ */ t("p", {
|
|
30
|
+
className: "text-muted-foreground",
|
|
31
|
+
children: "Manage software entitlements, utilization, and compliance posture."
|
|
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: "Software" }),
|
|
40
|
+
/* @__PURE__ */ t("span", { children: "Vendor" }),
|
|
41
|
+
/* @__PURE__ */ t("span", { children: "Version" }),
|
|
42
|
+
/* @__PURE__ */ t("span", { children: "Seats Used" }),
|
|
43
|
+
/* @__PURE__ */ t("span", { children: "Compliance" })
|
|
44
|
+
]
|
|
45
|
+
}),
|
|
46
|
+
o && s.length === 0 ? /* @__PURE__ */ t("div", {
|
|
47
|
+
className: "px-4 py-4 text-sm text-muted-foreground",
|
|
48
|
+
children: "Loading software assets..."
|
|
49
|
+
}) : null,
|
|
50
|
+
!o && s.length === 0 ? /* @__PURE__ */ t("div", {
|
|
51
|
+
className: "px-4 py-4 text-sm text-muted-foreground",
|
|
52
|
+
children: "No software assets 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.name
|
|
60
|
+
}),
|
|
61
|
+
/* @__PURE__ */ t("span", { children: e.vendor }),
|
|
62
|
+
/* @__PURE__ */ t("span", { children: e.version }),
|
|
63
|
+
/* @__PURE__ */ n("span", { children: [
|
|
64
|
+
e.seatsUsed ?? 0,
|
|
65
|
+
"/",
|
|
66
|
+
e.seatsPurchased ?? "-"
|
|
67
|
+
] }),
|
|
68
|
+
/* @__PURE__ */ n("span", { children: [e.compliancePercent.toFixed(1), "%"] })
|
|
69
|
+
]
|
|
70
|
+
}, e.id))
|
|
71
|
+
]
|
|
72
|
+
})
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { o as SamLicensesPage };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=SamLicensesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SamLicensesPage.js","names":[],"sources":["../../../src/assethandler/pages/SamLicensesPage.tsx"],"sourcesContent":["import { KeyRound } from 'lucide-react';\nimport { gql } from '@apollo/client';\nimport { useQuery } from '@apollo/client/react';\n\nconst SOFTWARE_ASSETS_QUERY = gql`\n query AssetHandlerSoftwareAssets {\n softwareAssets {\n id\n name\n vendor\n version\n licenseType\n seatsPurchased\n seatsUsed\n compliancePercent\n }\n }\n`;\n\nexport function SamLicensesPage() {\n const { data, loading } = useQuery<{\n softwareAssets: Array<{\n id: string;\n name: string;\n vendor: string;\n version: string;\n licenseType: string;\n seatsPurchased: number | null;\n seatsUsed: number | null;\n compliancePercent: number;\n }>;\n }>(SOFTWARE_ASSETS_QUERY, { fetchPolicy: 'cache-and-network' });\n\n const softwareAssets = data?.softwareAssets ?? [];\n\n return (\n <div className=\"space-y-4 p-4\">\n <h1 className=\"flex items-center gap-2 text-2xl font-semibold\">\n <KeyRound className=\"h-6 w-6\" /> SAM Licenses\n </h1>\n <p className=\"text-muted-foreground\">\n Manage software entitlements, utilization, and compliance posture.\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>Software</span>\n <span>Vendor</span>\n <span>Version</span>\n <span>Seats Used</span>\n <span>Compliance</span>\n </div>\n {loading && softwareAssets.length === 0 ? (\n <div className=\"px-4 py-4 text-sm text-muted-foreground\">Loading software assets...</div>\n ) : null}\n {!loading && softwareAssets.length === 0 ? (\n <div className=\"px-4 py-4 text-sm text-muted-foreground\">No software assets found.</div>\n ) : null}\n {softwareAssets.map((asset) => (\n <div\n key={asset.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\">{asset.name}</span>\n <span>{asset.vendor}</span>\n <span>{asset.version}</span>\n <span>\n {asset.seatsUsed ?? 0}/{asset.seatsPurchased ?? '-'}\n </span>\n <span>{asset.compliancePercent.toFixed(1)}%</span>\n </div>\n ))}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAIA,IAAM,IAAwB,CAAG;;;;;;;;;;;;;;AAejC,SAAgB,IAAkB;CAChC,IAAM,EAAE,SAAM,eAAY,EAWvB,GAAuB,EAAE,aAAa,qBAAqB,CAAC,EAEzD,IAAiB,GAAM,kBAAkB,EAAE;AAEjD,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA,EAAA,gBAC7B;;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,YAAe,CAAA;OACrB,kBAAC,QAAD,EAAA,UAAM,UAAa,CAAA;OACnB,kBAAC,QAAD,EAAA,UAAM,WAAc,CAAA;OACpB,kBAAC,QAAD,EAAA,UAAM,cAAiB,CAAA;OACvB,kBAAC,QAAD,EAAA,UAAM,cAAiB,CAAA;OACnB;;KACL,KAAW,EAAe,WAAW,IACpC,kBAAC,OAAD;MAAK,WAAU;gBAA0C;MAAgC,CAAA,GACvF;KACH,CAAC,KAAW,EAAe,WAAW,IACrC,kBAAC,OAAD;MAAK,WAAU;gBAA0C;MAA+B,CAAA,GACtF;KACH,EAAe,KAAK,MACnB,kBAAC,OAAD;MAEE,WAAU;gBAFZ;OAIE,kBAAC,QAAD;QAAM,WAAU;kBAAe,EAAM;QAAY,CAAA;OACjD,kBAAC,QAAD,EAAA,UAAO,EAAM,QAAc,CAAA;OAC3B,kBAAC,QAAD,EAAA,UAAO,EAAM,SAAe,CAAA;OAC5B,kBAAC,QAAD,EAAA,UAAA;QACG,EAAM,aAAa;QAAE;QAAE,EAAM,kBAAkB;QAC3C,EAAA,CAAA;OACP,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAM,kBAAkB,QAAQ,EAAE,EAAC,IAAQ,EAAA,CAAA;OAC9C;QAVC,EAAM,GAUP,CACN;KACE;;GACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityComplianceDetailPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/SecurityComplianceDetailPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,4BAA4B,4CA8F3C"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { ArrowLeft as t, Shield as n } from "lucide-react";
|
|
3
|
+
import { useParams as r } from "react-router-dom";
|
|
4
|
+
import { Badge as i, Button as a, Card as o, CardContent as s, CardHeader as c, CardTitle as l } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
6
|
+
//#region src/assethandler/pages/SecurityComplianceDetailPage.tsx
|
|
7
|
+
function f() {
|
|
8
|
+
let { frameworkId: f } = r(), { complianceFrameworks: p } = e(), m = p.find((e) => e.id === f) ?? p[0];
|
|
9
|
+
return m ? /* @__PURE__ */ d("div", {
|
|
10
|
+
className: "space-y-6 p-6",
|
|
11
|
+
children: [
|
|
12
|
+
/* @__PURE__ */ d("div", {
|
|
13
|
+
className: "flex items-center justify-between",
|
|
14
|
+
children: [/* @__PURE__ */ d("div", {
|
|
15
|
+
className: "flex items-center gap-4",
|
|
16
|
+
children: [/* @__PURE__ */ u(a, {
|
|
17
|
+
variant: "ghost",
|
|
18
|
+
size: "icon",
|
|
19
|
+
children: /* @__PURE__ */ u(t, { className: "h-4 w-4" })
|
|
20
|
+
}), /* @__PURE__ */ d("div", { children: [/* @__PURE__ */ d("div", {
|
|
21
|
+
className: "flex items-center gap-3",
|
|
22
|
+
children: [/* @__PURE__ */ d("h1", {
|
|
23
|
+
className: "text-2xl font-bold",
|
|
24
|
+
children: [
|
|
25
|
+
m.name,
|
|
26
|
+
" ",
|
|
27
|
+
m.version
|
|
28
|
+
]
|
|
29
|
+
}), /* @__PURE__ */ u(i, {
|
|
30
|
+
variant: m.status === "compliant" ? "default" : m.status === "non_compliant" ? "destructive" : "secondary",
|
|
31
|
+
children: m.status.replace("_", " ")
|
|
32
|
+
})]
|
|
33
|
+
}), /* @__PURE__ */ u("p", {
|
|
34
|
+
className: "text-sm text-muted-foreground mt-1",
|
|
35
|
+
children: "Compliance framework assessment details"
|
|
36
|
+
})] })]
|
|
37
|
+
}), /* @__PURE__ */ d(a, {
|
|
38
|
+
size: "sm",
|
|
39
|
+
children: [/* @__PURE__ */ u(n, { className: "mr-2 h-4 w-4" }), "Run Assessment"]
|
|
40
|
+
})]
|
|
41
|
+
}),
|
|
42
|
+
/* @__PURE__ */ d("div", {
|
|
43
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ u(o, { children: /* @__PURE__ */ d(s, {
|
|
46
|
+
className: "pt-4 text-center",
|
|
47
|
+
children: [/* @__PURE__ */ d("p", {
|
|
48
|
+
className: "text-4xl font-bold",
|
|
49
|
+
children: [m.score, "%"]
|
|
50
|
+
}), /* @__PURE__ */ u("p", {
|
|
51
|
+
className: "text-xs text-muted-foreground",
|
|
52
|
+
children: "Overall Score"
|
|
53
|
+
})]
|
|
54
|
+
}) }),
|
|
55
|
+
/* @__PURE__ */ u(o, { children: /* @__PURE__ */ d(s, {
|
|
56
|
+
className: "pt-4 text-center",
|
|
57
|
+
children: [/* @__PURE__ */ u("p", {
|
|
58
|
+
className: "text-4xl font-bold text-green-600",
|
|
59
|
+
children: m.passedControls
|
|
60
|
+
}), /* @__PURE__ */ u("p", {
|
|
61
|
+
className: "text-xs text-muted-foreground",
|
|
62
|
+
children: "Passed"
|
|
63
|
+
})]
|
|
64
|
+
}) }),
|
|
65
|
+
/* @__PURE__ */ u(o, { children: /* @__PURE__ */ d(s, {
|
|
66
|
+
className: "pt-4 text-center",
|
|
67
|
+
children: [/* @__PURE__ */ u("p", {
|
|
68
|
+
className: "text-4xl font-bold text-red-600",
|
|
69
|
+
children: m.failedControls
|
|
70
|
+
}), /* @__PURE__ */ u("p", {
|
|
71
|
+
className: "text-xs text-muted-foreground",
|
|
72
|
+
children: "Failed"
|
|
73
|
+
})]
|
|
74
|
+
}) }),
|
|
75
|
+
/* @__PURE__ */ u(o, { children: /* @__PURE__ */ d(s, {
|
|
76
|
+
className: "pt-4 text-center",
|
|
77
|
+
children: [/* @__PURE__ */ u("p", {
|
|
78
|
+
className: "text-4xl font-bold",
|
|
79
|
+
children: m.totalControls
|
|
80
|
+
}), /* @__PURE__ */ u("p", {
|
|
81
|
+
className: "text-xs text-muted-foreground",
|
|
82
|
+
children: "Total Controls"
|
|
83
|
+
})]
|
|
84
|
+
}) })
|
|
85
|
+
]
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ d(o, { children: [/* @__PURE__ */ u(c, { children: /* @__PURE__ */ u(l, { children: "Compliance Progress" }) }), /* @__PURE__ */ d(s, { children: [/* @__PURE__ */ u("div", {
|
|
88
|
+
className: "h-4 rounded-full bg-muted overflow-hidden",
|
|
89
|
+
children: /* @__PURE__ */ u("div", {
|
|
90
|
+
className: `h-full rounded-full ${m.score >= 90 ? "bg-green-500" : m.score >= 70 ? "bg-yellow-500" : "bg-red-500"}`,
|
|
91
|
+
style: { width: `${m.score}%` }
|
|
92
|
+
})
|
|
93
|
+
}), /* @__PURE__ */ d("div", {
|
|
94
|
+
className: "flex justify-between mt-2 text-xs text-muted-foreground",
|
|
95
|
+
children: [/* @__PURE__ */ d("span", { children: ["Last Assessment: ", m.lastAssessment] }), /* @__PURE__ */ d("span", { children: ["Next Assessment: ", m.nextAssessment] })]
|
|
96
|
+
})] })] })
|
|
97
|
+
]
|
|
98
|
+
}) : /* @__PURE__ */ u("div", {
|
|
99
|
+
className: "p-6",
|
|
100
|
+
children: /* @__PURE__ */ u("p", {
|
|
101
|
+
className: "text-muted-foreground",
|
|
102
|
+
children: "Framework not found."
|
|
103
|
+
})
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
//#endregion
|
|
107
|
+
export { f as SecurityComplianceDetailPage };
|
|
108
|
+
|
|
109
|
+
//# sourceMappingURL=SecurityComplianceDetailPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityComplianceDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/SecurityComplianceDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, CheckCircle, XCircle, Shield } from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function SecurityComplianceDetailPage() {\n const { frameworkId } = useParams<{ frameworkId: string }>();\n const { complianceFrameworks } = useAssetHandlerStore();\n const framework =\n complianceFrameworks.find((item) => item.id === frameworkId) ?? complianceFrameworks[0];\n\n if (!framework)\n return (\n <div className=\"p-6\">\n <p className=\"text-muted-foreground\">Framework not found.</p>\n </div>\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <div className=\"flex items-center gap-3\">\n <h1 className=\"text-2xl font-bold\">\n {framework.name} {framework.version}\n </h1>\n <Badge\n variant={\n framework.status === 'compliant'\n ? 'default'\n : framework.status === 'non_compliant'\n ? 'destructive'\n : 'secondary'\n }\n >\n {framework.status.replace('_', ' ')}\n </Badge>\n </div>\n <p className=\"text-sm text-muted-foreground mt-1\">\n Compliance framework assessment details\n </p>\n </div>\n </div>\n <Button size=\"sm\">\n <Shield className=\"mr-2 h-4 w-4\" />\n Run Assessment\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardContent className=\"pt-4 text-center\">\n <p className=\"text-4xl font-bold\">{framework.score}%</p>\n <p className=\"text-xs text-muted-foreground\">Overall Score</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4 text-center\">\n <p className=\"text-4xl font-bold text-green-600\">{framework.passedControls}</p>\n <p className=\"text-xs text-muted-foreground\">Passed</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4 text-center\">\n <p className=\"text-4xl font-bold text-red-600\">{framework.failedControls}</p>\n <p className=\"text-xs text-muted-foreground\">Failed</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4 text-center\">\n <p className=\"text-4xl font-bold\">{framework.totalControls}</p>\n <p className=\"text-xs text-muted-foreground\">Total Controls</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Compliance Progress</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"h-4 rounded-full bg-muted overflow-hidden\">\n <div\n className={`h-full rounded-full ${framework.score >= 90 ? 'bg-green-500' : framework.score >= 70 ? 'bg-yellow-500' : 'bg-red-500'}`}\n style={{ width: `${framework.score}%` }}\n />\n </div>\n <div className=\"flex justify-between mt-2 text-xs text-muted-foreground\">\n <span>Last Assessment: {framework.lastAssessment}</span>\n <span>Next Assessment: {framework.nextAssessment}</span>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":";;;;;;AAaA,SAAgB,IAA+B;CAC7C,IAAM,EAAE,mBAAgB,GAAoC,EACtD,EAAE,4BAAyB,GAAsB,EACjD,IACJ,EAAqB,MAAM,MAAS,EAAK,OAAO,EAAY,IAAI,EAAqB;AASvF,QAPK,IAQH,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MAAQ,SAAQ;MAAQ,MAAK;gBAC3B,kBAAC,GAAD,EAAW,WAAU,WAAY,CAAA;MAC1B,CAAA,EACT,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACE,kBAAC,MAAD;OAAI,WAAU;iBAAd;QACG,EAAU;QAAK;QAAE,EAAU;QACzB;UACL,kBAAC,GAAD;OACE,SACE,EAAU,WAAW,cACjB,YACA,EAAU,WAAW,kBACnB,gBACA;iBAGP,EAAU,OAAO,QAAQ,KAAK,IAAI;OAC7B,CAAA,CACJ;SACN,kBAAC,KAAD;MAAG,WAAU;gBAAqC;MAE9C,CAAA,CACA,EAAA,CAAA,CACF;QACN,kBAAC,GAAD;KAAQ,MAAK;eAAb,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,iBAE5B;OACL;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAb,CAAmC,EAAU,OAAM,IAAK;UACxD,kBAAC,KAAD;OAAG,WAAU;iBAAgC;OAAiB,CAAA,CAClD;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAqC,EAAU;OAAmB,CAAA,EAC/E,kBAAC,KAAD;OAAG,WAAU;iBAAgC;OAAU,CAAA,CAC3C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAmC,EAAU;OAAmB,CAAA,EAC7E,kBAAC,KAAD;OAAG,WAAU;iBAAgC;OAAU,CAAA,CAC3C;SACT,CAAA;KACP,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;MAAa,WAAU;gBAAvB,CACE,kBAAC,KAAD;OAAG,WAAU;iBAAsB,EAAU;OAAkB,CAAA,EAC/D,kBAAC,KAAD;OAAG,WAAU;iBAAgC;OAAkB,CAAA,CACnD;SACT,CAAA;KACH;;GAEN,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,uBAA+B,CAAA,EAC/B,CAAA,EACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,OAAD;KACE,WAAW,uBAAuB,EAAU,SAAS,KAAK,iBAAiB,EAAU,SAAS,KAAK,kBAAkB;KACrH,OAAO,EAAE,OAAO,GAAG,EAAU,MAAM,IAAI;KACvC,CAAA;IACE,CAAA,EACN,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,QAAD,EAAA,UAAA,CAAM,qBAAkB,EAAU,eAAsB,EAAA,CAAA,EACxD,kBAAC,QAAD,EAAA,UAAA,CAAM,qBAAkB,EAAU,eAAsB,EAAA,CAAA,CACpD;MACM,EAAA,CAAA,CACT,EAAA,CAAA;GACH;MApFJ,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,KAAD;GAAG,WAAU;aAAwB;GAAwB,CAAA;EACzD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SecurityPolicyDetailPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/SecurityPolicyDetailPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,wBAAwB,4CA6GvC"}
|