@gusto/embedded-react-sdk 0.52.2 → 0.54.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/DISCLAIMER.md +13 -0
- package/LICENSE +198 -4
- package/README.md +6 -0
- package/dist/components/Base/Base.d.ts +26 -5
- package/dist/components/Base/Base.js +89 -78
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Base/index.d.ts +1 -1
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
- package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.js +6 -6
- package/dist/components/Common/UI/Box/Box.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
- package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
- package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
- package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
- package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.js +8 -9
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -7
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +20 -21
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -3
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -12
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -3
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +6 -7
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/stateMachine.d.ts +0 -1
- package/dist/components/Company/BankAccount/stateMachine.js +33 -35
- package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -6
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -14
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -3
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -8
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +6 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +4 -4
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -8
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -6
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +8 -6
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.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/Actions.js +6 -7
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +4 -6
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -3
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -12
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -3
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +5 -6
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -10
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -5
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +5 -3
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.d.ts +4 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -63
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +0 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +26 -28
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -7
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +62 -47
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -23
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -3
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +12 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js +36 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +10 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js +110 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +18 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +55 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +47 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js +108 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.d.ts +25 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +23 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/index.d.ts +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.d.ts +29 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js +34 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.d.ts +17 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js +24 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js.map +1 -0
- package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.d.ts +1 -1
- package/dist/components/Company/StateTaxes/shared/applicableIf.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.d.ts +19 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js +38 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.d.ts +2 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js +7 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.d.ts +23 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js +13 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js.map +1 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +33 -11
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
- package/dist/components/Company/exports/companyOnboarding.js +12 -10
- package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
- package/dist/components/Contractor/Address/management/Address.d.ts +30 -0
- package/dist/components/Contractor/Address/management/Address.js +43 -0
- package/dist/components/Contractor/Address/management/Address.js.map +1 -0
- package/dist/components/Contractor/Address/management/AddressCard/AddressCard.d.ts +35 -0
- package/dist/components/Contractor/Address/management/AddressCard/AddressCard.js +45 -0
- package/dist/components/Contractor/Address/management/AddressCard/AddressCard.js.map +1 -0
- package/dist/components/Contractor/Address/management/AddressCard/index.d.ts +1 -0
- package/dist/components/Contractor/Address/management/AddressComponents.d.ts +12 -0
- package/dist/components/Contractor/Address/management/AddressComponents.js +48 -0
- package/dist/components/Contractor/Address/management/AddressComponents.js.map +1 -0
- package/dist/components/Contractor/Address/management/AddressEditForm.d.ts +29 -0
- package/dist/components/Contractor/Address/management/AddressEditForm.js +126 -0
- package/dist/components/Contractor/Address/management/AddressEditForm.js.map +1 -0
- package/dist/components/Contractor/Address/management/AddressEditForm.module.scss.js +8 -0
- package/dist/components/Contractor/Address/management/AddressEditForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/Address/management/addressStateMachine.d.ts +5 -0
- package/dist/components/Contractor/Address/management/addressStateMachine.js +37 -0
- package/dist/components/Contractor/Address/management/addressStateMachine.js.map +1 -0
- package/dist/components/Contractor/Address/management/index.d.ts +3 -0
- package/dist/components/Contractor/Address/{Address.d.ts → onboarding/Address.d.ts} +7 -4
- package/dist/components/Contractor/Address/onboarding/Address.js +119 -0
- package/dist/components/Contractor/Address/onboarding/Address.js.map +1 -0
- package/dist/components/Contractor/Address/{types.d.ts → onboarding/types.d.ts} +2 -2
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/index.d.ts +1 -0
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.d.ts +19 -0
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +27 -0
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/Compensation.d.ts +30 -0
- package/dist/components/Contractor/Compensation/management/Compensation.js +43 -0
- package/dist/components/Contractor/Compensation/management/Compensation.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.d.ts +35 -0
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +57 -0
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/CompensationCard/index.d.ts +1 -0
- package/dist/components/Contractor/Compensation/management/CompensationComponents.d.ts +12 -0
- package/dist/components/Contractor/Compensation/management/CompensationComponents.js +48 -0
- package/dist/components/Contractor/Compensation/management/CompensationComponents.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.d.ts +29 -0
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +94 -0
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.module.scss.js +8 -0
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/compensationStateMachine.d.ts +5 -0
- package/dist/components/Contractor/Compensation/management/compensationStateMachine.js +45 -0
- package/dist/components/Contractor/Compensation/management/compensationStateMachine.js.map +1 -0
- package/dist/components/Contractor/Compensation/management/index.d.ts +3 -0
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/index.d.ts +1 -0
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.d.ts +17 -0
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +23 -0
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.d.ts +50 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +32 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.d.ts +26 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js +14 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js.map +1 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/index.d.ts +4 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.d.ts +111 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +95 -0
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +39 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +100 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +22 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +247 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/{index.d.ts → onboarding/ContractorList.d.ts} +3 -3
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +71 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +16 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +113 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/shared/index.d.ts +1 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.d.ts +87 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +110 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -0
- package/dist/components/Contractor/Dashboard/Dashboard.d.ts +30 -0
- package/dist/components/Contractor/Dashboard/Dashboard.js +80 -0
- package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -0
- package/dist/components/Contractor/Dashboard/DashboardComponents.d.ts +25 -0
- package/dist/components/Contractor/Dashboard/DashboardComponents.js +67 -0
- package/dist/components/Contractor/Dashboard/DashboardComponents.js.map +1 -0
- package/dist/components/Contractor/Dashboard/DashboardFlow.d.ts +88 -0
- package/dist/components/Contractor/Dashboard/DashboardFlow.js +25 -0
- package/dist/components/Contractor/Dashboard/DashboardFlow.js.map +1 -0
- package/dist/components/Contractor/Dashboard/DetailsView.d.ts +26 -0
- package/dist/components/Contractor/Dashboard/DetailsView.js +14 -0
- package/dist/components/Contractor/Dashboard/DetailsView.js.map +1 -0
- package/dist/components/Contractor/Dashboard/PayView.d.ts +26 -0
- package/dist/components/Contractor/Dashboard/PayView.js +14 -0
- package/dist/components/Contractor/Dashboard/PayView.js.map +1 -0
- package/dist/components/Contractor/Dashboard/dashboardStateMachine.d.ts +8 -0
- package/dist/components/Contractor/Dashboard/dashboardStateMachine.js +138 -0
- package/dist/components/Contractor/Dashboard/dashboardStateMachine.js.map +1 -0
- package/dist/components/Contractor/Dashboard/index.d.ts +4 -0
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.d.ts +36 -0
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +93 -0
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -0
- package/dist/components/Contractor/Documents/management/DocumentsCard/index.d.ts +1 -0
- package/dist/components/Contractor/Documents/management/index.d.ts +2 -0
- package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/DocumentSigner.d.ts +1 -1
- package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/DocumentSigner.js +4 -4
- package/dist/components/Contractor/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -0
- package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/documentSignerStateMachine.d.ts +2 -2
- package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/documentSignerStateMachine.js +3 -3
- package/dist/components/Contractor/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -0
- package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/stateMachine.d.ts +0 -1
- package/dist/components/Contractor/Documents/onboarding/DocumentSigner/stateMachine.js +42 -0
- package/dist/components/Contractor/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -0
- package/dist/components/Contractor/Documents/{DocumentsList → onboarding/DocumentsList}/DocumentsList.d.ts +1 -1
- package/dist/components/Contractor/Documents/onboarding/DocumentsList/DocumentsList.js +81 -0
- package/dist/components/Contractor/Documents/onboarding/DocumentsList/DocumentsList.js.map +1 -0
- package/dist/components/Contractor/Documents/onboarding/DocumentsList/index.d.ts +1 -0
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.d.ts +1 -1
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.js +112 -116
- package/dist/components/Contractor/Documents/shared/SignatureForm/SignatureForm.js.map +1 -0
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +2 -2
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/contractorSignatureFormSchema.js +3 -3
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.js.map +1 -0
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.test.d.ts +1 -0
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/fields.d.ts +5 -5
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/fields.js +6 -6
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/fields.js.map +1 -0
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/useContractorSignatureForm.d.ts +2 -2
- package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/useContractorSignatureForm.js +8 -8
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -0
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -0
- package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/w9Fields.test.d.ts +1 -0
- package/dist/components/Contractor/Documents/shared/documentSigningStatus.d.ts +15 -0
- package/dist/components/Contractor/Documents/shared/documentSigningStatus.js +7 -0
- package/dist/components/Contractor/Documents/shared/documentSigningStatus.js.map +1 -0
- package/dist/components/Contractor/Documents/shared/documentSigningStatus.test.d.ts +1 -0
- package/dist/components/Contractor/Documents/shared/useContractorDocumentsList/useContractorDocumentsList.js.map +1 -0
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +17 -17
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +9 -10
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.d.ts +32 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.js +43 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.d.ts +37 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.js +133 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/index.d.ts +1 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.d.ts +12 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.js +48 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.d.ts +30 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.js +57 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.module.scss.js +8 -0
- package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/index.d.ts +3 -0
- package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.d.ts +5 -0
- package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.js +61 -0
- package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.d.ts +11 -0
- package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.js +33 -0
- package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/{PaymentMethod.d.ts → onboarding/PaymentMethod.d.ts} +1 -1
- package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js +87 -0
- package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/{types.d.ts → onboarding/types.d.ts} +1 -1
- package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.d.ts +12 -0
- package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.js +31 -0
- package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.d.ts +29 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.js +55 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/index.d.ts +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.d.ts +30 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +46 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/index.d.ts +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.d.ts +12 -3
- package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js +71 -69
- package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/index.d.ts +1 -0
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.d.ts +24 -0
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.js +43 -0
- package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.js.map +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +129 -225
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +7 -3
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +58 -137
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.d.ts +9 -0
- package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.js +53 -0
- package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.js.map +1 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.d.ts +63 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js +46 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js.map +1 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.d.ts +22 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.js +26 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.js.map +1 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.d.ts +8 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.js +63 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.js.map +1 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.test.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePaymentFlow/index.d.ts +2 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.d.ts +33 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js +62 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js.map +1 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/index.d.ts +1 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.d.ts +9 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.js +53 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.js.map +1 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.d.ts +27 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js +56 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js.map +1 -0
- package/dist/components/Contractor/Payments/HistoricalPaymentContractors/index.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +2 -10
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +35 -44
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +22 -4
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +58 -152
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.test.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -3
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.d.ts +63 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js +46 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js.map +1 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.d.ts +20 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.js +25 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.js.map +1 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/index.d.ts +2 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.d.ts +8 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.js +51 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.js.map +1 -0
- package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.test.d.ts +1 -0
- package/dist/components/Contractor/Payments/{CreatePayment → shared/SetPaymentAmounts}/EditContractorPaymentFormSchema.d.ts +2 -1
- package/dist/components/Contractor/Payments/{CreatePayment → shared/SetPaymentAmounts}/EditContractorPaymentFormSchema.js +2 -2
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentFormSchema.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.d.ts +44 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.js +128 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.d.ts +52 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.js +131 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/index.d.ts +1 -0
- package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.d.ts +19 -0
- package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.js +13 -0
- package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.test.d.ts +1 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +32 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +116 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.test.d.ts +1 -0
- package/dist/components/Contractor/Profile/management/Profile.d.ts +30 -0
- package/dist/components/Contractor/Profile/management/Profile.js +43 -0
- package/dist/components/Contractor/Profile/management/Profile.js.map +1 -0
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.d.ts +35 -0
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +55 -0
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -0
- package/dist/components/Contractor/Profile/management/ProfileCard/index.d.ts +1 -0
- package/dist/components/Contractor/Profile/management/ProfileComponents.d.ts +12 -0
- package/dist/components/Contractor/Profile/management/ProfileComponents.js +48 -0
- package/dist/components/Contractor/Profile/management/ProfileComponents.js.map +1 -0
- package/dist/components/Contractor/Profile/management/ProfileEditForm.d.ts +32 -0
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js +235 -0
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js.map +1 -0
- package/dist/components/Contractor/Profile/management/ProfileEditForm.module.scss.js +16 -0
- package/dist/components/Contractor/Profile/management/ProfileEditForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/Profile/management/index.d.ts +3 -0
- package/dist/components/Contractor/Profile/management/profileStateMachine.d.ts +5 -0
- package/dist/components/Contractor/Profile/management/profileStateMachine.js +37 -0
- package/dist/components/Contractor/Profile/management/profileStateMachine.js.map +1 -0
- package/dist/components/Contractor/Profile/{BusinessSelfOnboardingProfile.d.ts → onboarding/BusinessSelfOnboardingProfile.d.ts} +1 -1
- package/dist/components/Contractor/Profile/{BusinessSelfOnboardingProfile.js → onboarding/BusinessSelfOnboardingProfile.js} +30 -23
- package/dist/components/Contractor/Profile/onboarding/BusinessSelfOnboardingProfile.js.map +1 -0
- package/dist/components/Contractor/Profile/{ContractorProfile.d.ts → onboarding/ContractorProfile.d.ts} +2 -2
- package/dist/components/Contractor/Profile/{ContractorProfile.js → onboarding/ContractorProfile.js} +82 -63
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -0
- package/dist/components/Contractor/Profile/{IndividualSelfOnboardingProfile.d.ts → onboarding/IndividualSelfOnboardingProfile.d.ts} +1 -1
- package/dist/components/Contractor/Profile/{IndividualSelfOnboardingProfile.js → onboarding/IndividualSelfOnboardingProfile.js} +32 -25
- package/dist/components/Contractor/Profile/onboarding/IndividualSelfOnboardingProfile.js.map +1 -0
- package/dist/components/Contractor/Profile/{SelfOnboardingContractorProfile.d.ts → onboarding/SelfOnboardingContractorProfile.d.ts} +6 -3
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +43 -0
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -0
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +13 -3
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +93 -92
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/index.d.ts +1 -0
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.d.ts +17 -0
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +23 -0
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -0
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +12 -12
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +3 -4
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/exports/contractorManagement.d.ts +16 -0
- package/dist/components/Contractor/exports/contractorManagement.js +51 -11
- package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
- package/dist/components/Contractor/exports/contractorOnboarding.d.ts +9 -9
- package/dist/components/Contractor/exports/contractorOnboarding.js +14 -14
- package/dist/components/Contractor/shared/SelectContractors/SelectContractors.d.ts +19 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js +39 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js.map +1 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.d.ts +3 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.js +78 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.js.map +1 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.module.scss.js +10 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.module.scss.js.map +1 -0
- package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentationTypes.d.ts +18 -0
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.d.ts +58 -0
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +82 -0
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -0
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.test.d.ts +1 -0
- package/dist/components/Contractor/{Payments/CreatePayment → shared}/helpers.js +1 -1
- package/dist/components/Contractor/shared/helpers.js.map +1 -0
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js +1 -1
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js.map +1 -1
- package/dist/components/Employee/Compensation/management/Compensation.d.ts +1 -1
- package/dist/components/Employee/Compensation/management/Compensation.js +30 -23
- package/dist/components/Employee/Compensation/management/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.d.ts +4 -2
- package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js +55 -46
- package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.d.ts +4 -2
- package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js +37 -21
- package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.d.ts +4 -1
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +122 -102
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationComponents.js +44 -22
- package/dist/components/Employee/Compensation/management/CompensationComponents.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +4 -2
- package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +29 -26
- package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.d.ts +4 -2
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +74 -46
- package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.d.ts +4 -2
- package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js +62 -53
- package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js.map +1 -1
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +32 -33
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +4 -2
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +46 -45
- package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.d.ts +12 -2
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js +32 -35
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.test.d.ts +1 -0
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +2 -3
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +20 -20
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.d.ts +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.js +50 -34
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Deductions/management/Deductions.d.ts +1 -1
- package/dist/components/Employee/Deductions/management/Deductions.js +30 -23
- package/dist/components/Employee/Deductions/management/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.d.ts +4 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +61 -54
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsComponents.js +27 -19
- package/dist/components/Employee/Deductions/management/DeductionsComponents.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.d.ts +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js +40 -33
- package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/Deductions.d.ts +1 -1
- package/dist/components/Employee/Deductions/onboarding/Deductions.js +28 -19
- package/dist/components/Employee/Deductions/onboarding/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js +39 -38
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/stateMachine.d.ts +12 -2
- package/dist/components/Employee/Deductions/onboarding/stateMachine.js +18 -20
- package/dist/components/Employee/Deductions/onboarding/stateMachine.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/stateMachine.test.d.ts +1 -0
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +3 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +17 -17
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +4 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js +48 -44
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +3 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +34 -32
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentManager.js +6 -7
- package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
- package/dist/components/Employee/Documents/management/Documents.d.ts +1 -1
- package/dist/components/Employee/Documents/management/Documents.js +25 -18
- package/dist/components/Employee/Documents/management/Documents.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.d.ts +3 -0
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +24 -18
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsComponents.js +22 -14
- package/dist/components/Employee/Documents/management/DocumentsComponents.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +4 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +10 -13
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +5 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js +8 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js.map +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -3
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +22 -21
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +5 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.d.ts +12 -2
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js +35 -37
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.test.d.ts +1 -0
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +6 -7
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -12
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.d.ts +3 -2
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +53 -43
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +1 -1
- package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.d.ts +1 -1
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js +56 -40
- package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxes.d.ts +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js +28 -21
- package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.d.ts +3 -0
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +31 -25
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.js +27 -13
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.d.ts +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +53 -40
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.d.ts +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +46 -30
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.d.ts +3 -1
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +15 -14
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddress.d.ts +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddress.js +27 -20
- package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.d.ts +3 -0
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +28 -22
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.js +26 -12
- package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.d.ts +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js +39 -22
- package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +4 -4
- package/dist/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js +37 -29
- package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +29 -23
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.d.ts +4 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js +81 -68
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js +28 -21
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +26 -20
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.d.ts +3 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +134 -98
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js +8 -0
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js.map +1 -0
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js +54 -27
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js +17 -9
- package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +4 -2
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +28 -21
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +3 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +105 -82
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.d.ts +4 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +68 -65
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/Profile.d.ts +1 -1
- package/dist/components/Employee/Profile/management/Profile.js +31 -24
- package/dist/components/Employee/Profile/management/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.d.ts +4 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +25 -26
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileComponents.js +27 -13
- package/dist/components/Employee/Profile/management/ProfileComponents.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.d.ts +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +62 -44
- package/dist/components/Employee/Profile/management/ProfileEditForm.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/AdminProfile.d.ts +1 -1
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js +104 -101
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.d.ts +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +45 -44
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
- package/dist/components/Employee/Profile/onboarding/Profile.d.ts +1 -1
- package/dist/components/Employee/Profile/onboarding/Profile.js +37 -15
- package/dist/components/Employee/Profile/onboarding/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +18 -15
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxes.d.ts +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxes.js +29 -22
- package/dist/components/Employee/StateTaxes/management/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.d.ts +4 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +33 -27
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.js +33 -19
- package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.d.ts +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +46 -33
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.d.ts +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +47 -31
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.d.ts +3 -1
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +19 -18
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +44 -45
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +23 -22
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +27 -27
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +9 -10
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +2 -3
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddress.d.ts +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddress.js +27 -20
- package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.d.ts +3 -0
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +30 -24
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.js +26 -12
- package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.d.ts +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js +40 -23
- package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
- package/dist/components/Flow/Flow.js +1 -1
- package/dist/components/Flow/FlowHeader.js +3 -4
- package/dist/components/Flow/FlowHeader.js.map +1 -1
- package/dist/components/Flow/useFlow.d.ts +7 -1
- package/dist/components/Flow/useFlow.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +125 -102
- 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.js +7 -8
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequests.d.ts +1 -1
- package/dist/components/InformationRequests/InformationRequests.js +52 -50
- package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +3 -0
- package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -10
- package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +37 -37
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +8 -9
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +5 -5
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +10 -12
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +0 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +7 -8
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +94 -92
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +3 -3
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +54 -50
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +80 -69
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +15 -15
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +20 -18
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +138 -136
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -12
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +103 -97
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +1 -1
- package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +1 -9
- package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -3
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +1 -2
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +10 -8
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -3
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +1 -1
- package/dist/components/TimeOff/PolicyList/PolicyList.js +71 -70
- package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +34 -36
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +24 -25
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +29 -28
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/LocaleProvider/useLocale.d.ts +1 -9
- package/dist/contexts/LocaleProvider/useLocale.js +5 -15
- package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
- package/dist/contexts/NonceProvider/index.d.ts +1 -0
- package/dist/contexts/NonceProvider/useNonce.d.ts +37 -0
- package/dist/contexts/NonceProvider/useNonce.js +7 -0
- package/dist/contexts/NonceProvider/useNonce.js.map +1 -0
- package/dist/contexts/ThemeProvider/ThemeProvider.js +25 -24
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/contexts/index.d.ts +1 -0
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.d.ts +12 -7
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js +25 -21
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js.map +1 -1
- package/dist/i18n/I18n.js +16 -5
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.StateTaxes.json.js +6 -4
- package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
- package/dist/i18n/en/Contractor.BankAccountFields.json.js +26 -0
- package/dist/i18n/en/Contractor.BankAccountFields.json.js.map +1 -0
- package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Dashboard.json.js +14 -0
- package/dist/i18n/en/Contractor.Dashboard.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Management.Address.json.js +16 -0
- package/dist/i18n/en/Contractor.Management.Address.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Management.Compensation.json.js +26 -0
- package/dist/i18n/en/Contractor.Management.Compensation.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Management.Documents.json.js +24 -0
- package/dist/i18n/en/Contractor.Management.Documents.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Management.PaymentMethod.json.js +34 -0
- package/dist/i18n/en/Contractor.Management.PaymentMethod.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Management.Profile.json.js +26 -0
- package/dist/i18n/en/Contractor.Management.Profile.json.js.map +1 -0
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js +60 -0
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js +36 -0
- package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js +18 -0
- package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js.map +1 -0
- package/dist/i18n/en/Contractor.SelectContractors.json.js +20 -0
- package/dist/i18n/en/Contractor.SelectContractors.json.js.map +1 -0
- package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js +18 -16
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js.map +1 -1
- package/dist/i18n/en/Employee.Management.PaymentMethodSplitForm.json.js +2 -2
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +18 -20
- package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
- package/dist/i18n/en/Employee.PaymentMethod.json.js +74 -72
- package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/Employee.SplitPaymentsFormBody.json.js +2 -2
- package/dist/i18n/en/Payroll.Common.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
- package/dist/i18n/en/Payroll.PayrollList.json.js +23 -23
- package/dist/i18n/types.d.ts +669 -21
- package/dist/index.d.ts +7 -5
- package/dist/index.js +95 -88
- package/dist/index.js.map +1 -1
- package/dist/models/external.d.ts +4 -0
- package/dist/partner-hook-utils/form/SDKFormProvider.js +39 -24
- package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +16 -19
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -16
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +18 -21
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +9 -12
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.d.ts +2 -2
- package/dist/partner-hook-utils/form/preprocessors.js +8 -7
- package/dist/partner-hook-utils/form/preprocessors.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.test.d.ts +1 -0
- package/dist/shared/constants.d.ts +72 -0
- package/dist/shared/constants.js +106 -73
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +237 -4
- package/package.json +35 -31
- package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +0 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +0 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js +0 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +0 -1
- package/dist/components/Contractor/Address/Address.js +0 -99
- package/dist/components/Contractor/Address/Address.js.map +0 -1
- package/dist/components/Contractor/Address/index.d.ts +0 -2
- package/dist/components/Contractor/ContractorList/index.js +0 -141
- package/dist/components/Contractor/ContractorList/index.js.map +0 -1
- package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
- package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
- package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
- package/dist/components/Contractor/Documents/DocumentSigner/DocumentSigner.js.map +0 -1
- package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.js.map +0 -1
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js +0 -44
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +0 -1
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +0 -84
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +0 -1
- package/dist/components/Contractor/Documents/DocumentsList/index.d.ts +0 -2
- package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js.map +0 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +0 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.js.map +0 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js.map +0 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +0 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +0 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +0 -115
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +0 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +0 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.d.ts +0 -12
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +0 -123
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +0 -1
- package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +0 -1
- package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +0 -1
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +0 -1
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +0 -1
- package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js +0 -40
- package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js.map +0 -1
- package/dist/components/Contractor/Profile/index.d.ts +0 -1
- /package/dist/components/Company/StateTaxes/{StateTaxesForm/applicableIf.test.d.ts → TaxRateManagement/toHistoryRows.test.d.ts} +0 -0
- /package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.js +0 -0
- /package/dist/components/{Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.test.d.ts → Company/StateTaxes/shared/applicableIf.test.d.ts} +0 -0
- /package/dist/components/{Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.test.d.ts → Company/StateTaxes/shared/rhfKey.test.d.ts} +0 -0
- /package/dist/components/Contractor/Address/{Address.module.scss.js → onboarding/Address.module.scss.js} +0 -0
- /package/dist/components/Contractor/Address/{Address.module.scss.js.map → onboarding/Address.module.scss.js.map} +0 -0
- /package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/index.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.module.scss.js +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.module.scss.js.map +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/index.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/index.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/w9Fields.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/w9Fields.js +0 -0
- /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/index.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/useContractorDocumentsList.d.ts +0 -0
- /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/useContractorDocumentsList.js +0 -0
- /package/dist/components/Contractor/PaymentMethod/{PaymentMethod.module.scss.js → onboarding/PaymentMethod.module.scss.js} +0 -0
- /package/dist/components/Contractor/PaymentMethod/{PaymentMethod.module.scss.js.map → onboarding/PaymentMethod.module.scss.js.map} +0 -0
- /package/dist/components/Contractor/Profile/{ContractorProfile.module.scss.js → onboarding/ContractorProfile.module.scss.js} +0 -0
- /package/dist/components/Contractor/Profile/{ContractorProfile.module.scss.js.map → onboarding/ContractorProfile.module.scss.js.map} +0 -0
- /package/dist/components/Contractor/{Payments/CreatePayment → shared}/helpers.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollOverview.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverview.tsx"],"sourcesContent":["import { usePayrollsSubmitMutation } from '@gusto/embedded-api/react-query/payrollsSubmit'\nimport { usePayrollsCancelMutation } from '@gusto/embedded-api/react-query/payrollsCancel'\nimport { usePayrollsGet } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport { useWireInRequestsGet } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport { useEffect, useState } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type {\n PayrollCreditBlockerType,\n PayrollCreditBlockerTypeUnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport {\n ConfirmWireDetails,\n type ConfirmWireDetailsComponentType,\n} from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { canCancelPayroll } from '../helpers'\nimport { PayrollOverviewPresentation } from './PayrollOverviewPresentation'\nimport { PayrollOverviewStatus } from './PayrollOverviewTypes'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport {\n componentEvents,\n payrollWireEvents,\n PAYROLL_PROCESSING_STATUS,\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES,\n type EventType,\n} from '@/shared/constants'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\nimport { Flex, PayrollLoading } from '@/components/Common'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PayrollOverview}.\n *\n * @public\n */\nexport interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n /** Identifier of the company that owns the payroll. */\n companyId: string\n /** Identifier of the payroll being reviewed. The payroll must already be calculated. */\n payrollId: string\n /** Alert banners to display above the payroll summary. */\n alerts?: PayrollFlowAlert[]\n /** Whether reimbursement fields are shown in the totals and per-employee tables. Defaults to `true`. */\n withReimbursements?: boolean\n /** Custom component to replace the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (\n blockers: PayrollSubmissionBlockerType[] = [],\n): PayrollSubmissionBlockerType[] => {\n return blockers.filter(\n blocker =>\n blocker.status === 'unresolved' &&\n blocker.unblockOptions &&\n blocker.unblockOptions.length > 0,\n )\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n (option: PayrollCreditBlockerTypeUnblockOptions) => option.unblockType === 'submit_wire',\n )\n\n return wireUnblockOption?.metadata.wireInRequestUuid\n}\n\n/**\n * Final review screen for a calculated payroll before submission, with submit, cancel,\n * and edit controls. After submission, tracks processing status and surfaces the receipt\n * and per-employee paystub downloads once complete.\n *\n * @remarks\n * The payroll referenced by `payrollId` must already be calculated; rendering with an\n * uncalculated payroll throws. Unresolved submission blockers (e.g. fast-ACH threshold,\n * wire-in funding) are surfaced inline and the submit action stays disabled until each\n * blocker has a selected unblock option. While the payroll is processing, the component\n * polls until success or failure and emits the corresponding event.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/edit` | User chose to edit the payroll before submitting | — |\n * | `runPayroll/submitting` | Submit request was sent to the API | — |\n * | `runPayroll/submitted` | Payroll was successfully submitted | Submit payroll response |\n * | `runPayroll/processed` | Payroll finished processing successfully | `{ payPeriod, payrollUuid }` |\n * | `runPayroll/processingFailed` | Payroll processing failed | — |\n * | `runPayroll/cancelled` | Payroll was cancelled | Cancel payroll response |\n * | `runPayroll/receipt/get` | User requested the payroll receipt | `{ payrollId }` |\n * | `runPayroll/pdfPaystub/viewed` | User opened an employee's paystub PDF | `{ employeeId }` |\n * | `payroll/wire/form/done` | Wire-in details were confirmed via the embedded wire form | Submit wire-in response |\n *\n * @param props - See {@link PayrollOverviewProps}.\n * @returns The payroll overview surface.\n * @public\n */\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n companyId,\n payrollId,\n dictionary,\n onEvent,\n alerts,\n withReimbursements = true,\n ConfirmWireDetailsComponent = ConfirmWireDetails,\n}: PayrollOverviewProps) => {\n useComponentDictionary('Payroll.PayrollOverview', dictionary)\n useI18n('Payroll.PayrollOverview')\n const { baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.PayrollOverview')\n const [isPolling, setIsPolling] = useState(false)\n const [hasSubmittedInSession, setHasSubmittedInSession] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState(alerts || [])\n const [selectedUnblockOptions, setSelectedUnblockOptions] = useState<Record<string, string>>({})\n const [showWireDetailsConfirmation, setShowWireDetailsConfirmation] = useState(false)\n const { showBoundary } = useErrorBoundary()\n const formatCurrency = useNumberFormatter('currency')\n const dateFormatter = useDateFormatter()\n const { Button, UnorderedList, Text } = useComponentContext()\n const [status, setStatus] = useState(PayrollOverviewStatus.Viewing)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const { data, isFetching } = usePayrollsGet(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions', 'totals', 'payroll_taxes'],\n page: currentPage,\n per: itemsPerPage,\n },\n {\n refetchInterval: isPolling ? 5_000 : false,\n placeholderData: keepPreviousData,\n },\n )\n const payrollData = data?.payrollShow\n const submissionBlockers = findUnresolvedBlockersWithOptions(payrollData?.submissionBlockers)\n const wireInId = findWireInRequestUuid(payrollData?.creditBlockers)\n\n const { data: wireInRequestData } = useWireInRequestsGet(\n {\n wireInRequestUuid: wireInId || '',\n },\n { enabled: !!wireInId },\n )\n const wireInRequest = wireInRequestData?.wireInRequest\n\n const onEdit = () => {\n onEvent(componentEvents.RUN_PAYROLL_EDIT)\n }\n\n const handleWireEvent = (type: EventType, data?: unknown) => {\n if (type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE) {\n setShowWireDetailsConfirmation(true)\n }\n onEvent(type, data)\n }\n\n const wireInConfirmationRequest = wireInId && (\n <ConfirmWireDetailsComponent\n companyId={companyId}\n wireInId={wireInId}\n onEvent={handleWireEvent}\n />\n )\n\n useEffect(() => {\n if (wireInRequest?.status === 'pending_review' && !showWireDetailsConfirmation) {\n setShowWireDetailsConfirmation(true)\n }\n }, [wireInRequest?.status, showWireDetailsConfirmation])\n\n const checkDate = payrollData?.checkDate\n useEffect(() => {\n if (checkDate && showWireDetailsConfirmation) {\n const formattedCheckDate = dateFormatter.formatShortWithYear(checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: (\n <Text>\n {t('alerts.wireDetailsSubmittedMessage', { checkDate: formattedCheckDate })}\n </Text>\n ),\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n if (!payrollData) return\n // Start polling when payroll is submitting and not already polling\n if (\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submitting &&\n !isPolling\n ) {\n setIsPolling(true)\n }\n if (\n isPolling &&\n (payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED, {\n payPeriod: payrollData.payPeriod,\n payrollUuid: payrollId,\n })\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.payrollProcessedTitle'),\n content: t('alerts.payrollProcessedMessage', {\n amount: formatCurrency(Number(payrollData.totals?.companyDebit)),\n date: dateFormatter.formatShortWithYear(\n payrollData.payrollStatusMeta?.expectedDebitTime ?? payrollData.payrollDeadline,\n ),\n }),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n setHasSubmittedInSession(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.processing_failed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setInternalAlerts([\n {\n type: 'error',\n title: t('alerts.payrollProcessingFailedTitle'),\n content: (\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={renderErrorList(payrollData.processingRequest.errors ?? [])} />\n <Button variant=\"secondary\" onClick={onEdit}>\n {t('alerts.payrollProcessingFailedCtaLabel')}\n </Button>\n </Flex>\n ),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n setHasSubmittedInSession(false)\n }\n }, [\n payrollData?.processingRequest?.status,\n payrollData?.processed,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData?.totals?.companyDebit,\n payrollData?.payrollStatusMeta?.expectedDebitTime,\n payrollData?.payrollDeadline,\n ])\n\n const { data: bankAccountData } = useBankAccountsGetSuspense({\n companyId,\n })\n const bankAccount = bankAccountData.companyBankAccounts?.[0]\n\n const { paymentSpeed } = useCompanyPaymentSpeed(companyId)\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n const gustoEmbedded = useGustoEmbeddedContext()\n\n if (!payrollData) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n\n const pagination = getPaginationProps(data.httpMeta.response.headers, isFetching)\n\n // Per-tax totals come from the payroll-level `payrollTaxes` aggregate so they stay\n // correct when `employeeCompensations` is paginated (only a single page is loaded).\n const taxes =\n payrollData.payrollTaxes?.reduce(\n (acc, tax) => {\n if (!tax.name) return acc\n const amount = tax.amount ?? 0\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? amount : 0),\n }\n return acc\n },\n {} as Record<string, { employee: number; employer: number }>,\n ) || {}\n\n const onCancel = async () => {\n setStatus(PayrollOverviewStatus.Cancelling)\n await baseSubmitHandler(data, async () => {\n try {\n const result = await cancelPayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setStatus(PayrollOverviewStatus.Cancelled)\n onEvent(componentEvents.RUN_PAYROLL_CANCELLED, result)\n } catch (error) {\n setStatus(PayrollOverviewStatus.Viewing)\n throw error\n }\n })\n }\n const onPayrollReceipt = () => {\n onEvent(componentEvents.RUN_PAYROLL_RECEIPT_GET, { payrollId })\n }\n\n const onPaystubDownload = async (employeeId: string) => {\n // Open a blank window *synchronously* with the click\n const newWindow = window.open('', '_blank')\n\n try {\n // Fetch the PDF from your API\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId, employeeId })\n if (!response.value?.responseStream) {\n throw new Error(t('alerts.paystubPdfError'))\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n\n const url = URL.createObjectURL(pdfBlob)\n\n // Load the PDF into the new window\n if (newWindow) {\n newWindow.location.href = url\n }\n onEvent(componentEvents.RUN_PAYROLL_PDF_PAYSTUB_VIEWED, { employeeId })\n URL.revokeObjectURL(url) // Clean up the URL object after use\n } catch (err) {\n if (newWindow) {\n newWindow.close()\n }\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n }\n }\n const onSubmit = async () => {\n await baseSubmitHandler(data, async () => {\n const result = await submitPayroll({\n request: {\n companyId,\n payrollId,\n requestBody: {\n submissionBlockers: Object.entries(selectedUnblockOptions)\n .filter(([blockerType]) =>\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType),\n )\n .map(([blockerType, selectedOption]) => ({\n blockerType,\n selectedOption,\n })),\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTING)\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n setHasSubmittedInSession(true)\n })\n }\n\n return (\n <PayrollOverviewPresentation\n onEdit={onEdit}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onPayrollReceipt={onPayrollReceipt}\n onPaystubDownload={onPaystubDownload}\n status={isPending || hasSubmittedInSession ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\n taxes={taxes}\n alerts={internalAlerts}\n submissionBlockers={submissionBlockers}\n selectedUnblockOptions={selectedUnblockOptions}\n onUnblockOptionChange={(blockerType, value) => {\n setSelectedUnblockOptions(prev => ({ ...prev, [blockerType]: value }))\n }}\n wireInConfirmationRequest={wireInConfirmationRequest}\n withReimbursements={withReimbursements}\n paymentSpeed={paymentSpeed}\n pagination={pagination}\n />\n )\n}\n"],"names":["findUnresolvedBlockersWithOptions","blockers","blocker","findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","option","PayrollOverview","props","jsx","BaseComponent","Root","companyId","payrollId","dictionary","onEvent","alerts","withReimbursements","ConfirmWireDetailsComponent","ConfirmWireDetails","useComponentDictionary","useI18n","baseSubmitHandler","useBase","t","useTranslation","isPolling","setIsPolling","useState","hasSubmittedInSession","setHasSubmittedInSession","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","currentPage","itemsPerPage","getPaginationProps","usePagination","data","isFetching","usePayrollsGet","keepPreviousData","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","formattedCheckDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","paymentSpeed","useCompanyPaymentSpeed","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","PayrollLoading","pagination","taxes","acc","tax","amount","PayrollOverviewPresentation","result","blockerType","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","selectedOption","error","employeeId","newWindow","response","payrollsGetPayStub","pdfBlob","readableStreamToBlob","url","err","canCancelPayroll","value","prev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayrollOverview.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverview.tsx"],"sourcesContent":["import { usePayrollsSubmitMutation } from '@gusto/embedded-api/react-query/payrollsSubmit'\nimport { usePayrollsCancelMutation } from '@gusto/embedded-api/react-query/payrollsCancel'\nimport { usePayrollsGet } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport { useWireInRequestsGet } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport { useEffect, useState } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type {\n PayrollCreditBlockerType,\n PayrollCreditBlockerTypeUnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport {\n ConfirmWireDetails,\n type ConfirmWireDetailsComponentType,\n} from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { canCancelPayroll } from '../helpers'\nimport { PayrollOverviewPresentation } from './PayrollOverviewPresentation'\nimport { PayrollOverviewStatus } from './PayrollOverviewTypes'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport {\n componentEvents,\n payrollWireEvents,\n PAYROLL_PROCESSING_STATUS,\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES,\n type EventType,\n} from '@/shared/constants'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\nimport { Flex, PayrollLoading } from '@/components/Common'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PayrollOverview}.\n *\n * @public\n */\nexport interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n /** Identifier of the company that owns the payroll. */\n companyId: string\n /** Identifier of the payroll being reviewed. The payroll must already be calculated. */\n payrollId: string\n /** Alert banners to display above the payroll summary. */\n alerts?: PayrollFlowAlert[]\n /** Whether reimbursement fields are shown in the totals and per-employee tables. Defaults to `true`. */\n withReimbursements?: boolean\n /** Custom component to replace the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (\n blockers: PayrollSubmissionBlockerType[] = [],\n): PayrollSubmissionBlockerType[] => {\n return blockers.filter(\n blocker =>\n blocker.status === 'unresolved' &&\n blocker.unblockOptions &&\n blocker.unblockOptions.length > 0,\n )\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n (option: PayrollCreditBlockerTypeUnblockOptions) => option.unblockType === 'submit_wire',\n )\n\n return wireUnblockOption?.metadata.wireInRequestUuid\n}\n\n/**\n * Final review screen for a calculated payroll before submission, with submit, cancel,\n * and edit controls. After submission, tracks processing status and surfaces the receipt\n * and per-employee paystub downloads once complete.\n *\n * @remarks\n * The payroll referenced by `payrollId` must already be calculated; rendering with an\n * uncalculated payroll throws. Unresolved submission blockers (e.g. fast-ACH threshold,\n * wire-in funding) are surfaced inline and the submit action stays disabled until each\n * blocker has a selected unblock option. While the payroll is processing, the component\n * polls until success or failure and emits the corresponding event.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/edit` | User chose to edit the payroll before submitting | — |\n * | `runPayroll/submitting` | Submit request was sent to the API | — |\n * | `runPayroll/submitted` | Payroll was successfully submitted | Submit payroll response |\n * | `runPayroll/processed` | Payroll finished processing successfully | `{ payPeriod, payrollUuid }` |\n * | `runPayroll/processingFailed` | Payroll processing failed | — |\n * | `runPayroll/cancelled` | Payroll was cancelled | Cancel payroll response |\n * | `runPayroll/receipt/get` | User requested the payroll receipt | `{ payrollId }` |\n * | `runPayroll/pdfPaystub/viewed` | User opened an employee's paystub PDF | `{ employeeId }` |\n * | `payroll/wire/form/done` | Wire-in details were confirmed via the embedded wire form | Submit wire-in response |\n *\n * @param props - See {@link PayrollOverviewProps}.\n * @returns The payroll overview surface.\n * @public\n */\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n companyId,\n payrollId,\n dictionary,\n onEvent,\n alerts,\n withReimbursements = true,\n ConfirmWireDetailsComponent = ConfirmWireDetails,\n}: PayrollOverviewProps) => {\n useComponentDictionary('Payroll.PayrollOverview', dictionary)\n useI18n('Payroll.PayrollOverview')\n const { baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.PayrollOverview')\n const [isPolling, setIsPolling] = useState(false)\n const [hasSubmittedInSession, setHasSubmittedInSession] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState(alerts || [])\n const [selectedUnblockOptions, setSelectedUnblockOptions] = useState<Record<string, string>>({})\n const [showWireDetailsConfirmation, setShowWireDetailsConfirmation] = useState(false)\n const { showBoundary } = useErrorBoundary()\n const formatCurrency = useNumberFormatter('currency')\n const dateFormatter = useDateFormatter()\n const { Button, UnorderedList, Text } = useComponentContext()\n const [status, setStatus] = useState(PayrollOverviewStatus.Viewing)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const { data, isFetching } = usePayrollsGet(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions', 'totals', 'payroll_taxes'],\n page: currentPage,\n per: itemsPerPage,\n },\n {\n refetchInterval: isPolling ? 5_000 : false,\n placeholderData: keepPreviousData,\n // Always refetch on mount so a partner QueryClient with a non-zero `staleTime`\n // can't serve a stale pre-calculation snapshot without refetching. SDK-1018.\n refetchOnMount: 'always',\n },\n )\n const payrollData = data?.payrollShow\n const submissionBlockers = findUnresolvedBlockersWithOptions(payrollData?.submissionBlockers)\n const wireInId = findWireInRequestUuid(payrollData?.creditBlockers)\n\n const { data: wireInRequestData } = useWireInRequestsGet(\n {\n wireInRequestUuid: wireInId || '',\n },\n { enabled: !!wireInId },\n )\n const wireInRequest = wireInRequestData?.wireInRequest\n\n const onEdit = () => {\n onEvent(componentEvents.RUN_PAYROLL_EDIT)\n }\n\n const handleWireEvent = (type: EventType, data?: unknown) => {\n if (type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE) {\n setShowWireDetailsConfirmation(true)\n }\n onEvent(type, data)\n }\n\n const wireInConfirmationRequest = wireInId && (\n <ConfirmWireDetailsComponent\n companyId={companyId}\n wireInId={wireInId}\n onEvent={handleWireEvent}\n />\n )\n\n useEffect(() => {\n if (wireInRequest?.status === 'pending_review' && !showWireDetailsConfirmation) {\n setShowWireDetailsConfirmation(true)\n }\n }, [wireInRequest?.status, showWireDetailsConfirmation])\n\n const checkDate = payrollData?.checkDate\n useEffect(() => {\n if (checkDate && showWireDetailsConfirmation) {\n const formattedCheckDate = dateFormatter.formatShortWithYear(checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: (\n <Text>\n {t('alerts.wireDetailsSubmittedMessage', { checkDate: formattedCheckDate })}\n </Text>\n ),\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n if (!payrollData) return\n // Start polling when payroll is submitting and not already polling\n if (\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submitting &&\n !isPolling\n ) {\n setIsPolling(true)\n }\n if (\n isPolling &&\n (payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED, {\n payPeriod: payrollData.payPeriod,\n payrollUuid: payrollId,\n })\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.payrollProcessedTitle'),\n content: t('alerts.payrollProcessedMessage', {\n amount: formatCurrency(Number(payrollData.totals?.companyDebit)),\n date: dateFormatter.formatShortWithYear(\n payrollData.payrollStatusMeta?.expectedDebitTime ?? payrollData.payrollDeadline,\n ),\n }),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n setHasSubmittedInSession(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.processing_failed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setInternalAlerts([\n {\n type: 'error',\n title: t('alerts.payrollProcessingFailedTitle'),\n content: (\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={renderErrorList(payrollData.processingRequest.errors ?? [])} />\n <Button variant=\"secondary\" onClick={onEdit}>\n {t('alerts.payrollProcessingFailedCtaLabel')}\n </Button>\n </Flex>\n ),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n setHasSubmittedInSession(false)\n }\n }, [\n payrollData?.processingRequest?.status,\n payrollData?.processed,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData?.totals?.companyDebit,\n payrollData?.payrollStatusMeta?.expectedDebitTime,\n payrollData?.payrollDeadline,\n ])\n\n const { data: bankAccountData } = useBankAccountsGetSuspense({\n companyId,\n })\n const bankAccount = bankAccountData.companyBankAccounts?.[0]\n\n const { paymentSpeed } = useCompanyPaymentSpeed(companyId)\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n const gustoEmbedded = useGustoEmbeddedContext()\n\n if (!payrollData) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n // A stale snapshot can be served with a null `calculatedAt` while its refetch is\n // in flight; treat that as loading and only throw once the fetch settles. SDK-1018.\n if (isFetching) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n\n const pagination = getPaginationProps(data.httpMeta.response.headers, isFetching)\n\n // Per-tax totals come from the payroll-level `payrollTaxes` aggregate so they stay\n // correct when `employeeCompensations` is paginated (only a single page is loaded).\n const taxes =\n payrollData.payrollTaxes?.reduce(\n (acc, tax) => {\n if (!tax.name) return acc\n const amount = tax.amount ?? 0\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? amount : 0),\n }\n return acc\n },\n {} as Record<string, { employee: number; employer: number }>,\n ) || {}\n\n const onCancel = async () => {\n setStatus(PayrollOverviewStatus.Cancelling)\n await baseSubmitHandler(data, async () => {\n try {\n const result = await cancelPayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setStatus(PayrollOverviewStatus.Cancelled)\n onEvent(componentEvents.RUN_PAYROLL_CANCELLED, result)\n } catch (error) {\n setStatus(PayrollOverviewStatus.Viewing)\n throw error\n }\n })\n }\n const onPayrollReceipt = () => {\n onEvent(componentEvents.RUN_PAYROLL_RECEIPT_GET, { payrollId })\n }\n\n const onPaystubDownload = async (employeeId: string) => {\n // Open a blank window *synchronously* with the click\n const newWindow = window.open('', '_blank')\n\n try {\n // Fetch the PDF from your API\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId, employeeId })\n if (!response.value?.responseStream) {\n throw new Error(t('alerts.paystubPdfError'))\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n\n const url = URL.createObjectURL(pdfBlob)\n\n // Load the PDF into the new window\n if (newWindow) {\n newWindow.location.href = url\n }\n onEvent(componentEvents.RUN_PAYROLL_PDF_PAYSTUB_VIEWED, { employeeId })\n URL.revokeObjectURL(url) // Clean up the URL object after use\n } catch (err) {\n if (newWindow) {\n newWindow.close()\n }\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n }\n }\n const onSubmit = async () => {\n await baseSubmitHandler(data, async () => {\n const result = await submitPayroll({\n request: {\n companyId,\n payrollId,\n requestBody: {\n submissionBlockers: Object.entries(selectedUnblockOptions)\n .filter(([blockerType]) =>\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType),\n )\n .map(([blockerType, selectedOption]) => ({\n blockerType,\n selectedOption,\n })),\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTING)\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n setHasSubmittedInSession(true)\n })\n }\n\n return (\n <PayrollOverviewPresentation\n onEdit={onEdit}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onPayrollReceipt={onPayrollReceipt}\n onPaystubDownload={onPaystubDownload}\n status={isPending || hasSubmittedInSession ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\n taxes={taxes}\n alerts={internalAlerts}\n submissionBlockers={submissionBlockers}\n selectedUnblockOptions={selectedUnblockOptions}\n onUnblockOptionChange={(blockerType, value) => {\n setSelectedUnblockOptions(prev => ({ ...prev, [blockerType]: value }))\n }}\n wireInConfirmationRequest={wireInConfirmationRequest}\n withReimbursements={withReimbursements}\n paymentSpeed={paymentSpeed}\n pagination={pagination}\n />\n )\n}\n"],"names":["findUnresolvedBlockersWithOptions","blockers","blocker","findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","option","PayrollOverview","props","jsx","BaseComponent","Root","companyId","payrollId","dictionary","onEvent","alerts","withReimbursements","ConfirmWireDetailsComponent","ConfirmWireDetails","useComponentDictionary","useI18n","baseSubmitHandler","useBase","t","useTranslation","isPolling","setIsPolling","useState","hasSubmittedInSession","setHasSubmittedInSession","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","currentPage","itemsPerPage","getPaginationProps","usePagination","data","isFetching","usePayrollsGet","keepPreviousData","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","formattedCheckDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","paymentSpeed","useCompanyPaymentSpeed","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","PayrollLoading","pagination","taxes","acc","tax","amount","PayrollOverviewPresentation","result","blockerType","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","selectedOption","error","employeeId","newWindow","response","payrollsGetPayStub","pdfBlob","readableStreamToBlob","url","err","canCancelPayroll","value","prev"],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ import { PayrollOverviewStatus as p } from "./PayrollOverviewTypes.js";
|
|
|
6
6
|
import ne from "./PayrollOverviewPresentation.module.scss.js";
|
|
7
7
|
import { Flex as s } from "../../Common/Flex/Flex.js";
|
|
8
8
|
import { Grid as we } from "../../Common/Grid/Grid.js";
|
|
9
|
-
import
|
|
10
|
-
import ve from "../../../
|
|
9
|
+
import _e from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
|
|
10
|
+
import { useComponentContext as ve } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
11
|
import { useI18n as Le } from "../../../i18n/I18n.js";
|
|
12
12
|
import { useDateFormatter as Ee } from "../../../hooks/useDateFormatter.js";
|
|
13
13
|
import Oe from "../../../hooks/useNumberFormatter.js";
|
|
@@ -39,9 +39,9 @@ const Ve = (u, C) => u?.startDate && u.endDate ? C.formatPayPeriod(u.startDate,
|
|
|
39
39
|
paymentSpeed: be,
|
|
40
40
|
pagination: _
|
|
41
41
|
}) => {
|
|
42
|
-
const { Alert: v, Badge: L, Button: T, ButtonIcon: R, Dialog: ye, Heading: j, Text: y, Tabs: pe } =
|
|
42
|
+
const { Alert: v, Badge: L, Button: T, ButtonIcon: R, Dialog: ye, Heading: j, Text: y, Tabs: pe } = ve();
|
|
43
43
|
Le("Payroll.PayrollOverview");
|
|
44
|
-
const d = Ee(), { t } = Pe("Payroll.PayrollOverview"), l = Oe("currency"), [fe, he] = re("companyPays"), [U, G] = re(!1), E = ke(null), D =
|
|
44
|
+
const d = Ee(), { t } = Pe("Payroll.PayrollOverview"), l = Oe("currency"), [fe, he] = re("companyPays"), [U, G] = re(!1), E = ke(null), D = _e({ ref: E }).includes("small"), H = f === p.Submitting || f === p.Cancelling, $ = /* @__PURE__ */ a(j, { as: "h1", children: t(h ? "summaryTitle" : "overviewTitle") }), z = Ne(n.offCycleReason), K = /* @__PURE__ */ a(y, { children: /* @__PURE__ */ a(
|
|
45
45
|
xe,
|
|
46
46
|
{
|
|
47
47
|
i18nKey: z ? "pageSubtitleDismissal" : "pageSubtitle",
|
package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js
CHANGED
|
@@ -2,10 +2,9 @@ import { jsx as t, jsxs as i } from "react/jsx-runtime";
|
|
|
2
2
|
import { useTranslation as B } from "react-i18next";
|
|
3
3
|
import { Flex as l } from "../../../Common/Flex/Flex.js";
|
|
4
4
|
import { useComponentContext as _ } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
5
|
-
import "react";
|
|
6
5
|
import { useDateFormatter as y } from "../../../../hooks/useDateFormatter.js";
|
|
7
6
|
import O from "../../../../assets/icons/icon-zap-fast.svg.js";
|
|
8
|
-
const
|
|
7
|
+
const v = ({
|
|
9
8
|
blocker: r,
|
|
10
9
|
selectedValue: d,
|
|
11
10
|
onUnblockOptionChange: h,
|
|
@@ -46,6 +45,6 @@ const L = ({
|
|
|
46
45
|
] }) });
|
|
47
46
|
};
|
|
48
47
|
export {
|
|
49
|
-
|
|
48
|
+
v as FastAchSubmissionBlockerBanner
|
|
50
49
|
};
|
|
51
50
|
//# sourceMappingURL=FastAchSubmissionBlockerBanner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastAchSubmissionBlockerBanner.js","sources":["../../../../../src/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n PayrollSubmissionBlockerType,\n UnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type { PaymentSpeed } from '@gusto/embedded-api/models/components/paymentconfigs'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport IconFast from '@/assets/icons/icon-zap-fast.svg?react'\n\ntype FastAchBlockerType = 'fast_ach_threshold_exceeded' | 'needs_earned_access_for_fast_ach'\n\ninterface FastAchSubmissionBlockerBannerProps {\n blocker: PayrollSubmissionBlockerType\n selectedValue?: string\n onUnblockOptionChange: (blockerType: string, value: string) => void\n paymentSpeed?: PaymentSpeed\n}\n\n/** @internal */\nexport const FastAchSubmissionBlockerBanner = ({\n blocker,\n selectedValue,\n onUnblockOptionChange,\n paymentSpeed,\n}: FastAchSubmissionBlockerBannerProps) => {\n const { t } = useTranslation('Payroll.PayrollOverview')\n const { Banner, Text, RadioGroup, Badge } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const blockerType = (blocker.blockerType || 'fast_ach_threshold_exceeded') as FastAchBlockerType\n\n const titleKey =\n blockerType === 'fast_ach_threshold_exceeded'\n ? 'submissionBlockers.fast_ach_threshold_exceeded.title'\n : 'submissionBlockers.needs_earned_access_for_fast_ach.title'\n\n return (\n <Banner status=\"error\" title={t(titleKey, { days: paymentSpeed || '2-day' })}>\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map((option: UnblockOptions) => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('submissionBlockers.fastAchOptions.wireLabel')\n : t('submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('submissionBlockers.fastAchOptions.wireDescription')\n : t('submissionBlockers.fastAchOptions.directDepositDescription')\n\n return {\n value: option.unblockType || '',\n label: (\n <Flex alignItems=\"center\" gap={8}>\n <Text weight=\"semibold\">{label}</Text>\n {isWire && (\n <Badge status=\"success\">\n <IconFast aria-hidden />{' '}\n {t('submissionBlockers.fastAchOptions.wireFastestBadge')}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t('submissionBlockers.fastAchOptions.employeePayDate', {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n })}\n </Badge>\n )}\n </Flex>\n ),\n description,\n }\n }) || []\n }\n value={selectedValue}\n onChange={value => {\n onUnblockOptionChange(blockerType, value)\n }}\n />\n </Flex>\n </Banner>\n )\n}\n"],"names":["FastAchSubmissionBlockerBanner","blocker","selectedValue","onUnblockOptionChange","paymentSpeed","t","useTranslation","Banner","Text","RadioGroup","Badge","useComponentContext","dateFormatter","useDateFormatter","blockerType","jsxs","Flex","jsx","option","isWire","label","description","IconFast","value"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FastAchSubmissionBlockerBanner.js","sources":["../../../../../src/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n PayrollSubmissionBlockerType,\n UnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type { PaymentSpeed } from '@gusto/embedded-api/models/components/paymentconfigs'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport IconFast from '@/assets/icons/icon-zap-fast.svg?react'\n\ntype FastAchBlockerType = 'fast_ach_threshold_exceeded' | 'needs_earned_access_for_fast_ach'\n\ninterface FastAchSubmissionBlockerBannerProps {\n blocker: PayrollSubmissionBlockerType\n selectedValue?: string\n onUnblockOptionChange: (blockerType: string, value: string) => void\n paymentSpeed?: PaymentSpeed\n}\n\n/** @internal */\nexport const FastAchSubmissionBlockerBanner = ({\n blocker,\n selectedValue,\n onUnblockOptionChange,\n paymentSpeed,\n}: FastAchSubmissionBlockerBannerProps) => {\n const { t } = useTranslation('Payroll.PayrollOverview')\n const { Banner, Text, RadioGroup, Badge } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const blockerType = (blocker.blockerType || 'fast_ach_threshold_exceeded') as FastAchBlockerType\n\n const titleKey =\n blockerType === 'fast_ach_threshold_exceeded'\n ? 'submissionBlockers.fast_ach_threshold_exceeded.title'\n : 'submissionBlockers.needs_earned_access_for_fast_ach.title'\n\n return (\n <Banner status=\"error\" title={t(titleKey, { days: paymentSpeed || '2-day' })}>\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map((option: UnblockOptions) => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('submissionBlockers.fastAchOptions.wireLabel')\n : t('submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('submissionBlockers.fastAchOptions.wireDescription')\n : t('submissionBlockers.fastAchOptions.directDepositDescription')\n\n return {\n value: option.unblockType || '',\n label: (\n <Flex alignItems=\"center\" gap={8}>\n <Text weight=\"semibold\">{label}</Text>\n {isWire && (\n <Badge status=\"success\">\n <IconFast aria-hidden />{' '}\n {t('submissionBlockers.fastAchOptions.wireFastestBadge')}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t('submissionBlockers.fastAchOptions.employeePayDate', {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n })}\n </Badge>\n )}\n </Flex>\n ),\n description,\n }\n }) || []\n }\n value={selectedValue}\n onChange={value => {\n onUnblockOptionChange(blockerType, value)\n }}\n />\n </Flex>\n </Banner>\n )\n}\n"],"names":["FastAchSubmissionBlockerBanner","blocker","selectedValue","onUnblockOptionChange","paymentSpeed","t","useTranslation","Banner","Text","RadioGroup","Badge","useComponentContext","dateFormatter","useDateFormatter","blockerType","jsxs","Flex","jsx","option","isWire","label","description","IconFast","value"],"mappings":";;;;;;AAqBO,MAAMA,IAAiC,CAAC;AAAA,EAC7C,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,cAAAC;AACF,MAA2C;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,QAAAC,GAAQ,MAAAC,GAAM,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAA,GACtCC,IAAgBC,EAAA,GAChBC,IAAeb,EAAQ,eAAe;AAO5C,2BACGM,GAAA,EAAO,QAAO,SAAQ,OAAOF,EAL9BS,MAAgB,gCACZ,yDACA,6DAGsC,EAAE,MAAMV,KAAgB,SAAS,GACzE,UAAA,gBAAAW,EAACC,KAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAC,EAACT,GAAA,EAAM,UAAAH,EAAE,+CAA+C,EAAA,CAAE;AAAA,IAC1D,gBAAAY;AAAA,MAACR;AAAA,MAAA;AAAA,QACC,OAAOJ,EAAE,uDAAuD;AAAA,QAChE,yBAAuB;AAAA,QACvB,SACEJ,EAAQ,gBAAgB,IAAI,CAACiB,MAA2B;AACtD,gBAAMC,IAASD,EAAO,gBAAgB,WAChCE,IACFf,EADUc,IACR,gDACA,sDAD6C,GAE7CE,IACFhB,EADgBc,IACd,sDACA,4DADmD;AAGzD,iBAAO;AAAA,YACL,OAAOD,EAAO,eAAe;AAAA,YAC7B,OACE,gBAAAH,EAACC,GAAA,EAAK,YAAW,UAAS,KAAK,GAC7B,UAAA;AAAA,cAAA,gBAAAC,EAACT,GAAA,EAAK,QAAO,YAAY,UAAAY,GAAM;AAAA,cAC9BD,KACC,gBAAAJ,EAACL,GAAA,EAAM,QAAO,WACZ,UAAA;AAAA,gBAAA,gBAAAO,EAACK,GAAA,EAAS,eAAW,GAAA,CAAC;AAAA,gBAAG;AAAA,gBACxBjB,EAAE,oDAAoD;AAAA,cAAA,GACzD;AAAA,cAEDa,EAAO,aACN,gBAAAD,EAACP,KAAM,QAAO,QACX,YAAE,qDAAqD;AAAA,gBACtD,MAAME,EAAc,oBAAoBM,EAAO,SAAS;AAAA,cAAA,CACzD,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YAEF,aAAAG;AAAA,UAAA;AAAA,QAEJ,CAAC,KAAK,CAAA;AAAA,QAER,OAAOnB;AAAA,QACP,UAAU,CAAAqB,MAAS;AACjB,UAAApB,EAAsBW,GAAaS,CAAK;AAAA,QAC1C;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,EAAA,CACF,EAAA,CACF;AAEJ;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest';
|
|
2
2
|
/** @internal */
|
|
3
|
-
export type PayrollStatusTranslationKey = 'processed' | '
|
|
3
|
+
export type PayrollStatusTranslationKey = 'processed' | 'calculating' | 'readyToSubmit' | 'processing' | 'failed' | 'waitingForWireIn' | 'pendingApproval' | 'dueInHours' | 'dueInDays' | 'daysLate' | 'pending' | 'paid' | 'complete' | 'submitted' | 'inProgress';
|
|
4
4
|
/** @internal */
|
|
5
5
|
export type PayrollStatusBadge = {
|
|
6
6
|
/** Optional pre-translated label; when omitted the consumer translates `translationKey`. */
|
|
@@ -123,7 +123,7 @@ const o = [
|
|
|
123
123
|
if (!n.payrollDeadline || n.processed || n.processingRequest?.status && o.includes(n.processingRequest.status))
|
|
124
124
|
return !1;
|
|
125
125
|
const a = s(n.payrollDeadline), e = i(n.payrollDeadline);
|
|
126
|
-
return a === null || e === null ? !1 : a > 0 && a >= 24 && Math.ceil(e) <=
|
|
126
|
+
return a === null || e === null ? !1 : a > 0 && a >= 24 && Math.ceil(e) <= 14;
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
129
|
{
|
|
@@ -145,14 +145,6 @@ const o = [
|
|
|
145
145
|
translationKey: "pending"
|
|
146
146
|
},
|
|
147
147
|
condition: (n) => !!n.processed
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
name: "unprocessed",
|
|
151
|
-
badge: {
|
|
152
|
-
variant: "info",
|
|
153
|
-
translationKey: "unprocessed"
|
|
154
|
-
},
|
|
155
|
-
condition: (n) => !n.processed && !n.processingRequest?.status
|
|
156
148
|
}
|
|
157
149
|
];
|
|
158
150
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payrollStatusConfig.js","sources":["../../../../src/components/Payroll/PayrollStatusBadges/payrollStatusConfig.ts"],"sourcesContent":["import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { WireInRequestStatus } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { normalizeToDate, getHoursUntil, getDaysUntil } from '@/helpers/dateFormatting'\n\n/** @internal */\nexport type PayrollStatusTranslationKey =\n | 'processed'\n | 'unprocessed'\n | 'calculating'\n | 'readyToSubmit'\n | 'processing'\n | 'failed'\n | 'waitingForWireIn'\n | 'pendingApproval'\n | 'dueInHours'\n | 'dueInDays'\n | 'daysLate'\n | 'pending'\n | 'paid'\n | 'complete'\n | 'submitted'\n | 'inProgress'\n\n/** @internal */\nexport type PayrollStatusBadge = {\n /** Optional pre-translated label; when omitted the consumer translates `translationKey`. */\n label?: string\n /** Badge color variant. */\n variant: 'success' | 'warning' | 'error' | 'info'\n /** Key into the `Payroll.Common` `status.*` translation namespace. */\n translationKey: PayrollStatusTranslationKey\n /** Optional interpolation values for the translation (e.g. `{ hours: 3 }`). */\n translationParams?: Record<string, string | number>\n}\n\n/** @internal */\nexport type PayrollStatusBadges = {\n /** Ordered list of badges to render for a payroll row. */\n badges: PayrollStatusBadge[]\n}\n\n/** @internal */\nexport type PayrollInput = {\n /** Whether the payroll has been submitted for processing. */\n processed?: boolean\n /** Date employees are paid; used to distinguish `pending` from `complete`. */\n checkDate?: string | null | Date\n /** Deadline by which the payroll must be submitted. */\n payrollDeadline?: string | null | Date\n /** Timestamp marking when calculation finished. */\n calculatedAt?: Date | null\n /** Current processing request status and any associated errors. */\n processingRequest?: {\n /** Lifecycle status reported by the payroll processing request. */\n status?: PayrollProcessingRequestStatus\n /** Errors surfaced by the processing request, when any. */\n errors?: unknown[]\n } | null\n}\n\n/** @internal */\nexport type WireInRequestInput = {\n /** Wire-in request lifecycle status (e.g. awaiting funds, pending review). */\n status?: string\n /** UUID of the associated payment. */\n paymentUuid?: string\n /** Deadline by which the wire must be received. */\n wireInDeadline?: string\n} | null\n\n/** @internal */\nexport type StatusConfig = {\n /** Identifier for the status rule; used for debugging and snapshot diffs. */\n name: string\n /** Either a static badge or a factory that derives one from the payroll/wire-in inputs. */\n badge:\n | PayrollStatusBadge\n | ((payroll: PayrollInput, wireInRequest?: WireInRequestInput) => PayrollStatusBadge)\n /** Predicate that decides whether this status applies to the given inputs. */\n condition: (payroll: PayrollInput, wireInRequest?: WireInRequestInput) => boolean\n /** When true, evaluation continues to later rules instead of stopping at the first match. */\n continueChecking?: boolean\n}\n\nconst ACTIVE_PROCESSING_STATUSES: PayrollProcessingRequestStatus[] = [\n PayrollProcessingRequestStatus.Calculating,\n PayrollProcessingRequestStatus.Submitting,\n PayrollProcessingRequestStatus.ProcessingFailed,\n]\n\n/** @internal */\nexport const STATUS_CONFIG: StatusConfig[] = [\n {\n name: 'calculating',\n badge: {\n variant: 'info',\n translationKey: 'calculating',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Calculating,\n },\n {\n name: 'readyToSubmit',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess &&\n !!payroll.calculatedAt,\n },\n {\n name: 'processing',\n badge: {\n variant: 'warning',\n translationKey: 'processing',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Submitting,\n continueChecking: true,\n },\n {\n name: 'failed',\n badge: {\n variant: 'error',\n translationKey: 'failed',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.ProcessingFailed,\n continueChecking: true,\n },\n {\n name: 'late',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: 0 },\n }\n }\n\n const daysPast = Math.abs(Math.floor(daysDiff))\n\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: daysPast },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff < 0\n },\n },\n {\n name: 'readyToSubmitFallback',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll => !!payroll.calculatedAt && !payroll.processed,\n },\n {\n name: 'waitingForWireIn',\n badge: {\n variant: 'warning',\n translationKey: 'waitingForWireIn',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.AwaitingFunds,\n },\n {\n name: 'pendingApproval',\n badge: {\n variant: 'warning',\n translationKey: 'pendingApproval',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.PendingReview,\n },\n {\n name: 'dueInHours',\n badge: payroll => {\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) {\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours: 0 },\n }\n }\n\n const hours = Math.ceil(hoursDiff)\n\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff < 24\n },\n },\n {\n name: 'dueInDays',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days: 0 },\n }\n }\n\n const days = Math.ceil(daysDiff)\n\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (hoursDiff === null || daysDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff >= 24 && Math.ceil(daysDiff) <= 30\n },\n },\n {\n name: 'paid',\n badge: {\n variant: 'success',\n translationKey: 'complete',\n },\n condition: payroll => {\n if (!payroll.processed) return false\n\n const now = new Date()\n const checkDate = normalizeToDate(payroll.checkDate)\n\n return checkDate !== null && checkDate <= now\n },\n },\n {\n name: 'pending',\n badge: {\n variant: 'info',\n translationKey: 'pending',\n },\n condition: payroll => !!payroll.processed,\n },\n {\n name: 'unprocessed',\n badge: {\n variant: 'info',\n translationKey: 'unprocessed',\n },\n condition: payroll => !payroll.processed && !payroll.processingRequest?.status,\n },\n]\n"],"names":["ACTIVE_PROCESSING_STATUSES","PayrollProcessingRequestStatus","STATUS_CONFIG","payroll","daysDiff","getDaysUntil","hoursDiff","getHoursUntil","wireInRequest","WireInRequestStatus","now","checkDate","normalizeToDate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"payrollStatusConfig.js","sources":["../../../../src/components/Payroll/PayrollStatusBadges/payrollStatusConfig.ts"],"sourcesContent":["import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { WireInRequestStatus } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { normalizeToDate, getHoursUntil, getDaysUntil } from '@/helpers/dateFormatting'\n\n/** @internal */\nexport type PayrollStatusTranslationKey =\n | 'processed'\n | 'calculating'\n | 'readyToSubmit'\n | 'processing'\n | 'failed'\n | 'waitingForWireIn'\n | 'pendingApproval'\n | 'dueInHours'\n | 'dueInDays'\n | 'daysLate'\n | 'pending'\n | 'paid'\n | 'complete'\n | 'submitted'\n | 'inProgress'\n\n/** @internal */\nexport type PayrollStatusBadge = {\n /** Optional pre-translated label; when omitted the consumer translates `translationKey`. */\n label?: string\n /** Badge color variant. */\n variant: 'success' | 'warning' | 'error' | 'info'\n /** Key into the `Payroll.Common` `status.*` translation namespace. */\n translationKey: PayrollStatusTranslationKey\n /** Optional interpolation values for the translation (e.g. `{ hours: 3 }`). */\n translationParams?: Record<string, string | number>\n}\n\n/** @internal */\nexport type PayrollStatusBadges = {\n /** Ordered list of badges to render for a payroll row. */\n badges: PayrollStatusBadge[]\n}\n\n/** @internal */\nexport type PayrollInput = {\n /** Whether the payroll has been submitted for processing. */\n processed?: boolean\n /** Date employees are paid; used to distinguish `pending` from `complete`. */\n checkDate?: string | null | Date\n /** Deadline by which the payroll must be submitted. */\n payrollDeadline?: string | null | Date\n /** Timestamp marking when calculation finished. */\n calculatedAt?: Date | null\n /** Current processing request status and any associated errors. */\n processingRequest?: {\n /** Lifecycle status reported by the payroll processing request. */\n status?: PayrollProcessingRequestStatus\n /** Errors surfaced by the processing request, when any. */\n errors?: unknown[]\n } | null\n}\n\n/** @internal */\nexport type WireInRequestInput = {\n /** Wire-in request lifecycle status (e.g. awaiting funds, pending review). */\n status?: string\n /** UUID of the associated payment. */\n paymentUuid?: string\n /** Deadline by which the wire must be received. */\n wireInDeadline?: string\n} | null\n\n/** @internal */\nexport type StatusConfig = {\n /** Identifier for the status rule; used for debugging and snapshot diffs. */\n name: string\n /** Either a static badge or a factory that derives one from the payroll/wire-in inputs. */\n badge:\n | PayrollStatusBadge\n | ((payroll: PayrollInput, wireInRequest?: WireInRequestInput) => PayrollStatusBadge)\n /** Predicate that decides whether this status applies to the given inputs. */\n condition: (payroll: PayrollInput, wireInRequest?: WireInRequestInput) => boolean\n /** When true, evaluation continues to later rules instead of stopping at the first match. */\n continueChecking?: boolean\n}\n\nconst ACTIVE_PROCESSING_STATUSES: PayrollProcessingRequestStatus[] = [\n PayrollProcessingRequestStatus.Calculating,\n PayrollProcessingRequestStatus.Submitting,\n PayrollProcessingRequestStatus.ProcessingFailed,\n]\n\n/** @internal */\nexport const STATUS_CONFIG: StatusConfig[] = [\n {\n name: 'calculating',\n badge: {\n variant: 'info',\n translationKey: 'calculating',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Calculating,\n },\n {\n name: 'readyToSubmit',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess &&\n !!payroll.calculatedAt,\n },\n {\n name: 'processing',\n badge: {\n variant: 'warning',\n translationKey: 'processing',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Submitting,\n continueChecking: true,\n },\n {\n name: 'failed',\n badge: {\n variant: 'error',\n translationKey: 'failed',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.ProcessingFailed,\n continueChecking: true,\n },\n {\n name: 'late',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: 0 },\n }\n }\n\n const daysPast = Math.abs(Math.floor(daysDiff))\n\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: daysPast },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff < 0\n },\n },\n {\n name: 'readyToSubmitFallback',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll => !!payroll.calculatedAt && !payroll.processed,\n },\n {\n name: 'waitingForWireIn',\n badge: {\n variant: 'warning',\n translationKey: 'waitingForWireIn',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.AwaitingFunds,\n },\n {\n name: 'pendingApproval',\n badge: {\n variant: 'warning',\n translationKey: 'pendingApproval',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.PendingReview,\n },\n {\n name: 'dueInHours',\n badge: payroll => {\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) {\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours: 0 },\n }\n }\n\n const hours = Math.ceil(hoursDiff)\n\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff < 24\n },\n },\n {\n name: 'dueInDays',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days: 0 },\n }\n }\n\n const days = Math.ceil(daysDiff)\n\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (hoursDiff === null || daysDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff >= 24 && Math.ceil(daysDiff) <= 14\n },\n },\n {\n name: 'paid',\n badge: {\n variant: 'success',\n translationKey: 'complete',\n },\n condition: payroll => {\n if (!payroll.processed) return false\n\n const now = new Date()\n const checkDate = normalizeToDate(payroll.checkDate)\n\n return checkDate !== null && checkDate <= now\n },\n },\n {\n name: 'pending',\n badge: {\n variant: 'info',\n translationKey: 'pending',\n },\n condition: payroll => !!payroll.processed,\n },\n]\n"],"names":["ACTIVE_PROCESSING_STATUSES","PayrollProcessingRequestStatus","STATUS_CONFIG","payroll","daysDiff","getDaysUntil","hoursDiff","getHoursUntil","wireInRequest","WireInRequestStatus","now","checkDate","normalizeToDate"],"mappings":"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"}
|
|
@@ -11,10 +11,9 @@ import { DataView as L } from "../../../Common/DataView/DataView.js";
|
|
|
11
11
|
import { useDataView as D } from "../../../Common/DataView/useDataView.js";
|
|
12
12
|
import { FlexItem as E, Flex as d } from "../../../Common/Flex/Flex.js";
|
|
13
13
|
import { EmptyData as x } from "../../../Common/EmptyData/EmptyData.js";
|
|
14
|
-
import "react";
|
|
15
14
|
import { recoveryCasesEvents as P } from "../../../../shared/constants.js";
|
|
16
15
|
import { formatNumberAsCurrency as p } from "../../../../helpers/formattedStrings.js";
|
|
17
|
-
function
|
|
16
|
+
function z(r) {
|
|
18
17
|
return /* @__PURE__ */ e(R, { ...r, children: /* @__PURE__ */ e(w, { ...r, children: r.children }) });
|
|
19
18
|
}
|
|
20
19
|
function A(r) {
|
|
@@ -100,6 +99,6 @@ function w({ companyId: r, dictionary: n, onEvent: s }) {
|
|
|
100
99
|
] }) });
|
|
101
100
|
}
|
|
102
101
|
export {
|
|
103
|
-
|
|
102
|
+
z as RecoveryCasesList
|
|
104
103
|
};
|
|
105
104
|
//# sourceMappingURL=RecoveryCasesList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecoveryCasesList.js","sources":["../../../../../src/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n RecoveryCase,\n RecoveryCaseStatus,\n} from '@gusto/embedded-api/models/components/recoverycase'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useRecoveryCaseErrorCode } from '../useRecoveryCaseErrorCode'\nimport styles from './RecoveryCasesList.module.scss'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { EmptyData, Flex, FlexItem } from '@/components/Common'\nimport { recoveryCasesEvents } from '@/shared/constants'\nimport type { BadgeProps } from '@/components/Common/UI/Badge/BadgeTypes'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\n\ninterface RecoveryCasesListProps extends BaseComponentInterface<'Payroll.RecoveryCasesList'> {\n companyId: string\n}\n\n/** @internal */\nexport function RecoveryCasesList(props: RecoveryCasesListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction getStatusBadgeStatus(status: RecoveryCaseStatus | undefined): BadgeProps['status'] {\n if (status === 'open') {\n return 'info'\n }\n return 'warning'\n}\n\nfunction ErrorCodeCell({ errorCode }: { errorCode: string | null | undefined }) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Text } = useComponentContext()\n const { title, subtitle } = useRecoveryCaseErrorCode(errorCode)\n\n if (!title && !subtitle) {\n return (\n <span aria-label={t('labels.noLatestErrorCodeAriaLabel')} aria-live=\"polite\">\n {t('labels.noLatestErrorCode')}\n </span>\n )\n }\n\n return (\n <Flex flexDirection=\"column\" gap={4}>\n {title && <Text weight=\"semibold\">{title}</Text>}\n {subtitle && <Text>{subtitle}</Text>}\n </Flex>\n )\n}\n\nfunction StatusCell({ status }: { status: RecoveryCaseStatus | undefined }) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Badge } = useComponentContext()\n\n if (!status) {\n return null\n }\n\n const badgeStatus = getStatusBadgeStatus(status)\n const statusLabel = t(`status.${status}`)\n\n return <Badge status={badgeStatus}>{statusLabel}</Badge>\n}\n\nfunction ResolveButton({\n recoveryCase,\n onEvent,\n}: {\n recoveryCase: RecoveryCase\n onEvent: BaseComponentInterface['onEvent']\n}) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Button } = useComponentContext()\n\n if (recoveryCase.status !== 'open') {\n return null\n }\n\n return (\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESOLVE, {\n recoveryCaseId: recoveryCase.uuid,\n })\n }}\n >\n {t('cta.resolve')}\n </Button>\n )\n}\n\nfunction Root({ companyId, dictionary, onEvent }: RecoveryCasesListProps) {\n useComponentDictionary('Payroll.RecoveryCasesList', dictionary)\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Heading, Text } = useComponentContext()\n\n const { data } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const recoveryCases = (data.recoveryCases ?? []).filter(rc => rc.status !== 'recovered')\n\n const dataViewProps = useDataView({\n data: recoveryCases,\n emptyState: () => (\n <EmptyData title={t('emptyTableTitle')} description={t('emptyTableDescription')} />\n ),\n columns: [\n {\n key: 'originalDebitDate',\n title: t('columns.originalDebitDate'),\n render: recoveryCase => (\n <FlexItem flexGrow={1}>\n <Text>{recoveryCase.originalDebitDate ?? '-'}</Text>\n </FlexItem>\n ),\n },\n {\n key: 'totalAmount',\n title: t('columns.totalAmount'),\n render: recoveryCase => (\n <Text>\n {recoveryCase.eventTotalAmount\n ? formatNumberAsCurrency(parseFloat(recoveryCase.eventTotalAmount))\n : '-'}\n </Text>\n ),\n },\n {\n key: 'amountOutstanding',\n title: t('columns.amountOutstanding'),\n render: recoveryCase => (\n <Text>\n {recoveryCase.amountOutstanding\n ? formatNumberAsCurrency(parseFloat(recoveryCase.amountOutstanding))\n : '-'}\n </Text>\n ),\n },\n {\n key: 'latestErrorCode',\n title: t('columns.latestErrorCode'),\n render: recoveryCase => <ErrorCodeCell errorCode={recoveryCase.latestErrorCode} />,\n },\n {\n key: 'status',\n title: t('columns.status'),\n render: recoveryCase => <StatusCell status={recoveryCase.status} />,\n },\n ],\n itemMenu: recoveryCase => <ResolveButton recoveryCase={recoveryCase} onEvent={onEvent} />,\n })\n\n return (\n <div className={styles.root}>\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={2}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('title')}\n </Heading>\n {recoveryCases.length > 0 && <Text>{t('description')}</Text>}\n </Flex>\n\n <DataView {...dataViewProps} label={t('title')} />\n </Flex>\n </div>\n )\n}\n"],"names":["RecoveryCasesList","props","jsx","BaseComponent","Root","getStatusBadgeStatus","status","ErrorCodeCell","errorCode","useI18n","t","useTranslation","Text","useComponentContext","title","subtitle","useRecoveryCaseErrorCode","jsxs","Flex","StatusCell","Badge","badgeStatus","statusLabel","ResolveButton","recoveryCase","onEvent","Button","recoveryCasesEvents","companyId","dictionary","useComponentDictionary","Heading","data","useRecoveryCasesGetSuspense","recoveryCases","rc","dataViewProps","useDataView","EmptyData","FlexItem","formatNumberAsCurrency","styles","DataView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecoveryCasesList.js","sources":["../../../../../src/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n RecoveryCase,\n RecoveryCaseStatus,\n} from '@gusto/embedded-api/models/components/recoverycase'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useRecoveryCaseErrorCode } from '../useRecoveryCaseErrorCode'\nimport styles from './RecoveryCasesList.module.scss'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { EmptyData, Flex, FlexItem } from '@/components/Common'\nimport { recoveryCasesEvents } from '@/shared/constants'\nimport type { BadgeProps } from '@/components/Common/UI/Badge/BadgeTypes'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\n\ninterface RecoveryCasesListProps extends BaseComponentInterface<'Payroll.RecoveryCasesList'> {\n companyId: string\n}\n\n/** @internal */\nexport function RecoveryCasesList(props: RecoveryCasesListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction getStatusBadgeStatus(status: RecoveryCaseStatus | undefined): BadgeProps['status'] {\n if (status === 'open') {\n return 'info'\n }\n return 'warning'\n}\n\nfunction ErrorCodeCell({ errorCode }: { errorCode: string | null | undefined }) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Text } = useComponentContext()\n const { title, subtitle } = useRecoveryCaseErrorCode(errorCode)\n\n if (!title && !subtitle) {\n return (\n <span aria-label={t('labels.noLatestErrorCodeAriaLabel')} aria-live=\"polite\">\n {t('labels.noLatestErrorCode')}\n </span>\n )\n }\n\n return (\n <Flex flexDirection=\"column\" gap={4}>\n {title && <Text weight=\"semibold\">{title}</Text>}\n {subtitle && <Text>{subtitle}</Text>}\n </Flex>\n )\n}\n\nfunction StatusCell({ status }: { status: RecoveryCaseStatus | undefined }) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Badge } = useComponentContext()\n\n if (!status) {\n return null\n }\n\n const badgeStatus = getStatusBadgeStatus(status)\n const statusLabel = t(`status.${status}`)\n\n return <Badge status={badgeStatus}>{statusLabel}</Badge>\n}\n\nfunction ResolveButton({\n recoveryCase,\n onEvent,\n}: {\n recoveryCase: RecoveryCase\n onEvent: BaseComponentInterface['onEvent']\n}) {\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Button } = useComponentContext()\n\n if (recoveryCase.status !== 'open') {\n return null\n }\n\n return (\n <Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESOLVE, {\n recoveryCaseId: recoveryCase.uuid,\n })\n }}\n >\n {t('cta.resolve')}\n </Button>\n )\n}\n\nfunction Root({ companyId, dictionary, onEvent }: RecoveryCasesListProps) {\n useComponentDictionary('Payroll.RecoveryCasesList', dictionary)\n useI18n('Payroll.RecoveryCasesList')\n const { t } = useTranslation('Payroll.RecoveryCasesList')\n const { Heading, Text } = useComponentContext()\n\n const { data } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const recoveryCases = (data.recoveryCases ?? []).filter(rc => rc.status !== 'recovered')\n\n const dataViewProps = useDataView({\n data: recoveryCases,\n emptyState: () => (\n <EmptyData title={t('emptyTableTitle')} description={t('emptyTableDescription')} />\n ),\n columns: [\n {\n key: 'originalDebitDate',\n title: t('columns.originalDebitDate'),\n render: recoveryCase => (\n <FlexItem flexGrow={1}>\n <Text>{recoveryCase.originalDebitDate ?? '-'}</Text>\n </FlexItem>\n ),\n },\n {\n key: 'totalAmount',\n title: t('columns.totalAmount'),\n render: recoveryCase => (\n <Text>\n {recoveryCase.eventTotalAmount\n ? formatNumberAsCurrency(parseFloat(recoveryCase.eventTotalAmount))\n : '-'}\n </Text>\n ),\n },\n {\n key: 'amountOutstanding',\n title: t('columns.amountOutstanding'),\n render: recoveryCase => (\n <Text>\n {recoveryCase.amountOutstanding\n ? formatNumberAsCurrency(parseFloat(recoveryCase.amountOutstanding))\n : '-'}\n </Text>\n ),\n },\n {\n key: 'latestErrorCode',\n title: t('columns.latestErrorCode'),\n render: recoveryCase => <ErrorCodeCell errorCode={recoveryCase.latestErrorCode} />,\n },\n {\n key: 'status',\n title: t('columns.status'),\n render: recoveryCase => <StatusCell status={recoveryCase.status} />,\n },\n ],\n itemMenu: recoveryCase => <ResolveButton recoveryCase={recoveryCase} onEvent={onEvent} />,\n })\n\n return (\n <div className={styles.root}>\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={2}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('title')}\n </Heading>\n {recoveryCases.length > 0 && <Text>{t('description')}</Text>}\n </Flex>\n\n <DataView {...dataViewProps} label={t('title')} />\n </Flex>\n </div>\n )\n}\n"],"names":["RecoveryCasesList","props","jsx","BaseComponent","Root","getStatusBadgeStatus","status","ErrorCodeCell","errorCode","useI18n","t","useTranslation","Text","useComponentContext","title","subtitle","useRecoveryCaseErrorCode","jsxs","Flex","StatusCell","Badge","badgeStatus","statusLabel","ResolveButton","recoveryCase","onEvent","Button","recoveryCasesEvents","companyId","dictionary","useComponentDictionary","Heading","data","useRecoveryCasesGetSuspense","recoveryCases","rc","dataViewProps","useDataView","EmptyData","FlexItem","formatNumberAsCurrency","styles","DataView"],"mappings":"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"}
|
package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js
CHANGED
|
@@ -7,10 +7,9 @@ import { useRecoveryCaseErrorCode as x } from "../useRecoveryCaseErrorCode.js";
|
|
|
7
7
|
import { BaseComponent as D } from "../../../Base/Base.js";
|
|
8
8
|
import { useBase as B } from "../../../Base/useBase.js";
|
|
9
9
|
import { Flex as d } from "../../../Common/Flex/Flex.js";
|
|
10
|
-
import { useComponentContext as C } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
|
-
import "react";
|
|
12
10
|
import { Form as F } from "../../../Common/Form/Form.js";
|
|
13
11
|
import { useFlow as A } from "../../../Flow/useFlow.js";
|
|
12
|
+
import { useComponentContext as C } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
14
13
|
import { useComponentDictionary as I, useI18n as O } from "../../../../i18n/I18n.js";
|
|
15
14
|
import { recoveryCasesEvents as y } from "../../../../shared/constants.js";
|
|
16
15
|
const R = "gusto-sdk-recovery-cases-resubmit-form";
|
package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RecoveryCasesResubmit.js","sources":["../../../../../src/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useIsMutating } from '@tanstack/react-query'\nimport {\n useRecoveryCasesRedebitMutation,\n mutationKeyRecoveryCasesRedebit,\n} from '@gusto/embedded-api/react-query/recoveryCasesRedebit'\nimport { useRecoveryCasesGet } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport type { RecoveryCasesContextInterface } from '../RecoveryCasesComponents'\nimport { useRecoveryCaseErrorCode } from '../useRecoveryCaseErrorCode'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { recoveryCasesEvents, type EventType } from '@/shared/constants'\n\nconst RECOVERY_CASES_RESUBMIT_FORM_ID = 'gusto-sdk-recovery-cases-resubmit-form'\n\ninterface RecoveryCasesResubmitProps extends BaseComponentInterface<'Payroll.RecoveryCasesResubmit'> {\n recoveryCaseId: string\n}\n\n/** @internal */\nexport function RecoveryCasesResubmit(props: RecoveryCasesResubmitProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, recoveryCaseId }: RecoveryCasesResubmitProps) {\n useComponentDictionary('Payroll.RecoveryCasesResubmit', dictionary)\n const { Heading, Text } = useComponentContext()\n const { onEvent, baseSubmitHandler } = useBase()\n const { companyId } = useFlow<RecoveryCasesContextInterface>()\n\n const { data: recoveryCasesData } = useRecoveryCasesGet({\n companyUuid: companyId,\n })\n\n const recoveryCase = recoveryCasesData?.recoveryCases?.find(rc => rc.uuid === recoveryCaseId)\n\n const { title, subtitle, description } = useRecoveryCaseErrorCode(\n recoveryCase?.latestErrorCode ?? undefined,\n )\n\n const redebitMutation = useRecoveryCasesRedebitMutation()\n\n const onSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n await baseSubmitHandler({}, async () => {\n await redebitMutation.mutateAsync({\n request: {\n recoveryCaseUuid: recoveryCaseId,\n },\n })\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE, {\n recoveryCaseId,\n })\n })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {title && <Heading as=\"h2\">{title}</Heading>}\n {subtitle && <Text>{subtitle}</Text>}\n {description.length > 0 && description}\n {/*\n This empty form is used to connect the Footer's submit button to the submission logic\n via the form attribute. This is semantically incorrect and hidden from assistive tech.\n */}\n <Form id={RECOVERY_CASES_RESUBMIT_FORM_ID} onSubmit={onSubmit} aria-hidden=\"true\">\n {/* Empty form - submission triggered by footer button via form attribute */}\n </Form>\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.RecoveryCasesResubmit')\n const { t } = useTranslation('Payroll.RecoveryCasesResubmit')\n const { Button } = useComponentContext()\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyRecoveryCasesRedebit(),\n })\n const isPending = isMutating > 0\n\n const handleCancel = () => {\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_CANCEL)\n }\n\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel} isDisabled={isPending}>\n {t('cta.cancel')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={RECOVERY_CASES_RESUBMIT_FORM_ID}\n isLoading={isPending}\n >\n {t('cta.resubmit')}\n </Button>\n </Flex>\n )\n}\n\nRecoveryCasesResubmit.Footer = Footer\n"],"names":["RECOVERY_CASES_RESUBMIT_FORM_ID","RecoveryCasesResubmit","props","jsx","BaseComponent","Root","dictionary","recoveryCaseId","useComponentDictionary","Heading","Text","useComponentContext","onEvent","baseSubmitHandler","useBase","companyId","useFlow","recoveryCasesData","useRecoveryCasesGet","recoveryCase","rc","title","subtitle","description","useRecoveryCaseErrorCode","redebitMutation","useRecoveryCasesRedebitMutation","onSubmit","e","recoveryCasesEvents","jsxs","Flex","Form","Footer","useI18n","t","useTranslation","Button","isPending","useIsMutating","mutationKeyRecoveryCasesRedebit"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RecoveryCasesResubmit.js","sources":["../../../../../src/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useIsMutating } from '@tanstack/react-query'\nimport {\n useRecoveryCasesRedebitMutation,\n mutationKeyRecoveryCasesRedebit,\n} from '@gusto/embedded-api/react-query/recoveryCasesRedebit'\nimport { useRecoveryCasesGet } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport type { RecoveryCasesContextInterface } from '../RecoveryCasesComponents'\nimport { useRecoveryCaseErrorCode } from '../useRecoveryCaseErrorCode'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { recoveryCasesEvents, type EventType } from '@/shared/constants'\n\nconst RECOVERY_CASES_RESUBMIT_FORM_ID = 'gusto-sdk-recovery-cases-resubmit-form'\n\ninterface RecoveryCasesResubmitProps extends BaseComponentInterface<'Payroll.RecoveryCasesResubmit'> {\n recoveryCaseId: string\n}\n\n/** @internal */\nexport function RecoveryCasesResubmit(props: RecoveryCasesResubmitProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, recoveryCaseId }: RecoveryCasesResubmitProps) {\n useComponentDictionary('Payroll.RecoveryCasesResubmit', dictionary)\n const { Heading, Text } = useComponentContext()\n const { onEvent, baseSubmitHandler } = useBase()\n const { companyId } = useFlow<RecoveryCasesContextInterface>()\n\n const { data: recoveryCasesData } = useRecoveryCasesGet({\n companyUuid: companyId,\n })\n\n const recoveryCase = recoveryCasesData?.recoveryCases?.find(rc => rc.uuid === recoveryCaseId)\n\n const { title, subtitle, description } = useRecoveryCaseErrorCode(\n recoveryCase?.latestErrorCode ?? undefined,\n )\n\n const redebitMutation = useRecoveryCasesRedebitMutation()\n\n const onSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault()\n await baseSubmitHandler({}, async () => {\n await redebitMutation.mutateAsync({\n request: {\n recoveryCaseUuid: recoveryCaseId,\n },\n })\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE, {\n recoveryCaseId,\n })\n })\n }\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {title && <Heading as=\"h2\">{title}</Heading>}\n {subtitle && <Text>{subtitle}</Text>}\n {description.length > 0 && description}\n {/*\n This empty form is used to connect the Footer's submit button to the submission logic\n via the form attribute. This is semantically incorrect and hidden from assistive tech.\n */}\n <Form id={RECOVERY_CASES_RESUBMIT_FORM_ID} onSubmit={onSubmit} aria-hidden=\"true\">\n {/* Empty form - submission triggered by footer button via form attribute */}\n </Form>\n </Flex>\n )\n}\n\nconst Footer = ({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) => {\n useI18n('Payroll.RecoveryCasesResubmit')\n const { t } = useTranslation('Payroll.RecoveryCasesResubmit')\n const { Button } = useComponentContext()\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyRecoveryCasesRedebit(),\n })\n const isPending = isMutating > 0\n\n const handleCancel = () => {\n onEvent(recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_CANCEL)\n }\n\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel} isDisabled={isPending}>\n {t('cta.cancel')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={RECOVERY_CASES_RESUBMIT_FORM_ID}\n isLoading={isPending}\n >\n {t('cta.resubmit')}\n </Button>\n </Flex>\n )\n}\n\nRecoveryCasesResubmit.Footer = Footer\n"],"names":["RECOVERY_CASES_RESUBMIT_FORM_ID","RecoveryCasesResubmit","props","jsx","BaseComponent","Root","dictionary","recoveryCaseId","useComponentDictionary","Heading","Text","useComponentContext","onEvent","baseSubmitHandler","useBase","companyId","useFlow","recoveryCasesData","useRecoveryCasesGet","recoveryCase","rc","title","subtitle","description","useRecoveryCaseErrorCode","redebitMutation","useRecoveryCasesRedebitMutation","onSubmit","e","recoveryCasesEvents","jsxs","Flex","Form","Footer","useI18n","t","useTranslation","Button","isPending","useIsMutating","mutationKeyRecoveryCasesRedebit"],"mappings":";;;;;;;;;;;;;;AAkBA,MAAMA,IAAkC;AAOjC,SAASC,EAAsBC,GAAmC;AACvE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,gBAAAC,KAA8C;AACxE,EAAAC,EAAuB,iCAAiCF,CAAU;AAClE,QAAM,EAAE,SAAAG,GAAS,MAAAC,EAAA,IAASC,EAAA,GACpB,EAAE,SAAAC,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GACjC,EAAE,WAAAC,EAAA,IAAcC,EAAA,GAEhB,EAAE,MAAMC,EAAA,IAAsBC,EAAoB;AAAA,IACtD,aAAaH;AAAA,EAAA,CACd,GAEKI,IAAeF,GAAmB,eAAe,KAAK,CAAAG,MAAMA,EAAG,SAASb,CAAc,GAEtF,EAAE,OAAAc,GAAO,UAAAC,GAAU,aAAAC,EAAA,IAAgBC;AAAA,IACvCL,GAAc,mBAAmB;AAAA,EAAA,GAG7BM,IAAkBC,EAAA,GAElBC,IAAW,OAAOC,MAAwC;AAC9D,IAAAA,EAAE,eAAA,GACF,MAAMf,EAAkB,CAAA,GAAI,YAAY;AACtC,YAAMY,EAAgB,YAAY;AAAA,QAChC,SAAS;AAAA,UACP,kBAAkBlB;AAAA,QAAA;AAAA,MACpB,CACD,GACDK,EAAQiB,EAAoB,6BAA6B;AAAA,QACvD,gBAAAtB;AAAA,MAAA,CACD;AAAA,IACH,CAAC;AAAA,EACH;AAEA,SACE,gBAAAuB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAAV,KAAS,gBAAAlB,EAACM,GAAA,EAAQ,IAAG,MAAM,UAAAY,GAAM;AAAA,IACjCC,KAAY,gBAAAnB,EAACO,GAAA,EAAM,UAAAY,EAAA,CAAS;AAAA,IAC5BC,EAAY,SAAS,KAAKA;AAAA,sBAK1BS,GAAA,EAAK,IAAIhC,GAAiC,UAAA2B,GAAoB,eAAY,OAAA,CAE3E;AAAA,EAAA,GACF;AAEJ;AAEA,MAAMM,IAAS,CAAC,EAAE,SAAArB,QAA4D;AAC5E,EAAAsB,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtD,EAAE,QAAAC,EAAA,IAAW1B,EAAA,GAKb2B,IAHaC,EAAc;AAAA,IAC/B,aAAaC,EAAA;AAAA,EAAgC,CAC9C,IAC8B;AAM/B,SACE,gBAAAV,EAACC,GAAA,EAAK,gBAAe,YAAW,KAAK,IACnC,UAAA;AAAA,IAAA,gBAAA5B,EAACkC,GAAA,EAAO,SAAQ,aAAY,SANX,MAAM;AACzB,MAAAzB,EAAQiB,EAAoB,6BAA6B;AAAA,IAC3D,GAIuD,YAAYS,GAC5D,UAAAH,EAAE,YAAY,EAAA,CACjB;AAAA,IACA,gBAAAhC;AAAA,MAACkC;AAAA,MAAA;AAAA,QACC,SAAQ;AAAA,QACR,MAAK;AAAA,QACL,MAAMrC;AAAA,QACN,WAAWsC;AAAA,QAEV,YAAE,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EACnB,GACF;AAEJ;AAEArC,EAAsB,SAASgC;"}
|
|
@@ -3,7 +3,6 @@ import { useTranslation as a, Trans as c } from "react-i18next";
|
|
|
3
3
|
import p from "./RecoveryCaseErrorCode.module.scss.js";
|
|
4
4
|
import { Flex as C } from "../../Common/Flex/Flex.js";
|
|
5
5
|
import { useComponentContext as R } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
-
import "react";
|
|
7
6
|
import { useI18n as f } from "../../../i18n/I18n.js";
|
|
8
7
|
function h(s) {
|
|
9
8
|
switch (s) {
|
|
@@ -19,7 +18,7 @@ function h(s) {
|
|
|
19
18
|
return "bankError";
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
|
-
function
|
|
21
|
+
function v(s) {
|
|
23
22
|
f("Payroll.RecoveryCasesResubmit");
|
|
24
23
|
const { t: r } = a("Payroll.RecoveryCasesResubmit"), { Text: o } = R();
|
|
25
24
|
if (!s)
|
|
@@ -60,6 +59,6 @@ function g(s) {
|
|
|
60
59
|
};
|
|
61
60
|
}
|
|
62
61
|
export {
|
|
63
|
-
|
|
62
|
+
v as useRecoveryCaseErrorCode
|
|
64
63
|
};
|
|
65
64
|
//# sourceMappingURL=useRecoveryCaseErrorCode.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRecoveryCaseErrorCode.js","sources":["../../../../src/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './RecoveryCaseErrorCode.module.scss'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\n/** @internal */\nexport interface RecoveryCaseErrorCodeContent {\n /** Localized title for the error code, or `null` when no error code is set. */\n title: string | null\n /** Localized subtitle for the error code, or `null` when no error code is set. */\n subtitle: string | null\n /** Localized description nodes for the error code, including any per-code instructions. Empty when no error code is set. */\n description: ReactNode[]\n}\n\ntype ErrorCodeKey = 'R01' | 'R02' | 'R16' | 'R29' | 'bankError'\n\nfunction getErrorCodeKey(errorCode: string | null | undefined): ErrorCodeKey {\n switch (errorCode) {\n case 'R01':\n return 'R01'\n case 'R02':\n return 'R02'\n case 'R16':\n return 'R16'\n case 'R29':\n return 'R29'\n default:\n return 'bankError'\n }\n}\n\n/** @internal */\nexport function useRecoveryCaseErrorCode(\n errorCode: string | null | undefined,\n): RecoveryCaseErrorCodeContent {\n useI18n('Payroll.RecoveryCasesResubmit')\n const { t } = useTranslation('Payroll.RecoveryCasesResubmit')\n const { Text } = useComponentContext()\n\n if (!errorCode) {\n return {\n title: null,\n subtitle: null,\n description: [],\n }\n }\n\n const errorCodeKey = getErrorCodeKey(errorCode)\n\n const transComponents = {\n medium: <Text as=\"span\" weight=\"medium\" />,\n }\n\n const description: ReactNode[] = [\n <Text key=\"body\">\n <Trans t={t} i18nKey={`errorCodes.${errorCodeKey}.body`} components={transComponents} />\n </Text>,\n ]\n\n if (errorCodeKey === 'R29') {\n const achCodes = Object.values(t('errorCodes.R29.achCodes', { returnObjects: true }))\n description.push(\n <Flex key=\"instruction\" flexDirection=\"column\" gap={16}>\n <Text>{t('errorCodes.R29.listDescription')}</Text>\n <ul className={styles.compactList}>\n {achCodes.map((code, index) => (\n <li key={index}>{code}</li>\n ))}\n </ul>\n <Text>\n <Trans t={t} i18nKey=\"errorCodes.R29.instruction\" components={transComponents} />\n </Text>\n </Flex>,\n )\n } else {\n const instruction = t(`errorCodes.${errorCodeKey}.instruction`)\n if (instruction) {\n description.push(\n <Text key=\"instruction\">\n <Trans\n t={t}\n i18nKey={`errorCodes.${errorCodeKey}.instruction`}\n components={transComponents}\n />\n </Text>,\n )\n }\n }\n\n return {\n title: t(`errorCodes.${errorCodeKey}.title`),\n subtitle: t(`errorCodes.${errorCodeKey}.subtitle`),\n description,\n }\n}\n"],"names":["getErrorCodeKey","errorCode","useRecoveryCaseErrorCode","useI18n","t","useTranslation","Text","useComponentContext","errorCodeKey","transComponents","jsx","description","Trans","achCodes","jsxs","Flex","styles","code","index"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useRecoveryCaseErrorCode.js","sources":["../../../../src/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './RecoveryCaseErrorCode.module.scss'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\n/** @internal */\nexport interface RecoveryCaseErrorCodeContent {\n /** Localized title for the error code, or `null` when no error code is set. */\n title: string | null\n /** Localized subtitle for the error code, or `null` when no error code is set. */\n subtitle: string | null\n /** Localized description nodes for the error code, including any per-code instructions. Empty when no error code is set. */\n description: ReactNode[]\n}\n\ntype ErrorCodeKey = 'R01' | 'R02' | 'R16' | 'R29' | 'bankError'\n\nfunction getErrorCodeKey(errorCode: string | null | undefined): ErrorCodeKey {\n switch (errorCode) {\n case 'R01':\n return 'R01'\n case 'R02':\n return 'R02'\n case 'R16':\n return 'R16'\n case 'R29':\n return 'R29'\n default:\n return 'bankError'\n }\n}\n\n/** @internal */\nexport function useRecoveryCaseErrorCode(\n errorCode: string | null | undefined,\n): RecoveryCaseErrorCodeContent {\n useI18n('Payroll.RecoveryCasesResubmit')\n const { t } = useTranslation('Payroll.RecoveryCasesResubmit')\n const { Text } = useComponentContext()\n\n if (!errorCode) {\n return {\n title: null,\n subtitle: null,\n description: [],\n }\n }\n\n const errorCodeKey = getErrorCodeKey(errorCode)\n\n const transComponents = {\n medium: <Text as=\"span\" weight=\"medium\" />,\n }\n\n const description: ReactNode[] = [\n <Text key=\"body\">\n <Trans t={t} i18nKey={`errorCodes.${errorCodeKey}.body`} components={transComponents} />\n </Text>,\n ]\n\n if (errorCodeKey === 'R29') {\n const achCodes = Object.values(t('errorCodes.R29.achCodes', { returnObjects: true }))\n description.push(\n <Flex key=\"instruction\" flexDirection=\"column\" gap={16}>\n <Text>{t('errorCodes.R29.listDescription')}</Text>\n <ul className={styles.compactList}>\n {achCodes.map((code, index) => (\n <li key={index}>{code}</li>\n ))}\n </ul>\n <Text>\n <Trans t={t} i18nKey=\"errorCodes.R29.instruction\" components={transComponents} />\n </Text>\n </Flex>,\n )\n } else {\n const instruction = t(`errorCodes.${errorCodeKey}.instruction`)\n if (instruction) {\n description.push(\n <Text key=\"instruction\">\n <Trans\n t={t}\n i18nKey={`errorCodes.${errorCodeKey}.instruction`}\n components={transComponents}\n />\n </Text>,\n )\n }\n }\n\n return {\n title: t(`errorCodes.${errorCodeKey}.title`),\n subtitle: t(`errorCodes.${errorCodeKey}.subtitle`),\n description,\n }\n}\n"],"names":["getErrorCodeKey","errorCode","useRecoveryCaseErrorCode","useI18n","t","useTranslation","Text","useComponentContext","errorCodeKey","transComponents","jsx","description","Trans","achCodes","jsxs","Flex","styles","code","index"],"mappings":";;;;;;AAmBA,SAASA,EAAgBC,GAAoD;AAC3E,UAAQA,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EAAA;AAEb;AAGO,SAASC,EACdD,GAC8B;AAC9B,EAAAE,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtD,EAAE,MAAAC,EAAA,IAASC,EAAA;AAEjB,MAAI,CAACN;AACH,WAAO;AAAA,MACL,OAAO;AAAA,MACP,UAAU;AAAA,MACV,aAAa,CAAA;AAAA,IAAC;AAIlB,QAAMO,IAAeR,EAAgBC,CAAS,GAExCQ,IAAkB;AAAA,IACtB,QAAQ,gBAAAC,EAACJ,GAAA,EAAK,IAAG,QAAO,QAAO,SAAA,CAAS;AAAA,EAAA,GAGpCK,IAA2B;AAAA,IAC/B,gBAAAD,EAACJ,GAAA,EACC,UAAA,gBAAAI,EAACE,GAAA,EAAM,GAAAR,GAAM,SAAS,cAAcI,CAAY,SAAS,YAAYC,EAAA,CAAiB,EAAA,GAD9E,MAEV;AAAA,EAAA;AAGF,MAAID,MAAiB,OAAO;AAC1B,UAAMK,IAAW,OAAO,OAAOT,EAAE,2BAA2B,EAAE,eAAe,GAAA,CAAM,CAAC;AACpF,IAAAO,EAAY;AAAA,MACV,gBAAAG,EAACC,GAAA,EAAuB,eAAc,UAAS,KAAK,IAClD,UAAA;AAAA,QAAA,gBAAAL,EAACJ,GAAA,EAAM,UAAAF,EAAE,gCAAgC,EAAA,CAAE;AAAA,QAC3C,gBAAAM,EAAC,MAAA,EAAG,WAAWM,EAAO,aACnB,UAAAH,EAAS,IAAI,CAACI,GAAMC,MACnB,gBAAAR,EAAC,MAAA,EAAgB,UAAAO,KAARC,CAAa,CACvB,GACH;AAAA,QACA,gBAAAR,EAACJ,KACC,UAAA,gBAAAI,EAACE,GAAA,EAAM,GAAAR,GAAM,SAAQ,8BAA6B,YAAYK,EAAA,CAAiB,EAAA,CACjF;AAAA,MAAA,EAAA,GATQ,aAUV;AAAA,IAAA;AAAA,EAEJ;AAEE,IADoBL,EAAE,cAAcI,CAAY,cAAc,KAE5DG,EAAY;AAAA,wBACTL,GAAA,EACC,UAAA,gBAAAI;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,GAAAR;AAAA,UACA,SAAS,cAAcI,CAAY;AAAA,UACnC,YAAYC;AAAA,QAAA;AAAA,MAAA,KAJN,aAMV;AAAA,IAAA;AAKN,SAAO;AAAA,IACL,OAAOL,EAAE,cAAcI,CAAY,QAAQ;AAAA,IAC3C,UAAUJ,EAAE,cAAcI,CAAY,WAAW;AAAA,IACjD,aAAAG;AAAA,EAAA;AAEJ;"}
|
|
@@ -11,11 +11,13 @@ import "@gusto/embedded-api/models/errors/apierror";
|
|
|
11
11
|
import "@gusto/embedded-api/models/errors/gustoembeddederror";
|
|
12
12
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
13
13
|
import "@gusto/embedded-api/models/errors/httpclienterrors";
|
|
14
|
+
import "dompurify";
|
|
15
|
+
import "../../contexts/LocaleProvider/useLocale.js";
|
|
14
16
|
import "../../shared/constants.js";
|
|
15
17
|
import "../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
18
|
import "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
17
19
|
import { retryAsync as x } from "../../helpers/retryAsync.js";
|
|
18
|
-
const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1,
|
|
20
|
+
const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1, $ = ({
|
|
19
21
|
companyId: e,
|
|
20
22
|
payrollId: r,
|
|
21
23
|
employeeUuids: a,
|
|
@@ -31,7 +33,7 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
|
|
|
31
33
|
enabled: !!o?.payPeriod?.payScheduleUuid
|
|
32
34
|
}
|
|
33
35
|
), P = y(async () => {
|
|
34
|
-
const
|
|
36
|
+
const s = await p({
|
|
35
37
|
request: {
|
|
36
38
|
companyId: e,
|
|
37
39
|
payrollId: r,
|
|
@@ -41,8 +43,8 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
|
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
});
|
|
44
|
-
f(
|
|
45
|
-
}, [e, r, p, h, n, l]),
|
|
46
|
+
f(s.payrollPrepared), s.payrollPrepared && (t.current = !0, l?.(s.payrollPrepared));
|
|
47
|
+
}, [e, r, p, h, n, l]), i = y(async () => {
|
|
46
48
|
await d(
|
|
47
49
|
null,
|
|
48
50
|
() => x(P, {
|
|
@@ -53,11 +55,11 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
|
|
|
53
55
|
);
|
|
54
56
|
}, [d, P]);
|
|
55
57
|
b(() => {
|
|
56
|
-
u.current || (u.current = !0,
|
|
57
|
-
}, [
|
|
58
|
+
u.current || (u.current = !0, i());
|
|
59
|
+
}, [i]);
|
|
58
60
|
const g = c && !t.current, R = c && t.current, A = g || E;
|
|
59
61
|
return {
|
|
60
|
-
handlePreparePayroll:
|
|
62
|
+
handlePreparePayroll: i,
|
|
61
63
|
preparedPayroll: o,
|
|
62
64
|
paySchedule: S?.payScheduleShow,
|
|
63
65
|
isLoading: A,
|
|
@@ -66,6 +68,6 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
|
|
|
66
68
|
};
|
|
67
69
|
};
|
|
68
70
|
export {
|
|
69
|
-
|
|
71
|
+
$ as usePreparedPayrollData
|
|
70
72
|
};
|
|
71
73
|
//# sourceMappingURL=usePreparedPayrollData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AACF,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMf,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMgB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAApB;AAAA,MACA,eAAeQ,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAL;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAAD;AAAA,QAAA;AAAA,MACF;AAAA,IACF,CACD;AACD,IAAAO,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BP,IAAcmB,EAAO,eAAe;AAAA,EAExC,GAAG,CAACvB,GAAWC,GAAWI,GAAgBW,GAAkBb,GAAQC,CAAW,CAAC,GAE1EoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa5B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACmB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
|