@hed-hog/operations 0.0.330 → 0.0.331
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 +5 -5
- package/dist/controllers/operations-collaborators.controller.d.ts +7 -216
- package/dist/controllers/operations-collaborators.controller.d.ts.map +1 -1
- package/dist/controllers/operations-contracts.controller.d.ts +6 -6
- package/dist/controllers/operations-projects.controller.d.ts +25 -0
- package/dist/controllers/operations-projects.controller.d.ts.map +1 -1
- package/dist/controllers/operations-projects.controller.js +48 -0
- package/dist/controllers/operations-projects.controller.js.map +1 -1
- package/dist/controllers/operations-reports.controller.d.ts +1 -1
- package/dist/controllers/operations-tasks.controller.d.ts +34 -9
- package/dist/controllers/operations-tasks.controller.d.ts.map +1 -1
- package/dist/controllers/operations-tasks.controller.js +43 -32
- package/dist/controllers/operations-tasks.controller.js.map +1 -1
- package/dist/controllers/operations-timesheets.controller.d.ts +9 -9
- package/dist/dashboard/components/DashboardLayout.d.ts +30 -0
- package/dist/dashboard/components/DashboardLayout.d.ts.map +1 -0
- package/dist/dashboard/components/DashboardLayout.js +87 -0
- package/dist/dashboard/components/DashboardLayout.js.map +1 -0
- package/dist/dashboard/components/widget-registry.d.ts +23 -0
- package/dist/dashboard/components/widget-registry.d.ts.map +1 -0
- package/dist/dashboard/components/widget-registry.js +245 -0
- package/dist/dashboard/components/widget-registry.js.map +1 -0
- package/dist/dashboard/hooks/useDashboardData.d.ts +20 -0
- package/dist/dashboard/hooks/useDashboardData.d.ts.map +1 -0
- package/dist/dashboard/hooks/useDashboardData.js +24 -0
- package/dist/dashboard/hooks/useDashboardData.js.map +1 -0
- package/dist/dashboard/types/widgets.types.d.ts +233 -0
- package/dist/dashboard/types/widgets.types.d.ts.map +1 -0
- package/dist/dashboard/types/widgets.types.js +6 -0
- package/dist/dashboard/types/widgets.types.js.map +1 -0
- package/dist/dashboard/widgets/CapacityDistribution.d.ts +23 -0
- package/dist/dashboard/widgets/CapacityDistribution.d.ts.map +1 -0
- package/dist/dashboard/widgets/CapacityDistribution.js +11 -0
- package/dist/dashboard/widgets/CapacityDistribution.js.map +1 -0
- package/dist/dashboard/widgets/EffortByProject.d.ts +22 -0
- package/dist/dashboard/widgets/EffortByProject.d.ts.map +1 -0
- package/dist/dashboard/widgets/EffortByProject.js +11 -0
- package/dist/dashboard/widgets/EffortByProject.js.map +1 -0
- package/dist/dashboard/widgets/HeadcountByArea.d.ts +24 -0
- package/dist/dashboard/widgets/HeadcountByArea.d.ts.map +1 -0
- package/dist/dashboard/widgets/HeadcountByArea.js +11 -0
- package/dist/dashboard/widgets/HeadcountByArea.js.map +1 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts +18 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.d.ts.map +1 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.js +12 -0
- package/dist/dashboard/widgets/ManagedProjectsStatus.js.map +1 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts +22 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.js +12 -0
- package/dist/dashboard/widgets/MyHoursPeriodKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts +19 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.js +17 -0
- package/dist/dashboard/widgets/MyOpenRequestsKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.d.ts +23 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.js +14 -0
- package/dist/dashboard/widgets/MyPendingRequestsList.js.map +1 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts +22 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.js +11 -0
- package/dist/dashboard/widgets/MyProjectAllocationsKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyQuickActions.d.ts +23 -0
- package/dist/dashboard/widgets/MyQuickActions.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyQuickActions.js +18 -0
- package/dist/dashboard/widgets/MyQuickActions.js.map +1 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts +23 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.js +22 -0
- package/dist/dashboard/widgets/MyRelevantDeadlines.js.map +1 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts +17 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.js +11 -0
- package/dist/dashboard/widgets/MyTimesheetStatusKpi.js.map +1 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.d.ts +21 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.d.ts.map +1 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.js +19 -0
- package/dist/dashboard/widgets/MyWeeklyJourney.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts +19 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.js +12 -0
- package/dist/dashboard/widgets/PortfolioCostsKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts +18 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.js +8 -0
- package/dist/dashboard/widgets/PortfolioEffortKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts +22 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.js +56 -0
- package/dist/dashboard/widgets/PortfolioProjectsKpi.js.map +1 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts +19 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.js +11 -0
- package/dist/dashboard/widgets/PortfolioRiskKpi.js.map +1 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.d.ts +19 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.d.ts.map +1 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.js +18 -0
- package/dist/dashboard/widgets/ProjectStatusOverview.js.map +1 -0
- package/dist/dashboard/widgets/StrategicDeadlines.d.ts +24 -0
- package/dist/dashboard/widgets/StrategicDeadlines.d.ts.map +1 -0
- package/dist/dashboard/widgets/StrategicDeadlines.js +22 -0
- package/dist/dashboard/widgets/StrategicDeadlines.js.map +1 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.d.ts +24 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.js +12 -0
- package/dist/dashboard/widgets/TeamApprovalQueue.js.map +1 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.d.ts +18 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.js +19 -0
- package/dist/dashboard/widgets/TeamCapacityKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts +22 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.js +56 -0
- package/dist/dashboard/widgets/TeamHeadcountKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamHoursKpi.d.ts +19 -0
- package/dist/dashboard/widgets/TeamHoursKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamHoursKpi.js +13 -0
- package/dist/dashboard/widgets/TeamHoursKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts +20 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js +11 -0
- package/dist/dashboard/widgets/TeamPendingApprovalsKpi.js.map +1 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts +18 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.js +17 -0
- package/dist/dashboard/widgets/TeamUtilizationOverview.js.map +1 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts +24 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.d.ts.map +1 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.js +19 -0
- package/dist/dashboard/widgets/TeamWorkloadAlerts.js.map +1 -0
- package/dist/dashboard/widgets/index.d.ts +24 -0
- package/dist/dashboard/widgets/index.d.ts.map +1 -0
- package/dist/dashboard/widgets/index.js +54 -0
- package/dist/dashboard/widgets/index.js.map +1 -0
- package/dist/dto/create-collaborator.dto.d.ts +0 -1
- package/dist/dto/create-collaborator.dto.d.ts.map +1 -1
- package/dist/dto/create-collaborator.dto.js +0 -6
- package/dist/dto/create-collaborator.dto.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/operations.controller.d.ts +42 -0
- package/dist/operations.controller.d.ts.map +1 -1
- package/dist/operations.service.d.ts +182 -268
- package/dist/operations.service.d.ts.map +1 -1
- package/dist/operations.service.js +2147 -1337
- package/dist/operations.service.js.map +1 -1
- package/dist/operations.service.spec.js +345 -174
- package/dist/operations.service.spec.js.map +1 -1
- package/hedhog/data/dashboard_component.yaml +66 -0
- package/hedhog/data/dashboard_item.yaml +25 -25
- package/hedhog/data/route.yaml +61 -0
- package/hedhog/frontend/app/_components/collaborator-form-screen.tsx.ejs +39 -99
- package/hedhog/frontend/app/_components/collaborator-picker.tsx.ejs +158 -0
- package/hedhog/frontend/app/_components/my-project-summary-screen.tsx.ejs +314 -116
- package/hedhog/frontend/app/_components/project-assignments-tab.tsx.ejs +434 -449
- package/hedhog/frontend/app/_components/project-details-screen.tsx.ejs +289 -412
- package/hedhog/frontend/app/_components/project-file-attachments.tsx.ejs +371 -0
- package/hedhog/frontend/app/_components/project-form-screen.tsx.ejs +426 -374
- package/hedhog/frontend/app/_components/task-detail-sheet.tsx.ejs +803 -581
- package/hedhog/frontend/app/_components/task-file-attachments.tsx.ejs +4 -1
- package/hedhog/frontend/app/_components/task-form-fields.tsx.ejs +406 -0
- package/hedhog/frontend/app/_components/task-form-sheet.tsx.ejs +629 -784
- package/hedhog/frontend/app/_components/task-info-display.tsx.ejs +137 -0
- package/hedhog/frontend/app/_components/timesheet-entry-create-sheet.tsx.ejs +306 -0
- package/hedhog/frontend/app/_lib/api.ts.ejs +480 -476
- package/hedhog/frontend/app/_lib/types.ts.ejs +66 -5
- package/hedhog/frontend/app/_lib/utils/format.ts.ejs +0 -2
- package/hedhog/frontend/app/_lib/utils/task-ui.ts.ejs +43 -0
- package/hedhog/frontend/app/approvals/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/collaborator-types/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/collaborators/page.tsx.ejs +59 -8
- package/hedhog/frontend/app/contracts/page.tsx.ejs +29 -8
- package/hedhog/frontend/app/dashboard/widgets/CapacityDistribution.tsx.ejs +84 -0
- package/hedhog/frontend/app/dashboard/widgets/EffortByProject.tsx.ejs +85 -0
- package/hedhog/frontend/app/dashboard/widgets/HeadcountByArea.tsx.ejs +101 -0
- package/hedhog/frontend/app/dashboard/widgets/ManagedProjectsStatus.tsx.ejs +113 -0
- package/hedhog/frontend/app/dashboard/widgets/MyHoursPeriodKpi.tsx.ejs +87 -0
- package/hedhog/frontend/app/dashboard/widgets/MyOpenRequestsKpi.tsx.ejs +97 -0
- package/hedhog/frontend/app/dashboard/widgets/MyPendingRequestsList.tsx.ejs +99 -0
- package/hedhog/frontend/app/dashboard/widgets/MyProjectAllocationsKpi.tsx.ejs +78 -0
- package/hedhog/frontend/app/dashboard/widgets/MyQuickActions.tsx.ejs +130 -0
- package/hedhog/frontend/app/dashboard/widgets/MyRelevantDeadlines.tsx.ejs +144 -0
- package/hedhog/frontend/app/dashboard/widgets/MyTimesheetStatusKpi.tsx.ejs +78 -0
- package/hedhog/frontend/app/dashboard/widgets/MyWeeklyJourney.tsx.ejs +99 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioCostsKpi.tsx.ejs +112 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioEffortKpi.tsx.ejs +93 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioProjectsKpi.tsx.ejs +96 -0
- package/hedhog/frontend/app/dashboard/widgets/PortfolioRiskKpi.tsx.ejs +115 -0
- package/hedhog/frontend/app/dashboard/widgets/ProjectStatusOverview.tsx.ejs +120 -0
- package/hedhog/frontend/app/dashboard/widgets/StrategicDeadlines.tsx.ejs +146 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamApprovalQueue.tsx.ejs +108 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamCapacityKpi.tsx.ejs +97 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamHeadcountKpi.tsx.ejs +100 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamHoursKpi.tsx.ejs +104 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamPendingApprovalsKpi.tsx.ejs +110 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamUtilizationOverview.tsx.ejs +115 -0
- package/hedhog/frontend/app/dashboard/widgets/TeamWorkloadAlerts.tsx.ejs +117 -0
- package/hedhog/frontend/app/dashboard/widgets/index.ts.ejs +26 -0
- package/hedhog/frontend/app/departments/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/my-projects/page.tsx.ejs +14 -10
- package/hedhog/frontend/app/my-tasks/page.tsx.ejs +328 -105
- package/hedhog/frontend/app/project-cost-categories/page.tsx.ejs +58 -52
- package/hedhog/frontend/app/project-cost-types/page.tsx.ejs +58 -51
- package/hedhog/frontend/app/projects/page.tsx.ejs +376 -30
- package/hedhog/frontend/app/schedule-adjustments/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/time-off/page.tsx.ejs +6 -1
- package/hedhog/frontend/app/timesheets/page.tsx.ejs +10 -4
- package/hedhog/frontend/messages/en.json +238 -46
- package/hedhog/frontend/messages/operations/en.json +61 -52
- package/hedhog/frontend/messages/operations/pt.json +59 -43
- package/hedhog/frontend/messages/pt.json +238 -46
- package/hedhog/frontend/widgets/capacity-distribution.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/effort-by-project.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/headcount-by-area.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/index.ts.ejs +25 -0
- package/hedhog/frontend/widgets/managed-projects-status.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-hours-period-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-open-requests-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-pending-requests-list.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-project-allocations-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-quick-actions.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-relevant-deadlines.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-timesheet-status-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/my-weekly-journey.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-costs-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-effort-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-projects-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/portfolio-risk-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/project-status-overview.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/shared-operations-widget.tsx.ejs +170 -0
- package/hedhog/frontend/widgets/strategic-deadlines.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-approval-queue.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-capacity-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-headcount-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-hours-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-pending-approvals-kpi.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-utilization-overview.tsx.ejs +17 -0
- package/hedhog/frontend/widgets/team-workload-alerts.tsx.ejs +17 -0
- package/hedhog/table/operations_collaborator.yaml +8 -13
- package/hedhog/table/operations_project.yaml +1 -1
- package/hedhog/table/operations_project_file.yaml +23 -0
- package/hedhog/table/operations_task.yaml +76 -69
- package/hedhog/table/operations_task_activity.yaml +51 -0
- package/package.json +6 -5
- package/src/controllers/operations-projects.controller.ts +41 -8
- package/src/controllers/operations-tasks.controller.ts +156 -166
- package/src/dashboard/README.md +214 -0
- package/src/dashboard/components/DashboardLayout.tsx +131 -0
- package/src/dashboard/components/widget-registry.ts +255 -0
- package/src/dashboard/hooks/useDashboardData.ts +29 -0
- package/src/dashboard/types/widgets.types.ts +237 -0
- package/src/dashboard/widgets/CapacityDistribution.tsx +56 -0
- package/src/dashboard/widgets/EffortByProject.tsx +51 -0
- package/src/dashboard/widgets/HeadcountByArea.tsx +57 -0
- package/src/dashboard/widgets/ManagedProjectsStatus.tsx +53 -0
- package/src/dashboard/widgets/MyHoursPeriodKpi.tsx +87 -0
- package/src/dashboard/widgets/MyOpenRequestsKpi.tsx +51 -0
- package/src/dashboard/widgets/MyPendingRequestsList.tsx +63 -0
- package/src/dashboard/widgets/MyProjectAllocationsKpi.tsx +57 -0
- package/src/dashboard/widgets/MyQuickActions.tsx +62 -0
- package/src/dashboard/widgets/MyRelevantDeadlines.tsx +84 -0
- package/src/dashboard/widgets/MyTimesheetStatusKpi.tsx +65 -0
- package/src/dashboard/widgets/MyWeeklyJourney.tsx +57 -0
- package/src/dashboard/widgets/PortfolioCostsKpi.tsx +48 -0
- package/src/dashboard/widgets/PortfolioEffortKpi.tsx +41 -0
- package/src/dashboard/widgets/PortfolioRiskKpi.tsx +50 -0
- package/src/dashboard/widgets/ProjectStatusOverview.tsx +52 -0
- package/src/dashboard/widgets/StrategicDeadlines.tsx +93 -0
- package/src/dashboard/widgets/TeamApprovalQueue.tsx +70 -0
- package/src/dashboard/widgets/TeamCapacityKpi.tsx +50 -0
- package/src/dashboard/widgets/TeamHoursKpi.tsx +51 -0
- package/src/dashboard/widgets/TeamPendingApprovalsKpi.tsx +53 -0
- package/src/dashboard/widgets/TeamUtilizationOverview.tsx +62 -0
- package/src/dashboard/widgets/TeamWorkloadAlerts.tsx +81 -0
- package/src/dashboard/widgets/index.ts +26 -0
- package/src/dto/create-collaborator.dto.ts +4 -11
- package/src/index.ts +3 -0
- package/src/operations.service.spec.ts +988 -764
- package/src/operations.service.ts +4277 -2535
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface Request {
|
|
3
|
+
id: string;
|
|
4
|
+
type: string;
|
|
5
|
+
description: string;
|
|
6
|
+
submittedDate: string;
|
|
7
|
+
daysWaiting: number;
|
|
8
|
+
assignee?: string;
|
|
9
|
+
}
|
|
10
|
+
interface MyPendingRequestsListProps {
|
|
11
|
+
slug: string;
|
|
12
|
+
title: string;
|
|
13
|
+
roleSlug: string;
|
|
14
|
+
width?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
data?: {
|
|
17
|
+
requests: Request[];
|
|
18
|
+
};
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
declare const MyPendingRequestsList: React.FC<MyPendingRequestsListProps>;
|
|
22
|
+
export default MyPendingRequestsList;
|
|
23
|
+
//# sourceMappingURL=MyPendingRequestsList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyPendingRequestsList.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyPendingRequestsList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,0BAA0B;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAoC/D,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const MyPendingRequestsList = ({ title, data = { requests: [] }, style, }) => {
|
|
7
|
+
const getTypeIcon = (type) => {
|
|
8
|
+
const icons = { vacation: '🏖️', schedule: '📅', expense: '💰', adjustment: '🔧' };
|
|
9
|
+
return icons[type] || '📋';
|
|
10
|
+
};
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-violet-50 rounded-lg shadow-sm p-4 border border-violet-100", style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), (0, jsx_runtime_1.jsx)("span", { className: "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-violet-100 text-violet-800", children: data.requests.length })] }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-2 max-h-72 overflow-y-auto", children: data.requests.length === 0 ? ((0, jsx_runtime_1.jsxs)("div", { className: "text-center py-8", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { className: "w-8 h-8 text-gray-300 mx-auto mb-2" }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-600", children: "Nenhuma solicita\u00E7\u00E3o pendente" })] })) : (data.requests.map((request) => ((0, jsx_runtime_1.jsxs)("div", { className: `rounded-lg p-3 border transition-all ${request.daysWaiting > 14 ? 'bg-red-50 border-red-200' : request.daysWaiting > 7 ? 'bg-yellow-50 border-yellow-200' : 'bg-blue-50 border-blue-200'}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-start gap-2 mb-2", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-lg", children: getTypeIcon(request.type) }), (0, jsx_runtime_1.jsx)("div", { className: "flex-1", children: (0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-gray-900", children: request.description }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-2 text-xs", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 text-gray-700", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-3 h-3" }), (0, jsx_runtime_1.jsx)("span", { children: request.daysWaiting === 0 ? 'Hoje' : request.daysWaiting === 1 ? 'Ontem' : `${request.daysWaiting}d atrás` })] }), request.assignee && (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 text-gray-700", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.User, { className: "w-3 h-3" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate", children: request.assignee })] })] })] }, request.id)))) })] }));
|
|
12
|
+
};
|
|
13
|
+
exports.default = MyPendingRequestsList;
|
|
14
|
+
//# sourceMappingURL=MyPendingRequestsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyPendingRequestsList.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyPendingRequestsList.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAAqD;AAqBrD,MAAM,qBAAqB,GAAyC,CAAC,EACnE,KAAK,EACL,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EACvB,KAAK,GACN,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;QACnC,MAAM,KAAK,GAA2B,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC3G,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC7B,CAAC,CAAC;IAEF,OAAO,CACL,iCAAK,SAAS,EAAC,2FAA2F,EAAC,KAAK,EAAE,KAAK,aACrH,iCAAK,SAAS,EAAC,wCAAwC,aACrD,+BAAI,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAM,EAC9D,iCAAM,SAAS,EAAC,uGAAuG,YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAQ,IACjJ,EACN,gCAAK,SAAS,EAAC,oCAAoC,YAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC5B,iCAAK,SAAS,EAAC,kBAAkB,aAAC,uBAAC,uBAAQ,IAAC,SAAS,EAAC,oCAAoC,GAAG,EAAA,8BAAG,SAAS,EAAC,uBAAuB,uDAAiC,IAAM,CACzK,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAC7B,iCAAsB,SAAS,EAAE,wCAAwC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,4BAA4B,EAAE,aAC1N,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,iCAAM,SAAS,EAAC,SAAS,YAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAQ,EAC5D,gCAAK,SAAS,EAAC,QAAQ,YAAC,8BAAG,SAAS,EAAC,mCAAmC,YAAE,OAAO,CAAC,WAAW,GAAK,GAAM,IACpG,EACN,iCAAK,SAAS,EAAC,gCAAgC,aAC7C,iCAAK,SAAS,EAAC,uCAAuC,aAAC,uBAAC,oBAAK,IAAC,SAAS,EAAC,SAAS,GAAG,EAAA,2CAAO,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,WAAW,SAAS,GAAQ,IAAM,EAClN,OAAO,CAAC,QAAQ,IAAI,iCAAK,SAAS,EAAC,uCAAuC,aAAC,uBAAC,mBAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAAA,iCAAM,SAAS,EAAC,UAAU,YAAE,OAAO,CAAC,QAAQ,GAAQ,IAAM,IAC9J,KARE,OAAO,CAAC,EAAE,CASd,CACP,CAAC,CACH,GACG,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MyProjectAllocationsKpiProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
activeAllocations: number;
|
|
10
|
+
totalCapacity: number;
|
|
11
|
+
usedCapacity: number;
|
|
12
|
+
projects: Array<{
|
|
13
|
+
name: string;
|
|
14
|
+
allocation: number;
|
|
15
|
+
color: string;
|
|
16
|
+
}>;
|
|
17
|
+
};
|
|
18
|
+
style?: React.CSSProperties;
|
|
19
|
+
}
|
|
20
|
+
declare const MyProjectAllocationsKpi: React.FC<MyProjectAllocationsKpiProps>;
|
|
21
|
+
export default MyProjectAllocationsKpi;
|
|
22
|
+
//# sourceMappingURL=MyProjectAllocationsKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyProjectAllocationsKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyProjectAllocationsKpi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,4BAA4B;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACtE,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAkCnE,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const MyProjectAllocationsKpi = ({ title, data = { activeAllocations: 0, totalCapacity: 100, usedCapacity: 0, projects: [] }, style, }) => {
|
|
7
|
+
const capacityPercent = Math.round((data.usedCapacity / data.totalCapacity) * 100);
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-indigo-50 rounded-lg shadow-sm p-4 border border-indigo-100", style: style, children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700 mb-4", children: title }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3 bg-indigo-50 rounded-lg p-3 mb-3", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Briefcase, { className: "w-5 h-5 text-indigo-600" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-gray-600", children: "Projetos ativos" }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-indigo-600", children: data.activeAllocations })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-gray-700", children: "Capacidade" }), (0, jsx_runtime_1.jsxs)("span", { className: `text-xs font-bold px-2 py-1 rounded-full ${capacityPercent > 85 ? 'bg-red-100 text-red-700' : capacityPercent > 70 ? 'bg-yellow-100 text-yellow-700' : 'bg-green-100 text-green-700'}`, children: [capacityPercent, "%"] })] }), (0, jsx_runtime_1.jsx)("div", { className: "relative w-full h-3 bg-gray-200 rounded-full overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: "h-full bg-linear-to-r from-indigo-400 to-indigo-600 transition-all", style: { width: `${Math.min(capacityPercent, 100)}%` } }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-xs text-gray-600", children: [(0, jsx_runtime_1.jsxs)("span", { children: [data.usedCapacity, "h usado"] }), (0, jsx_runtime_1.jsxs)("span", { children: [data.totalCapacity, "h total"] })] })] })] }));
|
|
9
|
+
};
|
|
10
|
+
exports.default = MyProjectAllocationsKpi;
|
|
11
|
+
//# sourceMappingURL=MyProjectAllocationsKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyProjectAllocationsKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyProjectAllocationsKpi.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAAqD;AAiBrD,MAAM,uBAAuB,GAA2C,CAAC,EACvE,KAAK,EACL,IAAI,GAAG,EAAE,iBAAiB,EAAE,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAClF,KAAK,GACN,EAAE,EAAE;IACH,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC;IAEnF,OAAO,CACL,iCAAK,SAAS,EAAC,2FAA2F,EAAC,KAAK,EAAE,KAAK,aACrH,+BAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EACnE,iCAAK,SAAS,EAAC,0DAA0D,aACvE,uBAAC,wBAAS,IAAC,SAAS,EAAC,yBAAyB,GAAG,EACjD,4CACE,gCAAK,SAAS,EAAC,uBAAuB,gCAAsB,EAC5D,gCAAK,SAAS,EAAC,oCAAoC,YAAE,IAAI,CAAC,iBAAiB,GAAO,IAC9E,IACF,EACN,iCAAK,SAAS,EAAC,WAAW,aACxB,iCAAK,SAAS,EAAC,mCAAmC,aAChD,iCAAM,SAAS,EAAC,mCAAmC,2BAAkB,EACrE,kCAAM,SAAS,EAAE,4CAA4C,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,6BAA6B,EAAE,aACrM,eAAe,SACX,IACH,EACN,gCAAK,SAAS,EAAC,8DAA8D,YAC3E,gCAAK,SAAS,EAAC,oEAAoE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,EAAE,GAAI,GAC1I,EACN,iCAAK,SAAS,EAAC,4CAA4C,aACzD,6CAAO,IAAI,CAAC,YAAY,eAAe,EACvC,6CAAO,IAAI,CAAC,aAAa,eAAe,IACpC,IACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface QuickAction {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
icon: React.ReactNode;
|
|
6
|
+
color: string;
|
|
7
|
+
bgColor: string;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
}
|
|
10
|
+
interface MyQuickActionsProps {
|
|
11
|
+
slug: string;
|
|
12
|
+
title: string;
|
|
13
|
+
roleSlug: string;
|
|
14
|
+
width?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
data?: {
|
|
17
|
+
actions?: QuickAction[];
|
|
18
|
+
};
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
declare const MyQuickActions: React.FC<MyQuickActionsProps>;
|
|
22
|
+
export default MyQuickActions;
|
|
23
|
+
//# sourceMappingURL=MyQuickActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyQuickActions.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyQuickActions.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,WAAW,EAAE,CAAA;KAAE,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AASD,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA4BjD,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const defaultActions = [
|
|
7
|
+
{ id: 'timesheet', label: 'Registrar Timesheet', icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-5 h-5" }), color: 'text-blue-600', bgColor: 'bg-blue-50 hover:bg-blue-100 border-blue-200' },
|
|
8
|
+
{ id: 'request', label: 'Nova Solicitação', icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Plus, { className: "w-5 h-5" }), color: 'text-green-600', bgColor: 'bg-green-50 hover:bg-green-100 border-green-200' },
|
|
9
|
+
{ id: 'vacation', label: 'Solicitar Férias', icon: (0, jsx_runtime_1.jsx)(lucide_react_1.Send, { className: "w-5 h-5" }), color: 'text-purple-600', bgColor: 'bg-purple-50 hover:bg-purple-100 border-purple-200' },
|
|
10
|
+
{ id: 'expense', label: 'Lançar Despesa', icon: (0, jsx_runtime_1.jsx)(lucide_react_1.FileText, { className: "w-5 h-5" }), color: 'text-orange-600', bgColor: 'bg-orange-50 hover:bg-orange-100 border-orange-200' },
|
|
11
|
+
];
|
|
12
|
+
const MyQuickActions = ({ title, data, style, }) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const actions = (_a = data === null || data === void 0 ? void 0 : data.actions) !== null && _a !== void 0 ? _a : defaultActions;
|
|
15
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-emerald-50 rounded-lg shadow-sm p-4 border border-emerald-100", style: style, children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700 mb-4", children: title }), (0, jsx_runtime_1.jsx)("div", { className: "grid grid-cols-2 gap-2", children: actions.map((action) => ((0, jsx_runtime_1.jsxs)("button", { onClick: action.onClick, className: `${action.bgColor} border rounded-lg p-3 transition-all transform hover:scale-105 hover:shadow-md active:scale-95`, children: [(0, jsx_runtime_1.jsx)("div", { className: `${action.color} mb-2 transition-transform hover:scale-110`, children: action.icon }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs font-medium text-gray-900 text-left", children: action.label })] }, action.id))) }), (0, jsx_runtime_1.jsxs)("div", { className: "mt-4 pt-4 border-t border-emerald-100", children: [(0, jsx_runtime_1.jsx)("p", { className: "text-xs text-gray-600 mb-2", children: "\uD83D\uDCA1 Dicas \u00FAteis:" }), (0, jsx_runtime_1.jsxs)("ul", { className: "text-xs space-y-1 text-gray-700", children: [(0, jsx_runtime_1.jsx)("li", { children: "\u2713 Complete seu timesheet toda semana" }), (0, jsx_runtime_1.jsx)("li", { children: "\u2713 Solicite f\u00E9rias com anteced\u00EAncia" }), (0, jsx_runtime_1.jsx)("li", { children: "\u2713 Registre despesas no prazo" })] })] })] }));
|
|
16
|
+
};
|
|
17
|
+
exports.default = MyQuickActions;
|
|
18
|
+
//# sourceMappingURL=MyQuickActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyQuickActions.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyQuickActions.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAA2D;AAqB3D,MAAM,cAAc,GAAkB;IACpC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,uBAAC,oBAAK,IAAC,SAAS,EAAC,SAAS,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,8CAA8C,EAAE;IACvK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAC,mBAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,iDAAiD,EAAE;IACrK,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,uBAAC,mBAAI,IAAC,SAAS,EAAC,SAAS,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,oDAAoD,EAAE;IAC1K,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAC,uBAAQ,IAAC,SAAS,EAAC,SAAS,GAAG,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,oDAAoD,EAAE;CAC5K,CAAC;AAEF,MAAM,cAAc,GAAkC,CAAC,EACrD,KAAK,EACL,IAAI,EACJ,KAAK,GACN,EAAE,EAAE;;IACH,MAAM,OAAO,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,mCAAI,cAAc,CAAC;IAEhD,OAAO,CACL,iCAAK,SAAS,EAAC,6FAA6F,EAAC,KAAK,EAAE,KAAK,aACvH,+BAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EACnE,gCAAK,SAAS,EAAC,wBAAwB,YACpC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,oCAAwB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,OAAO,iGAAiG,aAC5K,gCAAK,SAAS,EAAE,GAAG,MAAM,CAAC,KAAK,4CAA4C,YAAG,MAAM,CAAC,IAAI,GAAO,EAChG,8BAAG,SAAS,EAAC,6CAA6C,YAAE,MAAM,CAAC,KAAK,GAAK,KAFlE,MAAM,CAAC,EAAE,CAGb,CACV,CAAC,GACE,EACN,iCAAK,SAAS,EAAC,uCAAuC,aACpD,8BAAG,SAAS,EAAC,4BAA4B,+CAAoB,EAC7D,gCAAI,SAAS,EAAC,iCAAiC,aAC7C,uFAA6C,EAC7C,+FAA2C,EAC3C,+EAAqC,IAClC,IACD,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface Deadline {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
dueDate: string;
|
|
6
|
+
daysLeft: number;
|
|
7
|
+
priority: 'high' | 'medium' | 'low';
|
|
8
|
+
status: 'on-track' | 'at-risk' | 'critical';
|
|
9
|
+
}
|
|
10
|
+
interface MyRelevantDeadlinesProps {
|
|
11
|
+
slug: string;
|
|
12
|
+
title: string;
|
|
13
|
+
roleSlug: string;
|
|
14
|
+
width?: number;
|
|
15
|
+
height?: number;
|
|
16
|
+
data?: {
|
|
17
|
+
deadlines: Deadline[];
|
|
18
|
+
};
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
declare const MyRelevantDeadlines: React.FC<MyRelevantDeadlinesProps>;
|
|
22
|
+
export default MyRelevantDeadlines;
|
|
23
|
+
//# sourceMappingURL=MyRelevantDeadlines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyRelevantDeadlines.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyRelevantDeadlines.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,QAAQ;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;CAC7C;AAED,UAAU,wBAAwB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAyD3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const MyRelevantDeadlines = ({ title, data = { deadlines: [] }, style, }) => {
|
|
7
|
+
const criticalCount = data.deadlines.filter(d => d.status === 'critical').length;
|
|
8
|
+
const atRiskCount = data.deadlines.filter(d => d.status === 'at-risk').length;
|
|
9
|
+
const getStatusColor = (status) => {
|
|
10
|
+
switch (status) {
|
|
11
|
+
case 'critical': return { bg: 'bg-red-50', border: 'border-red-300', dot: 'bg-red-500 animate-pulse', text: 'text-red-700' };
|
|
12
|
+
case 'at-risk': return { bg: 'bg-yellow-50', border: 'border-yellow-300', dot: 'bg-yellow-500', text: 'text-yellow-700' };
|
|
13
|
+
default: return { bg: 'bg-green-50', border: 'border-green-300', dot: 'bg-green-500', text: 'text-green-700' };
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-red-50 rounded-lg shadow-sm p-4 border border-red-100", style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), (criticalCount > 0 || atRiskCount > 0) && (0, jsx_runtime_1.jsx)(lucide_react_1.AlertCircle, { className: "w-4 h-4 text-red-600 animate-pulse" })] }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-3", children: data.deadlines.length === 0 ? ((0, jsx_runtime_1.jsxs)("div", { className: "text-center py-8", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { className: "w-8 h-8 text-green-500 mx-auto mb-2" }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-600", children: "Nenhum prazo cr\u00EDtico" })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(criticalCount > 0 || atRiskCount > 0) && ((0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-2 mb-3", children: [criticalCount > 0 && (0, jsx_runtime_1.jsx)("div", { className: "bg-red-100 rounded-lg p-2 border border-red-300", children: (0, jsx_runtime_1.jsxs)("div", { className: "text-xs text-red-700 font-semibold", children: [criticalCount, " cr\u00EDtico", criticalCount !== 1 ? 's' : ''] }) }), atRiskCount > 0 && (0, jsx_runtime_1.jsx)("div", { className: "bg-yellow-100 rounded-lg p-2 border border-yellow-300", children: (0, jsx_runtime_1.jsxs)("div", { className: "text-xs text-yellow-700 font-semibold", children: [atRiskCount, " em risco"] }) })] })), (0, jsx_runtime_1.jsx)("div", { className: "space-y-2 max-h-64 overflow-y-auto", children: data.deadlines.slice(0, 5).map((deadline) => {
|
|
17
|
+
const colors = getStatusColor(deadline.status);
|
|
18
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `${colors.bg} rounded-lg p-3 border ${colors.border} hover:shadow-sm transition-all`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-start gap-2 mb-2", children: [(0, jsx_runtime_1.jsx)("div", { className: `w-3 h-3 rounded-full ${colors.dot} mt-1` }), (0, jsx_runtime_1.jsx)("div", { className: "flex-1", children: (0, jsx_runtime_1.jsx)("p", { className: "text-sm font-medium text-gray-900 truncate", children: deadline.title }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between text-xs", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1 text-gray-700", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-3 h-3" }), (0, jsx_runtime_1.jsx)("span", { children: deadline.dueDate })] }), (0, jsx_runtime_1.jsx)("span", { className: `font-semibold ${deadline.daysLeft <= 0 ? 'text-red-600' : deadline.daysLeft <= 3 ? 'text-orange-600' : 'text-gray-600'}`, children: deadline.daysLeft <= 0 ? 'Vencido' : `${deadline.daysLeft}d` })] })] }, deadline.id));
|
|
19
|
+
}) })] })) })] }));
|
|
20
|
+
};
|
|
21
|
+
exports.default = MyRelevantDeadlines;
|
|
22
|
+
//# sourceMappingURL=MyRelevantDeadlines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyRelevantDeadlines.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyRelevantDeadlines.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MyTimesheetStatusKpiProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
pendingCount: number;
|
|
10
|
+
approvedCount: number;
|
|
11
|
+
rejectedCount: number;
|
|
12
|
+
};
|
|
13
|
+
style?: React.CSSProperties;
|
|
14
|
+
}
|
|
15
|
+
declare const MyTimesheetStatusKpi: React.FC<MyTimesheetStatusKpiProps>;
|
|
16
|
+
export default MyTimesheetStatusKpi;
|
|
17
|
+
//# sourceMappingURL=MyTimesheetStatusKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyTimesheetStatusKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyTimesheetStatusKpi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9E,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA+C7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const MyTimesheetStatusKpi = ({ title, data = { pendingCount: 0, approvedCount: 0, rejectedCount: 0 }, style, }) => {
|
|
7
|
+
const total = data.pendingCount + data.approvedCount + data.rejectedCount;
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-blue-50 rounded-lg shadow-sm p-4 border border-blue-100 hover:shadow-md transition-shadow", style: style, children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700 mb-4", children: title }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-3 gap-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-yellow-50 rounded-lg p-3 border border-yellow-200", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-4 h-4 text-yellow-600" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-yellow-700", children: "Pendente" })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-yellow-600", children: data.pendingCount })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-green-50 rounded-lg p-3 border border-green-200", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.CheckCircle2, { className: "w-4 h-4 text-green-600" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-green-700", children: "Aprovado" })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-green-600", children: data.approvedCount })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-red-50 rounded-lg p-3 border border-red-200", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 mb-2", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.AlertCircle, { className: "w-4 h-4 text-red-600" }), (0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-red-700", children: "Rejeitado" })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-2xl font-bold text-red-600", children: data.rejectedCount })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "pt-2 border-t border-blue-100 mt-3 space-y-2 text-xs", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-gray-600", children: "Total:" }), (0, jsx_runtime_1.jsx)("span", { className: "font-semibold text-gray-900", children: total })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-gray-600", children: "Taxa aprova\u00E7\u00E3o:" }), (0, jsx_runtime_1.jsxs)("span", { className: `font-semibold ${total > 0 && data.approvedCount / total > 0.8 ? 'text-green-600' : 'text-yellow-600'}`, children: [total > 0 ? Math.round((data.approvedCount / total) * 100) : 0, "%"] })] })] })] }));
|
|
9
|
+
};
|
|
10
|
+
exports.default = MyTimesheetStatusKpi;
|
|
11
|
+
//# sourceMappingURL=MyTimesheetStatusKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyTimesheetStatusKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyTimesheetStatusKpi.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAAgE;AAYhE,MAAM,oBAAoB,GAAwC,CAAC,EACjE,KAAK,EACL,IAAI,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,EAC9D,KAAK,GACN,EAAE,EAAE;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;IAE1E,OAAO,CACL,iCAAK,SAAS,EAAC,yHAAyH,EAAC,KAAK,EAAE,KAAK,aACnJ,+BAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EACnE,iCAAK,SAAS,EAAC,wBAAwB,aACrC,iCAAK,SAAS,EAAC,sDAAsD,aACnE,iCAAK,SAAS,EAAC,8BAA8B,aAC3C,uBAAC,oBAAK,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC7C,iCAAM,SAAS,EAAC,qCAAqC,yBAAgB,IACjE,EACN,gCAAK,SAAS,EAAC,oCAAoC,YAAE,IAAI,CAAC,YAAY,GAAO,IACzE,EACN,iCAAK,SAAS,EAAC,oDAAoD,aACjE,iCAAK,SAAS,EAAC,8BAA8B,aAC3C,uBAAC,2BAAY,IAAC,SAAS,EAAC,wBAAwB,GAAG,EACnD,iCAAM,SAAS,EAAC,oCAAoC,yBAAgB,IAChE,EACN,gCAAK,SAAS,EAAC,mCAAmC,YAAE,IAAI,CAAC,aAAa,GAAO,IACzE,EACN,iCAAK,SAAS,EAAC,gDAAgD,aAC7D,iCAAK,SAAS,EAAC,8BAA8B,aAC3C,uBAAC,0BAAW,IAAC,SAAS,EAAC,sBAAsB,GAAG,EAChD,iCAAM,SAAS,EAAC,kCAAkC,0BAAiB,IAC/D,EACN,gCAAK,SAAS,EAAC,iCAAiC,YAAE,IAAI,CAAC,aAAa,GAAO,IACvE,IACF,EACN,iCAAK,SAAS,EAAC,sDAAsD,aACnE,iCAAK,SAAS,EAAC,sBAAsB,aACnC,iCAAM,SAAS,EAAC,eAAe,uBAAc,EAC7C,iCAAM,SAAS,EAAC,6BAA6B,YAAE,KAAK,GAAQ,IACxD,EACN,iCAAK,SAAS,EAAC,sBAAsB,aACnC,iCAAM,SAAS,EAAC,eAAe,0CAAuB,EACtD,kCAAM,SAAS,EAAE,iBAAiB,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,aAAa,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,EAAE,aACrH,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAC1D,IACH,IACF,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface MyWeeklyJourneyProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
weekDays: Array<{
|
|
10
|
+
day: string;
|
|
11
|
+
hours: number;
|
|
12
|
+
status: 'completed' | 'pending' | 'off';
|
|
13
|
+
}>;
|
|
14
|
+
weekProgress: number;
|
|
15
|
+
targetHours: number;
|
|
16
|
+
};
|
|
17
|
+
style?: React.CSSProperties;
|
|
18
|
+
}
|
|
19
|
+
declare const MyWeeklyJourney: React.FC<MyWeeklyJourneyProps>;
|
|
20
|
+
export default MyWeeklyJourney;
|
|
21
|
+
//# sourceMappingURL=MyWeeklyJourney.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyWeeklyJourney.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyWeeklyJourney.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,KAAK,CAAA;SAAE,CAAC,CAAC;QACzF,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAmCnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const MyWeeklyJourney = ({ title, data = { weekDays: [], weekProgress: 60, targetHours: 40 }, style, }) => {
|
|
7
|
+
const totalHours = data.weekDays.reduce((sum, day) => sum + day.hours, 0);
|
|
8
|
+
const progressPercent = Math.min(Math.round((totalHours / data.targetHours) * 100), 100);
|
|
9
|
+
const getStatusColor = (status) => {
|
|
10
|
+
switch (status) {
|
|
11
|
+
case 'completed': return 'bg-gradient-to-t from-green-500 to-green-400';
|
|
12
|
+
case 'pending': return 'bg-gradient-to-t from-gray-300 to-gray-200';
|
|
13
|
+
default: return 'bg-gradient-to-t from-gray-100 to-gray-50';
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-cyan-50 rounded-lg shadow-sm p-4 border border-cyan-100", style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), (0, jsx_runtime_1.jsx)(lucide_react_1.Calendar, { className: "w-4 h-4 text-cyan-600" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2 mb-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-gray-700", children: "Progresso da Semana" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-xs font-bold text-cyan-600", children: [progressPercent, "%"] })] }), (0, jsx_runtime_1.jsx)("div", { className: "relative w-full h-4 bg-gray-200 rounded-full overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: "h-full bg-linear-to-r from-cyan-400 to-cyan-600 rounded-full transition-all", style: { width: `${progressPercent}%` } }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-xs text-gray-600", children: [(0, jsx_runtime_1.jsxs)("span", { children: [totalHours, "h registradas"] }), (0, jsx_runtime_1.jsxs)("span", { children: [data.targetHours, "h meta"] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs font-medium text-gray-700 mb-2", children: "Horas por dia" }), (0, jsx_runtime_1.jsx)("div", { className: "flex items-end justify-between gap-1 h-24 bg-gradient-to-b from-cyan-50 to-white rounded-lg p-3 border border-cyan-100", children: data.weekDays.map((day, idx) => ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center flex-1 gap-1", children: [(0, jsx_runtime_1.jsx)("div", { className: `w-full rounded-t transition-all ${getStatusColor(day.status)}`, style: { height: day.status === 'off' ? '8px' : `${Math.max((day.hours / 10) * 100, 8)}%`, minHeight: day.status === 'off' ? '8px' : '12px' } }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs font-semibold text-gray-700", children: day.day })] }, idx))) })] }));
|
|
17
|
+
};
|
|
18
|
+
exports.default = MyWeeklyJourney;
|
|
19
|
+
//# sourceMappingURL=MyWeeklyJourney.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MyWeeklyJourney.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/MyWeeklyJourney.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAAwC;AAgBxC,MAAM,eAAe,GAAmC,CAAC,EACvD,KAAK,EACL,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAC1D,KAAK,GACN,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAEzF,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;QACxC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,WAAW,CAAC,CAAC,OAAO,8CAA8C,CAAC;YACxE,KAAK,SAAS,CAAC,CAAC,OAAO,4CAA4C,CAAC;YACpE,OAAO,CAAC,CAAC,OAAO,2CAA2C,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,iCAAK,SAAS,EAAC,uFAAuF,EAAC,KAAK,EAAE,KAAK,aACjH,iCAAK,SAAS,EAAC,wCAAwC,aAAC,+BAAI,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAM,EAAA,uBAAC,uBAAQ,IAAC,SAAS,EAAC,uBAAuB,GAAG,IAAM,EAC1K,iCAAK,SAAS,EAAC,gBAAgB,aAC7B,iCAAK,SAAS,EAAC,mCAAmC,aAAC,iCAAM,SAAS,EAAC,mCAAmC,oCAA2B,EAAA,kCAAM,SAAS,EAAC,iCAAiC,aAAE,eAAe,SAAS,IAAM,EAClN,gCAAK,SAAS,EAAC,8DAA8D,YAAC,gCAAK,SAAS,EAAC,6EAA6E,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,eAAe,GAAG,EAAE,GAAI,GAAM,EAC5N,iCAAK,SAAS,EAAC,4CAA4C,aAAC,6CAAO,UAAU,qBAAqB,EAAA,6CAAO,IAAI,CAAC,WAAW,cAAc,IAAM,IACzI,EACN,gCAAK,SAAS,EAAC,wCAAwC,8BAAoB,EAC3E,gCAAK,SAAS,EAAC,wHAAwH,YACpI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAC/B,iCAAe,SAAS,EAAC,yCAAyC,aAChE,gCAAK,SAAS,EAAE,mCAAmC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,GAAI,EAClO,gCAAK,SAAS,EAAC,qCAAqC,YAAE,GAAG,CAAC,GAAG,GAAO,KAF5D,GAAG,CAGP,CACP,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PortfolioCostsKpiProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
totalCosts: number;
|
|
10
|
+
budgetAmount: number;
|
|
11
|
+
costsByCategoryCount: number;
|
|
12
|
+
savingsPercent: number;
|
|
13
|
+
costTrend: 'up' | 'down' | 'stable';
|
|
14
|
+
};
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
declare const PortfolioCostsKpi: React.FC<PortfolioCostsKpiProps>;
|
|
18
|
+
export default PortfolioCostsKpi;
|
|
19
|
+
//# sourceMappingURL=PortfolioCostsKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioCostsKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioCostsKpi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,sBAAsB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;IAC/I,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA8BvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const PortfolioCostsKpi = ({ title, data = { totalCosts: 0, budgetAmount: 0, costsByCategoryCount: 0, savingsPercent: 0, costTrend: 'stable' }, style, }) => {
|
|
7
|
+
const budgetUtilization = Math.round((data.totalCosts / data.budgetAmount) * 100);
|
|
8
|
+
const isBudgetHealth = budgetUtilization <= 85;
|
|
9
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-green-50 rounded-lg shadow-sm p-4 border border-green-100", style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), (0, jsx_runtime_1.jsx)(lucide_react_1.DollarSign, { className: "w-4 h-4 text-green-600" })] }), (0, jsx_runtime_1.jsx)("div", { className: "bg-linear-to-r from-green-500 to-emerald-600 rounded-lg p-4 text-white mb-3", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs opacity-90", children: "Custos Totais" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-3xl font-bold", children: [(data.totalCosts / 1000).toFixed(1), "k"] })] }), (0, jsx_runtime_1.jsx)(lucide_react_1.DollarSign, { className: "w-12 h-12 opacity-30" })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-gray-700", children: "Utiliza\u00E7\u00E3o do Or\u00E7amento" }), (0, jsx_runtime_1.jsxs)("span", { className: `text-sm font-bold px-2 py-1 rounded-full ${isBudgetHealth ? 'bg-green-100 text-green-700' : 'bg-yellow-100 text-yellow-700'}`, children: [budgetUtilization, "%"] })] }), (0, jsx_runtime_1.jsx)("div", { className: "relative w-full h-4 bg-gray-200 rounded-full overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: `h-full transition-all duration-500 ease-out rounded-full ${isBudgetHealth ? 'bg-linear-to-r from-green-400 to-green-600' : 'bg-linear-to-r from-yellow-400 to-yellow-600'}`, style: { width: `${Math.min(budgetUtilization, 100)}%` } }) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between text-xs text-gray-600", children: [(0, jsx_runtime_1.jsxs)("span", { children: ["R$ ", (data.totalCosts / 1000).toFixed(1), "k gasto"] }), (0, jsx_runtime_1.jsxs)("span", { children: ["R$ ", (data.budgetAmount / 1000).toFixed(1), "k or\u00E7ado"] })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-2 bg-green-50 rounded-lg p-3 border border-green-200 mt-3", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-gray-600 mb-1", children: "Economias" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-2xl font-bold text-green-600", children: [data.savingsPercent, "%"] })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-gray-600 mb-1", children: "Tend\u00EAncia" }), (0, jsx_runtime_1.jsxs)("div", { className: `text-sm font-bold flex items-center gap-1 ${data.costTrend === 'down' ? 'text-green-600' : data.costTrend === 'up' ? 'text-red-600' : 'text-gray-600'}`, children: [data.costTrend === 'down' && '📉', data.costTrend === 'up' && '📈', data.costTrend === 'stable' && '➡️', data.costTrend === 'down' ? 'Reduzindo' : data.costTrend === 'up' ? 'Aumentando' : 'Estável'] })] })] })] }));
|
|
10
|
+
};
|
|
11
|
+
exports.default = PortfolioCostsKpi;
|
|
12
|
+
//# sourceMappingURL=PortfolioCostsKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioCostsKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioCostsKpi.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PortfolioEffortKpiProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
totalEffortHours: number;
|
|
10
|
+
allocatedHours: number;
|
|
11
|
+
availableHours: number;
|
|
12
|
+
effortUtilization: number;
|
|
13
|
+
};
|
|
14
|
+
style?: React.CSSProperties;
|
|
15
|
+
}
|
|
16
|
+
declare const PortfolioEffortKpi: React.FC<PortfolioEffortKpiProps>;
|
|
17
|
+
export default PortfolioEffortKpi;
|
|
18
|
+
//# sourceMappingURL=PortfolioEffortKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioEffortKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioEffortKpi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,uBAAuB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/G,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAuBzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const PortfolioEffortKpi = ({ title, data = { totalEffortHours: 0, allocatedHours: 0, availableHours: 0, effortUtilization: 0 }, style, }) => ((0, jsx_runtime_1.jsxs)("div", { className: "bg-linear-to-br from-white to-orange-50 rounded-lg shadow-sm p-4 border border-orange-100", style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), (0, jsx_runtime_1.jsx)(lucide_react_1.Activity, { className: "w-4 h-4 text-orange-600" })] }), (0, jsx_runtime_1.jsx)("div", { className: "bg-linear-to-r from-orange-500 to-amber-600 rounded-lg p-4 text-white mb-3", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs opacity-90", children: "Esfor\u00E7o Total" }), (0, jsx_runtime_1.jsx)("div", { className: "text-3xl font-bold", children: data.totalEffortHours }), (0, jsx_runtime_1.jsx)("div", { className: "text-xs opacity-90", children: "horas" })] }), (0, jsx_runtime_1.jsx)(lucide_react_1.Clock, { className: "w-12 h-12 opacity-30" })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex justify-between items-center", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-gray-700", children: "Taxa de Utiliza\u00E7\u00E3o" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-sm font-bold text-orange-600", children: [data.effortUtilization, "%"] })] }), (0, jsx_runtime_1.jsx)("div", { className: "relative w-full h-4 bg-gray-200 rounded-full overflow-hidden", children: (0, jsx_runtime_1.jsx)("div", { className: "h-full bg-linear-to-r from-orange-400 to-orange-600 transition-all", style: { width: `${Math.min(data.effortUtilization, 100)}%` } }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-2 mt-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-orange-100 rounded-lg p-3 border border-orange-200", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-orange-700 mb-1", children: "Alocado" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-2xl font-bold text-orange-600", children: [data.allocatedHours, "h"] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-amber-100 rounded-lg p-3 border border-amber-200", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs text-amber-700 mb-1", children: "Dispon\u00EDvel" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-2xl font-bold text-amber-600", children: [data.availableHours, "h"] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-center text-xs text-gray-600 pt-2 border-t border-orange-100 mt-3", children: data.effortUtilization > 90 ? '⚠️ Portfólio com alta demanda' : data.effortUtilization > 70 ? '✓ Utilização equilibrada' : '📊 Capacidade disponível' })] }));
|
|
7
|
+
exports.default = PortfolioEffortKpi;
|
|
8
|
+
//# sourceMappingURL=PortfolioEffortKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioEffortKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioEffortKpi.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAA+C;AAY/C,MAAM,kBAAkB,GAAsC,CAAC,EAC7D,KAAK,EACL,IAAI,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,EAC1F,KAAK,GACN,EAAE,EAAE,CAAC,CACJ,iCAAK,SAAS,EAAC,2FAA2F,EAAC,KAAK,EAAE,KAAK,aACrH,iCAAK,SAAS,EAAC,wCAAwC,aAAC,+BAAI,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAM,EAAA,uBAAC,uBAAQ,IAAC,SAAS,EAAC,yBAAyB,GAAG,IAAM,EAC5K,gCAAK,SAAS,EAAC,4EAA4E,YACzF,iCAAK,SAAS,EAAC,mCAAmC,aAChD,4CAAK,gCAAK,SAAS,EAAC,oBAAoB,mCAAoB,EAAA,gCAAK,SAAS,EAAC,oBAAoB,YAAE,IAAI,CAAC,gBAAgB,GAAO,EAAA,gCAAK,SAAS,EAAC,oBAAoB,sBAAY,IAAM,EAClL,uBAAC,oBAAK,IAAC,SAAS,EAAC,sBAAsB,GAAG,IACtC,GACF,EACN,iCAAK,SAAS,EAAC,WAAW,aACxB,iCAAK,SAAS,EAAC,mCAAmC,aAAC,iCAAM,SAAS,EAAC,mCAAmC,6CAA0B,EAAA,kCAAM,SAAS,EAAC,mCAAmC,aAAE,IAAI,CAAC,iBAAiB,SAAS,IAAM,EAC1N,gCAAK,SAAS,EAAC,8DAA8D,YAAC,gCAAK,SAAS,EAAC,oEAAoE,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,GAAG,EAAE,GAAI,GAAM,IACrO,EACN,iCAAK,SAAS,EAAC,6BAA6B,aAC1C,iCAAK,SAAS,EAAC,uDAAuD,aAAC,gCAAK,SAAS,EAAC,8BAA8B,wBAAc,EAAA,iCAAK,SAAS,EAAC,oCAAoC,aAAE,IAAI,CAAC,cAAc,SAAQ,IAAM,EACxN,iCAAK,SAAS,EAAC,qDAAqD,aAAC,gCAAK,SAAS,EAAC,6BAA6B,gCAAiB,EAAA,iCAAK,SAAS,EAAC,mCAAmC,aAAE,IAAI,CAAC,cAAc,SAAQ,IAAM,IACnN,EACN,gCAAK,SAAS,EAAC,wEAAwE,YAAE,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,0BAA0B,GAAO,IACjP,CACP,CAAC;AAEF,kBAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Widget KPI: Projetos do Portfólio
|
|
3
|
+
* Mostra quantidade de projetos ativos no portfólio
|
|
4
|
+
* Para: admin-operations-director
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
interface PortfolioProjectsKpiProps {
|
|
8
|
+
slug: string;
|
|
9
|
+
title: string;
|
|
10
|
+
roleSlug: string;
|
|
11
|
+
width?: number;
|
|
12
|
+
height?: number;
|
|
13
|
+
data?: {
|
|
14
|
+
total: number;
|
|
15
|
+
active: number;
|
|
16
|
+
completed: number;
|
|
17
|
+
};
|
|
18
|
+
style?: React.CSSProperties;
|
|
19
|
+
}
|
|
20
|
+
declare const PortfolioProjectsKpi: React.FC<PortfolioProjectsKpiProps>;
|
|
21
|
+
export default PortfolioProjectsKpi;
|
|
22
|
+
//# sourceMappingURL=PortfolioProjectsKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioProjectsKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioProjectsKpi.tsx"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,yBAAyB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAuD7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
/**
|
|
8
|
+
* Widget KPI: Projetos do Portfólio
|
|
9
|
+
* Mostra quantidade de projetos ativos no portfólio
|
|
10
|
+
* Para: admin-operations-director
|
|
11
|
+
*/
|
|
12
|
+
const react_1 = __importDefault(require("react"));
|
|
13
|
+
const PortfolioProjectsKpi = ({ title, data = { total: 0, active: 0, completed: 0 }, style, }) => {
|
|
14
|
+
const activePercent = data.total > 0
|
|
15
|
+
? Math.round((data.active / data.total) * 100)
|
|
16
|
+
: 0;
|
|
17
|
+
return (<div className="bg-white rounded-lg shadow-sm p-4 border border-gray-200" style={style}>
|
|
18
|
+
<h3 className="text-sm font-medium text-gray-700 mb-3">{title}</h3>
|
|
19
|
+
|
|
20
|
+
<div className="space-y-2">
|
|
21
|
+
{/* Métrica principal */}
|
|
22
|
+
<div className="flex items-baseline gap-2">
|
|
23
|
+
<span className="text-3xl font-bold text-purple-600">
|
|
24
|
+
{data.active}
|
|
25
|
+
</span>
|
|
26
|
+
<span className="text-sm text-gray-600">
|
|
27
|
+
de {data.total} projetos
|
|
28
|
+
</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
{/* Breakdown */}
|
|
32
|
+
<div className="pt-2 space-y-1 text-xs">
|
|
33
|
+
<div className="flex justify-between">
|
|
34
|
+
<span className="text-gray-600">Em andamento:</span>
|
|
35
|
+
<span className="font-medium text-blue-600">{data.active}</span>
|
|
36
|
+
</div>
|
|
37
|
+
<div className="flex justify-between">
|
|
38
|
+
<span className="text-gray-600">Completados:</span>
|
|
39
|
+
<span className="font-medium text-green-600">{data.completed}</span>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{/* Status indicator */}
|
|
44
|
+
<div className="mt-3 flex items-center gap-2">
|
|
45
|
+
<div className={`w-3 h-3 rounded-full ${activePercent >= 70 ? 'bg-blue-500' :
|
|
46
|
+
activePercent >= 40 ? 'bg-yellow-500' :
|
|
47
|
+
'bg-green-500'}`}/>
|
|
48
|
+
<span className="text-xs text-gray-600">
|
|
49
|
+
{activePercent}% em execução
|
|
50
|
+
</span>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>);
|
|
54
|
+
};
|
|
55
|
+
exports.default = PortfolioProjectsKpi;
|
|
56
|
+
//# sourceMappingURL=PortfolioProjectsKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioProjectsKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioProjectsKpi.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;AAEb;;;;GAIG;AAEH,kDAA0B;AAgB1B,MAAM,oBAAoB,GAAwC,CAAC,EACjE,KAAK,EACL,IAAI,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,EAC5C,KAAK,GACN,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QAC9C,CAAC,CAAC,CAAC,CAAC;IAEN,OAAO,CACL,CAAC,GAAG,CACF,SAAS,CAAC,0DAA0D,CACpE,KAAK,CAAC,CAAC,KAAK,CAAC,CAEb;MAAA,CAAC,EAAE,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAElE;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,CACxB;QAAA,CAAC,uBAAuB,CACxB;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,2BAA2B,CACxC;UAAA,CAAC,IAAI,CAAC,SAAS,CAAC,oCAAoC,CAClD;YAAA,CAAC,IAAI,CAAC,MAAM,CACd;UAAA,EAAE,IAAI,CACN;UAAA,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACrC;eAAG,CAAC,IAAI,CAAC,KAAK,CAAE;UAClB,EAAE,IAAI,CACR;QAAA,EAAE,GAAG,CAEL;;QAAA,CAAC,eAAe,CAChB;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,wBAAwB,CACrC;UAAA,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CACnC;YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CACnD;YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CACjE;UAAA,EAAE,GAAG,CACL;UAAA,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CACnC;YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,CAClD;YAAA,CAAC,IAAI,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CACrE;UAAA,EAAE,GAAG,CACP;QAAA,EAAE,GAAG,CAEL;;QAAA,CAAC,sBAAsB,CACvB;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,8BAA8B,CAC3C;UAAA,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,wBACT,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACrC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBACvC,cACF,EAAE,CAAC,EAEL;UAAA,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CACrC;YAAA,CAAC,aAAa,CAAC;UACjB,EAAE,IAAI,CACR;QAAA,EAAE,GAAG,CACP;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface PortfolioRiskKpiProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
totalRisks: number;
|
|
10
|
+
criticalRisks: number;
|
|
11
|
+
highRisks: number;
|
|
12
|
+
mediumRisks: number;
|
|
13
|
+
riskTrend: 'increasing' | 'stable' | 'decreasing';
|
|
14
|
+
};
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
declare const PortfolioRiskKpi: React.FC<PortfolioRiskKpiProps>;
|
|
18
|
+
export default PortfolioRiskKpi;
|
|
19
|
+
//# sourceMappingURL=PortfolioRiskKpi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioRiskKpi.d.ts","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioRiskKpi.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,qBAAqB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAA;KAAE,CAAC;IAChJ,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,QAAA,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgCrD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const PortfolioRiskKpi = ({ title, data = { totalRisks: 0, criticalRisks: 0, highRisks: 0, mediumRisks: 0, riskTrend: 'stable' }, style, }) => {
|
|
7
|
+
const hasHighRisk = data.criticalRisks > 0 || data.highRisks > 3;
|
|
8
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: `bg-linear-to-br from-white to-red-50 rounded-lg shadow-sm p-4 border ${hasHighRisk ? 'border-red-400 border-2' : 'border-red-100'} transition-all`, style: style, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between mb-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-sm font-medium text-gray-700", children: title }), hasHighRisk && (0, jsx_runtime_1.jsxs)("div", { className: "relative", children: [(0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 bg-red-600 rounded-full animate-pulse", style: { opacity: 0.25 } }), (0, jsx_runtime_1.jsx)(lucide_react_1.AlertTriangle, { className: "w-5 h-5 text-red-600 relative" })] })] }), (0, jsx_runtime_1.jsx)("div", { className: `rounded-lg p-4 ${data.totalRisks > 10 ? 'bg-red-500 text-white' : data.totalRisks > 5 ? 'bg-yellow-500 text-white' : 'bg-green-500 text-white'}`, children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs opacity-90", children: "Riscos Identificados" }), (0, jsx_runtime_1.jsx)("div", { className: "text-3xl font-bold", children: data.totalRisks })] }), (0, jsx_runtime_1.jsx)(lucide_react_1.AlertTriangle, { className: "w-12 h-12 opacity-30" })] }) }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-2 mt-3", children: [data.criticalRisks > 0 && (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between bg-red-50 p-2 rounded-lg border border-red-200", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-red-700", children: "\uD83D\uDD34 Cr\u00EDtico" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm font-bold text-red-600", children: data.criticalRisks })] }), data.highRisks > 0 && (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between bg-yellow-50 p-2 rounded-lg border border-yellow-200", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-yellow-700", children: "\uD83D\uDFE0 Alto" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm font-bold text-yellow-600", children: data.highRisks })] }), data.mediumRisks > 0 && (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between bg-blue-50 p-2 rounded-lg border border-blue-200", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-xs font-medium text-blue-700", children: "\uD83D\uDFE1 M\u00E9dio" }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm font-bold text-blue-600", children: data.mediumRisks })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-2 pt-2 border-t border-red-100 mt-3", children: [(0, jsx_runtime_1.jsx)(lucide_react_1.TrendingUp, { className: `w-4 h-4 ${data.riskTrend === 'increasing' ? 'text-red-600' : data.riskTrend === 'decreasing' ? 'text-green-600' : 'text-gray-600'}` }), (0, jsx_runtime_1.jsxs)("span", { className: "text-xs font-medium text-gray-700", children: ["Tend\u00EAncia: ", data.riskTrend === 'increasing' && '📈 Aumentando', data.riskTrend === 'decreasing' && '📉 Reduzindo', data.riskTrend === 'stable' && '➡️ Estável'] })] }), hasHighRisk && (0, jsx_runtime_1.jsx)("div", { className: "bg-red-100 rounded-lg p-2 border border-red-300 text-xs text-red-700 font-semibold text-center mt-3", children: "\u26A0\uFE0F Requer aten\u00E7\u00E3o imediata" })] }));
|
|
9
|
+
};
|
|
10
|
+
exports.default = PortfolioRiskKpi;
|
|
11
|
+
//# sourceMappingURL=PortfolioRiskKpi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortfolioRiskKpi.js","sourceRoot":"","sources":["../../../src/dashboard/widgets/PortfolioRiskKpi.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAGb,+CAAyD;AAYzD,MAAM,gBAAgB,GAAoC,CAAC,EACzD,KAAK,EACL,IAAI,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAC7F,KAAK,GACN,EAAE,EAAE;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACjE,OAAO,CACL,iCAAK,SAAS,EAAE,wEAAwE,WAAW,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gBAAgB,iBAAiB,EAAE,KAAK,EAAE,KAAK,aAC/K,iCAAK,SAAS,EAAC,wCAAwC,aACrD,+BAAI,SAAS,EAAC,mCAAmC,YAAE,KAAK,GAAM,EAC7D,WAAW,IAAI,iCAAK,SAAS,EAAC,UAAU,aAAC,gCAAK,SAAS,EAAC,wDAAwD,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAI,EAAA,uBAAC,4BAAa,IAAC,SAAS,EAAC,+BAA+B,GAAG,IAAM,IAC3M,EACN,gCAAK,SAAS,EAAE,kBAAkB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,yBAAyB,EAAE,YAC/J,iCAAK,SAAS,EAAC,mCAAmC,aAChD,4CAAK,gCAAK,SAAS,EAAC,oBAAoB,qCAA2B,EAAA,gCAAK,SAAS,EAAC,oBAAoB,YAAE,IAAI,CAAC,UAAU,GAAO,IAAM,EACpI,uBAAC,4BAAa,IAAC,SAAS,EAAC,sBAAsB,GAAG,IAC9C,GACF,EACN,iCAAK,SAAS,EAAC,gBAAgB,aAC5B,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,iCAAK,SAAS,EAAC,kFAAkF,aAAC,iCAAM,SAAS,EAAC,kCAAkC,0CAAkB,EAAA,iCAAM,SAAS,EAAC,gCAAgC,YAAE,IAAI,CAAC,aAAa,GAAQ,IAAM,EAClR,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,iCAAK,SAAS,EAAC,wFAAwF,aAAC,iCAAM,SAAS,EAAC,qCAAqC,kCAAe,EAAA,iCAAM,SAAS,EAAC,mCAAmC,YAAE,IAAI,CAAC,SAAS,GAAQ,IAAM,EACnR,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,iCAAK,SAAS,EAAC,oFAAoF,aAAC,iCAAM,SAAS,EAAC,mCAAmC,wCAAgB,EAAA,iCAAM,SAAS,EAAC,iCAAiC,YAAE,IAAI,CAAC,WAAW,GAAQ,IAAM,IAC7Q,EACN,iCAAK,SAAS,EAAC,2DAA2D,aACxE,uBAAC,yBAAU,IAAC,SAAS,EAAE,WAAW,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,GAAI,EAC/J,kCAAM,SAAS,EAAC,mCAAmC,iCACrC,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,eAAe,EAAE,IAAI,CAAC,SAAS,KAAK,YAAY,IAAI,cAAc,EAAE,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,YAAY,IACzJ,IACH,EACL,WAAW,IAAI,gCAAK,SAAS,EAAC,qGAAqG,+DAAiC,IACjK,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ProjectStatusOverviewProps {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
roleSlug: string;
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
data?: {
|
|
9
|
+
planning: number;
|
|
10
|
+
inProgress: number;
|
|
11
|
+
review: number;
|
|
12
|
+
completed: number;
|
|
13
|
+
onHold: number;
|
|
14
|
+
};
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
}
|
|
17
|
+
declare const ProjectStatusOverview: React.FC<ProjectStatusOverviewProps>;
|
|
18
|
+
export default ProjectStatusOverview;
|
|
19
|
+
//# sourceMappingURL=ProjectStatusOverview.d.ts.map
|