@gusto/embedded-react-sdk 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/dist/components/Base/Base.js +4 -4
- package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.d.ts +2 -0
- package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.js +52 -0
- package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.js.map +1 -0
- package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes.d.ts +44 -0
- package/dist/components/Common/FlowBreadcrumbs/index.d.ts +3 -0
- package/dist/components/Common/SignatureForm/SignatureForm.js +11 -14
- package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +7 -9
- package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +12 -15
- package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.d.ts +2 -0
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +38 -0
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js.map +1 -0
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.module.scss.js +16 -0
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.module.scss.js.map +1 -0
- package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +27 -0
- package/dist/components/Common/UI/Breadcrumbs/index.d.ts +3 -0
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +2 -5
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +2 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +7 -9
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +15 -16
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -5
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +2 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +10 -12
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +9 -10
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -5
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +3 -5
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -7
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -10
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +8 -11
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -5
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +8 -10
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +8 -10
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -7
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +2 -4
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +9 -11
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -5
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +8 -10
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -5
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.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/FederalTaxes.js +3 -5
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +6 -7
- package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +9 -10
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +7 -9
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +7 -8
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +4 -7
- 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/Form.js +5 -7
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +10 -12
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -5
- 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 +15 -16
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -5
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlow.js +10 -10
- package/dist/components/Company/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js +16 -10
- package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +10 -12
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -11
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +7 -9
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +4 -5
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +4 -5
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Actions.js +9 -11
- package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.js +17 -17
- package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Head.js +9 -11
- package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/List.js +17 -18
- package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -7
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +2 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +2 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +5 -7
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +7 -9
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +6 -7
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.js +15 -15
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +37 -37
- package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +10 -13
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +2 -4
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
- package/dist/components/Contractor/Profile/useContractorProfile.js +3 -4
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +20 -21
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Employee/Compensation/Actions.js +12 -13
- package/dist/components/Employee/Compensation/Actions.js.map +1 -1
- package/dist/components/Employee/Compensation/Edit.js +14 -14
- package/dist/components/Employee/Compensation/List.js +22 -23
- package/dist/components/Employee/Compensation/List.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +10 -11
- package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +32 -33
- package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +8 -8
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +11 -11
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +22 -23
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +6 -8
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +3 -5
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js +2 -5
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -5
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +3 -5
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -5
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Actions.js +6 -8
- package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.js +3 -6
- package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Head.js +5 -7
- package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
- package/dist/components/Employee/EmployeeList/List.js +14 -14
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -5
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/Actions.js +7 -9
- package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/FederalForm.js +11 -13
- package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -5
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +10 -11
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
- package/dist/components/Employee/PaymentMethod/Actions.js +6 -8
- package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +3 -5
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js +11 -12
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +2 -4
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Split.js +7 -7
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -7
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/Actions.js +7 -9
- package/dist/components/Employee/Profile/Actions.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.js +6 -7
- package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js +5 -6
- package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +23 -25
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/useProfile.js +4 -5
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/StateTaxes/Actions.js +8 -10
- package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
- package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -5
- package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
- package/dist/components/Employee/Taxes/Actions.js +8 -10
- package/dist/components/Employee/Taxes/Actions.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.js +12 -14
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +4 -5
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Flow/Flow.js +44 -24
- package/dist/components/Flow/Flow.js.map +1 -1
- package/dist/components/Flow/useFlow.d.ts +10 -1
- package/dist/components/Flow/useFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.d.ts +1 -1
- package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.js +16 -16
- package/dist/components/Payroll/PayrollBlocker/PayrollBlocker.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +20 -22
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +17 -19
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +38 -34
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +14 -14
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +39 -40
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +27 -27
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +8 -9
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js +20 -19
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +5 -3
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +65 -45
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/index.d.ts +1 -1
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +2 -0
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +233 -96
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +12 -13
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +8 -9
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +14 -15
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +1 -2
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +41 -45
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -2
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +94 -96
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +1 -2
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +12 -26
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -2
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +40 -45
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +3 -4
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +41 -39
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
- package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -0
- package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
- package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/helpers/breadcrumbHelpers.d.ts +33 -0
- package/dist/helpers/breadcrumbHelpers.js +46 -0
- package/dist/helpers/breadcrumbHelpers.js.map +1 -0
- package/dist/helpers/breadcrumbHelpers.test.d.ts +1 -0
- package/dist/i18n/I18n.d.ts +1 -1
- package/dist/i18n/I18n.js +32 -23
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.PaySchedule.json.js +2 -2
- package/dist/i18n/en/Payroll.PayrollBlocker.json.js +28 -0
- package/dist/i18n/en/Payroll.PayrollBlocker.json.js.map +1 -0
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +28 -24
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +28 -26
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollFlow.json.js +8 -0
- package/dist/i18n/en/Payroll.PayrollFlow.json.js.map +1 -0
- package/dist/i18n/en/Payroll.PayrollLanding.json.js +2 -2
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +60 -56
- package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollReceipts.json.js +16 -12
- package/dist/i18n/en/Payroll.PayrollReceipts.json.js.map +1 -1
- package/dist/shared/constants.d.ts +3 -0
- package/dist/shared/constants.js +11 -9
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +156 -149
- package/package.json +8 -8
- package/dist/i18n/en/Payroll.RunPayroll.json.js +0 -8
- package/dist/i18n/en/Payroll.RunPayroll.json.js.map +0 -1
- package/dist/i18n/en/PayrollBlocker.json.js +0 -24
- package/dist/i18n/en/PayrollBlocker.json.js.map +0 -1
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useTranslation as
|
|
1
|
+
import { jsx as l } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as u } from "react-i18next";
|
|
3
3
|
import { usePayrollsGetBlockersSuspense as k } from "@gusto/embedded-api/react-query/payrollsGetBlockers";
|
|
4
4
|
import { PayrollBlockerList as f } from "./components/PayrollBlockerList.js";
|
|
5
5
|
import { getBlockerTranslationKeys as B } from "./payrollHelpers.js";
|
|
6
6
|
import { BaseComponent as d } from "../../Base/Base.js";
|
|
7
7
|
import { useComponentDictionary as P, useI18n as g } from "../../../i18n/I18n.js";
|
|
8
8
|
function U(o) {
|
|
9
|
-
return /* @__PURE__ */
|
|
9
|
+
return /* @__PURE__ */ l(d, { ...o, children: /* @__PURE__ */ l(K, { ...o, children: o.children }) });
|
|
10
10
|
}
|
|
11
|
-
function K({ className: o, dictionary:
|
|
12
|
-
P("PayrollBlocker",
|
|
13
|
-
const { t:
|
|
14
|
-
companyUuid:
|
|
15
|
-
}),
|
|
16
|
-
const
|
|
17
|
-
defaultValue:
|
|
18
|
-
}),
|
|
19
|
-
defaultValue: n.message ||
|
|
11
|
+
function K({ className: o, dictionary: c, companyId: i }) {
|
|
12
|
+
P("Payroll.PayrollBlocker", c), g("Payroll.PayrollBlocker");
|
|
13
|
+
const { t: r } = u("Payroll.PayrollBlocker"), { data: s } = k({
|
|
14
|
+
companyUuid: i
|
|
15
|
+
}), t = (s.payrollBlockerList ?? []).map((n) => {
|
|
16
|
+
const e = n.key ?? "unknown", a = B(e), y = r(a.titleKey, {
|
|
17
|
+
defaultValue: e.replace(/_/g, " ").replace(/\b\w/g, (p) => p.toUpperCase())
|
|
18
|
+
}), m = r(a.descriptionKey, {
|
|
19
|
+
defaultValue: n.message || r("defaultBlockerDescription")
|
|
20
20
|
});
|
|
21
21
|
return {
|
|
22
|
-
id:
|
|
23
|
-
title:
|
|
24
|
-
description:
|
|
22
|
+
id: e,
|
|
23
|
+
title: y,
|
|
24
|
+
description: m
|
|
25
25
|
};
|
|
26
26
|
});
|
|
27
|
-
return
|
|
27
|
+
return t.length === 0 ? null : /* @__PURE__ */ l(f, { className: o, blockers: t });
|
|
28
28
|
}
|
|
29
29
|
export {
|
|
30
30
|
U as PayrollBlocker
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollBlocker.js","sources":["../../../../src/components/Payroll/PayrollBlocker/PayrollBlocker.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { PayrollBlockerList, type PayrollBlocker } from './components/PayrollBlockerList'\nimport { getBlockerTranslationKeys } from './payrollHelpers'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\ninterface PayrollBlockerProps extends BaseComponentInterface<'PayrollBlocker'> {\n companyId: string\n}\n\nexport function PayrollBlocker(props: PayrollBlockerProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, dictionary, companyId }: PayrollBlockerProps) {\n useComponentDictionary('PayrollBlocker', dictionary)\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n\n const { data } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = data.payrollBlockerList ?? []\n\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key ?? 'unknown'\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blockerKey.replace(/_/g, ' ').replace(/\\b\\w/g, letter => letter.toUpperCase()),\n })\n\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n\n return {\n id: blockerKey,\n title,\n description,\n }\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return <PayrollBlockerList className={className} blockers={blockers} />\n}\n"],"names":["PayrollBlocker","props","jsx","BaseComponent","Root","className","dictionary","companyId","useComponentDictionary","useI18n","t","useTranslation","data","usePayrollsGetBlockersSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","letter","description","PayrollBlockerList"],"mappings":";;;;;;;AAWO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,YAAAC,GAAY,WAAAC,KAAkC;AACvE,EAAAC,EAAuB,
|
|
1
|
+
{"version":3,"file":"PayrollBlocker.js","sources":["../../../../src/components/Payroll/PayrollBlocker/PayrollBlocker.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { PayrollBlockerList, type PayrollBlocker } from './components/PayrollBlockerList'\nimport { getBlockerTranslationKeys } from './payrollHelpers'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\ninterface PayrollBlockerProps extends BaseComponentInterface<'Payroll.PayrollBlocker'> {\n companyId: string\n}\n\nexport function PayrollBlocker(props: PayrollBlockerProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, dictionary, companyId }: PayrollBlockerProps) {\n useComponentDictionary('Payroll.PayrollBlocker', dictionary)\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n\n const { data } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = data.payrollBlockerList ?? []\n\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key ?? 'unknown'\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blockerKey.replace(/_/g, ' ').replace(/\\b\\w/g, letter => letter.toUpperCase()),\n })\n\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n\n return {\n id: blockerKey,\n title,\n description,\n }\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return <PayrollBlockerList className={className} blockers={blockers} />\n}\n"],"names":["PayrollBlocker","props","jsx","BaseComponent","Root","className","dictionary","companyId","useComponentDictionary","useI18n","t","useTranslation","data","usePayrollsGetBlockersSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","letter","description","PayrollBlockerList"],"mappings":";;;;;;;AAWO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,YAAAC,GAAY,WAAAC,KAAkC;AACvE,EAAAC,EAAuB,0BAA0BF,CAAU,GAC3DG,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAE/C,EAAE,MAAAC,EAAA,IAASC,EAA+B;AAAA,IAC9C,aAAaN;AAAA,EAAA,CACd,GAIKO,KAFqBF,EAAK,sBAAsB,CAAA,GAEA,IAAI,CAAAG,MAAW;AACnE,UAAMC,IAAaD,EAAQ,OAAO,WAC5BE,IAAkBC,EAA0BF,CAAU,GAEtDG,IAAQT,EAAEO,EAAgB,UAAU;AAAA,MACxC,cAAcD,EAAW,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAAAI,MAAUA,EAAO,YAAA,CAAa;AAAA,IAAA,CAC5F,GAEKC,IAAcX,EAAEO,EAAgB,gBAAgB;AAAA,MACpD,cAAcF,EAAQ,WAAWL,EAAE,2BAA2B;AAAA,IAAA,CAC/D;AAED,WAAO;AAAA,MACL,IAAIM;AAAA,MACJ,OAAAG;AAAA,MACA,aAAAE;AAAA,IAAA;AAAA,EAEJ,CAAC;AAED,SAAIP,EAAS,WAAW,IACf,OAGF,gBAAAZ,EAACoB,GAAA,EAAmB,WAAAjB,GAAsB,UAAAS,EAAA,CAAoB;AACvE;"}
|
|
@@ -1,24 +1,22 @@
|
|
|
1
|
-
import { jsx as l, jsxs as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { getBlockerTranslationKeys as
|
|
4
|
-
import { useComponentContext as
|
|
5
|
-
import { Flex as
|
|
1
|
+
import { jsx as l, jsxs as d } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as P } from "react-i18next";
|
|
3
|
+
import { getBlockerTranslationKeys as v } from "../payrollHelpers.js";
|
|
4
|
+
import { useComponentContext as A } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
5
|
+
import { Flex as m } from "../../../Common/Flex/Flex.js";
|
|
6
6
|
import "classnames";
|
|
7
|
-
import "../../../../
|
|
8
|
-
|
|
9
|
-
import { useI18n as D } from "../../../../i18n/I18n.js";
|
|
10
|
-
function H({
|
|
7
|
+
import { useI18n as C } from "../../../../i18n/I18n.js";
|
|
8
|
+
function z({
|
|
11
9
|
blockers: o,
|
|
12
10
|
onMultipleViewClick: i,
|
|
13
11
|
multipleViewLabel: h,
|
|
14
12
|
className: s
|
|
15
13
|
}) {
|
|
16
|
-
|
|
17
|
-
const { t: e } =
|
|
14
|
+
C("Payroll.PayrollBlocker");
|
|
15
|
+
const { t: e } = P("Payroll.PayrollBlocker"), { Alert: a, Button: f, Text: c, UnorderedList: x } = A();
|
|
18
16
|
if (o.length === 0)
|
|
19
17
|
return null;
|
|
20
|
-
const
|
|
21
|
-
const n =
|
|
18
|
+
const y = o.length > 1, p = o.map((r) => {
|
|
19
|
+
const n = v(r.key), B = e(n.titleKey, {
|
|
22
20
|
defaultValue: r.key.replace(/_/g, " ").replace(/\b\w/g, (K) => K.toUpperCase())
|
|
23
21
|
}), T = e(n.descriptionKey, {
|
|
24
22
|
defaultValue: r.message || e("defaultBlockerDescription")
|
|
@@ -30,26 +28,26 @@ function H({
|
|
|
30
28
|
helpText: k
|
|
31
29
|
};
|
|
32
30
|
}), t = p[0];
|
|
33
|
-
if (!
|
|
34
|
-
return /* @__PURE__ */ l(
|
|
35
|
-
/* @__PURE__ */ l(
|
|
36
|
-
t.helpText && t.helpText !== t.description && /* @__PURE__ */ l(
|
|
31
|
+
if (!y && t)
|
|
32
|
+
return /* @__PURE__ */ l(a, { status: "error", label: t.title, className: s, children: /* @__PURE__ */ d(m, { flexDirection: "column", gap: 8, children: [
|
|
33
|
+
/* @__PURE__ */ l(c, { children: t.description }),
|
|
34
|
+
t.helpText && t.helpText !== t.description && /* @__PURE__ */ l(c, { variant: "supporting", size: "sm", children: t.helpText })
|
|
37
35
|
] }) });
|
|
38
|
-
const
|
|
36
|
+
const g = p.map((r) => r.title), u = h || e("viewAllBlockers");
|
|
39
37
|
return /* @__PURE__ */ l(
|
|
40
|
-
|
|
38
|
+
a,
|
|
41
39
|
{
|
|
42
40
|
status: "error",
|
|
43
41
|
label: e("multipleIssuesTitle", { count: o.length }),
|
|
44
42
|
className: s,
|
|
45
|
-
children: /* @__PURE__ */ m
|
|
46
|
-
/* @__PURE__ */ l(x, { items:
|
|
43
|
+
children: /* @__PURE__ */ d(m, { flexDirection: "column", gap: 16, children: [
|
|
44
|
+
/* @__PURE__ */ l(x, { items: g }),
|
|
47
45
|
i && /* @__PURE__ */ l("div", { children: /* @__PURE__ */ l(f, { variant: "secondary", onClick: i, title: u, children: u }) })
|
|
48
46
|
] })
|
|
49
47
|
}
|
|
50
48
|
);
|
|
51
49
|
}
|
|
52
50
|
export {
|
|
53
|
-
|
|
51
|
+
z as PayrollBlockerAlerts
|
|
54
52
|
};
|
|
55
53
|
//# sourceMappingURL=PayrollBlockerAlerts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollBlockerAlerts.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type ApiPayrollBlocker, getBlockerTranslationKeys } from '../payrollHelpers'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex } from '@/components/Common'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollBlockerAlertsProps {\n blockers: ApiPayrollBlocker[]\n className?: string\n onMultipleViewClick?: () => void\n multipleViewLabel?: string\n}\n\n/**\n * PayrollBlockerAlerts - Alert-style component for inline blocker display\n * Shows single blocker as alert, or multiple blockers as summary with \"Review\" button\n * Returns null for empty blocker arrays\n */\nexport function PayrollBlockerAlerts({\n blockers,\n onMultipleViewClick,\n multipleViewLabel,\n className,\n}: PayrollBlockerAlertsProps) {\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n const { Alert, Button, Text, UnorderedList } = useComponentContext()\n\n // Return null for empty blockers array\n if (blockers.length === 0) {\n return null\n }\n\n const hasMultipleBlockers = blockers.length > 1\n\n const enrichedBlockers = blockers.map(blocker => {\n const translationKeys = getBlockerTranslationKeys(blocker.key)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blocker.key.replace(/_/g, ' ').replace(/\\b\\w/g, l => l.toUpperCase()),\n })\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n const helpText = t(translationKeys.helpTextKey, { defaultValue: t('defaultBlockerHelpText') })\n\n return {\n ...blocker,\n title,\n description,\n helpText,\n }\n })\n\n const singleBlocker = enrichedBlockers[0]\n\n if (!hasMultipleBlockers && singleBlocker) {\n return (\n <Alert status=\"error\" label={singleBlocker.title} className={className}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text>{singleBlocker.description}</Text>\n {singleBlocker.helpText && singleBlocker.helpText !== singleBlocker.description && (\n <Text variant=\"supporting\" size=\"sm\">\n {singleBlocker.helpText}\n </Text>\n )}\n </Flex>\n </Alert>\n )\n }\n\n const listItems = enrichedBlockers.map(blocker => blocker.title)\n const defaultMultipleLabel = multipleViewLabel || t('viewAllBlockers')\n\n return (\n <Alert\n status=\"error\"\n label={t('multipleIssuesTitle', { count: blockers.length })}\n className={className}\n >\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={listItems} />\n {onMultipleViewClick && (\n <div>\n <Button variant=\"secondary\" onClick={onMultipleViewClick} title={defaultMultipleLabel}>\n {defaultMultipleLabel}\n </Button>\n </div>\n )}\n </Flex>\n </Alert>\n )\n}\n"],"names":["PayrollBlockerAlerts","blockers","onMultipleViewClick","multipleViewLabel","className","useI18n","t","useTranslation","Alert","Button","Text","UnorderedList","useComponentContext","hasMultipleBlockers","enrichedBlockers","blocker","translationKeys","getBlockerTranslationKeys","title","l","description","helpText","singleBlocker","jsx","jsxs","Flex","listItems","defaultMultipleLabel"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PayrollBlockerAlerts.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type ApiPayrollBlocker, getBlockerTranslationKeys } from '../payrollHelpers'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex } from '@/components/Common'\nimport { useI18n } from '@/i18n'\n\ninterface PayrollBlockerAlertsProps {\n blockers: ApiPayrollBlocker[]\n className?: string\n onMultipleViewClick?: () => void\n multipleViewLabel?: string\n}\n\n/**\n * PayrollBlockerAlerts - Alert-style component for inline blocker display\n * Shows single blocker as alert, or multiple blockers as summary with \"Review\" button\n * Returns null for empty blocker arrays\n */\nexport function PayrollBlockerAlerts({\n blockers,\n onMultipleViewClick,\n multipleViewLabel,\n className,\n}: PayrollBlockerAlertsProps) {\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Alert, Button, Text, UnorderedList } = useComponentContext()\n\n // Return null for empty blockers array\n if (blockers.length === 0) {\n return null\n }\n\n const hasMultipleBlockers = blockers.length > 1\n\n const enrichedBlockers = blockers.map(blocker => {\n const translationKeys = getBlockerTranslationKeys(blocker.key)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blocker.key.replace(/_/g, ' ').replace(/\\b\\w/g, l => l.toUpperCase()),\n })\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n const helpText = t(translationKeys.helpTextKey, { defaultValue: t('defaultBlockerHelpText') })\n\n return {\n ...blocker,\n title,\n description,\n helpText,\n }\n })\n\n const singleBlocker = enrichedBlockers[0]\n\n if (!hasMultipleBlockers && singleBlocker) {\n return (\n <Alert status=\"error\" label={singleBlocker.title} className={className}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text>{singleBlocker.description}</Text>\n {singleBlocker.helpText && singleBlocker.helpText !== singleBlocker.description && (\n <Text variant=\"supporting\" size=\"sm\">\n {singleBlocker.helpText}\n </Text>\n )}\n </Flex>\n </Alert>\n )\n }\n\n const listItems = enrichedBlockers.map(blocker => blocker.title)\n const defaultMultipleLabel = multipleViewLabel || t('viewAllBlockers')\n\n return (\n <Alert\n status=\"error\"\n label={t('multipleIssuesTitle', { count: blockers.length })}\n className={className}\n >\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={listItems} />\n {onMultipleViewClick && (\n <div>\n <Button variant=\"secondary\" onClick={onMultipleViewClick} title={defaultMultipleLabel}>\n {defaultMultipleLabel}\n </Button>\n </div>\n )}\n </Flex>\n </Alert>\n )\n}\n"],"names":["PayrollBlockerAlerts","blockers","onMultipleViewClick","multipleViewLabel","className","useI18n","t","useTranslation","Alert","Button","Text","UnorderedList","useComponentContext","hasMultipleBlockers","enrichedBlockers","blocker","translationKeys","getBlockerTranslationKeys","title","l","description","helpText","singleBlocker","jsx","jsxs","Flex","listItems","defaultMultipleLabel"],"mappings":";;;;;;;AAkBO,SAASA,EAAqB;AAAA,EACnC,UAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAC;AACF,GAA8B;AAC5B,EAAAC,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAC/C,EAAE,OAAAC,GAAO,QAAAC,GAAQ,MAAAC,GAAM,eAAAC,EAAA,IAAkBC,EAAA;AAG/C,MAAIX,EAAS,WAAW;AACtB,WAAO;AAGT,QAAMY,IAAsBZ,EAAS,SAAS,GAExCa,IAAmBb,EAAS,IAAI,CAAAc,MAAW;AAC/C,UAAMC,IAAkBC,EAA0BF,EAAQ,GAAG,GAEvDG,IAAQZ,EAAEU,EAAgB,UAAU;AAAA,MACxC,cAAcD,EAAQ,IAAI,QAAQ,MAAM,GAAG,EAAE,QAAQ,SAAS,CAAAI,MAAKA,EAAE,YAAA,CAAa;AAAA,IAAA,CACnF,GACKC,IAAcd,EAAEU,EAAgB,gBAAgB;AAAA,MACpD,cAAcD,EAAQ,WAAWT,EAAE,2BAA2B;AAAA,IAAA,CAC/D,GACKe,IAAWf,EAAEU,EAAgB,aAAa,EAAE,cAAcV,EAAE,wBAAwB,GAAG;AAE7F,WAAO;AAAA,MACL,GAAGS;AAAA,MACH,OAAAG;AAAA,MACA,aAAAE;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAEJ,CAAC,GAEKC,IAAgBR,EAAiB,CAAC;AAExC,MAAI,CAACD,KAAuBS;AAC1B,WACE,gBAAAC,EAACf,GAAA,EAAM,QAAO,SAAQ,OAAOc,EAAc,OAAO,WAAAlB,GAChD,UAAA,gBAAAoB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAF,EAACb,GAAA,EAAM,YAAc,YAAA,CAAY;AAAA,MAChCY,EAAc,YAAYA,EAAc,aAAaA,EAAc,eAClE,gBAAAC,EAACb,GAAA,EAAK,SAAQ,cAAa,MAAK,MAC7B,YAAc,SAAA,CACjB;AAAA,IAAA,EAAA,CAEJ,EAAA,CACF;AAIJ,QAAMgB,IAAYZ,EAAiB,IAAI,CAAAC,MAAWA,EAAQ,KAAK,GACzDY,IAAuBxB,KAAqBG,EAAE,iBAAiB;AAErE,SACE,gBAAAiB;AAAA,IAACf;AAAA,IAAA;AAAA,MACC,QAAO;AAAA,MACP,OAAOF,EAAE,uBAAuB,EAAE,OAAOL,EAAS,QAAQ;AAAA,MAC1D,WAAAG;AAAA,MAEA,UAAA,gBAAAoB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,QAAA,gBAAAF,EAACZ,GAAA,EAAc,OAAOe,EAAA,CAAW;AAAA,QAChCxB,KACC,gBAAAqB,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACd,GAAA,EAAO,SAAQ,aAAY,SAASP,GAAqB,OAAOyB,GAC9D,UAAAA,EAAA,CACH,EAAA,CACF;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import
|
|
1
|
+
import { jsx as e, jsxs as a } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as f } from "react-i18next";
|
|
3
|
+
import p from "classnames";
|
|
4
4
|
import u from "./PayrollBlockerList.module.scss.js";
|
|
5
5
|
import { useComponentContext as h } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
-
import { FlexItem as x, Flex as
|
|
7
|
-
import "
|
|
8
|
-
import "
|
|
9
|
-
import { DataView as g } from "../../../Common/DataView/DataView.js";
|
|
10
|
-
import { useDataView as y } from "../../../Common/DataView/useDataView.js";
|
|
6
|
+
import { FlexItem as x, Flex as o } from "../../../Common/Flex/Flex.js";
|
|
7
|
+
import { DataView as y } from "../../../Common/DataView/DataView.js";
|
|
8
|
+
import { useDataView as g } from "../../../Common/DataView/useDataView.js";
|
|
11
9
|
import { useI18n as b } from "../../../../i18n/I18n.js";
|
|
12
|
-
function
|
|
13
|
-
b("PayrollBlocker");
|
|
14
|
-
const { t:
|
|
15
|
-
data:
|
|
10
|
+
function v({ blockers: i, className: s }) {
|
|
11
|
+
b("Payroll.PayrollBlocker");
|
|
12
|
+
const { t: l } = f("Payroll.PayrollBlocker"), { Button: c, Text: n, Heading: m } = h(), d = g({
|
|
13
|
+
data: i,
|
|
16
14
|
columns: [
|
|
17
15
|
{
|
|
18
|
-
title:
|
|
19
|
-
render: (t) => /* @__PURE__ */ e(x, { flexGrow: 1, children: /* @__PURE__ */
|
|
16
|
+
title: l("blockerSectionLabel"),
|
|
17
|
+
render: (t) => /* @__PURE__ */ e(x, { flexGrow: 1, children: /* @__PURE__ */ a(o, { flexDirection: "column", gap: 8, children: [
|
|
20
18
|
/* @__PURE__ */ e(n, { weight: "semibold", children: t.title }),
|
|
21
19
|
/* @__PURE__ */ e(n, { variant: "supporting", children: t.description })
|
|
22
20
|
] }) })
|
|
@@ -25,17 +23,17 @@ function V({ blockers: l, className: a }) {
|
|
|
25
23
|
title: "",
|
|
26
24
|
render: (t) => {
|
|
27
25
|
const r = t.action;
|
|
28
|
-
return r ? /* @__PURE__ */ e(
|
|
26
|
+
return r ? /* @__PURE__ */ e(o, { justifyContent: "flex-end", alignItems: "center", children: /* @__PURE__ */ e(c, { variant: "secondary", onClick: r.onClick, title: r.label, children: r.label }) }) : null;
|
|
29
27
|
}
|
|
30
28
|
}
|
|
31
29
|
]
|
|
32
30
|
});
|
|
33
|
-
return
|
|
34
|
-
/* @__PURE__ */ e(m, { as: "h2", styledAs: "h4", children:
|
|
35
|
-
/* @__PURE__ */ e(
|
|
31
|
+
return i.length === 0 ? null : /* @__PURE__ */ e("div", { className: p(u.root, s), children: /* @__PURE__ */ a(o, { flexDirection: "column", gap: 24, children: [
|
|
32
|
+
/* @__PURE__ */ e(m, { as: "h2", styledAs: "h4", children: l("blockersListTitle") }),
|
|
33
|
+
/* @__PURE__ */ e(y, { ...d, label: l("blockersListTitle") })
|
|
36
34
|
] }) });
|
|
37
35
|
}
|
|
38
36
|
export {
|
|
39
|
-
|
|
37
|
+
v as PayrollBlockerList
|
|
40
38
|
};
|
|
41
39
|
//# sourceMappingURL=PayrollBlockerList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport styles from './PayrollBlockerList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { useI18n } from '@/i18n'\n\nexport interface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\ninterface PayrollBlockerListProps {\n blockers: PayrollBlocker[]\n className?: string\n}\n\n/**\n * PayrollBlockerList - DataView-based component displaying payroll blockers\n * Shows each blocker with individual resolution buttons\n */\nexport function PayrollBlockerList({ blockers, className }: PayrollBlockerListProps) {\n useI18n('PayrollBlocker')\n const { t } = useTranslation('PayrollBlocker')\n const { Button, Text, Heading } = useComponentContext()\n\n const dataViewProps = useDataView({\n data: blockers,\n columns: [\n {\n title: t('blockerSectionLabel'),\n render: blocker => (\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text weight=\"semibold\">{blocker.title}</Text>\n <Text variant=\"supporting\">{blocker.description}</Text>\n </Flex>\n </FlexItem>\n ),\n },\n {\n title: '',\n render: blocker => {\n // For presentational purposes, just show the primary action if it exists\n const action = blocker.action\n\n if (!action) {\n return null\n }\n\n return (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Button variant=\"secondary\" onClick={action.onClick} title={action.label}>\n {action.label}\n </Button>\n </Flex>\n )\n },\n },\n ],\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={24}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","blockers","className","useI18n","t","useTranslation","Button","Text","Heading","useComponentContext","dataViewProps","useDataView","blocker","jsx","FlexItem","jsxs","Flex","action","classNames","styles","DataView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport styles from './PayrollBlockerList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { useI18n } from '@/i18n'\n\nexport interface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\ninterface PayrollBlockerListProps {\n blockers: PayrollBlocker[]\n className?: string\n}\n\n/**\n * PayrollBlockerList - DataView-based component displaying payroll blockers\n * Shows each blocker with individual resolution buttons\n */\nexport function PayrollBlockerList({ blockers, className }: PayrollBlockerListProps) {\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Button, Text, Heading } = useComponentContext()\n\n const dataViewProps = useDataView({\n data: blockers,\n columns: [\n {\n title: t('blockerSectionLabel'),\n render: blocker => (\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text weight=\"semibold\">{blocker.title}</Text>\n <Text variant=\"supporting\">{blocker.description}</Text>\n </Flex>\n </FlexItem>\n ),\n },\n {\n title: '',\n render: blocker => {\n // For presentational purposes, just show the primary action if it exists\n const action = blocker.action\n\n if (!action) {\n return null\n }\n\n return (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Button variant=\"secondary\" onClick={action.onClick} title={action.label}>\n {action.label}\n </Button>\n </Flex>\n )\n },\n },\n ],\n })\n\n if (blockers.length === 0) {\n return null\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={24}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","blockers","className","useI18n","t","useTranslation","Button","Text","Heading","useComponentContext","dataViewProps","useDataView","blocker","jsx","FlexItem","jsxs","Flex","action","classNames","styles","DataView"],"mappings":";;;;;;;;;AA4BO,SAASA,EAAmB,EAAE,UAAAC,GAAU,WAAAC,KAAsC;AACnF,EAAAC,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAC/C,EAAE,QAAAC,GAAQ,MAAAC,GAAM,SAAAC,EAAA,IAAYC,EAAA,GAE5BC,IAAgBC,EAAY;AAAA,IAChC,MAAMV;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,OAAOG,EAAE,qBAAqB;AAAA,QAC9B,QAAQ,CAAAQ,MACN,gBAAAC,EAACC,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAH,EAACN,GAAA,EAAK,QAAO,YAAY,UAAAK,EAAQ,OAAM;AAAA,UACvC,gBAAAC,EAACN,GAAA,EAAK,SAAQ,cAAc,YAAQ,YAAA,CAAY;AAAA,QAAA,EAAA,CAClD,EAAA,CACF;AAAA,MAAA;AAAA,MAGJ;AAAA,QACE,OAAO;AAAA,QACP,QAAQ,CAAAK,MAAW;AAEjB,gBAAMK,IAASL,EAAQ;AAEvB,iBAAKK,sBAKFD,GAAA,EAAK,gBAAe,YAAW,YAAW,UACzC,4BAACV,GAAA,EAAO,SAAQ,aAAY,SAASW,EAAO,SAAS,OAAOA,EAAO,OAChE,UAAAA,EAAO,OACV,EAAA,CACF,IARO;AAAA,QAUX;AAAA,MAAA;AAAA,IACF;AAAA,EACF,CACD;AAED,SAAIhB,EAAS,WAAW,IACf,OAIP,gBAAAY,EAAC,OAAA,EAAI,WAAWK,EAAWC,EAAO,MAAMjB,CAAS,GAC/C,UAAA,gBAAAa,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAH,EAACL,KAAQ,IAAG,MAAK,UAAS,MACvB,UAAAJ,EAAE,mBAAmB,GACxB;AAAA,sBAECgB,GAAA,EAAU,GAAGV,GAAe,OAAON,EAAE,mBAAmB,EAAA,CAAG;AAAA,EAAA,EAAA,CAC9D,EAAA,CACF;AAEJ;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
1
|
+
import { jsx as y } from "react/jsx-runtime";
|
|
2
|
+
import { useState as m, useMemo as H, useEffect as V } from "react";
|
|
3
3
|
import { useEmployeesListSuspense as G } from "@gusto/embedded-api/react-query/employeesList";
|
|
4
4
|
import { usePayrollsGetSuspense as K } from "@gusto/embedded-api/react-query/payrollsGet";
|
|
5
5
|
import { usePayrollsCalculateMutation as j } from "@gusto/embedded-api/react-query/payrollsCalculate";
|
|
@@ -13,27 +13,27 @@ import { BaseComponent as X } from "../../Base/Base.js";
|
|
|
13
13
|
import { componentEvents as o } from "../../../shared/constants.js";
|
|
14
14
|
import { useComponentDictionary as Z, useI18n as $ } from "../../../i18n/I18n.js";
|
|
15
15
|
import { useBase as ee } from "../../Base/useBase.js";
|
|
16
|
-
const te = (t) => t?.status === d.Calculating,
|
|
16
|
+
const te = (t) => t?.status === d.Calculating, ae = (t) => t?.status === d.CalculateSuccess;
|
|
17
17
|
function _e(t) {
|
|
18
|
-
return /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ y(X, { ...t, children: /* @__PURE__ */ y(se, { ...t, children: t.children }) });
|
|
19
19
|
}
|
|
20
|
-
const
|
|
20
|
+
const se = ({
|
|
21
21
|
onEvent: t,
|
|
22
22
|
companyId: r,
|
|
23
|
-
payrollId:
|
|
23
|
+
payrollId: a,
|
|
24
24
|
dictionary: E,
|
|
25
25
|
alerts: R
|
|
26
26
|
}) => {
|
|
27
27
|
Z("Payroll.PayrollConfiguration", E), $("Payroll.PayrollConfiguration");
|
|
28
|
-
const { t: f } = W("Payroll.PayrollConfiguration"), { baseSubmitHandler: h } = ee(), S = 10, [C, i] =
|
|
28
|
+
const { t: f } = W("Payroll.PayrollConfiguration"), { baseSubmitHandler: h } = ee(), S = 10, [C, i] = m(1), [L, _] = m(S), [s, c] = m(!1), [w, P] = m([]), { data: u, isFetching: A } = G({
|
|
29
29
|
companyId: r,
|
|
30
|
-
payrollUuid:
|
|
30
|
+
payrollUuid: a,
|
|
31
31
|
// get back list of employees to specific payroll
|
|
32
32
|
per: L,
|
|
33
33
|
page: C,
|
|
34
34
|
sortBy: "name"
|
|
35
35
|
// sort alphanumeric by employee last_names
|
|
36
|
-
}),
|
|
36
|
+
}), N = H(() => u.showEmployees?.map((e) => e.uuid) || [], [u.showEmployees]), p = Number(u.httpMeta.response.headers.get("x-total-pages") ?? 1), U = {
|
|
37
37
|
currentPage: C,
|
|
38
38
|
handleFirstPage: () => {
|
|
39
39
|
i(1);
|
|
@@ -56,35 +56,39 @@ const ae = ({
|
|
|
56
56
|
}, { data: l } = K(
|
|
57
57
|
{
|
|
58
58
|
companyId: r,
|
|
59
|
-
payrollId:
|
|
59
|
+
payrollId: a,
|
|
60
60
|
include: ["taxes", "benefits", "deductions"]
|
|
61
61
|
},
|
|
62
|
-
{ refetchInterval:
|
|
63
|
-
), { mutateAsync:
|
|
64
|
-
preparedPayroll:
|
|
62
|
+
{ refetchInterval: s ? 5e3 : !1 }
|
|
63
|
+
), { mutateAsync: O } = j(), { mutateAsync: x, isPending: D } = v(), {
|
|
64
|
+
preparedPayroll: g,
|
|
65
65
|
paySchedule: Y,
|
|
66
66
|
isLoading: B,
|
|
67
67
|
handlePreparePayroll: b
|
|
68
68
|
} = z({
|
|
69
69
|
companyId: r,
|
|
70
|
-
payrollId:
|
|
71
|
-
employeeUuids:
|
|
70
|
+
payrollId: a,
|
|
71
|
+
employeeUuids: N,
|
|
72
72
|
sortBy: "last_name"
|
|
73
73
|
// sort alphanumeric by employee last_names to match employees GET
|
|
74
74
|
}), q = async () => {
|
|
75
|
-
|
|
75
|
+
P([]), await h({}, async () => {
|
|
76
76
|
const e = await J(async () => {
|
|
77
|
-
await
|
|
77
|
+
await O({
|
|
78
78
|
request: {
|
|
79
79
|
companyId: r,
|
|
80
|
-
payrollId:
|
|
80
|
+
payrollId: a
|
|
81
81
|
}
|
|
82
82
|
}), c(!0);
|
|
83
83
|
});
|
|
84
|
-
!e.success && e.blockers.length > 0 &&
|
|
84
|
+
!e.success && e.blockers.length > 0 && P(e.blockers);
|
|
85
85
|
});
|
|
86
86
|
}, F = (e) => {
|
|
87
|
-
t(o.RUN_PAYROLL_EMPLOYEE_EDIT, {
|
|
87
|
+
t(o.RUN_PAYROLL_EMPLOYEE_EDIT, {
|
|
88
|
+
employeeId: e.uuid,
|
|
89
|
+
firstName: e.firstName,
|
|
90
|
+
lastName: e.lastName
|
|
91
|
+
});
|
|
88
92
|
}, M = ({
|
|
89
93
|
paymentMethod: e,
|
|
90
94
|
...n
|
|
@@ -96,10 +100,10 @@ const ae = ({
|
|
|
96
100
|
t(o.RUN_PAYROLL_EMPLOYEE_SKIP, {
|
|
97
101
|
employeeId: e.employeeUuid
|
|
98
102
|
}), await h({}, async () => {
|
|
99
|
-
const n = M(e), T = await
|
|
103
|
+
const n = M(e), T = await x({
|
|
100
104
|
request: {
|
|
101
105
|
companyId: r,
|
|
102
|
-
payrollId:
|
|
106
|
+
payrollId: a,
|
|
103
107
|
payrollUpdate: {
|
|
104
108
|
employeeCompensations: [
|
|
105
109
|
{ ...n, excluded: !n.excluded }
|
|
@@ -115,38 +119,38 @@ const ae = ({
|
|
|
115
119
|
t(o.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
|
|
116
120
|
};
|
|
117
121
|
return V(() => {
|
|
118
|
-
te(l.payrollShow?.processingRequest) && !
|
|
119
|
-
payrollId:
|
|
122
|
+
te(l.payrollShow?.processingRequest) && !s && c(!0), s && ae(l.payrollShow?.processingRequest) && (t(o.RUN_PAYROLL_CALCULATED, {
|
|
123
|
+
payrollId: a,
|
|
120
124
|
alert: { type: "success", title: f("alerts.progressSaved") }
|
|
121
|
-
}),
|
|
125
|
+
}), P([]), c(!1)), s && l.payrollShow?.processingRequest?.status === d.ProcessingFailed && (t(o.RUN_PAYROLL_PROCESSING_FAILED), c(!1));
|
|
122
126
|
}, [
|
|
123
127
|
l.payrollShow?.processingRequest,
|
|
124
|
-
|
|
128
|
+
s,
|
|
125
129
|
t,
|
|
126
130
|
f,
|
|
127
|
-
|
|
131
|
+
a,
|
|
128
132
|
l.payrollShow?.calculatedAt
|
|
129
|
-
]), /* @__PURE__ */
|
|
133
|
+
]), /* @__PURE__ */ y(
|
|
130
134
|
Q,
|
|
131
135
|
{
|
|
132
136
|
onCalculatePayroll: q,
|
|
133
137
|
onEdit: F,
|
|
134
138
|
onToggleExclude: k,
|
|
135
139
|
onViewBlockers: I,
|
|
136
|
-
employeeCompensations:
|
|
140
|
+
employeeCompensations: g?.employeeCompensations || [],
|
|
137
141
|
employeeDetails: u.showEmployees || [],
|
|
138
|
-
payPeriod:
|
|
142
|
+
payPeriod: g?.payPeriod,
|
|
139
143
|
paySchedule: Y,
|
|
140
|
-
isOffCycle:
|
|
144
|
+
isOffCycle: g?.offCycle,
|
|
141
145
|
alerts: R,
|
|
142
|
-
isPending:
|
|
146
|
+
isPending: s || B || D,
|
|
143
147
|
payrollBlockers: w,
|
|
144
|
-
pagination:
|
|
148
|
+
pagination: U
|
|
145
149
|
}
|
|
146
150
|
);
|
|
147
151
|
};
|
|
148
152
|
export {
|
|
149
153
|
_e as PayrollConfiguration,
|
|
150
|
-
|
|
154
|
+
se as Root
|
|
151
155
|
};
|
|
152
156
|
//# sourceMappingURL=PayrollConfiguration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from 'react'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { usePayrollsCalculateMutation } from '@gusto/embedded-api/react-query/payrollsCalculate'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { PayrollProcessingRequest } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api/models/components/payrollupdate'\nimport { usePreparedPayrollData } from '../usePreparedPayrollData'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport type { PaginationItemsPerPage } from '@/components/Common/PaginationControl/PaginationControlTypes'\n\nconst isCalculating = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.Calculating\nconst isCalculated = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess\n\ninterface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n companyId: string\n payrollId: string\n alerts?: ReactNode\n}\n\nexport function PayrollConfiguration(props: PayrollConfigurationProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n onEvent,\n companyId,\n payrollId,\n dictionary,\n alerts,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler } = useBase()\n const defaultItemsPerPage = 10\n\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState<PaginationItemsPerPage>(defaultItemsPerPage)\n const [isPolling, setIsPolling] = useState(false)\n const [payrollBlockers, setPayrollBlockers] = useState<ApiPayrollBlocker[]>([])\n\n const { data: employeeData, isFetching: isFetchingEmployeeData } = useEmployeesListSuspense({\n companyId,\n payrollUuid: payrollId, // get back list of employees to specific payroll\n per: itemsPerPage,\n page: currentPage,\n sortBy: 'name', // sort alphanumeric by employee last_names\n })\n\n // get list of employee uuids to filter into prepare endpoint to get back employee_compensation data\n const employeeUuids = useMemo(() => {\n return employeeData.showEmployees?.map(e => e.uuid) || []\n }, [employeeData.showEmployees])\n\n const totalPages = Number(employeeData.httpMeta.response.headers.get('x-total-pages') ?? 1)\n\n const handleItemsPerPageChange = (newCount: PaginationItemsPerPage) => {\n setItemsPerPage(newCount)\n }\n const handleFirstPage = () => {\n setCurrentPage(1)\n }\n const handlePreviousPage = () => {\n setCurrentPage(prevPage => Math.max(prevPage - 1, 1))\n }\n const handleNextPage = () => {\n setCurrentPage(prevPage => Math.min(prevPage + 1, totalPages))\n }\n const handleLastPage = () => {\n setCurrentPage(totalPages)\n }\n\n const pagination = {\n currentPage,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n totalPages,\n isFetching: isFetchingEmployeeData,\n itemsPerPage,\n }\n\n const { data: payrollData } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\n\n const { mutateAsync: calculatePayroll } = usePayrollsCalculateMutation()\n\n const { mutateAsync: updatePayroll, isPending: isUpdatingPayroll } = usePayrollsUpdateMutation()\n\n const {\n preparedPayroll,\n paySchedule,\n isLoading: isPrepareLoading,\n handlePreparePayroll,\n } = usePreparedPayrollData({\n companyId,\n payrollId,\n employeeUuids,\n sortBy: 'last_name', // sort alphanumeric by employee last_names to match employees GET\n })\n\n const onCalculatePayroll = async () => {\n // Clear any existing blockers before attempting calculation\n setPayrollBlockers([])\n\n await baseSubmitHandler({}, async () => {\n const result = await payrollSubmitHandler(async () => {\n await calculatePayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setIsPolling(true)\n })\n\n if (!result.success && result.blockers.length > 0) {\n setPayrollBlockers(result.blockers)\n }\n })\n }\n const onEdit = (employee: Employee) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_EDIT, { employeeId: employee.uuid })\n }\n const transformEmployeeCompensation = ({\n paymentMethod,\n ...compensation\n }: PayrollEmployeeCompensationsType): PayrollUpdateEmployeeCompensations => {\n return {\n ...compensation,\n ...(paymentMethod && paymentMethod !== 'Historical' ? { paymentMethod } : {}),\n memo: compensation.memo || undefined,\n }\n }\n const onToggleExclude = async (employeeCompensation: PayrollEmployeeCompensationsType) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SKIP, {\n employeeId: employeeCompensation.employeeUuid,\n })\n await baseSubmitHandler({}, async () => {\n const transformedCompensation = transformEmployeeCompensation(employeeCompensation)\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { ...transformedCompensation, excluded: !transformedCompensation.excluded },\n ],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n // Refresh preparedPayroll to get updated data\n await handlePreparePayroll()\n })\n }\n\n const onViewBlockers = () => {\n onEvent(componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL)\n }\n\n useEffect(() => {\n // Start polling when payroll is calculating and not already polling\n if (isCalculating(payrollData.payrollShow?.processingRequest) && !isPolling) {\n setIsPolling(true)\n }\n // Stop polling and emit event when payroll is calculated successfully\n if (isPolling && isCalculated(payrollData.payrollShow?.processingRequest)) {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: { type: 'success', title: t('alerts.progressSaved') },\n })\n // Clear blockers on successful calculation\n setPayrollBlockers([])\n setIsPolling(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.ProcessingFailed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }\n }, [\n payrollData.payrollShow?.processingRequest,\n isPolling,\n onEvent,\n t,\n payrollId,\n payrollData.payrollShow?.calculatedAt,\n ])\n\n return (\n <PayrollConfigurationPresentation\n onCalculatePayroll={onCalculatePayroll}\n onEdit={onEdit}\n onToggleExclude={onToggleExclude}\n onViewBlockers={onViewBlockers}\n employeeCompensations={preparedPayroll?.employeeCompensations || []}\n employeeDetails={employeeData.showEmployees || []}\n payPeriod={preparedPayroll?.payPeriod}\n paySchedule={paySchedule}\n isOffCycle={preparedPayroll?.offCycle}\n alerts={alerts}\n isPending={isPolling || isPrepareLoading || isUpdatingPayroll}\n payrollBlockers={payrollBlockers}\n pagination={pagination}\n />\n )\n}\n"],"names":["isCalculating","processingRequest","PayrollProcessingRequestStatus","isCalculated","PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","useBase","defaultItemsPerPage","currentPage","setCurrentPage","useState","itemsPerPage","setItemsPerPage","isPolling","setIsPolling","payrollBlockers","setPayrollBlockers","employeeData","isFetchingEmployeeData","useEmployeesListSuspense","employeeUuids","useMemo","totalPages","pagination","prevPage","newCount","payrollData","usePayrollsGetSuspense","calculatePayroll","usePayrollsCalculateMutation","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","preparedPayroll","paySchedule","isPrepareLoading","handlePreparePayroll","usePreparedPayrollData","onCalculatePayroll","result","payrollSubmitHandler","onEdit","employee","componentEvents","transformEmployeeCompensation","paymentMethod","compensation","onToggleExclude","employeeCompensation","transformedCompensation","onViewBlockers","useEffect","PayrollConfigurationPresentation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useEffect, useMemo, useState, type ReactNode } from 'react'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { usePayrollsCalculateMutation } from '@gusto/embedded-api/react-query/payrollsCalculate'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { PayrollProcessingRequest } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api/models/components/payrollupdate'\nimport { usePreparedPayrollData } from '../usePreparedPayrollData'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport type { PaginationItemsPerPage } from '@/components/Common/PaginationControl/PaginationControlTypes'\n\nconst isCalculating = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.Calculating\nconst isCalculated = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess\n\ninterface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n companyId: string\n payrollId: string\n alerts?: ReactNode\n}\n\nexport function PayrollConfiguration(props: PayrollConfigurationProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n onEvent,\n companyId,\n payrollId,\n dictionary,\n alerts,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler } = useBase()\n const defaultItemsPerPage = 10\n\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState<PaginationItemsPerPage>(defaultItemsPerPage)\n const [isPolling, setIsPolling] = useState(false)\n const [payrollBlockers, setPayrollBlockers] = useState<ApiPayrollBlocker[]>([])\n\n const { data: employeeData, isFetching: isFetchingEmployeeData } = useEmployeesListSuspense({\n companyId,\n payrollUuid: payrollId, // get back list of employees to specific payroll\n per: itemsPerPage,\n page: currentPage,\n sortBy: 'name', // sort alphanumeric by employee last_names\n })\n\n // get list of employee uuids to filter into prepare endpoint to get back employee_compensation data\n const employeeUuids = useMemo(() => {\n return employeeData.showEmployees?.map(e => e.uuid) || []\n }, [employeeData.showEmployees])\n\n const totalPages = Number(employeeData.httpMeta.response.headers.get('x-total-pages') ?? 1)\n\n const handleItemsPerPageChange = (newCount: PaginationItemsPerPage) => {\n setItemsPerPage(newCount)\n }\n const handleFirstPage = () => {\n setCurrentPage(1)\n }\n const handlePreviousPage = () => {\n setCurrentPage(prevPage => Math.max(prevPage - 1, 1))\n }\n const handleNextPage = () => {\n setCurrentPage(prevPage => Math.min(prevPage + 1, totalPages))\n }\n const handleLastPage = () => {\n setCurrentPage(totalPages)\n }\n\n const pagination = {\n currentPage,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n totalPages,\n isFetching: isFetchingEmployeeData,\n itemsPerPage,\n }\n\n const { data: payrollData } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\n\n const { mutateAsync: calculatePayroll } = usePayrollsCalculateMutation()\n\n const { mutateAsync: updatePayroll, isPending: isUpdatingPayroll } = usePayrollsUpdateMutation()\n\n const {\n preparedPayroll,\n paySchedule,\n isLoading: isPrepareLoading,\n handlePreparePayroll,\n } = usePreparedPayrollData({\n companyId,\n payrollId,\n employeeUuids,\n sortBy: 'last_name', // sort alphanumeric by employee last_names to match employees GET\n })\n\n const onCalculatePayroll = async () => {\n // Clear any existing blockers before attempting calculation\n setPayrollBlockers([])\n\n await baseSubmitHandler({}, async () => {\n const result = await payrollSubmitHandler(async () => {\n await calculatePayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setIsPolling(true)\n })\n\n if (!result.success && result.blockers.length > 0) {\n setPayrollBlockers(result.blockers)\n }\n })\n }\n const onEdit = (employee: Employee) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_EDIT, {\n employeeId: employee.uuid,\n firstName: employee.firstName,\n lastName: employee.lastName,\n })\n }\n const transformEmployeeCompensation = ({\n paymentMethod,\n ...compensation\n }: PayrollEmployeeCompensationsType): PayrollUpdateEmployeeCompensations => {\n return {\n ...compensation,\n ...(paymentMethod && paymentMethod !== 'Historical' ? { paymentMethod } : {}),\n memo: compensation.memo || undefined,\n }\n }\n const onToggleExclude = async (employeeCompensation: PayrollEmployeeCompensationsType) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SKIP, {\n employeeId: employeeCompensation.employeeUuid,\n })\n await baseSubmitHandler({}, async () => {\n const transformedCompensation = transformEmployeeCompensation(employeeCompensation)\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { ...transformedCompensation, excluded: !transformedCompensation.excluded },\n ],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n // Refresh preparedPayroll to get updated data\n await handlePreparePayroll()\n })\n }\n\n const onViewBlockers = () => {\n onEvent(componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL)\n }\n\n useEffect(() => {\n // Start polling when payroll is calculating and not already polling\n if (isCalculating(payrollData.payrollShow?.processingRequest) && !isPolling) {\n setIsPolling(true)\n }\n // Stop polling and emit event when payroll is calculated successfully\n if (isPolling && isCalculated(payrollData.payrollShow?.processingRequest)) {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: { type: 'success', title: t('alerts.progressSaved') },\n })\n // Clear blockers on successful calculation\n setPayrollBlockers([])\n setIsPolling(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.ProcessingFailed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }\n }, [\n payrollData.payrollShow?.processingRequest,\n isPolling,\n onEvent,\n t,\n payrollId,\n payrollData.payrollShow?.calculatedAt,\n ])\n\n return (\n <PayrollConfigurationPresentation\n onCalculatePayroll={onCalculatePayroll}\n onEdit={onEdit}\n onToggleExclude={onToggleExclude}\n onViewBlockers={onViewBlockers}\n employeeCompensations={preparedPayroll?.employeeCompensations || []}\n employeeDetails={employeeData.showEmployees || []}\n payPeriod={preparedPayroll?.payPeriod}\n paySchedule={paySchedule}\n isOffCycle={preparedPayroll?.offCycle}\n alerts={alerts}\n isPending={isPolling || isPrepareLoading || isUpdatingPayroll}\n payrollBlockers={payrollBlockers}\n pagination={pagination}\n />\n )\n}\n"],"names":["isCalculating","processingRequest","PayrollProcessingRequestStatus","isCalculated","PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","useBase","defaultItemsPerPage","currentPage","setCurrentPage","useState","itemsPerPage","setItemsPerPage","isPolling","setIsPolling","payrollBlockers","setPayrollBlockers","employeeData","isFetchingEmployeeData","useEmployeesListSuspense","employeeUuids","useMemo","totalPages","pagination","prevPage","newCount","payrollData","usePayrollsGetSuspense","calculatePayroll","usePayrollsCalculateMutation","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","preparedPayroll","paySchedule","isPrepareLoading","handlePreparePayroll","usePreparedPayrollData","onCalculatePayroll","result","payrollSubmitHandler","onEdit","employee","componentEvents","transformEmployeeCompensation","paymentMethod","compensation","onToggleExclude","employeeCompensation","transformedCompensation","onViewBlockers","useEffect","PayrollConfigurationPresentation"],"mappings":"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"}
|
|
@@ -7,15 +7,15 @@ import { useI18n as W } from "../../../i18n/I18n.js";
|
|
|
7
7
|
import { Flex as u, FlexItem as w } from "../../Common/Flex/Flex.js";
|
|
8
8
|
import { Grid as X } from "../../Common/Grid/Grid.js";
|
|
9
9
|
import "classnames";
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import Q from "../../../assets/icons/
|
|
13
|
-
import Y from "../../../assets/icons/
|
|
14
|
-
import Z from "../../../
|
|
15
|
-
import { formatNumberAsCurrency as f, firstLastName as $ } from "../../../helpers/formattedStrings.js";
|
|
10
|
+
import { useComponentContext as q } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
|
+
import J from "../../../assets/icons/pencil.svg.js";
|
|
12
|
+
import Q from "../../../assets/icons/x-circle.svg.js";
|
|
13
|
+
import Y from "../../../assets/icons/plus-circle.svg.js";
|
|
14
|
+
import { formatNumberAsCurrency as f, firstLastName as Z } from "../../../helpers/formattedStrings.js";
|
|
16
15
|
import { parseDateStringToLocal as x } from "../../../helpers/dateFormatting.js";
|
|
17
|
-
import { useLocale as
|
|
18
|
-
import { useLoadingIndicator as
|
|
16
|
+
import { useLocale as $ } from "../../../contexts/LocaleProvider/useLocale.js";
|
|
17
|
+
import { useLoadingIndicator as ee } from "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
18
|
+
import { HamburgerMenu as te } from "../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
19
19
|
import { DataView as re } from "../../Common/DataView/DataView.js";
|
|
20
20
|
const ne = ({
|
|
21
21
|
payPeriod: l,
|
|
@@ -51,11 +51,11 @@ const ne = ({
|
|
|
51
51
|
payrollBlockers: C = [],
|
|
52
52
|
pagination: L
|
|
53
53
|
}) => {
|
|
54
|
-
const { Button: M, Heading: h, Text: o, Badge: v, LoadingSpinner: H } =
|
|
54
|
+
const { Button: M, Heading: h, Text: o, Badge: v, LoadingSpinner: H } = q();
|
|
55
55
|
W("Payroll.PayrollConfiguration");
|
|
56
|
-
const { t: n } = A("Payroll.PayrollConfiguration"), { locale: E } =
|
|
56
|
+
const { t: n } = A("Payroll.PayrollConfiguration"), { locale: E } = $(), { LoadingIndicator: S } = ee(), F = U(), c = new Map(m.map((t) => [t.uuid, t])), I = (t) => {
|
|
57
57
|
const r = c.get(t);
|
|
58
|
-
return r ?
|
|
58
|
+
return r ? Z({ first_name: r.firstName, last_name: r.lastName }) : null;
|
|
59
59
|
};
|
|
60
60
|
return /* @__PURE__ */ i(u, { flexDirection: "column", gap: 16, children: [
|
|
61
61
|
/* @__PURE__ */ i(u, { justifyContent: "space-between", alignItems: "center", children: [
|
|
@@ -158,12 +158,12 @@ const ne = ({
|
|
|
158
158
|
],
|
|
159
159
|
data: l,
|
|
160
160
|
itemMenu: (t) => /* @__PURE__ */ e(
|
|
161
|
-
|
|
161
|
+
te,
|
|
162
162
|
{
|
|
163
163
|
items: [
|
|
164
164
|
{
|
|
165
165
|
label: n("editMenu.edit"),
|
|
166
|
-
icon: /* @__PURE__ */ e(
|
|
166
|
+
icon: /* @__PURE__ */ e(J, { "aria-hidden": !0 }),
|
|
167
167
|
onClick: () => {
|
|
168
168
|
const r = c.get(t.employeeUuid || "");
|
|
169
169
|
r && p(r);
|
|
@@ -171,7 +171,7 @@ const ne = ({
|
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
label: n(t.excluded ? "editMenu.unskip" : "editMenu.skip"),
|
|
174
|
-
icon: t.excluded ? /* @__PURE__ */ e(
|
|
174
|
+
icon: t.excluded ? /* @__PURE__ */ e(Y, { "aria-hidden": !0 }) : /* @__PURE__ */ e(Q, { "aria-hidden": !0 }),
|
|
175
175
|
onClick: () => {
|
|
176
176
|
c.get(t.employeeUuid || "") && g(t);
|
|
177
177
|
}
|