@gusto/embedded-react-sdk 0.57.0 → 0.57.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/components/Common/DataView/DataCards/DataCards.js +44 -42
- package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +17 -15
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
- package/dist/components/Common/UI/Input/Input.js +35 -32
- package/dist/components/Common/UI/Input/Input.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/useInviteSignatory.js +4 -5
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.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/context.js +4 -5
- package/dist/components/Company/BankAccount/BankAccountForm/context.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/FederalTaxes/useFederalTaxes.js +9 -10
- package/dist/components/Company/FederalTaxes/useFederalTaxes.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/Locations/LocationForm/useLocationForm.js +4 -5
- package/dist/components/Company/Locations/LocationForm/useLocationForm.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/OnboardingOverview/context.js +4 -5
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +80 -68
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +96 -69
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.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/context.js +4 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +4 -5
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/shared/requirementSetError.js +27 -10
- package/dist/components/Company/StateTaxes/shared/requirementSetError.js.map +1 -1
- package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js +77 -0
- package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js +94 -0
- package/dist/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js +26 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js +25 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js +33 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js +55 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js +153 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.js.map +1 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js +14 -0
- package/dist/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.module.scss.js.map +1 -0
- package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js +16 -0
- package/dist/components/Company/TaxPayments/shared/payrollLookupWindow.js.map +1 -0
- package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js +34 -0
- package/dist/components/Company/TaxPayments/shared/taxPaymentStatus.js.map +1 -0
- package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js +30 -0
- package/dist/components/Company/TaxPayments/shared/useAllTaxPayments.js.map +1 -0
- package/dist/components/Company/exports/companyManagement.js +10 -4
- package/dist/components/Company/exports/companyManagement.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +24 -23
- package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js +42 -34
- package/dist/components/Employee/Terminations/TerminationFlow/terminationStateMachine.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +60 -52
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +74 -88
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +23 -18
- package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +204 -179
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js +8 -0
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.module.scss.js.map +1 -0
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +4 -4
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +50 -41
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +164 -154
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +9 -5
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
- package/dist/components/Payroll/helpers.js +103 -92
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +3 -4
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +19 -18
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +36 -0
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -0
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
- package/dist/helpers/dateFormatting.js +47 -40
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/i18n/I18n.js +2 -0
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +20 -18
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +6 -4
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js +26 -0
- package/dist/i18n/en/Company.Management.TaxPaymentDetail.json.js.map +1 -0
- package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js +48 -0
- package/dist/i18n/en/Company.Management.TaxPaymentsList.json.js.map +1 -0
- package/dist/i18n/en/Company.StateTaxes.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +42 -36
- package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
- package/dist/package.json.js +1 -1
- package/dist/shared/constants.js +62 -56
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
- package/dist/src/components/Company/StateTaxes/shared/requirementSetError.d.ts +18 -5
- package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetail.d.ts +31 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentDetail/TaxPaymentDetailPresentation.d.ts +19 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlow.d.ts +42 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/TaxPaymentsFlowComponents.d.ts +20 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentsFlow/taxPaymentsStateMachine.d.ts +10 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsList.d.ts +28 -0
- package/dist/src/components/Company/TaxPayments/TaxPaymentsList/TaxPaymentsListPresentation.d.ts +33 -0
- package/dist/src/components/Company/TaxPayments/index.d.ts +6 -0
- package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.d.ts +29 -0
- package/dist/src/components/Company/TaxPayments/shared/payrollLookupWindow.test.d.ts +1 -0
- package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.d.ts +62 -0
- package/dist/src/components/Company/TaxPayments/shared/taxPaymentStatus.test.d.ts +1 -0
- package/dist/src/components/Company/TaxPayments/shared/useAllTaxPayments.d.ts +30 -0
- package/dist/src/components/Company/exports/companyManagement.d.ts +2 -0
- package/dist/src/components/Payroll/PayrollConfiguration/__fixtures__/payrollConfigurationMocks.d.ts +6 -1
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +1 -0
- package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +1 -0
- package/dist/src/components/Payroll/PayrollOverview/PayrollOverview.d.ts +9 -3
- package/dist/src/components/Payroll/helpers.d.ts +34 -18
- package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.d.ts +14 -0
- package/dist/src/contexts/ApiProvider/payrollOffCycleReasonEnumHook.test.d.ts +1 -0
- package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +2 -0
- package/dist/src/helpers/dateFormatting.d.ts +13 -0
- package/dist/src/i18n/types.d.ts +168 -4
- package/dist/src/models/external.d.ts +2 -0
- package/dist/src/shared/constants.d.ts +18 -0
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +33 -0
- package/package.json +30 -27
|
@@ -1,62 +1,47 @@
|
|
|
1
|
-
import { jsxs as d, jsx as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { getPayPeriodOrCheckDateLabel as
|
|
1
|
+
import { jsxs as d, jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as A } from "react-i18next";
|
|
3
|
+
import { getPayPeriodOrCheckDateLabel as p, getPayrollTypeLabel as w, calculateTotalPayroll as M, getCancelDeadlineValues as E, canCancelPayroll as H } from "../helpers.js";
|
|
4
4
|
import { Flex as c } from "../../Common/Flex/Flex.js";
|
|
5
|
-
import { EmptyData as
|
|
6
|
-
import { HamburgerMenu as
|
|
7
|
-
import { DateRangeFilter as
|
|
8
|
-
import { useComponentContext as
|
|
9
|
-
import { formatNumberAsCurrency as
|
|
10
|
-
import { useI18n as
|
|
11
|
-
import { useDateFormatter as
|
|
12
|
-
import
|
|
13
|
-
import
|
|
5
|
+
import { EmptyData as u } from "../../Common/EmptyData/EmptyData.js";
|
|
6
|
+
import { HamburgerMenu as T } from "../../Common/HamburgerMenu/HamburgerMenu.js";
|
|
7
|
+
import { DateRangeFilter as j } from "../../Common/DateRangeFilter/DateRangeFilter.js";
|
|
8
|
+
import { useComponentContext as O } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
9
|
+
import { formatNumberAsCurrency as U } from "../../../helpers/formattedStrings.js";
|
|
10
|
+
import { useI18n as V } from "../../../i18n/I18n.js";
|
|
11
|
+
import { useDateFormatter as q } from "../../../hooks/useDateFormatter.js";
|
|
12
|
+
import B from "../../../assets/icons/trashcan.svg.js";
|
|
13
|
+
import N from "../../../assets/icons/icon-file-outline.svg.js";
|
|
14
14
|
import W from "../../../assets/icons/icon-receipt-outline.svg.js";
|
|
15
|
-
import { PayrollStatusBadges as
|
|
15
|
+
import { PayrollStatusBadges as Y } from "../PayrollStatusBadges/PayrollStatusBadges.js";
|
|
16
16
|
import { DataView as z } from "../../Common/DataView/DataView.js";
|
|
17
|
-
const
|
|
18
|
-
className:
|
|
19
|
-
payrollHistory:
|
|
20
|
-
wireInRequests:
|
|
17
|
+
const oe = ({
|
|
18
|
+
className: y,
|
|
19
|
+
payrollHistory: D,
|
|
20
|
+
wireInRequests: f,
|
|
21
21
|
pagination: s,
|
|
22
|
-
onViewSummary:
|
|
22
|
+
onViewSummary: h,
|
|
23
23
|
onViewReceipt: C,
|
|
24
|
-
onCancelPayroll:
|
|
25
|
-
cancelDialogItem:
|
|
26
|
-
onCancelDialogOpen:
|
|
24
|
+
onCancelPayroll: P,
|
|
25
|
+
cancelDialogItem: r,
|
|
26
|
+
onCancelDialogOpen: b,
|
|
27
27
|
onCancelDialogClose: g,
|
|
28
|
-
isLoading:
|
|
29
|
-
dateRangeFilter:
|
|
28
|
+
isLoading: S = !1,
|
|
29
|
+
dateRangeFilter: i
|
|
30
30
|
}) => {
|
|
31
|
-
const { Heading: L, Text: m, Dialog: v } =
|
|
32
|
-
|
|
33
|
-
const { t: e } =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
day: "numeric",
|
|
40
|
-
timeZone: p
|
|
41
|
-
}), M = new Intl.DateTimeFormat("en-US", {
|
|
42
|
-
hour: "numeric",
|
|
43
|
-
minute: "2-digit",
|
|
44
|
-
timeZoneName: "short",
|
|
45
|
-
timeZone: p
|
|
46
|
-
}), E = T.format(n);
|
|
47
|
-
return `${M.format(n)} on ${E}`;
|
|
48
|
-
}, x = (t) => {
|
|
49
|
-
S(t);
|
|
50
|
-
}, k = () => {
|
|
51
|
-
a && b(a);
|
|
52
|
-
}, A = (t) => {
|
|
53
|
-
const i = t.payrollUuid || t.uuid, n = [
|
|
31
|
+
const { Heading: L, Text: m, Dialog: v } = O();
|
|
32
|
+
V("Payroll.PayrollHistory");
|
|
33
|
+
const { t: e } = A("Payroll.PayrollHistory"), l = q(), x = (t) => {
|
|
34
|
+
b(t);
|
|
35
|
+
}, F = () => {
|
|
36
|
+
r && P(r);
|
|
37
|
+
}, k = (t) => {
|
|
38
|
+
const o = t.payrollUuid || t.uuid, n = [
|
|
54
39
|
{
|
|
55
40
|
label: e("menu.viewSummary"),
|
|
56
|
-
icon: /* @__PURE__ */
|
|
41
|
+
icon: /* @__PURE__ */ a(N, { "aria-hidden": !0 }),
|
|
57
42
|
onClick: () => {
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
h(
|
|
44
|
+
o,
|
|
60
45
|
t.payPeriod?.startDate ?? void 0,
|
|
61
46
|
t.payPeriod?.endDate ?? void 0
|
|
62
47
|
);
|
|
@@ -64,36 +49,36 @@ const me = ({
|
|
|
64
49
|
},
|
|
65
50
|
{
|
|
66
51
|
label: e("menu.viewReceipt"),
|
|
67
|
-
icon: /* @__PURE__ */
|
|
52
|
+
icon: /* @__PURE__ */ a(W, { "aria-hidden": !0 }),
|
|
68
53
|
onClick: () => {
|
|
69
54
|
C(
|
|
70
|
-
|
|
55
|
+
o,
|
|
71
56
|
t.payPeriod?.startDate ?? void 0,
|
|
72
57
|
t.payPeriod?.endDate ?? void 0
|
|
73
58
|
);
|
|
74
59
|
}
|
|
75
60
|
}
|
|
76
61
|
];
|
|
77
|
-
return
|
|
62
|
+
return H(t) && n.push({
|
|
78
63
|
label: e("menu.cancelPayroll"),
|
|
79
|
-
icon: /* @__PURE__ */
|
|
64
|
+
icon: /* @__PURE__ */ a(B, { "aria-hidden": !0 }),
|
|
80
65
|
onClick: () => {
|
|
81
66
|
x(t);
|
|
82
67
|
},
|
|
83
68
|
"data-destructive": "true"
|
|
84
69
|
}), n;
|
|
85
70
|
};
|
|
86
|
-
return /* @__PURE__ */ d(c, { className:
|
|
71
|
+
return /* @__PURE__ */ d(c, { className: y, flexDirection: "column", gap: 16, children: [
|
|
87
72
|
/* @__PURE__ */ d(c, { justifyContent: "space-between", alignItems: "center", children: [
|
|
88
|
-
/* @__PURE__ */
|
|
89
|
-
/* @__PURE__ */
|
|
90
|
-
|
|
73
|
+
/* @__PURE__ */ a(L, { as: "h2", children: e("title") }),
|
|
74
|
+
/* @__PURE__ */ a(
|
|
75
|
+
j,
|
|
91
76
|
{
|
|
92
|
-
startDate:
|
|
93
|
-
endDate:
|
|
94
|
-
onStartDateChange:
|
|
95
|
-
onEndDateChange:
|
|
96
|
-
onClear:
|
|
77
|
+
startDate: i.startDate,
|
|
78
|
+
endDate: i.endDate,
|
|
79
|
+
onStartDateChange: i.handleStartDateChange,
|
|
80
|
+
onEndDateChange: i.handleEndDateChange,
|
|
81
|
+
onClear: i.handleClearFilter,
|
|
97
82
|
startDateLabel: e("dateFilter.startDate"),
|
|
98
83
|
endDateLabel: e("dateFilter.endDate"),
|
|
99
84
|
applyLabel: e("dateFilter.apply"),
|
|
@@ -101,25 +86,25 @@ const me = ({
|
|
|
101
86
|
resetLabel: e("dateFilter.reset"),
|
|
102
87
|
selectDatesLabel: e("dateFilter.selectDates"),
|
|
103
88
|
triggerLabel: e("dateFilter.trigger"),
|
|
104
|
-
maxEndDate:
|
|
105
|
-
minStartDate:
|
|
89
|
+
maxEndDate: i.getMaxEndDate(),
|
|
90
|
+
minStartDate: i.getMinStartDate()
|
|
106
91
|
}
|
|
107
92
|
)
|
|
108
93
|
] }),
|
|
109
|
-
/* @__PURE__ */
|
|
94
|
+
/* @__PURE__ */ a(
|
|
110
95
|
z,
|
|
111
96
|
{
|
|
112
97
|
label: e("dataView.label"),
|
|
113
98
|
pagination: s,
|
|
114
99
|
isFetching: s.isFetching,
|
|
115
|
-
emptyState: () =>
|
|
116
|
-
|
|
100
|
+
emptyState: () => i.isModified ? /* @__PURE__ */ a(
|
|
101
|
+
u,
|
|
117
102
|
{
|
|
118
103
|
title: e("emptyState.filtered.title"),
|
|
119
104
|
description: e("emptyState.filtered.description")
|
|
120
105
|
}
|
|
121
|
-
) : /* @__PURE__ */
|
|
122
|
-
|
|
106
|
+
) : /* @__PURE__ */ a(
|
|
107
|
+
u,
|
|
123
108
|
{
|
|
124
109
|
title: e("emptyState.default.title"),
|
|
125
110
|
description: e("emptyState.default.description")
|
|
@@ -128,11 +113,11 @@ const me = ({
|
|
|
128
113
|
columns: [
|
|
129
114
|
{
|
|
130
115
|
title: e("columns.payPeriod"),
|
|
131
|
-
render: (t) =>
|
|
116
|
+
render: (t) => p(t, l)
|
|
132
117
|
},
|
|
133
118
|
{
|
|
134
119
|
title: e("columns.type"),
|
|
135
|
-
render: (t) =>
|
|
120
|
+
render: (t) => w(t)
|
|
136
121
|
},
|
|
137
122
|
{
|
|
138
123
|
title: e("columns.payDate"),
|
|
@@ -141,46 +126,47 @@ const me = ({
|
|
|
141
126
|
{
|
|
142
127
|
title: e("columns.status"),
|
|
143
128
|
render: (t) => {
|
|
144
|
-
const
|
|
129
|
+
const o = f.find(
|
|
145
130
|
(n) => n.paymentUuid === t.payrollUuid
|
|
146
131
|
);
|
|
147
|
-
return /* @__PURE__ */
|
|
132
|
+
return /* @__PURE__ */ a(Y, { payroll: t, wireInRequest: o });
|
|
148
133
|
}
|
|
149
134
|
},
|
|
150
135
|
{
|
|
151
136
|
title: e("columns.totalPayroll"),
|
|
152
137
|
justify: "end",
|
|
153
|
-
render: (t) =>
|
|
138
|
+
render: (t) => U(M(t))
|
|
154
139
|
}
|
|
155
140
|
],
|
|
156
|
-
data:
|
|
157
|
-
itemMenu: (t) => /* @__PURE__ */
|
|
141
|
+
data: D,
|
|
142
|
+
itemMenu: (t) => /* @__PURE__ */ a(T, { items: k(t) })
|
|
158
143
|
}
|
|
159
144
|
),
|
|
160
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ a(
|
|
161
146
|
v,
|
|
162
147
|
{
|
|
163
|
-
isOpen: !!
|
|
148
|
+
isOpen: !!r,
|
|
164
149
|
onClose: g,
|
|
165
|
-
onPrimaryActionClick:
|
|
150
|
+
onPrimaryActionClick: F,
|
|
166
151
|
isDestructive: !0,
|
|
167
|
-
isPrimaryActionLoading:
|
|
152
|
+
isPrimaryActionLoading: S,
|
|
168
153
|
primaryActionLabel: e("cancelDialog.primaryAction"),
|
|
169
154
|
closeActionLabel: e("cancelDialog.secondaryAction"),
|
|
170
|
-
title:
|
|
171
|
-
payPeriod:
|
|
155
|
+
title: r ? e("cancelDialog.title", {
|
|
156
|
+
payPeriod: p(r, l)
|
|
172
157
|
}) : "",
|
|
173
|
-
children:
|
|
174
|
-
/* @__PURE__ */
|
|
175
|
-
|
|
176
|
-
deadline
|
|
177
|
-
|
|
158
|
+
children: r && /* @__PURE__ */ d(c, { flexDirection: "column", gap: 16, children: [
|
|
159
|
+
/* @__PURE__ */ a(m, { children: e("cancelDialog.body") }),
|
|
160
|
+
r.payrollDeadline && /* @__PURE__ */ a(m, { children: e(
|
|
161
|
+
"cancelDialog.deadline",
|
|
162
|
+
E(r, l)
|
|
163
|
+
) })
|
|
178
164
|
] })
|
|
179
165
|
}
|
|
180
166
|
)
|
|
181
167
|
] });
|
|
182
168
|
};
|
|
183
169
|
export {
|
|
184
|
-
|
|
170
|
+
oe as PayrollHistoryPresentation
|
|
185
171
|
};
|
|
186
172
|
//# sourceMappingURL=PayrollHistoryPresentation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport {\n getPayrollTypeLabel,\n calculateTotalPayroll,\n canCancelPayroll,\n getPayPeriodOrCheckDateLabel,\n} from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n /** CSS class name applied to the root element. */\n className?: string\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n className,\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const formatDeadlineForDialog = (item: Payroll): string => {\n const deadline = item.payrollDeadline\n if (!deadline) return ''\n\n const deadlineDate = new Date(deadline)\n const timeZone = 'America/New_York'\n\n const formatter = new Intl.DateTimeFormat('en-US', {\n weekday: 'short',\n month: 'short',\n day: 'numeric',\n timeZone,\n })\n\n const timeFormatter = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n minute: '2-digit',\n timeZoneName: 'short',\n timeZone,\n })\n\n const dateStr = formatter.format(deadlineDate)\n const timeStr = timeFormatter.format(deadlineDate)\n\n return `${timeStr} on ${dateStr}`\n }\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) => getPayPeriodOrCheckDateLabel(item, dateFormatter),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n justify: 'end',\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: getPayPeriodOrCheckDateLabel(cancelDialogItem, dateFormatter),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t('cancelDialog.deadline', {\n deadline: formatDeadlineForDialog(cancelDialogItem),\n })}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","className","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","formatDeadlineForDialog","item","deadline","deadlineDate","timeZone","formatter","timeFormatter","dateStr","handleCancelClick","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","Flex","jsxs","DateRangeFilter","DataView","EmptyData","getPayPeriodOrCheckDateLabel","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayrollHistoryPresentation.js","sources":["../../../../src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Payroll } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport {\n getPayrollTypeLabel,\n calculateTotalPayroll,\n canCancelPayroll,\n getCancelDeadlineValues,\n getPayPeriodOrCheckDateLabel,\n} from '../helpers'\nimport type { MenuItem } from '@/components/Common/UI/Menu/MenuTypes'\nimport { DataView, Flex, DateRangeFilter } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport type { UseDateRangeFilterResult } from '@/hooks/useDateRangeFilter/useDateRangeFilter'\nimport TrashcanIcon from '@/assets/icons/trashcan.svg?react'\nimport FileIcon from '@/assets/icons/icon-file-outline.svg?react'\nimport ReceiptIcon from '@/assets/icons/icon-receipt-outline.svg?react'\nimport { EmptyData } from '@/components/Common/'\n\ninterface PayrollHistoryPresentationProps {\n /** CSS class name applied to the root element. */\n className?: string\n payrollHistory: Payroll[]\n wireInRequests: WireInRequest[]\n pagination: PaginationControlProps\n onViewSummary: (payrollId: string, startDate?: string, endDate?: string) => void\n onViewReceipt: (payrollId: string, startDate?: string, endDate?: string) => void\n onCancelPayroll: (item: Payroll) => void\n cancelDialogItem: Payroll | null\n onCancelDialogOpen: (item: Payroll) => void\n onCancelDialogClose: () => void\n isLoading?: boolean\n dateRangeFilter: UseDateRangeFilterResult\n}\n\n/** @internal */\nexport const PayrollHistoryPresentation = ({\n className,\n payrollHistory,\n wireInRequests,\n pagination,\n onViewSummary,\n onViewReceipt,\n onCancelPayroll,\n cancelDialogItem,\n onCancelDialogOpen,\n onCancelDialogClose,\n isLoading = false,\n dateRangeFilter,\n}: PayrollHistoryPresentationProps) => {\n const { Heading, Text, Dialog } = useComponentContext()\n useI18n('Payroll.PayrollHistory')\n const { t } = useTranslation('Payroll.PayrollHistory')\n const dateFormatter = useDateFormatter()\n\n const handleCancelClick = (item: Payroll) => {\n onCancelDialogOpen(item)\n }\n\n const handleConfirmCancel = () => {\n if (cancelDialogItem) {\n onCancelPayroll(cancelDialogItem)\n }\n }\n\n const getMenuItems = (item: Payroll): MenuItem[] => {\n const payrollId = item.payrollUuid || item.uuid!\n const items: MenuItem[] = [\n {\n label: t('menu.viewSummary'),\n icon: <FileIcon aria-hidden />,\n onClick: () => {\n onViewSummary(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n {\n label: t('menu.viewReceipt'),\n icon: <ReceiptIcon aria-hidden />,\n onClick: () => {\n onViewReceipt(\n payrollId,\n item.payPeriod?.startDate ?? undefined,\n item.payPeriod?.endDate ?? undefined,\n )\n },\n },\n ]\n\n if (canCancelPayroll(item)) {\n items.push({\n label: t('menu.cancelPayroll'),\n icon: <TrashcanIcon aria-hidden />,\n onClick: () => {\n handleCancelClick(item)\n },\n 'data-destructive': 'true',\n })\n }\n\n return items\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={16}>\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <Heading as=\"h2\">{t('title')}</Heading>\n <DateRangeFilter\n startDate={dateRangeFilter.startDate}\n endDate={dateRangeFilter.endDate}\n onStartDateChange={dateRangeFilter.handleStartDateChange}\n onEndDateChange={dateRangeFilter.handleEndDateChange}\n onClear={dateRangeFilter.handleClearFilter}\n startDateLabel={t('dateFilter.startDate')}\n endDateLabel={t('dateFilter.endDate')}\n applyLabel={t('dateFilter.apply')}\n cancelLabel={t('dateFilter.cancel')}\n resetLabel={t('dateFilter.reset')}\n selectDatesLabel={t('dateFilter.selectDates')}\n triggerLabel={t('dateFilter.trigger')}\n maxEndDate={dateRangeFilter.getMaxEndDate()}\n minStartDate={dateRangeFilter.getMinStartDate()}\n />\n </Flex>\n\n <DataView\n label={t('dataView.label')}\n pagination={pagination}\n isFetching={pagination.isFetching}\n emptyState={() =>\n dateRangeFilter.isModified ? (\n <EmptyData\n title={t('emptyState.filtered.title')}\n description={t('emptyState.filtered.description')}\n />\n ) : (\n <EmptyData\n title={t('emptyState.default.title')}\n description={t('emptyState.default.description')}\n />\n )\n }\n columns={[\n {\n title: t('columns.payPeriod'),\n render: (item: Payroll) => getPayPeriodOrCheckDateLabel(item, dateFormatter),\n },\n {\n title: t('columns.type'),\n render: (item: Payroll) => getPayrollTypeLabel(item),\n },\n {\n title: t('columns.payDate'),\n render: (item: Payroll) => dateFormatter.formatShortWithYear(item.checkDate),\n },\n {\n title: t('columns.status'),\n render: (item: Payroll) => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === item.payrollUuid,\n )\n return <PayrollStatusBadges payroll={item} wireInRequest={wireInRequest} />\n },\n },\n {\n title: t('columns.totalPayroll'),\n justify: 'end',\n render: (item: Payroll) => formatNumberAsCurrency(calculateTotalPayroll(item)),\n },\n ]}\n data={payrollHistory}\n itemMenu={(item: Payroll) => <HamburgerMenu items={getMenuItems(item)} />}\n />\n\n <Dialog\n isOpen={!!cancelDialogItem}\n onClose={onCancelDialogClose}\n onPrimaryActionClick={handleConfirmCancel}\n isDestructive\n isPrimaryActionLoading={isLoading}\n primaryActionLabel={t('cancelDialog.primaryAction')}\n closeActionLabel={t('cancelDialog.secondaryAction')}\n title={\n cancelDialogItem\n ? t('cancelDialog.title', {\n payPeriod: getPayPeriodOrCheckDateLabel(cancelDialogItem, dateFormatter),\n })\n : ''\n }\n >\n {cancelDialogItem && (\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('cancelDialog.body')}</Text>\n {cancelDialogItem.payrollDeadline && (\n <Text>\n {t(\n 'cancelDialog.deadline',\n getCancelDeadlineValues(cancelDialogItem, dateFormatter),\n )}\n </Text>\n )}\n </Flex>\n )}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["PayrollHistoryPresentation","className","payrollHistory","wireInRequests","pagination","onViewSummary","onViewReceipt","onCancelPayroll","cancelDialogItem","onCancelDialogOpen","onCancelDialogClose","isLoading","dateRangeFilter","Heading","Text","Dialog","useComponentContext","useI18n","t","useTranslation","dateFormatter","useDateFormatter","handleCancelClick","item","handleConfirmCancel","getMenuItems","payrollId","items","jsx","FileIcon","ReceiptIcon","canCancelPayroll","TrashcanIcon","Flex","jsxs","DateRangeFilter","DataView","EmptyData","getPayPeriodOrCheckDateLabel","getPayrollTypeLabel","wireInRequest","wire","PayrollStatusBadges","formatNumberAsCurrency","calculateTotalPayroll","HamburgerMenu","getCancelDeadlineValues"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollLanding.js","sources":["../../../../src/components/Payroll/PayrollLanding/PayrollLanding.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { createMachine } from 'robot3'\nimport type { ConfirmWireDetailsComponentType } from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { payrollLandingMachine, payrollLandingBreadcrumbNodes } from './payrollLandingStateMachine'\nimport {\n PayrollLandingTabsContextual,\n type PayrollLandingFlowContextInterface,\n type PayrollLandingFlowProps,\n} from './PayrollLandingFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useComponentDictionary } from '@/i18n'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\n/**\n * Props for {@link PayrollLanding}.\n *\n * @public\n */\nexport interface PayrollLandingProps extends BaseComponentInterface<'Payroll.PayrollLanding'> {\n /** The associated company identifier. */\n companyId: string\n /** Whether to show reimbursement fields throughout the landing flow. Defaults to `true`. */\n withReimbursements?: boolean\n /** Whether to show the off-cycle payroll call-to-action. Defaults to `true`. */\n withOffcyclePayroll?: boolean\n /** Custom component that replaces the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n /** When `true`, displays a dismissible success alert indicating a payroll was cancelled. */\n showPayrollCancelledAlert?: boolean\n}\n\n/**\n * Main landing surface for payroll operations, with tabs for running payroll and\n * viewing payroll history, plus inline navigation to a payroll's overview and receipt.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/selected` | User selected a payroll to run | `{ payrollUuid: string, payPeriod: object }` |\n * | `payroll/review` | User selected a calculated payroll to review | `{ payrollUuid: string, payPeriod: object }` |\n * | `payroll/skipped` | A payroll was skipped | `{ payrollId: string }` |\n * | `payroll/deleted` | A cancellable off-cycle payroll was deleted | `{ payrollId: string }` |\n * | `runPayroll/offCycle/start` | User clicked the Run off-cycle call-to-action | — |\n * | `transition/runPayroll` | User chose to run an unprocessed transition payroll from the Transition Payroll Alert | `{ startDate: string, endDate: string, payScheduleUuid?: string }` |\n * | `transition/payrollSkipped` | User skipped an unprocessed transition payroll from the Transition Payroll Alert | `{ startDate: string, endDate: string, payScheduleUuid?: string }` |\n * | `runPayroll/summary/viewed` | User opened a payroll's summary view | `{ payrollId: string }` |\n * | `runPayroll/receipt/viewed` | User opened a payroll's receipt view | `{ payrollId: string }` |\n * | `runPayroll/blockers/viewAll` | User opened the full list of payroll blockers | — |\n * | `runPayroll/cancelled` | A payroll was cancelled | `{ payrollId: string, result: object }` |\n * | `runPayroll/cancelled/alertDismissed` | User dismissed the payroll-cancelled success alert | — |\n *\n * When unprocessed transition pay periods exist, the landing surface renders a Transition\n * Payroll Alert. It looks ahead 90 days for upcoming transition periods, groups them by pay\n * schedule, and offers to run or skip each one. Choosing to run emits `transition/runPayroll`\n * (handle it by rendering `Payroll.TransitionFlow` with the supplied dates and pay schedule).\n * Skipping opens a confirmation dialog — warning that employees will not be paid for the\n * period — then skips the payroll and emits `transition/payrollSkipped`. Transition pay\n * periods should be resolved (run or skipped) before regular payrolls are run; the Gusto API\n * may reject regular payrolls while unresolved transition periods exist.\n *\n * @param props - See {@link PayrollLandingProps}.\n * @returns The payroll landing flow.\n * @public\n */\nexport function PayrollLanding(props: PayrollLandingProps) {\n return (\n <BaseComponent {...props}>\n <PayrollLandingFlow {...props} />\n </BaseComponent>\n )\n}\n\nfunction PayrollLandingFlow({\n companyId,\n onEvent,\n dictionary,\n withReimbursements = true,\n withOffcyclePayroll = true,\n ConfirmWireDetailsComponent,\n showPayrollCancelledAlert,\n}: PayrollLandingFlowProps) {\n useComponentDictionary('Payroll.PayrollLanding', dictionary)\n\n const machine = useMemo(\n () =>\n createMachine(\n 'tabs',\n payrollLandingMachine,\n (initialContext: PayrollLandingFlowContextInterface) => ({\n ...initialContext,\n component: PayrollLandingTabsContextual,\n companyId,\n selectedTab: 'run-payroll',\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(payrollLandingBreadcrumbNodes),\n },\n showPayrollCancelledAlert,\n }),\n ),\n [\n companyId,\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n showPayrollCancelledAlert,\n ],\n )\n\n return <Flow onEvent={onEvent} machine={machine} />\n}\n"],"names":["PayrollLanding","props","jsx","BaseComponent","PayrollLandingFlow","companyId","onEvent","dictionary","withReimbursements","withOffcyclePayroll","ConfirmWireDetailsComponent","showPayrollCancelledAlert","useComponentDictionary","machine","useMemo","createMachine","payrollLandingMachine","initialContext","PayrollLandingTabsContextual","buildBreadcrumbs","payrollLandingBreadcrumbNodes","Flow"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"PayrollLanding.js","sources":["../../../../src/components/Payroll/PayrollLanding/PayrollLanding.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { createMachine } from 'robot3'\nimport type { ConfirmWireDetailsComponentType } from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { payrollLandingMachine, payrollLandingBreadcrumbNodes } from './payrollLandingStateMachine'\nimport {\n PayrollLandingTabsContextual,\n type PayrollLandingFlowContextInterface,\n type PayrollLandingFlowProps,\n} from './PayrollLandingFlowComponents'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useComponentDictionary } from '@/i18n'\nimport { buildBreadcrumbs } from '@/helpers/breadcrumbHelpers'\n\n/**\n * Props for {@link PayrollLanding}.\n *\n * @public\n */\nexport interface PayrollLandingProps extends BaseComponentInterface<'Payroll.PayrollLanding'> {\n /** The associated company identifier. */\n companyId: string\n /** Whether to show reimbursement fields throughout the landing flow. Defaults to `true`. */\n withReimbursements?: boolean\n /** Whether to show the off-cycle payroll call-to-action. Defaults to `true`. */\n withOffcyclePayroll?: boolean\n /** Custom component that replaces the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n /** When `true`, displays a dismissible success alert indicating a payroll was cancelled. */\n showPayrollCancelledAlert?: boolean\n}\n\n/**\n * Main landing surface for payroll operations, with tabs for running payroll and\n * viewing payroll history, plus inline navigation to a payroll's overview and receipt.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/selected` | User selected a payroll to run | `{ payrollUuid: string, payPeriod: object }` |\n * | `payroll/review` | User selected a calculated payroll to review | `{ payrollUuid: string, payPeriod: object }` |\n * | `payroll/skipped` | A payroll was skipped | `{ payrollId: string }` |\n * | `payroll/deleted` | A cancellable off-cycle payroll was deleted | `{ payrollId: string }` |\n * | `runPayroll/offCycle/start` | User clicked the Run off-cycle call-to-action | — |\n * | `transition/runPayroll` | User chose to run an unprocessed transition payroll from the Transition Payroll Alert | `{ startDate: string, endDate: string, payScheduleUuid?: string }` |\n * | `transition/payrollSkipped` | User skipped an unprocessed transition payroll from the Transition Payroll Alert | `{ startDate: string, endDate: string, payScheduleUuid?: string }` |\n * | `runPayroll/summary/viewed` | User opened a payroll's summary view | `{ payrollId: string }` |\n * | `runPayroll/receipt/viewed` | User opened a payroll's receipt view | `{ payrollId: string }` |\n * | `runPayroll/blockers/viewAll` | User opened the full list of payroll blockers | — |\n * | `runPayroll/cancelled` | A payroll was cancelled | `{ payrollId: string, result: object }` |\n * | `runPayroll/notCalculated/backToList` | User returns to the payroll list from a payroll that is no longer calculated | — |\n * | `runPayroll/cancelled/alertDismissed` | User dismissed the payroll-cancelled success alert | — |\n *\n * When unprocessed transition pay periods exist, the landing surface renders a Transition\n * Payroll Alert. It looks ahead 90 days for upcoming transition periods, groups them by pay\n * schedule, and offers to run or skip each one. Choosing to run emits `transition/runPayroll`\n * (handle it by rendering `Payroll.TransitionFlow` with the supplied dates and pay schedule).\n * Skipping opens a confirmation dialog — warning that employees will not be paid for the\n * period — then skips the payroll and emits `transition/payrollSkipped`. Transition pay\n * periods should be resolved (run or skipped) before regular payrolls are run; the Gusto API\n * may reject regular payrolls while unresolved transition periods exist.\n *\n * @param props - See {@link PayrollLandingProps}.\n * @returns The payroll landing flow.\n * @public\n */\nexport function PayrollLanding(props: PayrollLandingProps) {\n return (\n <BaseComponent {...props}>\n <PayrollLandingFlow {...props} />\n </BaseComponent>\n )\n}\n\nfunction PayrollLandingFlow({\n companyId,\n onEvent,\n dictionary,\n withReimbursements = true,\n withOffcyclePayroll = true,\n ConfirmWireDetailsComponent,\n showPayrollCancelledAlert,\n}: PayrollLandingFlowProps) {\n useComponentDictionary('Payroll.PayrollLanding', dictionary)\n\n const machine = useMemo(\n () =>\n createMachine(\n 'tabs',\n payrollLandingMachine,\n (initialContext: PayrollLandingFlowContextInterface) => ({\n ...initialContext,\n component: PayrollLandingTabsContextual,\n companyId,\n selectedTab: 'run-payroll',\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n header: {\n type: 'breadcrumbs' as const,\n breadcrumbs: buildBreadcrumbs(payrollLandingBreadcrumbNodes),\n },\n showPayrollCancelledAlert,\n }),\n ),\n [\n companyId,\n withReimbursements,\n withOffcyclePayroll,\n ConfirmWireDetailsComponent,\n showPayrollCancelledAlert,\n ],\n )\n\n return <Flow onEvent={onEvent} machine={machine} />\n}\n"],"names":["PayrollLanding","props","jsx","BaseComponent","PayrollLandingFlow","companyId","onEvent","dictionary","withReimbursements","withOffcyclePayroll","ConfirmWireDetailsComponent","showPayrollCancelledAlert","useComponentDictionary","machine","useMemo","createMachine","payrollLandingMachine","initialContext","PayrollLandingTabsContextual","buildBreadcrumbs","payrollLandingBreadcrumbNodes","Flow"],"mappings":";;;;;;;;;AAmEO,SAASA,EAAeC,GAA4B;AACzD,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAoB,GAAGH,GAAO,EAAA,CACjC;AAEJ;AAEA,SAASG,EAAmB;AAAA,EAC1B,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,YAAAC;AAAA,EACA,oBAAAC,IAAqB;AAAA,EACrB,qBAAAC,IAAsB;AAAA,EACtB,6BAAAC;AAAA,EACA,2BAAAC;AACF,GAA4B;AAC1B,EAAAC,EAAuB,0BAA0BL,CAAU;AAE3D,QAAMM,IAAUC;AAAA,IACd,MACEC;AAAA,MACE;AAAA,MACAC;AAAA,MACA,CAACC,OAAwD;AAAA,QACvD,GAAGA;AAAA,QACH,WAAWC;AAAA,QACX,WAAAb;AAAA,QACA,aAAa;AAAA,QACb,oBAAAG;AAAA,QACA,qBAAAC;AAAA,QACA,6BAAAC;AAAA,QACA,QAAQ;AAAA,UACN,MAAM;AAAA,UACN,aAAaS,EAAiBC,CAA6B;AAAA,QAAA;AAAA,QAE7D,2BAAAT;AAAA,MAAA;AAAA,IACF;AAAA,IAEJ;AAAA,MACEN;AAAA,MACAG;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EACF;AAGF,SAAO,gBAAAT,EAACmB,GAAA,EAAK,SAAAf,GAAkB,SAAAO,EAAA,CAAkB;AACnD;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { state as
|
|
2
|
-
import { PayrollLandingTabsContextual as
|
|
1
|
+
import { state as n, transition as t, reduce as r, guard as i } from "robot3";
|
|
2
|
+
import { PayrollLandingTabsContextual as c, PayrollLandingOverviewContextual as s, PayrollLandingReceiptsContextual as p } from "./PayrollLandingFlowComponents.js";
|
|
3
3
|
import { componentEvents as o } from "../../../shared/constants.js";
|
|
4
4
|
import { updateBreadcrumbs as l } from "../../../helpers/breadcrumbHelpers.js";
|
|
5
|
-
import { createBreadcrumbNavigateTransition as
|
|
6
|
-
const
|
|
5
|
+
import { createBreadcrumbNavigateTransition as y } from "../../Common/FlowBreadcrumbs/breadcrumbTransitionHelpers.js";
|
|
6
|
+
const A = {
|
|
7
7
|
tabs: {
|
|
8
8
|
parent: null,
|
|
9
9
|
item: {
|
|
@@ -12,7 +12,7 @@ const R = {
|
|
|
12
12
|
namespace: "Payroll.PayrollLanding",
|
|
13
13
|
onNavigate: ((e) => ({
|
|
14
14
|
...e,
|
|
15
|
-
component:
|
|
15
|
+
component: c,
|
|
16
16
|
header: e.header?.type === "breadcrumbs" ? { ...e.header, currentBreadcrumbId: void 0 } : null,
|
|
17
17
|
payrollUuid: void 0,
|
|
18
18
|
previousState: void 0,
|
|
@@ -40,17 +40,17 @@ const R = {
|
|
|
40
40
|
}, u = (e) => (a) => ({
|
|
41
41
|
...a,
|
|
42
42
|
...e
|
|
43
|
-
}),
|
|
43
|
+
}), d = (e = {}) => (a) => ({
|
|
44
44
|
...a,
|
|
45
|
-
component:
|
|
45
|
+
component: c,
|
|
46
46
|
payrollUuid: void 0,
|
|
47
47
|
previousState: void 0,
|
|
48
48
|
startDate: void 0,
|
|
49
49
|
endDate: void 0,
|
|
50
50
|
header: a.header?.type === "breadcrumbs" ? { ...a.header, currentBreadcrumbId: void 0 } : null,
|
|
51
51
|
...e
|
|
52
|
-
}),
|
|
53
|
-
tabs:
|
|
52
|
+
}), b = y(), P = {
|
|
53
|
+
tabs: n(
|
|
54
54
|
t(
|
|
55
55
|
o.RUN_PAYROLL_RECEIPT_VIEWED,
|
|
56
56
|
"receipt",
|
|
@@ -108,9 +108,14 @@ const R = {
|
|
|
108
108
|
)
|
|
109
109
|
)
|
|
110
110
|
),
|
|
111
|
-
overview:
|
|
112
|
-
|
|
113
|
-
t(o.RUN_PAYROLL_BACK, "tabs", r(
|
|
111
|
+
overview: n(
|
|
112
|
+
b("tabs"),
|
|
113
|
+
t(o.RUN_PAYROLL_BACK, "tabs", r(d())),
|
|
114
|
+
t(
|
|
115
|
+
o.RUN_PAYROLL_NOT_CALCULATED_BACK_TO_LIST,
|
|
116
|
+
"tabs",
|
|
117
|
+
r(d())
|
|
118
|
+
),
|
|
114
119
|
t(
|
|
115
120
|
o.RUN_PAYROLL_RECEIPT_GET,
|
|
116
121
|
"receipt",
|
|
@@ -129,11 +134,11 @@ const R = {
|
|
|
129
134
|
t(
|
|
130
135
|
o.RUN_PAYROLL_CANCELLED,
|
|
131
136
|
"tabs",
|
|
132
|
-
r(
|
|
137
|
+
r(d({ showPayrollCancelledAlert: !0 }))
|
|
133
138
|
)
|
|
134
139
|
),
|
|
135
|
-
receipt:
|
|
136
|
-
|
|
140
|
+
receipt: n(
|
|
141
|
+
b("tabs"),
|
|
137
142
|
t(
|
|
138
143
|
o.RUN_PAYROLL_BACK,
|
|
139
144
|
"overview",
|
|
@@ -150,13 +155,13 @@ const R = {
|
|
|
150
155
|
t(
|
|
151
156
|
o.RUN_PAYROLL_BACK,
|
|
152
157
|
"tabs",
|
|
153
|
-
r(
|
|
158
|
+
r(d()),
|
|
154
159
|
i((e) => e.previousState === "tabs")
|
|
155
160
|
)
|
|
156
161
|
)
|
|
157
162
|
};
|
|
158
163
|
export {
|
|
159
|
-
|
|
160
|
-
|
|
164
|
+
A as payrollLandingBreadcrumbNodes,
|
|
165
|
+
P as payrollLandingMachine
|
|
161
166
|
};
|
|
162
167
|
//# sourceMappingURL=payrollLandingStateMachine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payrollLandingStateMachine.js","sources":["../../../../src/components/Payroll/PayrollLanding/payrollLandingStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n PayrollLandingTabsContextual,\n PayrollLandingReceiptsContextual,\n PayrollLandingOverviewContextual,\n type PayrollLandingFlowContextInterface,\n} from './PayrollLandingFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype EventPayloads = {\n [componentEvents.RUN_PAYROLL_RECEIPT_VIEWED]: {\n payrollId: string\n startDate?: string\n endDate?: string\n }\n [componentEvents.RUN_PAYROLL_SUMMARY_VIEWED]: {\n payrollId: string\n startDate?: string\n endDate?: string\n }\n [componentEvents.RUN_PAYROLL_RECEIPT_GET]: {\n payrollId: string\n }\n [componentEvents.RUN_PAYROLL_CANCELLED]: undefined\n [componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED]: undefined\n}\n\n/** @internal */\nexport const payrollLandingBreadcrumbNodes: BreadcrumbNodes = {\n tabs: {\n parent: null,\n item: {\n id: 'tabs',\n label: 'breadcrumbs.landing',\n namespace: 'Payroll.PayrollLanding',\n onNavigate: ((ctx: PayrollLandingFlowContextInterface) => ({\n ...ctx,\n component: PayrollLandingTabsContextual,\n header:\n ctx.header?.type === 'breadcrumbs'\n ? { ...ctx.header, currentBreadcrumbId: undefined }\n : null,\n payrollUuid: undefined,\n previousState: undefined,\n startDate: undefined,\n endDate: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n overview: {\n parent: 'tabs',\n item: {\n id: 'overview',\n label: 'breadcrumbs.overview',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n receipt: {\n parent: 'tabs',\n item: {\n id: 'receipt',\n label: 'breadcrumbs.receipt',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n} as const\n\nconst createReducer = (props: Partial<PayrollLandingFlowContextInterface>) => {\n return (ctx: PayrollLandingFlowContextInterface): PayrollLandingFlowContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\n/**\n * Reducer that returns the flow to the landing tabs view while preserving\n * the existing breadcrumbs trail data so that re-entering a sub-state can\n * pick it up without rebuilding.\n */\nconst returnToTabs = (\n extra: Partial<PayrollLandingFlowContextInterface> = {},\n): ((ctx: PayrollLandingFlowContextInterface) => PayrollLandingFlowContextInterface) => {\n return (ctx: PayrollLandingFlowContextInterface) => ({\n ...ctx,\n component: PayrollLandingTabsContextual,\n payrollUuid: undefined,\n previousState: undefined,\n startDate: undefined,\n endDate: undefined,\n header:\n ctx.header?.type === 'breadcrumbs' ? { ...ctx.header, currentBreadcrumbId: undefined } : null,\n ...extra,\n })\n}\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PayrollLandingFlowContextInterface>()\n\n/** @internal */\nexport const payrollLandingMachine = {\n tabs: state<MachineTransition>(\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_VIEWED,\n 'receipt',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_RECEIPT_VIEWED>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('receipt', ctx, {\n startDate: ev.payload.startDate ?? '',\n endDate: ev.payload.endDate ?? '',\n }),\n component: PayrollLandingReceiptsContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'tabs',\n selectedTab: 'payroll-history',\n startDate: ev.payload.startDate,\n endDate: ev.payload.endDate,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_SUMMARY_VIEWED,\n 'overview',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_SUMMARY_VIEWED>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('overview', ctx, {\n startDate: ev.payload.startDate ?? '',\n endDate: ev.payload.endDate ?? '',\n }),\n component: PayrollLandingOverviewContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'tabs',\n selectedTab: 'payroll-history',\n startDate: ev.payload.startDate,\n endDate: ev.payload.endDate,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'tabs',\n reduce(\n createReducer({\n showPayrollCancelledAlert: true,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED,\n 'tabs',\n reduce(\n createReducer({\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n ),\n overview: state<MachineTransition>(\n breadcrumbNavigateTransition('tabs'),\n transition(componentEvents.RUN_PAYROLL_BACK, 'tabs', reduce(returnToTabs())),\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_GET,\n 'receipt',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_RECEIPT_GET>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('receipt', ctx, {\n startDate: ctx.startDate ?? '',\n endDate: ctx.endDate ?? '',\n }),\n component: PayrollLandingReceiptsContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'overview',\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'tabs',\n reduce(returnToTabs({ showPayrollCancelledAlert: true })),\n ),\n ),\n receipt: state<MachineTransition>(\n breadcrumbNavigateTransition('tabs'),\n transition(\n componentEvents.RUN_PAYROLL_BACK,\n 'overview',\n reduce((ctx: PayrollLandingFlowContextInterface): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('overview', ctx, {\n startDate: ctx.startDate ?? '',\n endDate: ctx.endDate ?? '',\n }),\n component: PayrollLandingOverviewContextual,\n previousState: 'tabs',\n })),\n guard((ctx: PayrollLandingFlowContextInterface) => {\n return ctx.previousState === 'overview'\n }),\n ),\n transition(\n componentEvents.RUN_PAYROLL_BACK,\n 'tabs',\n reduce(returnToTabs()),\n guard((ctx: PayrollLandingFlowContextInterface) => {\n return ctx.previousState === 'tabs'\n }),\n ),\n ),\n}\n"],"names":["payrollLandingBreadcrumbNodes","ctx","PayrollLandingTabsContextual","createReducer","props","returnToTabs","extra","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","payrollLandingMachine","state","transition","componentEvents","reduce","ev","updateBreadcrumbs","PayrollLandingReceiptsContextual","PayrollLandingOverviewContextual","guard"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"payrollLandingStateMachine.js","sources":["../../../../src/components/Payroll/PayrollLanding/payrollLandingStateMachine.ts"],"sourcesContent":["import { transition, reduce, state, guard } from 'robot3'\nimport {\n PayrollLandingTabsContextual,\n PayrollLandingReceiptsContextual,\n PayrollLandingOverviewContextual,\n type PayrollLandingFlowContextInterface,\n} from './PayrollLandingFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineEventType, MachineTransition } from '@/types/Helpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { updateBreadcrumbs } from '@/helpers/breadcrumbHelpers'\nimport { createBreadcrumbNavigateTransition } from '@/components/Common/FlowBreadcrumbs/breadcrumbTransitionHelpers'\n\ntype EventPayloads = {\n [componentEvents.RUN_PAYROLL_RECEIPT_VIEWED]: {\n payrollId: string\n startDate?: string\n endDate?: string\n }\n [componentEvents.RUN_PAYROLL_SUMMARY_VIEWED]: {\n payrollId: string\n startDate?: string\n endDate?: string\n }\n [componentEvents.RUN_PAYROLL_RECEIPT_GET]: {\n payrollId: string\n }\n [componentEvents.RUN_PAYROLL_CANCELLED]: undefined\n [componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED]: undefined\n [componentEvents.RUN_PAYROLL_NOT_CALCULATED_BACK_TO_LIST]: undefined\n}\n\n/** @internal */\nexport const payrollLandingBreadcrumbNodes: BreadcrumbNodes = {\n tabs: {\n parent: null,\n item: {\n id: 'tabs',\n label: 'breadcrumbs.landing',\n namespace: 'Payroll.PayrollLanding',\n onNavigate: ((ctx: PayrollLandingFlowContextInterface) => ({\n ...ctx,\n component: PayrollLandingTabsContextual,\n header:\n ctx.header?.type === 'breadcrumbs'\n ? { ...ctx.header, currentBreadcrumbId: undefined }\n : null,\n payrollUuid: undefined,\n previousState: undefined,\n startDate: undefined,\n endDate: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n overview: {\n parent: 'tabs',\n item: {\n id: 'overview',\n label: 'breadcrumbs.overview',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n receipt: {\n parent: 'tabs',\n item: {\n id: 'receipt',\n label: 'breadcrumbs.receipt',\n namespace: 'Payroll.PayrollLanding',\n },\n },\n} as const\n\nconst createReducer = (props: Partial<PayrollLandingFlowContextInterface>) => {\n return (ctx: PayrollLandingFlowContextInterface): PayrollLandingFlowContextInterface => ({\n ...ctx,\n ...props,\n })\n}\n\n/**\n * Reducer that returns the flow to the landing tabs view while preserving\n * the existing breadcrumbs trail data so that re-entering a sub-state can\n * pick it up without rebuilding.\n */\nconst returnToTabs = (\n extra: Partial<PayrollLandingFlowContextInterface> = {},\n): ((ctx: PayrollLandingFlowContextInterface) => PayrollLandingFlowContextInterface) => {\n return (ctx: PayrollLandingFlowContextInterface) => ({\n ...ctx,\n component: PayrollLandingTabsContextual,\n payrollUuid: undefined,\n previousState: undefined,\n startDate: undefined,\n endDate: undefined,\n header:\n ctx.header?.type === 'breadcrumbs' ? { ...ctx.header, currentBreadcrumbId: undefined } : null,\n ...extra,\n })\n}\n\nconst breadcrumbNavigateTransition =\n createBreadcrumbNavigateTransition<PayrollLandingFlowContextInterface>()\n\n/** @internal */\nexport const payrollLandingMachine = {\n tabs: state<MachineTransition>(\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_VIEWED,\n 'receipt',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_RECEIPT_VIEWED>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('receipt', ctx, {\n startDate: ev.payload.startDate ?? '',\n endDate: ev.payload.endDate ?? '',\n }),\n component: PayrollLandingReceiptsContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'tabs',\n selectedTab: 'payroll-history',\n startDate: ev.payload.startDate,\n endDate: ev.payload.endDate,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_SUMMARY_VIEWED,\n 'overview',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_SUMMARY_VIEWED>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('overview', ctx, {\n startDate: ev.payload.startDate ?? '',\n endDate: ev.payload.endDate ?? '',\n }),\n component: PayrollLandingOverviewContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'tabs',\n selectedTab: 'payroll-history',\n startDate: ev.payload.startDate,\n endDate: ev.payload.endDate,\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'tabs',\n reduce(\n createReducer({\n showPayrollCancelledAlert: true,\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED_ALERT_DISMISSED,\n 'tabs',\n reduce(\n createReducer({\n showPayrollCancelledAlert: false,\n }),\n ),\n ),\n ),\n overview: state<MachineTransition>(\n breadcrumbNavigateTransition('tabs'),\n transition(componentEvents.RUN_PAYROLL_BACK, 'tabs', reduce(returnToTabs())),\n transition(\n componentEvents.RUN_PAYROLL_NOT_CALCULATED_BACK_TO_LIST,\n 'tabs',\n reduce(returnToTabs()),\n ),\n transition(\n componentEvents.RUN_PAYROLL_RECEIPT_GET,\n 'receipt',\n reduce(\n (\n ctx: PayrollLandingFlowContextInterface,\n ev: MachineEventType<EventPayloads, typeof componentEvents.RUN_PAYROLL_RECEIPT_GET>,\n ): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('receipt', ctx, {\n startDate: ctx.startDate ?? '',\n endDate: ctx.endDate ?? '',\n }),\n component: PayrollLandingReceiptsContextual,\n payrollUuid: ev.payload.payrollId,\n previousState: 'overview',\n }),\n ),\n ),\n transition(\n componentEvents.RUN_PAYROLL_CANCELLED,\n 'tabs',\n reduce(returnToTabs({ showPayrollCancelledAlert: true })),\n ),\n ),\n receipt: state<MachineTransition>(\n breadcrumbNavigateTransition('tabs'),\n transition(\n componentEvents.RUN_PAYROLL_BACK,\n 'overview',\n reduce((ctx: PayrollLandingFlowContextInterface): PayrollLandingFlowContextInterface => ({\n ...updateBreadcrumbs('overview', ctx, {\n startDate: ctx.startDate ?? '',\n endDate: ctx.endDate ?? '',\n }),\n component: PayrollLandingOverviewContextual,\n previousState: 'tabs',\n })),\n guard((ctx: PayrollLandingFlowContextInterface) => {\n return ctx.previousState === 'overview'\n }),\n ),\n transition(\n componentEvents.RUN_PAYROLL_BACK,\n 'tabs',\n reduce(returnToTabs()),\n guard((ctx: PayrollLandingFlowContextInterface) => {\n return ctx.previousState === 'tabs'\n }),\n ),\n ),\n}\n"],"names":["payrollLandingBreadcrumbNodes","ctx","PayrollLandingTabsContextual","createReducer","props","returnToTabs","extra","breadcrumbNavigateTransition","createBreadcrumbNavigateTransition","payrollLandingMachine","state","transition","componentEvents","reduce","ev","updateBreadcrumbs","PayrollLandingReceiptsContextual","PayrollLandingOverviewContextual","guard"],"mappings":"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"}
|