@burdenoff/microfe-crewfoundry 2026.510.105
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/crewfoundry/CrewFoundryRoot.d.ts +5 -0
- package/dist/crewfoundry/CrewFoundryRoot.d.ts.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoot.js +465 -0
- package/dist/crewfoundry/CrewFoundryRoot.js.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoutes.d.ts +2 -0
- package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -0
- package/dist/crewfoundry/CrewFoundryRoutes.js +291 -0
- package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -0
- package/dist/crewfoundry/index.d.ts +5 -0
- package/dist/crewfoundry/index.d.ts.map +1 -0
- package/dist/crewfoundry/index.js +3 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.js +267 -0
- package/dist/crewfoundry/pages/AdminAdminPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js +271 -0
- package/dist/crewfoundry/pages/AnalyticsAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js +337 -0
- package/dist/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js +344 -0
- package/dist/crewfoundry/pages/AnalyticsFinancialAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js +341 -0
- package/dist/crewfoundry/pages/AnalyticsHiringAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js +121 -0
- package/dist/crewfoundry/pages/CommunicationsAnnouncementsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js +124 -0
- package/dist/crewfoundry/pages/CommunicationsCallsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js +93 -0
- package/dist/crewfoundry/pages/CommunicationsDirectoryPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js +138 -0
- package/dist/crewfoundry/pages/CommunicationsFilesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js +118 -0
- package/dist/crewfoundry/pages/CommunicationsMessagesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js +62 -0
- package/dist/crewfoundry/pages/CommunicationsTeamsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js +178 -0
- package/dist/crewfoundry/pages/CommunicationsVideoCallsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js +138 -0
- package/dist/crewfoundry/pages/CompanyClientManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js +144 -0
- package/dist/crewfoundry/pages/CompanyCompanyDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js +234 -0
- package/dist/crewfoundry/pages/CompanyCompanyProfilePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js +84 -0
- package/dist/crewfoundry/pages/CompanyVendorManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js +287 -0
- package/dist/crewfoundry/pages/DashboardAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js +230 -0
- package/dist/crewfoundry/pages/DashboardDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js +365 -0
- package/dist/crewfoundry/pages/DashboardEnhancedDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +2 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +340 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js +299 -0
- package/dist/crewfoundry/pages/HelpApiDocumentationPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js +183 -0
- package/dist/crewfoundry/pages/HiringApplicationsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +124 -0
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js +163 -0
- package/dist/crewfoundry/pages/HiringCreateJobPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js +148 -0
- package/dist/crewfoundry/pages/HiringInterviewsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js +203 -0
- package/dist/crewfoundry/pages/HiringJobDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.js +115 -0
- package/dist/crewfoundry/pages/HiringJobsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js +145 -0
- package/dist/crewfoundry/pages/HrDepartmentsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js +183 -0
- package/dist/crewfoundry/pages/HrEmployeesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js +238 -0
- package/dist/crewfoundry/pages/HrLeaveManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.js +191 -0
- package/dist/crewfoundry/pages/HrPayrollPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js +158 -0
- package/dist/crewfoundry/pages/HrTimeTrackingPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js +136 -0
- package/dist/crewfoundry/pages/LearningAssessmentsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js +103 -0
- package/dist/crewfoundry/pages/LearningCertificatesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js +135 -0
- package/dist/crewfoundry/pages/LearningCourseDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js +111 -0
- package/dist/crewfoundry/pages/LearningCourseLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js +97 -0
- package/dist/crewfoundry/pages/LearningCoursesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js +170 -0
- package/dist/crewfoundry/pages/LearningLearningAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.js +154 -0
- package/dist/crewfoundry/pages/LearningLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js +140 -0
- package/dist/crewfoundry/pages/LearningLearningPathDetailPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js +74 -0
- package/dist/crewfoundry/pages/LearningLearningPathsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js +166 -0
- package/dist/crewfoundry/pages/LearningMyLearningPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js +118 -0
- package/dist/crewfoundry/pages/MarketplaceBookingManagementPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js +148 -0
- package/dist/crewfoundry/pages/MarketplaceEarningsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js +443 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePageEnhancedPage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js +272 -0
- package/dist/crewfoundry/pages/MarketplaceFreelancerProfilePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js +136 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplacePagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js +104 -0
- package/dist/crewfoundry/pages/MarketplaceMarketplaceServicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js +91 -0
- package/dist/crewfoundry/pages/MarketplaceMessagingPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js +80 -0
- package/dist/crewfoundry/pages/MarketplaceMyServicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js +155 -0
- package/dist/crewfoundry/pages/MarketplaceProjectDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js +107 -0
- package/dist/crewfoundry/pages/MarketplaceServiceDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js +133 -0
- package/dist/crewfoundry/pages/PaymentsEscrowPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js +79 -0
- package/dist/crewfoundry/pages/PaymentsInvoicesPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js +113 -0
- package/dist/crewfoundry/pages/PaymentsPaymentDashboardPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js +80 -0
- package/dist/crewfoundry/pages/PaymentsPaymentMethodsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js +172 -0
- package/dist/crewfoundry/pages/PaymentsSecurityPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js +98 -0
- package/dist/crewfoundry/pages/ProjectsCreateProjectPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js +163 -0
- package/dist/crewfoundry/pages/ProjectsProjectDetailsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js +115 -0
- package/dist/crewfoundry/pages/ProjectsProjectsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js +141 -0
- package/dist/crewfoundry/pages/TeamsTeamAnalyticsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js +176 -0
- package/dist/crewfoundry/pages/TeamsTeamDetailPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js +83 -0
- package/dist/crewfoundry/pages/TeamsTeamDirectoryPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js +314 -0
- package/dist/crewfoundry/pages/TeamsTeamSettingsPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts +2 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js +77 -0
- package/dist/crewfoundry/pages/TeamsTeamsPagePage.js.map +1 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts +6 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.d.ts.map +1 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.js +27 -0
- package/dist/crewfoundry/providers/CrewFoundryProvider.js.map +1 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +305 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -0
- package/dist/crewfoundry/store/crewfoundryStore.js +326 -0
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -0
- package/dist/crewfoundry/types/index.d.ts +51 -0
- package/dist/crewfoundry/types/index.d.ts.map +1 -0
- package/dist/crewfoundry/utils/cn.d.ts +4 -0
- package/dist/crewfoundry/utils/cn.d.ts.map +1 -0
- package/dist/crewfoundry/utils/navigation.d.ts +2 -0
- package/dist/crewfoundry/utils/navigation.d.ts.map +1 -0
- package/dist/crewfoundry/utils/navigation.js +8 -0
- package/dist/crewfoundry/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 +2 -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,267 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import { Activity as n, Database as r, Globe as i, Lock as a, Monitor as o, Server as s, Shield as c, Users as l, Wrench as u } from "lucide-react";
|
|
4
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as p, Button as m, Card as h, CardContent as g, CardDescription as _, CardHeader as v, CardTitle as y } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/crewfoundry/pages/AdminAdminPagePage.tsx
|
|
7
|
+
var b = (e) => {
|
|
8
|
+
let t = new Date(e);
|
|
9
|
+
return Number.isNaN(t.getTime()) ? "Unknown" : t.toLocaleString("en-US", {
|
|
10
|
+
year: "numeric",
|
|
11
|
+
month: "2-digit",
|
|
12
|
+
day: "2-digit",
|
|
13
|
+
hour: "2-digit",
|
|
14
|
+
minute: "2-digit"
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
function x() {
|
|
18
|
+
let { employees: x, departments: S, notifications: C, payrollRecords: w, jobPostings: T } = e(), E = t(() => {
|
|
19
|
+
let e = C.some((e) => e.type === "warning"), t = C.some((e) => e.type === "error");
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
name: "Authentication",
|
|
23
|
+
status: "operational",
|
|
24
|
+
uptime: "99.98%",
|
|
25
|
+
icon: a
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: "Employee Directory",
|
|
29
|
+
status: "operational",
|
|
30
|
+
uptime: "99.95%",
|
|
31
|
+
icon: l
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: "Payroll Engine",
|
|
35
|
+
status: w.some((e) => e.status === "failed") ? "degraded" : "operational",
|
|
36
|
+
uptime: "99.91%",
|
|
37
|
+
icon: r
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: "Recruitment ATS",
|
|
41
|
+
status: "operational",
|
|
42
|
+
uptime: "99.94%",
|
|
43
|
+
icon: i
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Analytics Pipeline",
|
|
47
|
+
status: e || t ? "degraded" : "operational",
|
|
48
|
+
uptime: e || t ? "98.70%" : "99.96%",
|
|
49
|
+
icon: n
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: "Notification Service",
|
|
53
|
+
status: t ? "degraded" : "operational",
|
|
54
|
+
uptime: "99.97%",
|
|
55
|
+
icon: o
|
|
56
|
+
}
|
|
57
|
+
];
|
|
58
|
+
}, [C, w]), D = t(() => C.slice(0, 12).map((e, t) => ({
|
|
59
|
+
action: e.type === "error" ? "Incident detected" : e.type === "warning" ? "Policy alert generated" : "Operational event recorded",
|
|
60
|
+
actor: x[t % Math.max(x.length, 1)] ? `${x[t % x.length].firstName} ${x[t % x.length].lastName}` : "System",
|
|
61
|
+
target: e.title,
|
|
62
|
+
timestamp: b(e.createdAt),
|
|
63
|
+
severity: e.type === "error" ? "high" : e.type === "warning" ? "medium" : "low"
|
|
64
|
+
})), [x, C]), O = t(() => {
|
|
65
|
+
let e = x.filter((e) => e.position.toLowerCase().includes("manager")).length, t = x.filter((e) => e.position.toLowerCase().includes("lead")).length, n = T.filter((e) => e.status === "active").length;
|
|
66
|
+
return [
|
|
67
|
+
{
|
|
68
|
+
role: "Super Admin",
|
|
69
|
+
count: 2,
|
|
70
|
+
permissions: "Full access"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
role: "HR Manager",
|
|
74
|
+
count: Math.max(1, e),
|
|
75
|
+
permissions: "Employee, payroll, leave management"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
role: "Hiring Manager",
|
|
79
|
+
count: Math.max(1, n),
|
|
80
|
+
permissions: "Job postings, candidates, interviews"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
role: "Department Lead",
|
|
84
|
+
count: Math.max(1, t),
|
|
85
|
+
permissions: "Team management, reports"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
role: "Employee",
|
|
89
|
+
count: Math.max(0, x.length - e - t),
|
|
90
|
+
permissions: "Self-service, directory, learning"
|
|
91
|
+
}
|
|
92
|
+
];
|
|
93
|
+
}, [x, T]), k = Math.round(E.filter((e) => e.status === "operational").length / Math.max(E.length, 1) * 100);
|
|
94
|
+
return /* @__PURE__ */ f("div", {
|
|
95
|
+
className: "space-y-6 p-6",
|
|
96
|
+
children: [
|
|
97
|
+
/* @__PURE__ */ f("div", {
|
|
98
|
+
className: "flex items-center justify-between",
|
|
99
|
+
children: [/* @__PURE__ */ f("div", { children: [/* @__PURE__ */ d("h1", {
|
|
100
|
+
className: "text-2xl font-semibold",
|
|
101
|
+
children: "Administration"
|
|
102
|
+
}), /* @__PURE__ */ d("p", {
|
|
103
|
+
className: "text-sm text-muted-foreground",
|
|
104
|
+
children: "System administration and access management"
|
|
105
|
+
})] }), /* @__PURE__ */ f("div", {
|
|
106
|
+
className: "flex gap-2",
|
|
107
|
+
children: [/* @__PURE__ */ f(m, {
|
|
108
|
+
variant: "outline",
|
|
109
|
+
size: "sm",
|
|
110
|
+
children: [/* @__PURE__ */ d(u, { className: "mr-1 h-4 w-4" }), "System Settings"]
|
|
111
|
+
}), /* @__PURE__ */ f(m, {
|
|
112
|
+
size: "sm",
|
|
113
|
+
children: [/* @__PURE__ */ d(c, { className: "mr-1 h-4 w-4" }), "Security"]
|
|
114
|
+
})]
|
|
115
|
+
})]
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ f("div", {
|
|
118
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
119
|
+
children: [
|
|
120
|
+
/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, {
|
|
121
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
122
|
+
children: [/* @__PURE__ */ d(y, {
|
|
123
|
+
className: "text-sm font-medium",
|
|
124
|
+
children: "Total Users"
|
|
125
|
+
}), /* @__PURE__ */ d(l, { className: "h-4 w-4 text-muted-foreground" })]
|
|
126
|
+
}), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ d("div", {
|
|
127
|
+
className: "text-2xl font-bold",
|
|
128
|
+
children: x.length
|
|
129
|
+
}), /* @__PURE__ */ f("p", {
|
|
130
|
+
className: "text-xs text-muted-foreground",
|
|
131
|
+
children: [S.length, " departments"]
|
|
132
|
+
})] })] }),
|
|
133
|
+
/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, {
|
|
134
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
135
|
+
children: [/* @__PURE__ */ d(y, {
|
|
136
|
+
className: "text-sm font-medium",
|
|
137
|
+
children: "Active Sessions"
|
|
138
|
+
}), /* @__PURE__ */ d(o, { className: "h-4 w-4 text-muted-foreground" })]
|
|
139
|
+
}), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ d("div", {
|
|
140
|
+
className: "text-2xl font-bold",
|
|
141
|
+
children: Math.round(x.length * .76)
|
|
142
|
+
}), /* @__PURE__ */ d("p", {
|
|
143
|
+
className: "text-xs text-muted-foreground",
|
|
144
|
+
children: "Estimated from active workforce"
|
|
145
|
+
})] })] }),
|
|
146
|
+
/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, {
|
|
147
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
148
|
+
children: [/* @__PURE__ */ d(y, {
|
|
149
|
+
className: "text-sm font-medium",
|
|
150
|
+
children: "System Uptime"
|
|
151
|
+
}), /* @__PURE__ */ d(s, { className: "h-4 w-4 text-muted-foreground" })]
|
|
152
|
+
}), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ d("div", {
|
|
153
|
+
className: "text-2xl font-bold",
|
|
154
|
+
children: "99.95%"
|
|
155
|
+
}), /* @__PURE__ */ d("p", {
|
|
156
|
+
className: "text-xs text-muted-foreground",
|
|
157
|
+
children: "Rolling platform uptime"
|
|
158
|
+
})] })] }),
|
|
159
|
+
/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, {
|
|
160
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
161
|
+
children: [/* @__PURE__ */ d(y, {
|
|
162
|
+
className: "text-sm font-medium",
|
|
163
|
+
children: "Security Score"
|
|
164
|
+
}), /* @__PURE__ */ d(c, { className: "h-4 w-4 text-muted-foreground" })]
|
|
165
|
+
}), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ f("div", {
|
|
166
|
+
className: "text-2xl font-bold",
|
|
167
|
+
children: [k, "/100"]
|
|
168
|
+
}), /* @__PURE__ */ d("p", {
|
|
169
|
+
className: "text-xs text-green-600",
|
|
170
|
+
children: "Derived from module health checks"
|
|
171
|
+
})] })] })
|
|
172
|
+
]
|
|
173
|
+
}),
|
|
174
|
+
/* @__PURE__ */ f("div", {
|
|
175
|
+
className: "grid gap-4 md:grid-cols-2",
|
|
176
|
+
children: [/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, { children: [/* @__PURE__ */ d(y, { children: "System Status" }), /* @__PURE__ */ d(_, { children: "Module health and uptime" })] }), /* @__PURE__ */ d(g, {
|
|
177
|
+
className: "space-y-3",
|
|
178
|
+
children: E.map((e) => /* @__PURE__ */ f("div", {
|
|
179
|
+
className: "flex items-center justify-between rounded border p-3",
|
|
180
|
+
children: [/* @__PURE__ */ f("div", {
|
|
181
|
+
className: "flex items-center gap-3",
|
|
182
|
+
children: [/* @__PURE__ */ d(e.icon, { className: "h-4 w-4 text-muted-foreground" }), /* @__PURE__ */ d("span", {
|
|
183
|
+
className: "text-sm font-medium",
|
|
184
|
+
children: e.name
|
|
185
|
+
})]
|
|
186
|
+
}), /* @__PURE__ */ f("div", {
|
|
187
|
+
className: "flex items-center gap-3",
|
|
188
|
+
children: [/* @__PURE__ */ d("span", {
|
|
189
|
+
className: "text-xs text-muted-foreground",
|
|
190
|
+
children: e.uptime
|
|
191
|
+
}), /* @__PURE__ */ d(p, {
|
|
192
|
+
variant: e.status === "operational" ? "default" : "destructive",
|
|
193
|
+
className: "text-[10px]",
|
|
194
|
+
children: e.status
|
|
195
|
+
})]
|
|
196
|
+
})]
|
|
197
|
+
}, e.name))
|
|
198
|
+
})] }), /* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, { children: [/* @__PURE__ */ d(y, { children: "User Roles" }), /* @__PURE__ */ d(_, { children: "Role distribution and permissions" })] }), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ f("div", {
|
|
199
|
+
className: "mb-2 grid grid-cols-3 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground",
|
|
200
|
+
children: [
|
|
201
|
+
/* @__PURE__ */ d("span", { children: "Role" }),
|
|
202
|
+
/* @__PURE__ */ d("span", {
|
|
203
|
+
className: "text-right",
|
|
204
|
+
children: "Users"
|
|
205
|
+
}),
|
|
206
|
+
/* @__PURE__ */ d("span", { children: "Permissions" })
|
|
207
|
+
]
|
|
208
|
+
}), O.map((e) => /* @__PURE__ */ f("div", {
|
|
209
|
+
className: "grid grid-cols-3 gap-2 border-b py-2 text-sm last:border-0",
|
|
210
|
+
children: [
|
|
211
|
+
/* @__PURE__ */ d("span", {
|
|
212
|
+
className: "font-medium",
|
|
213
|
+
children: e.role
|
|
214
|
+
}),
|
|
215
|
+
/* @__PURE__ */ d("span", {
|
|
216
|
+
className: "text-right",
|
|
217
|
+
children: e.count
|
|
218
|
+
}),
|
|
219
|
+
/* @__PURE__ */ d("span", {
|
|
220
|
+
className: "truncate text-xs text-muted-foreground",
|
|
221
|
+
children: e.permissions
|
|
222
|
+
})
|
|
223
|
+
]
|
|
224
|
+
}, e.role))] })] })]
|
|
225
|
+
}),
|
|
226
|
+
/* @__PURE__ */ f(h, { children: [/* @__PURE__ */ f(v, { children: [/* @__PURE__ */ d(y, { children: "Recent Audit Log" }), /* @__PURE__ */ d(_, { children: "System activity and security events" })] }), /* @__PURE__ */ f(g, { children: [/* @__PURE__ */ f("div", {
|
|
227
|
+
className: "mb-2 grid grid-cols-5 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground",
|
|
228
|
+
children: [
|
|
229
|
+
/* @__PURE__ */ d("span", { children: "Action" }),
|
|
230
|
+
/* @__PURE__ */ d("span", { children: "Actor" }),
|
|
231
|
+
/* @__PURE__ */ d("span", { children: "Target" }),
|
|
232
|
+
/* @__PURE__ */ d("span", { children: "Timestamp" }),
|
|
233
|
+
/* @__PURE__ */ d("span", { children: "Severity" })
|
|
234
|
+
]
|
|
235
|
+
}), D.map((e, t) => /* @__PURE__ */ f("div", {
|
|
236
|
+
className: "grid grid-cols-5 gap-2 border-b py-2 text-sm last:border-0",
|
|
237
|
+
children: [
|
|
238
|
+
/* @__PURE__ */ d("span", {
|
|
239
|
+
className: "font-medium",
|
|
240
|
+
children: e.action
|
|
241
|
+
}),
|
|
242
|
+
/* @__PURE__ */ d("span", {
|
|
243
|
+
className: "text-muted-foreground",
|
|
244
|
+
children: e.actor
|
|
245
|
+
}),
|
|
246
|
+
/* @__PURE__ */ d("span", {
|
|
247
|
+
className: "truncate text-muted-foreground",
|
|
248
|
+
children: e.target
|
|
249
|
+
}),
|
|
250
|
+
/* @__PURE__ */ d("span", {
|
|
251
|
+
className: "text-xs",
|
|
252
|
+
children: e.timestamp
|
|
253
|
+
}),
|
|
254
|
+
/* @__PURE__ */ d(p, {
|
|
255
|
+
variant: e.severity === "high" ? "destructive" : e.severity === "medium" ? "secondary" : "outline",
|
|
256
|
+
className: "w-fit text-[10px]",
|
|
257
|
+
children: e.severity
|
|
258
|
+
})
|
|
259
|
+
]
|
|
260
|
+
}, `${e.action}-${t}`))] })] })
|
|
261
|
+
]
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
//#endregion
|
|
265
|
+
export { x as AdminAdminPagePage };
|
|
266
|
+
|
|
267
|
+
//# sourceMappingURL=AdminAdminPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminAdminPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/AdminAdminPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n Activity,\n Database,\n Globe,\n Lock,\n Monitor,\n Server,\n Shield,\n Users,\n Wrench,\n} from 'lucide-react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from '@burdenoff/fe-libs/ui';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype SystemModule = {\n name: string;\n status: 'operational' | 'degraded';\n uptime: string;\n icon: typeof Lock;\n};\n\ntype AuditLog = {\n action: string;\n actor: string;\n target: string;\n timestamp: string;\n severity: 'low' | 'medium' | 'high';\n};\n\ntype UserRole = {\n role: string;\n count: number;\n permissions: string;\n};\n\nconst isoDateTime = (value: string): string => {\n const parsed = new Date(value);\n if (Number.isNaN(parsed.getTime())) {\n return 'Unknown';\n }\n return parsed.toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n });\n};\n\nexport function AdminAdminPagePage() {\n const { employees, departments, notifications, payrollRecords, jobPostings } =\n useCrewFoundryStore();\n\n const systemModules = useMemo<SystemModule[]>(() => {\n const hasWarning = notifications.some((notification) => notification.type === 'warning');\n const hasError = notifications.some((notification) => notification.type === 'error');\n\n return [\n { name: 'Authentication', status: 'operational', uptime: '99.98%', icon: Lock },\n { name: 'Employee Directory', status: 'operational', uptime: '99.95%', icon: Users },\n {\n name: 'Payroll Engine',\n status: payrollRecords.some((record) => record.status === 'failed')\n ? 'degraded'\n : 'operational',\n uptime: '99.91%',\n icon: Database,\n },\n { name: 'Recruitment ATS', status: 'operational', uptime: '99.94%', icon: Globe },\n {\n name: 'Analytics Pipeline',\n status: hasWarning || hasError ? 'degraded' : 'operational',\n uptime: hasWarning || hasError ? '98.70%' : '99.96%',\n icon: Activity,\n },\n {\n name: 'Notification Service',\n status: hasError ? 'degraded' : 'operational',\n uptime: '99.97%',\n icon: Monitor,\n },\n ];\n }, [notifications, payrollRecords]);\n\n const recentAuditLogs = useMemo<AuditLog[]>(() => {\n return notifications.slice(0, 12).map((notification, index) => ({\n action:\n notification.type === 'error'\n ? 'Incident detected'\n : notification.type === 'warning'\n ? 'Policy alert generated'\n : 'Operational event recorded',\n actor: employees[index % Math.max(employees.length, 1)]\n ? `${employees[index % employees.length].firstName} ${employees[index % employees.length].lastName}`\n : 'System',\n target: notification.title,\n timestamp: isoDateTime(notification.createdAt),\n severity:\n notification.type === 'error' ? 'high' : notification.type === 'warning' ? 'medium' : 'low',\n }));\n }, [employees, notifications]);\n\n const userRoles = useMemo<UserRole[]>(() => {\n const managers = employees.filter((employee) =>\n employee.position.toLowerCase().includes('manager')\n ).length;\n const leads = employees.filter((employee) =>\n employee.position.toLowerCase().includes('lead')\n ).length;\n const recruiters = jobPostings.filter((posting) => posting.status === 'active').length;\n return [\n { role: 'Super Admin', count: 2, permissions: 'Full access' },\n {\n role: 'HR Manager',\n count: Math.max(1, managers),\n permissions: 'Employee, payroll, leave management',\n },\n {\n role: 'Hiring Manager',\n count: Math.max(1, recruiters),\n permissions: 'Job postings, candidates, interviews',\n },\n {\n role: 'Department Lead',\n count: Math.max(1, leads),\n permissions: 'Team management, reports',\n },\n {\n role: 'Employee',\n count: Math.max(0, employees.length - managers - leads),\n permissions: 'Self-service, directory, learning',\n },\n ];\n }, [employees, jobPostings]);\n\n const securityScore = Math.round(\n (systemModules.filter((module) => module.status === 'operational').length /\n Math.max(systemModules.length, 1)) *\n 100\n );\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Administration</h1>\n <p className=\"text-sm text-muted-foreground\">\n System administration and access management\n </p>\n </div>\n <div className=\"flex gap-2\">\n <Button variant=\"outline\" size=\"sm\">\n <Wrench className=\"mr-1 h-4 w-4\" />\n System Settings\n </Button>\n <Button size=\"sm\">\n <Shield className=\"mr-1 h-4 w-4\" />\n Security\n </Button>\n </div>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Users</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{employees.length}</div>\n <p className=\"text-xs text-muted-foreground\">{departments.length} departments</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Sessions</CardTitle>\n <Monitor className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{Math.round(employees.length * 0.76)}</div>\n <p className=\"text-xs text-muted-foreground\">Estimated from active workforce</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">System Uptime</CardTitle>\n <Server className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">99.95%</div>\n <p className=\"text-xs text-muted-foreground\">Rolling platform uptime</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Security Score</CardTitle>\n <Shield className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{securityScore}/100</div>\n <p className=\"text-xs text-green-600\">Derived from module health checks</p>\n </CardContent>\n </Card>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2\">\n <Card>\n <CardHeader>\n <CardTitle>System Status</CardTitle>\n <CardDescription>Module health and uptime</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {systemModules.map((module) => (\n <div\n key={module.name}\n className=\"flex items-center justify-between rounded border p-3\"\n >\n <div className=\"flex items-center gap-3\">\n <module.icon className=\"h-4 w-4 text-muted-foreground\" />\n <span className=\"text-sm font-medium\">{module.name}</span>\n </div>\n <div className=\"flex items-center gap-3\">\n <span className=\"text-xs text-muted-foreground\">{module.uptime}</span>\n <Badge\n variant={module.status === 'operational' ? 'default' : 'destructive'}\n className=\"text-[10px]\"\n >\n {module.status}\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n\n <Card>\n <CardHeader>\n <CardTitle>User Roles</CardTitle>\n <CardDescription>Role distribution and permissions</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"mb-2 grid grid-cols-3 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground\">\n <span>Role</span>\n <span className=\"text-right\">Users</span>\n <span>Permissions</span>\n </div>\n {userRoles.map((role) => (\n <div\n key={role.role}\n className=\"grid grid-cols-3 gap-2 border-b py-2 text-sm last:border-0\"\n >\n <span className=\"font-medium\">{role.role}</span>\n <span className=\"text-right\">{role.count}</span>\n <span className=\"truncate text-xs text-muted-foreground\">{role.permissions}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n\n <Card>\n <CardHeader>\n <CardTitle>Recent Audit Log</CardTitle>\n <CardDescription>System activity and security events</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"mb-2 grid grid-cols-5 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground\">\n <span>Action</span>\n <span>Actor</span>\n <span>Target</span>\n <span>Timestamp</span>\n <span>Severity</span>\n </div>\n {recentAuditLogs.map((log, index) => (\n <div\n key={`${log.action}-${index}`}\n className=\"grid grid-cols-5 gap-2 border-b py-2 text-sm last:border-0\"\n >\n <span className=\"font-medium\">{log.action}</span>\n <span className=\"text-muted-foreground\">{log.actor}</span>\n <span className=\"truncate text-muted-foreground\">{log.target}</span>\n <span className=\"text-xs\">{log.timestamp}</span>\n <Badge\n variant={\n log.severity === 'high'\n ? 'destructive'\n : log.severity === 'medium'\n ? 'secondary'\n : 'outline'\n }\n className=\"w-fit text-[10px]\"\n >\n {log.severity}\n </Badge>\n </div>\n ))}\n </CardContent>\n </Card>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsAnalyticsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/AnalyticsAnalyticsPagePage.tsx"],"names":[],"mappings":"AA+BA,wBAAgB,0BAA0B,4CAsPzC"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { useCrewFoundryStore as e } from "../store/crewfoundryStore.js";
|
|
2
|
+
import { useMemo as t } from "react";
|
|
3
|
+
import { Activity as n, BarChart3 as r, Calendar as i, PieChart as a, TrendingUp as o, Users as s } from "lucide-react";
|
|
4
|
+
import { jsx as c, jsxs as l } from "react/jsx-runtime";
|
|
5
|
+
import { Badge as u, Button as d, Card as f, CardContent as p, CardDescription as m, CardHeader as h, CardTitle as g, Tabs as _, TabsContent as v, TabsList as y, TabsTrigger as b } from "@burdenoff/fe-libs/ui";
|
|
6
|
+
//#region src/crewfoundry/pages/AnalyticsAnalyticsPagePage.tsx
|
|
7
|
+
function x() {
|
|
8
|
+
let { employees: x, departments: S, jobPostings: C, candidates: w, projects: T } = e(), E = t(() => {
|
|
9
|
+
let e = [...x].sort((e, t) => e.startDate.localeCompare(t.startDate)), t = e.slice(-6).map((t, n) => {
|
|
10
|
+
let r = new Date(t.startDate).toLocaleString("en-US", { month: "short" }), i = e.filter((e) => new Date(e.startDate).toLocaleString("en-US", { month: "short" }) === r && e.status === "active").length, a = e.filter((e) => new Date(e.startDate).toLocaleString("en-US", { month: "short" }) === r && e.status === "terminated").length;
|
|
11
|
+
return {
|
|
12
|
+
month: r,
|
|
13
|
+
headcount: Math.max(1, e.length - (5 - n) * 2),
|
|
14
|
+
hires: i,
|
|
15
|
+
exits: a,
|
|
16
|
+
openRoles: Math.max(0, C.filter((e) => e.status === "active").length - n)
|
|
17
|
+
};
|
|
18
|
+
});
|
|
19
|
+
return t.length > 0 ? t : [];
|
|
20
|
+
}, [x, C]), D = S.map((e) => ({
|
|
21
|
+
name: e.name,
|
|
22
|
+
count: e.employeeCount,
|
|
23
|
+
budget: e.budget
|
|
24
|
+
})), O = Math.max(1, ...D.map((e) => e.count)), k = Math.max(1, ...E.map((e) => e.headcount)), A = t(() => [
|
|
25
|
+
{
|
|
26
|
+
stage: "Applications",
|
|
27
|
+
count: C.reduce((e, t) => e + t.applicants, 0),
|
|
28
|
+
color: "bg-blue-500"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
stage: "Screening",
|
|
32
|
+
count: w.filter((e) => e.status === "screening").length,
|
|
33
|
+
color: "bg-indigo-500"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
stage: "Interview",
|
|
37
|
+
count: w.filter((e) => e.status === "interview").length,
|
|
38
|
+
color: "bg-purple-500"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
stage: "Assessment",
|
|
42
|
+
count: w.filter((e) => e.status === "assessment").length,
|
|
43
|
+
color: "bg-pink-500"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
stage: "Offer",
|
|
47
|
+
count: w.filter((e) => e.status === "offer").length,
|
|
48
|
+
color: "bg-orange-500"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
stage: "Hired",
|
|
52
|
+
count: w.filter((e) => e.status === "hired").length,
|
|
53
|
+
color: "bg-green-500"
|
|
54
|
+
}
|
|
55
|
+
], [w, C]), j = Math.max(1, ...A.map((e) => e.count));
|
|
56
|
+
return /* @__PURE__ */ l("div", {
|
|
57
|
+
className: "space-y-6 p-6",
|
|
58
|
+
children: [
|
|
59
|
+
/* @__PURE__ */ l("div", {
|
|
60
|
+
className: "flex items-center justify-between",
|
|
61
|
+
children: [/* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h1", {
|
|
62
|
+
className: "text-2xl font-semibold",
|
|
63
|
+
children: "Workforce Analytics"
|
|
64
|
+
}), /* @__PURE__ */ c("p", {
|
|
65
|
+
className: "text-sm text-muted-foreground",
|
|
66
|
+
children: "Comprehensive analytics across all HR domains"
|
|
67
|
+
})] }), /* @__PURE__ */ l(d, {
|
|
68
|
+
variant: "outline",
|
|
69
|
+
size: "sm",
|
|
70
|
+
children: [/* @__PURE__ */ c(i, { className: "mr-2 h-4 w-4" }), "Rolling 6 Months"]
|
|
71
|
+
})]
|
|
72
|
+
}),
|
|
73
|
+
/* @__PURE__ */ l("div", {
|
|
74
|
+
className: "grid gap-4 md:grid-cols-2 lg:grid-cols-4",
|
|
75
|
+
children: [
|
|
76
|
+
/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, {
|
|
77
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
78
|
+
children: [/* @__PURE__ */ c(g, {
|
|
79
|
+
className: "text-sm font-medium",
|
|
80
|
+
children: "Total Workforce"
|
|
81
|
+
}), /* @__PURE__ */ c(s, { className: "h-4 w-4 text-muted-foreground" })]
|
|
82
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
83
|
+
className: "text-2xl font-bold",
|
|
84
|
+
children: x.length
|
|
85
|
+
}), /* @__PURE__ */ l("div", {
|
|
86
|
+
className: "flex items-center text-xs text-green-600",
|
|
87
|
+
children: [/* @__PURE__ */ c(o, { className: "mr-1 h-3 w-3" }), "Live headcount data"]
|
|
88
|
+
})] })] }),
|
|
89
|
+
/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, {
|
|
90
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
91
|
+
children: [/* @__PURE__ */ c(g, {
|
|
92
|
+
className: "text-sm font-medium",
|
|
93
|
+
children: "Active Departments"
|
|
94
|
+
}), /* @__PURE__ */ c(a, { className: "h-4 w-4 text-muted-foreground" })]
|
|
95
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
96
|
+
className: "text-2xl font-bold",
|
|
97
|
+
children: S.length
|
|
98
|
+
}), /* @__PURE__ */ c("p", {
|
|
99
|
+
className: "text-xs text-muted-foreground",
|
|
100
|
+
children: "All departments tracked"
|
|
101
|
+
})] })] }),
|
|
102
|
+
/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, {
|
|
103
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
104
|
+
children: [/* @__PURE__ */ c(g, {
|
|
105
|
+
className: "text-sm font-medium",
|
|
106
|
+
children: "Active Projects"
|
|
107
|
+
}), /* @__PURE__ */ c(n, { className: "h-4 w-4 text-muted-foreground" })]
|
|
108
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
109
|
+
className: "text-2xl font-bold",
|
|
110
|
+
children: T.filter((e) => e.status === "active").length
|
|
111
|
+
}), /* @__PURE__ */ l("p", {
|
|
112
|
+
className: "text-xs text-muted-foreground",
|
|
113
|
+
children: [T.filter((e) => e.status === "completed").length, " completed"]
|
|
114
|
+
})] })] }),
|
|
115
|
+
/* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, {
|
|
116
|
+
className: "flex flex-row items-center justify-between space-y-0 pb-2",
|
|
117
|
+
children: [/* @__PURE__ */ c(g, {
|
|
118
|
+
className: "text-sm font-medium",
|
|
119
|
+
children: "Hiring Pipeline"
|
|
120
|
+
}), /* @__PURE__ */ c(r, { className: "h-4 w-4 text-muted-foreground" })]
|
|
121
|
+
}), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ c("div", {
|
|
122
|
+
className: "text-2xl font-bold",
|
|
123
|
+
children: w.length
|
|
124
|
+
}), /* @__PURE__ */ c("p", {
|
|
125
|
+
className: "text-xs text-muted-foreground",
|
|
126
|
+
children: "candidates in pipeline"
|
|
127
|
+
})] })] })
|
|
128
|
+
]
|
|
129
|
+
}),
|
|
130
|
+
/* @__PURE__ */ l(_, {
|
|
131
|
+
defaultValue: "overview",
|
|
132
|
+
children: [
|
|
133
|
+
/* @__PURE__ */ l(y, { children: [
|
|
134
|
+
/* @__PURE__ */ c(b, {
|
|
135
|
+
value: "overview",
|
|
136
|
+
children: "Overview"
|
|
137
|
+
}),
|
|
138
|
+
/* @__PURE__ */ c(b, {
|
|
139
|
+
value: "hiring",
|
|
140
|
+
children: "Hiring Funnel"
|
|
141
|
+
}),
|
|
142
|
+
/* @__PURE__ */ c(b, {
|
|
143
|
+
value: "departments",
|
|
144
|
+
children: "Departments"
|
|
145
|
+
})
|
|
146
|
+
] }),
|
|
147
|
+
/* @__PURE__ */ c(v, {
|
|
148
|
+
value: "overview",
|
|
149
|
+
className: "space-y-4",
|
|
150
|
+
children: /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Workforce Growth Trend" }), /* @__PURE__ */ c(m, { children: "Monthly headcount and hiring activity" })] }), /* @__PURE__ */ c(p, {
|
|
151
|
+
className: "space-y-3",
|
|
152
|
+
children: E.map((e) => /* @__PURE__ */ l("div", {
|
|
153
|
+
className: "flex items-center gap-3",
|
|
154
|
+
children: [
|
|
155
|
+
/* @__PURE__ */ c("span", {
|
|
156
|
+
className: "w-10 text-sm text-muted-foreground",
|
|
157
|
+
children: e.month
|
|
158
|
+
}),
|
|
159
|
+
/* @__PURE__ */ c("div", {
|
|
160
|
+
className: "h-5 flex-1 overflow-hidden rounded bg-muted",
|
|
161
|
+
children: /* @__PURE__ */ c("div", {
|
|
162
|
+
className: "h-5 rounded bg-primary",
|
|
163
|
+
style: { width: `${Math.round(e.headcount / k * 100)}%` }
|
|
164
|
+
})
|
|
165
|
+
}),
|
|
166
|
+
/* @__PURE__ */ c("span", {
|
|
167
|
+
className: "w-10 text-right text-sm font-medium",
|
|
168
|
+
children: e.headcount
|
|
169
|
+
}),
|
|
170
|
+
/* @__PURE__ */ l("div", {
|
|
171
|
+
className: "flex w-32 justify-end gap-1",
|
|
172
|
+
children: [/* @__PURE__ */ l(u, {
|
|
173
|
+
variant: "default",
|
|
174
|
+
className: "text-[10px]",
|
|
175
|
+
children: [
|
|
176
|
+
"+",
|
|
177
|
+
e.hires,
|
|
178
|
+
" hired"
|
|
179
|
+
]
|
|
180
|
+
}), /* @__PURE__ */ l(u, {
|
|
181
|
+
variant: "secondary",
|
|
182
|
+
className: "text-[10px]",
|
|
183
|
+
children: [e.openRoles, " open"]
|
|
184
|
+
})]
|
|
185
|
+
})
|
|
186
|
+
]
|
|
187
|
+
}, `${e.month}-${e.headcount}`))
|
|
188
|
+
})] })
|
|
189
|
+
}),
|
|
190
|
+
/* @__PURE__ */ c(v, {
|
|
191
|
+
value: "hiring",
|
|
192
|
+
className: "space-y-4",
|
|
193
|
+
children: /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Hiring Funnel" }), /* @__PURE__ */ c(m, { children: "Candidate pipeline stages" })] }), /* @__PURE__ */ c(p, {
|
|
194
|
+
className: "space-y-4",
|
|
195
|
+
children: A.map((e) => /* @__PURE__ */ l("div", {
|
|
196
|
+
className: "flex items-center gap-3",
|
|
197
|
+
children: [
|
|
198
|
+
/* @__PURE__ */ c("span", {
|
|
199
|
+
className: "w-28 text-sm font-medium",
|
|
200
|
+
children: e.stage
|
|
201
|
+
}),
|
|
202
|
+
/* @__PURE__ */ c("div", {
|
|
203
|
+
className: "h-6 flex-1 overflow-hidden rounded bg-muted",
|
|
204
|
+
children: /* @__PURE__ */ c("div", {
|
|
205
|
+
className: `h-6 rounded ${e.color}`,
|
|
206
|
+
style: { width: `${Math.max(Math.round(e.count / j * 100), 5)}%` }
|
|
207
|
+
})
|
|
208
|
+
}),
|
|
209
|
+
/* @__PURE__ */ c("span", {
|
|
210
|
+
className: "w-10 text-right text-sm font-bold",
|
|
211
|
+
children: e.count
|
|
212
|
+
})
|
|
213
|
+
]
|
|
214
|
+
}, e.stage))
|
|
215
|
+
})] })
|
|
216
|
+
}),
|
|
217
|
+
/* @__PURE__ */ c(v, {
|
|
218
|
+
value: "departments",
|
|
219
|
+
className: "space-y-4",
|
|
220
|
+
children: /* @__PURE__ */ l(f, { children: [/* @__PURE__ */ l(h, { children: [/* @__PURE__ */ c(g, { children: "Department Breakdown" }), /* @__PURE__ */ c(m, { children: "Headcount and budget by department" })] }), /* @__PURE__ */ l(p, { children: [/* @__PURE__ */ l("div", {
|
|
221
|
+
className: "mb-2 grid grid-cols-4 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground",
|
|
222
|
+
children: [
|
|
223
|
+
/* @__PURE__ */ c("span", { children: "Department" }),
|
|
224
|
+
/* @__PURE__ */ c("span", {
|
|
225
|
+
className: "text-right",
|
|
226
|
+
children: "Headcount"
|
|
227
|
+
}),
|
|
228
|
+
/* @__PURE__ */ c("span", {
|
|
229
|
+
className: "text-right",
|
|
230
|
+
children: "Budget"
|
|
231
|
+
}),
|
|
232
|
+
/* @__PURE__ */ c("span", { children: "Distribution" })
|
|
233
|
+
]
|
|
234
|
+
}), D.sort((e, t) => t.count - e.count).map((e) => /* @__PURE__ */ l("div", {
|
|
235
|
+
className: "grid grid-cols-4 items-center gap-2 border-b py-2 text-sm last:border-0",
|
|
236
|
+
children: [
|
|
237
|
+
/* @__PURE__ */ c("span", {
|
|
238
|
+
className: "font-medium",
|
|
239
|
+
children: e.name
|
|
240
|
+
}),
|
|
241
|
+
/* @__PURE__ */ c("span", {
|
|
242
|
+
className: "text-right",
|
|
243
|
+
children: e.count
|
|
244
|
+
}),
|
|
245
|
+
/* @__PURE__ */ l("span", {
|
|
246
|
+
className: "text-right",
|
|
247
|
+
children: [
|
|
248
|
+
"$",
|
|
249
|
+
(e.budget / 1e6).toFixed(1),
|
|
250
|
+
"M"
|
|
251
|
+
]
|
|
252
|
+
}),
|
|
253
|
+
/* @__PURE__ */ c("div", {
|
|
254
|
+
className: "h-3 overflow-hidden rounded bg-muted",
|
|
255
|
+
children: /* @__PURE__ */ c("div", {
|
|
256
|
+
className: "h-3 rounded bg-primary/70",
|
|
257
|
+
style: { width: `${Math.round(e.count / O * 100)}%` }
|
|
258
|
+
})
|
|
259
|
+
})
|
|
260
|
+
]
|
|
261
|
+
}, e.name))] })] })
|
|
262
|
+
})
|
|
263
|
+
]
|
|
264
|
+
})
|
|
265
|
+
]
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
//#endregion
|
|
269
|
+
export { x as AnalyticsAnalyticsPagePage };
|
|
270
|
+
|
|
271
|
+
//# sourceMappingURL=AnalyticsAnalyticsPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsAnalyticsPagePage.js","names":[],"sources":["../../../src/crewfoundry/pages/AnalyticsAnalyticsPagePage.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Activity, BarChart3, Calendar, PieChart, TrendingUp, Users } from 'lucide-react';\nimport {\n Badge,\n Button,\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from '@burdenoff/fe-libs/ui';\nimport { useCrewFoundryStore } from '../store/crewfoundryStore';\n\ntype MonthlyMetric = {\n month: string;\n headcount: number;\n hires: number;\n exits: number;\n openRoles: number;\n};\n\ntype FunnelStage = {\n stage: string;\n count: number;\n color: string;\n};\n\nexport function AnalyticsAnalyticsPagePage() {\n const { employees, departments, jobPostings, candidates, projects } = useCrewFoundryStore();\n\n const monthlyMetrics = useMemo<MonthlyMetric[]>(() => {\n const sortedEmployees = [...employees].sort((a, b) => a.startDate.localeCompare(b.startDate));\n const months = sortedEmployees.slice(-6).map((employee, index) => {\n const month = new Date(employee.startDate).toLocaleString('en-US', { month: 'short' });\n const hires = sortedEmployees.filter(\n (item) =>\n new Date(item.startDate).toLocaleString('en-US', { month: 'short' }) === month &&\n item.status === 'active'\n ).length;\n const exits = sortedEmployees.filter(\n (item) =>\n new Date(item.startDate).toLocaleString('en-US', { month: 'short' }) === month &&\n item.status === 'terminated'\n ).length;\n return {\n month,\n headcount: Math.max(1, sortedEmployees.length - (5 - index) * 2),\n hires,\n exits,\n openRoles: Math.max(\n 0,\n jobPostings.filter((posting) => posting.status === 'active').length - index\n ),\n };\n });\n return months.length > 0 ? months : [];\n }, [employees, jobPostings]);\n\n const deptDistribution = departments.map((department) => ({\n name: department.name,\n count: department.employeeCount,\n budget: department.budget,\n }));\n\n const maxDeptCount = Math.max(1, ...deptDistribution.map((department) => department.count));\n const maxMetric = Math.max(1, ...monthlyMetrics.map((metric) => metric.headcount));\n\n const hiringFunnel = useMemo<FunnelStage[]>(\n () => [\n {\n stage: 'Applications',\n count: jobPostings.reduce((sum, posting) => sum + posting.applicants, 0),\n color: 'bg-blue-500',\n },\n {\n stage: 'Screening',\n count: candidates.filter((candidate) => candidate.status === 'screening').length,\n color: 'bg-indigo-500',\n },\n {\n stage: 'Interview',\n count: candidates.filter((candidate) => candidate.status === 'interview').length,\n color: 'bg-purple-500',\n },\n {\n stage: 'Assessment',\n count: candidates.filter((candidate) => candidate.status === 'assessment').length,\n color: 'bg-pink-500',\n },\n {\n stage: 'Offer',\n count: candidates.filter((candidate) => candidate.status === 'offer').length,\n color: 'bg-orange-500',\n },\n {\n stage: 'Hired',\n count: candidates.filter((candidate) => candidate.status === 'hired').length,\n color: 'bg-green-500',\n },\n ],\n [candidates, jobPostings]\n );\n\n const maxFunnel = Math.max(1, ...hiringFunnel.map((stage) => stage.count));\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <div>\n <h1 className=\"text-2xl font-semibold\">Workforce Analytics</h1>\n <p className=\"text-sm text-muted-foreground\">\n Comprehensive analytics across all HR domains\n </p>\n </div>\n <Button variant=\"outline\" size=\"sm\">\n <Calendar className=\"mr-2 h-4 w-4\" />\n Rolling 6 Months\n </Button>\n </div>\n\n <div className=\"grid gap-4 md:grid-cols-2 lg:grid-cols-4\">\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Total Workforce</CardTitle>\n <Users className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{employees.length}</div>\n <div className=\"flex items-center text-xs text-green-600\">\n <TrendingUp className=\"mr-1 h-3 w-3\" />\n Live headcount data\n </div>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Departments</CardTitle>\n <PieChart className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{departments.length}</div>\n <p className=\"text-xs text-muted-foreground\">All departments tracked</p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Active Projects</CardTitle>\n <Activity className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">\n {projects.filter((project) => project.status === 'active').length}\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {projects.filter((project) => project.status === 'completed').length} completed\n </p>\n </CardContent>\n </Card>\n <Card>\n <CardHeader className=\"flex flex-row items-center justify-between space-y-0 pb-2\">\n <CardTitle className=\"text-sm font-medium\">Hiring Pipeline</CardTitle>\n <BarChart3 className=\"h-4 w-4 text-muted-foreground\" />\n </CardHeader>\n <CardContent>\n <div className=\"text-2xl font-bold\">{candidates.length}</div>\n <p className=\"text-xs text-muted-foreground\">candidates in pipeline</p>\n </CardContent>\n </Card>\n </div>\n\n <Tabs defaultValue=\"overview\">\n <TabsList>\n <TabsTrigger value=\"overview\">Overview</TabsTrigger>\n <TabsTrigger value=\"hiring\">Hiring Funnel</TabsTrigger>\n <TabsTrigger value=\"departments\">Departments</TabsTrigger>\n </TabsList>\n\n <TabsContent value=\"overview\" className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle>Workforce Growth Trend</CardTitle>\n <CardDescription>Monthly headcount and hiring activity</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-3\">\n {monthlyMetrics.map((metric) => (\n <div\n key={`${metric.month}-${metric.headcount}`}\n className=\"flex items-center gap-3\"\n >\n <span className=\"w-10 text-sm text-muted-foreground\">{metric.month}</span>\n <div className=\"h-5 flex-1 overflow-hidden rounded bg-muted\">\n <div\n className=\"h-5 rounded bg-primary\"\n style={{ width: `${Math.round((metric.headcount / maxMetric) * 100)}%` }}\n />\n </div>\n <span className=\"w-10 text-right text-sm font-medium\">{metric.headcount}</span>\n <div className=\"flex w-32 justify-end gap-1\">\n <Badge variant=\"default\" className=\"text-[10px]\">\n +{metric.hires} hired\n </Badge>\n <Badge variant=\"secondary\" className=\"text-[10px]\">\n {metric.openRoles} open\n </Badge>\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"hiring\" className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle>Hiring Funnel</CardTitle>\n <CardDescription>Candidate pipeline stages</CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n {hiringFunnel.map((stage) => (\n <div key={stage.stage} className=\"flex items-center gap-3\">\n <span className=\"w-28 text-sm font-medium\">{stage.stage}</span>\n <div className=\"h-6 flex-1 overflow-hidden rounded bg-muted\">\n <div\n className={`h-6 rounded ${stage.color}`}\n style={{\n width: `${Math.max(Math.round((stage.count / maxFunnel) * 100), 5)}%`,\n }}\n />\n </div>\n <span className=\"w-10 text-right text-sm font-bold\">{stage.count}</span>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n\n <TabsContent value=\"departments\" className=\"space-y-4\">\n <Card>\n <CardHeader>\n <CardTitle>Department Breakdown</CardTitle>\n <CardDescription>Headcount and budget by department</CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"mb-2 grid grid-cols-4 gap-2 border-b pb-2 text-xs font-medium text-muted-foreground\">\n <span>Department</span>\n <span className=\"text-right\">Headcount</span>\n <span className=\"text-right\">Budget</span>\n <span>Distribution</span>\n </div>\n {deptDistribution\n .sort((a, b) => b.count - a.count)\n .map((department) => (\n <div\n key={department.name}\n className=\"grid grid-cols-4 items-center gap-2 border-b py-2 text-sm last:border-0\"\n >\n <span className=\"font-medium\">{department.name}</span>\n <span className=\"text-right\">{department.count}</span>\n <span className=\"text-right\">${(department.budget / 1000000).toFixed(1)}M</span>\n <div className=\"h-3 overflow-hidden rounded bg-muted\">\n <div\n className=\"h-3 rounded bg-primary/70\"\n style={{ width: `${Math.round((department.count / maxDeptCount) * 100)}%` }}\n />\n </div>\n </div>\n ))}\n </CardContent>\n </Card>\n </TabsContent>\n </Tabs>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsEmployeeAnalyticsPagePage.d.ts","sourceRoot":"","sources":["../../../src/crewfoundry/pages/AnalyticsEmployeeAnalyticsPagePage.tsx"],"names":[],"mappings":"AAYA,wBAAgB,kCAAkC,4CAmUjD"}
|