@gusto/embedded-react-sdk 0.47.1 → 0.48.0
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 +128 -0
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +10 -7
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +8 -6
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +9 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +9 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +16 -15
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.js +9 -8
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +7 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +8 -5
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +21 -20
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +4 -2
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +3 -2
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +11 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js +3 -2
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +7 -6
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +8 -7
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +6 -4
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +6 -5
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +14 -11
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +8 -7
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -6
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +10 -7
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +4 -4
- package/dist/components/Company/Industry/Actions.js +6 -5
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +12 -10
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.js +8 -6
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +3 -2
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +6 -4
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +17 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +3 -2
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +9 -9
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +12 -9
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +6 -5
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -8
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +5 -2
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleList.js +8 -8
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +6 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +7 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +3 -2
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +5 -2
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +4 -2
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/Head.js +5 -4
- package/dist/components/Contractor/Address/Head.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.js +4 -4
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +4 -2
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +4 -2
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +10 -10
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +2 -2
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +3 -2
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +15 -15
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +4 -3
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.d.ts +6 -6
- package/dist/components/Contractor/Submit/Submit.js +3 -2
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/exports/contractorManagement.d.ts +6 -0
- package/dist/components/Contractor/exports/contractorManagement.js +15 -0
- package/dist/components/Contractor/exports/contractorManagement.js.map +1 -0
- package/dist/components/Employee/Compensation/management/Compensation.d.ts +35 -0
- package/dist/components/Employee/Compensation/management/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.d.ts +23 -3
- package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.d.ts +21 -10
- package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.d.ts +24 -7
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +18 -18
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationCard/index.d.ts +0 -1
- package/dist/components/Employee/Compensation/management/CompensationComponents.d.ts +7 -1
- package/dist/components/Employee/Compensation/management/CompensationComponents.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +27 -15
- package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.d.ts +12 -0
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.d.ts +12 -0
- package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +3 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +3 -2
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/management/compensationStateMachine.d.ts +1 -0
- package/dist/components/Employee/Compensation/management/compensationStateMachine.js.map +1 -1
- package/dist/components/Employee/Compensation/management/useManagementCompensationDictionary.d.ts +2 -0
- package/dist/components/Employee/Compensation/management/useManagementCompensationDictionary.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +61 -0
- package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.d.ts +5 -0
- package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +32 -9
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/index.d.ts +1 -2
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.d.ts +3 -0
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.d.ts +9 -0
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +7 -7
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/JobsList/index.d.ts +1 -4
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.d.ts +1 -0
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +5 -0
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +3 -2
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/PendingChangesReviewModal.d.ts +2 -0
- package/dist/components/Employee/Compensation/shared/PendingChangesReviewModal.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +2 -0
- package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.d.ts +4 -0
- package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +98 -0
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +168 -0
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/index.d.ts +1 -0
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +153 -6
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/index.d.ts +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.d.ts +19 -0
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.d.ts +101 -0
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +10 -10
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/index.d.ts +1 -0
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +75 -0
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +137 -8
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/usePendingChangeDetailRenderer.d.ts +2 -0
- package/dist/components/Employee/Compensation/shared/usePendingChangeDetailRenderer.js.map +1 -1
- package/dist/components/Employee/Dashboard/BasicDetailsView.d.ts +18 -4
- package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.d.ts +3 -0
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +21 -1
- package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
- package/dist/components/Employee/Dashboard/DashboardFlow.d.ts +116 -0
- package/dist/components/Employee/Dashboard/DashboardFlow.js.map +1 -1
- package/dist/components/Employee/Dashboard/JobAndPayView.d.ts +20 -0
- package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
- package/dist/components/Employee/Dashboard/TaxesView.d.ts +36 -3
- package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
- package/dist/components/Employee/Dashboard/dashboardStateMachine.d.ts +1 -0
- package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
- package/dist/components/Employee/Dashboard/index.d.ts +0 -6
- package/dist/components/Employee/Deductions/management/Deductions.d.ts +30 -0
- package/dist/components/Employee/Deductions/management/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.d.ts +21 -8
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +15 -15
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsComponents.d.ts +5 -1
- package/dist/components/Employee/Deductions/management/DeductionsComponents.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.d.ts +21 -7
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/useFormDictionary.d.ts +2 -0
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/useFormDictionary.js.map +1 -1
- package/dist/components/Employee/Deductions/management/deductionsStateMachine.d.ts +1 -0
- package/dist/components/Employee/Deductions/management/deductionsStateMachine.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/Deductions.d.ts +45 -0
- package/dist/components/Employee/Deductions/onboarding/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.d.ts +2 -0
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js +12 -12
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.d.ts +2 -0
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.js +6 -5
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +5 -0
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/stateMachine.d.ts +1 -0
- package/dist/components/Employee/Deductions/onboarding/stateMachine.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/useFormDictionary.d.ts +2 -0
- package/dist/components/Employee/Deductions/onboarding/useFormDictionary.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +1 -0
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +7 -6
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +7 -0
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +1 -0
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +15 -14
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/index.d.ts +1 -1
- package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +2 -0
- package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +2 -0
- package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +38 -5
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +207 -0
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/index.d.ts +3 -2
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +129 -3
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +29 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +158 -0
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/index.d.ts +3 -2
- package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +131 -4
- package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +6 -1
- package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +2 -0
- package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentManager.d.ts +3 -0
- package/dist/components/Employee/Documents/management/DocumentManager.js +7 -6
- package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
- package/dist/components/Employee/Documents/management/Documents.d.ts +24 -0
- package/dist/components/Employee/Documents/management/Documents.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.d.ts +17 -7
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +7 -6
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsComponents.d.ts +3 -0
- package/dist/components/Employee/Documents/management/DocumentsComponents.js.map +1 -1
- package/dist/components/Employee/Documents/management/documentsStateMachine.d.ts +1 -0
- package/dist/components/Employee/Documents/management/documentsStateMachine.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +5 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +13 -10
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Head.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Head.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +4 -2
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.d.ts +29 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.d.ts +23 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +3 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/countries.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/countries.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +4 -3
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +6 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.d.ts +27 -2
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +3 -0
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +7 -6
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/index.d.ts +1 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +1 -0
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -10
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/shared/useDocumentsList/index.d.ts +0 -1
- package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.d.ts +23 -6
- package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js.map +1 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.d.ts +326 -0
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js.map +1 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/index.d.ts +2 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +62 -0
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +130 -0
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.d.ts +30 -3
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +17 -21
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +2 -0
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +12 -12
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.d.ts +23 -2
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js +38 -35
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +2 -0
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js +10 -10
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeList/shared/index.d.ts +1 -1
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +86 -11
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +50 -62
- package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +34 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlow.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +11 -0
- package/dist/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.d.ts +1 -0
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/index.d.ts +2 -5
- package/dist/components/Employee/FederalTaxes/management/FederalTaxes.d.ts +27 -0
- package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.d.ts +9 -0
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +16 -15
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.d.ts +5 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.d.ts +24 -0
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +7 -6
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/federalTaxesStateMachine.d.ts +1 -0
- package/dist/components/Employee/FederalTaxes/management/federalTaxesStateMachine.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/useViewDictionary.d.ts +2 -0
- package/dist/components/Employee/FederalTaxes/management/useViewDictionary.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.d.ts +24 -0
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +12 -11
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/useViewDictionary.d.ts +2 -0
- package/dist/components/Employee/FederalTaxes/onboarding/useViewDictionary.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.d.ts +4 -0
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/index.d.ts +1 -2
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +46 -0
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.d.ts +112 -0
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/index.d.ts +1 -0
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +112 -0
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/index.d.ts +0 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.d.ts +14 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddress.d.ts +21 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.d.ts +17 -5
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +8 -7
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.d.ts +3 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.d.ts +20 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +2 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +5 -5
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.d.ts +7 -1
- package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/homeAddressStateMachine.d.ts +1 -0
- package/dist/components/Employee/HomeAddress/management/homeAddressStateMachine.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.d.ts +46 -7
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
- package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/index.d.ts +0 -1
- package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.d.ts +21 -6
- package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.d.ts +6 -0
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlow.d.ts +43 -0
- package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlow.js.map +1 -1
- package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.d.ts +17 -0
- package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.js.map +1 -1
- package/dist/components/Employee/OnboardingExecutionFlow/index.d.ts +2 -2
- package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +7 -0
- package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlow.d.ts +59 -0
- package/dist/components/Employee/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +2 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.d.ts +1 -0
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.d.ts +7 -0
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +39 -0
- package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.d.ts +23 -6
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.d.ts +24 -7
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js +14 -14
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.d.ts +5 -0
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodSplitForm.d.ts +23 -6
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodSplitForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.d.ts +1 -0
- package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/useFormDictionary.d.ts +4 -0
- package/dist/components/Employee/PaymentMethod/management/useFormDictionary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.d.ts +2 -0
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.d.ts +1 -0
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +15 -15
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +43 -0
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.d.ts +4 -0
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/SplitView.d.ts +2 -0
- package/dist/components/Employee/PaymentMethod/onboarding/SplitView.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.d.ts +1 -0
- package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/useFormDictionary.d.ts +4 -0
- package/dist/components/Employee/PaymentMethod/onboarding/useFormDictionary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +4 -0
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +8 -7
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/index.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.d.ts +2 -0
- package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +4 -0
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +10 -9
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/index.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.d.ts +80 -0
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/index.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +84 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +45 -0
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.d.ts +1 -0
- package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.d.ts +22 -0
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/index.d.ts +2 -2
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +84 -1
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.d.ts +45 -0
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +6 -0
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.d.ts +22 -0
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/index.d.ts +2 -2
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +25 -0
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +124 -7
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +52 -6
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js +1 -2
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.d.ts +9 -0
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +6 -6
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Paystubs/shared/usePaystubsList/index.d.ts +1 -1
- package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.d.ts +25 -0
- package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js.map +1 -1
- package/dist/components/Employee/Profile/management/Profile.d.ts +25 -0
- package/dist/components/Employee/Profile/management/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.d.ts +22 -6
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +8 -7
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileComponents.d.ts +5 -1
- package/dist/components/Employee/Profile/management/ProfileComponents.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.d.ts +25 -0
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +7 -7
- package/dist/components/Employee/Profile/management/ProfileEditForm.js.map +1 -1
- package/dist/components/Employee/Profile/management/profileStateMachine.d.ts +1 -0
- package/dist/components/Employee/Profile/management/profileStateMachine.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/AdminProfile.d.ts +1 -0
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js +6 -6
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.d.ts +1 -0
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +6 -6
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/Profile.d.ts +61 -0
- package/dist/components/Employee/Profile/onboarding/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +37 -0
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.d.ts +170 -0
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +4 -4
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/index.d.ts +4 -2
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +140 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/index.d.ts +0 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.d.ts +37 -4
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.d.ts +130 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +4 -4
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +35 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/index.d.ts +2 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts +45 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +77 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.d.ts +43 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/index.d.ts +2 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts +42 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +85 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/workAddressSchema.d.ts +35 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/workAddressSchema.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +16 -0
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.d.ts +31 -0
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.d.ts +1 -0
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js.map +1 -1
- package/dist/components/Employee/StateTaxes/index.d.ts +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxes.d.ts +24 -0
- package/dist/components/Employee/StateTaxes/management/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.d.ts +21 -6
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +12 -11
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.d.ts +4 -0
- package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.d.ts +20 -8
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +10 -9
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/stateTaxesStateMachine.d.ts +1 -0
- package/dist/components/Employee/StateTaxes/management/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/useViewDictionary.d.ts +2 -0
- package/dist/components/Employee/StateTaxes/management/useViewDictionary.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.d.ts +22 -0
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -6
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/useViewDictionary.d.ts +2 -0
- package/dist/components/Employee/StateTaxes/onboarding/useViewDictionary.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.d.ts +4 -0
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/index.d.ts +1 -2
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.d.ts +39 -16
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.d.ts +6 -0
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.d.ts +4 -9
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMeta.d.ts +5 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldProps.d.ts +52 -0
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +26 -5
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.d.ts +106 -0
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/index.d.ts +0 -1
- package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.d.ts +5 -8
- package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.d.ts +53 -0
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +1 -0
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +7 -6
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlow.d.ts +47 -0
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlow.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.d.ts +20 -0
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +10 -9
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.d.ts +2 -0
- package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.d.ts +48 -0
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.d.ts +1 -0
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +3 -2
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/types.d.ts +16 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddress.d.ts +21 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.d.ts +17 -6
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +17 -16
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.d.ts +3 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.d.ts +20 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +2 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +7 -7
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.d.ts +2 -0
- package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.d.ts +46 -7
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/workAddressStateMachine.d.ts +1 -0
- package/dist/components/Employee/WorkAddress/management/workAddressStateMachine.js.map +1 -1
- package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/index.d.ts +0 -1
- package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.d.ts +21 -4
- package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js.map +1 -1
- package/dist/components/Employee/exports/employeeManagement.d.ts +7 -2
- package/dist/components/Employee/exports/employeeManagement.js +58 -56
- package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
- package/dist/components/Employee/exports/employeeOnboarding.d.ts +11 -10
- package/dist/components/Employee/exports/employeeOnboarding.js +24 -22
- package/dist/components/Employee/exports/employeeOnboarding.js.map +1 -1
- package/dist/components/Employee/index.d.ts +0 -1
- package/dist/components/Flow/FlowHeader.js +4 -3
- package/dist/components/Flow/FlowHeader.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +19 -18
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +8 -7
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +5 -4
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +9 -8
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/Dismissal/index.d.ts +2 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +5 -5
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +10 -10
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +12 -10
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +1 -0
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +8 -7
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +18 -18
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +295 -289
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +18 -18
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +15 -15
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +3 -2
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +3 -2
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +2 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +3 -2
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
- package/dist/components/Payroll/index.d.ts +2 -0
- package/dist/components/Payroll/index.js +24 -22
- package/dist/components/Payroll/index.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +14 -14
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +3 -2
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +8 -8
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +36 -34
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +16 -16
- package/dist/components/TimeOff/index.d.ts +6 -2
- package/dist/components/TimeOff/index.js +21 -17
- package/dist/components/TimeOff/index.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +25 -24
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/components/index.d.ts +1 -6
- package/dist/contexts/GustoProvider/GustoProvider.d.ts +0 -7
- package/dist/contexts/GustoProvider/GustoProvider.js +10 -11
- package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +3 -2
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/GustoProvider/index.d.ts +1 -1
- package/dist/contexts/index.d.ts +0 -1
- package/dist/i18n/I18n.js +0 -1
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +56 -40
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -1
- package/dist/index.d.ts +18 -16
- package/dist/index.js +229 -163
- package/dist/index.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +15 -12
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +19 -16
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +16 -13
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +15 -12
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +21 -18
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +12 -9
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/shared/constants.d.ts +5 -3
- package/dist/shared/constants.js +0 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +9 -32
- package/docs/reference/endpoint-inventory.json +291 -1070
- package/package.json +16 -14
- package/dist/components/Company/index.js +0 -37
- package/dist/components/Company/index.js.map +0 -1
- package/dist/components/Contractor/index.js +0 -29
- package/dist/components/Contractor/index.js.map +0 -1
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/index.d.ts +0 -3
- package/dist/components/Employee/Deductions/shared/index.d.ts +0 -8
- package/dist/components/Employee/Documents/shared/index.d.ts +0 -3
- package/dist/components/Employee/FederalTaxes/onboarding/index.d.ts +0 -2
- package/dist/components/Employee/HomeAddress/shared/index.d.ts +0 -3
- package/dist/components/Employee/Paystubs/shared/index.d.ts +0 -3
- package/dist/components/Employee/Taxes/Actions.d.ts +0 -1
- package/dist/components/Employee/Taxes/Actions.js +0 -13
- package/dist/components/Employee/Taxes/Actions.js.map +0 -1
- package/dist/components/Employee/Taxes/FederalForm.d.ts +0 -12
- package/dist/components/Employee/Taxes/FederalForm.js +0 -109
- package/dist/components/Employee/Taxes/FederalForm.js.map +0 -1
- package/dist/components/Employee/Taxes/FederalHead.d.ts +0 -1
- package/dist/components/Employee/Taxes/FederalHead.js +0 -25
- package/dist/components/Employee/Taxes/FederalHead.js.map +0 -1
- package/dist/components/Employee/Taxes/StateForm.d.ts +0 -6
- package/dist/components/Employee/Taxes/StateForm.js +0 -35
- package/dist/components/Employee/Taxes/StateForm.js.map +0 -1
- package/dist/components/Employee/Taxes/Taxes.d.ts +0 -13
- package/dist/components/Employee/Taxes/Taxes.js +0 -133
- package/dist/components/Employee/Taxes/Taxes.js.map +0 -1
- package/dist/components/Employee/Taxes/index.d.ts +0 -2
- package/dist/components/Employee/Taxes/useTaxes.d.ts +0 -8
- package/dist/components/Employee/Taxes/useTaxes.js +0 -21
- package/dist/components/Employee/Taxes/useTaxes.js.map +0 -1
- package/dist/components/Employee/Terminations/TerminationFlow/index.d.ts +0 -3
- package/dist/components/Employee/Terminations/TerminationsData.d.ts +0 -6
- package/dist/components/Employee/Terminations/index.d.ts +0 -8
- package/dist/components/Employee/WorkAddress/shared/index.d.ts +0 -3
- package/dist/components/Employee/index.js +0 -49
- package/dist/components/Employee/index.js.map +0 -1
- package/dist/contexts/GustoApiProvider/index.d.ts +0 -3
- package/dist/i18n/en/Employee.Taxes.json.js +0 -58
- package/dist/i18n/en/Employee.Taxes.json.js.map +0 -1
package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldProps.d.ts
CHANGED
|
@@ -6,34 +6,86 @@ import { RadioGroupProps } from '../../../../Common/UI/RadioGroup/RadioGroupType
|
|
|
6
6
|
import { TextInputProps } from '../../../../Common/UI/TextInput/TextInputTypes';
|
|
7
7
|
import { NumberInputProps } from '../../../../Common/UI/NumberInput/NumberInputTypes';
|
|
8
8
|
import { DatePickerProps } from '../../../../Common/UI/DatePicker/DatePickerTypes';
|
|
9
|
+
/**
|
|
10
|
+
* Localized validation messages supported by the state-tax field components.
|
|
11
|
+
* Every variant surfaces a single error code, `REQUIRED`.
|
|
12
|
+
*
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
9
15
|
export type StateTaxValidationMessages = ValidationMessages<typeof EmployeeStateTaxesErrorCodes.REQUIRED>;
|
|
16
|
+
/**
|
|
17
|
+
* Props shared by every state-tax `Field` variant. Each variant extends this
|
|
18
|
+
* with a variant-specific `FieldComponent` shape; `select` and `text` also add
|
|
19
|
+
* a `placeholder`.
|
|
20
|
+
*
|
|
21
|
+
* @public
|
|
22
|
+
*/
|
|
10
23
|
export interface BaseStateTaxFieldProps {
|
|
11
24
|
/** Overrides the API-supplied label. When omitted, falls back to `question.label`. */
|
|
12
25
|
label?: string;
|
|
13
26
|
/** Overrides the API-supplied description. When omitted, falls back to `question.description`
|
|
14
27
|
* (sanitized internally by the underlying field via DOMPurify). */
|
|
15
28
|
description?: ReactNode;
|
|
29
|
+
/** When using the hook outside an `SDKFormProvider`, pass the form-hook result here so the field can connect to it. */
|
|
16
30
|
formHookResult?: FormHookResult;
|
|
17
31
|
/** Override the default localized validation message(s). */
|
|
18
32
|
validationMessages?: StateTaxValidationMessages;
|
|
19
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Props for a `Field` rendered as a select (dropdown).
|
|
36
|
+
*
|
|
37
|
+
* @public
|
|
38
|
+
*/
|
|
20
39
|
export type SelectStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
40
|
+
/** Placeholder shown when no option is selected. */
|
|
21
41
|
placeholder?: string;
|
|
42
|
+
/** Replace the underlying SDK Select primitive with a component of your own. */
|
|
22
43
|
FieldComponent?: ComponentType<SelectProps>;
|
|
23
44
|
};
|
|
45
|
+
/**
|
|
46
|
+
* Props for a `Field` rendered as a radio group.
|
|
47
|
+
*
|
|
48
|
+
* @public
|
|
49
|
+
*/
|
|
24
50
|
export type RadioStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
51
|
+
/** Replace the underlying SDK RadioGroup primitive with a component of your own. */
|
|
25
52
|
FieldComponent?: ComponentType<RadioGroupProps>;
|
|
26
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* Props for a `Field` rendered as a single-line text input.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
27
59
|
export type TextStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
60
|
+
/** Placeholder shown when the field is empty. */
|
|
28
61
|
placeholder?: string;
|
|
62
|
+
/** Replace the underlying SDK TextInput primitive with a component of your own. */
|
|
29
63
|
FieldComponent?: ComponentType<TextInputProps>;
|
|
30
64
|
};
|
|
65
|
+
/**
|
|
66
|
+
* Props for a `Field` rendered as a decimal number input.
|
|
67
|
+
*
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
31
70
|
export type NumberStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
71
|
+
/** Replace the underlying SDK NumberInput primitive with a component of your own. */
|
|
32
72
|
FieldComponent?: ComponentType<NumberInputProps>;
|
|
33
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* Props for a `Field` rendered as a currency-formatted number input.
|
|
76
|
+
*
|
|
77
|
+
* @public
|
|
78
|
+
*/
|
|
34
79
|
export type CurrencyStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
80
|
+
/** Replace the underlying SDK NumberInput primitive with a component of your own. */
|
|
35
81
|
FieldComponent?: ComponentType<NumberInputProps>;
|
|
36
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* Props for a `Field` rendered as a date picker.
|
|
85
|
+
*
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
37
88
|
export type DateStateTaxFieldProps = BaseStateTaxFieldProps & {
|
|
89
|
+
/** Replace the underlying SDK DatePicker primitive with a component of your own. */
|
|
38
90
|
FieldComponent?: ComponentType<DatePickerProps>;
|
|
39
91
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ComponentType } from 'react';
|
|
2
2
|
import { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist';
|
|
3
3
|
import { CurrencyStateTaxFieldProps, DateStateTaxFieldProps, NumberStateTaxFieldProps, RadioStateTaxFieldProps, SelectStateTaxFieldProps, TextStateTaxFieldProps } from './fieldProps';
|
|
4
|
-
export type {
|
|
4
|
+
export type { CurrencyStateTaxFieldProps, DateStateTaxFieldProps, NumberStateTaxFieldProps, RadioStateTaxFieldProps, SelectStateTaxFieldProps, TextStateTaxFieldProps, } from './fieldProps';
|
|
5
5
|
interface SharedQuestionMetadata {
|
|
6
6
|
/** Stable identifier for this question (camelCase form of the API key). */
|
|
7
7
|
questionId: string;
|
|
@@ -10,6 +10,14 @@ interface SharedQuestionMetadata {
|
|
|
10
10
|
/** API-supplied description (raw HTML, sanitized internally before render). */
|
|
11
11
|
description: string | null;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* One question entry within a {@link StateTaxFieldsGroup}, discriminated by
|
|
15
|
+
* `type` to identify which input variant the question uses. Each entry carries
|
|
16
|
+
* a `Field` component pre-bound to its API-supplied metadata so callers can
|
|
17
|
+
* render the input directly.
|
|
18
|
+
*
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
13
21
|
export type StateTaxQuestionFieldEntry = ({
|
|
14
22
|
type: 'select';
|
|
15
23
|
Field: ComponentType<SelectStateTaxFieldProps>;
|
|
@@ -29,18 +37,31 @@ export type StateTaxQuestionFieldEntry = ({
|
|
|
29
37
|
type: 'date';
|
|
30
38
|
Field: ComponentType<DateStateTaxFieldProps>;
|
|
31
39
|
} & SharedQuestionMetadata);
|
|
40
|
+
/**
|
|
41
|
+
* Group of state-tax questions for a single jurisdiction returned by
|
|
42
|
+
* {@link useStateFields}.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
32
46
|
export interface StateTaxFieldsGroup {
|
|
47
|
+
/** Two-letter state code. */
|
|
33
48
|
state: string;
|
|
49
|
+
/** Ordered list of question entries for this state, post admin-only filtering. */
|
|
34
50
|
questions: StateTaxQuestionFieldEntry[];
|
|
35
51
|
}
|
|
52
|
+
/** @internal */
|
|
36
53
|
export interface CreateStateFieldsOptions {
|
|
37
54
|
isAdmin: boolean;
|
|
38
55
|
}
|
|
56
|
+
/** @internal */
|
|
39
57
|
export declare function createStateFields(employeeStateTaxes: EmployeeStateTaxesList[], options: CreateStateFieldsOptions): StateTaxFieldsGroup[];
|
|
40
58
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
59
|
+
* Memoizes the bound field components for a state-taxes form, avoiding unnecessary rebuilds when the data refetches but the underlying questions haven't changed.
|
|
60
|
+
*
|
|
61
|
+
* @param employeeStateTaxes - Array of state-tax groups returned by the employee state-taxes API.
|
|
62
|
+
* @param isAdmin - When `true`, admin-only questions are included; when `false`, they are filtered out.
|
|
63
|
+
* @returns An array of {@link StateTaxFieldsGroup} — one entry per state, each with a `questions` array of bound field components.
|
|
64
|
+
* @public
|
|
65
|
+
* @group Utility Hooks
|
|
45
66
|
*/
|
|
46
67
|
export declare function useStateFields(employeeStateTaxes: EmployeeStateTaxesList[], isAdmin: boolean): StateTaxFieldsGroup[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport { getQuestionVariant, type StateTaxQuestionVariant } from './fieldMapping'\nimport {\n CurrencyStateTaxField,\n DateStateTaxField,\n NumberStateTaxField,\n RadioStateTaxField,\n SelectStateTaxField,\n TextStateTaxField,\n} from './fieldComponents'\nimport type { BoundFieldMeta } from './fieldMeta'\nimport type {\n CurrencyStateTaxFieldProps,\n DateStateTaxFieldProps,\n NumberStateTaxFieldProps,\n RadioStateTaxFieldProps,\n SelectStateTaxFieldProps,\n TextStateTaxFieldProps,\n} from './fieldProps'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\n\nexport type {\n
|
|
1
|
+
{"version":3,"file":"fields.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport { getQuestionVariant, type StateTaxQuestionVariant } from './fieldMapping'\nimport {\n CurrencyStateTaxField,\n DateStateTaxField,\n NumberStateTaxField,\n RadioStateTaxField,\n SelectStateTaxField,\n TextStateTaxField,\n} from './fieldComponents'\nimport type { BoundFieldMeta } from './fieldMeta'\nimport type {\n CurrencyStateTaxFieldProps,\n DateStateTaxFieldProps,\n NumberStateTaxFieldProps,\n RadioStateTaxFieldProps,\n SelectStateTaxFieldProps,\n TextStateTaxFieldProps,\n} from './fieldProps'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\n\nexport type {\n CurrencyStateTaxFieldProps,\n DateStateTaxFieldProps,\n NumberStateTaxFieldProps,\n RadioStateTaxFieldProps,\n SelectStateTaxFieldProps,\n TextStateTaxFieldProps,\n} from './fieldProps'\n\n// ── Discriminated union surfaced to partners ───────────────────────────\n\ninterface SharedQuestionMetadata {\n /** Stable identifier for this question (camelCase form of the API key). */\n questionId: string\n /** API-supplied label; default text for the rendered Field. */\n label: string\n /** API-supplied description (raw HTML, sanitized internally before render). */\n description: string | null\n}\n\n/**\n * One question entry within a {@link StateTaxFieldsGroup}, discriminated by\n * `type` to identify which input variant the question uses. Each entry carries\n * a `Field` component pre-bound to its API-supplied metadata so callers can\n * render the input directly.\n *\n * @public\n */\nexport type StateTaxQuestionFieldEntry =\n | ({ type: 'select'; Field: ComponentType<SelectStateTaxFieldProps> } & SharedQuestionMetadata)\n | ({ type: 'radio'; Field: ComponentType<RadioStateTaxFieldProps> } & SharedQuestionMetadata)\n | ({ type: 'text'; Field: ComponentType<TextStateTaxFieldProps> } & SharedQuestionMetadata)\n | ({ type: 'number'; Field: ComponentType<NumberStateTaxFieldProps> } & SharedQuestionMetadata)\n | ({\n type: 'currency'\n Field: ComponentType<CurrencyStateTaxFieldProps>\n } & SharedQuestionMetadata)\n | ({ type: 'date'; Field: ComponentType<DateStateTaxFieldProps> } & SharedQuestionMetadata)\n\n/**\n * Group of state-tax questions for a single jurisdiction returned by\n * {@link useStateFields}.\n *\n * @public\n */\nexport interface StateTaxFieldsGroup {\n /** Two-letter state code. */\n state: string\n /** Ordered list of question entries for this state, post admin-only filtering. */\n questions: StateTaxQuestionFieldEntry[]\n}\n\n// ── Factory ────────────────────────────────────────────────────────────\n\n/** @internal */\nexport interface CreateStateFieldsOptions {\n isAdmin: boolean\n}\n\n/** @internal */\nexport function createStateFields(\n employeeStateTaxes: EmployeeStateTaxesList[],\n options: CreateStateFieldsOptions,\n): StateTaxFieldsGroup[] {\n const { isAdmin } = options\n const groups: StateTaxFieldsGroup[] = []\n\n for (const stateGroup of employeeStateTaxes) {\n if (!stateGroup.state || !stateGroup.questions) continue\n\n const questions: StateTaxQuestionFieldEntry[] = []\n for (const question of stateGroup.questions) {\n if (question.isQuestionForAdminOnly && !isAdmin) continue\n\n const formKey = snakeCaseToCamelCase(question.key)\n const meta: BoundFieldMeta = {\n name: `states.${stateGroup.state}.${formKey}`,\n apiLabel: question.label,\n apiDescription: question.description,\n }\n const variant = getQuestionVariant(question)\n const shared: SharedQuestionMetadata = {\n questionId: formKey,\n label: question.label,\n description: question.description,\n }\n\n questions.push(buildEntry(variant, meta, shared))\n }\n\n if (questions.length === 0) continue\n\n groups.push({\n state: stateGroup.state,\n questions,\n })\n }\n\n return groups\n}\n\nfunction buildEntry(\n variant: StateTaxQuestionVariant,\n meta: BoundFieldMeta,\n shared: SharedQuestionMetadata,\n): StateTaxQuestionFieldEntry {\n switch (variant) {\n case 'select':\n return {\n type: 'select',\n Field: function BoundSelectStateTaxField(props: SelectStateTaxFieldProps) {\n return <SelectStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n case 'radio':\n return {\n type: 'radio',\n Field: function BoundRadioStateTaxField(props: RadioStateTaxFieldProps) {\n return <RadioStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n case 'text':\n return {\n type: 'text',\n Field: function BoundTextStateTaxField(props: TextStateTaxFieldProps) {\n return <TextStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n case 'number':\n return {\n type: 'number',\n Field: function BoundNumberStateTaxField(props: NumberStateTaxFieldProps) {\n return <NumberStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n case 'currency':\n return {\n type: 'currency',\n Field: function BoundCurrencyStateTaxField(props: CurrencyStateTaxFieldProps) {\n return <CurrencyStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n case 'date':\n return {\n type: 'date',\n Field: function BoundDateStateTaxField(props: DateStateTaxFieldProps) {\n return <DateStateTaxField meta={meta} {...props} />\n },\n ...shared,\n }\n }\n}\n\n/**\n * Memoizes the bound field components for a state-taxes form, avoiding unnecessary rebuilds when the data refetches but the underlying questions haven't changed.\n *\n * @param employeeStateTaxes - Array of state-tax groups returned by the employee state-taxes API.\n * @param isAdmin - When `true`, admin-only questions are included; when `false`, they are filtered out.\n * @returns An array of {@link StateTaxFieldsGroup} — one entry per state, each with a `questions` array of bound field components.\n * @public\n * @group Utility Hooks\n */\nexport function useStateFields(\n employeeStateTaxes: EmployeeStateTaxesList[],\n isAdmin: boolean,\n): StateTaxFieldsGroup[] {\n return useMemo(\n () => createStateFields(employeeStateTaxes, { isAdmin }),\n [employeeStateTaxes, isAdmin],\n )\n}\n"],"names":["createStateFields","employeeStateTaxes","options","isAdmin","groups","stateGroup","questions","question","formKey","snakeCaseToCamelCase","meta","variant","getQuestionVariant","shared","buildEntry","props","jsx","SelectStateTaxField","RadioStateTaxField","TextStateTaxField","NumberStateTaxField","CurrencyStateTaxField","DateStateTaxField","useStateFields","useMemo"],"mappings":";;;;;AAmFO,SAASA,EACdC,GACAC,GACuB;AACvB,QAAM,EAAE,SAAAC,MAAYD,GACdE,IAAgC,CAAA;AAEtC,aAAWC,KAAcJ,GAAoB;AAC3C,QAAI,CAACI,EAAW,SAAS,CAACA,EAAW,UAAW;AAEhD,UAAMC,IAA0C,CAAA;AAChD,eAAWC,KAAYF,EAAW,WAAW;AAC3C,UAAIE,EAAS,0BAA0B,CAACJ,EAAS;AAEjD,YAAMK,IAAUC,EAAqBF,EAAS,GAAG,GAC3CG,IAAuB;AAAA,QAC3B,MAAM,UAAUL,EAAW,KAAK,IAAIG,CAAO;AAAA,QAC3C,UAAUD,EAAS;AAAA,QACnB,gBAAgBA,EAAS;AAAA,MAAA,GAErBI,IAAUC,EAAmBL,CAAQ,GACrCM,IAAiC;AAAA,QACrC,YAAYL;AAAA,QACZ,OAAOD,EAAS;AAAA,QAChB,aAAaA,EAAS;AAAA,MAAA;AAGxB,MAAAD,EAAU,KAAKQ,EAAWH,GAASD,GAAMG,CAAM,CAAC;AAAA,IAClD;AAEA,IAAIP,EAAU,WAAW,KAEzBF,EAAO,KAAK;AAAA,MACV,OAAOC,EAAW;AAAA,MAClB,WAAAC;AAAA,IAAA,CACD;AAAA,EACH;AAEA,SAAOF;AACT;AAEA,SAASU,EACPH,GACAD,GACAG,GAC4B;AAC5B,UAAQF,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAkCI,GAAiC;AACxE,iBAAO,gBAAAC,EAACC,GAAA,EAAoB,MAAAP,GAAa,GAAGK,EAAA,CAAO;AAAA,QACrD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,IAEP,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAiCE,GAAgC;AACtE,iBAAO,gBAAAC,EAACE,GAAA,EAAmB,MAAAR,GAAa,GAAGK,EAAA,CAAO;AAAA,QACpD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,IAEP,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAgCE,GAA+B;AACpE,iBAAO,gBAAAC,EAACG,GAAA,EAAkB,MAAAT,GAAa,GAAGK,EAAA,CAAO;AAAA,QACnD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,IAEP,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAkCE,GAAiC;AACxE,iBAAO,gBAAAC,EAACI,GAAA,EAAoB,MAAAV,GAAa,GAAGK,EAAA,CAAO;AAAA,QACrD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,IAEP,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAoCE,GAAmC;AAC5E,iBAAO,gBAAAC,EAACK,GAAA,EAAsB,MAAAX,GAAa,GAAGK,EAAA,CAAO;AAAA,QACvD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,IAEP,KAAK;AACH,aAAO;AAAA,QACL,MAAM;AAAA,QACN,OAAO,SAAgCE,GAA+B;AACpE,iBAAO,gBAAAC,EAACM,GAAA,EAAkB,MAAAZ,GAAa,GAAGK,EAAA,CAAO;AAAA,QACnD;AAAA,QACA,GAAGF;AAAA,MAAA;AAAA,EACL;AAEN;AAWO,SAASU,EACdtB,GACAE,GACuB;AACvB,SAAOqB;AAAA,IACL,MAAMxB,EAAkBC,GAAoB,EAAE,SAAAE,GAAS;AAAA,IACvD,CAACF,GAAoBE,CAAO;AAAA,EAAA;AAEhC;"}
|
|
@@ -3,7 +3,13 @@ import { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/
|
|
|
3
3
|
import { EmployeeStateTaxesFormData } from './employeeStateTaxesSchema';
|
|
4
4
|
import { StateTaxFieldsGroup } from './fields';
|
|
5
5
|
import { BaseFormHookReady, FieldsMetadata, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
|
|
6
|
+
/**
|
|
7
|
+
* Options accepted by {@link useEmployeeStateTaxesForm}.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
6
11
|
export interface UseEmployeeStateTaxesFormProps {
|
|
12
|
+
/** The UUID of the employee whose state taxes are being updated. */
|
|
7
13
|
employeeId: string;
|
|
8
14
|
/**
|
|
9
15
|
* When `true`, admin-only questions are visible and submitted. When
|
|
@@ -11,26 +17,126 @@ export interface UseEmployeeStateTaxesFormProps {
|
|
|
11
17
|
* questions is preserved unchanged on submit.
|
|
12
18
|
*/
|
|
13
19
|
isAdmin?: boolean;
|
|
20
|
+
/** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */
|
|
14
21
|
validationMode?: UseFormProps['mode'];
|
|
22
|
+
/** Auto-focus the first invalid field on submit. Defaults to `true`. Set to `false` when composing with other forms. */
|
|
15
23
|
shouldFocusError?: boolean;
|
|
16
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Ready-state return value of {@link useEmployeeStateTaxesForm} — the
|
|
27
|
+
* `isLoading: false` branch of {@link UseEmployeeStateTaxesFormResult}.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
17
31
|
export interface UseEmployeeStateTaxesFormReady extends BaseFormHookReady<FieldsMetadata, EmployeeStateTaxesFormData, StateTaxFieldsGroup[]> {
|
|
32
|
+
/** Current per-state tax records returned by the server. */
|
|
18
33
|
data: {
|
|
19
34
|
employeeStateTaxes: EmployeeStateTaxesList[];
|
|
20
35
|
};
|
|
36
|
+
/** Submission status. `mode` is always `'update'` since state-tax records are created with the employee. */
|
|
21
37
|
status: {
|
|
22
38
|
isPending: boolean;
|
|
23
39
|
mode: 'update';
|
|
24
40
|
};
|
|
41
|
+
/** Form actions. */
|
|
25
42
|
actions: {
|
|
43
|
+
/** Validates and submits the form, resolving to the updated records on success or `undefined` when validation blocked the submit. */
|
|
26
44
|
onSubmit: () => Promise<HookSubmitResult<EmployeeStateTaxesList[]> | undefined>;
|
|
27
45
|
};
|
|
46
|
+
/** Form internals plus the iterable per-state `Fields` array. */
|
|
28
47
|
form: BaseFormHookReady<FieldsMetadata, EmployeeStateTaxesFormData, StateTaxFieldsGroup[]>['form'] & {
|
|
29
48
|
/** Iterable, render-ready group + question entries with bound Field components. */
|
|
30
49
|
Fields: StateTaxFieldsGroup[];
|
|
31
50
|
};
|
|
32
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Discriminated union returned by {@link useEmployeeStateTaxesForm}. Loading
|
|
54
|
+
* branch carries only `errorHandling`; ready branch carries form data,
|
|
55
|
+
* fields, status, and actions.
|
|
56
|
+
*
|
|
57
|
+
* @public
|
|
58
|
+
*/
|
|
33
59
|
export type UseEmployeeStateTaxesFormResult = HookLoadingResult | UseEmployeeStateTaxesFormReady;
|
|
60
|
+
/**
|
|
61
|
+
* Headless form hook for updating an employee's state tax withholding answers.
|
|
62
|
+
* The set of questions is driven by the API response per state, so
|
|
63
|
+
* `form.Fields` is an array of state groups with discriminated, render-ready
|
|
64
|
+
* `Field` components rather than a fixed named object.
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
* The state-tax record(s) are created automatically with the employee, so this
|
|
68
|
+
* hook is always in update mode. When the form has no states with submittable
|
|
69
|
+
* answers (e.g. an employee in a no-income-tax state), submit resolves with
|
|
70
|
+
* the existing record list without making a network request.
|
|
71
|
+
*
|
|
72
|
+
* @param props - Hook options.
|
|
73
|
+
* @returns A loading result while data is fetching, or a ready result with
|
|
74
|
+
* form data, fields, status, actions, and error handling.
|
|
75
|
+
* @public
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```tsx
|
|
79
|
+
* import {
|
|
80
|
+
* useEmployeeStateTaxesForm,
|
|
81
|
+
* SDKFormProvider,
|
|
82
|
+
* type UseEmployeeStateTaxesFormReady,
|
|
83
|
+
* } from '@gusto/embedded-react-sdk'
|
|
84
|
+
*
|
|
85
|
+
* function StateTaxesPage({ employeeId }: { employeeId: string }) {
|
|
86
|
+
* const stateTaxes = useEmployeeStateTaxesForm({ employeeId })
|
|
87
|
+
*
|
|
88
|
+
* if (stateTaxes.isLoading) return <div>Loading...</div>
|
|
89
|
+
*
|
|
90
|
+
* return <StateTaxesFormReady stateTaxes={stateTaxes} />
|
|
91
|
+
* }
|
|
92
|
+
*
|
|
93
|
+
* function StateTaxesFormReady({
|
|
94
|
+
* stateTaxes,
|
|
95
|
+
* }: {
|
|
96
|
+
* stateTaxes: UseEmployeeStateTaxesFormReady
|
|
97
|
+
* }) {
|
|
98
|
+
* const handleSubmit = async () => {
|
|
99
|
+
* const result = await stateTaxes.actions.onSubmit()
|
|
100
|
+
* if (result) console.log('Updated state tax records:', result.data)
|
|
101
|
+
* }
|
|
102
|
+
*
|
|
103
|
+
* return (
|
|
104
|
+
* <SDKFormProvider formHookResult={stateTaxes}>
|
|
105
|
+
* <form
|
|
106
|
+
* onSubmit={e => {
|
|
107
|
+
* e.preventDefault()
|
|
108
|
+
* void handleSubmit()
|
|
109
|
+
* }}
|
|
110
|
+
* >
|
|
111
|
+
* {stateTaxes.form.Fields.map(group => (
|
|
112
|
+
* <section key={group.state}>
|
|
113
|
+
* <h2>{group.state}</h2>
|
|
114
|
+
* {group.questions.map(question => (
|
|
115
|
+
* <question.Field key={question.questionId} />
|
|
116
|
+
* ))}
|
|
117
|
+
* </section>
|
|
118
|
+
* ))}
|
|
119
|
+
* <button type="submit" disabled={stateTaxes.status.isPending}>
|
|
120
|
+
* Save
|
|
121
|
+
* </button>
|
|
122
|
+
* </form>
|
|
123
|
+
* </SDKFormProvider>
|
|
124
|
+
* )
|
|
125
|
+
* }
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
34
128
|
export declare function useEmployeeStateTaxesForm({ employeeId, isAdmin, validationMode, shouldFocusError, }: UseEmployeeStateTaxesFormProps): UseEmployeeStateTaxesFormResult;
|
|
129
|
+
/**
|
|
130
|
+
* Static field metadata keyed by full form path (`states.<STATE>.<camelKey>`),
|
|
131
|
+
* with `isRequired` / `isDisabled` and option lists.
|
|
132
|
+
*
|
|
133
|
+
* @public
|
|
134
|
+
*/
|
|
35
135
|
export type EmployeeStateTaxesFieldsMetadata = UseEmployeeStateTaxesFormReady['form']['fieldsMetadata'];
|
|
136
|
+
/**
|
|
137
|
+
* The array of per-state field groups exposed by
|
|
138
|
+
* {@link useEmployeeStateTaxesForm} on `form.Fields`.
|
|
139
|
+
*
|
|
140
|
+
* @public
|
|
141
|
+
*/
|
|
36
142
|
export type EmployeeStateTaxesFormFields = UseEmployeeStateTaxesFormReady['form']['Fields'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEmployeeStateTaxesForm.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport type {\n EmployeeStateTaxesRequest,\n States as EmployeeStateTaxesRequestState,\n} from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxesrequest'\nimport { useEmployeeTaxSetupGetStateTaxes } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupUpdateStateTaxes'\nimport {\n createEmployeeStateTaxesSchema,\n type EmployeeStateTaxesFormData,\n type EmployeeStateTaxesFormOutputs,\n type EmployeeStateTaxesMetadataConfig,\n} from './employeeStateTaxesSchema'\nimport { createStateFields, type StateTaxFieldsGroup } from './fields'\nimport { getQuestionVariant } from './fieldMapping'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\nexport interface UseEmployeeStateTaxesFormProps {\n employeeId: string\n /**\n * When `true`, admin-only questions are visible and submitted. When\n * `false`, they are filtered out and the surfaced answer for those\n * questions is preserved unchanged on submit.\n */\n isAdmin?: boolean\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n}\n\nexport interface UseEmployeeStateTaxesFormReady extends BaseFormHookReady<\n FieldsMetadata,\n EmployeeStateTaxesFormData,\n StateTaxFieldsGroup[]\n> {\n data: {\n employeeStateTaxes: EmployeeStateTaxesList[]\n }\n status: { isPending: boolean; mode: 'update' }\n actions: {\n onSubmit: () => Promise<HookSubmitResult<EmployeeStateTaxesList[]> | undefined>\n }\n form: BaseFormHookReady<\n FieldsMetadata,\n EmployeeStateTaxesFormData,\n StateTaxFieldsGroup[]\n >['form'] & {\n /** Iterable, render-ready group + question entries with bound Field components. */\n Fields: StateTaxFieldsGroup[]\n }\n}\n\nexport type UseEmployeeStateTaxesFormResult = HookLoadingResult | UseEmployeeStateTaxesFormReady\n\nexport function useEmployeeStateTaxesForm({\n employeeId,\n isAdmin = false,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseEmployeeStateTaxesFormProps): UseEmployeeStateTaxesFormResult {\n const stateTaxesQuery = useEmployeeTaxSetupGetStateTaxes({ employeeUuid: employeeId })\n\n const employeeStateTaxes = useMemo<EmployeeStateTaxesList[]>(\n () => stateTaxesQuery.data?.employeeStateTaxesList ?? [],\n [stateTaxesQuery.data?.employeeStateTaxesList],\n )\n\n const [schema, metadataConfig] = useMemo(\n () => createEmployeeStateTaxesSchema(employeeStateTaxes, { isAdmin }),\n [employeeStateTaxes, isAdmin],\n )\n\n const fieldsArray = useMemo(\n () => createStateFields(employeeStateTaxes, { isAdmin }),\n [employeeStateTaxes, isAdmin],\n )\n\n const resolvedDefaults = useMemo(\n () => deriveDefaultValues(employeeStateTaxes, isAdmin),\n [employeeStateTaxes, isAdmin],\n )\n\n const formMethods = useForm<EmployeeStateTaxesFormData, unknown, EmployeeStateTaxesFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const { mutateAsync: updateStateTaxes, isPending } = useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeStateTaxesForm')\n\n const errorHandling = composeErrorHandler([stateTaxesQuery], {\n submitError,\n setSubmitError,\n })\n\n const fieldsMetadata = useDeriveFieldsMetadata(\n metadataConfig as EmployeeStateTaxesMetadataConfig,\n formMethods.control,\n ) as FieldsMetadata\n\n const onSubmit = async (): Promise<HookSubmitResult<EmployeeStateTaxesList[]> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeStateTaxesList[]> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async data => {\n await baseSubmitHandler(data, async payload => {\n const requestStates = serializeStatesPayload(payload, employeeStateTaxes, isAdmin)\n\n if (requestStates.length === 0) {\n submitResult = { mode: 'update', data: employeeStateTaxes }\n return\n }\n\n const requestBody: EmployeeStateTaxesRequest = { states: requestStates }\n const response = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: requestBody },\n })\n\n const updated = response.employeeStateTaxesList\n if (!updated) {\n throw new SDKInternalError('State taxes update did not return an updated record')\n }\n\n submitResult = { mode: 'update', data: updated }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (stateTaxesQuery.isLoading || !stateTaxesQuery.data?.employeeStateTaxesList) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: { employeeStateTaxes },\n status: { isPending, mode: 'update' as const },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: fieldsArray,\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema) as () =>\n | Record<string, unknown>\n | undefined,\n },\n }\n}\n\n// ── Defaults derivation ────────────────────────────────────────────────\n\nfunction deriveDefaultValues(\n employeeStateTaxes: EmployeeStateTaxesList[],\n isAdmin: boolean,\n): EmployeeStateTaxesFormData {\n const states: Record<string, Record<string, unknown>> = {}\n\n for (const stateGroup of employeeStateTaxes) {\n if (!stateGroup.state || !stateGroup.questions) continue\n\n const stateValues: Record<string, unknown> = {}\n for (const question of stateGroup.questions) {\n if (question.isQuestionForAdminOnly && !isAdmin) continue\n const formKey = snakeCaseToCamelCase(question.key)\n const wireValue = question.answers[0]?.value\n stateValues[formKey] = resolveDefaultForQuestion(question, wireValue)\n }\n\n if (Object.keys(stateValues).length > 0) {\n states[stateGroup.state] = stateValues\n }\n }\n\n return { states: states as EmployeeStateTaxesFormData['states'] }\n}\n\nfunction resolveDefaultForQuestion(\n question: EmployeeStateTaxesList['questions'] extends Array<infer Q> | undefined ? Q : never,\n wireValue: string | number | boolean | null | undefined,\n): unknown {\n if (question.key === 'file_new_hire_report') {\n if (wireValue === undefined || wireValue === null) return true\n return wireValue\n }\n\n const variant = getQuestionVariant(question)\n\n switch (variant) {\n case 'date': {\n if (wireValue === undefined || wireValue === null || wireValue === '') return undefined\n if (typeof wireValue === 'string') {\n const trimmed = wireValue.trim()\n if (trimmed === '') return undefined\n const parsed = new Date(trimmed)\n return Number.isNaN(parsed.getTime()) ? undefined : parsed\n }\n return wireValue\n }\n case 'number':\n case 'currency': {\n if (wireValue === undefined || wireValue === null || wireValue === '') return undefined\n const parsed = typeof wireValue === 'number' ? wireValue : Number(wireValue)\n return Number.isNaN(parsed) ? undefined : parsed\n }\n default:\n return wireValue\n }\n}\n\n// ── Submit serialization ───────────────────────────────────────────────\n\ntype SerializedQuestion = {\n key: string\n answers: Array<{\n validFrom: string\n validUpTo: string | null\n value: string | number | boolean\n }>\n}\n\nfunction serializeStatesPayload(\n payload: EmployeeStateTaxesFormOutputs,\n employeeStateTaxes: EmployeeStateTaxesList[],\n isAdmin: boolean,\n): EmployeeStateTaxesRequestState[] {\n const { states: statesPayload } = payload\n if (Object.keys(statesPayload).length === 0) return []\n\n const result: EmployeeStateTaxesRequestState[] = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n if (!stateName || state.questions === undefined) continue\n\n const serialized: SerializedQuestion[] = []\n for (const question of state.questions) {\n if (question.isQuestionForAdminOnly && !isAdmin) continue\n\n const formValue = (statesPayload[stateName] as Record<string, unknown> | undefined)?.[\n snakeCaseToCamelCase(question.key)\n ]\n\n let serializedValue: string | number | boolean\n if (formValue === undefined || formValue === null) {\n serializedValue = ''\n } else if (typeof formValue === 'number' && Number.isNaN(formValue)) {\n serializedValue = ''\n } else if (formValue instanceof Date) {\n if (Number.isNaN(formValue.getTime())) {\n serializedValue = ''\n } else {\n serializedValue = formValue.toISOString().split('T')[0] ?? ''\n }\n } else {\n serializedValue = formValue as string | number | boolean\n }\n\n serialized.push({\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value: serializedValue,\n },\n ],\n })\n }\n\n result.push({ state: stateName, questions: serialized })\n }\n\n return result\n}\n\nexport type EmployeeStateTaxesFieldsMetadata =\n UseEmployeeStateTaxesFormReady['form']['fieldsMetadata']\nexport type EmployeeStateTaxesFormFields = UseEmployeeStateTaxesFormReady['form']['Fields']\n"],"names":["DEFAULT_TAX_VALID_FROM","useEmployeeStateTaxesForm","employeeId","isAdmin","validationMode","shouldFocusError","stateTaxesQuery","useEmployeeTaxSetupGetStateTaxes","employeeStateTaxes","useMemo","schema","metadataConfig","createEmployeeStateTaxesSchema","fieldsArray","createStateFields","resolvedDefaults","deriveDefaultValues","formMethods","useForm","zodResolver","updateStateTaxes","isPending","useEmployeeTaxSetupUpdateStateTaxesMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","fieldsMetadata","useDeriveFieldsMetadata","onSubmit","submitResult","resolve","data","payload","requestStates","serializeStatesPayload","updated","SDKInternalError","hookFormInternals","useHookFormInternals","createGetFormSubmissionValues","states","stateGroup","stateValues","question","formKey","snakeCaseToCamelCase","wireValue","resolveDefaultForQuestion","getQuestionVariant","trimmed","parsed","statesPayload","result","state","stateName","serialized","formValue","serializedValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useEmployeeStateTaxesForm.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport type {\n EmployeeStateTaxesRequest,\n States as EmployeeStateTaxesRequestState,\n} from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxesrequest'\nimport { useEmployeeTaxSetupGetStateTaxes } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupUpdateStateTaxes'\nimport {\n createEmployeeStateTaxesSchema,\n type EmployeeStateTaxesFormData,\n type EmployeeStateTaxesFormOutputs,\n type EmployeeStateTaxesMetadataConfig,\n} from './employeeStateTaxesSchema'\nimport { createStateFields, type StateTaxFieldsGroup } from './fields'\nimport { getQuestionVariant } from './fieldMapping'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\n/**\n * Options accepted by {@link useEmployeeStateTaxesForm}.\n *\n * @public\n */\nexport interface UseEmployeeStateTaxesFormProps {\n /** The UUID of the employee whose state taxes are being updated. */\n employeeId: string\n /**\n * When `true`, admin-only questions are visible and submitted. When\n * `false`, they are filtered out and the surfaced answer for those\n * questions is preserved unchanged on submit.\n */\n isAdmin?: boolean\n /** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Defaults to `true`. Set to `false` when composing with other forms. */\n shouldFocusError?: boolean\n}\n\n/**\n * Ready-state return value of {@link useEmployeeStateTaxesForm} — the\n * `isLoading: false` branch of {@link UseEmployeeStateTaxesFormResult}.\n *\n * @public\n */\nexport interface UseEmployeeStateTaxesFormReady extends BaseFormHookReady<\n FieldsMetadata,\n EmployeeStateTaxesFormData,\n StateTaxFieldsGroup[]\n> {\n /** Current per-state tax records returned by the server. */\n data: {\n employeeStateTaxes: EmployeeStateTaxesList[]\n }\n /** Submission status. `mode` is always `'update'` since state-tax records are created with the employee. */\n status: { isPending: boolean; mode: 'update' }\n /** Form actions. */\n actions: {\n /** Validates and submits the form, resolving to the updated records on success or `undefined` when validation blocked the submit. */\n onSubmit: () => Promise<HookSubmitResult<EmployeeStateTaxesList[]> | undefined>\n }\n /** Form internals plus the iterable per-state `Fields` array. */\n form: BaseFormHookReady<\n FieldsMetadata,\n EmployeeStateTaxesFormData,\n StateTaxFieldsGroup[]\n >['form'] & {\n /** Iterable, render-ready group + question entries with bound Field components. */\n Fields: StateTaxFieldsGroup[]\n }\n}\n\n/**\n * Discriminated union returned by {@link useEmployeeStateTaxesForm}. Loading\n * branch carries only `errorHandling`; ready branch carries form data,\n * fields, status, and actions.\n *\n * @public\n */\nexport type UseEmployeeStateTaxesFormResult = HookLoadingResult | UseEmployeeStateTaxesFormReady\n\n/**\n * Headless form hook for updating an employee's state tax withholding answers.\n * The set of questions is driven by the API response per state, so\n * `form.Fields` is an array of state groups with discriminated, render-ready\n * `Field` components rather than a fixed named object.\n *\n * @remarks\n * The state-tax record(s) are created automatically with the employee, so this\n * hook is always in update mode. When the form has no states with submittable\n * answers (e.g. an employee in a no-income-tax state), submit resolves with\n * the existing record list without making a network request.\n *\n * @param props - Hook options.\n * @returns A loading result while data is fetching, or a ready result with\n * form data, fields, status, actions, and error handling.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useEmployeeStateTaxesForm,\n * SDKFormProvider,\n * type UseEmployeeStateTaxesFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function StateTaxesPage({ employeeId }: { employeeId: string }) {\n * const stateTaxes = useEmployeeStateTaxesForm({ employeeId })\n *\n * if (stateTaxes.isLoading) return <div>Loading...</div>\n *\n * return <StateTaxesFormReady stateTaxes={stateTaxes} />\n * }\n *\n * function StateTaxesFormReady({\n * stateTaxes,\n * }: {\n * stateTaxes: UseEmployeeStateTaxesFormReady\n * }) {\n * const handleSubmit = async () => {\n * const result = await stateTaxes.actions.onSubmit()\n * if (result) console.log('Updated state tax records:', result.data)\n * }\n *\n * return (\n * <SDKFormProvider formHookResult={stateTaxes}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void handleSubmit()\n * }}\n * >\n * {stateTaxes.form.Fields.map(group => (\n * <section key={group.state}>\n * <h2>{group.state}</h2>\n * {group.questions.map(question => (\n * <question.Field key={question.questionId} />\n * ))}\n * </section>\n * ))}\n * <button type=\"submit\" disabled={stateTaxes.status.isPending}>\n * Save\n * </button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useEmployeeStateTaxesForm({\n employeeId,\n isAdmin = false,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseEmployeeStateTaxesFormProps): UseEmployeeStateTaxesFormResult {\n const stateTaxesQuery = useEmployeeTaxSetupGetStateTaxes({ employeeUuid: employeeId })\n\n const employeeStateTaxes = useMemo<EmployeeStateTaxesList[]>(\n () => stateTaxesQuery.data?.employeeStateTaxesList ?? [],\n [stateTaxesQuery.data?.employeeStateTaxesList],\n )\n\n const [schema, metadataConfig] = useMemo(\n () => createEmployeeStateTaxesSchema(employeeStateTaxes, { isAdmin }),\n [employeeStateTaxes, isAdmin],\n )\n\n const fieldsArray = useMemo(\n () => createStateFields(employeeStateTaxes, { isAdmin }),\n [employeeStateTaxes, isAdmin],\n )\n\n const resolvedDefaults = useMemo(\n () => deriveDefaultValues(employeeStateTaxes, isAdmin),\n [employeeStateTaxes, isAdmin],\n )\n\n const formMethods = useForm<EmployeeStateTaxesFormData, unknown, EmployeeStateTaxesFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const { mutateAsync: updateStateTaxes, isPending } = useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('EmployeeStateTaxesForm')\n\n const errorHandling = composeErrorHandler([stateTaxesQuery], {\n submitError,\n setSubmitError,\n })\n\n const fieldsMetadata = useDeriveFieldsMetadata(\n metadataConfig as EmployeeStateTaxesMetadataConfig,\n formMethods.control,\n ) as FieldsMetadata\n\n const onSubmit = async (): Promise<HookSubmitResult<EmployeeStateTaxesList[]> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeStateTaxesList[]> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async data => {\n await baseSubmitHandler(data, async payload => {\n const requestStates = serializeStatesPayload(payload, employeeStateTaxes, isAdmin)\n\n if (requestStates.length === 0) {\n submitResult = { mode: 'update', data: employeeStateTaxes }\n return\n }\n\n const requestBody: EmployeeStateTaxesRequest = { states: requestStates }\n const response = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: requestBody },\n })\n\n const updated = response.employeeStateTaxesList\n if (!updated) {\n throw new SDKInternalError('State taxes update did not return an updated record')\n }\n\n submitResult = { mode: 'update', data: updated }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (stateTaxesQuery.isLoading || !stateTaxesQuery.data?.employeeStateTaxesList) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: { employeeStateTaxes },\n status: { isPending, mode: 'update' as const },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: fieldsArray,\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema) as () =>\n | Record<string, unknown>\n | undefined,\n },\n }\n}\n\n// ── Defaults derivation ────────────────────────────────────────────────\n\nfunction deriveDefaultValues(\n employeeStateTaxes: EmployeeStateTaxesList[],\n isAdmin: boolean,\n): EmployeeStateTaxesFormData {\n const states: Record<string, Record<string, unknown>> = {}\n\n for (const stateGroup of employeeStateTaxes) {\n if (!stateGroup.state || !stateGroup.questions) continue\n\n const stateValues: Record<string, unknown> = {}\n for (const question of stateGroup.questions) {\n if (question.isQuestionForAdminOnly && !isAdmin) continue\n const formKey = snakeCaseToCamelCase(question.key)\n const wireValue = question.answers[0]?.value\n stateValues[formKey] = resolveDefaultForQuestion(question, wireValue)\n }\n\n if (Object.keys(stateValues).length > 0) {\n states[stateGroup.state] = stateValues\n }\n }\n\n return { states: states as EmployeeStateTaxesFormData['states'] }\n}\n\nfunction resolveDefaultForQuestion(\n question: EmployeeStateTaxesList['questions'] extends Array<infer Q> | undefined ? Q : never,\n wireValue: string | number | boolean | null | undefined,\n): unknown {\n if (question.key === 'file_new_hire_report') {\n if (wireValue === undefined || wireValue === null) return true\n return wireValue\n }\n\n const variant = getQuestionVariant(question)\n\n switch (variant) {\n case 'date': {\n if (wireValue === undefined || wireValue === null || wireValue === '') return undefined\n if (typeof wireValue === 'string') {\n const trimmed = wireValue.trim()\n if (trimmed === '') return undefined\n const parsed = new Date(trimmed)\n return Number.isNaN(parsed.getTime()) ? undefined : parsed\n }\n return wireValue\n }\n case 'number':\n case 'currency': {\n if (wireValue === undefined || wireValue === null || wireValue === '') return undefined\n const parsed = typeof wireValue === 'number' ? wireValue : Number(wireValue)\n return Number.isNaN(parsed) ? undefined : parsed\n }\n default:\n return wireValue\n }\n}\n\n// ── Submit serialization ───────────────────────────────────────────────\n\ntype SerializedQuestion = {\n key: string\n answers: Array<{\n validFrom: string\n validUpTo: string | null\n value: string | number | boolean\n }>\n}\n\nfunction serializeStatesPayload(\n payload: EmployeeStateTaxesFormOutputs,\n employeeStateTaxes: EmployeeStateTaxesList[],\n isAdmin: boolean,\n): EmployeeStateTaxesRequestState[] {\n const { states: statesPayload } = payload\n if (Object.keys(statesPayload).length === 0) return []\n\n const result: EmployeeStateTaxesRequestState[] = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n if (!stateName || state.questions === undefined) continue\n\n const serialized: SerializedQuestion[] = []\n for (const question of state.questions) {\n if (question.isQuestionForAdminOnly && !isAdmin) continue\n\n const formValue = (statesPayload[stateName] as Record<string, unknown> | undefined)?.[\n snakeCaseToCamelCase(question.key)\n ]\n\n let serializedValue: string | number | boolean\n if (formValue === undefined || formValue === null) {\n serializedValue = ''\n } else if (typeof formValue === 'number' && Number.isNaN(formValue)) {\n serializedValue = ''\n } else if (formValue instanceof Date) {\n if (Number.isNaN(formValue.getTime())) {\n serializedValue = ''\n } else {\n serializedValue = formValue.toISOString().split('T')[0] ?? ''\n }\n } else {\n serializedValue = formValue as string | number | boolean\n }\n\n serialized.push({\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value: serializedValue,\n },\n ],\n })\n }\n\n result.push({ state: stateName, questions: serialized })\n }\n\n return result\n}\n\n/**\n * Static field metadata keyed by full form path (`states.<STATE>.<camelKey>`),\n * with `isRequired` / `isDisabled` and option lists.\n *\n * @public\n */\nexport type EmployeeStateTaxesFieldsMetadata =\n UseEmployeeStateTaxesFormReady['form']['fieldsMetadata']\n\n/**\n * The array of per-state field groups exposed by\n * {@link useEmployeeStateTaxesForm} on `form.Fields`.\n *\n * @public\n */\nexport type EmployeeStateTaxesFormFields = UseEmployeeStateTaxesFormReady['form']['Fields']\n"],"names":["DEFAULT_TAX_VALID_FROM","useEmployeeStateTaxesForm","employeeId","isAdmin","validationMode","shouldFocusError","stateTaxesQuery","useEmployeeTaxSetupGetStateTaxes","employeeStateTaxes","useMemo","schema","metadataConfig","createEmployeeStateTaxesSchema","fieldsArray","createStateFields","resolvedDefaults","deriveDefaultValues","formMethods","useForm","zodResolver","updateStateTaxes","isPending","useEmployeeTaxSetupUpdateStateTaxesMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","fieldsMetadata","useDeriveFieldsMetadata","onSubmit","submitResult","resolve","data","payload","requestStates","serializeStatesPayload","updated","SDKInternalError","hookFormInternals","useHookFormInternals","createGetFormSubmissionValues","states","stateGroup","stateValues","question","formKey","snakeCaseToCamelCase","wireValue","resolveDefaultForQuestion","getQuestionVariant","trimmed","parsed","statesPayload","result","state","stateName","serialized","formValue","serializedValue"],"mappings":"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"}
|
package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.d.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
1
|
import { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist';
|
|
2
2
|
import { BaseHookReady, HookLoadingResult } from '../../../../../partner-hook-utils/types';
|
|
3
|
+
/** @internal */
|
|
3
4
|
export interface UseStateTaxesSummaryParams {
|
|
4
5
|
employeeId: string;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
|
+
type UseStateTaxesSummaryReady = BaseHookReady<{
|
|
7
8
|
employeeStateTaxesList: EmployeeStateTaxesList[];
|
|
8
9
|
}, {
|
|
9
10
|
isFetching: boolean;
|
|
10
11
|
isPending: boolean;
|
|
11
12
|
}>;
|
|
13
|
+
/** @internal */
|
|
12
14
|
export type UseStateTaxesSummaryResult = HookLoadingResult | UseStateTaxesSummaryReady;
|
|
13
|
-
/**
|
|
14
|
-
* Read-only data hook for the State taxes management card. Wraps
|
|
15
|
-
* `useEmployeeTaxSetupGetStateTaxes` and returns the full list of
|
|
16
|
-
* per-state tax records in `BaseHookReady` shape. Mutations live in
|
|
17
|
-
* `useEmployeeStateTaxesForm` (the form-driven hook the edit form
|
|
18
|
-
* consumes).
|
|
19
|
-
*/
|
|
15
|
+
/** @internal */
|
|
20
16
|
export declare function useStateTaxesSummary({ employeeId, }: UseStateTaxesSummaryParams): UseStateTaxesSummaryResult;
|
|
17
|
+
export {};
|
package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStateTaxesSummary.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.tsx"],"sourcesContent":["import { useEmployeeTaxSetupGetStateTaxes } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupGetStateTaxes'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\nexport interface UseStateTaxesSummaryParams {\n employeeId: string\n}\n\
|
|
1
|
+
{"version":3,"file":"useStateTaxesSummary.js","sources":["../../../../../../src/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.tsx"],"sourcesContent":["import { useEmployeeTaxSetupGetStateTaxes } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeTaxSetupGetStateTaxes'\nimport type { EmployeeStateTaxesList } from '@gusto/embedded-api-v-2025-11-15/models/components/employeestatetaxeslist'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/** @internal */\nexport interface UseStateTaxesSummaryParams {\n employeeId: string\n}\n\ntype UseStateTaxesSummaryReady = BaseHookReady<\n { employeeStateTaxesList: EmployeeStateTaxesList[] },\n { isFetching: boolean; isPending: boolean }\n>\n\n/** @internal */\nexport type UseStateTaxesSummaryResult = HookLoadingResult | UseStateTaxesSummaryReady\n\n/** @internal */\nexport function useStateTaxesSummary({\n employeeId,\n}: UseStateTaxesSummaryParams): UseStateTaxesSummaryResult {\n const stateTaxesQuery = useEmployeeTaxSetupGetStateTaxes(\n { employeeUuid: employeeId },\n { staleTime: Infinity },\n )\n\n const errorHandling = composeErrorHandler([stateTaxesQuery])\n\n const employeeStateTaxesList = stateTaxesQuery.data?.employeeStateTaxesList\n\n if (stateTaxesQuery.isLoading || !employeeStateTaxesList) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { employeeStateTaxesList },\n status: {\n isFetching: stateTaxesQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useStateTaxesSummary","employeeId","stateTaxesQuery","useEmployeeTaxSetupGetStateTaxes","errorHandling","composeErrorHandler","employeeStateTaxesList"],"mappings":";;AAmBO,SAASA,EAAqB;AAAA,EACnC,YAAAC;AACF,GAA2D;AACzD,QAAMC,IAAkBC;AAAA,IACtB,EAAE,cAAcF,EAAA;AAAA,IAChB,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlBG,IAAgBC,EAAoB,CAACH,CAAe,CAAC,GAErDI,IAAyBJ,EAAgB,MAAM;AAErD,SAAIA,EAAgB,aAAa,CAACI,IACzB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,wBAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAgB;AAAA,MAC5B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
|
|
@@ -1,11 +1,64 @@
|
|
|
1
1
|
import { PayrollOption } from '../types';
|
|
2
2
|
import { BaseComponentInterface } from '../../../Base/Base';
|
|
3
|
+
/**
|
|
4
|
+
* Props for {@link TerminateEmployee}.
|
|
5
|
+
*
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
3
8
|
export interface TerminateEmployeeProps extends BaseComponentInterface<'Employee.Terminations.TerminateEmployee'> {
|
|
9
|
+
/** The employee identifier to terminate. */
|
|
4
10
|
employeeId: string;
|
|
11
|
+
/** The associated company identifier. */
|
|
5
12
|
companyId: string;
|
|
6
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Form values collected by {@link TerminateEmployee}.
|
|
16
|
+
*
|
|
17
|
+
* @public
|
|
18
|
+
*/
|
|
7
19
|
export interface TerminateEmployeeFormData {
|
|
20
|
+
/** The effective date of the termination — the employee's last day of work. */
|
|
8
21
|
lastDayOfWork: Date;
|
|
22
|
+
/** How to process the employee's final paycheck. */
|
|
9
23
|
payrollOption: PayrollOption;
|
|
10
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Standalone form for capturing an employee's termination details — last day of work and how to process final payroll.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* The main termination form used inside {@link TerminationFlow}. Detects existing
|
|
30
|
+
* terminations and pre-populates for editing when one is active, or routes to
|
|
31
|
+
* the summary view (via the `employee/termination/viewSummary` event) when the
|
|
32
|
+
* employee is already terminated.
|
|
33
|
+
*
|
|
34
|
+
* | Event | Description | Data |
|
|
35
|
+
* | ----- | ----------- | ---- |
|
|
36
|
+
* | `employee/termination/created` | Fired when a new termination is created | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |
|
|
37
|
+
* | `employee/termination/updated` | Fired when an existing termination is updated | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |
|
|
38
|
+
* | `employee/termination/done` | Fired when the termination form is completed | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption, payrollUuid?: string }` |
|
|
39
|
+
* | `employee/termination/viewSummary` | Fired when redirecting to view an existing termination | `{ employeeId: string, effectiveDate: string }` |
|
|
40
|
+
* | `employee/termination/payrollCreated` | Fired after a dismissal-payroll period was successfully created | `{ payrolls: PayrollUnprocessed[] }` |
|
|
41
|
+
* | `employee/termination/payrollFailed` | Fired if creating a dismissal payroll fails | `{ employeeId: string, error: unknown }` |
|
|
42
|
+
* | `CANCEL` | Fired when the user clicks Cancel | — |
|
|
43
|
+
*
|
|
44
|
+
* @param props - See {@link TerminateEmployeeProps}.
|
|
45
|
+
* @returns The termination form.
|
|
46
|
+
* @public
|
|
47
|
+
* @group Block Components
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* import { EmployeeManagement } from '@gusto/embedded-react-sdk'
|
|
52
|
+
*
|
|
53
|
+
* function MyComponent() {
|
|
54
|
+
* return (
|
|
55
|
+
* <EmployeeManagement.TerminateEmployee
|
|
56
|
+
* companyId="a007e1ab-3595-43c2-ab4b-af7a5af2e365"
|
|
57
|
+
* employeeId="4b3f930f-82cd-48a8-b797-798686e12e5e"
|
|
58
|
+
* onEvent={() => {}}
|
|
59
|
+
* />
|
|
60
|
+
* )
|
|
61
|
+
* }
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
11
64
|
export declare function TerminateEmployee(props: TerminateEmployeeProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminateEmployee.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.tsx"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsCreateTerminationMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsCreateTermination'\nimport { useEmployeeEmploymentsUpdateTerminationMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsUpdateTermination'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCreateOffCycle'\nimport {\n usePaySchedulesGetUnprocessedTerminationPeriods,\n invalidateAllPaySchedulesGetUnprocessedTerminationPeriods,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGetUnprocessedTerminationPeriods'\nimport { invalidateAllPayrollsList } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsList'\nimport { OffCycleReason } from '@gusto/embedded-api-v-2025-11-15/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\nimport type { PayrollOption } from '../types'\nimport { TerminateEmployeePresentation } from './TerminateEmployeePresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\nexport interface TerminateEmployeeProps extends BaseComponentInterface<'Employee.Terminations.TerminateEmployee'> {\n employeeId: string\n companyId: string\n}\n\nexport interface TerminateEmployeeFormData {\n lastDayOfWork: Date\n payrollOption: PayrollOption\n}\n\nexport function TerminateEmployee(props: TerminateEmployeeProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, companyId, dictionary }: TerminateEmployeeProps) => {\n useComponentDictionary('Employee.Terminations.TerminateEmployee', dictionary)\n useI18n('Employee.Terminations.TerminateEmployee')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: createTermination, isPending: isCreatingTermination } =\n useEmployeeEmploymentsCreateTerminationMutation()\n\n const { mutateAsync: updateTermination, isPending: isUpdatingTermination } =\n useEmployeeEmploymentsUpdateTerminationMutation()\n\n const { mutateAsync: createOffCyclePayroll, isPending: isCreatingPayroll } =\n usePayrollsCreateOffCycleMutation()\n\n const { refetch: fetchTerminationPeriods } = usePaySchedulesGetUnprocessedTerminationPeriods(\n { companyId },\n { enabled: false },\n )\n\n // If employee is already terminated, redirect to summary with existing termination data\n // Don't pass payrollOption to avoid showing the success alert\n if (employee?.terminated && terminationsData.terminations?.[0]) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_VIEW_SUMMARY, {\n employeeId,\n effectiveDate: terminationsData.terminations[0].effectiveDate!,\n termination: terminationsData.terminations[0],\n })\n return null\n }\n\n const employeeName = firstLastName({\n first_name: employee?.firstName,\n last_name: employee?.lastName,\n })\n\n const existingTermination = terminationsData.terminations?.[0]\n\n const handleSubmit = async (formData: TerminateEmployeeFormData) => {\n const { lastDayOfWork, payrollOption } = formData\n const effectiveDate = lastDayOfWork.toISOString().split('T')[0]!\n\n await baseSubmitHandler({ effectiveDate, payrollOption }, async () => {\n const runTerminationPayroll = payrollOption === 'dismissalPayroll'\n\n const result = existingTermination\n ? await updateTermination({\n request: {\n employeeId,\n requestBody: {\n version: existingTermination.version!,\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n : await createTermination({\n request: {\n employeeId,\n requestBody: {\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n\n let firstPayrollUuid: string | undefined\n\n if (runTerminationPayroll) {\n try {\n const { data: terminationPeriodsData } = await fetchTerminationPeriods()\n\n const employeePeriods =\n terminationPeriodsData?.unprocessedTerminationPayPeriods?.filter(\n period => period.employeeUuid === employeeId,\n ) ?? []\n\n const createdPayrolls = []\n\n for (const terminationPeriod of employeePeriods) {\n if (terminationPeriod.startDate && terminationPeriod.endDate) {\n const payrollResult = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: OffCycleReason.DismissedEmployee,\n startDate: new RFCDate(terminationPeriod.startDate),\n endDate: new RFCDate(terminationPeriod.endDate),\n employeeUuids: [employeeId],\n checkDate: terminationPeriod.checkDate\n ? new RFCDate(terminationPeriod.checkDate)\n : undefined,\n },\n },\n })\n\n if (payrollResult.payrollUnprocessed) {\n createdPayrolls.push(payrollResult.payrollUnprocessed)\n }\n }\n }\n\n if (createdPayrolls.length > 0) {\n firstPayrollUuid = createdPayrolls[0]?.payrollUuid ?? createdPayrolls[0]?.uuid\n\n await invalidateAllPayrollsList(queryClient)\n await invalidateAllPaySchedulesGetUnprocessedTerminationPeriods(queryClient)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_CREATED, {\n payrolls: createdPayrolls,\n })\n }\n } catch (payrollError) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_FAILED, {\n error: payrollError,\n employeeId,\n })\n }\n }\n\n const eventType = existingTermination\n ? componentEvents.EMPLOYEE_TERMINATION_UPDATED\n : componentEvents.EMPLOYEE_TERMINATION_CREATED\n\n onEvent(eventType, {\n termination: result.termination,\n payrollOption,\n runTerminationPayroll,\n })\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_DONE, {\n employeeId,\n effectiveDate,\n payrollOption,\n payrollUuid: firstPayrollUuid,\n termination: result.termination,\n ...(payrollOption === 'anotherWay' && { manualHandling: true }),\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const isPending = isCreatingTermination || isUpdatingTermination || isCreatingPayroll\n\n return (\n <TerminateEmployeePresentation\n employeeName={employeeName}\n existingTermination={existingTermination}\n onSubmit={handleSubmit}\n onCancel={handleCancel}\n isLoading={isPending}\n />\n )\n}\n"],"names":["TerminateEmployee","props","jsx","BaseComponent","Root","employeeId","companyId","dictionary","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","createTermination","isCreatingTermination","useEmployeeEmploymentsCreateTerminationMutation","updateTermination","isUpdatingTermination","useEmployeeEmploymentsUpdateTerminationMutation","createOffCyclePayroll","isCreatingPayroll","usePayrollsCreateOffCycleMutation","fetchTerminationPeriods","usePaySchedulesGetUnprocessedTerminationPeriods","componentEvents","employeeName","firstLastName","existingTermination","TerminateEmployeePresentation","formData","lastDayOfWork","payrollOption","effectiveDate","runTerminationPayroll","result","invalidateAllEmployeeEmploymentsGetTerminations","firstPayrollUuid","terminationPeriodsData","employeePeriods","period","createdPayrolls","terminationPeriod","payrollResult","OffCycleReason","RFCDate","invalidateAllPayrollsList","invalidateAllPaySchedulesGetUnprocessedTerminationPeriods","payrollError","eventType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TerminateEmployee.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.tsx"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsCreateTerminationMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsCreateTermination'\nimport { useEmployeeEmploymentsUpdateTerminationMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeEmploymentsUpdateTermination'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCreateOffCycle'\nimport {\n usePaySchedulesGetUnprocessedTerminationPeriods,\n invalidateAllPaySchedulesGetUnprocessedTerminationPeriods,\n} from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGetUnprocessedTerminationPeriods'\nimport { invalidateAllPayrollsList } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsList'\nimport { OffCycleReason } from '@gusto/embedded-api-v-2025-11-15/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\nimport type { PayrollOption } from '../types'\nimport { TerminateEmployeePresentation } from './TerminateEmployeePresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/**\n * Props for {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeProps extends BaseComponentInterface<'Employee.Terminations.TerminateEmployee'> {\n /** The employee identifier to terminate. */\n employeeId: string\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Form values collected by {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeFormData {\n /** The effective date of the termination — the employee's last day of work. */\n lastDayOfWork: Date\n /** How to process the employee's final paycheck. */\n payrollOption: PayrollOption\n}\n\n/**\n * Standalone form for capturing an employee's termination details — last day of work and how to process final payroll.\n *\n * @remarks\n * The main termination form used inside {@link TerminationFlow}. Detects existing\n * terminations and pre-populates for editing when one is active, or routes to\n * the summary view (via the `employee/termination/viewSummary` event) when the\n * employee is already terminated.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/termination/created` | Fired when a new termination is created | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/updated` | Fired when an existing termination is updated | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/done` | Fired when the termination form is completed | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption, payrollUuid?: string }` |\n * | `employee/termination/viewSummary` | Fired when redirecting to view an existing termination | `{ employeeId: string, effectiveDate: string }` |\n * | `employee/termination/payrollCreated` | Fired after a dismissal-payroll period was successfully created | `{ payrolls: PayrollUnprocessed[] }` |\n * | `employee/termination/payrollFailed` | Fired if creating a dismissal payroll fails | `{ employeeId: string, error: unknown }` |\n * | `CANCEL` | Fired when the user clicks Cancel | — |\n *\n * @param props - See {@link TerminateEmployeeProps}.\n * @returns The termination form.\n * @public\n * @group Block Components\n *\n * @example\n * ```tsx\n * import { EmployeeManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <EmployeeManagement.TerminateEmployee\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * employeeId=\"4b3f930f-82cd-48a8-b797-798686e12e5e\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TerminateEmployee(props: TerminateEmployeeProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, companyId, dictionary }: TerminateEmployeeProps) => {\n useComponentDictionary('Employee.Terminations.TerminateEmployee', dictionary)\n useI18n('Employee.Terminations.TerminateEmployee')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: createTermination, isPending: isCreatingTermination } =\n useEmployeeEmploymentsCreateTerminationMutation()\n\n const { mutateAsync: updateTermination, isPending: isUpdatingTermination } =\n useEmployeeEmploymentsUpdateTerminationMutation()\n\n const { mutateAsync: createOffCyclePayroll, isPending: isCreatingPayroll } =\n usePayrollsCreateOffCycleMutation()\n\n const { refetch: fetchTerminationPeriods } = usePaySchedulesGetUnprocessedTerminationPeriods(\n { companyId },\n { enabled: false },\n )\n\n // If employee is already terminated, redirect to summary with existing termination data\n // Don't pass payrollOption to avoid showing the success alert\n if (employee?.terminated && terminationsData.terminations?.[0]) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_VIEW_SUMMARY, {\n employeeId,\n effectiveDate: terminationsData.terminations[0].effectiveDate!,\n termination: terminationsData.terminations[0],\n })\n return null\n }\n\n const employeeName = firstLastName({\n first_name: employee?.firstName,\n last_name: employee?.lastName,\n })\n\n const existingTermination = terminationsData.terminations?.[0]\n\n const handleSubmit = async (formData: TerminateEmployeeFormData) => {\n const { lastDayOfWork, payrollOption } = formData\n const effectiveDate = lastDayOfWork.toISOString().split('T')[0]!\n\n await baseSubmitHandler({ effectiveDate, payrollOption }, async () => {\n const runTerminationPayroll = payrollOption === 'dismissalPayroll'\n\n const result = existingTermination\n ? await updateTermination({\n request: {\n employeeId,\n requestBody: {\n version: existingTermination.version!,\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n : await createTermination({\n request: {\n employeeId,\n requestBody: {\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n\n let firstPayrollUuid: string | undefined\n\n if (runTerminationPayroll) {\n try {\n const { data: terminationPeriodsData } = await fetchTerminationPeriods()\n\n const employeePeriods =\n terminationPeriodsData?.unprocessedTerminationPayPeriods?.filter(\n period => period.employeeUuid === employeeId,\n ) ?? []\n\n const createdPayrolls = []\n\n for (const terminationPeriod of employeePeriods) {\n if (terminationPeriod.startDate && terminationPeriod.endDate) {\n const payrollResult = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: OffCycleReason.DismissedEmployee,\n startDate: new RFCDate(terminationPeriod.startDate),\n endDate: new RFCDate(terminationPeriod.endDate),\n employeeUuids: [employeeId],\n checkDate: terminationPeriod.checkDate\n ? new RFCDate(terminationPeriod.checkDate)\n : undefined,\n },\n },\n })\n\n if (payrollResult.payrollUnprocessed) {\n createdPayrolls.push(payrollResult.payrollUnprocessed)\n }\n }\n }\n\n if (createdPayrolls.length > 0) {\n firstPayrollUuid = createdPayrolls[0]?.payrollUuid ?? createdPayrolls[0]?.uuid\n\n await invalidateAllPayrollsList(queryClient)\n await invalidateAllPaySchedulesGetUnprocessedTerminationPeriods(queryClient)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_CREATED, {\n payrolls: createdPayrolls,\n })\n }\n } catch (payrollError) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_FAILED, {\n error: payrollError,\n employeeId,\n })\n }\n }\n\n const eventType = existingTermination\n ? componentEvents.EMPLOYEE_TERMINATION_UPDATED\n : componentEvents.EMPLOYEE_TERMINATION_CREATED\n\n onEvent(eventType, {\n termination: result.termination,\n payrollOption,\n runTerminationPayroll,\n })\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_DONE, {\n employeeId,\n effectiveDate,\n payrollOption,\n payrollUuid: firstPayrollUuid,\n termination: result.termination,\n ...(payrollOption === 'anotherWay' && { manualHandling: true }),\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const isPending = isCreatingTermination || isUpdatingTermination || isCreatingPayroll\n\n return (\n <TerminateEmployeePresentation\n employeeName={employeeName}\n existingTermination={existingTermination}\n onSubmit={handleSubmit}\n onCancel={handleCancel}\n isLoading={isPending}\n />\n )\n}\n"],"names":["TerminateEmployee","props","jsx","BaseComponent","Root","employeeId","companyId","dictionary","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","createTermination","isCreatingTermination","useEmployeeEmploymentsCreateTerminationMutation","updateTermination","isUpdatingTermination","useEmployeeEmploymentsUpdateTerminationMutation","createOffCyclePayroll","isCreatingPayroll","usePayrollsCreateOffCycleMutation","fetchTerminationPeriods","usePaySchedulesGetUnprocessedTerminationPeriods","componentEvents","employeeName","firstLastName","existingTermination","TerminateEmployeePresentation","formData","lastDayOfWork","payrollOption","effectiveDate","runTerminationPayroll","result","invalidateAllEmployeeEmploymentsGetTerminations","firstPayrollUuid","terminationPeriodsData","employeePeriods","period","createdPayrolls","terminationPeriod","payrollResult","OffCycleReason","RFCDate","invalidateAllPayrollsList","invalidateAllPaySchedulesGetUnprocessedTerminationPeriods","payrollError","eventType"],"mappings":"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"}
|
package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ interface TerminateEmployeePresentationProps {
|
|
|
7
7
|
onCancel: () => void;
|
|
8
8
|
isLoading: boolean;
|
|
9
9
|
}
|
|
10
|
+
/** @internal */
|
|
10
11
|
export declare function TerminateEmployeePresentation({ employeeName, existingTermination, onSubmit, onCancel, isLoading, }: TerminateEmployeePresentationProps): import("react").JSX.Element;
|
|
11
12
|
export {};
|