@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,133 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { ClipboardList as t, Plus as n } from "lucide-react";
|
|
3
|
+
import { Badge as r, Button as i, Card as a, CardContent as o, CardDescription as s, CardHeader as c, CardTitle as l, Separator as u } from "@burdenoff/fe-libs/ui";
|
|
4
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
5
|
+
//#region src/assethandler/pages/MaintenanceMaintenanceSchedulerPage.tsx
|
|
6
|
+
function p() {
|
|
7
|
+
let { maintenanceRecords: p, maintenanceTemplates: m } = e(), h = p.filter((e) => e.status === "scheduled");
|
|
8
|
+
return /* @__PURE__ */ f("div", {
|
|
9
|
+
className: "space-y-6 p-6",
|
|
10
|
+
children: [
|
|
11
|
+
/* @__PURE__ */ f("div", {
|
|
12
|
+
className: "flex items-center justify-between",
|
|
13
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h1", {
|
|
14
|
+
className: "text-2xl font-bold",
|
|
15
|
+
children: "Maintenance Scheduler"
|
|
16
|
+
}), /* @__PURE__ */ d("p", {
|
|
17
|
+
className: "text-sm text-muted-foreground",
|
|
18
|
+
children: "Schedule and manage maintenance tasks"
|
|
19
|
+
})] }), /* @__PURE__ */ f(i, {
|
|
20
|
+
size: "sm",
|
|
21
|
+
children: [/* @__PURE__ */ d(n, { className: "mr-2 h-4 w-4" }), "Schedule New"]
|
|
22
|
+
})]
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ f(a, { children: [/* @__PURE__ */ f(c, { children: [/* @__PURE__ */ f(l, {
|
|
25
|
+
className: "flex items-center gap-2",
|
|
26
|
+
children: [/* @__PURE__ */ d(t, { className: "h-4 w-4" }), "Maintenance Templates"]
|
|
27
|
+
}), /* @__PURE__ */ d(s, { children: "Quick-start from predefined templates" })] }), /* @__PURE__ */ d(o, { children: /* @__PURE__ */ d("div", {
|
|
28
|
+
className: "grid gap-3 md:grid-cols-2 lg:grid-cols-4",
|
|
29
|
+
children: m.map((e) => /* @__PURE__ */ f("div", {
|
|
30
|
+
className: "rounded-lg border p-4 hover:shadow-sm transition-shadow cursor-pointer",
|
|
31
|
+
children: [
|
|
32
|
+
/* @__PURE__ */ d("h4", {
|
|
33
|
+
className: "font-medium text-sm",
|
|
34
|
+
children: e.name
|
|
35
|
+
}),
|
|
36
|
+
/* @__PURE__ */ f("div", {
|
|
37
|
+
className: "flex items-center gap-2 mt-2 text-xs text-muted-foreground",
|
|
38
|
+
children: [
|
|
39
|
+
/* @__PURE__ */ d(r, {
|
|
40
|
+
variant: "outline",
|
|
41
|
+
className: "text-[10px]",
|
|
42
|
+
children: e.type
|
|
43
|
+
}),
|
|
44
|
+
/* @__PURE__ */ f("span", { children: [e.estimatedDuration, " min"] }),
|
|
45
|
+
/* @__PURE__ */ f("span", { children: ["$", e.cost] })
|
|
46
|
+
]
|
|
47
|
+
}),
|
|
48
|
+
/* @__PURE__ */ f("p", {
|
|
49
|
+
className: "text-xs text-muted-foreground mt-1",
|
|
50
|
+
children: [e.checklist.length, " checklist items"]
|
|
51
|
+
})
|
|
52
|
+
]
|
|
53
|
+
}, e.id))
|
|
54
|
+
}) })] }),
|
|
55
|
+
/* @__PURE__ */ f(a, { children: [/* @__PURE__ */ d(c, { children: /* @__PURE__ */ f(l, { children: [
|
|
56
|
+
"Scheduled Maintenance (",
|
|
57
|
+
h.length,
|
|
58
|
+
")"
|
|
59
|
+
] }) }), /* @__PURE__ */ d(o, { children: /* @__PURE__ */ d("div", {
|
|
60
|
+
className: "space-y-3",
|
|
61
|
+
children: h.map((e) => /* @__PURE__ */ f("div", {
|
|
62
|
+
className: "rounded-lg border p-4",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ f("div", {
|
|
65
|
+
className: "flex items-center justify-between",
|
|
66
|
+
children: [/* @__PURE__ */ f("div", { children: [
|
|
67
|
+
/* @__PURE__ */ f("div", {
|
|
68
|
+
className: "flex items-center gap-2",
|
|
69
|
+
children: [/* @__PURE__ */ d("span", {
|
|
70
|
+
className: "font-mono text-xs text-muted-foreground",
|
|
71
|
+
children: e.id
|
|
72
|
+
}), /* @__PURE__ */ d(r, {
|
|
73
|
+
variant: "outline",
|
|
74
|
+
children: e.type
|
|
75
|
+
})]
|
|
76
|
+
}),
|
|
77
|
+
/* @__PURE__ */ d("p", {
|
|
78
|
+
className: "font-medium mt-1",
|
|
79
|
+
children: e.title
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ f("p", {
|
|
82
|
+
className: "text-sm text-muted-foreground",
|
|
83
|
+
children: [
|
|
84
|
+
e.assetName,
|
|
85
|
+
" · ",
|
|
86
|
+
e.location
|
|
87
|
+
]
|
|
88
|
+
})
|
|
89
|
+
] }), /* @__PURE__ */ f("div", {
|
|
90
|
+
className: "text-right",
|
|
91
|
+
children: [/* @__PURE__ */ d("p", {
|
|
92
|
+
className: "text-sm font-medium",
|
|
93
|
+
children: e.scheduledDate
|
|
94
|
+
}), /* @__PURE__ */ f("p", {
|
|
95
|
+
className: "text-xs text-muted-foreground",
|
|
96
|
+
children: [
|
|
97
|
+
e.estimatedDuration,
|
|
98
|
+
" min · $",
|
|
99
|
+
e.cost
|
|
100
|
+
]
|
|
101
|
+
})]
|
|
102
|
+
})]
|
|
103
|
+
}),
|
|
104
|
+
/* @__PURE__ */ d(u, { className: "my-3" }),
|
|
105
|
+
/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ f("p", {
|
|
106
|
+
className: "text-xs font-medium text-muted-foreground mb-2",
|
|
107
|
+
children: [
|
|
108
|
+
"Checklist (",
|
|
109
|
+
e.checklist.filter((e) => e.completed).length,
|
|
110
|
+
"/",
|
|
111
|
+
e.checklist.length,
|
|
112
|
+
")"
|
|
113
|
+
]
|
|
114
|
+
}), /* @__PURE__ */ d("div", {
|
|
115
|
+
className: "space-y-1",
|
|
116
|
+
children: e.checklist.map((e, t) => /* @__PURE__ */ f("div", {
|
|
117
|
+
className: "flex items-center gap-2 text-xs",
|
|
118
|
+
children: [/* @__PURE__ */ d("div", { className: `h-3 w-3 rounded border ${e.completed ? "bg-primary border-primary" : "border-muted-foreground"}` }), /* @__PURE__ */ d("span", {
|
|
119
|
+
className: e.completed ? "line-through text-muted-foreground" : "",
|
|
120
|
+
children: e.task
|
|
121
|
+
})]
|
|
122
|
+
}, t))
|
|
123
|
+
})] })
|
|
124
|
+
]
|
|
125
|
+
}, e.id))
|
|
126
|
+
}) })] })
|
|
127
|
+
]
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
//#endregion
|
|
131
|
+
export { p as MaintenanceMaintenanceSchedulerPage };
|
|
132
|
+
|
|
133
|
+
//# sourceMappingURL=MaintenanceMaintenanceSchedulerPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MaintenanceMaintenanceSchedulerPage.js","names":[],"sources":["../../../src/assethandler/pages/MaintenanceMaintenanceSchedulerPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { Clock, Plus, Wrench, ClipboardList } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function MaintenanceMaintenanceSchedulerPage() {\n const { maintenanceRecords, maintenanceTemplates } = useAssetHandlerStore();\n const scheduled = maintenanceRecords.filter((m) => m.status === 'scheduled');\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\">Maintenance Scheduler</h1>\n <p className=\"text-sm text-muted-foreground\">Schedule and manage maintenance tasks</p>\n </div>\n <Button size=\"sm\">\n <Plus className=\"mr-2 h-4 w-4\" />\n Schedule New\n </Button>\n </div>\n\n {/* Templates */}\n <Card>\n <CardHeader>\n <CardTitle className=\"flex items-center gap-2\">\n <ClipboardList className=\"h-4 w-4\" />\n Maintenance Templates\n </CardTitle>\n <CardDescription>Quick-start from predefined templates</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"grid gap-3 md:grid-cols-2 lg:grid-cols-4\">\n {maintenanceTemplates.map((tpl) => (\n <div\n key={tpl.id}\n className=\"rounded-lg border p-4 hover:shadow-sm transition-shadow cursor-pointer\"\n >\n <h4 className=\"font-medium text-sm\">{tpl.name}</h4>\n <div className=\"flex items-center gap-2 mt-2 text-xs text-muted-foreground\">\n <Badge variant=\"outline\" className=\"text-[10px]\">\n {tpl.type}\n </Badge>\n <span>{tpl.estimatedDuration} min</span>\n <span>${tpl.cost}</span>\n </div>\n <p className=\"text-xs text-muted-foreground mt-1\">\n {tpl.checklist.length} checklist items\n </p>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n\n {/* Scheduled Tasks */}\n <Card>\n <CardHeader>\n <CardTitle>Scheduled Maintenance ({scheduled.length})</CardTitle>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n {scheduled.map((rec) => (\n <div key={rec.id} className=\"rounded-lg border p-4\">\n <div className=\"flex items-center justify-between\">\n <div>\n <div className=\"flex items-center gap-2\">\n <span className=\"font-mono text-xs text-muted-foreground\">{rec.id}</span>\n <Badge variant=\"outline\">{rec.type}</Badge>\n </div>\n <p className=\"font-medium mt-1\">{rec.title}</p>\n <p className=\"text-sm text-muted-foreground\">\n {rec.assetName} · {rec.location}\n </p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-sm font-medium\">{rec.scheduledDate}</p>\n <p className=\"text-xs text-muted-foreground\">\n {rec.estimatedDuration} min · ${rec.cost}\n </p>\n </div>\n </div>\n <Separator className=\"my-3\" />\n <div>\n <p className=\"text-xs font-medium text-muted-foreground mb-2\">\n Checklist ({rec.checklist.filter((c) => c.completed).length}/\n {rec.checklist.length})\n </p>\n <div className=\"space-y-1\">\n {rec.checklist.map((item, i) => (\n <div key={i} className=\"flex items-center gap-2 text-xs\">\n <div\n className={`h-3 w-3 rounded border ${item.completed ? 'bg-primary border-primary' : 'border-muted-foreground'}`}\n />\n <span\n className={item.completed ? 'line-through text-muted-foreground' : ''}\n >\n {item.task}\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n ))}\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceMarketplaceDetailPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/MarketplaceMarketplaceDetailPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,gCAAgC,4CAgI/C"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { ArrowLeft as t, Calendar as n, Eye as r, MapPin as i, ShoppingCart as a, Star as o } from "lucide-react";
|
|
3
|
+
import { useParams as s } from "react-router-dom";
|
|
4
|
+
import { Badge as c, Button as l, Card as u, CardContent as d, CardHeader as f, CardTitle as p, Separator as m } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as h, jsxs as g } from "react/jsx-runtime";
|
|
6
|
+
//#region src/assethandler/pages/MarketplaceMarketplaceDetailPage.tsx
|
|
7
|
+
function _() {
|
|
8
|
+
let { listingId: _ } = s(), { marketplaceListings: v } = e(), y = v.find((e) => e.id === _) ?? v[0];
|
|
9
|
+
if (!y) return /* @__PURE__ */ h("div", {
|
|
10
|
+
className: "p-6",
|
|
11
|
+
children: /* @__PURE__ */ h("p", {
|
|
12
|
+
className: "text-muted-foreground",
|
|
13
|
+
children: "Listing not found."
|
|
14
|
+
})
|
|
15
|
+
});
|
|
16
|
+
let b = Math.round((1 - y.price / y.originalPrice) * 100);
|
|
17
|
+
return /* @__PURE__ */ g("div", {
|
|
18
|
+
className: "space-y-6 p-6",
|
|
19
|
+
children: [/* @__PURE__ */ g("div", {
|
|
20
|
+
className: "flex items-center gap-4",
|
|
21
|
+
children: [/* @__PURE__ */ h(l, {
|
|
22
|
+
variant: "ghost",
|
|
23
|
+
size: "icon",
|
|
24
|
+
children: /* @__PURE__ */ h(t, { className: "h-4 w-4" })
|
|
25
|
+
}), /* @__PURE__ */ h("h1", {
|
|
26
|
+
className: "text-2xl font-bold",
|
|
27
|
+
children: y.title
|
|
28
|
+
})]
|
|
29
|
+
}), /* @__PURE__ */ g("div", {
|
|
30
|
+
className: "grid gap-6 lg:grid-cols-3",
|
|
31
|
+
children: [/* @__PURE__ */ g("div", {
|
|
32
|
+
className: "lg:col-span-2 space-y-6",
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ h(u, { children: /* @__PURE__ */ h(d, {
|
|
35
|
+
className: "pt-4",
|
|
36
|
+
children: /* @__PURE__ */ h("div", {
|
|
37
|
+
className: "bg-muted rounded-lg h-64 flex items-center justify-center",
|
|
38
|
+
children: /* @__PURE__ */ h("p", {
|
|
39
|
+
className: "text-muted-foreground",
|
|
40
|
+
children: "Product Image"
|
|
41
|
+
})
|
|
42
|
+
})
|
|
43
|
+
}) }),
|
|
44
|
+
/* @__PURE__ */ g(u, { children: [/* @__PURE__ */ h(f, { children: /* @__PURE__ */ h(p, { children: "Description" }) }), /* @__PURE__ */ h(d, { children: /* @__PURE__ */ h("p", {
|
|
45
|
+
className: "text-sm",
|
|
46
|
+
children: y.description
|
|
47
|
+
}) })] }),
|
|
48
|
+
/* @__PURE__ */ g(u, { children: [/* @__PURE__ */ h(f, { children: /* @__PURE__ */ h(p, { children: "Specifications" }) }), /* @__PURE__ */ h(d, { children: /* @__PURE__ */ h("dl", {
|
|
49
|
+
className: "grid grid-cols-2 gap-3 text-sm",
|
|
50
|
+
children: Object.entries(y.specifications).map(([e, t]) => /* @__PURE__ */ g("div", { children: [/* @__PURE__ */ h("dt", {
|
|
51
|
+
className: "text-muted-foreground",
|
|
52
|
+
children: e
|
|
53
|
+
}), /* @__PURE__ */ h("dd", {
|
|
54
|
+
className: "font-medium",
|
|
55
|
+
children: t
|
|
56
|
+
})] }, e))
|
|
57
|
+
}) })] })
|
|
58
|
+
]
|
|
59
|
+
}), /* @__PURE__ */ g("div", {
|
|
60
|
+
className: "space-y-4",
|
|
61
|
+
children: [/* @__PURE__ */ h(u, { children: /* @__PURE__ */ g(d, {
|
|
62
|
+
className: "pt-4 space-y-4",
|
|
63
|
+
children: [
|
|
64
|
+
/* @__PURE__ */ g("div", {
|
|
65
|
+
className: "flex items-baseline gap-2",
|
|
66
|
+
children: [/* @__PURE__ */ g("span", {
|
|
67
|
+
className: "text-3xl font-bold",
|
|
68
|
+
children: ["$", y.price.toLocaleString()]
|
|
69
|
+
}), /* @__PURE__ */ g("span", {
|
|
70
|
+
className: "text-sm text-muted-foreground line-through",
|
|
71
|
+
children: ["$", y.originalPrice.toLocaleString()]
|
|
72
|
+
})]
|
|
73
|
+
}),
|
|
74
|
+
/* @__PURE__ */ g(c, {
|
|
75
|
+
variant: "secondary",
|
|
76
|
+
children: [
|
|
77
|
+
"Save ",
|
|
78
|
+
b,
|
|
79
|
+
"%"
|
|
80
|
+
]
|
|
81
|
+
}),
|
|
82
|
+
/* @__PURE__ */ h(m, {}),
|
|
83
|
+
/* @__PURE__ */ g("div", {
|
|
84
|
+
className: "space-y-2 text-sm",
|
|
85
|
+
children: [
|
|
86
|
+
/* @__PURE__ */ g("div", {
|
|
87
|
+
className: "flex justify-between",
|
|
88
|
+
children: [/* @__PURE__ */ h("span", {
|
|
89
|
+
className: "text-muted-foreground",
|
|
90
|
+
children: "Condition"
|
|
91
|
+
}), /* @__PURE__ */ h("span", {
|
|
92
|
+
className: "font-medium capitalize",
|
|
93
|
+
children: y.condition
|
|
94
|
+
})]
|
|
95
|
+
}),
|
|
96
|
+
/* @__PURE__ */ g("div", {
|
|
97
|
+
className: "flex justify-between",
|
|
98
|
+
children: [/* @__PURE__ */ h("span", {
|
|
99
|
+
className: "text-muted-foreground",
|
|
100
|
+
children: "Category"
|
|
101
|
+
}), /* @__PURE__ */ h("span", { children: y.category })]
|
|
102
|
+
}),
|
|
103
|
+
/* @__PURE__ */ g("div", {
|
|
104
|
+
className: "flex justify-between",
|
|
105
|
+
children: [/* @__PURE__ */ h("span", {
|
|
106
|
+
className: "text-muted-foreground",
|
|
107
|
+
children: "Location"
|
|
108
|
+
}), /* @__PURE__ */ g("span", {
|
|
109
|
+
className: "flex items-center gap-1",
|
|
110
|
+
children: [/* @__PURE__ */ h(i, { className: "h-3 w-3" }), y.location]
|
|
111
|
+
})]
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ g("div", {
|
|
114
|
+
className: "flex justify-between",
|
|
115
|
+
children: [/* @__PURE__ */ h("span", {
|
|
116
|
+
className: "text-muted-foreground",
|
|
117
|
+
children: "Listed"
|
|
118
|
+
}), /* @__PURE__ */ g("span", {
|
|
119
|
+
className: "flex items-center gap-1",
|
|
120
|
+
children: [/* @__PURE__ */ h(n, { className: "h-3 w-3" }), y.listedDate]
|
|
121
|
+
})]
|
|
122
|
+
}),
|
|
123
|
+
/* @__PURE__ */ g("div", {
|
|
124
|
+
className: "flex justify-between",
|
|
125
|
+
children: [/* @__PURE__ */ h("span", {
|
|
126
|
+
className: "text-muted-foreground",
|
|
127
|
+
children: "Views"
|
|
128
|
+
}), /* @__PURE__ */ g("span", {
|
|
129
|
+
className: "flex items-center gap-1",
|
|
130
|
+
children: [/* @__PURE__ */ h(r, { className: "h-3 w-3" }), y.views]
|
|
131
|
+
})]
|
|
132
|
+
})
|
|
133
|
+
]
|
|
134
|
+
}),
|
|
135
|
+
/* @__PURE__ */ h(m, {}),
|
|
136
|
+
/* @__PURE__ */ g(l, {
|
|
137
|
+
className: "w-full",
|
|
138
|
+
children: [/* @__PURE__ */ h(a, { className: "mr-2 h-4 w-4" }), "Purchase"]
|
|
139
|
+
}),
|
|
140
|
+
/* @__PURE__ */ h(l, {
|
|
141
|
+
variant: "outline",
|
|
142
|
+
className: "w-full",
|
|
143
|
+
children: "Contact Seller"
|
|
144
|
+
})
|
|
145
|
+
]
|
|
146
|
+
}) }), /* @__PURE__ */ g(u, { children: [/* @__PURE__ */ h(f, { children: /* @__PURE__ */ h(p, {
|
|
147
|
+
className: "text-base",
|
|
148
|
+
children: "Seller"
|
|
149
|
+
}) }), /* @__PURE__ */ g(d, { children: [/* @__PURE__ */ h("p", {
|
|
150
|
+
className: "font-medium",
|
|
151
|
+
children: y.seller
|
|
152
|
+
}), /* @__PURE__ */ g("div", {
|
|
153
|
+
className: "flex items-center gap-1 mt-1",
|
|
154
|
+
children: [/* @__PURE__ */ h(o, { className: "h-3.5 w-3.5 fill-yellow-400 text-yellow-400" }), /* @__PURE__ */ h("span", {
|
|
155
|
+
className: "text-sm",
|
|
156
|
+
children: y.sellerRating
|
|
157
|
+
})]
|
|
158
|
+
})] })] })]
|
|
159
|
+
})]
|
|
160
|
+
})]
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//#endregion
|
|
164
|
+
export { _ as MarketplaceMarketplaceDetailPage };
|
|
165
|
+
|
|
166
|
+
//# sourceMappingURL=MarketplaceMarketplaceDetailPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceMarketplaceDetailPage.js","names":[],"sources":["../../../src/assethandler/pages/MarketplaceMarketplaceDetailPage.tsx"],"sourcesContent":["import {\n Badge,\n Button,\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n Separator,\n} from '@burdenoff/fe-libs/ui';\nimport { ArrowLeft, ShoppingCart, Star, Eye, MapPin, Calendar } from 'lucide-react';\nimport { useParams } from 'react-router-dom';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nexport function MarketplaceMarketplaceDetailPage() {\n const { listingId } = useParams<{ listingId: string }>();\n const { marketplaceListings } = useAssetHandlerStore();\n const listing =\n marketplaceListings.find((item) => item.id === listingId) ?? marketplaceListings[0];\n\n if (!listing)\n return (\n <div className=\"p-6\">\n <p className=\"text-muted-foreground\">Listing not found.</p>\n </div>\n );\n\n const discount = Math.round((1 - listing.price / listing.originalPrice) * 100);\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center gap-4\">\n <Button variant=\"ghost\" size=\"icon\">\n <ArrowLeft className=\"h-4 w-4\" />\n </Button>\n <h1 className=\"text-2xl font-bold\">{listing.title}</h1>\n </div>\n\n <div className=\"grid gap-6 lg:grid-cols-3\">\n <div className=\"lg:col-span-2 space-y-6\">\n {/* Image placeholder */}\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"bg-muted rounded-lg h-64 flex items-center justify-center\">\n <p className=\"text-muted-foreground\">Product Image</p>\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Description</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"text-sm\">{listing.description}</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader>\n <CardTitle>Specifications</CardTitle>\n </CardHeader>\n <CardContent>\n <dl className=\"grid grid-cols-2 gap-3 text-sm\">\n {Object.entries(listing.specifications).map(([key, value]) => (\n <div key={key}>\n <dt className=\"text-muted-foreground\">{key}</dt>\n <dd className=\"font-medium\">{value}</dd>\n </div>\n ))}\n </dl>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"space-y-4\">\n <Card>\n <CardContent className=\"pt-4 space-y-4\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"text-3xl font-bold\">${listing.price.toLocaleString()}</span>\n <span className=\"text-sm text-muted-foreground line-through\">\n ${listing.originalPrice.toLocaleString()}\n </span>\n </div>\n <Badge variant=\"secondary\">Save {discount}%</Badge>\n <Separator />\n <div className=\"space-y-2 text-sm\">\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Condition</span>\n <span className=\"font-medium capitalize\">{listing.condition}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Category</span>\n <span>{listing.category}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Location</span>\n <span className=\"flex items-center gap-1\">\n <MapPin className=\"h-3 w-3\" />\n {listing.location}\n </span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Listed</span>\n <span className=\"flex items-center gap-1\">\n <Calendar className=\"h-3 w-3\" />\n {listing.listedDate}\n </span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Views</span>\n <span className=\"flex items-center gap-1\">\n <Eye className=\"h-3 w-3\" />\n {listing.views}\n </span>\n </div>\n </div>\n <Separator />\n <Button className=\"w-full\">\n <ShoppingCart className=\"mr-2 h-4 w-4\" />\n Purchase\n </Button>\n <Button variant=\"outline\" className=\"w-full\">\n Contact Seller\n </Button>\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle className=\"text-base\">Seller</CardTitle>\n </CardHeader>\n <CardContent>\n <p className=\"font-medium\">{listing.seller}</p>\n <div className=\"flex items-center gap-1 mt-1\">\n <Star className=\"h-3.5 w-3.5 fill-yellow-400 text-yellow-400\" />\n <span className=\"text-sm\">{listing.sellerRating}</span>\n </div>\n </CardContent>\n </Card>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceMarketplaceListPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/MarketplaceMarketplaceListPage.tsx"],"names":[],"mappings":"AAyBA,wBAAgB,8BAA8B,4CAkH7C"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { useAssetHandlerStore as e } from "../store/assethandlerStore.js";
|
|
2
|
+
import { useMemo as t, useState as n } from "react";
|
|
3
|
+
import { Eye as r, Search as i, Star as a, Tag as o } from "lucide-react";
|
|
4
|
+
import { Badge as s, Button as c, Card as l, CardContent as u, CardDescription as d, CardHeader as f, CardTitle as p, Input as m, Select as h, SelectContent as g, SelectItem as _, SelectTrigger as v, SelectValue as y } from "@burdenoff/fe-libs/ui";
|
|
5
|
+
import { jsx as b, jsxs as x } from "react/jsx-runtime";
|
|
6
|
+
//#region src/assethandler/pages/MarketplaceMarketplaceListPage.tsx
|
|
7
|
+
var S = {
|
|
8
|
+
excellent: "text-green-700 bg-green-100",
|
|
9
|
+
good: "text-blue-700 bg-blue-100",
|
|
10
|
+
fair: "text-yellow-700 bg-yellow-100"
|
|
11
|
+
};
|
|
12
|
+
function C() {
|
|
13
|
+
let { marketplaceListings: C } = e(), [w, T] = n(""), [E, D] = n("all"), O = t(() => C.filter((e) => {
|
|
14
|
+
let t = w === "" || e.title.toLowerCase().includes(w.toLowerCase()), n = E === "all" || e.category === E;
|
|
15
|
+
return t && n && e.status === "active";
|
|
16
|
+
}), [
|
|
17
|
+
C,
|
|
18
|
+
w,
|
|
19
|
+
E
|
|
20
|
+
]), k = [...new Set(C.map((e) => e.category))];
|
|
21
|
+
return /* @__PURE__ */ x("div", {
|
|
22
|
+
className: "space-y-6 p-6",
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ x("div", {
|
|
25
|
+
className: "flex items-center justify-between",
|
|
26
|
+
children: [/* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("h1", {
|
|
27
|
+
className: "text-2xl font-bold",
|
|
28
|
+
children: "Asset Marketplace"
|
|
29
|
+
}), /* @__PURE__ */ b("p", {
|
|
30
|
+
className: "text-sm text-muted-foreground",
|
|
31
|
+
children: "Browse surplus and refurbished IT assets"
|
|
32
|
+
})] }), /* @__PURE__ */ x(c, {
|
|
33
|
+
size: "sm",
|
|
34
|
+
children: [/* @__PURE__ */ b(o, { className: "mr-2 h-4 w-4" }), "List an Asset"]
|
|
35
|
+
})]
|
|
36
|
+
}),
|
|
37
|
+
/* @__PURE__ */ b(l, { children: /* @__PURE__ */ b(u, {
|
|
38
|
+
className: "pt-4",
|
|
39
|
+
children: /* @__PURE__ */ x("div", {
|
|
40
|
+
className: "flex flex-col md:flex-row gap-3",
|
|
41
|
+
children: [/* @__PURE__ */ x("div", {
|
|
42
|
+
className: "relative flex-1",
|
|
43
|
+
children: [/* @__PURE__ */ b(i, { className: "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ b(m, {
|
|
44
|
+
placeholder: "Search marketplace...",
|
|
45
|
+
value: w,
|
|
46
|
+
onChange: (e) => T(e.target.value),
|
|
47
|
+
className: "pl-9"
|
|
48
|
+
})]
|
|
49
|
+
}), /* @__PURE__ */ x(h, {
|
|
50
|
+
value: E,
|
|
51
|
+
onValueChange: D,
|
|
52
|
+
children: [/* @__PURE__ */ b(v, {
|
|
53
|
+
className: "w-[180px]",
|
|
54
|
+
children: /* @__PURE__ */ b(y, { placeholder: "Category" })
|
|
55
|
+
}), /* @__PURE__ */ x(g, { children: [/* @__PURE__ */ b(_, {
|
|
56
|
+
value: "all",
|
|
57
|
+
children: "All Categories"
|
|
58
|
+
}), k.map((e) => /* @__PURE__ */ b(_, {
|
|
59
|
+
value: e,
|
|
60
|
+
children: e
|
|
61
|
+
}, e))] })]
|
|
62
|
+
})]
|
|
63
|
+
})
|
|
64
|
+
}) }),
|
|
65
|
+
/* @__PURE__ */ b("div", {
|
|
66
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-3",
|
|
67
|
+
children: O.map((e) => {
|
|
68
|
+
let t = Math.round((1 - e.price / e.originalPrice) * 100);
|
|
69
|
+
return /* @__PURE__ */ x(l, {
|
|
70
|
+
className: "hover:shadow-md transition-shadow cursor-pointer",
|
|
71
|
+
children: [/* @__PURE__ */ x(f, {
|
|
72
|
+
className: "pb-2",
|
|
73
|
+
children: [
|
|
74
|
+
/* @__PURE__ */ x("div", {
|
|
75
|
+
className: "flex items-center justify-between",
|
|
76
|
+
children: [/* @__PURE__ */ b(s, {
|
|
77
|
+
variant: "outline",
|
|
78
|
+
children: e.category
|
|
79
|
+
}), /* @__PURE__ */ b("span", {
|
|
80
|
+
className: `rounded-md px-2 py-0.5 text-xs font-medium ${S[e.condition] || "bg-muted"}`,
|
|
81
|
+
children: e.condition
|
|
82
|
+
})]
|
|
83
|
+
}),
|
|
84
|
+
/* @__PURE__ */ b(p, {
|
|
85
|
+
className: "text-base mt-2",
|
|
86
|
+
children: e.title
|
|
87
|
+
}),
|
|
88
|
+
/* @__PURE__ */ b(d, {
|
|
89
|
+
className: "line-clamp-2",
|
|
90
|
+
children: e.description
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
}), /* @__PURE__ */ b(u, { children: /* @__PURE__ */ x("div", {
|
|
94
|
+
className: "space-y-3",
|
|
95
|
+
children: [
|
|
96
|
+
/* @__PURE__ */ x("div", {
|
|
97
|
+
className: "flex items-baseline gap-2",
|
|
98
|
+
children: [
|
|
99
|
+
/* @__PURE__ */ x("span", {
|
|
100
|
+
className: "text-2xl font-bold",
|
|
101
|
+
children: ["$", e.price.toLocaleString()]
|
|
102
|
+
}),
|
|
103
|
+
/* @__PURE__ */ x("span", {
|
|
104
|
+
className: "text-sm text-muted-foreground line-through",
|
|
105
|
+
children: ["$", e.originalPrice.toLocaleString()]
|
|
106
|
+
}),
|
|
107
|
+
/* @__PURE__ */ x(s, {
|
|
108
|
+
variant: "secondary",
|
|
109
|
+
className: "text-xs",
|
|
110
|
+
children: [
|
|
111
|
+
"-",
|
|
112
|
+
t,
|
|
113
|
+
"%"
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
]
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ x("div", {
|
|
119
|
+
className: "flex items-center justify-between text-xs text-muted-foreground",
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ x("span", {
|
|
122
|
+
className: "flex items-center gap-1",
|
|
123
|
+
children: [/* @__PURE__ */ b(a, { className: "h-3 w-3 fill-yellow-400 text-yellow-400" }), e.sellerRating]
|
|
124
|
+
}),
|
|
125
|
+
/* @__PURE__ */ x("span", {
|
|
126
|
+
className: "flex items-center gap-1",
|
|
127
|
+
children: [
|
|
128
|
+
/* @__PURE__ */ b(r, { className: "h-3 w-3" }),
|
|
129
|
+
e.views,
|
|
130
|
+
" views"
|
|
131
|
+
]
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ b("span", { children: e.seller })
|
|
134
|
+
]
|
|
135
|
+
}),
|
|
136
|
+
/* @__PURE__ */ b("div", {
|
|
137
|
+
className: "flex flex-wrap gap-1",
|
|
138
|
+
children: e.tags.slice(0, 3).map((e) => /* @__PURE__ */ b(s, {
|
|
139
|
+
variant: "secondary",
|
|
140
|
+
className: "text-[10px]",
|
|
141
|
+
children: e
|
|
142
|
+
}, e))
|
|
143
|
+
})
|
|
144
|
+
]
|
|
145
|
+
}) })]
|
|
146
|
+
}, e.id);
|
|
147
|
+
})
|
|
148
|
+
})
|
|
149
|
+
]
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
//#endregion
|
|
153
|
+
export { C as MarketplaceMarketplaceListPage };
|
|
154
|
+
|
|
155
|
+
//# sourceMappingURL=MarketplaceMarketplaceListPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceMarketplaceListPage.js","names":[],"sources":["../../../src/assethandler/pages/MarketplaceMarketplaceListPage.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Input,\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@burdenoff/fe-libs/ui';\nimport { Search, ShoppingCart, Eye, Star, Tag } from 'lucide-react';\nimport { useAssetHandlerStore } from '../store/assethandlerStore';\n\nconst conditionColors: Record<string, string> = {\n excellent: 'text-green-700 bg-green-100',\n good: 'text-blue-700 bg-blue-100',\n fair: 'text-yellow-700 bg-yellow-100',\n};\n\nexport function MarketplaceMarketplaceListPage() {\n const { marketplaceListings } = useAssetHandlerStore();\n const [searchQuery, setSearchQuery] = useState('');\n const [categoryFilter, setCategoryFilter] = useState('all');\n\n const filtered = useMemo(\n () =>\n marketplaceListings.filter((l) => {\n const matchSearch =\n searchQuery === '' || l.title.toLowerCase().includes(searchQuery.toLowerCase());\n const matchCat = categoryFilter === 'all' || l.category === categoryFilter;\n return matchSearch && matchCat && l.status === 'active';\n }),\n [marketplaceListings, searchQuery, categoryFilter]\n );\n\n const categories = [...new Set(marketplaceListings.map((l) => l.category))];\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-bold\">Asset Marketplace</h1>\n <p className=\"text-sm text-muted-foreground\">Browse surplus and refurbished IT assets</p>\n </div>\n <Button size=\"sm\">\n <Tag className=\"mr-2 h-4 w-4\" />\n List an Asset\n </Button>\n </div>\n\n <Card>\n <CardContent className=\"pt-4\">\n <div className=\"flex flex-col md:flex-row gap-3\">\n <div className=\"relative flex-1\">\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 marketplace...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(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 </CardContent>\n </Card>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-3\">\n {filtered.map((listing) => {\n const discount = Math.round((1 - listing.price / listing.originalPrice) * 100);\n return (\n <Card key={listing.id} className=\"hover:shadow-md transition-shadow cursor-pointer\">\n <CardHeader className=\"pb-2\">\n <div className=\"flex items-center justify-between\">\n <Badge variant=\"outline\">{listing.category}</Badge>\n <span\n className={`rounded-md px-2 py-0.5 text-xs font-medium ${conditionColors[listing.condition] || 'bg-muted'}`}\n >\n {listing.condition}\n </span>\n </div>\n <CardTitle className=\"text-base mt-2\">{listing.title}</CardTitle>\n <CardDescription className=\"line-clamp-2\">{listing.description}</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"space-y-3\">\n <div className=\"flex items-baseline gap-2\">\n <span className=\"text-2xl font-bold\">${listing.price.toLocaleString()}</span>\n <span className=\"text-sm text-muted-foreground line-through\">\n ${listing.originalPrice.toLocaleString()}\n </span>\n <Badge variant=\"secondary\" className=\"text-xs\">\n -{discount}%\n </Badge>\n </div>\n <div className=\"flex items-center justify-between text-xs text-muted-foreground\">\n <span className=\"flex items-center gap-1\">\n <Star className=\"h-3 w-3 fill-yellow-400 text-yellow-400\" />\n {listing.sellerRating}\n </span>\n <span className=\"flex items-center gap-1\">\n <Eye className=\"h-3 w-3\" />\n {listing.views} views\n </span>\n <span>{listing.seller}</span>\n </div>\n <div className=\"flex flex-wrap gap-1\">\n {listing.tags.slice(0, 3).map((t) => (\n <Badge key={t} variant=\"secondary\" className=\"text-[10px]\">\n {t}\n </Badge>\n ))}\n </div>\n </div>\n </CardContent>\n </Card>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketplaceMarketplaceOrdersPage.d.ts","sourceRoot":"","sources":["../../../src/assethandler/pages/MarketplaceMarketplaceOrdersPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,gCAAgC,4CAyD/C"}
|