@gusto/embedded-react-sdk 0.23.1 → 0.24.1
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 +31 -0
- package/dist/components/Common/PayrollLoading/PayrollLoading.d.ts +2 -0
- package/dist/components/Common/PayrollLoading/PayrollLoading.js +19 -0
- package/dist/components/Common/PayrollLoading/PayrollLoading.js.map +1 -0
- package/dist/components/Common/PayrollLoading/PayrollLoadingTypes.d.ts +5 -0
- package/dist/components/Common/PayrollLoading/index.d.ts +3 -0
- package/dist/components/Common/SignatureForm/SignatureForm.js +11 -12
- package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +2 -2
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Common/index.d.ts +1 -0
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +12 -12
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +5 -6
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +5 -6
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +2 -2
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +3 -4
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
- package/dist/components/Company/FederalTaxes/Form.js +3 -4
- package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -9
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +2 -2
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +2 -2
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +2 -3
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +2 -3
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -2
- package/dist/components/Company/OnboardingOverview/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +2 -2
- package/dist/components/Company/PaySchedule/_parts/Edit.js +15 -15
- package/dist/components/Company/PaySchedule/_parts/Head.js +8 -9
- package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/List.js +11 -12
- package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +5 -6
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +2 -2
- package/dist/components/Contractor/Address/Form.js +1 -1
- package/dist/components/Contractor/Address/useAddress.js +5 -6
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.js +17 -17
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +2 -2
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +13 -14
- package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +10 -10
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +9 -10
- package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +2 -3
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +12 -13
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
- package/dist/components/Contractor/Profile/useContractorProfile.js +2 -3
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +1 -1
- package/dist/components/Employee/Compensation/Edit.js +14 -14
- 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 +11 -12
- package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +11 -12
- package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js +2 -3
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +3 -4
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.js +3 -4
- package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Head.js +2 -3
- package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +3 -4
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/FederalForm.js +9 -7
- package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +3 -4
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +8 -8
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +2 -2
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +1 -1
- package/dist/components/Employee/PaymentMethod/Split.js +8 -8
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +5 -6
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.js +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +2 -2
- package/dist/components/Employee/Profile/useProfile.js +3 -4
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/StateTaxes/useStateTaxes.js +3 -4
- package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.js +8 -6
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +3 -4
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Flow/Flow.js +2 -3
- package/dist/components/Flow/Flow.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +4 -4
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +26 -21
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +9 -9
- package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/types.d.ts +8 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +6 -7
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +2 -3
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +2 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +56 -54
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +2 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +90 -91
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +2 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +33 -31
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +2 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +72 -71
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- 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 +24 -18
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +5 -0
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +77 -51
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +17 -18
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +4 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +29 -21
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +5 -0
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +36 -26
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +16 -17
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +4 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +70 -60
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +237 -232
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +2 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +25 -15
- package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +2 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +152 -138
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/index.d.ts +1 -0
- package/dist/components/Payroll/usePreparedPayrollData.js +5 -6
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.d.ts +3 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +26 -18
- package/dist/contexts/ApiProvider/ApiProvider.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/GustoProvider.d.ts +2 -0
- package/dist/contexts/GustoProvider/GustoProvider.js +12 -11
- package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +24 -14
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/i18n/en/common.json.d.ts +1 -0
- package/dist/i18n/en/common.json.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/shared/constants.d.ts +1 -1
- package/dist/shared/constants.js +6 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +1 -0
- package/package.json +5 -5
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
-
import { useState as p, useMemo as
|
|
3
|
-
import { useEmployeesListSuspense as
|
|
4
|
-
import { usePayrollsGetSuspense as
|
|
5
|
-
import { usePayrollsCalculateMutation as
|
|
2
|
+
import { useState as p, useMemo as G, useEffect as K } from "react";
|
|
3
|
+
import { useEmployeesListSuspense as j } from "@gusto/embedded-api/react-query/employeesList";
|
|
4
|
+
import { usePayrollsGetSuspense as v } from "@gusto/embedded-api/react-query/payrollsGet";
|
|
5
|
+
import { usePayrollsCalculateMutation as z } from "@gusto/embedded-api/react-query/payrollsCalculate";
|
|
6
6
|
import { PayrollProcessingRequestStatus as h } from "@gusto/embedded-api/models/components/payrollprocessingrequest";
|
|
7
|
-
import { useTranslation as
|
|
8
|
-
import { usePayrollsUpdateMutation as
|
|
9
|
-
import { usePreparedPayrollData as
|
|
10
|
-
import { payrollSubmitHandler as
|
|
11
|
-
import { PayrollConfigurationPresentation as
|
|
12
|
-
import { BaseComponent as
|
|
7
|
+
import { useTranslation as J } from "react-i18next";
|
|
8
|
+
import { usePayrollsUpdateMutation as Q } from "@gusto/embedded-api/react-query/payrollsUpdate";
|
|
9
|
+
import { usePreparedPayrollData as X } from "../usePreparedPayrollData.js";
|
|
10
|
+
import { payrollSubmitHandler as Z } from "../PayrollBlocker/payrollHelpers.js";
|
|
11
|
+
import { PayrollConfigurationPresentation as $ } from "./PayrollConfigurationPresentation.js";
|
|
12
|
+
import { BaseComponent as ee } from "../../Base/Base.js";
|
|
13
13
|
import { componentEvents as r } from "../../../shared/constants.js";
|
|
14
|
-
import { useComponentDictionary as
|
|
15
|
-
import { useBase as
|
|
16
|
-
import { useDateFormatter as
|
|
17
|
-
const
|
|
18
|
-
function
|
|
19
|
-
return /* @__PURE__ */ f(
|
|
14
|
+
import { useComponentDictionary as te, useI18n as ae } from "../../../i18n/I18n.js";
|
|
15
|
+
import { useBase as oe } from "../../Base/useBase.js";
|
|
16
|
+
import { useDateFormatter as se } from "../../../hooks/useDateFormatter.js";
|
|
17
|
+
const re = (t) => t?.status === h.Calculating, le = (t) => t?.status === h.CalculateSuccess;
|
|
18
|
+
function Ue(t) {
|
|
19
|
+
return /* @__PURE__ */ f(ee, { ...t, children: /* @__PURE__ */ f(ie, { ...t, children: t.children }) });
|
|
20
20
|
}
|
|
21
|
-
const
|
|
21
|
+
const ie = ({
|
|
22
22
|
onEvent: t,
|
|
23
23
|
companyId: l,
|
|
24
24
|
payrollId: o,
|
|
25
25
|
dictionary: R,
|
|
26
|
-
alerts: w
|
|
26
|
+
alerts: w,
|
|
27
|
+
withReimbursements: D = !0
|
|
27
28
|
}) => {
|
|
28
|
-
|
|
29
|
-
const { t: i } =
|
|
29
|
+
te("Payroll.PayrollConfiguration", R), ae("Payroll.PayrollConfiguration");
|
|
30
|
+
const { t: i } = J("Payroll.PayrollConfiguration"), { baseSubmitHandler: C } = oe(), L = se(), _ = 10, [S, n] = p(1), [E, N] = p(_), [s, c] = p(!1), [A, P] = p([]), { data: u, isFetching: U } = j({
|
|
30
31
|
companyId: l,
|
|
31
32
|
payrollUuid: o,
|
|
32
33
|
// get back list of employees to specific payroll
|
|
@@ -34,7 +35,7 @@ const le = ({
|
|
|
34
35
|
page: S,
|
|
35
36
|
sortBy: "name"
|
|
36
37
|
// sort alphanumeric by employee last_names
|
|
37
|
-
}),
|
|
38
|
+
}), O = G(() => u.showEmployees?.map((e) => e.uuid) || [], [u.showEmployees]), y = Number(u.httpMeta.response.headers.get("x-total-pages") ?? 1), x = {
|
|
38
39
|
currentPage: S,
|
|
39
40
|
handleFirstPage: () => {
|
|
40
41
|
n(1);
|
|
@@ -49,33 +50,33 @@ const le = ({
|
|
|
49
50
|
n(y);
|
|
50
51
|
},
|
|
51
52
|
handleItemsPerPageChange: (e) => {
|
|
52
|
-
|
|
53
|
+
N(e);
|
|
53
54
|
},
|
|
54
55
|
totalPages: y,
|
|
55
|
-
isFetching:
|
|
56
|
+
isFetching: U,
|
|
56
57
|
itemsPerPage: E
|
|
57
|
-
}, { data: a } =
|
|
58
|
+
}, { data: a } = v(
|
|
58
59
|
{
|
|
59
60
|
companyId: l,
|
|
60
61
|
payrollId: o,
|
|
61
62
|
include: ["taxes", "benefits", "deductions"]
|
|
62
63
|
},
|
|
63
64
|
{ refetchInterval: s ? 5e3 : !1 }
|
|
64
|
-
), { mutateAsync:
|
|
65
|
+
), { mutateAsync: b } = z(), { mutateAsync: F, isPending: Y } = Q(), {
|
|
65
66
|
preparedPayroll: d,
|
|
66
|
-
paySchedule:
|
|
67
|
-
isLoading:
|
|
68
|
-
handlePreparePayroll:
|
|
69
|
-
} =
|
|
67
|
+
paySchedule: B,
|
|
68
|
+
isLoading: k,
|
|
69
|
+
handlePreparePayroll: q
|
|
70
|
+
} = X({
|
|
70
71
|
companyId: l,
|
|
71
72
|
payrollId: o,
|
|
72
|
-
employeeUuids:
|
|
73
|
+
employeeUuids: O,
|
|
73
74
|
sortBy: "last_name"
|
|
74
75
|
// sort alphanumeric by employee last_names to match employees GET
|
|
75
|
-
}),
|
|
76
|
+
}), M = async () => {
|
|
76
77
|
P([]), await C({}, async () => {
|
|
77
|
-
const e = await
|
|
78
|
-
await
|
|
78
|
+
const e = await Z(async () => {
|
|
79
|
+
await b({
|
|
79
80
|
request: {
|
|
80
81
|
companyId: l,
|
|
81
82
|
payrollId: o
|
|
@@ -84,13 +85,13 @@ const le = ({
|
|
|
84
85
|
});
|
|
85
86
|
!e.success && e.blockers.length > 0 && P(e.blockers);
|
|
86
87
|
});
|
|
87
|
-
},
|
|
88
|
+
}, T = (e) => {
|
|
88
89
|
t(r.RUN_PAYROLL_EMPLOYEE_EDIT, {
|
|
89
90
|
employeeId: e.uuid,
|
|
90
91
|
firstName: e.firstName,
|
|
91
92
|
lastName: e.lastName
|
|
92
93
|
});
|
|
93
|
-
},
|
|
94
|
+
}, I = ({
|
|
94
95
|
paymentMethod: e,
|
|
95
96
|
reimbursements: g,
|
|
96
97
|
...m
|
|
@@ -98,11 +99,11 @@ const le = ({
|
|
|
98
99
|
...m,
|
|
99
100
|
...e && e !== "Historical" ? { paymentMethod: e } : {},
|
|
100
101
|
memo: m.memo || void 0
|
|
101
|
-
}),
|
|
102
|
+
}), W = async (e) => {
|
|
102
103
|
t(r.RUN_PAYROLL_EMPLOYEE_SKIP, {
|
|
103
104
|
employeeId: e.employeeUuid
|
|
104
105
|
}), await C({}, async () => {
|
|
105
|
-
const g =
|
|
106
|
+
const g = I(e), m = await F({
|
|
106
107
|
request: {
|
|
107
108
|
companyId: l,
|
|
108
109
|
payrollId: o,
|
|
@@ -115,13 +116,13 @@ const le = ({
|
|
|
115
116
|
});
|
|
116
117
|
t(r.RUN_PAYROLL_EMPLOYEE_SAVED, {
|
|
117
118
|
payrollPrepared: m.payrollPrepared
|
|
118
|
-
}), await
|
|
119
|
+
}), await q();
|
|
119
120
|
});
|
|
120
|
-
},
|
|
121
|
+
}, H = () => {
|
|
121
122
|
t(r.RUN_PAYROLL_BLOCKERS_VIEW_ALL);
|
|
122
123
|
};
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
K(() => {
|
|
125
|
+
re(a.payrollShow?.processingRequest) && !s && c(!0), s && le(a.payrollShow?.processingRequest) && (t(r.RUN_PAYROLL_CALCULATED, {
|
|
125
126
|
payrollId: o,
|
|
126
127
|
alert: { type: "success", title: i("alerts.progressSaved") },
|
|
127
128
|
payPeriod: a.payrollShow?.payPeriod
|
|
@@ -134,7 +135,7 @@ const le = ({
|
|
|
134
135
|
o,
|
|
135
136
|
a.payrollShow?.calculatedAt
|
|
136
137
|
]);
|
|
137
|
-
const
|
|
138
|
+
const V = a.payrollShow ? {
|
|
138
139
|
label: i("alerts.directDepositDeadline", {
|
|
139
140
|
payDate: L.formatShortWithWeekday(a.payrollShow.checkDate),
|
|
140
141
|
...L.formatWithTime(a.payrollShow.payrollDeadline)
|
|
@@ -142,27 +143,28 @@ const le = ({
|
|
|
142
143
|
content: i("alerts.directDepositDeadlineText")
|
|
143
144
|
} : void 0;
|
|
144
145
|
return /* @__PURE__ */ f(
|
|
145
|
-
|
|
146
|
+
$,
|
|
146
147
|
{
|
|
147
|
-
onCalculatePayroll:
|
|
148
|
-
onEdit:
|
|
149
|
-
onToggleExclude:
|
|
150
|
-
onViewBlockers:
|
|
148
|
+
onCalculatePayroll: M,
|
|
149
|
+
onEdit: T,
|
|
150
|
+
onToggleExclude: W,
|
|
151
|
+
onViewBlockers: H,
|
|
151
152
|
employeeCompensations: d?.employeeCompensations || [],
|
|
152
153
|
employeeDetails: u.showEmployees || [],
|
|
153
154
|
payPeriod: d?.payPeriod,
|
|
154
|
-
paySchedule:
|
|
155
|
+
paySchedule: B,
|
|
155
156
|
isOffCycle: d?.offCycle,
|
|
156
157
|
alerts: w,
|
|
157
|
-
payrollDeadlineNotice:
|
|
158
|
-
isPending: s ||
|
|
159
|
-
payrollBlockers:
|
|
160
|
-
pagination:
|
|
158
|
+
payrollDeadlineNotice: V,
|
|
159
|
+
isPending: s || k || Y,
|
|
160
|
+
payrollBlockers: A,
|
|
161
|
+
pagination: x,
|
|
162
|
+
withReimbursements: D
|
|
161
163
|
}
|
|
162
164
|
);
|
|
163
165
|
};
|
|
164
166
|
export {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
+
Ue as PayrollConfiguration,
|
|
168
|
+
ie as Root
|
|
167
169
|
};
|
|
168
170
|
//# 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'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\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 dateFormatter = useDateFormatter()\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 reimbursements,\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 payPeriod: payrollData.payrollShow?.payPeriod,\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 const payrollDeadlineNotice = payrollData.payrollShow\n ? {\n label: t('alerts.directDepositDeadline', {\n payDate: dateFormatter.formatShortWithWeekday(payrollData.payrollShow.checkDate),\n ...dateFormatter.formatWithTime(payrollData.payrollShow.payrollDeadline),\n }),\n content: t('alerts.directDepositDeadlineText'),\n }\n : undefined\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 payrollDeadlineNotice={payrollDeadlineNotice}\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","dateFormatter","useDateFormatter","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","reimbursements","compensation","onToggleExclude","employeeCompensation","transformedCompensation","onViewBlockers","useEffect","payrollDeadlineNotice","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'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\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 withReimbursements?: boolean\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 withReimbursements = true,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler } = useBase()\n const dateFormatter = useDateFormatter()\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 reimbursements,\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 payPeriod: payrollData.payrollShow?.payPeriod,\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 const payrollDeadlineNotice = payrollData.payrollShow\n ? {\n label: t('alerts.directDepositDeadline', {\n payDate: dateFormatter.formatShortWithWeekday(payrollData.payrollShow.checkDate),\n ...dateFormatter.formatWithTime(payrollData.payrollShow.payrollDeadline),\n }),\n content: t('alerts.directDepositDeadlineText'),\n }\n : undefined\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 payrollDeadlineNotice={payrollDeadlineNotice}\n isPending={isPolling || isPrepareLoading || isUpdatingPayroll}\n payrollBlockers={payrollBlockers}\n pagination={pagination}\n withReimbursements={withReimbursements}\n />\n )\n}\n"],"names":["isCalculating","processingRequest","PayrollProcessingRequestStatus","isCalculated","PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","withReimbursements","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","useBase","dateFormatter","useDateFormatter","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","reimbursements","compensation","onToggleExclude","employeeCompensation","transformedCompensation","onViewBlockers","useEffect","payrollDeadlineNotice","PayrollConfigurationPresentation"],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ interface PayrollConfigurationPresentationProps {
|
|
|
24
24
|
isPending?: boolean;
|
|
25
25
|
payrollBlockers?: ApiPayrollBlocker[];
|
|
26
26
|
pagination?: PaginationControlProps;
|
|
27
|
+
withReimbursements?: boolean;
|
|
27
28
|
}
|
|
28
|
-
export declare const PayrollConfigurationPresentation: ({ employeeCompensations, employeeDetails, payPeriod, paySchedule, onEdit, onToggleExclude, onCalculatePayroll, onViewBlockers, isOffCycle, alerts, payrollDeadlineNotice, isPending, payrollBlockers, pagination, }: PayrollConfigurationPresentationProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
export declare const PayrollConfigurationPresentation: ({ employeeCompensations, employeeDetails, payPeriod, paySchedule, onEdit, onToggleExclude, onCalculatePayroll, onViewBlockers, isOffCycle, alerts, payrollDeadlineNotice, isPending, payrollBlockers, pagination, withReimbursements, }: PayrollConfigurationPresentationProps) => import("react/jsx-runtime").JSX.Element;
|
|
29
30
|
export {};
|
|
@@ -1,79 +1,80 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
1
|
+
import { jsx as e, jsxs as l, Fragment as I } from "react/jsx-runtime";
|
|
2
2
|
import { useRef as N } from "react";
|
|
3
|
-
import { useTranslation as
|
|
4
|
-
import { useFormatEmployeePayRate as
|
|
5
|
-
import { PayrollBlockerAlerts as
|
|
3
|
+
import { useTranslation as L, Trans as S } from "react-i18next";
|
|
4
|
+
import { useFormatEmployeePayRate as O, getRegularHours as V, getOvertimeHours as _, formatHoursDisplay as x, getTotalPtoHours as K, getAdditionalEarnings as W, getReimbursements as X, calculateGrossPay as q } from "../helpers.js";
|
|
5
|
+
import { PayrollBlockerAlerts as z } from "../PayrollBlocker/components/PayrollBlockerAlerts.js";
|
|
6
6
|
import k from "./PayrollConfigurationPresentation.module.scss.js";
|
|
7
|
-
import { useI18n as
|
|
8
|
-
import { Flex as
|
|
9
|
-
import { Grid as
|
|
7
|
+
import { useI18n as J } from "../../../i18n/I18n.js";
|
|
8
|
+
import { Flex as d, FlexItem as g } from "../../Common/Flex/Flex.js";
|
|
9
|
+
import { Grid as Q } from "../../Common/Grid/Grid.js";
|
|
10
10
|
import "classnames";
|
|
11
|
-
import { HamburgerMenu as
|
|
12
|
-
import { useComponentContext as
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import { formatNumberAsCurrency as
|
|
17
|
-
import { useDateFormatter as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import { DataView as
|
|
21
|
-
const
|
|
22
|
-
employeeCompensations:
|
|
11
|
+
import { HamburgerMenu as Y } from "../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
12
|
+
import { useComponentContext as Z } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
13
|
+
import $ from "../../../assets/icons/pencil.svg.js";
|
|
14
|
+
import ee from "../../../assets/icons/x-circle.svg.js";
|
|
15
|
+
import te from "../../../assets/icons/plus-circle.svg.js";
|
|
16
|
+
import { formatNumberAsCurrency as h, firstLastName as re } from "../../../helpers/formattedStrings.js";
|
|
17
|
+
import { useDateFormatter as ne } from "../../../hooks/useDateFormatter.js";
|
|
18
|
+
import { useContainerBreakpoints as oe } from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
|
|
19
|
+
import { PayrollLoading as le } from "../../Common/PayrollLoading/PayrollLoading.js";
|
|
20
|
+
import { DataView as ie } from "../../Common/DataView/DataView.js";
|
|
21
|
+
const ae = (i, u) => i?.startDate && i.endDate ? u.formatPayPeriod(i.startDate, i.endDate) : { startDate: "", endDate: "" }, Ee = ({
|
|
22
|
+
employeeCompensations: i,
|
|
23
23
|
employeeDetails: u,
|
|
24
|
-
payPeriod:
|
|
24
|
+
payPeriod: f,
|
|
25
25
|
paySchedule: T,
|
|
26
26
|
onEdit: v,
|
|
27
27
|
onToggleExclude: M,
|
|
28
|
-
onCalculatePayroll:
|
|
28
|
+
onCalculatePayroll: y,
|
|
29
29
|
onViewBlockers: H,
|
|
30
30
|
isOffCycle: E = !1,
|
|
31
|
-
alerts:
|
|
32
|
-
payrollDeadlineNotice:
|
|
31
|
+
alerts: b,
|
|
32
|
+
payrollDeadlineNotice: c,
|
|
33
33
|
isPending: p,
|
|
34
|
-
payrollBlockers:
|
|
35
|
-
pagination:
|
|
34
|
+
payrollBlockers: C = [],
|
|
35
|
+
pagination: R,
|
|
36
|
+
withReimbursements: A = !0
|
|
36
37
|
}) => {
|
|
37
|
-
const { Button:
|
|
38
|
-
|
|
39
|
-
const { t: r } =
|
|
40
|
-
const n =
|
|
41
|
-
return n ?
|
|
38
|
+
const { Button: D, Heading: P, Text: o, Badge: F, Alert: B } = Z();
|
|
39
|
+
J("Payroll.PayrollConfiguration");
|
|
40
|
+
const { t: r } = L("Payroll.PayrollConfiguration"), U = ne(), j = O(), w = N(null), a = oe({ ref: w }).includes("small"), m = new Map(u.map((t) => [t.uuid, t])), G = (t) => {
|
|
41
|
+
const n = m.get(t);
|
|
42
|
+
return n ? re({ first_name: n.firstName, last_name: n.lastName }) : null;
|
|
42
43
|
};
|
|
43
|
-
return /* @__PURE__ */ e("div", { ref: w, className: k.container, children: /* @__PURE__ */
|
|
44
|
-
/* @__PURE__ */
|
|
45
|
-
|
|
44
|
+
return /* @__PURE__ */ e("div", { ref: w, className: k.container, children: /* @__PURE__ */ l(d, { flexDirection: "column", gap: 16, children: [
|
|
45
|
+
/* @__PURE__ */ l(
|
|
46
|
+
d,
|
|
46
47
|
{
|
|
47
48
|
flexDirection: a ? "row" : "column",
|
|
48
49
|
justifyContent: a ? "space-between" : "normal",
|
|
49
50
|
alignItems: a ? "center" : "stretch",
|
|
50
51
|
gap: a ? 0 : 16,
|
|
51
52
|
children: [
|
|
52
|
-
/* @__PURE__ */
|
|
53
|
-
/* @__PURE__ */ e(
|
|
54
|
-
/* @__PURE__ */ e(
|
|
55
|
-
|
|
53
|
+
/* @__PURE__ */ l(g, { children: [
|
|
54
|
+
/* @__PURE__ */ e(P, { as: "h1", children: r("pageTitle") }),
|
|
55
|
+
/* @__PURE__ */ e(o, { children: /* @__PURE__ */ e(
|
|
56
|
+
S,
|
|
56
57
|
{
|
|
57
58
|
i18nKey: "description",
|
|
58
59
|
t: r,
|
|
59
|
-
components: { dateWrapper: /* @__PURE__ */ e(
|
|
60
|
-
values:
|
|
60
|
+
components: { dateWrapper: /* @__PURE__ */ e(o, { weight: "bold", as: "span" }) },
|
|
61
|
+
values: ae(f, U)
|
|
61
62
|
}
|
|
62
63
|
) })
|
|
63
64
|
] }),
|
|
64
|
-
/* @__PURE__ */ e(
|
|
65
|
-
|
|
65
|
+
/* @__PURE__ */ e(g, { flexGrow: 0, children: a ? /* @__PURE__ */ e(
|
|
66
|
+
D,
|
|
66
67
|
{
|
|
67
68
|
title: r("calculatePayrollTitle"),
|
|
68
|
-
onClick:
|
|
69
|
+
onClick: y,
|
|
69
70
|
isDisabled: p,
|
|
70
71
|
children: r("calculatePayroll")
|
|
71
72
|
}
|
|
72
|
-
) : /* @__PURE__ */ e(
|
|
73
|
-
|
|
73
|
+
) : /* @__PURE__ */ e(d, { flexDirection: "column", justifyContent: "normal", alignItems: "stretch", gap: 12, children: /* @__PURE__ */ e(
|
|
74
|
+
D,
|
|
74
75
|
{
|
|
75
76
|
title: r("calculatePayrollTitle"),
|
|
76
|
-
onClick:
|
|
77
|
+
onClick: y,
|
|
77
78
|
isDisabled: p,
|
|
78
79
|
children: r("calculatePayroll")
|
|
79
80
|
}
|
|
@@ -81,115 +82,113 @@ const se = (l, u) => l?.startDate && l.endDate ? u.formatPayPeriod(l.startDate,
|
|
|
81
82
|
]
|
|
82
83
|
}
|
|
83
84
|
),
|
|
84
|
-
(
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
(b || c) && /* @__PURE__ */ l(Q, { gap: 16, gridTemplateColumns: "1fr", children: [
|
|
86
|
+
c && /* @__PURE__ */ e(B, { status: "info", label: c.label, children: c.content }),
|
|
87
|
+
b
|
|
87
88
|
] }),
|
|
88
|
-
p ? /* @__PURE__ */ e(
|
|
89
|
-
/* @__PURE__ */ e(
|
|
90
|
-
|
|
91
|
-
/* @__PURE__ */ e(i, { children: r("loadingDescription") })
|
|
92
|
-
] }) }) : /* @__PURE__ */ o(G, { children: [
|
|
93
|
-
/* @__PURE__ */ e("div", { className: k.payrollBlockerContainer, children: D.length > 0 && /* @__PURE__ */ e(
|
|
94
|
-
J,
|
|
89
|
+
p ? /* @__PURE__ */ e(le, { title: r("loadingTitle"), description: r("loadingDescription") }) : /* @__PURE__ */ l(I, { children: [
|
|
90
|
+
/* @__PURE__ */ e("div", { className: k.payrollBlockerContainer, children: C.length > 0 && /* @__PURE__ */ e(
|
|
91
|
+
z,
|
|
95
92
|
{
|
|
96
|
-
blockers:
|
|
93
|
+
blockers: C,
|
|
97
94
|
onMultipleViewClick: H
|
|
98
95
|
}
|
|
99
96
|
) }),
|
|
100
|
-
/* @__PURE__ */
|
|
101
|
-
/* @__PURE__ */ e(
|
|
102
|
-
/* @__PURE__ */ e(
|
|
97
|
+
/* @__PURE__ */ l(g, { children: [
|
|
98
|
+
/* @__PURE__ */ e(P, { as: "h3", children: r("hoursAndEarningsTitle") }),
|
|
99
|
+
/* @__PURE__ */ e(o, { children: r("hoursAndEarningsDescription") })
|
|
103
100
|
] }),
|
|
104
101
|
/* @__PURE__ */ e(
|
|
105
|
-
|
|
102
|
+
ie,
|
|
106
103
|
{
|
|
107
104
|
label: r("employeeCompensationsTitle"),
|
|
108
105
|
columns: [
|
|
109
106
|
{
|
|
110
|
-
title: /* @__PURE__ */ e(
|
|
107
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.employees") }),
|
|
111
108
|
render: (t) => {
|
|
112
|
-
const n =
|
|
113
|
-
return /* @__PURE__ */
|
|
114
|
-
/* @__PURE__ */ e(
|
|
115
|
-
s && /* @__PURE__ */ e(
|
|
116
|
-
t.excluded && /* @__PURE__ */ e(
|
|
109
|
+
const n = m.get(t.employeeUuid || ""), s = j(n);
|
|
110
|
+
return /* @__PURE__ */ l(d, { flexDirection: "column", gap: 8, children: [
|
|
111
|
+
/* @__PURE__ */ e(o, { weight: "semibold", children: G(t.employeeUuid || "") }),
|
|
112
|
+
s && /* @__PURE__ */ e(o, { variant: "supporting", children: s }),
|
|
113
|
+
t.excluded && /* @__PURE__ */ e(F, { status: "warning", children: r("skippedBadge") })
|
|
117
114
|
] });
|
|
118
115
|
}
|
|
119
116
|
},
|
|
120
117
|
{
|
|
121
|
-
title: /* @__PURE__ */ e(
|
|
118
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.hours") }),
|
|
122
119
|
render: (t) => {
|
|
123
|
-
const n =
|
|
124
|
-
return /* @__PURE__ */ e(
|
|
120
|
+
const n = V(t), s = _(t);
|
|
121
|
+
return /* @__PURE__ */ e(o, { children: x(n + s) });
|
|
125
122
|
}
|
|
126
123
|
},
|
|
127
124
|
{
|
|
128
|
-
title: /* @__PURE__ */ e(
|
|
125
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.timeOff") }),
|
|
129
126
|
render: (t) => {
|
|
130
127
|
const n = K(t);
|
|
131
|
-
return /* @__PURE__ */ e(
|
|
128
|
+
return /* @__PURE__ */ e(o, { children: x(n) });
|
|
132
129
|
}
|
|
133
130
|
},
|
|
134
131
|
{
|
|
135
|
-
title: /* @__PURE__ */ e(
|
|
132
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.additionalEarnings") }),
|
|
136
133
|
render: (t) => {
|
|
137
134
|
const n = W(t);
|
|
138
|
-
return /* @__PURE__ */ e(
|
|
135
|
+
return /* @__PURE__ */ e(o, { children: h(n) });
|
|
139
136
|
}
|
|
140
137
|
},
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
138
|
+
...A ? [
|
|
139
|
+
{
|
|
140
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.reimbursements") }),
|
|
141
|
+
render: (t) => {
|
|
142
|
+
const n = X(t);
|
|
143
|
+
return /* @__PURE__ */ e(o, { children: h(n) });
|
|
144
|
+
}
|
|
146
145
|
}
|
|
147
|
-
|
|
146
|
+
] : [],
|
|
148
147
|
{
|
|
149
|
-
title: /* @__PURE__ */ e(
|
|
148
|
+
title: /* @__PURE__ */ e(o, { weight: "semibold", children: r("tableColumns.totalPay") }),
|
|
150
149
|
render: (t) => {
|
|
151
|
-
const n =
|
|
150
|
+
const n = m.get(t.employeeUuid || ""), s = n ? q(
|
|
152
151
|
t,
|
|
153
152
|
n,
|
|
154
|
-
|
|
153
|
+
f?.startDate,
|
|
155
154
|
T,
|
|
156
155
|
E
|
|
157
156
|
) : 0;
|
|
158
|
-
return /* @__PURE__ */ e(
|
|
157
|
+
return /* @__PURE__ */ e(o, { children: h(s) });
|
|
159
158
|
}
|
|
160
159
|
}
|
|
161
160
|
],
|
|
162
|
-
data:
|
|
161
|
+
data: i,
|
|
163
162
|
itemMenu: (t) => /* @__PURE__ */ e(
|
|
164
|
-
|
|
163
|
+
Y,
|
|
165
164
|
{
|
|
166
165
|
items: [
|
|
167
166
|
{
|
|
168
167
|
label: r("editMenu.edit"),
|
|
169
|
-
icon: /* @__PURE__ */ e(
|
|
168
|
+
icon: /* @__PURE__ */ e($, { "aria-hidden": !0 }),
|
|
170
169
|
onClick: () => {
|
|
171
|
-
const n =
|
|
170
|
+
const n = m.get(t.employeeUuid || "");
|
|
172
171
|
n && v(n);
|
|
173
172
|
}
|
|
174
173
|
},
|
|
175
174
|
{
|
|
176
175
|
label: r(t.excluded ? "editMenu.unskip" : "editMenu.skip"),
|
|
177
|
-
icon: t.excluded ? /* @__PURE__ */ e(
|
|
176
|
+
icon: t.excluded ? /* @__PURE__ */ e(te, { "aria-hidden": !0 }) : /* @__PURE__ */ e(ee, { "aria-hidden": !0 }),
|
|
178
177
|
onClick: () => {
|
|
179
|
-
|
|
178
|
+
m.get(t.employeeUuid || "") && M(t);
|
|
180
179
|
}
|
|
181
180
|
}
|
|
182
181
|
],
|
|
183
182
|
triggerLabel: r("editMenu.edit")
|
|
184
183
|
}
|
|
185
184
|
),
|
|
186
|
-
pagination:
|
|
185
|
+
pagination: R
|
|
187
186
|
}
|
|
188
187
|
)
|
|
189
188
|
] })
|
|
190
189
|
] }) });
|
|
191
190
|
};
|
|
192
191
|
export {
|
|
193
|
-
|
|
192
|
+
Ee as PayrollConfigurationPresentation
|
|
194
193
|
};
|
|
195
194
|
//# sourceMappingURL=PayrollConfigurationPresentation.js.map
|