@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Employee/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEmployeeProfileSummary } from '../../shared/useEmployeeProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Read-only card showing an employee's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ employeeId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard(props: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Profile\">\n <ProfileCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ employeeId, onEvent }: ProfileCardProps) {\n useI18n('Employee.Management.Profile')\n const { t } = useTranslation('Employee.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useEmployeeProfileSummary({ employeeId })\n\n const isEmployeeLoading = profile.isLoading\n\n const employee = profile.isLoading ? undefined : profile.data.employee\n\n const legalName = employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : undefined\n const startDate = employee ? formatDateLongWithYear(employee.jobs?.[0]?.hireDate) : undefined\n const dateOfBirth = employee ? formatDateLongWithYear(employee.dateOfBirth) : undefined\n const maskedSsn = employee?.hasSsn ? 'XXX-XX-XXXX' : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = employee\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n { term: t('socialSecurityNumber'), description: maskedSsn || emptyPlaceholder },\n { term: t('dateOfBirth'), description: dateOfBirth || emptyPlaceholder },\n { term: t('personalEmail'), description: employee.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PROFILE_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isEmployeeLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isEmployeeLoading ? (\n <Loading />\n ) : employee ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","props","jsx","BaseBoundaries","ProfileCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useEmployeeProfileSummary","isEmployeeLoading","employee","legalName","firstLastName","startDate","formatDateLongWithYear","dateOfBirth","maskedSsn","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Employee/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEmployeeProfileSummary } from '../../shared/useEmployeeProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Read-only card showing an employee's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ employeeId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard(props: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.Profile\">\n <ProfileCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ employeeId, onEvent }: ProfileCardProps) {\n useI18n('Employee.Management.Profile')\n const { t } = useTranslation('Employee.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useEmployeeProfileSummary({ employeeId })\n\n const isEmployeeLoading = profile.isLoading\n\n const employee = profile.isLoading ? undefined : profile.data.employee\n\n const legalName = employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : undefined\n const startDate = employee ? formatDateLongWithYear(employee.jobs?.[0]?.hireDate) : undefined\n const dateOfBirth = employee ? formatDateLongWithYear(employee.dateOfBirth) : undefined\n const maskedSsn = employee?.hasSsn ? 'XXX-XX-XXXX' : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = employee\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n { term: t('socialSecurityNumber'), description: maskedSsn || emptyPlaceholder },\n { term: t('dateOfBirth'), description: dateOfBirth || emptyPlaceholder },\n { term: t('personalEmail'), description: employee.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_PROFILE_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isEmployeeLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isEmployeeLoading ? (\n <Loading />\n ) : employee ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","props","jsx","BaseBoundaries","ProfileCardContent","employeeId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useEmployeeProfileSummary","isEmployeeLoading","employee","legalName","firstLastName","startDate","formatDateLongWithYear","dateOfBirth","maskedSsn","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":";;;;;;;;;;AAyCO,SAASA,EAAYC,GAAyB;AACnD,SACE,gBAAAC,EAACC,KAAe,eAAc,+BAC5B,4BAACC,GAAA,EAAoB,GAAGH,GAAO,EAAA,CACjC;AAEJ;AAEA,SAASG,EAAmB,EAAE,YAAAC,GAAY,SAAAC,KAA6B;AACrE,EAAAC,EAAQ,6BAA6B;AACrC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,6BAA6B,GACpDC,IAAaC,EAAA,GAEbC,IAAUC,EAA0B,EAAE,YAAAR,GAAY,GAElDS,IAAoBF,EAAQ,WAE5BG,IAAWH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,UAExDI,IAAYD,IACdE,EAAc,EAAE,YAAYF,EAAS,WAAW,WAAWA,EAAS,SAAA,CAAU,IAC9E,QACEG,IAAYH,IAAWI,EAAuBJ,EAAS,OAAO,CAAC,GAAG,QAAQ,IAAI,QAC9EK,IAAcL,IAAWI,EAAuBJ,EAAS,WAAW,IAAI,QACxEM,IAAYN,GAAU,SAAS,gBAAgB,QAE/CO,IAAmB,gBAAApB,EAAC,QAAA,EAAK,cAAYM,EAAE,sBAAsB,GAAG,UAAA,KAAC,GACjEe,IAAeR,IACjB;AAAA,IACE,EAAE,MAAMP,EAAE,WAAW,GAAG,aAAaQ,KAAaM,EAAA;AAAA,IAClD,EAAE,MAAMd,EAAE,WAAW,GAAG,aAAaU,KAAaI,EAAA;AAAA,IAClD,EAAE,MAAMd,EAAE,sBAAsB,GAAG,aAAaa,KAAaC,EAAA;AAAA,IAC7D,EAAE,MAAMd,EAAE,aAAa,GAAG,aAAaY,KAAeE,EAAA;AAAA,IACtD,EAAE,MAAMd,EAAE,eAAe,GAAG,aAAaO,EAAS,SAASO,EAAA;AAAA,EAAiB,IAE9E,CAAA,GAEEE,IAAa,MAAM;AACvB,IAAAlB,EAAQmB,EAAgB,4CAA4C,EAAE,YAAApB,EAAA,CAAY;AAAA,EACpF;AAEA,SACE,gBAAAH,EAACwB,GAAA,EAAW,OAAOd,EAAQ,cAAc,QACvC,UAAA,gBAAAV;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,OAAO;AAAA,UAChB,QACE,gBAAAN;AAAA,YAACQ,EAAW;AAAA,YAAX;AAAA,cACC,SAAQ;AAAA,cACR,SAASc;AAAA,cACT,YAAYV;AAAA,cAEX,YAAE,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MAKL,UAAAA,IACC,gBAAAZ,EAACyB,GAAA,CAAA,CAAQ,IACPZ,IACF,gBAAAb,EAACQ,EAAW,iBAAX,EAA2B,OAAOa,EAAA,CAAc,IAC/C;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
|
|
@@ -8,11 +8,11 @@ import { BaseBoundaries as h, BaseLayout as d } from "../../../Base/Base.js";
|
|
|
8
8
|
import "../../../Base/useBase.js";
|
|
9
9
|
import { Grid as v } from "../../../Common/Grid/Grid.js";
|
|
10
10
|
import { ActionsLayout as A } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { useI18n as F, useComponentDictionary as S } from "../../../../i18n/I18n.js";
|
|
11
|
+
import { Form as R } from "../../../Common/Form/Form.js";
|
|
12
|
+
import { SDKFormProvider as y } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
|
|
13
|
+
import { useI18n as P, useComponentDictionary as F } from "../../../../i18n/I18n.js";
|
|
15
14
|
import { componentEvents as f } from "../../../../shared/constants.js";
|
|
15
|
+
import { useComponentContext as S } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
16
|
function z({ FallbackComponent: r, ...t }) {
|
|
17
17
|
return /* @__PURE__ */ o(
|
|
18
18
|
h,
|
|
@@ -24,8 +24,8 @@ function z({ FallbackComponent: r, ...t }) {
|
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
26
|
function C({ employeeId: r, className: t, dictionary: c, onEvent: l }) {
|
|
27
|
-
|
|
28
|
-
const { t: e } = g("Employee.Management.Profile"), s =
|
|
27
|
+
P("Employee.Management.Profile"), F("Employee.Management.Profile", c);
|
|
28
|
+
const { t: e } = g("Employee.Management.Profile"), s = S(), i = M({
|
|
29
29
|
employeeId: r,
|
|
30
30
|
withSelfOnboardingField: !1,
|
|
31
31
|
optionalFieldsToRequire: {
|
|
@@ -52,7 +52,7 @@ function C({ employeeId: r, className: t, dictionary: c, onEvent: l }) {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
) : void 0;
|
|
55
|
-
return /* @__PURE__ */ o("section", { className: L(b.container, t), children: /* @__PURE__ */ o(d, { error: i.errorHandling.errors, children: /* @__PURE__ */ o(
|
|
55
|
+
return /* @__PURE__ */ o("section", { className: L(b.container, t), children: /* @__PURE__ */ o(d, { error: i.errorHandling.errors, children: /* @__PURE__ */ o(y, { formHookResult: i, children: /* @__PURE__ */ m(R, { onSubmit: p, children: [
|
|
56
56
|
N,
|
|
57
57
|
/* @__PURE__ */ o(s.Heading, { as: "h1", children: e("form.title") }),
|
|
58
58
|
/* @__PURE__ */ m(
|
|
@@ -13,12 +13,12 @@ import { composeErrorHandler as te } from "../../../../partner-hook-utils/compos
|
|
|
13
13
|
import { Grid as N } from "../../../Common/Grid/Grid.js";
|
|
14
14
|
import { Flex as k } from "../../../Common/Flex/Flex.js";
|
|
15
15
|
import { ActionsLayout as ie } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
16
|
-
import {
|
|
17
|
-
import { Form as se } from "../../../Common/Form/Form.js";
|
|
16
|
+
import { Form as re } from "../../../Common/Form/Form.js";
|
|
18
17
|
import { BaseLayout as w } from "../../../Base/Base.js";
|
|
19
18
|
import "../../../Base/useBase.js";
|
|
20
|
-
import { useI18n as U, useComponentDictionary as
|
|
19
|
+
import { useI18n as U, useComponentDictionary as se } from "../../../../i18n/I18n.js";
|
|
21
20
|
import { componentEvents as f, EmployeeOnboardingStatus as F } from "../../../../shared/constants.js";
|
|
21
|
+
import { useComponentContext as ae } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
22
22
|
import { DatePickerField as ne } from "../../../Common/Fields/DatePickerField/DatePickerField.js";
|
|
23
23
|
const le = (t) => t?.onboarded === !0 || t?.onboardingStatus === F.ONBOARDING_COMPLETED || t?.onboardingStatus === F.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW || t?.onboardingStatus === F.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE;
|
|
24
24
|
function de(t) {
|
|
@@ -39,7 +39,7 @@ function Ce({
|
|
|
39
39
|
dictionary: R,
|
|
40
40
|
onEvent: b
|
|
41
41
|
}) {
|
|
42
|
-
U("Employee.Profile"), U("Employee.HomeAddress"),
|
|
42
|
+
U("Employee.Profile"), U("Employee.HomeAddress"), se("Employee.Profile", R);
|
|
43
43
|
const [u, n] = y(d), p = !u, e = p && D && (r?.inviteEmployeeDefault ?? !1), [i, L] = y(e), l = H(
|
|
44
44
|
() => de(i),
|
|
45
45
|
[i]
|
|
@@ -105,7 +105,7 @@ function me({
|
|
|
105
105
|
onEvent: n,
|
|
106
106
|
className: p
|
|
107
107
|
}) {
|
|
108
|
-
const { t: e } = v("Employee.Profile"), { t: i } = v("Employee.HomeAddress"), { t: L } = v("common"), l =
|
|
108
|
+
const { t: e } = v("Employee.Profile"), { t: i } = v("Employee.HomeAddress"), { t: L } = v("common"), l = ae(), O = t.data.employee ?? void 0, h = le(O), E = q({
|
|
109
109
|
defaultValues: { startDate: O?.jobs?.[0]?.hireDate ?? "" },
|
|
110
110
|
mode: "onSubmit",
|
|
111
111
|
shouldFocusError: !1
|
|
@@ -167,7 +167,7 @@ function me({
|
|
|
167
167
|
startDate: _
|
|
168
168
|
});
|
|
169
169
|
}), G = t.status.isPending || d.status.isPending || r.status.isPending, z = d.form.hookFormInternals.formMethods.watch("courtesyWithholding");
|
|
170
|
-
return /* @__PURE__ */ o("section", { className: Z(ee.container, p), children: /* @__PURE__ */ o(w, { error: Y.errors, children: /* @__PURE__ */ m(
|
|
170
|
+
return /* @__PURE__ */ o("section", { className: Z(ee.container, p), children: /* @__PURE__ */ o(w, { error: Y.errors, children: /* @__PURE__ */ m(re, { onSubmit: Q, children: [
|
|
171
171
|
/* @__PURE__ */ m(N, { gridTemplateColumns: "1fr", gap: 24, children: [
|
|
172
172
|
/* @__PURE__ */ m(k, { flexDirection: "column", gap: 4, children: [
|
|
173
173
|
/* @__PURE__ */ o(l.Heading, { as: "h2", children: e("title") }),
|
|
@@ -11,12 +11,12 @@ import { composeSubmitHandler as Q } from "../../../../partner-hook-utils/form/c
|
|
|
11
11
|
import { composeErrorHandler as L } from "../../../../partner-hook-utils/composeErrorHandler.js";
|
|
12
12
|
import { Grid as A } from "../../../Common/Grid/Grid.js";
|
|
13
13
|
import { ActionsLayout as z } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
14
|
-
import {
|
|
15
|
-
import { Form as Y } from "../../../Common/Form/Form.js";
|
|
14
|
+
import { Form as B } from "../../../Common/Form/Form.js";
|
|
16
15
|
import { BaseLayout as S } from "../../../Base/Base.js";
|
|
17
16
|
import "../../../Base/useBase.js";
|
|
18
|
-
import { useI18n as N, useComponentDictionary as
|
|
17
|
+
import { useI18n as N, useComponentDictionary as Y } from "../../../../i18n/I18n.js";
|
|
19
18
|
import { componentEvents as p } from "../../../../shared/constants.js";
|
|
19
|
+
import { useComponentContext as W } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
20
20
|
import { getStreet as Z, getCityStateZip as j } from "../../../../helpers/formattedStrings.js";
|
|
21
21
|
const q = {
|
|
22
22
|
create: ["dateOfBirth", "ssn"],
|
|
@@ -30,8 +30,8 @@ function he({
|
|
|
30
30
|
dictionary: M,
|
|
31
31
|
onEvent: n
|
|
32
32
|
}) {
|
|
33
|
-
N("Employee.Profile"), N("Employee.HomeAddress"),
|
|
34
|
-
const { t: s } = y("Employee.Profile"), { t: o } = y("Employee.HomeAddress"), { t: F } = y("common"), r =
|
|
33
|
+
N("Employee.Profile"), N("Employee.HomeAddress"), Y("Employee.Profile", M);
|
|
34
|
+
const { t: s } = y("Employee.Profile"), { t: o } = y("Employee.HomeAddress"), { t: F } = y("common"), r = W(), [E, T] = C(D), l = w({
|
|
35
35
|
companyId: H,
|
|
36
36
|
employeeId: E,
|
|
37
37
|
withSelfOnboardingField: !1,
|
|
@@ -84,7 +84,7 @@ function he({
|
|
|
84
84
|
{ errorHandling: a.errorHandling },
|
|
85
85
|
f
|
|
86
86
|
]), _ = l.status.isPending || a.status.isPending;
|
|
87
|
-
return /* @__PURE__ */ e("section", { className: U(b.container, P), children: /* @__PURE__ */ e(S, { error: O.errors, children: /* @__PURE__ */ i(
|
|
87
|
+
return /* @__PURE__ */ e("section", { className: U(b.container, P), children: /* @__PURE__ */ e(S, { error: O.errors, children: /* @__PURE__ */ i(B, { onSubmit: I.handleSubmit, children: [
|
|
88
88
|
/* @__PURE__ */ i(A, { gridTemplateColumns: "1fr", gap: 24, children: [
|
|
89
89
|
/* @__PURE__ */ i("div", { children: [
|
|
90
90
|
/* @__PURE__ */ e(r.Heading, { as: "h2", children: s("title") }),
|
package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { UseHomeAddressFormProps, UseHomeAddressFormResult } from './useHomeAddr
|
|
|
7
7
|
* the hook resolves the current home address itself.
|
|
8
8
|
*
|
|
9
9
|
* @public
|
|
10
|
+
* @interface
|
|
10
11
|
*/
|
|
11
12
|
export type UseCurrentHomeAddressFormProps = Omit<UseHomeAddressFormProps, 'homeAddressUuid'>;
|
|
12
13
|
/**
|
package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGet } from '@gusto/embedded-api/react-query/employeeAddressesGet'\nimport { useHomeAddressForm } from './useHomeAddressForm'\nimport type { UseHomeAddressFormProps, UseHomeAddressFormResult } from './useHomeAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentHomeAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseHomeAddressFormProps} minus `homeAddressUuid` —\n * the hook resolves the current home address itself.\n *\n * @public\n */\nexport type UseCurrentHomeAddressFormProps = Omit<UseHomeAddressFormProps, 'homeAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useHomeAddressForm} that auto-resolves the employee's current home address.\n *\n * @remarks\n * Lists the employee's home addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * home address on file the hook operates in create mode. The returned\n * shape is identical to {@link useHomeAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentHomeAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressEditor({ employeeId }: { employeeId: string }) {\n * const homeAddress = useCurrentHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = homeAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentHomeAddressForm(\n props: UseCurrentHomeAddressFormProps,\n): UseHomeAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGet({ employeeId }, { enabled: !!employeeId })\n\n const homeAddresses = listQuery.data?.employeeAddressList\n const currentHomeAddress = homeAddresses?.find(a => a.active) ?? homeAddresses?.[0]\n\n const base = useHomeAddressForm({\n ...rest,\n employeeId,\n homeAddressUuid: currentHomeAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentHomeAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGet","homeAddresses","currentHomeAddress","a","base","useHomeAddressForm","composeErrorHandler"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useCurrentHomeAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGet } from '@gusto/embedded-api/react-query/employeeAddressesGet'\nimport { useHomeAddressForm } from './useHomeAddressForm'\nimport type { UseHomeAddressFormProps, UseHomeAddressFormResult } from './useHomeAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentHomeAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseHomeAddressFormProps} minus `homeAddressUuid` —\n * the hook resolves the current home address itself.\n *\n * @public\n * @interface\n */\nexport type UseCurrentHomeAddressFormProps = Omit<UseHomeAddressFormProps, 'homeAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useHomeAddressForm} that auto-resolves the employee's current home address.\n *\n * @remarks\n * Lists the employee's home addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * home address on file the hook operates in create mode. The returned\n * shape is identical to {@link useHomeAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentHomeAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseHomeAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentHomeAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function HomeAddressEditor({ employeeId }: { employeeId: string }) {\n * const homeAddress = useCurrentHomeAddressForm({ employeeId })\n *\n * if (homeAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = homeAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void homeAddress.actions.onSubmit() }}>\n * <Fields.Street1 label=\"Street\" />\n * <Fields.City label=\"City\" />\n * <Fields.State label=\"State\" />\n * <Fields.Zip label=\"ZIP\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentHomeAddressForm(\n props: UseCurrentHomeAddressFormProps,\n): UseHomeAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGet({ employeeId }, { enabled: !!employeeId })\n\n const homeAddresses = listQuery.data?.employeeAddressList\n const currentHomeAddress = homeAddresses?.find(a => a.active) ?? homeAddresses?.[0]\n\n const base = useHomeAddressForm({\n ...rest,\n employeeId,\n homeAddressUuid: currentHomeAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentHomeAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGet","homeAddresses","currentHomeAddress","a","base","useHomeAddressForm","composeErrorHandler"],"mappings":";;;AAqDO,SAASA,EACdC,GAC0B;AAC1B,QAAM,EAAE,YAAAC,GAAY,GAAGC,EAAA,IAASF,GAE1BG,IAAYC,EAAwB,EAAE,YAAAH,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY,GAE7EI,IAAgBF,EAAU,MAAM,qBAChCG,IAAqBD,GAAe,KAAK,CAAAE,MAAKA,EAAE,MAAM,KAAKF,IAAgB,CAAC,GAE5EG,IAAOC,EAAmB;AAAA,IAC9B,GAAGP;AAAA,IACH,YAAAD;AAAA,IACA,iBAAiBK,GAAoB;AAAA,EAAA,CACtC;AAID,SAF8BH,EAAU,aAAa,CAACA,EAAU,OAGvD;AAAA,IACL,WAAW;AAAA,IACX,eAAeO,EAAoB,CAACP,CAAS,CAAC;AAAA,EAAA,IAI9CK,EAAK,YACA;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA,IAIlF;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA;AAEzF;"}
|
package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { UseWorkAddressFormProps, UseWorkAddressFormResult } from './useWorkAddr
|
|
|
7
7
|
* the hook resolves the current work address itself.
|
|
8
8
|
*
|
|
9
9
|
* @public
|
|
10
|
+
* @interface
|
|
10
11
|
*/
|
|
11
12
|
export type UseCurrentWorkAddressFormProps = Omit<UseWorkAddressFormProps, 'workAddressUuid'>;
|
|
12
13
|
/**
|
package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCurrentWorkAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useWorkAddressForm } from './useWorkAddressForm'\nimport type { UseWorkAddressFormProps, UseWorkAddressFormResult } from './useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentWorkAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseWorkAddressFormProps} minus `workAddressUuid` —\n * the hook resolves the current work address itself.\n *\n * @public\n */\nexport type UseCurrentWorkAddressFormProps = Omit<UseWorkAddressFormProps, 'workAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useWorkAddressForm} that auto-resolves the employee's current work address.\n *\n * @remarks\n * Lists the employee's work addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * work address on file the hook operates in create mode. The returned shape\n * is identical to {@link useWorkAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentWorkAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseWorkAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentWorkAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function WorkAddressEditor({ employeeId, companyId }: { employeeId: string; companyId: string }) {\n * const workAddress = useCurrentWorkAddressForm({ employeeId, companyId })\n *\n * if (workAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = workAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void workAddress.actions.onSubmit() }}>\n * <Fields.Location label=\"Work location\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentWorkAddressForm(\n props: UseCurrentWorkAddressFormProps,\n): UseWorkAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGetWorkAddresses({ employeeId }, { enabled: !!employeeId })\n\n const workAddresses = listQuery.data?.employeeWorkAddressesList\n const currentWorkAddress = workAddresses?.find(w => w.active) ?? workAddresses?.[0]\n\n const base = useWorkAddressForm({\n ...rest,\n employeeId,\n workAddressUuid: currentWorkAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentWorkAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGetWorkAddresses","workAddresses","currentWorkAddress","w","base","useWorkAddressForm","composeErrorHandler"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useCurrentWorkAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.tsx"],"sourcesContent":["import { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useWorkAddressForm } from './useWorkAddressForm'\nimport type { UseWorkAddressFormProps, UseWorkAddressFormResult } from './useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\n\n/**\n * Options for {@link useCurrentWorkAddressForm}.\n *\n * @remarks\n * Same shape as {@link UseWorkAddressFormProps} minus `workAddressUuid` —\n * the hook resolves the current work address itself.\n *\n * @public\n * @interface\n */\nexport type UseCurrentWorkAddressFormProps = Omit<UseWorkAddressFormProps, 'workAddressUuid'>\n\n/**\n * Convenience wrapper around {@link useWorkAddressForm} that auto-resolves the employee's current work address.\n *\n * @remarks\n * Lists the employee's work addresses and selects the active one (or the\n * first when none are active) as the row to edit. When the employee has no\n * work address on file the hook operates in create mode. The returned shape\n * is identical to {@link useWorkAddressForm}, so the same `Fields`,\n * `actions.onSubmit`, and `errorHandling` apply.\n *\n * @param props - See {@link UseCurrentWorkAddressFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseWorkAddressFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useCurrentWorkAddressForm } from '@gusto/embedded-react-sdk'\n *\n * function WorkAddressEditor({ employeeId, companyId }: { employeeId: string; companyId: string }) {\n * const workAddress = useCurrentWorkAddressForm({ employeeId, companyId })\n *\n * if (workAddress.isLoading) return <div>Loading...</div>\n *\n * const { Fields } = workAddress.form\n * return (\n * <form onSubmit={e => { e.preventDefault(); void workAddress.actions.onSubmit() }}>\n * <Fields.Location label=\"Work location\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * )\n * }\n * ```\n */\nexport function useCurrentWorkAddressForm(\n props: UseCurrentWorkAddressFormProps,\n): UseWorkAddressFormResult {\n const { employeeId, ...rest } = props\n\n const listQuery = useEmployeeAddressesGetWorkAddresses({ employeeId }, { enabled: !!employeeId })\n\n const workAddresses = listQuery.data?.employeeWorkAddressesList\n const currentWorkAddress = workAddresses?.find(w => w.active) ?? workAddresses?.[0]\n\n const base = useWorkAddressForm({\n ...rest,\n employeeId,\n workAddressUuid: currentWorkAddress?.uuid,\n })\n\n const listInitiallyBlocking = listQuery.isLoading && !listQuery.data\n\n if (listInitiallyBlocking) {\n return {\n isLoading: true as const,\n errorHandling: composeErrorHandler([listQuery]),\n }\n }\n\n if (base.isLoading) {\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n }\n\n return {\n ...base,\n errorHandling: composeErrorHandler([listQuery, { errorHandling: base.errorHandling }]),\n }\n}\n"],"names":["useCurrentWorkAddressForm","props","employeeId","rest","listQuery","useEmployeeAddressesGetWorkAddresses","workAddresses","currentWorkAddress","w","base","useWorkAddressForm","composeErrorHandler"],"mappings":";;;AAkDO,SAASA,EACdC,GAC0B;AAC1B,QAAM,EAAE,YAAAC,GAAY,GAAGC,EAAA,IAASF,GAE1BG,IAAYC,EAAqC,EAAE,YAAAH,EAAA,GAAc,EAAE,SAAS,CAAC,CAACA,GAAY,GAE1FI,IAAgBF,EAAU,MAAM,2BAChCG,IAAqBD,GAAe,KAAK,CAAAE,MAAKA,EAAE,MAAM,KAAKF,IAAgB,CAAC,GAE5EG,IAAOC,EAAmB;AAAA,IAC9B,GAAGP;AAAA,IACH,YAAAD;AAAA,IACA,iBAAiBK,GAAoB;AAAA,EAAA,CACtC;AAID,SAF8BH,EAAU,aAAa,CAACA,EAAU,OAGvD;AAAA,IACL,WAAW;AAAA,IACX,eAAeO,EAAoB,CAACP,CAAS,CAAC;AAAA,EAAA,IAI9CK,EAAK,YACA;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA,IAIlF;AAAA,IACL,GAAGA;AAAA,IACH,eAAeE,EAAoB,CAACP,GAAW,EAAE,eAAeK,EAAK,eAAe,CAAC;AAAA,EAAA;AAEzF;"}
|
|
@@ -2,19 +2,18 @@ import { jsx as e, jsxs as C } from "react/jsx-runtime";
|
|
|
2
2
|
import { useTranslation as h } from "react-i18next";
|
|
3
3
|
import { Flex as d } from "../../../../Common/Flex/Flex.js";
|
|
4
4
|
import { Loading as F } from "../../../../Common/Loading/Loading.js";
|
|
5
|
-
import {
|
|
6
|
-
import "
|
|
7
|
-
import { BaseBoundaries as b, BaseLayout as v } from "../../../../Base/Base.js";
|
|
5
|
+
import { BaseBoundaries as Q, BaseLayout as b } from "../../../../Base/Base.js";
|
|
6
|
+
import { useComponentContext as v } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
8
7
|
import L from "../../../../../hooks/useNumberFormatter.js";
|
|
9
8
|
import { useI18n as D } from "../../../../../i18n/I18n.js";
|
|
10
9
|
import { componentEvents as N } from "../../../../../shared/constants.js";
|
|
11
10
|
import { useStateTaxesSummary as A } from "../../shared/useStateTaxesSummary/useStateTaxesSummary.js";
|
|
12
|
-
function
|
|
13
|
-
return /* @__PURE__ */ e(
|
|
11
|
+
function U(i) {
|
|
12
|
+
return /* @__PURE__ */ e(Q, { componentName: "Employee.Management.StateTaxes", children: /* @__PURE__ */ e(B, { ...i }) });
|
|
14
13
|
}
|
|
15
14
|
function B({ employeeId: i, onEvent: y }) {
|
|
16
15
|
D("Employee.Management.StateTaxes");
|
|
17
|
-
const { t: n } = h("Employee.Management.StateTaxes"), { t: g } = h("common"), r =
|
|
16
|
+
const { t: n } = h("Employee.Management.StateTaxes"), { t: g } = h("common"), r = v(), f = L("currency"), s = A({ employeeId: i }), m = s.isLoading, c = s.isLoading ? [] : s.data.employeeStateTaxesList, x = c.some((t) => (t.questions?.length ?? 0) > 0), E = (t, o) => {
|
|
18
17
|
if (t.inputQuestionFormat.type === "Select" && t.inputQuestionFormat.options && t.inputQuestionFormat.options.length > 0) {
|
|
19
18
|
const a = t.inputQuestionFormat.options.find((l) => l.value === o);
|
|
20
19
|
if (a?.label)
|
|
@@ -30,7 +29,7 @@ function B({ employeeId: i, onEvent: y }) {
|
|
|
30
29
|
}, S = /* @__PURE__ */ e("span", { "aria-label": n("card.listEmptyPlaceholder"), children: "–" }), T = () => {
|
|
31
30
|
y(N.EMPLOYEE_MANAGEMENT_STATE_TAXES_EDIT_REQUESTED, { employeeId: i });
|
|
32
31
|
};
|
|
33
|
-
return /* @__PURE__ */ e(
|
|
32
|
+
return /* @__PURE__ */ e(b, { error: s.errorHandling.errors, children: /* @__PURE__ */ e(
|
|
34
33
|
r.Box,
|
|
35
34
|
{
|
|
36
35
|
header: /* @__PURE__ */ e(
|
|
@@ -47,11 +46,11 @@ function B({ employeeId: i, onEvent: y }) {
|
|
|
47
46
|
l ? /* @__PURE__ */ e(
|
|
48
47
|
r.DescriptionList,
|
|
49
48
|
{
|
|
50
|
-
items: t.questions.map((
|
|
51
|
-
const
|
|
49
|
+
items: t.questions.map((u) => {
|
|
50
|
+
const p = u.answers[0]?.value;
|
|
52
51
|
return {
|
|
53
|
-
term:
|
|
54
|
-
description:
|
|
52
|
+
term: u.label,
|
|
53
|
+
description: p == null ? S : E(u, p)
|
|
55
54
|
};
|
|
56
55
|
})
|
|
57
56
|
}
|
|
@@ -62,6 +61,6 @@ function B({ employeeId: i, onEvent: y }) {
|
|
|
62
61
|
) });
|
|
63
62
|
}
|
|
64
63
|
export {
|
|
65
|
-
|
|
64
|
+
U as StateTaxesCard
|
|
66
65
|
};
|
|
67
66
|
//# sourceMappingURL=StateTaxesCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateTaxesCard.js","sources":["../../../../../../src/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { useStateTaxesSummary } from '../../shared/useStateTaxesSummary'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link StateTaxesCard}.\n *\n * @public\n */\nexport interface StateTaxesCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the Edit button is clicked. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone read-only summary card showing an employee's per-state tax\n * withholding answers. Fetches its own data and surfaces an Edit button\n * that emits an event for the orchestrator to swap in the edit form.\n *\n * @remarks\n * The Edit button is hidden when no state on record has any tax-withholding\n * questions (e.g. states with no income tax), since there is nothing to edit.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/stateTaxes/editRequested` | Edit button was clicked | `{ employeeId: string }` |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxesCard(props: StateTaxesCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.StateTaxes\">\n <StateTaxesCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesCardContent({ employeeId, onEvent }: StateTaxesCardProps) {\n useI18n('Employee.Management.StateTaxes')\n const { t } = useTranslation('Employee.Management.StateTaxes')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n\n const summary = useStateTaxesSummary({ employeeId })\n const isLoading = summary.isLoading\n const stateTaxes = summary.isLoading ? [] : summary.data.employeeStateTaxesList\n\n const stateTaxesHaveAnyQuestions = stateTaxes.some(s => (s.questions?.length ?? 0) > 0)\n\n const formatStateTaxAnswer = (\n question: EmployeeStateTaxQuestion,\n answer: string | number | boolean,\n ) => {\n if (\n question.inputQuestionFormat.type === 'Select' &&\n question.inputQuestionFormat.options &&\n question.inputQuestionFormat.options.length > 0\n ) {\n const option = question.inputQuestionFormat.options.find(opt => opt.value === answer)\n if (option?.label) {\n return option.label\n }\n }\n\n if (typeof answer === 'number') {\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(answer)\n }\n return answer\n }\n\n if (typeof answer === 'string' && !isNaN(parseFloat(answer))) {\n const numValue = parseFloat(answer)\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(numValue)\n }\n return answer\n }\n\n if (typeof answer === 'boolean') {\n return answer ? t('card.yes') : t('card.no')\n }\n\n return answer\n }\n\n const emptyPlaceholder = <span aria-label={t('card.listEmptyPlaceholder')}>–</span>\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={summary.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('card.title')}\n action={\n isLoading || stateTaxesHaveAnyQuestions ? (\n <Components.Button variant=\"secondary\" onClick={handleEdit} isDisabled={isLoading}>\n {t('card.editCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isLoading ? (\n <Loading />\n ) : stateTaxes.length > 0 ? (\n <Flex flexDirection=\"column\" gap={24}>\n {stateTaxes.map((stateTax, index) => {\n const stateName = stateTax.state\n ? tCommon(`statesHash.${stateTax.state}`, stateTax.state)\n : ''\n const hasQuestions = (stateTax.questions?.length ?? 0) > 0\n return (\n <Flex key={stateTax.state ?? index} flexDirection=\"column\" gap={16}>\n {stateName ? (\n <Components.Heading as=\"h4\">{stateName}</Components.Heading>\n ) : null}\n\n {hasQuestions ? (\n <Components.DescriptionList\n items={stateTax.questions!.map(question => {\n const answer = question.answers[0]?.value\n return {\n term: question.label,\n description:\n answer === null || answer === undefined\n ? emptyPlaceholder\n : formatStateTaxAnswer(question, answer),\n }\n })}\n />\n ) : (\n <Components.Text variant=\"supporting\">\n {t('card.noWithholdingForState')}\n </Components.Text>\n )}\n </Flex>\n )\n })}\n </Flex>\n ) : (\n <Components.Text>{t('card.noStateTaxes')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["StateTaxesCard","props","jsx","BaseBoundaries","StateTaxesCardContent","employeeId","onEvent","useI18n","t","useTranslation","tCommon","Components","useComponentContext","formatCurrency","useNumberFormatter","summary","useStateTaxesSummary","isLoading","stateTaxes","stateTaxesHaveAnyQuestions","s","formatStateTaxAnswer","question","answer","option","opt","numValue","emptyPlaceholder","handleEdit","componentEvents","BaseLayout","Flex","Loading","stateTax","index","stateName","hasQuestions","jsxs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StateTaxesCard.js","sources":["../../../../../../src/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { useStateTaxesSummary } from '../../shared/useStateTaxesSummary'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\n\n/**\n * Props for {@link StateTaxesCard}.\n *\n * @public\n */\nexport interface StateTaxesCardProps {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when the Edit button is clicked. */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Standalone read-only summary card showing an employee's per-state tax\n * withholding answers. Fetches its own data and surfaces an Edit button\n * that emits an event for the orchestrator to swap in the edit form.\n *\n * @remarks\n * The Edit button is hidden when no state on record has any tax-withholding\n * questions (e.g. states with no income tax), since there is nothing to edit.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/stateTaxes/editRequested` | Edit button was clicked | `{ employeeId: string }` |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxesCard(props: StateTaxesCardProps) {\n return (\n <BaseBoundaries componentName=\"Employee.Management.StateTaxes\">\n <StateTaxesCardContent {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesCardContent({ employeeId, onEvent }: StateTaxesCardProps) {\n useI18n('Employee.Management.StateTaxes')\n const { t } = useTranslation('Employee.Management.StateTaxes')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n\n const summary = useStateTaxesSummary({ employeeId })\n const isLoading = summary.isLoading\n const stateTaxes = summary.isLoading ? [] : summary.data.employeeStateTaxesList\n\n const stateTaxesHaveAnyQuestions = stateTaxes.some(s => (s.questions?.length ?? 0) > 0)\n\n const formatStateTaxAnswer = (\n question: EmployeeStateTaxQuestion,\n answer: string | number | boolean,\n ) => {\n if (\n question.inputQuestionFormat.type === 'Select' &&\n question.inputQuestionFormat.options &&\n question.inputQuestionFormat.options.length > 0\n ) {\n const option = question.inputQuestionFormat.options.find(opt => opt.value === answer)\n if (option?.label) {\n return option.label\n }\n }\n\n if (typeof answer === 'number') {\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(answer)\n }\n return answer\n }\n\n if (typeof answer === 'string' && !isNaN(parseFloat(answer))) {\n const numValue = parseFloat(answer)\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(numValue)\n }\n return answer\n }\n\n if (typeof answer === 'boolean') {\n return answer ? t('card.yes') : t('card.no')\n }\n\n return answer\n }\n\n const emptyPlaceholder = <span aria-label={t('card.listEmptyPlaceholder')}>–</span>\n\n const handleEdit = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_EDIT_REQUESTED, { employeeId })\n }\n\n return (\n <BaseLayout error={summary.errorHandling.errors}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('card.title')}\n action={\n isLoading || stateTaxesHaveAnyQuestions ? (\n <Components.Button variant=\"secondary\" onClick={handleEdit} isDisabled={isLoading}>\n {t('card.editCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {isLoading ? (\n <Loading />\n ) : stateTaxes.length > 0 ? (\n <Flex flexDirection=\"column\" gap={24}>\n {stateTaxes.map((stateTax, index) => {\n const stateName = stateTax.state\n ? tCommon(`statesHash.${stateTax.state}`, stateTax.state)\n : ''\n const hasQuestions = (stateTax.questions?.length ?? 0) > 0\n return (\n <Flex key={stateTax.state ?? index} flexDirection=\"column\" gap={16}>\n {stateName ? (\n <Components.Heading as=\"h4\">{stateName}</Components.Heading>\n ) : null}\n\n {hasQuestions ? (\n <Components.DescriptionList\n items={stateTax.questions!.map(question => {\n const answer = question.answers[0]?.value\n return {\n term: question.label,\n description:\n answer === null || answer === undefined\n ? emptyPlaceholder\n : formatStateTaxAnswer(question, answer),\n }\n })}\n />\n ) : (\n <Components.Text variant=\"supporting\">\n {t('card.noWithholdingForState')}\n </Components.Text>\n )}\n </Flex>\n )\n })}\n </Flex>\n ) : (\n <Components.Text>{t('card.noStateTaxes')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["StateTaxesCard","props","jsx","BaseBoundaries","StateTaxesCardContent","employeeId","onEvent","useI18n","t","useTranslation","tCommon","Components","useComponentContext","formatCurrency","useNumberFormatter","summary","useStateTaxesSummary","isLoading","stateTaxes","stateTaxesHaveAnyQuestions","s","formatStateTaxAnswer","question","answer","option","opt","numValue","emptyPlaceholder","handleEdit","componentEvents","BaseLayout","Flex","Loading","stateTax","index","stateName","hasQuestions","jsxs"],"mappings":";;;;;;;;;;AAyCO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,KAAe,eAAc,kCAC5B,4BAACC,GAAA,EAAuB,GAAGH,GAAO,EAAA,CACpC;AAEJ;AAEA,SAASG,EAAsB,EAAE,YAAAC,GAAY,SAAAC,KAAgC;AAC3E,EAAAC,EAAQ,gCAAgC;AACxC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gCAAgC,GACvD,EAAE,GAAGC,MAAYD,EAAe,QAAQ,GACxCE,IAAaC,EAAA,GACbC,IAAiBC,EAAmB,UAAU,GAE9CC,IAAUC,EAAqB,EAAE,YAAAX,GAAY,GAC7CY,IAAYF,EAAQ,WACpBG,IAAaH,EAAQ,YAAY,CAAA,IAAKA,EAAQ,KAAK,wBAEnDI,IAA6BD,EAAW,KAAK,CAAAE,OAAMA,EAAE,WAAW,UAAU,KAAK,CAAC,GAEhFC,IAAuB,CAC3BC,GACAC,MACG;AACH,QACED,EAAS,oBAAoB,SAAS,YACtCA,EAAS,oBAAoB,WAC7BA,EAAS,oBAAoB,QAAQ,SAAS,GAC9C;AACA,YAAME,IAASF,EAAS,oBAAoB,QAAQ,KAAK,CAAAG,MAAOA,EAAI,UAAUF,CAAM;AACpF,UAAIC,GAAQ;AACV,eAAOA,EAAO;AAAA,IAElB;AAEA,QAAI,OAAOD,KAAW;AACpB,aAAID,EAAS,oBAAoB,SAAS,aACjCT,EAAeU,CAAM,IAEvBA;AAGT,QAAI,OAAOA,KAAW,YAAY,CAAC,MAAM,WAAWA,CAAM,CAAC,GAAG;AAC5D,YAAMG,IAAW,WAAWH,CAAM;AAClC,aAAID,EAAS,oBAAoB,SAAS,aACjCT,EAAea,CAAQ,IAEzBH;AAAA,IACT;AAEA,WAAI,OAAOA,KAAW,YACJf,EAATe,IAAW,aAAgB,SAAN,IAGvBA;AAAA,EACT,GAEMI,IAAmB,gBAAAzB,EAAC,QAAA,EAAK,cAAYM,EAAE,2BAA2B,GAAG,UAAA,KAAC,GAEtEoB,IAAa,MAAM;AACvB,IAAAtB,EAAQuB,EAAgB,gDAAgD,EAAE,YAAAxB,EAAA,CAAY;AAAA,EACxF;AAEA,SACE,gBAAAH,EAAC4B,GAAA,EAAW,OAAOf,EAAQ,cAAc,QACvC,UAAA,gBAAAb;AAAA,IAACS,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAT;AAAA,QAACS,EAAW;AAAA,QAAX;AAAA,UACC,OAAOH,EAAE,YAAY;AAAA,UACrB,QACES,KAAaE,IACX,gBAAAjB,EAACS,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASiB,GAAY,YAAYX,GACrE,UAAAT,EAAE,cAAc,GACnB,IACE;AAAA,QAAA;AAAA,MAAA;AAAA,MAKV,UAAA,gBAAAN,EAAC6B,KAAK,eAAc,UAAS,KAAK,IAC/B,UAAAd,IACC,gBAAAf,EAAC8B,GAAA,CAAA,CAAQ,IACPd,EAAW,SAAS,IACtB,gBAAAhB,EAAC6B,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAAb,EAAW,IAAI,CAACe,GAAUC,MAAU;AACnC,cAAMC,IAAYF,EAAS,QACvBvB,EAAQ,cAAcuB,EAAS,KAAK,IAAIA,EAAS,KAAK,IACtD,IACEG,KAAgBH,EAAS,WAAW,UAAU,KAAK;AACzD,eACE,gBAAAI,EAACN,GAAA,EAAmC,eAAc,UAAS,KAAK,IAC7D,UAAA;AAAA,UAAAI,sBACExB,EAAW,SAAX,EAAmB,IAAG,MAAM,aAAU,IACrC;AAAA,UAEHyB,IACC,gBAAAlC;AAAA,YAACS,EAAW;AAAA,YAAX;AAAA,cACC,OAAOsB,EAAS,UAAW,IAAI,CAAAX,MAAY;AACzC,sBAAMC,IAASD,EAAS,QAAQ,CAAC,GAAG;AACpC,uBAAO;AAAA,kBACL,MAAMA,EAAS;AAAA,kBACf,aACEC,KAAW,OACPI,IACAN,EAAqBC,GAAUC,CAAM;AAAA,gBAAA;AAAA,cAE/C,CAAC;AAAA,YAAA;AAAA,UAAA,sBAGFZ,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAAH,EAAE,4BAA4B,EAAA,CACjC;AAAA,QAAA,KArBOyB,EAAS,SAASC,CAuB7B;AAAA,MAEJ,CAAC,EAAA,CACH,IAEA,gBAAAhC,EAACS,EAAW,MAAX,EAAiB,UAAAH,EAAE,mBAAmB,EAAA,CAAE,EAAA,CAE7C;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -5,12 +5,11 @@ import { useManagementStateTaxesViewDictionary as d } from "./useViewDictionary.
|
|
|
5
5
|
import { BaseBoundaries as x, BaseLayout as y } from "../../../Base/Base.js";
|
|
6
6
|
import "../../../Base/useBase.js";
|
|
7
7
|
import { ActionsLayout as f } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
8
|
-
import {
|
|
9
|
-
import "react";
|
|
10
|
-
import { useI18n as A, useComponentDictionary as M } from "../../../../i18n/I18n.js";
|
|
8
|
+
import { useI18n as g, useComponentDictionary as A } from "../../../../i18n/I18n.js";
|
|
11
9
|
import { componentEvents as m } from "../../../../shared/constants.js";
|
|
10
|
+
import { useComponentContext as M } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
11
|
import { useEmployeeStateTaxesForm as C } from "../shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js";
|
|
13
|
-
function
|
|
12
|
+
function G({ FallbackComponent: o, ...n }) {
|
|
14
13
|
return /* @__PURE__ */ t(
|
|
15
14
|
x,
|
|
16
15
|
{
|
|
@@ -26,11 +25,11 @@ function L({
|
|
|
26
25
|
dictionary: c,
|
|
27
26
|
onEvent: a
|
|
28
27
|
}) {
|
|
29
|
-
|
|
30
|
-
const { t: r } = l("Employee.Management.StateTaxes"), i =
|
|
28
|
+
g("Employee.Management.StateTaxes"), A("Employee.Management.StateTaxes", c);
|
|
29
|
+
const { t: r } = l("Employee.Management.StateTaxes"), i = M(), e = C({ employeeId: o }), E = d();
|
|
31
30
|
if (e.isLoading)
|
|
32
31
|
return /* @__PURE__ */ t(y, { isLoading: !0, error: e.errorHandling.errors });
|
|
33
|
-
const
|
|
32
|
+
const p = async () => {
|
|
34
33
|
const s = await e.actions.onSubmit();
|
|
35
34
|
s && a(m.EMPLOYEE_MANAGEMENT_STATE_TAXES_UPDATED, {
|
|
36
35
|
employeeStateTaxesList: s.data
|
|
@@ -42,17 +41,17 @@ function L({
|
|
|
42
41
|
S,
|
|
43
42
|
{
|
|
44
43
|
stateTaxes: e,
|
|
45
|
-
onSubmit:
|
|
44
|
+
onSubmit: p,
|
|
46
45
|
actions: /* @__PURE__ */ T(f, { children: [
|
|
47
46
|
/* @__PURE__ */ t(i.Button, { variant: "secondary", onClick: u, children: r("cancelCta") }),
|
|
48
47
|
/* @__PURE__ */ t(i.Button, { type: "submit", isLoading: e.status.isPending, children: r("saveCta") })
|
|
49
48
|
] }),
|
|
50
49
|
className: n,
|
|
51
|
-
dictionary:
|
|
50
|
+
dictionary: E
|
|
52
51
|
}
|
|
53
52
|
);
|
|
54
53
|
}
|
|
55
54
|
export {
|
|
56
|
-
|
|
55
|
+
G as StateTaxesEditForm
|
|
57
56
|
};
|
|
58
57
|
//# sourceMappingURL=StateTaxesEditForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateTaxesEditForm.js","sources":["../../../../../src/components/Employee/StateTaxes/management/StateTaxesEditForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { EmployeeStateTaxesView, useEmployeeStateTaxesForm } from '../shared'\nimport { useManagementStateTaxesViewDictionary } from './useViewDictionary'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link StateTaxesEditForm}.\n *\n * @public\n */\nexport interface StateTaxesEditFormProps extends BaseComponentInterface<'Employee.Management.StateTaxes'> {\n /** The associated employee identifier. */\n employeeId: string\n}\n\n/**\n * Standalone edit screen for the state-tax management flow. Renders the shared\n * state-tax form against the `Employee.Management.StateTaxes` namespace and\n * emits scoped management events on submit and cancel, so partner copy\n * overrides on the management namespace do not leak into the onboarding flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/stateTaxes/updated` | Form was submitted successfully | `{ employeeStateTaxesList: EmployeeStateTaxesList[] }` |\n * | `employee/management/stateTaxes/editCancelled` | Cancel button was clicked | — |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxesEditForm({ FallbackComponent, ...props }: StateTaxesEditFormProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.StateTaxes\"\n FallbackComponent={FallbackComponent}\n >\n <StateTaxesEditFormRoot {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesEditFormRoot({\n employeeId,\n className,\n dictionary,\n onEvent,\n}: StateTaxesEditFormProps) {\n useI18n('Employee.Management.StateTaxes')\n useComponentDictionary('Employee.Management.StateTaxes', dictionary)\n const { t } = useTranslation('Employee.Management.StateTaxes')\n const Components = useComponentContext()\n\n const stateTaxes = useEmployeeStateTaxesForm({ employeeId })\n const managementStateTaxesDictionary = useManagementStateTaxesViewDictionary()\n\n if (stateTaxes.isLoading) {\n return <BaseLayout isLoading error={stateTaxes.errorHandling.errors} />\n }\n\n const handleSubmit = async () => {\n const result = await stateTaxes.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_UPDATED, {\n employeeStateTaxesList: result.data,\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_EDIT_CANCELLED)\n }\n\n return (\n <EmployeeStateTaxesView\n stateTaxes={stateTaxes}\n onSubmit={handleSubmit}\n actions={\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={stateTaxes.status.isPending}>\n {t('saveCta')}\n </Components.Button>\n </ActionsLayout>\n }\n className={className}\n dictionary={managementStateTaxesDictionary}\n />\n )\n}\n"],"names":["StateTaxesEditForm","FallbackComponent","props","jsx","BaseBoundaries","StateTaxesEditFormRoot","employeeId","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","stateTaxes","useEmployeeStateTaxesForm","managementStateTaxesDictionary","useManagementStateTaxesViewDictionary","BaseLayout","handleSubmit","result","componentEvents","handleCancel","EmployeeStateTaxesView","ActionsLayout"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StateTaxesEditForm.js","sources":["../../../../../src/components/Employee/StateTaxes/management/StateTaxesEditForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { EmployeeStateTaxesView, useEmployeeStateTaxesForm } from '../shared'\nimport { useManagementStateTaxesViewDictionary } from './useViewDictionary'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link StateTaxesEditForm}.\n *\n * @public\n */\nexport interface StateTaxesEditFormProps extends BaseComponentInterface<'Employee.Management.StateTaxes'> {\n /** The associated employee identifier. */\n employeeId: string\n}\n\n/**\n * Standalone edit screen for the state-tax management flow. Renders the shared\n * state-tax form against the `Employee.Management.StateTaxes` namespace and\n * emits scoped management events on submit and cancel, so partner copy\n * overrides on the management namespace do not leak into the onboarding flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/management/stateTaxes/updated` | Form was submitted successfully | `{ employeeStateTaxesList: EmployeeStateTaxesList[] }` |\n * | `employee/management/stateTaxes/editCancelled` | Cancel button was clicked | — |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxesEditForm({ FallbackComponent, ...props }: StateTaxesEditFormProps) {\n return (\n <BaseBoundaries\n componentName=\"Employee.Management.StateTaxes\"\n FallbackComponent={FallbackComponent}\n >\n <StateTaxesEditFormRoot {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesEditFormRoot({\n employeeId,\n className,\n dictionary,\n onEvent,\n}: StateTaxesEditFormProps) {\n useI18n('Employee.Management.StateTaxes')\n useComponentDictionary('Employee.Management.StateTaxes', dictionary)\n const { t } = useTranslation('Employee.Management.StateTaxes')\n const Components = useComponentContext()\n\n const stateTaxes = useEmployeeStateTaxesForm({ employeeId })\n const managementStateTaxesDictionary = useManagementStateTaxesViewDictionary()\n\n if (stateTaxes.isLoading) {\n return <BaseLayout isLoading error={stateTaxes.errorHandling.errors} />\n }\n\n const handleSubmit = async () => {\n const result = await stateTaxes.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_UPDATED, {\n employeeStateTaxesList: result.data,\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_STATE_TAXES_EDIT_CANCELLED)\n }\n\n return (\n <EmployeeStateTaxesView\n stateTaxes={stateTaxes}\n onSubmit={handleSubmit}\n actions={\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel}>\n {t('cancelCta')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={stateTaxes.status.isPending}>\n {t('saveCta')}\n </Components.Button>\n </ActionsLayout>\n }\n className={className}\n dictionary={managementStateTaxesDictionary}\n />\n )\n}\n"],"names":["StateTaxesEditForm","FallbackComponent","props","jsx","BaseBoundaries","StateTaxesEditFormRoot","employeeId","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","stateTaxes","useEmployeeStateTaxesForm","managementStateTaxesDictionary","useManagementStateTaxesViewDictionary","BaseLayout","handleSubmit","result","componentEvents","handleCancel","EmployeeStateTaxesView","ActionsLayout"],"mappings":";;;;;;;;;;;AAkCO,SAASA,EAAmB,EAAE,mBAAAC,GAAmB,GAAGC,KAAkC;AAC3F,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,eAAc;AAAA,MACd,mBAAAH;AAAA,MAEA,UAAA,gBAAAE,EAACE,GAAA,EAAwB,GAAGH,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGzC;AAEA,SAASG,EAAuB;AAAA,EAC9B,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AACF,GAA4B;AAC1B,EAAAC,EAAQ,gCAAgC,GACxCC,EAAuB,kCAAkCH,CAAU;AACnE,QAAM,EAAE,GAAAI,EAAA,IAAMC,EAAe,gCAAgC,GACvDC,IAAaC,EAAA,GAEbC,IAAaC,EAA0B,EAAE,YAAAX,GAAY,GACrDY,IAAiCC,EAAA;AAEvC,MAAIH,EAAW;AACb,6BAAQI,GAAA,EAAW,WAAS,IAAC,OAAOJ,EAAW,cAAc,QAAQ;AAGvE,QAAMK,IAAe,YAAY;AAC/B,UAAMC,IAAS,MAAMN,EAAW,QAAQ,SAAA;AACxC,IAAKM,KAELb,EAAQc,EAAgB,yCAAyC;AAAA,MAC/D,wBAAwBD,EAAO;AAAA,IAAA,CAChC;AAAA,EACH,GAEME,IAAe,MAAM;AACzB,IAAAf,EAAQc,EAAgB,8CAA8C;AAAA,EACxE;AAEA,SACE,gBAAApB;AAAA,IAACsB;AAAA,IAAA;AAAA,MACC,YAAAT;AAAA,MACA,UAAUK;AAAA,MACV,2BACGK,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAvB,EAACW,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASU,GAC7C,UAAAZ,EAAE,WAAW,EAAA,CAChB;AAAA,QACA,gBAAAT,EAACW,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWE,EAAW,OAAO,WAC3D,UAAAJ,EAAE,SAAS,EAAA,CACd;AAAA,MAAA,GACF;AAAA,MAEF,WAAAL;AAAA,MACA,YAAYW;AAAA,IAAA;AAAA,EAAA;AAGlB;"}
|
|
@@ -5,12 +5,11 @@ import { useOnboardingStateTaxesViewDictionary as T } from "./useViewDictionary.
|
|
|
5
5
|
import { BaseBoundaries as S, BaseLayout as E } from "../../../Base/Base.js";
|
|
6
6
|
import "../../../Base/useBase.js";
|
|
7
7
|
import { ActionsLayout as d } from "../../../Common/ActionsLayout/ActionsLayout.js";
|
|
8
|
-
import {
|
|
9
|
-
import "react";
|
|
10
|
-
import { useI18n as l, useComponentDictionary as x } from "../../../../i18n/I18n.js";
|
|
8
|
+
import { useI18n as f, useComponentDictionary as l } from "../../../../i18n/I18n.js";
|
|
11
9
|
import { componentEvents as s } from "../../../../shared/constants.js";
|
|
10
|
+
import { useComponentContext as x } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
12
11
|
import { useEmployeeStateTaxesForm as y } from "../shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js";
|
|
13
|
-
function
|
|
12
|
+
function V({ FallbackComponent: e, ...o }) {
|
|
14
13
|
return /* @__PURE__ */ t(S, { componentName: "Employee.StateTaxes", FallbackComponent: e, children: /* @__PURE__ */ t(b, { ...o }) });
|
|
15
14
|
}
|
|
16
15
|
function b({
|
|
@@ -20,7 +19,7 @@ function b({
|
|
|
20
19
|
onEvent: r,
|
|
21
20
|
isAdmin: m = !1
|
|
22
21
|
}) {
|
|
23
|
-
|
|
22
|
+
f("Employee.StateTaxes"), l("Employee.StateTaxes", i);
|
|
24
23
|
const n = y({ employeeId: e, isAdmin: m }), u = T();
|
|
25
24
|
return n.isLoading ? /* @__PURE__ */ t(E, { isLoading: !0, error: n.errorHandling.errors }) : /* @__PURE__ */ t(
|
|
26
25
|
c,
|
|
@@ -39,10 +38,10 @@ function b({
|
|
|
39
38
|
);
|
|
40
39
|
}
|
|
41
40
|
function g({ isPending: e }) {
|
|
42
|
-
const { t: o } = p("Employee.StateTaxes"), i =
|
|
41
|
+
const { t: o } = p("Employee.StateTaxes"), i = x();
|
|
43
42
|
return /* @__PURE__ */ t(d, { children: /* @__PURE__ */ t(i.Button, { type: "submit", isLoading: e, children: o("submitCta") }) });
|
|
44
43
|
}
|
|
45
44
|
export {
|
|
46
|
-
|
|
45
|
+
V as StateTaxes
|
|
47
46
|
};
|
|
48
47
|
//# sourceMappingURL=StateTaxes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateTaxes.js","sources":["../../../../../src/components/Employee/StateTaxes/onboarding/StateTaxes.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { EmployeeStateTaxesView, useEmployeeStateTaxesForm } from '../shared'\nimport { useOnboardingStateTaxesViewDictionary } from './useViewDictionary'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link StateTaxes}.\n *\n * @public\n */\nexport interface StateTaxesProps extends BaseComponentInterface<'Employee.StateTaxes'> {\n /** The associated employee identifier. */\n employeeId: string\n /** Render admin-only questions and submit them. Defaults to `false`. */\n isAdmin?: boolean\n}\n\n/**\n * Onboarding step that collects an employee's per-state tax withholding\n * answers. The set of fields is driven by the API response for each state\n * on record.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/stateTaxes/updated` | Form was submitted successfully | `{ employeeStateTaxesList: EmployeeStateTaxesList[] }` |\n * | `employee/stateTaxes/done` | Onboarding step has finished — emitted immediately after `updated` | — |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxes({ FallbackComponent, ...props }: StateTaxesProps) {\n return (\n <BaseBoundaries componentName=\"Employee.StateTaxes\" FallbackComponent={FallbackComponent}>\n <StateTaxesRoot {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesRoot({\n employeeId,\n className,\n dictionary,\n onEvent,\n isAdmin = false,\n}: StateTaxesProps) {\n useI18n('Employee.StateTaxes')\n useComponentDictionary('Employee.StateTaxes', dictionary)\n\n const stateTaxes = useEmployeeStateTaxesForm({ employeeId, isAdmin })\n const onboardingStateTaxesDictionary = useOnboardingStateTaxesViewDictionary()\n\n if (stateTaxes.isLoading) {\n return <BaseLayout isLoading error={stateTaxes.errorHandling.errors} />\n }\n\n const handleSubmit = async () => {\n const result = await stateTaxes.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, {\n employeeStateTaxesList: result.data,\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_DONE)\n }\n\n return (\n <EmployeeStateTaxesView\n stateTaxes={stateTaxes}\n onSubmit={handleSubmit}\n actions={<ContinueAction isPending={stateTaxes.status.isPending} />}\n className={className}\n dictionary={onboardingStateTaxesDictionary}\n />\n )\n}\n\nfunction ContinueAction({ isPending }: { isPending: boolean }) {\n const { t } = useTranslation('Employee.StateTaxes')\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["StateTaxes","FallbackComponent","props","jsx","BaseBoundaries","StateTaxesRoot","employeeId","className","dictionary","onEvent","isAdmin","useI18n","useComponentDictionary","stateTaxes","useEmployeeStateTaxesForm","onboardingStateTaxesDictionary","useOnboardingStateTaxesViewDictionary","BaseLayout","EmployeeStateTaxesView","result","componentEvents","ContinueAction","isPending","t","useTranslation","Components","useComponentContext","ActionsLayout"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StateTaxes.js","sources":["../../../../../src/components/Employee/StateTaxes/onboarding/StateTaxes.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { EmployeeStateTaxesView, useEmployeeStateTaxesForm } from '../shared'\nimport { useOnboardingStateTaxesViewDictionary } from './useViewDictionary'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { ActionsLayout } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link StateTaxes}.\n *\n * @public\n */\nexport interface StateTaxesProps extends BaseComponentInterface<'Employee.StateTaxes'> {\n /** The associated employee identifier. */\n employeeId: string\n /** Render admin-only questions and submit them. Defaults to `false`. */\n isAdmin?: boolean\n}\n\n/**\n * Onboarding step that collects an employee's per-state tax withholding\n * answers. The set of fields is driven by the API response for each state\n * on record.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/stateTaxes/updated` | Form was submitted successfully | `{ employeeStateTaxesList: EmployeeStateTaxesList[] }` |\n * | `employee/stateTaxes/done` | Onboarding step has finished — emitted immediately after `updated` | — |\n *\n * @param props - The component props.\n * @public\n */\nexport function StateTaxes({ FallbackComponent, ...props }: StateTaxesProps) {\n return (\n <BaseBoundaries componentName=\"Employee.StateTaxes\" FallbackComponent={FallbackComponent}>\n <StateTaxesRoot {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction StateTaxesRoot({\n employeeId,\n className,\n dictionary,\n onEvent,\n isAdmin = false,\n}: StateTaxesProps) {\n useI18n('Employee.StateTaxes')\n useComponentDictionary('Employee.StateTaxes', dictionary)\n\n const stateTaxes = useEmployeeStateTaxesForm({ employeeId, isAdmin })\n const onboardingStateTaxesDictionary = useOnboardingStateTaxesViewDictionary()\n\n if (stateTaxes.isLoading) {\n return <BaseLayout isLoading error={stateTaxes.errorHandling.errors} />\n }\n\n const handleSubmit = async () => {\n const result = await stateTaxes.actions.onSubmit()\n if (!result) return\n\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, {\n employeeStateTaxesList: result.data,\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_DONE)\n }\n\n return (\n <EmployeeStateTaxesView\n stateTaxes={stateTaxes}\n onSubmit={handleSubmit}\n actions={<ContinueAction isPending={stateTaxes.status.isPending} />}\n className={className}\n dictionary={onboardingStateTaxesDictionary}\n />\n )\n}\n\nfunction ContinueAction({ isPending }: { isPending: boolean }) {\n const { t } = useTranslation('Employee.StateTaxes')\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["StateTaxes","FallbackComponent","props","jsx","BaseBoundaries","StateTaxesRoot","employeeId","className","dictionary","onEvent","isAdmin","useI18n","useComponentDictionary","stateTaxes","useEmployeeStateTaxesForm","onboardingStateTaxesDictionary","useOnboardingStateTaxesViewDictionary","BaseLayout","EmployeeStateTaxesView","result","componentEvents","ContinueAction","isPending","t","useTranslation","Components","useComponentContext","ActionsLayout"],"mappings":";;;;;;;;;;;AAmCO,SAASA,EAAW,EAAE,mBAAAC,GAAmB,GAAGC,KAA0B;AAC3E,SACE,gBAAAC,EAACC,KAAe,eAAc,uBAAsB,mBAAAH,GAClD,UAAA,gBAAAE,EAACE,GAAA,EAAgB,GAAGH,EAAA,CAAO,EAAA,CAC7B;AAEJ;AAEA,SAASG,EAAe;AAAA,EACtB,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC,IAAU;AACZ,GAAoB;AAClB,EAAAC,EAAQ,qBAAqB,GAC7BC,EAAuB,uBAAuBJ,CAAU;AAExD,QAAMK,IAAaC,EAA0B,EAAE,YAAAR,GAAY,SAAAI,GAAS,GAC9DK,IAAiCC,EAAA;AAEvC,SAAIH,EAAW,8BACLI,GAAA,EAAW,WAAS,IAAC,OAAOJ,EAAW,cAAc,QAAQ,IAcrE,gBAAAV;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,YAAAL;AAAA,MACA,UAbiB,YAAY;AAC/B,cAAMM,IAAS,MAAMN,EAAW,QAAQ,SAAA;AACxC,QAAKM,MAELV,EAAQW,EAAgB,8BAA8B;AAAA,UACpD,wBAAwBD,EAAO;AAAA,QAAA,CAChC,GACDV,EAAQW,EAAgB,yBAAyB;AAAA,MACnD;AAAA,MAMI,SAAS,gBAAAjB,EAACkB,GAAA,EAAe,WAAWR,EAAW,OAAO,WAAW;AAAA,MACjE,WAAAN;AAAA,MACA,YAAYQ;AAAA,IAAA;AAAA,EAAA;AAGlB;AAEA,SAASM,EAAe,EAAE,WAAAC,KAAqC;AAC7D,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5CC,IAAaC,EAAA;AAEnB,SACE,gBAAAvB,EAACwB,GAAA,EACC,UAAA,gBAAAxB,EAACsB,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWH,GACzC,UAAAC,EAAE,WAAW,GAChB,GACF;AAEJ;"}
|