@gusto/embedded-react-sdk 0.55.5 → 0.55.6
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/CHANGELOG.md +24 -0
- package/dist/components/Common/DataView/DataTable/DataTable.js +44 -41
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/RequirementsList/RequirementsList.js +21 -12
- package/dist/components/Common/RequirementsList/RequirementsList.js.map +1 -1
- package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -9
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +21 -15
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +20 -17
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.d.ts +1 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +21 -17
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.d.ts +7 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/index.d.ts +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +112 -100
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +46 -40
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +10 -9
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js +22 -19
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -0
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +34 -30
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.d.ts +7 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/index.d.ts +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +32 -32
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +1 -0
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +11 -10
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js +7 -6
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +20 -19
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +12 -10
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +13 -12
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.module.scss.js +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +200 -195
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +93 -85
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +50 -0
- package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +52 -0
- package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -0
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +52 -50
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +259 -255
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +278 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/index.d.ts +1 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +108 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.test.d.ts +1 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.d.ts +95 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.test.d.ts +1 -0
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +126 -0
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +1 -0
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +191 -183
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +117 -107
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +39 -0
- package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +46 -0
- package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -0
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +40 -34
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +72 -87
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.d.ts +17 -0
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +55 -0
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -0
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -0
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts +13 -0
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +58 -0
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -0
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +8 -0
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -0
- package/dist/components/Payroll/helpers.d.ts +15 -0
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +12 -15
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +35 -35
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.module.scss.js +4 -4
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
- package/dist/hooks/usePollingTask/usePollingTask.d.ts +101 -0
- package/dist/hooks/usePollingTask/usePollingTask.js +50 -0
- package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -0
- package/dist/hooks/usePollingTask/usePollingTask.test.d.ts +1 -0
- package/dist/i18n/I18n.js +147 -30
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Management.Compensation.json.js +6 -6
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js +8 -8
- package/dist/i18n/en/Contractor.Profile.json.js +5 -5
- package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js +7 -5
- package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +16 -16
- package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js +98 -0
- package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/en/common.json.d.ts +1 -0
- package/dist/i18n/en/common.json.js +1 -1
- package/dist/i18n/es_US/Company.Addresses.json.js +8 -0
- package/dist/i18n/es_US/Company.Addresses.json.js.map +1 -0
- package/dist/i18n/es_US/Company.AssignSignatory.json.js +22 -0
- package/dist/i18n/es_US/Company.AssignSignatory.json.js.map +1 -0
- package/dist/i18n/es_US/Company.BankAccount.json.js +20 -0
- package/dist/i18n/es_US/Company.BankAccount.json.js.map +1 -0
- package/dist/i18n/es_US/Company.DocumentList.json.js +28 -0
- package/dist/i18n/es_US/Company.DocumentList.json.js.map +1 -0
- package/dist/i18n/es_US/Company.FederalTaxes.json.js +28 -0
- package/dist/i18n/es_US/Company.FederalTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Company.Industry.json.js +12 -0
- package/dist/i18n/es_US/Company.Industry.json.js.map +1 -0
- package/dist/i18n/es_US/Company.Locations.json.js +44 -0
- package/dist/i18n/es_US/Company.Locations.json.js.map +1 -0
- package/dist/i18n/es_US/Company.OnboardingOverview.json.js +24 -0
- package/dist/i18n/es_US/Company.OnboardingOverview.json.js.map +1 -0
- package/dist/i18n/es_US/Company.PaySchedule.json.js +36 -0
- package/dist/i18n/es_US/Company.PaySchedule.json.js.map +1 -0
- package/dist/i18n/es_US/Company.SignatureForm.json.js +20 -0
- package/dist/i18n/es_US/Company.SignatureForm.json.js.map +1 -0
- package/dist/i18n/es_US/Company.StateTaxes.json.js +12 -0
- package/dist/i18n/es_US/Company.StateTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.CreateTimeOffPolicy.json.js +18 -0
- package/dist/i18n/es_US/Company.TimeOff.CreateTimeOffPolicy.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.EmployeeTable.json.js +26 -0
- package/dist/i18n/es_US/Company.TimeOff.EmployeeTable.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.HolidayPolicy.json.js +26 -0
- package/dist/i18n/es_US/Company.TimeOff.HolidayPolicy.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.PolicyDetail.json.js +14 -0
- package/dist/i18n/es_US/Company.TimeOff.PolicyDetail.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.SelectEmployees.json.js +22 -0
- package/dist/i18n/es_US/Company.TimeOff.SelectEmployees.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.SelectPolicyType.json.js +26 -0
- package/dist/i18n/es_US/Company.TimeOff.SelectPolicyType.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicies.json.js +40 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicies.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicyDetails.json.js +52 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffPolicyDetails.json.js.map +1 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffRequests.json.js +21 -0
- package/dist/i18n/es_US/Company.TimeOff.TimeOffRequests.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Address.json.js +22 -0
- package/dist/i18n/es_US/Contractor.Address.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.BankAccountFields.json.js +12 -0
- package/dist/i18n/es_US/Contractor.BankAccountFields.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.ContractorList.json.js +24 -0
- package/dist/i18n/es_US/Contractor.ContractorList.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Dashboard.json.js +14 -0
- package/dist/i18n/es_US/Contractor.Dashboard.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.DocumentsList.json.js +18 -0
- package/dist/i18n/es_US/Contractor.DocumentsList.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Landing.json.js +18 -0
- package/dist/i18n/es_US/Contractor.Landing.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Management.Address.json.js +14 -0
- package/dist/i18n/es_US/Contractor.Management.Address.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Management.Compensation.json.js +22 -0
- package/dist/i18n/es_US/Contractor.Management.Compensation.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Management.Documents.json.js +16 -0
- package/dist/i18n/es_US/Contractor.Management.Documents.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Management.PaymentMethod.json.js +24 -0
- package/dist/i18n/es_US/Contractor.Management.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Management.Profile.json.js +20 -0
- package/dist/i18n/es_US/Contractor.Management.Profile.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js +48 -0
- package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.NewHireReport.json.js +22 -0
- package/dist/i18n/es_US/Contractor.NewHireReport.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.OnboardingSummary.json.js +10 -0
- package/dist/i18n/es_US/Contractor.OnboardingSummary.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.PaymentMethod.json.js +20 -0
- package/dist/i18n/es_US/Contractor.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.CreateHistoricalPayment.json.js +34 -0
- package/dist/i18n/es_US/Contractor.Payments.CreateHistoricalPayment.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.CreatePayment.json.js +42 -0
- package/dist/i18n/es_US/Contractor.Payments.CreatePayment.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.HistoricalPaymentSummary.json.js +42 -0
- package/dist/i18n/es_US/Contractor.Payments.HistoricalPaymentSummary.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentHistory.json.js +26 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentHistory.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentStatement.json.js +22 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentStatement.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentSummary.json.js +54 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentSummary.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js +32 -0
- package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Profile.json.js +18 -0
- package/dist/i18n/es_US/Contractor.Profile.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.SelectContractors.json.js +18 -0
- package/dist/i18n/es_US/Contractor.SelectContractors.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.SignatureForm.json.js +34 -0
- package/dist/i18n/es_US/Contractor.SignatureForm.json.js.map +1 -0
- package/dist/i18n/es_US/Contractor.Submit.json.js +26 -0
- package/dist/i18n/es_US/Contractor.Submit.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.BankAccount.json.js +14 -0
- package/dist/i18n/es_US/Employee.BankAccount.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.BankFormBody.json.js +12 -0
- package/dist/i18n/es_US/Employee.BankFormBody.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Compensation.json.js +68 -0
- package/dist/i18n/es_US/Employee.Compensation.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Dashboard.json.js +12 -0
- package/dist/i18n/es_US/Employee.Dashboard.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Deductions.json.js +142 -0
- package/dist/i18n/es_US/Employee.Deductions.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.DeductionsForm.json.js +24 -0
- package/dist/i18n/es_US/Employee.DeductionsForm.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.DocumentManager.json.js +10 -0
- package/dist/i18n/es_US/Employee.DocumentManager.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.DocumentSigner.json.js +28 -0
- package/dist/i18n/es_US/Employee.DocumentSigner.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.EmployeeDocuments.json.js +10 -0
- package/dist/i18n/es_US/Employee.EmployeeDocuments.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.EmployeeList.json.js +30 -0
- package/dist/i18n/es_US/Employee.EmployeeList.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.EmploymentEligibility.json.js +22 -0
- package/dist/i18n/es_US/Employee.EmploymentEligibility.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.FederalTaxes.json.js +46 -0
- package/dist/i18n/es_US/Employee.FederalTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.FederalTaxesView.json.js +38 -0
- package/dist/i18n/es_US/Employee.FederalTaxesView.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.HomeAddress.json.js +24 -0
- package/dist/i18n/es_US/Employee.HomeAddress.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.I9SignatureForm.json.js +64 -0
- package/dist/i18n/es_US/Employee.I9SignatureForm.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Landing.json.js +16 -0
- package/dist/i18n/es_US/Employee.Landing.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.Compensation.json.js +66 -0
- package/dist/i18n/es_US/Employee.Management.Compensation.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.Deductions.json.js +26 -0
- package/dist/i18n/es_US/Employee.Management.Deductions.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.Documents.json.js +18 -0
- package/dist/i18n/es_US/Employee.Management.Documents.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.FederalTaxes.json.js +42 -0
- package/dist/i18n/es_US/Employee.Management.FederalTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.HomeAddress.json.js +56 -0
- package/dist/i18n/es_US/Employee.Management.HomeAddress.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethod.json.js +24 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethodBankForm.json.js +12 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethodBankForm.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethodSplitForm.json.js +22 -0
- package/dist/i18n/es_US/Employee.Management.PaymentMethodSplitForm.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.Paystubs.json.js +28 -0
- package/dist/i18n/es_US/Employee.Management.Paystubs.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.Profile.json.js +16 -0
- package/dist/i18n/es_US/Employee.Management.Profile.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.StateTaxes.json.js +16 -0
- package/dist/i18n/es_US/Employee.Management.StateTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Management.WorkAddress.json.js +52 -0
- package/dist/i18n/es_US/Employee.Management.WorkAddress.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.ManagementEmployeeList.json.js +26 -0
- package/dist/i18n/es_US/Employee.ManagementEmployeeList.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.OnboardingSummary.json.js +22 -0
- package/dist/i18n/es_US/Employee.OnboardingSummary.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.PaySchedules.json.js +12 -0
- package/dist/i18n/es_US/Employee.PaySchedules.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.PaymentMethod.json.js +68 -0
- package/dist/i18n/es_US/Employee.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Profile.json.js +32 -0
- package/dist/i18n/es_US/Employee.Profile.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.SplitPaycheck.json.js +26 -0
- package/dist/i18n/es_US/Employee.SplitPaycheck.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.SplitPaymentsFormBody.json.js +22 -0
- package/dist/i18n/es_US/Employee.SplitPaymentsFormBody.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.StateTaxes.json.js +14 -0
- package/dist/i18n/es_US/Employee.StateTaxes.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.StateTaxesView.json.js +12 -0
- package/dist/i18n/es_US/Employee.StateTaxesView.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminateEmployee.json.js +18 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminateEmployee.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminationFlow.json.js +12 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminationFlow.json.js.map +1 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminationSummary.json.js +20 -0
- package/dist/i18n/es_US/Employee.Terminations.TerminationSummary.json.js.map +1 -0
- package/dist/i18n/es_US/InformationRequests.InformationRequestForm.json.js +20 -0
- package/dist/i18n/es_US/InformationRequests.InformationRequestForm.json.js.map +1 -0
- package/dist/i18n/es_US/InformationRequests.InformationRequestList.json.js +18 -0
- package/dist/i18n/es_US/InformationRequests.InformationRequestList.json.js.map +1 -0
- package/dist/i18n/es_US/InformationRequests.json.js +8 -0
- package/dist/i18n/es_US/InformationRequests.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.Common.json.js +8 -0
- package/dist/i18n/es_US/Payroll.Common.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.ConfirmWireDetailsBanner.json.js +14 -0
- package/dist/i18n/es_US/Payroll.ConfirmWireDetailsBanner.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.ConfirmWireDetailsForm.json.js +26 -0
- package/dist/i18n/es_US/Payroll.ConfirmWireDetailsForm.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.Dismissal.json.js +16 -0
- package/dist/i18n/es_US/Payroll.Dismissal.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.EmployeeSelection.json.js +8 -0
- package/dist/i18n/es_US/Payroll.EmployeeSelection.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.GrossUpModal.json.js +26 -0
- package/dist/i18n/es_US/Payroll.GrossUpModal.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCycle.json.js +8 -0
- package/dist/i18n/es_US/Payroll.OffCycle.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js +16 -0
- package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCycleDeductionsSetting.json.js +8 -0
- package/dist/i18n/es_US/Payroll.OffCycleDeductionsSetting.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js +14 -0
- package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCycleReasonSelection.json.js +12 -0
- package/dist/i18n/es_US/Payroll.OffCycleReasonSelection.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js +16 -0
- package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollBlocker.json.js +34 -0
- package/dist/i18n/es_US/Payroll.PayrollBlocker.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js +44 -0
- package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js +66 -0
- package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollHistory.json.js +22 -0
- package/dist/i18n/es_US/Payroll.PayrollHistory.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollLanding.json.js +16 -0
- package/dist/i18n/es_US/Payroll.PayrollLanding.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollList.json.js +38 -0
- package/dist/i18n/es_US/Payroll.PayrollList.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollOverview.json.js +70 -0
- package/dist/i18n/es_US/Payroll.PayrollOverview.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.PayrollReceipts.json.js +20 -0
- package/dist/i18n/es_US/Payroll.PayrollReceipts.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.RecoveryCasesList.json.js +20 -0
- package/dist/i18n/es_US/Payroll.RecoveryCasesList.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.RecoveryCasesResubmit.json.js +8 -0
- package/dist/i18n/es_US/Payroll.RecoveryCasesResubmit.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.Transition.json.js +8 -0
- package/dist/i18n/es_US/Payroll.Transition.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.TransitionCreation.json.js +20 -0
- package/dist/i18n/es_US/Payroll.TransitionCreation.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.TransitionPayrollAlert.json.js +18 -0
- package/dist/i18n/es_US/Payroll.TransitionPayrollAlert.json.js.map +1 -0
- package/dist/i18n/es_US/Payroll.WireInstructions.json.js +30 -0
- package/dist/i18n/es_US/Payroll.WireInstructions.json.js.map +1 -0
- package/dist/i18n/es_US/common.json.js +44 -0
- package/dist/i18n/es_US/common.json.js.map +1 -0
- package/dist/i18n/types.d.ts +262 -6
- package/dist/index.d.ts +2 -2
- package/dist/models/external.d.ts +23 -0
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +5 -0
- package/package.json +10 -10
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype';
|
|
2
|
+
import { EarningTypeList } from '@gusto/embedded-api/models/components/earningtypelist';
|
|
3
|
+
import { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api/models/components/payrollupdate';
|
|
4
|
+
import { RFCDate } from '@gusto/embedded-api/types/rfcdate';
|
|
5
|
+
import { PayrollEditEmployeeFormData, PayrollEditEmployeeFormOutputs } from './payrollEditEmployeeSchema';
|
|
6
|
+
import { PayrollCategory } from '../../../payrollTypes';
|
|
7
|
+
/** One fixed-compensation line off the prepared compensation. */
|
|
8
|
+
type FixedCompensationEntry = NonNullable<PayrollEmployeeCompensationsType['fixedCompensations']>[number];
|
|
9
|
+
/**
|
|
10
|
+
* Internal normalized form of a workweek: the API exposes
|
|
11
|
+
* `{ startDate?: RFCDate; endDate?: RFCDate }`, but the hook keys week-maps by
|
|
12
|
+
* `YYYY-MM-DD` strings and builds breakdowns from them, so both boundaries are
|
|
13
|
+
* required strings here. Not part of the public surface — partners read the raw
|
|
14
|
+
* workweeks off `data.preparedPayroll.workweeks` (the API type).
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
export interface NormalizedWorkweek {
|
|
19
|
+
startDate: string;
|
|
20
|
+
endDate: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Normalizes the prepared payroll's top-level `workweeks` into
|
|
24
|
+
* {@link NormalizedWorkweek} boundary strings, falling back to a single
|
|
25
|
+
* pay-period-spanning workweek when the API returns no workweek boundaries.
|
|
26
|
+
*
|
|
27
|
+
* @param workweeks - The prepared payroll's top-level `workweeks` (RFCDate boundaries), possibly `null`.
|
|
28
|
+
* @param payPeriod - The prepared payroll's `payPeriod`, used as the single-workweek fallback.
|
|
29
|
+
* @returns One entry per workweek; a single entry spanning the pay period when none are supplied.
|
|
30
|
+
* @throws SDKInternalError when neither workweeks nor a pay period are present (a malformed prepared payroll).
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function normalizeWorkweeks(workweeks: Array<{
|
|
34
|
+
startDate?: RFCDate;
|
|
35
|
+
endDate?: RFCDate;
|
|
36
|
+
}> | null | undefined, payPeriod: {
|
|
37
|
+
startDate?: string;
|
|
38
|
+
endDate?: string;
|
|
39
|
+
} | undefined): NormalizedWorkweek[];
|
|
40
|
+
/**
|
|
41
|
+
* Collects the names of earning types included in the regular-rate-of-pay
|
|
42
|
+
* overtime calculation. These earnings render in the workweek-breakdown
|
|
43
|
+
* additional-earnings section; all others fall into the flat `other` section.
|
|
44
|
+
*
|
|
45
|
+
* @param earningTypeList - The company's default and custom earning types.
|
|
46
|
+
* @returns A set of earning-type names with `includedInOvertimePay` set.
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
export declare function collectOvertimeEarningNames(earningTypeList: EarningTypeList | undefined): Set<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Merges the employee's existing fixed compensations with a blank placeholder for
|
|
52
|
+
* every payroll fixed-compensation type they don't yet have, mirroring the stable editor
|
|
53
|
+
* (`getAdditionalEarningsCompensations`). This is what lets the editor surface an
|
|
54
|
+
* empty input for Bonus, Commission, etc. even when the prepared payroll carries
|
|
55
|
+
* no fixed compensations. Placeholders attach to the primary job and carry no
|
|
56
|
+
* amount (blank), so an untouched earning submits as zero without altering pay.
|
|
57
|
+
*
|
|
58
|
+
* @remarks
|
|
59
|
+
* Owners (FLSA status `Owner`) never receive placeholders. Earning types that are
|
|
60
|
+
* handled elsewhere or never shown as additional earnings
|
|
61
|
+
* ({@link EXCLUDED_ADDITIONAL_EARNINGS}) and inactive types are skipped. The
|
|
62
|
+
* result is sorted alphabetically by name. The regular-rate-of-pay split between
|
|
63
|
+
* additional earnings and `other` happens downstream via `overtimeEarningNames`;
|
|
64
|
+
* this helper only decides which earning lines exist.
|
|
65
|
+
*
|
|
66
|
+
* @param existingFixedCompensations - The prepared compensation's fixed compensations.
|
|
67
|
+
* @param fixedCompensationTypes - The prepared payroll's `fixedCompensationTypes` (the same source the stable editor uses).
|
|
68
|
+
* @param primaryJobUuid - The employee's primary job UUID; placeholders attach here.
|
|
69
|
+
* @param flsaStatus - The employee's FLSA status; owners get no placeholders.
|
|
70
|
+
* @returns The merged, filtered, alphabetically sorted fixed-compensation lines.
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
export declare function resolveEditableFixedCompensations(existingFixedCompensations: FixedCompensationEntry[] | undefined, fixedCompensationTypes: Array<{
|
|
74
|
+
name?: string | null;
|
|
75
|
+
}> | undefined, primaryJobUuid: string | undefined, flsaStatus: string | undefined): FixedCompensationEntry[];
|
|
76
|
+
/**
|
|
77
|
+
* Derives the form's default values from the employee's prepared compensation.
|
|
78
|
+
*
|
|
79
|
+
* @remarks
|
|
80
|
+
* Hourly and additional earnings are expanded into per-workweek maps from each
|
|
81
|
+
* compensation's `breakdowns` (or its total for the single-workweek case). Time
|
|
82
|
+
* off, final payout, reimbursements, and payment method are read straight off
|
|
83
|
+
* the compensation.
|
|
84
|
+
*
|
|
85
|
+
* @param employeeCompensation - The employee's prepared compensation, if loaded.
|
|
86
|
+
* @param workweeks - Normalized workweeks for the pay period.
|
|
87
|
+
* @returns Default {@link PayrollEditEmployeeFormData} for `useForm`.
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
export declare function derivePayrollEditEmployeeDefaults(employeeCompensation: PayrollEmployeeCompensationsType | undefined, workweeks: NormalizedWorkweek[], hasDirectDepositSetup: boolean, overtimeEarningNames: Set<string>, isOvertimeEligible: boolean, fixedCompensations?: FixedCompensationEntry[]): PayrollEditEmployeeFormData;
|
|
91
|
+
/**
|
|
92
|
+
* Builds the `PayrollUpdate` employee-compensation payload from form values.
|
|
93
|
+
*
|
|
94
|
+
* @remarks
|
|
95
|
+
* When the pay period spans a single workweek, totals are sent without
|
|
96
|
+
* `breakdowns`. When it spans multiple workweeks, each hourly and additional
|
|
97
|
+
* earning carries `breakdowns` tiling every workweek exactly (no gaps or
|
|
98
|
+
* overlaps), with the total equal to the sum of the per-workweek values.
|
|
99
|
+
*
|
|
100
|
+
* @param formData - Current parsed form values.
|
|
101
|
+
* @param employeeCompensation - The prepared compensation, for identifying metadata (`version`, `employeeUuid`).
|
|
102
|
+
* @param workweeks - Normalized workweeks for the pay period.
|
|
103
|
+
* @param payrollCategory - The payroll category, gating itemized vs. off-cycle reimbursements.
|
|
104
|
+
* @returns The employee-compensation entry for the `PayrollUpdate` request body.
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
export declare function buildPayrollUpdateEmployeeCompensation(formData: PayrollEditEmployeeFormOutputs, employeeCompensation: PayrollEmployeeCompensationsType | undefined, workweeks: NormalizedWorkweek[], payrollCategory: PayrollCategory, isOvertimeEligible: boolean): PayrollUpdateEmployeeCompensations;
|
|
108
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Payment-method option values, in display order. The hook publishes these on
|
|
4
|
+
* `fieldsMetadata.paymentMethod` via `withOptions`; the UI supplies the
|
|
5
|
+
* translated labels through `getOptionLabel`.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const PAYMENT_METHOD_VALUES: readonly ["Direct Deposit", "Check"];
|
|
10
|
+
/** @internal */
|
|
11
|
+
export declare const PAYMENT_METHOD_OPTIONS: {
|
|
12
|
+
value: "Check" | "Direct Deposit";
|
|
13
|
+
label: "Check" | "Direct Deposit";
|
|
14
|
+
}[];
|
|
15
|
+
/**
|
|
16
|
+
* Validation error codes produced by the payroll edit-employee schema.
|
|
17
|
+
*
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
20
|
+
export declare const PayrollEditEmployeeErrorCodes: {
|
|
21
|
+
readonly NEGATIVE_AMOUNT: "NEGATIVE_AMOUNT";
|
|
22
|
+
readonly REIMBURSEMENT_AMOUNT: "REIMBURSEMENT_AMOUNT";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Union of validation error codes emitted by the payroll edit-employee schema.
|
|
26
|
+
*
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
export type PayrollEditEmployeeErrorCode = (typeof PayrollEditEmployeeErrorCodes)[keyof typeof PayrollEditEmployeeErrorCodes];
|
|
30
|
+
/**
|
|
31
|
+
* The single reimbursement validation schema: the "add reimbursement" draft row.
|
|
32
|
+
* Amount must be a number greater than zero, matching the legacy editor's
|
|
33
|
+
* inline validation. The hook validates the draft against this before committing
|
|
34
|
+
* it to the presentational `reimbursements` list.
|
|
35
|
+
*
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare const reimbursementDraftSchema: z.ZodObject<{
|
|
39
|
+
description: z.ZodString;
|
|
40
|
+
amount: z.ZodString;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
/**
|
|
43
|
+
* Builds the Zod schema for the payroll edit-employee form.
|
|
44
|
+
*
|
|
45
|
+
* @remarks
|
|
46
|
+
* Overtime-affecting values are keyed by workweek internally: hours and
|
|
47
|
+
* additional earnings are job-then-name-then-workweekStart records, so the
|
|
48
|
+
* single-workweek case is just the degenerate one-key form of the multi-workweek
|
|
49
|
+
* shape. Non-overtime earnings (other) are flat job-then-name-to-amount records
|
|
50
|
+
* with no per-workweek breakdown, since they do not feed the blended rate. Time
|
|
51
|
+
* off and final payout are keyed by compensation name. This keeps one schema and
|
|
52
|
+
* one submit path.
|
|
53
|
+
*
|
|
54
|
+
* @returns The Zod schema validating {@link PayrollEditEmployeeFormData}.
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export declare function createPayrollEditEmployeeSchema(): z.ZodObject<{
|
|
58
|
+
hours: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
59
|
+
additionalEarnings: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
60
|
+
other: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
61
|
+
timeOff: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
62
|
+
finalPayout: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
63
|
+
reimbursements: z.ZodArray<z.ZodObject<{
|
|
64
|
+
uuid: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
65
|
+
description: z.ZodString;
|
|
66
|
+
amount: z.ZodString;
|
|
67
|
+
recurring: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
}, z.core.$strip>>;
|
|
69
|
+
reimbursementDraft: z.ZodObject<{
|
|
70
|
+
description: z.ZodString;
|
|
71
|
+
amount: z.ZodString;
|
|
72
|
+
}, z.core.$strip>;
|
|
73
|
+
paymentMethod: z.ZodOptional<z.ZodEnum<{
|
|
74
|
+
readonly DirectDeposit: "Direct Deposit";
|
|
75
|
+
readonly Check: "Check";
|
|
76
|
+
}>>;
|
|
77
|
+
}, z.core.$strip>;
|
|
78
|
+
/**
|
|
79
|
+
* Shape of the values managed by the payroll edit-employee form.
|
|
80
|
+
*
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
export type PayrollEditEmployeeFormData = z.infer<ReturnType<typeof createPayrollEditEmployeeSchema>>;
|
|
84
|
+
/**
|
|
85
|
+
* Validated values produced by the payroll edit-employee form on submit.
|
|
86
|
+
*
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
export type PayrollEditEmployeeFormOutputs = PayrollEditEmployeeFormData;
|
|
90
|
+
/**
|
|
91
|
+
* A single reimbursement row in {@link PayrollEditEmployeeFormData}.
|
|
92
|
+
*
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
export type ReimbursementFormEntry = PayrollEditEmployeeFormData['reimbursements'][number];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { UseFormProps } from 'react-hook-form';
|
|
2
|
+
import { Employee } from '@gusto/embedded-api/models/components/employee';
|
|
3
|
+
import { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype';
|
|
4
|
+
import { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow';
|
|
5
|
+
import { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow';
|
|
6
|
+
import { PayrollEditEmployeeFormData } from './payrollEditEmployeeSchema';
|
|
7
|
+
import { PayrollEditEmployeeFields, ReimbursementRow } from './fields';
|
|
8
|
+
import { BaseFormHookReady, FieldMetadata, FieldMetadataWithOptions, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
|
|
9
|
+
/**
|
|
10
|
+
* Options accepted by {@link usePayrollEditEmployeeForm}.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export interface UsePayrollEditEmployeeFormProps {
|
|
15
|
+
/** The associated employee identifier. */
|
|
16
|
+
employeeId: string;
|
|
17
|
+
/** The associated company identifier. */
|
|
18
|
+
companyId: string;
|
|
19
|
+
/** The associated payroll identifier. */
|
|
20
|
+
payrollId: string;
|
|
21
|
+
/**
|
|
22
|
+
* Whether to expose reimbursement controls (`form.Fields.reimbursements`,
|
|
23
|
+
* `actions.addReimbursement`/`removeReimbursement`, `form.reimbursements`).
|
|
24
|
+
* Defaults to `true`. Controls are omitted for off-cycle payrolls regardless,
|
|
25
|
+
* since those write reimbursements via the legacy fixed-compensation path.
|
|
26
|
+
*/
|
|
27
|
+
withReimbursements?: boolean;
|
|
28
|
+
/** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */
|
|
29
|
+
validationMode?: UseFormProps['mode'];
|
|
30
|
+
/** Auto-focus the first invalid field on submit. Defaults to `true`. Set to `false` when composing with other forms. */
|
|
31
|
+
shouldFocusError?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Field metadata for {@link usePayrollEditEmployeeForm}, keyed by full form path.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* Keys are minted from the prepared payroll's compensations at runtime
|
|
38
|
+
* (`hours.${jobUuid}.${name}.${workweekStart}` and similar), so neither the key
|
|
39
|
+
* set nor which entries carry options is known ahead of time.
|
|
40
|
+
*
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
export type PayrollEditEmployeeFieldsMetadata = Record<string, FieldMetadata | FieldMetadataWithOptions>;
|
|
44
|
+
/**
|
|
45
|
+
* Ready-state return value of {@link usePayrollEditEmployeeForm} — the
|
|
46
|
+
* `isLoading: false` branch of {@link UsePayrollEditEmployeeFormResult}.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
50
|
+
export interface UsePayrollEditEmployeeFormReady extends BaseFormHookReady<PayrollEditEmployeeFieldsMetadata, PayrollEditEmployeeFormData, PayrollEditEmployeeFields> {
|
|
51
|
+
/** Loaded entities backing the editor. */
|
|
52
|
+
data: {
|
|
53
|
+
/** The employee being edited. */
|
|
54
|
+
employee: Employee;
|
|
55
|
+
/** The employee's prepared compensation for this payroll, if present. */
|
|
56
|
+
employeeCompensation?: PayrollEmployeeCompensationsType;
|
|
57
|
+
/** The prepared payroll (server-calculated totals and workweeks). */
|
|
58
|
+
preparedPayroll: PayrollPrepared;
|
|
59
|
+
/** The pay schedule for the payroll, if loaded. */
|
|
60
|
+
paySchedule?: PayScheduleShow;
|
|
61
|
+
/** Whether the pay period spans more than one workweek. Raw workweeks are on `preparedPayroll.workweeks`. */
|
|
62
|
+
isMultipleWorkweeks: boolean;
|
|
63
|
+
/** Whether the employee is overtime-eligible (nonexempt family). Drives whether hours split by workweek. */
|
|
64
|
+
isOvertimeEligible: boolean;
|
|
65
|
+
/** Whether the employee has a direct-deposit bank account set up. */
|
|
66
|
+
hasDirectDepositSetup: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Committed reimbursement rows to render in a table, present only when
|
|
69
|
+
* reimbursement controls are exposed. Seeded from the employee's existing
|
|
70
|
+
* reimbursements and appended to as drafts are saved. Remove a row via
|
|
71
|
+
* `actions.removeReimbursement(row.index)`.
|
|
72
|
+
*/
|
|
73
|
+
reimbursements?: ReimbursementRow[];
|
|
74
|
+
};
|
|
75
|
+
/** Submission status. `mode` is always `'update'` since the payroll already exists. */
|
|
76
|
+
status: {
|
|
77
|
+
isPending: boolean;
|
|
78
|
+
mode: 'update';
|
|
79
|
+
};
|
|
80
|
+
/** Form actions. */
|
|
81
|
+
actions: {
|
|
82
|
+
/** Validates and submits the form, resolving to the updated prepared payroll on success or `undefined` when validation blocked the submit. */
|
|
83
|
+
onSubmit: () => Promise<HookSubmitResult<PayrollPrepared> | undefined>;
|
|
84
|
+
/** Reveals the draft reimbursement row. Present only when reimbursement controls are exposed. */
|
|
85
|
+
beginAddReimbursement?: () => void;
|
|
86
|
+
/** Validates the draft and commits it to the reimbursement list, or flags the draft amount if invalid. Present only when reimbursement controls are exposed. */
|
|
87
|
+
saveReimbursement?: () => void;
|
|
88
|
+
/** Discards the draft reimbursement row. Present only when reimbursement controls are exposed. */
|
|
89
|
+
cancelReimbursement?: () => void;
|
|
90
|
+
/** Removes the committed reimbursement row at `index` (zeroing existing rows so the update clears them). Present only when reimbursement controls are exposed. */
|
|
91
|
+
removeReimbursement?: (index: number) => void;
|
|
92
|
+
};
|
|
93
|
+
/** Form internals plus the reimbursement draft state. */
|
|
94
|
+
form: BaseFormHookReady<PayrollEditEmployeeFieldsMetadata, PayrollEditEmployeeFormData, PayrollEditEmployeeFields>['form'] & {
|
|
95
|
+
/** Draft reimbursement state, present only when reimbursement controls are exposed. */
|
|
96
|
+
reimbursementDraft?: {
|
|
97
|
+
isAdding: boolean;
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Discriminated union returned by {@link usePayrollEditEmployeeForm}. Loading
|
|
103
|
+
* branch carries only `errorHandling`; ready branch carries form data, fields,
|
|
104
|
+
* status, and actions.
|
|
105
|
+
*
|
|
106
|
+
* @public
|
|
107
|
+
*/
|
|
108
|
+
export type UsePayrollEditEmployeeFormResult = HookLoadingResult | UsePayrollEditEmployeeFormReady;
|
|
109
|
+
/**
|
|
110
|
+
* Headless form hook for editing a single employee's compensation within a
|
|
111
|
+
* payroll run, built for regular-rate-of-pay (RRoP) support.
|
|
112
|
+
*
|
|
113
|
+
* @remarks
|
|
114
|
+
* Prepares the payroll for the target employee, then exposes a workweek-keyed
|
|
115
|
+
* form whose submit builds a `PayrollUpdate`. Single-workweek pay periods send
|
|
116
|
+
* totals without `breakdowns`; multi-workweek pay periods send `breakdowns`
|
|
117
|
+
* tiling every workweek exactly. Overtime-eligible (nonexempt) employees split
|
|
118
|
+
* hours and overtime-affecting earnings per workweek; everyone else edits flat
|
|
119
|
+
* totals.
|
|
120
|
+
*
|
|
121
|
+
* @param props - Hook options.
|
|
122
|
+
* @returns A loading result while data is fetching, or a ready result with data,
|
|
123
|
+
* fields, status, actions, and error handling.
|
|
124
|
+
* @public
|
|
125
|
+
*/
|
|
126
|
+
export declare function usePayrollEditEmployeeForm({ employeeId, companyId, payrollId, withReimbursements, validationMode, shouldFocusError, }: UsePayrollEditEmployeeFormProps): UsePayrollEditEmployeeFormResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollTypeLabel, calculateTotalPayroll, canCancelPayroll } from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const formatDeadlineForDialog = (item: Payroll): string => {\n const deadline = item.payrollDeadline\n if (!deadline) return ''\n\n const deadlineDate = new Date(deadline)\n const timeZone = 'America/New_York'\n\n const formatter = new Intl.DateTimeFormat('en-US', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n })\n\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n timeZoneName: 'short',\n timeZone,\n })\n\n const dateStr = formatter.format(deadlineDate)\n const timeStr = timeFormatter.format(deadlineDate)\n\n return `${timeStr} on ${dateStr}`\n }\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(payrollId, item.payPeriod?.startDate, item.payPeriod?.endDate)\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(payrollId, item.payPeriod?.startDate, item.payPeriod?.endDate)\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) =>\n dateFormatter.formatPayPeriodRange(\n item.payPeriod?.startDate,\n item.payPeriod?.endDate,\n ),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: dateFormatter.formatPayPeriodRange(\n cancelDialogItem.payPeriod?.startDate,\n cancelDialogItem.payPeriod?.endDate,\n ),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t('cancelDialog.deadline', {\n deadline: formatDeadlineForDialog(cancelDialogItem),\n })}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","formatDeadlineForDialog","item","deadline","deadlineDate","timeZone","formatter","timeFormatter","dateStr","handleCancelClick","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","jsxs","Flex","DateRangeFilter","DataView","EmptyData","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollTypeLabel, calculateTotalPayroll, canCancelPayroll } from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const formatDeadlineForDialog = (item: Payroll): string => {\n const deadline = item.payrollDeadline\n if (!deadline) return ''\n\n const deadlineDate = new Date(deadline)\n const timeZone = 'America/New_York'\n\n const formatter = new Intl.DateTimeFormat('en-US', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n })\n\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n timeZoneName: 'short',\n timeZone,\n })\n\n const dateStr = formatter.format(deadlineDate)\n const timeStr = timeFormatter.format(deadlineDate)\n\n return `${timeStr} on ${dateStr}`\n }\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(payrollId, item.payPeriod?.startDate, item.payPeriod?.endDate)\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(payrollId, item.payPeriod?.startDate, item.payPeriod?.endDate)\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) =>\n dateFormatter.formatPayPeriodRange(\n item.payPeriod?.startDate,\n item.payPeriod?.endDate,\n ),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n justify: 'end',\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: dateFormatter.formatPayPeriodRange(\n cancelDialogItem.payPeriod?.startDate,\n cancelDialogItem.payPeriod?.endDate,\n ),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t('cancelDialog.deadline', {\n deadline: formatDeadlineForDialog(cancelDialogItem),\n })}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","formatDeadlineForDialog","item","deadline","deadlineDate","timeZone","formatter","timeFormatter","dateStr","handleCancelClick","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","jsxs","Flex","DateRangeFilter","DataView","EmptyData","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu"],"mappings":";;;;;;;;;;;;;;;;AAkCO,MAAMA,KAA6B,CAAC;AAAA,EACzC,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,iBAAAC;AACF,MAAuC;AACrC,QAAM,EAAE,SAAAC,GAAS,MAAAC,GAAM,QAAAC,EAAA,IAAWC,EAAA;AAClC,EAAAC,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAC/CC,IAAgBC,EAAA,GAEhBC,IAA0B,CAACC,MAA0B;AACzD,UAAMC,IAAWD,EAAK;AACtB,QAAI,CAACC,EAAU,QAAO;AAEtB,UAAMC,IAAe,IAAI,KAAKD,CAAQ,GAChCE,IAAW,oBAEXC,IAAY,IAAI,KAAK,eAAe,SAAS;AAAA,MACjD,SAAS;AAAA,MACT,OAAO;AAAA,MACP,KAAK;AAAA,MACL,UAAAD;AAAA,IAAA,CACD,GAEKE,IAAgB,IAAI,KAAK,eAAe,SAAS;AAAA,MACrD,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,cAAc;AAAA,MACd,UAAAF;AAAA,IAAA,CACD,GAEKG,IAAUF,EAAU,OAAOF,CAAY;AAG7C,WAAO,GAFSG,EAAc,OAAOH,CAAY,CAEhC,OAAOI,CAAO;AAAA,EACjC,GAEMC,IAAoB,CAACP,MAAkB;AAC3C,IAAAd,EAAmBc,CAAI;AAAA,EACzB,GAEMQ,IAAsB,MAAM;AAChC,IAAIvB,KACFD,EAAgBC,CAAgB;AAAA,EAEpC,GAEMwB,IAAe,CAACT,MAA8B;AAClD,UAAMU,IAAYV,EAAK,eAAeA,EAAK,MACrCW,IAAoB;AAAA,MACxB;AAAA,QACE,OAAOhB,EAAE,kBAAkB;AAAA,QAC3B,MAAM,gBAAAiB,EAACC,GAAA,EAAS,eAAW,GAAA,CAAC;AAAA,QAC5B,SAAS,MAAM;AACb,UAAA/B,EAAc4B,GAAWV,EAAK,WAAW,WAAWA,EAAK,WAAW,OAAO;AAAA,QAC7E;AAAA,MAAA;AAAA,MAEF;AAAA,QACE,OAAOL,EAAE,kBAAkB;AAAA,QAC3B,MAAM,gBAAAiB,EAACE,GAAA,EAAY,eAAW,GAAA,CAAC;AAAA,QAC/B,SAAS,MAAM;AACb,UAAA/B,EAAc2B,GAAWV,EAAK,WAAW,WAAWA,EAAK,WAAW,OAAO;AAAA,QAC7E;AAAA,MAAA;AAAA,IACF;AAGF,WAAIe,EAAiBf,CAAI,KACvBW,EAAM,KAAK;AAAA,MACT,OAAOhB,EAAE,oBAAoB;AAAA,MAC7B,MAAM,gBAAAiB,EAACI,GAAA,EAAa,eAAW,GAAA,CAAC;AAAA,MAChC,SAAS,MAAM;AACb,QAAAT,EAAkBP,CAAI;AAAA,MACxB;AAAA,MACA,oBAAoB;AAAA,IAAA,CACrB,GAGIW;AAAA,EACT;AAEA,SACE,gBAAAM,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAD,EAACC,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAC9C,UAAA;AAAA,MAAA,gBAAAN,EAACtB,GAAA,EAAQ,IAAG,MAAM,UAAAK,EAAE,OAAO,GAAE;AAAA,MAC7B,gBAAAiB;AAAA,QAACO;AAAA,QAAA;AAAA,UACC,WAAW9B,EAAgB;AAAA,UAC3B,SAASA,EAAgB;AAAA,UACzB,mBAAmBA,EAAgB;AAAA,UACnC,iBAAiBA,EAAgB;AAAA,UACjC,SAASA,EAAgB;AAAA,UACzB,gBAAgBM,EAAE,sBAAsB;AAAA,UACxC,cAAcA,EAAE,oBAAoB;AAAA,UACpC,YAAYA,EAAE,kBAAkB;AAAA,UAChC,aAAaA,EAAE,mBAAmB;AAAA,UAClC,YAAYA,EAAE,kBAAkB;AAAA,UAChC,kBAAkBA,EAAE,wBAAwB;AAAA,UAC5C,cAAcA,EAAE,oBAAoB;AAAA,UACpC,YAAYN,EAAgB,cAAA;AAAA,UAC5B,cAAcA,EAAgB,gBAAA;AAAA,QAAgB;AAAA,MAAA;AAAA,IAChD,GACF;AAAA,IAEA,gBAAAuB;AAAA,MAACQ;AAAA,MAAA;AAAA,QACC,OAAOzB,EAAE,gBAAgB;AAAA,QACzB,YAAAd;AAAA,QACA,YAAYA,EAAW;AAAA,QACvB,YAAY,MACVQ,EAAgB,aACd,gBAAAuB;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAO1B,EAAE,2BAA2B;AAAA,YACpC,aAAaA,EAAE,iCAAiC;AAAA,UAAA;AAAA,QAAA,IAGlD,gBAAAiB;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,OAAO1B,EAAE,0BAA0B;AAAA,YACnC,aAAaA,EAAE,gCAAgC;AAAA,UAAA;AAAA,QAAA;AAAA,QAIrD,SAAS;AAAA,UACP;AAAA,YACE,OAAOA,EAAE,mBAAmB;AAAA,YAC5B,QAAQ,CAACK,MACPH,EAAc;AAAA,cACZG,EAAK,WAAW;AAAA,cAChBA,EAAK,WAAW;AAAA,YAAA;AAAA,UAClB;AAAA,UAEJ;AAAA,YACE,OAAOL,EAAE,cAAc;AAAA,YACvB,QAAQ,CAACK,MAAkBsB,EAAoBtB,CAAI;AAAA,UAAA;AAAA,UAErD;AAAA,YACE,OAAOL,EAAE,iBAAiB;AAAA,YAC1B,QAAQ,CAACK,MAAkBH,EAAc,oBAAoBG,EAAK,SAAS;AAAA,UAAA;AAAA,UAE7E;AAAA,YACE,OAAOL,EAAE,gBAAgB;AAAA,YACzB,QAAQ,CAACK,MAAkB;AACzB,oBAAMuB,IAAgB3C,EAAe;AAAA,gBACnC,CAAA4C,MAAQA,EAAK,gBAAgBxB,EAAK;AAAA,cAAA;AAEpC,qBAAO,gBAAAY,EAACa,GAAA,EAAoB,SAASzB,GAAM,eAAAuB,EAAA,CAA8B;AAAA,YAC3E;AAAA,UAAA;AAAA,UAEF;AAAA,YACE,OAAO5B,EAAE,sBAAsB;AAAA,YAC/B,SAAS;AAAA,YACT,QAAQ,CAACK,MAAkB0B,EAAuBC,EAAsB3B,CAAI,CAAC;AAAA,UAAA;AAAA,QAC/E;AAAA,QAEF,MAAMrB;AAAA,QACN,UAAU,CAACqB,MAAkB,gBAAAY,EAACgB,KAAc,OAAOnB,EAAaT,CAAI,EAAA,CAAG;AAAA,MAAA;AAAA,IAAA;AAAA,IAGzE,gBAAAY;AAAA,MAACpB;AAAA,MAAA;AAAA,QACC,QAAQ,CAAC,CAACP;AAAA,QACV,SAASE;AAAA,QACT,sBAAsBqB;AAAA,QACtB,eAAa;AAAA,QACb,wBAAwBpB;AAAA,QACxB,oBAAoBO,EAAE,4BAA4B;AAAA,QAClD,kBAAkBA,EAAE,8BAA8B;AAAA,QAClD,OACEV,IACIU,EAAE,sBAAsB;AAAA,UACtB,WAAWE,EAAc;AAAA,YACvBZ,EAAiB,WAAW;AAAA,YAC5BA,EAAiB,WAAW;AAAA,UAAA;AAAA,QAC9B,CACD,IACD;AAAA,QAGL,eACC,gBAAAgC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,UAAA,gBAAAN,EAACrB,GAAA,EAAM,UAAAI,EAAE,mBAAmB,EAAA,CAAE;AAAA,UAC7BV,EAAiB,mBAChB,gBAAA2B,EAACrB,GAAA,EACE,YAAE,yBAAyB;AAAA,YAC1B,UAAUQ,EAAwBd,CAAgB;AAAA,UAAA,CACnD,EAAA,CACH;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAEJ,GACF;AAEJ;"}
|