@gusto/embedded-react-sdk 0.57.1 → 0.57.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/components/Base/Base.js +2 -3
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +32 -32
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/OnboardingStatusBadge/index.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 -10
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -9
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -7
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -9
- 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/Locations/LocationForm/Actions.js +8 -10
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +11 -13
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
- package/dist/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +34 -14
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js +106 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js +136 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +38 -20
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +78 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +45 -37
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +253 -92
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js +22 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js +13 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +48 -43
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js +57 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js +83 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js +84 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +109 -39
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +5 -5
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +4 -4
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +3 -3
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -1
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +6 -6
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
- package/dist/components/Contractor/Dashboard/Dashboard.js +20 -20
- package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js +10 -10
- package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js.map +1 -1
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Contractor/Landing/Landing.js +43 -39
- package/dist/components/Contractor/Landing/Landing.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
- package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
- package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +1 -1
- package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +10 -10
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +4 -4
- package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +8 -8
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +5 -5
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +1 -1
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -1
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -9
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +18 -18
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +6 -6
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +25 -25
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +15 -15
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.js +25 -25
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +7 -7
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +6 -6
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +37 -33
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +27 -27
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +6 -6
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +8 -15
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +11 -11
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +12 -12
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +26 -26
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +66 -64
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +6 -6
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +75 -89
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +9 -9
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
- package/dist/components/Payroll/helpers.js +53 -49
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/payrollTypes.js +1 -1
- package/dist/components/Payroll/payrollTypes.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/helpers/dateFormatting.js +47 -40
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +37 -17
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -10
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/shared/constants.js +5 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +2 -2
- package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
- package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +10 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.d.ts +21 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.d.ts +34 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +9 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +5 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +10 -10
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +12 -4
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.d.ts +19 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.d.ts +17 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.d.ts +34 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +16 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.d.ts +23 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.d.ts +25 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
- package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
- package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -2
- package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/helpers.d.ts +22 -2
- package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
- package/dist/src/helpers/dateFormatting.d.ts +13 -0
- package/dist/src/i18n/types.d.ts +96 -6
- package/dist/src/models/external.d.ts +63 -48
- package/dist/src/shared/constants.d.ts +1 -1
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +33 -13
- package/package.json +21 -21
|
@@ -1,72 +1,77 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { PayScheduleForm as
|
|
4
|
-
import { PayScheduleOverview as
|
|
5
|
-
import { useComponentContext as
|
|
1
|
+
import { jsxs as d, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as u } from "react-i18next";
|
|
3
|
+
import { PayScheduleForm as p } from "../PayScheduleForm.js";
|
|
4
|
+
import { PayScheduleOverview as y } from "./PayScheduleOverview.js";
|
|
5
|
+
import { useComponentContext as f } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
6
|
import { useFlow as m } from "../../../Flow/useFlow.js";
|
|
7
|
-
import { ensureRequired as
|
|
8
|
-
import { componentEvents as
|
|
9
|
-
import { Flex as
|
|
10
|
-
import { AutoPilotDialog as
|
|
11
|
-
import { PayScheduleAssignment as
|
|
12
|
-
function
|
|
7
|
+
import { ensureRequired as r } from "../../../../helpers/ensureRequired.js";
|
|
8
|
+
import { componentEvents as h } from "../../../../shared/constants.js";
|
|
9
|
+
import { Flex as P } from "../../../Common/Flex/Flex.js";
|
|
10
|
+
import { AutoPilotDialog as S } from "./AutoPilotDialog/AutoPilotDialog.js";
|
|
11
|
+
import { PayScheduleAssignment as E } from "./PayScheduleAssignment/PayScheduleAssignment.js";
|
|
12
|
+
function b() {
|
|
13
13
|
const {
|
|
14
|
-
companyId:
|
|
15
|
-
onEvent:
|
|
14
|
+
companyId: e,
|
|
15
|
+
onEvent: o,
|
|
16
16
|
enableAutoPilot: l,
|
|
17
|
-
enableMultipleSchedules:
|
|
18
|
-
successAlert:
|
|
17
|
+
enableMultipleSchedules: a,
|
|
18
|
+
successAlert: t,
|
|
19
19
|
autoPilotSchedule: c
|
|
20
|
-
} = m(), { t:
|
|
21
|
-
return /* @__PURE__ */
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
} = m(), { t: i } = u("Company.Management.PaySchedule"), s = f();
|
|
21
|
+
return /* @__PURE__ */ d(P, { flexDirection: "column", gap: 16, children: [
|
|
22
|
+
t ? /* @__PURE__ */ n(
|
|
23
|
+
s.Alert,
|
|
24
24
|
{
|
|
25
25
|
status: "success",
|
|
26
|
-
label:
|
|
26
|
+
label: i(`alerts.${t}`),
|
|
27
27
|
onDismiss: () => {
|
|
28
|
-
|
|
28
|
+
o(h.PAY_SCHEDULE_MANAGEMENT_ALERT_DISMISSED, null);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
) : null,
|
|
32
|
-
/* @__PURE__ */
|
|
33
|
-
|
|
32
|
+
/* @__PURE__ */ n(
|
|
33
|
+
y,
|
|
34
34
|
{
|
|
35
|
-
companyId:
|
|
36
|
-
onEvent:
|
|
35
|
+
companyId: r(e),
|
|
36
|
+
onEvent: o,
|
|
37
37
|
enableAutoPilot: l,
|
|
38
|
-
enableMultipleSchedules:
|
|
38
|
+
enableMultipleSchedules: a
|
|
39
39
|
}
|
|
40
40
|
),
|
|
41
|
-
c ? /* @__PURE__ */
|
|
42
|
-
|
|
41
|
+
c ? /* @__PURE__ */ n(
|
|
42
|
+
S,
|
|
43
43
|
{
|
|
44
|
-
companyId:
|
|
44
|
+
companyId: r(e),
|
|
45
45
|
schedule: c,
|
|
46
|
-
onEvent:
|
|
46
|
+
onEvent: o
|
|
47
47
|
}
|
|
48
48
|
) : null
|
|
49
49
|
] });
|
|
50
50
|
}
|
|
51
|
-
function
|
|
52
|
-
const { companyId:
|
|
53
|
-
return /* @__PURE__ */
|
|
51
|
+
function w() {
|
|
52
|
+
const { companyId: e, onEvent: o } = m();
|
|
53
|
+
return /* @__PURE__ */ n(E, { companyId: r(e), onEvent: o });
|
|
54
54
|
}
|
|
55
|
-
function
|
|
56
|
-
const { companyId: o, payScheduleId:
|
|
57
|
-
return /* @__PURE__ */
|
|
58
|
-
|
|
55
|
+
function T() {
|
|
56
|
+
const { t: e } = u("Company.Management.PaySchedule"), { companyId: o, payScheduleId: l, defaultValues: a, onEvent: t } = m();
|
|
57
|
+
return /* @__PURE__ */ n(
|
|
58
|
+
p,
|
|
59
59
|
{
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
variant: "management",
|
|
61
|
+
copy: {
|
|
62
|
+
anchorEndOfPayPeriodDescription: e("scheduleForm.anchorEndOfPayPeriodDescription"),
|
|
63
|
+
payrollDeadline: e("scheduleForm.payrollDeadline")
|
|
64
|
+
},
|
|
65
|
+
companyId: r(o),
|
|
66
|
+
payScheduleId: l,
|
|
67
|
+
defaultValues: a,
|
|
68
|
+
onEvent: t
|
|
64
69
|
}
|
|
65
70
|
);
|
|
66
71
|
}
|
|
67
72
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
73
|
+
w as PayScheduleAssignmentContextual,
|
|
74
|
+
T as PayScheduleEditFormContextual,
|
|
75
|
+
b as PayScheduleOverviewContextual
|
|
71
76
|
};
|
|
72
77
|
//# sourceMappingURL=PayScheduleManagementComponents.js.map
|
package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleManagementComponents.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleManagementComponents.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/
|
|
1
|
+
{"version":3,"file":"PayScheduleManagementComponents.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleManagementComponents.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport { PayScheduleForm } from '../PayScheduleForm'\nimport type { PayScheduleDefaultValues } from '../PaySchedule'\nimport { PayScheduleOverview } from './PayScheduleOverview'\nimport { PayScheduleAssignment } from './PayScheduleAssignment'\nimport { AutoPilotDialog } from './AutoPilotDialog'\nimport { Flex } from '@/components/Common/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { componentEvents } from '@/shared/constants'\n\n/** @internal */\nexport type PayScheduleManagementSuccessAlertCode = 'assignmentUpdated'\n\n/** @internal */\nexport interface PayScheduleManagementContextInterface extends FlowContextInterface {\n companyId: string\n payScheduleId?: string\n defaultValues?: PayScheduleDefaultValues\n enableAutoPilot?: boolean\n enableMultipleSchedules?: boolean\n successAlert?: PayScheduleManagementSuccessAlertCode | null\n autoPilotSchedule?: PayScheduleShow\n component: React.ComponentType | null\n}\n\n/** @internal */\nexport function PayScheduleOverviewContextual() {\n const {\n companyId,\n onEvent,\n enableAutoPilot,\n enableMultipleSchedules,\n successAlert,\n autoPilotSchedule,\n } = useFlow<PayScheduleManagementContextInterface>()\n const { t } = useTranslation('Company.Management.PaySchedule')\n const Components = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {successAlert ? (\n <Components.Alert\n status=\"success\"\n label={t(`alerts.${successAlert}`)}\n onDismiss={() => {\n onEvent(componentEvents.PAY_SCHEDULE_MANAGEMENT_ALERT_DISMISSED, null)\n }}\n />\n ) : null}\n <PayScheduleOverview\n companyId={ensureRequired(companyId)}\n onEvent={onEvent}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n />\n {autoPilotSchedule ? (\n <AutoPilotDialog\n companyId={ensureRequired(companyId)}\n schedule={autoPilotSchedule}\n onEvent={onEvent}\n />\n ) : null}\n </Flex>\n )\n}\n\n/** @internal */\nexport function PayScheduleAssignmentContextual() {\n const { companyId, onEvent } = useFlow<PayScheduleManagementContextInterface>()\n\n return <PayScheduleAssignment companyId={ensureRequired(companyId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function PayScheduleEditFormContextual() {\n const { t } = useTranslation('Company.Management.PaySchedule')\n const { companyId, payScheduleId, defaultValues, onEvent } =\n useFlow<PayScheduleManagementContextInterface>()\n\n return (\n <PayScheduleForm\n variant=\"management\"\n copy={{\n anchorEndOfPayPeriodDescription: t('scheduleForm.anchorEndOfPayPeriodDescription'),\n payrollDeadline: t('scheduleForm.payrollDeadline'),\n }}\n companyId={ensureRequired(companyId)}\n payScheduleId={payScheduleId}\n defaultValues={defaultValues}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["PayScheduleOverviewContextual","companyId","onEvent","enableAutoPilot","enableMultipleSchedules","successAlert","autoPilotSchedule","useFlow","t","useTranslation","Components","useComponentContext","jsxs","Flex","jsx","componentEvents","PayScheduleOverview","ensureRequired","AutoPilotDialog","PayScheduleAssignmentContextual","PayScheduleAssignment","PayScheduleEditFormContextual","payScheduleId","defaultValues","PayScheduleForm"],"mappings":";;;;;;;;;;;AA6BO,SAASA,IAAgC;AAC9C,QAAM;AAAA,IACJ,WAAAC;AAAA,IACA,SAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,yBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,EAAA,IACEC,EAAA,GACE,EAAE,GAAAC,EAAA,IAAMC,EAAe,gCAAgC,GACvDC,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAAR,IACC,gBAAAS;AAAA,MAACJ,EAAW;AAAA,MAAX;AAAA,QACC,QAAO;AAAA,QACP,OAAOF,EAAE,UAAUH,CAAY,EAAE;AAAA,QACjC,WAAW,MAAM;AACf,UAAAH,EAAQa,EAAgB,yCAAyC,IAAI;AAAA,QACvE;AAAA,MAAA;AAAA,IAAA,IAEA;AAAA,IACJ,gBAAAD;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,WAAWC,EAAehB,CAAS;AAAA,QACnC,SAAAC;AAAA,QACA,iBAAAC;AAAA,QACA,yBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAEDE,IACC,gBAAAQ;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,WAAWD,EAAehB,CAAS;AAAA,QACnC,UAAUK;AAAA,QACV,SAAAJ;AAAA,MAAA;AAAA,IAAA,IAEA;AAAA,EAAA,GACN;AAEJ;AAGO,SAASiB,IAAkC;AAChD,QAAM,EAAE,WAAAlB,GAAW,SAAAC,EAAA,IAAYK,EAAA;AAE/B,2BAAQa,GAAA,EAAsB,WAAWH,EAAehB,CAAS,GAAG,SAAAC,GAAkB;AACxF;AAGO,SAASmB,IAAgC;AAC9C,QAAM,EAAE,GAAAb,EAAA,IAAMC,EAAe,gCAAgC,GACvD,EAAE,WAAAR,GAAW,eAAAqB,GAAe,eAAAC,GAAe,SAAArB,EAAA,IAC/CK,EAAA;AAEF,SACE,gBAAAO;AAAA,IAACU;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAM;AAAA,QACJ,iCAAiChB,EAAE,8CAA8C;AAAA,QACjF,iBAAiBA,EAAE,8BAA8B;AAAA,MAAA;AAAA,MAEnD,WAAWS,EAAehB,CAAS;AAAA,MACnC,eAAAqB;AAAA,MACA,eAAAC;AAAA,MACA,SAAArB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,62 +1,132 @@
|
|
|
1
1
|
import { jsx as p } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { useDepartmentsGetAllSuspense as g } from "@gusto/embedded-api/react-query/departmentsGetAll";
|
|
3
|
+
import { useTranslation as U } from "react-i18next";
|
|
4
|
+
import { usePaySchedulesGetAllSuspense as v } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
|
|
5
|
+
import { usePaySchedulesGetAssignmentsSuspense as w } from "@gusto/embedded-api/react-query/paySchedulesGetAssignments";
|
|
6
|
+
import { PayScheduleAssignmentType as y } from "@gusto/embedded-api/models/components/payscheduleassignment";
|
|
7
|
+
import { PayScheduleEmployeeOverviewPresentation as h } from "./PayScheduleEmployeeOverviewPresentation.js";
|
|
8
|
+
import { useAssignableEmployeesSuspense as D } from "./PayScheduleAssignment/useAssignableEmployees.js";
|
|
9
|
+
import { getCompanyDepartments as O } from "./PayScheduleAssignment/departmentAccess.js";
|
|
10
|
+
import { PayScheduleDepartmentOverviewPresentation as T } from "./PayScheduleDepartmentOverviewPresentation.js";
|
|
5
11
|
import { PayScheduleOverviewPresentation as _ } from "./PayScheduleOverviewPresentation.js";
|
|
6
|
-
import { PayScheduleCompensationOverviewPresentation as
|
|
7
|
-
import { componentEvents as
|
|
8
|
-
import { ensureRequired as
|
|
9
|
-
function
|
|
10
|
-
companyId:
|
|
11
|
-
onEvent:
|
|
12
|
-
enableAutoPilot:
|
|
13
|
-
enableMultipleSchedules:
|
|
12
|
+
import { PayScheduleCompensationOverviewPresentation as M } from "./PayScheduleCompensationOverviewPresentation.js";
|
|
13
|
+
import { componentEvents as f } from "../../../../shared/constants.js";
|
|
14
|
+
import { ensureRequired as C } from "../../../../helpers/ensureRequired.js";
|
|
15
|
+
function Q({
|
|
16
|
+
companyId: s,
|
|
17
|
+
onEvent: n,
|
|
18
|
+
enableAutoPilot: u,
|
|
19
|
+
enableMultipleSchedules: i
|
|
14
20
|
}) {
|
|
15
|
-
const { data:
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
|
|
21
|
+
const { data: l } = v({ companyId: s }), { data: r } = w({ companyId: s }), o = l.payScheduleShowResponse ?? [], t = r.payScheduleAssignment, e = (c) => {
|
|
22
|
+
n(f.PAY_SCHEDULE_UPDATE, { uuid: c.uuid });
|
|
23
|
+
}, d = (c) => {
|
|
24
|
+
n(f.PAY_SCHEDULE_AUTO_PILOT_EDIT, { schedule: c });
|
|
25
|
+
}, a = () => {
|
|
26
|
+
n(f.PAY_SCHEDULE_MANAGE_ASSIGNMENT);
|
|
21
27
|
};
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
28
|
+
if (t?.type === y.ByEmployee)
|
|
29
|
+
return /* @__PURE__ */ p(
|
|
30
|
+
L,
|
|
31
|
+
{
|
|
32
|
+
companyId: s,
|
|
33
|
+
assignment: t,
|
|
34
|
+
schedules: o,
|
|
35
|
+
enableAutoPilot: u,
|
|
36
|
+
enableMultipleSchedules: i,
|
|
37
|
+
onEditSchedule: e,
|
|
38
|
+
onManageAssignment: a,
|
|
39
|
+
onEditAutoPilot: d
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
if (t?.type === y.ByDepartment)
|
|
43
|
+
return /* @__PURE__ */ p(
|
|
44
|
+
G,
|
|
45
|
+
{
|
|
46
|
+
companyId: s,
|
|
47
|
+
assignment: t,
|
|
48
|
+
schedules: o,
|
|
49
|
+
enableAutoPilot: u,
|
|
50
|
+
enableMultipleSchedules: i,
|
|
51
|
+
onEditSchedule: e,
|
|
52
|
+
onManageAssignment: a,
|
|
53
|
+
onEditAutoPilot: d
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
if (t?.type === y.HourlySalaried) {
|
|
57
|
+
const c = [
|
|
58
|
+
{ compensationType: "salaried", uuid: t.salariedPayScheduleUuid },
|
|
59
|
+
{ compensationType: "hourly", uuid: t.hourlyPayScheduleUuid }
|
|
60
|
+
].flatMap(({ compensationType: P, uuid: E }) => {
|
|
61
|
+
const S = o.find((A) => A.uuid === E);
|
|
62
|
+
return S ? [{ compensationType: P, schedule: S }] : [];
|
|
29
63
|
});
|
|
30
64
|
return /* @__PURE__ */ p(
|
|
31
|
-
|
|
65
|
+
M,
|
|
32
66
|
{
|
|
33
|
-
rows:
|
|
34
|
-
enableAutoPilot:
|
|
35
|
-
enableMultipleSchedules:
|
|
36
|
-
onEditSchedule:
|
|
37
|
-
onManageAssignment:
|
|
38
|
-
onEditAutoPilot:
|
|
67
|
+
rows: c,
|
|
68
|
+
enableAutoPilot: u,
|
|
69
|
+
enableMultipleSchedules: i,
|
|
70
|
+
onEditSchedule: e,
|
|
71
|
+
onManageAssignment: a,
|
|
72
|
+
onEditAutoPilot: d
|
|
39
73
|
}
|
|
40
74
|
);
|
|
41
75
|
}
|
|
42
|
-
const
|
|
76
|
+
const m = C(o.find((c) => c.active) ?? o[0]);
|
|
43
77
|
return /* @__PURE__ */ p(
|
|
44
78
|
_,
|
|
45
79
|
{
|
|
46
|
-
schedule:
|
|
47
|
-
enableAutoPilot:
|
|
48
|
-
enableMultipleSchedules:
|
|
80
|
+
schedule: m,
|
|
81
|
+
enableAutoPilot: u,
|
|
82
|
+
enableMultipleSchedules: i,
|
|
49
83
|
onEditSchedule: () => {
|
|
50
|
-
|
|
84
|
+
e(m);
|
|
51
85
|
},
|
|
52
|
-
onManageAssignment:
|
|
86
|
+
onManageAssignment: a,
|
|
53
87
|
onEditAutoPilot: () => {
|
|
54
|
-
|
|
88
|
+
d(m);
|
|
55
89
|
}
|
|
56
90
|
}
|
|
57
91
|
);
|
|
58
92
|
}
|
|
93
|
+
function G({
|
|
94
|
+
companyId: s,
|
|
95
|
+
assignment: n,
|
|
96
|
+
schedules: u,
|
|
97
|
+
...i
|
|
98
|
+
}) {
|
|
99
|
+
const { data: l } = g({ companyUuid: s }), { t: r } = U("Company.Management.PaySchedule"), o = O(l.departmentList).flatMap(
|
|
100
|
+
(e) => {
|
|
101
|
+
const d = n.departments?.find((m) => m.departmentUuid === e.uuid)?.payScheduleUuid ?? n.defaultPayScheduleUuid, a = u.find((m) => m.uuid === d);
|
|
102
|
+
return a ? [{ departmentName: e.title ?? r("unnamedDepartment"), schedule: a }] : [];
|
|
103
|
+
}
|
|
104
|
+
), t = u.find(
|
|
105
|
+
(e) => e.uuid === n.defaultPayScheduleUuid
|
|
106
|
+
);
|
|
107
|
+
return t && o.push({ departmentName: r("uncategorizedEmployees"), schedule: t }), /* @__PURE__ */ p(T, { rows: o, ...i });
|
|
108
|
+
}
|
|
109
|
+
function L({
|
|
110
|
+
companyId: s,
|
|
111
|
+
assignment: n,
|
|
112
|
+
schedules: u,
|
|
113
|
+
...i
|
|
114
|
+
}) {
|
|
115
|
+
const l = D(s);
|
|
116
|
+
if (l.accessDenied)
|
|
117
|
+
return /* @__PURE__ */ p(h, { rows: [], accessDenied: !0, ...i });
|
|
118
|
+
const r = /* @__PURE__ */ new Map();
|
|
119
|
+
for (const t of l.employees) {
|
|
120
|
+
const e = n.employees?.find((d) => d.employeeUuid === t.uuid)?.payScheduleUuid ?? n.defaultPayScheduleUuid;
|
|
121
|
+
e && r.set(e, (r.get(e) ?? 0) + 1);
|
|
122
|
+
}
|
|
123
|
+
const o = u.flatMap((t) => {
|
|
124
|
+
const e = r.get(t.uuid) ?? 0;
|
|
125
|
+
return e > 0 ? [{ schedule: t, employeeCount: e }] : [];
|
|
126
|
+
});
|
|
127
|
+
return /* @__PURE__ */ p(h, { rows: o, ...i });
|
|
128
|
+
}
|
|
59
129
|
export {
|
|
60
|
-
|
|
130
|
+
Q as PayScheduleOverview
|
|
61
131
|
};
|
|
62
132
|
//# sourceMappingURL=PayScheduleOverview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleOverview.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleOverview.tsx"],"sourcesContent":["import { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePaySchedulesGetAssignmentsSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAssignments'\nimport { PayScheduleAssignmentType } from '@gusto/embedded-api/models/components/payscheduleassignment'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { PayScheduleOverviewPresentation } from './PayScheduleOverviewPresentation'\nimport type { PayScheduleCompensationRow } from './PayScheduleCompensationOverviewPresentation'\nimport { PayScheduleCompensationOverviewPresentation } from './PayScheduleCompensationOverviewPresentation'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/** @internal */\nexport interface PayScheduleOverviewProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n enableAutoPilot?: boolean\n enableMultipleSchedules?: boolean\n}\n\n/** @internal */\nexport function PayScheduleOverview({\n companyId,\n onEvent,\n enableAutoPilot,\n enableMultipleSchedules,\n}: PayScheduleOverviewProps) {\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({ companyId })\n const { data: assignments } = usePaySchedulesGetAssignmentsSuspense({ companyId })\n const schedules = paySchedules.payScheduleShowResponse ?? []\n const assignment = assignments.payScheduleAssignment\n\n const editSchedule = (schedule: PayScheduleShow) => {\n onEvent(componentEvents.PAY_SCHEDULE_UPDATE, { uuid: schedule.uuid })\n }\n const editAutoPilot = (schedule: PayScheduleShow) => {\n onEvent(componentEvents.PAY_SCHEDULE_AUTO_PILOT_EDIT, { schedule })\n }\n const manageAssignment = () => {\n onEvent(componentEvents.PAY_SCHEDULE_MANAGE_ASSIGNMENT)\n }\n\n if (assignment?.type === PayScheduleAssignmentType.HourlySalaried) {\n /**\n * A uuid the assignment references but `paySchedulesGetAll` doesn't return has no schedule\n * to name, edit, or hand to the AutoPilot dialog, so its row is dropped rather than\n * rendered half-populated.\n */\n const rows = (\n [\n { compensationType: 'salaried', uuid: assignment.salariedPayScheduleUuid },\n { compensationType: 'hourly', uuid: assignment.hourlyPayScheduleUuid },\n ] as const\n ).flatMap<PayScheduleCompensationRow>(({ compensationType, uuid }) => {\n const schedule = schedules.find(s => s.uuid === uuid)\n return schedule ? [{ compensationType, schedule }] : []\n })\n\n return (\n <PayScheduleCompensationOverviewPresentation\n rows={rows}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={editSchedule}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={editAutoPilot}\n />\n )\n }\n\n /**\n * Prefer the schedule with employees assigned to it over an unassigned leftover — relevant\n * if enableMultipleSchedules was previously on and is now off, leaving more than one schedule\n * behind. PaySchedule.tsx only routes here once it's confirmed at least one schedule exists.\n */\n const schedule = ensureRequired(schedules.find(s => s.active) ?? schedules[0])\n\n return (\n <PayScheduleOverviewPresentation\n schedule={schedule}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={() => {\n editSchedule(schedule)\n }}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={() => {\n editAutoPilot(schedule)\n }}\n />\n )\n}\n"],"names":["PayScheduleOverview","companyId","onEvent","enableAutoPilot","enableMultipleSchedules","paySchedules","usePaySchedulesGetAllSuspense","assignments","usePaySchedulesGetAssignmentsSuspense","schedules","assignment","editSchedule","schedule","componentEvents","editAutoPilot","manageAssignment","PayScheduleAssignmentType","rows","compensationType","uuid","s","jsx","PayScheduleCompensationOverviewPresentation","ensureRequired","PayScheduleOverviewPresentation"],"mappings":";;;;;;;;AAoBO,SAASA,EAAoB;AAAA,EAClC,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,yBAAAC;AACF,GAA6B;AAC3B,QAAM,EAAE,MAAMC,EAAA,IAAiBC,EAA8B,EAAE,WAAAL,GAAW,GACpE,EAAE,MAAMM,EAAA,IAAgBC,EAAsC,EAAE,WAAAP,GAAW,GAC3EQ,IAAYJ,EAAa,2BAA2B,CAAA,GACpDK,IAAaH,EAAY,uBAEzBI,IAAe,CAACC,MAA8B;AAClD,IAAAV,EAAQW,EAAgB,qBAAqB,EAAE,MAAMD,EAAS,MAAM;AAAA,EACtE,GACME,IAAgB,CAACF,MAA8B;AACnD,IAAAV,EAAQW,EAAgB,8BAA8B,EAAE,UAAAD,GAAU;AAAA,EACpE,GACMG,IAAmB,MAAM;AAC7B,IAAAb,EAAQW,EAAgB,8BAA8B;AAAA,EACxD;AAEA,MAAIH,GAAY,SAASM,EAA0B,gBAAgB;AAMjE,UAAMC,IACJ;AAAA,MACE,EAAE,kBAAkB,YAAY,MAAMP,EAAW,wBAAA;AAAA,MACjD,EAAE,kBAAkB,UAAU,MAAMA,EAAW,sBAAA;AAAA,IAAsB,EAEvE,QAAoC,CAAC,EAAE,kBAAAQ,GAAkB,MAAAC,QAAW;AACpE,YAAMP,IAAWH,EAAU,KAAK,CAAAW,MAAKA,EAAE,SAASD,CAAI;AACpD,aAAOP,IAAW,CAAC,EAAE,kBAAAM,GAAkB,UAAAN,EAAAA,CAAU,IAAI,CAAA;AAAA,IACvD,CAAC;AAED,WACE,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAL;AAAA,QACA,iBAAAd;AAAA,QACA,yBAAAC;AAAA,QACA,gBAAgBO;AAAA,QAChB,oBAAoBI;AAAA,QACpB,iBAAiBD;AAAA,MAAA;AAAA,IAAA;AAAA,EAGvB;AAOA,QAAMF,IAAWW,EAAed,EAAU,KAAK,CAAAW,MAAKA,EAAE,MAAM,KAAKX,EAAU,CAAC,CAAC;AAE7E,SACE,gBAAAY;AAAA,IAACG;AAAA,IAAA;AAAA,MACC,UAAAZ;AAAA,MACA,iBAAAT;AAAA,MACA,yBAAAC;AAAA,MACA,gBAAgB,MAAM;AACpB,QAAAO,EAAaC,CAAQ;AAAA,MACvB;AAAA,MACA,oBAAoBG;AAAA,MACpB,iBAAiB,MAAM;AACrB,QAAAD,EAAcF,CAAQ;AAAA,MACxB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
1
|
+
{"version":3,"file":"PayScheduleOverview.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleOverview.tsx"],"sourcesContent":["import { useDepartmentsGetAllSuspense } from '@gusto/embedded-api/react-query/departmentsGetAll'\nimport { useTranslation } from 'react-i18next'\nimport type { PayScheduleAssignment } from '@gusto/embedded-api/models/components/payscheduleassignment'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePaySchedulesGetAssignmentsSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAssignments'\nimport { PayScheduleAssignmentType } from '@gusto/embedded-api/models/components/payscheduleassignment'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport { PayScheduleEmployeeOverviewPresentation } from './PayScheduleEmployeeOverviewPresentation'\nimport { useAssignableEmployeesSuspense } from './PayScheduleAssignment/useAssignableEmployees'\nimport { getCompanyDepartments } from './PayScheduleAssignment/departmentAccess'\nimport {\n PayScheduleDepartmentOverviewPresentation,\n type PayScheduleDepartmentRow,\n} from './PayScheduleDepartmentOverviewPresentation'\nimport { PayScheduleOverviewPresentation } from './PayScheduleOverviewPresentation'\nimport type { PayScheduleCompensationRow } from './PayScheduleCompensationOverviewPresentation'\nimport { PayScheduleCompensationOverviewPresentation } from './PayScheduleCompensationOverviewPresentation'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { ensureRequired } from '@/helpers/ensureRequired'\n\n/** @internal */\nexport interface PayScheduleOverviewProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n enableAutoPilot?: boolean\n enableMultipleSchedules?: boolean\n}\n\n/** @internal */\nexport function PayScheduleOverview({\n companyId,\n onEvent,\n enableAutoPilot,\n enableMultipleSchedules,\n}: PayScheduleOverviewProps) {\n const { data: paySchedules } = usePaySchedulesGetAllSuspense({ companyId })\n const { data: assignments } = usePaySchedulesGetAssignmentsSuspense({ companyId })\n const schedules = paySchedules.payScheduleShowResponse ?? []\n const assignment = assignments.payScheduleAssignment\n\n const editSchedule = (schedule: PayScheduleShow) => {\n onEvent(componentEvents.PAY_SCHEDULE_UPDATE, { uuid: schedule.uuid })\n }\n const editAutoPilot = (schedule: PayScheduleShow) => {\n onEvent(componentEvents.PAY_SCHEDULE_AUTO_PILOT_EDIT, { schedule })\n }\n const manageAssignment = () => {\n onEvent(componentEvents.PAY_SCHEDULE_MANAGE_ASSIGNMENT)\n }\n\n if (assignment?.type === PayScheduleAssignmentType.ByEmployee) {\n return (\n <PayScheduleEmployeeOverview\n companyId={companyId}\n assignment={assignment}\n schedules={schedules}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={editSchedule}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={editAutoPilot}\n />\n )\n }\n\n if (assignment?.type === PayScheduleAssignmentType.ByDepartment) {\n return (\n <PayScheduleDepartmentOverview\n companyId={companyId}\n assignment={assignment}\n schedules={schedules}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={editSchedule}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={editAutoPilot}\n />\n )\n }\n\n if (assignment?.type === PayScheduleAssignmentType.HourlySalaried) {\n /**\n * A uuid the assignment references but `paySchedulesGetAll` doesn't return has no schedule\n * to name, edit, or hand to the AutoPilot dialog, so its row is dropped rather than\n * rendered half-populated.\n */\n const rows = (\n [\n { compensationType: 'salaried', uuid: assignment.salariedPayScheduleUuid },\n { compensationType: 'hourly', uuid: assignment.hourlyPayScheduleUuid },\n ] as const\n ).flatMap<PayScheduleCompensationRow>(({ compensationType, uuid }) => {\n const schedule = schedules.find(s => s.uuid === uuid)\n return schedule ? [{ compensationType, schedule }] : []\n })\n\n return (\n <PayScheduleCompensationOverviewPresentation\n rows={rows}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={editSchedule}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={editAutoPilot}\n />\n )\n }\n\n /**\n * Prefer the schedule with employees assigned to it over an unassigned leftover — relevant\n * if enableMultipleSchedules was previously on and is now off, leaving more than one schedule\n * behind. PaySchedule.tsx only routes here once it's confirmed at least one schedule exists.\n */\n const schedule = ensureRequired(schedules.find(s => s.active) ?? schedules[0])\n\n return (\n <PayScheduleOverviewPresentation\n schedule={schedule}\n enableAutoPilot={enableAutoPilot}\n enableMultipleSchedules={enableMultipleSchedules}\n onEditSchedule={() => {\n editSchedule(schedule)\n }}\n onManageAssignment={manageAssignment}\n onEditAutoPilot={() => {\n editAutoPilot(schedule)\n }}\n />\n )\n}\n\nfunction PayScheduleDepartmentOverview({\n companyId,\n assignment,\n schedules,\n ...props\n}: {\n companyId: string\n assignment: PayScheduleAssignment\n schedules: PayScheduleShow[]\n} & Omit<React.ComponentProps<typeof PayScheduleDepartmentOverviewPresentation>, 'rows'>) {\n const { data } = useDepartmentsGetAllSuspense({ companyUuid: companyId })\n const { t } = useTranslation('Company.Management.PaySchedule')\n const rows = getCompanyDepartments(data.departmentList).flatMap<PayScheduleDepartmentRow>(\n department => {\n const uuid =\n assignment.departments?.find(selection => selection.departmentUuid === department.uuid)\n ?.payScheduleUuid ?? assignment.defaultPayScheduleUuid\n const schedule = schedules.find(schedule => schedule.uuid === uuid)\n return schedule\n ? [{ departmentName: department.title ?? t('unnamedDepartment'), schedule }]\n : []\n },\n )\n const defaultSchedule = schedules.find(\n schedule => schedule.uuid === assignment.defaultPayScheduleUuid,\n )\n if (defaultSchedule)\n rows.push({ departmentName: t('uncategorizedEmployees'), schedule: defaultSchedule })\n return <PayScheduleDepartmentOverviewPresentation rows={rows} {...props} />\n}\n\nfunction PayScheduleEmployeeOverview({\n companyId,\n assignment,\n schedules,\n ...props\n}: {\n companyId: string\n assignment: PayScheduleAssignment\n schedules: PayScheduleShow[]\n} & Omit<React.ComponentProps<typeof PayScheduleEmployeeOverviewPresentation>, 'rows'>) {\n const roster = useAssignableEmployeesSuspense(companyId)\n if (roster.accessDenied)\n return <PayScheduleEmployeeOverviewPresentation rows={[]} accessDenied {...props} />\n const counts = new Map<string, number>()\n for (const employee of roster.employees) {\n const uuid =\n assignment.employees?.find(entry => entry.employeeUuid === employee.uuid)?.payScheduleUuid ??\n assignment.defaultPayScheduleUuid\n if (uuid) counts.set(uuid, (counts.get(uuid) ?? 0) + 1)\n }\n const rows = schedules.flatMap(schedule => {\n const employeeCount = counts.get(schedule.uuid) ?? 0\n return employeeCount > 0 ? [{ schedule, employeeCount }] : []\n })\n return <PayScheduleEmployeeOverviewPresentation rows={rows} {...props} />\n}\n"],"names":["PayScheduleOverview","companyId","onEvent","enableAutoPilot","enableMultipleSchedules","paySchedules","usePaySchedulesGetAllSuspense","assignments","usePaySchedulesGetAssignmentsSuspense","schedules","assignment","editSchedule","schedule","componentEvents","editAutoPilot","manageAssignment","PayScheduleAssignmentType","jsx","PayScheduleEmployeeOverview","PayScheduleDepartmentOverview","rows","compensationType","uuid","s","PayScheduleCompensationOverviewPresentation","ensureRequired","PayScheduleOverviewPresentation","props","data","useDepartmentsGetAllSuspense","t","useTranslation","getCompanyDepartments","department","selection","defaultSchedule","PayScheduleDepartmentOverviewPresentation","roster","useAssignableEmployeesSuspense","PayScheduleEmployeeOverviewPresentation","counts","employee","entry","employeeCount"],"mappings":"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"}
|
package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleOverviewPresentation.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/
|
|
1
|
+
{"version":3,"file":"PayScheduleOverviewPresentation.js","sources":["../../../../../src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport styles from './PayScheduleOverviewPresentation.module.scss'\nimport { Flex } from '@/components/Common/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport interface PayScheduleOverviewPresentationProps {\n /** The company's single pay schedule. */\n schedule: PayScheduleShow\n /** Shows the AutoPilot row and its Edit action when `true`. */\n enableAutoPilot?: boolean\n /** Shows the Manage action when `true`. */\n enableMultipleSchedules?: boolean\n /** Fired when the user clicks Edit on the pay schedule row. */\n onEditSchedule: () => void\n /** Fired when the user clicks Manage. */\n onManageAssignment: () => void\n /** Fired when the user clicks Edit on the AutoPilot row. */\n onEditAutoPilot: () => void\n}\n\nfunction Row({ label, value, action }: { label: ReactNode; value: ReactNode; action?: ReactNode }) {\n const Components = useComponentContext()\n return (\n <div className={styles.row}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Text weight=\"semibold\">{label}</Components.Text>\n <Components.Text variant=\"supporting\">{value}</Components.Text>\n </Flex>\n {action}\n </Flex>\n </div>\n )\n}\n\n/** @internal */\nexport function PayScheduleOverviewPresentation({\n schedule,\n enableAutoPilot,\n enableMultipleSchedules,\n onEditSchedule,\n onManageAssignment,\n onEditAutoPilot,\n}: PayScheduleOverviewPresentationProps) {\n const { t } = useTranslation('Company.Management.PaySchedule')\n const Components = useComponentContext()\n\n return (\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n description={t('description')}\n action={\n enableMultipleSchedules ? (\n <Components.Button variant=\"secondary\" onClick={onManageAssignment}>\n {t('manageCta')}\n </Components.Button>\n ) : undefined\n }\n />\n }\n >\n <div className={styles.rows}>\n <Row\n label={t('labels.name')}\n value={schedule.customName}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onEditSchedule}\n aria-label={t('editScheduleAriaLabel')}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n <Row label={t('labels.frequency')} value={schedule.frequency} />\n {enableAutoPilot ? (\n <Row\n label={t('autoPilot.label')}\n value={schedule.autoPayroll ? t('autoPilot.enabled') : t('autoPilot.disabled')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onEditAutoPilot}\n aria-label={t('editAutoPilotAriaLabel')}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n ) : null}\n </div>\n </Components.Box>\n )\n}\n"],"names":["Row","label","value","action","Components","useComponentContext","jsx","styles","Flex","jsxs","PayScheduleOverviewPresentation","schedule","enableAutoPilot","enableMultipleSchedules","onEditSchedule","onManageAssignment","onEditAutoPilot","t","useTranslation"],"mappings":";;;;;AAuBA,SAASA,EAAI,EAAE,OAAAC,GAAO,OAAAC,GAAO,QAAAC,KAAsE;AACjG,QAAMC,IAAaC,EAAA;AACnB,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,KACrB,4BAACC,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAC9C,UAAA;AAAA,IAAA,gBAAAC,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAF,EAACF,EAAW,MAAX,EAAgB,QAAO,YAAY,UAAAH,GAAM;AAAA,wBACzCG,EAAW,MAAX,EAAgB,SAAQ,cAAc,UAAAF,EAAA,CAAM;AAAA,IAAA,GAC/C;AAAA,IACCC;AAAA,EAAA,EAAA,CACH,EAAA,CACF;AAEJ;AAGO,SAASO,EAAgC;AAAA,EAC9C,UAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,iBAAAC;AACF,GAAyC;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,gCAAgC,GACvDd,IAAaC,EAAA;AAEnB,SACE,gBAAAC;AAAA,IAACF,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAE;AAAA,QAACF,EAAW;AAAA,QAAX;AAAA,UACC,OAAOa,EAAE,OAAO;AAAA,UAChB,aAAaA,EAAE,aAAa;AAAA,UAC5B,QACEJ,IACE,gBAAAP,EAACF,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASW,GAC7C,UAAAE,EAAE,WAAW,GAChB,IACE;AAAA,QAAA;AAAA,MAAA;AAAA,MAKV,UAAA,gBAAAR,EAAC,OAAA,EAAI,WAAWF,EAAO,MACrB,UAAA;AAAA,QAAA,gBAAAD;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,OAAOiB,EAAE,aAAa;AAAA,YACtB,OAAON,EAAS;AAAA,YAChB,QACE,gBAAAL;AAAA,cAACF,EAAW;AAAA,cAAX;AAAA,gBACC,SAAQ;AAAA,gBACR,SAASU;AAAA,gBACT,cAAYG,EAAE,uBAAuB;AAAA,gBAEpC,YAAE,SAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UACd;AAAA,QAAA;AAAA,QAGJ,gBAAAX,EAACN,KAAI,OAAOiB,EAAE,kBAAkB,GAAG,OAAON,EAAS,WAAW;AAAA,QAC7DC,IACC,gBAAAN;AAAA,UAACN;AAAA,UAAA;AAAA,YACC,OAAOiB,EAAE,iBAAiB;AAAA,YAC1B,OAAON,EAAS,cAAcM,EAAE,mBAAmB,IAAIA,EAAE,oBAAoB;AAAA,YAC7E,QACE,gBAAAX;AAAA,cAACF,EAAW;AAAA,cAAX;AAAA,gBACC,SAAQ;AAAA,gBACR,SAASY;AAAA,gBACT,cAAYC,EAAE,wBAAwB;AAAA,gBAErC,YAAE,SAAS;AAAA,cAAA;AAAA,YAAA;AAAA,UACd;AAAA,QAAA,IAGF;AAAA,MAAA,EAAA,CACN;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payScheduleManagementStateMachine.js","sources":["../../../../../src/components/Company/PaySchedule/management/payScheduleManagementStateMachine.ts"],"sourcesContent":["import { reduce, state, transition } from 'robot3'\nimport type { ComponentType } from 'react'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/
|
|
1
|
+
{"version":3,"file":"payScheduleManagementStateMachine.js","sources":["../../../../../src/components/Company/PaySchedule/management/payScheduleManagementStateMachine.ts"],"sourcesContent":["import { reduce, state, transition } from 'robot3'\nimport type { ComponentType } from 'react'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport type { PayScheduleManagementContextInterface } from './PayScheduleManagementComponents'\nimport {\n PayScheduleOverviewContextual,\n PayScheduleEditFormContextual,\n PayScheduleAssignmentContextual,\n} from './PayScheduleManagementComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\n\ntype EventPayloads = {\n [componentEvents.PAY_SCHEDULE_UPDATE]: { uuid: string }\n [componentEvents.PAY_SCHEDULE_CREATED]: undefined\n [componentEvents.PAY_SCHEDULE_AUTO_PILOT_EDIT]: { schedule: PayScheduleShow }\n}\n\nconst toOverview = reduce(\n (ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n component: PayScheduleOverviewContextual as ComponentType,\n payScheduleId: undefined,\n autoPilotSchedule: undefined,\n successAlert: null,\n }),\n)\n\nconst toOverviewWithAlert = (alert: PayScheduleManagementContextInterface['successAlert']) =>\n reduce((ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n component: PayScheduleOverviewContextual as ComponentType,\n payScheduleId: undefined,\n autoPilotSchedule: undefined,\n successAlert: alert,\n }))\n\n/** @internal */\nexport const payScheduleManagementStateMachine = {\n overview: state<MachineTransition>(\n transition(\n componentEvents.PAY_SCHEDULE_UPDATE,\n 'editSchedule',\n reduce(\n (\n ctx: PayScheduleManagementContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.PAY_SCHEDULE_UPDATE>,\n ): PayScheduleManagementContextInterface => ({\n ...ctx,\n component: PayScheduleEditFormContextual as ComponentType,\n payScheduleId: ev.payload.uuid,\n }),\n ),\n ),\n transition(\n componentEvents.PAY_SCHEDULE_MANAGE_ASSIGNMENT,\n 'manageAssignment',\n reduce(\n (ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n component: PayScheduleAssignmentContextual as ComponentType,\n successAlert: null,\n }),\n ),\n ),\n transition(componentEvents.PAY_SCHEDULE_MANAGEMENT_ALERT_DISMISSED, 'overview', toOverview),\n transition(\n componentEvents.PAY_SCHEDULE_AUTO_PILOT_EDIT,\n 'overview',\n reduce(\n (\n ctx: PayScheduleManagementContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.PAY_SCHEDULE_AUTO_PILOT_EDIT>,\n ): PayScheduleManagementContextInterface => ({\n ...ctx,\n autoPilotSchedule: ev.payload.schedule,\n }),\n ),\n ),\n transition(\n componentEvents.PAY_SCHEDULE_AUTO_PILOT_ENABLED,\n 'overview',\n reduce(\n (ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n autoPilotSchedule: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.PAY_SCHEDULE_AUTO_PILOT_DISABLED,\n 'overview',\n reduce(\n (ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n autoPilotSchedule: undefined,\n }),\n ),\n ),\n transition(\n componentEvents.PAY_SCHEDULE_AUTO_PILOT_DISMISSED,\n 'overview',\n reduce(\n (ctx: PayScheduleManagementContextInterface): PayScheduleManagementContextInterface => ({\n ...ctx,\n autoPilotSchedule: undefined,\n }),\n ),\n ),\n ),\n editSchedule: state<MachineTransition>(\n transition(componentEvents.PAY_SCHEDULE_UPDATED, 'overview', toOverview),\n transition(componentEvents.CANCEL, 'overview', toOverview),\n ),\n /**\n * Entered directly from PaySchedule.tsx's initial routing when the company has no pay\n * schedules yet — there's no overview to fall back to, so CANCEL isn't handled here; it\n * still bubbles to the host via Flow's onEvent re-emit.\n */\n createSchedule: state<MachineTransition>(\n transition(componentEvents.PAY_SCHEDULE_CREATED, 'overview', toOverview),\n ),\n manageAssignment: state<MachineTransition>(\n transition(componentEvents.PAY_SCHEDULE_ASSIGNMENT_CANCEL, 'overview', toOverview),\n transition(\n componentEvents.PAY_SCHEDULE_ASSIGNED,\n 'overview',\n toOverviewWithAlert('assignmentUpdated'),\n ),\n ),\n}\n"],"names":["toOverview","reduce","ctx","PayScheduleOverviewContextual","toOverviewWithAlert","alert","payScheduleManagementStateMachine","state","transition","componentEvents","ev","PayScheduleEditFormContextual","PayScheduleAssignmentContextual"],"mappings":";;;AAkBA,MAAMA,IAAaC;AAAA,EACjB,CAACC,OAAuF;AAAA,IACtF,GAAGA;AAAA,IACH,WAAWC;AAAA,IACX,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,cAAc;AAAA,EAAA;AAElB,GAEMC,IAAsB,CAACC,MAC3BJ,EAAO,CAACC,OAAuF;AAAA,EAC7F,GAAGA;AAAA,EACH,WAAWC;AAAA,EACX,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,cAAcE;AAChB,EAAE,GAGSC,IAAoC;AAAA,EAC/C,UAAUC;AAAA,IACRC;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CACEC,GACAQ,OAC2C;AAAA,UAC3C,GAAGR;AAAA,UACH,WAAWS;AAAA,UACX,eAAeD,EAAG,QAAQ;AAAA,QAAA;AAAA,MAC5B;AAAA,IACF;AAAA,IAEFF;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAAuF;AAAA,UACtF,GAAGA;AAAA,UACH,WAAWU;AAAA,UACX,cAAc;AAAA,QAAA;AAAA,MAChB;AAAA,IACF;AAAA,IAEFJ,EAAWC,EAAgB,yCAAyC,YAAYT,CAAU;AAAA,IAC1FQ;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CACEC,GACAQ,OAC2C;AAAA,UAC3C,GAAGR;AAAA,UACH,mBAAmBQ,EAAG,QAAQ;AAAA,QAAA;AAAA,MAChC;AAAA,IACF;AAAA,IAEFF;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAAuF;AAAA,UACtF,GAAGA;AAAA,UACH,mBAAmB;AAAA,QAAA;AAAA,MACrB;AAAA,IACF;AAAA,IAEFM;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAAuF;AAAA,UACtF,GAAGA;AAAA,UACH,mBAAmB;AAAA,QAAA;AAAA,MACrB;AAAA,IACF;AAAA,IAEFM;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAR;AAAA,QACE,CAACC,OAAuF;AAAA,UACtF,GAAGA;AAAA,UACH,mBAAmB;AAAA,QAAA;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AAAA,EAEF,cAAcK;AAAA,IACZC,EAAWC,EAAgB,sBAAsB,YAAYT,CAAU;AAAA,IACvEQ,EAAWC,EAAgB,QAAQ,YAAYT,CAAU;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO3D,gBAAgBO;AAAA,IACdC,EAAWC,EAAgB,sBAAsB,YAAYT,CAAU;AAAA,EAAA;AAAA,EAEzE,kBAAkBO;AAAA,IAChBC,EAAWC,EAAgB,gCAAgC,YAAYT,CAAU;AAAA,IACjFQ;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAL,EAAoB,mBAAmB;AAAA,IAAA;AAAA,EACzC;AAEJ;"}
|
package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePayScheduleForm.js","sources":["../../../../../../src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport type { PaySchedulePreviewPayPeriod } from '@gusto/embedded-api/models/components/payschedulepreviewpayperiod'\nimport { WorkweekStartDay } from '@gusto/embedded-api/models/components/payschedulecreaterequest'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport { usePaySchedulesGetPreview } from '@gusto/embedded-api/react-query/paySchedulesGetPreview'\nimport { usePaySchedulesCreateMutation } from '@gusto/embedded-api/react-query/paySchedulesCreate'\nimport { usePaySchedulesUpdateMutation } from '@gusto/embedded-api/react-query/paySchedulesUpdate'\nimport { usePaymentConfigsGet } from '@gusto/embedded-api/react-query/paymentConfigsGet'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createPayScheduleSchema,\n type PayScheduleOptionalFieldsToRequire,\n type PayScheduleFormData,\n type PayScheduleFormOutputs,\n type PayScheduleFrequency,\n type PayScheduleWorkweekStartDay,\n} from './payScheduleSchema'\nimport {\n CustomNameField,\n FrequencyField,\n CustomTwicePerMonthField,\n AnchorPayDateField,\n AnchorEndOfPayPeriodField,\n Day1Field,\n Day2Field,\n WorkweekStartDayField,\n} from './fields'\nimport type {\n CustomNameFieldProps,\n FrequencyFieldProps,\n CustomTwicePerMonthFieldProps,\n AnchorPayDateFieldProps,\n AnchorEndOfPayPeriodFieldProps,\n Day1FieldProps,\n Day2FieldProps,\n WorkweekStartDayFieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { withFlags } from '@/partner-hook-utils/form/withFlags'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { parsePaymentSpeedDays } from '@/hooks/useCompanyPaymentSpeed'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\nexport type { PayScheduleOptionalFieldsToRequire } from './payScheduleSchema'\n\n/**\n * Configuration options for {@link usePayScheduleForm}.\n *\n * @remarks\n * Presence or absence of `payScheduleId` selects between update and create mode.\n *\n * @public\n */\nexport interface UsePayScheduleFormProps {\n /** UUID of the company that owns the pay schedule. */\n companyId: string\n /**\n * When set, loads that pay schedule and updates it on submit. When omitted,\n * the form is in create mode and creates a new schedule on submit.\n */\n payScheduleId?: string\n /** Override fields that are optional on a given mode to be required. See `PayScheduleOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: PayScheduleOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<PayScheduleFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n /**\n * Renders `Fields.WorkweekStartDay` disabled while still submitting its current value,\n * for partners that compute the workweek start day themselves and don't want end users\n * editing it directly. Defaults to `false`. Has no effect unless the `payrollRegularRateOfPay`\n * unstable feature is enabled.\n *\n * @alpha\n */\n disableWorkweekStartDayEditing?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `usePayScheduleForm().form.Fields`.\n *\n * @remarks\n * `CustomTwicePerMonth`, `Day1`, and `Day2` are conditionally `undefined` based\n * on the selected frequency and twice-per-month strategy — always null-check them\n * before rendering.\n *\n * @public\n */\nexport interface PayScheduleFormFields {\n /** Bound to `customName`. Display name text input. Always available. */\n CustomName: ComponentType<CustomNameFieldProps>\n /** Bound to `frequency`. Frequency selector. Always available. */\n Frequency: ComponentType<FrequencyFieldProps>\n /** Bound to `customTwicePerMonth`. Twice-per-month strategy radio group. Only available when frequency is `'Twice per month'`. */\n CustomTwicePerMonth: ComponentType<CustomTwicePerMonthFieldProps> | undefined\n /** Bound to `anchorPayDate`. First pay date picker. Always available. */\n AnchorPayDate: ComponentType<AnchorPayDateFieldProps>\n /** Bound to `anchorEndOfPayPeriod`. First pay period end date picker. Always available. */\n AnchorEndOfPayPeriod: ComponentType<AnchorEndOfPayPeriodFieldProps>\n /** Bound to `day1`. First-pay-day-of-month number input. Available when frequency is `'Monthly'`, or `'Twice per month'` with `'custom'` strategy. */\n Day1: ComponentType<Day1FieldProps> | undefined\n /** Bound to `day2`. Last-pay-day-of-month number input. Available when frequency is `'Twice per month'` with `'custom'` strategy. */\n Day2: ComponentType<Day2FieldProps> | undefined\n /**\n * Bound to `workweekStartDay`. Workweek start day selector, used for regular rate of pay\n * overtime calculations. `undefined` unless the `payrollRegularRateOfPay` unstable feature\n * is enabled.\n *\n * @alpha\n */\n WorkweekStartDay: ComponentType<WorkweekStartDayFieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link usePayScheduleForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with the\n * pay-schedule-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UsePayScheduleFormReady extends BaseFormHookReady<\n PayScheduleFieldsMetadata,\n PayScheduleFormData,\n PayScheduleFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The pay schedule loaded for update; `null` in create mode. */\n paySchedule: PayScheduleShow | null\n /** Upcoming pay periods previewed from current form values; `null` until the anchor date fields are complete. */\n payPeriodPreview: PaySchedulePreviewPayPeriod[] | null\n /** `true` while the pay period preview request is in flight. */\n payPreviewLoading: boolean\n /** Business days the company needs to process payroll, derived from payment configs; `null` if unavailable. */\n paymentSpeedDays: number | null\n }\n /** Reactive status flags. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** Whether the form is creating a new schedule or updating an existing one. */\n mode: 'create' | 'update'\n }\n /** Available actions. */\n actions: {\n /** Validates the form and dispatches the create or update mutation. Returns the saved schedule, or `undefined` if validation failed. */\n onSubmit: () => Promise<HookSubmitResult<PayScheduleShow> | undefined>\n }\n}\n\nconst FREQUENCY_OPTIONS: Array<{ value: PayScheduleFrequency; label: string }> = [\n { value: 'Every week', label: 'Every week' },\n { value: 'Every other week', label: 'Every other week' },\n { value: 'Twice per month', label: 'Twice per month' },\n { value: 'Monthly', label: 'Monthly' },\n]\n\nconst FREQUENCY_ENTRIES: PayScheduleFrequency[] = FREQUENCY_OPTIONS.map(o => o.value)\n\nconst TWICE_PER_MONTH_OPTIONS = [\n { value: '1st15th', label: '15th and Last day of the month' },\n { value: 'custom', label: 'Custom' },\n]\n\nconst TWICE_PER_MONTH_ENTRIES = TWICE_PER_MONTH_OPTIONS.map(o => o.value)\n\nconst WORKWEEK_START_DAY_ENTRIES: PayScheduleWorkweekStartDay[] = Object.values(WorkweekStartDay)\n\nconst WORKWEEK_START_DAY_OPTIONS: Array<{ value: PayScheduleWorkweekStartDay; label: string }> =\n WORKWEEK_START_DAY_ENTRIES.map(value => ({ value, label: value }))\n\nfunction formatWatchedDate(value: unknown): string {\n if (value instanceof Date) return formatDateToStringDate(value) || ''\n if (typeof value === 'string' && value) return value\n return ''\n}\n\nfunction deriveCustomTwicePerMonth(\n frequency: string | undefined,\n day1: number | undefined,\n day2: number | undefined,\n): string {\n if (frequency !== 'Twice per month') return ''\n if (day1 === 15 && day2 === 31) return '1st15th'\n // Only pre-select 'custom' when there are real day values to represent (e.g.\n // editing an existing custom schedule). With no day basis, leave the radio\n // unselected so its required validation prompts an explicit choice rather\n // than silently forcing empty day1/day2 fields into a required state.\n if (day1 != null && day2 != null) return 'custom'\n return ''\n}\n\n/** @internal */\nfunction buildPayScheduleFieldsMetadata(\n base: Record<keyof PayScheduleFormData, FieldMetadata>,\n disableWorkweekStartDayEditing: boolean,\n) {\n return {\n customName: base.customName,\n frequency: withOptions<PayScheduleFrequency>(\n base.frequency,\n FREQUENCY_OPTIONS,\n FREQUENCY_ENTRIES,\n ),\n customTwicePerMonth: withOptions<string>(\n base.customTwicePerMonth,\n TWICE_PER_MONTH_OPTIONS,\n TWICE_PER_MONTH_ENTRIES,\n ),\n anchorPayDate: base.anchorPayDate,\n anchorEndOfPayPeriod: base.anchorEndOfPayPeriod,\n day1: base.day1,\n day2: base.day2,\n workweekStartDay: withOptions<PayScheduleWorkweekStartDay>(\n withFlags(base.workweekStartDay, { isDisabled: disableWorkweekStartDayEditing }),\n WORKWEEK_START_DAY_OPTIONS,\n WORKWEEK_START_DAY_ENTRIES,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Form hook for creating or updating a company pay schedule.\n *\n * @remarks\n * When `payScheduleId` is supplied the hook loads that schedule and issues an\n * update on submit; when omitted it operates in create mode. While both anchor\n * date fields are filled in, the hook fetches a live pay period calendar\n * preview exposed on `data.payPeriodPreview`. `data.paymentSpeedDays` reflects\n * the company's payment configuration and is useful for surfacing UI hints\n * about how far ahead the first pay date must be.\n *\n * @param props - See {@link UsePayScheduleFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UsePayScheduleFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * usePayScheduleForm,\n * SDKFormProvider,\n * type UsePayScheduleFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function PaySchedulePage({ companyId }: { companyId: string }) {\n * const paySchedule = usePayScheduleForm({ companyId })\n *\n * if (paySchedule.isLoading) return <div>Loading...</div>\n *\n * return <PayScheduleFormReady paySchedule={paySchedule} />\n * }\n *\n * function PayScheduleFormReady({ paySchedule }: { paySchedule: UsePayScheduleFormReady }) {\n * const { Fields } = paySchedule.form\n *\n * return (\n * <SDKFormProvider formHookResult={paySchedule}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void paySchedule.actions.onSubmit()\n * }}\n * >\n * <Fields.CustomName label=\"Name\" validationMessages={{ REQUIRED: 'Name is required' }} />\n * <Fields.Frequency label=\"Frequency\" validationMessages={{ REQUIRED: 'Frequency is required' }} />\n * {Fields.CustomTwicePerMonth && <Fields.CustomTwicePerMonth label=\"Frequency Options\" />}\n * <Fields.AnchorPayDate label=\"First pay date\" validationMessages={{ REQUIRED: 'Required' }} />\n * <Fields.AnchorEndOfPayPeriod label=\"First pay period end\" validationMessages={{ REQUIRED: 'Required' }} />\n * {Fields.Day1 && (\n * <Fields.Day1\n * label=\"First pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * {Fields.Day2 && (\n * <Fields.Day2\n * label=\"Last pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * <button type=\"submit\" disabled={paySchedule.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function usePayScheduleForm({\n companyId,\n payScheduleId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n disableWorkweekStartDayEditing = false,\n}: UsePayScheduleFormProps): HookLoadingResult | UsePayScheduleFormReady {\n const isWorkweekStartDayEnabled = useUnstableFeature('payrollRegularRateOfPay')\n const payScheduleQuery = usePaySchedulesGet(\n { companyId, payScheduleId: payScheduleId ?? '' },\n { enabled: !!payScheduleId },\n )\n\n const paymentConfigsQuery = usePaymentConfigsGet({ companyUuid: companyId })\n\n const currentPaySchedule = payScheduleQuery.data?.payScheduleShow ?? null\n const paymentSpeed = paymentConfigsQuery.data?.paymentConfigs?.paymentSpeed\n const paymentSpeedDays = parsePaymentSpeedDays(paymentSpeed)\n\n const isCreateMode = !currentPaySchedule\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createPayScheduleSchema({ mode, optionalFieldsToRequire }),\n [mode, optionalFieldsToRequire],\n )\n\n const resolvedDefaults: PayScheduleFormData = {\n customName: currentPaySchedule?.customName ?? partnerDefaults?.customName ?? '',\n frequency: (currentPaySchedule?.frequency ??\n partnerDefaults?.frequency ??\n 'Every week') as PayScheduleFrequency,\n customTwicePerMonth: deriveCustomTwicePerMonth(\n currentPaySchedule?.frequency ?? partnerDefaults?.frequency,\n currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? undefined,\n currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? undefined,\n ),\n anchorPayDate:\n currentPaySchedule?.anchorPayDate?.toString() ?? partnerDefaults?.anchorPayDate ?? null,\n anchorEndOfPayPeriod:\n currentPaySchedule?.anchorEndOfPayPeriod?.toString() ??\n partnerDefaults?.anchorEndOfPayPeriod ??\n null,\n day1: currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? NaN,\n day2: currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? NaN,\n workweekStartDay:\n currentPaySchedule?.workweekStartDay ?? partnerDefaults?.workweekStartDay ?? null,\n }\n\n const formMethods = useForm<PayScheduleFormData, unknown, PayScheduleFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedFrequency = useWatch({ control: formMethods.control, name: 'frequency' })\n const watchedCustomTwicePerMonth = useWatch({\n control: formMethods.control,\n name: 'customTwicePerMonth',\n })\n const watchedAnchorPayDate = useWatch({ control: formMethods.control, name: 'anchorPayDate' })\n const watchedAnchorEndOfPayPeriod = useWatch({\n control: formMethods.control,\n name: 'anchorEndOfPayPeriod',\n })\n const watchedDay1 = useWatch({ control: formMethods.control, name: 'day1' })\n const watchedDay2 = useWatch({ control: formMethods.control, name: 'day2' })\n\n useEffect(() => {\n if (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === '1st15th') {\n formMethods.setValue('day1', 15)\n formMethods.setValue('day2', 31)\n }\n }, [watchedFrequency, watchedCustomTwicePerMonth, formMethods.setValue])\n\n const formattedAnchorPayDate = formatWatchedDate(watchedAnchorPayDate)\n const formattedAnchorEndOfPayPeriod = formatWatchedDate(watchedAnchorEndOfPayPeriod)\n\n const previewEnabled = Boolean(formattedAnchorPayDate && formattedAnchorEndOfPayPeriod)\n\n const previewQuery = usePaySchedulesGetPreview(\n {\n companyId,\n frequency: watchedFrequency,\n ...(formattedAnchorPayDate && { anchorPayDate: new RFCDate(formattedAnchorPayDate) }),\n ...(formattedAnchorEndOfPayPeriod && {\n anchorEndOfPayPeriod: new RFCDate(formattedAnchorEndOfPayPeriod),\n }),\n day1: watchedDay1 || undefined,\n day2: watchedDay2 || undefined,\n } as Parameters<typeof usePaySchedulesGetPreview>[0],\n { enabled: previewEnabled },\n )\n\n const payPeriodPreview: PaySchedulePreviewPayPeriod[] | undefined =\n previewQuery.data?.paySchedulePreview?.payPeriods\n const payPreviewLoading = previewQuery.isLoading && previewEnabled\n\n const createPayScheduleMutation = usePaySchedulesCreateMutation()\n const updatePayScheduleMutation = usePaySchedulesUpdateMutation()\n\n const isPending = createPayScheduleMutation.isPending || updatePayScheduleMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PayScheduleForm')\n\n const queries = payScheduleId ? [payScheduleQuery, paymentConfigsQuery] : [paymentConfigsQuery]\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const showCustomTwicePerMonth = watchedFrequency === 'Twice per month'\n const showDay1 =\n watchedFrequency === 'Monthly' ||\n (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom')\n const showDay2 = watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom'\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildPayScheduleFieldsMetadata(\n baseMetadata,\n disableWorkweekStartDayEditing,\n )\n\n const onSubmit = async (): Promise<HookSubmitResult<PayScheduleShow> | undefined> => {\n let submitResult: HookSubmitResult<PayScheduleShow> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: PayScheduleFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const anchorPayDate = payload.anchorPayDate ?? ''\n const anchorEndOfPayPeriod = payload.anchorEndOfPayPeriod ?? ''\n\n if (isCreateMode) {\n const result = await createPayScheduleMutation.mutateAsync({\n request: {\n companyId,\n payScheduleCreateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n },\n },\n })\n\n submitResult = { mode: 'create', data: result.payScheduleShow! }\n } else {\n const result = await updatePayScheduleMutation.mutateAsync({\n request: {\n payScheduleId: currentPaySchedule.uuid,\n companyId,\n payScheduleUpdateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n version: currentPaySchedule.version!,\n },\n },\n })\n\n submitResult = { mode: 'update', data: result.payScheduleShow! }\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n paymentConfigsQuery.isLoading || (payScheduleId ? payScheduleQuery.isLoading : false)\n\n if (isDataLoading) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paySchedule: currentPaySchedule,\n payPeriodPreview: payPeriodPreview ?? null,\n payPreviewLoading,\n paymentSpeedDays,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n CustomName: CustomNameField,\n Frequency: FrequencyField,\n CustomTwicePerMonth: showCustomTwicePerMonth ? CustomTwicePerMonthField : undefined,\n AnchorPayDate: AnchorPayDateField,\n AnchorEndOfPayPeriod: AnchorEndOfPayPeriodField,\n Day1: showDay1 ? Day1Field : undefined,\n Day2: showDay2 ? Day2Field : undefined,\n WorkweekStartDay: isWorkweekStartDayEnabled ? WorkweekStartDayField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type UsePayScheduleFormResult = HookLoadingResult | UsePayScheduleFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type PayScheduleFieldsMetadata = ReturnType<typeof buildPayScheduleFieldsMetadata>\n"],"names":["FREQUENCY_OPTIONS","FREQUENCY_ENTRIES","o","TWICE_PER_MONTH_OPTIONS","TWICE_PER_MONTH_ENTRIES","WORKWEEK_START_DAY_ENTRIES","WorkweekStartDay","WORKWEEK_START_DAY_OPTIONS","value","formatWatchedDate","formatDateToStringDate","deriveCustomTwicePerMonth","frequency","day1","day2","buildPayScheduleFieldsMetadata","base","disableWorkweekStartDayEditing","withOptions","withFlags","usePayScheduleForm","companyId","payScheduleId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","isWorkweekStartDayEnabled","useUnstableFeature","payScheduleQuery","usePaySchedulesGet","paymentConfigsQuery","usePaymentConfigsGet","currentPaySchedule","paymentSpeed","paymentSpeedDays","parsePaymentSpeedDays","isCreateMode","mode","schema","metadataConfig","useMemo","createPayScheduleSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedFrequency","useWatch","watchedCustomTwicePerMonth","watchedAnchorPayDate","watchedAnchorEndOfPayPeriod","watchedDay1","watchedDay2","useEffect","formattedAnchorPayDate","formattedAnchorEndOfPayPeriod","previewEnabled","previewQuery","usePaySchedulesGetPreview","RFCDate","payPeriodPreview","payPreviewLoading","createPayScheduleMutation","usePaySchedulesCreateMutation","updatePayScheduleMutation","usePaySchedulesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","showCustomTwicePerMonth","showDay1","showDay2","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","submitResult","resolve","data","payload","anchorPayDate","anchorEndOfPayPeriod","hookFormInternals","useHookFormInternals","CustomNameField","FrequencyField","CustomTwicePerMonthField","AnchorPayDateField","AnchorEndOfPayPeriodField","Day1Field","Day2Field","WorkweekStartDayField","createGetFormSubmissionValues"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usePayScheduleForm.js","sources":["../../../../../../src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.tsx"],"sourcesContent":["import { useEffect, useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport type { PaySchedulePreviewPayPeriod } from '@gusto/embedded-api/models/components/payschedulepreviewpayperiod'\nimport { WorkweekStartDay } from '@gusto/embedded-api/models/components/payschedulecreaterequest'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport { usePaySchedulesGetPreview } from '@gusto/embedded-api/react-query/paySchedulesGetPreview'\nimport { usePaySchedulesCreateMutation } from '@gusto/embedded-api/react-query/paySchedulesCreate'\nimport { usePaySchedulesUpdateMutation } from '@gusto/embedded-api/react-query/paySchedulesUpdate'\nimport { usePaymentConfigsGet } from '@gusto/embedded-api/react-query/paymentConfigsGet'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createPayScheduleSchema,\n type PayScheduleOptionalFieldsToRequire,\n type PayScheduleFormData,\n type PayScheduleFormOutputs,\n type PayScheduleFrequency,\n type PayScheduleWorkweekStartDay,\n} from './payScheduleSchema'\nimport {\n CustomNameField,\n FrequencyField,\n CustomTwicePerMonthField,\n AnchorPayDateField,\n AnchorEndOfPayPeriodField,\n Day1Field,\n Day2Field,\n WorkweekStartDayField,\n} from './fields'\nimport type {\n CustomNameFieldProps,\n FrequencyFieldProps,\n CustomTwicePerMonthFieldProps,\n AnchorPayDateFieldProps,\n AnchorEndOfPayPeriodFieldProps,\n Day1FieldProps,\n Day2FieldProps,\n WorkweekStartDayFieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { withFlags } from '@/partner-hook-utils/form/withFlags'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { parsePaymentSpeedDays } from '@/hooks/useCompanyPaymentSpeed'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useUnstableFeature } from '@/contexts/UnstableFeaturesProvider/useUnstableFeature'\n\nexport type { PayScheduleOptionalFieldsToRequire } from './payScheduleSchema'\n\n/**\n * Configuration options for {@link usePayScheduleForm}.\n *\n * @remarks\n * Presence or absence of `payScheduleId` selects between update and create mode.\n *\n * @public\n */\nexport interface UsePayScheduleFormProps {\n /** UUID of the company that owns the pay schedule. */\n companyId: string\n /**\n * When set, loads that pay schedule and updates it on submit. When omitted,\n * the form is in create mode and creates a new schedule on submit.\n */\n payScheduleId?: string\n /** Override fields that are optional on a given mode to be required. See `PayScheduleOptionalFieldsToRequire`. */\n optionalFieldsToRequire?: PayScheduleOptionalFieldsToRequire\n /** Pre-fill form values. Server data takes precedence on update. */\n defaultValues?: Partial<PayScheduleFormData>\n /** Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler` so submit-time focus is coordinated across multiple forms. Defaults to `true`. */\n shouldFocusError?: boolean\n /**\n * Renders `Fields.WorkweekStartDay` disabled while still submitting its current value,\n * for partners that compute the workweek start day themselves and don't want end users\n * editing it directly. Defaults to `false`. Has no effect unless the `payrollRegularRateOfPay`\n * unstable feature is enabled.\n *\n * @alpha\n */\n disableWorkweekStartDayEditing?: boolean\n}\n\n/**\n * Pre-bound field components exposed on `usePayScheduleForm().form.Fields`.\n *\n * @remarks\n * `CustomTwicePerMonth`, `Day1`, and `Day2` are conditionally `undefined` based\n * on the selected frequency and twice-per-month strategy — always null-check them\n * before rendering.\n *\n * @public\n */\nexport interface PayScheduleFormFields {\n /** Bound to `customName`. Display name text input. Always available. */\n CustomName: ComponentType<CustomNameFieldProps>\n /** Bound to `frequency`. Frequency selector. Always available. */\n Frequency: ComponentType<FrequencyFieldProps>\n /** Bound to `customTwicePerMonth`. Twice-per-month strategy radio group. Only available when frequency is `'Twice per month'`. */\n CustomTwicePerMonth: ComponentType<CustomTwicePerMonthFieldProps> | undefined\n /** Bound to `anchorPayDate`. First pay date picker. Always available. */\n AnchorPayDate: ComponentType<AnchorPayDateFieldProps>\n /** Bound to `anchorEndOfPayPeriod`. First pay period end date picker. Always available. */\n AnchorEndOfPayPeriod: ComponentType<AnchorEndOfPayPeriodFieldProps>\n /** Bound to `day1`. First-pay-day-of-month number input. Available when frequency is `'Monthly'`, or `'Twice per month'` with `'custom'` strategy. */\n Day1: ComponentType<Day1FieldProps> | undefined\n /** Bound to `day2`. Last-pay-day-of-month number input. Available when frequency is `'Twice per month'` with `'custom'` strategy. */\n Day2: ComponentType<Day2FieldProps> | undefined\n /**\n * Bound to `workweekStartDay`. Workweek start day selector, used for regular rate of pay\n * overtime calculations. `undefined` unless the `payrollRegularRateOfPay` unstable feature\n * is enabled.\n *\n * @alpha\n */\n WorkweekStartDay: ComponentType<WorkweekStartDayFieldProps> | undefined\n}\n\n/**\n * Ready-state shape returned by {@link usePayScheduleForm} once data has loaded.\n *\n * @remarks\n * Discriminated by `isLoading: false`. Extends {@link BaseFormHookReady} with the\n * pay-schedule-specific `data`, `status`, `actions`, and `form.Fields` shape.\n *\n * @public\n */\nexport interface UsePayScheduleFormReady extends BaseFormHookReady<\n PayScheduleFieldsMetadata,\n PayScheduleFormData,\n PayScheduleFormFields\n> {\n /** Static entity data resolved from the API. */\n data: {\n /** The pay schedule loaded for update; `null` in create mode. */\n paySchedule: PayScheduleShow | null\n /** Upcoming pay periods previewed from current form values; `null` until the anchor date fields are complete. */\n payPeriodPreview: PaySchedulePreviewPayPeriod[] | null\n /** `true` while the pay period preview request is in flight. */\n payPreviewLoading: boolean\n /** Business days the company needs to process payroll, derived from payment configs; `null` if unavailable. */\n paymentSpeedDays: number | null\n }\n /** Reactive status flags. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** Whether the form is creating a new schedule or updating an existing one. */\n mode: 'create' | 'update'\n }\n /** Available actions. */\n actions: {\n /** Validates the form and dispatches the create or update mutation. Returns the saved schedule, or `undefined` if validation failed. */\n onSubmit: () => Promise<HookSubmitResult<PayScheduleShow> | undefined>\n }\n}\n\nconst FREQUENCY_OPTIONS: Array<{ value: PayScheduleFrequency; label: string }> = [\n { value: 'Every week', label: 'Every week' },\n { value: 'Every other week', label: 'Every other week' },\n { value: 'Twice per month', label: 'Twice per month' },\n { value: 'Monthly', label: 'Monthly' },\n]\n\nconst FREQUENCY_ENTRIES: PayScheduleFrequency[] = FREQUENCY_OPTIONS.map(o => o.value)\n\nconst TWICE_PER_MONTH_OPTIONS = [\n { value: '1st15th', label: '15th and Last day of the month' },\n { value: 'custom', label: 'Custom' },\n]\n\nconst TWICE_PER_MONTH_ENTRIES = TWICE_PER_MONTH_OPTIONS.map(o => o.value)\n\nconst WORKWEEK_START_DAY_ENTRIES: PayScheduleWorkweekStartDay[] = Object.values(WorkweekStartDay)\n\nconst WORKWEEK_START_DAY_OPTIONS: Array<{ value: PayScheduleWorkweekStartDay; label: string }> =\n WORKWEEK_START_DAY_ENTRIES.map(value => ({ value, label: value }))\n\nfunction formatWatchedDate(value: unknown): string {\n if (value instanceof Date) return formatDateToStringDate(value) || ''\n if (typeof value === 'string' && value) return value\n return ''\n}\n\nfunction deriveCustomTwicePerMonth(\n frequency: string | undefined,\n day1: number | undefined,\n day2: number | undefined,\n): string {\n if (frequency !== 'Twice per month') return ''\n if (day1 === 15 && day2 === 31) return '1st15th'\n // Only pre-select 'custom' when there are real day values to represent (e.g.\n // editing an existing custom schedule). With no day basis, leave the radio\n // unselected so its required validation prompts an explicit choice rather\n // than silently forcing empty day1/day2 fields into a required state.\n if (day1 != null && day2 != null) return 'custom'\n return ''\n}\n\n/** @internal */\nfunction buildPayScheduleFieldsMetadata(\n base: Record<keyof PayScheduleFormData, FieldMetadata>,\n disableWorkweekStartDayEditing: boolean,\n) {\n return {\n customName: base.customName,\n frequency: withOptions<PayScheduleFrequency>(\n base.frequency,\n FREQUENCY_OPTIONS,\n FREQUENCY_ENTRIES,\n ),\n customTwicePerMonth: withOptions<string>(\n base.customTwicePerMonth,\n TWICE_PER_MONTH_OPTIONS,\n TWICE_PER_MONTH_ENTRIES,\n ),\n anchorPayDate: base.anchorPayDate,\n anchorEndOfPayPeriod: base.anchorEndOfPayPeriod,\n day1: base.day1,\n day2: base.day2,\n workweekStartDay: withOptions<PayScheduleWorkweekStartDay>(\n withFlags(base.workweekStartDay, { isDisabled: disableWorkweekStartDayEditing }),\n WORKWEEK_START_DAY_OPTIONS,\n WORKWEEK_START_DAY_ENTRIES,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Form hook for creating or updating a company pay schedule.\n *\n * @remarks\n * When `payScheduleId` is supplied the hook loads that schedule and issues an\n * update on submit; when omitted it operates in create mode. While both anchor\n * date fields are filled in, the hook fetches a live pay period calendar\n * preview exposed on `data.payPeriodPreview`. `data.paymentSpeedDays` reflects\n * the company's payment configuration and is useful for surfacing UI hints\n * about how far ahead the first pay date must be.\n *\n * @param props - See {@link UsePayScheduleFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UsePayScheduleFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * usePayScheduleForm,\n * SDKFormProvider,\n * type UsePayScheduleFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function PaySchedulePage({ companyId }: { companyId: string }) {\n * const paySchedule = usePayScheduleForm({ companyId })\n *\n * if (paySchedule.isLoading) return <div>Loading...</div>\n *\n * return <PayScheduleFormReady paySchedule={paySchedule} />\n * }\n *\n * function PayScheduleFormReady({ paySchedule }: { paySchedule: UsePayScheduleFormReady }) {\n * const { Fields } = paySchedule.form\n *\n * return (\n * <SDKFormProvider formHookResult={paySchedule}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void paySchedule.actions.onSubmit()\n * }}\n * >\n * <Fields.CustomName label=\"Name\" validationMessages={{ REQUIRED: 'Name is required' }} />\n * <Fields.Frequency label=\"Frequency\" validationMessages={{ REQUIRED: 'Frequency is required' }} />\n * {Fields.CustomTwicePerMonth && <Fields.CustomTwicePerMonth label=\"Frequency Options\" />}\n * <Fields.AnchorPayDate label=\"First pay date\" validationMessages={{ REQUIRED: 'Required' }} />\n * <Fields.AnchorEndOfPayPeriod label=\"First pay period end\" validationMessages={{ REQUIRED: 'Required' }} />\n * {Fields.Day1 && (\n * <Fields.Day1\n * label=\"First pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * {Fields.Day2 && (\n * <Fields.Day2\n * label=\"Last pay day of the month\"\n * validationMessages={{ REQUIRED: 'Required', DAY_RANGE: 'Must be 1–31' }}\n * />\n * )}\n * <button type=\"submit\" disabled={paySchedule.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function usePayScheduleForm({\n companyId,\n payScheduleId,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n disableWorkweekStartDayEditing = false,\n}: UsePayScheduleFormProps): HookLoadingResult | UsePayScheduleFormReady {\n const isWorkweekStartDayEnabled = useUnstableFeature('payrollRegularRateOfPay')\n const payScheduleQuery = usePaySchedulesGet(\n { companyId, payScheduleId: payScheduleId ?? '' },\n { enabled: !!payScheduleId },\n )\n\n const paymentConfigsQuery = usePaymentConfigsGet({ companyUuid: companyId })\n\n const currentPaySchedule = payScheduleQuery.data?.payScheduleShow ?? null\n const paymentSpeed = paymentConfigsQuery.data?.paymentConfigs?.paymentSpeed\n const paymentSpeedDays = parsePaymentSpeedDays(paymentSpeed)\n\n const isCreateMode = !currentPaySchedule\n const mode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () => createPayScheduleSchema({ mode, optionalFieldsToRequire }),\n [mode, optionalFieldsToRequire],\n )\n\n const resolvedDefaults: PayScheduleFormData = {\n customName: currentPaySchedule?.customName ?? partnerDefaults?.customName ?? '',\n frequency: (currentPaySchedule?.frequency ??\n partnerDefaults?.frequency ??\n 'Every week') as PayScheduleFrequency,\n customTwicePerMonth: deriveCustomTwicePerMonth(\n currentPaySchedule?.frequency ?? partnerDefaults?.frequency,\n currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? undefined,\n currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? undefined,\n ),\n anchorPayDate:\n currentPaySchedule?.anchorPayDate?.toString() ?? partnerDefaults?.anchorPayDate ?? null,\n anchorEndOfPayPeriod:\n currentPaySchedule?.anchorEndOfPayPeriod?.toString() ??\n partnerDefaults?.anchorEndOfPayPeriod ??\n null,\n day1: currentPaySchedule?.day1 ?? partnerDefaults?.day1 ?? NaN,\n day2: currentPaySchedule?.day2 ?? partnerDefaults?.day2 ?? NaN,\n workweekStartDay:\n currentPaySchedule?.workweekStartDay ?? partnerDefaults?.workweekStartDay ?? null,\n }\n\n const formMethods = useForm<PayScheduleFormData, unknown, PayScheduleFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedFrequency = useWatch({ control: formMethods.control, name: 'frequency' })\n const watchedCustomTwicePerMonth = useWatch({\n control: formMethods.control,\n name: 'customTwicePerMonth',\n })\n const watchedAnchorPayDate = useWatch({ control: formMethods.control, name: 'anchorPayDate' })\n const watchedAnchorEndOfPayPeriod = useWatch({\n control: formMethods.control,\n name: 'anchorEndOfPayPeriod',\n })\n const watchedDay1 = useWatch({ control: formMethods.control, name: 'day1' })\n const watchedDay2 = useWatch({ control: formMethods.control, name: 'day2' })\n\n useEffect(() => {\n if (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === '1st15th') {\n formMethods.setValue('day1', 15)\n formMethods.setValue('day2', 31)\n }\n }, [watchedFrequency, watchedCustomTwicePerMonth, formMethods.setValue])\n\n const formattedAnchorPayDate = formatWatchedDate(watchedAnchorPayDate)\n const formattedAnchorEndOfPayPeriod = formatWatchedDate(watchedAnchorEndOfPayPeriod)\n\n const previewEnabled = Boolean(formattedAnchorPayDate && formattedAnchorEndOfPayPeriod)\n\n const previewQuery = usePaySchedulesGetPreview(\n {\n companyId,\n frequency: watchedFrequency,\n ...(formattedAnchorPayDate && { anchorPayDate: new RFCDate(formattedAnchorPayDate) }),\n ...(formattedAnchorEndOfPayPeriod && {\n anchorEndOfPayPeriod: new RFCDate(formattedAnchorEndOfPayPeriod),\n }),\n day1: watchedDay1 || undefined,\n day2: watchedDay2 || undefined,\n } as Parameters<typeof usePaySchedulesGetPreview>[0],\n { enabled: previewEnabled },\n )\n\n const payPeriodPreview: PaySchedulePreviewPayPeriod[] | undefined =\n previewQuery.data?.paySchedulePreview?.payPeriods\n const payPreviewLoading = previewQuery.isLoading && previewEnabled\n\n const createPayScheduleMutation = usePaySchedulesCreateMutation()\n const updatePayScheduleMutation = usePaySchedulesUpdateMutation()\n\n const isPending = createPayScheduleMutation.isPending || updatePayScheduleMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PayScheduleForm')\n\n const queries = payScheduleId ? [payScheduleQuery, paymentConfigsQuery] : [paymentConfigsQuery]\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const showCustomTwicePerMonth = watchedFrequency === 'Twice per month'\n const showDay1 =\n watchedFrequency === 'Monthly' ||\n (watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom')\n const showDay2 = watchedFrequency === 'Twice per month' && watchedCustomTwicePerMonth === 'custom'\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildPayScheduleFieldsMetadata(\n baseMetadata,\n disableWorkweekStartDayEditing,\n )\n\n const onSubmit = async (): Promise<HookSubmitResult<PayScheduleShow> | undefined> => {\n let submitResult: HookSubmitResult<PayScheduleShow> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: PayScheduleFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const anchorPayDate = payload.anchorPayDate ?? ''\n const anchorEndOfPayPeriod = payload.anchorEndOfPayPeriod ?? ''\n\n if (isCreateMode) {\n const result = await createPayScheduleMutation.mutateAsync({\n request: {\n companyId,\n payScheduleCreateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n },\n },\n })\n\n submitResult = { mode: 'create', data: result.payScheduleShow! }\n } else {\n const result = await updatePayScheduleMutation.mutateAsync({\n request: {\n payScheduleId: currentPaySchedule.uuid,\n companyId,\n payScheduleUpdateRequest: {\n frequency: payload.frequency,\n anchorPayDate: new RFCDate(anchorPayDate),\n anchorEndOfPayPeriod: new RFCDate(anchorEndOfPayPeriod),\n customName: payload.customName,\n day1: payload.day1 || undefined,\n day2: payload.day2 || undefined,\n workweekStartDay: isWorkweekStartDayEnabled\n ? (payload.workweekStartDay ?? undefined)\n : undefined,\n version: currentPaySchedule.version!,\n },\n },\n })\n\n submitResult = { mode: 'update', data: result.payScheduleShow! }\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n paymentConfigsQuery.isLoading || (payScheduleId ? payScheduleQuery.isLoading : false)\n\n if (isDataLoading) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paySchedule: currentPaySchedule,\n payPeriodPreview: payPeriodPreview ?? null,\n payPreviewLoading,\n paymentSpeedDays,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n CustomName: CustomNameField,\n Frequency: FrequencyField,\n CustomTwicePerMonth: showCustomTwicePerMonth ? CustomTwicePerMonthField : undefined,\n AnchorPayDate: AnchorPayDateField,\n AnchorEndOfPayPeriod: AnchorEndOfPayPeriodField,\n Day1: showDay1 ? Day1Field : undefined,\n Day2: showDay2 ? Day2Field : undefined,\n WorkweekStartDay: isWorkweekStartDayEnabled ? WorkweekStartDayField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Discriminated union returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type UsePayScheduleFormResult = HookLoadingResult | UsePayScheduleFormReady\n/**\n * Type of `form.fieldsMetadata` returned by {@link usePayScheduleForm}.\n *\n * @public\n */\nexport type PayScheduleFieldsMetadata = ReturnType<typeof buildPayScheduleFieldsMetadata>\n"],"names":["FREQUENCY_OPTIONS","FREQUENCY_ENTRIES","o","TWICE_PER_MONTH_OPTIONS","TWICE_PER_MONTH_ENTRIES","WORKWEEK_START_DAY_ENTRIES","WorkweekStartDay","WORKWEEK_START_DAY_OPTIONS","value","formatWatchedDate","formatDateToStringDate","deriveCustomTwicePerMonth","frequency","day1","day2","buildPayScheduleFieldsMetadata","base","disableWorkweekStartDayEditing","withOptions","withFlags","usePayScheduleForm","companyId","payScheduleId","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","isWorkweekStartDayEnabled","useUnstableFeature","payScheduleQuery","usePaySchedulesGet","paymentConfigsQuery","usePaymentConfigsGet","currentPaySchedule","paymentSpeed","paymentSpeedDays","parsePaymentSpeedDays","isCreateMode","mode","schema","metadataConfig","useMemo","createPayScheduleSchema","resolvedDefaults","formMethods","useForm","zodResolver","watchedFrequency","useWatch","watchedCustomTwicePerMonth","watchedAnchorPayDate","watchedAnchorEndOfPayPeriod","watchedDay1","watchedDay2","useEffect","formattedAnchorPayDate","formattedAnchorEndOfPayPeriod","previewEnabled","previewQuery","usePaySchedulesGetPreview","RFCDate","payPeriodPreview","payPreviewLoading","createPayScheduleMutation","usePaySchedulesCreateMutation","updatePayScheduleMutation","usePaySchedulesUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","showCustomTwicePerMonth","showDay1","showDay2","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","submitResult","resolve","data","payload","anchorPayDate","anchorEndOfPayPeriod","hookFormInternals","useHookFormInternals","CustomNameField","FrequencyField","CustomTwicePerMonthField","AnchorPayDateField","AnchorEndOfPayPeriodField","Day1Field","Day2Field","WorkweekStartDayField","createGetFormSubmissionValues"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA2KA,MAAMA,IAA2E;AAAA,EAC/E,EAAE,OAAO,cAAc,OAAO,aAAA;AAAA,EAC9B,EAAE,OAAO,oBAAoB,OAAO,mBAAA;AAAA,EACpC,EAAE,OAAO,mBAAmB,OAAO,kBAAA;AAAA,EACnC,EAAE,OAAO,WAAW,OAAO,UAAA;AAC7B,GAEMC,KAA4CD,EAAkB,IAAI,CAAAE,MAAKA,EAAE,KAAK,GAE9EC,IAA0B;AAAA,EAC9B,EAAE,OAAO,WAAW,OAAO,iCAAA;AAAA,EAC3B,EAAE,OAAO,UAAU,OAAO,SAAA;AAC5B,GAEMC,KAA0BD,EAAwB,IAAI,CAAAD,MAAKA,EAAE,KAAK,GAElEG,IAA4D,OAAO,OAAOC,EAAgB,GAE1FC,KACJF,EAA2B,IAAI,CAAAG,OAAU,EAAE,OAAAA,GAAO,OAAOA,IAAQ;AAEnE,SAASC,EAAkBD,GAAwB;AACjD,SAAIA,aAAiB,OAAaE,GAAuBF,CAAK,KAAK,KAC/D,OAAOA,KAAU,YAAYA,IAAcA,IACxC;AACT;AAEA,SAASG,GACPC,GACAC,GACAC,GACQ;AACR,SAAIF,MAAc,oBAA0B,KACxCC,MAAS,MAAMC,MAAS,KAAW,YAKnCD,KAAQ,QAAQC,KAAQ,OAAa,WAClC;AACT;AAGA,SAASC,GACPC,GACAC,GACA;AACA,SAAO;AAAA,IACL,YAAYD,EAAK;AAAA,IACjB,WAAWE;AAAA,MACTF,EAAK;AAAA,MACLhB;AAAA,MACAC;AAAA,IAAA;AAAA,IAEF,qBAAqBiB;AAAA,MACnBF,EAAK;AAAA,MACLb;AAAA,MACAC;AAAA,IAAA;AAAA,IAEF,eAAeY,EAAK;AAAA,IACpB,sBAAsBA,EAAK;AAAA,IAC3B,MAAMA,EAAK;AAAA,IACX,MAAMA,EAAK;AAAA,IACX,kBAAkBE;AAAA,MAChBC,GAAUH,EAAK,kBAAkB,EAAE,YAAYC,GAAgC;AAAA,MAC/EV;AAAA,MACAF;AAAA,IAAA;AAAA,EACF;AAEJ;AAoEO,SAASe,GAAmB;AAAA,EACjC,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,eAAeC;AAAA,EACf,gBAAAC,IAAiB;AAAA,EACjB,kBAAAC,IAAmB;AAAA,EACnB,gCAAAT,IAAiC;AACnC,GAAyE;AACvE,QAAMU,IAA4BC,GAAmB,yBAAyB,GACxEC,IAAmBC;AAAA,IACvB,EAAE,WAAAT,GAAW,eAAeC,KAAiB,GAAA;AAAA,IAC7C,EAAE,SAAS,CAAC,CAACA,EAAA;AAAA,EAAc,GAGvBS,IAAsBC,GAAqB,EAAE,aAAaX,GAAW,GAErEY,IAAqBJ,EAAiB,MAAM,mBAAmB,MAC/DK,IAAeH,EAAoB,MAAM,gBAAgB,cACzDI,IAAmBC,GAAsBF,CAAY,GAErDG,IAAe,CAACJ,GAChBK,IAAOD,IAAe,WAAW,UAEjC,CAACE,GAAQC,CAAc,IAAIC;AAAA,IAC/B,MAAMC,GAAwB,EAAE,MAAAJ,GAAM,yBAAAf,GAAyB;AAAA,IAC/D,CAACe,GAAMf,CAAuB;AAAA,EAAA,GAG1BoB,IAAwC;AAAA,IAC5C,YAAYV,GAAoB,cAAcT,GAAiB,cAAc;AAAA,IAC7E,WAAYS,GAAoB,aAC9BT,GAAiB,aACjB;AAAA,IACF,qBAAqBb;AAAA,MACnBsB,GAAoB,aAAaT,GAAiB;AAAA,MAClDS,GAAoB,QAAQT,GAAiB,QAAQ;AAAA,MACrDS,GAAoB,QAAQT,GAAiB,QAAQ;AAAA,IAAA;AAAA,IAEvD,eACES,GAAoB,eAAe,SAAA,KAAcT,GAAiB,iBAAiB;AAAA,IACrF,sBACES,GAAoB,sBAAsB,SAAA,KAC1CT,GAAiB,wBACjB;AAAA,IACF,MAAMS,GAAoB,QAAQT,GAAiB,QAAQ;AAAA,IAC3D,MAAMS,GAAoB,QAAQT,GAAiB,QAAQ;AAAA,IAC3D,kBACES,GAAoB,oBAAoBT,GAAiB,oBAAoB;AAAA,EAAA,GAG3EoB,IAAcC,GAA8D;AAAA,IAChF,UAAUC,GAAYP,CAAM;AAAA,IAC5B,MAAMd;AAAA,IACN,kBAAAC;AAAA,IACA,eAAeiB;AAAA,IACf,QAAQA;AAAA,IACR,cAAc,EAAE,iBAAiB,GAAA;AAAA,EAAK,CACvC,GAEKI,IAAmBC,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,aAAa,GAC/EK,IAA6BD,EAAS;AAAA,IAC1C,SAASJ,EAAY;AAAA,IACrB,MAAM;AAAA,EAAA,CACP,GACKM,IAAuBF,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,iBAAiB,GACvFO,IAA8BH,EAAS;AAAA,IAC3C,SAASJ,EAAY;AAAA,IACrB,MAAM;AAAA,EAAA,CACP,GACKQ,IAAcJ,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,QAAQ,GACrES,IAAcL,EAAS,EAAE,SAASJ,EAAY,SAAS,MAAM,QAAQ;AAE3E,EAAAU,GAAU,MAAM;AACd,IAAIP,MAAqB,qBAAqBE,MAA+B,cAC3EL,EAAY,SAAS,QAAQ,EAAE,GAC/BA,EAAY,SAAS,QAAQ,EAAE;AAAA,EAEnC,GAAG,CAACG,GAAkBE,GAA4BL,EAAY,QAAQ,CAAC;AAEvE,QAAMW,IAAyB9C,EAAkByC,CAAoB,GAC/DM,IAAgC/C,EAAkB0C,CAA2B,GAE7EM,IAAiB,GAAQF,KAA0BC,IAEnDE,IAAeC;AAAA,IACnB;AAAA,MACE,WAAAtC;AAAA,MACA,WAAW0B;AAAA,MACX,GAAIQ,KAA0B,EAAE,eAAe,IAAIK,EAAQL,CAAsB,EAAA;AAAA,MACjF,GAAIC,KAAiC;AAAA,QACnC,sBAAsB,IAAII,EAAQJ,CAA6B;AAAA,MAAA;AAAA,MAEjE,MAAMJ,KAAe;AAAA,MACrB,MAAMC,KAAe;AAAA,IAAA;AAAA,IAEvB,EAAE,SAASI,EAAA;AAAA,EAAe,GAGtBI,IACJH,EAAa,MAAM,oBAAoB,YACnCI,IAAoBJ,EAAa,aAAaD,GAE9CM,IAA4BC,GAAA,GAC5BC,IAA4BC,GAAA,GAE5BC,IAAYJ,EAA0B,aAAaE,EAA0B,WAE7E;AAAA,IACJ,mBAAAG;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,GAAc,iBAAiB,GAG7BC,IAAgBC,GADNnD,IAAgB,CAACO,GAAkBE,CAAmB,IAAI,CAACA,CAAmB,GAC3C,EAAE,aAAAsC,GAAa,gBAAAC,GAAgB,GAE5EI,IAA0B3B,MAAqB,mBAC/C4B,IACJ5B,MAAqB,aACpBA,MAAqB,qBAAqBE,MAA+B,UACtE2B,IAAW7B,MAAqB,qBAAqBE,MAA+B,UAEpF4B,IAAeC,GAAwBtC,GAAgBI,EAAY,OAAO,GAC1EmC,KAAiBhE;AAAA,IACrB8D;AAAA,IACA5D;AAAA,EAAA,GAGI+D,KAAW,YAAoE;AACnF,QAAIC;AAEJ,iBAAM,IAAI,QAAc,CAAAC,MAAW;AACjC,MAAKtC,EAAY;AAAA,QACf,OAAOuC,OAAiC;AACtC,gBAAMf,EAAkBe,IAAM,OAAMC,MAAW;AAC7C,kBAAMC,IAAgBD,EAAQ,iBAAiB,IACzCE,IAAuBF,EAAQ,wBAAwB;AAE7D,YAAI/C,IAkBF4C,IAAe,EAAE,MAAM,UAAU,OAjBlB,MAAMlB,EAA0B,YAAY;AAAA,cACzD,SAAS;AAAA,gBACP,WAAA1C;AAAA,gBACA,0BAA0B;AAAA,kBACxB,WAAW+D,EAAQ;AAAA,kBACnB,eAAe,IAAIxB,EAAQyB,CAAa;AAAA,kBACxC,sBAAsB,IAAIzB,EAAQ0B,CAAoB;AAAA,kBACtD,YAAYF,EAAQ;AAAA,kBACpB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,kBAAkBzD,IACbyD,EAAQ,oBAAoB,SAC7B;AAAA,gBAAA;AAAA,cACN;AAAA,YACF,CACD,GAE6C,gBAAA,IAqB9CH,IAAe,EAAE,MAAM,UAAU,OAnBlB,MAAMhB,EAA0B,YAAY;AAAA,cACzD,SAAS;AAAA,gBACP,eAAehC,EAAmB;AAAA,gBAClC,WAAAZ;AAAA,gBACA,0BAA0B;AAAA,kBACxB,WAAW+D,EAAQ;AAAA,kBACnB,eAAe,IAAIxB,EAAQyB,CAAa;AAAA,kBACxC,sBAAsB,IAAIzB,EAAQ0B,CAAoB;AAAA,kBACtD,YAAYF,EAAQ;AAAA,kBACpB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,MAAMA,EAAQ,QAAQ;AAAA,kBACtB,kBAAkBzD,IACbyD,EAAQ,oBAAoB,SAC7B;AAAA,kBACJ,SAASnD,EAAmB;AAAA,gBAAA;AAAA,cAC9B;AAAA,YACF,CACD,GAE6C,gBAAA;AAAA,UAElD,CAAC,GACDiD,EAAA;AAAA,QACF;AAAA,QACA,MAAM;AACJ,UAAAA,EAAA;AAAA,QACF;AAAA,MAAA,EACF;AAAA,IACF,CAAC,GAEMD;AAAA,EACT,GAEMM,KAAoBC,GAAqB5C,CAAW;AAK1D,SAFEb,EAAoB,cAAcT,IAAgBO,EAAiB,YAAY,MAGxE,EAAE,WAAW,IAAe,eAAA2C,EAAA,IAG9B;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,aAAavC;AAAA,MACb,kBAAkB4B,KAAoB;AAAA,MACtC,mBAAAC;AAAA,MACA,kBAAA3B;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,MACN,WAAAgC;AAAA,MACA,MAAM9B,IAAgB,WAAsB;AAAA,IAAA;AAAA,IAE9C,SAAS,EAAE,UAAA2C,GAAA;AAAA,IACX,eAAAR;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,YAAYiB;AAAA,QACZ,WAAWC;AAAA,QACX,qBAAqBhB,IAA0BiB,KAA2B;AAAA,QAC1E,eAAeC;AAAA,QACf,sBAAsBC;AAAA,QACtB,MAAMlB,IAAWmB,KAAY;AAAA,QAC7B,MAAMlB,IAAWmB,KAAY;AAAA,QAC7B,kBAAkBpE,IAA4BqE,KAAwB;AAAA,MAAA;AAAA,MAExE,gBAAAjB;AAAA,MACA,mBAAAQ;AAAA,MACA,yBAAyBU,GAA8BrD,GAAaL,CAAM;AAAA,IAAA;AAAA,EAC5E;AAEJ;"}
|