@burdenoff/microfe-crewfoundry 2026.1030.3 → 2026.1102.1

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.
Files changed (55) hide show
  1. package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -1
  2. package/dist/crewfoundry/CrewFoundryRoutes.js +18 -14
  3. package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -1
  4. package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts +9 -0
  5. package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts.map +1 -1
  6. package/dist/crewfoundry/components/EmployeeSkillsPanel.js +111 -77
  7. package/dist/crewfoundry/components/EmployeeSkillsPanel.js.map +1 -1
  8. package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.d.ts +13 -0
  9. package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.d.ts.map +1 -0
  10. package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.js +128 -0
  11. package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.js.map +1 -0
  12. package/dist/crewfoundry/components/skills/MergeSkillDialog.d.ts +15 -0
  13. package/dist/crewfoundry/components/skills/MergeSkillDialog.d.ts.map +1 -0
  14. package/dist/crewfoundry/components/skills/MergeSkillDialog.js +58 -0
  15. package/dist/crewfoundry/components/skills/MergeSkillDialog.js.map +1 -0
  16. package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.d.ts +15 -0
  17. package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.d.ts.map +1 -0
  18. package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.js +163 -0
  19. package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.js.map +1 -0
  20. package/dist/crewfoundry/components/skills/SkillPicker.d.ts +20 -0
  21. package/dist/crewfoundry/components/skills/SkillPicker.d.ts.map +1 -0
  22. package/dist/crewfoundry/components/skills/SkillPicker.js +73 -0
  23. package/dist/crewfoundry/components/skills/SkillPicker.js.map +1 -0
  24. package/dist/crewfoundry/components/skills/SkillRelationsDialog.d.ts +13 -0
  25. package/dist/crewfoundry/components/skills/SkillRelationsDialog.d.ts.map +1 -0
  26. package/dist/crewfoundry/components/skills/SkillRelationsDialog.js +156 -0
  27. package/dist/crewfoundry/components/skills/SkillRelationsDialog.js.map +1 -0
  28. package/dist/crewfoundry/lib/analytics.d.ts +1 -29
  29. package/dist/crewfoundry/lib/analytics.d.ts.map +1 -1
  30. package/dist/crewfoundry/lib/analytics.js +3 -48
  31. package/dist/crewfoundry/lib/analytics.js.map +1 -1
  32. package/dist/crewfoundry/lib/skillMatching.d.ts +70 -0
  33. package/dist/crewfoundry/lib/skillMatching.d.ts.map +1 -0
  34. package/dist/crewfoundry/lib/skillMatching.js +73 -0
  35. package/dist/crewfoundry/lib/skillMatching.js.map +1 -0
  36. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +8 -0
  37. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -1
  38. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +468 -212
  39. package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
  40. package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -1
  41. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +210 -177
  42. package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
  43. package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js +6 -6
  44. package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.d.ts +9 -0
  45. package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.d.ts.map +1 -0
  46. package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.js +456 -0
  47. package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.js.map +1 -0
  48. package/dist/crewfoundry/pages/ProjectsResourcingPagePage.d.ts.map +1 -1
  49. package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js +50 -102
  50. package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js.map +1 -1
  51. package/dist/crewfoundry/store/crewfoundryStore.d.ts +145 -0
  52. package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
  53. package/dist/crewfoundry/store/crewfoundryStore.js +188 -57
  54. package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
  55. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { create as e } from "zustand";
2
2
  import { clearGraphqlFetchResponseCache as t, graphqlFetch as n } from "@burdenoff/fe-libs/shared/graphql";
3
3
  //#region src/crewfoundry/store/crewfoundryStore.ts
4
- var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n employees { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate }\n departments { id name headId headName employeeCount budget location status }\n jobPostings { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits }\n candidates { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate }\n interviews { id candidateId candidateName position interviewerName date time type status feedback rating }\n announcements { id title content author authorRole category priority isPinned createdAt viewCount tags }\n teams { id name description leadId leadName members memberCount department status projectCount createdAt }\n projects { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks }\n leaveRequests { id employeeId employeeName department type startDate endDate days status reason approverName }\n timeEntries { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable }\n vendors { id name category contactPerson email phone status contractValue rating }\n clients { id name industry contactPerson email phone status revenue projects since }\n }\n }\n", i = "\n query CrewPayrollRecords {\n crewPayrollRecords { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod }\n }\n", a = "\n query CrewfoundryWorkspaceBootstrapWithOverlap(\n $workspaceId: ID!\n $projectPagination: PaginationInput\n $groupFirst: Int\n $conversationFirst: Int\n ) {\n crewfoundryBootstrap {\n employees { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate }\n departments { id name headId headName employeeCount budget location status }\n jobPostings { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits }\n candidates { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate }\n interviews { id candidateId candidateName position interviewerName date time type status feedback rating }\n announcements { id title content author authorRole category priority isPinned createdAt viewCount tags }\n teams { id name description leadId leadName members memberCount department status projectCount createdAt }\n projects { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks }\n leaveRequests { id employeeId employeeName department type startDate endDate days status reason approverName }\n timeEntries { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable }\n vendors { id name category contactPerson email phone status contractValue rating }\n clients { id name industry contactPerson email phone status revenue projects since }\n }\n projects(filter: { workspaceId: $workspaceId }, pagination: $projectPagination) {\n items {\n id\n name\n key\n creatorId\n status\n config\n archived\n createdAt\n updatedAt\n }\n }\n groups(first: $groupFirst) {\n edges {\n node {\n id\n name\n description\n groupType\n status\n memberCount\n ownerId\n createdAt\n }\n }\n }\n conversations(first: $conversationFirst) {\n edges {\n node {\n id\n title\n description\n state\n unreadCount\n memberCount\n updatedAt\n }\n }\n }\n }\n", o = "mutation CreateCrewEmployee($input: CreateCrewEmployeeInput!) { createCrewEmployee(input: $input) { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate } }", s = "mutation UpdateCrewEmployee($id: ID!, $input: UpdateCrewEmployeeInput!) { updateCrewEmployee(id: $id, input: $input) { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate } }", c = "mutation RemoveCrewEmployee($id: ID!) { removeCrewEmployee(id: $id) }", l = "mutation CreateCrewJobPosting($input: CreateCrewJobPostingInput!) { createCrewJobPosting(input: $input) { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits } }", u = "mutation UpdateCrewJobPosting($id: ID!, $input: UpdateCrewJobPostingInput!) { updateCrewJobPosting(id: $id, input: $input) { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits } }", d = "mutation CreateCrewCandidate($input: CreateCrewCandidateInput!) { createCrewCandidate(input: $input) { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } }", f = "mutation UpdateCrewCandidate($id: ID!, $input: UpdateCrewCandidateInput!) { updateCrewCandidate(id: $id, input: $input) { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } }", p = "mutation CreateCrewAnnouncement($input: CreateCrewAnnouncementInput!) { createCrewAnnouncement(input: $input) { id title content author authorRole category priority isPinned createdAt viewCount tags } }", m = "mutation CreateCrewLeaveRequest($input: CreateCrewLeaveRequestInput!) { createCrewLeaveRequest(input: $input) { id employeeId employeeName department type startDate endDate days status reason approverName } }", h = "mutation UpdateCrewLeaveRequest($id: ID!, $input: UpdateCrewLeaveRequestInput!) { updateCrewLeaveRequest(id: $id, input: $input) { id employeeId employeeName department type startDate endDate days status reason approverName } }", g = "mutation RemoveCrewJobPosting($id: ID!) { removeCrewJobPosting(id: $id) }", _ = "mutation RemoveCrewCandidate($id: ID!) { removeCrewCandidate(id: $id) }", v = "mutation UpdateCrewAnnouncement($id: ID!, $input: UpdateCrewAnnouncementInput!) { updateCrewAnnouncement(id: $id, input: $input) { id title content author authorRole category priority isPinned createdAt viewCount tags } }", y = "mutation RemoveCrewAnnouncement($id: ID!) { removeCrewAnnouncement(id: $id) }", b = "mutation CreateCrewInterview($input: CreateCrewInterviewInput!) { createCrewInterview(input: $input) { id candidateId candidateName position interviewerName date time type status feedback rating } }", x = "mutation UpdateCrewInterview($id: ID!, $input: UpdateCrewInterviewInput!) { updateCrewInterview(id: $id, input: $input) { id candidateId candidateName position interviewerName date time type status feedback rating } }", ee = "mutation RemoveCrewInterview($id: ID!) { removeCrewInterview(id: $id) }", te = "mutation CreateCrewVendor($input: CreateCrewVendorInput!) { createCrewVendor(input: $input) { id name category contactPerson email phone status contractValue rating } }", ne = "mutation UpdateCrewVendor($id: ID!, $input: UpdateCrewVendorInput!) { updateCrewVendor(id: $id, input: $input) { id name category contactPerson email phone status contractValue rating } }", re = "mutation RemoveCrewVendor($id: ID!) { removeCrewVendor(id: $id) }", ie = "mutation CreateCrewClient($input: CreateCrewClientInput!) { createCrewClient(input: $input) { id name industry contactPerson email phone status revenue projects since } }", ae = "mutation UpdateCrewClient($id: ID!, $input: UpdateCrewClientInput!) { updateCrewClient(id: $id, input: $input) { id name industry contactPerson email phone status revenue projects since } }", oe = "mutation RemoveCrewClient($id: ID!) { removeCrewClient(id: $id) }", se = "mutation CreateCrewTeam($input: CreateCrewTeamInput!) { createCrewTeam(input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", ce = "mutation UpdateCrewTeam($id: ID!, $input: UpdateCrewTeamInput!) { updateCrewTeam(id: $id, input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", le = "mutation RemoveCrewTeam($id: ID!) { removeCrewTeam(id: $id) }", ue = "mutation CreateCrewProject($input: CreateCrewProjectInput!) { createCrewProject(input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", de = "mutation UpdateCrewProject($id: ID!, $input: UpdateCrewProjectInput!) { updateCrewProject(id: $id, input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", fe = "mutation RemoveCrewProject($id: ID!) { removeCrewProject(id: $id) }", pe = "mutation CreateCrewDepartment($input: CreateCrewDepartmentInput!) { createCrewDepartment(input: $input) { id name headId headName employeeCount budget location status } }", me = "mutation UpdateCrewDepartment($id: ID!, $input: UpdateCrewDepartmentInput!) { updateCrewDepartment(id: $id, input: $input) { id name headId headName employeeCount budget location status } }", he = "mutation RemoveCrewDepartment($id: ID!) { removeCrewDepartment(id: $id) }", ge = "mutation CreateCrewPayrollRecord($input: CreateCrewPayrollRecordInput!) { createCrewPayrollRecord(input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", _e = "mutation UpdateCrewPayrollRecord($id: ID!, $input: UpdateCrewPayrollRecordInput!) { updateCrewPayrollRecord(id: $id, input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", ve = "mutation RemoveCrewPayrollRecord($id: ID!) { removeCrewPayrollRecord(id: $id) }", S = "id country currency period payDate status employeeCount totalGrossPay totalNetPay calculatedAt approvedAt approvedBy notes", ye = `query CrewPayrollRuns { crewPayrollRuns { ${S} } }`, be = `mutation CreateCrewPayrollRun($input: CreateCrewPayrollRunInput!) { createCrewPayrollRun(input: $input) { ${S} } }`, xe = `mutation CalculateCrewPayrollRun($id: ID!) { calculateCrewPayrollRun(id: $id) { ${S} } }`, Se = `mutation ApproveCrewPayrollRun($id: ID!) { approveCrewPayrollRun(id: $id) { ${S} } }`, Ce = "mutation RemoveCrewPayrollRun($id: ID!) { removeCrewPayrollRun(id: $id) }", we = "query CrewPayslips($filter: CrewPayslipFilterInput) { crewPayslips(filter: $filter) { id payrollRunId employeeId employeeName country currency period annualGrossSalary grossPay taxableIncome incomeTax employeeSocialContrib employerSocialContrib otherDeductions netPay incomeTaxBrackets { label rate bandFrom bandTo taxableInBand taxOnBand } employeeContributions { label rate base amount } employerContributions { label rate base amount } otherDeductionLines { label rate base amount } assumptions } }", Te = "mutation CreateCrewTimeEntry($input: CreateCrewTimeEntryInput!) { createCrewTimeEntry(input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", Ee = "mutation UpdateCrewTimeEntry($id: ID!, $input: UpdateCrewTimeEntryInput!) { updateCrewTimeEntry(id: $id, input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", De = "mutation RemoveCrewTimeEntry($id: ID!) { removeCrewTimeEntry(id: $id) }", C = "query CrewJobPostingMatches($jobPostingId: ID!, $filter: CrewCandidateMatchFilterInput, $limit: Int) { crewJobPostingMatches(jobPostingId: $jobPostingId, filter: $filter, limit: $limit) { candidateId jobPostingId score skillScore experienceScore matchedSkills missingSkills rationale candidate { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } } }", w = "query CrewSkillsGap { crewSkillsGap { skill employeesWithSkill openJobsRequiringSkill shortage } }", T = "query EmployeeDocuments($employeeId: ID!) { employeeDocuments(employeeId: $employeeId) { id employeeId fileId title category uploadedBy uploadedAt } }", E = "mutation AttachEmployeeDocument($input: AttachCrewEmployeeDocumentInput!) { attachEmployeeDocument(input: $input) { id employeeId fileId title category uploadedBy uploadedAt } }", Oe = "mutation DetachEmployeeDocument($id: ID!) { detachEmployeeDocument(id: $id) }", ke = "query CrewEmployeeSkillProfile($id: ID!) { crewEmployee(id: $id) { id skills skillProfile { id skillId proficiency verifiedFrom lastUsedAt skill { id name category source } } } }", Ae = "mutation AttachCrewSkill($input: AttachCrewSkillInput!) { attachCrewSkill(input: $input) { id } }", je = "mutation DetachCrewSkill($employeeId: ID!, $skillId: ID!) { detachCrewSkill(employeeId: $employeeId, skillId: $skillId) }", Me = "mutation EnsureFolderByPath($path: String!) { ensureFolderByPath(path: $path) { id } }", Ne = "mutation InitiateUpload($input: InitiateUploadInput!) { initiateUpload(input: $input) { session { id } uploadUrl } }", Pe = "mutation CompleteUpload($input: CompleteUploadInput!) { completeUpload(input: $input) { file { id } } }", Fe = "query CrewOnboardings { crewOnboardings { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", Ie = "mutation CreateCrewOnboarding($input: CreateCrewOnboardingInput!) { createCrewOnboarding(input: $input) { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", Le = "mutation UpdateCrewOnboarding($id: ID!, $input: UpdateCrewOnboardingInput!) { updateCrewOnboarding(id: $id, input: $input) { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", Re = "mutation RemoveCrewOnboarding($id: ID!) { removeCrewOnboarding(id: $id) }", ze = "mutation CreateCrewOnboardingTask($input: CreateCrewOnboardingTaskInput!) { createCrewOnboardingTask(input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", Be = "mutation UpdateCrewOnboardingTask($id: ID!, $input: UpdateCrewOnboardingTaskInput!) { updateCrewOnboardingTask(id: $id, input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", Ve = "mutation RemoveCrewOnboardingTask($id: ID!) { removeCrewOnboardingTask(id: $id) }", He = "mutation ToggleCrewOnboardingTask($id: ID!, $completed: Boolean!) { toggleCrewOnboardingTask(id: $id, completed: $completed) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", D = "id title description contentUrl durationMinutes isActive requiredForRoles createdAt updatedAt", O = "id courseId courseTitle employeeId employeeName status startedAt completedAt createdAt updatedAt", Ue = `query CrewLearning($coursePage: PaginationInput, $enrollmentPage: PaginationInput) { crewTrainingCourses(pagination: $coursePage) { ${D} } crewEnrollments(pagination: $enrollmentPage) { ${O} } crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }`, We = `query CrewTrainingCourses($pagination: PaginationInput) { crewTrainingCourses(pagination: $pagination) { ${D} } }`, Ge = `query CrewEnrollments($pagination: PaginationInput) { crewEnrollments(pagination: $pagination) { ${O} } }`, Ke = "query CrewTrainingCompletionDashboard { crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }", qe = `mutation CreateCrewTrainingCourse($input: CreateCrewTrainingCourseInput!) { createCrewTrainingCourse(input: $input) { ${D} } }`, k = `mutation UpdateCrewTrainingCourse($id: ID!, $input: UpdateCrewTrainingCourseInput!) { updateCrewTrainingCourse(id: $id, input: $input) { ${D} } }`, Je = "mutation RemoveCrewTrainingCourse($id: ID!) { removeCrewTrainingCourse(id: $id) }", Ye = `mutation CreateCrewEnrollment($input: CreateCrewEnrollmentInput!) { createCrewEnrollment(input: $input) { ${O} } }`, Xe = `mutation UpdateCrewEnrollmentStatus($id: ID!, $status: String!) { updateCrewEnrollmentStatus(id: $id, status: $status) { ${O} } }`, Ze = "mutation RemoveCrewEnrollment($id: ID!) { removeCrewEnrollment(id: $id) }", A = "id title description category providerActorId providerName rate rateUnit currency status createdAt updatedAt", j = "id listingId listingTitle providerActorId providerName clientActorId clientName status rate rateUnit currency notes scheduledStart scheduledEnd cancelledReason createdAt updatedAt", M = "id bookingId amount currency releaseCondition status heldAt releasedAt releasedBy notes createdAt updatedAt", Qe = `query CrewServiceListings($pagination: PaginationInput) { crewServiceListings(pagination: $pagination) { ${A} } }`, $e = `query CrewBookings($pagination: PaginationInput) { crewBookings(pagination: $pagination) { ${j} } }`, et = `query CrewEscrowRecords($pagination: PaginationInput) { crewEscrowRecords(pagination: $pagination) { ${M} } }`, tt = `mutation CreateCrewServiceListing($input: CreateCrewServiceListingInput!) { createCrewServiceListing(input: $input) { ${A} } }`, nt = `mutation UpdateMyServiceListing($id: ID!, $input: UpdateCrewServiceListingInput!) { updateMyServiceListing(id: $id, input: $input) { ${A} } }`, rt = "mutation RemoveMyServiceListing($id: ID!) { removeMyServiceListing(id: $id) }", it = `mutation CreateCrewBooking($input: CreateCrewBookingInput!) { createCrewBooking(input: $input) { ${j} } }`, at = `mutation UpdateMyBookingStatus($id: ID!, $status: String!) { updateMyBookingStatus(id: $id, status: $status) { ${j} } }`, ot = `mutation ReleaseCrewEscrowRecord($id: ID!) { releaseCrewEscrowRecord(id: $id) { ${M} } }`, st = `mutation CancelCrewEscrowRecord($id: ID!) { cancelCrewEscrowRecord(id: $id) { ${M} } }`, N = 100, ct = 10, P = (e) => e.toUpperCase().replaceAll("-", "_"), F = {
4
+ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n employees { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate }\n departments { id name headId headName employeeCount budget location status }\n jobPostings { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits }\n candidates { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate }\n interviews { id candidateId candidateName position interviewerName date time type status feedback rating }\n announcements { id title content author authorRole category priority isPinned createdAt viewCount tags }\n teams { id name description leadId leadName members memberCount department status projectCount createdAt }\n projects { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks }\n leaveRequests { id employeeId employeeName department type startDate endDate days status reason approverName }\n timeEntries { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable }\n vendors { id name category contactPerson email phone status contractValue rating }\n clients { id name industry contactPerson email phone status revenue projects since }\n }\n }\n", i = "\n query CrewPayrollRecords {\n crewPayrollRecords { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod }\n }\n", a = "\n query CrewfoundryWorkspaceBootstrapWithOverlap(\n $workspaceId: ID!\n $projectPagination: PaginationInput\n $groupFirst: Int\n $conversationFirst: Int\n ) {\n crewfoundryBootstrap {\n employees { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate }\n departments { id name headId headName employeeCount budget location status }\n jobPostings { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits }\n candidates { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate }\n interviews { id candidateId candidateName position interviewerName date time type status feedback rating }\n announcements { id title content author authorRole category priority isPinned createdAt viewCount tags }\n teams { id name description leadId leadName members memberCount department status projectCount createdAt }\n projects { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks }\n leaveRequests { id employeeId employeeName department type startDate endDate days status reason approverName }\n timeEntries { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable }\n vendors { id name category contactPerson email phone status contractValue rating }\n clients { id name industry contactPerson email phone status revenue projects since }\n }\n projects(filter: { workspaceId: $workspaceId }, pagination: $projectPagination) {\n items {\n id\n name\n key\n creatorId\n status\n config\n archived\n createdAt\n updatedAt\n }\n }\n groups(first: $groupFirst) {\n edges {\n node {\n id\n name\n description\n groupType\n status\n memberCount\n ownerId\n createdAt\n }\n }\n }\n conversations(first: $conversationFirst) {\n edges {\n node {\n id\n title\n description\n state\n unreadCount\n memberCount\n updatedAt\n }\n }\n }\n }\n", o = "mutation CreateCrewEmployee($input: CreateCrewEmployeeInput!) { createCrewEmployee(input: $input) { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate } }", s = "mutation UpdateCrewEmployee($id: ID!, $input: UpdateCrewEmployeeInput!) { updateCrewEmployee(id: $id, input: $input) { id firstName lastName email department position status type salary startDate avatar location managerId phone performanceScore skills terminationDate } }", c = "mutation RemoveCrewEmployee($id: ID!) { removeCrewEmployee(id: $id) }", l = "mutation CreateCrewJobPosting($input: CreateCrewJobPostingInput!) { createCrewJobPosting(input: $input) { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits } }", u = "mutation UpdateCrewJobPosting($id: ID!, $input: UpdateCrewJobPostingInput!) { updateCrewJobPosting(id: $id, input: $input) { id title department location type experienceLevel salaryMin salaryMax status applicants postedDate deadline description requirements benefits } }", d = "mutation CreateCrewCandidate($input: CreateCrewCandidateInput!) { createCrewCandidate(input: $input) { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } }", f = "mutation UpdateCrewCandidate($id: ID!, $input: UpdateCrewCandidateInput!) { updateCrewCandidate(id: $id, input: $input) { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } }", p = "mutation CreateCrewAnnouncement($input: CreateCrewAnnouncementInput!) { createCrewAnnouncement(input: $input) { id title content author authorRole category priority isPinned createdAt viewCount tags } }", m = "mutation CreateCrewLeaveRequest($input: CreateCrewLeaveRequestInput!) { createCrewLeaveRequest(input: $input) { id employeeId employeeName department type startDate endDate days status reason approverName } }", h = "mutation UpdateCrewLeaveRequest($id: ID!, $input: UpdateCrewLeaveRequestInput!) { updateCrewLeaveRequest(id: $id, input: $input) { id employeeId employeeName department type startDate endDate days status reason approverName } }", g = "mutation RemoveCrewJobPosting($id: ID!) { removeCrewJobPosting(id: $id) }", _ = "mutation RemoveCrewCandidate($id: ID!) { removeCrewCandidate(id: $id) }", v = "mutation UpdateCrewAnnouncement($id: ID!, $input: UpdateCrewAnnouncementInput!) { updateCrewAnnouncement(id: $id, input: $input) { id title content author authorRole category priority isPinned createdAt viewCount tags } }", y = "mutation RemoveCrewAnnouncement($id: ID!) { removeCrewAnnouncement(id: $id) }", b = "mutation CreateCrewInterview($input: CreateCrewInterviewInput!) { createCrewInterview(input: $input) { id candidateId candidateName position interviewerName date time type status feedback rating } }", x = "mutation UpdateCrewInterview($id: ID!, $input: UpdateCrewInterviewInput!) { updateCrewInterview(id: $id, input: $input) { id candidateId candidateName position interviewerName date time type status feedback rating } }", ee = "mutation RemoveCrewInterview($id: ID!) { removeCrewInterview(id: $id) }", te = "mutation CreateCrewVendor($input: CreateCrewVendorInput!) { createCrewVendor(input: $input) { id name category contactPerson email phone status contractValue rating } }", ne = "mutation UpdateCrewVendor($id: ID!, $input: UpdateCrewVendorInput!) { updateCrewVendor(id: $id, input: $input) { id name category contactPerson email phone status contractValue rating } }", re = "mutation RemoveCrewVendor($id: ID!) { removeCrewVendor(id: $id) }", ie = "mutation CreateCrewClient($input: CreateCrewClientInput!) { createCrewClient(input: $input) { id name industry contactPerson email phone status revenue projects since } }", ae = "mutation UpdateCrewClient($id: ID!, $input: UpdateCrewClientInput!) { updateCrewClient(id: $id, input: $input) { id name industry contactPerson email phone status revenue projects since } }", oe = "mutation RemoveCrewClient($id: ID!) { removeCrewClient(id: $id) }", se = "mutation CreateCrewTeam($input: CreateCrewTeamInput!) { createCrewTeam(input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", ce = "mutation UpdateCrewTeam($id: ID!, $input: UpdateCrewTeamInput!) { updateCrewTeam(id: $id, input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", le = "mutation RemoveCrewTeam($id: ID!) { removeCrewTeam(id: $id) }", ue = "mutation CreateCrewProject($input: CreateCrewProjectInput!) { createCrewProject(input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", de = "mutation UpdateCrewProject($id: ID!, $input: UpdateCrewProjectInput!) { updateCrewProject(id: $id, input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", fe = "mutation RemoveCrewProject($id: ID!) { removeCrewProject(id: $id) }", pe = "mutation CreateCrewDepartment($input: CreateCrewDepartmentInput!) { createCrewDepartment(input: $input) { id name headId headName employeeCount budget location status } }", me = "mutation UpdateCrewDepartment($id: ID!, $input: UpdateCrewDepartmentInput!) { updateCrewDepartment(id: $id, input: $input) { id name headId headName employeeCount budget location status } }", he = "mutation RemoveCrewDepartment($id: ID!) { removeCrewDepartment(id: $id) }", ge = "mutation CreateCrewPayrollRecord($input: CreateCrewPayrollRecordInput!) { createCrewPayrollRecord(input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", _e = "mutation UpdateCrewPayrollRecord($id: ID!, $input: UpdateCrewPayrollRecordInput!) { updateCrewPayrollRecord(id: $id, input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", ve = "mutation RemoveCrewPayrollRecord($id: ID!) { removeCrewPayrollRecord(id: $id) }", S = "id country currency period payDate status employeeCount totalGrossPay totalNetPay calculatedAt approvedAt approvedBy notes", ye = `query CrewPayrollRuns { crewPayrollRuns { ${S} } }`, be = `mutation CreateCrewPayrollRun($input: CreateCrewPayrollRunInput!) { createCrewPayrollRun(input: $input) { ${S} } }`, xe = `mutation CalculateCrewPayrollRun($id: ID!) { calculateCrewPayrollRun(id: $id) { ${S} } }`, Se = `mutation ApproveCrewPayrollRun($id: ID!) { approveCrewPayrollRun(id: $id) { ${S} } }`, Ce = "mutation RemoveCrewPayrollRun($id: ID!) { removeCrewPayrollRun(id: $id) }", we = "query CrewPayslips($filter: CrewPayslipFilterInput) { crewPayslips(filter: $filter) { id payrollRunId employeeId employeeName country currency period annualGrossSalary grossPay taxableIncome incomeTax employeeSocialContrib employerSocialContrib otherDeductions netPay incomeTaxBrackets { label rate bandFrom bandTo taxableInBand taxOnBand } employeeContributions { label rate base amount } employerContributions { label rate base amount } otherDeductionLines { label rate base amount } assumptions } }", Te = "mutation CreateCrewTimeEntry($input: CreateCrewTimeEntryInput!) { createCrewTimeEntry(input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", Ee = "mutation UpdateCrewTimeEntry($id: ID!, $input: UpdateCrewTimeEntryInput!) { updateCrewTimeEntry(id: $id, input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", De = "mutation RemoveCrewTimeEntry($id: ID!) { removeCrewTimeEntry(id: $id) }", Oe = "query CrewJobPostingMatches($jobPostingId: ID!, $filter: CrewCandidateMatchFilterInput, $limit: Int) { crewJobPostingMatches(jobPostingId: $jobPostingId, filter: $filter, limit: $limit) { candidateId jobPostingId score skillScore experienceScore matchedSkills missingSkills rationale candidate { id firstName lastName email phone position status appliedDate resumeUrl rating source experience skills currentCompany notes hiredDate } } }", C = "query CrewSkillsGap { crewSkillsGap { skill employeesWithSkill openJobsRequiringSkill shortage } }", w = "query CrewExecutiveDashboard { crewExecutiveDashboard { totalHeadcount activeHeadcount newHiresLast90Days exitsLast90Days averagePerformanceScore averageTenureMonths attritionRisk { highCount mediumCount lowCount totalAssessed topRisks { employeeId employeeName department riskLevel riskScore drivers } } headcountGap { department current openPostings projectedHeadcount } skillsGap { skill employeesWithSkill openJobsRequiringSkill shortage } costProjection { department monthly annual headcount } generatedAt } }", T = "query EmployeeDocuments($employeeId: ID!) { employeeDocuments(employeeId: $employeeId) { id employeeId fileId title category uploadedBy uploadedAt } }", ke = "mutation AttachEmployeeDocument($input: AttachCrewEmployeeDocumentInput!) { attachEmployeeDocument(input: $input) { id employeeId fileId title category uploadedBy uploadedAt } }", Ae = "mutation DetachEmployeeDocument($id: ID!) { detachEmployeeDocument(id: $id) }", je = "query CrewEmployeeSkillProfile($id: ID!) { crewEmployee(id: $id) { id skills skillProfile { id skillId proficiency verifiedFrom lastUsedAt skill { id name category source } } } }", Me = "mutation AttachCrewSkill($input: AttachCrewSkillInput!) { attachCrewSkill(input: $input) { id } }", Ne = "mutation DetachCrewSkill($employeeId: ID!, $skillId: ID!) { detachCrewSkill(employeeId: $employeeId, skillId: $skillId) }", E = 100, Pe = 50, Fe = "query CrewSkillsTaxonomy($pagination: PaginationInput) { crewSkills(pagination: $pagination) { id name slug category source description aliases employeeCount candidateCount relations { id type fromSkillId toSkillId } } }", Ie = "query CrewSkillCategories { crewSkillCategories }", Le = "mutation CreateCrewSkill($input: CreateCrewSkillInput!) { createCrewSkill(input: $input) { id } }", Re = "mutation UpdateCrewSkill($id: ID!, $input: UpdateCrewSkillInput!) { updateCrewSkill(id: $id, input: $input) { id } }", ze = "mutation MergeCrewSkills($sourceId: ID!, $targetId: ID!) { mergeCrewSkills(sourceId: $sourceId, targetId: $targetId) { target { id name } employeesMoved candidatesMoved jobPostingsMoved } }", Be = "mutation RemoveCrewSkill($id: ID!) { removeCrewSkill(id: $id) }", Ve = "mutation CreateCrewSkillRelation($input: CreateCrewSkillRelationInput!) { createCrewSkillRelation(input: $input) { id } }", He = "mutation RemoveCrewSkillRelation($id: ID!) { removeCrewSkillRelation(id: $id) }", Ue = "query CrewEmployeesBySkill($skillId: ID!, $minProficiency: Int, $limit: Int) { crewEmployeesBySkill(skillId: $skillId, minProficiency: $minProficiency, limit: $limit) { employee { id firstName lastName position department } matchType matchedSkill { id name } proficiency verifiedFrom explanation } }", We = "query CrewJobPostingSkillRequirements($id: ID!) { crewJobPosting(id: $id) { id skillRequirements { id skillId required minProficiency skill { id name category source } } } }", Ge = "query CrewCandidateSkillProfile($id: ID!) { crewCandidate(id: $id) { id skills skillProfile { id skillId proficiency source skill { id name category source } } } }", Ke = "mutation AttachCrewCandidateSkill($input: AttachCrewCandidateSkillInput!) { attachCrewCandidateSkill(input: $input) { id } }", qe = "mutation DetachCrewCandidateSkill($candidateId: ID!, $skillId: ID!) { detachCrewCandidateSkill(candidateId: $candidateId, skillId: $skillId) }", Je = "mutation EnsureFolderByPath($path: String!) { ensureFolderByPath(path: $path) { id } }", Ye = "mutation InitiateUpload($input: InitiateUploadInput!) { initiateUpload(input: $input) { session { id } uploadUrl } }", Xe = "mutation CompleteUpload($input: CompleteUploadInput!) { completeUpload(input: $input) { file { id } } }", Ze = "query CrewOnboardings { crewOnboardings { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", Qe = "mutation CreateCrewOnboarding($input: CreateCrewOnboardingInput!) { createCrewOnboarding(input: $input) { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", $e = "mutation UpdateCrewOnboarding($id: ID!, $input: UpdateCrewOnboardingInput!) { updateCrewOnboarding(id: $id, input: $input) { id candidateId employeeId fullName position department startDate status currentStage createdAt totalTaskCount completedTaskCount progressPercent tasks { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } } }", et = "mutation RemoveCrewOnboarding($id: ID!) { removeCrewOnboarding(id: $id) }", tt = "mutation CreateCrewOnboardingTask($input: CreateCrewOnboardingTaskInput!) { createCrewOnboardingTask(input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", nt = "mutation UpdateCrewOnboardingTask($id: ID!, $input: UpdateCrewOnboardingTaskInput!) { updateCrewOnboardingTask(id: $id, input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", rt = "mutation RemoveCrewOnboardingTask($id: ID!) { removeCrewOnboardingTask(id: $id) }", D = "mutation ToggleCrewOnboardingTask($id: ID!, $completed: Boolean!) { toggleCrewOnboardingTask(id: $id, completed: $completed) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", O = "id title description contentUrl durationMinutes isActive requiredForRoles createdAt updatedAt", k = "id courseId courseTitle employeeId employeeName status startedAt completedAt createdAt updatedAt", it = `query CrewLearning($coursePage: PaginationInput, $enrollmentPage: PaginationInput) { crewTrainingCourses(pagination: $coursePage) { ${O} } crewEnrollments(pagination: $enrollmentPage) { ${k} } crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }`, at = `query CrewTrainingCourses($pagination: PaginationInput) { crewTrainingCourses(pagination: $pagination) { ${O} } }`, ot = `query CrewEnrollments($pagination: PaginationInput) { crewEnrollments(pagination: $pagination) { ${k} } }`, st = "query CrewTrainingCompletionDashboard { crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }", ct = `mutation CreateCrewTrainingCourse($input: CreateCrewTrainingCourseInput!) { createCrewTrainingCourse(input: $input) { ${O} } }`, lt = `mutation UpdateCrewTrainingCourse($id: ID!, $input: UpdateCrewTrainingCourseInput!) { updateCrewTrainingCourse(id: $id, input: $input) { ${O} } }`, ut = "mutation RemoveCrewTrainingCourse($id: ID!) { removeCrewTrainingCourse(id: $id) }", dt = `mutation CreateCrewEnrollment($input: CreateCrewEnrollmentInput!) { createCrewEnrollment(input: $input) { ${k} } }`, ft = `mutation UpdateCrewEnrollmentStatus($id: ID!, $status: String!) { updateCrewEnrollmentStatus(id: $id, status: $status) { ${k} } }`, pt = "mutation RemoveCrewEnrollment($id: ID!) { removeCrewEnrollment(id: $id) }", A = "id title description category providerActorId providerName rate rateUnit currency status createdAt updatedAt", j = "id listingId listingTitle providerActorId providerName clientActorId clientName status rate rateUnit currency notes scheduledStart scheduledEnd cancelledReason createdAt updatedAt", M = "id bookingId amount currency releaseCondition status heldAt releasedAt releasedBy notes createdAt updatedAt", mt = `query CrewServiceListings($pagination: PaginationInput) { crewServiceListings(pagination: $pagination) { ${A} } }`, ht = `query CrewBookings($pagination: PaginationInput) { crewBookings(pagination: $pagination) { ${j} } }`, gt = `query CrewEscrowRecords($pagination: PaginationInput) { crewEscrowRecords(pagination: $pagination) { ${M} } }`, _t = `mutation CreateCrewServiceListing($input: CreateCrewServiceListingInput!) { createCrewServiceListing(input: $input) { ${A} } }`, vt = `mutation UpdateMyServiceListing($id: ID!, $input: UpdateCrewServiceListingInput!) { updateMyServiceListing(id: $id, input: $input) { ${A} } }`, yt = "mutation RemoveMyServiceListing($id: ID!) { removeMyServiceListing(id: $id) }", bt = `mutation CreateCrewBooking($input: CreateCrewBookingInput!) { createCrewBooking(input: $input) { ${j} } }`, xt = `mutation UpdateMyBookingStatus($id: ID!, $status: String!) { updateMyBookingStatus(id: $id, status: $status) { ${j} } }`, St = `mutation ReleaseCrewEscrowRecord($id: ID!) { releaseCrewEscrowRecord(id: $id) { ${M} } }`, Ct = `mutation CancelCrewEscrowRecord($id: ID!) { cancelCrewEscrowRecord(id: $id) { ${M} } }`, N = 100, wt = 10, P = (e) => e.toUpperCase().replaceAll("-", "_"), F = {
5
5
  employee: ["status", "type"],
6
6
  department: ["status"],
7
7
  jobPosting: [
@@ -37,19 +37,19 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
37
37
  }, L = (e) => ({
38
38
  ...I(e, F.onboarding),
39
39
  tasks: (e.tasks ?? []).map((e) => I(e, F.onboardingTask))
40
- }), R = (e) => e ? e.slice(0, 10) : "TBD", lt = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, z = (e) => typeof e == "number" ? e : null, B = (e) => typeof e == "string" ? e : null, ut = (e) => {
40
+ }), R = (e) => e ? e.slice(0, 10) : "TBD", Tt = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, z = (e) => typeof e == "number" ? e : null, B = (e) => typeof e == "string" ? e : null, Et = (e) => {
41
41
  let t = e.toLowerCase();
42
42
  return t === "active" ? "active" : t === "completed" ? "completed" : t === "cancelled" ? "cancelled" : t === "archived" ? "on_hold" : "planning";
43
- }, dt = (e) => {
43
+ }, Dt = (e) => {
44
44
  let t = e.toLowerCase();
45
45
  return t === "active" ? "active" : t === "inactive" || t === "archived" || t === "deleted" ? "disbanded" : "forming";
46
- }, ft = (e, t) => e.map((e, n) => {
47
- let r = lt(e.config), i = z(r?.budget) ?? 25e3 + n * 2500, a = z(r?.spent) ?? Math.round(i * (e.status === "COMPLETED" ? 1 : .62)), o = z(r?.progress) ?? (e.status === "COMPLETED" ? 100 : 58), s = z(r?.tasks) ?? 20 + n % 9, c = z(r?.completedTasks) ?? Math.round(o / 100 * s), l = t[n % Math.max(t.length, 1)];
46
+ }, Ot = (e, t) => e.map((e, n) => {
47
+ let r = Tt(e.config), i = z(r?.budget) ?? 25e3 + n * 2500, a = z(r?.spent) ?? Math.round(i * (e.status === "COMPLETED" ? 1 : .62)), o = z(r?.progress) ?? (e.status === "COMPLETED" ? 100 : 58), s = z(r?.tasks) ?? 20 + n % 9, c = z(r?.completedTasks) ?? Math.round(o / 100 * s), l = t[n % Math.max(t.length, 1)];
48
48
  return {
49
49
  id: e.id,
50
50
  name: e.name,
51
51
  description: B(r?.description) || `${e.key} delivery plan`,
52
- status: ut(e.status),
52
+ status: Et(e.status),
53
53
  priority: B(r?.priority)?.toLowerCase() || "medium",
54
54
  startDate: R(e.createdAt),
55
55
  endDate: R(e.updatedAt),
@@ -63,7 +63,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
63
63
  tasks: s,
64
64
  completedTasks: c
65
65
  };
66
- }), pt = (e) => e.map(({ node: e }) => ({
66
+ }), kt = (e) => e.map(({ node: e }) => ({
67
67
  id: e.id,
68
68
  name: e.name,
69
69
  description: e.description || `${e.name} team workspace`,
@@ -72,10 +72,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
72
72
  members: [],
73
73
  memberCount: e.memberCount,
74
74
  department: e.groupType?.toLowerCase().replaceAll("_", " ") || "operations",
75
- status: dt(e.status),
75
+ status: Dt(e.status),
76
76
  projectCount: 0,
77
77
  createdAt: R(e.createdAt)
78
- })), V = "/conversations", mt = (e) => e.filter(({ node: e }) => e.unreadCount > 0).map(({ node: e }) => ({
78
+ })), V = "/conversations", At = (e) => e.filter(({ node: e }) => e.unreadCount > 0).map(({ node: e }) => ({
79
79
  id: `conversation-${e.id}`,
80
80
  title: e.title || "Conversation update",
81
81
  message: `${e.unreadCount} unread in ${e.memberCount}-member channel`,
@@ -84,11 +84,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
84
84
  read: !1,
85
85
  createdAt: e.updatedAt,
86
86
  actionUrl: V
87
- })), ht = (e, t) => {
87
+ })), jt = (e, t) => {
88
88
  if (e.errors?.length) throw Error(e.errors[0]?.message || t);
89
89
  if (!e.data) throw Error(t);
90
90
  return e.data;
91
- }, gt = new Set([
91
+ }, Mt = new Set([
92
92
  "id",
93
93
  "createdAt",
94
94
  "createdOn",
@@ -110,36 +110,36 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
110
110
  "viewCount",
111
111
  "revenue",
112
112
  "projects"
113
- ]), _t = (e) => {
113
+ ]), Nt = (e) => {
114
114
  if (!e) return e;
115
115
  let t = e.input;
116
116
  if (!t || typeof t != "object" || Array.isArray(t)) return e;
117
117
  let n = {};
118
- for (let [e, r] of Object.entries(t)) gt.has(e) || (n[e] = r);
118
+ for (let [e, r] of Object.entries(t)) Mt.has(e) || (n[e] = r);
119
119
  return {
120
120
  ...e,
121
121
  input: n
122
122
  };
123
- }, vt = (e) => /^\s*mutation\b/.test(e), H = async (e, r, i, a, o = "workspace") => {
124
- let s = ht(await n({
123
+ }, Pt = (e) => /^\s*mutation\b/.test(e), H = async (e, r, i, a, o = "workspace") => {
124
+ let s = jt(await n({
125
125
  gateway: o,
126
126
  query: e,
127
- variables: _t(r),
127
+ variables: Nt(r),
128
128
  authToken: i.authToken,
129
129
  baseUrl: o === "workspace" ? i.apiGatewayUrl : void 0,
130
130
  extraHeaders: { ...o === "workspace" && i.workspaceId ? { "x-workspace-id": i.workspaceId } : {} }
131
131
  }), a);
132
- return vt(e) && t(), s;
133
- }, yt = () => !1, U = async (e, t, n, r, i = "workspace") => {
132
+ return Pt(e) && t(), s;
133
+ }, Ft = () => !1, U = async (e, t, n, r, i = "workspace") => {
134
134
  try {
135
135
  return await H(e, t, n, r, i);
136
136
  } catch (e) {
137
- return yt() && console.warn(`[crewfoundry] overlap query skipped: ${r}`, e), null;
137
+ return Ft() && console.warn(`[crewfoundry] overlap query skipped: ${r}`, e), null;
138
138
  }
139
139
  }, W = async (e, t, n, r, i) => {
140
140
  let a = i ? [...i] : [];
141
141
  if (i && i.length < N) return a;
142
- for (let o = +!!i; o < ct; o += 1) {
142
+ for (let o = +!!i; o < wt; o += 1) {
143
143
  let i = (await H(e, { pagination: {
144
144
  limit: N,
145
145
  offset: o * N
@@ -150,7 +150,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
150
150
  }, G = {
151
151
  learning: 0,
152
152
  marketplace: 0
153
- }, K = 3, q = (e) => I(e, F.enrollment), J = (e) => I(e, F.serviceListing), Y = (e) => I(e, F.booking), X = (e) => I(e, F.escrow), Z = (e, t) => e.map((e) => e.id === t.id ? t : e), Q = async (e) => (await U(Ke, void 0, e, "Unable to load training completion"))?.crewTrainingCompletionDashboard ?? null, $ = e((e) => ({
153
+ }, K = 3, q = (e) => I(e, F.enrollment), J = (e) => I(e, F.serviceListing), Y = (e) => I(e, F.booking), X = (e) => I(e, F.escrow), Z = (e, t) => e.map((e) => e.id === t.id ? t : e), Q = async (e) => (await U(st, void 0, e, "Unable to load training completion"))?.crewTrainingCompletionDashboard ?? null, $ = e((e) => ({
154
154
  metrics: [
155
155
  {
156
156
  label: "Total Employees",
@@ -224,6 +224,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
224
224
  clients: [],
225
225
  employeeDocuments: [],
226
226
  employeeSkillProfiles: {},
227
+ skillsTaxonomy: [],
228
+ skillsTaxonomyLoaded: !1,
229
+ skillCategories: [],
230
+ candidateSkillProfiles: {},
227
231
  onboardings: [],
228
232
  onboardingsLoaded: !1,
229
233
  jobPostingMatches: {},
@@ -235,6 +239,9 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
235
239
  payslipsLoading: !1,
236
240
  skillsGap: [],
237
241
  skillsGapLoaded: !1,
242
+ executiveDashboard: null,
243
+ executiveDashboardLoading: !1,
244
+ executiveDashboardError: null,
238
245
  trainingCourses: [],
239
246
  enrollments: [],
240
247
  trainingCompletion: [],
@@ -247,7 +254,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
247
254
  escrowError: null,
248
255
  initializeData: async (t) => {
249
256
  if (t.workspaceId) {
250
- e({
257
+ $.getState().initParams.workspaceId !== t.workspaceId && e({
258
+ executiveDashboard: null,
259
+ executiveDashboardError: null
260
+ }), e({
251
261
  loading: !0,
252
262
  error: null,
253
263
  initParams: t
@@ -261,7 +271,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
261
271
  },
262
272
  groupFirst: 30,
263
273
  conversationFirst: 30
264
- }, t, "Unable to load workspace bootstrap with overlap data"), U(i, void 0, t, "Unable to load payroll records")]), s = n ? n.crewfoundryBootstrap : (await H(r, void 0, t, "Unable to load CrewFoundry data")).crewfoundryBootstrap, c = n ? pt(n.groups.edges) : [], l = n ? ft(n.projects.items, c) : [], u = n ? mt(n.conversations.edges) : [], d = c.length > 0 ? c : s.teams, f = l.length > 0 ? l : s.projects, p = u, m = s.employees.map((e) => I(e, F.employee)), h = s.departments.map((e) => I(e, F.department)), g = s.jobPostings.map((e) => I(e, F.jobPosting)), _ = s.candidates.map((e) => I(e, F.candidate)), v = s.interviews.map((e) => I(e, F.interview)), y = s.announcements.map((e) => I(e, F.announcement)), b = d.map((e) => I(e, F.team)), x = f.map((e) => I(e, F.project));
274
+ }, t, "Unable to load workspace bootstrap with overlap data"), U(i, void 0, t, "Unable to load payroll records")]), s = n ? n.crewfoundryBootstrap : (await H(r, void 0, t, "Unable to load CrewFoundry data")).crewfoundryBootstrap, c = n ? kt(n.groups.edges) : [], l = n ? Ot(n.projects.items, c) : [], u = n ? At(n.conversations.edges) : [], d = c.length > 0 ? c : s.teams, f = l.length > 0 ? l : s.projects, p = u, m = s.employees.map((e) => I(e, F.employee)), h = s.departments.map((e) => I(e, F.department)), g = s.jobPostings.map((e) => I(e, F.jobPosting)), _ = s.candidates.map((e) => I(e, F.candidate)), v = s.interviews.map((e) => I(e, F.interview)), y = s.announcements.map((e) => I(e, F.announcement)), b = d.map((e) => I(e, F.team)), x = f.map((e) => I(e, F.project));
265
275
  e({
266
276
  employees: m,
267
277
  departments: h,
@@ -581,7 +591,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
581
591
  let n = $.getState().initParams;
582
592
  e({ jobPostingMatchesLoading: !0 });
583
593
  try {
584
- let r = (await H(C, { jobPostingId: t }, n, "Unable to load candidate matches")).crewJobPostingMatches.map((e) => ({
594
+ let r = (await H(Oe, { jobPostingId: t }, n, "Unable to load candidate matches")).crewJobPostingMatches.map((e) => ({
585
595
  ...e,
586
596
  candidate: I(e.candidate, F.candidate)
587
597
  }));
@@ -652,7 +662,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
652
662
  e((e) => ({ employeeDocuments: [...e.employeeDocuments.filter((e) => e.employeeId !== t), ...r.employeeDocuments] }));
653
663
  },
654
664
  uploadEmployeeDocument: async ({ employeeId: t, file: n, title: r, category: i }) => {
655
- let a = $.getState().initParams, o = await H(Me, { path: "/CrewFoundry/Employee Documents" }, a, "Unable to resolve the employee documents folder"), s = n.name.includes(".") ? n.name.substring(n.name.lastIndexOf(".") + 1) : "", c = await H(Ne, { input: {
665
+ let a = $.getState().initParams, o = await H(Je, { path: "/CrewFoundry/Employee Documents" }, a, "Unable to resolve the employee documents folder"), s = n.name.includes(".") ? n.name.substring(n.name.lastIndexOf(".") + 1) : "", c = await H(Ye, { input: {
656
666
  fileName: n.name,
657
667
  fileSize: String(n.size),
658
668
  mimeType: n.type || "application/octet-stream",
@@ -667,9 +677,9 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
667
677
  });
668
678
  if (!e.ok) throw Error(`Failed to upload file bytes (status ${e.status})`);
669
679
  }
670
- let l = await H(E, { input: {
680
+ let l = await H(ke, { input: {
671
681
  employeeId: t,
672
- fileId: (await H(Pe, { input: {
682
+ fileId: (await H(Xe, { input: {
673
683
  sessionId: c.initiateUpload.session.id,
674
684
  fileSize: String(n.size),
675
685
  folderId: o.ensureFolderByPath.id
@@ -681,10 +691,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
681
691
  },
682
692
  detachEmployeeDocument: async (t) => {
683
693
  let n = $.getState().initParams;
684
- await H(Oe, { id: t }, n, "Unable to remove this document"), e((e) => ({ employeeDocuments: e.employeeDocuments.filter((e) => e.id !== t) }));
694
+ await H(Ae, { id: t }, n, "Unable to remove this document"), e((e) => ({ employeeDocuments: e.employeeDocuments.filter((e) => e.id !== t) }));
685
695
  },
686
696
  fetchEmployeeSkillProfile: async (t) => {
687
- let n = $.getState().initParams, r = (await H(ke, { id: t }, n, "Unable to load skills")).crewEmployee;
697
+ let n = $.getState().initParams, r = (await H(je, { id: t }, n, "Unable to load skills")).crewEmployee;
688
698
  e((e) => ({
689
699
  employeeSkillProfiles: {
690
700
  ...e.employeeSkillProfiles,
@@ -698,7 +708,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
698
708
  },
699
709
  attachEmployeeSkill: async ({ employeeId: e, skillName: t, proficiency: n }) => {
700
710
  let r = $.getState().initParams;
701
- await H(Ae, { input: {
711
+ await H(Me, { input: {
702
712
  employeeId: e,
703
713
  skillName: t,
704
714
  proficiency: n
@@ -706,24 +716,124 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
706
716
  },
707
717
  detachEmployeeSkill: async (e, t) => {
708
718
  let n = $.getState().initParams;
709
- await H(je, {
719
+ await H(Ne, {
710
720
  employeeId: e,
711
721
  skillId: t
712
722
  }, n, "Unable to remove this skill"), await $.getState().fetchEmployeeSkillProfile(e);
713
723
  },
724
+ fetchSkillsTaxonomy: async () => {
725
+ let t = $.getState().initParams, [n, r] = await Promise.all([(async () => {
726
+ let e = [];
727
+ for (let n = 0; n < Pe; n += 1) {
728
+ let r = await H(Fe, { pagination: {
729
+ limit: E,
730
+ offset: n * E
731
+ } }, t, "Unable to load the skills taxonomy");
732
+ if (e.push(...r.crewSkills), r.crewSkills.length < E) break;
733
+ }
734
+ return e;
735
+ })(), H(Ie, void 0, t, "Unable to load skill categories")]);
736
+ e({
737
+ skillsTaxonomy: n,
738
+ skillsTaxonomyLoaded: !0,
739
+ skillCategories: r.crewSkillCategories
740
+ });
741
+ },
742
+ createTaxonomySkill: async ({ name: e, category: t, aliases: n, description: r }) => {
743
+ let i = $.getState().initParams;
744
+ await H(Le, { input: {
745
+ name: e,
746
+ category: t,
747
+ aliases: n,
748
+ ...r ? { description: r } : {}
749
+ } }, i, "Unable to create this skill"), await $.getState().fetchSkillsTaxonomy();
750
+ },
751
+ updateTaxonomySkill: async (e, t) => {
752
+ let n = $.getState().initParams;
753
+ await H(Re, {
754
+ id: e,
755
+ input: t
756
+ }, n, "Unable to update this skill"), await $.getState().fetchSkillsTaxonomy();
757
+ },
758
+ mergeTaxonomySkills: async (e, t) => {
759
+ let n = $.getState().initParams, r = await H(ze, {
760
+ sourceId: e,
761
+ targetId: t
762
+ }, n, "Unable to merge these skills");
763
+ await $.getState().fetchSkillsTaxonomy();
764
+ let i = r.mergeCrewSkills;
765
+ return {
766
+ targetName: i.target.name,
767
+ employeesMoved: i.employeesMoved,
768
+ candidatesMoved: i.candidatesMoved,
769
+ jobPostingsMoved: i.jobPostingsMoved
770
+ };
771
+ },
772
+ removeTaxonomySkill: async (e) => {
773
+ let t = $.getState().initParams;
774
+ await H(Be, { id: e }, t, "Unable to remove this skill"), await $.getState().fetchSkillsTaxonomy();
775
+ },
776
+ createSkillRelation: async (e) => {
777
+ let t = $.getState().initParams;
778
+ await H(Ve, { input: e }, t, "Unable to add this relation"), await $.getState().fetchSkillsTaxonomy();
779
+ },
780
+ removeSkillRelation: async (e) => {
781
+ let t = $.getState().initParams;
782
+ await H(He, { id: e }, t, "Unable to remove this relation"), await $.getState().fetchSkillsTaxonomy();
783
+ },
784
+ fetchEmployeesBySkill: async (e, t) => {
785
+ let n = $.getState().initParams;
786
+ return (await H(Ue, {
787
+ skillId: e,
788
+ minProficiency: t?.minProficiency ?? null,
789
+ limit: t?.limit ?? 50
790
+ }, n, "Unable to find people with this skill")).crewEmployeesBySkill;
791
+ },
792
+ fetchJobPostingSkillRequirements: async (e) => {
793
+ let t = $.getState().initParams;
794
+ return (await H(We, { id: e }, t, "Unable to load the skills this role needs")).crewJobPosting?.skillRequirements ?? [];
795
+ },
796
+ fetchCandidateSkillProfile: async (t) => {
797
+ let n = $.getState().initParams, r = (await H(Ge, { id: t }, n, "Unable to load skills")).crewCandidate;
798
+ e((e) => ({
799
+ candidateSkillProfiles: {
800
+ ...e.candidateSkillProfiles,
801
+ [t]: r?.skillProfile ?? []
802
+ },
803
+ candidates: r ? e.candidates.map((e) => e.id === t ? {
804
+ ...e,
805
+ skills: r.skills
806
+ } : e) : e.candidates
807
+ }));
808
+ },
809
+ attachCandidateSkill: async ({ candidateId: e, skillName: t, proficiency: n }) => {
810
+ let r = $.getState().initParams;
811
+ await H(Ke, { input: {
812
+ candidateId: e,
813
+ skillName: t,
814
+ proficiency: n
815
+ } }, r, "Unable to add this skill"), await $.getState().fetchCandidateSkillProfile(e);
816
+ },
817
+ detachCandidateSkill: async (e, t) => {
818
+ let n = $.getState().initParams;
819
+ await H(qe, {
820
+ candidateId: e,
821
+ skillId: t
822
+ }, n, "Unable to remove this skill"), await $.getState().fetchCandidateSkillProfile(e);
823
+ },
714
824
  fetchOnboardings: async () => {
715
825
  let t = $.getState().initParams;
716
826
  e({
717
- onboardings: (await H(Fe, {}, t, "Unable to load onboarding")).crewOnboardings.map(L),
827
+ onboardings: (await H(Ze, {}, t, "Unable to load onboarding")).crewOnboardings.map(L),
718
828
  onboardingsLoaded: !0
719
829
  });
720
830
  },
721
831
  createOnboarding: async (t) => {
722
- let n = $.getState().initParams, r = await H(Ie, { input: t }, n, "Unable to start onboarding");
832
+ let n = $.getState().initParams, r = await H(Qe, { input: t }, n, "Unable to start onboarding");
723
833
  e((e) => ({ onboardings: [L(r.createCrewOnboarding), ...e.onboardings] }));
724
834
  },
725
835
  updateOnboarding: async (t, n) => {
726
- let r = $.getState().initParams, i = await H(Le, {
836
+ let r = $.getState().initParams, i = await H($e, {
727
837
  id: t,
728
838
  input: n
729
839
  }, r, "Unable to update onboarding");
@@ -731,10 +841,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
731
841
  },
732
842
  removeOnboarding: async (t) => {
733
843
  let n = $.getState().initParams;
734
- await H(Re, { id: t }, n, "Unable to remove onboarding"), e((e) => ({ onboardings: e.onboardings.filter((e) => e.id !== t) }));
844
+ await H(et, { id: t }, n, "Unable to remove onboarding"), e((e) => ({ onboardings: e.onboardings.filter((e) => e.id !== t) }));
735
845
  },
736
846
  createOnboardingTask: async (t) => {
737
- let n = $.getState().initParams, r = I((await H(ze, { input: t }, n, "Unable to create onboarding task")).createCrewOnboardingTask, F.onboardingTask);
847
+ let n = $.getState().initParams, r = I((await H(tt, { input: t }, n, "Unable to create onboarding task")).createCrewOnboardingTask, F.onboardingTask);
738
848
  e((e) => ({ onboardings: e.onboardings.map((e) => e.id === r.onboardingId ? {
739
849
  ...e,
740
850
  tasks: [...e.tasks, r],
@@ -742,7 +852,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
742
852
  } : e) }));
743
853
  },
744
854
  updateOnboardingTask: async (t, n) => {
745
- let r = $.getState().initParams, i = I((await H(Be, {
855
+ let r = $.getState().initParams, i = I((await H(nt, {
746
856
  id: t,
747
857
  input: n
748
858
  }, r, "Unable to update onboarding task")).updateCrewOnboardingTask, F.onboardingTask);
@@ -753,14 +863,14 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
753
863
  },
754
864
  removeOnboardingTask: async (t) => {
755
865
  let n = $.getState().initParams;
756
- await H(Ve, { id: t }, n, "Unable to remove onboarding task"), e((e) => ({ onboardings: e.onboardings.map((e) => e.tasks.some((e) => e.id === t) ? {
866
+ await H(rt, { id: t }, n, "Unable to remove onboarding task"), e((e) => ({ onboardings: e.onboardings.map((e) => e.tasks.some((e) => e.id === t) ? {
757
867
  ...e,
758
868
  tasks: e.tasks.filter((e) => e.id !== t),
759
869
  totalTaskCount: Math.max(0, e.totalTaskCount - 1)
760
870
  } : e) }));
761
871
  },
762
872
  toggleOnboardingTask: async (t, n) => {
763
- let r = $.getState().initParams, i = I((await H(He, {
873
+ let r = $.getState().initParams, i = I((await H(D, {
764
874
  id: t,
765
875
  completed: n
766
876
  }, r, "Unable to update onboarding task")).toggleCrewOnboardingTask, F.onboardingTask);
@@ -778,20 +888,41 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
778
888
  fetchSkillsGap: async () => {
779
889
  let t = $.getState().initParams;
780
890
  e({
781
- skillsGap: (await H(w, void 0, t, "Unable to load skills coverage")).crewSkillsGap,
891
+ skillsGap: (await H(C, void 0, t, "Unable to load skills coverage")).crewSkillsGap,
782
892
  skillsGapLoaded: !0
783
893
  });
784
894
  },
895
+ fetchExecutiveDashboard: async () => {
896
+ let t = $.getState().initParams, n = () => $.getState().initParams.workspaceId !== t.workspaceId;
897
+ e({
898
+ executiveDashboardLoading: !0,
899
+ executiveDashboardError: null
900
+ });
901
+ try {
902
+ let r = await H(w, void 0, t, "Unable to load workforce analytics");
903
+ if (n()) return;
904
+ e({
905
+ executiveDashboard: r.crewExecutiveDashboard,
906
+ executiveDashboardLoading: !1
907
+ });
908
+ } catch (t) {
909
+ if (n()) return;
910
+ e({
911
+ executiveDashboardLoading: !1,
912
+ executiveDashboardError: t instanceof Error ? t.message : "Unable to load workforce analytics"
913
+ });
914
+ }
915
+ },
785
916
  fetchLearning: async () => {
786
917
  let t = $.getState().initParams, n = {
787
918
  limit: N,
788
919
  offset: 0
789
920
  };
790
921
  for (let r = 1; r <= K; r += 1) {
791
- let i = G.learning, a = await H(Ue, {
922
+ let i = G.learning, a = await H(it, {
792
923
  coursePage: n,
793
924
  enrollmentPage: n
794
- }, t, "Unable to load learning"), [o, s] = await Promise.all([W(We, "crewTrainingCourses", t, "Unable to load courses", a.crewTrainingCourses), W(Ge, "crewEnrollments", t, "Unable to load enrollments", a.crewEnrollments)]);
925
+ }, t, "Unable to load learning"), [o, s] = await Promise.all([W(at, "crewTrainingCourses", t, "Unable to load courses", a.crewTrainingCourses), W(ot, "crewEnrollments", t, "Unable to load enrollments", a.crewEnrollments)]);
795
926
  if (!(i !== G.learning && r < K)) {
796
927
  e({
797
928
  trainingCourses: o,
@@ -804,11 +935,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
804
935
  }
805
936
  },
806
937
  createTrainingCourse: async (t) => {
807
- let n = $.getState().initParams, r = (await H(qe, { input: t }, n, "Unable to create course")).createCrewTrainingCourse;
938
+ let n = $.getState().initParams, r = (await H(ct, { input: t }, n, "Unable to create course")).createCrewTrainingCourse;
808
939
  return G.learning += 1, e((e) => ({ trainingCourses: [r, ...e.trainingCourses] })), r;
809
940
  },
810
941
  updateTrainingCourse: async (t, n) => {
811
- let r = $.getState().initParams, i = await H(k, {
942
+ let r = $.getState().initParams, i = await H(lt, {
812
943
  id: t,
813
944
  input: n
814
945
  }, r, "Unable to update course");
@@ -816,13 +947,13 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
816
947
  },
817
948
  removeTrainingCourse: async (t) => {
818
949
  let n = $.getState().initParams;
819
- await H(Je, { id: t }, n, "Unable to remove course"), G.learning += 1, e((e) => ({
950
+ await H(ut, { id: t }, n, "Unable to remove course"), G.learning += 1, e((e) => ({
820
951
  trainingCourses: e.trainingCourses.filter((e) => e.id !== t),
821
952
  trainingCompletion: e.trainingCompletion.filter((e) => e.courseId !== t)
822
953
  }));
823
954
  },
824
955
  enrollEmployee: async (t, n) => {
825
- let r = $.getState().initParams, i = q((await H(Ye, { input: {
956
+ let r = $.getState().initParams, i = q((await H(dt, { input: {
826
957
  courseId: t,
827
958
  employeeId: n.id,
828
959
  employeeName: `${n.firstName} ${n.lastName}`.trim()
@@ -832,7 +963,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
832
963
  a && e({ trainingCompletion: a });
833
964
  },
834
965
  updateEnrollmentStatus: async (t, n) => {
835
- let r = $.getState().initParams, i = await H(Xe, {
966
+ let r = $.getState().initParams, i = await H(ft, {
836
967
  id: t,
837
968
  status: P(n)
838
969
  }, r, "Unable to update enrollment");
@@ -842,14 +973,14 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
842
973
  },
843
974
  removeEnrollment: async (t) => {
844
975
  let n = $.getState().initParams;
845
- await H(Ze, { id: t }, n, "Unable to remove enrollment"), G.learning += 1, e((e) => ({ enrollments: e.enrollments.filter((e) => e.id !== t) }));
976
+ await H(pt, { id: t }, n, "Unable to remove enrollment"), G.learning += 1, e((e) => ({ enrollments: e.enrollments.filter((e) => e.id !== t) }));
846
977
  let r = await Q(n);
847
978
  r && e({ trainingCompletion: r });
848
979
  },
849
980
  fetchMarketplace: async () => {
850
981
  let t = $.getState().initParams;
851
982
  for (let n = 1; n <= K; n += 1) {
852
- let r = G.marketplace, [i, a] = await Promise.all([W(Qe, "crewServiceListings", t, "Unable to load marketplace services"), W($e, "crewBookings", t, "Unable to load bookings")]);
983
+ let r = G.marketplace, [i, a] = await Promise.all([W(mt, "crewServiceListings", t, "Unable to load marketplace services"), W(ht, "crewBookings", t, "Unable to load bookings")]);
853
984
  if (!(r !== G.marketplace && n < K)) {
854
985
  e({
855
986
  serviceListings: i.map(J),
@@ -861,11 +992,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
861
992
  }
862
993
  },
863
994
  createServiceListing: async (t) => {
864
- let n = $.getState().initParams, r = J((await H(tt, { input: t }, n, "Unable to publish service")).createCrewServiceListing);
995
+ let n = $.getState().initParams, r = J((await H(_t, { input: t }, n, "Unable to publish service")).createCrewServiceListing);
865
996
  return G.marketplace += 1, e((e) => ({ serviceListings: [r, ...e.serviceListings] })), r;
866
997
  },
867
998
  updateServiceListing: async (t, n) => {
868
- let r = $.getState().initParams, i = await H(nt, {
999
+ let r = $.getState().initParams, i = await H(vt, {
869
1000
  id: t,
870
1001
  input: n.status ? {
871
1002
  ...n,
@@ -876,17 +1007,17 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
876
1007
  },
877
1008
  removeServiceListing: async (t) => {
878
1009
  let n = $.getState().initParams;
879
- await H(rt, { id: t }, n, "Unable to remove service"), G.marketplace += 1, e((e) => ({ serviceListings: e.serviceListings.filter((e) => e.id !== t) }));
1010
+ await H(yt, { id: t }, n, "Unable to remove service"), G.marketplace += 1, e((e) => ({ serviceListings: e.serviceListings.filter((e) => e.id !== t) }));
880
1011
  },
881
1012
  bookServiceListing: async (t) => {
882
- let n = $.getState().initParams, r = Y((await H(it, { input: t }, n, "Unable to book service")).createCrewBooking);
1013
+ let n = $.getState().initParams, r = Y((await H(bt, { input: t }, n, "Unable to book service")).createCrewBooking);
883
1014
  return G.marketplace += 1, e((e) => ({
884
1015
  bookings: [r, ...e.bookings],
885
1016
  escrowLoaded: !1
886
1017
  })), r;
887
1018
  },
888
1019
  updateBookingStatus: async (t, n) => {
889
- let r = $.getState().initParams, i = await H(at, {
1020
+ let r = $.getState().initParams, i = await H(xt, {
890
1021
  id: t,
891
1022
  status: P(n)
892
1023
  }, r, "Unable to update booking");
@@ -899,7 +1030,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
899
1030
  let t = $.getState().initParams;
900
1031
  try {
901
1032
  e({
902
- escrowRecords: (await W(et, "crewEscrowRecords", t, "Unable to load escrow records")).map(X),
1033
+ escrowRecords: (await W(gt, "crewEscrowRecords", t, "Unable to load escrow records")).map(X),
903
1034
  escrowLoaded: !0,
904
1035
  escrowError: null
905
1036
  });
@@ -912,11 +1043,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
912
1043
  }
913
1044
  },
914
1045
  releaseEscrowRecord: async (t) => {
915
- let n = $.getState().initParams, r = await H(ot, { id: t }, n, "Unable to release escrow");
1046
+ let n = $.getState().initParams, r = await H(St, { id: t }, n, "Unable to release escrow");
916
1047
  e((e) => ({ escrowRecords: Z(e.escrowRecords, X(r.releaseCrewEscrowRecord)) }));
917
1048
  },
918
1049
  cancelEscrowRecord: async (t) => {
919
- let n = $.getState().initParams, r = await H(st, { id: t }, n, "Unable to cancel escrow");
1050
+ let n = $.getState().initParams, r = await H(Ct, { id: t }, n, "Unable to cancel escrow");
920
1051
  e((e) => ({ escrowRecords: Z(e.escrowRecords, X(r.cancelCrewEscrowRecord)) }));
921
1052
  }
922
1053
  }));