@gusto/embedded-react-sdk 0.52.1 → 0.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/dist/components/Base/Base.d.ts +2 -2
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
- package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.js +6 -6
- package/dist/components/Common/UI/Box/Box.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
- package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
- package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
- package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
- package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.js +8 -9
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -7
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +20 -21
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -12
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +6 -7
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/stateMachine.d.ts +0 -1
- package/dist/components/Company/BankAccount/stateMachine.js +33 -35
- package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -6
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -14
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -8
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +6 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +4 -4
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -6
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.js +6 -8
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +6 -7
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +4 -6
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -12
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +5 -6
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -10
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -5
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +47 -51
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +0 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +26 -28
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -7
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +62 -47
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -23
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +12 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js +36 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +10 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js +110 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +18 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +55 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +47 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js +108 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.d.ts +25 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +22 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/index.d.ts +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.d.ts +29 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js +34 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.d.ts +17 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js +24 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js.map +1 -0
- package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.d.ts +1 -1
- package/dist/components/Company/StateTaxes/shared/applicableIf.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/applicableIf.test.d.ts +1 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.d.ts +19 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js +38 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.d.ts +2 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js +7 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.d.ts +23 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js +13 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.test.d.ts +1 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -1
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +40 -20
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
- package/dist/components/Company/exports/companyOnboarding.js +12 -10
- package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +83 -76
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +39 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +90 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +22 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +247 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/{index.d.ts → onboarding/ContractorList.d.ts} +3 -3
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +51 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +16 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +113 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/shared/index.d.ts +1 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.d.ts +87 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +110 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -0
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js +18 -20
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +2 -3
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +170 -123
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js +12 -0
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js +40 -39
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +91 -88
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +0 -33
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +77 -86
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +9 -10
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +2 -3
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +162 -251
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +2 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js +2 -2
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +45 -44
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -3
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +32 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +107 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.test.d.ts +1 -0
- package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +6 -7
- package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfile.js +63 -57
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +18 -19
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +118 -102
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/exports/contractorManagement.d.ts +1 -0
- package/dist/components/Contractor/exports/contractorManagement.js +12 -10
- package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
- package/dist/components/Contractor/exports/contractorOnboarding.d.ts +1 -1
- package/dist/components/Contractor/exports/contractorOnboarding.js +1 -1
- package/dist/components/Contractor/shared/useContractorHasSignedW9.d.ts +8 -0
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js +10 -0
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js.map +1 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +32 -33
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +2 -3
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +6 -7
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +14 -15
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentManager.js +6 -7
- package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +6 -7
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +4 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +10 -13
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +5 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js +8 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js.map +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +22 -21
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +5 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +6 -7
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -12
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +15 -16
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +6 -7
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +11 -12
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +7 -8
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +4 -4
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +29 -23
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +26 -20
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +133 -99
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js +8 -0
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js.map +1 -0
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +19 -20
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +92 -86
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +65 -64
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +7 -8
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +7 -7
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js +6 -6
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +6 -6
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts +1 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts +1 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +11 -12
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +9 -10
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +6 -7
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +44 -45
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +23 -22
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +27 -27
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +9 -10
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +2 -3
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +16 -17
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
- package/dist/components/Flow/Flow.js +1 -1
- package/dist/components/Flow/FlowHeader.js +3 -4
- package/dist/components/Flow/FlowHeader.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +8 -9
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +7 -8
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +37 -37
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +8 -9
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +7 -8
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +10 -12
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +0 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +7 -8
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +3 -3
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +54 -50
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +80 -69
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +20 -18
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +138 -136
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -12
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -3
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +1 -2
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +8 -9
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -3
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +34 -36
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +24 -25
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/components/index.d.ts +40 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +29 -28
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/LocaleProvider/useLocale.d.ts +1 -9
- package/dist/contexts/LocaleProvider/useLocale.js +5 -15
- package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
- package/dist/contexts/NonceProvider/index.d.ts +1 -0
- package/dist/contexts/NonceProvider/useNonce.d.ts +37 -0
- package/dist/contexts/NonceProvider/useNonce.js +7 -0
- package/dist/contexts/NonceProvider/useNonce.js.map +1 -0
- package/dist/contexts/ThemeProvider/ThemeProvider.js +25 -24
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/contexts/index.d.ts +1 -0
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.d.ts +12 -7
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js +25 -21
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js.map +1 -1
- package/dist/i18n/I18n.js +1 -0
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.StateTaxes.json.js +6 -4
- package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Address.json.js +22 -20
- package/dist/i18n/en/Contractor.Address.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js +60 -0
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Profile.json.js +13 -11
- package/dist/i18n/en/Contractor.Profile.json.js.map +1 -1
- package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js +18 -16
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js.map +1 -1
- package/dist/i18n/en/Employee.Management.PaymentMethodSplitForm.json.js +2 -2
- package/dist/i18n/en/Employee.PaymentMethod.json.js +74 -72
- package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/Employee.SplitPaymentsFormBody.json.js +2 -2
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
- package/dist/i18n/en/Payroll.PayrollList.json.js +23 -23
- package/dist/i18n/types.d.ts +215 -17
- package/dist/index.d.ts +6 -3
- package/dist/index.js +15 -13
- package/dist/index.js.map +1 -1
- package/dist/models/external.d.ts +4 -0
- package/dist/partner-hook-utils/form/SDKFormProvider.js +39 -24
- package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +16 -19
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -16
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +18 -21
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +9 -12
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.d.ts +2 -2
- package/dist/partner-hook-utils/form/preprocessors.js +8 -7
- package/dist/partner-hook-utils/form/preprocessors.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.test.d.ts +1 -0
- package/dist/shared/constants.d.ts +12 -0
- package/dist/shared/constants.js +23 -17
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/Helpers.d.ts +1 -1
- package/docs/guides/endpoint-inventory.json +61 -27
- package/package.json +19 -17
- package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +0 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +0 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js +0 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +0 -1
- package/dist/components/Contractor/ContractorList/index.js +0 -150
- package/dist/components/Contractor/ContractorList/index.js.map +0 -1
- package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
- package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
- package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
- /package/dist/components/Company/StateTaxes/{StateTaxesForm/applicableIf.test.d.ts → TaxRateManagement/toHistoryRows.test.d.ts} +0 -0
- /package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.js +0 -0
package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminateEmployeePresentation.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport z from 'zod'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Termination } from '@gusto/embedded-api/models/components/termination'\nimport type { PayrollOption } from '../types'\nimport type { TerminateEmployeeFormData } from './TerminateEmployee'\nimport { Flex, ActionsLayout, DatePickerField, RadioGroupField } from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\ninterface TerminateEmployeePresentationProps {\n employeeName: string\n existingTermination?: Termination\n onSubmit: (data: TerminateEmployeeFormData) => void\n onCancel: () => void\n isLoading: boolean\n}\n\nconst terminateEmployeeSchema = z.object({\n lastDayOfWork: z.date({ error: 'validation.lastDayRequired' }),\n payrollOption: z.enum(['dismissalPayroll', 'regularPayroll', 'anotherWay'], {\n error: 'validation.payrollOptionRequired',\n }),\n})\n\n/** @internal */\nexport function TerminateEmployeePresentation({\n employeeName,\n existingTermination,\n onSubmit,\n onCancel,\n isLoading,\n}: TerminateEmployeePresentationProps) {\n const { Alert, Heading, Text, Button } = useComponentContext()\n useI18n('Employee.Terminations.TerminateEmployee')\n const { t } = useTranslation('Employee.Terminations.TerminateEmployee')\n\n const getPayrollOptionFromTermination = (termination: Termination): PayrollOption => {\n if (termination.runTerminationPayroll === true) {\n return 'dismissalPayroll'\n }\n return 'regularPayroll'\n }\n\n const initialValues: Partial<TerminateEmployeeFormData> = {\n lastDayOfWork: existingTermination?.effectiveDate
|
|
1
|
+
{"version":3,"file":"TerminateEmployeePresentation.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport z from 'zod'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Termination } from '@gusto/embedded-api/models/components/termination'\nimport type { PayrollOption } from '../types'\nimport type { TerminateEmployeeFormData } from './TerminateEmployee'\nimport { Flex, ActionsLayout, DatePickerField, RadioGroupField } from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\ninterface TerminateEmployeePresentationProps {\n employeeName: string\n existingTermination?: Termination\n onSubmit: (data: TerminateEmployeeFormData) => void\n onCancel: () => void\n isLoading: boolean\n}\n\nconst terminateEmployeeSchema = z.object({\n lastDayOfWork: z.date({ error: 'validation.lastDayRequired' }),\n payrollOption: z.enum(['dismissalPayroll', 'regularPayroll', 'anotherWay'], {\n error: 'validation.payrollOptionRequired',\n }),\n})\n\n/** @internal */\nexport function TerminateEmployeePresentation({\n employeeName,\n existingTermination,\n onSubmit,\n onCancel,\n isLoading,\n}: TerminateEmployeePresentationProps) {\n const { Alert, Heading, Text, Button } = useComponentContext()\n useI18n('Employee.Terminations.TerminateEmployee')\n const { t } = useTranslation('Employee.Terminations.TerminateEmployee')\n\n const getPayrollOptionFromTermination = (termination: Termination): PayrollOption => {\n if (termination.runTerminationPayroll === true) {\n return 'dismissalPayroll'\n }\n return 'regularPayroll'\n }\n\n const initialValues: Partial<TerminateEmployeeFormData> = {\n lastDayOfWork: normalizeToDate(existingTermination?.effectiveDate) ?? undefined,\n payrollOption: existingTermination\n ? getPayrollOptionFromTermination(existingTermination)\n : 'dismissalPayroll',\n }\n const formMethods = useForm<TerminateEmployeeFormData>({\n resolver: zodResolver(terminateEmployeeSchema),\n defaultValues: initialValues,\n })\n\n const selectedPayrollOption = formMethods.watch('payrollOption')\n\n const payrollOptions = [\n {\n value: 'dismissalPayroll' as const,\n label: t('form.payrollOption.options.dismissalPayroll.label'),\n description: t('form.payrollOption.options.dismissalPayroll.description'),\n },\n {\n value: 'regularPayroll' as const,\n label: t('form.payrollOption.options.regularPayroll.label'),\n description: t('form.payrollOption.options.regularPayroll.description'),\n },\n {\n value: 'anotherWay' as const,\n label: t('form.payrollOption.options.anotherWay.label'),\n description: t('form.payrollOption.options.anotherWay.description'),\n },\n ]\n\n return (\n <FormProvider {...formMethods}>\n <HtmlForm onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('title', { employeeName })}</Heading>\n <Text variant=\"supporting\">{t('subtitle')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={24}>\n <DatePickerField\n name=\"lastDayOfWork\"\n label={t('form.lastDayOfEmployment.label')}\n description={t('form.lastDayOfEmployment.description')}\n isRequired\n errorMessage={t('validation.lastDayRequired')}\n />\n\n <RadioGroupField<PayrollOption>\n name=\"payrollOption\"\n label={t('form.payrollOption.label')}\n description={t('form.payrollOption.description')}\n options={payrollOptions}\n isRequired\n errorMessage={t('validation.payrollOptionRequired')}\n />\n <Alert status=\"warning\" label={t(`alert.${selectedPayrollOption}.label`)}>\n <Text>{t(`alert.${selectedPayrollOption}.text`, { employeeName })}</Text>\n </Alert>\n </Flex>\n\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onCancel} isDisabled={isLoading}>\n {t('actions.cancel')}\n </Button>\n <Button type=\"submit\" variant=\"primary\" isLoading={isLoading}>\n {t('actions.submit')}\n </Button>\n </ActionsLayout>\n </Flex>\n </HtmlForm>\n </FormProvider>\n )\n}\n"],"names":["terminateEmployeeSchema","z","TerminateEmployeePresentation","employeeName","existingTermination","onSubmit","onCancel","isLoading","Alert","Heading","Text","Button","useComponentContext","useI18n","t","useTranslation","getPayrollOptionFromTermination","termination","initialValues","normalizeToDate","formMethods","useForm","zodResolver","selectedPayrollOption","payrollOptions","FormProvider","jsx","HtmlForm","jsxs","Flex","DatePickerField","RadioGroupField","ActionsLayout"],"mappings":"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"}
|
|
@@ -5,13 +5,12 @@ import { TerminationSummary as f } from "../TerminationSummary/TerminationSummar
|
|
|
5
5
|
import { PayrollLanding as I } from "../../../Payroll/PayrollLanding/PayrollLanding.js";
|
|
6
6
|
import { useFlow as p } from "../../../Flow/useFlow.js";
|
|
7
7
|
import { Flex as T } from "../../../Common/Flex/Flex.js";
|
|
8
|
-
import { useComponentContext as x } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
9
|
-
import "react";
|
|
10
8
|
import { ensureRequired as e } from "../../../../helpers/ensureRequired.js";
|
|
9
|
+
import { useComponentContext as x } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
10
|
import { useI18n as y } from "../../../../i18n/I18n.js";
|
|
12
11
|
import { componentEvents as C } from "../../../../shared/constants.js";
|
|
13
12
|
import { DismissalFlow as F } from "../../../Payroll/Dismissal/DismissalFlow.js";
|
|
14
|
-
function
|
|
13
|
+
function M() {
|
|
15
14
|
const { companyId: o, employeeId: n, onEvent: t, alerts: m } = p(), { Alert: l } = x();
|
|
16
15
|
return y("Employee.Terminations.TerminationFlow"), /* @__PURE__ */ u(T, { flexDirection: "column", gap: 8, children: [
|
|
17
16
|
m?.map((r, s) => /* @__PURE__ */ i(l, { status: r.type, label: r.title, children: r.content }, s)),
|
|
@@ -25,7 +24,7 @@ function R() {
|
|
|
25
24
|
)
|
|
26
25
|
] });
|
|
27
26
|
}
|
|
28
|
-
function
|
|
27
|
+
function R() {
|
|
29
28
|
const { companyId: o, employeeId: n, payrollOption: t, payrollUuid: m, onEvent: l } = p();
|
|
30
29
|
y("Employee.Terminations.TerminationFlow");
|
|
31
30
|
const { t: r } = d("Employee.Terminations.TerminationFlow");
|
|
@@ -52,7 +51,7 @@ function U() {
|
|
|
52
51
|
}
|
|
53
52
|
);
|
|
54
53
|
}
|
|
55
|
-
function
|
|
54
|
+
function U() {
|
|
56
55
|
const { companyId: o, employeeId: n, payrollUuid: t, onEvent: m } = p();
|
|
57
56
|
return /* @__PURE__ */ i(
|
|
58
57
|
F,
|
|
@@ -64,14 +63,14 @@ function _() {
|
|
|
64
63
|
}
|
|
65
64
|
);
|
|
66
65
|
}
|
|
67
|
-
function
|
|
66
|
+
function _() {
|
|
68
67
|
const { companyId: o, onEvent: n } = p();
|
|
69
68
|
return /* @__PURE__ */ i(I, { onEvent: n, companyId: e(o) });
|
|
70
69
|
}
|
|
71
70
|
export {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
U as DismissalFlowContextual,
|
|
72
|
+
_ as PayrollLandingContextual,
|
|
73
|
+
M as TerminateEmployeeContextual,
|
|
74
|
+
R as TerminationSummaryContextual
|
|
76
75
|
};
|
|
77
76
|
//# sourceMappingURL=TerminationFlowComponents.js.map
|
package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminationFlowComponents.js","sources":["../../../../../src/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { TerminateEmployee } from '../TerminateEmployee/TerminateEmployee'\nimport { TerminationSummary } from '../TerminationSummary/TerminationSummary'\nimport type { PayrollOption } from '../types'\nimport { DismissalFlow } from '@/components/Payroll/Dismissal'\nimport { PayrollLanding } from '@/components/Payroll/PayrollLanding/PayrollLanding'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Flex } from '@/components/Common'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link TerminationFlow}.\n *\n * @public\n */\nexport interface TerminationFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** The employee identifier to terminate. */\n employeeId: string\n}\n\n/**\n * Alert payload surfaced by {@link TerminationFlow} on selected events (e.g. `employee/termination/cancelled`).\n *\n * @public\n */\nexport type TerminationFlowAlert = {\n /** Visual severity of the alert. */\n type: 'error' | 'info' | 'success'\n /** Alert title. */\n title: string\n /** Optional alert body content. */\n content?: ReactNode\n}\n\n/** @internal */\nexport interface TerminationFlowContextInterface extends FlowContextInterface {\n companyId: string\n employeeId: string\n payrollOption?: PayrollOption\n payrollUuid?: string\n alerts?: TerminationFlowAlert[]\n}\n\n/** @internal */\nexport function TerminateEmployeeContextual() {\n const { companyId, employeeId, onEvent, alerts } = useFlow<TerminationFlowContextInterface>()\n const { Alert } = useComponentContext()\n useI18n('Employee.Terminations.TerminationFlow')\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <TerminateEmployee\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function TerminationSummaryContextual() {\n const { companyId, employeeId, payrollOption, payrollUuid, onEvent } =\n useFlow<TerminationFlowContextInterface>()\n useI18n('Employee.Terminations.TerminationFlow')\n const { t } = useTranslation('Employee.Terminations.TerminationFlow')\n\n const handleEvent = (event: EventType, data?: unknown) => {\n if (event === componentEvents.EMPLOYEE_TERMINATION_CANCELLED) {\n onEvent(event, {\n ...(data as object),\n alert: {\n type: 'success',\n title: t('cancelSuccess'),\n },\n })\n return\n }\n onEvent(event, data)\n }\n\n return (\n <TerminationSummary\n onEvent={handleEvent}\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n payrollOption={payrollOption}\n payrollUuid={payrollUuid}\n />\n )\n}\n\n/** @internal */\nexport function DismissalFlowContextual() {\n const { companyId, employeeId, payrollUuid, onEvent } = useFlow<TerminationFlowContextInterface>()\n\n return (\n <DismissalFlow\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n payrollId={payrollUuid}\n onEvent={onEvent}\n />\n )\n}\n\n/** @internal */\nexport function PayrollLandingContextual() {\n const { companyId, onEvent } = useFlow<TerminationFlowContextInterface>()\n\n return <PayrollLanding onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n"],"names":["TerminateEmployeeContextual","companyId","employeeId","onEvent","alerts","useFlow","Alert","useComponentContext","useI18n","jsxs","Flex","alert","index","jsx","TerminateEmployee","ensureRequired","TerminationSummaryContextual","payrollOption","payrollUuid","t","useTranslation","TerminationSummary","event","data","componentEvents","DismissalFlowContextual","DismissalFlow","PayrollLandingContextual","PayrollLanding"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TerminationFlowComponents.js","sources":["../../../../../src/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { TerminateEmployee } from '../TerminateEmployee/TerminateEmployee'\nimport { TerminationSummary } from '../TerminationSummary/TerminationSummary'\nimport type { PayrollOption } from '../types'\nimport { DismissalFlow } from '@/components/Payroll/Dismissal'\nimport { PayrollLanding } from '@/components/Payroll/PayrollLanding/PayrollLanding'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Flex } from '@/components/Common'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link TerminationFlow}.\n *\n * @public\n */\nexport interface TerminationFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** The employee identifier to terminate. */\n employeeId: string\n}\n\n/**\n * Alert payload surfaced by {@link TerminationFlow} on selected events (e.g. `employee/termination/cancelled`).\n *\n * @public\n */\nexport type TerminationFlowAlert = {\n /** Visual severity of the alert. */\n type: 'error' | 'info' | 'success'\n /** Alert title. */\n title: string\n /** Optional alert body content. */\n content?: ReactNode\n}\n\n/** @internal */\nexport interface TerminationFlowContextInterface extends FlowContextInterface {\n companyId: string\n employeeId: string\n payrollOption?: PayrollOption\n payrollUuid?: string\n alerts?: TerminationFlowAlert[]\n}\n\n/** @internal */\nexport function TerminateEmployeeContextual() {\n const { companyId, employeeId, onEvent, alerts } = useFlow<TerminationFlowContextInterface>()\n const { Alert } = useComponentContext()\n useI18n('Employee.Terminations.TerminationFlow')\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <TerminateEmployee\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function TerminationSummaryContextual() {\n const { companyId, employeeId, payrollOption, payrollUuid, onEvent } =\n useFlow<TerminationFlowContextInterface>()\n useI18n('Employee.Terminations.TerminationFlow')\n const { t } = useTranslation('Employee.Terminations.TerminationFlow')\n\n const handleEvent = (event: EventType, data?: unknown) => {\n if (event === componentEvents.EMPLOYEE_TERMINATION_CANCELLED) {\n onEvent(event, {\n ...(data as object),\n alert: {\n type: 'success',\n title: t('cancelSuccess'),\n },\n })\n return\n }\n onEvent(event, data)\n }\n\n return (\n <TerminationSummary\n onEvent={handleEvent}\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n payrollOption={payrollOption}\n payrollUuid={payrollUuid}\n />\n )\n}\n\n/** @internal */\nexport function DismissalFlowContextual() {\n const { companyId, employeeId, payrollUuid, onEvent } = useFlow<TerminationFlowContextInterface>()\n\n return (\n <DismissalFlow\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n payrollId={payrollUuid}\n onEvent={onEvent}\n />\n )\n}\n\n/** @internal */\nexport function PayrollLandingContextual() {\n const { companyId, onEvent } = useFlow<TerminationFlowContextInterface>()\n\n return <PayrollLanding onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n"],"names":["TerminateEmployeeContextual","companyId","employeeId","onEvent","alerts","useFlow","Alert","useComponentContext","useI18n","jsxs","Flex","alert","index","jsx","TerminateEmployee","ensureRequired","TerminationSummaryContextual","payrollOption","payrollUuid","t","useTranslation","TerminationSummary","event","data","componentEvents","DismissalFlowContextual","DismissalFlow","PayrollLandingContextual","PayrollLanding"],"mappings":";;;;;;;;;;;;AAmDO,SAASA,IAA8B;AAC5C,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,SAAAC,GAAS,QAAAC,EAAA,IAAWC,EAAA,GAC7C,EAAE,OAAAC,EAAA,IAAUC,EAAA;AAClB,SAAAC,EAAQ,uCAAuC,GAG7C,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAC/B,UAAA;AAAA,IAAAN,GAAQ,IAAI,CAACO,GAAOC,wBAClBN,GAAA,EAAkB,QAAQK,EAAM,MAAM,OAAOA,EAAM,OACjD,UAAAA,EAAM,QAAA,GADGC,CAEZ,CACD;AAAA,IACD,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,SAAAX;AAAA,QACA,WAAWY,EAAed,CAAS;AAAA,QACnC,YAAYc,EAAeb,CAAU;AAAA,MAAA;AAAA,IAAA;AAAA,EACvC,GACF;AAEJ;AAGO,SAASc,IAA+B;AAC7C,QAAM,EAAE,WAAAf,GAAW,YAAAC,GAAY,eAAAe,GAAe,aAAAC,GAAa,SAAAf,EAAA,IACzDE,EAAA;AACF,EAAAG,EAAQ,uCAAuC;AAC/C,QAAM,EAAE,GAAAW,EAAA,IAAMC,EAAe,uCAAuC;AAgBpE,SACE,gBAAAP;AAAA,IAACQ;AAAA,IAAA;AAAA,MACC,SAhBgB,CAACC,GAAkBC,MAAmB;AACxD,YAAID,MAAUE,EAAgB,gCAAgC;AAC5D,UAAArB,EAAQmB,GAAO;AAAA,YACb,GAAIC;AAAA,YACJ,OAAO;AAAA,cACL,MAAM;AAAA,cACN,OAAOJ,EAAE,eAAe;AAAA,YAAA;AAAA,UAC1B,CACD;AACD;AAAA,QACF;AACA,QAAAhB,EAAQmB,GAAOC,CAAI;AAAA,MACrB;AAAA,MAKI,WAAWR,EAAed,CAAS;AAAA,MACnC,YAAYc,EAAeb,CAAU;AAAA,MACrC,eAAAe;AAAA,MACA,aAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASO,IAA0B;AACxC,QAAM,EAAE,WAAAxB,GAAW,YAAAC,GAAY,aAAAgB,GAAa,SAAAf,EAAA,IAAYE,EAAA;AAExD,SACE,gBAAAQ;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,WAAWX,EAAed,CAAS;AAAA,MACnC,YAAYc,EAAeb,CAAU;AAAA,MACrC,WAAWgB;AAAA,MACX,SAAAf;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASwB,IAA2B;AACzC,QAAM,EAAE,WAAA1B,GAAW,SAAAE,EAAA,IAAYE,EAAA;AAE/B,2BAAQuB,GAAA,EAAe,SAAAzB,GAAkB,WAAWY,EAAed,CAAS,GAAG;AACjF;"}
|
package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js
CHANGED
|
@@ -3,10 +3,9 @@ import { useTranslation as I, Trans as O } from "react-i18next";
|
|
|
3
3
|
import { Flex as t } from "../../../Common/Flex/Flex.js";
|
|
4
4
|
import { ActionsLayout as W } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
5
5
|
import { useComponentContext as q } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
-
import "react";
|
|
7
6
|
import { useDateFormatter as B } from "../../../../hooks/useDateFormatter.js";
|
|
8
7
|
import { useI18n as E } from "../../../../i18n/I18n.js";
|
|
9
|
-
function
|
|
8
|
+
function N({
|
|
10
9
|
employeeName: l,
|
|
11
10
|
effectiveDate: u,
|
|
12
11
|
canCancel: s,
|
|
@@ -96,6 +95,6 @@ function Q({
|
|
|
96
95
|
] });
|
|
97
96
|
}
|
|
98
97
|
export {
|
|
99
|
-
|
|
98
|
+
N as TerminationSummaryPresentation
|
|
100
99
|
};
|
|
101
100
|
//# sourceMappingURL=TerminationSummaryPresentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TerminationSummaryPresentation.js","sources":["../../../../../src/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.tsx"],"sourcesContent":["import { useTranslation, Trans } from 'react-i18next'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useI18n } from '@/i18n'\n\ninterface TerminationSummaryPresentationProps {\n employeeName: string\n effectiveDate: string | undefined\n canCancel: boolean\n canEdit: boolean\n showRunPayroll: boolean\n showRunOffCyclePayroll: boolean\n showSuccessAlert: boolean\n onCancelClick: () => void\n onEditDismissal: () => void\n onRunDismissalPayroll: () => void\n onRunOffCyclePayroll: () => void\n isLoading: boolean\n isCancelDialogOpen: boolean\n onDialogClose: () => void\n onDialogConfirm: () => void\n isCancelling: boolean\n}\n\n/** @internal */\nexport function TerminationSummaryPresentation({\n employeeName,\n effectiveDate,\n canCancel,\n canEdit,\n showRunPayroll,\n showRunOffCyclePayroll,\n showSuccessAlert,\n onCancelClick,\n onEditDismissal,\n onRunDismissalPayroll,\n onRunOffCyclePayroll,\n isLoading,\n isCancelDialogOpen,\n onDialogClose,\n onDialogConfirm,\n isCancelling,\n}: TerminationSummaryPresentationProps) {\n const { Alert, Heading, Text, Button, DescriptionList, Dialog, Link } = useComponentContext()\n const { formatLongWithYear } = useDateFormatter()\n useI18n('Employee.Terminations.TerminationSummary')\n const { t } = useTranslation('Employee.Terminations.TerminationSummary')\n\n const formattedDate = formatLongWithYear(effectiveDate) || 'N/A'\n\n const dateItems = [\n {\n term: t('dates.today'),\n description: t('dates.dismissed', { employeeName }),\n },\n {\n term: formattedDate,\n description: t('dates.lastDayOfWork'),\n },\n {\n term: formattedDate,\n description: t('dates.lastPayDay'),\n },\n ]\n\n const hasActions = canCancel || canEdit || showRunPayroll || showRunOffCyclePayroll\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n {showSuccessAlert && (\n <Alert status=\"success\" label={t('alert.success.label', { employeeName })} />\n )}\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text variant=\"supporting\">{t('subtitle')}</Text>\n </Flex>\n\n <DescriptionList items={dateItems} />\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h3\">{t('offboarding.title')}</Heading>\n\n <Flex flexDirection=\"column\" gap={16}>\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.runPayroll.title')}</Heading>\n <Text>\n <Trans\n i18nKey=\"offboarding.runPayroll.description\"\n t={t}\n components={{\n StateRequirementsLink: <Link />,\n }}\n />\n </Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.taxForms.title')}</Heading>\n <Text>{t('offboarding.taxForms.description')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.disconnectAccounts.title')}</Heading>\n <Text>{t('offboarding.disconnectAccounts.description')}</Text>\n </Flex>\n </Flex>\n </Flex>\n\n {hasActions && (\n <ActionsLayout>\n {canCancel && (\n <Button variant=\"error\" onClick={onCancelClick} isDisabled={isLoading}>\n {t('actions.cancelTermination')}\n </Button>\n )}\n {canEdit && (\n <Button variant=\"secondary\" onClick={onEditDismissal} isDisabled={isLoading}>\n {t('actions.editDismissal')}\n </Button>\n )}\n {showRunPayroll && (\n <Button variant=\"primary\" onClick={onRunDismissalPayroll} isDisabled={isLoading}>\n {t('actions.runDismissalPayroll')}\n </Button>\n )}\n {showRunOffCyclePayroll && (\n <Button variant=\"primary\" onClick={onRunOffCyclePayroll} isDisabled={isLoading}>\n {t('actions.runOffCyclePayroll')}\n </Button>\n )}\n </ActionsLayout>\n )}\n\n <Dialog\n isOpen={isCancelDialogOpen}\n onClose={onDialogClose}\n onPrimaryActionClick={onDialogConfirm}\n isDestructive\n isPrimaryActionLoading={isCancelling}\n primaryActionLabel={t('cancelDialog.confirm')}\n closeActionLabel={t('cancelDialog.cancel')}\n title={t('cancelDialog.title')}\n >\n <Text>{t('cancelDialog.body')}</Text>\n </Dialog>\n </Flex>\n )\n}\n"],"names":["TerminationSummaryPresentation","employeeName","effectiveDate","canCancel","canEdit","showRunPayroll","showRunOffCyclePayroll","showSuccessAlert","onCancelClick","onEditDismissal","onRunDismissalPayroll","onRunOffCyclePayroll","isLoading","isCancelDialogOpen","onDialogClose","onDialogConfirm","isCancelling","Alert","Heading","Text","Button","DescriptionList","Dialog","Link","useComponentContext","formatLongWithYear","useDateFormatter","useI18n","t","useTranslation","formattedDate","dateItems","hasActions","jsxs","Flex","jsx","Trans","ActionsLayout"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TerminationSummaryPresentation.js","sources":["../../../../../src/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.tsx"],"sourcesContent":["import { useTranslation, Trans } from 'react-i18next'\nimport { ActionsLayout, Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useI18n } from '@/i18n'\n\ninterface TerminationSummaryPresentationProps {\n employeeName: string\n effectiveDate: string | undefined\n canCancel: boolean\n canEdit: boolean\n showRunPayroll: boolean\n showRunOffCyclePayroll: boolean\n showSuccessAlert: boolean\n onCancelClick: () => void\n onEditDismissal: () => void\n onRunDismissalPayroll: () => void\n onRunOffCyclePayroll: () => void\n isLoading: boolean\n isCancelDialogOpen: boolean\n onDialogClose: () => void\n onDialogConfirm: () => void\n isCancelling: boolean\n}\n\n/** @internal */\nexport function TerminationSummaryPresentation({\n employeeName,\n effectiveDate,\n canCancel,\n canEdit,\n showRunPayroll,\n showRunOffCyclePayroll,\n showSuccessAlert,\n onCancelClick,\n onEditDismissal,\n onRunDismissalPayroll,\n onRunOffCyclePayroll,\n isLoading,\n isCancelDialogOpen,\n onDialogClose,\n onDialogConfirm,\n isCancelling,\n}: TerminationSummaryPresentationProps) {\n const { Alert, Heading, Text, Button, DescriptionList, Dialog, Link } = useComponentContext()\n const { formatLongWithYear } = useDateFormatter()\n useI18n('Employee.Terminations.TerminationSummary')\n const { t } = useTranslation('Employee.Terminations.TerminationSummary')\n\n const formattedDate = formatLongWithYear(effectiveDate) || 'N/A'\n\n const dateItems = [\n {\n term: t('dates.today'),\n description: t('dates.dismissed', { employeeName }),\n },\n {\n term: formattedDate,\n description: t('dates.lastDayOfWork'),\n },\n {\n term: formattedDate,\n description: t('dates.lastPayDay'),\n },\n ]\n\n const hasActions = canCancel || canEdit || showRunPayroll || showRunOffCyclePayroll\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n {showSuccessAlert && (\n <Alert status=\"success\" label={t('alert.success.label', { employeeName })} />\n )}\n <Heading as=\"h2\">{t('title')}</Heading>\n <Text variant=\"supporting\">{t('subtitle')}</Text>\n </Flex>\n\n <DescriptionList items={dateItems} />\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h3\">{t('offboarding.title')}</Heading>\n\n <Flex flexDirection=\"column\" gap={16}>\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.runPayroll.title')}</Heading>\n <Text>\n <Trans\n i18nKey=\"offboarding.runPayroll.description\"\n t={t}\n components={{\n StateRequirementsLink: <Link />,\n }}\n />\n </Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.taxForms.title')}</Heading>\n <Text>{t('offboarding.taxForms.description')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Heading as=\"h4\">{t('offboarding.disconnectAccounts.title')}</Heading>\n <Text>{t('offboarding.disconnectAccounts.description')}</Text>\n </Flex>\n </Flex>\n </Flex>\n\n {hasActions && (\n <ActionsLayout>\n {canCancel && (\n <Button variant=\"error\" onClick={onCancelClick} isDisabled={isLoading}>\n {t('actions.cancelTermination')}\n </Button>\n )}\n {canEdit && (\n <Button variant=\"secondary\" onClick={onEditDismissal} isDisabled={isLoading}>\n {t('actions.editDismissal')}\n </Button>\n )}\n {showRunPayroll && (\n <Button variant=\"primary\" onClick={onRunDismissalPayroll} isDisabled={isLoading}>\n {t('actions.runDismissalPayroll')}\n </Button>\n )}\n {showRunOffCyclePayroll && (\n <Button variant=\"primary\" onClick={onRunOffCyclePayroll} isDisabled={isLoading}>\n {t('actions.runOffCyclePayroll')}\n </Button>\n )}\n </ActionsLayout>\n )}\n\n <Dialog\n isOpen={isCancelDialogOpen}\n onClose={onDialogClose}\n onPrimaryActionClick={onDialogConfirm}\n isDestructive\n isPrimaryActionLoading={isCancelling}\n primaryActionLabel={t('cancelDialog.confirm')}\n closeActionLabel={t('cancelDialog.cancel')}\n title={t('cancelDialog.title')}\n >\n <Text>{t('cancelDialog.body')}</Text>\n </Dialog>\n </Flex>\n )\n}\n"],"names":["TerminationSummaryPresentation","employeeName","effectiveDate","canCancel","canEdit","showRunPayroll","showRunOffCyclePayroll","showSuccessAlert","onCancelClick","onEditDismissal","onRunDismissalPayroll","onRunOffCyclePayroll","isLoading","isCancelDialogOpen","onDialogClose","onDialogConfirm","isCancelling","Alert","Heading","Text","Button","DescriptionList","Dialog","Link","useComponentContext","formatLongWithYear","useDateFormatter","useI18n","t","useTranslation","formattedDate","dateItems","hasActions","jsxs","Flex","jsx","Trans","ActionsLayout"],"mappings":"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"}
|
|
@@ -1,48 +1,47 @@
|
|
|
1
|
-
import { jsx as r, jsxs as
|
|
1
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
2
2
|
import { useTranslation as l } from "react-i18next";
|
|
3
3
|
import { Flex as a } from "../../../../Common/Flex/Flex.js";
|
|
4
4
|
import { Loading as p } from "../../../../Common/Loading/Loading.js";
|
|
5
|
-
import {
|
|
6
|
-
import "
|
|
7
|
-
import { BaseBoundaries as E, BaseLayout as f } from "../../../../Base/Base.js";
|
|
5
|
+
import { BaseBoundaries as u, BaseLayout as E } from "../../../../Base/Base.js";
|
|
6
|
+
import { useComponentContext as f } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
8
7
|
import { useI18n as g } from "../../../../../i18n/I18n.js";
|
|
9
8
|
import { componentEvents as h } from "../../../../../shared/constants.js";
|
|
10
9
|
import { useEmployeeWorkAddressSummary as x } from "../../shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js";
|
|
11
|
-
function
|
|
12
|
-
return /* @__PURE__ */ r(
|
|
10
|
+
function _(n) {
|
|
11
|
+
return /* @__PURE__ */ r(u, { componentName: "Employee.Management.WorkAddress", children: /* @__PURE__ */ r(A, { ...n }) });
|
|
13
12
|
}
|
|
14
|
-
function A({ employeeId:
|
|
13
|
+
function A({ employeeId: n, onEvent: m }) {
|
|
15
14
|
g("Employee.Management.WorkAddress");
|
|
16
|
-
const { t:
|
|
17
|
-
m(h.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_EDIT_REQUESTED, { employeeId:
|
|
15
|
+
const { t: s } = l("Employee.Management.WorkAddress"), o = f(), t = x({ employeeId: n }), d = t.isLoading, e = t.isLoading ? void 0 : t.data.currentWorkAddress, c = () => {
|
|
16
|
+
m(h.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_EDIT_REQUESTED, { employeeId: n });
|
|
18
17
|
};
|
|
19
|
-
return /* @__PURE__ */ r(
|
|
18
|
+
return /* @__PURE__ */ r(E, { error: t.errorHandling.errors, children: /* @__PURE__ */ r(
|
|
20
19
|
o.Box,
|
|
21
20
|
{
|
|
22
21
|
header: /* @__PURE__ */ r(
|
|
23
22
|
o.BoxHeader,
|
|
24
23
|
{
|
|
25
|
-
title:
|
|
26
|
-
action: /* @__PURE__ */ r(o.Button, { variant: "secondary", onClick: c, isDisabled: d, children:
|
|
24
|
+
title: s("cardTitle"),
|
|
25
|
+
action: /* @__PURE__ */ r(o.Button, { variant: "secondary", onClick: c, isDisabled: d, children: s("cardManageCta") })
|
|
27
26
|
}
|
|
28
27
|
),
|
|
29
|
-
children: /* @__PURE__ */ r(a, { flexDirection: "column", gap: 16, children: d ? /* @__PURE__ */ r(p, {}) : e ? /* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */
|
|
28
|
+
children: /* @__PURE__ */ r(a, { flexDirection: "column", gap: 16, children: d ? /* @__PURE__ */ r(p, {}) : e ? /* @__PURE__ */ i(a, { flexDirection: "column", gap: 0, children: [
|
|
29
|
+
/* @__PURE__ */ i(o.Text, { weight: "medium", children: [
|
|
31
30
|
e.street1,
|
|
32
31
|
e.street2 ? `, ${e.street2}` : ""
|
|
33
32
|
] }),
|
|
34
|
-
/* @__PURE__ */
|
|
33
|
+
/* @__PURE__ */ i(o.Text, { variant: "supporting", children: [
|
|
35
34
|
e.city,
|
|
36
35
|
", ",
|
|
37
36
|
e.state,
|
|
38
37
|
" ",
|
|
39
38
|
e.zip
|
|
40
39
|
] })
|
|
41
|
-
] }) : /* @__PURE__ */ r(o.Text, { children:
|
|
40
|
+
] }) : /* @__PURE__ */ r(o.Text, { children: s("cardNoAddress") }) })
|
|
42
41
|
}
|
|
43
42
|
) });
|
|
44
43
|
}
|
|
45
44
|
export {
|
|
46
|
-
|
|
45
|
+
_ as WorkAddressCard
|
|
47
46
|
};
|
|
48
47
|
//# sourceMappingURL=WorkAddressCard.js.map
|
package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkAddressCard.js","sources":["../../../../../../src/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEmployeeWorkAddressSummary } from '../../shared/useEmployeeWorkAddressSummary'\nimport { Loading } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link WorkAddressCard}.\n *\n * @public\n */\nexport interface WorkAddressCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the card's Manage button is clicked. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone employee work address summary card.\n *\n * @remarks\n * Fetches the employee's active work address and renders it alongside a Manage button.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/workAddress/editRequested` | Manage button clicked | `{ employeeId: string }` |\n *\n * @public\n */\nexport function WorkAddressCard(props: WorkAddressCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.WorkAddress\">\n <WorkAddressCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction WorkAddressCardContent({ employeeId, onEvent }: WorkAddressCardProps) {\n useI18n('Employee.Management.WorkAddress')\n const { t } = useTranslation('Employee.Management.WorkAddress')\n const Components = useComponentContext()\n\n const summary = useEmployeeWorkAddressSummary({ employeeId })\n\n const isLoading = summary.isLoading\n const currentWorkAddress = summary.isLoading ? undefined : summary.data.currentWorkAddress\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={summary.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('cardTitle')}\n action={\n <Components.Button variant=\"secondary\" onClick={handleEdit} isDisabled={isLoading}>\n {t('cardManageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isLoading ? (\n <Loading />\n ) : currentWorkAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">\n {currentWorkAddress.street1}\n {currentWorkAddress.street2 ? `, ${currentWorkAddress.street2}` : ''}\n </Components.Text>\n <Components.Text variant=\"supporting\">\n {currentWorkAddress.city}, {currentWorkAddress.state} {currentWorkAddress.zip}\n </Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('cardNoAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["WorkAddressCard","props","jsx","BaseBoundaries","WorkAddressCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","summary","useEmployeeWorkAddressSummary","isLoading","currentWorkAddress","handleEdit","componentEvents","BaseLayout","Flex","Loading","jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkAddressCard.js","sources":["../../../../../../src/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEmployeeWorkAddressSummary } from '../../shared/useEmployeeWorkAddressSummary'\nimport { Loading } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link WorkAddressCard}.\n *\n * @public\n */\nexport interface WorkAddressCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the card's Manage button is clicked. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone employee work address summary card.\n *\n * @remarks\n * Fetches the employee's active work address and renders it alongside a Manage button.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/workAddress/editRequested` | Manage button clicked | `{ employeeId: string }` |\n *\n * @public\n */\nexport function WorkAddressCard(props: WorkAddressCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.WorkAddress\">\n <WorkAddressCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction WorkAddressCardContent({ employeeId, onEvent }: WorkAddressCardProps) {\n useI18n('Employee.Management.WorkAddress')\n const { t } = useTranslation('Employee.Management.WorkAddress')\n const Components = useComponentContext()\n\n const summary = useEmployeeWorkAddressSummary({ employeeId })\n\n const isLoading = summary.isLoading\n const currentWorkAddress = summary.isLoading ? undefined : summary.data.currentWorkAddress\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={summary.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('cardTitle')}\n action={\n <Components.Button variant=\"secondary\" onClick={handleEdit} isDisabled={isLoading}>\n {t('cardManageCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isLoading ? (\n <Loading />\n ) : currentWorkAddress ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text weight=\"medium\">\n {currentWorkAddress.street1}\n {currentWorkAddress.street2 ? `, ${currentWorkAddress.street2}` : ''}\n </Components.Text>\n <Components.Text variant=\"supporting\">\n {currentWorkAddress.city}, {currentWorkAddress.state} {currentWorkAddress.zip}\n </Components.Text>\n </Flex>\n ) : (\n <Components.Text>{t('cardNoAddress')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["WorkAddressCard","props","jsx","BaseBoundaries","WorkAddressCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","summary","useEmployeeWorkAddressSummary","isLoading","currentWorkAddress","handleEdit","componentEvents","BaseLayout","Flex","Loading","jsxs"],"mappings":";;;;;;;;;AAmCO,SAASA,EAAgBC,GAA6B;AAC3D,SACE,gBAAAC,EAACC,KAAe,eAAc,mCAC5B,4BAACC,GAAA,EAAwB,GAAGH,GAAO,EAAA,CACrC;AAEJ;AAEA,SAASG,EAAuB,EAAE,YAAAC,GAAY,SAAAC,KAAiC;AAC7E,EAAAC,EAAQ,iCAAiC;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GACxDC,IAAaC,EAAA,GAEbC,IAAUC,EAA8B,EAAE,YAAAR,GAAY,GAEtDS,IAAYF,EAAQ,WACpBG,IAAqBH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,oBAElEI,IAAa,MAAM;AACvB,IAAAV,EAAQW,EAAgB,iDAAiD,EAAE,YAAAZ,EAAA,CAAY;AAAA,EACzF;AAEA,SACE,gBAAAH,EAACgB,GAAA,EAAW,OAAON,EAAQ,cAAc,QACvC,UAAA,gBAAAV;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,WAAW;AAAA,UACpB,QACE,gBAAAN,EAACQ,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASM,GAAY,YAAYF,GACrE,UAAAN,EAAE,eAAe,EAAA,CACpB;AAAA,QAAA;AAAA,MAAA;AAAA,MAKN,4BAACW,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAAL,IACC,gBAAAZ,EAACkB,GAAA,EAAQ,IACPL,IACF,gBAAAM,EAACF,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,QAAA,gBAAAE,EAACX,EAAW,MAAX,EAAgB,QAAO,UACrB,UAAA;AAAA,UAAAK,EAAmB;AAAA,UACnBA,EAAmB,UAAU,KAAKA,EAAmB,OAAO,KAAK;AAAA,QAAA,GACpE;AAAA,QACA,gBAAAM,EAACX,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAA;AAAA,UAAAK,EAAmB;AAAA,UAAK;AAAA,UAAGA,EAAmB;AAAA,UAAM;AAAA,UAAEA,EAAmB;AAAA,QAAA,EAAA,CAC5E;AAAA,MAAA,GACF,sBAECL,EAAW,MAAX,EAAiB,UAAAF,EAAE,eAAe,GAAE,EAAA,CAEzC;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as n, jsxs as x } from "react/jsx-runtime";
|
|
2
2
|
import { useMachine as h } from "react-robot";
|
|
3
|
+
import { Flex as l } from "../Common/Flex/Flex.js";
|
|
3
4
|
import { FlowContext as u } from "./useFlow.js";
|
|
4
5
|
import { FlowHeader as v } from "./FlowHeader.js";
|
|
5
|
-
import { Flex as l } from "../Common/Flex/Flex.js";
|
|
6
6
|
const E = ({
|
|
7
7
|
onEvent: m,
|
|
8
8
|
machine: s
|
|
@@ -2,12 +2,11 @@ import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
|
2
2
|
import { useTranslation as m } from "react-i18next";
|
|
3
3
|
import { FlowBreadcrumbs as f } from "../Common/FlowBreadcrumbs/FlowBreadcrumbs.js";
|
|
4
4
|
import { Flex as l, FlexItem as a } from "../Common/Flex/Flex.js";
|
|
5
|
-
import { useComponentContext as u } from "../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
-
import "react";
|
|
7
5
|
import { useFlow as s } from "./useFlow.js";
|
|
8
6
|
import { componentEvents as b } from "../../shared/constants.js";
|
|
7
|
+
import { useComponentContext as u } from "../../contexts/ComponentAdapter/useComponentContext.js";
|
|
9
8
|
import h from "../../assets/icons/caret-left.svg.js";
|
|
10
|
-
function
|
|
9
|
+
function I() {
|
|
11
10
|
const { header: e, component: t } = s();
|
|
12
11
|
if (!e || !t) return null;
|
|
13
12
|
switch (e.type) {
|
|
@@ -88,6 +87,6 @@ function v({
|
|
|
88
87
|
] });
|
|
89
88
|
}
|
|
90
89
|
export {
|
|
91
|
-
|
|
90
|
+
I as FlowHeader
|
|
92
91
|
};
|
|
93
92
|
//# sourceMappingURL=FlowHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowHeader.js","sources":["../../../src/components/Flow/FlowHeader.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { FlowBreadcrumbs } from '../Common/FlowBreadcrumbs/FlowBreadcrumbs'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { Flex } from '../Common/Flex'\nimport { FlexItem } from '../Common'\nimport { useFlow } from './useFlow'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport CaretLeftIcon from '@/assets/icons/caret-left.svg?react'\n\n/**\n * Renders the chrome above the active flow component (back affordance, progress bar, breadcrumbs).\n *\n * @remarks\n * Reads the discriminated `header` value from {@link FlowContext} and dispatches to the matching\n * internal renderer:\n *\n * - `header.type === 'minimal'` — back button and optional CTA.\n * - `header.type === 'progress'` — step indicator with `currentStep` / `totalSteps`.\n * - `header.type === 'breadcrumbs'` — breadcrumb trail; renders nothing while\n * `currentBreadcrumbId` is absent so passive states (e.g. landing screens) don't reset the bar.\n *\n * When no `header` is configured, or there is no active `component` in context, nothing is\n * rendered. To add a new chrome variant: extend {@link FlowHeaderConfig}, add a renderer below,\n * and add a branch here.\n *\n * @returns A header element above the active flow component, or `null` when no header should show.\n * @internal\n */\nexport function FlowHeader() {\n const { header, component } = useFlow()\n\n if (!header || !component) return null\n\n switch (header.type) {\n case 'minimal':\n return <MinimalHeader back={header.back} cta={header.cta} />\n case 'progress':\n return (\n <ProgressHeader\n currentStep={header.currentStep}\n totalSteps={header.totalSteps}\n cta={header.cta}\n />\n )\n case 'breadcrumbs':\n // The breadcrumb trail is intentionally persisted across \"passive\"\n // states (e.g. landing screens) so that subsequent transitions can\n // pick up where they left off without rebuilding it. We render the\n // bar only when there's an active breadcrumb to show; otherwise\n // we treat the flow as \"no chrome\" for this state.\n if (!header.currentBreadcrumbId) return null\n return (\n <BreadcrumbsHeader\n currentBreadcrumbId={header.currentBreadcrumbId}\n breadcrumbs={header.breadcrumbs}\n cta={header.cta}\n />\n )\n }\n}\n\nfunction MinimalHeader({\n back,\n cta: Cta,\n}: {\n back?: {\n labelKey: string\n namespace: keyof CustomTypeOptions['resources']\n event: EventType\n }\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n const Components = useComponentContext()\n const { t } = useTranslation(back?.namespace)\n\n const label = back ? t(back.labelKey as never) : t('back')\n const event = back?.event ?? componentEvents.CANCEL\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem>\n <Components.Button\n variant=\"secondary\"\n icon={<CaretLeftIcon aria-hidden=\"true\" />}\n onClick={() => {\n onEvent(event, undefined)\n }}\n >\n {label}\n </Components.Button>\n </FlexItem>\n {Cta && (\n <FlexItem>\n <Cta />\n </FlexItem>\n )}\n </Flex>\n )\n}\n\nfunction ProgressHeader({\n currentStep,\n totalSteps,\n cta: Cta,\n}: {\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n}) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.ProgressBar\n totalSteps={totalSteps}\n currentStep={currentStep}\n label={t('progressBarLabel', { totalSteps, currentStep })}\n cta={Cta}\n />\n )\n}\n\nfunction BreadcrumbsHeader({\n currentBreadcrumbId,\n breadcrumbs = {},\n cta: Cta,\n}: {\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem flexGrow={1}>\n <FlowBreadcrumbs\n breadcrumbs={currentBreadcrumbId ? (breadcrumbs[currentBreadcrumbId] ?? []) : []}\n currentBreadcrumbId={currentBreadcrumbId}\n onEvent={onEvent}\n />\n </FlexItem>\n <FlexItem>{Cta && <Cta />}</FlexItem>\n </Flex>\n )\n}\n"],"names":["FlowHeader","header","component","useFlow","MinimalHeader","jsx","ProgressHeader","BreadcrumbsHeader","back","Cta","onEvent","Components","useComponentContext","t","useTranslation","label","event","componentEvents","Flex","FlexItem","CaretLeftIcon","currentStep","totalSteps","currentBreadcrumbId","breadcrumbs","FlowBreadcrumbs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlowHeader.js","sources":["../../../src/components/Flow/FlowHeader.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { CustomTypeOptions } from 'i18next'\nimport { FlowBreadcrumbs } from '../Common/FlowBreadcrumbs/FlowBreadcrumbs'\nimport type { BreadcrumbTrail } from '../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { Flex } from '../Common/Flex'\nimport { FlexItem } from '../Common'\nimport { useFlow } from './useFlow'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport CaretLeftIcon from '@/assets/icons/caret-left.svg?react'\n\n/**\n * Renders the chrome above the active flow component (back affordance, progress bar, breadcrumbs).\n *\n * @remarks\n * Reads the discriminated `header` value from {@link FlowContext} and dispatches to the matching\n * internal renderer:\n *\n * - `header.type === 'minimal'` — back button and optional CTA.\n * - `header.type === 'progress'` — step indicator with `currentStep` / `totalSteps`.\n * - `header.type === 'breadcrumbs'` — breadcrumb trail; renders nothing while\n * `currentBreadcrumbId` is absent so passive states (e.g. landing screens) don't reset the bar.\n *\n * When no `header` is configured, or there is no active `component` in context, nothing is\n * rendered. To add a new chrome variant: extend {@link FlowHeaderConfig}, add a renderer below,\n * and add a branch here.\n *\n * @returns A header element above the active flow component, or `null` when no header should show.\n * @internal\n */\nexport function FlowHeader() {\n const { header, component } = useFlow()\n\n if (!header || !component) return null\n\n switch (header.type) {\n case 'minimal':\n return <MinimalHeader back={header.back} cta={header.cta} />\n case 'progress':\n return (\n <ProgressHeader\n currentStep={header.currentStep}\n totalSteps={header.totalSteps}\n cta={header.cta}\n />\n )\n case 'breadcrumbs':\n // The breadcrumb trail is intentionally persisted across \"passive\"\n // states (e.g. landing screens) so that subsequent transitions can\n // pick up where they left off without rebuilding it. We render the\n // bar only when there's an active breadcrumb to show; otherwise\n // we treat the flow as \"no chrome\" for this state.\n if (!header.currentBreadcrumbId) return null\n return (\n <BreadcrumbsHeader\n currentBreadcrumbId={header.currentBreadcrumbId}\n breadcrumbs={header.breadcrumbs}\n cta={header.cta}\n />\n )\n }\n}\n\nfunction MinimalHeader({\n back,\n cta: Cta,\n}: {\n back?: {\n labelKey: string\n namespace: keyof CustomTypeOptions['resources']\n event: EventType\n }\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n const Components = useComponentContext()\n const { t } = useTranslation(back?.namespace)\n\n const label = back ? t(back.labelKey as never) : t('back')\n const event = back?.event ?? componentEvents.CANCEL\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem>\n <Components.Button\n variant=\"secondary\"\n icon={<CaretLeftIcon aria-hidden=\"true\" />}\n onClick={() => {\n onEvent(event, undefined)\n }}\n >\n {label}\n </Components.Button>\n </FlexItem>\n {Cta && (\n <FlexItem>\n <Cta />\n </FlexItem>\n )}\n </Flex>\n )\n}\n\nfunction ProgressHeader({\n currentStep,\n totalSteps,\n cta: Cta,\n}: {\n currentStep: number\n totalSteps: number\n cta?: React.ComponentType\n}) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.ProgressBar\n totalSteps={totalSteps}\n currentStep={currentStep}\n label={t('progressBarLabel', { totalSteps, currentStep })}\n cta={Cta}\n />\n )\n}\n\nfunction BreadcrumbsHeader({\n currentBreadcrumbId,\n breadcrumbs = {},\n cta: Cta,\n}: {\n currentBreadcrumbId?: string\n breadcrumbs?: BreadcrumbTrail\n cta?: React.ComponentType\n}) {\n const { onEvent } = useFlow()\n\n return (\n <Flex flexDirection=\"row\" justifyContent=\"space-between\" alignItems=\"center\">\n <FlexItem flexGrow={1}>\n <FlowBreadcrumbs\n breadcrumbs={currentBreadcrumbId ? (breadcrumbs[currentBreadcrumbId] ?? []) : []}\n currentBreadcrumbId={currentBreadcrumbId}\n onEvent={onEvent}\n />\n </FlexItem>\n <FlexItem>{Cta && <Cta />}</FlexItem>\n </Flex>\n )\n}\n"],"names":["FlowHeader","header","component","useFlow","MinimalHeader","jsx","ProgressHeader","BreadcrumbsHeader","back","Cta","onEvent","Components","useComponentContext","t","useTranslation","label","event","componentEvents","Flex","FlexItem","CaretLeftIcon","currentStep","totalSteps","currentBreadcrumbId","breadcrumbs","FlowBreadcrumbs"],"mappings":";;;;;;;;AA8BO,SAASA,IAAa;AAC3B,QAAM,EAAE,QAAAC,GAAQ,WAAAC,EAAA,IAAcC,EAAA;AAE9B,MAAI,CAACF,KAAU,CAACC,EAAW,QAAO;AAElC,UAAQD,EAAO,MAAA;AAAA,IACb,KAAK;AACH,+BAAQG,GAAA,EAAc,MAAMH,EAAO,MAAM,KAAKA,EAAO,KAAK;AAAA,IAC5D,KAAK;AACH,aACE,gBAAAI;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,aAAaL,EAAO;AAAA,UACpB,YAAYA,EAAO;AAAA,UACnB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAGlB,KAAK;AAMH,aAAKA,EAAO,sBAEV,gBAAAI;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,qBAAqBN,EAAO;AAAA,UAC5B,aAAaA,EAAO;AAAA,UACpB,KAAKA,EAAO;AAAA,QAAA;AAAA,MAAA,IALwB;AAAA,EAMtC;AAGR;AAEA,SAASG,EAAc;AAAA,EACrB,MAAAI;AAAA,EACA,KAAKC;AACP,GAOG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYP,EAAA,GACdQ,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAeN,GAAM,SAAS,GAEtCO,IAAeF,EAAPL,IAASA,EAAK,WAAuB,MAAN,GACvCQ,IAAQR,GAAM,SAASS,EAAgB;AAE7C,2BACGC,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAb,EAACc,GAAA,EACC,UAAA,gBAAAd;AAAA,MAACM,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,MAAM,gBAAAN,EAACe,GAAA,EAAc,eAAY,OAAA,CAAO;AAAA,QACxC,SAAS,MAAM;AACb,UAAAV,EAAQM,GAAO,MAAS;AAAA,QAC1B;AAAA,QAEC,UAAAD;AAAA,MAAA;AAAA,IAAA,GAEL;AAAA,IACCN,KACC,gBAAAJ,EAACc,GAAA,EACC,UAAA,gBAAAd,EAACI,KAAI,EAAA,CACP;AAAA,EAAA,GAEJ;AAEJ;AAEA,SAASH,EAAe;AAAA,EACtB,aAAAe;AAAA,EACA,YAAAC;AAAA,EACA,KAAKb;AACP,GAIG;AACD,QAAME,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAEd,SACE,gBAAAT;AAAA,IAACM,EAAW;AAAA,IAAX;AAAA,MACC,YAAAW;AAAA,MACA,aAAAD;AAAA,MACA,OAAOR,EAAE,oBAAoB,EAAE,YAAAS,GAAY,aAAAD,GAAa;AAAA,MACxD,KAAKZ;AAAA,IAAA;AAAA,EAAA;AAGX;AAEA,SAASF,EAAkB;AAAA,EACzB,qBAAAgB;AAAA,EACA,aAAAC,IAAc,CAAA;AAAA,EACd,KAAKf;AACP,GAIG;AACD,QAAM,EAAE,SAAAC,EAAA,IAAYP,EAAA;AAEpB,2BACGe,GAAA,EAAK,eAAc,OAAM,gBAAe,iBAAgB,YAAW,UAClE,UAAA;AAAA,IAAA,gBAAAb,EAACc,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAd;AAAA,MAACoB;AAAA,MAAA;AAAA,QACC,aAAaF,IAAuBC,EAAYD,CAAmB,KAAK,CAAA,IAAM,CAAA;AAAA,QAC9E,qBAAAA;AAAA,QACA,SAAAb;AAAA,MAAA;AAAA,IAAA,GAEJ;AAAA,IACA,gBAAAL,EAACc,GAAA,EAAU,UAAAV,KAAO,gBAAAJ,EAACI,KAAI,EAAA,CAAG;AAAA,EAAA,GAC5B;AAEJ;"}
|
package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js
CHANGED
|
@@ -13,10 +13,9 @@ import s from "./InformationRequestForm.module.scss.js";
|
|
|
13
13
|
import { BaseComponent as W } from "../../Base/Base.js";
|
|
14
14
|
import { useBase as j } from "../../Base/useBase.js";
|
|
15
15
|
import { Flex as E } from "../../Common/Flex/Flex.js";
|
|
16
|
-
import {
|
|
17
|
-
import "
|
|
18
|
-
import {
|
|
19
|
-
import { Form as V } from "../../Common/Form/Form.js";
|
|
16
|
+
import { FileInputField as H } from "../../Common/Fields/FileInputField/FileInputField.js";
|
|
17
|
+
import { Form as G } from "../../Common/Form/Form.js";
|
|
18
|
+
import { useComponentContext as V } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
20
19
|
import { useComponentDictionary as X, useI18n as Y } from "../../../i18n/I18n.js";
|
|
21
20
|
import { informationRequestEvents as $ } from "../../../shared/constants.js";
|
|
22
21
|
import "../../Flow/useFlow.js";
|
|
@@ -28,7 +27,7 @@ const K = "gusto-sdk-information-request-form", Z = ["image/jpeg", "image/png",
|
|
|
28
27
|
l.string(),
|
|
29
28
|
l.union([l.string().min(1), l.instanceof(File)])
|
|
30
29
|
);
|
|
31
|
-
function
|
|
30
|
+
function be(t) {
|
|
32
31
|
return /* @__PURE__ */ e(W, { ...t, children: /* @__PURE__ */ e(ae, { ...t, children: t.children }) });
|
|
33
32
|
}
|
|
34
33
|
const te = (t) => new Promise((r, h) => {
|
|
@@ -45,7 +44,7 @@ function ie(t) {
|
|
|
45
44
|
}
|
|
46
45
|
function ae({ companyId: t, requestId: r, dictionary: h }) {
|
|
47
46
|
X("InformationRequests.InformationRequestForm", h), Y("InformationRequests.InformationRequestForm");
|
|
48
|
-
const { t: o } = C("InformationRequests.InformationRequestForm"), { Alert: F, Heading: S, Text: a } =
|
|
47
|
+
const { t: o } = C("InformationRequests.InformationRequestForm"), { Alert: F, Heading: S, Text: a } = V(), { onEvent: x, baseSubmitHandler: N } = j(), { data: D } = z({
|
|
49
48
|
companyUuid: t
|
|
50
49
|
}), y = D.informationRequests?.find((n) => n.uuid === r), c = y?.requiredQuestions ?? [], U = y?.blockingPayroll ?? !1, b = re(c), g = ie(c), { mutateAsync: P } = B(), T = {}, R = [];
|
|
51
50
|
c.forEach((n) => {
|
|
@@ -113,7 +112,7 @@ function ae({ companyId: t, requestId: r, dictionary: h }) {
|
|
|
113
112
|
}
|
|
114
113
|
) }),
|
|
115
114
|
f && /* @__PURE__ */ e("div", { className: s.fileInputWrapper, children: /* @__PURE__ */ e(
|
|
116
|
-
|
|
115
|
+
H,
|
|
117
116
|
{
|
|
118
117
|
name: d,
|
|
119
118
|
label: o("fields.fileUpload.label"),
|
|
@@ -136,10 +135,10 @@ function ae({ companyId: t, requestId: r, dictionary: h }) {
|
|
|
136
135
|
return /* @__PURE__ */ e("div", { className: s.root, children: /* @__PURE__ */ p(E, { flexDirection: "column", gap: 16, children: [
|
|
137
136
|
/* @__PURE__ */ e(S, { as: "h2", children: o("title") }),
|
|
138
137
|
U && /* @__PURE__ */ e(F, { status: "error", label: o("blockingAlert.title"), disableScrollIntoView: !0, children: o("blockingAlert.description") }),
|
|
139
|
-
b ? O : /* @__PURE__ */ e(Q, { ...I, children: /* @__PURE__ */ e(
|
|
138
|
+
b ? O : /* @__PURE__ */ e(Q, { ...I, children: /* @__PURE__ */ e(G, { id: K, onSubmit: I.handleSubmit(_), children: /* @__PURE__ */ e(E, { flexDirection: "column", gap: 16, children: c.map(A) }) }) })
|
|
140
139
|
] }) });
|
|
141
140
|
}
|
|
142
141
|
export {
|
|
143
|
-
|
|
142
|
+
be as InformationRequestForm
|
|
144
143
|
};
|
|
145
144
|
//# sourceMappingURL=InformationRequestForm.js.map
|
package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InformationRequestForm.js","sources":["../../../../src/components/InformationRequests/InformationRequestForm/InformationRequestForm.tsx"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { useTranslation } from 'react-i18next'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useIsMutating } from '@tanstack/react-query'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport {\n useInformationRequestsSubmitMutation,\n mutationKeyInformationRequestsSubmit,\n} from '@gusto/embedded-api/react-query/informationRequestsSubmit'\nimport type { RequiredQuestions } from '@gusto/embedded-api/models/components/informationrequest'\nimport { ResponseType } from '@gusto/embedded-api/models/components/informationrequest'\nimport { ResponseType as SubmitResponseType } from '@gusto/embedded-api/models/operations/submitinformationrequest'\nimport type { InformationRequestsContextInterface } from '../InformationRequestsComponents'\nimport styles from './InformationRequestForm.module.scss'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex, TextInputField } from '@/components/Common'\nimport { FileInputField } from '@/components/Common/Fields/FileInputField'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { informationRequestEvents, type EventType } from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\n\nconst INFORMATION_REQUEST_FORM_ID = 'gusto-sdk-information-request-form'\nconst ACCEPTED_FILE_TYPES = ['image/jpeg', 'image/png', 'application/pdf']\nconst dompurifyConfig = {\n ALLOWED_TAGS: ['a', 'b', 'strong'],\n ALLOWED_ATTR: ['target', 'href', 'rel'],\n}\n\n/* API does not enforce an upper limit, so set a reasonable character max for a single-line input. */\nconst MAX_TEXT_RESPONSE = 5000\n\nconst InformationRequestFormSchema = z.record(\n z.string(),\n z.union([z.string().min(1), z.instanceof(File)]),\n)\n\ntype InformationRequestFormValues = z.infer<typeof InformationRequestFormSchema>\n\n/**\n * Props for {@link InformationRequestForm}.\n *\n * @public\n */\nexport interface InformationRequestFormProps extends BaseComponentInterface<'InformationRequests.InformationRequestForm'> {\n /** The associated company identifier. */\n companyId: string\n /** The identifier of the information request to respond to. */\n requestId: string\n /** Event handler invoked when the form is submitted or cancelled. See the events table in {@link InformationRequestForm}. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Dynamic response form for a single information request.\n *\n * Renders supported question types (text and document upload) based on the request's\n * `requiredQuestions` payload and submits responses to the Submit information request\n * endpoint. Use this component directly when you have built your own list or routing\n * surface and need to host the form — typically inside a modal or page you control.\n *\n * Requests with unsupported response types (e.g. `persona`-driven identity verification)\n * display a guidance message instead of the form; in those cases the user must complete\n * the request through your own integration with the underlying provider.\n *\n * Text inputs accept up to 5,000 characters. Document uploads are restricted to JPEG,\n * PNG, or PDF.\n *\n * @remarks\n * Events emitted via `onEvent`:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `informationRequest/form/done` | Fired when the form is successfully submitted | The `informationRequest` field from the Submit information request response |\n * | `informationRequest/form/cancel` | Fired when the user cancels the form | — |\n *\n * @param props - See {@link InformationRequestFormProps}.\n * @returns The rendered information request response form.\n * @public\n */\nexport function InformationRequestForm(props: InformationRequestFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst convertFileToDataUrl = (file: File) => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = () => {\n resolve(reader.result as string)\n }\n reader.onerror = reject\n reader.readAsDataURL(file)\n })\n}\n\nconst SUPPORTED_RESPONSE_TYPES: ResponseType[] = [ResponseType.Text, ResponseType.Document]\n\nfunction hasUnsupportedQuestionTypes(questions: RequiredQuestions[]) {\n return questions.some(question => !SUPPORTED_RESPONSE_TYPES.includes(question.responseType))\n}\n\nfunction hasPersonaQuestionType(questions: RequiredQuestions[]) {\n return questions.some(question => question.responseType === ResponseType.Persona)\n}\n\nfunction Root({ companyId, requestId, dictionary }: InformationRequestFormProps) {\n useComponentDictionary('InformationRequests.InformationRequestForm', dictionary)\n useI18n('InformationRequests.InformationRequestForm')\n const { t } = useTranslation('InformationRequests.InformationRequestForm')\n const { Alert, Heading, Text } = useComponentContext()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { data } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const informationRequest = data.informationRequests?.find(req => req.uuid === requestId)\n const requiredQuestions = informationRequest?.requiredQuestions ?? []\n const isBlockingPayroll = informationRequest?.blockingPayroll ?? false\n const hasUnsupportedTypes = hasUnsupportedQuestionTypes(requiredQuestions)\n const hasPersonaType = hasPersonaQuestionType(requiredQuestions)\n\n const { mutateAsync: submitInformationRequest } = useInformationRequestsSubmitMutation()\n\n const defaultValues: Record<string, string | File | undefined> = {}\n const questionUuids: string[] = []\n\n requiredQuestions.forEach(question => {\n if (question.responseType === ResponseType.Text) {\n questionUuids.push(question.questionUuid)\n defaultValues[question.questionUuid] = ''\n } else if (question.responseType === ResponseType.Document) {\n questionUuids.push(question.questionUuid)\n defaultValues[question.questionUuid] = undefined\n }\n })\n\n const formMethods = useForm<InformationRequestFormValues>({\n resolver: zodResolver(InformationRequestFormSchema),\n defaultValues,\n })\n\n const onSubmit = async (formData: InformationRequestFormValues) => {\n await baseSubmitHandler(formData, async () => {\n const questionResponses = await Promise.all(\n questionUuids.map(async uuid => {\n const value = formData[uuid]\n\n if (typeof value === 'string') {\n return {\n questionUuid: uuid,\n responseType: SubmitResponseType.Text,\n textResponse: value,\n }\n }\n\n if (value instanceof File) {\n const fileResponse = await convertFileToDataUrl(value)\n return {\n questionUuid: uuid,\n responseType: SubmitResponseType.Document,\n fileResponse,\n fileName: value.name,\n }\n }\n\n return null\n }),\n )\n\n const validResponses = questionResponses.filter(response => response !== null)\n\n const response = await submitInformationRequest({\n request: {\n informationRequestUuid: requestId,\n requestBody: {\n requiredQuestions: validResponses,\n },\n },\n })\n\n onEvent(informationRequestEvents.INFORMATION_REQUEST_FORM_DONE, response.informationRequest)\n })\n }\n\n const renderQuestion = (question: RequiredQuestions) => {\n const fieldName = question.questionUuid\n const isDocumentType = question.responseType === ResponseType.Document\n const isTextType = question.responseType === ResponseType.Text\n\n return (\n <div key={fieldName} className={styles.questionCard}>\n <div className={styles.questionDescription}>\n <Text size=\"sm\" weight=\"medium\">\n {isDocumentType ? t('questionTypes.document') : t('questionTypes.answer')}\n </Text>\n <Text size=\"sm\" variant=\"supporting\">\n {/* SECURITY: XSS mitigated via DOMPurify with strict allowlist. Pattern matches TaxInputs.tsx */}\n <span\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(question.questionText, dompurifyConfig),\n }}\n />\n </Text>\n </div>\n\n <hr className={styles.divider} />\n\n {isTextType && (\n <div className={styles.textInputWrapper}>\n <TextInputField\n name={fieldName}\n label={t('fields.textAnswer.label')}\n placeholder={t('fields.textAnswer.placeholder')}\n maxLength={MAX_TEXT_RESPONSE}\n isRequired\n errorMessage={t('validation.required')}\n />\n </div>\n )}\n\n {isDocumentType && (\n <div className={styles.fileInputWrapper}>\n <FileInputField\n name={fieldName}\n label={t('fields.fileUpload.label')}\n accept={ACCEPTED_FILE_TYPES}\n isRequired\n errorMessage={t('validation.required')}\n />\n </div>\n )}\n </div>\n )\n }\n\n const unsupportedPlaceholder = (\n <div className={styles.questionCard}>\n <div className={styles.questionDescription}>\n <Text weight=\"medium\">\n {t(hasPersonaType ? 'unsupported.persona.title' : 'unsupported.generic.title')}\n </Text>\n <Text>\n {t(\n hasPersonaType ? 'unsupported.persona.description' : 'unsupported.generic.description',\n )}\n </Text>\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.contactSupport}>\n <Text variant=\"supporting\">{t('unsupported.contactSupport')}</Text>\n </div>\n </div>\n )\n\n return (\n <div className={styles.root}>\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h2\">{t('title')}</Heading>\n\n {isBlockingPayroll && (\n <Alert status=\"error\" label={t('blockingAlert.title')} disableScrollIntoView>\n {t('blockingAlert.description')}\n </Alert>\n )}\n\n {hasUnsupportedTypes ? (\n unsupportedPlaceholder\n ) : (\n <FormProvider {...formMethods}>\n <Form id={INFORMATION_REQUEST_FORM_ID} onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Flex flexDirection=\"column\" gap={16}>\n {requiredQuestions.map(renderQuestion)}\n </Flex>\n </Form>\n </FormProvider>\n )}\n </Flex>\n </div>\n )\n}\n\n/** @internal */\nexport function Footer({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) {\n useI18n('InformationRequests.InformationRequestForm')\n const { t } = useTranslation('InformationRequests.InformationRequestForm')\n const { Button } = useComponentContext()\n const { companyId, selectedRequestId } = useFlow<InformationRequestsContextInterface>()\n\n const { data } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const informationRequest = data.informationRequests?.find(req => req.uuid === selectedRequestId)\n const requiredQuestions = informationRequest?.requiredQuestions ?? []\n const hasUnsupportedTypes = hasUnsupportedQuestionTypes(requiredQuestions)\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyInformationRequestsSubmit(),\n })\n const isPending = isMutating > 0\n\n const handleCancel = () => {\n onEvent(informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL)\n }\n\n if (hasUnsupportedTypes) {\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel}>\n {t('cta.close')}\n </Button>\n </Flex>\n )\n }\n\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel} isDisabled={isPending}>\n {t('cta.cancel')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={INFORMATION_REQUEST_FORM_ID}\n isLoading={isPending}\n >\n {t('cta.submit')}\n </Button>\n </Flex>\n )\n}\n"],"names":["INFORMATION_REQUEST_FORM_ID","ACCEPTED_FILE_TYPES","dompurifyConfig","MAX_TEXT_RESPONSE","InformationRequestFormSchema","z","InformationRequestForm","props","jsx","BaseComponent","Root","convertFileToDataUrl","file","resolve","reject","reader","SUPPORTED_RESPONSE_TYPES","ResponseType","hasUnsupportedQuestionTypes","questions","question","hasPersonaQuestionType","companyId","requestId","dictionary","useComponentDictionary","useI18n","t","useTranslation","Alert","Heading","Text","useComponentContext","onEvent","baseSubmitHandler","useBase","data","useInformationRequestsGetInformationRequestsSuspense","informationRequest","req","requiredQuestions","isBlockingPayroll","hasUnsupportedTypes","hasPersonaType","submitInformationRequest","useInformationRequestsSubmitMutation","defaultValues","questionUuids","formMethods","useForm","zodResolver","onSubmit","formData","validResponses","uuid","value","SubmitResponseType","fileResponse","response","informationRequestEvents","renderQuestion","fieldName","isDocumentType","isTextType","jsxs","styles","DOMPurify","TextInputField","FileInputField","unsupportedPlaceholder","Flex","FormProvider","Form"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InformationRequestForm.js","sources":["../../../../src/components/InformationRequests/InformationRequestForm/InformationRequestForm.tsx"],"sourcesContent":["import DOMPurify from 'dompurify'\nimport { useTranslation } from 'react-i18next'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useIsMutating } from '@tanstack/react-query'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport {\n useInformationRequestsSubmitMutation,\n mutationKeyInformationRequestsSubmit,\n} from '@gusto/embedded-api/react-query/informationRequestsSubmit'\nimport type { RequiredQuestions } from '@gusto/embedded-api/models/components/informationrequest'\nimport { ResponseType } from '@gusto/embedded-api/models/components/informationrequest'\nimport { ResponseType as SubmitResponseType } from '@gusto/embedded-api/models/operations/submitinformationrequest'\nimport type { InformationRequestsContextInterface } from '../InformationRequestsComponents'\nimport styles from './InformationRequestForm.module.scss'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { Flex, TextInputField } from '@/components/Common'\nimport { FileInputField } from '@/components/Common/Fields/FileInputField'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { informationRequestEvents, type EventType } from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\n\nconst INFORMATION_REQUEST_FORM_ID = 'gusto-sdk-information-request-form'\nconst ACCEPTED_FILE_TYPES = ['image/jpeg', 'image/png', 'application/pdf']\nconst dompurifyConfig = {\n ALLOWED_TAGS: ['a', 'b', 'strong'],\n ALLOWED_ATTR: ['target', 'href', 'rel'],\n}\n\n/* API does not enforce an upper limit, so set a reasonable character max for a single-line input. */\nconst MAX_TEXT_RESPONSE = 5000\n\nconst InformationRequestFormSchema = z.record(\n z.string(),\n z.union([z.string().min(1), z.instanceof(File)]),\n)\n\ntype InformationRequestFormValues = z.infer<typeof InformationRequestFormSchema>\n\n/**\n * Props for {@link InformationRequestForm}.\n *\n * @public\n */\nexport interface InformationRequestFormProps extends BaseComponentInterface<'InformationRequests.InformationRequestForm'> {\n /** The associated company identifier. */\n companyId: string\n /** The identifier of the information request to respond to. */\n requestId: string\n /** Event handler invoked when the form is submitted or cancelled. See the events table in {@link InformationRequestForm}. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Dynamic response form for a single information request.\n *\n * Renders supported question types (text and document upload) based on the request's\n * `requiredQuestions` payload and submits responses to the Submit information request\n * endpoint. Use this component directly when you have built your own list or routing\n * surface and need to host the form — typically inside a modal or page you control.\n *\n * Requests with unsupported response types (e.g. `persona`-driven identity verification)\n * display a guidance message instead of the form; in those cases the user must complete\n * the request through your own integration with the underlying provider.\n *\n * Text inputs accept up to 5,000 characters. Document uploads are restricted to JPEG,\n * PNG, or PDF.\n *\n * @remarks\n * Events emitted via `onEvent`:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `informationRequest/form/done` | Fired when the form is successfully submitted | The `informationRequest` field from the Submit information request response |\n * | `informationRequest/form/cancel` | Fired when the user cancels the form | — |\n *\n * @param props - See {@link InformationRequestFormProps}.\n * @returns The rendered information request response form.\n * @public\n */\nexport function InformationRequestForm(props: InformationRequestFormProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst convertFileToDataUrl = (file: File) => {\n return new Promise<string>((resolve, reject) => {\n const reader = new FileReader()\n reader.onload = () => {\n resolve(reader.result as string)\n }\n reader.onerror = reject\n reader.readAsDataURL(file)\n })\n}\n\nconst SUPPORTED_RESPONSE_TYPES: ResponseType[] = [ResponseType.Text, ResponseType.Document]\n\nfunction hasUnsupportedQuestionTypes(questions: RequiredQuestions[]) {\n return questions.some(question => !SUPPORTED_RESPONSE_TYPES.includes(question.responseType))\n}\n\nfunction hasPersonaQuestionType(questions: RequiredQuestions[]) {\n return questions.some(question => question.responseType === ResponseType.Persona)\n}\n\nfunction Root({ companyId, requestId, dictionary }: InformationRequestFormProps) {\n useComponentDictionary('InformationRequests.InformationRequestForm', dictionary)\n useI18n('InformationRequests.InformationRequestForm')\n const { t } = useTranslation('InformationRequests.InformationRequestForm')\n const { Alert, Heading, Text } = useComponentContext()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { data } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const informationRequest = data.informationRequests?.find(req => req.uuid === requestId)\n const requiredQuestions = informationRequest?.requiredQuestions ?? []\n const isBlockingPayroll = informationRequest?.blockingPayroll ?? false\n const hasUnsupportedTypes = hasUnsupportedQuestionTypes(requiredQuestions)\n const hasPersonaType = hasPersonaQuestionType(requiredQuestions)\n\n const { mutateAsync: submitInformationRequest } = useInformationRequestsSubmitMutation()\n\n const defaultValues: Record<string, string | File | undefined> = {}\n const questionUuids: string[] = []\n\n requiredQuestions.forEach(question => {\n if (question.responseType === ResponseType.Text) {\n questionUuids.push(question.questionUuid)\n defaultValues[question.questionUuid] = ''\n } else if (question.responseType === ResponseType.Document) {\n questionUuids.push(question.questionUuid)\n defaultValues[question.questionUuid] = undefined\n }\n })\n\n const formMethods = useForm<InformationRequestFormValues>({\n resolver: zodResolver(InformationRequestFormSchema),\n defaultValues,\n })\n\n const onSubmit = async (formData: InformationRequestFormValues) => {\n await baseSubmitHandler(formData, async () => {\n const questionResponses = await Promise.all(\n questionUuids.map(async uuid => {\n const value = formData[uuid]\n\n if (typeof value === 'string') {\n return {\n questionUuid: uuid,\n responseType: SubmitResponseType.Text,\n textResponse: value,\n }\n }\n\n if (value instanceof File) {\n const fileResponse = await convertFileToDataUrl(value)\n return {\n questionUuid: uuid,\n responseType: SubmitResponseType.Document,\n fileResponse,\n fileName: value.name,\n }\n }\n\n return null\n }),\n )\n\n const validResponses = questionResponses.filter(response => response !== null)\n\n const response = await submitInformationRequest({\n request: {\n informationRequestUuid: requestId,\n requestBody: {\n requiredQuestions: validResponses,\n },\n },\n })\n\n onEvent(informationRequestEvents.INFORMATION_REQUEST_FORM_DONE, response.informationRequest)\n })\n }\n\n const renderQuestion = (question: RequiredQuestions) => {\n const fieldName = question.questionUuid\n const isDocumentType = question.responseType === ResponseType.Document\n const isTextType = question.responseType === ResponseType.Text\n\n return (\n <div key={fieldName} className={styles.questionCard}>\n <div className={styles.questionDescription}>\n <Text size=\"sm\" weight=\"medium\">\n {isDocumentType ? t('questionTypes.document') : t('questionTypes.answer')}\n </Text>\n <Text size=\"sm\" variant=\"supporting\">\n {/* SECURITY: XSS mitigated via DOMPurify with strict allowlist. Pattern matches TaxInputs.tsx */}\n <span\n dangerouslySetInnerHTML={{\n __html: DOMPurify.sanitize(question.questionText, dompurifyConfig),\n }}\n />\n </Text>\n </div>\n\n <hr className={styles.divider} />\n\n {isTextType && (\n <div className={styles.textInputWrapper}>\n <TextInputField\n name={fieldName}\n label={t('fields.textAnswer.label')}\n placeholder={t('fields.textAnswer.placeholder')}\n maxLength={MAX_TEXT_RESPONSE}\n isRequired\n errorMessage={t('validation.required')}\n />\n </div>\n )}\n\n {isDocumentType && (\n <div className={styles.fileInputWrapper}>\n <FileInputField\n name={fieldName}\n label={t('fields.fileUpload.label')}\n accept={ACCEPTED_FILE_TYPES}\n isRequired\n errorMessage={t('validation.required')}\n />\n </div>\n )}\n </div>\n )\n }\n\n const unsupportedPlaceholder = (\n <div className={styles.questionCard}>\n <div className={styles.questionDescription}>\n <Text weight=\"medium\">\n {t(hasPersonaType ? 'unsupported.persona.title' : 'unsupported.generic.title')}\n </Text>\n <Text>\n {t(\n hasPersonaType ? 'unsupported.persona.description' : 'unsupported.generic.description',\n )}\n </Text>\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.contactSupport}>\n <Text variant=\"supporting\">{t('unsupported.contactSupport')}</Text>\n </div>\n </div>\n )\n\n return (\n <div className={styles.root}>\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h2\">{t('title')}</Heading>\n\n {isBlockingPayroll && (\n <Alert status=\"error\" label={t('blockingAlert.title')} disableScrollIntoView>\n {t('blockingAlert.description')}\n </Alert>\n )}\n\n {hasUnsupportedTypes ? (\n unsupportedPlaceholder\n ) : (\n <FormProvider {...formMethods}>\n <Form id={INFORMATION_REQUEST_FORM_ID} onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Flex flexDirection=\"column\" gap={16}>\n {requiredQuestions.map(renderQuestion)}\n </Flex>\n </Form>\n </FormProvider>\n )}\n </Flex>\n </div>\n )\n}\n\n/** @internal */\nexport function Footer({ onEvent }: { onEvent: OnEventType<EventType, unknown> }) {\n useI18n('InformationRequests.InformationRequestForm')\n const { t } = useTranslation('InformationRequests.InformationRequestForm')\n const { Button } = useComponentContext()\n const { companyId, selectedRequestId } = useFlow<InformationRequestsContextInterface>()\n\n const { data } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const informationRequest = data.informationRequests?.find(req => req.uuid === selectedRequestId)\n const requiredQuestions = informationRequest?.requiredQuestions ?? []\n const hasUnsupportedTypes = hasUnsupportedQuestionTypes(requiredQuestions)\n\n const isMutating = useIsMutating({\n mutationKey: mutationKeyInformationRequestsSubmit(),\n })\n const isPending = isMutating > 0\n\n const handleCancel = () => {\n onEvent(informationRequestEvents.INFORMATION_REQUEST_FORM_CANCEL)\n }\n\n if (hasUnsupportedTypes) {\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel}>\n {t('cta.close')}\n </Button>\n </Flex>\n )\n }\n\n return (\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button variant=\"secondary\" onClick={handleCancel} isDisabled={isPending}>\n {t('cta.cancel')}\n </Button>\n <Button\n variant=\"primary\"\n type=\"submit\"\n form={INFORMATION_REQUEST_FORM_ID}\n isLoading={isPending}\n >\n {t('cta.submit')}\n </Button>\n </Flex>\n )\n}\n"],"names":["INFORMATION_REQUEST_FORM_ID","ACCEPTED_FILE_TYPES","dompurifyConfig","MAX_TEXT_RESPONSE","InformationRequestFormSchema","z","InformationRequestForm","props","jsx","BaseComponent","Root","convertFileToDataUrl","file","resolve","reject","reader","SUPPORTED_RESPONSE_TYPES","ResponseType","hasUnsupportedQuestionTypes","questions","question","hasPersonaQuestionType","companyId","requestId","dictionary","useComponentDictionary","useI18n","t","useTranslation","Alert","Heading","Text","useComponentContext","onEvent","baseSubmitHandler","useBase","data","useInformationRequestsGetInformationRequestsSuspense","informationRequest","req","requiredQuestions","isBlockingPayroll","hasUnsupportedTypes","hasPersonaType","submitInformationRequest","useInformationRequestsSubmitMutation","defaultValues","questionUuids","formMethods","useForm","zodResolver","onSubmit","formData","validResponses","uuid","value","SubmitResponseType","fileResponse","response","informationRequestEvents","renderQuestion","fieldName","isDocumentType","isTextType","jsxs","styles","DOMPurify","TextInputField","FileInputField","unsupportedPlaceholder","Flex","FormProvider","Form"],"mappings":"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"}
|
package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js
CHANGED
|
@@ -10,14 +10,13 @@ import { DataView as D } from "../../Common/DataView/DataView.js";
|
|
|
10
10
|
import { useDataView as k } from "../../Common/DataView/useDataView.js";
|
|
11
11
|
import { FlexItem as E, Flex as u } from "../../Common/Flex/Flex.js";
|
|
12
12
|
import { EmptyData as v } from "../../Common/EmptyData/EmptyData.js";
|
|
13
|
-
import "react";
|
|
14
13
|
import { informationRequestEvents as B } from "../../../shared/constants.js";
|
|
15
|
-
function
|
|
14
|
+
function J(o) {
|
|
16
15
|
return /* @__PURE__ */ n(w, { ...o, children: /* @__PURE__ */ n(C, { ...o, children: o.children }) });
|
|
17
16
|
}
|
|
18
17
|
function C({ companyId: o, dictionary: d, onEvent: f }) {
|
|
19
18
|
S("InformationRequests.InformationRequestList", d), T("InformationRequests.InformationRequestList");
|
|
20
|
-
const { t } = b("InformationRequests.InformationRequestList"), { Heading: y, Text:
|
|
19
|
+
const { t } = b("InformationRequests.InformationRequestList"), { Heading: y, Text: l, Button: R, Badge: m } = x(), { data: g } = P({
|
|
21
20
|
companyUuid: o
|
|
22
21
|
}), c = (g.informationRequests ?? []).filter(
|
|
23
22
|
(e) => e.status !== r.Approved
|
|
@@ -50,7 +49,7 @@ function C({ companyId: o, dictionary: d, onEvent: f }) {
|
|
|
50
49
|
{
|
|
51
50
|
key: "type",
|
|
52
51
|
title: t("columns.type"),
|
|
53
|
-
render: (e) => /* @__PURE__ */ n(E, { flexGrow: 1, children: /* @__PURE__ */ n(
|
|
52
|
+
render: (e) => /* @__PURE__ */ n(E, { flexGrow: 1, children: /* @__PURE__ */ n(l, { weight: "medium", children: h(e.type) }) })
|
|
54
53
|
},
|
|
55
54
|
{
|
|
56
55
|
key: "status",
|
|
@@ -58,8 +57,8 @@ function C({ companyId: o, dictionary: d, onEvent: f }) {
|
|
|
58
57
|
render: (e) => {
|
|
59
58
|
const s = q(e.status), p = e.blockingPayroll;
|
|
60
59
|
return !s && !p ? null : /* @__PURE__ */ a(u, { gap: 8, alignItems: "center", children: [
|
|
61
|
-
s && /* @__PURE__ */ n(
|
|
62
|
-
p && /* @__PURE__ */ n(
|
|
60
|
+
s && /* @__PURE__ */ n(m, { status: s.badgeStatus, children: s.label }),
|
|
61
|
+
p && /* @__PURE__ */ n(m, { status: "error", children: t("status.payrollBlocking") })
|
|
63
62
|
] });
|
|
64
63
|
}
|
|
65
64
|
}
|
|
@@ -80,12 +79,12 @@ function C({ companyId: o, dictionary: d, onEvent: f }) {
|
|
|
80
79
|
return /* @__PURE__ */ a(u, { flexDirection: "column", gap: 20, children: [
|
|
81
80
|
/* @__PURE__ */ a(u, { flexDirection: "column", gap: 2, children: [
|
|
82
81
|
/* @__PURE__ */ n(y, { as: "h2", styledAs: "h4", children: t("title") }),
|
|
83
|
-
c.length > 0 && /* @__PURE__ */ n(
|
|
82
|
+
c.length > 0 && /* @__PURE__ */ n(l, { children: t("description") })
|
|
84
83
|
] }),
|
|
85
84
|
/* @__PURE__ */ n(D, { ...I, label: t("title") })
|
|
86
85
|
] });
|
|
87
86
|
}
|
|
88
87
|
export {
|
|
89
|
-
|
|
88
|
+
J as InformationRequestList
|
|
90
89
|
};
|
|
91
90
|
//# sourceMappingURL=InformationRequestList.js.map
|