@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,188 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { CheckCircle2 as n, Clock as r, Download as i, Filter as a, Play as o, RefreshCw as s, XCircle as c } from "lucide-react";
|
|
4
|
+
import { Badge as l, Button as u, Card as d, CardContent as f, CardHeader as p, CardTitle as m, Input as h, Select as g, SelectContent as _, SelectItem as v, SelectTrigger as y, SelectValue as b, Table as x, TableBody as S, TableCell as C, TableHead as w, TableHeader as T, TableRow as E } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
6
|
+
//#region src/assethandler/pages/WorkflowsWorkflowExecutionsPage.tsx
|
|
7
|
+
function k() {
|
|
8
|
+
let { workflowExecutions: k } = e(), [A, j] = t("all"), [M, N] = t(""), P = k.filter((e) => !(A !== "all" && e.status !== A || M && !e.workflowName.toLowerCase().includes(M.toLowerCase()))), F = k.length, I = k.filter((e) => e.status === "completed").length, L = k.filter((e) => e.status === "failed").length, R = k.filter((e) => e.status === "running").length, z = F > 0 ? Math.round(I / F * 100) : 0, B = {
|
|
9
|
+
running: {
|
|
10
|
+
variant: "default",
|
|
11
|
+
icon: o
|
|
12
|
+
},
|
|
13
|
+
completed: {
|
|
14
|
+
variant: "secondary",
|
|
15
|
+
icon: n
|
|
16
|
+
},
|
|
17
|
+
failed: {
|
|
18
|
+
variant: "destructive",
|
|
19
|
+
icon: c
|
|
20
|
+
},
|
|
21
|
+
cancelled: {
|
|
22
|
+
variant: "outline",
|
|
23
|
+
icon: c
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return /* @__PURE__ */ O("div", {
|
|
27
|
+
className: "space-y-6 p-6",
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ O("div", {
|
|
30
|
+
className: "flex items-center justify-between",
|
|
31
|
+
children: [/* @__PURE__ */ O("div", { children: [/* @__PURE__ */ D("h1", {
|
|
32
|
+
className: "text-2xl font-semibold",
|
|
33
|
+
children: "Workflow Executions"
|
|
34
|
+
}), /* @__PURE__ */ D("p", {
|
|
35
|
+
className: "text-sm text-muted-foreground",
|
|
36
|
+
children: "Monitor and review workflow execution history and performance."
|
|
37
|
+
})] }), /* @__PURE__ */ O("div", {
|
|
38
|
+
className: "flex gap-2",
|
|
39
|
+
children: [/* @__PURE__ */ O(u, {
|
|
40
|
+
variant: "outline",
|
|
41
|
+
size: "sm",
|
|
42
|
+
children: [/* @__PURE__ */ D(i, { className: "mr-2 h-4 w-4" }), "Export"]
|
|
43
|
+
}), /* @__PURE__ */ O(u, {
|
|
44
|
+
size: "sm",
|
|
45
|
+
children: [/* @__PURE__ */ D(s, { className: "mr-2 h-4 w-4" }), "Refresh"]
|
|
46
|
+
})]
|
|
47
|
+
})]
|
|
48
|
+
}),
|
|
49
|
+
/* @__PURE__ */ O("div", {
|
|
50
|
+
className: "grid gap-4 md:grid-cols-4",
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ O(d, { children: [/* @__PURE__ */ O(p, {
|
|
53
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
54
|
+
children: [/* @__PURE__ */ D(m, {
|
|
55
|
+
className: "text-sm font-medium",
|
|
56
|
+
children: "Total Executions"
|
|
57
|
+
}), /* @__PURE__ */ D(o, { className: "h-4 w-4 text-muted-foreground" })]
|
|
58
|
+
}), /* @__PURE__ */ O(f, { children: [/* @__PURE__ */ D("div", {
|
|
59
|
+
className: "text-2xl font-bold",
|
|
60
|
+
children: F
|
|
61
|
+
}), /* @__PURE__ */ D("p", {
|
|
62
|
+
className: "text-xs text-muted-foreground",
|
|
63
|
+
children: "All time"
|
|
64
|
+
})] })] }),
|
|
65
|
+
/* @__PURE__ */ O(d, { children: [/* @__PURE__ */ O(p, {
|
|
66
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
67
|
+
children: [/* @__PURE__ */ D(m, {
|
|
68
|
+
className: "text-sm font-medium",
|
|
69
|
+
children: "Success Rate"
|
|
70
|
+
}), /* @__PURE__ */ D(n, { className: "h-4 w-4 text-green-500" })]
|
|
71
|
+
}), /* @__PURE__ */ O(f, { children: [/* @__PURE__ */ O("div", {
|
|
72
|
+
className: "text-2xl font-bold",
|
|
73
|
+
children: [z, "%"]
|
|
74
|
+
}), /* @__PURE__ */ O("p", {
|
|
75
|
+
className: "text-xs text-muted-foreground",
|
|
76
|
+
children: [I, " completed successfully"]
|
|
77
|
+
})] })] }),
|
|
78
|
+
/* @__PURE__ */ O(d, { children: [/* @__PURE__ */ O(p, {
|
|
79
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
80
|
+
children: [/* @__PURE__ */ D(m, {
|
|
81
|
+
className: "text-sm font-medium",
|
|
82
|
+
children: "Failed"
|
|
83
|
+
}), /* @__PURE__ */ D(c, { className: "h-4 w-4 text-destructive" })]
|
|
84
|
+
}), /* @__PURE__ */ O(f, { children: [/* @__PURE__ */ D("div", {
|
|
85
|
+
className: "text-2xl font-bold",
|
|
86
|
+
children: L
|
|
87
|
+
}), /* @__PURE__ */ D("p", {
|
|
88
|
+
className: "text-xs text-muted-foreground",
|
|
89
|
+
children: "Requires attention"
|
|
90
|
+
})] })] }),
|
|
91
|
+
/* @__PURE__ */ O(d, { children: [/* @__PURE__ */ O(p, {
|
|
92
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
93
|
+
children: [/* @__PURE__ */ D(m, {
|
|
94
|
+
className: "text-sm font-medium",
|
|
95
|
+
children: "Currently Running"
|
|
96
|
+
}), /* @__PURE__ */ D(r, { className: "h-4 w-4 text-blue-500" })]
|
|
97
|
+
}), /* @__PURE__ */ O(f, { children: [/* @__PURE__ */ D("div", {
|
|
98
|
+
className: "text-2xl font-bold",
|
|
99
|
+
children: R
|
|
100
|
+
}), /* @__PURE__ */ D("p", {
|
|
101
|
+
className: "text-xs text-muted-foreground",
|
|
102
|
+
children: "In progress now"
|
|
103
|
+
})] })] })
|
|
104
|
+
]
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ O(d, { children: [/* @__PURE__ */ D(p, { children: /* @__PURE__ */ O("div", {
|
|
107
|
+
className: "flex items-center justify-between",
|
|
108
|
+
children: [/* @__PURE__ */ D(m, { children: "Execution History" }), /* @__PURE__ */ O("div", {
|
|
109
|
+
className: "flex items-center gap-2",
|
|
110
|
+
children: [/* @__PURE__ */ D(h, {
|
|
111
|
+
placeholder: "Search workflows...",
|
|
112
|
+
value: M,
|
|
113
|
+
onChange: (e) => N(e.target.value),
|
|
114
|
+
className: "w-[200px]"
|
|
115
|
+
}), /* @__PURE__ */ O(g, {
|
|
116
|
+
value: A,
|
|
117
|
+
onValueChange: j,
|
|
118
|
+
children: [/* @__PURE__ */ O(y, {
|
|
119
|
+
className: "w-[150px]",
|
|
120
|
+
children: [/* @__PURE__ */ D(a, { className: "mr-2 h-4 w-4" }), /* @__PURE__ */ D(b, { placeholder: "Status" })]
|
|
121
|
+
}), /* @__PURE__ */ O(_, { children: [
|
|
122
|
+
/* @__PURE__ */ D(v, {
|
|
123
|
+
value: "all",
|
|
124
|
+
children: "All Statuses"
|
|
125
|
+
}),
|
|
126
|
+
/* @__PURE__ */ D(v, {
|
|
127
|
+
value: "running",
|
|
128
|
+
children: "Running"
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ D(v, {
|
|
131
|
+
value: "completed",
|
|
132
|
+
children: "Completed"
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ D(v, {
|
|
135
|
+
value: "failed",
|
|
136
|
+
children: "Failed"
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ D(v, {
|
|
139
|
+
value: "cancelled",
|
|
140
|
+
children: "Cancelled"
|
|
141
|
+
})
|
|
142
|
+
] })]
|
|
143
|
+
})]
|
|
144
|
+
})]
|
|
145
|
+
}) }), /* @__PURE__ */ D(f, { children: /* @__PURE__ */ O(x, { children: [/* @__PURE__ */ D(T, { children: /* @__PURE__ */ O(E, { children: [
|
|
146
|
+
/* @__PURE__ */ D(w, { children: "Execution ID" }),
|
|
147
|
+
/* @__PURE__ */ D(w, { children: "Workflow" }),
|
|
148
|
+
/* @__PURE__ */ D(w, { children: "Status" }),
|
|
149
|
+
/* @__PURE__ */ D(w, { children: "Triggered By" }),
|
|
150
|
+
/* @__PURE__ */ D(w, { children: "Started At" }),
|
|
151
|
+
/* @__PURE__ */ D(w, { children: "Duration" }),
|
|
152
|
+
/* @__PURE__ */ D(w, { children: "Error" })
|
|
153
|
+
] }) }), /* @__PURE__ */ O(S, { children: [P.map((e) => {
|
|
154
|
+
let t = B[e.status] || B.cancelled, n = t.icon;
|
|
155
|
+
return /* @__PURE__ */ O(E, { children: [
|
|
156
|
+
/* @__PURE__ */ D(C, {
|
|
157
|
+
className: "font-mono text-sm",
|
|
158
|
+
children: e.id
|
|
159
|
+
}),
|
|
160
|
+
/* @__PURE__ */ D(C, {
|
|
161
|
+
className: "font-medium",
|
|
162
|
+
children: e.workflowName
|
|
163
|
+
}),
|
|
164
|
+
/* @__PURE__ */ D(C, { children: /* @__PURE__ */ O(l, {
|
|
165
|
+
variant: t.variant,
|
|
166
|
+
className: "gap-1",
|
|
167
|
+
children: [/* @__PURE__ */ D(n, { className: "h-3 w-3" }), e.status]
|
|
168
|
+
}) }),
|
|
169
|
+
/* @__PURE__ */ D(C, { children: e.triggeredBy }),
|
|
170
|
+
/* @__PURE__ */ D(C, { children: new Date(e.startedAt).toLocaleString() }),
|
|
171
|
+
/* @__PURE__ */ D(C, { children: e.duration == null ? "—" : `${e.duration}s` }),
|
|
172
|
+
/* @__PURE__ */ D(C, {
|
|
173
|
+
className: "max-w-[200px] truncate text-destructive",
|
|
174
|
+
children: e.error || "—"
|
|
175
|
+
})
|
|
176
|
+
] }, e.id);
|
|
177
|
+
}), P.length === 0 && /* @__PURE__ */ D(E, { children: /* @__PURE__ */ D(C, {
|
|
178
|
+
colSpan: 7,
|
|
179
|
+
className: "text-center text-muted-foreground py-8",
|
|
180
|
+
children: "No executions found."
|
|
181
|
+
}) })] })] }) })] })
|
|
182
|
+
]
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
//#endregion
|
|
186
|
+
export { k as WorkflowsWorkflowExecutionsPage };
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=WorkflowsWorkflowExecutionsPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowExecutionsPage.js","names":[],"sources":["../../../src/assethandler/pages/WorkflowsWorkflowExecutionsPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@burdenoff/fe-libs/ui';\nimport { Play, CheckCircle2, XCircle, Clock, RefreshCw, Download, Filter } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function WorkflowsWorkflowExecutionsPage() {\n const { workflowExecutions } = useAssetHandlerStore();\n const [statusFilter, setStatusFilter] = useState('all');\n const [search, setSearch] = useState('');\n\n const filtered = workflowExecutions.filter((ex) => {\n if (statusFilter !== 'all' && ex.status !== statusFilter) return false;\n if (search && !ex.workflowName.toLowerCase().includes(search.toLowerCase())) return false;\n return true;\n });\n\n const total = workflowExecutions.length;\n const completed = workflowExecutions.filter((e) => e.status === 'completed').length;\n const failed = workflowExecutions.filter((e) => e.status === 'failed').length;\n const running = workflowExecutions.filter((e) => e.status === 'running').length;\n const successRate = total > 0 ? Math.round((completed / total) * 100) : 0;\n\n const statusConfig: Record<\n string,\n { variant: 'default' | 'secondary' | 'destructive' | 'outline'; icon: typeof Play }\n > = {\n running: { variant: 'default', icon: Play },\n completed: { variant: 'secondary', icon: CheckCircle2 },\n failed: { variant: 'destructive', icon: XCircle },\n cancelled: { variant: 'outline', icon: XCircle },\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\">Workflow Executions</h1>\n <p className=\"text-sm text-muted-foreground\">\n Monitor and review workflow execution history and performance.\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"mr-2 h-4 w-4\" />\n Export\n </Button>\n <Button size=\"sm\">\n <RefreshCw className=\"mr-2 h-4 w-4\" />\n Refresh\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 Executions</CardTitle>\n <Play className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{total}</div>\n <p className=\"text-xs text-muted-foreground\">All time</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\">Success Rate</CardTitle>\n <CheckCircle2 className=\"h-4 w-4 text-green-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{successRate}%</div>\n <p className=\"text-xs text-muted-foreground\">{completed} completed successfully</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\">Failed</CardTitle>\n <XCircle className=\"h-4 w-4 text-destructive\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{failed}</div>\n <p className=\"text-xs text-muted-foreground\">Requires attention</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\">Currently Running</CardTitle>\n <Clock className=\"h-4 w-4 text-blue-500\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{running}</div>\n <p className=\"text-xs text-muted-foreground\">In progress now</p>\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <div className=\"flex items-center justify-between\">\n <CardTitle>Execution History</CardTitle>\n <div className=\"flex items-center gap-2\">\n <Input\n placeholder=\"Search workflows...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"w-[200px]\"\n />\n <Select value={statusFilter} onValueChange={setStatusFilter}>\n <SelectTrigger className=\"w-[150px]\">\n <Filter className=\"mr-2 h-4 w-4\" />\n <SelectValue placeholder=\"Status\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Statuses</SelectItem>\n <SelectItem value=\"running\">Running</SelectItem>\n <SelectItem value=\"completed\">Completed</SelectItem>\n <SelectItem value=\"failed\">Failed</SelectItem>\n <SelectItem value=\"cancelled\">Cancelled</SelectItem>\n </SelectContent>\n </Select>\n </div>\n </div>\n </CardHeader>\n <CardContent>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead>Execution ID</TableHead>\n <TableHead>Workflow</TableHead>\n <TableHead>Status</TableHead>\n <TableHead>Triggered By</TableHead>\n <TableHead>Started At</TableHead>\n <TableHead>Duration</TableHead>\n <TableHead>Error</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {filtered.map((ex) => {\n const cfg = statusConfig[ex.status] || statusConfig.cancelled;\n const StatusIcon = cfg.icon;\n return (\n <TableRow key={ex.id}>\n <TableCell className=\"font-mono text-sm\">{ex.id}</TableCell>\n <TableCell className=\"font-medium\">{ex.workflowName}</TableCell>\n <TableCell>\n <Badge variant={cfg.variant} className=\"gap-1\">\n <StatusIcon className=\"h-3 w-3\" />\n {ex.status}\n </Badge>\n </TableCell>\n <TableCell>{ex.triggeredBy}</TableCell>\n <TableCell>{new Date(ex.startedAt).toLocaleString()}</TableCell>\n <TableCell>{ex.duration != null ? `${ex.duration}s` : '—'}</TableCell>\n <TableCell className=\"max-w-[200px] truncate text-destructive\">\n {ex.error || '—'}\n </TableCell>\n </TableRow>\n );\n })}\n {filtered.length === 0 && (\n <TableRow>\n <TableCell colSpan={7} className=\"text-center text-muted-foreground py-8\">\n No executions found.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowListPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/WorkflowsWorkflowListPage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,yBAAyB,4CAmHxC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { Pause as t, Play as n, Plus as r } from "lucide-react";
|
|
3
|
+
import { Badge as i, Button as a, Card as o, CardContent as s } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/WorkflowsWorkflowListPage.tsx
|
|
6
|
+
function u() {
|
|
7
|
+
let { workflows: u } = e();
|
|
8
|
+
return /* @__PURE__ */ l("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ l("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
|
|
14
|
+
className: "text-2xl font-bold",
|
|
15
|
+
children: "Workflows"
|
|
16
|
+
}), /* @__PURE__ */ l("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: [u.length, " automation workflows"]
|
|
19
|
+
})] }), /* @__PURE__ */ l(a, {
|
|
20
|
+
size: "sm",
|
|
21
|
+
children: [/* @__PURE__ */ c(r, { className: "mr-2 h-4 w-4" }), "Create Workflow"]
|
|
22
|
+
})]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ l("div", {
|
|
25
|
+
className: "grid gap-4 md:grid-cols-3",
|
|
26
|
+
children: [
|
|
27
|
+
/* @__PURE__ */ c(o, { children: /* @__PURE__ */ l(s, {
|
|
28
|
+
className: "pt-4",
|
|
29
|
+
children: [/* @__PURE__ */ c("p", {
|
|
30
|
+
className: "text-sm text-muted-foreground",
|
|
31
|
+
children: "Active"
|
|
32
|
+
}), /* @__PURE__ */ c("p", {
|
|
33
|
+
className: "text-2xl font-bold text-green-600",
|
|
34
|
+
children: u.filter((e) => e.status === "active").length
|
|
35
|
+
})]
|
|
36
|
+
}) }),
|
|
37
|
+
/* @__PURE__ */ c(o, { children: /* @__PURE__ */ l(s, {
|
|
38
|
+
className: "pt-4",
|
|
39
|
+
children: [/* @__PURE__ */ c("p", {
|
|
40
|
+
className: "text-sm text-muted-foreground",
|
|
41
|
+
children: "Total Runs"
|
|
42
|
+
}), /* @__PURE__ */ c("p", {
|
|
43
|
+
className: "text-2xl font-bold",
|
|
44
|
+
children: u.reduce((e, t) => e + t.totalRuns, 0)
|
|
45
|
+
})]
|
|
46
|
+
}) }),
|
|
47
|
+
/* @__PURE__ */ c(o, { children: /* @__PURE__ */ l(s, {
|
|
48
|
+
className: "pt-4",
|
|
49
|
+
children: [/* @__PURE__ */ c("p", {
|
|
50
|
+
className: "text-sm text-muted-foreground",
|
|
51
|
+
children: "Avg Success Rate"
|
|
52
|
+
}), /* @__PURE__ */ l("p", {
|
|
53
|
+
className: "text-2xl font-bold",
|
|
54
|
+
children: [(u.reduce((e, t) => e + t.successRate, 0) / Math.max(u.length, 1)).toFixed(1), "%"]
|
|
55
|
+
})]
|
|
56
|
+
}) })
|
|
57
|
+
]
|
|
58
|
+
}),
|
|
59
|
+
/* @__PURE__ */ c(o, { children: /* @__PURE__ */ c(s, {
|
|
60
|
+
className: "p-0",
|
|
61
|
+
children: /* @__PURE__ */ c("div", {
|
|
62
|
+
className: "overflow-x-auto",
|
|
63
|
+
children: /* @__PURE__ */ l("table", {
|
|
64
|
+
className: "w-full text-sm",
|
|
65
|
+
children: [/* @__PURE__ */ c("thead", { children: /* @__PURE__ */ l("tr", {
|
|
66
|
+
className: "border-b bg-muted/50",
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ c("th", {
|
|
69
|
+
className: "text-left p-3 font-medium",
|
|
70
|
+
children: "Name"
|
|
71
|
+
}),
|
|
72
|
+
/* @__PURE__ */ c("th", {
|
|
73
|
+
className: "text-left p-3 font-medium",
|
|
74
|
+
children: "Category"
|
|
75
|
+
}),
|
|
76
|
+
/* @__PURE__ */ c("th", {
|
|
77
|
+
className: "text-left p-3 font-medium",
|
|
78
|
+
children: "Trigger"
|
|
79
|
+
}),
|
|
80
|
+
/* @__PURE__ */ c("th", {
|
|
81
|
+
className: "text-left p-3 font-medium",
|
|
82
|
+
children: "Status"
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ c("th", {
|
|
85
|
+
className: "text-left p-3 font-medium",
|
|
86
|
+
children: "Runs"
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ c("th", {
|
|
89
|
+
className: "text-left p-3 font-medium",
|
|
90
|
+
children: "Success Rate"
|
|
91
|
+
}),
|
|
92
|
+
/* @__PURE__ */ c("th", {
|
|
93
|
+
className: "text-left p-3 font-medium",
|
|
94
|
+
children: "Last Run"
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ c("th", { className: "p-3" })
|
|
97
|
+
]
|
|
98
|
+
}) }), /* @__PURE__ */ c("tbody", { children: u.map((e) => /* @__PURE__ */ l("tr", {
|
|
99
|
+
className: "border-b hover:bg-muted/50 cursor-pointer",
|
|
100
|
+
children: [
|
|
101
|
+
/* @__PURE__ */ l("td", {
|
|
102
|
+
className: "p-3",
|
|
103
|
+
children: [/* @__PURE__ */ c("p", {
|
|
104
|
+
className: "font-medium",
|
|
105
|
+
children: e.name
|
|
106
|
+
}), /* @__PURE__ */ c("p", {
|
|
107
|
+
className: "text-xs text-muted-foreground",
|
|
108
|
+
children: e.description
|
|
109
|
+
})]
|
|
110
|
+
}),
|
|
111
|
+
/* @__PURE__ */ c("td", {
|
|
112
|
+
className: "p-3",
|
|
113
|
+
children: /* @__PURE__ */ c(i, {
|
|
114
|
+
variant: "outline",
|
|
115
|
+
children: e.category
|
|
116
|
+
})
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ c("td", {
|
|
119
|
+
className: "p-3 text-xs",
|
|
120
|
+
children: e.triggerType
|
|
121
|
+
}),
|
|
122
|
+
/* @__PURE__ */ c("td", {
|
|
123
|
+
className: "p-3",
|
|
124
|
+
children: /* @__PURE__ */ c(i, {
|
|
125
|
+
variant: e.status === "active" ? "default" : e.status === "paused" ? "secondary" : "outline",
|
|
126
|
+
children: e.status
|
|
127
|
+
})
|
|
128
|
+
}),
|
|
129
|
+
/* @__PURE__ */ c("td", {
|
|
130
|
+
className: "p-3",
|
|
131
|
+
children: e.totalRuns
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ c("td", {
|
|
134
|
+
className: "p-3",
|
|
135
|
+
children: /* @__PURE__ */ l("span", {
|
|
136
|
+
className: e.successRate >= 95 ? "text-green-600 font-medium" : "text-yellow-600",
|
|
137
|
+
children: [e.successRate, "%"]
|
|
138
|
+
})
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ c("td", {
|
|
141
|
+
className: "p-3 text-xs",
|
|
142
|
+
children: e.lastRun ? new Date(e.lastRun).toLocaleString() : "Never"
|
|
143
|
+
}),
|
|
144
|
+
/* @__PURE__ */ c("td", {
|
|
145
|
+
className: "p-3",
|
|
146
|
+
children: /* @__PURE__ */ c(a, {
|
|
147
|
+
variant: "ghost",
|
|
148
|
+
size: "sm",
|
|
149
|
+
children: e.status === "active" ? /* @__PURE__ */ c(t, { className: "h-3 w-3" }) : /* @__PURE__ */ c(n, { className: "h-3 w-3" })
|
|
150
|
+
})
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
}, e.id)) })]
|
|
154
|
+
})
|
|
155
|
+
})
|
|
156
|
+
}) })
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
//#endregion
|
|
161
|
+
export { u as WorkflowsWorkflowListPage };
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=WorkflowsWorkflowListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowListPage.js","names":[],"sources":["../../../src/assethandler/pages/WorkflowsWorkflowListPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Input,\n} from '@burdenoff/fe-libs/ui';\nimport { Zap, Plus, Search, Play, Pause } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function WorkflowsWorkflowListPage() {\n const { workflows } = 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\">Workflows</h1>\n <p className=\"text-sm text-muted-foreground\">{workflows.length} automation workflows</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Workflow\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Active</p>\n <p className=\"text-2xl font-bold text-green-600\">\n {workflows.filter((w) => w.status === 'active').length}\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Total Runs</p>\n <p className=\"text-2xl font-bold\">{workflows.reduce((s, w) => s + w.totalRuns, 0)}</p>\n </CardContent>\n </Card>\n <Card>\n <CardContent className=\"pt-4\">\n <p className=\"text-sm text-muted-foreground\">Avg Success Rate</p>\n <p className=\"text-2xl font-bold\">\n {(\n workflows.reduce((s, w) => s + w.successRate, 0) / Math.max(workflows.length, 1)\n ).toFixed(1)}\n %\n </p>\n </CardContent>\n </Card>\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\">Trigger</th>\n <th className=\"text-left p-3 font-medium\">Status</th>\n <th className=\"text-left p-3 font-medium\">Runs</th>\n <th className=\"text-left p-3 font-medium\">Success Rate</th>\n <th className=\"text-left p-3 font-medium\">Last Run</th>\n <th className=\"p-3\"></th>\n </tr>\n </thead>\n <tbody>\n {workflows.map((wf) => (\n <tr key={wf.id} className=\"border-b hover:bg-muted/50 cursor-pointer\">\n <td className=\"p-3\">\n <p className=\"font-medium\">{wf.name}</p>\n <p className=\"text-xs text-muted-foreground\">{wf.description}</p>\n </td>\n <td className=\"p-3\">\n <Badge variant=\"outline\">{wf.category}</Badge>\n </td>\n <td className=\"p-3 text-xs\">{wf.triggerType}</td>\n <td className=\"p-3\">\n <Badge\n variant={\n wf.status === 'active'\n ? 'default'\n : wf.status === 'paused'\n ? 'secondary'\n : 'outline'\n }\n >\n {wf.status}\n </Badge>\n </td>\n <td className=\"p-3\">{wf.totalRuns}</td>\n <td className=\"p-3\">\n <span\n className={\n wf.successRate >= 95 ? 'text-green-600 font-medium' : 'text-yellow-600'\n }\n >\n {wf.successRate}%\n </span>\n </td>\n <td className=\"p-3 text-xs\">\n {wf.lastRun ? new Date(wf.lastRun).toLocaleString() : 'Never'}\n </td>\n <td className=\"p-3\">\n <Button variant=\"ghost\" size=\"sm\">\n {wf.status === 'active' ? (\n <Pause className=\"h-3 w-3\" />\n ) : (\n <Play className=\"h-3 w-3\" />\n )}\n </Button>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowTemplatesPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/WorkflowsWorkflowTemplatesPage.tsx"],"names":[],"mappings":"AAoBA,wBAAgB,8BAA8B,4CAsJ7C"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { Download as n, LayoutTemplate as r, Plus as i, Search as a, Star as o, Users as s } from "lucide-react";
|
|
4
|
+
import { Badge as c, Button as l, Card as u, CardContent as d, CardDescription as f, CardFooter as p, CardHeader as m, CardTitle as h, Input as g, Select as _, SelectContent as v, SelectItem as y, SelectTrigger as b, SelectValue as x } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
6
|
+
//#region src/assethandler/pages/WorkflowsWorkflowTemplatesPage.tsx
|
|
7
|
+
function w() {
|
|
8
|
+
let { workflowTemplates: w } = e(), [T, E] = t(""), [D, O] = t("all"), k = [...new Set(w.map((e) => e.category))], A = w.filter((e) => !(D !== "all" && e.category !== D || T && !e.name.toLowerCase().includes(T.toLowerCase()) && !e.description.toLowerCase().includes(T.toLowerCase()))), j = (e) => Array.from({ length: 5 }, (t, n) => /* @__PURE__ */ S(o, { className: `h-4 w-4 ${n < Math.floor(e) ? "fill-yellow-400 text-yellow-400" : "text-muted-foreground/30"}` }, n));
|
|
9
|
+
return /* @__PURE__ */ C("div", {
|
|
10
|
+
className: "space-y-6 p-6",
|
|
11
|
+
children: [
|
|
12
|
+
/* @__PURE__ */ C("div", {
|
|
13
|
+
className: "flex items-center justify-between",
|
|
14
|
+
children: [/* @__PURE__ */ C("div", { children: [/* @__PURE__ */ S("h1", {
|
|
15
|
+
className: "text-2xl font-semibold",
|
|
16
|
+
children: "Workflow Templates"
|
|
17
|
+
}), /* @__PURE__ */ S("p", {
|
|
18
|
+
className: "text-sm text-muted-foreground",
|
|
19
|
+
children: "Browse and use pre-built workflow templates to get started quickly."
|
|
20
|
+
})] }), /* @__PURE__ */ C(l, {
|
|
21
|
+
size: "sm",
|
|
22
|
+
children: [/* @__PURE__ */ S(i, { className: "mr-2 h-4 w-4" }), "Create Template"]
|
|
23
|
+
})]
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ C("div", {
|
|
26
|
+
className: "grid gap-4 md:grid-cols-3",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(m, {
|
|
29
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
30
|
+
children: [/* @__PURE__ */ S(h, {
|
|
31
|
+
className: "text-sm font-medium",
|
|
32
|
+
children: "Total Templates"
|
|
33
|
+
}), /* @__PURE__ */ S(r, { className: "h-4 w-4 text-muted-foreground" })]
|
|
34
|
+
}), /* @__PURE__ */ S(d, { children: /* @__PURE__ */ S("div", {
|
|
35
|
+
className: "text-2xl font-bold",
|
|
36
|
+
children: w.length
|
|
37
|
+
}) })] }),
|
|
38
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(m, {
|
|
39
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
40
|
+
children: [/* @__PURE__ */ S(h, {
|
|
41
|
+
className: "text-sm font-medium",
|
|
42
|
+
children: "Most Popular"
|
|
43
|
+
}), /* @__PURE__ */ S(s, { className: "h-4 w-4 text-muted-foreground" })]
|
|
44
|
+
}), /* @__PURE__ */ C(d, { children: [/* @__PURE__ */ S("div", {
|
|
45
|
+
className: "text-2xl font-bold",
|
|
46
|
+
children: w.reduce((e, t) => e + t.usageCount, 0)
|
|
47
|
+
}), /* @__PURE__ */ S("p", {
|
|
48
|
+
className: "text-xs text-muted-foreground",
|
|
49
|
+
children: "Total uses across all templates"
|
|
50
|
+
})] })] }),
|
|
51
|
+
/* @__PURE__ */ C(u, { children: [/* @__PURE__ */ C(m, {
|
|
52
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
53
|
+
children: [/* @__PURE__ */ S(h, {
|
|
54
|
+
className: "text-sm font-medium",
|
|
55
|
+
children: "Average Rating"
|
|
56
|
+
}), /* @__PURE__ */ S(o, { className: "h-4 w-4 text-yellow-400" })]
|
|
57
|
+
}), /* @__PURE__ */ S(d, { children: /* @__PURE__ */ S("div", {
|
|
58
|
+
className: "text-2xl font-bold",
|
|
59
|
+
children: (w.reduce((e, t) => e + t.rating, 0) / w.length).toFixed(1)
|
|
60
|
+
}) })] })
|
|
61
|
+
]
|
|
62
|
+
}),
|
|
63
|
+
/* @__PURE__ */ C("div", {
|
|
64
|
+
className: "flex items-center gap-3",
|
|
65
|
+
children: [/* @__PURE__ */ C("div", {
|
|
66
|
+
className: "relative flex-1 max-w-sm",
|
|
67
|
+
children: [/* @__PURE__ */ S(a, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ S(g, {
|
|
68
|
+
placeholder: "Search templates...",
|
|
69
|
+
value: T,
|
|
70
|
+
onChange: (e) => E(e.target.value),
|
|
71
|
+
className: "pl-9"
|
|
72
|
+
})]
|
|
73
|
+
}), /* @__PURE__ */ C(_, {
|
|
74
|
+
value: D,
|
|
75
|
+
onValueChange: O,
|
|
76
|
+
children: [/* @__PURE__ */ S(b, {
|
|
77
|
+
className: "w-[180px]",
|
|
78
|
+
children: /* @__PURE__ */ S(x, { placeholder: "Category" })
|
|
79
|
+
}), /* @__PURE__ */ C(v, { children: [/* @__PURE__ */ S(y, {
|
|
80
|
+
value: "all",
|
|
81
|
+
children: "All Categories"
|
|
82
|
+
}), k.map((e) => /* @__PURE__ */ S(y, {
|
|
83
|
+
value: e,
|
|
84
|
+
children: e
|
|
85
|
+
}, e))] })]
|
|
86
|
+
})]
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ C("div", {
|
|
89
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
90
|
+
children: [A.map((e) => /* @__PURE__ */ C(u, {
|
|
91
|
+
className: "flex flex-col",
|
|
92
|
+
children: [
|
|
93
|
+
/* @__PURE__ */ C(m, { children: [
|
|
94
|
+
/* @__PURE__ */ C("div", {
|
|
95
|
+
className: "flex items-start justify-between",
|
|
96
|
+
children: [/* @__PURE__ */ S(c, {
|
|
97
|
+
variant: "outline",
|
|
98
|
+
children: e.category
|
|
99
|
+
}), /* @__PURE__ */ S("span", {
|
|
100
|
+
className: "text-xs text-muted-foreground",
|
|
101
|
+
children: e.id
|
|
102
|
+
})]
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ S(h, {
|
|
105
|
+
className: "text-lg mt-2",
|
|
106
|
+
children: e.name
|
|
107
|
+
}),
|
|
108
|
+
/* @__PURE__ */ S(f, { children: e.description })
|
|
109
|
+
] }),
|
|
110
|
+
/* @__PURE__ */ C(d, {
|
|
111
|
+
className: "flex-1 space-y-3",
|
|
112
|
+
children: [
|
|
113
|
+
/* @__PURE__ */ C("div", {
|
|
114
|
+
className: "flex items-center gap-1",
|
|
115
|
+
children: [j(e.rating), /* @__PURE__ */ S("span", {
|
|
116
|
+
className: "ml-2 text-sm text-muted-foreground",
|
|
117
|
+
children: e.rating
|
|
118
|
+
})]
|
|
119
|
+
}),
|
|
120
|
+
/* @__PURE__ */ C("div", {
|
|
121
|
+
className: "flex items-center gap-2 text-sm text-muted-foreground",
|
|
122
|
+
children: [/* @__PURE__ */ S(s, { className: "h-4 w-4" }), /* @__PURE__ */ C("span", { children: [e.usageCount, " uses"] })]
|
|
123
|
+
}),
|
|
124
|
+
/* @__PURE__ */ S("div", {
|
|
125
|
+
className: "flex flex-wrap gap-1",
|
|
126
|
+
children: e.tags.map((e) => /* @__PURE__ */ S(c, {
|
|
127
|
+
variant: "secondary",
|
|
128
|
+
className: "text-xs",
|
|
129
|
+
children: e
|
|
130
|
+
}, e))
|
|
131
|
+
})
|
|
132
|
+
]
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ C(p, {
|
|
135
|
+
className: "gap-2",
|
|
136
|
+
children: [/* @__PURE__ */ S(l, {
|
|
137
|
+
className: "flex-1",
|
|
138
|
+
size: "sm",
|
|
139
|
+
children: "Use Template"
|
|
140
|
+
}), /* @__PURE__ */ S(l, {
|
|
141
|
+
variant: "outline",
|
|
142
|
+
size: "sm",
|
|
143
|
+
children: /* @__PURE__ */ S(n, { className: "h-4 w-4" })
|
|
144
|
+
})]
|
|
145
|
+
})
|
|
146
|
+
]
|
|
147
|
+
}, e.id)), A.length === 0 && /* @__PURE__ */ S("div", {
|
|
148
|
+
className: "col-span-full text-center py-12 text-muted-foreground",
|
|
149
|
+
children: "No templates found matching your criteria."
|
|
150
|
+
})]
|
|
151
|
+
})
|
|
152
|
+
]
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
//#endregion
|
|
156
|
+
export { w as WorkflowsWorkflowTemplatesPage };
|
|
157
|
+
|
|
158
|
+
//# sourceMappingURL=WorkflowsWorkflowTemplatesPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WorkflowsWorkflowTemplatesPage.js","names":[],"sources":["../../../src/assethandler/pages/WorkflowsWorkflowTemplatesPage.tsx"],"sourcesContent":["import { useState } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@burdenoff/fe-libs/ui';\nimport { Search, Star, Users, Download, Plus, LayoutTemplate } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function WorkflowsWorkflowTemplatesPage() {\n const { workflowTemplates } = useAssetHandlerStore();\n const [search, setSearch] = useState('');\n const [categoryFilter, setCategoryFilter] = useState('all');\n\n const categories = [...new Set(workflowTemplates.map((t) => t.category))];\n\n const filtered = workflowTemplates.filter((t) => {\n if (categoryFilter !== 'all' && t.category !== categoryFilter) return false;\n if (\n search &&\n !t.name.toLowerCase().includes(search.toLowerCase()) &&\n !t.description.toLowerCase().includes(search.toLowerCase())\n )\n return false;\n return true;\n });\n\n const renderStars = (rating: number) => {\n return Array.from({ length: 5 }, (_, i) => (\n <Star\n key={i}\n className={`h-4 w-4 ${i < Math.floor(rating) ? 'fill-yellow-400 text-yellow-400' : 'text-muted-foreground/30'}`}\n />\n ));\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Workflow Templates</h1>\n <p className=\"text-sm text-muted-foreground\">\n Browse and use pre-built workflow templates to get started quickly.\n </p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Create Template\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-3\">\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 Templates</CardTitle>\n <LayoutTemplate className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{workflowTemplates.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\">Most Popular</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {workflowTemplates.reduce((a, t) => a + t.usageCount, 0)}\n </div>\n <p className=\"text-xs text-muted-foreground\">Total uses across all templates</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\">Average Rating</CardTitle>\n <Star className=\"h-4 w-4 text-yellow-400\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {(\n workflowTemplates.reduce((a, t) => a + t.rating, 0) / workflowTemplates.length\n ).toFixed(1)}\n </div>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"flex items-center gap-3\">\n <div className=\"relative flex-1 max-w-sm\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n placeholder=\"Search templates...\"\n value={search}\n onChange={(e) => setSearch(e.target.value)}\n className=\"pl-9\"\n />\n </div>\n <Select value={categoryFilter} onValueChange={setCategoryFilter}>\n <SelectTrigger className=\"w-[180px]\">\n <SelectValue placeholder=\"Category\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value=\"all\">All Categories</SelectItem>\n {categories.map((c) => (\n <SelectItem key={c} value={c}>\n {c}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((template) => (\n <Card key={template.id} className=\"flex flex-col\">\n <CardHeader>\n <div className=\"flex items-start justify-between\">\n <Badge variant=\"outline\">{template.category}</Badge>\n <span className=\"text-xs text-muted-foreground\">{template.id}</span>\n </div>\n <CardTitle className=\"text-lg mt-2\">{template.name}</CardTitle>\n <CardDescription>{template.description}</CardDescription>\n </CardHeader>\n <CardContent className=\"flex-1 space-y-3\">\n <div className=\"flex items-center gap-1\">\n {renderStars(template.rating)}\n <span className=\"ml-2 text-sm text-muted-foreground\">{template.rating}</span>\n </div>\n <div className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <Users className=\"h-4 w-4\" />\n <span>{template.usageCount} uses</span>\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {template.tags.map((tag) => (\n <Badge key={tag} variant=\"secondary\" className=\"text-xs\">\n {tag}\n </Badge>\n ))}\n </div>\n </CardContent>\n <CardFooter className=\"gap-2\">\n <Button className=\"flex-1\" size=\"sm\">\n Use Template\n </Button>\n <Button variant=\"outline\" size=\"sm\">\n <Download className=\"h-4 w-4\" />\n </Button>\n </CardFooter>\n </Card>\n ))}\n {filtered.length === 0 && (\n <div className=\"col-span-full text-center py-12 text-muted-foreground\">\n No templates found matching your criteria.\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { FC, PropsWithChildren } from 'react';
|
|
2
|
+
import { AssetHandlerRootProps } from '../types';
|
|
3
|
+
|
|
4
|
+
export declare const useAssetHandler: () => AssetHandlerRootProps;
|
|
5
|
+
export declare const AssetHandlerProvider: FC<PropsWithChildren<AssetHandlerRootProps>>;
|
|
6
|
+
//# sourceMappingURL=AssetHandlerProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetHandlerProvider.d.ts","sourceRoot":"","sources":["../../../src/assethandler/providers/AssetHandlerProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAKnD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AA+LtD,eAAO,MAAM,eAAe,6BAI3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,EAAE,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,CAwC7E,CAAC"}
|