@gusto/embedded-react-sdk 0.48.2 → 0.48.3
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 +15 -0
- package/dist/components/Company/AssignSignatory/AssignSignatory.d.ts +33 -2
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.d.ts +23 -2
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +2 -0
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/index.d.ts +2 -2
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.d.ts +10 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -5
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.d.ts +24 -2
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +3 -0
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/index.d.ts +2 -2
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.d.ts +6 -0
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -5
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/SignatoryForm.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/SignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.d.ts +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/index.d.ts +2 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.d.ts +9 -0
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -7
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccount.d.ts +26 -0
- package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountComponents.d.ts +8 -0
- package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +3 -0
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -5
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/AccountView.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountList/AccountView.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Head.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountList/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +3 -0
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Head.d.ts +1 -0
- package/dist/components/Company/BankAccount/BankAccountVerify/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/stateMachine.d.ts +1 -0
- package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.d.ts +21 -0
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Head.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/DocumentList/Head.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/List.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/ManageSignatories.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/DocumentList/ManageSignatories.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -5
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +37 -0
- package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.d.ts +31 -2
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/assignSignatoryState.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/assignSignatoryState.js.map +1 -1
- package/dist/components/Company/DocumentSigner/documentSignerStateMachine.d.ts +4 -0
- package/dist/components/Company/DocumentSigner/documentSignerStateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.d.ts +41 -0
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js.map +1 -1
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.d.ts +40 -10
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.js.map +1 -1
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.d.ts +111 -0
- package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/stateMachine.d.ts +1 -0
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/useDocumentSigner.d.ts +1 -0
- package/dist/components/Company/FederalTaxes/Actions.d.ts +1 -0
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.d.ts +13 -0
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.d.ts +1 -0
- package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Head.d.ts +1 -0
- package/dist/components/Company/FederalTaxes/Head.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +3 -0
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +9 -10
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.d.ts +1 -0
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +7 -8
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.d.ts +3 -0
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/Head.d.ts +1 -0
- package/dist/components/Company/Industry/Head.js.map +1 -1
- package/dist/components/Company/Industry/Industry.d.ts +21 -0
- package/dist/components/Company/Industry/Industry.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.d.ts +1 -0
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Industry/index.d.ts +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.d.ts +1 -0
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.d.ts +3 -0
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Head.d.ts +1 -0
- package/dist/components/Company/Locations/LocationForm/Head.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.d.ts +16 -0
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -5
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/Locations.d.ts +26 -0
- package/dist/components/Company/Locations/Locations.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.d.ts +1 -0
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Head.d.ts +1 -0
- package/dist/components/Company/Locations/LocationsList/Head.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.d.ts +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.d.ts +23 -2
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/index.d.ts +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -5
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/Locations/locationsStateMachine.d.ts +4 -0
- package/dist/components/Company/Locations/locationsStateMachine.js.map +1 -1
- package/dist/components/Company/Locations/stateMachine.d.ts +1 -1
- package/dist/components/Company/Locations/stateMachine.js +0 -1
- package/dist/components/Company/Locations/stateMachine.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlow.d.ts +25 -0
- package/dist/components/Company/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlowComponents.d.ts +19 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/onboardingStateMachine.d.ts +1 -0
- package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.d.ts +1 -0
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.d.ts +1 -0
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.d.ts +18 -0
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +4 -5
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.d.ts +36 -3
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleComponents.d.ts +3 -0
- package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.d.ts +1 -0
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleList.d.ts +1 -0
- package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +1 -0
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +136 -0
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/index.d.ts +2 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +48 -26
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +134 -0
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +25 -0
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +6 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +16 -18
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Head.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesForm/Head.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.d.ts +31 -0
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Head.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/Head.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +16 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Company/exports/companyOnboarding.d.ts +7 -6
- package/dist/components/Company/exports/companyOnboarding.js +18 -16
- package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
- package/dist/components/Company/index.d.ts +1 -17
- package/dist/components/Contractor/Address/Actions.d.ts +1 -0
- package/dist/components/Contractor/Address/Actions.js.map +1 -1
- package/dist/components/Contractor/Address/Address.d.ts +36 -1
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.d.ts +1 -0
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/Head.d.ts +1 -0
- package/dist/components/Contractor/Address/Head.js.map +1 -1
- package/dist/components/Contractor/Address/index.d.ts +1 -1
- package/dist/components/Contractor/Address/useAddress.d.ts +8 -1
- package/dist/components/Contractor/Address/useAddress.js +6 -7
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.d.ts +22 -9
- package/dist/components/Contractor/ContractorList/index.js +1 -3
- package/dist/components/Contractor/ContractorList/index.js.map +1 -1
- package/dist/components/Contractor/ContractorList/useContractorList.d.ts +3 -5
- package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.d.ts +33 -9
- package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/types.d.ts +7 -0
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.d.ts +58 -0
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +28 -2
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.d.ts +1 -0
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.d.ts +1 -0
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.d.ts +33 -16
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.d.ts +1 -9
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +11 -15
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/types.d.ts +7 -0
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.d.ts +40 -3
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +1 -2
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +4 -18
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js +0 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/helpers.d.ts +1 -0
- package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.d.ts +40 -0
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlow.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +13 -0
- package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +2 -0
- package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.d.ts +30 -3
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +1 -2
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.d.ts +15 -3
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +1 -2
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +25 -2
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/index.d.ts +1 -2
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +28 -3
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +1 -2
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +1 -0
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/types.d.ts +8 -4
- package/dist/components/Contractor/Profile/ContractorProfile.d.ts +30 -6
- package/dist/components/Contractor/Profile/ContractorProfile.js +5 -9
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.d.ts +2 -0
- package/dist/components/Contractor/Profile/ContractorProfileForm.js.map +1 -1
- package/dist/components/Contractor/Profile/index.d.ts +1 -2
- package/dist/components/Contractor/Profile/useContractorProfile.d.ts +16 -2
- package/dist/components/Contractor/Profile/useContractorProfile.js +28 -26
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.d.ts +21 -1
- package/dist/components/Contractor/Submit/Submit.js +1 -2
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/Submit/SubmitDone.d.ts +1 -0
- package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -1
- package/dist/components/Contractor/exports/contractorManagement.d.ts +6 -6
- package/dist/components/Contractor/exports/contractorOnboarding.d.ts +9 -4
- package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +29 -61
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +19 -23
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js +5 -0
- package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/Deductions.d.ts +1 -3
- package/dist/components/Employee/Deductions/onboarding/Deductions.js +21 -26
- package/dist/components/Employee/Deductions/onboarding/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js +55 -50
- package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +0 -4
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js +33 -43
- package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
- package/dist/components/Employee/Deductions/onboarding/stateMachine.d.ts +0 -1
- package/dist/components/Employee/Deductions/onboarding/stateMachine.js +36 -60
- package/dist/components/Employee/Deductions/onboarding/stateMachine.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js +63 -61
- package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +1 -18
- package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +2 -25
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +1 -4
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +2 -48
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +22 -14
- package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +3 -20
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +3 -15
- package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.d.ts +3 -12
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +2 -11
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +3 -22
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +3 -17
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/workAddressSchema.d.ts +3 -10
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +2 -18
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +144 -131
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +3 -3
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +167 -167
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +40 -35
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +3 -4
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +1 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +90 -82
- package/dist/index.js.map +1 -1
- package/dist/partner-hook-utils/form/buildFormSchema.d.ts +27 -4
- package/dist/partner-hook-utils/form/buildFormSchema.js.map +1 -1
- package/dist/shared/constants.d.ts +0 -4
- package/dist/shared/constants.js +0 -2
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/docs/reference/endpoint-inventory.json +11 -4
- package/package.json +6 -6
- package/dist/components/Contractor/index.d.ts +0 -14
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.d.ts +0 -8
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.js +0 -44
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.js.map +0 -1
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.module.scss.js +0 -12
- package/dist/components/Employee/Deductions/onboarding/IncludeDeductions/IncludeDeductions.module.scss.js.map +0 -1
package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastAchSubmissionBlockerBanner.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollsubmissionblockertype'\nimport type { PaymentSpeed } from '@gusto/embedded-api-v-2025-11-15/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\nexport const FastAchSubmissionBlockerBanner = ({\n blocker,\n selectedValue,\n onUnblockOptionChange,\n paymentSpeed,\n}: FastAchSubmissionBlockerBannerProps) => {\n const { t } = useTranslation('Contractor.Payments.CreatePayment')\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 ? 'previewPresentation.submissionBlockers.fast_ach_threshold_exceeded.title'\n : 'previewPresentation.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('previewPresentation.submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('previewPresentation.submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map(option => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('previewPresentation.submissionBlockers.fastAchOptions.wireLabel')\n : t('previewPresentation.submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('previewPresentation.submissionBlockers.fastAchOptions.wireDescription')\n : t(\n 'previewPresentation.submissionBlockers.fastAchOptions.directDepositDescription',\n )\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(\n 'previewPresentation.submissionBlockers.fastAchOptions.wireFastestBadge',\n )}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t(\n 'previewPresentation.submissionBlockers.fastAchOptions.contractorPayDate',\n {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n },\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/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollsubmissionblockertype'\nimport type { PaymentSpeed } from '@gusto/embedded-api-v-2025-11-15/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('Contractor.Payments.CreatePayment')\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 ? 'previewPresentation.submissionBlockers.fast_ach_threshold_exceeded.title'\n : 'previewPresentation.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('previewPresentation.submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('previewPresentation.submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map(option => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('previewPresentation.submissionBlockers.fastAchOptions.wireLabel')\n : t('previewPresentation.submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('previewPresentation.submissionBlockers.fastAchOptions.wireDescription')\n : t(\n 'previewPresentation.submissionBlockers.fastAchOptions.directDepositDescription',\n )\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(\n 'previewPresentation.submissionBlockers.fastAchOptions.wireFastestBadge',\n )}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t(\n 'previewPresentation.submissionBlockers.fastAchOptions.contractorPayDate',\n {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n },\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":";;;;;;;AAkBO,MAAMA,IAAiC,CAAC;AAAA,EAC7C,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,cAAAC;AACF,MAA2C;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC,GAC1D,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,6EACA,iFAGsC,EAAE,MAAMV,KAAgB,SAAS,GACzE,UAAA,gBAAAW,EAACC,KAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAC,EAACT,GAAA,EAAM,UAAAH,EAAE,mEAAmE,EAAA,CAAE;AAAA,IAC9E,gBAAAY;AAAA,MAACR;AAAA,MAAA;AAAA,QACC,OAAOJ,EAAE,2EAA2E;AAAA,QACpF,yBAAuB;AAAA,QACvB,SACEJ,EAAQ,gBAAgB,IAAI,CAAAiB,MAAU;AACpC,gBAAMC,IAASD,EAAO,gBAAgB,WAChCE,IACFf,EADUc,IACR,oEACA,0EADiE,GAEjEE,IACFhB,EADgBc,IACd,0EAEA,gFAFuE;AAK7E,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;AAAA,kBACC;AAAA,gBAAA;AAAA,cACF,GACF;AAAA,cAEDa,EAAO,aACN,gBAAAD,EAACP,GAAA,EAAM,QAAO,QACX,UAAAL;AAAA,gBACC;AAAA,gBACA;AAAA,kBACE,MAAMO,EAAc,oBAAoBM,EAAO,SAAS;AAAA,gBAAA;AAAA,cAC1D,EACF,CACF;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;"}
|
|
@@ -2,5 +2,6 @@ import { PayrollSubmissionBlockerType } from '@gusto/embedded-api-v-2025-11-15/m
|
|
|
2
2
|
interface GenericBlockerProps {
|
|
3
3
|
blocker: PayrollSubmissionBlockerType;
|
|
4
4
|
}
|
|
5
|
+
/** @internal */
|
|
5
6
|
export declare const GenericBlocker: ({ blocker }: GenericBlockerProps) => import("react").JSX.Element;
|
|
6
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericBlocker.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/GenericBlocker.tsx"],"sourcesContent":["import type { PayrollSubmissionBlockerType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollsubmissionblockertype'\nimport { useTranslation } from 'react-i18next'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface GenericBlockerProps {\n blocker: PayrollSubmissionBlockerType\n}\n\nexport const GenericBlocker = ({ blocker }: GenericBlockerProps) => {\n const { Banner, Text } = useComponentContext()\n const { t } = useTranslation('Contractor.Payments.CreatePayment')\n\n return (\n <Banner\n status=\"error\"\n title={blocker.blockerName || t('previewPresentation.submissionBlockers.genericBlockerTitle')}\n >\n <Text>{t('previewPresentation.submissionBlockers.genericBlockerMessage')}</Text>\n </Banner>\n )\n}\n"],"names":["GenericBlocker","blocker","Banner","Text","useComponentContext","t","useTranslation","jsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"GenericBlocker.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/GenericBlocker.tsx"],"sourcesContent":["import type { PayrollSubmissionBlockerType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollsubmissionblockertype'\nimport { useTranslation } from 'react-i18next'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface GenericBlockerProps {\n blocker: PayrollSubmissionBlockerType\n}\n\n/** @internal */\nexport const GenericBlocker = ({ blocker }: GenericBlockerProps) => {\n const { Banner, Text } = useComponentContext()\n const { t } = useTranslation('Contractor.Payments.CreatePayment')\n\n return (\n <Banner\n status=\"error\"\n title={blocker.blockerName || t('previewPresentation.submissionBlockers.genericBlockerTitle')}\n >\n <Text>{t('previewPresentation.submissionBlockers.genericBlockerMessage')}</Text>\n </Banner>\n )\n}\n"],"names":["GenericBlocker","blocker","Banner","Text","useComponentContext","t","useTranslation","jsx"],"mappings":";;;AASO,MAAMA,IAAiB,CAAC,EAAE,SAAAC,QAAmC;AAClE,QAAM,EAAE,QAAAC,GAAQ,MAAAC,EAAA,IAASC,EAAA,GACnB,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC;AAEhE,SACE,gBAAAC;AAAA,IAACL;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,OAAOD,EAAQ,eAAeI,EAAE,4DAA4D;AAAA,MAE5F,UAAA,gBAAAE,EAACJ,GAAA,EAAM,UAAAE,EAAE,8DAA8D,EAAA,CAAE;AAAA,IAAA;AAAA,EAAA;AAG/E;"}
|
|
@@ -13,5 +13,6 @@ interface PreviewPresentationProps {
|
|
|
13
13
|
onUnblockOptionChange?: (blockerType: string, value: string) => void;
|
|
14
14
|
paymentSpeed?: PaymentSpeed;
|
|
15
15
|
}
|
|
16
|
+
/** @internal */
|
|
16
17
|
export declare const PreviewPresentation: ({ contractorPaymentGroup, contractors, onBackToEdit, onSubmit, isLoading, bankAccount, selectedUnblockOptions, onUnblockOptionChange, paymentSpeed, }: PreviewPresentationProps) => import("react").JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PreviewPresentation.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/PreviewPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { ContractorPaymentGroupPreview } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgrouppreview'\nimport type { ContractorPaymentForGroupPreview } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentforgrouppreview'\nimport { useMemo } from 'react'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport type { CompanyBankAccount } from '@gusto/embedded-api-v-2025-11-15/models/components/companybankaccount'\nimport type { PaymentSpeed } from '@gusto/embedded-api-v-2025-11-15/models/components/paymentconfigs'\nimport { getContractorDisplayName } from './helpers'\nimport { FastAchSubmissionBlockerBanner } from './FastAchSubmissionBlockerBanner'\nimport { GenericBlocker } from './GenericBlocker'\nimport { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatHoursDisplay } from '@/components/Payroll/helpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES } from '@/shared/constants'\n\nconst ZERO_HOURS_DISPLAY = '0.000'\n\ninterface PreviewPresentationProps {\n contractorPaymentGroup: ContractorPaymentGroupPreview\n contractors: Contractor[]\n onBackToEdit: () => void\n onSubmit: () => void\n isLoading: boolean\n bankAccount?: CompanyBankAccount\n selectedUnblockOptions?: Record<string, string>\n onUnblockOptionChange?: (blockerType: string, value: string) => void\n paymentSpeed?: PaymentSpeed\n}\n\nexport const PreviewPresentation = ({\n contractorPaymentGroup,\n contractors,\n onBackToEdit,\n onSubmit,\n isLoading,\n bankAccount,\n selectedUnblockOptions = {},\n onUnblockOptionChange,\n paymentSpeed,\n}: PreviewPresentationProps) => {\n const { Button, Text, Heading, Alert } = useComponentContext()\n useI18n('Contractor.Payments.CreatePayment')\n const { t } = useTranslation('Contractor.Payments.CreatePayment', {\n keyPrefix: 'previewPresentation',\n })\n const currencyFormatter = useNumberFormatter()\n\n const formatWageType = (contractor: ContractorPaymentForGroupPreview) => {\n if (contractor.wageType === 'Hourly' && contractor.hourlyRate) {\n return `${t('wageTypes.hourly')} ${currencyFormatter(Number(contractor.hourlyRate || '0'))}${t('perHour')}`\n }\n return contractor.wageType\n }\n\n const totals = useMemo(\n () =>\n contractorPaymentGroup.contractorPayments?.reduce(\n (acc, contractor) => {\n acc.wageAmount += Number(contractor.wage || '0')\n acc.bonusAmount += Number(contractor.bonus || '0')\n acc.reimbursementAmount += Number(contractor.reimbursement || '0')\n acc.totalAmount += Number(contractor.wageTotal || '0')\n return acc\n },\n { wageAmount: 0, bonusAmount: 0, reimbursementAmount: 0, totalAmount: 0 },\n ),\n [contractorPaymentGroup.contractorPayments],\n )\n\n const contractorPayments = contractorPaymentGroup.contractorPayments || []\n\n const submissionBlockers = (contractorPaymentGroup.submissionBlockers || []).filter(\n blocker => blocker.status === 'unresolved',\n )\n\n const hasUnresolvableBlockers = submissionBlockers.some(\n blocker => !PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blocker.blockerType || ''),\n )\n\n const hasUnselectedBlockers = submissionBlockers.some(\n blocker => !selectedUnblockOptions[blocker.blockerType || ''],\n )\n\n const isSubmitDisabled =\n isLoading ||\n (submissionBlockers.length > 0 && (hasUnresolvableBlockers || hasUnselectedBlockers))\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex justifyContent=\"flex-end\" gap={16}>\n <Flex flexDirection=\"column\" gap={2}>\n <Heading as=\"h2\">{t('reviewAndSubmitTitle')}</Heading>\n <Text variant=\"supporting\">\n {t('reviewSubtitle', { debitDate: contractorPaymentGroup.debitDate })}\n </Text>\n </Flex>\n <Flex justifyContent=\"flex-end\" gap={16}>\n <Button onClick={onBackToEdit} variant=\"secondary\">\n {t('editButton')}\n </Button>\n <Button\n onClick={onSubmit}\n variant=\"primary\"\n isLoading={isLoading}\n isDisabled={isSubmitDisabled}\n >\n {t('submitButton')}\n </Button>\n </Flex>\n </Flex>\n\n <Alert\n status=\"info\"\n label={t('alerts.submitPaymentsDeadline', {\n checkDate: contractorPaymentGroup.checkDate,\n debitDate: contractorPaymentGroup.debitDate,\n })}\n />\n\n {submissionBlockers.length > 0 &&\n onUnblockOptionChange &&\n submissionBlockers.map(blocker => {\n const blockerType = blocker.blockerType || ''\n\n if (PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType)) {\n return (\n <FastAchSubmissionBlockerBanner\n key={blockerType}\n blocker={blocker}\n selectedValue={selectedUnblockOptions[blockerType]}\n onUnblockOptionChange={onUnblockOptionChange}\n paymentSpeed={paymentSpeed}\n />\n )\n }\n\n return <GenericBlocker key={blockerType} blocker={blocker} />\n })}\n\n {/* Payment Summary */}\n <Heading as=\"h3\">{t('paymentSummaryTitle')}</Heading>\n <DataView\n columns={[\n {\n title: t('summaryTableHeaders.totalAmount'),\n render: () => currencyFormatter(Number(contractorPaymentGroup.totals?.amount || '0')),\n },\n {\n title: t('summaryTableHeaders.debitAmount'),\n render: () =>\n currencyFormatter(Number(contractorPaymentGroup.totals?.debitAmount || '0')),\n },\n {\n title: t('summaryTableHeaders.debitAccount'),\n render: () => bankAccount?.hiddenAccountNumber ?? t('naDebitAccount'),\n },\n {\n title: t('summaryTableHeaders.debitDate'),\n render: () => contractorPaymentGroup.debitDate || 'debitDate',\n },\n {\n title: t('summaryTableHeaders.contractorPayDate'),\n render: () => contractorPaymentGroup.checkDate || 'contractorPayDate',\n },\n ]}\n data={[contractorPaymentGroup]}\n label=\"Payment Summary\"\n />\n\n {/* Contractor Payments Table */}\n <DataView\n columns={[\n {\n title: t('contractorTableHeaders.contractor'),\n render: contractorPayment =>\n getContractorDisplayName(\n contractors.find(\n contractor => contractor.uuid === contractorPayment.contractorUuid,\n ),\n ),\n },\n {\n title: t('contractorTableHeaders.wageType'),\n render: contractorPayment => formatWageType(contractorPayment),\n },\n {\n title: t('contractorTableHeaders.paymentMethod'),\n render: contractorPayment => contractorPayment.paymentMethod || 'N/A',\n },\n {\n title: t('contractorTableHeaders.hours'),\n render: contractorPayment => {\n const hours = Number(contractorPayment.hours || '0')\n return contractorPayment.wageType === 'Hourly' && hours\n ? formatHoursDisplay(hours)\n : ZERO_HOURS_DISPLAY\n },\n },\n {\n title: t('contractorTableHeaders.wage'),\n render: contractorPayment =>\n contractorPayment.wageType === 'Fixed' && contractorPayment.wage\n ? currencyFormatter(Number(contractorPayment.wage || '0'))\n : currencyFormatter(0),\n },\n {\n title: t('contractorTableHeaders.bonus'),\n render: contractorPayment => currencyFormatter(Number(contractorPayment.bonus || '0')),\n },\n {\n title: t('contractorTableHeaders.reimbursement'),\n render: contractorPayment =>\n currencyFormatter(Number(contractorPayment.reimbursement || '0')),\n },\n {\n title: t('contractorTableHeaders.total'),\n render: contractorPayment =>\n currencyFormatter(Number(contractorPayment.wageTotal || '0')),\n },\n ]}\n data={contractorPayments}\n footer={() => ({\n 'column-0': t('totalsLabel'),\n 'column-4': currencyFormatter(totals?.wageAmount ?? 0),\n 'column-5': currencyFormatter(totals?.bonusAmount ?? 0),\n 'column-6': currencyFormatter(totals?.reimbursementAmount ?? 0),\n 'column-7': currencyFormatter(totals?.totalAmount ?? 0),\n })}\n label={t('whatYourCompanyPays')}\n />\n </Flex>\n )\n}\n"],"names":["ZERO_HOURS_DISPLAY","PreviewPresentation","contractorPaymentGroup","contractors","onBackToEdit","onSubmit","isLoading","bankAccount","selectedUnblockOptions","onUnblockOptionChange","paymentSpeed","Button","Text","Heading","Alert","useComponentContext","useI18n","useTranslation","currencyFormatter","useNumberFormatter","formatWageType","contractor","totals","useMemo","acc","contractorPayments","submissionBlockers","blocker","hasUnresolvableBlockers","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","hasUnselectedBlockers","isSubmitDisabled","jsxs","Flex","jsx","blockerType","FastAchSubmissionBlockerBanner","GenericBlocker","DataView","contractorPayment","getContractorDisplayName","hours","formatHoursDisplay"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PreviewPresentation.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/PreviewPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { ContractorPaymentGroupPreview } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgrouppreview'\nimport type { ContractorPaymentForGroupPreview } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentforgrouppreview'\nimport { useMemo } from 'react'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport type { CompanyBankAccount } from '@gusto/embedded-api-v-2025-11-15/models/components/companybankaccount'\nimport type { PaymentSpeed } from '@gusto/embedded-api-v-2025-11-15/models/components/paymentconfigs'\nimport { getContractorDisplayName } from './helpers'\nimport { FastAchSubmissionBlockerBanner } from './FastAchSubmissionBlockerBanner'\nimport { GenericBlocker } from './GenericBlocker'\nimport { DataView, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatHoursDisplay } from '@/components/Payroll/helpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES } from '@/shared/constants'\n\nconst ZERO_HOURS_DISPLAY = '0.000'\n\ninterface PreviewPresentationProps {\n contractorPaymentGroup: ContractorPaymentGroupPreview\n contractors: Contractor[]\n onBackToEdit: () => void\n onSubmit: () => void\n isLoading: boolean\n bankAccount?: CompanyBankAccount\n selectedUnblockOptions?: Record<string, string>\n onUnblockOptionChange?: (blockerType: string, value: string) => void\n paymentSpeed?: PaymentSpeed\n}\n\n/** @internal */\nexport const PreviewPresentation = ({\n contractorPaymentGroup,\n contractors,\n onBackToEdit,\n onSubmit,\n isLoading,\n bankAccount,\n selectedUnblockOptions = {},\n onUnblockOptionChange,\n paymentSpeed,\n}: PreviewPresentationProps) => {\n const { Button, Text, Heading, Alert } = useComponentContext()\n useI18n('Contractor.Payments.CreatePayment')\n const { t } = useTranslation('Contractor.Payments.CreatePayment', {\n keyPrefix: 'previewPresentation',\n })\n const currencyFormatter = useNumberFormatter()\n\n const formatWageType = (contractor: ContractorPaymentForGroupPreview) => {\n if (contractor.wageType === 'Hourly' && contractor.hourlyRate) {\n return `${t('wageTypes.hourly')} ${currencyFormatter(Number(contractor.hourlyRate || '0'))}${t('perHour')}`\n }\n return contractor.wageType\n }\n\n const totals = useMemo(\n () =>\n contractorPaymentGroup.contractorPayments?.reduce(\n (acc, contractor) => {\n acc.wageAmount += Number(contractor.wage || '0')\n acc.bonusAmount += Number(contractor.bonus || '0')\n acc.reimbursementAmount += Number(contractor.reimbursement || '0')\n acc.totalAmount += Number(contractor.wageTotal || '0')\n return acc\n },\n { wageAmount: 0, bonusAmount: 0, reimbursementAmount: 0, totalAmount: 0 },\n ),\n [contractorPaymentGroup.contractorPayments],\n )\n\n const contractorPayments = contractorPaymentGroup.contractorPayments || []\n\n const submissionBlockers = (contractorPaymentGroup.submissionBlockers || []).filter(\n blocker => blocker.status === 'unresolved',\n )\n\n const hasUnresolvableBlockers = submissionBlockers.some(\n blocker => !PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blocker.blockerType || ''),\n )\n\n const hasUnselectedBlockers = submissionBlockers.some(\n blocker => !selectedUnblockOptions[blocker.blockerType || ''],\n )\n\n const isSubmitDisabled =\n isLoading ||\n (submissionBlockers.length > 0 && (hasUnresolvableBlockers || hasUnselectedBlockers))\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex justifyContent=\"flex-end\" gap={16}>\n <Flex flexDirection=\"column\" gap={2}>\n <Heading as=\"h2\">{t('reviewAndSubmitTitle')}</Heading>\n <Text variant=\"supporting\">\n {t('reviewSubtitle', { debitDate: contractorPaymentGroup.debitDate })}\n </Text>\n </Flex>\n <Flex justifyContent=\"flex-end\" gap={16}>\n <Button onClick={onBackToEdit} variant=\"secondary\">\n {t('editButton')}\n </Button>\n <Button\n onClick={onSubmit}\n variant=\"primary\"\n isLoading={isLoading}\n isDisabled={isSubmitDisabled}\n >\n {t('submitButton')}\n </Button>\n </Flex>\n </Flex>\n\n <Alert\n status=\"info\"\n label={t('alerts.submitPaymentsDeadline', {\n checkDate: contractorPaymentGroup.checkDate,\n debitDate: contractorPaymentGroup.debitDate,\n })}\n />\n\n {submissionBlockers.length > 0 &&\n onUnblockOptionChange &&\n submissionBlockers.map(blocker => {\n const blockerType = blocker.blockerType || ''\n\n if (PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType)) {\n return (\n <FastAchSubmissionBlockerBanner\n key={blockerType}\n blocker={blocker}\n selectedValue={selectedUnblockOptions[blockerType]}\n onUnblockOptionChange={onUnblockOptionChange}\n paymentSpeed={paymentSpeed}\n />\n )\n }\n\n return <GenericBlocker key={blockerType} blocker={blocker} />\n })}\n\n {/* Payment Summary */}\n <Heading as=\"h3\">{t('paymentSummaryTitle')}</Heading>\n <DataView\n columns={[\n {\n title: t('summaryTableHeaders.totalAmount'),\n render: () => currencyFormatter(Number(contractorPaymentGroup.totals?.amount || '0')),\n },\n {\n title: t('summaryTableHeaders.debitAmount'),\n render: () =>\n currencyFormatter(Number(contractorPaymentGroup.totals?.debitAmount || '0')),\n },\n {\n title: t('summaryTableHeaders.debitAccount'),\n render: () => bankAccount?.hiddenAccountNumber ?? t('naDebitAccount'),\n },\n {\n title: t('summaryTableHeaders.debitDate'),\n render: () => contractorPaymentGroup.debitDate || 'debitDate',\n },\n {\n title: t('summaryTableHeaders.contractorPayDate'),\n render: () => contractorPaymentGroup.checkDate || 'contractorPayDate',\n },\n ]}\n data={[contractorPaymentGroup]}\n label=\"Payment Summary\"\n />\n\n {/* Contractor Payments Table */}\n <DataView\n columns={[\n {\n title: t('contractorTableHeaders.contractor'),\n render: contractorPayment =>\n getContractorDisplayName(\n contractors.find(\n contractor => contractor.uuid === contractorPayment.contractorUuid,\n ),\n ),\n },\n {\n title: t('contractorTableHeaders.wageType'),\n render: contractorPayment => formatWageType(contractorPayment),\n },\n {\n title: t('contractorTableHeaders.paymentMethod'),\n render: contractorPayment => contractorPayment.paymentMethod || 'N/A',\n },\n {\n title: t('contractorTableHeaders.hours'),\n render: contractorPayment => {\n const hours = Number(contractorPayment.hours || '0')\n return contractorPayment.wageType === 'Hourly' && hours\n ? formatHoursDisplay(hours)\n : ZERO_HOURS_DISPLAY\n },\n },\n {\n title: t('contractorTableHeaders.wage'),\n render: contractorPayment =>\n contractorPayment.wageType === 'Fixed' && contractorPayment.wage\n ? currencyFormatter(Number(contractorPayment.wage || '0'))\n : currencyFormatter(0),\n },\n {\n title: t('contractorTableHeaders.bonus'),\n render: contractorPayment => currencyFormatter(Number(contractorPayment.bonus || '0')),\n },\n {\n title: t('contractorTableHeaders.reimbursement'),\n render: contractorPayment =>\n currencyFormatter(Number(contractorPayment.reimbursement || '0')),\n },\n {\n title: t('contractorTableHeaders.total'),\n render: contractorPayment =>\n currencyFormatter(Number(contractorPayment.wageTotal || '0')),\n },\n ]}\n data={contractorPayments}\n footer={() => ({\n 'column-0': t('totalsLabel'),\n 'column-4': currencyFormatter(totals?.wageAmount ?? 0),\n 'column-5': currencyFormatter(totals?.bonusAmount ?? 0),\n 'column-6': currencyFormatter(totals?.reimbursementAmount ?? 0),\n 'column-7': currencyFormatter(totals?.totalAmount ?? 0),\n })}\n label={t('whatYourCompanyPays')}\n />\n </Flex>\n )\n}\n"],"names":["ZERO_HOURS_DISPLAY","PreviewPresentation","contractorPaymentGroup","contractors","onBackToEdit","onSubmit","isLoading","bankAccount","selectedUnblockOptions","onUnblockOptionChange","paymentSpeed","Button","Text","Heading","Alert","useComponentContext","useI18n","useTranslation","currencyFormatter","useNumberFormatter","formatWageType","contractor","totals","useMemo","acc","contractorPayments","submissionBlockers","blocker","hasUnresolvableBlockers","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","hasUnselectedBlockers","isSubmitDisabled","jsxs","Flex","jsx","blockerType","FastAchSubmissionBlockerBanner","GenericBlocker","DataView","contractorPayment","getContractorDisplayName","hours","formatHoursDisplay"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/helpers.ts"],"sourcesContent":["import type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\nexport const getContractorDisplayName = (contractor?: Contractor): string => {\n if (!contractor) {\n return ''\n }\n if (contractor.type === 'Individual') {\n return firstLastName({ first_name: contractor.firstName, last_name: contractor.lastName })\n } else {\n return contractor.businessName || ''\n }\n}\n"],"names":["getContractorDisplayName","contractor","firstLastName"],"mappings":";
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../src/components/Contractor/Payments/CreatePayment/helpers.ts"],"sourcesContent":["import type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/** @internal */\nexport const getContractorDisplayName = (contractor?: Contractor): string => {\n if (!contractor) {\n return ''\n }\n if (contractor.type === 'Individual') {\n return firstLastName({ first_name: contractor.firstName, last_name: contractor.lastName })\n } else {\n return contractor.businessName || ''\n }\n}\n"],"names":["getContractorDisplayName","contractor","firstLastName"],"mappings":";AAIO,MAAMA,IAA2B,CAACC,MAClCA,IAGDA,EAAW,SAAS,eACfC,EAAc,EAAE,YAAYD,EAAW,WAAW,WAAWA,EAAW,UAAU,IAElFA,EAAW,gBAAgB,KAL3B;"}
|
|
@@ -1,2 +1,42 @@
|
|
|
1
1
|
import { PaymentFlowProps } from './PaymentFlowComponents';
|
|
2
|
+
/**
|
|
3
|
+
* Guided workflow for creating, managing, and viewing contractor payment groups for a company.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Composes the contractor payment subcomponents into a complete experience with breadcrumb navigation between the payments list, the create-payment form, the post-creation summary, the payment-history detail view, and individual contractor payment statements. Also routes into the information-requests flow when a payment-related request needs a response, and surfaces wire-transfer confirmation alerts after a wire details submission.
|
|
7
|
+
*
|
|
8
|
+
* Events emitted by the subcomponents bubble up through the single `onEvent` handler.
|
|
9
|
+
*
|
|
10
|
+
* | Event | Description | Data |
|
|
11
|
+
* | ----- | ----------- | ---- |
|
|
12
|
+
* | `contractor/payments/create` | Fired when the user chooses to create a new payment | — |
|
|
13
|
+
* | `contractor/payments/created` | Fired when a payment group is successfully created | The created `ContractorPaymentGroup` |
|
|
14
|
+
* | `contractor/payments/view` | Fired when the user selects a payment group to view | `{ paymentId: string }` |
|
|
15
|
+
* | `contractor/payments/view/details` | Fired when the user views a specific contractor payment | `{ contractor: Contractor, paymentGroupId: string }` |
|
|
16
|
+
* | `contractor/payments/cancel` | Fired when a payment is cancelled | `{ paymentId: string }` |
|
|
17
|
+
* | `contractor/payments/exit` | Fired when the user completes the payment flow | `{ uuid?: string | null }` |
|
|
18
|
+
* | `contractor/payments/rfi/respond` | Fired when the user clicks to respond to a pending information request | — |
|
|
19
|
+
* | `payroll/wire/form/done` | Fired when wire transfer details are submitted | `{ wireInRequest: WireInRequest, confirmationAlert: { title: string, content?: string } }` |
|
|
20
|
+
* | `informationRequest/form/done` | Fired when the information-requests flow completes | — |
|
|
21
|
+
* | `informationRequest/form/cancel` | Fired when the information-requests flow is cancelled | — |
|
|
22
|
+
* | `breadcrumb/navigate` | Fired when the user clicks a breadcrumb to navigate back | `{ key: string, onNavigate: (ctx) => ctx }` |
|
|
23
|
+
*
|
|
24
|
+
* @param props - See {@link PaymentFlowProps}.
|
|
25
|
+
* @returns The multi-step contractor payments workflow.
|
|
26
|
+
* @public
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```tsx
|
|
30
|
+
* import { ContractorManagement } from '@gusto/embedded-react-sdk'
|
|
31
|
+
*
|
|
32
|
+
* function MyApp() {
|
|
33
|
+
* return (
|
|
34
|
+
* <ContractorManagement.PaymentFlow
|
|
35
|
+
* companyId="a007e1ab-3595-43c2-ab4b-af7a5af2e365"
|
|
36
|
+
* onEvent={() => {}}
|
|
37
|
+
* />
|
|
38
|
+
* )
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
2
42
|
export declare const PaymentFlow: ({ companyId, onEvent }: PaymentFlowProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentFlow.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlow.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMemo } from 'react'\nimport { paymentFlowBreadcrumbsNodes, paymentMachine } from './paymentStateMachine'\nimport {\n PaymentListContextual,\n type PaymentFlowContextInterface,\n type PaymentFlowProps,\n} from './PaymentFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\nexport const PaymentFlow = ({ companyId, onEvent }: PaymentFlowProps) => {\n const paymentFlow = useMemo(\n () =>\n createMachine('landing', paymentMachine, (initialContext: PaymentFlowContextInterface) => ({\n ...initialContext,\n component: PaymentListContextual,\n companyId,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(paymentFlowBreadcrumbsNodes),\n },\n })),\n [companyId],\n )\n return <Flow machine={paymentFlow} onEvent={onEvent} />\n}\n"],"names":["PaymentFlow","companyId","onEvent","paymentFlow","useMemo","createMachine","paymentMachine","initialContext","PaymentListContextual","buildBreadcrumbs","paymentFlowBreadcrumbsNodes","jsx","Flow"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"PaymentFlow.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlow.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useMemo } from 'react'\nimport { paymentFlowBreadcrumbsNodes, paymentMachine } from './paymentStateMachine'\nimport {\n PaymentListContextual,\n type PaymentFlowContextInterface,\n type PaymentFlowProps,\n} from './PaymentFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\n/**\n * Guided workflow for creating, managing, and viewing contractor payment groups for a company.\n *\n * @remarks\n * Composes the contractor payment subcomponents into a complete experience with breadcrumb navigation between the payments list, the create-payment form, the post-creation summary, the payment-history detail view, and individual contractor payment statements. Also routes into the information-requests flow when a payment-related request needs a response, and surfaces wire-transfer confirmation alerts after a wire details submission.\n *\n * Events emitted by the subcomponents bubble up through the single `onEvent` handler.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/create` | Fired when the user chooses to create a new payment | — |\n * | `contractor/payments/created` | Fired when a payment group is successfully created | The created `ContractorPaymentGroup` |\n * | `contractor/payments/view` | Fired when the user selects a payment group to view | `{ paymentId: string }` |\n * | `contractor/payments/view/details` | Fired when the user views a specific contractor payment | `{ contractor: Contractor, paymentGroupId: string }` |\n * | `contractor/payments/cancel` | Fired when a payment is cancelled | `{ paymentId: string }` |\n * | `contractor/payments/exit` | Fired when the user completes the payment flow | `{ uuid?: string | null }` |\n * | `contractor/payments/rfi/respond` | Fired when the user clicks to respond to a pending information request | — |\n * | `payroll/wire/form/done` | Fired when wire transfer details are submitted | `{ wireInRequest: WireInRequest, confirmationAlert: { title: string, content?: string } }` |\n * | `informationRequest/form/done` | Fired when the information-requests flow completes | — |\n * | `informationRequest/form/cancel` | Fired when the information-requests flow is cancelled | — |\n * | `breadcrumb/navigate` | Fired when the user clicks a breadcrumb to navigate back | `{ key: string, onNavigate: (ctx) => ctx }` |\n *\n * @param props - See {@link PaymentFlowProps}.\n * @returns The multi-step contractor payments workflow.\n * @public\n *\n * @example\n * ```tsx\n * import { ContractorManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyApp() {\n * return (\n * <ContractorManagement.PaymentFlow\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport const PaymentFlow = ({ companyId, onEvent }: PaymentFlowProps) => {\n const paymentFlow = useMemo(\n () =>\n createMachine('landing', paymentMachine, (initialContext: PaymentFlowContextInterface) => ({\n ...initialContext,\n component: PaymentListContextual,\n companyId,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(paymentFlowBreadcrumbsNodes),\n },\n })),\n [companyId],\n )\n return <Flow machine={paymentFlow} onEvent={onEvent} />\n}\n"],"names":["PaymentFlow","companyId","onEvent","paymentFlow","useMemo","createMachine","paymentMachine","initialContext","PaymentListContextual","buildBreadcrumbs","paymentFlowBreadcrumbsNodes","jsx","Flow"],"mappings":";;;;;;;AAmDO,MAAMA,IAAc,CAAC,EAAE,WAAAC,GAAW,SAAAC,QAAgC;AACvE,QAAMC,IAAcC;AAAA,IAClB,MACEC,EAAc,WAAWC,GAAgB,CAACC,OAAiD;AAAA,MACzF,GAAGA;AAAA,MACH,WAAWC;AAAA,MACX,WAAAP;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,aAAaQ,EAAiBC,CAA2B;AAAA,MAAA;AAAA,IAC3D,EACA;AAAA,IACJ,CAACT,CAAS;AAAA,EAAA;AAEZ,SAAO,gBAAAU,EAACC,GAAA,EAAK,SAAST,GAAa,SAAAD,EAAA,CAAkB;AACvD;"}
|
|
@@ -2,9 +2,16 @@ import { InternalAlert } from '../types';
|
|
|
2
2
|
import { FlowContextInterface } from '../../../Flow/useFlow';
|
|
3
3
|
import { BaseComponentInterface } from '../../../Base';
|
|
4
4
|
import { BreadcrumbTrail } from '../../../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes';
|
|
5
|
+
/**
|
|
6
|
+
* Props for {@link PaymentFlow}.
|
|
7
|
+
*
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
5
10
|
export interface PaymentFlowProps extends BaseComponentInterface {
|
|
11
|
+
/** The associated company identifier. */
|
|
6
12
|
companyId: string;
|
|
7
13
|
}
|
|
14
|
+
/** @internal */
|
|
8
15
|
export interface PaymentFlowContextInterface extends FlowContextInterface {
|
|
9
16
|
companyId: string;
|
|
10
17
|
breadcrumbs?: BreadcrumbTrail;
|
|
@@ -13,9 +20,15 @@ export interface PaymentFlowContextInterface extends FlowContextInterface {
|
|
|
13
20
|
createdPaymentGroupId?: string;
|
|
14
21
|
alerts?: InternalAlert[];
|
|
15
22
|
}
|
|
23
|
+
/** @internal */
|
|
16
24
|
export declare function PaymentListContextual(): import("react").JSX.Element;
|
|
25
|
+
/** @internal */
|
|
17
26
|
export declare function CreatePaymentContextual(): import("react").JSX.Element;
|
|
27
|
+
/** @internal */
|
|
18
28
|
export declare function PaymentHistoryContextual(): import("react").JSX.Element;
|
|
29
|
+
/** @internal */
|
|
19
30
|
export declare function PaymentStatementContextual(): import("react").JSX.Element;
|
|
31
|
+
/** @internal */
|
|
20
32
|
export declare function PaymentSummaryContextual(): import("react").JSX.Element;
|
|
33
|
+
/** @internal */
|
|
21
34
|
export declare function InformationRequestsContextual(): import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentFlowComponents.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.tsx"],"sourcesContent":["import { PaymentsList } from '../PaymentsList/PaymentsList'\nimport { CreatePayment } from '../CreatePayment/CreatePayment'\nimport { PaymentHistory } from '../PaymentHistory/PaymentHistory'\nimport { PaymentStatement } from '../PaymentStatement/PaymentStatement'\nimport { PaymentSummary } from '../PaymentSummary'\nimport type { InternalAlert } from '../types'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport type { BreadcrumbTrail } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\nexport interface PaymentFlowProps extends BaseComponentInterface {\n companyId: string\n}\n\nexport interface PaymentFlowContextInterface extends FlowContextInterface {\n companyId: string\n breadcrumbs?: BreadcrumbTrail\n currentPaymentId?: string\n currentContractorUuid?: string\n createdPaymentGroupId?: string\n alerts?: InternalAlert[]\n}\n\nexport function PaymentListContextual() {\n const { companyId, onEvent, alerts } = useFlow<PaymentFlowContextInterface>()\n return <PaymentsList onEvent={onEvent} companyId={ensureRequired(companyId)} alerts={alerts} />\n}\n\nexport function CreatePaymentContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <CreatePayment onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\nexport function PaymentHistoryContextual() {\n const { currentPaymentId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <PaymentHistory onEvent={onEvent} paymentId={ensureRequired(currentPaymentId)} />\n}\n\nexport function PaymentStatementContextual() {\n const { currentPaymentId, currentContractorUuid, onEvent } =\n useFlow<PaymentFlowContextInterface>()\n return (\n <PaymentStatement\n onEvent={onEvent}\n paymentGroupId={ensureRequired(currentPaymentId)}\n contractorUuid={ensureRequired(currentContractorUuid)}\n />\n )\n}\n\nexport function PaymentSummaryContextual() {\n const { createdPaymentGroupId, companyId, onEvent, alerts } =\n useFlow<PaymentFlowContextInterface>()\n\n return (\n <PaymentSummary\n onEvent={onEvent}\n paymentGroupId={ensureRequired(createdPaymentGroupId)}\n companyId={ensureRequired(companyId)}\n alerts={alerts}\n />\n )\n}\n\nexport function InformationRequestsContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return (\n <InformationRequestsFlow\n companyId={ensureRequired(companyId)}\n withAlert={false}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["PaymentListContextual","companyId","onEvent","alerts","useFlow","PaymentsList","ensureRequired","CreatePaymentContextual","CreatePayment","PaymentHistoryContextual","currentPaymentId","PaymentHistory","PaymentStatementContextual","currentContractorUuid","jsx","PaymentStatement","PaymentSummaryContextual","createdPaymentGroupId","PaymentSummary","InformationRequestsContextual","InformationRequestsFlow"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PaymentFlowComponents.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.tsx"],"sourcesContent":["import { PaymentsList } from '../PaymentsList/PaymentsList'\nimport { CreatePayment } from '../CreatePayment/CreatePayment'\nimport { PaymentHistory } from '../PaymentHistory/PaymentHistory'\nimport { PaymentStatement } from '../PaymentStatement/PaymentStatement'\nimport { PaymentSummary } from '../PaymentSummary'\nimport type { InternalAlert } from '../types'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport type { BreadcrumbTrail } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/**\n * Props for {@link PaymentFlow}.\n *\n * @public\n */\nexport interface PaymentFlowProps extends BaseComponentInterface {\n /** The associated company identifier. */\n companyId: string\n}\n\n/** @internal */\nexport interface PaymentFlowContextInterface extends FlowContextInterface {\n companyId: string\n breadcrumbs?: BreadcrumbTrail\n currentPaymentId?: string\n currentContractorUuid?: string\n createdPaymentGroupId?: string\n alerts?: InternalAlert[]\n}\n\n/** @internal */\nexport function PaymentListContextual() {\n const { companyId, onEvent, alerts } = useFlow<PaymentFlowContextInterface>()\n return <PaymentsList onEvent={onEvent} companyId={ensureRequired(companyId)} alerts={alerts} />\n}\n\n/** @internal */\nexport function CreatePaymentContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <CreatePayment onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function PaymentHistoryContextual() {\n const { currentPaymentId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return <PaymentHistory onEvent={onEvent} paymentId={ensureRequired(currentPaymentId)} />\n}\n\n/** @internal */\nexport function PaymentStatementContextual() {\n const { currentPaymentId, currentContractorUuid, onEvent } =\n useFlow<PaymentFlowContextInterface>()\n return (\n <PaymentStatement\n onEvent={onEvent}\n paymentGroupId={ensureRequired(currentPaymentId)}\n contractorUuid={ensureRequired(currentContractorUuid)}\n />\n )\n}\n\n/** @internal */\nexport function PaymentSummaryContextual() {\n const { createdPaymentGroupId, companyId, onEvent, alerts } =\n useFlow<PaymentFlowContextInterface>()\n\n return (\n <PaymentSummary\n onEvent={onEvent}\n paymentGroupId={ensureRequired(createdPaymentGroupId)}\n companyId={ensureRequired(companyId)}\n alerts={alerts}\n />\n )\n}\n\n/** @internal */\nexport function InformationRequestsContextual() {\n const { companyId, onEvent } = useFlow<PaymentFlowContextInterface>()\n return (\n <InformationRequestsFlow\n companyId={ensureRequired(companyId)}\n withAlert={false}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["PaymentListContextual","companyId","onEvent","alerts","useFlow","PaymentsList","ensureRequired","CreatePaymentContextual","CreatePayment","PaymentHistoryContextual","currentPaymentId","PaymentHistory","PaymentStatementContextual","currentContractorUuid","jsx","PaymentStatement","PaymentSummaryContextual","createdPaymentGroupId","PaymentSummary","InformationRequestsContextual","InformationRequestsFlow"],"mappings":";;;;;;;;;AAiCO,SAASA,IAAwB;AACtC,QAAM,EAAE,WAAAC,GAAW,SAAAC,GAAS,QAAAC,EAAA,IAAWC,EAAA;AACvC,2BAAQC,GAAA,EAAa,SAAAH,GAAkB,WAAWI,EAAeL,CAAS,GAAG,QAAAE,GAAgB;AAC/F;AAGO,SAASI,IAA0B;AACxC,QAAM,EAAE,WAAAN,GAAW,SAAAC,EAAA,IAAYE,EAAA;AAC/B,2BAAQI,GAAA,EAAc,SAAAN,GAAkB,WAAWI,EAAeL,CAAS,GAAG;AAChF;AAGO,SAASQ,IAA2B;AACzC,QAAM,EAAE,kBAAAC,GAAkB,SAAAR,EAAA,IAAYE,EAAA;AACtC,2BAAQO,GAAA,EAAe,SAAAT,GAAkB,WAAWI,EAAeI,CAAgB,GAAG;AACxF;AAGO,SAASE,IAA6B;AAC3C,QAAM,EAAE,kBAAAF,GAAkB,uBAAAG,GAAuB,SAAAX,EAAA,IAC/CE,EAAA;AACF,SACE,gBAAAU;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAAAb;AAAA,MACA,gBAAgBI,EAAeI,CAAgB;AAAA,MAC/C,gBAAgBJ,EAAeO,CAAqB;AAAA,IAAA;AAAA,EAAA;AAG1D;AAGO,SAASG,IAA2B;AACzC,QAAM,EAAE,uBAAAC,GAAuB,WAAAhB,GAAW,SAAAC,GAAS,QAAAC,EAAA,IACjDC,EAAA;AAEF,SACE,gBAAAU;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,SAAAhB;AAAA,MACA,gBAAgBI,EAAeW,CAAqB;AAAA,MACpD,WAAWX,EAAeL,CAAS;AAAA,MACnC,QAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASgB,IAAgC;AAC9C,QAAM,EAAE,WAAAlB,GAAW,SAAAC,EAAA,IAAYE,EAAA;AAC/B,SACE,gBAAAU;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,WAAWd,EAAeL,CAAS;AAAA,MACnC,WAAW;AAAA,MACX,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BreadcrumbNodes } from '../../../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes';
|
|
2
|
+
/** @internal */
|
|
2
3
|
export declare const paymentFlowBreadcrumbsNodes: BreadcrumbNodes;
|
|
4
|
+
/** @internal */
|
|
3
5
|
export declare const paymentMachine: {
|
|
4
6
|
landing: import('robot3').MachineState<any>;
|
|
5
7
|
createPayment: import('robot3').MachineState<any>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paymentStateMachine.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/paymentStateMachine.ts"],"sourcesContent":["import { reduce, state, transition } from 'robot3'\nimport type { ContractorPaymentGroup } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgroup'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport type { WireInRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/wireinrequest'\nimport { getContractorDisplayName } from '../CreatePayment/helpers'\nimport {\n CreatePaymentContextual,\n type PaymentFlowContextInterface,\n PaymentHistoryContextual,\n PaymentListContextual,\n PaymentStatementContextual,\n PaymentSummaryContextual,\n InformationRequestsContextual,\n} from './PaymentFlowComponents'\nimport { componentEvents, informationRequestEvents, payrollWireEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { patchBreadcrumbsHeader, updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype EventPayloads = {\n [componentEvents.CONTRACTOR_PAYMENT_CREATE]: undefined\n [componentEvents.CONTRACTOR_PAYMENT_CREATED]: ContractorPaymentGroup\n [componentEvents.CONTRACTOR_PAYMENT_EXIT]: { uuid?: string | null }\n [componentEvents.CONTRACTOR_PAYMENT_VIEW]: { paymentId: string }\n [componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS]: {\n contractor: Contractor\n paymentGroupId: string\n }\n [componentEvents.CONTRACTOR_PAYMENT_CANCEL]: { paymentId: string }\n [componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND]: undefined\n [componentEvents.BREADCRUMB_NAVIGATE]: {\n key: string\n onNavigate: (ctx: PaymentFlowContextInterface) => PaymentFlowContextInterface\n }\n [informationRequestEvents.INFORMATION_REQUEST_FORM_DONE]: undefined\n [informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL]: undefined\n [payrollWireEvents.PAYROLL_WIRE_FORM_DONE]: {\n wireInRequest: WireInRequest\n confirmationAlert: {\n title: string\n content?: string\n }\n }\n}\n\nexport const paymentFlowBreadcrumbsNodes: BreadcrumbNodes = {\n landing: {\n parent: null,\n item: {\n id: 'landing',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentsList',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n })) as (context: unknown) => unknown,\n },\n },\n createPayment: {\n parent: 'landing',\n item: {\n id: 'createPayment',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.CreatePayment',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('createPayment', ctx),\n })) as (context: unknown) => unknown,\n },\n },\n paymentSummary: {\n parent: 'landing',\n item: {\n id: 'paymentSummary',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentSummary',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('paymentSummary', ctx),\n })) as (context: unknown) => unknown,\n },\n },\n history: {\n parent: 'landing',\n item: {\n id: 'history',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentHistory',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('history', ctx),\n component: PaymentHistoryContextual,\n })) as (context: unknown) => unknown,\n },\n },\n statement: {\n parent: 'history',\n item: {\n id: 'statement',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentStatement',\n },\n },\n} as const\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PaymentFlowContextInterface>()\n\nexport const paymentMachine = {\n landing: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CREATE,\n 'createPayment',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('createPayment', ctx),\n component: CreatePaymentContextual,\n alerts: undefined,\n }\n }),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_VIEW,\n 'history',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PAYMENT_VIEW>,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('history', ctx),\n component: PaymentHistoryContextual,\n currentPaymentId: ev.payload.paymentId,\n alerts: undefined,\n }\n },\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND,\n 'informationRequests',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: InformationRequestsContextual,\n }\n }),\n ),\n transition(\n payrollWireEvents.PAYROLL_WIRE_FORM_DONE,\n 'landing',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof payrollWireEvents.PAYROLL_WIRE_FORM_DONE>,\n ): PaymentFlowContextInterface => {\n return {\n ...ctx,\n alerts: [\n {\n type: 'success',\n title: 'wireDetailsSubmitted',\n content: ev.payload.confirmationAlert.content,\n },\n ],\n }\n },\n ),\n ),\n ),\n createPayment: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CREATED,\n 'paymentSummary',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PAYMENT_CREATED>,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('paymentSummary', ctx),\n component: PaymentSummaryContextual,\n createdPaymentGroupId: ev.payload.uuid,\n alerts: undefined,\n }\n },\n ),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n paymentSummary: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_EXIT,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n createdPaymentGroupId: undefined,\n alerts: undefined,\n }\n }),\n ),\n transition(\n payrollWireEvents.PAYROLL_WIRE_FORM_DONE,\n 'paymentSummary',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof payrollWireEvents.PAYROLL_WIRE_FORM_DONE>,\n ): PaymentFlowContextInterface => {\n return {\n ...ctx,\n alerts: [\n {\n type: 'success',\n title: 'wireDetailsSubmitted',\n content: ev.payload.confirmationAlert.content,\n },\n ],\n }\n },\n ),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n history: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS,\n 'statement',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<\n EventPayloads,\n typeof componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS\n >,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('statement', ctx, {\n contractorName: getContractorDisplayName(ev.payload.contractor),\n }),\n component: PaymentStatementContextual,\n currentContractorUuid: ev.payload.contractor.uuid,\n currentPaymentId: ev.payload.paymentGroupId,\n alerts: undefined,\n }\n },\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CANCEL,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n alerts: [\n {\n type: 'success',\n title: 'paymentCancelledSuccessfully',\n },\n ],\n }\n }),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n statement: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n breadcrumbNavigateTransition('history'),\n ),\n informationRequests: state<MachineTransition>(\n transition(\n informationRequestEvents.INFORMATION_REQUEST_FORM_DONE,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n }\n }),\n ),\n transition(\n informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n }\n }),\n ),\n ),\n}\n"],"names":["paymentFlowBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","PaymentListContextual","updateBreadcrumbs","PaymentHistoryContextual","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","paymentMachine","state","transition","componentEvents","reduce","CreatePaymentContextual","ev","InformationRequestsContextual","payrollWireEvents","PaymentSummaryContextual","getContractorDisplayName","PaymentStatementContextual","informationRequestEvents"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"paymentStateMachine.js","sources":["../../../../../src/components/Contractor/Payments/PaymentFlow/paymentStateMachine.ts"],"sourcesContent":["import { reduce, state, transition } from 'robot3'\nimport type { ContractorPaymentGroup } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgroup'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport type { WireInRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/wireinrequest'\nimport { getContractorDisplayName } from '../CreatePayment/helpers'\nimport {\n CreatePaymentContextual,\n type PaymentFlowContextInterface,\n PaymentHistoryContextual,\n PaymentListContextual,\n PaymentStatementContextual,\n PaymentSummaryContextual,\n InformationRequestsContextual,\n} from './PaymentFlowComponents'\nimport { componentEvents, informationRequestEvents, payrollWireEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport { patchBreadcrumbsHeader, updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype EventPayloads = {\n [componentEvents.CONTRACTOR_PAYMENT_CREATE]: undefined\n [componentEvents.CONTRACTOR_PAYMENT_CREATED]: ContractorPaymentGroup\n [componentEvents.CONTRACTOR_PAYMENT_EXIT]: { uuid?: string | null }\n [componentEvents.CONTRACTOR_PAYMENT_VIEW]: { paymentId: string }\n [componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS]: {\n contractor: Contractor\n paymentGroupId: string\n }\n [componentEvents.CONTRACTOR_PAYMENT_CANCEL]: { paymentId: string }\n [componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND]: undefined\n [componentEvents.BREADCRUMB_NAVIGATE]: {\n key: string\n onNavigate: (ctx: PaymentFlowContextInterface) => PaymentFlowContextInterface\n }\n [informationRequestEvents.INFORMATION_REQUEST_FORM_DONE]: undefined\n [informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL]: undefined\n [payrollWireEvents.PAYROLL_WIRE_FORM_DONE]: {\n wireInRequest: WireInRequest\n confirmationAlert: {\n title: string\n content?: string\n }\n }\n}\n\n/** @internal */\nexport const paymentFlowBreadcrumbsNodes: BreadcrumbNodes = {\n landing: {\n parent: null,\n item: {\n id: 'landing',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentsList',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n })) as (context: unknown) => unknown,\n },\n },\n createPayment: {\n parent: 'landing',\n item: {\n id: 'createPayment',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.CreatePayment',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('createPayment', ctx),\n })) as (context: unknown) => unknown,\n },\n },\n paymentSummary: {\n parent: 'landing',\n item: {\n id: 'paymentSummary',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentSummary',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('paymentSummary', ctx),\n })) as (context: unknown) => unknown,\n },\n },\n history: {\n parent: 'landing',\n item: {\n id: 'history',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentHistory',\n onNavigate: ((ctx: PaymentFlowContextInterface) => ({\n ...updateBreadcrumbs('history', ctx),\n component: PaymentHistoryContextual,\n })) as (context: unknown) => unknown,\n },\n },\n statement: {\n parent: 'history',\n item: {\n id: 'statement',\n label: 'breadcrumbLabel',\n namespace: 'Contractor.Payments.PaymentStatement',\n },\n },\n} as const\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PaymentFlowContextInterface>()\n\n/** @internal */\nexport const paymentMachine = {\n landing: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CREATE,\n 'createPayment',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('createPayment', ctx),\n component: CreatePaymentContextual,\n alerts: undefined,\n }\n }),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_VIEW,\n 'history',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PAYMENT_VIEW>,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('history', ctx),\n component: PaymentHistoryContextual,\n currentPaymentId: ev.payload.paymentId,\n alerts: undefined,\n }\n },\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_RFI_RESPOND,\n 'informationRequests',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: InformationRequestsContextual,\n }\n }),\n ),\n transition(\n payrollWireEvents.PAYROLL_WIRE_FORM_DONE,\n 'landing',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof payrollWireEvents.PAYROLL_WIRE_FORM_DONE>,\n ): PaymentFlowContextInterface => {\n return {\n ...ctx,\n alerts: [\n {\n type: 'success',\n title: 'wireDetailsSubmitted',\n content: ev.payload.confirmationAlert.content,\n },\n ],\n }\n },\n ),\n ),\n ),\n createPayment: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CREATED,\n 'paymentSummary',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.CONTRACTOR_PAYMENT_CREATED>,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('paymentSummary', ctx),\n component: PaymentSummaryContextual,\n createdPaymentGroupId: ev.payload.uuid,\n alerts: undefined,\n }\n },\n ),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n paymentSummary: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_EXIT,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n createdPaymentGroupId: undefined,\n alerts: undefined,\n }\n }),\n ),\n transition(\n payrollWireEvents.PAYROLL_WIRE_FORM_DONE,\n 'paymentSummary',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof payrollWireEvents.PAYROLL_WIRE_FORM_DONE>,\n ): PaymentFlowContextInterface => {\n return {\n ...ctx,\n alerts: [\n {\n type: 'success',\n title: 'wireDetailsSubmitted',\n content: ev.payload.confirmationAlert.content,\n },\n ],\n }\n },\n ),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n history: state<MachineTransition>(\n transition(\n componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS,\n 'statement',\n reduce(\n (\n ctx: PaymentFlowContextInterface,\n ev: MachineEventType<\n EventPayloads,\n typeof componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS\n >,\n ): PaymentFlowContextInterface => {\n return {\n ...updateBreadcrumbs('statement', ctx, {\n contractorName: getContractorDisplayName(ev.payload.contractor),\n }),\n component: PaymentStatementContextual,\n currentContractorUuid: ev.payload.contractor.uuid,\n currentPaymentId: ev.payload.paymentGroupId,\n alerts: undefined,\n }\n },\n ),\n ),\n transition(\n componentEvents.CONTRACTOR_PAYMENT_CANCEL,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n alerts: [\n {\n type: 'success',\n title: 'paymentCancelledSuccessfully',\n },\n ],\n }\n }),\n ),\n breadcrumbNavigateTransition('landing'),\n ),\n statement: state<MachineTransition>(\n breadcrumbNavigateTransition('landing'),\n breadcrumbNavigateTransition('history'),\n ),\n informationRequests: state<MachineTransition>(\n transition(\n informationRequestEvents.INFORMATION_REQUEST_FORM_DONE,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n }\n }),\n ),\n transition(\n informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL,\n 'landing',\n reduce((ctx: PaymentFlowContextInterface): PaymentFlowContextInterface => {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n component: PaymentListContextual,\n }\n }),\n ),\n ),\n}\n"],"names":["paymentFlowBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","PaymentListContextual","updateBreadcrumbs","PaymentHistoryContextual","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","paymentMachine","state","transition","componentEvents","reduce","CreatePaymentContextual","ev","InformationRequestsContextual","payrollWireEvents","PaymentSummaryContextual","getContractorDisplayName","PaymentStatementContextual","informationRequestEvents"],"mappings":"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"}
|
|
@@ -1,7 +1,34 @@
|
|
|
1
1
|
import { BaseComponentInterface } from '../../../Base';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link PaymentHistory}.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface PaymentHistoryProps extends BaseComponentInterface<'Contractor.Payments.PaymentHistory'> {
|
|
8
|
+
/** UUID of the contractor payment group to display. */
|
|
3
9
|
paymentId: string;
|
|
4
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Displays a contractor payment group, including each individual contractor payment, with actions to view details or cancel.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* | Event | Description | Data |
|
|
16
|
+
* | ----- | ----------- | ---- |
|
|
17
|
+
* | `contractor/payments/view/details` | A row's view-details action was triggered. | `{ contractor: Contractor \| undefined, paymentGroupId: string }` — `contractor` is `undefined` if the contractor UUID is not found in the loaded list |
|
|
18
|
+
* | `contractor/payments/cancel` | An individual contractor payment was successfully canceled. | `{ paymentId: string }` — the individual contractor payment UUID, not the payment group UUID passed as `paymentId` prop |
|
|
19
|
+
*
|
|
20
|
+
* @param props - Component props including the payment group `paymentId` and the standard `onEvent` callback.
|
|
21
|
+
* @returns The rendered payment history view for the payment group.
|
|
22
|
+
* @public
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* import { ContractorManagement } from '@gusto/embedded-react-sdk'
|
|
27
|
+
*
|
|
28
|
+
* <ContractorManagement.PaymentHistory
|
|
29
|
+
* paymentId="payment-group-uuid"
|
|
30
|
+
* onEvent={() => {}}
|
|
31
|
+
* />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
5
34
|
export declare function PaymentHistory(props: PaymentHistoryProps): import("react").JSX.Element;
|
|
6
|
-
export declare const Root: ({ paymentId, dictionary, onEvent }: PaymentHistoryProps) => import("react").JSX.Element;
|
|
7
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentHistory.js","sources":["../../../../../src/components/Contractor/Payments/PaymentHistory/PaymentHistory.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsList'\nimport { useContractorPaymentsDeleteMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentsDelete'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentHistoryPresentation } from './PaymentHistoryPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\n\
|
|
1
|
+
{"version":3,"file":"PaymentHistory.js","sources":["../../../../../src/components/Contractor/Payments/PaymentHistory/PaymentHistory.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsList'\nimport { useContractorPaymentsDeleteMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentsDelete'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentHistoryPresentation } from './PaymentHistoryPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Props for {@link PaymentHistory}.\n *\n * @public\n */\nexport interface PaymentHistoryProps extends BaseComponentInterface<'Contractor.Payments.PaymentHistory'> {\n /** UUID of the contractor payment group to display. */\n paymentId: string\n}\n\n/**\n * Displays a contractor payment group, including each individual contractor payment, with actions to view details or cancel.\n *\n * @remarks\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/view/details` | A row's view-details action was triggered. | `{ contractor: Contractor \\| undefined, paymentGroupId: string }` — `contractor` is `undefined` if the contractor UUID is not found in the loaded list |\n * | `contractor/payments/cancel` | An individual contractor payment was successfully canceled. | `{ paymentId: string }` — the individual contractor payment UUID, not the payment group UUID passed as `paymentId` prop |\n *\n * @param props - Component props including the payment group `paymentId` and the standard `onEvent` callback.\n * @returns The rendered payment history view for the payment group.\n * @public\n *\n * @example\n * ```tsx\n * import { ContractorManagement } from '@gusto/embedded-react-sdk'\n *\n * <ContractorManagement.PaymentHistory\n * paymentId=\"payment-group-uuid\"\n * onEvent={() => {}}\n * />\n * ```\n */\nexport function PaymentHistory(props: PaymentHistoryProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ paymentId, dictionary, onEvent }: PaymentHistoryProps) => {\n useComponentDictionary('Contractor.Payments.PaymentHistory', dictionary)\n const { t } = useTranslation('Contractor.Payments.PaymentHistory')\n const { baseSubmitHandler } = useBase()\n\n const { data: paymentGroupResponse } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentId,\n })\n if (!paymentGroupResponse.contractorPaymentGroup) {\n throw new Error(t('errors.paymentGroupNotFound'))\n }\n\n const companyId = paymentGroupResponse.contractorPaymentGroup.companyUuid!\n\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = contractorList.contractors || []\n\n const { mutateAsync: cancelPayment, isPending: isCancelling } =\n useContractorPaymentsDeleteMutation()\n\n const handleViewPayment = (contractorUuid: string) => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_VIEW_DETAILS, {\n contractor: contractors.find(c => c.uuid === contractorUuid),\n paymentGroupId: paymentId,\n })\n }\n\n const handleCancelPayment = async (paymentId: string) => {\n await baseSubmitHandler(paymentId, async () => {\n await cancelPayment({\n request: {\n contractorPaymentId: paymentId,\n companyId,\n },\n })\n })\n\n onEvent(componentEvents.CONTRACTOR_PAYMENT_CANCEL, { paymentId })\n }\n\n return (\n <>\n <PaymentHistoryPresentation\n paymentGroup={paymentGroupResponse.contractorPaymentGroup}\n contractors={contractors}\n isCancelling={isCancelling}\n onViewPayment={handleViewPayment}\n onCancelPayment={handleCancelPayment}\n />\n </>\n )\n}\n"],"names":["PaymentHistory","props","jsx","BaseComponent","Root","paymentId","dictionary","onEvent","useComponentDictionary","t","useTranslation","baseSubmitHandler","useBase","paymentGroupResponse","useContractorPaymentGroupsGetSuspense","companyId","contractorList","useContractorsListSuspense","contractors","cancelPayment","isCancelling","useContractorPaymentsDeleteMutation","handleViewPayment","contractorUuid","componentEvents","c","handleCancelPayment","Fragment","PaymentHistoryPresentation"],"mappings":";;;;;;;;;;AA0CO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,WAAAC,GAAW,YAAAC,GAAY,SAAAC,QAAmC;AACxE,EAAAC,EAAuB,sCAAsCF,CAAU;AACvE,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,oCAAoC,GAC3D,EAAE,mBAAAC,EAAA,IAAsBC,EAAA,GAExB,EAAE,MAAMC,EAAA,IAAyBC,EAAsC;AAAA,IAC3E,4BAA4BT;AAAA,EAAA,CAC7B;AACD,MAAI,CAACQ,EAAqB;AACxB,UAAM,IAAI,MAAMJ,EAAE,6BAA6B,CAAC;AAGlD,QAAMM,IAAYF,EAAqB,uBAAuB,aAExD,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaF,GAAW,GAChFG,IAAcF,EAAe,eAAe,CAAA,GAE5C,EAAE,aAAaG,GAAe,WAAWC,EAAA,IAC7CC,EAAA,GAEIC,IAAoB,CAACC,MAA2B;AACpD,IAAAhB,EAAQiB,EAAgB,iCAAiC;AAAA,MACvD,YAAYN,EAAY,KAAK,CAAAO,MAAKA,EAAE,SAASF,CAAc;AAAA,MAC3D,gBAAgBlB;AAAA,IAAA,CACjB;AAAA,EACH,GAEMqB,IAAsB,OAAOrB,MAAsB;AACvD,UAAMM,EAAkBN,GAAW,YAAY;AAC7C,YAAMc,EAAc;AAAA,QAClB,SAAS;AAAA,UACP,qBAAqBd;AAAAA,UACrB,WAAAU;AAAA,QAAA;AAAA,MACF,CACD;AAAA,IACH,CAAC,GAEDR,EAAQiB,EAAgB,2BAA2B,EAAE,WAAAnB,GAAW;AAAA,EAClE;AAEA,SACE,gBAAAH,EAAAyB,GAAA,EACE,UAAA,gBAAAzB;AAAA,IAAC0B;AAAA,IAAA;AAAA,MACC,cAAcf,EAAqB;AAAA,MACnC,aAAAK;AAAA,MACA,cAAAE;AAAA,MACA,eAAeE;AAAA,MACf,iBAAiBI;AAAA,IAAA;AAAA,EAAA,GAErB;AAEJ;"}
|
|
@@ -7,5 +7,6 @@ interface PaymentHistoryPresentationProps {
|
|
|
7
7
|
onCancelPayment: (paymentId: string) => void;
|
|
8
8
|
isCancelling: boolean;
|
|
9
9
|
}
|
|
10
|
+
/** @internal */
|
|
10
11
|
export declare const PaymentHistoryPresentation: ({ paymentGroup, contractors, onViewPayment, onCancelPayment, isCancelling, }: PaymentHistoryPresentationProps) => import("react").JSX.Element;
|
|
11
12
|
export {};
|
package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentHistoryPresentation.js","sources":["../../../../../src/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport type { ContractorPaymentGroup } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgroup'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { getContractorDisplayName } from '../CreatePayment/helpers'\nimport styles from './PaymentHistoryPresentation.module.scss'\nimport { DataView, Flex, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { useI18n } from '@/i18n'\nimport { formatHoursDisplay } from '@/components/Payroll/helpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport EyeIcon from '@/assets/icons/eye.svg?react'\nimport CancelIcon from '@/assets/icons/slash-circle.svg?react'\n\ninterface PaymentHistoryPresentationProps {\n paymentGroup: ContractorPaymentGroup\n contractors: Contractor[]\n onViewPayment: (paymentId: string) => void\n onCancelPayment: (paymentId: string) => void\n isCancelling: boolean\n}\n\nexport const PaymentHistoryPresentation = ({\n paymentGroup,\n contractors,\n onViewPayment,\n onCancelPayment,\n isCancelling,\n}: PaymentHistoryPresentationProps) => {\n const { Text, Heading } = useComponentContext()\n useI18n('Contractor.Payments.PaymentHistory')\n const { t } = useTranslation('Contractor.Payments.PaymentHistory')\n const currencyFormatter = useNumberFormatter('currency')\n const { formatLongWithYear } = useDateFormatter()\n\n const payments = paymentGroup.contractorPayments || []\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text>\n <Trans\n i18nKey={'subtitle'}\n t={t}\n values={{ date: formatLongWithYear(paymentGroup.debitDate) }}\n components={{\n strong: <Text weight=\"bold\" as=\"span\" />,\n }}\n />\n </Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h2\">{t('paymentsSection')}</Heading>\n\n {payments.length === 0 ? (\n <EmptyData title={t('noPaymentsFound')} description={t('noPaymentsDescription')} />\n ) : (\n <>\n <DataView\n columns={[\n {\n title: t('tableHeaders.contractor'),\n render: ({ contractorUuid }) =>\n getContractorDisplayName(\n contractors.find(contractor => contractor.uuid === contractorUuid),\n ),\n },\n {\n title: t('tableHeaders.wageType'),\n render: ({ wageType }) => <Text>{wageType}</Text>,\n },\n {\n title: t('tableHeaders.paymentMethod'),\n render: ({ paymentMethod }) => <Text>{paymentMethod}</Text>,\n },\n {\n title: t('tableHeaders.hours'),\n render: ({ hours }) => (\n <Text>{hours ? formatHoursDisplay(Number(hours)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.wage'),\n render: ({ wage }) => <Text>{wage ? currencyFormatter(Number(wage)) : '–'}</Text>,\n },\n {\n title: t('tableHeaders.bonus'),\n render: ({ bonus }) => (\n <Text>{bonus ? currencyFormatter(Number(bonus)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.reimbursements'),\n render: ({ reimbursement }) => (\n <Text>{reimbursement ? currencyFormatter(Number(reimbursement)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.total'),\n render: ({ wageTotal, reimbursement, bonus }) => (\n <Text>\n {wageTotal\n ? currencyFormatter(\n Number(wageTotal) + Number(reimbursement) + Number(bonus),\n )\n : '–'}\n </Text>\n ),\n },\n ]}\n itemMenu={({ contractorUuid, mayCancel, uuid }) => {\n const items = [\n {\n label: t('actions.view'),\n onClick: () => {\n onViewPayment(contractorUuid!)\n },\n icon: (\n <span className={styles.icon}>\n <EyeIcon aria-hidden />\n </span>\n ),\n },\n ]\n if (mayCancel) {\n items.push({\n label: t('actions.cancel'),\n onClick: () => {\n onCancelPayment(uuid!)\n },\n icon: (\n <span className={styles.icon}>\n <CancelIcon aria-hidden />\n </span>\n ),\n })\n }\n return (\n <HamburgerMenu\n items={items}\n triggerLabel={t('tableHeaders.action')}\n isLoading={isCancelling}\n />\n )\n }}\n data={payments}\n label={t('title')}\n />\n </>\n )}\n </Flex>\n </Flex>\n )\n}\n"],"names":["PaymentHistoryPresentation","paymentGroup","contractors","onViewPayment","onCancelPayment","isCancelling","Text","Heading","useComponentContext","useI18n","useTranslation","currencyFormatter","useNumberFormatter","formatLongWithYear","useDateFormatter","payments","jsxs","Flex","jsx","Trans","EmptyData","Fragment","DataView","contractorUuid","getContractorDisplayName","contractor","wageType","paymentMethod","hours","formatHoursDisplay","wage","bonus","reimbursement","wageTotal","mayCancel","uuid","items","styles","EyeIcon","CancelIcon","HamburgerMenu"],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PaymentHistoryPresentation.js","sources":["../../../../../src/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport type { ContractorPaymentGroup } from '@gusto/embedded-api-v-2025-11-15/models/components/contractorpaymentgroup'\nimport type { Contractor } from '@gusto/embedded-api-v-2025-11-15/models/components/contractor'\nimport { getContractorDisplayName } from '../CreatePayment/helpers'\nimport styles from './PaymentHistoryPresentation.module.scss'\nimport { DataView, Flex, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { useI18n } from '@/i18n'\nimport { formatHoursDisplay } from '@/components/Payroll/helpers'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport EyeIcon from '@/assets/icons/eye.svg?react'\nimport CancelIcon from '@/assets/icons/slash-circle.svg?react'\n\ninterface PaymentHistoryPresentationProps {\n paymentGroup: ContractorPaymentGroup\n contractors: Contractor[]\n onViewPayment: (paymentId: string) => void\n onCancelPayment: (paymentId: string) => void\n isCancelling: boolean\n}\n\n/** @internal */\nexport const PaymentHistoryPresentation = ({\n paymentGroup,\n contractors,\n onViewPayment,\n onCancelPayment,\n isCancelling,\n}: PaymentHistoryPresentationProps) => {\n const { Text, Heading } = useComponentContext()\n useI18n('Contractor.Payments.PaymentHistory')\n const { t } = useTranslation('Contractor.Payments.PaymentHistory')\n const currencyFormatter = useNumberFormatter('currency')\n const { formatLongWithYear } = useDateFormatter()\n\n const payments = paymentGroup.contractorPayments || []\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text>\n <Trans\n i18nKey={'subtitle'}\n t={t}\n values={{ date: formatLongWithYear(paymentGroup.debitDate) }}\n components={{\n strong: <Text weight=\"bold\" as=\"span\" />,\n }}\n />\n </Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h2\">{t('paymentsSection')}</Heading>\n\n {payments.length === 0 ? (\n <EmptyData title={t('noPaymentsFound')} description={t('noPaymentsDescription')} />\n ) : (\n <>\n <DataView\n columns={[\n {\n title: t('tableHeaders.contractor'),\n render: ({ contractorUuid }) =>\n getContractorDisplayName(\n contractors.find(contractor => contractor.uuid === contractorUuid),\n ),\n },\n {\n title: t('tableHeaders.wageType'),\n render: ({ wageType }) => <Text>{wageType}</Text>,\n },\n {\n title: t('tableHeaders.paymentMethod'),\n render: ({ paymentMethod }) => <Text>{paymentMethod}</Text>,\n },\n {\n title: t('tableHeaders.hours'),\n render: ({ hours }) => (\n <Text>{hours ? formatHoursDisplay(Number(hours)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.wage'),\n render: ({ wage }) => <Text>{wage ? currencyFormatter(Number(wage)) : '–'}</Text>,\n },\n {\n title: t('tableHeaders.bonus'),\n render: ({ bonus }) => (\n <Text>{bonus ? currencyFormatter(Number(bonus)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.reimbursements'),\n render: ({ reimbursement }) => (\n <Text>{reimbursement ? currencyFormatter(Number(reimbursement)) : '–'}</Text>\n ),\n },\n {\n title: t('tableHeaders.total'),\n render: ({ wageTotal, reimbursement, bonus }) => (\n <Text>\n {wageTotal\n ? currencyFormatter(\n Number(wageTotal) + Number(reimbursement) + Number(bonus),\n )\n : '–'}\n </Text>\n ),\n },\n ]}\n itemMenu={({ contractorUuid, mayCancel, uuid }) => {\n const items = [\n {\n label: t('actions.view'),\n onClick: () => {\n onViewPayment(contractorUuid!)\n },\n icon: (\n <span className={styles.icon}>\n <EyeIcon aria-hidden />\n </span>\n ),\n },\n ]\n if (mayCancel) {\n items.push({\n label: t('actions.cancel'),\n onClick: () => {\n onCancelPayment(uuid!)\n },\n icon: (\n <span className={styles.icon}>\n <CancelIcon aria-hidden />\n </span>\n ),\n })\n }\n return (\n <HamburgerMenu\n items={items}\n triggerLabel={t('tableHeaders.action')}\n isLoading={isCancelling}\n />\n )\n }}\n data={payments}\n label={t('title')}\n />\n </>\n )}\n </Flex>\n </Flex>\n )\n}\n"],"names":["PaymentHistoryPresentation","paymentGroup","contractors","onViewPayment","onCancelPayment","isCancelling","Text","Heading","useComponentContext","useI18n","useTranslation","currencyFormatter","useNumberFormatter","formatLongWithYear","useDateFormatter","payments","jsxs","Flex","jsx","Trans","EmptyData","Fragment","DataView","contractorUuid","getContractorDisplayName","contractor","wageType","paymentMethod","hours","formatHoursDisplay","wage","bonus","reimbursement","wageTotal","mayCancel","uuid","items","styles","EyeIcon","CancelIcon","HamburgerMenu"],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { BaseComponentInterface } from '../../../Base';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link PaymentStatement}.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface PaymentStatementProps extends BaseComponentInterface<'Contractor.Payments.PaymentStatement'> {
|
|
8
|
+
/** UUID of the contractor payment group the statement belongs to. */
|
|
3
9
|
paymentGroupId: string;
|
|
10
|
+
/** UUID of the contractor whose payment within the group is being displayed. */
|
|
4
11
|
contractorUuid: string;
|
|
5
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Displays a single contractor's payment statement within a payment group, including wage breakdown, bonuses, reimbursements, and a receipt card for funded direct-deposit payments.
|
|
15
|
+
*
|
|
16
|
+
* @param props - See {@link PaymentStatementProps}.
|
|
17
|
+
* @returns The rendered payment statement.
|
|
18
|
+
* @public
|
|
19
|
+
*/
|
|
6
20
|
export declare function PaymentStatement(props: PaymentStatementProps): import("react").JSX.Element;
|
|
7
|
-
export declare const Root: ({ paymentGroupId, contractorUuid, dictionary }: PaymentStatementProps) => import("react").JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentStatement.js","sources":["../../../../../src/components/Contractor/Payments/PaymentStatement/PaymentStatement.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsList'\nimport { useContractorPaymentsGetReceipt } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentsGetReceipt'\nimport { GustoEmbeddedError } from '@gusto/embedded-api-v-2025-11-15/models/errors/gustoembeddederror'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentStatementPresentation } from './PaymentStatementPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\
|
|
1
|
+
{"version":3,"file":"PaymentStatement.js","sources":["../../../../../src/components/Contractor/Payments/PaymentStatement/PaymentStatement.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorsList'\nimport { useContractorPaymentsGetReceipt } from '@gusto/embedded-api-v-2025-11-15/react-query/contractorPaymentsGetReceipt'\nimport { GustoEmbeddedError } from '@gusto/embedded-api-v-2025-11-15/models/errors/gustoembeddederror'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentStatementPresentation } from './PaymentStatementPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\n/**\n * Props for {@link PaymentStatement}.\n *\n * @public\n */\nexport interface PaymentStatementProps extends BaseComponentInterface<'Contractor.Payments.PaymentStatement'> {\n /** UUID of the contractor payment group the statement belongs to. */\n paymentGroupId: string\n /** UUID of the contractor whose payment within the group is being displayed. */\n contractorUuid: string\n}\n\n/**\n * Displays a single contractor's payment statement within a payment group, including wage breakdown, bonuses, reimbursements, and a receipt card for funded direct-deposit payments.\n *\n * @param props - See {@link PaymentStatementProps}.\n * @returns The rendered payment statement.\n * @public\n */\nexport function PaymentStatement(props: PaymentStatementProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ paymentGroupId, contractorUuid, dictionary }: PaymentStatementProps) => {\n useComponentDictionary('Contractor.Payments.PaymentStatement', dictionary)\n const { t } = useTranslation('Contractor.Payments.PaymentStatement')\n // Fetching entire payment\n const { data: paymentGroupResponse } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n\n if (!paymentGroupResponse.contractorPaymentGroup) {\n throw new Error(t('errors.paymentGroupNotFound'))\n }\n\n const companyId = paymentGroupResponse.contractorPaymentGroup.companyUuid!\n // Fetching all contractors for the company\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = contractorList.contractors || []\n // Locating the payment for the selectedcontractor\n const payment = paymentGroupResponse.contractorPaymentGroup.contractorPayments?.find(\n p => p.contractorUuid === contractorUuid,\n )\n\n if (!payment) {\n throw new Error(t('errors.paymentNotFound'))\n }\n // Attempting to fetch the payment receipt\n // Note: 404 is expected for receipts that aren't available (e.g., non-direct deposit or not yet funded)\n const { data: paymentResponse } = useContractorPaymentsGetReceipt(\n {\n contractorPaymentUuid: payment.uuid!,\n },\n {\n retry: false,\n throwOnError: (error: Error) => {\n // Ignore 404 errors (receipt not available), but throw other errors\n if (error instanceof GustoEmbeddedError && error.httpMeta.response.status === 404) {\n return false\n }\n return true\n },\n },\n )\n const contractor = contractors.find(c => c.uuid === contractorUuid)\n if (!contractor) {\n throw new Error(t('errors.contractorNotFound'))\n }\n\n return (\n <PaymentStatementPresentation\n payment={payment}\n contractor={contractor}\n paymentReceipt={paymentResponse?.contractorPaymentReceipt}\n checkDate={paymentGroupResponse.contractorPaymentGroup.checkDate || ''}\n />\n )\n}\n"],"names":["PaymentStatement","props","jsx","BaseComponent","Root","paymentGroupId","contractorUuid","dictionary","useComponentDictionary","t","useTranslation","paymentGroupResponse","useContractorPaymentGroupsGetSuspense","companyId","contractorList","useContractorsListSuspense","contractors","payment","p","paymentResponse","useContractorPaymentsGetReceipt","error","GustoEmbeddedError","contractor","c","PaymentStatementPresentation"],"mappings":";;;;;;;;;;AA4BO,SAASA,EAAiBC,GAA8B;AAC7D,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,gBAAAC,GAAgB,gBAAAC,GAAgB,YAAAC,QAAwC;AACtF,EAAAC,EAAuB,wCAAwCD,CAAU;AACzE,QAAM,EAAE,GAAAE,EAAA,IAAMC,EAAe,sCAAsC,GAE7D,EAAE,MAAMC,EAAA,IAAyBC,EAAsC;AAAA,IAC3E,4BAA4BP;AAAA,EAAA,CAC7B;AAED,MAAI,CAACM,EAAqB;AACxB,UAAM,IAAI,MAAMF,EAAE,6BAA6B,CAAC;AAGlD,QAAMI,IAAYF,EAAqB,uBAAuB,aAExD,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaF,GAAW,GAChFG,IAAcF,EAAe,eAAe,CAAA,GAE5CG,IAAUN,EAAqB,uBAAuB,oBAAoB;AAAA,IAC9E,CAAAO,MAAKA,EAAE,mBAAmBZ;AAAA,EAAA;AAG5B,MAAI,CAACW;AACH,UAAM,IAAI,MAAMR,EAAE,wBAAwB,CAAC;AAI7C,QAAM,EAAE,MAAMU,EAAA,IAAoBC;AAAA,IAChC;AAAA,MACE,uBAAuBH,EAAQ;AAAA,IAAA;AAAA,IAEjC;AAAA,MACE,OAAO;AAAA,MACP,cAAc,CAACI,MAET,EAAAA,aAAiBC,KAAsBD,EAAM,SAAS,SAAS,WAAW;AAAA,IAIhF;AAAA,EACF,GAEIE,IAAaP,EAAY,KAAK,CAAAQ,MAAKA,EAAE,SAASlB,CAAc;AAClE,MAAI,CAACiB;AACH,UAAM,IAAI,MAAMd,EAAE,2BAA2B,CAAC;AAGhD,SACE,gBAAAP;AAAA,IAACuB;AAAA,IAAA;AAAA,MACC,SAAAR;AAAA,MACA,YAAAM;AAAA,MACA,gBAAgBJ,GAAiB;AAAA,MACjC,WAAWR,EAAqB,uBAAuB,aAAa;AAAA,IAAA;AAAA,EAAA;AAG1E;"}
|
package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts
CHANGED
|
@@ -7,5 +7,6 @@ interface PaymentStatementPresentationProps {
|
|
|
7
7
|
paymentReceipt?: ContractorPaymentReceipt;
|
|
8
8
|
checkDate: string;
|
|
9
9
|
}
|
|
10
|
+
/** @internal */
|
|
10
11
|
export declare const PaymentStatementPresentation: ({ payment, contractor, checkDate, paymentReceipt, }: PaymentStatementPresentationProps) => import("react").JSX.Element;
|
|
11
12
|
export {};
|