@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,325 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { Activity as t, Download as n, Key as r, Plus as i, Shield as a, Upload as o, UserCheck as s, Users as c } from "lucide-react";
|
|
3
|
+
import { Badge as l, Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as m, Table as h, TableBody as g, TableCell as _, TableHead as v, TableHeader as y, TableRow as b, Tabs as x, TabsContent as S, TabsList as C, TabsTrigger as w } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as T, jsxs as E } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/UsersUserManagementHubPage.tsx
|
|
6
|
+
var D = {
|
|
7
|
+
admin: {
|
|
8
|
+
description: "Full system access with all permissions",
|
|
9
|
+
permCount: 11,
|
|
10
|
+
color: "bg-red-100 text-red-800"
|
|
11
|
+
},
|
|
12
|
+
manager: {
|
|
13
|
+
description: "Department-level management and reporting",
|
|
14
|
+
permCount: 6,
|
|
15
|
+
color: "bg-blue-100 text-blue-800"
|
|
16
|
+
},
|
|
17
|
+
technician: {
|
|
18
|
+
description: "Asset maintenance and operational tasks",
|
|
19
|
+
permCount: 4,
|
|
20
|
+
color: "bg-green-100 text-green-800"
|
|
21
|
+
},
|
|
22
|
+
viewer: {
|
|
23
|
+
description: "Read-only access to assets and reports",
|
|
24
|
+
permCount: 2,
|
|
25
|
+
color: "bg-gray-100 text-gray-800"
|
|
26
|
+
},
|
|
27
|
+
auditor: {
|
|
28
|
+
description: "Audit trail access and compliance reporting",
|
|
29
|
+
permCount: 4,
|
|
30
|
+
color: "bg-purple-100 text-purple-800"
|
|
31
|
+
}
|
|
32
|
+
}, O = [
|
|
33
|
+
{
|
|
34
|
+
module: "Assets",
|
|
35
|
+
admin: "Full",
|
|
36
|
+
manager: "Full",
|
|
37
|
+
technician: "Read/Update",
|
|
38
|
+
viewer: "Read",
|
|
39
|
+
auditor: "Read"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
module: "Users",
|
|
43
|
+
admin: "Full",
|
|
44
|
+
manager: "Read",
|
|
45
|
+
technician: "—",
|
|
46
|
+
viewer: "—",
|
|
47
|
+
auditor: "—"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
module: "Reports",
|
|
51
|
+
admin: "Full",
|
|
52
|
+
manager: "Read",
|
|
53
|
+
technician: "—",
|
|
54
|
+
viewer: "Read",
|
|
55
|
+
auditor: "Full"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
module: "Maintenance",
|
|
59
|
+
admin: "Full",
|
|
60
|
+
manager: "Full",
|
|
61
|
+
technician: "Full",
|
|
62
|
+
viewer: "—",
|
|
63
|
+
auditor: "—"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
module: "Audit",
|
|
67
|
+
admin: "Full",
|
|
68
|
+
manager: "—",
|
|
69
|
+
technician: "—",
|
|
70
|
+
viewer: "—",
|
|
71
|
+
auditor: "Full"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
module: "Compliance",
|
|
75
|
+
admin: "Full",
|
|
76
|
+
manager: "Read",
|
|
77
|
+
technician: "—",
|
|
78
|
+
viewer: "—",
|
|
79
|
+
auditor: "Full"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
module: "Settings",
|
|
83
|
+
admin: "Full",
|
|
84
|
+
manager: "—",
|
|
85
|
+
technician: "—",
|
|
86
|
+
viewer: "—",
|
|
87
|
+
auditor: "—"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
module: "Finance",
|
|
91
|
+
admin: "Full",
|
|
92
|
+
manager: "Full",
|
|
93
|
+
technician: "—",
|
|
94
|
+
viewer: "Read",
|
|
95
|
+
auditor: "Read"
|
|
96
|
+
}
|
|
97
|
+
], k = Date.now() - 864e5;
|
|
98
|
+
function A() {
|
|
99
|
+
let { users: A } = e(), j = A.filter((e) => e.status === "active").length, M = A.filter((e) => new Date(e.lastLogin).getTime() > k).length, N = A.reduce((e, t) => (e[t.role] = (e[t.role] || 0) + 1, e), {});
|
|
100
|
+
return /* @__PURE__ */ E("div", {
|
|
101
|
+
className: "space-y-6 p-6",
|
|
102
|
+
children: [
|
|
103
|
+
/* @__PURE__ */ E("div", {
|
|
104
|
+
className: "flex items-center justify-between",
|
|
105
|
+
children: [/* @__PURE__ */ E("div", { children: [/* @__PURE__ */ T("h1", {
|
|
106
|
+
className: "text-2xl font-semibold",
|
|
107
|
+
children: "User Management"
|
|
108
|
+
}), /* @__PURE__ */ T("p", {
|
|
109
|
+
className: "text-sm text-muted-foreground",
|
|
110
|
+
children: "Manage users, roles, and access permissions across the organization."
|
|
111
|
+
})] }), /* @__PURE__ */ E("div", {
|
|
112
|
+
className: "flex gap-2",
|
|
113
|
+
children: [
|
|
114
|
+
/* @__PURE__ */ E(u, {
|
|
115
|
+
variant: "outline",
|
|
116
|
+
size: "sm",
|
|
117
|
+
children: [/* @__PURE__ */ T(o, { className: "mr-2 h-4 w-4" }), "Bulk Import"]
|
|
118
|
+
}),
|
|
119
|
+
/* @__PURE__ */ E(u, {
|
|
120
|
+
variant: "outline",
|
|
121
|
+
size: "sm",
|
|
122
|
+
children: [/* @__PURE__ */ T(n, { className: "mr-2 h-4 w-4" }), "Export"]
|
|
123
|
+
}),
|
|
124
|
+
/* @__PURE__ */ E(u, {
|
|
125
|
+
size: "sm",
|
|
126
|
+
children: [/* @__PURE__ */ T(i, { className: "mr-2 h-4 w-4" }), "Add User"]
|
|
127
|
+
})
|
|
128
|
+
]
|
|
129
|
+
})]
|
|
130
|
+
}),
|
|
131
|
+
/* @__PURE__ */ E("div", {
|
|
132
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ E(d, { children: [/* @__PURE__ */ E(p, {
|
|
135
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
136
|
+
children: [/* @__PURE__ */ T(m, {
|
|
137
|
+
className: "text-sm font-medium",
|
|
138
|
+
children: "Total Users"
|
|
139
|
+
}), /* @__PURE__ */ T(c, { className: "h-4 w-4 text-muted-foreground" })]
|
|
140
|
+
}), /* @__PURE__ */ T(f, { children: /* @__PURE__ */ T("div", {
|
|
141
|
+
className: "text-2xl font-bold",
|
|
142
|
+
children: A.length
|
|
143
|
+
}) })] }),
|
|
144
|
+
/* @__PURE__ */ E(d, { children: [/* @__PURE__ */ E(p, {
|
|
145
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
146
|
+
children: [/* @__PURE__ */ T(m, {
|
|
147
|
+
className: "text-sm font-medium",
|
|
148
|
+
children: "Active"
|
|
149
|
+
}), /* @__PURE__ */ T(s, { className: "h-4 w-4 text-green-500" })]
|
|
150
|
+
}), /* @__PURE__ */ E(f, { children: [/* @__PURE__ */ T("div", {
|
|
151
|
+
className: "text-2xl font-bold",
|
|
152
|
+
children: j
|
|
153
|
+
}), /* @__PURE__ */ E("p", {
|
|
154
|
+
className: "text-xs text-muted-foreground",
|
|
155
|
+
children: [Math.round(j / A.length * 100), "% of total"]
|
|
156
|
+
})] })] }),
|
|
157
|
+
/* @__PURE__ */ E(d, { children: [/* @__PURE__ */ E(p, {
|
|
158
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
159
|
+
children: [/* @__PURE__ */ T(m, {
|
|
160
|
+
className: "text-sm font-medium",
|
|
161
|
+
children: "Roles Defined"
|
|
162
|
+
}), /* @__PURE__ */ T(a, { className: "h-4 w-4 text-muted-foreground" })]
|
|
163
|
+
}), /* @__PURE__ */ T(f, { children: /* @__PURE__ */ T("div", {
|
|
164
|
+
className: "text-2xl font-bold",
|
|
165
|
+
children: Object.keys(D).length
|
|
166
|
+
}) })] }),
|
|
167
|
+
/* @__PURE__ */ E(d, { children: [/* @__PURE__ */ E(p, {
|
|
168
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
169
|
+
children: [/* @__PURE__ */ T(m, {
|
|
170
|
+
className: "text-sm font-medium",
|
|
171
|
+
children: "Recent Activity"
|
|
172
|
+
}), /* @__PURE__ */ T(t, { className: "h-4 w-4 text-muted-foreground" })]
|
|
173
|
+
}), /* @__PURE__ */ E(f, { children: [/* @__PURE__ */ T("div", {
|
|
174
|
+
className: "text-2xl font-bold",
|
|
175
|
+
children: M
|
|
176
|
+
}), /* @__PURE__ */ T("p", {
|
|
177
|
+
className: "text-xs text-muted-foreground",
|
|
178
|
+
children: "Logged in last 24h"
|
|
179
|
+
})] })] })
|
|
180
|
+
]
|
|
181
|
+
}),
|
|
182
|
+
/* @__PURE__ */ E(x, {
|
|
183
|
+
defaultValue: "users",
|
|
184
|
+
children: [
|
|
185
|
+
/* @__PURE__ */ E(C, { children: [
|
|
186
|
+
/* @__PURE__ */ T(w, {
|
|
187
|
+
value: "users",
|
|
188
|
+
children: "Users"
|
|
189
|
+
}),
|
|
190
|
+
/* @__PURE__ */ T(w, {
|
|
191
|
+
value: "roles",
|
|
192
|
+
children: "Roles"
|
|
193
|
+
}),
|
|
194
|
+
/* @__PURE__ */ T(w, {
|
|
195
|
+
value: "permissions",
|
|
196
|
+
children: "Permissions Matrix"
|
|
197
|
+
})
|
|
198
|
+
] }),
|
|
199
|
+
/* @__PURE__ */ T(S, {
|
|
200
|
+
value: "users",
|
|
201
|
+
className: "mt-4",
|
|
202
|
+
children: /* @__PURE__ */ T(d, { children: /* @__PURE__ */ T(f, {
|
|
203
|
+
className: "pt-6",
|
|
204
|
+
children: /* @__PURE__ */ E(h, { children: [/* @__PURE__ */ T(y, { children: /* @__PURE__ */ E(b, { children: [
|
|
205
|
+
/* @__PURE__ */ T(v, { children: "Name" }),
|
|
206
|
+
/* @__PURE__ */ T(v, { children: "Email" }),
|
|
207
|
+
/* @__PURE__ */ T(v, { children: "Role" }),
|
|
208
|
+
/* @__PURE__ */ T(v, { children: "Department" }),
|
|
209
|
+
/* @__PURE__ */ T(v, { children: "Status" }),
|
|
210
|
+
/* @__PURE__ */ T(v, {
|
|
211
|
+
className: "text-right",
|
|
212
|
+
children: "Assets"
|
|
213
|
+
})
|
|
214
|
+
] }) }), /* @__PURE__ */ T(g, { children: A.map((e) => /* @__PURE__ */ E(b, { children: [
|
|
215
|
+
/* @__PURE__ */ E(_, {
|
|
216
|
+
className: "font-medium",
|
|
217
|
+
children: [
|
|
218
|
+
e.firstName,
|
|
219
|
+
" ",
|
|
220
|
+
e.lastName
|
|
221
|
+
]
|
|
222
|
+
}),
|
|
223
|
+
/* @__PURE__ */ T(_, { children: e.email }),
|
|
224
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
225
|
+
variant: e.role === "admin" ? "destructive" : "secondary",
|
|
226
|
+
children: e.role
|
|
227
|
+
}) }),
|
|
228
|
+
/* @__PURE__ */ T(_, { children: e.department }),
|
|
229
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
230
|
+
variant: e.status === "active" ? "default" : "outline",
|
|
231
|
+
children: e.status
|
|
232
|
+
}) }),
|
|
233
|
+
/* @__PURE__ */ T(_, {
|
|
234
|
+
className: "text-right",
|
|
235
|
+
children: e.assetsAssigned
|
|
236
|
+
})
|
|
237
|
+
] }, e.id)) })] })
|
|
238
|
+
}) })
|
|
239
|
+
}),
|
|
240
|
+
/* @__PURE__ */ T(S, {
|
|
241
|
+
value: "roles",
|
|
242
|
+
className: "mt-4",
|
|
243
|
+
children: /* @__PURE__ */ T("div", {
|
|
244
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
245
|
+
children: Object.entries(D).map(([e, t]) => /* @__PURE__ */ E(d, { children: [/* @__PURE__ */ T(p, { children: /* @__PURE__ */ E("div", {
|
|
246
|
+
className: "flex items-center justify-between",
|
|
247
|
+
children: [/* @__PURE__ */ T(m, {
|
|
248
|
+
className: "text-lg capitalize",
|
|
249
|
+
children: e
|
|
250
|
+
}), /* @__PURE__ */ E(l, {
|
|
251
|
+
variant: "outline",
|
|
252
|
+
children: [N[e] || 0, " users"]
|
|
253
|
+
})]
|
|
254
|
+
}) }), /* @__PURE__ */ E(f, {
|
|
255
|
+
className: "space-y-3",
|
|
256
|
+
children: [
|
|
257
|
+
/* @__PURE__ */ T("p", {
|
|
258
|
+
className: "text-sm text-muted-foreground",
|
|
259
|
+
children: t.description
|
|
260
|
+
}),
|
|
261
|
+
/* @__PURE__ */ E("div", {
|
|
262
|
+
className: "flex items-center gap-2 text-sm",
|
|
263
|
+
children: [/* @__PURE__ */ T(r, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ E("span", { children: [t.permCount, " permissions"] })]
|
|
264
|
+
}),
|
|
265
|
+
/* @__PURE__ */ T(u, {
|
|
266
|
+
variant: "outline",
|
|
267
|
+
size: "sm",
|
|
268
|
+
className: "w-full",
|
|
269
|
+
children: "Edit Role"
|
|
270
|
+
})
|
|
271
|
+
]
|
|
272
|
+
})] }, e))
|
|
273
|
+
})
|
|
274
|
+
}),
|
|
275
|
+
/* @__PURE__ */ T(S, {
|
|
276
|
+
value: "permissions",
|
|
277
|
+
className: "mt-4",
|
|
278
|
+
children: /* @__PURE__ */ E(d, { children: [/* @__PURE__ */ T(p, { children: /* @__PURE__ */ T(m, { children: "Permission Matrix" }) }), /* @__PURE__ */ T(f, { children: /* @__PURE__ */ E(h, { children: [/* @__PURE__ */ T(y, { children: /* @__PURE__ */ E(b, { children: [
|
|
279
|
+
/* @__PURE__ */ T(v, { children: "Module" }),
|
|
280
|
+
/* @__PURE__ */ T(v, { children: "Admin" }),
|
|
281
|
+
/* @__PURE__ */ T(v, { children: "Manager" }),
|
|
282
|
+
/* @__PURE__ */ T(v, { children: "Technician" }),
|
|
283
|
+
/* @__PURE__ */ T(v, { children: "Viewer" }),
|
|
284
|
+
/* @__PURE__ */ T(v, { children: "Auditor" })
|
|
285
|
+
] }) }), /* @__PURE__ */ T(g, { children: O.map((e) => /* @__PURE__ */ E(b, { children: [
|
|
286
|
+
/* @__PURE__ */ T(_, {
|
|
287
|
+
className: "font-medium",
|
|
288
|
+
children: e.module
|
|
289
|
+
}),
|
|
290
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
291
|
+
variant: e.admin === "Full" ? "default" : "outline",
|
|
292
|
+
className: "text-xs",
|
|
293
|
+
children: e.admin
|
|
294
|
+
}) }),
|
|
295
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
296
|
+
variant: e.manager === "Full" ? "default" : e.manager === "—" ? "outline" : "secondary",
|
|
297
|
+
className: "text-xs",
|
|
298
|
+
children: e.manager
|
|
299
|
+
}) }),
|
|
300
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
301
|
+
variant: e.technician === "Full" ? "default" : e.technician === "—" ? "outline" : "secondary",
|
|
302
|
+
className: "text-xs",
|
|
303
|
+
children: e.technician
|
|
304
|
+
}) }),
|
|
305
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
306
|
+
variant: e.viewer === "—" ? "outline" : "secondary",
|
|
307
|
+
className: "text-xs",
|
|
308
|
+
children: e.viewer
|
|
309
|
+
}) }),
|
|
310
|
+
/* @__PURE__ */ T(_, { children: /* @__PURE__ */ T(l, {
|
|
311
|
+
variant: e.auditor === "Full" ? "default" : e.auditor === "—" ? "outline" : "secondary",
|
|
312
|
+
className: "text-xs",
|
|
313
|
+
children: e.auditor
|
|
314
|
+
}) })
|
|
315
|
+
] }, e.module)) })] }) })] })
|
|
316
|
+
})
|
|
317
|
+
]
|
|
318
|
+
})
|
|
319
|
+
]
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
//#endregion
|
|
323
|
+
export { A as UsersUserManagementHubPage };
|
|
324
|
+
|
|
325
|
+
//# sourceMappingURL=UsersUserManagementHubPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UsersUserManagementHubPage.js","names":[],"sources":["../../../src/assethandler/pages/UsersUserManagementHubPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@burdenoff/fe-libs/ui';\nimport { Users, UserCheck, Shield, Upload, Download, Plus, Activity, Key } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst roleDescriptions: Record<string, { description: string; permCount: number; color: string }> =\n {\n admin: {\n description: 'Full system access with all permissions',\n permCount: 11,\n color: 'bg-red-100 text-red-800',\n },\n manager: {\n description: 'Department-level management and reporting',\n permCount: 6,\n color: 'bg-blue-100 text-blue-800',\n },\n technician: {\n description: 'Asset maintenance and operational tasks',\n permCount: 4,\n color: 'bg-green-100 text-green-800',\n },\n viewer: {\n description: 'Read-only access to assets and reports',\n permCount: 2,\n color: 'bg-gray-100 text-gray-800',\n },\n auditor: {\n description: 'Audit trail access and compliance reporting',\n permCount: 4,\n color: 'bg-purple-100 text-purple-800',\n },\n };\n\nconst permissionMatrix = [\n {\n module: 'Assets',\n admin: 'Full',\n manager: 'Full',\n technician: 'Read/Update',\n viewer: 'Read',\n auditor: 'Read',\n },\n { module: 'Users', admin: 'Full', manager: 'Read', technician: '—', viewer: '—', auditor: '—' },\n {\n module: 'Reports',\n admin: 'Full',\n manager: 'Read',\n technician: '—',\n viewer: 'Read',\n auditor: 'Full',\n },\n {\n module: 'Maintenance',\n admin: 'Full',\n manager: 'Full',\n technician: 'Full',\n viewer: '—',\n auditor: '—',\n },\n { module: 'Audit', admin: 'Full', manager: '—', technician: '—', viewer: '—', auditor: 'Full' },\n {\n module: 'Compliance',\n admin: 'Full',\n manager: 'Read',\n technician: '—',\n viewer: '—',\n auditor: 'Full',\n },\n { module: 'Settings', admin: 'Full', manager: '—', technician: '—', viewer: '—', auditor: '—' },\n {\n module: 'Finance',\n admin: 'Full',\n manager: 'Full',\n technician: '—',\n viewer: 'Read',\n auditor: 'Read',\n },\n];\n\nconst RECENT_LOGIN_CUTOFF = Date.now() - 86400000;\n\nexport function UsersUserManagementHubPage() {\n const { users } = useAssetHandlerStore();\n\n const activeUsers = users.filter((u) => u.status === 'active').length;\n const recentActivityCount = users.filter(\n (u) => new Date(u.lastLogin).getTime() > RECENT_LOGIN_CUTOFF\n ).length;\n const roleCounts = users.reduce<Record<string, number>>((acc, u) => {\n acc[u.role] = (acc[u.role] || 0) + 1;\n return acc;\n }, {});\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">User Management</h1>\n <p className=\"text-sm text-muted-foreground\">\n Manage users, roles, and access permissions across the organization.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Upload className=\"mr-2 h-4 w-4\" />\n Bulk Import\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n Export\n </Button>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Add User\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Users</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{users.length}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active</CardTitle>\n <UserCheck className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{activeUsers}</div>\n <p className=\"text-xs text-muted-foreground\">\n {Math.round((activeUsers / users.length) * 100)}% of total\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Roles Defined</CardTitle>\n <Shield className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{Object.keys(roleDescriptions).length}</div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Recent Activity</CardTitle>\n <Activity className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{recentActivityCount}</div>\n <p className=\"text-xs text-muted-foreground\">Logged in last 24h</p>\n </CardContent>\n </Card>\n </div>\n\n <Tabs defaultValue=\"users\">\n <TabsList>\n <TabsTrigger value=\"users\">Users</TabsTrigger>\n <TabsTrigger value=\"roles\">Roles</TabsTrigger>\n <TabsTrigger value=\"permissions\">Permissions Matrix</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"users\" className=\"mt-4\">\n <Card>\n <CardContent className=\"pt-6\">\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Name</TableHead>\n <TableHead>Email</TableHead>\n <TableHead>Role</TableHead>\n <TableHead>Department</TableHead>\n <TableHead>Status</TableHead>\n <TableHead className=\"text-right\">Assets</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {users.map((user) => (\n <TableRow key={user.id}>\n <TableCell className=\"font-medium\">\n {user.firstName} {user.lastName}\n </TableCell>\n <TableCell>{user.email}</TableCell>\n <TableCell>\n <Badge variant={user.role === 'admin' ? 'destructive' : 'secondary'}>\n {user.role}\n </Badge>\n </TableCell>\n <TableCell>{user.department}</TableCell>\n <TableCell>\n <Badge variant={user.status === 'active' ? 'default' : 'outline'}>\n {user.status}\n </Badge>\n </TableCell>\n <TableCell className=\"text-right\">{user.assetsAssigned}</TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"roles\" className=\"mt-4\">\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {Object.entries(roleDescriptions).map(([role, info]) => (\n <Card key={role}>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-lg capitalize\">{role}</CardTitle>\n <Badge variant=\"outline\">{roleCounts[role] || 0} users</Badge>\n </div>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n <p className=\"text-sm text-muted-foreground\">{info.description}</p>\n <div className=\"flex items-center gap-2 text-sm\">\n <Key className=\"h-4 w-4 text-muted-foreground\" />\n <span>{info.permCount} permissions</span>\n </div>\n <Button variant=\"outline\" size=\"sm\" className=\"w-full\">\n Edit Role\n </Button>\n </CardContent>\n </Card>\n ))}\n </div>\n </TabsContent>\n\n <TabsContent value=\"permissions\" className=\"mt-4\">\n <Card>\n <CardHeader>\n <CardTitle>Permission Matrix</CardTitle>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Module</TableHead>\n <TableHead>Admin</TableHead>\n <TableHead>Manager</TableHead>\n <TableHead>Technician</TableHead>\n <TableHead>Viewer</TableHead>\n <TableHead>Auditor</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {permissionMatrix.map((row) => (\n <TableRow key={row.module}>\n <TableCell className=\"font-medium\">{row.module}</TableCell>\n <TableCell>\n <Badge\n variant={row.admin === 'Full' ? 'default' : 'outline'}\n className=\"text-xs\"\n >\n {row.admin}\n </Badge>\n </TableCell>\n <TableCell>\n <Badge\n variant={\n row.manager === 'Full'\n ? 'default'\n : row.manager === '—'\n ? 'outline'\n : 'secondary'\n }\n className=\"text-xs\"\n >\n {row.manager}\n </Badge>\n </TableCell>\n <TableCell>\n <Badge\n variant={\n row.technician === 'Full'\n ? 'default'\n : row.technician === '—'\n ? 'outline'\n : 'secondary'\n }\n className=\"text-xs\"\n >\n {row.technician}\n </Badge>\n </TableCell>\n <TableCell>\n <Badge\n variant={row.viewer === '—' ? 'outline' : 'secondary'}\n className=\"text-xs\"\n >\n {row.viewer}\n </Badge>\n </TableCell>\n <TableCell>\n <Badge\n variant={\n row.auditor === 'Full'\n ? 'default'\n : row.auditor === '—'\n ? 'outline'\n : 'secondary'\n }\n className=\"text-xs\"\n >\n {row.auditor}\n </Badge>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":";;;;;AAqBA,IAAM,IACJ;CACE,OAAO;EACL,aAAa;EACb,WAAW;EACX,OAAO;EACR;CACD,SAAS;EACP,aAAa;EACb,WAAW;EACX,OAAO;EACR;CACD,YAAY;EACV,aAAa;EACb,WAAW;EACX,OAAO;EACR;CACD,QAAQ;EACN,aAAa;EACb,WAAW;EACX,OAAO;EACR;CACD,SAAS;EACP,aAAa;EACb,WAAW;EACX,OAAO;EACR;CACF,EAEG,IAAmB;CACvB;EACE,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,SAAS;EACV;CACD;EAAE,QAAQ;EAAS,OAAO;EAAQ,SAAS;EAAQ,YAAY;EAAK,QAAQ;EAAK,SAAS;EAAK;CAC/F;EACE,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,SAAS;EACV;CACD;EACE,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,SAAS;EACV;CACD;EAAE,QAAQ;EAAS,OAAO;EAAQ,SAAS;EAAK,YAAY;EAAK,QAAQ;EAAK,SAAS;EAAQ;CAC/F;EACE,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,SAAS;EACV;CACD;EAAE,QAAQ;EAAY,OAAO;EAAQ,SAAS;EAAK,YAAY;EAAK,QAAQ;EAAK,SAAS;EAAK;CAC/F;EACE,QAAQ;EACR,OAAO;EACP,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,SAAS;EACV;CACF,EAEK,IAAsB,KAAK,KAAK,GAAG;AAEzC,SAAgB,IAA6B;CAC3C,IAAM,EAAE,aAAU,GAAsB,EAElC,IAAc,EAAM,QAAQ,MAAM,EAAE,WAAW,SAAS,CAAC,QACzD,IAAsB,EAAM,QAC/B,MAAM,IAAI,KAAK,EAAE,UAAU,CAAC,SAAS,GAAG,EAC1C,CAAC,QACI,IAAa,EAAM,QAAgC,GAAK,OAC5D,EAAI,EAAE,SAAS,EAAI,EAAE,SAAS,KAAK,GAC5B,IACN,EAAE,CAAC;AAEN,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf;GACE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAAyB;KAAoB,CAAA,EAC3D,kBAAC,KAAD;KAAG,WAAU;eAAgC;KAEzC,CAAA,CACA,EAAA,CAAA,EACN,kBAAC,OAAD;KAAK,WAAU;eAAf;MACE,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAQ,WAAU,gBAAiB,CAAA,EAAA,cAE5B;;MACT,kBAAC,GAAD;OAAQ,SAAQ;OAAU,MAAK;iBAA/B,CACE,kBAAC,GAAD,EAAU,WAAU,gBAAiB,CAAA,EAAA,SAE9B;;MACT,kBAAC,GAAD;OAAQ,MAAK;iBAAb,CACE,kBAAC,GAAD,EAAM,WAAU,gBAAiB,CAAA,EAAA,WAE1B;;MACL;OACF;;GAEN,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAAuB,CAAA,EAClE,kBAAC,GAAD,EAAO,WAAU,iCAAkC,CAAA,CACxC;SACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MAAK,WAAU;gBAAsB,EAAM;MAAa,CAAA,EAC5C,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAAkB,CAAA,EAC7D,kBAAC,GAAD,EAAW,WAAU,0BAA2B,CAAA,CACrC;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAsB;MAAkB,CAAA,EACvD,kBAAC,KAAD;MAAG,WAAU;gBAAb,CACG,KAAK,MAAO,IAAc,EAAM,SAAU,IAAI,EAAC,aAC9C;QACQ,EAAA,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAAyB,CAAA,EACpE,kBAAC,GAAD,EAAQ,WAAU,iCAAkC,CAAA,CACzC;SACb,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;MAAK,WAAU;gBAAsB,OAAO,KAAK,EAAiB,CAAC;MAAa,CAAA,EACpE,CAAA,CACT,EAAA,CAAA;KACP,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD;MAAY,WAAU;gBAAtB,CACE,kBAAC,GAAD;OAAW,WAAU;iBAAsB;OAA2B,CAAA,EACtE,kBAAC,GAAD,EAAU,WAAU,iCAAkC,CAAA,CAC3C;SACb,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,OAAD;MAAK,WAAU;gBAAsB;MAA0B,CAAA,EAC/D,kBAAC,KAAD;MAAG,WAAU;gBAAgC;MAAsB,CAAA,CACvD,EAAA,CAAA,CACT,EAAA,CAAA;KACH;;GAEN,kBAAC,GAAD;IAAM,cAAa;cAAnB;KACE,kBAAC,GAAD,EAAA,UAAA;MACE,kBAAC,GAAD;OAAa,OAAM;iBAAQ;OAAmB,CAAA;MAC9C,kBAAC,GAAD;OAAa,OAAM;iBAAQ;OAAmB,CAAA;MAC9C,kBAAC,GAAD;OAAa,OAAM;iBAAc;OAAgC,CAAA;MACxD,EAAA,CAAA;KAEX,kBAAC,GAAD;MAAa,OAAM;MAAQ,WAAU;gBACnC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;OAAa,WAAU;iBACrB,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;QACE,kBAAC,GAAD,EAAA,UAAW,QAAgB,CAAA;QAC3B,kBAAC,GAAD,EAAA,UAAW,SAAiB,CAAA;QAC5B,kBAAC,GAAD,EAAA,UAAW,QAAgB,CAAA;QAC3B,kBAAC,GAAD,EAAA,UAAW,cAAsB,CAAA;QACjC,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;QAC7B,kBAAC,GAAD;SAAW,WAAU;mBAAa;SAAkB,CAAA;QAC3C,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,GAAD,EAAA,UACG,EAAM,KAAK,MACV,kBAAC,GAAD,EAAA,UAAA;QACE,kBAAC,GAAD;SAAW,WAAU;mBAArB;UACG,EAAK;UAAU;UAAE,EAAK;UACb;;QACZ,kBAAC,GAAD,EAAA,UAAY,EAAK,OAAkB,CAAA;QACnC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAS,EAAK,SAAS,UAAU,gBAAgB;mBACrD,EAAK;SACA,CAAA,EACE,CAAA;QACZ,kBAAC,GAAD,EAAA,UAAY,EAAK,YAAuB,CAAA;QACxC,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;SAAO,SAAS,EAAK,WAAW,WAAW,YAAY;mBACpD,EAAK;SACA,CAAA,EACE,CAAA;QACZ,kBAAC,GAAD;SAAW,WAAU;mBAAc,EAAK;SAA2B,CAAA;QAC1D,EAAA,EAjBI,EAAK,GAiBT,CACX,EACQ,CAAA,CACN,EAAA,CAAA;OACI,CAAA,EACT,CAAA;MACK,CAAA;KAEd,kBAAC,GAAD;MAAa,OAAM;MAAQ,WAAU;gBACnC,kBAAC,OAAD;OAAK,WAAU;iBACZ,OAAO,QAAQ,EAAiB,CAAC,KAAK,CAAC,GAAM,OAC5C,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,GAAD;SAAW,WAAU;mBAAsB;SAAiB,CAAA,EAC5D,kBAAC,GAAD;SAAO,SAAQ;mBAAf,CAA0B,EAAW,MAAS,GAAE,SAAc;WAC1D;WACK,CAAA,EACb,kBAAC,GAAD;QAAa,WAAU;kBAAvB;SACE,kBAAC,KAAD;UAAG,WAAU;oBAAiC,EAAK;UAAgB,CAAA;SACnE,kBAAC,OAAD;UAAK,WAAU;oBAAf,CACE,kBAAC,GAAD,EAAK,WAAU,iCAAkC,CAAA,EACjD,kBAAC,QAAD,EAAA,UAAA,CAAO,EAAK,WAAU,eAAmB,EAAA,CAAA,CACrC;;SACN,kBAAC,GAAD;UAAQ,SAAQ;UAAU,MAAK;UAAK,WAAU;oBAAS;UAE9C,CAAA;SACG;UACT,EAAA,EAjBI,EAiBJ,CACP;OACE,CAAA;MACM,CAAA;KAEd,kBAAC,GAAD;MAAa,OAAM;MAAc,WAAU;gBACzC,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAW,qBAA6B,CAAA,EAC7B,CAAA,EACb,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA,CACE,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD,EAAA,UAAA;OACE,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;OAC7B,kBAAC,GAAD,EAAA,UAAW,SAAiB,CAAA;OAC5B,kBAAC,GAAD,EAAA,UAAW,WAAmB,CAAA;OAC9B,kBAAC,GAAD,EAAA,UAAW,cAAsB,CAAA;OACjC,kBAAC,GAAD,EAAA,UAAW,UAAkB,CAAA;OAC7B,kBAAC,GAAD,EAAA,UAAW,WAAmB,CAAA;OACrB,EAAA,CAAA,EACC,CAAA,EACd,kBAAC,GAAD,EAAA,UACG,EAAiB,KAAK,MACrB,kBAAC,GAAD,EAAA,UAAA;OACE,kBAAC,GAAD;QAAW,WAAU;kBAAe,EAAI;QAAmB,CAAA;OAC3D,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;QACE,SAAS,EAAI,UAAU,SAAS,YAAY;QAC5C,WAAU;kBAET,EAAI;QACC,CAAA,EACE,CAAA;OACZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;QACE,SACE,EAAI,YAAY,SACZ,YACA,EAAI,YAAY,MACd,YACA;QAER,WAAU;kBAET,EAAI;QACC,CAAA,EACE,CAAA;OACZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;QACE,SACE,EAAI,eAAe,SACf,YACA,EAAI,eAAe,MACjB,YACA;QAER,WAAU;kBAET,EAAI;QACC,CAAA,EACE,CAAA;OACZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;QACE,SAAS,EAAI,WAAW,MAAM,YAAY;QAC1C,WAAU;kBAET,EAAI;QACC,CAAA,EACE,CAAA;OACZ,kBAAC,GAAD,EAAA,UACE,kBAAC,GAAD;QACE,SACE,EAAI,YAAY,SACZ,YACA,EAAI,YAAY,MACd,YACA;QAER,WAAU;kBAET,EAAI;QACC,CAAA,EACE,CAAA;OACH,EAAA,EA5DI,EAAI,OA4DR,CACX,EACQ,CAAA,CACN,EAAA,CAAA,EACI,CAAA,CACT,EAAA,CAAA;MACK,CAAA;KACT;;GACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowBuilderPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/WorkflowsWorkflowBuilderPage.tsx"],"names":[],"mappings":"AAyCA,wBAAgB,4BAA4B,4CAgK3C"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { useState as e } from "react";
|
|
2
|
+
import { ArrowLeft as t, Bell as n, Clock as r, Database as i, GitBranch as a, Mail as o, Play as s, Plus as c, Save as l, Upload as u, Workflow as d, Zap as f } from "lucide-react";
|
|
3
|
+
import { Button as p, Card as m, CardContent as h, CardHeader as g, CardTitle as _, Input as v, Label as y, Select as b, SelectContent as x, SelectItem as S, SelectTrigger as C, SelectValue as w, Textarea as T } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as E, jsxs as D } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/WorkflowsWorkflowBuilderPage.tsx
|
|
6
|
+
var O = [
|
|
7
|
+
{
|
|
8
|
+
icon: f,
|
|
9
|
+
label: "Trigger",
|
|
10
|
+
description: "Start the workflow"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
icon: a,
|
|
14
|
+
label: "Condition",
|
|
15
|
+
description: "Branch logic"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
icon: r,
|
|
19
|
+
label: "Delay",
|
|
20
|
+
description: "Wait for time"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
icon: o,
|
|
24
|
+
label: "Send Email",
|
|
25
|
+
description: "Email notification"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
icon: n,
|
|
29
|
+
label: "Notify",
|
|
30
|
+
description: "Push notification"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
icon: i,
|
|
34
|
+
label: "Update Record",
|
|
35
|
+
description: "Modify data"
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
function k() {
|
|
39
|
+
let [n, r] = e(""), [i, a] = e(""), [o, f] = e(""), [k, A] = e("");
|
|
40
|
+
return /* @__PURE__ */ D("div", {
|
|
41
|
+
className: "space-y-6 p-6",
|
|
42
|
+
children: [/* @__PURE__ */ D("div", {
|
|
43
|
+
className: "flex items-center justify-between",
|
|
44
|
+
children: [/* @__PURE__ */ D("div", {
|
|
45
|
+
className: "flex items-center gap-3",
|
|
46
|
+
children: [/* @__PURE__ */ E(p, {
|
|
47
|
+
variant: "outline",
|
|
48
|
+
size: "sm",
|
|
49
|
+
children: /* @__PURE__ */ E(t, { className: "h-4 w-4" })
|
|
50
|
+
}), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("h1", {
|
|
51
|
+
className: "text-2xl font-semibold",
|
|
52
|
+
children: "Workflow Builder"
|
|
53
|
+
}), /* @__PURE__ */ E("p", {
|
|
54
|
+
className: "text-sm text-muted-foreground",
|
|
55
|
+
children: "Design and configure automated workflows visually."
|
|
56
|
+
})] })]
|
|
57
|
+
}), /* @__PURE__ */ D("div", {
|
|
58
|
+
className: "flex gap-2",
|
|
59
|
+
children: [
|
|
60
|
+
/* @__PURE__ */ D(p, {
|
|
61
|
+
variant: "outline",
|
|
62
|
+
size: "sm",
|
|
63
|
+
children: [/* @__PURE__ */ E(l, { className: "mr-2 h-4 w-4" }), "Save Draft"]
|
|
64
|
+
}),
|
|
65
|
+
/* @__PURE__ */ D(p, {
|
|
66
|
+
variant: "outline",
|
|
67
|
+
size: "sm",
|
|
68
|
+
children: [/* @__PURE__ */ E(s, { className: "mr-2 h-4 w-4" }), "Test Run"]
|
|
69
|
+
}),
|
|
70
|
+
/* @__PURE__ */ D(p, {
|
|
71
|
+
size: "sm",
|
|
72
|
+
children: [/* @__PURE__ */ E(u, { className: "mr-2 h-4 w-4" }), "Publish"]
|
|
73
|
+
})
|
|
74
|
+
]
|
|
75
|
+
})]
|
|
76
|
+
}), /* @__PURE__ */ D("div", {
|
|
77
|
+
className: "grid gap-6 lg:grid-cols-[320px_1fr]",
|
|
78
|
+
children: [/* @__PURE__ */ D("div", {
|
|
79
|
+
className: "space-y-4",
|
|
80
|
+
children: [/* @__PURE__ */ D(m, { children: [/* @__PURE__ */ E(g, { children: /* @__PURE__ */ E(_, {
|
|
81
|
+
className: "text-base",
|
|
82
|
+
children: "Workflow Configuration"
|
|
83
|
+
}) }), /* @__PURE__ */ D(h, {
|
|
84
|
+
className: "space-y-4",
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ D("div", {
|
|
87
|
+
className: "space-y-2",
|
|
88
|
+
children: [/* @__PURE__ */ E(y, { children: "Workflow Name" }), /* @__PURE__ */ E(v, {
|
|
89
|
+
placeholder: "e.g. Asset Onboarding Flow",
|
|
90
|
+
value: n,
|
|
91
|
+
onChange: (e) => r(e.target.value)
|
|
92
|
+
})]
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ D("div", {
|
|
95
|
+
className: "space-y-2",
|
|
96
|
+
children: [/* @__PURE__ */ E(y, { children: "Description" }), /* @__PURE__ */ E(T, {
|
|
97
|
+
placeholder: "Describe what this workflow does...",
|
|
98
|
+
value: i,
|
|
99
|
+
onChange: (e) => a(e.target.value),
|
|
100
|
+
rows: 3
|
|
101
|
+
})]
|
|
102
|
+
}),
|
|
103
|
+
/* @__PURE__ */ D("div", {
|
|
104
|
+
className: "space-y-2",
|
|
105
|
+
children: [/* @__PURE__ */ E(y, { children: "Trigger Type" }), /* @__PURE__ */ D(b, {
|
|
106
|
+
value: o,
|
|
107
|
+
onValueChange: f,
|
|
108
|
+
children: [/* @__PURE__ */ E(C, { children: /* @__PURE__ */ E(w, { placeholder: "Select trigger..." }) }), /* @__PURE__ */ D(x, { children: [
|
|
109
|
+
/* @__PURE__ */ E(S, {
|
|
110
|
+
value: "event",
|
|
111
|
+
children: "Event-Based"
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ E(S, {
|
|
114
|
+
value: "scheduled",
|
|
115
|
+
children: "Scheduled"
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ E(S, {
|
|
118
|
+
value: "manual",
|
|
119
|
+
children: "Manual"
|
|
120
|
+
}),
|
|
121
|
+
/* @__PURE__ */ E(S, {
|
|
122
|
+
value: "webhook",
|
|
123
|
+
children: "Webhook"
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ E(S, {
|
|
126
|
+
value: "condition",
|
|
127
|
+
children: "Condition-Based"
|
|
128
|
+
})
|
|
129
|
+
] })]
|
|
130
|
+
})]
|
|
131
|
+
}),
|
|
132
|
+
/* @__PURE__ */ D("div", {
|
|
133
|
+
className: "space-y-2",
|
|
134
|
+
children: [/* @__PURE__ */ E(y, { children: "Category" }), /* @__PURE__ */ D(b, {
|
|
135
|
+
value: k,
|
|
136
|
+
onValueChange: A,
|
|
137
|
+
children: [/* @__PURE__ */ E(C, { children: /* @__PURE__ */ E(w, { placeholder: "Select category..." }) }), /* @__PURE__ */ D(x, { children: [
|
|
138
|
+
/* @__PURE__ */ E(S, {
|
|
139
|
+
value: "asset-management",
|
|
140
|
+
children: "Asset Management"
|
|
141
|
+
}),
|
|
142
|
+
/* @__PURE__ */ E(S, {
|
|
143
|
+
value: "maintenance",
|
|
144
|
+
children: "Maintenance"
|
|
145
|
+
}),
|
|
146
|
+
/* @__PURE__ */ E(S, {
|
|
147
|
+
value: "itil",
|
|
148
|
+
children: "ITIL"
|
|
149
|
+
}),
|
|
150
|
+
/* @__PURE__ */ E(S, {
|
|
151
|
+
value: "compliance",
|
|
152
|
+
children: "Compliance"
|
|
153
|
+
}),
|
|
154
|
+
/* @__PURE__ */ E(S, {
|
|
155
|
+
value: "security",
|
|
156
|
+
children: "Security"
|
|
157
|
+
}),
|
|
158
|
+
/* @__PURE__ */ E(S, {
|
|
159
|
+
value: "finance",
|
|
160
|
+
children: "Finance"
|
|
161
|
+
})
|
|
162
|
+
] })]
|
|
163
|
+
})]
|
|
164
|
+
})
|
|
165
|
+
]
|
|
166
|
+
})] }), /* @__PURE__ */ D(m, { children: [/* @__PURE__ */ E(g, { children: /* @__PURE__ */ E(_, {
|
|
167
|
+
className: "text-base",
|
|
168
|
+
children: "Node Palette"
|
|
169
|
+
}) }), /* @__PURE__ */ E(h, {
|
|
170
|
+
className: "space-y-2",
|
|
171
|
+
children: O.map((e) => {
|
|
172
|
+
let t = e.icon;
|
|
173
|
+
return /* @__PURE__ */ D("div", {
|
|
174
|
+
className: "flex items-center gap-3 rounded-lg border p-3 cursor-grab hover:bg-muted/50 transition-colors",
|
|
175
|
+
children: [/* @__PURE__ */ E("div", {
|
|
176
|
+
className: "rounded-md bg-primary/10 p-2",
|
|
177
|
+
children: /* @__PURE__ */ E(t, { className: "h-4 w-4 text-primary" })
|
|
178
|
+
}), /* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
179
|
+
className: "text-sm font-medium",
|
|
180
|
+
children: e.label
|
|
181
|
+
}), /* @__PURE__ */ E("p", {
|
|
182
|
+
className: "text-xs text-muted-foreground",
|
|
183
|
+
children: e.description
|
|
184
|
+
})] })]
|
|
185
|
+
}, e.label);
|
|
186
|
+
})
|
|
187
|
+
})] })]
|
|
188
|
+
}), /* @__PURE__ */ D(m, {
|
|
189
|
+
className: "min-h-[600px]",
|
|
190
|
+
children: [/* @__PURE__ */ E(g, { children: /* @__PURE__ */ D("div", {
|
|
191
|
+
className: "flex items-center justify-between",
|
|
192
|
+
children: [/* @__PURE__ */ E(_, {
|
|
193
|
+
className: "text-base",
|
|
194
|
+
children: "Workflow Canvas"
|
|
195
|
+
}), /* @__PURE__ */ D("div", {
|
|
196
|
+
className: "flex gap-2",
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ E(p, {
|
|
199
|
+
variant: "outline",
|
|
200
|
+
size: "sm",
|
|
201
|
+
children: "Zoom In"
|
|
202
|
+
}),
|
|
203
|
+
/* @__PURE__ */ E(p, {
|
|
204
|
+
variant: "outline",
|
|
205
|
+
size: "sm",
|
|
206
|
+
children: "Zoom Out"
|
|
207
|
+
}),
|
|
208
|
+
/* @__PURE__ */ E(p, {
|
|
209
|
+
variant: "outline",
|
|
210
|
+
size: "sm",
|
|
211
|
+
children: "Fit View"
|
|
212
|
+
})
|
|
213
|
+
]
|
|
214
|
+
})]
|
|
215
|
+
}) }), /* @__PURE__ */ E(h, {
|
|
216
|
+
className: "flex-1",
|
|
217
|
+
children: /* @__PURE__ */ E("div", {
|
|
218
|
+
className: "flex h-[500px] items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/20",
|
|
219
|
+
children: /* @__PURE__ */ D("div", {
|
|
220
|
+
className: "text-center space-y-3",
|
|
221
|
+
children: [
|
|
222
|
+
/* @__PURE__ */ E(d, { className: "h-12 w-12 mx-auto text-muted-foreground/50" }),
|
|
223
|
+
/* @__PURE__ */ D("div", { children: [/* @__PURE__ */ E("p", {
|
|
224
|
+
className: "text-lg font-medium text-muted-foreground",
|
|
225
|
+
children: "Drag nodes here to build your workflow"
|
|
226
|
+
}), /* @__PURE__ */ E("p", {
|
|
227
|
+
className: "text-sm text-muted-foreground/70",
|
|
228
|
+
children: "Select a trigger to start, then add actions and conditions"
|
|
229
|
+
})] }),
|
|
230
|
+
/* @__PURE__ */ D(p, {
|
|
231
|
+
variant: "outline",
|
|
232
|
+
size: "sm",
|
|
233
|
+
children: [/* @__PURE__ */ E(c, { className: "mr-2 h-4 w-4" }), "Add Start Node"]
|
|
234
|
+
})
|
|
235
|
+
]
|
|
236
|
+
})
|
|
237
|
+
})
|
|
238
|
+
})]
|
|
239
|
+
})]
|
|
240
|
+
})]
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
//#endregion
|
|
244
|
+
export { k as WorkflowsWorkflowBuilderPage };
|
|
245
|
+
|
|
246
|
+
//# sourceMappingURL=WorkflowsWorkflowBuilderPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowBuilderPage.js","names":[],"sources":["../../../src/assethandler/pages/WorkflowsWorkflowBuilderPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n Label,\n Textarea,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport {\n Save,\n Play,\n Upload,\n Plus,\n ArrowLeft,\n Workflow,\n Zap,\n Clock,\n GitBranch,\n Mail,\n Bell,\n Database,\n} from 'lucide-react';\n\nconst nodeTypes = [\n { icon: Zap, label: 'Trigger', description: 'Start the workflow' },\n { icon: GitBranch, label: 'Condition', description: 'Branch logic' },\n { icon: Clock, label: 'Delay', description: 'Wait for time' },\n { icon: Mail, label: 'Send Email', description: 'Email notification' },\n { icon: Bell, label: 'Notify', description: 'Push notification' },\n { icon: Database, label: 'Update Record', description: 'Modify data' },\n];\n\nexport function WorkflowsWorkflowBuilderPage() {\n const [name, setName] = useState('');\n const [description, setDescription] = useState('');\n const [triggerType, setTriggerType] = useState('');\n const [category, setCategory] = useState('');\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-3\">\n <Button variant=\"outline\" size=\"sm\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <div>\n <h1 className=\"text-2xl font-semibold\">Workflow Builder</h1>\n <p className=\"text-sm text-muted-foreground\">\n Design and configure automated workflows visually.\n </p>\n </div>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Save className=\"mr-2 h-4 w-4\" />\n Save Draft\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <Play className=\"mr-2 h-4 w-4\" />\n Test Run\n </Button>\n <Button size=\"sm\">\n <Upload className=\"mr-2 h-4 w-4\" />\n Publish\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-[320px_1fr]\">\n <div className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Workflow Configuration</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label>Workflow Name</Label>\n <Input\n placeholder=\"e.g. Asset Onboarding Flow\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Description</Label>\n <Textarea\n placeholder=\"Describe what this workflow does...\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n rows={3}\n />\n </div>\n <div className=\"space-y-2\">\n <Label>Trigger Type</Label>\n <Select value={triggerType} onValueChange={setTriggerType}>\n <SelectTrigger>\n <SelectValue placeholder=\"Select trigger...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"event\">Event-Based</SelectItem>\n <SelectItem value=\"scheduled\">Scheduled</SelectItem>\n <SelectItem value=\"manual\">Manual</SelectItem>\n <SelectItem value=\"webhook\">Webhook</SelectItem>\n <SelectItem value=\"condition\">Condition-Based</SelectItem>\n </SelectContent>\n </Select>\n </div>\n <div className=\"space-y-2\">\n <Label>Category</Label>\n <Select value={category} onValueChange={setCategory}>\n <SelectTrigger>\n <SelectValue placeholder=\"Select category...\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"asset-management\">Asset Management</SelectItem>\n <SelectItem value=\"maintenance\">Maintenance</SelectItem>\n <SelectItem value=\"itil\">ITIL</SelectItem>\n <SelectItem value=\"compliance\">Compliance</SelectItem>\n <SelectItem value=\"security\">Security</SelectItem>\n <SelectItem value=\"finance\">Finance</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Node Palette</CardTitle>\n </CardHeader>\n <CardContent className=\"space-y-2\">\n {nodeTypes.map((node) => {\n const Icon = node.icon;\n return (\n <div\n key={node.label}\n className=\"flex items-center gap-3 rounded-lg border p-3 cursor-grab hover:bg-muted/50 transition-colors\"\n >\n <div className=\"rounded-md bg-primary/10 p-2\">\n <Icon className=\"h-4 w-4 text-primary\" />\n </div>\n <div>\n <p className=\"text-sm font-medium\">{node.label}</p>\n <p className=\"text-xs text-muted-foreground\">{node.description}</p>\n </div>\n </div>\n );\n })}\n </CardContent>\n </Card>\n </div>\n\n <Card className=\"min-h-[600px]\">\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle className=\"text-base\">Workflow Canvas</CardTitle>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n Zoom In\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n Zoom Out\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n Fit View\n </Button>\n </div>\n </div>\n </CardHeader>\n <CardContent className=\"flex-1\">\n <div className=\"flex h-[500px] items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 bg-muted/20\">\n <div className=\"text-center space-y-3\">\n <Workflow className=\"h-12 w-12 mx-auto text-muted-foreground/50\" />\n <div>\n <p className=\"text-lg font-medium text-muted-foreground\">\n Drag nodes here to build your workflow\n </p>\n <p className=\"text-sm text-muted-foreground/70\">\n Select a trigger to start, then add actions and conditions\n </p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Add Start Node\n </Button>\n </div>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowExecutionsPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/WorkflowsWorkflowExecutionsPage.tsx"],"names":[],"mappings":"AAwBA,wBAAgB,+BAA+B,4CAuK9C"}
|