@gusto/embedded-react-sdk 0.52.2 → 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 +36 -0
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
- package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.js +6 -6
- package/dist/components/Common/UI/Box/Box.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
- package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
- package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
- package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
- package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -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 +5 -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 +7 -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 +5 -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 +5 -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/shared/useSignCompanyForm/fields.js +4 -4
- package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +6 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +4 -4
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -6
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +8 -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 +5 -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 +5 -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 +5 -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/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -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 +5 -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 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +33 -11
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
- package/dist/components/Company/exports/companyOnboarding.js +12 -10
- package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +11 -12
- 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 +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js +8 -8
- 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/PaymentMethod/shared/useContractorBankAccountForm/fields.js +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/IndividualSelfOnboardingProfile.js +18 -19
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js +16 -16
- package/dist/components/Contractor/Submit/Submit.js +2 -3
- 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/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/Compensation/shared/useCompensationForm/fields.js +4 -4
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
- 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/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
- 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 +5 -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/Documents/shared/useSignEmployeeForm/fields.js +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/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
- 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/PaymentMethod/shared/useBankForm/fields.js +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
- 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/useEmployeeDetailsForm/fields.js +8 -8
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
- 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/fieldComponents.js +8 -8
- 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 +4 -3
- 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/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.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/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 +193 -11
- 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/docs/guides/endpoint-inventory.json +61 -0
- package/package.json +16 -14
- 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 -141
- package/dist/components/Contractor/ContractorList/index.js.map +0 -1
- package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
- package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
- package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
- /package/dist/components/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
|
@@ -4,6 +4,7 @@ type StateTaxesListContextType = {
|
|
|
4
4
|
stateTaxRequirements: TaxRequirementStatesList[];
|
|
5
5
|
handleContinue: () => void;
|
|
6
6
|
handleChange: (state: string) => void;
|
|
7
|
+
handleManageRates: (state: string) => void;
|
|
7
8
|
};
|
|
8
9
|
declare const useStateTaxesList: () => StateTaxesListContextType, StateTaxesListProvider: import('react').Provider<StateTaxesListContextType | null>;
|
|
9
10
|
export { useStateTaxesList, StateTaxesListProvider };
|
|
@@ -9,13 +9,14 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
|
|
|
9
9
|
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
10
10
|
import "@gusto/embedded-api/models/errors/unprocessableentityerror";
|
|
11
11
|
import "@gusto/embedded-api/models/errors/httpclienterrors";
|
|
12
|
+
import "dompurify";
|
|
13
|
+
import "../../../../contexts/LocaleProvider/useLocale.js";
|
|
12
14
|
import "../../../../shared/constants.js";
|
|
13
15
|
import "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
14
|
-
import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
15
16
|
import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
|
|
16
|
-
const [
|
|
17
|
+
const [u, f] = t("StateTaxesListContext");
|
|
17
18
|
export {
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
f as StateTaxesListProvider,
|
|
20
|
+
u as useStateTaxesList
|
|
20
21
|
};
|
|
21
22
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/StateTaxesList/context.ts"],"sourcesContent":["import type { TaxRequirementStatesList } from '@gusto/embedded-api/models/components/taxrequirementstateslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesListContextType = {\n isPending: boolean\n stateTaxRequirements: TaxRequirementStatesList[]\n handleContinue: () => void\n handleChange: (state: string) => void\n handleManageRates: (state: string) => void\n}\n\nconst [useStateTaxesList, StateTaxesListProvider] =\n createCompoundContext<StateTaxesListContextType>('StateTaxesListContext')\n\nexport { useStateTaxesList, StateTaxesListProvider }\n"],"names":["useStateTaxesList","StateTaxesListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AAWA,MAAM,CAACA,GAAmBC,CAAsB,IAC9CC,EAAiD,uBAAuB;"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TaxRateKeyGroup } from './context';
|
|
2
|
+
interface AddRateActionProps {
|
|
3
|
+
state: string;
|
|
4
|
+
group: TaxRateKeyGroup;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* "Add tax rate" button and its scheduling dialog for a single requirement-set key.
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
export declare function AddRateAction({ state, group }: AddRateActionProps): import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { jsxs as m, Fragment as d, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as l } from "react";
|
|
3
|
+
import { useTranslation as p } from "react-i18next";
|
|
4
|
+
import { AddTaxRateDialog as c } from "./AddTaxRateDialog.js";
|
|
5
|
+
import { useComponentContext as f } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
function A({ state: o, group: t }) {
|
|
7
|
+
const { t: a } = p("Company.StateTaxes", { keyPrefix: "manageRates" }), s = f(), [i, e] = l(!1), r = t.candidateSets.length > 0;
|
|
8
|
+
return /* @__PURE__ */ m(d, { children: [
|
|
9
|
+
/* @__PURE__ */ n(
|
|
10
|
+
s.Button,
|
|
11
|
+
{
|
|
12
|
+
variant: "primary",
|
|
13
|
+
isDisabled: !r,
|
|
14
|
+
onClick: () => {
|
|
15
|
+
e(!0);
|
|
16
|
+
},
|
|
17
|
+
children: a("addRateCta")
|
|
18
|
+
}
|
|
19
|
+
),
|
|
20
|
+
/* @__PURE__ */ n(
|
|
21
|
+
c,
|
|
22
|
+
{
|
|
23
|
+
isOpen: i,
|
|
24
|
+
state: o,
|
|
25
|
+
group: t,
|
|
26
|
+
onClose: () => {
|
|
27
|
+
e(!1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
] });
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
A as AddRateAction
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=AddRateAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddRateAction.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/AddRateAction.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { AddTaxRateDialog } from './AddTaxRateDialog'\nimport type { TaxRateKeyGroup } from './context'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface AddRateActionProps {\n state: string\n group: TaxRateKeyGroup\n}\n\n/**\n * \"Add tax rate\" button and its scheduling dialog for a single requirement-set key.\n *\n * @internal\n */\nexport function AddRateAction({ state, group }: AddRateActionProps) {\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const Components = useComponentContext()\n const [isDialogOpen, setIsDialogOpen] = useState(false)\n const canAddRate = group.candidateSets.length > 0\n\n return (\n <>\n <Components.Button\n variant=\"primary\"\n isDisabled={!canAddRate}\n onClick={() => {\n setIsDialogOpen(true)\n }}\n >\n {t('addRateCta')}\n </Components.Button>\n <AddTaxRateDialog\n isOpen={isDialogOpen}\n state={state}\n group={group}\n onClose={() => {\n setIsDialogOpen(false)\n }}\n />\n </>\n )\n}\n"],"names":["AddRateAction","state","group","t","useTranslation","Components","useComponentContext","isDialogOpen","setIsDialogOpen","useState","canAddRate","jsxs","Fragment","jsx","AddTaxRateDialog"],"mappings":";;;;;AAgBO,SAASA,EAAc,EAAE,OAAAC,GAAO,OAAAC,KAA6B;AAClE,QAAM,EAAE,GAAAC,MAAMC,EAAe,sBAAsB,EAAE,WAAW,eAAe,GACzEC,IAAaC,EAAA,GACb,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAChDC,IAAaR,EAAM,cAAc,SAAS;AAEhD,SACE,gBAAAS,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACR,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,YAAY,CAACK;AAAA,QACb,SAAS,MAAM;AACb,UAAAF,EAAgB,EAAI;AAAA,QACtB;AAAA,QAEC,YAAE,YAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjB,gBAAAK;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,QAAQP;AAAA,QACR,OAAAN;AAAA,QACA,OAAAC;AAAA,QACA,SAAS,MAAM;AACb,UAAAM,EAAgB,EAAK;AAAA,QACvB;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TaxRateKeyGroup } from './context';
|
|
2
|
+
interface AddTaxRateDialogProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
state: string;
|
|
5
|
+
group: TaxRateKeyGroup;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
}
|
|
8
|
+
/** @internal */
|
|
9
|
+
export declare function AddTaxRateDialog({ isOpen, state, group, onClose }: AddTaxRateDialogProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { jsx as s, jsxs as E } from "react/jsx-runtime";
|
|
2
|
+
import { useState as z, useMemo as n, useEffect as V } from "react";
|
|
3
|
+
import { useForm as H, FormProvider as I } from "react-hook-form";
|
|
4
|
+
import { zodResolver as K } from "@hookform/resolvers/zod";
|
|
5
|
+
import { z as h } from "zod";
|
|
6
|
+
import { useTranslation as b } from "react-i18next";
|
|
7
|
+
import { buildRequirementSchema as M } from "../shared/buildRequirementSchema.js";
|
|
8
|
+
import { RequirementFields as U } from "../shared/RequirementFields.js";
|
|
9
|
+
import { getUniqueRhfKey as w } from "../shared/rhfKey.js";
|
|
10
|
+
import { isRequirementApplicable as W } from "../shared/applicableIf.js";
|
|
11
|
+
import { stringifyRequirementValue as Y } from "../shared/requirementValue.js";
|
|
12
|
+
import { useTaxRateManagement as B } from "./context.js";
|
|
13
|
+
import { Flex as G } from "../../../Common/Flex/Flex.js";
|
|
14
|
+
import { useComponentContext as J } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
15
|
+
import { useDateFormatter as N } from "../../../../hooks/useDateFormatter.js";
|
|
16
|
+
import { SelectField as Q } from "../../../Common/Fields/SelectField/SelectField.js";
|
|
17
|
+
function X(r) {
|
|
18
|
+
if (r.length === 0) return null;
|
|
19
|
+
const m = [...r].sort(
|
|
20
|
+
(o, l) => (o.effectiveFrom ?? "").localeCompare(l.effectiveFrom ?? "")
|
|
21
|
+
);
|
|
22
|
+
return m[m.length - 1] ?? null;
|
|
23
|
+
}
|
|
24
|
+
function de({ isOpen: r, state: m, group: o, onClose: l }) {
|
|
25
|
+
const d = J(), R = N(), { t: i } = b("Company.StateTaxes", { keyPrefix: "manageRates" }), { t: y } = b("Company.StateTaxes", { keyPrefix: "form" }), { t: x } = b("common", { keyPrefix: "statesHash" }), { handleAddRate: q, isPendingUpdate: D } = B(), [k, F] = z(!1), t = n(() => X(o.candidateSets), [o.candidateSets]), c = n(
|
|
26
|
+
() => o.candidateSets.map((e) => e.effectiveFrom).filter((e) => typeof e == "string").sort(),
|
|
27
|
+
[o.candidateSets]
|
|
28
|
+
), { shape: v, defaults: g } = n(
|
|
29
|
+
() => M(t?.requirements, y),
|
|
30
|
+
[t, y]
|
|
31
|
+
), A = n(
|
|
32
|
+
() => h.object({
|
|
33
|
+
effectiveFrom: h.string().min(1),
|
|
34
|
+
fields: h.object(v)
|
|
35
|
+
}),
|
|
36
|
+
[v]
|
|
37
|
+
), u = n(
|
|
38
|
+
() => ({
|
|
39
|
+
effectiveFrom: t?.effectiveFrom ?? c[0] ?? "",
|
|
40
|
+
fields: g
|
|
41
|
+
}),
|
|
42
|
+
[t, c, g]
|
|
43
|
+
), p = H({ resolver: K(A), defaultValues: u });
|
|
44
|
+
V(() => {
|
|
45
|
+
r && p.reset(u);
|
|
46
|
+
}, [r, u]);
|
|
47
|
+
const C = p.handleSubmit(async (e) => {
|
|
48
|
+
if (!t?.key) return;
|
|
49
|
+
const T = { fields: e.fields }, S = t.requirements ?? [], L = S.map((a, f) => ({ req: a, index: f })).filter(({ req: a }) => a.editable !== !1).filter(({ req: a }) => W(a, "fields", T));
|
|
50
|
+
F(!0);
|
|
51
|
+
try {
|
|
52
|
+
await q(
|
|
53
|
+
t.key,
|
|
54
|
+
e.effectiveFrom,
|
|
55
|
+
L.map(({ req: f, index: j }) => ({
|
|
56
|
+
key: f.key,
|
|
57
|
+
value: Y(e.fields[w(f, j, S)])
|
|
58
|
+
}))
|
|
59
|
+
) && l();
|
|
60
|
+
} finally {
|
|
61
|
+
F(!1);
|
|
62
|
+
}
|
|
63
|
+
}), P = (t?.requirements ?? []).some(
|
|
64
|
+
(e) => e.editable !== !1
|
|
65
|
+
);
|
|
66
|
+
return /* @__PURE__ */ s(
|
|
67
|
+
d.Dialog,
|
|
68
|
+
{
|
|
69
|
+
isOpen: r,
|
|
70
|
+
onClose: l,
|
|
71
|
+
onPrimaryActionClick: () => {
|
|
72
|
+
C();
|
|
73
|
+
},
|
|
74
|
+
isPrimaryActionLoading: k || D,
|
|
75
|
+
primaryActionLabel: i("saveRateCta"),
|
|
76
|
+
closeActionLabel: i("cancelCta"),
|
|
77
|
+
title: i("addRateDialogTitle", {
|
|
78
|
+
state: x(m)
|
|
79
|
+
}),
|
|
80
|
+
children: /* @__PURE__ */ s(I, { ...p, children: /* @__PURE__ */ E(G, { flexDirection: "column", gap: 20, alignItems: "stretch", children: [
|
|
81
|
+
/* @__PURE__ */ s(d.Text, { size: "sm", children: i("addRateDialogDescription") }),
|
|
82
|
+
/* @__PURE__ */ s(
|
|
83
|
+
Q,
|
|
84
|
+
{
|
|
85
|
+
name: "effectiveFrom",
|
|
86
|
+
label: i("effectiveDateLabel"),
|
|
87
|
+
placeholder: i("effectiveDatePlaceholder"),
|
|
88
|
+
isRequired: !0,
|
|
89
|
+
isDisabled: c.length === 0,
|
|
90
|
+
options: c.map((e) => ({
|
|
91
|
+
value: e,
|
|
92
|
+
label: R.formatLongWithYear(e)
|
|
93
|
+
}))
|
|
94
|
+
}
|
|
95
|
+
),
|
|
96
|
+
P ? /* @__PURE__ */ s(
|
|
97
|
+
U,
|
|
98
|
+
{
|
|
99
|
+
requirements: t?.requirements,
|
|
100
|
+
requirementSetKey: "fields"
|
|
101
|
+
}
|
|
102
|
+
) : /* @__PURE__ */ s(d.Alert, { status: "info", label: i("noEditableFieldsTitle"), children: i("noEditableFieldsDescription") })
|
|
103
|
+
] }) })
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
export {
|
|
108
|
+
de as AddTaxRateDialog
|
|
109
|
+
};
|
|
110
|
+
//# sourceMappingURL=AddTaxRateDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddTaxRateDialog.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.tsx"],"sourcesContent":["import { useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useTranslation } from 'react-i18next'\nimport { buildRequirementSchema } from '../shared/buildRequirementSchema'\nimport { RequirementFields } from '../shared/RequirementFields'\nimport { getUniqueRhfKey } from '../shared/rhfKey'\nimport { isRequirementApplicable, type StateTaxesFormValues } from '../shared/applicableIf'\nimport { stringifyRequirementValue } from '../shared/requirementValue'\nimport { useTaxRateManagement, type TaxRateKeyGroup } from './context'\nimport { Flex, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { STATES_ABBR } from '@/shared/constants'\n\ninterface AddTaxRateDialogProps {\n isOpen: boolean\n state: string\n group: TaxRateKeyGroup\n onClose: () => void\n}\n\nfunction latestSet(sets: TaxRateKeyGroup['candidateSets']) {\n if (sets.length === 0) return null\n const sorted = [...sets].sort((a, b) =>\n (a.effectiveFrom ?? '').localeCompare(b.effectiveFrom ?? ''),\n )\n return sorted[sorted.length - 1] ?? null\n}\n\n/** @internal */\nexport function AddTaxRateDialog({ isOpen, state, group, onClose }: AddTaxRateDialogProps) {\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const { t: tForm } = useTranslation('Company.StateTaxes', { keyPrefix: 'form' })\n const { t: statesHash } = useTranslation('common', { keyPrefix: 'statesHash' })\n const { handleAddRate, isPendingUpdate } = useTaxRateManagement()\n const [isSubmitting, setIsSubmitting] = useState(false)\n\n const templateSet = useMemo(() => latestSet(group.candidateSets), [group.candidateSets])\n\n const availableDates = useMemo(\n () =>\n group.candidateSets\n .map(candidate => candidate.effectiveFrom)\n .filter((date): date is string => typeof date === 'string')\n .sort(),\n [group.candidateSets],\n )\n\n const { shape, defaults } = useMemo(\n () => buildRequirementSchema(templateSet?.requirements, tForm),\n [templateSet, tForm],\n )\n\n const dynamicSchema = useMemo(\n () =>\n z.object({\n effectiveFrom: z.string().min(1),\n fields: z.object(shape),\n }),\n [shape],\n )\n\n type FormShape = z.infer<typeof dynamicSchema>\n\n const defaultValues = useMemo<FormShape>(\n () => ({\n effectiveFrom: templateSet?.effectiveFrom ?? availableDates[0] ?? '',\n fields: defaults,\n }),\n [templateSet, availableDates, defaults],\n )\n\n const methods = useForm<FormShape>({ resolver: zodResolver(dynamicSchema), defaultValues })\n\n useEffect(() => {\n if (isOpen) methods.reset(defaultValues)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen, defaultValues])\n\n const handleSubmit = methods.handleSubmit(async data => {\n if (!templateSet?.key) return\n const formValues: StateTaxesFormValues = { fields: data.fields }\n const requirements = templateSet.requirements ?? []\n const applicableRequirements = requirements\n .map((req, index) => ({ req, index }))\n .filter(({ req }) => req.editable !== false)\n .filter(({ req }) => isRequirementApplicable(req, 'fields', formValues))\n\n setIsSubmitting(true)\n try {\n const success = await handleAddRate(\n templateSet.key,\n data.effectiveFrom,\n applicableRequirements.map(({ req, index }) => ({\n key: req.key as string,\n value: stringifyRequirementValue(data.fields[getUniqueRhfKey(req, index, requirements)]),\n })),\n )\n if (success) onClose()\n } finally {\n setIsSubmitting(false)\n }\n })\n\n const hasEditableFields = (templateSet?.requirements ?? []).some(\n requirement => requirement.editable !== false,\n )\n\n return (\n <Components.Dialog\n isOpen={isOpen}\n onClose={onClose}\n onPrimaryActionClick={() => {\n void handleSubmit()\n }}\n isPrimaryActionLoading={isSubmitting || isPendingUpdate}\n primaryActionLabel={t('saveRateCta')}\n closeActionLabel={t('cancelCta')}\n title={t('addRateDialogTitle', {\n state: statesHash(state as (typeof STATES_ABBR)[number]),\n })}\n >\n <FormProvider {...methods}>\n <Flex flexDirection=\"column\" gap={20} alignItems=\"stretch\">\n <Components.Text size=\"sm\">{t('addRateDialogDescription')}</Components.Text>\n <SelectField\n name=\"effectiveFrom\"\n label={t('effectiveDateLabel')}\n placeholder={t('effectiveDatePlaceholder')}\n isRequired\n isDisabled={availableDates.length === 0}\n options={availableDates.map(date => ({\n value: date,\n label: dateFormatter.formatLongWithYear(date),\n }))}\n />\n {hasEditableFields ? (\n <RequirementFields\n requirements={templateSet?.requirements}\n requirementSetKey=\"fields\"\n />\n ) : (\n <Components.Alert status=\"info\" label={t('noEditableFieldsTitle')}>\n {t('noEditableFieldsDescription')}\n </Components.Alert>\n )}\n </Flex>\n </FormProvider>\n </Components.Dialog>\n )\n}\n"],"names":["latestSet","sets","sorted","a","b","AddTaxRateDialog","isOpen","state","group","onClose","Components","useComponentContext","dateFormatter","useDateFormatter","t","useTranslation","tForm","statesHash","handleAddRate","isPendingUpdate","useTaxRateManagement","isSubmitting","setIsSubmitting","useState","templateSet","useMemo","availableDates","candidate","date","shape","defaults","buildRequirementSchema","dynamicSchema","z","defaultValues","methods","useForm","zodResolver","useEffect","handleSubmit","data","formValues","requirements","applicableRequirements","req","index","isRequirementApplicable","stringifyRequirementValue","getUniqueRhfKey","hasEditableFields","requirement","jsx","FormProvider","jsxs","Flex","SelectField","RequirementFields"],"mappings":";;;;;;;;;;;;;;;;AAuBA,SAASA,EAAUC,GAAwC;AACzD,MAAIA,EAAK,WAAW,EAAG,QAAO;AAC9B,QAAMC,IAAS,CAAC,GAAGD,CAAI,EAAE;AAAA,IAAK,CAACE,GAAGC,OAC/BD,EAAE,iBAAiB,IAAI,cAAcC,EAAE,iBAAiB,EAAE;AAAA,EAAA;AAE7D,SAAOF,EAAOA,EAAO,SAAS,CAAC,KAAK;AACtC;AAGO,SAASG,GAAiB,EAAE,QAAAC,GAAQ,OAAAC,GAAO,OAAAC,GAAO,SAAAC,KAAkC;AACzF,QAAMC,IAAaC,EAAA,GACbC,IAAgBC,EAAA,GAChB,EAAE,GAAAC,MAAMC,EAAe,sBAAsB,EAAE,WAAW,eAAe,GACzE,EAAE,GAAGC,MAAUD,EAAe,sBAAsB,EAAE,WAAW,QAAQ,GACzE,EAAE,GAAGE,MAAeF,EAAe,UAAU,EAAE,WAAW,cAAc,GACxE,EAAE,eAAAG,GAAe,iBAAAC,EAAA,IAAoBC,EAAA,GACrC,CAACC,GAAcC,CAAe,IAAIC,EAAS,EAAK,GAEhDC,IAAcC,EAAQ,MAAMzB,EAAUQ,EAAM,aAAa,GAAG,CAACA,EAAM,aAAa,CAAC,GAEjFkB,IAAiBD;AAAA,IACrB,MACEjB,EAAM,cACH,IAAI,OAAamB,EAAU,aAAa,EACxC,OAAO,CAACC,MAAyB,OAAOA,KAAS,QAAQ,EACzD,KAAA;AAAA,IACL,CAACpB,EAAM,aAAa;AAAA,EAAA,GAGhB,EAAE,OAAAqB,GAAO,UAAAC,EAAA,IAAaL;AAAA,IAC1B,MAAMM,EAAuBP,GAAa,cAAcR,CAAK;AAAA,IAC7D,CAACQ,GAAaR,CAAK;AAAA,EAAA,GAGfgB,IAAgBP;AAAA,IACpB,MACEQ,EAAE,OAAO;AAAA,MACP,eAAeA,EAAE,SAAS,IAAI,CAAC;AAAA,MAC/B,QAAQA,EAAE,OAAOJ,CAAK;AAAA,IAAA,CACvB;AAAA,IACH,CAACA,CAAK;AAAA,EAAA,GAKFK,IAAgBT;AAAA,IACpB,OAAO;AAAA,MACL,eAAeD,GAAa,iBAAiBE,EAAe,CAAC,KAAK;AAAA,MAClE,QAAQI;AAAA,IAAA;AAAA,IAEV,CAACN,GAAaE,GAAgBI,CAAQ;AAAA,EAAA,GAGlCK,IAAUC,EAAmB,EAAE,UAAUC,EAAYL,CAAa,GAAG,eAAAE,GAAe;AAE1F,EAAAI,EAAU,MAAM;AACd,IAAIhC,KAAQ6B,EAAQ,MAAMD,CAAa;AAAA,EAEzC,GAAG,CAAC5B,GAAQ4B,CAAa,CAAC;AAE1B,QAAMK,IAAeJ,EAAQ,aAAa,OAAMK,MAAQ;AACtD,QAAI,CAAChB,GAAa,IAAK;AACvB,UAAMiB,IAAmC,EAAE,QAAQD,EAAK,OAAA,GAClDE,IAAelB,EAAY,gBAAgB,CAAA,GAC3CmB,IAAyBD,EAC5B,IAAI,CAACE,GAAKC,OAAW,EAAE,KAAAD,GAAK,OAAAC,EAAA,EAAQ,EACpC,OAAO,CAAC,EAAE,KAAAD,EAAA,MAAUA,EAAI,aAAa,EAAK,EAC1C,OAAO,CAAC,EAAE,KAAAA,EAAA,MAAUE,EAAwBF,GAAK,UAAUH,CAAU,CAAC;AAEzE,IAAAnB,EAAgB,EAAI;AACpB,QAAI;AASF,MARgB,MAAMJ;AAAA,QACpBM,EAAY;AAAA,QACZgB,EAAK;AAAA,QACLG,EAAuB,IAAI,CAAC,EAAE,KAAAC,GAAK,OAAAC,SAAa;AAAA,UAC9C,KAAKD,EAAI;AAAA,UACT,OAAOG,EAA0BP,EAAK,OAAOQ,EAAgBJ,GAAKC,GAAOH,CAAY,CAAC,CAAC;AAAA,QAAA,EACvF;AAAA,MAAA,KAESjC,EAAA;AAAA,IACf,UAAA;AACE,MAAAa,EAAgB,EAAK;AAAA,IACvB;AAAA,EACF,CAAC,GAEK2B,KAAqBzB,GAAa,gBAAgB,CAAA,GAAI;AAAA,IAC1D,CAAA0B,MAAeA,EAAY,aAAa;AAAA,EAAA;AAG1C,SACE,gBAAAC;AAAA,IAACzC,EAAW;AAAA,IAAX;AAAA,MACC,QAAAJ;AAAA,MACA,SAAAG;AAAA,MACA,sBAAsB,MAAM;AAC1B,QAAK8B,EAAA;AAAA,MACP;AAAA,MACA,wBAAwBlB,KAAgBF;AAAA,MACxC,oBAAoBL,EAAE,aAAa;AAAA,MACnC,kBAAkBA,EAAE,WAAW;AAAA,MAC/B,OAAOA,EAAE,sBAAsB;AAAA,QAC7B,OAAOG,EAAWV,CAAqC;AAAA,MAAA,CACxD;AAAA,MAED,UAAA,gBAAA4C,EAACC,GAAA,EAAc,GAAGjB,GAChB,UAAA,gBAAAkB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC/C,UAAA;AAAA,QAAA,gBAAAH,EAACzC,EAAW,MAAX,EAAgB,MAAK,MAAM,UAAAI,EAAE,0BAA0B,GAAE;AAAA,QAC1D,gBAAAqC;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAOzC,EAAE,oBAAoB;AAAA,YAC7B,aAAaA,EAAE,0BAA0B;AAAA,YACzC,YAAU;AAAA,YACV,YAAYY,EAAe,WAAW;AAAA,YACtC,SAASA,EAAe,IAAI,CAAAE,OAAS;AAAA,cACnC,OAAOA;AAAA,cACP,OAAOhB,EAAc,mBAAmBgB,CAAI;AAAA,YAAA,EAC5C;AAAA,UAAA;AAAA,QAAA;AAAA,QAEHqB,IACC,gBAAAE;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,cAAchC,GAAa;AAAA,YAC3B,mBAAkB;AAAA,UAAA;AAAA,QAAA,IAGpB,gBAAA2B,EAACzC,EAAW,OAAX,EAAiB,QAAO,QAAO,OAAOI,EAAE,uBAAuB,GAC7D,UAAAA,EAAE,6BAA6B,EAAA,CAClC;AAAA,MAAA,EAAA,CAEJ,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TaxRateKeyGroup } from './context';
|
|
2
|
+
interface TaxRateHistorySectionProps {
|
|
3
|
+
group: TaxRateKeyGroup;
|
|
4
|
+
/**
|
|
5
|
+
* Whether to render this group's own heading + "Add tax rate" button.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Set to `false` when this is the only group for the state — the page-level header already
|
|
9
|
+
* carries the title and the single add-rate action, so a repeated per-group header would be
|
|
10
|
+
* redundant.
|
|
11
|
+
*
|
|
12
|
+
* @defaultValue `true`
|
|
13
|
+
*/
|
|
14
|
+
showHeader?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** @internal */
|
|
17
|
+
export declare function TaxRateHistorySection({ group, showHeader }: TaxRateHistorySectionProps): import("react").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as s, jsxs as i } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as n } from "react";
|
|
3
|
+
import { useTranslation as h } from "react-i18next";
|
|
4
|
+
import { useTaxRateManagement as x } from "./context.js";
|
|
5
|
+
import { toHistoryRows as b, extractRequirementColumns as g } from "./toHistoryRows.js";
|
|
6
|
+
import { AddRateAction as k } from "./AddRateAction.js";
|
|
7
|
+
import { Flex as m } from "../../../Common/Flex/Flex.js";
|
|
8
|
+
import { EmptyData as C } from "../../../Common/EmptyData/EmptyData.js";
|
|
9
|
+
import { useComponentContext as D } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
10
|
+
import { useDateFormatter as w } from "../../../../hooks/useDateFormatter.js";
|
|
11
|
+
import { useDataView as R } from "../../../Common/DataView/useDataView.js";
|
|
12
|
+
import { DataView as B } from "../../../Common/DataView/DataView.js";
|
|
13
|
+
const F = {
|
|
14
|
+
current: "success",
|
|
15
|
+
scheduled: "info",
|
|
16
|
+
historical: "warning"
|
|
17
|
+
}, H = {
|
|
18
|
+
current: "currentBadge",
|
|
19
|
+
scheduled: "scheduledBadge",
|
|
20
|
+
historical: "historicalBadge"
|
|
21
|
+
};
|
|
22
|
+
function K({ group: t, showHeader: c = !0 }) {
|
|
23
|
+
const { t: a } = h("Company.StateTaxes", { keyPrefix: "manageRates" }), o = D(), l = w(), { state: d } = x(), f = n(() => b(t.sets), [t.sets]), p = n(() => g(t.sets), [t.sets]), r = t.label ?? t.key, { ...u } = R({
|
|
24
|
+
data: f,
|
|
25
|
+
columns: [
|
|
26
|
+
{
|
|
27
|
+
key: "effectiveFrom",
|
|
28
|
+
title: a("effectiveDateColumnLabel"),
|
|
29
|
+
render: (e) => l.formatLongWithYear(e.effectiveFrom)
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
key: "status",
|
|
33
|
+
title: "",
|
|
34
|
+
render: (e) => /* @__PURE__ */ s(o.Badge, { status: F[e.status], children: a(H[e.status]) })
|
|
35
|
+
},
|
|
36
|
+
...p.map((e) => ({
|
|
37
|
+
key: e.key,
|
|
38
|
+
title: e.label ?? e.key,
|
|
39
|
+
render: (y) => y.values[e.key] ?? ""
|
|
40
|
+
}))
|
|
41
|
+
],
|
|
42
|
+
emptyState: () => /* @__PURE__ */ s(C, { title: a("emptyHistoryTitle"), description: a("emptyHistoryDescription") })
|
|
43
|
+
});
|
|
44
|
+
return /* @__PURE__ */ s("section", { "aria-label": r, children: /* @__PURE__ */ i(m, { flexDirection: "column", gap: 16, alignItems: "stretch", children: [
|
|
45
|
+
c && /* @__PURE__ */ i(m, { justifyContent: "space-between", alignItems: "center", gap: 16, children: [
|
|
46
|
+
/* @__PURE__ */ s(o.Heading, { as: "h3", children: r }),
|
|
47
|
+
/* @__PURE__ */ s(k, { state: d, group: t })
|
|
48
|
+
] }),
|
|
49
|
+
/* @__PURE__ */ s(B, { label: r, ...u })
|
|
50
|
+
] }) });
|
|
51
|
+
}
|
|
52
|
+
export {
|
|
53
|
+
K as TaxRateHistorySection
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=TaxRateHistorySection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaxRateHistorySection.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTaxRateManagement, type TaxRateKeyGroup } from './context'\nimport { extractRequirementColumns, toHistoryRows, type HistoryRow } from './toHistoryRows'\nimport { AddRateAction } from './AddRateAction'\nimport { DataView, EmptyData, Flex, useDataView } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\ninterface TaxRateHistorySectionProps {\n group: TaxRateKeyGroup\n /**\n * Whether to render this group's own heading + \"Add tax rate\" button.\n *\n * @remarks\n * Set to `false` when this is the only group for the state — the page-level header already\n * carries the title and the single add-rate action, so a repeated per-group header would be\n * redundant.\n *\n * @defaultValue `true`\n */\n showHeader?: boolean\n}\n\ntype BadgeStatus = 'success' | 'info' | 'warning'\n\nconst statusBadgeMap = {\n current: 'success',\n scheduled: 'info',\n historical: 'warning',\n} as const satisfies Record<HistoryRow['status'], BadgeStatus>\n\nconst statusLabelKeyMap = {\n current: 'currentBadge',\n scheduled: 'scheduledBadge',\n historical: 'historicalBadge',\n} as const satisfies Record<HistoryRow['status'], string>\n\n/** @internal */\nexport function TaxRateHistorySection({ group, showHeader = true }: TaxRateHistorySectionProps) {\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const { state } = useTaxRateManagement()\n\n const rows = useMemo(() => toHistoryRows(group.sets), [group.sets])\n const requirementColumns = useMemo(() => extractRequirementColumns(group.sets), [group.sets])\n\n const sectionLabel = group.label ?? group.key\n\n const { ...dataViewProps } = useDataView<HistoryRow>({\n data: rows,\n columns: [\n {\n key: 'effectiveFrom',\n title: t('effectiveDateColumnLabel'),\n render: row => dateFormatter.formatLongWithYear(row.effectiveFrom),\n },\n {\n key: 'status',\n title: '',\n render: row => (\n <Components.Badge status={statusBadgeMap[row.status]}>\n {t(statusLabelKeyMap[row.status])}\n </Components.Badge>\n ),\n },\n ...requirementColumns.map(column => ({\n key: column.key,\n title: column.label ?? column.key,\n render: (row: HistoryRow) => row.values[column.key] ?? '',\n })),\n ],\n emptyState: () => (\n <EmptyData title={t('emptyHistoryTitle')} description={t('emptyHistoryDescription')} />\n ),\n })\n\n return (\n <section aria-label={sectionLabel}>\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {showHeader && (\n <Flex justifyContent=\"space-between\" alignItems=\"center\" gap={16}>\n <Components.Heading as=\"h3\">{sectionLabel}</Components.Heading>\n <AddRateAction state={state} group={group} />\n </Flex>\n )}\n <DataView label={sectionLabel} {...dataViewProps} />\n </Flex>\n </section>\n )\n}\n"],"names":["statusBadgeMap","statusLabelKeyMap","TaxRateHistorySection","group","showHeader","t","useTranslation","Components","useComponentContext","dateFormatter","useDateFormatter","state","useTaxRateManagement","rows","useMemo","toHistoryRows","requirementColumns","extractRequirementColumns","sectionLabel","dataViewProps","useDataView","row","jsx","column","EmptyData","jsxs","Flex","AddRateAction","DataView"],"mappings":";;;;;;;;;;;;AA0BA,MAAMA,IAAiB;AAAA,EACrB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd,GAEMC,IAAoB;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AACd;AAGO,SAASC,EAAsB,EAAE,OAAAC,GAAO,YAAAC,IAAa,MAAoC;AAC9F,QAAM,EAAE,GAAAC,MAAMC,EAAe,sBAAsB,EAAE,WAAW,eAAe,GACzEC,IAAaC,EAAA,GACbC,IAAgBC,EAAA,GAChB,EAAE,OAAAC,EAAA,IAAUC,EAAA,GAEZC,IAAOC,EAAQ,MAAMC,EAAcZ,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAC5Da,IAAqBF,EAAQ,MAAMG,EAA0Bd,EAAM,IAAI,GAAG,CAACA,EAAM,IAAI,CAAC,GAEtFe,IAAef,EAAM,SAASA,EAAM,KAEpC,EAAE,GAAGgB,EAAA,IAAkBC,EAAwB;AAAA,IACnD,MAAMP;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,KAAK;AAAA,QACL,OAAOR,EAAE,0BAA0B;AAAA,QACnC,QAAQ,CAAAgB,MAAOZ,EAAc,mBAAmBY,EAAI,aAAa;AAAA,MAAA;AAAA,MAEnE;AAAA,QACE,KAAK;AAAA,QACL,OAAO;AAAA,QACP,QAAQ,CAAAA,MACN,gBAAAC,EAACf,EAAW,OAAX,EAAiB,QAAQP,EAAeqB,EAAI,MAAM,GAChD,UAAAhB,EAAEJ,EAAkBoB,EAAI,MAAM,CAAC,EAAA,CAClC;AAAA,MAAA;AAAA,MAGJ,GAAGL,EAAmB,IAAI,CAAAO,OAAW;AAAA,QACnC,KAAKA,EAAO;AAAA,QACZ,OAAOA,EAAO,SAASA,EAAO;AAAA,QAC9B,QAAQ,CAACF,MAAoBA,EAAI,OAAOE,EAAO,GAAG,KAAK;AAAA,MAAA,EACvD;AAAA,IAAA;AAAA,IAEJ,YAAY,MACV,gBAAAD,EAACE,GAAA,EAAU,OAAOnB,EAAE,mBAAmB,GAAG,aAAaA,EAAE,yBAAyB,EAAA,CAAG;AAAA,EAAA,CAExF;AAED,SACE,gBAAAiB,EAAC,WAAA,EAAQ,cAAYJ,GACnB,UAAA,gBAAAO,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAAI,YAAW,WAC9C,UAAA;AAAA,IAAAtB,uBACEsB,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAAS,KAAK,IAC5D,UAAA;AAAA,MAAA,gBAAAJ,EAACf,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAW,GAAa;AAAA,MAC1C,gBAAAI,EAACK,GAAA,EAAc,OAAAhB,GAAc,OAAAR,EAAA,CAAc;AAAA,IAAA,GAC7C;AAAA,IAEF,gBAAAmB,EAACM,GAAA,EAAS,OAAOV,GAAe,GAAGC,EAAA,CAAe;AAAA,EAAA,EAAA,CACpD,EAAA,CACF;AAEJ;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BaseComponentInterface } from '../../../Base/Base';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link TaxRateManagement}.
|
|
4
|
+
*
|
|
5
|
+
* @public
|
|
6
|
+
*/
|
|
7
|
+
export interface TaxRateManagementProps extends BaseComponentInterface<'Company.StateTaxes'> {
|
|
8
|
+
/** The associated company identifier. */
|
|
9
|
+
companyId: string;
|
|
10
|
+
/** Two-letter code of the state whose tax rate history is managed. */
|
|
11
|
+
state: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Standalone view of a company's effective-dated state tax rate history, with the ability to
|
|
15
|
+
* schedule a new future-dated rate.
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* Lower-level building block used by {@link StateTaxes} for its "manage tax rates" view. Only
|
|
19
|
+
* effective-dated requirement keys (e.g. tax rates, deposit schedules) are shown — non-dated
|
|
20
|
+
* sections like registration numbers have no history/scheduling story and are edited via
|
|
21
|
+
* {@link StateTaxesForm} instead.
|
|
22
|
+
*
|
|
23
|
+
* @events
|
|
24
|
+
* | Event | Description | Data |
|
|
25
|
+
* | ----- | ----------- | ---- |
|
|
26
|
+
* | `CANCEL` | The user navigated back to the state tax list | — |
|
|
27
|
+
*
|
|
28
|
+
* @param props - {@link TaxRateManagementProps}
|
|
29
|
+
* @returns The rendered tax rate history/scheduling view.
|
|
30
|
+
* @public
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* import { CompanyOnboarding } from '@gusto/embedded-react-sdk'
|
|
35
|
+
*
|
|
36
|
+
* function MyComponent() {
|
|
37
|
+
* return (
|
|
38
|
+
* <CompanyOnboarding.TaxRateManagement
|
|
39
|
+
* companyId="a007e1ab-3595-43c2-ab4b-af7a5af2e365"
|
|
40
|
+
* state="CA"
|
|
41
|
+
* onEvent={() => {}}
|
|
42
|
+
* />
|
|
43
|
+
* )
|
|
44
|
+
* }
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function TaxRateManagement(props: TaxRateManagementProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { jsx as n, jsxs as M } from "react/jsx-runtime";
|
|
2
|
+
import { useState as F, useMemo as w } from "react";
|
|
3
|
+
import { useTranslation as h } from "react-i18next";
|
|
4
|
+
import { useTaxRequirementsGetSuspense as y } from "@gusto/embedded-api/react-query/taxRequirementsGet";
|
|
5
|
+
import { useTaxRequirementsUpdateStateMutation as E } from "@gusto/embedded-api/react-query/taxRequirementsUpdateState";
|
|
6
|
+
import { TaxRateHistorySection as H } from "./TaxRateHistorySection.js";
|
|
7
|
+
import { AddRateAction as P } from "./AddRateAction.js";
|
|
8
|
+
import { TaxRateManagementProvider as U } from "./context.js";
|
|
9
|
+
import { BaseComponent as B } from "../../../Base/Base.js";
|
|
10
|
+
import { useI18n as L } from "../../../../i18n/I18n.js";
|
|
11
|
+
import { Flex as x } from "../../../Common/Flex/Flex.js";
|
|
12
|
+
import { componentEvents as j } from "../../../../shared/constants.js";
|
|
13
|
+
import { useBase as G } from "../../../Base/useBase.js";
|
|
14
|
+
import { useComponentContext as I } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
15
|
+
import { useDateFormatter as K } from "../../../../hooks/useDateFormatter.js";
|
|
16
|
+
import { DetailViewLayout as N } from "../../../Common/DetailViewLayout/DetailViewLayout.js";
|
|
17
|
+
function ae(r) {
|
|
18
|
+
return /* @__PURE__ */ n(B, { ...r, children: /* @__PURE__ */ n(V, { ...r, children: r.children }) });
|
|
19
|
+
}
|
|
20
|
+
function V({ companyId: r, state: o, className: S, children: k }) {
|
|
21
|
+
L("Company.StateTaxes");
|
|
22
|
+
const { t: i } = h("Company.StateTaxes", { keyPrefix: "manageRates" }), { t: b } = h("common", { keyPrefix: "statesHash" }), { onEvent: q, baseSubmitHandler: R } = G(), C = I(), v = K(), [l, c] = F(null), { data: d } = y({ companyUuid: r, state: o }), { data: f } = y({
|
|
23
|
+
companyUuid: r,
|
|
24
|
+
state: o,
|
|
25
|
+
scheduling: !0
|
|
26
|
+
}), { mutateAsync: T, isPending: A } = E(), a = w(() => {
|
|
27
|
+
const t = /* @__PURE__ */ new Map();
|
|
28
|
+
return d.taxRequirementsState?.requirementSets?.forEach((e) => {
|
|
29
|
+
if (!e.key || typeof e.effectiveFrom != "string") return;
|
|
30
|
+
const s = t.get(e.key) ?? {
|
|
31
|
+
key: e.key,
|
|
32
|
+
label: e.label,
|
|
33
|
+
sets: [],
|
|
34
|
+
candidateSets: []
|
|
35
|
+
};
|
|
36
|
+
s.sets.push(e), t.set(e.key, s);
|
|
37
|
+
}), f.taxRequirementsState?.requirementSets?.forEach((e) => {
|
|
38
|
+
if (!e.key || typeof e.effectiveFrom != "string") return;
|
|
39
|
+
const s = t.get(e.key);
|
|
40
|
+
s && s.candidateSets.push(e);
|
|
41
|
+
}), Array.from(t.values());
|
|
42
|
+
}, [d, f]), p = () => {
|
|
43
|
+
q(j.CANCEL);
|
|
44
|
+
}, D = async (t, e, s) => {
|
|
45
|
+
const m = { succeeded: !1 };
|
|
46
|
+
return c(null), await R({ key: t, effectiveFrom: e, requirements: s }, async (u) => {
|
|
47
|
+
await T({
|
|
48
|
+
request: {
|
|
49
|
+
companyUuid: r,
|
|
50
|
+
state: o,
|
|
51
|
+
requestBody: {
|
|
52
|
+
requirementSets: [
|
|
53
|
+
{
|
|
54
|
+
state: o,
|
|
55
|
+
key: u.key,
|
|
56
|
+
effectiveFrom: u.effectiveFrom,
|
|
57
|
+
requirements: u.requirements
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}), m.succeeded = !0;
|
|
63
|
+
}), m.succeeded && c(
|
|
64
|
+
i("rateScheduledSuccess", { date: v.formatLongWithYear(e) })
|
|
65
|
+
), m.succeeded;
|
|
66
|
+
}, g = a.length === 1 ? a[0] : void 0;
|
|
67
|
+
return /* @__PURE__ */ n(
|
|
68
|
+
U,
|
|
69
|
+
{
|
|
70
|
+
value: { state: o, groups: a, isPendingUpdate: A, handleCancel: p, handleAddRate: D },
|
|
71
|
+
children: /* @__PURE__ */ M(x, { flexDirection: "column", gap: 16, alignItems: "stretch", children: [
|
|
72
|
+
l && /* @__PURE__ */ n(
|
|
73
|
+
C.Alert,
|
|
74
|
+
{
|
|
75
|
+
status: "success",
|
|
76
|
+
label: l,
|
|
77
|
+
onDismiss: () => {
|
|
78
|
+
c(null);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
/* @__PURE__ */ n(
|
|
83
|
+
N,
|
|
84
|
+
{
|
|
85
|
+
className: S,
|
|
86
|
+
title: i("title", { state: b(o) }),
|
|
87
|
+
subtitle: i("subtitle"),
|
|
88
|
+
onBack: p,
|
|
89
|
+
backLabel: i("backCta"),
|
|
90
|
+
actions: g && /* @__PURE__ */ n(P, { state: o, group: g }),
|
|
91
|
+
children: /* @__PURE__ */ n(x, { flexDirection: "column", gap: 32, alignItems: "stretch", children: k ?? a.map((t) => /* @__PURE__ */ n(
|
|
92
|
+
H,
|
|
93
|
+
{
|
|
94
|
+
group: t,
|
|
95
|
+
showHeader: a.length > 1
|
|
96
|
+
},
|
|
97
|
+
t.key
|
|
98
|
+
)) })
|
|
99
|
+
}
|
|
100
|
+
)
|
|
101
|
+
] })
|
|
102
|
+
}
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
export {
|
|
106
|
+
ae as TaxRateManagement
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=TaxRateManagement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaxRateManagement.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useTaxRequirementsGetSuspense } from '@gusto/embedded-api/react-query/taxRequirementsGet'\nimport { useTaxRequirementsUpdateStateMutation } from '@gusto/embedded-api/react-query/taxRequirementsUpdateState'\nimport { TaxRateHistorySection } from './TaxRateHistorySection'\nimport { AddRateAction } from './AddRateAction'\nimport { TaxRateManagementProvider, type TaxRateKeyGroup } from './context'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useI18n } from '@/i18n/I18n'\nimport { DetailViewLayout, Flex } from '@/components/Common'\nimport { componentEvents, type STATES_ABBR } from '@/shared/constants'\nimport { useBase } from '@/components/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/**\n * Props for {@link TaxRateManagement}.\n *\n * @public\n */\nexport interface TaxRateManagementProps extends BaseComponentInterface<'Company.StateTaxes'> {\n /** The associated company identifier. */\n companyId: string\n /** Two-letter code of the state whose tax rate history is managed. */\n state: string\n}\n\n/**\n * Standalone view of a company's effective-dated state tax rate history, with the ability to\n * schedule a new future-dated rate.\n *\n * @remarks\n * Lower-level building block used by {@link StateTaxes} for its \"manage tax rates\" view. Only\n * effective-dated requirement keys (e.g. tax rates, deposit schedules) are shown — non-dated\n * sections like registration numbers have no history/scheduling story and are edited via\n * {@link StateTaxesForm} instead.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `CANCEL` | The user navigated back to the state tax list | — |\n *\n * @param props - {@link TaxRateManagementProps}\n * @returns The rendered tax rate history/scheduling view.\n * @public\n *\n * @example\n * ```tsx\n * import { CompanyOnboarding } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <CompanyOnboarding.TaxRateManagement\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * state=\"CA\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TaxRateManagement(props: TaxRateManagementProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, state, className, children }: TaxRateManagementProps) {\n useI18n('Company.StateTaxes')\n const { t } = useTranslation('Company.StateTaxes', { keyPrefix: 'manageRates' })\n const { t: statesHash } = useTranslation('common', { keyPrefix: 'statesHash' })\n const { onEvent, baseSubmitHandler } = useBase()\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const [successMessage, setSuccessMessage] = useState<string | null>(null)\n\n const { data: currentData } = useTaxRequirementsGetSuspense({ companyUuid: companyId, state })\n const { data: schedulingData } = useTaxRequirementsGetSuspense({\n companyUuid: companyId,\n state,\n scheduling: true,\n })\n\n const { mutateAsync: updateStateTax, isPending: isPendingUpdate } =\n useTaxRequirementsUpdateStateMutation()\n\n const groups = useMemo<TaxRateKeyGroup[]>(() => {\n const byKey = new Map<string, TaxRateKeyGroup>()\n\n currentData.taxRequirementsState?.requirementSets?.forEach(set => {\n if (!set.key || typeof set.effectiveFrom !== 'string') return\n const group = byKey.get(set.key) ?? {\n key: set.key,\n label: set.label,\n sets: [],\n candidateSets: [],\n }\n group.sets.push(set)\n byKey.set(set.key, group)\n })\n\n schedulingData.taxRequirementsState?.requirementSets?.forEach(set => {\n if (!set.key || typeof set.effectiveFrom !== 'string') return\n const group = byKey.get(set.key)\n if (!group) return\n group.candidateSets.push(set)\n })\n\n return Array.from(byKey.values())\n }, [currentData, schedulingData])\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const handleAddRate = async (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ): Promise<boolean> => {\n const result = { succeeded: false }\n setSuccessMessage(null)\n await baseSubmitHandler({ key, effectiveFrom, requirements }, async payload => {\n await updateStateTax({\n request: {\n companyUuid: companyId,\n state,\n requestBody: {\n requirementSets: [\n {\n state,\n key: payload.key,\n effectiveFrom: payload.effectiveFrom,\n requirements: payload.requirements,\n },\n ],\n },\n },\n })\n result.succeeded = true\n })\n if (result.succeeded) {\n setSuccessMessage(\n t('rateScheduledSuccess', { date: dateFormatter.formatLongWithYear(effectiveFrom) }),\n )\n }\n return result.succeeded\n }\n\n const singleGroup = groups.length === 1 ? groups[0] : undefined\n\n return (\n <TaxRateManagementProvider\n value={{ state, groups, isPendingUpdate, handleCancel, handleAddRate }}\n >\n <Flex flexDirection=\"column\" gap={16} alignItems=\"stretch\">\n {successMessage && (\n <Components.Alert\n status=\"success\"\n label={successMessage}\n onDismiss={() => {\n setSuccessMessage(null)\n }}\n />\n )}\n <DetailViewLayout\n className={className}\n title={t('title', { state: statesHash(state as (typeof STATES_ABBR)[number]) })}\n subtitle={t('subtitle')}\n onBack={handleCancel}\n backLabel={t('backCta')}\n actions={singleGroup && <AddRateAction state={state} group={singleGroup} />}\n >\n <Flex flexDirection=\"column\" gap={32} alignItems=\"stretch\">\n {children ??\n groups.map(group => (\n <TaxRateHistorySection\n key={group.key}\n group={group}\n showHeader={groups.length > 1}\n />\n ))}\n </Flex>\n </DetailViewLayout>\n </Flex>\n </TaxRateManagementProvider>\n )\n}\n"],"names":["TaxRateManagement","props","jsx","BaseComponent","Root","companyId","state","className","children","useI18n","t","useTranslation","statesHash","onEvent","baseSubmitHandler","useBase","Components","useComponentContext","dateFormatter","useDateFormatter","successMessage","setSuccessMessage","useState","currentData","useTaxRequirementsGetSuspense","schedulingData","updateStateTax","isPendingUpdate","useTaxRequirementsUpdateStateMutation","groups","useMemo","byKey","set","group","handleCancel","componentEvents","handleAddRate","key","effectiveFrom","requirements","result","payload","singleGroup","TaxRateManagementProvider","Flex","DetailViewLayout","AddRateAction","TaxRateHistorySection"],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset';
|
|
2
|
+
/**
|
|
3
|
+
* A state's effective-dated requirement sets for a single key, grouped for history display,
|
|
4
|
+
* plus any future-dated candidate sets available to schedule against.
|
|
5
|
+
*
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export interface TaxRateKeyGroup {
|
|
9
|
+
key: string;
|
|
10
|
+
label?: string;
|
|
11
|
+
sets: TaxRequirementSet[];
|
|
12
|
+
candidateSets: TaxRequirementSet[];
|
|
13
|
+
}
|
|
14
|
+
interface TaxRateManagementContextType {
|
|
15
|
+
state: string;
|
|
16
|
+
groups: TaxRateKeyGroup[];
|
|
17
|
+
isPendingUpdate: boolean;
|
|
18
|
+
handleCancel: () => void;
|
|
19
|
+
handleAddRate: (key: string, effectiveFrom: string, requirements: {
|
|
20
|
+
key: string;
|
|
21
|
+
value: string;
|
|
22
|
+
}[]) => Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
declare const useTaxRateManagement: () => TaxRateManagementContextType, TaxRateManagementProvider: import('react').Provider<TaxRateManagementContextType | null>;
|
|
25
|
+
export { useTaxRateManagement, TaxRateManagementProvider };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import "react/jsx-runtime";
|
|
2
|
+
import "react";
|
|
3
|
+
import "react-error-boundary";
|
|
4
|
+
import "react-i18next";
|
|
5
|
+
import "@tanstack/react-query";
|
|
6
|
+
import "../../../Base/useBase.js";
|
|
7
|
+
import "@gusto/embedded-api/models/errors/apierror";
|
|
8
|
+
import "@gusto/embedded-api/models/errors/gustoembeddederror";
|
|
9
|
+
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
10
|
+
import "@gusto/embedded-api/models/errors/unprocessableentityerror";
|
|
11
|
+
import "@gusto/embedded-api/models/errors/httpclienterrors";
|
|
12
|
+
import "dompurify";
|
|
13
|
+
import "../../../../contexts/LocaleProvider/useLocale.js";
|
|
14
|
+
import "../../../../shared/constants.js";
|
|
15
|
+
import "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
16
|
+
import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
|
|
17
|
+
const [s, u] = t("TaxRateManagementContext");
|
|
18
|
+
export {
|
|
19
|
+
u as TaxRateManagementProvider,
|
|
20
|
+
s as useTaxRateManagement
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sources":["../../../../../src/components/Company/StateTaxes/TaxRateManagement/context.ts"],"sourcesContent":["import type { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset'\nimport { createCompoundContext } from '@/components/Base'\n\n/**\n * A state's effective-dated requirement sets for a single key, grouped for history display,\n * plus any future-dated candidate sets available to schedule against.\n *\n * @internal\n */\nexport interface TaxRateKeyGroup {\n key: string\n label?: string\n sets: TaxRequirementSet[]\n candidateSets: TaxRequirementSet[]\n}\n\ninterface TaxRateManagementContextType {\n state: string\n groups: TaxRateKeyGroup[]\n isPendingUpdate: boolean\n handleCancel: () => void\n handleAddRate: (\n key: string,\n effectiveFrom: string,\n requirements: { key: string; value: string }[],\n ) => Promise<boolean>\n}\n\nconst [useTaxRateManagement, TaxRateManagementProvider] =\n createCompoundContext<TaxRateManagementContextType>('TaxRateManagementContext')\n\nexport { useTaxRateManagement, TaxRateManagementProvider }\n"],"names":["useTaxRateManagement","TaxRateManagementProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,GAAsBC,CAAyB,IACpDC,EAAoD,0BAA0B;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { TaxRateManagement, type TaxRateManagementProps } from './TaxRateManagement';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TaxRequirementSet } from '@gusto/embedded-api/models/components/taxrequirementset';
|
|
2
|
+
/** @internal */
|
|
3
|
+
export type HistoryRowStatus = 'current' | 'scheduled' | 'historical';
|
|
4
|
+
/** @internal */
|
|
5
|
+
export interface HistoryRow {
|
|
6
|
+
id: string;
|
|
7
|
+
effectiveFrom: string;
|
|
8
|
+
status: HistoryRowStatus;
|
|
9
|
+
values: Record<string, string>;
|
|
10
|
+
}
|
|
11
|
+
/** @internal */
|
|
12
|
+
export interface RequirementColumn {
|
|
13
|
+
key: string;
|
|
14
|
+
label?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Tags each effective-dated requirement set for a key as current, scheduled (future), or
|
|
18
|
+
* historical (past), relative to today.
|
|
19
|
+
*
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export declare function toHistoryRows(sets: TaxRequirementSet[]): HistoryRow[];
|
|
23
|
+
/**
|
|
24
|
+
* Builds the union of editable requirement keys/labels across a set of requirement sets,
|
|
25
|
+
* in first-seen order, for use as dynamic table columns.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractRequirementColumns(sets: TaxRequirementSet[]): RequirementColumn[];
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { formatDateToStringDate as a } from "../../../../helpers/dateFormatting.js";
|
|
2
|
+
function u(o) {
|
|
3
|
+
return typeof o.effectiveFrom == "string" && o.effectiveFrom.length > 0;
|
|
4
|
+
}
|
|
5
|
+
function m(o) {
|
|
6
|
+
const f = a(/* @__PURE__ */ new Date()) ?? "", i = o.filter(u).sort((t, r) => t.effectiveFrom.localeCompare(r.effectiveFrom)), e = i.reduce(
|
|
7
|
+
(t, r, c) => r.effectiveFrom <= f ? c : t,
|
|
8
|
+
-1
|
|
9
|
+
);
|
|
10
|
+
return i.map((t, r) => {
|
|
11
|
+
const c = {};
|
|
12
|
+
for (const n of t.requirements ?? [])
|
|
13
|
+
!n.key || n.editable === !1 || (c[n.key] = n.value === null || n.value === void 0 ? "" : String(n.value));
|
|
14
|
+
const s = r === e ? "current" : r > e ? "scheduled" : "historical";
|
|
15
|
+
return {
|
|
16
|
+
id: `${t.key ?? "set"}-${t.effectiveFrom}-${r}`,
|
|
17
|
+
effectiveFrom: t.effectiveFrom,
|
|
18
|
+
status: s,
|
|
19
|
+
values: c
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function v(o) {
|
|
24
|
+
const f = /* @__PURE__ */ new Map();
|
|
25
|
+
for (const i of o)
|
|
26
|
+
for (const e of i.requirements ?? [])
|
|
27
|
+
e.key && e.editable !== !1 && !f.has(e.key) && f.set(e.key, { key: e.key, label: e.label });
|
|
28
|
+
return Array.from(f.values());
|
|
29
|
+
}
|
|
30
|
+
export {
|
|
31
|
+
v as extractRequirementColumns,
|
|
32
|
+
m as toHistoryRows
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=toHistoryRows.js.map
|