@gusto/embedded-react-sdk 0.48.0 → 0.48.2
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 +34 -0
- package/dist/components/Common/DocumentList/DocumentList.js +12 -12
- package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Common/DocumentList/DocumentList.module.scss.js +3 -5
- package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
- package/dist/components/Common/EmptyData/EmptyData.d.ts +1 -1
- package/dist/components/Common/EmptyData/EmptyData.js +10 -12
- package/dist/components/Common/EmptyData/EmptyData.js.map +1 -1
- package/dist/components/Common/EmptyData/EmptyData.module.scss.js +6 -10
- package/dist/components/Common/EmptyData/EmptyData.module.scss.js.map +1 -1
- package/dist/components/Common/Form/Form.d.ts +1 -1
- package/dist/components/Common/Form/Form.js +8 -7
- package/dist/components/Common/Form/Form.js.map +1 -1
- package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayoutTypes.d.ts +1 -0
- package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +7 -3
- package/dist/components/Common/PayrollLoading/PayrollLoadingTypes.d.ts +1 -0
- package/dist/components/Common/UI/Alert/AlertTypes.d.ts +1 -0
- package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
- package/dist/components/Common/UI/Badge/BadgeTypes.d.ts +1 -0
- package/dist/components/Common/UI/Badge/BadgeTypes.js.map +1 -1
- package/dist/components/Common/UI/Banner/BannerTypes.d.ts +1 -0
- package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -1
- package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -0
- package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.d.ts +1 -0
- package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.js.map +1 -1
- package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -0
- package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
- package/dist/components/Common/UI/Button/ButtonTypes.d.ts +4 -2
- package/dist/components/Common/UI/Button/ButtonTypes.js.map +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreviewTypes.d.ts +3 -2
- package/dist/components/Common/UI/Card/Card.js +8 -8
- package/dist/components/Common/UI/Card/Card.js.map +1 -1
- package/dist/components/Common/UI/Card/Card.module.scss.js +5 -3
- package/dist/components/Common/UI/Card/Card.module.scss.js.map +1 -1
- package/dist/components/Common/UI/Card/CardTypes.d.ts +1 -0
- package/dist/components/Common/UI/Checkbox/CheckboxTypes.d.ts +1 -0
- package/dist/components/Common/UI/Checkbox/CheckboxTypes.js.map +1 -1
- package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +2 -0
- package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
- package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -0
- package/dist/components/Common/UI/DatePicker/DatePickerTypes.d.ts +1 -0
- package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +2 -0
- package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +2 -0
- package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
- package/dist/components/Common/UI/Dialog/DialogTypes.d.ts +1 -0
- package/dist/components/Common/UI/Dialog/DialogTypes.js.map +1 -1
- package/dist/components/Common/UI/FileInput/FileInputTypes.d.ts +1 -0
- package/dist/components/Common/UI/FileInput/FileInputTypes.js.map +1 -1
- package/dist/components/Common/UI/Heading/HeadingTypes.d.ts +1 -0
- package/dist/components/Common/UI/Link/LinkTypes.d.ts +4 -3
- package/dist/components/Common/UI/List/ListTypes.d.ts +13 -4
- package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +1 -0
- package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -1
- package/dist/components/Common/UI/Menu/MenuTypes.d.ts +2 -0
- package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
- package/dist/components/Common/UI/Modal/ModalTypes.d.ts +1 -0
- package/dist/components/Common/UI/Modal/ModalTypes.js.map +1 -1
- package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -0
- package/dist/components/Common/UI/NumberInput/NumberInputTypes.d.ts +1 -0
- package/dist/components/Common/UI/ProgressBar/ProgressBarTypes.d.ts +1 -0
- package/dist/components/Common/UI/Radio/RadioTypes.d.ts +1 -0
- package/dist/components/Common/UI/Radio/RadioTypes.js.map +1 -1
- package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -0
- package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
- package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -0
- package/dist/components/Common/UI/Switch/SwitchTypes.d.ts +1 -0
- package/dist/components/Common/UI/Switch/SwitchTypes.js.map +1 -1
- package/dist/components/Common/UI/Table/TableTypes.d.ts +3 -0
- package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
- package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -0
- package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -0
- package/dist/components/Common/UI/Text/TextTypes.js.map +1 -1
- package/dist/components/Common/UI/TextArea/TextAreaTypes.d.ts +1 -0
- package/dist/components/Common/UI/TextArea/TextAreaTypes.js.map +1 -1
- package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +1 -0
- package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +8 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.js +6 -8
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +5 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +3 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +7 -6
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.js +26 -27
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +6 -6
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +10 -10
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +2 -2
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +25 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/index.d.ts +3 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +28 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/index.d.ts +3 -0
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +26 -5
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +3 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/index.d.ts +3 -0
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +2 -2
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +6 -6
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
- package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -0
- package/dist/components/Employee/exports/employeeOnboarding.js +28 -22
- package/dist/components/Employee/exports/employeeOnboarding.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +36 -2
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/index.d.ts +1 -1
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.d.ts +22 -2
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestList/index.d.ts +1 -1
- package/dist/components/InformationRequests/InformationRequests.d.ts +29 -2
- package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +2 -0
- package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
- package/dist/components/InformationRequests/index.d.ts +3 -3
- package/dist/components/InformationRequests/informationRequestsStateMachine.d.ts +2 -0
- package/dist/components/InformationRequests/informationRequestsStateMachine.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +36 -3
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +6 -2
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +1 -0
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +14 -0
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -8
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +1 -2
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +0 -1
- package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +11 -0
- package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +1 -2
- package/dist/components/Payroll/ConfirmWireDetails/types.d.ts +23 -0
- package/dist/components/Payroll/Dismissal/DismissalFlow.d.ts +18 -0
- package/dist/components/Payroll/Dismissal/DismissalFlow.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalFlowComponents.d.ts +15 -0
- package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.d.ts +24 -0
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +7 -0
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/Dismissal/dismissalStateMachine.d.ts +2 -0
- package/dist/components/Payroll/Dismissal/dismissalStateMachine.js.map +1 -1
- package/dist/components/Payroll/Dismissal/index.d.ts +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +1 -0
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +5 -0
- package/dist/components/Payroll/GrossUpModal/index.d.ts +0 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlow.d.ts +31 -0
- package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +20 -0
- package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
- package/dist/components/Payroll/OffCycle/offCycleStateMachine.d.ts +2 -0
- package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +20 -0
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -0
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +24 -0
- package/dist/components/Payroll/OffCycleCreation/index.d.ts +1 -1
- package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.d.ts +16 -0
- package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
- package/dist/components/Payroll/OffCycleDeductionsSetting/types.d.ts +13 -0
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +1 -0
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts +18 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.d.ts +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js +0 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +15 -0
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +1 -0
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +43 -0
- package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.d.ts +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModalTypes.d.ts +5 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/index.d.ts +0 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.d.ts +1 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +14 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +0 -2
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +3 -0
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.d.ts +19 -5
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/index.d.ts +0 -1
- package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +17 -11
- package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +0 -2
- package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +31 -3
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +1 -2
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -0
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
- package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -0
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +42 -3
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +1 -2
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +0 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +8 -6
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +65 -0
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/index.d.ts +0 -1
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +2 -0
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.d.ts +1 -0
- package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.d.ts +1 -0
- package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +38 -0
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +27 -0
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +1 -0
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +2 -0
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +25 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -2
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -0
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +33 -4
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +1 -2
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +19 -0
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +2 -0
- package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.d.ts +32 -13
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -0
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +65 -68
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/types.d.ts +1 -0
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +39 -3
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -2
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -0
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.d.ts +1 -0
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +1 -0
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -0
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +26 -3
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +2 -7
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -0
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.d.ts +1 -0
- package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.js.map +1 -1
- package/dist/components/Payroll/PayrollStatusBadges/index.d.ts +0 -2
- package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +26 -0
- package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
- package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.d.ts +2 -0
- package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +21 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.d.ts +5 -0
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.d.ts +1 -0
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.d.ts +1 -0
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/index.d.ts +0 -1
- package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.d.ts +5 -0
- package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.d.ts +5 -0
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlow.d.ts +21 -0
- package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +23 -0
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
- package/dist/components/Payroll/Transition/transitionStateMachine.d.ts +2 -0
- package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.d.ts +20 -0
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +7 -0
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +27 -0
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
- package/dist/components/Payroll/helpers.d.ts +157 -26
- package/dist/components/Payroll/helpers.js +0 -1
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/index.d.ts +11 -2
- package/dist/components/Payroll/payrollTypes.d.ts +24 -0
- package/dist/components/Payroll/payrollTypes.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.d.ts +12 -0
- package/dist/components/Payroll/usePreparedPayrollData.js +4 -3
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +7 -0
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +19 -0
- package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
- package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +44 -0
- package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.d.ts +4 -0
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -0
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +28 -2
- package/dist/components/TimeOff/HolidayPolicyDetail/index.d.ts +0 -2
- package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.d.ts +26 -0
- package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
- package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.d.ts +1 -0
- package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
- package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +10 -0
- package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +25 -0
- package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -0
- package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyListTypes.d.ts +17 -0
- package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +22 -0
- package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +14 -0
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +31 -0
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.d.ts +23 -0
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -0
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +10 -0
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.d.ts +42 -0
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +26 -0
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +15 -2
- package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js +1 -6
- package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.d.ts +29 -0
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +59 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/index.d.ts +0 -3
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +43 -42
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +1 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +3 -0
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +9 -0
- package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.d.ts +25 -0
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +14 -0
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +97 -6
- package/dist/components/TimeOff/TimeOffPolicyDetail/index.d.ts +1 -5
- package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.d.ts +23 -0
- package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.js.map +1 -1
- package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.d.ts +22 -0
- package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.js.map +1 -1
- package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.d.ts +22 -0
- package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.js.map +1 -1
- package/dist/components/TimeOff/index.d.ts +8 -2
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -0
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +48 -49
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +66 -0
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -0
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +28 -0
- package/dist/components/TimeOff/shared/PolicyDetailLayout/index.d.ts +0 -1
- package/dist/components/TimeOff/shared/holidayHelpers.d.ts +5 -0
- package/dist/components/TimeOff/shared/holidayHelpers.js.map +1 -1
- package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +4 -4
- package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +39 -39
- package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
- package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +42 -42
- package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
- package/dist/i18n/en/common.json.d.ts +0 -1
- package/dist/i18n/en/common.json.js +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.js +206 -205
- package/dist/node_modules/react-dnd/dist/core/DndProvider.js +1 -1
- package/dist/node_modules/react-dnd/dist/core/DndProvider.js.map +1 -1
- package/dist/partner-hook-utils/composeErrorHandler.js +3 -1
- package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
- package/dist/shared/constants.d.ts +12 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +0 -1
- package/docs/reference/endpoint-inventory.json +55 -0
- package/package.json +24 -11
- package/dist/assets/icons/feature-icon-check.svg.js +0 -10
- package/dist/assets/icons/feature-icon-check.svg.js.map +0 -1
- package/dist/assets/icons/magnifyingGlass.png.js +0 -5
- package/dist/assets/icons/magnifyingGlass.png.js.map +0 -1
- package/dist/components/Payroll/PayrollEditEmployee/index.d.ts +0 -4
- package/dist/components/Payroll/PayrollFlow/index.d.ts +0 -3
- package/dist/components/TimeOff/TimeOffFlow/index.d.ts +0 -3
- package/dist/components/TimeOff/shared/EmployeeTable/index.d.ts +0 -4
|
@@ -17,19 +17,18 @@ import "@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror"
|
|
|
17
17
|
import { SDKInternalError as Y } from "../../../types/sdkError.js";
|
|
18
18
|
import { ContractorSelfOnboardingStatuses as x, componentEvents as b, ContractorOnboardingStatus as ee } from "../../../shared/constants.js";
|
|
19
19
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
20
|
-
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
21
20
|
import { useI18n as oe } from "../../../i18n/I18n.js";
|
|
22
21
|
import { SSN_REGEX as se, NAME_REGEX as T } from "../../../helpers/validations.js";
|
|
23
22
|
import { removeNonDigits as ae } from "../../../helpers/formattedStrings.js";
|
|
24
23
|
import { formatDateToStringDate as te } from "../../../helpers/dateFormatting.js";
|
|
25
|
-
import { normalizeEin as
|
|
26
|
-
const
|
|
24
|
+
import { normalizeEin as ne } from "../../../helpers/federalEin.js";
|
|
25
|
+
const i = L, a = J, ie = s.object({
|
|
27
26
|
// Self-onboarding toggle
|
|
28
27
|
selfOnboarding: s.boolean(),
|
|
29
28
|
email: s.string().email().optional(),
|
|
30
29
|
// Required contractor fields
|
|
31
30
|
contractorType: s.enum([a.Individual, a.Business]),
|
|
32
|
-
wageType: s.enum([
|
|
31
|
+
wageType: s.enum([i.Hourly, i.Fixed]),
|
|
33
32
|
startDate: s.date(),
|
|
34
33
|
// Individual contractor fields
|
|
35
34
|
firstName: s.string().min(1).regex(T).optional(),
|
|
@@ -41,77 +40,77 @@ const n = L, a = J, ne = s.object({
|
|
|
41
40
|
ein: s.string().optional(),
|
|
42
41
|
// Wage fields
|
|
43
42
|
hourlyRate: s.number().min(0).optional()
|
|
44
|
-
}), re = (t, f, m) =>
|
|
45
|
-
(e,
|
|
46
|
-
if (e.selfOnboarding && !e.email &&
|
|
43
|
+
}), re = (t, f, m) => ie.superRefine(
|
|
44
|
+
(e, n) => {
|
|
45
|
+
if (e.selfOnboarding && !e.email && n.addIssue({
|
|
47
46
|
code: s.ZodIssueCode.custom,
|
|
48
47
|
path: ["email"],
|
|
49
48
|
message: t("validations.email")
|
|
50
49
|
}), e.contractorType === a.Individual)
|
|
51
|
-
if (e.firstName ||
|
|
50
|
+
if (e.firstName || n.addIssue({
|
|
52
51
|
code: s.ZodIssueCode.custom,
|
|
53
52
|
path: ["firstName"],
|
|
54
53
|
message: t("validations.firstName")
|
|
55
|
-
}), e.lastName ||
|
|
54
|
+
}), e.lastName || n.addIssue({
|
|
56
55
|
code: s.ZodIssueCode.custom,
|
|
57
56
|
path: ["lastName"],
|
|
58
57
|
message: t("validations.lastName")
|
|
59
58
|
}), !e.ssn)
|
|
60
|
-
!f && !e.selfOnboarding &&
|
|
59
|
+
!f && !e.selfOnboarding && n.addIssue({
|
|
61
60
|
code: s.ZodIssueCode.custom,
|
|
62
61
|
path: ["ssn"],
|
|
63
62
|
message: t("validations.ssn")
|
|
64
63
|
});
|
|
65
64
|
else {
|
|
66
65
|
const l = ae(e.ssn);
|
|
67
|
-
se.test(l) ||
|
|
66
|
+
se.test(l) || n.addIssue({
|
|
68
67
|
code: s.ZodIssueCode.custom,
|
|
69
68
|
path: ["ssn"],
|
|
70
69
|
message: t("validations.ssnFormat")
|
|
71
70
|
});
|
|
72
71
|
}
|
|
73
72
|
if (e.contractorType === a.Business)
|
|
74
|
-
if (e.businessName ||
|
|
73
|
+
if (e.businessName || n.addIssue({
|
|
75
74
|
code: s.ZodIssueCode.custom,
|
|
76
75
|
path: ["businessName"],
|
|
77
76
|
message: t("validations.businessName")
|
|
78
77
|
}), !e.ein)
|
|
79
|
-
!m && !e.selfOnboarding &&
|
|
78
|
+
!m && !e.selfOnboarding && n.addIssue({
|
|
80
79
|
code: s.ZodIssueCode.custom,
|
|
81
80
|
path: ["ein"],
|
|
82
81
|
message: t("validations.ein")
|
|
83
82
|
});
|
|
84
83
|
else {
|
|
85
|
-
const l =
|
|
86
|
-
/^\d{2}-\d{7}$/.test(l) ||
|
|
84
|
+
const l = ne(e.ein);
|
|
85
|
+
/^\d{2}-\d{7}$/.test(l) || n.addIssue({
|
|
87
86
|
code: s.ZodIssueCode.custom,
|
|
88
87
|
path: ["ein"],
|
|
89
88
|
message: t("validations.einFormat")
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
|
-
e.wageType ===
|
|
91
|
+
e.wageType === i.Hourly && (e.hourlyRate === void 0 || e.hourlyRate < 0) && n.addIssue({
|
|
93
92
|
code: s.ZodIssueCode.custom,
|
|
94
93
|
path: ["hourlyRate"],
|
|
95
94
|
message: t("validations.hourlyRate")
|
|
96
95
|
});
|
|
97
96
|
}
|
|
98
97
|
);
|
|
99
|
-
function
|
|
98
|
+
function Ce({
|
|
100
99
|
companyId: t,
|
|
101
100
|
contractorId: f,
|
|
102
101
|
defaultValues: m,
|
|
103
102
|
existingContractor: e
|
|
104
103
|
}) {
|
|
105
104
|
oe("Contractor.Profile");
|
|
106
|
-
const { t:
|
|
107
|
-
|
|
105
|
+
const { t: n } = $("Contractor.Profile"), { onEvent: l, baseSubmitHandler: g } = Q(), S = re(
|
|
106
|
+
n,
|
|
108
107
|
e?.hasSsn ?? !1,
|
|
109
108
|
e?.hasEin ?? !1
|
|
110
109
|
), { mutateAsync: R, isPending: w } = k(), { mutateAsync: O, isPending: D } = K(), I = G(
|
|
111
110
|
() => ({
|
|
112
111
|
selfOnboarding: !1,
|
|
113
112
|
contractorType: a.Business,
|
|
114
|
-
wageType:
|
|
113
|
+
wageType: i.Fixed,
|
|
115
114
|
startDate: /* @__PURE__ */ new Date(),
|
|
116
115
|
...m,
|
|
117
116
|
// Override with existing contractor data if available
|
|
@@ -121,7 +120,7 @@ function Ae({
|
|
|
121
120
|
x.has(e.onboardingStatus)
|
|
122
121
|
) : !1,
|
|
123
122
|
contractorType: e.type || a.Business,
|
|
124
|
-
wageType: e.wageType ||
|
|
123
|
+
wageType: e.wageType || i.Fixed,
|
|
125
124
|
startDate: e.startDate ? new Date(e.startDate) : /* @__PURE__ */ new Date(),
|
|
126
125
|
firstName: e.firstName || void 0,
|
|
127
126
|
middleInitial: e.middleInitial || void 0,
|
|
@@ -150,7 +149,7 @@ function Ae({
|
|
|
150
149
|
startDate: te(o.startDate) || "",
|
|
151
150
|
selfOnboarding: o.selfOnboarding,
|
|
152
151
|
email: o.selfOnboarding ? o.email : void 0,
|
|
153
|
-
hourlyRate: o.wageType ===
|
|
152
|
+
hourlyRate: o.wageType === i.Hourly ? String(o.hourlyRate) : void 0,
|
|
154
153
|
isActive: !0
|
|
155
154
|
};
|
|
156
155
|
return o.contractorType === a.Individual ? {
|
|
@@ -198,12 +197,12 @@ function Ae({
|
|
|
198
197
|
contractorId: c
|
|
199
198
|
});
|
|
200
199
|
});
|
|
201
|
-
}, A = !!y, H = u === a.Business, Z = u === a.Individual, _ = P ===
|
|
200
|
+
}, A = !!y, H = u === a.Business, Z = u === a.Individual, _ = P === i.Hourly, U = u === a.Individual && !y, M = u === a.Business && !y, W = [
|
|
202
201
|
{ label: "Individual", value: a.Individual },
|
|
203
202
|
{ label: "Business", value: a.Business }
|
|
204
203
|
], q = [
|
|
205
|
-
{ label: "Hourly", value:
|
|
206
|
-
{ label: "Fixed", value:
|
|
204
|
+
{ label: "Hourly", value: i.Hourly },
|
|
205
|
+
{ label: "Fixed", value: i.Fixed }
|
|
207
206
|
], z = w || D;
|
|
208
207
|
return {
|
|
209
208
|
// Form methods and submission
|
|
@@ -229,8 +228,8 @@ function Ae({
|
|
|
229
228
|
}
|
|
230
229
|
export {
|
|
231
230
|
a as ContractorType,
|
|
232
|
-
|
|
231
|
+
i as WageType,
|
|
233
232
|
re as createContractorProfileValidationSchema,
|
|
234
|
-
|
|
233
|
+
Ce as useContractorProfile
|
|
235
234
|
};
|
|
236
235
|
//# sourceMappingURL=useContractorProfile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContractorProfile.js","sources":["../../../../src/components/Contractor/Profile/useContractorProfile.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { useForm, useWatch } from 'react-hook-form'\nimport { z } from 'zod'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsUpdate'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorupdaterequestbody'\nimport {\n WageType as ApiWageType,\n ContractorType as ApiContractorType,\n type Contractor,\n} from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { useBase } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n ContractorOnboardingStatus,\n ContractorSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport { SSN_REGEX, NAME_REGEX } from '@/helpers/validations'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { normalizeEin } from '@/helpers/federalEin'\nimport { SDKInternalError } from '@/types/sdkError'\n\n// Re-export the API types for convenience\nexport const WageType = ApiWageType\nexport const ContractorType = ApiContractorType\n\n// Form schema definition - exported for use in stories and tests\nconst ContractorProfileSchema = z.object({\n // Self-onboarding toggle\n selfOnboarding: z.boolean(),\n email: z.string().email().optional(),\n\n // Required contractor fields\n contractorType: z.enum([ContractorType.Individual, ContractorType.Business]),\n wageType: z.enum([WageType.Hourly, WageType.Fixed]),\n startDate: z.date(),\n\n // Individual contractor fields\n firstName: z.string().min(1).regex(NAME_REGEX).optional(),\n middleInitial: z.string().optional(),\n lastName: z.string().min(1).regex(NAME_REGEX).optional(),\n ssn: z.string().optional(),\n\n // Business contractor fields\n businessName: z.string().optional(),\n ein: z.string().optional(),\n\n // Wage fields\n hourlyRate: z.number().min(0).optional(),\n})\n\nexport type ContractorProfileFormData = z.infer<typeof ContractorProfileSchema>\n\n// Create validation schema - exported for stories\nexport const createContractorProfileValidationSchema = (\n t: (key: string) => string,\n hasSsn: boolean,\n hasEin: boolean,\n) => {\n return ContractorProfileSchema.superRefine(\n (data: ContractorProfileFormData, ctx: z.RefinementCtx) => {\n // Email validation for contractor invitation\n if (data.selfOnboarding && !data.email) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['email'],\n message: t('validations.email'),\n })\n }\n\n // Individual contractor validations\n if (data.contractorType === ContractorType.Individual) {\n if (!data.firstName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['firstName'],\n message: t('validations.firstName'),\n })\n }\n\n if (!data.lastName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['lastName'],\n message: t('validations.lastName'),\n })\n }\n\n if (!data.ssn) {\n if (!hasSsn && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssn'),\n })\n }\n } else {\n // Validate SSN format\n const cleanSSN = removeNonDigits(data.ssn)\n if (!SSN_REGEX.test(cleanSSN)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssnFormat'),\n })\n }\n }\n }\n\n // Business contractor validations\n if (data.contractorType === ContractorType.Business) {\n if (!data.businessName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['businessName'],\n message: t('validations.businessName'),\n })\n }\n\n if (!data.ein) {\n if (!hasEin && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.ein'),\n })\n }\n } else {\n // Validate EIN format after normalization (XX-XXXXXXX)\n const normalizedEin = normalizeEin(data.ein)\n if (!/^\\d{2}-\\d{7}$/.test(normalizedEin)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.einFormat'),\n })\n }\n }\n }\n\n // Hourly rate validation for hourly contractors\n if (data.wageType === WageType.Hourly) {\n if (data.hourlyRate === undefined || data.hourlyRate < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['hourlyRate'],\n message: t('validations.hourlyRate'),\n })\n }\n }\n },\n )\n}\n\nexport interface UseContractorProfileProps {\n companyId: string\n contractorId?: string\n defaultValues?: Partial<ContractorProfileFormData>\n existingContractor?: Contractor\n}\n\nexport function useContractorProfile({\n companyId,\n contractorId,\n defaultValues,\n existingContractor,\n}: UseContractorProfileProps) {\n useI18n('Contractor.Profile')\n const { t } = useTranslation('Contractor.Profile')\n const { onEvent, baseSubmitHandler } = useBase()\n\n // Create validation schema with translations\n const validationSchema = createContractorProfileValidationSchema(\n t as (key: string) => string,\n existingContractor?.hasSsn ?? false,\n existingContractor?.hasEin ?? false,\n )\n\n // API mutations\n const { mutateAsync: createContractor, isPending: isCreating } = useContractorsCreateMutation()\n const { mutateAsync: updateContractor, isPending: isUpdating } = useContractorsUpdateMutation()\n\n // Prepare default values from existing contractor or provided defaults\n const formDefaultValues = useMemo(\n () => ({\n selfOnboarding: false,\n contractorType: ContractorType.Business,\n wageType: WageType.Fixed,\n startDate: new Date(),\n ...defaultValues,\n // Override with existing contractor data if available\n ...(existingContractor && {\n selfOnboarding: existingContractor.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n ContractorSelfOnboardingStatuses.has(existingContractor.onboardingStatus)\n : false,\n contractorType: existingContractor.type || ContractorType.Business,\n wageType: existingContractor.wageType || WageType.Fixed,\n startDate: existingContractor.startDate\n ? new Date(existingContractor.startDate)\n : new Date(),\n firstName: existingContractor.firstName || undefined,\n middleInitial: existingContractor.middleInitial || undefined,\n lastName: existingContractor.lastName || undefined,\n businessName: existingContractor.businessName || undefined,\n email: existingContractor.email || undefined,\n hourlyRate: existingContractor.hourlyRate\n ? (() => {\n const parsed = parseFloat(existingContractor.hourlyRate)\n return isNaN(parsed) ? undefined : parsed\n })()\n : undefined,\n }),\n }),\n [existingContractor, defaultValues],\n )\n\n // Form setup\n const formMethods = useForm<ContractorProfileFormData, unknown, ContractorProfileFormData>({\n resolver: zodResolver(validationSchema),\n defaultValues: formDefaultValues,\n ...(existingContractor && { values: formDefaultValues }),\n resetOptions: { keepDirtyValues: true },\n })\n\n const { handleSubmit, formState } = formMethods\n\n // Watch form values for conditional rendering\n const watchedType = useWatch({ control: formMethods.control, name: 'contractorType' })\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const watchedSelfOnboarding = useWatch({\n control: formMethods.control,\n name: 'selfOnboarding',\n })\n\n // Helper function to transform form data to API payload\n const transformFormDataToCreatePayload = (\n data: ContractorProfileFormData,\n ): ContractorCreateRequestBody => {\n const basePayload = {\n type: data.contractorType,\n wageType: data.wageType,\n startDate: formatDateToStringDate(data.startDate) || '',\n selfOnboarding: data.selfOnboarding,\n email: data.selfOnboarding ? data.email : undefined,\n hourlyRate: data.wageType === WageType.Hourly ? String(data.hourlyRate) : undefined,\n isActive: true,\n }\n\n if (data.contractorType === ContractorType.Individual) {\n return {\n ...basePayload,\n firstName: data.firstName,\n middleInitial: data.middleInitial || undefined,\n lastName: data.lastName,\n ssn: data.ssn,\n fileNewHireReport: false, // Default value\n }\n } else {\n return {\n ...basePayload,\n fileNewHireReport: false, // Default value\n businessName: data.businessName,\n ein: data.ein?.replace(/-/g, ''),\n }\n }\n }\n\n const transformFormDataToUpdatePayload = (\n data: ContractorProfileFormData,\n version: string,\n ): ContractorUpdateRequestBody => {\n const createPayload = transformFormDataToCreatePayload(data)\n return {\n ...createPayload,\n version,\n }\n }\n\n // Event handlers\n const onSubmit: SubmitHandler<ContractorProfileFormData> = async data => {\n await baseSubmitHandler(data, async payload => {\n let contractorId = existingContractor?.uuid\n if (existingContractor) {\n // Update existing contractor\n if (!existingContractor.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n const version = existingContractor.version\n const apiPayload = transformFormDataToUpdatePayload(payload, version)\n\n const updateResponse = await updateContractor({\n request: {\n contractorUuid: contractorId!,\n contractorUpdateRequestBody: apiPayload,\n },\n })\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, updateResponse.contractor)\n } else {\n // Create new contractor\n const apiPayload = transformFormDataToCreatePayload(payload)\n\n const createResponse = await createContractor({\n request: {\n companyUuid: companyId,\n contractorCreateRequestBody: apiPayload,\n },\n })\n\n contractorId = createResponse.contractor?.uuid\n onEvent(componentEvents.CONTRACTOR_CREATED, createResponse.contractor)\n }\n\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n selfOnboarding:\n payload.selfOnboarding &&\n existingContractor?.onboardingStatus !==\n ContractorOnboardingStatus.ADMIN_ONBOARDING_REVIEW,\n contractorId,\n })\n })\n }\n\n // Conditional rendering helpers\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n const shouldShowEmailField = !!watchedSelfOnboarding\n const shouldShowBusinessFields = watchedType === ContractorType.Business\n const shouldShowIndividualFields = watchedType === ContractorType.Individual\n const shouldShowHourlyRate = watchedWageType === WageType.Hourly\n const shouldShowSsnField = watchedType === ContractorType.Individual && !watchedSelfOnboarding\n const shouldShowEinField = watchedType === ContractorType.Business && !watchedSelfOnboarding\n\n // Form field options\n const contractorTypeOptions = [\n { label: 'Individual', value: ContractorType.Individual },\n { label: 'Business', value: ContractorType.Business },\n ]\n\n const wageTypeOptions = [\n { label: 'Hourly', value: WageType.Hourly },\n { label: 'Fixed', value: WageType.Fixed },\n ]\n\n // Determine if we're currently submitting (creating or updating)\n const isSubmitting = isCreating || isUpdating\n // Return only what the component actually needs\n return {\n // Form methods and submission\n formMethods,\n handleSubmit: handleSubmit(onSubmit),\n formState: {\n ...formState,\n isSubmitting,\n },\n\n // Conditional rendering flags\n shouldShowEmailField,\n shouldShowBusinessFields,\n shouldShowIndividualFields,\n shouldShowHourlyRate,\n shouldShowSsnField,\n shouldShowEinField,\n\n // Form options\n contractorTypeOptions,\n wageTypeOptions,\n\n // Component state\n isEditing: !!contractorId,\n }\n}\n"],"names":["WageType","ApiWageType","ContractorType","ApiContractorType","ContractorProfileSchema","z","NAME_REGEX","createContractorProfileValidationSchema","hasSsn","hasEin","data","ctx","cleanSSN","removeNonDigits","SSN_REGEX","normalizedEin","normalizeEin","useContractorProfile","companyId","contractorId","defaultValues","existingContractor","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","validationSchema","createContractor","isCreating","useContractorsCreateMutation","updateContractor","isUpdating","useContractorsUpdateMutation","formDefaultValues","useMemo","ContractorSelfOnboardingStatuses","parsed","formMethods","useForm","zodResolver","handleSubmit","formState","watchedType","useWatch","watchedWageType","watchedSelfOnboarding","transformFormDataToCreatePayload","basePayload","formatDateToStringDate","transformFormDataToUpdatePayload","version","onSubmit","payload","SDKInternalError","apiPayload","updateResponse","componentEvents","createResponse","ContractorOnboardingStatus","shouldShowEmailField","shouldShowBusinessFields","shouldShowIndividualFields","shouldShowHourlyRate","shouldShowSsnField","shouldShowEinField","contractorTypeOptions","wageTypeOptions","isSubmitting"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useContractorProfile.js","sources":["../../../../src/components/Contractor/Profile/useContractorProfile.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { useForm, useWatch } from 'react-hook-form'\nimport { z } from 'zod'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsUpdate'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorupdaterequestbody'\nimport {\n WageType as ApiWageType,\n ContractorType as ApiContractorType,\n type Contractor,\n} from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { useBase } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n ContractorOnboardingStatus,\n ContractorSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport { SSN_REGEX, NAME_REGEX } from '@/helpers/validations'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { normalizeEin } from '@/helpers/federalEin'\nimport { SDKInternalError } from '@/types/sdkError'\n\n// Re-export the API types for convenience\nexport const WageType = ApiWageType\nexport const ContractorType = ApiContractorType\n\n// Form schema definition - exported for use in stories and tests\nconst ContractorProfileSchema = z.object({\n // Self-onboarding toggle\n selfOnboarding: z.boolean(),\n email: z.string().email().optional(),\n\n // Required contractor fields\n contractorType: z.enum([ContractorType.Individual, ContractorType.Business]),\n wageType: z.enum([WageType.Hourly, WageType.Fixed]),\n startDate: z.date(),\n\n // Individual contractor fields\n firstName: z.string().min(1).regex(NAME_REGEX).optional(),\n middleInitial: z.string().optional(),\n lastName: z.string().min(1).regex(NAME_REGEX).optional(),\n ssn: z.string().optional(),\n\n // Business contractor fields\n businessName: z.string().optional(),\n ein: z.string().optional(),\n\n // Wage fields\n hourlyRate: z.number().min(0).optional(),\n})\n\nexport type ContractorProfileFormData = z.infer<typeof ContractorProfileSchema>\n\n// Create validation schema - exported for stories\nexport const createContractorProfileValidationSchema = (\n t: (key: string) => string,\n hasSsn: boolean,\n hasEin: boolean,\n) => {\n return ContractorProfileSchema.superRefine(\n (data: ContractorProfileFormData, ctx: z.RefinementCtx) => {\n // Email validation for contractor invitation\n if (data.selfOnboarding && !data.email) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['email'],\n message: t('validations.email'),\n })\n }\n\n // Individual contractor validations\n if (data.contractorType === ContractorType.Individual) {\n if (!data.firstName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['firstName'],\n message: t('validations.firstName'),\n })\n }\n\n if (!data.lastName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['lastName'],\n message: t('validations.lastName'),\n })\n }\n\n if (!data.ssn) {\n if (!hasSsn && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssn'),\n })\n }\n } else {\n // Validate SSN format\n const cleanSSN = removeNonDigits(data.ssn)\n if (!SSN_REGEX.test(cleanSSN)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssnFormat'),\n })\n }\n }\n }\n\n // Business contractor validations\n if (data.contractorType === ContractorType.Business) {\n if (!data.businessName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['businessName'],\n message: t('validations.businessName'),\n })\n }\n\n if (!data.ein) {\n if (!hasEin && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.ein'),\n })\n }\n } else {\n // Validate EIN format after normalization (XX-XXXXXXX)\n const normalizedEin = normalizeEin(data.ein)\n if (!/^\\d{2}-\\d{7}$/.test(normalizedEin)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.einFormat'),\n })\n }\n }\n }\n\n // Hourly rate validation for hourly contractors\n if (data.wageType === WageType.Hourly) {\n if (data.hourlyRate === undefined || data.hourlyRate < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['hourlyRate'],\n message: t('validations.hourlyRate'),\n })\n }\n }\n },\n )\n}\n\nexport interface UseContractorProfileProps {\n companyId: string\n contractorId?: string\n defaultValues?: Partial<ContractorProfileFormData>\n existingContractor?: Contractor\n}\n\nexport function useContractorProfile({\n companyId,\n contractorId,\n defaultValues,\n existingContractor,\n}: UseContractorProfileProps) {\n useI18n('Contractor.Profile')\n const { t } = useTranslation('Contractor.Profile')\n const { onEvent, baseSubmitHandler } = useBase()\n\n // Create validation schema with translations\n const validationSchema = createContractorProfileValidationSchema(\n t as (key: string) => string,\n existingContractor?.hasSsn ?? false,\n existingContractor?.hasEin ?? false,\n )\n\n // API mutations\n const { mutateAsync: createContractor, isPending: isCreating } = useContractorsCreateMutation()\n const { mutateAsync: updateContractor, isPending: isUpdating } = useContractorsUpdateMutation()\n\n // Prepare default values from existing contractor or provided defaults\n const formDefaultValues = useMemo(\n () => ({\n selfOnboarding: false,\n contractorType: ContractorType.Business,\n wageType: WageType.Fixed,\n startDate: new Date(),\n ...defaultValues,\n // Override with existing contractor data if available\n ...(existingContractor && {\n selfOnboarding: existingContractor.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n ContractorSelfOnboardingStatuses.has(existingContractor.onboardingStatus)\n : false,\n contractorType: existingContractor.type || ContractorType.Business,\n wageType: existingContractor.wageType || WageType.Fixed,\n startDate: existingContractor.startDate\n ? new Date(existingContractor.startDate)\n : new Date(),\n firstName: existingContractor.firstName || undefined,\n middleInitial: existingContractor.middleInitial || undefined,\n lastName: existingContractor.lastName || undefined,\n businessName: existingContractor.businessName || undefined,\n email: existingContractor.email || undefined,\n hourlyRate: existingContractor.hourlyRate\n ? (() => {\n const parsed = parseFloat(existingContractor.hourlyRate)\n return isNaN(parsed) ? undefined : parsed\n })()\n : undefined,\n }),\n }),\n [existingContractor, defaultValues],\n )\n\n // Form setup\n const formMethods = useForm<ContractorProfileFormData, unknown, ContractorProfileFormData>({\n resolver: zodResolver(validationSchema),\n defaultValues: formDefaultValues,\n ...(existingContractor && { values: formDefaultValues }),\n resetOptions: { keepDirtyValues: true },\n })\n\n const { handleSubmit, formState } = formMethods\n\n // Watch form values for conditional rendering\n const watchedType = useWatch({ control: formMethods.control, name: 'contractorType' })\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const watchedSelfOnboarding = useWatch({\n control: formMethods.control,\n name: 'selfOnboarding',\n })\n\n // Helper function to transform form data to API payload\n const transformFormDataToCreatePayload = (\n data: ContractorProfileFormData,\n ): ContractorCreateRequestBody => {\n const basePayload = {\n type: data.contractorType,\n wageType: data.wageType,\n startDate: formatDateToStringDate(data.startDate) || '',\n selfOnboarding: data.selfOnboarding,\n email: data.selfOnboarding ? data.email : undefined,\n hourlyRate: data.wageType === WageType.Hourly ? String(data.hourlyRate) : undefined,\n isActive: true,\n }\n\n if (data.contractorType === ContractorType.Individual) {\n return {\n ...basePayload,\n firstName: data.firstName,\n middleInitial: data.middleInitial || undefined,\n lastName: data.lastName,\n ssn: data.ssn,\n fileNewHireReport: false, // Default value\n }\n } else {\n return {\n ...basePayload,\n fileNewHireReport: false, // Default value\n businessName: data.businessName,\n ein: data.ein?.replace(/-/g, ''),\n }\n }\n }\n\n const transformFormDataToUpdatePayload = (\n data: ContractorProfileFormData,\n version: string,\n ): ContractorUpdateRequestBody => {\n const createPayload = transformFormDataToCreatePayload(data)\n return {\n ...createPayload,\n version,\n }\n }\n\n // Event handlers\n const onSubmit: SubmitHandler<ContractorProfileFormData> = async data => {\n await baseSubmitHandler(data, async payload => {\n let contractorId = existingContractor?.uuid\n if (existingContractor) {\n // Update existing contractor\n if (!existingContractor.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n const version = existingContractor.version\n const apiPayload = transformFormDataToUpdatePayload(payload, version)\n\n const updateResponse = await updateContractor({\n request: {\n contractorUuid: contractorId!,\n contractorUpdateRequestBody: apiPayload,\n },\n })\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, updateResponse.contractor)\n } else {\n // Create new contractor\n const apiPayload = transformFormDataToCreatePayload(payload)\n\n const createResponse = await createContractor({\n request: {\n companyUuid: companyId,\n contractorCreateRequestBody: apiPayload,\n },\n })\n\n contractorId = createResponse.contractor?.uuid\n onEvent(componentEvents.CONTRACTOR_CREATED, createResponse.contractor)\n }\n\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n selfOnboarding:\n payload.selfOnboarding &&\n existingContractor?.onboardingStatus !==\n ContractorOnboardingStatus.ADMIN_ONBOARDING_REVIEW,\n contractorId,\n })\n })\n }\n\n // Conditional rendering helpers\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n const shouldShowEmailField = !!watchedSelfOnboarding\n const shouldShowBusinessFields = watchedType === ContractorType.Business\n const shouldShowIndividualFields = watchedType === ContractorType.Individual\n const shouldShowHourlyRate = watchedWageType === WageType.Hourly\n const shouldShowSsnField = watchedType === ContractorType.Individual && !watchedSelfOnboarding\n const shouldShowEinField = watchedType === ContractorType.Business && !watchedSelfOnboarding\n\n // Form field options\n const contractorTypeOptions = [\n { label: 'Individual', value: ContractorType.Individual },\n { label: 'Business', value: ContractorType.Business },\n ]\n\n const wageTypeOptions = [\n { label: 'Hourly', value: WageType.Hourly },\n { label: 'Fixed', value: WageType.Fixed },\n ]\n\n // Determine if we're currently submitting (creating or updating)\n const isSubmitting = isCreating || isUpdating\n // Return only what the component actually needs\n return {\n // Form methods and submission\n formMethods,\n handleSubmit: handleSubmit(onSubmit),\n formState: {\n ...formState,\n isSubmitting,\n },\n\n // Conditional rendering flags\n shouldShowEmailField,\n shouldShowBusinessFields,\n shouldShowIndividualFields,\n shouldShowHourlyRate,\n shouldShowSsnField,\n shouldShowEinField,\n\n // Form options\n contractorTypeOptions,\n wageTypeOptions,\n\n // Component state\n isEditing: !!contractorId,\n }\n}\n"],"names":["WageType","ApiWageType","ContractorType","ApiContractorType","ContractorProfileSchema","z","NAME_REGEX","createContractorProfileValidationSchema","hasSsn","hasEin","data","ctx","cleanSSN","removeNonDigits","SSN_REGEX","normalizedEin","normalizeEin","useContractorProfile","companyId","contractorId","defaultValues","existingContractor","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","validationSchema","createContractor","isCreating","useContractorsCreateMutation","updateContractor","isUpdating","useContractorsUpdateMutation","formDefaultValues","useMemo","ContractorSelfOnboardingStatuses","parsed","formMethods","useForm","zodResolver","handleSubmit","formState","watchedType","useWatch","watchedWageType","watchedSelfOnboarding","transformFormDataToCreatePayload","basePayload","formatDateToStringDate","transformFormDataToUpdatePayload","version","onSubmit","payload","SDKInternalError","apiPayload","updateResponse","componentEvents","createResponse","ContractorOnboardingStatus","shouldShowEmailField","shouldShowBusinessFields","shouldShowIndividualFields","shouldShowHourlyRate","shouldShowSsnField","shouldShowEinField","contractorTypeOptions","wageTypeOptions","isSubmitting"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import { DatePickerHookField as r } from "../../../../../partner-hook-utils/form/fields/DatePickerHookField.js";
|
|
2
|
+
import { TextInputHookField as n } from "../../../../../partner-hook-utils/form/fields/TextInputHookField.js";
|
|
4
3
|
import { SelectHookField as i } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
4
|
+
import { CheckboxHookField as r } from "../../../../../partner-hook-utils/form/fields/CheckboxHookField.js";
|
|
5
5
|
import { NumberInputHookField as o } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
6
|
-
import {
|
|
6
|
+
import { DatePickerHookField as m } from "../../../../../partner-hook-utils/form/fields/DatePickerHookField.js";
|
|
7
7
|
function c(e) {
|
|
8
|
-
return /* @__PURE__ */ t(
|
|
8
|
+
return /* @__PURE__ */ t(n, { ...e, name: "title" });
|
|
9
9
|
}
|
|
10
10
|
function p(e) {
|
|
11
11
|
return /* @__PURE__ */ t(i, { ...e, name: "flsaStatus" });
|
|
@@ -17,13 +17,13 @@ function s(e) {
|
|
|
17
17
|
return /* @__PURE__ */ t(i, { ...e, name: "paymentUnit" });
|
|
18
18
|
}
|
|
19
19
|
function H(e) {
|
|
20
|
-
return /* @__PURE__ */ t(
|
|
20
|
+
return /* @__PURE__ */ t(r, { ...e, name: "adjustForMinimumWage" });
|
|
21
21
|
}
|
|
22
22
|
function g(e) {
|
|
23
23
|
return /* @__PURE__ */ t(i, { ...e, name: "minimumWageId" });
|
|
24
24
|
}
|
|
25
25
|
function x(e) {
|
|
26
|
-
return /* @__PURE__ */ t(
|
|
26
|
+
return /* @__PURE__ */ t(m, { ...e, name: "effectiveDate" });
|
|
27
27
|
}
|
|
28
28
|
export {
|
|
29
29
|
H as AdjustForMinimumWageField,
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
2
|
+
import { TextInputHookField as t } from "../../../../../partner-hook-utils/form/fields/TextInputHookField.js";
|
|
3
|
+
import { SelectHookField as r } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
4
|
+
import { CheckboxHookField as i } from "../../../../../partner-hook-utils/form/fields/CheckboxHookField.js";
|
|
5
|
+
import { DatePickerHookField as n } from "../../../../../partner-hook-utils/form/fields/DatePickerHookField.js";
|
|
6
|
+
import { RadioGroupHookField as a } from "../../../../../partner-hook-utils/form/fields/RadioGroupHookField.js";
|
|
7
7
|
function F(e) {
|
|
8
|
-
return /* @__PURE__ */ o(
|
|
8
|
+
return /* @__PURE__ */ o(t, { ...e, name: "title" });
|
|
9
9
|
}
|
|
10
10
|
function p(e) {
|
|
11
|
-
return /* @__PURE__ */ o(
|
|
11
|
+
return /* @__PURE__ */ o(n, { ...e, name: "hireDate" });
|
|
12
12
|
}
|
|
13
13
|
function k(e) {
|
|
14
|
-
return /* @__PURE__ */ o(
|
|
14
|
+
return /* @__PURE__ */ o(i, { ...e, name: "twoPercentShareholder" });
|
|
15
15
|
}
|
|
16
16
|
function s(e) {
|
|
17
|
-
return /* @__PURE__ */ o(
|
|
17
|
+
return /* @__PURE__ */ o(a, { ...e, name: "stateWcCovered" });
|
|
18
18
|
}
|
|
19
19
|
function C(e) {
|
|
20
|
-
return /* @__PURE__ */ o(
|
|
20
|
+
return /* @__PURE__ */ o(r, { ...e, name: "stateWcClassCode" });
|
|
21
21
|
}
|
|
22
22
|
export {
|
|
23
23
|
p as HireDateField,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
2
|
import { TextInputHookField as n } from "../../../../../partner-hook-utils/form/fields/TextInputHookField.js";
|
|
3
|
-
import { NumberInputHookField as i } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
4
3
|
import { SelectHookField as t } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
4
|
+
import { NumberInputHookField as i } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
5
5
|
function d(e) {
|
|
6
6
|
return /* @__PURE__ */ r(t, { ...e, name: "state" });
|
|
7
7
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { NumberInputHookField as t } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
3
|
-
import { RadioGroupHookField as r } from "../../../../../partner-hook-utils/form/fields/RadioGroupHookField.js";
|
|
4
2
|
import { TextInputHookField as o } from "../../../../../partner-hook-utils/form/fields/TextInputHookField.js";
|
|
5
3
|
import { SelectHookField as i } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
4
|
+
import { NumberInputHookField as t } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
5
|
+
import { RadioGroupHookField as r } from "../../../../../partner-hook-utils/form/fields/RadioGroupHookField.js";
|
|
6
6
|
function l(n) {
|
|
7
7
|
return /* @__PURE__ */ e(o, { ...n, name: "description" });
|
|
8
8
|
}
|
package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
|
-
import { BaseComponentInterface
|
|
2
|
-
|
|
1
|
+
import { BaseComponentInterface } from '../../../../../Base/Base';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link DocumentList}.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface DocumentListProps extends BaseComponentInterface {
|
|
8
|
+
/** The associated employee identifier. */
|
|
3
9
|
employeeId: string;
|
|
4
10
|
}
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Lists the employee's documents pending signature.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Fetches the employee's forms and renders the list of documents that still
|
|
16
|
+
* require signing along with a continue action once everything is signed.
|
|
17
|
+
*
|
|
18
|
+
* | Event | Description | Data |
|
|
19
|
+
* | ----- | ----------- | ---- |
|
|
20
|
+
* | `employee/forms/view` | Fired when a form's "Sign" action is selected | `{ uuid: string; name?: string }` |
|
|
21
|
+
* | `employee/forms/done` | Fired when all required forms have been signed and the parent flow can advance | — |
|
|
22
|
+
*
|
|
23
|
+
* @param props - See {@link DocumentListProps}.
|
|
24
|
+
* @returns The employee document list.
|
|
25
|
+
* @public
|
|
26
|
+
*/
|
|
27
|
+
export declare function DocumentList(props: DocumentListProps): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.tsx"],"sourcesContent":["import { useEmployeeFormsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeFormsList'\nimport { type Form } from '@gusto/embedded-api-v-2025-11-15/models/components/form'\nimport { Head } from './Head'\nimport { List } from './List'\nimport { Actions } from './Actions'\nimport { DocumentListProvider } from './useDocumentList'\nimport {
|
|
1
|
+
{"version":3,"file":"DocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.tsx"],"sourcesContent":["import { useEmployeeFormsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeeFormsList'\nimport { type Form } from '@gusto/embedded-api-v-2025-11-15/models/components/form'\nimport { Head } from './Head'\nimport { List } from './List'\nimport { Actions } from './Actions'\nimport { DocumentListProvider } from './useDocumentList'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { Flex } from '@/components/Common'\n\n/**\n * Props for {@link DocumentList}.\n *\n * @public\n */\nexport interface DocumentListProps extends BaseComponentInterface {\n /** The associated employee identifier. */\n employeeId: string\n}\n\n/**\n * Lists the employee's documents pending signature.\n *\n * @remarks\n * Fetches the employee's forms and renders the list of documents that still\n * require signing along with a continue action once everything is signed.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/forms/view` | Fired when a form's \"Sign\" action is selected | `{ uuid: string; name?: string }` |\n * | `employee/forms/done` | Fired when all required forms have been signed and the parent flow can advance | — |\n *\n * @param props - See {@link DocumentListProps}.\n * @returns The employee document list.\n * @public\n */\nexport function DocumentList(props: DocumentListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, className, children }: DocumentListProps) {\n useI18n('Employee.DocumentSigner')\n const { onEvent } = useBase()\n\n const { data, error: documentListError } = useEmployeeFormsListSuspense({ employeeId })\n const employeeForms = data.forms!\n\n const hasSignedAllForms = employeeForms.every(employeeForm => !employeeForm.requiresSigning)\n\n const handleRequestFormToSign = (data: Form) => {\n const fullForm = employeeForms.find(f => f.uuid === data.uuid)\n onEvent(componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN, { uuid: data.uuid, name: fullForm?.name })\n }\n\n const handleContinue = () => {\n onEvent(componentEvents.EMPLOYEE_FORMS_DONE)\n }\n\n return (\n <section className={className}>\n <DocumentListProvider\n value={{\n employeeForms,\n hasSignedAllForms,\n handleContinue,\n handleRequestFormToSign,\n documentListError,\n }}\n >\n {children ? (\n children\n ) : (\n <Flex flexDirection=\"column\">\n <Head />\n <List />\n <Actions />\n </Flex>\n )}\n </DocumentListProvider>\n </section>\n )\n}\n"],"names":["DocumentList","props","jsx","BaseComponent","Root","employeeId","className","children","useI18n","onEvent","useBase","data","documentListError","useEmployeeFormsListSuspense","employeeForms","hasSignedAllForms","employeeForm","DocumentListProvider","componentEvents","fullForm","jsxs","Flex","Head","List","Actions"],"mappings":";;;;;;;;;;;;;;AAsCO,SAASA,EAAaC,GAA0B;AACrD,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,WAAAC,GAAW,UAAAC,KAA+B;AACpE,EAAAC,EAAQ,yBAAyB;AACjC,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GAEd,EAAE,MAAAC,GAAM,OAAOC,EAAA,IAAsBC,EAA6B,EAAE,YAAAR,GAAY,GAChFS,IAAgBH,EAAK,OAErBI,IAAoBD,EAAc,MAAM,CAAAE,MAAgB,CAACA,EAAa,eAAe;AAW3F,SACE,gBAAAd,EAAC,aAAQ,WAAAI,GACP,UAAA,gBAAAJ;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,eAAAH;AAAA,QACA,mBAAAC;AAAA,QACA,gBAVe,MAAM;AAC3B,UAAAN,EAAQS,EAAgB,mBAAmB;AAAA,QAC7C;AAAA,QASQ,yBAhBwB,CAACP,MAAe;AAC9C,gBAAMQ,IAAWL,EAAc,KAAK,OAAK,EAAE,SAASH,EAAK,IAAI;AAC7D,UAAAF,EAAQS,EAAgB,4BAA4B,EAAE,MAAMP,EAAK,MAAM,MAAMQ,GAAU,MAAM;AAAA,QAC/F;AAAA,QAcQ,mBAAAP;AAAA,MAAA;AAAA,MAGD,UAAAL,KAGC,gBAAAa,EAACC,GAAA,EAAK,eAAc,UAClB,UAAA;AAAA,QAAA,gBAAAnB,EAACoB,GAAA,EAAK;AAAA,0BACLC,GAAA,EAAK;AAAA,0BACLC,GAAA,CAAA,CAAQ;AAAA,MAAA,EAAA,CACX;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ;"}
|
package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js
CHANGED
|
@@ -9,13 +9,14 @@ import "@gusto/embedded-api-v-2025-11-15/models/errors/gustoembeddederror";
|
|
|
9
9
|
import "@gusto/embedded-api-v-2025-11-15/models/errors/sdkvalidationerror";
|
|
10
10
|
import "@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror";
|
|
11
11
|
import "@gusto/embedded-api-v-2025-11-15/models/errors/httpclienterrors";
|
|
12
|
+
import "dompurify";
|
|
13
|
+
import "../../../../../../contexts/LocaleProvider/useLocale.js";
|
|
12
14
|
import "../../../../../../shared/constants.js";
|
|
13
15
|
import "../../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
14
|
-
import "../../../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
15
16
|
import { createCompoundContext as t } from "../../../../../Base/createCompoundContext.js";
|
|
16
|
-
const [
|
|
17
|
+
const [f, v] = t("DocumentListContext");
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
v as DocumentListProvider,
|
|
20
|
+
f as useDocumentList
|
|
20
21
|
};
|
|
21
22
|
//# sourceMappingURL=useDocumentList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api-v-2025-11-15/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useDocumentList.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api-v-2025-11-15/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
|
|
@@ -1,8 +1,31 @@
|
|
|
1
|
-
import { BaseComponentInterface
|
|
2
|
-
|
|
1
|
+
import { BaseComponentInterface } from '../../../../../Base/Base';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link I9SignatureForm}.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface I9SignatureFormProps extends BaseComponentInterface {
|
|
8
|
+
/** The associated employee identifier. */
|
|
3
9
|
employeeId: string;
|
|
10
|
+
/** The identifier of the I-9 form to sign. */
|
|
4
11
|
formId: string;
|
|
5
12
|
}
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Presents the employee's I-9 form for review and signature.
|
|
15
|
+
*
|
|
16
|
+
* @remarks
|
|
17
|
+
* Renders the I-9 PDF, surfaces the current employment-eligibility status, and
|
|
18
|
+
* collects the employee's signature along with any preparer or translator
|
|
19
|
+
* details. On successful submission the signed form is emitted.
|
|
20
|
+
*
|
|
21
|
+
* | Event | Description | Data |
|
|
22
|
+
* | ----- | ----------- | ---- |
|
|
23
|
+
* | `employee/forms/sign` | Fired after the I-9 is successfully signed | {@link Form} |
|
|
24
|
+
* | `employee/employmentEligibility/change` | Fired when the user requests to change their I-9 eligibility status | — |
|
|
25
|
+
* | `cancel` | Fired when the user cancels signing and returns to the document list | — |
|
|
26
|
+
*
|
|
27
|
+
* @param props - See {@link I9SignatureFormProps}.
|
|
28
|
+
* @returns The employee I-9 signature form.
|
|
29
|
+
* @public
|
|
30
|
+
*/
|
|
31
|
+
export declare function I9SignatureForm(props: I9SignatureFormProps): import("react").JSX.Element;
|
|
@@ -35,7 +35,9 @@ function P({ employeeId: i, formId: c, className: a }) {
|
|
|
35
35
|
l.Preparer3,
|
|
36
36
|
l.Preparer4
|
|
37
37
|
].filter((p) => p !== void 0);
|
|
38
|
-
return /* @__PURE__ */ e("section", { className: a, children: /* @__PURE__ */ e(C, { error: n.errorHandling.errors, children: /* @__PURE__ */ e(B, { formHookResult: n, children: /* @__PURE__ */ e(w, { onSubmit: () =>
|
|
38
|
+
return /* @__PURE__ */ e("section", { className: a, children: /* @__PURE__ */ e(C, { error: n.errorHandling.errors, children: /* @__PURE__ */ e(B, { formHookResult: n, children: /* @__PURE__ */ e(w, { onSubmit: () => {
|
|
39
|
+
_();
|
|
40
|
+
}, children: /* @__PURE__ */ o(m, { flexDirection: "column", gap: 20, children: [
|
|
39
41
|
/* @__PURE__ */ o("section", { children: [
|
|
40
42
|
/* @__PURE__ */ e(r.Heading, { as: "h2", children: t("title") }),
|
|
41
43
|
/* @__PURE__ */ e(r.Text, { children: /* @__PURE__ */ e(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"I9SignatureForm.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.tsx"],"sourcesContent":["import { useTranslation, Trans } from 'react-i18next'\nimport type { AuthorizationStatus } from '@gusto/embedded-api-v-2025-11-15/models/components/i9authorization'\nimport { useI9VerificationGetAuthorization } from '@gusto/embedded-api-v-2025-11-15/react-query/i9VerificationGetAuthorization'\nimport { useSignEmployeeForm, type PreparerFieldGroup } from '../../../shared/useSignEmployeeForm'\nimport styles from './I9SignatureForm.module.scss'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { BaseLayout } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { DocumentViewer } from '@/components/Common/DocumentViewer'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface I9SignatureFormProps extends CommonComponentInterface {\n employeeId: string\n formId: string\n}\n\n/** @internal */\nexport function I9SignatureForm(props: I9SignatureFormProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, formId, className }: I9SignatureFormProps) {\n useI18n('Employee.I9SignatureForm')\n const { t } = useTranslation('Employee.I9SignatureForm')\n const { onEvent } = useBase()\n const Components = useComponentContext()\n\n const hookResult = useSignEmployeeForm({ employeeId, formId })\n\n const { data: i9AuthData } = useI9VerificationGetAuthorization({ employeeId })\n const authorizationStatus = i9AuthData?.i9Authorization?.authorizationStatus\n\n if (hookResult.isLoading) {\n return <BaseLayout isLoading error={hookResult.errorHandling.errors} />\n }\n\n const { form, pdfUrl } = hookResult.data\n const { isPending } = hookResult.status\n const { Fields, preparers } = hookResult.form\n\n const handleBack = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const handleChangeEligibility = () => {\n onEvent(componentEvents.EMPLOYEE_CHANGE_ELIGIBILITY_STATUS)\n }\n\n const handleSubmit = async () => {\n const result = await hookResult.actions.onSubmit()\n if (result) {\n onEvent(componentEvents.EMPLOYEE_SIGN_FORM, result.data)\n }\n }\n\n const preparerFieldGroups = [\n Fields.Preparer1,\n Fields.Preparer2,\n Fields.Preparer3,\n Fields.Preparer4,\n ].filter(Group => Group !== undefined)\n\n return (\n <section className={className}>\n <BaseLayout error={hookResult.errorHandling.errors}>\n <SDKFormProvider formHookResult={hookResult}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={20}>\n <section>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>\n <Trans\n i18nKey=\"description\"\n t={t}\n components={{\n viewFormLink: pdfUrl ? (\n <Components.Link\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n download={`${form.title || 'form'}.pdf`}\n />\n ) : (\n <span />\n ),\n }}\n />\n </Components.Text>\n </section>\n\n {authorizationStatus && (\n <EligibilityStatusAlert\n authorizationStatus={authorizationStatus}\n onChangeStatus={handleChangeEligibility}\n />\n )}\n\n <DocumentViewer\n url={pdfUrl}\n title={form.title}\n downloadInstructions={t('downloadInstructions')}\n viewDocumentLabel={t('viewDocumentCta')}\n />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Fields.Signature\n label={t('signatureLabel')}\n description={t('signatureDescription')}\n validationMessages={{ REQUIRED: t('signatureError') }}\n />\n <Fields.ConfirmSignature\n label={t('confirmationLabel')}\n validationMessages={{ REQUIRED: t('confirmationError') }}\n />\n </Flex>\n\n {Fields.UsedPreparer && (\n <Flex flexDirection=\"column\" gap={20}>\n <Fields.UsedPreparer\n label={t('preparerQuestion')}\n validationMessages={{ REQUIRED: t('preparerQuestionError') }}\n />\n\n {preparerFieldGroups.map((PreparerFields, index) => {\n const isLast = index === preparerFieldGroups.length - 1\n return (\n <Flex flexDirection=\"column\" gap={0} key={index}>\n <div className={styles.preparerAlert}>\n <Components.Alert\n label={t('preparerNote')}\n status=\"info\"\n disableScrollIntoView\n />\n </div>\n <PreparerSection\n PreparerFields={PreparerFields}\n showAddButton={isLast && (preparers?.canAdd ?? false)}\n showRemoveButton={\n isLast &&\n (preparers?.canRemove ?? false) &&\n preparerFieldGroups.length > 1\n }\n onAdd={() => hookResult.actions.addPreparer?.()}\n onRemove={() => hookResult.actions.removePreparer?.()}\n />\n </Flex>\n )\n })}\n </Flex>\n )}\n\n <ActionsLayout>\n <Components.Button variant=\"secondary\" type=\"button\" onClick={handleBack}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('signCta')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n\ninterface EligibilityStatusAlertProps {\n authorizationStatus: AuthorizationStatus\n onChangeStatus: () => void\n}\n\nfunction EligibilityStatusAlert({\n authorizationStatus,\n onChangeStatus,\n}: EligibilityStatusAlertProps) {\n const { t } = useTranslation('Employee.I9SignatureForm')\n const Components = useComponentContext()\n\n const alertLabelKeys = {\n citizen: 'eligibilityAlertLabel_citizen',\n permanent_resident: 'eligibilityAlertLabel_permanent_resident',\n noncitizen: 'eligibilityAlertLabel_noncitizen',\n alien: 'eligibilityAlertLabel_alien',\n } as const satisfies Record<AuthorizationStatus, string>\n\n const alertDescriptionKeys = {\n citizen: 'eligibilityAlertDescription_citizen',\n permanent_resident: 'eligibilityAlertDescription_permanent_resident',\n noncitizen: 'eligibilityAlertDescription_noncitizen',\n alien: 'eligibilityAlertDescription_alien',\n } as const satisfies Record<AuthorizationStatus, string>\n\n return (\n <Components.Alert\n status=\"info\"\n label={t(alertLabelKeys[authorizationStatus])}\n disableScrollIntoView\n >\n <Flex flexDirection=\"column\" gap={8}>\n <Components.Text>{t(alertDescriptionKeys[authorizationStatus])}</Components.Text>\n <div>\n <Components.Button variant=\"secondary\" type=\"button\" onClick={onChangeStatus}>\n {t('eligibilityAlertChangeStatusCta')}\n </Components.Button>\n </div>\n </Flex>\n </Components.Alert>\n )\n}\n\ninterface PreparerSectionProps {\n PreparerFields: PreparerFieldGroup\n showRemoveButton: boolean\n showAddButton: boolean\n onAdd: () => void\n onRemove: () => void\n}\n\nfunction PreparerSection({\n PreparerFields,\n showRemoveButton,\n showAddButton,\n onAdd,\n onRemove,\n}: PreparerSectionProps) {\n const { t } = useTranslation('Employee.I9SignatureForm')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={12}>\n <Components.Heading as=\"h3\">{t('preparerSectionTitle')}</Components.Heading>\n\n <PreparerFields.FirstName\n label={t('preparerFirstNameLabel')}\n validationMessages={{ REQUIRED: t('preparerFirstNameError') }}\n />\n <PreparerFields.LastName\n label={t('preparerLastNameLabel')}\n validationMessages={{ REQUIRED: t('preparerLastNameError') }}\n />\n <PreparerFields.Street1\n label={t('preparerStreet1Label')}\n validationMessages={{ REQUIRED: t('preparerStreet1Error') }}\n />\n <PreparerFields.Street2 label={t('preparerStreet2Label')} />\n <PreparerFields.City\n label={t('preparerCityLabel')}\n validationMessages={{ REQUIRED: t('preparerCityError') }}\n />\n <PreparerFields.State\n label={t('preparerStateLabel')}\n placeholder={t('preparerStatePlaceholder')}\n validationMessages={{ REQUIRED: t('preparerStateError') }}\n getOptionLabel={(abbr: string) => tCommon(`statesHash.${abbr}`, { defaultValue: abbr })}\n />\n <PreparerFields.Zip\n label={t('preparerZipLabel')}\n validationMessages={{ REQUIRED: t('preparerZipError') }}\n />\n <PreparerFields.Signature\n label={t('preparerSignatureLabel')}\n description={t('preparerSignatureDescription')}\n validationMessages={{ REQUIRED: t('preparerSignatureError') }}\n />\n <PreparerFields.ConfirmSignature\n label={t('preparerConfirmationLabel')}\n validationMessages={{ REQUIRED: t('preparerConfirmationError') }}\n />\n\n {(showAddButton || showRemoveButton) && (\n <div className={styles.preparerActions}>\n {showAddButton && (\n <Components.Button type=\"button\" variant=\"secondary\" onClick={onAdd}>\n {t('addPreparerCta')}\n </Components.Button>\n )}\n {showRemoveButton && (\n <Components.Button type=\"button\" variant=\"error\" onClick={onRemove}>\n {t('removePreparerCta')}\n </Components.Button>\n )}\n </div>\n )}\n </Flex>\n )\n}\n"],"names":["I9SignatureForm","props","jsx","BaseComponent","Root","employeeId","formId","className","useI18n","useTranslation","onEvent","useBase","Components","useComponentContext","hookResult","useSignEmployeeForm","i9AuthData","useI9VerificationGetAuthorization","authorizationStatus","BaseLayout","form","pdfUrl","isPending","Fields","preparers","handleBack","componentEvents","handleChangeEligibility","handleSubmit","result","preparerFieldGroups","Group","SDKFormProvider","Form","jsxs","Flex","Trans","EligibilityStatusAlert","DocumentViewer","PreparerFields","index","isLast","styles","PreparerSection","ActionsLayout","onChangeStatus","t","alertLabelKeys","alertDescriptionKeys","showRemoveButton","showAddButton","onAdd","onRemove","tCommon","abbr"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"I9SignatureForm.js","sources":["../../../../../../../src/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.tsx"],"sourcesContent":["import { useTranslation, Trans } from 'react-i18next'\nimport type { AuthorizationStatus } from '@gusto/embedded-api-v-2025-11-15/models/components/i9authorization'\nimport { useI9VerificationGetAuthorization } from '@gusto/embedded-api-v-2025-11-15/react-query/i9VerificationGetAuthorization'\nimport { useSignEmployeeForm, type PreparerFieldGroup } from '../../../shared/useSignEmployeeForm'\nimport styles from './I9SignatureForm.module.scss'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseLayout } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { DocumentViewer } from '@/components/Common/DocumentViewer'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link I9SignatureForm}.\n *\n * @public\n */\nexport interface I9SignatureFormProps extends BaseComponentInterface {\n /** The associated employee identifier. */\n employeeId: string\n /** The identifier of the I-9 form to sign. */\n formId: string\n}\n\n/**\n * Presents the employee's I-9 form for review and signature.\n *\n * @remarks\n * Renders the I-9 PDF, surfaces the current employment-eligibility status, and\n * collects the employee's signature along with any preparer or translator\n * details. On successful submission the signed form is emitted.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/forms/sign` | Fired after the I-9 is successfully signed | {@link Form} |\n * | `employee/employmentEligibility/change` | Fired when the user requests to change their I-9 eligibility status | — |\n * | `cancel` | Fired when the user cancels signing and returns to the document list | — |\n *\n * @param props - See {@link I9SignatureFormProps}.\n * @returns The employee I-9 signature form.\n * @public\n */\nexport function I9SignatureForm(props: I9SignatureFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, formId, className }: I9SignatureFormProps) {\n useI18n('Employee.I9SignatureForm')\n const { t } = useTranslation('Employee.I9SignatureForm')\n const { onEvent } = useBase()\n const Components = useComponentContext()\n\n const hookResult = useSignEmployeeForm({ employeeId, formId })\n\n const { data: i9AuthData } = useI9VerificationGetAuthorization({ employeeId })\n const authorizationStatus = i9AuthData?.i9Authorization?.authorizationStatus\n\n if (hookResult.isLoading) {\n return <BaseLayout isLoading error={hookResult.errorHandling.errors} />\n }\n\n const { form, pdfUrl } = hookResult.data\n const { isPending } = hookResult.status\n const { Fields, preparers } = hookResult.form\n\n const handleBack = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const handleChangeEligibility = () => {\n onEvent(componentEvents.EMPLOYEE_CHANGE_ELIGIBILITY_STATUS)\n }\n\n const handleSubmit = async () => {\n const result = await hookResult.actions.onSubmit()\n if (result) {\n onEvent(componentEvents.EMPLOYEE_SIGN_FORM, result.data)\n }\n }\n\n const preparerFieldGroups = [\n Fields.Preparer1,\n Fields.Preparer2,\n Fields.Preparer3,\n Fields.Preparer4,\n ].filter(Group => Group !== undefined)\n\n return (\n <section className={className}>\n <BaseLayout error={hookResult.errorHandling.errors}>\n <SDKFormProvider formHookResult={hookResult}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\" gap={20}>\n <section>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>\n <Trans\n i18nKey=\"description\"\n t={t}\n components={{\n viewFormLink: pdfUrl ? (\n <Components.Link\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n download={`${form.title || 'form'}.pdf`}\n />\n ) : (\n <span />\n ),\n }}\n />\n </Components.Text>\n </section>\n\n {authorizationStatus && (\n <EligibilityStatusAlert\n authorizationStatus={authorizationStatus}\n onChangeStatus={handleChangeEligibility}\n />\n )}\n\n <DocumentViewer\n url={pdfUrl}\n title={form.title}\n downloadInstructions={t('downloadInstructions')}\n viewDocumentLabel={t('viewDocumentCta')}\n />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Fields.Signature\n label={t('signatureLabel')}\n description={t('signatureDescription')}\n validationMessages={{ REQUIRED: t('signatureError') }}\n />\n <Fields.ConfirmSignature\n label={t('confirmationLabel')}\n validationMessages={{ REQUIRED: t('confirmationError') }}\n />\n </Flex>\n\n {Fields.UsedPreparer && (\n <Flex flexDirection=\"column\" gap={20}>\n <Fields.UsedPreparer\n label={t('preparerQuestion')}\n validationMessages={{ REQUIRED: t('preparerQuestionError') }}\n />\n\n {preparerFieldGroups.map((PreparerFields, index) => {\n const isLast = index === preparerFieldGroups.length - 1\n return (\n <Flex flexDirection=\"column\" gap={0} key={index}>\n <div className={styles.preparerAlert}>\n <Components.Alert\n label={t('preparerNote')}\n status=\"info\"\n disableScrollIntoView\n />\n </div>\n <PreparerSection\n PreparerFields={PreparerFields}\n showAddButton={isLast && (preparers?.canAdd ?? false)}\n showRemoveButton={\n isLast &&\n (preparers?.canRemove ?? false) &&\n preparerFieldGroups.length > 1\n }\n onAdd={() => hookResult.actions.addPreparer?.()}\n onRemove={() => hookResult.actions.removePreparer?.()}\n />\n </Flex>\n )\n })}\n </Flex>\n )}\n\n <ActionsLayout>\n <Components.Button variant=\"secondary\" type=\"button\" onClick={handleBack}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('signCta')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n\ninterface EligibilityStatusAlertProps {\n authorizationStatus: AuthorizationStatus\n onChangeStatus: () => void\n}\n\nfunction EligibilityStatusAlert({\n authorizationStatus,\n onChangeStatus,\n}: EligibilityStatusAlertProps) {\n const { t } = useTranslation('Employee.I9SignatureForm')\n const Components = useComponentContext()\n\n const alertLabelKeys = {\n citizen: 'eligibilityAlertLabel_citizen',\n permanent_resident: 'eligibilityAlertLabel_permanent_resident',\n noncitizen: 'eligibilityAlertLabel_noncitizen',\n alien: 'eligibilityAlertLabel_alien',\n } as const satisfies Record<AuthorizationStatus, string>\n\n const alertDescriptionKeys = {\n citizen: 'eligibilityAlertDescription_citizen',\n permanent_resident: 'eligibilityAlertDescription_permanent_resident',\n noncitizen: 'eligibilityAlertDescription_noncitizen',\n alien: 'eligibilityAlertDescription_alien',\n } as const satisfies Record<AuthorizationStatus, string>\n\n return (\n <Components.Alert\n status=\"info\"\n label={t(alertLabelKeys[authorizationStatus])}\n disableScrollIntoView\n >\n <Flex flexDirection=\"column\" gap={8}>\n <Components.Text>{t(alertDescriptionKeys[authorizationStatus])}</Components.Text>\n <div>\n <Components.Button variant=\"secondary\" type=\"button\" onClick={onChangeStatus}>\n {t('eligibilityAlertChangeStatusCta')}\n </Components.Button>\n </div>\n </Flex>\n </Components.Alert>\n )\n}\n\ninterface PreparerSectionProps {\n PreparerFields: PreparerFieldGroup\n showRemoveButton: boolean\n showAddButton: boolean\n onAdd: () => void\n onRemove: () => void\n}\n\nfunction PreparerSection({\n PreparerFields,\n showRemoveButton,\n showAddButton,\n onAdd,\n onRemove,\n}: PreparerSectionProps) {\n const { t } = useTranslation('Employee.I9SignatureForm')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={12}>\n <Components.Heading as=\"h3\">{t('preparerSectionTitle')}</Components.Heading>\n\n <PreparerFields.FirstName\n label={t('preparerFirstNameLabel')}\n validationMessages={{ REQUIRED: t('preparerFirstNameError') }}\n />\n <PreparerFields.LastName\n label={t('preparerLastNameLabel')}\n validationMessages={{ REQUIRED: t('preparerLastNameError') }}\n />\n <PreparerFields.Street1\n label={t('preparerStreet1Label')}\n validationMessages={{ REQUIRED: t('preparerStreet1Error') }}\n />\n <PreparerFields.Street2 label={t('preparerStreet2Label')} />\n <PreparerFields.City\n label={t('preparerCityLabel')}\n validationMessages={{ REQUIRED: t('preparerCityError') }}\n />\n <PreparerFields.State\n label={t('preparerStateLabel')}\n placeholder={t('preparerStatePlaceholder')}\n validationMessages={{ REQUIRED: t('preparerStateError') }}\n getOptionLabel={(abbr: string) => tCommon(`statesHash.${abbr}`, { defaultValue: abbr })}\n />\n <PreparerFields.Zip\n label={t('preparerZipLabel')}\n validationMessages={{ REQUIRED: t('preparerZipError') }}\n />\n <PreparerFields.Signature\n label={t('preparerSignatureLabel')}\n description={t('preparerSignatureDescription')}\n validationMessages={{ REQUIRED: t('preparerSignatureError') }}\n />\n <PreparerFields.ConfirmSignature\n label={t('preparerConfirmationLabel')}\n validationMessages={{ REQUIRED: t('preparerConfirmationError') }}\n />\n\n {(showAddButton || showRemoveButton) && (\n <div className={styles.preparerActions}>\n {showAddButton && (\n <Components.Button type=\"button\" variant=\"secondary\" onClick={onAdd}>\n {t('addPreparerCta')}\n </Components.Button>\n )}\n {showRemoveButton && (\n <Components.Button type=\"button\" variant=\"error\" onClick={onRemove}>\n {t('removePreparerCta')}\n </Components.Button>\n )}\n </div>\n )}\n </Flex>\n )\n}\n"],"names":["I9SignatureForm","props","jsx","BaseComponent","Root","employeeId","formId","className","useI18n","useTranslation","onEvent","useBase","Components","useComponentContext","hookResult","useSignEmployeeForm","i9AuthData","useI9VerificationGetAuthorization","authorizationStatus","BaseLayout","form","pdfUrl","isPending","Fields","preparers","handleBack","componentEvents","handleChangeEligibility","handleSubmit","result","preparerFieldGroups","Group","SDKFormProvider","Form","jsxs","Flex","Trans","EligibilityStatusAlert","DocumentViewer","PreparerFields","index","isLast","styles","PreparerSection","ActionsLayout","onChangeStatus","t","alertLabelKeys","alertDescriptionKeys","showRemoveButton","showAddButton","onAdd","onRemove","tCommon","abbr"],"mappings":"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"}
|