@burdenoff/microfe-crewfoundry 2026.802.1 → 2026.827.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/pages/ProjectsResourcingPagePage.d.ts.map +1 -1
- package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js +153 -69
- package/dist/crewfoundry/pages/ProjectsResourcingPagePage.js.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.d.ts +9 -0
- package/dist/crewfoundry/store/crewfoundryStore.d.ts.map +1 -1
- package/dist/crewfoundry/store/crewfoundryStore.js +41 -32
- package/dist/crewfoundry/store/crewfoundryStore.js.map +1 -1
- package/dist/utils/pageContext.d.ts.map +1 -1
- package/dist/utils/pageContext.js +20 -24
- package/dist/utils/pageContext.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { create as e } from "zustand";
|
|
2
2
|
import { graphqlFetch as t } from "@burdenoff/fe-libs/shared/graphql";
|
|
3
3
|
//#region src/crewfoundry/store/crewfoundryStore.ts
|
|
4
|
-
var n = "\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", r = "\n query CrewPayrollRecords {\n crewPayrollRecords { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod }\n }\n", i = "\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", a = "\n query CrewfoundryOverlapBilling {\n getBillingAccountsByOrg {\n id\n name\n isDefault\n paymentMethods {\n id\n type\n brand\n last4\n isDefault\n expiryMonth\n expiryYear\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 } }", S = "mutation RemoveCrewInterview($id: ID!) { removeCrewInterview(id: $id) }", C = "mutation CreateCrewVendor($input: CreateCrewVendorInput!) { createCrewVendor(input: $input) { id name category contactPerson email phone status contractValue rating } }", w = "mutation UpdateCrewVendor($id: ID!, $input: UpdateCrewVendorInput!) { updateCrewVendor(id: $id, input: $input) { id name category contactPerson email phone status contractValue rating } }", T = "mutation RemoveCrewVendor($id: ID!) { removeCrewVendor(id: $id) }", E = "mutation CreateCrewClient($input: CreateCrewClientInput!) { createCrewClient(input: $input) { id name industry contactPerson email phone status revenue projects since } }", D = "mutation UpdateCrewClient($id: ID!, $input: UpdateCrewClientInput!) { updateCrewClient(id: $id, input: $input) { id name industry contactPerson email phone status revenue projects since } }", ee = "mutation RemoveCrewClient($id: ID!) { removeCrewClient(id: $id) }", te = "mutation CreateCrewTeam($input: CreateCrewTeamInput!) { createCrewTeam(input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", ne = "mutation UpdateCrewTeam($id: ID!, $input: UpdateCrewTeamInput!) { updateCrewTeam(id: $id, input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", re = "mutation RemoveCrewTeam($id: ID!) { removeCrewTeam(id: $id) }", ie = "mutation CreateCrewProject($input: CreateCrewProjectInput!) { createCrewProject(input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", ae = "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 } }", oe = "mutation RemoveCrewProject($id: ID!) { removeCrewProject(id: $id) }", se = "mutation CreateCrewDepartment($input: CreateCrewDepartmentInput!) { createCrewDepartment(input: $input) { id name headId headName employeeCount budget location status } }", ce = "mutation UpdateCrewDepartment($id: ID!, $input: UpdateCrewDepartmentInput!) { updateCrewDepartment(id: $id, input: $input) { id name headId headName employeeCount budget location status } }", le = "mutation RemoveCrewDepartment($id: ID!) { removeCrewDepartment(id: $id) }", ue = "mutation CreateCrewPayrollRecord($input: CreateCrewPayrollRecordInput!) { createCrewPayrollRecord(input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", de = "mutation UpdateCrewPayrollRecord($id: ID!, $input: UpdateCrewPayrollRecordInput!) { updateCrewPayrollRecord(id: $id, input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", fe = "mutation RemoveCrewPayrollRecord($id: ID!) { removeCrewPayrollRecord(id: $id) }", O = "id country currency period payDate status employeeCount totalGrossPay totalNetPay calculatedAt approvedAt approvedBy notes", k = `query CrewPayrollRuns { crewPayrollRuns { ${O} } }`, A = `mutation CreateCrewPayrollRun($input: CreateCrewPayrollRunInput!) { createCrewPayrollRun(input: $input) { ${O} } }`, j = `mutation CalculateCrewPayrollRun($id: ID!) { calculateCrewPayrollRun(id: $id) { ${O} } }`, M = `mutation ApproveCrewPayrollRun($id: ID!) { approveCrewPayrollRun(id: $id) { ${O} } }`, N = "mutation RemoveCrewPayrollRun($id: ID!) { removeCrewPayrollRun(id: $id) }", P = "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 } }", F = "mutation CreateCrewTimeEntry($input: CreateCrewTimeEntryInput!) { createCrewTimeEntry(input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", I = "mutation UpdateCrewTimeEntry($id: ID!, $input: UpdateCrewTimeEntryInput!) { updateCrewTimeEntry(id: $id, input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", L = "mutation RemoveCrewTimeEntry($id: ID!) { removeCrewTimeEntry(id: $id) }", R = "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 } } }", z = "query EmployeeDocuments($employeeId: ID!) { employeeDocuments(employeeId: $employeeId) { id employeeId fileId title category uploadedBy uploadedAt } }", B = "mutation AttachEmployeeDocument($input: AttachCrewEmployeeDocumentInput!) { attachEmployeeDocument(input: $input) { id employeeId fileId title category uploadedBy uploadedAt } }", V = "mutation DetachEmployeeDocument($id: ID!) { detachEmployeeDocument(id: $id) }", pe = "mutation EnsureFolderByPath($path: String!) { ensureFolderByPath(path: $path) { id } }", me = "mutation InitiateUpload($input: InitiateUploadInput!) { initiateUpload(input: $input) { session { id } uploadUrl } }", he = "mutation CompleteUpload($input: CompleteUploadInput!) { completeUpload(input: $input) { file { id } } }", ge = "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 } } }", ve = "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 } } }", ye = "mutation RemoveCrewOnboarding($id: ID!) { removeCrewOnboarding(id: $id) }", be = "mutation CreateCrewOnboardingTask($input: CreateCrewOnboardingTaskInput!) { createCrewOnboardingTask(input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", xe = "mutation UpdateCrewOnboardingTask($id: ID!, $input: UpdateCrewOnboardingTaskInput!) { updateCrewOnboardingTask(id: $id, input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", Se = "mutation RemoveCrewOnboardingTask($id: ID!) { removeCrewOnboardingTask(id: $id) }", Ce = "mutation ToggleCrewOnboardingTask($id: ID!, $completed: Boolean!) { toggleCrewOnboardingTask(id: $id, completed: $completed) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", H = (e) => e.toUpperCase().replaceAll("-", "_"), U = (e) => /* @__PURE__ */ Error(`${e} isn't available in CrewFoundry.`), W = {
|
|
4
|
+
var n = "\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", r = "\n query CrewPayrollRecords {\n crewPayrollRecords { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod }\n }\n", i = "\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", a = "\n query CrewfoundryOverlapBilling {\n getBillingAccountsByOrg {\n id\n name\n isDefault\n paymentMethods {\n id\n type\n brand\n last4\n isDefault\n expiryMonth\n expiryYear\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 } }", S = "mutation RemoveCrewInterview($id: ID!) { removeCrewInterview(id: $id) }", C = "mutation CreateCrewVendor($input: CreateCrewVendorInput!) { createCrewVendor(input: $input) { id name category contactPerson email phone status contractValue rating } }", w = "mutation UpdateCrewVendor($id: ID!, $input: UpdateCrewVendorInput!) { updateCrewVendor(id: $id, input: $input) { id name category contactPerson email phone status contractValue rating } }", T = "mutation RemoveCrewVendor($id: ID!) { removeCrewVendor(id: $id) }", E = "mutation CreateCrewClient($input: CreateCrewClientInput!) { createCrewClient(input: $input) { id name industry contactPerson email phone status revenue projects since } }", D = "mutation UpdateCrewClient($id: ID!, $input: UpdateCrewClientInput!) { updateCrewClient(id: $id, input: $input) { id name industry contactPerson email phone status revenue projects since } }", ee = "mutation RemoveCrewClient($id: ID!) { removeCrewClient(id: $id) }", te = "mutation CreateCrewTeam($input: CreateCrewTeamInput!) { createCrewTeam(input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", ne = "mutation UpdateCrewTeam($id: ID!, $input: UpdateCrewTeamInput!) { updateCrewTeam(id: $id, input: $input) { id name description leadId leadName members memberCount department status projectCount createdAt } }", re = "mutation RemoveCrewTeam($id: ID!) { removeCrewTeam(id: $id) }", ie = "mutation CreateCrewProject($input: CreateCrewProjectInput!) { createCrewProject(input: $input) { id name description status priority startDate endDate progress budget spent teamId teamName managerId managerName tasks completedTasks } }", ae = "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 } }", oe = "mutation RemoveCrewProject($id: ID!) { removeCrewProject(id: $id) }", se = "mutation CreateCrewDepartment($input: CreateCrewDepartmentInput!) { createCrewDepartment(input: $input) { id name headId headName employeeCount budget location status } }", ce = "mutation UpdateCrewDepartment($id: ID!, $input: UpdateCrewDepartmentInput!) { updateCrewDepartment(id: $id, input: $input) { id name headId headName employeeCount budget location status } }", le = "mutation RemoveCrewDepartment($id: ID!) { removeCrewDepartment(id: $id) }", ue = "mutation CreateCrewPayrollRecord($input: CreateCrewPayrollRecordInput!) { createCrewPayrollRecord(input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", de = "mutation UpdateCrewPayrollRecord($id: ID!, $input: UpdateCrewPayrollRecordInput!) { updateCrewPayrollRecord(id: $id, input: $input) { id employeeId employeeName department period grossPay deductions netPay status payDate paymentMethod } }", fe = "mutation RemoveCrewPayrollRecord($id: ID!) { removeCrewPayrollRecord(id: $id) }", O = "id country currency period payDate status employeeCount totalGrossPay totalNetPay calculatedAt approvedAt approvedBy notes", k = `query CrewPayrollRuns { crewPayrollRuns { ${O} } }`, A = `mutation CreateCrewPayrollRun($input: CreateCrewPayrollRunInput!) { createCrewPayrollRun(input: $input) { ${O} } }`, j = `mutation CalculateCrewPayrollRun($id: ID!) { calculateCrewPayrollRun(id: $id) { ${O} } }`, M = `mutation ApproveCrewPayrollRun($id: ID!) { approveCrewPayrollRun(id: $id) { ${O} } }`, N = "mutation RemoveCrewPayrollRun($id: ID!) { removeCrewPayrollRun(id: $id) }", P = "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 } }", F = "mutation CreateCrewTimeEntry($input: CreateCrewTimeEntryInput!) { createCrewTimeEntry(input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", I = "mutation UpdateCrewTimeEntry($id: ID!, $input: UpdateCrewTimeEntryInput!) { updateCrewTimeEntry(id: $id, input: $input) { id employeeId employeeName date clockIn clockOut totalHours overtime project status billable } }", L = "mutation RemoveCrewTimeEntry($id: ID!) { removeCrewTimeEntry(id: $id) }", R = "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 } } }", z = "query CrewSkillsGap { crewSkillsGap { skill employeesWithSkill openJobsRequiringSkill shortage } }", B = "query EmployeeDocuments($employeeId: ID!) { employeeDocuments(employeeId: $employeeId) { id employeeId fileId title category uploadedBy uploadedAt } }", V = "mutation AttachEmployeeDocument($input: AttachCrewEmployeeDocumentInput!) { attachEmployeeDocument(input: $input) { id employeeId fileId title category uploadedBy uploadedAt } }", pe = "mutation DetachEmployeeDocument($id: ID!) { detachEmployeeDocument(id: $id) }", me = "mutation EnsureFolderByPath($path: String!) { ensureFolderByPath(path: $path) { id } }", he = "mutation InitiateUpload($input: InitiateUploadInput!) { initiateUpload(input: $input) { session { id } uploadUrl } }", ge = "mutation CompleteUpload($input: CompleteUploadInput!) { completeUpload(input: $input) { file { id } } }", _e = "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 } } }", ve = "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 } } }", ye = "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 } } }", be = "mutation RemoveCrewOnboarding($id: ID!) { removeCrewOnboarding(id: $id) }", xe = "mutation CreateCrewOnboardingTask($input: CreateCrewOnboardingTaskInput!) { createCrewOnboardingTask(input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", Se = "mutation UpdateCrewOnboardingTask($id: ID!, $input: UpdateCrewOnboardingTaskInput!) { updateCrewOnboardingTask(id: $id, input: $input) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", Ce = "mutation RemoveCrewOnboardingTask($id: ID!) { removeCrewOnboardingTask(id: $id) }", we = "mutation ToggleCrewOnboardingTask($id: ID!, $completed: Boolean!) { toggleCrewOnboardingTask(id: $id, completed: $completed) { id onboardingId stage title assigneeActorId assigneeName dueDate completedAt sortOrder } }", H = (e) => e.toUpperCase().replaceAll("-", "_"), U = (e) => /* @__PURE__ */ Error(`${e} isn't available in CrewFoundry.`), W = {
|
|
5
5
|
employee: ["status", "type"],
|
|
6
6
|
department: ["status"],
|
|
7
7
|
jobPosting: [
|
|
@@ -37,19 +37,19 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
37
37
|
}, K = (e) => ({
|
|
38
38
|
...G(e, W.onboarding),
|
|
39
39
|
tasks: (e.tasks ?? []).map((e) => G(e, W.onboardingTask))
|
|
40
|
-
}), q = (e) => e ? e.slice(0, 10) : "TBD",
|
|
40
|
+
}), q = (e) => e ? e.slice(0, 10) : "TBD", Te = (e) => !e || typeof e != "object" || Array.isArray(e) ? null : e, J = (e) => typeof e == "number" ? e : null, Y = (e) => typeof e == "string" ? e : null, Ee = (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
|
+
}, De = (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
|
+
}, Oe = (e, t) => e.map((e, n) => {
|
|
47
|
+
let r = Te(e.config), i = J(r?.budget) ?? 25e3 + n * 2500, a = J(r?.spent) ?? Math.round(i * (e.status === "COMPLETED" ? 1 : .62)), o = J(r?.progress) ?? (e.status === "COMPLETED" ? 100 : 58), s = J(r?.tasks) ?? 20 + n % 9, c = J(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: Y(r?.description) || `${e.key} delivery plan`,
|
|
52
|
-
status:
|
|
52
|
+
status: Ee(e.status),
|
|
53
53
|
priority: Y(r?.priority)?.toLowerCase() || "medium",
|
|
54
54
|
startDate: q(e.createdAt),
|
|
55
55
|
endDate: q(e.updatedAt),
|
|
@@ -63,7 +63,7 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
63
63
|
tasks: s,
|
|
64
64
|
completedTasks: c
|
|
65
65
|
};
|
|
66
|
-
}),
|
|
66
|
+
}), ke = (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 n = "\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: De(e.status),
|
|
76
76
|
projectCount: 0,
|
|
77
77
|
createdAt: q(e.createdAt)
|
|
78
|
-
})),
|
|
78
|
+
})), Ae = (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,7 +84,7 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
84
84
|
read: !1,
|
|
85
85
|
createdAt: e.updatedAt,
|
|
86
86
|
actionUrl: "/crewfoundry/communications/messages-page"
|
|
87
|
-
})),
|
|
87
|
+
})), X = (e) => {
|
|
88
88
|
let t = e.getBillingAccountsByOrg.find((e) => e?.isDefault && e?.id) || e.getBillingAccountsByOrg.find((e) => e?.id);
|
|
89
89
|
return t?.id ? (t.paymentMethods || []).filter((e) => !!e).map((e) => {
|
|
90
90
|
let n = e.expiryMonth ? String(e.expiryMonth).padStart(2, "0") : void 0, r = e.expiryYear ? String(e.expiryYear) : void 0, i = e.type === "BANK_TRANSFER" || e.type === "NETBANKING";
|
|
@@ -98,11 +98,11 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
98
98
|
expiry: n && r ? `${n}/${r}` : void 0
|
|
99
99
|
};
|
|
100
100
|
}) : [];
|
|
101
|
-
},
|
|
101
|
+
}, je = (e, t) => {
|
|
102
102
|
if (e.errors?.length) throw Error(e.errors[0]?.message || t);
|
|
103
103
|
if (!e.data) throw Error(t);
|
|
104
104
|
return e.data;
|
|
105
|
-
},
|
|
105
|
+
}, Me = new Set([
|
|
106
106
|
"id",
|
|
107
107
|
"createdAt",
|
|
108
108
|
"createdOn",
|
|
@@ -124,28 +124,28 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
124
124
|
"viewCount",
|
|
125
125
|
"revenue",
|
|
126
126
|
"projects"
|
|
127
|
-
]),
|
|
127
|
+
]), Ne = (e) => {
|
|
128
128
|
if (!e) return e;
|
|
129
129
|
let t = e.input;
|
|
130
130
|
if (!t || typeof t != "object" || Array.isArray(t)) return e;
|
|
131
131
|
let n = {};
|
|
132
|
-
for (let [e, r] of Object.entries(t))
|
|
132
|
+
for (let [e, r] of Object.entries(t)) Me.has(e) || (n[e] = r);
|
|
133
133
|
return {
|
|
134
134
|
...e,
|
|
135
135
|
input: n
|
|
136
136
|
};
|
|
137
|
-
}, Z = async (e, n, r, i, a = "workspace") =>
|
|
137
|
+
}, Z = async (e, n, r, i, a = "workspace") => je(await t({
|
|
138
138
|
gateway: a,
|
|
139
139
|
query: e,
|
|
140
|
-
variables:
|
|
140
|
+
variables: Ne(n),
|
|
141
141
|
authToken: r.authToken,
|
|
142
142
|
baseUrl: a === "workspace" ? r.apiGatewayUrl : void 0,
|
|
143
143
|
extraHeaders: { ...a === "workspace" && r.workspaceId ? { "x-workspace-id": r.workspaceId } : {} }
|
|
144
|
-
}), i),
|
|
144
|
+
}), i), Pe = () => !1, Q = async (e, t, n, r, i = "workspace") => {
|
|
145
145
|
try {
|
|
146
146
|
return await Z(e, t, n, r, i);
|
|
147
147
|
} catch (e) {
|
|
148
|
-
return
|
|
148
|
+
return Pe() && console.warn(`[crewfoundry] overlap query skipped: ${r}`, e), null;
|
|
149
149
|
}
|
|
150
150
|
}, $ = e((e) => ({
|
|
151
151
|
metrics: [
|
|
@@ -234,6 +234,8 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
234
234
|
payrollRunsLoading: !1,
|
|
235
235
|
payslipsByRun: {},
|
|
236
236
|
payslipsLoading: !1,
|
|
237
|
+
skillsGap: [],
|
|
238
|
+
skillsGapLoaded: !1,
|
|
237
239
|
initializeData: async (t) => {
|
|
238
240
|
if (t.workspaceId) {
|
|
239
241
|
e({
|
|
@@ -254,7 +256,7 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
254
256
|
}, t, "Unable to load workspace bootstrap with overlap data"),
|
|
255
257
|
Q(a, void 0, t, "Unable to load overlap billing data", "global"),
|
|
256
258
|
Q(r, void 0, t, "Unable to load payroll records")
|
|
257
|
-
]), l = o ? o.crewfoundryBootstrap : (await Z(n, void 0, t, "Unable to load CrewFoundry data")).crewfoundryBootstrap, u = o ?
|
|
259
|
+
]), l = o ? o.crewfoundryBootstrap : (await Z(n, void 0, t, "Unable to load CrewFoundry data")).crewfoundryBootstrap, u = o ? ke(o.groups.edges) : [], d = o ? Oe(o.projects.items, u) : [], f = o ? Ae(o.conversations.edges) : [], p = u.length > 0 ? u : l.teams, m = d.length > 0 ? d : l.projects, h = f, g = s ? X(s) : [], _ = l.employees.map((e) => G(e, W.employee)), v = l.departments.map((e) => G(e, W.department)), y = l.jobPostings.map((e) => G(e, W.jobPosting)), b = l.candidates.map((e) => G(e, W.candidate)), x = l.interviews.map((e) => G(e, W.interview)), S = [], C = [], w = l.announcements.map((e) => G(e, W.announcement)), T = p.map((e) => G(e, W.team)), E = m.map((e) => G(e, W.project));
|
|
258
260
|
e({
|
|
259
261
|
employees: _,
|
|
260
262
|
departments: v,
|
|
@@ -685,11 +687,11 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
685
687
|
}
|
|
686
688
|
},
|
|
687
689
|
fetchEmployeeDocuments: async (t) => {
|
|
688
|
-
let n = $.getState().initParams, r = await Z(
|
|
690
|
+
let n = $.getState().initParams, r = await Z(B, { employeeId: t }, n, "Unable to load employee documents");
|
|
689
691
|
e((e) => ({ employeeDocuments: [...e.employeeDocuments.filter((e) => e.employeeId !== t), ...r.employeeDocuments] }));
|
|
690
692
|
},
|
|
691
693
|
uploadEmployeeDocument: async ({ employeeId: t, file: n, title: r, category: i }) => {
|
|
692
|
-
let a = $.getState().initParams, o = await Z(
|
|
694
|
+
let a = $.getState().initParams, o = await Z(me, { path: "/CrewFoundry/Employee Documents" }, a, "Unable to resolve the employee documents folder"), s = n.name.includes(".") ? n.name.substring(n.name.lastIndexOf(".") + 1) : "", c = await Z(he, { input: {
|
|
693
695
|
fileName: n.name,
|
|
694
696
|
fileSize: String(n.size),
|
|
695
697
|
mimeType: n.type || "application/octet-stream",
|
|
@@ -704,9 +706,9 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
704
706
|
});
|
|
705
707
|
if (!e.ok) throw Error(`Failed to upload file bytes (status ${e.status})`);
|
|
706
708
|
}
|
|
707
|
-
let l = await Z(
|
|
709
|
+
let l = await Z(V, { input: {
|
|
708
710
|
employeeId: t,
|
|
709
|
-
fileId: (await Z(
|
|
711
|
+
fileId: (await Z(ge, { input: {
|
|
710
712
|
sessionId: c.initiateUpload.session.id,
|
|
711
713
|
fileSize: String(n.size),
|
|
712
714
|
folderId: o.ensureFolderByPath.id
|
|
@@ -718,21 +720,21 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
718
720
|
},
|
|
719
721
|
detachEmployeeDocument: async (t) => {
|
|
720
722
|
let n = $.getState().initParams;
|
|
721
|
-
await Z(
|
|
723
|
+
await Z(pe, { id: t }, n, "Unable to remove this document"), e((e) => ({ employeeDocuments: e.employeeDocuments.filter((e) => e.id !== t) }));
|
|
722
724
|
},
|
|
723
725
|
fetchOnboardings: async () => {
|
|
724
726
|
let t = $.getState().initParams;
|
|
725
727
|
e({
|
|
726
|
-
onboardings: (await Z(
|
|
728
|
+
onboardings: (await Z(_e, {}, t, "Unable to load onboarding")).crewOnboardings.map(K),
|
|
727
729
|
onboardingsLoaded: !0
|
|
728
730
|
});
|
|
729
731
|
},
|
|
730
732
|
createOnboarding: async (t) => {
|
|
731
|
-
let n = $.getState().initParams, r = await Z(
|
|
733
|
+
let n = $.getState().initParams, r = await Z(ve, { input: t }, n, "Unable to start onboarding");
|
|
732
734
|
e((e) => ({ onboardings: [K(r.createCrewOnboarding), ...e.onboardings] }));
|
|
733
735
|
},
|
|
734
736
|
updateOnboarding: async (t, n) => {
|
|
735
|
-
let r = $.getState().initParams, i = await Z(
|
|
737
|
+
let r = $.getState().initParams, i = await Z(ye, {
|
|
736
738
|
id: t,
|
|
737
739
|
input: n
|
|
738
740
|
}, r, "Unable to update onboarding");
|
|
@@ -740,10 +742,10 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
740
742
|
},
|
|
741
743
|
removeOnboarding: async (t) => {
|
|
742
744
|
let n = $.getState().initParams;
|
|
743
|
-
await Z(
|
|
745
|
+
await Z(be, { id: t }, n, "Unable to remove onboarding"), e((e) => ({ onboardings: e.onboardings.filter((e) => e.id !== t) }));
|
|
744
746
|
},
|
|
745
747
|
createOnboardingTask: async (t) => {
|
|
746
|
-
let n = $.getState().initParams, r = G((await Z(
|
|
748
|
+
let n = $.getState().initParams, r = G((await Z(xe, { input: t }, n, "Unable to create onboarding task")).createCrewOnboardingTask, W.onboardingTask);
|
|
747
749
|
e((e) => ({ onboardings: e.onboardings.map((e) => e.id === r.onboardingId ? {
|
|
748
750
|
...e,
|
|
749
751
|
tasks: [...e.tasks, r],
|
|
@@ -751,7 +753,7 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
751
753
|
} : e) }));
|
|
752
754
|
},
|
|
753
755
|
updateOnboardingTask: async (t, n) => {
|
|
754
|
-
let r = $.getState().initParams, i = G((await Z(
|
|
756
|
+
let r = $.getState().initParams, i = G((await Z(Se, {
|
|
755
757
|
id: t,
|
|
756
758
|
input: n
|
|
757
759
|
}, r, "Unable to update onboarding task")).updateCrewOnboardingTask, W.onboardingTask);
|
|
@@ -762,14 +764,14 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
762
764
|
},
|
|
763
765
|
removeOnboardingTask: async (t) => {
|
|
764
766
|
let n = $.getState().initParams;
|
|
765
|
-
await Z(
|
|
767
|
+
await Z(Ce, { id: t }, n, "Unable to remove onboarding task"), e((e) => ({ onboardings: e.onboardings.map((e) => e.tasks.some((e) => e.id === t) ? {
|
|
766
768
|
...e,
|
|
767
769
|
tasks: e.tasks.filter((e) => e.id !== t),
|
|
768
770
|
totalTaskCount: Math.max(0, e.totalTaskCount - 1)
|
|
769
771
|
} : e) }));
|
|
770
772
|
},
|
|
771
773
|
toggleOnboardingTask: async (t, n) => {
|
|
772
|
-
let r = $.getState().initParams, i = G((await Z(
|
|
774
|
+
let r = $.getState().initParams, i = G((await Z(we, {
|
|
773
775
|
id: t,
|
|
774
776
|
completed: n
|
|
775
777
|
}, r, "Unable to update onboarding task")).toggleCrewOnboardingTask, W.onboardingTask);
|
|
@@ -783,6 +785,13 @@ var n = "\n query CrewfoundryBootstrap {\n crewfoundryBootstrap {\n emp
|
|
|
783
785
|
progressPercent: n.length === 0 ? 0 : Math.round(r / n.length * 1e3) / 10
|
|
784
786
|
};
|
|
785
787
|
}) }));
|
|
788
|
+
},
|
|
789
|
+
fetchSkillsGap: async () => {
|
|
790
|
+
let t = $.getState().initParams;
|
|
791
|
+
e({
|
|
792
|
+
skillsGap: (await Z(z, void 0, t, "Unable to load skills coverage")).crewSkillsGap,
|
|
793
|
+
skillsGapLoaded: !0
|
|
794
|
+
});
|
|
786
795
|
}
|
|
787
796
|
}));
|
|
788
797
|
//#endregion
|