@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeductionsList.js","sources":["../../../../../../src/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { UseDeductionsListReady } from '../../shared/useDeductionsList'\nimport { formatDeductionAmount } from '../../shared/formatDeductionAmount'\nimport { useDataView, DataView } from '@/components/Common'\nimport { ActionsLayout } from '@/components/Common'\nimport { EmptyData } from '@/components/Common/EmptyData/EmptyData'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\n/** @internal */\nexport interface DeductionsListProps {\n className?: string\n deductionsList: UseDeductionsListReady\n onAdd: () => void\n onEdit: (deduction: Garnishment) => void\n onDelete: (deduction: Garnishment) => void\n onContinue: () => void\n}\n\n/** @internal */\nexport function DeductionsList({\n className,\n deductionsList,\n onAdd,\n onEdit,\n onDelete,\n onContinue,\n}: DeductionsListProps) {\n useI18n('Employee.Deductions')\n const { t } = useTranslation('Employee.Deductions')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const formatPercent = useNumberFormatter('percent')\n\n const { deductions } = deductionsList.data\n const isPendingAny = deductionsList.status.isPending\n const isEmpty = deductions.length === 0\n\n const { ...dataViewProps } = useDataView({\n data: deductions,\n columns: [\n {\n key: 'description',\n title: t('nameColumn'),\n },\n {\n key: 'recurring',\n title: t('frequencyColumn'),\n render: deduction => {\n return deduction.recurring ? t('recurringText') : t('nonRecurringText')\n },\n },\n {\n key: 'amount',\n title: t('withheldColumn'),\n render: deduction =>\n formatDeductionAmount(deduction, {\n formatCurrency,\n formatPercent,\n formatPerPaycheck: (value: string) => t('recurringAmount', { value }),\n }),\n },\n ],\n emptyState: () => (\n <EmptyData title={t('includeDeductionsEmptyState')}>\n <Components.Button type=\"button\" variant=\"secondary\" onClick={onAdd}>\n <PlusCircleIcon />\n {t('addDeductionButtonCta')}\n </Components.Button>\n </EmptyData>\n ),\n itemMenu: deduction => {\n return (\n <HamburgerMenu\n isLoading={isPendingAny}\n items={[\n {\n label: t('editCta'),\n onClick: () => {\n onEdit(deduction)\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('deleteCta'),\n onClick: () => {\n onDelete(deduction)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n />\n )\n },\n })\n\n return (\n <section className={className}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={2}>\n <Components.Heading as=\"h2\">{t('pageTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {t('includeDeductionsDescriptionV2')}\n </Components.Text>\n </Flex>\n\n <DataView label={t('deductionsTableLabel')} {...dataViewProps} />\n <ActionsLayout>\n {!isEmpty && (\n <Components.Button variant=\"secondary\" onClick={onAdd}>\n <PlusCircleIcon />\n {t('addDeductionCta')}\n </Components.Button>\n )}\n <Components.Button onClick={onContinue}>{t('continueCta')}</Components.Button>\n </ActionsLayout>\n </Flex>\n </section>\n )\n}\n"],"names":["DeductionsList","className","deductionsList","onAdd","onEdit","onDelete","onContinue","useI18n","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","formatPercent","deductions","isPendingAny","isEmpty","dataViewProps","useDataView","deduction","formatDeductionAmount","value","jsx","EmptyData","jsxs","PlusCircleIcon","HamburgerMenu","PencilSvg","TrashCanSvg","Flex","DataView","ActionsLayout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DeductionsList.js","sources":["../../../../../../src/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { UseDeductionsListReady } from '../../shared/useDeductionsList'\nimport { formatDeductionAmount } from '../../shared/formatDeductionAmount'\nimport { useDataView, DataView } from '@/components/Common'\nimport { ActionsLayout } from '@/components/Common'\nimport { EmptyData } from '@/components/Common/EmptyData/EmptyData'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\n/** @internal */\nexport interface DeductionsListProps {\n className?: string\n deductionsList: UseDeductionsListReady\n onAdd: () => void\n onEdit: (deduction: Garnishment) => void\n onDelete: (deduction: Garnishment) => void\n onContinue: () => void\n}\n\n/** @internal */\nexport function DeductionsList({\n className,\n deductionsList,\n onAdd,\n onEdit,\n onDelete,\n onContinue,\n}: DeductionsListProps) {\n useI18n('Employee.Deductions')\n const { t } = useTranslation('Employee.Deductions')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const formatPercent = useNumberFormatter('percent')\n\n const { deductions } = deductionsList.data\n const isPendingAny = deductionsList.status.isPending\n const isEmpty = deductions.length === 0\n\n const { ...dataViewProps } = useDataView({\n data: deductions,\n columns: [\n {\n key: 'description',\n title: t('nameColumn'),\n },\n {\n key: 'recurring',\n title: t('frequencyColumn'),\n render: deduction => {\n return deduction.recurring ? t('recurringText') : t('nonRecurringText')\n },\n },\n {\n key: 'amount',\n title: t('withheldColumn'),\n justify: 'end',\n render: deduction =>\n formatDeductionAmount(deduction, {\n formatCurrency,\n formatPercent,\n formatPerPaycheck: (value: string) => t('recurringAmount', { value }),\n }),\n },\n ],\n emptyState: () => (\n <EmptyData title={t('includeDeductionsEmptyState')}>\n <Components.Button type=\"button\" variant=\"secondary\" onClick={onAdd}>\n <PlusCircleIcon />\n {t('addDeductionButtonCta')}\n </Components.Button>\n </EmptyData>\n ),\n itemMenu: deduction => {\n return (\n <HamburgerMenu\n isLoading={isPendingAny}\n items={[\n {\n label: t('editCta'),\n onClick: () => {\n onEdit(deduction)\n },\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: t('deleteCta'),\n onClick: () => {\n onDelete(deduction)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n />\n )\n },\n })\n\n return (\n <section className={className}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={2}>\n <Components.Heading as=\"h2\">{t('pageTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">\n {t('includeDeductionsDescriptionV2')}\n </Components.Text>\n </Flex>\n\n <DataView label={t('deductionsTableLabel')} {...dataViewProps} />\n <ActionsLayout>\n {!isEmpty && (\n <Components.Button variant=\"secondary\" onClick={onAdd}>\n <PlusCircleIcon />\n {t('addDeductionCta')}\n </Components.Button>\n )}\n <Components.Button onClick={onContinue}>{t('continueCta')}</Components.Button>\n </ActionsLayout>\n </Flex>\n </section>\n )\n}\n"],"names":["DeductionsList","className","deductionsList","onAdd","onEdit","onDelete","onContinue","useI18n","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","formatPercent","deductions","isPendingAny","isEmpty","dataViewProps","useDataView","deduction","formatDeductionAmount","value","jsx","EmptyData","jsxs","PlusCircleIcon","HamburgerMenu","PencilSvg","TrashCanSvg","Flex","DataView","ActionsLayout"],"mappings":"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"}
|
package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js
CHANGED
|
@@ -9,15 +9,12 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
|
|
|
9
9
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
10
10
|
import "@gusto/embedded-api/models/errors/unprocessableentityerror";
|
|
11
11
|
import "@gusto/embedded-api/models/errors/httpclienterrors";
|
|
12
|
-
import "dompurify";
|
|
13
|
-
import "../../../../../../contexts/LocaleProvider/useLocale.js";
|
|
14
12
|
import "../../../../../../shared/constants.js";
|
|
15
13
|
import "../../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
|
-
import "../../../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
17
14
|
import { createCompoundContext as t } from "../../../../../Base/createCompoundContext.js";
|
|
18
|
-
const [
|
|
15
|
+
const [d, a] = t("DocumentListContext");
|
|
19
16
|
export {
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
a as DocumentListProvider,
|
|
18
|
+
d as useDocumentList
|
|
22
19
|
};
|
|
23
20
|
//# sourceMappingURL=useDocumentList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
|
|
@@ -3,12 +3,12 @@ import { useTranslation as V } from "react-i18next";
|
|
|
3
3
|
import { useWatch as R } from "react-hook-form";
|
|
4
4
|
import { usePaymentMethodList as U } from "../shared/usePaymentMethodList.js";
|
|
5
5
|
import { usePaymentMethodForm as K } from "../shared/usePaymentMethodForm/usePaymentMethodForm.js";
|
|
6
|
-
import { useDeleteBankAccount as
|
|
7
|
-
import { DeleteBankAccountDialog as
|
|
6
|
+
import { useDeleteBankAccount as j } from "../shared/useDeleteBankAccount.js";
|
|
7
|
+
import { DeleteBankAccountDialog as I } from "../shared/DeleteBankAccountDialog.js";
|
|
8
8
|
import { useOnboardingBankFormDictionary as W } from "./useFormDictionary.js";
|
|
9
|
-
import
|
|
9
|
+
import y from "./ListView.module.scss.js";
|
|
10
10
|
import { Flex as G } from "../../../Common/Flex/Flex.js";
|
|
11
|
-
import { ActionsLayout as
|
|
11
|
+
import { ActionsLayout as b } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
12
12
|
import { HamburgerMenu as q } from "../../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
13
13
|
import { BaseLayout as k } from "../../../Base/Base.js";
|
|
14
14
|
import { SDKFormProvider as z } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
|
|
@@ -21,9 +21,9 @@ import tt from "../../../../assets/icons/trashcan.svg.js";
|
|
|
21
21
|
import { BankFormBody as et } from "../shared/BankFormBody/BankFormBody.js";
|
|
22
22
|
import { useDataView as ot } from "../../../Common/DataView/useDataView.js";
|
|
23
23
|
import { DataView as nt } from "../../../Common/DataView/DataView.js";
|
|
24
|
-
function Nt({ employeeId: m, isAdmin: f, onEvent: i, LoaderComponent:
|
|
24
|
+
function Nt({ employeeId: m, isAdmin: f, onEvent: i, LoaderComponent: s }) {
|
|
25
25
|
const n = U({ employeeId: m }), d = K({ employeeId: m }), D = J([n, d]);
|
|
26
|
-
return n.isLoading || d.isLoading ? /* @__PURE__ */ e(k, { isLoading: !0, error: D.errors, LoaderComponent:
|
|
26
|
+
return n.isLoading || d.isLoading ? /* @__PURE__ */ e(k, { isLoading: !0, error: D.errors, LoaderComponent: s }) : /* @__PURE__ */ e(
|
|
27
27
|
it,
|
|
28
28
|
{
|
|
29
29
|
employeeId: m,
|
|
@@ -32,7 +32,7 @@ function Nt({ employeeId: m, isAdmin: f, onEvent: i, LoaderComponent: a }) {
|
|
|
32
32
|
paymentMethodList: n,
|
|
33
33
|
paymentMethodForm: d,
|
|
34
34
|
errorHandling: D,
|
|
35
|
-
LoaderComponent:
|
|
35
|
+
LoaderComponent: s
|
|
36
36
|
}
|
|
37
37
|
);
|
|
38
38
|
}
|
|
@@ -40,12 +40,12 @@ function it({
|
|
|
40
40
|
employeeId: m,
|
|
41
41
|
isAdmin: f,
|
|
42
42
|
onEvent: i,
|
|
43
|
-
paymentMethodList:
|
|
43
|
+
paymentMethodList: s,
|
|
44
44
|
paymentMethodForm: n,
|
|
45
45
|
errorHandling: d,
|
|
46
46
|
LoaderComponent: D
|
|
47
47
|
}) {
|
|
48
|
-
const { paymentMethod: A, bankAccounts:
|
|
48
|
+
const { paymentMethod: A, bankAccounts: a } = s.data, { deletePendingBankAccountUuid: B } = s.status, { t } = V("Employee.PaymentMethod"), c = Q(), L = Z(A.splitBy === "Amount" ? "currency" : "percent"), T = W(), { Fields: P } = n.form, h = R({
|
|
49
49
|
control: n.form.hookFormInternals.formMethods.control,
|
|
50
50
|
name: "type"
|
|
51
51
|
}), {
|
|
@@ -54,11 +54,11 @@ function it({
|
|
|
54
54
|
deletedAccountNumber: C,
|
|
55
55
|
setDeletedAccountNumber: N,
|
|
56
56
|
handleConfirmDelete: _
|
|
57
|
-
} =
|
|
58
|
-
const r = await
|
|
57
|
+
} = j(async (o) => {
|
|
58
|
+
const r = await s.actions.onDelete(o);
|
|
59
59
|
r && i(l.EMPLOYEE_BANK_ACCOUNT_DELETED, r.data);
|
|
60
60
|
}), { ...M } = ot({
|
|
61
|
-
data:
|
|
61
|
+
data: a,
|
|
62
62
|
columns: [
|
|
63
63
|
{ key: "name", title: t("nicknameColumn") },
|
|
64
64
|
{ key: "routingNumber", title: t("routingNumberColumn") },
|
|
@@ -66,6 +66,7 @@ function it({
|
|
|
66
66
|
{
|
|
67
67
|
key: "splitAmount",
|
|
68
68
|
title: t("allocationColumn"),
|
|
69
|
+
justify: "end",
|
|
69
70
|
render: (o) => {
|
|
70
71
|
const r = A.splits?.find((H) => H.uuid === o.uuid)?.splitAmount ?? 0, x = A.splitBy === $.amount ? X(r) ?? 0 : r;
|
|
71
72
|
return L(x);
|
|
@@ -102,8 +103,8 @@ function it({
|
|
|
102
103
|
), w = async () => {
|
|
103
104
|
const o = await n.actions.onSubmit();
|
|
104
105
|
o && (i(l.EMPLOYEE_PAYMENT_METHOD_UPDATED, o.data), i(l.EMPLOYEE_PAYMENT_METHOD_DONE));
|
|
105
|
-
}, F = h === u.directDeposit &&
|
|
106
|
-
|
|
106
|
+
}, F = h === u.directDeposit && a.length === 0, S = h === u.check || a.length > 0, Y = h === u.directDeposit && a.length > 0 ? /* @__PURE__ */ p(b, { children: [
|
|
107
|
+
a.length > 1 && /* @__PURE__ */ e(
|
|
107
108
|
c.Button,
|
|
108
109
|
{
|
|
109
110
|
variant: "secondary",
|
|
@@ -147,7 +148,7 @@ function it({
|
|
|
147
148
|
withPadding: !1,
|
|
148
149
|
footer: Y,
|
|
149
150
|
children: [
|
|
150
|
-
/* @__PURE__ */ e("div", { className:
|
|
151
|
+
/* @__PURE__ */ e("div", { className: y.section, children: /* @__PURE__ */ e(
|
|
151
152
|
P.Type,
|
|
152
153
|
{
|
|
153
154
|
label: t("paymentFieldsetLegend"),
|
|
@@ -155,8 +156,8 @@ function it({
|
|
|
155
156
|
FieldComponent: O
|
|
156
157
|
}
|
|
157
158
|
) }),
|
|
158
|
-
h === u.directDeposit &&
|
|
159
|
-
F && /* @__PURE__ */ e("div", { className:
|
|
159
|
+
h === u.directDeposit && a.length > 0 && /* @__PURE__ */ e(nt, { isWithinBox: !0, label: t("bankAccountsListLabel"), ...M }),
|
|
160
|
+
F && /* @__PURE__ */ e("div", { className: y.section, children: /* @__PURE__ */ e(
|
|
160
161
|
et,
|
|
161
162
|
{
|
|
162
163
|
employeeId: m,
|
|
@@ -169,7 +170,7 @@ function it({
|
|
|
169
170
|
]
|
|
170
171
|
}
|
|
171
172
|
),
|
|
172
|
-
S && /* @__PURE__ */ e(
|
|
173
|
+
S && /* @__PURE__ */ e(b, { children: /* @__PURE__ */ e(
|
|
173
174
|
c.Button,
|
|
174
175
|
{
|
|
175
176
|
type: "button",
|
|
@@ -183,7 +184,7 @@ function it({
|
|
|
183
184
|
] })
|
|
184
185
|
] }) }),
|
|
185
186
|
/* @__PURE__ */ e(
|
|
186
|
-
|
|
187
|
+
I,
|
|
187
188
|
{
|
|
188
189
|
pendingDeleteAccount: g,
|
|
189
190
|
isPrimaryActionLoading: B === g?.uuid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListView.js","sources":["../../../../../src/components/Employee/PaymentMethod/onboarding/ListView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useWatch } from 'react-hook-form'\nimport {\n usePaymentMethodList,\n type UsePaymentMethodListReady,\n} from '../shared/usePaymentMethodList'\nimport {\n usePaymentMethodForm,\n type PaymentMethodType,\n type UsePaymentMethodFormReady,\n} from '../shared/usePaymentMethodForm'\nimport { useDeleteBankAccount } from '../shared/useDeleteBankAccount'\nimport { DeleteBankAccountDialog } from '../shared/DeleteBankAccountDialog'\nimport { BankFormBody } from '../shared/BankFormBody'\nimport { useOnboardingBankFormDictionary } from './useFormDictionary'\nimport styles from './ListView.module.scss'\nimport { ActionsLayout, DataView, useDataView } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseLayout } from '@/components/Base/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { centsToDollars } from '@/helpers/currencyHelpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { componentEvents, PAYMENT_METHODS, SPLIT_BY, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { Flex } from '@/components/Common/Flex/Flex'\n\ninterface ListViewProps {\n employeeId: string\n isAdmin: boolean\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n}\n\n/** @internal */\nexport function ListView({ employeeId, isAdmin, onEvent, LoaderComponent }: ListViewProps) {\n const paymentMethodList = usePaymentMethodList({ employeeId })\n const paymentMethodForm = usePaymentMethodForm({ employeeId })\n\n const errorHandling = composeErrorHandler([paymentMethodList, paymentMethodForm])\n\n if (paymentMethodList.isLoading || paymentMethodForm.isLoading) {\n return <BaseLayout isLoading error={errorHandling.errors} LoaderComponent={LoaderComponent} />\n }\n\n return (\n <ListViewReady\n employeeId={employeeId}\n isAdmin={isAdmin}\n onEvent={onEvent}\n paymentMethodList={paymentMethodList}\n paymentMethodForm={paymentMethodForm}\n errorHandling={errorHandling}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n\ninterface ListViewReadyProps extends ListViewProps {\n paymentMethodList: UsePaymentMethodListReady\n paymentMethodForm: UsePaymentMethodFormReady\n errorHandling: ReturnType<typeof composeErrorHandler>\n}\n\nfunction ListViewReady({\n employeeId,\n isAdmin,\n onEvent,\n paymentMethodList,\n paymentMethodForm,\n errorHandling,\n LoaderComponent,\n}: ListViewReadyProps) {\n const { paymentMethod, bankAccounts } = paymentMethodList.data\n const { deletePendingBankAccountUuid } = paymentMethodList.status\n const { t } = useTranslation('Employee.PaymentMethod')\n const Components = useComponentContext()\n const format = useNumberFormatter(paymentMethod.splitBy === 'Amount' ? 'currency' : 'percent')\n const dictionary = useOnboardingBankFormDictionary()\n\n const { Fields } = paymentMethodForm.form\n const watchedType = useWatch({\n control: paymentMethodForm.form.hookFormInternals.formMethods.control,\n name: 'type',\n })\n\n const {\n pendingDeleteAccount,\n setPendingDeleteAccount,\n deletedAccountNumber,\n setDeletedAccountNumber,\n handleConfirmDelete,\n } = useDeleteBankAccount(async uuid => {\n const result = await paymentMethodList.actions.onDelete(uuid)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED, result.data)\n }\n })\n\n const { ...dataViewProps } = useDataView({\n data: bankAccounts,\n columns: [\n { key: 'name', title: t('nicknameColumn') },\n { key: 'routingNumber', title: t('routingNumberColumn') },\n { key: 'accountType', title: t('accountTypeColumn') },\n {\n key: 'splitAmount',\n title: t('allocationColumn'),\n render: bankAccount => {\n const splitAmount =\n paymentMethod.splits?.find(split => split.uuid === bankAccount.uuid)?.splitAmount ?? 0\n const displayValue =\n paymentMethod.splitBy === SPLIT_BY.amount\n ? (centsToDollars(splitAmount) ?? 0)\n : splitAmount\n return format(displayValue)\n },\n },\n ],\n itemMenu: bankAccount => (\n <HamburgerMenu\n items={[\n {\n label: t('deleteBankAccountCta'),\n onClick: () => {\n setPendingDeleteAccount({\n uuid: bankAccount.uuid,\n hiddenAccountNumber: bankAccount.hiddenAccountNumber,\n })\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={t('hamburgerTitle')}\n />\n ),\n })\n\n const TypeFieldComponent = (props: RadioGroupProps) => (\n <Components.RadioGroup\n {...props}\n options={props.options.map(option => ({\n ...option,\n description:\n option.value === PAYMENT_METHODS.directDeposit\n ? isAdmin\n ? t('directDepositDescription')\n : t('directDepositDescriptionSelf')\n : isAdmin\n ? t('checkDescription')\n : t('checkDescriptionSelf'),\n }))}\n />\n )\n\n const handleContinue = async () => {\n const result = await paymentMethodForm.actions.onSubmit()\n if (result) {\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED, result.data)\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE)\n }\n }\n\n const showInlineBankForm =\n watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length === 0\n const showContinue = watchedType === PAYMENT_METHODS.check || bankAccounts.length > 0\n\n const footer =\n watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length > 0 ? (\n <ActionsLayout>\n {bankAccounts.length > 1 && (\n <Components.Button\n variant=\"secondary\"\n type=\"button\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_SPLIT_PAYMENT)\n }}\n >\n {t('splitCta')}\n </Components.Button>\n )}\n <Components.Button\n variant=\"secondary\"\n type=\"button\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATE)\n }}\n >\n {t('addAnotherCta')}\n </Components.Button>\n </ActionsLayout>\n ) : undefined\n\n return (\n <>\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={paymentMethodForm}>\n {deletedAccountNumber !== null && (\n <Components.Alert\n status=\"success\"\n label={t('deleteBankAccountSuccessAlert', { account: deletedAccountNumber })}\n onDismiss={() => {\n setDeletedAccountNumber(null)\n }}\n disableScrollIntoView\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <Components.FormBox\n header={<Components.FormBoxHeader title={t('title')} />}\n withPadding={false}\n footer={footer}\n >\n <div className={styles.section}>\n <Fields.Type\n label={t('paymentFieldsetLegend')}\n getOptionLabel={(value: PaymentMethodType) =>\n value === PAYMENT_METHODS.directDeposit\n ? t('directDepositLabel')\n : t('checkLabel')\n }\n FieldComponent={TypeFieldComponent}\n />\n </div>\n {watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length > 0 && (\n <DataView isWithinBox label={t('bankAccountsListLabel')} {...dataViewProps} />\n )}\n {showInlineBankForm && (\n <div className={styles.section}>\n <BankFormBody\n employeeId={employeeId}\n dictionary={dictionary}\n onSaved={data => {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED, data)\n }}\n />\n </div>\n )}\n </Components.FormBox>\n {showContinue && (\n <ActionsLayout>\n <Components.Button\n type=\"button\"\n isLoading={paymentMethodForm.status.isPending}\n onClick={() => {\n void handleContinue()\n }}\n >\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )}\n </Flex>\n </SDKFormProvider>\n </BaseLayout>\n <DeleteBankAccountDialog\n pendingDeleteAccount={pendingDeleteAccount}\n isPrimaryActionLoading={deletePendingBankAccountUuid === pendingDeleteAccount?.uuid}\n onClose={() => {\n setPendingDeleteAccount(null)\n }}\n onConfirm={() => {\n void handleConfirmDelete()\n }}\n title={t('deleteBankAccountDialog.title')}\n description={t('deleteBankAccountDialog.description', {\n account: pendingDeleteAccount?.hiddenAccountNumber ?? '',\n })}\n confirmLabel={t('deleteBankAccountDialog.confirmCta')}\n cancelLabel={t('deleteBankAccountDialog.cancelCta')}\n />\n </>\n )\n}\n"],"names":["ListView","employeeId","isAdmin","onEvent","LoaderComponent","paymentMethodList","usePaymentMethodList","paymentMethodForm","usePaymentMethodForm","errorHandling","composeErrorHandler","BaseLayout","jsx","ListViewReady","paymentMethod","bankAccounts","deletePendingBankAccountUuid","useTranslation","Components","useComponentContext","format","useNumberFormatter","dictionary","useOnboardingBankFormDictionary","Fields","watchedType","useWatch","pendingDeleteAccount","setPendingDeleteAccount","deletedAccountNumber","setDeletedAccountNumber","handleConfirmDelete","useDeleteBankAccount","uuid","result","componentEvents","dataViewProps","useDataView","bankAccount","splitAmount","split","displayValue","SPLIT_BY","centsToDollars","HamburgerMenu","TrashCanSvg","TypeFieldComponent","props","option","PAYMENT_METHODS","handleContinue","showInlineBankForm","showContinue","footer","ActionsLayout","jsxs","Fragment","SDKFormProvider","Flex","styles","value","DataView","BankFormBody","data","DeleteBankAccountDialog"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListView.js","sources":["../../../../../src/components/Employee/PaymentMethod/onboarding/ListView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useWatch } from 'react-hook-form'\nimport {\n usePaymentMethodList,\n type UsePaymentMethodListReady,\n} from '../shared/usePaymentMethodList'\nimport {\n usePaymentMethodForm,\n type PaymentMethodType,\n type UsePaymentMethodFormReady,\n} from '../shared/usePaymentMethodForm'\nimport { useDeleteBankAccount } from '../shared/useDeleteBankAccount'\nimport { DeleteBankAccountDialog } from '../shared/DeleteBankAccountDialog'\nimport { BankFormBody } from '../shared/BankFormBody'\nimport { useOnboardingBankFormDictionary } from './useFormDictionary'\nimport styles from './ListView.module.scss'\nimport { ActionsLayout, DataView, useDataView } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseLayout } from '@/components/Base/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { centsToDollars } from '@/helpers/currencyHelpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { componentEvents, PAYMENT_METHODS, SPLIT_BY, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport { Flex } from '@/components/Common/Flex/Flex'\n\ninterface ListViewProps {\n employeeId: string\n isAdmin: boolean\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n}\n\n/** @internal */\nexport function ListView({ employeeId, isAdmin, onEvent, LoaderComponent }: ListViewProps) {\n const paymentMethodList = usePaymentMethodList({ employeeId })\n const paymentMethodForm = usePaymentMethodForm({ employeeId })\n\n const errorHandling = composeErrorHandler([paymentMethodList, paymentMethodForm])\n\n if (paymentMethodList.isLoading || paymentMethodForm.isLoading) {\n return <BaseLayout isLoading error={errorHandling.errors} LoaderComponent={LoaderComponent} />\n }\n\n return (\n <ListViewReady\n employeeId={employeeId}\n isAdmin={isAdmin}\n onEvent={onEvent}\n paymentMethodList={paymentMethodList}\n paymentMethodForm={paymentMethodForm}\n errorHandling={errorHandling}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n\ninterface ListViewReadyProps extends ListViewProps {\n paymentMethodList: UsePaymentMethodListReady\n paymentMethodForm: UsePaymentMethodFormReady\n errorHandling: ReturnType<typeof composeErrorHandler>\n}\n\nfunction ListViewReady({\n employeeId,\n isAdmin,\n onEvent,\n paymentMethodList,\n paymentMethodForm,\n errorHandling,\n LoaderComponent,\n}: ListViewReadyProps) {\n const { paymentMethod, bankAccounts } = paymentMethodList.data\n const { deletePendingBankAccountUuid } = paymentMethodList.status\n const { t } = useTranslation('Employee.PaymentMethod')\n const Components = useComponentContext()\n const format = useNumberFormatter(paymentMethod.splitBy === 'Amount' ? 'currency' : 'percent')\n const dictionary = useOnboardingBankFormDictionary()\n\n const { Fields } = paymentMethodForm.form\n const watchedType = useWatch({\n control: paymentMethodForm.form.hookFormInternals.formMethods.control,\n name: 'type',\n })\n\n const {\n pendingDeleteAccount,\n setPendingDeleteAccount,\n deletedAccountNumber,\n setDeletedAccountNumber,\n handleConfirmDelete,\n } = useDeleteBankAccount(async uuid => {\n const result = await paymentMethodList.actions.onDelete(uuid)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED, result.data)\n }\n })\n\n const { ...dataViewProps } = useDataView({\n data: bankAccounts,\n columns: [\n { key: 'name', title: t('nicknameColumn') },\n { key: 'routingNumber', title: t('routingNumberColumn') },\n { key: 'accountType', title: t('accountTypeColumn') },\n {\n key: 'splitAmount',\n title: t('allocationColumn'),\n justify: 'end',\n render: bankAccount => {\n const splitAmount =\n paymentMethod.splits?.find(split => split.uuid === bankAccount.uuid)?.splitAmount ?? 0\n const displayValue =\n paymentMethod.splitBy === SPLIT_BY.amount\n ? (centsToDollars(splitAmount) ?? 0)\n : splitAmount\n return format(displayValue)\n },\n },\n ],\n itemMenu: bankAccount => (\n <HamburgerMenu\n items={[\n {\n label: t('deleteBankAccountCta'),\n onClick: () => {\n setPendingDeleteAccount({\n uuid: bankAccount.uuid,\n hiddenAccountNumber: bankAccount.hiddenAccountNumber,\n })\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={t('hamburgerTitle')}\n />\n ),\n })\n\n const TypeFieldComponent = (props: RadioGroupProps) => (\n <Components.RadioGroup\n {...props}\n options={props.options.map(option => ({\n ...option,\n description:\n option.value === PAYMENT_METHODS.directDeposit\n ? isAdmin\n ? t('directDepositDescription')\n : t('directDepositDescriptionSelf')\n : isAdmin\n ? t('checkDescription')\n : t('checkDescriptionSelf'),\n }))}\n />\n )\n\n const handleContinue = async () => {\n const result = await paymentMethodForm.actions.onSubmit()\n if (result) {\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED, result.data)\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE)\n }\n }\n\n const showInlineBankForm =\n watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length === 0\n const showContinue = watchedType === PAYMENT_METHODS.check || bankAccounts.length > 0\n\n const footer =\n watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length > 0 ? (\n <ActionsLayout>\n {bankAccounts.length > 1 && (\n <Components.Button\n variant=\"secondary\"\n type=\"button\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_SPLIT_PAYMENT)\n }}\n >\n {t('splitCta')}\n </Components.Button>\n )}\n <Components.Button\n variant=\"secondary\"\n type=\"button\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATE)\n }}\n >\n {t('addAnotherCta')}\n </Components.Button>\n </ActionsLayout>\n ) : undefined\n\n return (\n <>\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={paymentMethodForm}>\n {deletedAccountNumber !== null && (\n <Components.Alert\n status=\"success\"\n label={t('deleteBankAccountSuccessAlert', { account: deletedAccountNumber })}\n onDismiss={() => {\n setDeletedAccountNumber(null)\n }}\n disableScrollIntoView\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <Components.FormBox\n header={<Components.FormBoxHeader title={t('title')} />}\n withPadding={false}\n footer={footer}\n >\n <div className={styles.section}>\n <Fields.Type\n label={t('paymentFieldsetLegend')}\n getOptionLabel={(value: PaymentMethodType) =>\n value === PAYMENT_METHODS.directDeposit\n ? t('directDepositLabel')\n : t('checkLabel')\n }\n FieldComponent={TypeFieldComponent}\n />\n </div>\n {watchedType === PAYMENT_METHODS.directDeposit && bankAccounts.length > 0 && (\n <DataView isWithinBox label={t('bankAccountsListLabel')} {...dataViewProps} />\n )}\n {showInlineBankForm && (\n <div className={styles.section}>\n <BankFormBody\n employeeId={employeeId}\n dictionary={dictionary}\n onSaved={data => {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED, data)\n }}\n />\n </div>\n )}\n </Components.FormBox>\n {showContinue && (\n <ActionsLayout>\n <Components.Button\n type=\"button\"\n isLoading={paymentMethodForm.status.isPending}\n onClick={() => {\n void handleContinue()\n }}\n >\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )}\n </Flex>\n </SDKFormProvider>\n </BaseLayout>\n <DeleteBankAccountDialog\n pendingDeleteAccount={pendingDeleteAccount}\n isPrimaryActionLoading={deletePendingBankAccountUuid === pendingDeleteAccount?.uuid}\n onClose={() => {\n setPendingDeleteAccount(null)\n }}\n onConfirm={() => {\n void handleConfirmDelete()\n }}\n title={t('deleteBankAccountDialog.title')}\n description={t('deleteBankAccountDialog.description', {\n account: pendingDeleteAccount?.hiddenAccountNumber ?? '',\n })}\n confirmLabel={t('deleteBankAccountDialog.confirmCta')}\n cancelLabel={t('deleteBankAccountDialog.cancelCta')}\n />\n </>\n )\n}\n"],"names":["ListView","employeeId","isAdmin","onEvent","LoaderComponent","paymentMethodList","usePaymentMethodList","paymentMethodForm","usePaymentMethodForm","errorHandling","composeErrorHandler","BaseLayout","jsx","ListViewReady","paymentMethod","bankAccounts","deletePendingBankAccountUuid","useTranslation","Components","useComponentContext","format","useNumberFormatter","dictionary","useOnboardingBankFormDictionary","Fields","watchedType","useWatch","pendingDeleteAccount","setPendingDeleteAccount","deletedAccountNumber","setDeletedAccountNumber","handleConfirmDelete","useDeleteBankAccount","uuid","result","componentEvents","dataViewProps","useDataView","bankAccount","splitAmount","split","displayValue","SPLIT_BY","centsToDollars","HamburgerMenu","TrashCanSvg","TypeFieldComponent","props","option","PAYMENT_METHODS","handleContinue","showInlineBankForm","showContinue","footer","ActionsLayout","jsxs","Fragment","SDKFormProvider","Flex","styles","value","DataView","BankFormBody","data","DeleteBankAccountDialog"],"mappings":"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"}
|
|
@@ -11,19 +11,19 @@ import { composeErrorHandler as Y } from "../../../../../partner-hook-utils/comp
|
|
|
11
11
|
import { usePaymentMethodList as H } from "../../../PaymentMethod/shared/usePaymentMethodList.js";
|
|
12
12
|
import { formatDateLongWithYear as R } from "../../../../../helpers/dateFormatting.js";
|
|
13
13
|
import W from "../../../../../hooks/useNumberFormatter.js";
|
|
14
|
-
import { useI18n as
|
|
14
|
+
import { useI18n as j } from "../../../../../i18n/I18n.js";
|
|
15
15
|
import { componentEvents as w } from "../../../../../shared/constants.js";
|
|
16
|
-
import
|
|
17
|
-
import { usePaystubsList as
|
|
18
|
-
import { useNonce as
|
|
19
|
-
import { useDataView as
|
|
16
|
+
import F from "../../../../../assets/icons/download-cloud.svg.js";
|
|
17
|
+
import { usePaystubsList as V } from "../../shared/usePaystubsList/usePaystubsList.js";
|
|
18
|
+
import { useNonce as v } from "../../../../../contexts/NonceProvider/useNonce.js";
|
|
19
|
+
import { useDataView as G } from "../../../../Common/DataView/useDataView.js";
|
|
20
20
|
import { DataView as Q } from "../../../../Common/DataView/DataView.js";
|
|
21
21
|
function pt({ LoaderComponent: a, ...i }) {
|
|
22
22
|
return /* @__PURE__ */ o(O, { componentName: "Employee.Management.Paystubs", LoaderComponent: a, children: /* @__PURE__ */ o(q, { LoaderComponent: a, ...i }) });
|
|
23
23
|
}
|
|
24
24
|
function q({ employeeId: a, onEvent: i, LoaderComponent: s }) {
|
|
25
|
-
|
|
26
|
-
const { t: l } = D("Employee.Management.Paystubs"), u = S(), d =
|
|
25
|
+
j("Employee.Management.Paystubs");
|
|
26
|
+
const { t: l } = D("Employee.Management.Paystubs"), u = S(), d = V({ employeeId: a }), e = H({ employeeId: a }), m = Y([d, e]);
|
|
27
27
|
return d.isLoading ? /* @__PURE__ */ o(M, { error: m.errors, LoaderComponent: s, children: /* @__PURE__ */ o(u.Box, { header: /* @__PURE__ */ o(u.BoxHeader, { title: l("title") }), children: /* @__PURE__ */ o(T, {}) }) }) : /* @__PURE__ */ o(
|
|
28
28
|
z,
|
|
29
29
|
{
|
|
@@ -44,7 +44,7 @@ function z({
|
|
|
44
44
|
errorHandling: u,
|
|
45
45
|
LoaderComponent: d
|
|
46
46
|
}) {
|
|
47
|
-
const { t: e } = D("Employee.Management.Paystubs"), m = S(), y = W("currency"), { showBoundary: p } = _(), f =
|
|
47
|
+
const { t: e } = D("Employee.Management.Paystubs"), m = S(), y = W("currency"), { showBoundary: p } = _(), f = v(), [b, g] = L(
|
|
48
48
|
() => /* @__PURE__ */ new Set()
|
|
49
49
|
), { payStubs: h } = s.data, C = s.pagination.payStubs, N = l.isLoading ? void 0 : l.data.paymentMethod, B = k(
|
|
50
50
|
async (t) => {
|
|
@@ -87,6 +87,7 @@ function z({
|
|
|
87
87
|
{
|
|
88
88
|
key: "checkAmount",
|
|
89
89
|
title: e("checkAmount"),
|
|
90
|
+
justify: "end",
|
|
90
91
|
render: (t) => {
|
|
91
92
|
if (!t.netPay) return "-";
|
|
92
93
|
const r = parseFloat(t.netPay);
|
|
@@ -96,6 +97,7 @@ function z({
|
|
|
96
97
|
{
|
|
97
98
|
key: "grossPay",
|
|
98
99
|
title: e("grossPay"),
|
|
100
|
+
justify: "end",
|
|
99
101
|
render: (t) => {
|
|
100
102
|
if (!t.grossPay) return "-";
|
|
101
103
|
const r = parseFloat(t.grossPay);
|
|
@@ -107,7 +109,7 @@ function z({
|
|
|
107
109
|
title: e("paymentMethod"),
|
|
108
110
|
render: () => N?.type || e("noPaymentMethod")
|
|
109
111
|
}
|
|
110
|
-
], x =
|
|
112
|
+
], x = G({
|
|
111
113
|
data: h,
|
|
112
114
|
columns: A,
|
|
113
115
|
pagination: C,
|
|
@@ -123,7 +125,7 @@ function z({
|
|
|
123
125
|
onClick: () => {
|
|
124
126
|
t.payrollUuid && B(t.payrollUuid);
|
|
125
127
|
},
|
|
126
|
-
children: /* @__PURE__ */ o(
|
|
128
|
+
children: /* @__PURE__ */ o(F, { "aria-hidden": !0 })
|
|
127
129
|
}
|
|
128
130
|
);
|
|
129
131
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaystubsCard.js","sources":["../../../../../../src/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.tsx"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport {\n usePaystubsList,\n type EmployeePayStub,\n type UsePaystubsListReady,\n} from '../../shared/usePaystubsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useNonce } from '@/contexts/NonceProvider'\nimport { openPdfInNewTab } from '@/helpers/openPdfInNewTab'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport {\n usePaymentMethodList,\n type UsePaymentMethodListResult,\n} from '@/components/Employee/PaymentMethod/shared'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport DownloadCloudIcon from '@/assets/icons/download-cloud.svg?react'\n\n/**\n * Props for {@link PaystubsCard}.\n *\n * @public\n */\nexport interface PaystubsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when paystub interactions occur. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone \"Paystubs\" card. Owns its own data fetch via\n * {@link usePaystubsList} and renders the paginated paystubs table with a\n * per-row PDF download action. Emits the management block's scoped events\n * (`EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_*`) on download request and on\n * download success. The card has no edit transitions and no alert API —\n * paystubs is a read-only surface whose only action is a download side\n * effect that opens the PDF in a new tab.\n *\n * @public\n */\nexport function PaystubsCard({ LoaderComponent, ...props }: PaystubsCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Paystubs\" LoaderComponent={LoaderComponent}>\n <PaystubsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction PaystubsCardContent({ employeeId, onEvent, LoaderComponent }: PaystubsCardProps) {\n useI18n('Employee.Management.Paystubs')\n const { t } = useTranslation('Employee.Management.Paystubs')\n const Components = useComponentContext()\n const paystubsList = usePaystubsList({ employeeId })\n const paymentMethodList = usePaymentMethodList({ employeeId })\n\n const errorHandling = composeErrorHandler([paystubsList, paymentMethodList])\n\n if (paystubsList.isLoading) {\n return (\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box header={<Components.BoxHeader title={t('title')} />}>\n <Loading />\n </Components.Box>\n </BaseLayout>\n )\n }\n\n return (\n <PaystubsCardReady\n employeeId={employeeId}\n onEvent={onEvent}\n paystubsList={paystubsList}\n paymentMethodList={paymentMethodList}\n errorHandling={errorHandling}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n\ninterface PaystubsCardReadyProps extends PaystubsCardProps {\n paystubsList: UsePaystubsListReady\n paymentMethodList: UsePaymentMethodListResult\n errorHandling: ReturnType<typeof composeErrorHandler>\n}\n\nfunction PaystubsCardReady({\n employeeId,\n onEvent,\n paystubsList,\n paymentMethodList,\n errorHandling,\n LoaderComponent,\n}: PaystubsCardReadyProps) {\n const { t } = useTranslation('Employee.Management.Paystubs')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const { showBoundary } = useErrorBoundary()\n const nonce = useNonce()\n\n const [downloadingPayrollUuids, setDownloadingPayrollUuids] = useState<ReadonlySet<string>>(\n () => new Set(),\n )\n\n const { payStubs } = paystubsList.data\n const payStubsPagination = paystubsList.pagination.payStubs\n const paymentMethod = paymentMethodList.isLoading\n ? undefined\n : paymentMethodList.data.paymentMethod\n\n const handleDownload = useCallback(\n async (payrollUuid: string) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_DOWNLOAD_REQUESTED, {\n employeeId,\n payrollUuid,\n })\n\n const tab = openPdfInNewTab({ loadingMessage: t('downloadLoadingMessage'), nonce })\n setDownloadingPayrollUuids(prev => {\n const next = new Set(prev)\n next.add(payrollUuid)\n return next\n })\n try {\n const result = await paystubsList.actions.downloadPayStub(payrollUuid)\n if (!result) {\n tab.close()\n return\n }\n tab.navigate(result.data)\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_DOWNLOADED, {\n employeeId,\n payrollUuid,\n })\n } catch (err) {\n tab.close()\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n } finally {\n setDownloadingPayrollUuids(prev => {\n if (!prev.has(payrollUuid)) return prev\n const next = new Set(prev)\n next.delete(payrollUuid)\n return next\n })\n }\n },\n [paystubsList.actions, onEvent, employeeId, t, showBoundary, nonce],\n )\n\n const payStubsColumns = [\n {\n key: 'payday',\n title: t('payday'),\n render: (payStub: EmployeePayStub) => formatDateLongWithYear(payStub.checkDate) || '-',\n },\n {\n key: 'checkAmount',\n title: t('checkAmount'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.netPay) return '-'\n const amount = parseFloat(payStub.netPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'grossPay',\n title: t('grossPay'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.grossPay) return '-'\n const amount = parseFloat(payStub.grossPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'paymentMethod',\n title: t('paymentMethod'),\n render: () => paymentMethod?.type || t('noPaymentMethod'),\n },\n ]\n\n const payStubsDataView = useDataView({\n data: payStubs,\n columns: payStubsColumns,\n pagination: payStubsPagination,\n itemMenu: payStub => {\n const isDownloading =\n !!payStub.payrollUuid && downloadingPayrollUuids.has(payStub.payrollUuid)\n return (\n <Components.ButtonIcon\n variant=\"tertiary\"\n aria-label={t('downloadCta')}\n isDisabled={!payStub.payrollUuid}\n isLoading={isDownloading}\n onClick={() => {\n if (payStub.payrollUuid) {\n void handleDownload(payStub.payrollUuid)\n }\n }}\n >\n <DownloadCloudIcon aria-hidden />\n </Components.ButtonIcon>\n )\n },\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n const isShowingTable = payStubs.length > 0\n\n return (\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...payStubsDataView} />\n ) : (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["PaystubsCard","LoaderComponent","props","jsx","BaseBoundaries","PaystubsCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","paystubsList","usePaystubsList","paymentMethodList","usePaymentMethodList","errorHandling","composeErrorHandler","BaseLayout","Loading","PaystubsCardReady","formatCurrency","useNumberFormatter","showBoundary","useErrorBoundary","nonce","useNonce","downloadingPayrollUuids","setDownloadingPayrollUuids","useState","payStubs","payStubsPagination","paymentMethod","handleDownload","useCallback","payrollUuid","componentEvents","tab","openPdfInNewTab","prev","next","result","err","payStubsColumns","payStub","formatDateLongWithYear","amount","payStubsDataView","useDataView","isDownloading","DownloadCloudIcon","EmptyData","isShowingTable","DataView"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PaystubsCard.js","sources":["../../../../../../src/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.tsx"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport {\n usePaystubsList,\n type EmployeePayStub,\n type UsePaystubsListReady,\n} from '../../shared/usePaystubsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useNonce } from '@/contexts/NonceProvider'\nimport { openPdfInNewTab } from '@/helpers/openPdfInNewTab'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport {\n usePaymentMethodList,\n type UsePaymentMethodListResult,\n} from '@/components/Employee/PaymentMethod/shared'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\nimport DownloadCloudIcon from '@/assets/icons/download-cloud.svg?react'\n\n/**\n * Props for {@link PaystubsCard}.\n *\n * @public\n */\nexport interface PaystubsCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when paystub interactions occur. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone \"Paystubs\" card. Owns its own data fetch via\n * {@link usePaystubsList} and renders the paginated paystubs table with a\n * per-row PDF download action. Emits the management block's scoped events\n * (`EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_*`) on download request and on\n * download success. The card has no edit transitions and no alert API —\n * paystubs is a read-only surface whose only action is a download side\n * effect that opens the PDF in a new tab.\n *\n * @public\n */\nexport function PaystubsCard({ LoaderComponent, ...props }: PaystubsCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Paystubs\" LoaderComponent={LoaderComponent}>\n <PaystubsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction PaystubsCardContent({ employeeId, onEvent, LoaderComponent }: PaystubsCardProps) {\n useI18n('Employee.Management.Paystubs')\n const { t } = useTranslation('Employee.Management.Paystubs')\n const Components = useComponentContext()\n const paystubsList = usePaystubsList({ employeeId })\n const paymentMethodList = usePaymentMethodList({ employeeId })\n\n const errorHandling = composeErrorHandler([paystubsList, paymentMethodList])\n\n if (paystubsList.isLoading) {\n return (\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box header={<Components.BoxHeader title={t('title')} />}>\n <Loading />\n </Components.Box>\n </BaseLayout>\n )\n }\n\n return (\n <PaystubsCardReady\n employeeId={employeeId}\n onEvent={onEvent}\n paystubsList={paystubsList}\n paymentMethodList={paymentMethodList}\n errorHandling={errorHandling}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n\ninterface PaystubsCardReadyProps extends PaystubsCardProps {\n paystubsList: UsePaystubsListReady\n paymentMethodList: UsePaymentMethodListResult\n errorHandling: ReturnType<typeof composeErrorHandler>\n}\n\nfunction PaystubsCardReady({\n employeeId,\n onEvent,\n paystubsList,\n paymentMethodList,\n errorHandling,\n LoaderComponent,\n}: PaystubsCardReadyProps) {\n const { t } = useTranslation('Employee.Management.Paystubs')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n const { showBoundary } = useErrorBoundary()\n const nonce = useNonce()\n\n const [downloadingPayrollUuids, setDownloadingPayrollUuids] = useState<ReadonlySet<string>>(\n () => new Set(),\n )\n\n const { payStubs } = paystubsList.data\n const payStubsPagination = paystubsList.pagination.payStubs\n const paymentMethod = paymentMethodList.isLoading\n ? undefined\n : paymentMethodList.data.paymentMethod\n\n const handleDownload = useCallback(\n async (payrollUuid: string) => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_DOWNLOAD_REQUESTED, {\n employeeId,\n payrollUuid,\n })\n\n const tab = openPdfInNewTab({ loadingMessage: t('downloadLoadingMessage'), nonce })\n setDownloadingPayrollUuids(prev => {\n const next = new Set(prev)\n next.add(payrollUuid)\n return next\n })\n try {\n const result = await paystubsList.actions.downloadPayStub(payrollUuid)\n if (!result) {\n tab.close()\n return\n }\n tab.navigate(result.data)\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PAYSTUBS_CARD_DOWNLOADED, {\n employeeId,\n payrollUuid,\n })\n } catch (err) {\n tab.close()\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n } finally {\n setDownloadingPayrollUuids(prev => {\n if (!prev.has(payrollUuid)) return prev\n const next = new Set(prev)\n next.delete(payrollUuid)\n return next\n })\n }\n },\n [paystubsList.actions, onEvent, employeeId, t, showBoundary, nonce],\n )\n\n const payStubsColumns = [\n {\n key: 'payday',\n title: t('payday'),\n render: (payStub: EmployeePayStub) => formatDateLongWithYear(payStub.checkDate) || '-',\n },\n {\n key: 'checkAmount',\n title: t('checkAmount'),\n justify: 'end' as const,\n render: (payStub: EmployeePayStub) => {\n if (!payStub.netPay) return '-'\n const amount = parseFloat(payStub.netPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'grossPay',\n title: t('grossPay'),\n justify: 'end' as const,\n render: (payStub: EmployeePayStub) => {\n if (!payStub.grossPay) return '-'\n const amount = parseFloat(payStub.grossPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'paymentMethod',\n title: t('paymentMethod'),\n render: () => paymentMethod?.type || t('noPaymentMethod'),\n },\n ]\n\n const payStubsDataView = useDataView({\n data: payStubs,\n columns: payStubsColumns,\n pagination: payStubsPagination,\n itemMenu: payStub => {\n const isDownloading =\n !!payStub.payrollUuid && downloadingPayrollUuids.has(payStub.payrollUuid)\n return (\n <Components.ButtonIcon\n variant=\"tertiary\"\n aria-label={t('downloadCta')}\n isDisabled={!payStub.payrollUuid}\n isLoading={isDownloading}\n onClick={() => {\n if (payStub.payrollUuid) {\n void handleDownload(payStub.payrollUuid)\n }\n }}\n >\n <DownloadCloudIcon aria-hidden />\n </Components.ButtonIcon>\n )\n },\n emptyState: () => (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n ),\n })\n\n const isShowingTable = payStubs.length > 0\n\n return (\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...payStubsDataView} />\n ) : (\n <EmptyData title={t('emptyState.title')} description={t('emptyState.description')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["PaystubsCard","LoaderComponent","props","jsx","BaseBoundaries","PaystubsCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","paystubsList","usePaystubsList","paymentMethodList","usePaymentMethodList","errorHandling","composeErrorHandler","BaseLayout","Loading","PaystubsCardReady","formatCurrency","useNumberFormatter","showBoundary","useErrorBoundary","nonce","useNonce","downloadingPayrollUuids","setDownloadingPayrollUuids","useState","payStubs","payStubsPagination","paymentMethod","handleDownload","useCallback","payrollUuid","componentEvents","tab","openPdfInNewTab","prev","next","result","err","payStubsColumns","payStub","formatDateLongWithYear","amount","payStubsDataView","useDataView","isDownloading","DownloadCloudIcon","EmptyData","isShowingTable","DataView"],"mappings":"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"}
|
|
@@ -18,13 +18,12 @@ import "@gusto/embedded-api/models/errors/httpclienterrors";
|
|
|
18
18
|
import { formatNumberAsCurrency as L } from "../../../helpers/formattedStrings.js";
|
|
19
19
|
import "../../../shared/constants.js";
|
|
20
20
|
import { useComponentContext as V } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
21
|
-
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
22
21
|
import { useI18n as E } from "../../../i18n/I18n.js";
|
|
23
22
|
import { NumberInputField as T } from "../../Common/Fields/NumberInputField/NumberInputField.js";
|
|
24
23
|
const q = P.object({
|
|
25
24
|
netPay: P.number().positive()
|
|
26
25
|
});
|
|
27
|
-
function
|
|
26
|
+
function pe({ isOpen: n, onCalculateGrossUp: w, onApply: A, onCancel: d }) {
|
|
28
27
|
E("Payroll.GrossUpModal");
|
|
29
28
|
const { t: r } = k("Payroll.GrossUpModal"), { Modal: M, Heading: u, Text: p, Button: i, Alert: f } = V(), { baseSubmitHandler: y } = H(), N = R(null), [l, c] = o(null), [h, m] = o(null), [g, b] = o(!1), [x, v] = o(!1), s = U({
|
|
30
29
|
resolver: z(q),
|
|
@@ -111,6 +110,6 @@ function fe({ isOpen: n, onCalculateGrossUp: w, onApply: A, onCancel: d }) {
|
|
|
111
110
|
);
|
|
112
111
|
}
|
|
113
112
|
export {
|
|
114
|
-
|
|
113
|
+
pe as GrossUpModal
|
|
115
114
|
};
|
|
116
115
|
//# sourceMappingURL=GrossUpModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GrossUpModal.js","sources":["../../../../src/components/Payroll/GrossUpModal/GrossUpModal.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { GrossUpModalProps } from './GrossUpModalTypes'\nimport styles from './GrossUpModal.module.scss'\nimport { ActionsLayout, Flex, NumberInputField } from '@/components/Common'\nimport { useBase } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\n\nconst GrossUpFormSchema = z.object({\n netPay: z.number().positive(),\n})\n\ntype GrossUpFormValues = z.infer<typeof GrossUpFormSchema>\n\n/** @internal */\nexport function GrossUpModal({ isOpen, onCalculateGrossUp, onApply, onCancel }: GrossUpModalProps) {\n useI18n('Payroll.GrossUpModal')\n const { t } = useTranslation('Payroll.GrossUpModal')\n const { Modal, Heading, Text, Button, Alert } = useComponentContext()\n const { baseSubmitHandler } = useBase()\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const [calculatedGrossUp, setCalculatedGrossUp] = useState<string | null>(null)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const [isCalculating, setIsCalculating] = useState(false)\n const [isApplying, setIsApplying] = useState(false)\n\n const formHandlers = useForm<GrossUpFormValues>({\n resolver: zodResolver(GrossUpFormSchema),\n defaultValues: { netPay: 0 },\n })\n\n useEffect(() => {\n if (!isOpen) {\n formHandlers.reset({ netPay: 0 })\n setCalculatedGrossUp(null)\n setErrorMessage(null)\n }\n }, [isOpen, formHandlers.reset])\n\n const handleCalculate = async (data: GrossUpFormValues) => {\n setErrorMessage(null)\n setCalculatedGrossUp(null)\n setIsCalculating(true)\n\n await baseSubmitHandler(null, async () => {\n try {\n const result = await onCalculateGrossUp(data.netPay)\n\n if (result) {\n setCalculatedGrossUp(result)\n } else {\n setErrorMessage(t('errorMessage'))\n }\n } finally {\n setIsCalculating(false)\n }\n })\n }\n\n const handleApply = async () => {\n if (calculatedGrossUp) {\n setIsApplying(true)\n await baseSubmitHandler(null, async () => {\n try {\n await onApply(calculatedGrossUp)\n } finally {\n setIsApplying(false)\n }\n })\n }\n }\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onCancel}\n containerRef={modalContainerRef}\n footer={\n <ActionsLayout>\n <Button\n variant=\"primary\"\n isDisabled={!calculatedGrossUp}\n onClick={handleApply}\n isLoading={isApplying}\n >\n {t('applyCta')}\n </Button>\n <Button variant=\"secondary\" onClick={onCancel}>\n {t('cancelCta')}\n </Button>\n </ActionsLayout>\n }\n >\n <FormProvider {...formHandlers}>\n <div className={styles.header}>\n <Heading as=\"h2\" styledAs=\"h3\">\n {t('title')}\n </Heading>\n <Text variant=\"supporting\" as=\"p\">\n {t('description')}\n </Text>\n </div>\n\n <div className={styles.content}>\n {errorMessage && (\n <div className={styles.alert}>\n <Alert label={errorMessage} status=\"error\" disableScrollIntoView />\n </div>\n )}\n\n <div className={styles.alert}>\n <Alert label={t('warning')} status=\"warning\" disableScrollIntoView />\n </div>\n\n <Flex flexDirection=\"row\" gap={8}>\n <NumberInputField\n name=\"netPay\"\n label={t('netPayLabel')}\n format=\"currency\"\n errorMessage={t('validations.netPay')}\n min={0}\n isRequired\n />\n <Button\n variant=\"secondary\"\n className={styles.calculateButton}\n isDisabled={isCalculating}\n onClick={formHandlers.handleSubmit(handleCalculate)}\n >\n {isCalculating ? t('calculatingCta') : t('calculateCta')}\n </Button>\n </Flex>\n\n {calculatedGrossUp && (\n <>\n <div className={styles.result}>\n <Text size=\"sm\" variant=\"supporting\" weight=\"semibold\">\n {t('grossPayResult')}\n </Text>\n <Heading as=\"h3\">{formatNumberAsCurrency(parseFloat(calculatedGrossUp))}</Heading>\n </div>\n </>\n )}\n </div>\n </FormProvider>\n </Modal>\n )\n}\n"],"names":["GrossUpFormSchema","z","GrossUpModal","isOpen","onCalculateGrossUp","onApply","onCancel","useI18n","t","useTranslation","Modal","Heading","Text","Button","Alert","useComponentContext","baseSubmitHandler","useBase","modalContainerRef","useRef","calculatedGrossUp","setCalculatedGrossUp","useState","errorMessage","setErrorMessage","isCalculating","setIsCalculating","isApplying","setIsApplying","formHandlers","useForm","zodResolver","useEffect","handleCalculate","data","result","jsx","ActionsLayout","jsxs","FormProvider","styles","Flex","NumberInputField","Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"GrossUpModal.js","sources":["../../../../src/components/Payroll/GrossUpModal/GrossUpModal.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { GrossUpModalProps } from './GrossUpModalTypes'\nimport styles from './GrossUpModal.module.scss'\nimport { ActionsLayout, Flex, NumberInputField } from '@/components/Common'\nimport { useBase } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\n\nconst GrossUpFormSchema = z.object({\n netPay: z.number().positive(),\n})\n\ntype GrossUpFormValues = z.infer<typeof GrossUpFormSchema>\n\n/** @internal */\nexport function GrossUpModal({ isOpen, onCalculateGrossUp, onApply, onCancel }: GrossUpModalProps) {\n useI18n('Payroll.GrossUpModal')\n const { t } = useTranslation('Payroll.GrossUpModal')\n const { Modal, Heading, Text, Button, Alert } = useComponentContext()\n const { baseSubmitHandler } = useBase()\n const modalContainerRef = useRef<HTMLDivElement>(null)\n\n const [calculatedGrossUp, setCalculatedGrossUp] = useState<string | null>(null)\n const [errorMessage, setErrorMessage] = useState<string | null>(null)\n const [isCalculating, setIsCalculating] = useState(false)\n const [isApplying, setIsApplying] = useState(false)\n\n const formHandlers = useForm<GrossUpFormValues>({\n resolver: zodResolver(GrossUpFormSchema),\n defaultValues: { netPay: 0 },\n })\n\n useEffect(() => {\n if (!isOpen) {\n formHandlers.reset({ netPay: 0 })\n setCalculatedGrossUp(null)\n setErrorMessage(null)\n }\n }, [isOpen, formHandlers.reset])\n\n const handleCalculate = async (data: GrossUpFormValues) => {\n setErrorMessage(null)\n setCalculatedGrossUp(null)\n setIsCalculating(true)\n\n await baseSubmitHandler(null, async () => {\n try {\n const result = await onCalculateGrossUp(data.netPay)\n\n if (result) {\n setCalculatedGrossUp(result)\n } else {\n setErrorMessage(t('errorMessage'))\n }\n } finally {\n setIsCalculating(false)\n }\n })\n }\n\n const handleApply = async () => {\n if (calculatedGrossUp) {\n setIsApplying(true)\n await baseSubmitHandler(null, async () => {\n try {\n await onApply(calculatedGrossUp)\n } finally {\n setIsApplying(false)\n }\n })\n }\n }\n\n return (\n <Modal\n isOpen={isOpen}\n onClose={onCancel}\n containerRef={modalContainerRef}\n footer={\n <ActionsLayout>\n <Button\n variant=\"primary\"\n isDisabled={!calculatedGrossUp}\n onClick={handleApply}\n isLoading={isApplying}\n >\n {t('applyCta')}\n </Button>\n <Button variant=\"secondary\" onClick={onCancel}>\n {t('cancelCta')}\n </Button>\n </ActionsLayout>\n }\n >\n <FormProvider {...formHandlers}>\n <div className={styles.header}>\n <Heading as=\"h2\" styledAs=\"h3\">\n {t('title')}\n </Heading>\n <Text variant=\"supporting\" as=\"p\">\n {t('description')}\n </Text>\n </div>\n\n <div className={styles.content}>\n {errorMessage && (\n <div className={styles.alert}>\n <Alert label={errorMessage} status=\"error\" disableScrollIntoView />\n </div>\n )}\n\n <div className={styles.alert}>\n <Alert label={t('warning')} status=\"warning\" disableScrollIntoView />\n </div>\n\n <Flex flexDirection=\"row\" gap={8}>\n <NumberInputField\n name=\"netPay\"\n label={t('netPayLabel')}\n format=\"currency\"\n errorMessage={t('validations.netPay')}\n min={0}\n isRequired\n />\n <Button\n variant=\"secondary\"\n className={styles.calculateButton}\n isDisabled={isCalculating}\n onClick={formHandlers.handleSubmit(handleCalculate)}\n >\n {isCalculating ? t('calculatingCta') : t('calculateCta')}\n </Button>\n </Flex>\n\n {calculatedGrossUp && (\n <>\n <div className={styles.result}>\n <Text size=\"sm\" variant=\"supporting\" weight=\"semibold\">\n {t('grossPayResult')}\n </Text>\n <Heading as=\"h3\">{formatNumberAsCurrency(parseFloat(calculatedGrossUp))}</Heading>\n </div>\n </>\n )}\n </div>\n </FormProvider>\n </Modal>\n )\n}\n"],"names":["GrossUpFormSchema","z","GrossUpModal","isOpen","onCalculateGrossUp","onApply","onCancel","useI18n","t","useTranslation","Modal","Heading","Text","Button","Alert","useComponentContext","baseSubmitHandler","useBase","modalContainerRef","useRef","calculatedGrossUp","setCalculatedGrossUp","useState","errorMessage","setErrorMessage","isCalculating","setIsCalculating","isApplying","setIsApplying","formHandlers","useForm","zodResolver","useEffect","handleCalculate","data","result","jsx","ActionsLayout","jsxs","FormProvider","styles","Flex","NumberInputField","Fragment"],"mappings":"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"}
|
package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
import { jsxs as i, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import { useFormContext as s, useWatch as m } from "react-hook-form";
|
|
3
3
|
import { useTranslation as d } from "react-i18next";
|
|
4
|
-
import
|
|
4
|
+
import r from "./OffCyclePayPeriodDateFormPresentation.module.scss.js";
|
|
5
5
|
import { useI18n as h } from "../../../i18n/I18n.js";
|
|
6
|
-
import { CheckboxField as
|
|
7
|
-
import { DatePickerField as
|
|
6
|
+
import { CheckboxField as D } from "../../Common/Fields/CheckboxField/CheckboxField.js";
|
|
7
|
+
import { DatePickerField as a } from "../../Common/Fields/DatePickerField/DatePickerField.js";
|
|
8
8
|
function O({
|
|
9
9
|
minCheckDate: o,
|
|
10
|
-
minCheckOnlyDate:
|
|
10
|
+
minCheckOnlyDate: c
|
|
11
11
|
}) {
|
|
12
12
|
h("Payroll.OffCyclePayPeriodDateForm");
|
|
13
|
-
const { t: e } = d("Payroll.OffCyclePayPeriodDateForm"), { control:
|
|
14
|
-
return /* @__PURE__ */ i("div", { className:
|
|
15
|
-
/* @__PURE__ */ i("div", { className:
|
|
16
|
-
/* @__PURE__ */ t(
|
|
17
|
-
/* @__PURE__ */ t(
|
|
13
|
+
const { t: e } = d("Payroll.OffCyclePayPeriodDateForm"), { control: l } = s(), n = m({ control: l, name: "isCheckOnly" }) ? c : o;
|
|
14
|
+
return /* @__PURE__ */ i("div", { className: r.root, children: [
|
|
15
|
+
/* @__PURE__ */ i("div", { className: r.dateFields, children: [
|
|
16
|
+
/* @__PURE__ */ t(a, { name: "startDate", label: e("startDateLabel"), isRequired: !0 }),
|
|
17
|
+
/* @__PURE__ */ t(a, { name: "endDate", label: e("endDateLabel"), isRequired: !0 })
|
|
18
18
|
] }),
|
|
19
|
-
/* @__PURE__ */ t("div", { className:
|
|
20
|
-
|
|
19
|
+
/* @__PURE__ */ t("div", { className: r.checkDateField, children: /* @__PURE__ */ t(
|
|
20
|
+
a,
|
|
21
21
|
{
|
|
22
22
|
name: "checkDate",
|
|
23
23
|
label: e("checkDateLabel"),
|
|
24
|
+
description: e("checkDateDescription"),
|
|
24
25
|
isRequired: !0,
|
|
25
26
|
minDate: n
|
|
26
27
|
}
|
|
27
28
|
) }),
|
|
28
29
|
/* @__PURE__ */ t(
|
|
29
|
-
|
|
30
|
+
D,
|
|
30
31
|
{
|
|
31
32
|
name: "isCheckOnly",
|
|
32
33
|
label: e("checkOnlyLabel"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OffCyclePayPeriodDateFormPresentation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.tsx"],"sourcesContent":["import { useFormContext, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCyclePayPeriodDateFormData } from './OffCyclePayPeriodDateFormTypes'\nimport styles from './OffCyclePayPeriodDateFormPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { CheckboxField, DatePickerField } from '@/components/Common'\n\n/** @internal */\nexport interface OffCyclePayPeriodDateFormPresentationProps {\n /** Earliest selectable payment date for direct deposit (today plus the ACH lead time). */\n minCheckDate: Date\n /** Earliest selectable payment date when the payroll is check-only (today). */\n minCheckOnlyDate: Date\n}\n\n/** @internal */\nexport function OffCyclePayPeriodDateFormPresentation({\n minCheckDate,\n minCheckOnlyDate,\n}: OffCyclePayPeriodDateFormPresentationProps) {\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n\n const { control } = useFormContext<OffCyclePayPeriodDateFormData>()\n const isCheckOnly = useWatch({ control, name: 'isCheckOnly' })\n\n // Mirrors the resolver's own `isCheckOnly ? today : minCheckDate` so the picker and the\n // validation agree. Without a minDate the rule existed only as a submit-time error, and\n // legacy gws-flows disables invalid dates in the picker (SDK-1274). Checking \"check-only\"\n // has to widen the bound back to today, live.\n const checkDateMinimum = isCheckOnly ? minCheckOnlyDate : minCheckDate\n\n return (\n <div className={styles.root}>\n <div className={styles.dateFields}>\n <DatePickerField name=\"startDate\" label={t('startDateLabel')} isRequired />\n <DatePickerField name=\"endDate\" label={t('endDateLabel')} isRequired />\n </div>\n\n <div className={styles.checkDateField}>\n <DatePickerField\n name=\"checkDate\"\n label={t('checkDateLabel')}\n isRequired\n minDate={checkDateMinimum}\n />\n </div>\n\n <CheckboxField\n name=\"isCheckOnly\"\n label={t('checkOnlyLabel')}\n description={t('checkOnlyDescription')}\n />\n </div>\n )\n}\n"],"names":["OffCyclePayPeriodDateFormPresentation","minCheckDate","minCheckOnlyDate","useI18n","t","useTranslation","control","useFormContext","checkDateMinimum","useWatch","jsxs","styles","jsx","DatePickerField","CheckboxField"],"mappings":";;;;;;;AAgBO,SAASA,EAAsC;AAAA,EACpD,cAAAC;AAAA,EACA,kBAAAC;AACF,GAA+C;AAC7C,EAAAC,EAAQ,mCAAmC;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC,GAE1D,EAAE,SAAAC,EAAA,IAAYC,EAAA,GAOdC,IANcC,EAAS,EAAE,SAAAH,GAAS,MAAM,eAAe,IAMtBJ,IAAmBD;AAE1D,SACE,gBAAAS,EAAC,OAAA,EAAI,WAAWC,EAAO,MACrB,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,YACrB,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOT,EAAE,gBAAgB,GAAG,YAAU,IAAC;AAAA,MACzE,gBAAAQ,EAACC,KAAgB,MAAK,WAAU,OAAOT,EAAE,cAAc,GAAG,YAAU,GAAA,CAAC;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,EAAO,gBACrB,UAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOT,EAAE,gBAAgB;AAAA,QACzB,YAAU;AAAA,QACV,SAASI;AAAA,MAAA;AAAA,IAAA,GAEb;AAAA,IAEA,gBAAAI;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOV,EAAE,gBAAgB;AAAA,QACzB,aAAaA,EAAE,sBAAsB;AAAA,MAAA;AAAA,IAAA;AAAA,EACvC,GACF;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"OffCyclePayPeriodDateFormPresentation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.tsx"],"sourcesContent":["import { useFormContext, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCyclePayPeriodDateFormData } from './OffCyclePayPeriodDateFormTypes'\nimport styles from './OffCyclePayPeriodDateFormPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { CheckboxField, DatePickerField } from '@/components/Common'\n\n/** @internal */\nexport interface OffCyclePayPeriodDateFormPresentationProps {\n /** Earliest selectable payment date for direct deposit (today plus the ACH lead time). */\n minCheckDate: Date\n /** Earliest selectable payment date when the payroll is check-only (today). */\n minCheckOnlyDate: Date\n}\n\n/** @internal */\nexport function OffCyclePayPeriodDateFormPresentation({\n minCheckDate,\n minCheckOnlyDate,\n}: OffCyclePayPeriodDateFormPresentationProps) {\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n\n const { control } = useFormContext<OffCyclePayPeriodDateFormData>()\n const isCheckOnly = useWatch({ control, name: 'isCheckOnly' })\n\n // Mirrors the resolver's own `isCheckOnly ? today : minCheckDate` so the picker and the\n // validation agree. Without a minDate the rule existed only as a submit-time error, and\n // legacy gws-flows disables invalid dates in the picker (SDK-1274). Checking \"check-only\"\n // has to widen the bound back to today, live.\n const checkDateMinimum = isCheckOnly ? minCheckOnlyDate : minCheckDate\n\n return (\n <div className={styles.root}>\n <div className={styles.dateFields}>\n <DatePickerField name=\"startDate\" label={t('startDateLabel')} isRequired />\n <DatePickerField name=\"endDate\" label={t('endDateLabel')} isRequired />\n </div>\n\n <div className={styles.checkDateField}>\n <DatePickerField\n name=\"checkDate\"\n label={t('checkDateLabel')}\n description={t('checkDateDescription')}\n isRequired\n minDate={checkDateMinimum}\n />\n </div>\n\n <CheckboxField\n name=\"isCheckOnly\"\n label={t('checkOnlyLabel')}\n description={t('checkOnlyDescription')}\n />\n </div>\n )\n}\n"],"names":["OffCyclePayPeriodDateFormPresentation","minCheckDate","minCheckOnlyDate","useI18n","t","useTranslation","control","useFormContext","checkDateMinimum","useWatch","jsxs","styles","jsx","DatePickerField","CheckboxField"],"mappings":";;;;;;;AAgBO,SAASA,EAAsC;AAAA,EACpD,cAAAC;AAAA,EACA,kBAAAC;AACF,GAA+C;AAC7C,EAAAC,EAAQ,mCAAmC;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC,GAE1D,EAAE,SAAAC,EAAA,IAAYC,EAAA,GAOdC,IANcC,EAAS,EAAE,SAAAH,GAAS,MAAM,eAAe,IAMtBJ,IAAmBD;AAE1D,SACE,gBAAAS,EAAC,OAAA,EAAI,WAAWC,EAAO,MACrB,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,YACrB,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOT,EAAE,gBAAgB,GAAG,YAAU,IAAC;AAAA,MACzE,gBAAAQ,EAACC,KAAgB,MAAK,WAAU,OAAOT,EAAE,cAAc,GAAG,YAAU,GAAA,CAAC;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAAQ,EAAC,OAAA,EAAI,WAAWD,EAAO,gBACrB,UAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOT,EAAE,gBAAgB;AAAA,QACzB,aAAaA,EAAE,sBAAsB;AAAA,QACrC,YAAU;AAAA,QACV,SAASI;AAAA,MAAA;AAAA,IAAA,GAEb;AAAA,IAEA,gBAAAI;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAOV,EAAE,gBAAgB;AAAA,QACzB,aAAaA,EAAE,sBAAsB;AAAA,MAAA;AAAA,IAAA;AAAA,EACvC,GACF;AAEJ;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const e = "
|
|
1
|
+
const e = "_root_1go5t_1", t = "_header_1go5t_7", o = "_headerContent_1go5t_14", _ = "_wageTypeCell_1go5t_20", a = "_taxedAsCell_1go5t_21", l = "_table_1go5t_27", n = {
|
|
2
2
|
root: e,
|
|
3
3
|
header: t,
|
|
4
4
|
headerContent: o,
|