@gusto/embedded-react-sdk 0.57.3 → 0.58.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 +88 -0
- package/dist/components/Common/DataView/DataCards/DataCards.js +98 -66
- package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +11 -9
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
- package/dist/components/Common/DataView/DataTable/DataTable.js +86 -75
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/DataView/DataView.js.map +1 -1
- package/dist/components/Common/DataView/getSortControls.js +22 -0
- package/dist/components/Common/DataView/getSortControls.js.map +1 -0
- package/dist/components/Common/DataView/useDataView.js +30 -24
- package/dist/components/Common/DataView/useDataView.js.map +1 -1
- package/dist/components/Common/UI/Table/Table.js +65 -25
- package/dist/components/Common/UI/Table/Table.js.map +1 -1
- package/dist/components/Common/UI/Table/Table.module.scss.js +8 -4
- package/dist/components/Common/UI/Table/Table.module.scss.js.map +1 -1
- package/dist/components/Common/UI/Table/TableTypes.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/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.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/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.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/FederalTaxes/useFederalTaxes.js +5 -6
- package/dist/components/Company/FederalTaxes/useFederalTaxes.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/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.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/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +30 -45
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleComponents.js +11 -12
- package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +78 -83
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.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/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -4
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +45 -54
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +17 -22
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +122 -113
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +63 -54
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js +39 -48
- package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js +76 -69
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +27 -29
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +14 -12
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
- package/dist/components/Contractor/shared/hourlyRate.js +14 -0
- package/dist/components/Contractor/shared/hourlyRate.js.map +1 -0
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +63 -63
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- 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/PaymentMethod/onboarding/ListView.js +65 -74
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +16 -16
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +84 -82
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js +8 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js.map +1 -0
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +91 -88
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +16 -16
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +146 -134
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js +14 -12
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +34 -33
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +49 -48
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +0 -4
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +51 -38
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +121 -102
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +79 -74
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +92 -83
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +23 -27
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +82 -75
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js +416 -0
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js.map +1 -0
- package/dist/components/Payroll/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js → RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js} +1 -1
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js +97 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js +106 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js.map +1 -0
- package/dist/components/Payroll/{TransitionCreation/TransitionCreationPresentation.module.scss.js → TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js} +1 -1
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js +10 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js.map +1 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +86 -64
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js +126 -77
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js +8 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js.map +1 -0
- package/dist/components/Payroll/index.js +16 -20
- package/dist/components/Payroll/index.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +11 -14
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +18 -17
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js +31 -0
- package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js.map +1 -0
- package/dist/contexts/FeaturesProvider/FeaturesProvider.js +14 -0
- package/dist/contexts/FeaturesProvider/FeaturesProvider.js.map +1 -0
- package/dist/contexts/FeaturesProvider/useFeature.js +7 -0
- package/dist/contexts/FeaturesProvider/useFeature.js.map +1 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +32 -30
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
- package/dist/i18n/I18n.js +2 -3
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Contractor.Profile.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +29 -23
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollLanding.json.js +1 -1
- package/dist/i18n/en/{Payroll.UNSTABLE_PayrollEditEmployee.json.js → Payroll.RropPayrollEditEmployee.json.js} +42 -38
- package/dist/i18n/en/Payroll.RropPayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/en/Payroll.TransitionConfiguration.json.js +28 -0
- package/dist/i18n/en/Payroll.TransitionConfiguration.json.js.map +1 -0
- package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js +16 -12
- package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js.map +1 -1
- package/dist/i18n/en/common.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/composeSubmitHandler.js +55 -48
- package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +31 -29
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/shared/constants.js +2 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Common/DataView/DataCards/DataCards.d.ts +3 -1
- package/dist/src/components/Common/DataView/DataTable/DataTable.d.ts +3 -1
- package/dist/src/components/Common/DataView/DataView.d.ts +2 -0
- package/dist/src/components/Common/DataView/getSortControls.d.ts +24 -0
- package/dist/src/components/Common/DataView/useDataView.d.ts +22 -1
- package/dist/src/components/Common/UI/Table/TableTypes.d.ts +71 -2
- package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +1 -9
- package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +0 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +3 -14
- package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +2 -2
- package/dist/src/components/Contractor/ContractorList/shared/index.d.ts +1 -1
- package/dist/src/components/Contractor/ContractorList/shared/useContractorList.d.ts +38 -0
- package/dist/src/components/Contractor/shared/hourlyRate.d.ts +23 -0
- package/dist/src/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.d.ts +9 -0
- package/dist/src/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +3 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +2 -0
- package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +8 -6
- package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +0 -8
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +5 -3
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +2 -3
- package/dist/src/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +18 -5
- package/dist/src/components/Payroll/PayrollList/PayrollList.d.ts +11 -5
- package/dist/src/components/Payroll/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts → RropPayrollEditEmployee/RropPayrollEditEmployee.d.ts} +9 -5
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfiguration.d.ts +55 -0
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.d.ts +9 -0
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.d.ts +52 -0
- package/dist/src/components/Payroll/TransitionConfiguration/index.d.ts +2 -0
- package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -2
- package/dist/src/components/Payroll/index.d.ts +2 -6
- package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.d.ts +14 -0
- package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.test.d.ts +1 -0
- package/dist/src/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -1
- package/dist/src/contexts/FeaturesProvider/FeaturesProvider.d.ts +21 -0
- package/dist/src/contexts/FeaturesProvider/useFeature.d.ts +53 -0
- package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +3 -0
- package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +38 -10
- package/dist/src/contexts/index.d.ts +1 -0
- package/dist/src/i18n/en/common.json.d.ts +5 -1
- package/dist/src/i18n/types.d.ts +113 -66
- package/dist/src/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +9 -7
- package/dist/src/shared/constants.d.ts +4 -2
- package/dist/src/test-utils/renderWithProviders.d.ts +2 -0
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +24 -27
- package/package.json +15 -14
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +0 -29
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +0 -1
- package/dist/components/Payroll/Transition/TransitionFlow.js +0 -60
- package/dist/components/Payroll/Transition/TransitionFlow.js.map +0 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js +0 -31
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +0 -1
- package/dist/components/Payroll/Transition/transitionStateMachine.js +0 -49
- package/dist/components/Payroll/Transition/transitionStateMachine.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +0 -100
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +0 -110
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.module.scss.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js +0 -21
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +0 -48
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +0 -35
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +0 -23
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +0 -29
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +0 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +0 -411
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +0 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +0 -1
- package/dist/i18n/en/Payroll.Transition.json.js +0 -8
- package/dist/i18n/en/Payroll.Transition.json.js.map +0 -1
- package/dist/i18n/en/Payroll.TransitionCreation.json.js +0 -26
- package/dist/i18n/en/Payroll.TransitionCreation.json.js.map +0 -1
- package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +0 -1
- package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +0 -7
- package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +0 -55
- package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +0 -52
- package/dist/src/components/Payroll/Transition/index.d.ts +0 -2
- package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +0 -29
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreation.d.ts +0 -22
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +0 -9
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +0 -57
- package/dist/src/components/Payroll/TransitionCreation/index.d.ts +0 -2
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +0 -55
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +0 -24
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +0 -23
- package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +0 -2
- package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +0 -15
- package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +0 -28
- /package/dist/src/components/{Payroll/Transition/transitionStateMachine.test.d.ts → Common/DataView/getSortControls.test.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionConfiguration.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfiguration.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport { getDefaultWithholdingPayPeriod } from '../OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport { PREPARE_QUERY_KEY } from '../PayrollConfiguration/usePayrollConfigurationData'\nimport type {\n TransitionConfigurationFormData,\n TransitionConfigurationProps,\n} from './TransitionConfigurationTypes'\nimport { createTransitionConfigurationSchema } from './TransitionConfigurationTypes'\nimport { TransitionConfigurationPresentation } from './TransitionConfigurationPresentation'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst transitionConfigurationSchema = createTransitionConfigurationSchema()\n\ntype VersionedEmployeeCompensation = PayrollEmployeeCompensationsType & {\n employeeUuid: string\n version: string\n}\n\nfunction isVersionedEmployeeCompensation(\n compensation: PayrollEmployeeCompensationsType,\n): compensation is VersionedEmployeeCompensation {\n return typeof compensation.employeeUuid === 'string' && typeof compensation.version === 'string'\n}\n\n/**\n * Lets the user change the settings of a transition payroll before running it.\n *\n * @remarks\n * The API creates a transition payroll when a company changes pay schedules. This component\n * updates that payroll. It never creates one.\n *\n * - The pay period, pay schedule, and payment date are shown but can't be changed.\n * - The user can choose to take or skip regular deductions, and how to withhold taxes.\n *\n * If a setting is empty, deductions are taken, the regular tax rate is used, and the pay frequency\n * matches the pay schedule. The payment date is read only for now. Saving can still move it, and\n * the form shows the new date.\n *\n * `PayrollFlow` renders this component for you. To build the screens yourself:\n *\n * 1. Get the transition payroll ID. {@link PayrollLanding} sends it as `payrollUuid` with\n * `transition/runPayroll`, and {@link PayrollList} sends it with `transition/payrollSelected`.\n * To look it up without those components, call\n * `GET /v1/companies/{company_id}/pay_periods?payroll_types=transition` and read\n * `payroll.payroll_uuid` from the pay period.\n * 2. Render this component with that ID as `payrollId`.\n * 3. On `transition/configured`, render {@link PayrollExecutionFlow} with the same `payrollId`.\n * It opens on `PayrollConfiguration`, then continues to review, submit, and receipts.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `transition/configured` | The settings were saved | `{ payrollUuid: string, payrollPrepared: PayrollPrepared }` |\n *\n * @param props - See {@link TransitionConfigurationProps}.\n * @returns The transition payroll settings form.\n * @public\n *\n * @example\n * ```tsx\n * import { componentEvents, Payroll } from '@gusto/embedded-react-sdk'\n *\n * function TransitionPayrollPage({ companyId, payrollId }: { companyId: string; payrollId: string }) {\n * return (\n * <Payroll.TransitionConfiguration\n * companyId={companyId}\n * payrollId={payrollId}\n * onEvent={type => {\n * if (type === componentEvents.TRANSITION_CONFIGURED) {\n * navigate(`/payrolls/${payrollId}/run`)\n * }\n * }}\n * />\n * )\n * }\n * ```\n */\nexport function TransitionConfiguration(props: TransitionConfigurationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollId, className }: TransitionConfigurationProps) {\n useComponentDictionary('Payroll.TransitionConfiguration', dictionary)\n useI18n('Payroll.TransitionConfiguration')\n\n const { t } = useTranslation('Payroll.TransitionConfiguration')\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: payrollData } = usePayrollsGetSuspense({ companyId, payrollId })\n const { data: paySchedulesData } = usePaySchedulesGetAllSuspense({ companyId })\n const { mutateAsync: preparePayroll, isPending: isPreparePending } = usePayrollsPrepareMutation()\n const { mutateAsync: updatePayroll, isPending: isUpdatePending } = usePayrollsUpdateMutation()\n\n const payroll = payrollData.payrollShow\n const paySchedule = paySchedulesData.payScheduleShowResponse?.find(\n schedule => schedule.uuid === payroll?.payPeriod?.payScheduleUuid,\n )\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: getDefaultWithholdingPayPeriod(\n payroll?.withholdingPayPeriod ?? paySchedule?.frequency,\n ),\n withholdingRate: payroll?.fixedWithholdingRate ? 'supplemental' : 'regular',\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n const [savedCheckDate, setSavedCheckDate] = useState<string | null>(null)\n\n const methods = useForm<TransitionConfigurationFormData>({\n resolver: zodResolver(transitionConfigurationSchema),\n defaultValues: {\n skipRegularDeductions: payroll?.skipRegularDeductions ?? false,\n },\n })\n\n const handleTaxWithholdingModalDone = (config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }\n\n const onSubmit = async (data: TransitionConfigurationFormData) => {\n await baseSubmitHandler(data, async ({ skipRegularDeductions }) => {\n const prepareResponse = await preparePayroll({\n request: { companyId, payrollId, requestBody: {} },\n })\n\n const compensation = prepareResponse.payrollPrepared?.employeeCompensations?.find(\n isVersionedEmployeeCompensation,\n )\n if (!compensation) {\n throw new SDKInternalError(t('errors.noEmployeeCompensations'))\n }\n\n const updateResponse = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { employeeUuid: compensation.employeeUuid, version: compensation.version },\n ],\n skipRegularDeductions,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n setSavedCheckDate(updateResponse.payrollPrepared?.checkDate ?? null)\n\n await queryClient.invalidateQueries({ queryKey: [PREPARE_QUERY_KEY, payrollId] })\n\n onEvent(componentEvents.TRANSITION_CONFIGURED, {\n payrollUuid: payrollId,\n payrollPrepared: updateResponse.payrollPrepared,\n })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <TransitionConfigurationPresentation\n className={className}\n payPeriodStartDate={payroll?.payPeriod?.startDate}\n payPeriodEndDate={payroll?.payPeriod?.endDate}\n payScheduleName={paySchedule?.customName ?? paySchedule?.name ?? null}\n checkDate={savedCheckDate ?? payroll?.checkDate ?? null}\n isPending={isPreparePending || isUpdatePending}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={() => {\n setIsTaxWithholdingModalOpen(true)\n }}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={() => {\n setIsTaxWithholdingModalOpen(false)\n }}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["transitionConfigurationSchema","createTransitionConfigurationSchema","isVersionedEmployeeCompensation","compensation","TransitionConfiguration","props","jsx","BaseComponent","Root","dictionary","companyId","payrollId","className","useComponentDictionary","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","payrollData","usePayrollsGetSuspense","paySchedulesData","usePaySchedulesGetAllSuspense","preparePayroll","isPreparePending","usePayrollsPrepareMutation","updatePayroll","isUpdatePending","usePayrollsUpdateMutation","payroll","paySchedule","schedule","taxWithholdingConfig","setTaxWithholdingConfig","useState","getDefaultWithholdingPayPeriod","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","savedCheckDate","setSavedCheckDate","methods","useForm","zodResolver","handleTaxWithholdingModalDone","config","onSubmit","data","skipRegularDeductions","SDKInternalError","updateResponse","PREPARE_QUERY_KEY","componentEvents","FormProvider","Form","TransitionConfigurationPresentation"],"mappings":"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"}
|
package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as S } from "react-i18next";
|
|
3
|
+
import l from "./TransitionConfigurationPresentation.module.scss.js";
|
|
4
|
+
import { useI18n as L } from "../../../i18n/I18n.js";
|
|
5
|
+
import { useComponentContext as F } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
import { Flex as o } from "../../Common/Flex/Flex.js";
|
|
7
|
+
import { useDateFormatter as O } from "../../../hooks/useDateFormatter.js";
|
|
8
|
+
import { RadioGroupField as W } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
|
|
9
|
+
import { OffCycleTaxWithholdingTable as j } from "../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js";
|
|
10
|
+
import { OffCycleTaxWithholdingModal as k } from "../OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js";
|
|
11
|
+
function V({
|
|
12
|
+
className: m,
|
|
13
|
+
payPeriodStartDate: f,
|
|
14
|
+
payPeriodEndDate: h,
|
|
15
|
+
payScheduleName: s,
|
|
16
|
+
checkDate: p,
|
|
17
|
+
isPending: c,
|
|
18
|
+
taxWithholdingConfig: d,
|
|
19
|
+
isTaxWithholdingModalOpen: g,
|
|
20
|
+
onTaxWithholdingEditClick: b,
|
|
21
|
+
onTaxWithholdingModalDone: y,
|
|
22
|
+
onTaxWithholdingModalCancel: T
|
|
23
|
+
}) {
|
|
24
|
+
L("Payroll.TransitionConfiguration");
|
|
25
|
+
const { t: i } = S("Payroll.TransitionConfiguration"), { Heading: u, Text: t, Alert: x, Button: C, DescriptionList: w } = F(), n = O(), D = [
|
|
26
|
+
{ value: !1, label: i("deductions.options.include") },
|
|
27
|
+
{ value: !0, label: i("deductions.options.skip") }
|
|
28
|
+
], v = [
|
|
29
|
+
{
|
|
30
|
+
category: "regular",
|
|
31
|
+
label: i("wageTypeGroups.regular.label"),
|
|
32
|
+
description: i("wageTypeGroups.regular.description")
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
category: "supplemental",
|
|
36
|
+
label: i("wageTypeGroups.supplemental.label"),
|
|
37
|
+
description: i("wageTypeGroups.supplemental.description")
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
category: "reimbursement",
|
|
41
|
+
label: i("wageTypeGroups.reimbursement.label")
|
|
42
|
+
}
|
|
43
|
+
], a = [
|
|
44
|
+
{
|
|
45
|
+
term: /* @__PURE__ */ e(t, { weight: "bold", children: i("payPeriodLabel") }),
|
|
46
|
+
description: /* @__PURE__ */ r(t, { children: [
|
|
47
|
+
n.formatShortWithYear(f),
|
|
48
|
+
" -",
|
|
49
|
+
" ",
|
|
50
|
+
n.formatShortWithYear(h)
|
|
51
|
+
] })
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
return s && a.push({
|
|
55
|
+
term: /* @__PURE__ */ e(t, { weight: "bold", children: i("payScheduleLabel") }),
|
|
56
|
+
description: /* @__PURE__ */ e(t, { children: s })
|
|
57
|
+
}), p && a.push({
|
|
58
|
+
term: /* @__PURE__ */ e(t, { weight: "bold", children: i("checkDateLabel") }),
|
|
59
|
+
description: /* @__PURE__ */ e(t, { children: n.formatShortWithYear(p) })
|
|
60
|
+
}), /* @__PURE__ */ r(o, { className: m, flexDirection: "column", gap: 32, children: [
|
|
61
|
+
/* @__PURE__ */ r(o, { flexDirection: "column", gap: 4, children: [
|
|
62
|
+
/* @__PURE__ */ e(u, { as: "h2", children: i("pageTitle") }),
|
|
63
|
+
/* @__PURE__ */ e(t, { variant: "supporting", children: i("pageDescription") })
|
|
64
|
+
] }),
|
|
65
|
+
/* @__PURE__ */ e(x, { status: "info", label: i("transitionExplanation") }),
|
|
66
|
+
/* @__PURE__ */ e("hr", { className: l.divider }),
|
|
67
|
+
/* @__PURE__ */ r(o, { flexDirection: "column", gap: 16, children: [
|
|
68
|
+
/* @__PURE__ */ e(u, { as: "h3", children: i("detailsHeading") }),
|
|
69
|
+
/* @__PURE__ */ e(w, { showSeparators: !1, items: a })
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ e("hr", { className: l.divider }),
|
|
72
|
+
/* @__PURE__ */ e(o, { flexDirection: "column", gap: 20, children: /* @__PURE__ */ e(
|
|
73
|
+
W,
|
|
74
|
+
{
|
|
75
|
+
name: "skipRegularDeductions",
|
|
76
|
+
label: i("deductions.title"),
|
|
77
|
+
description: i("deductions.description"),
|
|
78
|
+
options: D,
|
|
79
|
+
convertValueToString: (G) => String(G)
|
|
80
|
+
}
|
|
81
|
+
) }),
|
|
82
|
+
/* @__PURE__ */ e("hr", { className: l.divider }),
|
|
83
|
+
/* @__PURE__ */ e(
|
|
84
|
+
j,
|
|
85
|
+
{
|
|
86
|
+
wageTypeGroups: v,
|
|
87
|
+
config: d,
|
|
88
|
+
onEditClick: b
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
g && /* @__PURE__ */ e(
|
|
92
|
+
k,
|
|
93
|
+
{
|
|
94
|
+
isOpen: !0,
|
|
95
|
+
defaultConfig: d,
|
|
96
|
+
onDone: y,
|
|
97
|
+
onCancel: T
|
|
98
|
+
}
|
|
99
|
+
),
|
|
100
|
+
/* @__PURE__ */ e(o, { justifyContent: "flex-end", gap: 12, children: /* @__PURE__ */ e(C, { type: "submit", isLoading: c, isDisabled: c, children: i("continueCta") }) })
|
|
101
|
+
] });
|
|
102
|
+
}
|
|
103
|
+
export {
|
|
104
|
+
V as TransitionConfigurationPresentation
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=TransitionConfigurationPresentation.js.map
|
package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionConfigurationPresentation.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport type { WageTypeGroup } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { TransitionConfigurationPresentationProps } from './TransitionConfigurationTypes'\nimport styles from './TransitionConfigurationPresentation.module.scss'\nimport type { DescriptionListItem } from '@/components/Common/UI/DescriptionList/DescriptionListTypes'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField } from '@/components/Common'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/**\n * Layout for the transition payroll settings form.\n *\n * @param props - {@link TransitionConfigurationPresentationProps}.\n * @returns The form layout.\n * @internal\n */\nexport function TransitionConfigurationPresentation({\n className,\n payPeriodStartDate,\n payPeriodEndDate,\n payScheduleName,\n checkDate,\n isPending,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n}: TransitionConfigurationPresentationProps) {\n useI18n('Payroll.TransitionConfiguration')\n const { t } = useTranslation('Payroll.TransitionConfiguration')\n const { Heading, Text, Alert, Button, DescriptionList } = useComponentContext()\n const dateFormatter = useDateFormatter()\n\n const deductionsOptions = [\n { value: false, label: t('deductions.options.include') },\n { value: true, label: t('deductions.options.skip') },\n ]\n\n const wageTypeGroups: WageTypeGroup[] = [\n {\n category: 'regular',\n label: t('wageTypeGroups.regular.label'),\n description: t('wageTypeGroups.regular.description'),\n },\n {\n category: 'supplemental',\n label: t('wageTypeGroups.supplemental.label'),\n description: t('wageTypeGroups.supplemental.description'),\n },\n {\n category: 'reimbursement',\n label: t('wageTypeGroups.reimbursement.label'),\n },\n ]\n\n const detailItems: DescriptionListItem[] = [\n {\n term: <Text weight=\"bold\">{t('payPeriodLabel')}</Text>,\n description: (\n <Text>\n {dateFormatter.formatShortWithYear(payPeriodStartDate)} -{' '}\n {dateFormatter.formatShortWithYear(payPeriodEndDate)}\n </Text>\n ),\n },\n ]\n if (payScheduleName) {\n detailItems.push({\n term: <Text weight=\"bold\">{t('payScheduleLabel')}</Text>,\n description: <Text>{payScheduleName}</Text>,\n })\n }\n if (checkDate) {\n detailItems.push({\n term: <Text weight=\"bold\">{t('checkDateLabel')}</Text>,\n description: <Text>{dateFormatter.formatShortWithYear(checkDate)}</Text>,\n })\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Alert status=\"info\" label={t('transitionExplanation')} />\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h3\">{t('detailsHeading')}</Heading>\n\n <DescriptionList showSeparators={false} items={detailItems} />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={t('deductions.title')}\n description={t('deductions.description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["TransitionConfigurationPresentation","className","payPeriodStartDate","payPeriodEndDate","payScheduleName","checkDate","isPending","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","useI18n","t","useTranslation","Heading","Text","Alert","Button","DescriptionList","useComponentContext","dateFormatter","useDateFormatter","deductionsOptions","wageTypeGroups","detailItems","jsx","Flex","jsxs","styles","RadioGroupField","value","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionConfigurationPresentation.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TransitionConfigurationTypes.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.ts"],"sourcesContent":["import { z } from 'zod'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\n\n/**\n * Props for {@link TransitionConfiguration}.\n *\n * @public\n */\nexport interface TransitionConfigurationProps extends BaseComponentInterface<'Payroll.TransitionConfiguration'> {\n /** The company ID. */\n companyId: string\n /** The ID of the transition payroll to update. */\n payrollId: string\n}\n\n/**\n * Values in the transition payroll settings form.\n *\n * @internal\n */\nexport interface TransitionConfigurationFormData {\n /** `true` to skip regular deductions. */\n skipRegularDeductions: boolean\n}\n\n/** @internal */\nexport function createTransitionConfigurationSchema() {\n return z.object({\n skipRegularDeductions: z.boolean(),\n })\n}\n\n/** @internal */\nexport interface TransitionConfigurationPresentationProps {\n /** Class name for the root element. */\n className?: string\n /** First day of the pay period (YYYY-MM-DD). */\n payPeriodStartDate?: string | null\n /** Last day of the pay period (YYYY-MM-DD). */\n payPeriodEndDate?: string | null\n /** Pay schedule name, or `null` if unknown. */\n payScheduleName: string | null\n /** Payment date (YYYY-MM-DD), or `null` if unknown. */\n checkDate: string | null\n /** `true` while saving. */\n isPending?: boolean\n /** Tax withholding settings shown in the table. */\n taxWithholdingConfig: OffCycleTaxWithholdingConfig\n /** `true` when the tax withholding modal is open. */\n isTaxWithholdingModalOpen: boolean\n /** Called when the user clicks Edit on the tax table. */\n onTaxWithholdingEditClick: () => void\n /** Called when the user saves new tax settings in the modal. */\n onTaxWithholdingModalDone: (config: OffCycleTaxWithholdingConfig) => void\n /** Called when the user closes the modal without saving. */\n onTaxWithholdingModalCancel: () => void\n}\n"],"names":["createTransitionConfigurationSchema","z"],"mappings":";AA2BO,SAASA,IAAsC;AACpD,SAAOC,EAAE,OAAO;AAAA,IACd,uBAAuBA,EAAE,QAAA;AAAA,EAAQ,CAClC;AACH;"}
|
|
@@ -1,94 +1,116 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useEffect as
|
|
3
|
-
import { usePaySchedulesGetAll as
|
|
4
|
-
import { usePayrollsSkipMutation as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect as _, useMemo as v, useState as U, useCallback as E } from "react";
|
|
3
|
+
import { usePaySchedulesGetAll as C } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
|
|
4
|
+
import { usePayrollsSkipMutation as q } from "@gusto/embedded-api/react-query/payrollsSkip";
|
|
5
|
+
import { usePayrollsList as x } from "@gusto/embedded-api/react-query/payrollsList";
|
|
6
|
+
import { QueryParamPayrollTypes as B, ProcessingStatuses as Y } from "@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls";
|
|
7
|
+
import { PayrollType as I } from "@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid";
|
|
8
|
+
import { useUnprocessedTransitionPayPeriods as K } from "../useUnprocessedTransitionPayPeriods.js";
|
|
9
|
+
import { TransitionPayrollAlertPresentation as j } from "./TransitionPayrollAlertPresentation.js";
|
|
10
|
+
import { BaseComponent as z } from "../../Base/Base.js";
|
|
11
|
+
import { useBase as F } from "../../Base/useBase.js";
|
|
12
|
+
import { componentEvents as c } from "../../../shared/constants.js";
|
|
13
|
+
import { useObservability as G } from "../../../contexts/ObservabilityProvider/useObservability.js";
|
|
14
|
+
import { normalizeToSDKError as H } from "../../../types/sdkError.js";
|
|
15
|
+
const Q = "Payroll.TransitionPayrollAlert";
|
|
16
|
+
function ue({
|
|
17
|
+
companyId: a,
|
|
18
|
+
onEvent: p,
|
|
17
19
|
LoaderComponent: t,
|
|
18
|
-
hasBlockers:
|
|
20
|
+
hasBlockers: l
|
|
19
21
|
}) {
|
|
20
|
-
return /* @__PURE__ */
|
|
22
|
+
return /* @__PURE__ */ m(z, { onEvent: p, LoaderComponent: t, children: /* @__PURE__ */ m(V, { companyId: a, hasBlockers: l }) });
|
|
21
23
|
}
|
|
22
|
-
function
|
|
23
|
-
const { onEvent: t, baseSubmitHandler:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
function V({ companyId: a, hasBlockers: p }) {
|
|
25
|
+
const { onEvent: t, baseSubmitHandler: l } = F(), { observability: f } = G(), { unprocessedPayPeriods: d } = K(a), { data: i, error: R } = C({ companyId: a }), y = d.flatMap((e) => [e.startDate, e.endDate]).filter((e) => typeof e == "string").sort(), { data: S, error: k } = x(
|
|
26
|
+
{
|
|
27
|
+
companyId: a,
|
|
28
|
+
processingStatuses: [Y.Unprocessed],
|
|
29
|
+
payrollTypes: [B.OffCycle],
|
|
30
|
+
includeOffCycle: !0,
|
|
31
|
+
startDate: y.at(0),
|
|
32
|
+
endDate: y.at(-1)
|
|
33
|
+
},
|
|
34
|
+
{ enabled: y.length > 0 }
|
|
35
|
+
), P = (S?.payrollList ?? []).flatMap(
|
|
36
|
+
(e) => e.calculatedAt && e.payrollUuid ? [e.payrollUuid] : []
|
|
37
|
+
), u = R ?? k;
|
|
38
|
+
_(() => {
|
|
39
|
+
if (!u) return;
|
|
40
|
+
t(c.ERROR, u);
|
|
41
|
+
const e = H(u);
|
|
42
|
+
f?.onError?.({
|
|
29
43
|
...e,
|
|
30
44
|
timestamp: Date.now(),
|
|
31
|
-
componentName:
|
|
45
|
+
componentName: Q
|
|
32
46
|
});
|
|
33
|
-
}, [
|
|
34
|
-
const
|
|
35
|
-
if (!
|
|
36
|
-
const e =
|
|
37
|
-
for (const
|
|
38
|
-
const
|
|
39
|
-
s.push(
|
|
47
|
+
}, [u, t, f]);
|
|
48
|
+
const h = v(() => {
|
|
49
|
+
if (!i) return [];
|
|
50
|
+
const e = i.payScheduleShowResponse ?? [], r = /* @__PURE__ */ new Map();
|
|
51
|
+
for (const o of d) {
|
|
52
|
+
const n = o.payScheduleUuid ?? "unknown", s = r.get(n) ?? [];
|
|
53
|
+
s.push(o), r.set(n, s);
|
|
40
54
|
}
|
|
41
|
-
return Array.from(
|
|
42
|
-
const s = e.find((
|
|
43
|
-
return { payScheduleUuid:
|
|
55
|
+
return Array.from(r.entries()).map(([o, n]) => {
|
|
56
|
+
const s = e.find((M) => M.uuid === o), L = s?.customName || s?.name || "Transition";
|
|
57
|
+
return { payScheduleUuid: o, payScheduleName: L, payPeriods: n };
|
|
44
58
|
});
|
|
45
|
-
}, [
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
payScheduleUuid:
|
|
59
|
+
}, [d, i]), [O, D] = U(!1), [g, A] = U(null), { mutateAsync: T } = q(), N = (e) => {
|
|
60
|
+
const r = e.payroll?.payrollUuid, { startDate: o, endDate: n, payScheduleUuid: s } = e;
|
|
61
|
+
if (r && P.includes(r)) {
|
|
62
|
+
t(c.REVIEW_PAYROLL, {
|
|
63
|
+
payrollUuid: r,
|
|
64
|
+
payPeriod: { startDate: o, endDate: n, payScheduleUuid: s }
|
|
51
65
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
t(c.RUN_TRANSITION_PAYROLL, {
|
|
69
|
+
payrollUuid: r,
|
|
70
|
+
startDate: o,
|
|
71
|
+
endDate: n,
|
|
72
|
+
payScheduleUuid: s
|
|
73
|
+
});
|
|
74
|
+
}, b = E(
|
|
55
75
|
async (e) => {
|
|
56
|
-
|
|
57
|
-
await
|
|
76
|
+
A(e), await l({}, async () => {
|
|
77
|
+
await T({
|
|
58
78
|
request: {
|
|
59
|
-
companyUuid:
|
|
79
|
+
companyUuid: a,
|
|
60
80
|
requestBody: {
|
|
61
|
-
payrollType:
|
|
81
|
+
payrollType: I.TransitionFromOldPaySchedule,
|
|
62
82
|
startDate: e.startDate,
|
|
63
83
|
endDate: e.endDate,
|
|
64
84
|
payScheduleUuid: e.payScheduleUuid ?? void 0
|
|
65
85
|
}
|
|
66
86
|
}
|
|
67
|
-
}),
|
|
87
|
+
}), D(!0), t(c.TRANSITION_PAYROLL_SKIPPED, {
|
|
88
|
+
payrollUuid: e.payroll?.payrollUuid,
|
|
68
89
|
startDate: e.startDate,
|
|
69
90
|
endDate: e.endDate,
|
|
70
91
|
payScheduleUuid: e.payScheduleUuid
|
|
71
92
|
});
|
|
72
|
-
}),
|
|
93
|
+
}), A(null);
|
|
73
94
|
},
|
|
74
|
-
[
|
|
75
|
-
),
|
|
76
|
-
|
|
95
|
+
[a, T, t, l]
|
|
96
|
+
), w = E(() => {
|
|
97
|
+
D(!1);
|
|
77
98
|
}, []);
|
|
78
|
-
return !
|
|
79
|
-
|
|
99
|
+
return !i || !S || h.length === 0 ? null : /* @__PURE__ */ m(
|
|
100
|
+
j,
|
|
80
101
|
{
|
|
81
|
-
groupedPayPeriods:
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
102
|
+
groupedPayPeriods: h,
|
|
103
|
+
calculatedPayrollUuids: P,
|
|
104
|
+
onRunPayroll: N,
|
|
105
|
+
onSkipPayroll: b,
|
|
106
|
+
showSkipSuccessAlert: O,
|
|
107
|
+
onDismissSkipSuccessAlert: w,
|
|
108
|
+
skippingPayPeriod: g,
|
|
109
|
+
hasBlockers: p
|
|
88
110
|
}
|
|
89
111
|
);
|
|
90
112
|
}
|
|
91
113
|
export {
|
|
92
|
-
|
|
114
|
+
ue as TransitionPayrollAlert
|
|
93
115
|
};
|
|
94
116
|
//# sourceMappingURL=TransitionPayrollAlert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransitionPayrollAlert.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.tsx"],"sourcesContent":["import { useMemo, useState, useCallback, useEffect } from 'react'\nimport { usePaySchedulesGetAll } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePayrollsSkipMutation } from '@gusto/embedded-api/react-query/payrollsSkip'\nimport { PayrollType } from '@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { useUnprocessedTransitionPayPeriods } from '../useUnprocessedTransitionPayPeriods'\nimport {\n TransitionPayrollAlertPresentation,\n type TransitionPayPeriodGroup,\n} from './TransitionPayrollAlertPresentation'\nimport { BaseComponent, type LoaderComponentType } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\ninterface TransitionPayrollAlertProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n /**\n * When true, a payroll blocker is present and the run/skip actions are\n * disabled so the user can't start a transition payroll that would dead-end.\n */\n hasBlockers?: boolean\n}\n\nconst COMPONENT_NAME = 'Payroll.TransitionPayrollAlert'\n\n/** @internal */\nexport function TransitionPayrollAlert({\n companyId,\n onEvent,\n LoaderComponent,\n hasBlockers,\n}: TransitionPayrollAlertProps) {\n return (\n <BaseComponent onEvent={onEvent} LoaderComponent={LoaderComponent}>\n <Root companyId={companyId} hasBlockers={hasBlockers} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, hasBlockers }: { companyId: string; hasBlockers?: boolean }) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { observability } = useObservability()\n\n const { unprocessedPayPeriods } = useUnprocessedTransitionPayPeriods(companyId)\n\n const { data: paySchedulesData, error: paySchedulesError } = usePaySchedulesGetAll({ companyId })\n\n useEffect(() => {\n if (!paySchedulesError) return\n onEvent(componentEvents.ERROR, paySchedulesError)\n const sdkError = normalizeToSDKError(paySchedulesError)\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName: COMPONENT_NAME,\n })\n }, [paySchedulesError, onEvent, observability])\n\n const groupedPayPeriods = useMemo<TransitionPayPeriodGroup[]>(() => {\n if (!paySchedulesData) return []\n const paySchedules = paySchedulesData.payScheduleShowResponse ?? []\n\n const groups = new Map<string, PayPeriod[]>()\n for (const period of unprocessedPayPeriods) {\n const uuid = period.payScheduleUuid ?? 'unknown'\n const existing = groups.get(uuid) ?? []\n existing.push(period)\n groups.set(uuid, existing)\n }\n\n return Array.from(groups.entries()).map(([payScheduleUuid, payPeriods]) => {\n const schedule = paySchedules.find(s => s.uuid === payScheduleUuid)\n const payScheduleName = schedule?.customName || schedule?.name || 'Transition'\n return { payScheduleUuid, payScheduleName, payPeriods }\n })\n }, [unprocessedPayPeriods, paySchedulesData])\n\n const [showSkipSuccessAlert, setShowSkipSuccessAlert] = useState(false)\n const [skippingPayPeriod, setSkippingPayPeriod] = useState<PayPeriod | null>(null)\n\n const { mutateAsync: skipPayroll } = usePayrollsSkipMutation()\n\n const handleRunPayroll = useCallback(\n (payPeriod: PayPeriod) => {\n onEvent(componentEvents.RUN_TRANSITION_PAYROLL, {\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n },\n [onEvent],\n )\n\n const handleSkipPayroll = useCallback(\n async (payPeriod: PayPeriod) => {\n setSkippingPayPeriod(payPeriod)\n await baseSubmitHandler({}, async () => {\n await skipPayroll({\n request: {\n companyUuid: companyId,\n requestBody: {\n payrollType: PayrollType.TransitionFromOldPaySchedule,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid ?? undefined,\n },\n },\n })\n setShowSkipSuccessAlert(true)\n onEvent(componentEvents.TRANSITION_PAYROLL_SKIPPED, {\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n })\n setSkippingPayPeriod(null)\n },\n [companyId, skipPayroll, onEvent, baseSubmitHandler],\n )\n\n const handleDismissSkipSuccessAlert = useCallback(() => {\n setShowSkipSuccessAlert(false)\n }, [])\n\n if (!paySchedulesData || groupedPayPeriods.length === 0) {\n return null\n }\n\n return (\n <TransitionPayrollAlertPresentation\n groupedPayPeriods={groupedPayPeriods}\n onRunPayroll={handleRunPayroll}\n onSkipPayroll={handleSkipPayroll}\n showSkipSuccessAlert={showSkipSuccessAlert}\n onDismissSkipSuccessAlert={handleDismissSkipSuccessAlert}\n skippingPayPeriod={skippingPayPeriod}\n hasBlockers={hasBlockers}\n />\n )\n}\n"],"names":["COMPONENT_NAME","TransitionPayrollAlert","companyId","onEvent","LoaderComponent","hasBlockers","jsx","BaseComponent","Root","baseSubmitHandler","useBase","observability","useObservability","unprocessedPayPeriods","useUnprocessedTransitionPayPeriods","paySchedulesData","paySchedulesError","usePaySchedulesGetAll","useEffect","componentEvents","sdkError","normalizeToSDKError","groupedPayPeriods","useMemo","paySchedules","groups","period","uuid","existing","payScheduleUuid","payPeriods","schedule","s","payScheduleName","showSkipSuccessAlert","setShowSkipSuccessAlert","useState","skippingPayPeriod","setSkippingPayPeriod","skipPayroll","usePayrollsSkipMutation","handleRunPayroll","useCallback","payPeriod","handleSkipPayroll","PayrollType","handleDismissSkipSuccessAlert","TransitionPayrollAlertPresentation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TransitionPayrollAlert.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.tsx"],"sourcesContent":["import { useMemo, useState, useCallback, useEffect } from 'react'\nimport { usePaySchedulesGetAll } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePayrollsSkipMutation } from '@gusto/embedded-api/react-query/payrollsSkip'\nimport { usePayrollsList } from '@gusto/embedded-api/react-query/payrollsList'\nimport {\n ProcessingStatuses,\n QueryParamPayrollTypes,\n} from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls'\nimport { PayrollType } from '@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { useUnprocessedTransitionPayPeriods } from '../useUnprocessedTransitionPayPeriods'\nimport {\n TransitionPayrollAlertPresentation,\n type TransitionPayPeriodGroup,\n} from './TransitionPayrollAlertPresentation'\nimport { BaseComponent, type LoaderComponentType } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\ninterface TransitionPayrollAlertProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n /**\n * When true, a payroll blocker is present and the run/skip actions are\n * disabled so the user can't start a transition payroll that would dead-end.\n */\n hasBlockers?: boolean\n}\n\nconst COMPONENT_NAME = 'Payroll.TransitionPayrollAlert'\n\n/** @internal */\nexport function TransitionPayrollAlert({\n companyId,\n onEvent,\n LoaderComponent,\n hasBlockers,\n}: TransitionPayrollAlertProps) {\n return (\n <BaseComponent onEvent={onEvent} LoaderComponent={LoaderComponent}>\n <Root companyId={companyId} hasBlockers={hasBlockers} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, hasBlockers }: { companyId: string; hasBlockers?: boolean }) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { observability } = useObservability()\n\n const { unprocessedPayPeriods } = useUnprocessedTransitionPayPeriods(companyId)\n\n const { data: paySchedulesData, error: paySchedulesError } = usePaySchedulesGetAll({ companyId })\n\n const sortedPayPeriodDates = unprocessedPayPeriods\n .flatMap(payPeriod => [payPeriod.startDate, payPeriod.endDate])\n .filter((date): date is string => typeof date === 'string')\n .sort()\n\n const { data: transitionPayrollsData, error: transitionPayrollsError } = usePayrollsList(\n {\n companyId,\n processingStatuses: [ProcessingStatuses.Unprocessed],\n payrollTypes: [QueryParamPayrollTypes.OffCycle],\n includeOffCycle: true,\n startDate: sortedPayPeriodDates.at(0),\n endDate: sortedPayPeriodDates.at(-1),\n },\n { enabled: sortedPayPeriodDates.length > 0 },\n )\n\n const calculatedPayrollUuids = (transitionPayrollsData?.payrollList ?? []).flatMap(payroll =>\n payroll.calculatedAt && payroll.payrollUuid ? [payroll.payrollUuid] : [],\n )\n\n const queryError = paySchedulesError ?? transitionPayrollsError\n\n useEffect(() => {\n if (!queryError) return\n onEvent(componentEvents.ERROR, queryError)\n const sdkError = normalizeToSDKError(queryError)\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName: COMPONENT_NAME,\n })\n }, [queryError, onEvent, observability])\n\n const groupedPayPeriods = useMemo<TransitionPayPeriodGroup[]>(() => {\n if (!paySchedulesData) return []\n const paySchedules = paySchedulesData.payScheduleShowResponse ?? []\n\n const groups = new Map<string, PayPeriod[]>()\n for (const period of unprocessedPayPeriods) {\n const uuid = period.payScheduleUuid ?? 'unknown'\n const existing = groups.get(uuid) ?? []\n existing.push(period)\n groups.set(uuid, existing)\n }\n\n return Array.from(groups.entries()).map(([payScheduleUuid, payPeriods]) => {\n const schedule = paySchedules.find(s => s.uuid === payScheduleUuid)\n const payScheduleName = schedule?.customName || schedule?.name || 'Transition'\n return { payScheduleUuid, payScheduleName, payPeriods }\n })\n }, [unprocessedPayPeriods, paySchedulesData])\n\n const [showSkipSuccessAlert, setShowSkipSuccessAlert] = useState(false)\n const [skippingPayPeriod, setSkippingPayPeriod] = useState<PayPeriod | null>(null)\n\n const { mutateAsync: skipPayroll } = usePayrollsSkipMutation()\n\n const handleRunPayroll = (payPeriod: PayPeriod) => {\n const payrollUuid = payPeriod.payroll?.payrollUuid\n const { startDate, endDate, payScheduleUuid } = payPeriod\n\n if (payrollUuid && calculatedPayrollUuids.includes(payrollUuid)) {\n onEvent(componentEvents.REVIEW_PAYROLL, {\n payrollUuid,\n payPeriod: { startDate, endDate, payScheduleUuid },\n })\n return\n }\n\n onEvent(componentEvents.RUN_TRANSITION_PAYROLL, {\n payrollUuid,\n startDate,\n endDate,\n payScheduleUuid,\n })\n }\n\n const handleSkipPayroll = useCallback(\n async (payPeriod: PayPeriod) => {\n setSkippingPayPeriod(payPeriod)\n await baseSubmitHandler({}, async () => {\n await skipPayroll({\n request: {\n companyUuid: companyId,\n requestBody: {\n payrollType: PayrollType.TransitionFromOldPaySchedule,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid ?? undefined,\n },\n },\n })\n setShowSkipSuccessAlert(true)\n onEvent(componentEvents.TRANSITION_PAYROLL_SKIPPED, {\n payrollUuid: payPeriod.payroll?.payrollUuid,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n })\n setSkippingPayPeriod(null)\n },\n [companyId, skipPayroll, onEvent, baseSubmitHandler],\n )\n\n const handleDismissSkipSuccessAlert = useCallback(() => {\n setShowSkipSuccessAlert(false)\n }, [])\n\n if (!paySchedulesData || !transitionPayrollsData || groupedPayPeriods.length === 0) {\n return null\n }\n\n return (\n <TransitionPayrollAlertPresentation\n groupedPayPeriods={groupedPayPeriods}\n calculatedPayrollUuids={calculatedPayrollUuids}\n onRunPayroll={handleRunPayroll}\n onSkipPayroll={handleSkipPayroll}\n showSkipSuccessAlert={showSkipSuccessAlert}\n onDismissSkipSuccessAlert={handleDismissSkipSuccessAlert}\n skippingPayPeriod={skippingPayPeriod}\n hasBlockers={hasBlockers}\n />\n )\n}\n"],"names":["COMPONENT_NAME","TransitionPayrollAlert","companyId","onEvent","LoaderComponent","hasBlockers","jsx","BaseComponent","Root","baseSubmitHandler","useBase","observability","useObservability","unprocessedPayPeriods","useUnprocessedTransitionPayPeriods","paySchedulesData","paySchedulesError","usePaySchedulesGetAll","sortedPayPeriodDates","payPeriod","date","transitionPayrollsData","transitionPayrollsError","usePayrollsList","ProcessingStatuses","QueryParamPayrollTypes","calculatedPayrollUuids","payroll","queryError","useEffect","componentEvents","sdkError","normalizeToSDKError","groupedPayPeriods","useMemo","paySchedules","groups","period","uuid","existing","payScheduleUuid","payPeriods","schedule","s","payScheduleName","showSkipSuccessAlert","setShowSkipSuccessAlert","useState","skippingPayPeriod","setSkippingPayPeriod","skipPayroll","usePayrollsSkipMutation","handleRunPayroll","payrollUuid","startDate","endDate","handleSkipPayroll","useCallback","PayrollType","handleDismissSkipSuccessAlert","TransitionPayrollAlertPresentation"],"mappings":"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"}
|