@burdenoff/microfe-crewfoundry 2026.1107.1 → 2026.1107.2
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/dist/crewfoundry/components/WorkforceForecastCard.d.ts +17 -0
- package/dist/crewfoundry/components/WorkforceForecastCard.d.ts.map +1 -0
- package/dist/crewfoundry/components/WorkforceForecastCard.js +222 -0
- package/dist/crewfoundry/components/WorkforceForecastCard.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +3 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +154 -145
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +57 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +96 -70
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- 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) }", 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 = {
|
|
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 CrewWorkforceForecast { attrition: crewAttritionForecast { model { status horizonDays trainingSamples trainingExits excludedFeatures reason backtest { testSamples testExits modelAuc heuristicAuc } } predictions { employeeId employeeName department heuristicRiskLevel heuristicRiskScore drivers predictedExitProbability source } } headcount: crewHeadcountForecast { status currentHeadcount openRequisitions observationMonths hiresPerMonth monthlyExitRate currentMonthlyCost horizons { months projectedHeadcount low high expectedHires expectedExits projectedMonthlyCost cumulativeCost } assumptions } }", ke = "query EmployeeDocuments($employeeId: ID!) { employeeDocuments(employeeId: $employeeId) { id employeeId fileId title category uploadedBy uploadedAt } }", Ae = "mutation AttachEmployeeDocument($input: AttachCrewEmployeeDocumentInput!) { attachEmployeeDocument(input: $input) { id employeeId fileId title category uploadedBy uploadedAt } }", je = "mutation DetachEmployeeDocument($id: ID!) { detachEmployeeDocument(id: $id) }", Me = "query CrewEmployeeSkillProfile($id: ID!) { crewEmployee(id: $id) { id skills skillProfile { id skillId proficiency verifiedFrom lastUsedAt skill { id name category source } } } }", Ne = "mutation AttachCrewSkill($input: AttachCrewSkillInput!) { attachCrewSkill(input: $input) { id } }", Pe = "mutation DetachCrewSkill($employeeId: ID!, $skillId: ID!) { detachCrewSkill(employeeId: $employeeId, skillId: $skillId) }", E = 100, Fe = 50, Ie = "query CrewSkillsTaxonomy($pagination: PaginationInput) { crewSkills(pagination: $pagination) { id name slug category source description aliases employeeCount candidateCount relations { id type fromSkillId toSkillId } } }", Le = "query CrewSkillCategories { crewSkillCategories }", Re = "mutation CreateCrewSkill($input: CreateCrewSkillInput!) { createCrewSkill(input: $input) { id } }", ze = "mutation UpdateCrewSkill($id: ID!, $input: UpdateCrewSkillInput!) { updateCrewSkill(id: $id, input: $input) { id } }", Be = "mutation MergeCrewSkills($sourceId: ID!, $targetId: ID!) { mergeCrewSkills(sourceId: $sourceId, targetId: $targetId) { target { id name } employeesMoved candidatesMoved jobPostingsMoved } }", Ve = "mutation RemoveCrewSkill($id: ID!) { removeCrewSkill(id: $id) }", He = "mutation CreateCrewSkillRelation($input: CreateCrewSkillRelationInput!) { createCrewSkillRelation(input: $input) { id } }", Ue = "mutation RemoveCrewSkillRelation($id: ID!) { removeCrewSkillRelation(id: $id) }", We = "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 } }", Ge = "query CrewJobPostingSkillRequirements($id: ID!) { crewJobPosting(id: $id) { id skillRequirements { id skillId required minProficiency skill { id name category source } } } }", Ke = "query CrewCandidateSkillProfile($id: ID!) { crewCandidate(id: $id) { id skills skillProfile { id skillId proficiency source skill { id name category source } } } }", qe = "mutation AttachCrewCandidateSkill($input: AttachCrewCandidateSkillInput!) { attachCrewCandidateSkill(input: $input) { id } }", Je = "mutation DetachCrewCandidateSkill($candidateId: ID!, $skillId: ID!) { detachCrewCandidateSkill(candidateId: $candidateId, skillId: $skillId) }", Ye = "mutation EnsureFolderByPath($path: String!) { ensureFolderByPath(path: $path) { id } }", Xe = "mutation InitiateUpload($input: InitiateUploadInput!) { initiateUpload(input: $input) { session { id } uploadUrl } }", Ze = "mutation CompleteUpload($input: CompleteUploadInput!) { completeUpload(input: $input) { file { id } } }", Qe = "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 } } }", $e = "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 } } }", et = "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 } } }", tt = "mutation RemoveCrewOnboarding($id: ID!) { removeCrewOnboarding(id: $id) }", nt = "mutation CreateCrewOnboardingTask($input: CreateCrewOnboardingTaskInput!) { createCrewOnboardingTask(input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", rt = "mutation UpdateCrewOnboardingTask($id: ID!, $input: UpdateCrewOnboardingTaskInput!) { updateCrewOnboardingTask(id: $id, input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", it = "mutation RemoveCrewOnboardingTask($id: ID!) { removeCrewOnboardingTask(id: $id) }", at = "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", k = `query CrewLearning($coursePage: PaginationInput, $enrollmentPage: PaginationInput) { crewTrainingCourses(pagination: $coursePage) { ${D} } crewEnrollments(pagination: $enrollmentPage) { ${O} } crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }`, ot = `query CrewTrainingCourses($pagination: PaginationInput) { crewTrainingCourses(pagination: $pagination) { ${D} } }`, st = `query CrewEnrollments($pagination: PaginationInput) { crewEnrollments(pagination: $pagination) { ${O} } }`, ct = "query CrewTrainingCompletionDashboard { crewTrainingCompletionDashboard { courseId courseTitle totalEnrolled notStartedCount inProgressCount completedCount completionRate } }", lt = `mutation CreateCrewTrainingCourse($input: CreateCrewTrainingCourseInput!) { createCrewTrainingCourse(input: $input) { ${D} } }`, ut = `mutation UpdateCrewTrainingCourse($id: ID!, $input: UpdateCrewTrainingCourseInput!) { updateCrewTrainingCourse(id: $id, input: $input) { ${D} } }`, dt = "mutation RemoveCrewTrainingCourse($id: ID!) { removeCrewTrainingCourse(id: $id) }", ft = `mutation CreateCrewEnrollment($input: CreateCrewEnrollmentInput!) { createCrewEnrollment(input: $input) { ${O} } }`, pt = `mutation UpdateCrewEnrollmentStatus($id: ID!, $status: String!) { updateCrewEnrollmentStatus(id: $id, status: $status) { ${O} } }`, mt = "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", ht = `query CrewServiceListings($pagination: PaginationInput) { crewServiceListings(pagination: $pagination) { ${A} } }`, gt = `query CrewBookings($pagination: PaginationInput) { crewBookings(pagination: $pagination) { ${j} } }`, _t = `query CrewEscrowRecords($pagination: PaginationInput) { crewEscrowRecords(pagination: $pagination) { ${M} } }`, vt = `mutation CreateCrewServiceListing($input: CreateCrewServiceListingInput!) { createCrewServiceListing(input: $input) { ${A} } }`, yt = `mutation UpdateMyServiceListing($id: ID!, $input: UpdateCrewServiceListingInput!) { updateMyServiceListing(id: $id, input: $input) { ${A} } }`, bt = "mutation RemoveMyServiceListing($id: ID!) { removeMyServiceListing(id: $id) }", xt = `mutation CreateCrewBooking($input: CreateCrewBookingInput!) { createCrewBooking(input: $input) { ${j} } }`, St = `mutation UpdateMyBookingStatus($id: ID!, $status: String!) { updateMyBookingStatus(id: $id, status: $status) { ${j} } }`, Ct = `mutation ReleaseCrewEscrowRecord($id: ID!) { releaseCrewEscrowRecord(id: $id) { ${M} } }`, wt = `mutation CancelCrewEscrowRecord($id: ID!) { cancelCrewEscrowRecord(id: $id) { ${M} } }`, N = 100, Tt = 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",
|
|
40
|
+
}), R = (e) => e ? e.slice(0, 10) : "TBD", Et = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, z = (e) => typeof e == "number" ? e : null, B = (e) => typeof e == "string" ? e : null, Dt = (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
|
-
},
|
|
43
|
+
}, Ot = (e) => {
|
|
44
44
|
let t = e.toLowerCase();
|
|
45
45
|
return t === "active" ? "active" : t === "inactive" || t === "archived" || t === "deleted" ? "disbanded" : "forming";
|
|
46
|
-
},
|
|
47
|
-
let r =
|
|
46
|
+
}, kt = (e, t) => e.map((e, n) => {
|
|
47
|
+
let r = Et(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:
|
|
52
|
+
status: Dt(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
|
-
}),
|
|
66
|
+
}), At = (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:
|
|
75
|
+
status: Ot(e.status),
|
|
76
76
|
projectCount: 0,
|
|
77
77
|
createdAt: R(e.createdAt)
|
|
78
|
-
})), V = "/conversations",
|
|
78
|
+
})), V = "/conversations", jt = (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
|
-
})),
|
|
87
|
+
})), Mt = (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
|
-
},
|
|
91
|
+
}, Nt = 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
|
-
]),
|
|
113
|
+
]), Pt = (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))
|
|
118
|
+
for (let [e, r] of Object.entries(t)) Nt.has(e) || (n[e] = r);
|
|
119
119
|
return {
|
|
120
120
|
...e,
|
|
121
121
|
input: n
|
|
122
122
|
};
|
|
123
|
-
},
|
|
124
|
-
let s =
|
|
123
|
+
}, Ft = (e) => /^\s*mutation\b/.test(e), H = async (e, r, i, a, o = "workspace") => {
|
|
124
|
+
let s = Mt(await n({
|
|
125
125
|
gateway: o,
|
|
126
126
|
query: e,
|
|
127
|
-
variables:
|
|
127
|
+
variables: Pt(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
|
|
133
|
-
},
|
|
132
|
+
return Ft(e) && t(), s;
|
|
133
|
+
}, It = () => !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
|
|
137
|
+
return It() && 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 <
|
|
142
|
+
for (let o = +!!i; o < Tt; 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(
|
|
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(ct, void 0, e, "Unable to load training completion"))?.crewTrainingCompletionDashboard ?? null, $ = e((e) => ({
|
|
154
154
|
metrics: [
|
|
155
155
|
{
|
|
156
156
|
label: "Total Employees",
|
|
@@ -242,6 +242,9 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
242
242
|
executiveDashboard: null,
|
|
243
243
|
executiveDashboardLoading: !1,
|
|
244
244
|
executiveDashboardError: null,
|
|
245
|
+
workforceForecast: null,
|
|
246
|
+
workforceForecastLoading: !1,
|
|
247
|
+
workforceForecastError: null,
|
|
245
248
|
trainingCourses: [],
|
|
246
249
|
enrollments: [],
|
|
247
250
|
trainingCompletion: [],
|
|
@@ -256,7 +259,9 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
256
259
|
if (t.workspaceId) {
|
|
257
260
|
$.getState().initParams.workspaceId !== t.workspaceId && e({
|
|
258
261
|
executiveDashboard: null,
|
|
259
|
-
executiveDashboardError: null
|
|
262
|
+
executiveDashboardError: null,
|
|
263
|
+
workforceForecast: null,
|
|
264
|
+
workforceForecastError: null
|
|
260
265
|
}), e({
|
|
261
266
|
loading: !0,
|
|
262
267
|
error: null,
|
|
@@ -271,7 +276,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
271
276
|
},
|
|
272
277
|
groupFirst: 30,
|
|
273
278
|
conversationFirst: 30
|
|
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 ?
|
|
279
|
+
}, 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 ? At(n.groups.edges) : [], l = n ? kt(n.projects.items, c) : [], u = n ? jt(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));
|
|
275
280
|
e({
|
|
276
281
|
employees: m,
|
|
277
282
|
departments: h,
|
|
@@ -658,11 +663,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
658
663
|
}
|
|
659
664
|
},
|
|
660
665
|
fetchEmployeeDocuments: async (t) => {
|
|
661
|
-
let n = $.getState().initParams, r = await H(
|
|
666
|
+
let n = $.getState().initParams, r = await H(ke, { employeeId: t }, n, "Unable to load employee documents");
|
|
662
667
|
e((e) => ({ employeeDocuments: [...e.employeeDocuments.filter((e) => e.employeeId !== t), ...r.employeeDocuments] }));
|
|
663
668
|
},
|
|
664
669
|
uploadEmployeeDocument: async ({ employeeId: t, file: n, title: r, category: i }) => {
|
|
665
|
-
let a = $.getState().initParams, o = await H(
|
|
670
|
+
let a = $.getState().initParams, o = await H(Ye, { 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(Xe, { input: {
|
|
666
671
|
fileName: n.name,
|
|
667
672
|
fileSize: String(n.size),
|
|
668
673
|
mimeType: n.type || "application/octet-stream",
|
|
@@ -677,9 +682,9 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
677
682
|
});
|
|
678
683
|
if (!e.ok) throw Error(`Failed to upload file bytes (status ${e.status})`);
|
|
679
684
|
}
|
|
680
|
-
let l = await H(
|
|
685
|
+
let l = await H(Ae, { input: {
|
|
681
686
|
employeeId: t,
|
|
682
|
-
fileId: (await H(
|
|
687
|
+
fileId: (await H(Ze, { input: {
|
|
683
688
|
sessionId: c.initiateUpload.session.id,
|
|
684
689
|
fileSize: String(n.size),
|
|
685
690
|
folderId: o.ensureFolderByPath.id
|
|
@@ -691,10 +696,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
691
696
|
},
|
|
692
697
|
detachEmployeeDocument: async (t) => {
|
|
693
698
|
let n = $.getState().initParams;
|
|
694
|
-
await H(
|
|
699
|
+
await H(je, { id: t }, n, "Unable to remove this document"), e((e) => ({ employeeDocuments: e.employeeDocuments.filter((e) => e.id !== t) }));
|
|
695
700
|
},
|
|
696
701
|
fetchEmployeeSkillProfile: async (t) => {
|
|
697
|
-
let n = $.getState().initParams, r = (await H(
|
|
702
|
+
let n = $.getState().initParams, r = (await H(Me, { id: t }, n, "Unable to load skills")).crewEmployee;
|
|
698
703
|
e((e) => ({
|
|
699
704
|
employeeSkillProfiles: {
|
|
700
705
|
...e.employeeSkillProfiles,
|
|
@@ -708,7 +713,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
708
713
|
},
|
|
709
714
|
attachEmployeeSkill: async ({ employeeId: e, skillName: t, proficiency: n }) => {
|
|
710
715
|
let r = $.getState().initParams;
|
|
711
|
-
await H(
|
|
716
|
+
await H(Ne, { input: {
|
|
712
717
|
employeeId: e,
|
|
713
718
|
skillName: t,
|
|
714
719
|
proficiency: n
|
|
@@ -716,7 +721,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
716
721
|
},
|
|
717
722
|
detachEmployeeSkill: async (e, t) => {
|
|
718
723
|
let n = $.getState().initParams;
|
|
719
|
-
await H(
|
|
724
|
+
await H(Pe, {
|
|
720
725
|
employeeId: e,
|
|
721
726
|
skillId: t
|
|
722
727
|
}, n, "Unable to remove this skill"), await $.getState().fetchEmployeeSkillProfile(e);
|
|
@@ -724,15 +729,15 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
724
729
|
fetchSkillsTaxonomy: async () => {
|
|
725
730
|
let t = $.getState().initParams, [n, r] = await Promise.all([(async () => {
|
|
726
731
|
let e = [];
|
|
727
|
-
for (let n = 0; n <
|
|
728
|
-
let r = await H(
|
|
732
|
+
for (let n = 0; n < Fe; n += 1) {
|
|
733
|
+
let r = await H(Ie, { pagination: {
|
|
729
734
|
limit: E,
|
|
730
735
|
offset: n * E
|
|
731
736
|
} }, t, "Unable to load the skills taxonomy");
|
|
732
737
|
if (e.push(...r.crewSkills), r.crewSkills.length < E) break;
|
|
733
738
|
}
|
|
734
739
|
return e;
|
|
735
|
-
})(), H(
|
|
740
|
+
})(), H(Le, void 0, t, "Unable to load skill categories")]);
|
|
736
741
|
e({
|
|
737
742
|
skillsTaxonomy: n,
|
|
738
743
|
skillsTaxonomyLoaded: !0,
|
|
@@ -741,7 +746,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
741
746
|
},
|
|
742
747
|
createTaxonomySkill: async ({ name: e, category: t, aliases: n, description: r }) => {
|
|
743
748
|
let i = $.getState().initParams;
|
|
744
|
-
await H(
|
|
749
|
+
await H(Re, { input: {
|
|
745
750
|
name: e,
|
|
746
751
|
category: t,
|
|
747
752
|
aliases: n,
|
|
@@ -750,13 +755,13 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
750
755
|
},
|
|
751
756
|
updateTaxonomySkill: async (e, t) => {
|
|
752
757
|
let n = $.getState().initParams;
|
|
753
|
-
await H(
|
|
758
|
+
await H(ze, {
|
|
754
759
|
id: e,
|
|
755
760
|
input: t
|
|
756
761
|
}, n, "Unable to update this skill"), await $.getState().fetchSkillsTaxonomy();
|
|
757
762
|
},
|
|
758
763
|
mergeTaxonomySkills: async (e, t) => {
|
|
759
|
-
let n = $.getState().initParams, r = await H(
|
|
764
|
+
let n = $.getState().initParams, r = await H(Be, {
|
|
760
765
|
sourceId: e,
|
|
761
766
|
targetId: t
|
|
762
767
|
}, n, "Unable to merge these skills");
|
|
@@ -771,19 +776,19 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
771
776
|
},
|
|
772
777
|
removeTaxonomySkill: async (e) => {
|
|
773
778
|
let t = $.getState().initParams;
|
|
774
|
-
await H(
|
|
779
|
+
await H(Ve, { id: e }, t, "Unable to remove this skill"), await $.getState().fetchSkillsTaxonomy();
|
|
775
780
|
},
|
|
776
781
|
createSkillRelation: async (e) => {
|
|
777
782
|
let t = $.getState().initParams;
|
|
778
|
-
await H(
|
|
783
|
+
await H(He, { input: e }, t, "Unable to add this relation"), await $.getState().fetchSkillsTaxonomy();
|
|
779
784
|
},
|
|
780
785
|
removeSkillRelation: async (e) => {
|
|
781
786
|
let t = $.getState().initParams;
|
|
782
|
-
await H(
|
|
787
|
+
await H(Ue, { id: e }, t, "Unable to remove this relation"), await $.getState().fetchSkillsTaxonomy();
|
|
783
788
|
},
|
|
784
789
|
fetchEmployeesBySkill: async (e, t) => {
|
|
785
790
|
let n = $.getState().initParams;
|
|
786
|
-
return (await H(
|
|
791
|
+
return (await H(We, {
|
|
787
792
|
skillId: e,
|
|
788
793
|
minProficiency: t?.minProficiency ?? null,
|
|
789
794
|
limit: t?.limit ?? 50
|
|
@@ -791,10 +796,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
791
796
|
},
|
|
792
797
|
fetchJobPostingSkillRequirements: async (e) => {
|
|
793
798
|
let t = $.getState().initParams;
|
|
794
|
-
return (await H(
|
|
799
|
+
return (await H(Ge, { id: e }, t, "Unable to load the skills this role needs")).crewJobPosting?.skillRequirements ?? [];
|
|
795
800
|
},
|
|
796
801
|
fetchCandidateSkillProfile: async (t) => {
|
|
797
|
-
let n = $.getState().initParams, r = (await H(
|
|
802
|
+
let n = $.getState().initParams, r = (await H(Ke, { id: t }, n, "Unable to load skills")).crewCandidate;
|
|
798
803
|
e((e) => ({
|
|
799
804
|
candidateSkillProfiles: {
|
|
800
805
|
...e.candidateSkillProfiles,
|
|
@@ -808,7 +813,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
808
813
|
},
|
|
809
814
|
attachCandidateSkill: async ({ candidateId: e, skillName: t, proficiency: n }) => {
|
|
810
815
|
let r = $.getState().initParams;
|
|
811
|
-
await H(
|
|
816
|
+
await H(qe, { input: {
|
|
812
817
|
candidateId: e,
|
|
813
818
|
skillName: t,
|
|
814
819
|
proficiency: n
|
|
@@ -816,7 +821,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
816
821
|
},
|
|
817
822
|
detachCandidateSkill: async (e, t) => {
|
|
818
823
|
let n = $.getState().initParams;
|
|
819
|
-
await H(
|
|
824
|
+
await H(Je, {
|
|
820
825
|
candidateId: e,
|
|
821
826
|
skillId: t
|
|
822
827
|
}, n, "Unable to remove this skill"), await $.getState().fetchCandidateSkillProfile(e);
|
|
@@ -824,16 +829,16 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
824
829
|
fetchOnboardings: async () => {
|
|
825
830
|
let t = $.getState().initParams;
|
|
826
831
|
e({
|
|
827
|
-
onboardings: (await H(
|
|
832
|
+
onboardings: (await H(Qe, {}, t, "Unable to load onboarding")).crewOnboardings.map(L),
|
|
828
833
|
onboardingsLoaded: !0
|
|
829
834
|
});
|
|
830
835
|
},
|
|
831
836
|
createOnboarding: async (t) => {
|
|
832
|
-
let n = $.getState().initParams, r = await H(
|
|
837
|
+
let n = $.getState().initParams, r = await H($e, { input: t }, n, "Unable to start onboarding");
|
|
833
838
|
e((e) => ({ onboardings: [L(r.createCrewOnboarding), ...e.onboardings] }));
|
|
834
839
|
},
|
|
835
840
|
updateOnboarding: async (t, n) => {
|
|
836
|
-
let r = $.getState().initParams, i = await H(
|
|
841
|
+
let r = $.getState().initParams, i = await H(et, {
|
|
837
842
|
id: t,
|
|
838
843
|
input: n
|
|
839
844
|
}, r, "Unable to update onboarding");
|
|
@@ -841,10 +846,10 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
841
846
|
},
|
|
842
847
|
removeOnboarding: async (t) => {
|
|
843
848
|
let n = $.getState().initParams;
|
|
844
|
-
await H(
|
|
849
|
+
await H(tt, { id: t }, n, "Unable to remove onboarding"), e((e) => ({ onboardings: e.onboardings.filter((e) => e.id !== t) }));
|
|
845
850
|
},
|
|
846
851
|
createOnboardingTask: async (t) => {
|
|
847
|
-
let n = $.getState().initParams, r = I((await H(
|
|
852
|
+
let n = $.getState().initParams, r = I((await H(nt, { input: t }, n, "Unable to create onboarding task")).createCrewOnboardingTask, F.onboardingTask);
|
|
848
853
|
e((e) => ({ onboardings: e.onboardings.map((e) => e.id === r.onboardingId ? {
|
|
849
854
|
...e,
|
|
850
855
|
tasks: [...e.tasks, r],
|
|
@@ -852,7 +857,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
852
857
|
} : e) }));
|
|
853
858
|
},
|
|
854
859
|
updateOnboardingTask: async (t, n) => {
|
|
855
|
-
let r = $.getState().initParams, i = I((await H(
|
|
860
|
+
let r = $.getState().initParams, i = I((await H(rt, {
|
|
856
861
|
id: t,
|
|
857
862
|
input: n
|
|
858
863
|
}, r, "Unable to update onboarding task")).updateCrewOnboardingTask, F.onboardingTask);
|
|
@@ -863,14 +868,14 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
863
868
|
},
|
|
864
869
|
removeOnboardingTask: async (t) => {
|
|
865
870
|
let n = $.getState().initParams;
|
|
866
|
-
await H(
|
|
871
|
+
await H(it, { id: t }, n, "Unable to remove onboarding task"), e((e) => ({ onboardings: e.onboardings.map((e) => e.tasks.some((e) => e.id === t) ? {
|
|
867
872
|
...e,
|
|
868
873
|
tasks: e.tasks.filter((e) => e.id !== t),
|
|
869
874
|
totalTaskCount: Math.max(0, e.totalTaskCount - 1)
|
|
870
875
|
} : e) }));
|
|
871
876
|
},
|
|
872
877
|
toggleOnboardingTask: async (t, n) => {
|
|
873
|
-
let r = $.getState().initParams, i = I((await H(
|
|
878
|
+
let r = $.getState().initParams, i = I((await H(at, {
|
|
874
879
|
id: t,
|
|
875
880
|
completed: n
|
|
876
881
|
}, r, "Unable to update onboarding task")).toggleCrewOnboardingTask, F.onboardingTask);
|
|
@@ -913,16 +918,37 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
913
918
|
});
|
|
914
919
|
}
|
|
915
920
|
},
|
|
921
|
+
fetchWorkforceForecast: async () => {
|
|
922
|
+
let t = $.getState().initParams, n = () => $.getState().initParams.workspaceId !== t.workspaceId;
|
|
923
|
+
e({
|
|
924
|
+
workforceForecastLoading: !0,
|
|
925
|
+
workforceForecastError: null
|
|
926
|
+
});
|
|
927
|
+
try {
|
|
928
|
+
let r = await H(T, void 0, t, "Unable to load the workforce forecast");
|
|
929
|
+
if (n()) return;
|
|
930
|
+
e({
|
|
931
|
+
workforceForecast: r,
|
|
932
|
+
workforceForecastLoading: !1
|
|
933
|
+
});
|
|
934
|
+
} catch (t) {
|
|
935
|
+
if (n()) return;
|
|
936
|
+
e({
|
|
937
|
+
workforceForecastLoading: !1,
|
|
938
|
+
workforceForecastError: t instanceof Error ? t.message : "Unable to load the workforce forecast"
|
|
939
|
+
});
|
|
940
|
+
}
|
|
941
|
+
},
|
|
916
942
|
fetchLearning: async () => {
|
|
917
943
|
let t = $.getState().initParams, n = {
|
|
918
944
|
limit: N,
|
|
919
945
|
offset: 0
|
|
920
946
|
};
|
|
921
947
|
for (let r = 1; r <= K; r += 1) {
|
|
922
|
-
let i = G.learning, a = await H(
|
|
948
|
+
let i = G.learning, a = await H(k, {
|
|
923
949
|
coursePage: n,
|
|
924
950
|
enrollmentPage: n
|
|
925
|
-
}, t, "Unable to load learning"), [o, s] = await Promise.all([W(
|
|
951
|
+
}, t, "Unable to load learning"), [o, s] = await Promise.all([W(ot, "crewTrainingCourses", t, "Unable to load courses", a.crewTrainingCourses), W(st, "crewEnrollments", t, "Unable to load enrollments", a.crewEnrollments)]);
|
|
926
952
|
if (!(i !== G.learning && r < K)) {
|
|
927
953
|
e({
|
|
928
954
|
trainingCourses: o,
|
|
@@ -935,11 +961,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
935
961
|
}
|
|
936
962
|
},
|
|
937
963
|
createTrainingCourse: async (t) => {
|
|
938
|
-
let n = $.getState().initParams, r = (await H(
|
|
964
|
+
let n = $.getState().initParams, r = (await H(lt, { input: t }, n, "Unable to create course")).createCrewTrainingCourse;
|
|
939
965
|
return G.learning += 1, e((e) => ({ trainingCourses: [r, ...e.trainingCourses] })), r;
|
|
940
966
|
},
|
|
941
967
|
updateTrainingCourse: async (t, n) => {
|
|
942
|
-
let r = $.getState().initParams, i = await H(
|
|
968
|
+
let r = $.getState().initParams, i = await H(ut, {
|
|
943
969
|
id: t,
|
|
944
970
|
input: n
|
|
945
971
|
}, r, "Unable to update course");
|
|
@@ -947,13 +973,13 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
947
973
|
},
|
|
948
974
|
removeTrainingCourse: async (t) => {
|
|
949
975
|
let n = $.getState().initParams;
|
|
950
|
-
await H(
|
|
976
|
+
await H(dt, { id: t }, n, "Unable to remove course"), G.learning += 1, e((e) => ({
|
|
951
977
|
trainingCourses: e.trainingCourses.filter((e) => e.id !== t),
|
|
952
978
|
trainingCompletion: e.trainingCompletion.filter((e) => e.courseId !== t)
|
|
953
979
|
}));
|
|
954
980
|
},
|
|
955
981
|
enrollEmployee: async (t, n) => {
|
|
956
|
-
let r = $.getState().initParams, i = q((await H(
|
|
982
|
+
let r = $.getState().initParams, i = q((await H(ft, { input: {
|
|
957
983
|
courseId: t,
|
|
958
984
|
employeeId: n.id,
|
|
959
985
|
employeeName: `${n.firstName} ${n.lastName}`.trim()
|
|
@@ -963,7 +989,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
963
989
|
a && e({ trainingCompletion: a });
|
|
964
990
|
},
|
|
965
991
|
updateEnrollmentStatus: async (t, n) => {
|
|
966
|
-
let r = $.getState().initParams, i = await H(
|
|
992
|
+
let r = $.getState().initParams, i = await H(pt, {
|
|
967
993
|
id: t,
|
|
968
994
|
status: P(n)
|
|
969
995
|
}, r, "Unable to update enrollment");
|
|
@@ -973,14 +999,14 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
973
999
|
},
|
|
974
1000
|
removeEnrollment: async (t) => {
|
|
975
1001
|
let n = $.getState().initParams;
|
|
976
|
-
await H(
|
|
1002
|
+
await H(mt, { id: t }, n, "Unable to remove enrollment"), G.learning += 1, e((e) => ({ enrollments: e.enrollments.filter((e) => e.id !== t) }));
|
|
977
1003
|
let r = await Q(n);
|
|
978
1004
|
r && e({ trainingCompletion: r });
|
|
979
1005
|
},
|
|
980
1006
|
fetchMarketplace: async () => {
|
|
981
1007
|
let t = $.getState().initParams;
|
|
982
1008
|
for (let n = 1; n <= K; n += 1) {
|
|
983
|
-
let r = G.marketplace, [i, a] = await Promise.all([W(
|
|
1009
|
+
let r = G.marketplace, [i, a] = await Promise.all([W(ht, "crewServiceListings", t, "Unable to load marketplace services"), W(gt, "crewBookings", t, "Unable to load bookings")]);
|
|
984
1010
|
if (!(r !== G.marketplace && n < K)) {
|
|
985
1011
|
e({
|
|
986
1012
|
serviceListings: i.map(J),
|
|
@@ -992,11 +1018,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
992
1018
|
}
|
|
993
1019
|
},
|
|
994
1020
|
createServiceListing: async (t) => {
|
|
995
|
-
let n = $.getState().initParams, r = J((await H(
|
|
1021
|
+
let n = $.getState().initParams, r = J((await H(vt, { input: t }, n, "Unable to publish service")).createCrewServiceListing);
|
|
996
1022
|
return G.marketplace += 1, e((e) => ({ serviceListings: [r, ...e.serviceListings] })), r;
|
|
997
1023
|
},
|
|
998
1024
|
updateServiceListing: async (t, n) => {
|
|
999
|
-
let r = $.getState().initParams, i = await H(
|
|
1025
|
+
let r = $.getState().initParams, i = await H(yt, {
|
|
1000
1026
|
id: t,
|
|
1001
1027
|
input: n.status ? {
|
|
1002
1028
|
...n,
|
|
@@ -1007,17 +1033,17 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
1007
1033
|
},
|
|
1008
1034
|
removeServiceListing: async (t) => {
|
|
1009
1035
|
let n = $.getState().initParams;
|
|
1010
|
-
await H(
|
|
1036
|
+
await H(bt, { id: t }, n, "Unable to remove service"), G.marketplace += 1, e((e) => ({ serviceListings: e.serviceListings.filter((e) => e.id !== t) }));
|
|
1011
1037
|
},
|
|
1012
1038
|
bookServiceListing: async (t) => {
|
|
1013
|
-
let n = $.getState().initParams, r = Y((await H(
|
|
1039
|
+
let n = $.getState().initParams, r = Y((await H(xt, { input: t }, n, "Unable to book service")).createCrewBooking);
|
|
1014
1040
|
return G.marketplace += 1, e((e) => ({
|
|
1015
1041
|
bookings: [r, ...e.bookings],
|
|
1016
1042
|
escrowLoaded: !1
|
|
1017
1043
|
})), r;
|
|
1018
1044
|
},
|
|
1019
1045
|
updateBookingStatus: async (t, n) => {
|
|
1020
|
-
let r = $.getState().initParams, i = await H(
|
|
1046
|
+
let r = $.getState().initParams, i = await H(St, {
|
|
1021
1047
|
id: t,
|
|
1022
1048
|
status: P(n)
|
|
1023
1049
|
}, r, "Unable to update booking");
|
|
@@ -1030,7 +1056,7 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
1030
1056
|
let t = $.getState().initParams;
|
|
1031
1057
|
try {
|
|
1032
1058
|
e({
|
|
1033
|
-
escrowRecords: (await W(
|
|
1059
|
+
escrowRecords: (await W(_t, "crewEscrowRecords", t, "Unable to load escrow records")).map(X),
|
|
1034
1060
|
escrowLoaded: !0,
|
|
1035
1061
|
escrowError: null
|
|
1036
1062
|
});
|
|
@@ -1043,11 +1069,11 @@ var r = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
1043
1069
|
}
|
|
1044
1070
|
},
|
|
1045
1071
|
releaseEscrowRecord: async (t) => {
|
|
1046
|
-
let n = $.getState().initParams, r = await H(
|
|
1072
|
+
let n = $.getState().initParams, r = await H(Ct, { id: t }, n, "Unable to release escrow");
|
|
1047
1073
|
e((e) => ({ escrowRecords: Z(e.escrowRecords, X(r.releaseCrewEscrowRecord)) }));
|
|
1048
1074
|
},
|
|
1049
1075
|
cancelEscrowRecord: async (t) => {
|
|
1050
|
-
let n = $.getState().initParams, r = await H(
|
|
1076
|
+
let n = $.getState().initParams, r = await H(wt, { id: t }, n, "Unable to cancel escrow");
|
|
1051
1077
|
e((e) => ({ escrowRecords: Z(e.escrowRecords, X(r.cancelCrewEscrowRecord)) }));
|
|
1052
1078
|
}
|
|
1053
1079
|
}));
|