@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.
- package/dist/crewfoundry/CrewFoundryRoutes.d.ts.map +1 -1
- package/dist/crewfoundry/CrewFoundryRoutes.js +18 -14
- package/dist/crewfoundry/CrewFoundryRoutes.js.map +1 -1
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts +9 -0
- package/dist/crewfoundry/components/EmployeeSkillsPanel.d.ts.map +1 -1
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js +111 -77
- package/dist/crewfoundry/components/EmployeeSkillsPanel.js.map +1 -1
- package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.d.ts +13 -0
- package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.d.ts.map +1 -0
- package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.js +128 -0
- package/dist/crewfoundry/components/skills/FindPeopleBySkillCard.js.map +1 -0
- package/dist/crewfoundry/components/skills/MergeSkillDialog.d.ts +15 -0
- package/dist/crewfoundry/components/skills/MergeSkillDialog.d.ts.map +1 -0
- package/dist/crewfoundry/components/skills/MergeSkillDialog.js +58 -0
- package/dist/crewfoundry/components/skills/MergeSkillDialog.js.map +1 -0
- package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.d.ts +15 -0
- package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.d.ts.map +1 -0
- package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.js +163 -0
- package/dist/crewfoundry/components/skills/RoleSkillMatchPanel.js.map +1 -0
- package/dist/crewfoundry/components/skills/SkillPicker.d.ts +20 -0
- package/dist/crewfoundry/components/skills/SkillPicker.d.ts.map +1 -0
- package/dist/crewfoundry/components/skills/SkillPicker.js +73 -0
- package/dist/crewfoundry/components/skills/SkillPicker.js.map +1 -0
- package/dist/crewfoundry/components/skills/SkillRelationsDialog.d.ts +13 -0
- package/dist/crewfoundry/components/skills/SkillRelationsDialog.d.ts.map +1 -0
- package/dist/crewfoundry/components/skills/SkillRelationsDialog.js +156 -0
- package/dist/crewfoundry/components/skills/SkillRelationsDialog.js.map +1 -0
- package/dist/crewfoundry/lib/analytics.d.ts +1 -29
- package/dist/crewfoundry/lib/analytics.d.ts.map +1 -1
- package/dist/crewfoundry/lib/analytics.js +3 -48
- package/dist/crewfoundry/lib/analytics.js.map +1 -1
- package/dist/crewfoundry/lib/skillMatching.d.ts +70 -0
- package/dist/crewfoundry/lib/skillMatching.d.ts.map +1 -0
- package/dist/crewfoundry/lib/skillMatching.js +73 -0
- package/dist/crewfoundry/lib/skillMatching.js.map +1 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts +8 -0
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js +468 -212
- package/dist/crewfoundry/pages/DashboardExecutiveDashboardPage.js.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js +210 -177
- package/dist/crewfoundry/pages/HiringCandidatesPagePage.js.map +1 -1
- package/dist/crewfoundry/pages/HrEmployeeProfilePagePage.js +6 -6
- package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.d.ts +9 -0
- package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.d.ts.map +1 -0
- package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.js +456 -0
- package/dist/crewfoundry/pages/HrSkillsTaxonomyPagePage.js.map +1 -0
- package/dist/crewfoundry/pages/ProjectsResourcingPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js +50 -102
- package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +145 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +188 -57
- 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) }", 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",
|
|
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
|
-
},
|
|
43
|
+
}, Dt = (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
|
+
}, 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:
|
|
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
|
-
}),
|
|
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:
|
|
75
|
+
status: Dt(e.status),
|
|
76
76
|
projectCount: 0,
|
|
77
77
|
createdAt: R(e.createdAt)
|
|
78
|
-
})), V = "/conversations",
|
|
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
|
-
})),
|
|
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
|
-
},
|
|
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
|
-
]),
|
|
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))
|
|
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
|
-
},
|
|
124
|
-
let s =
|
|
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:
|
|
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
|
|
133
|
-
},
|
|
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
|
|
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 <
|
|
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(
|
|
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 ?
|
|
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(
|
|
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(
|
|
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(
|
|
680
|
+
let l = await H(ke, { input: {
|
|
671
681
|
employeeId: t,
|
|
672
|
-
fileId: (await H(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
}));
|