@gusto/embedded-react-sdk 0.57.1 → 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 +13 -0
- package/dist/components/Base/Base.js +2 -3
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -9
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -7
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -9
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +8 -10
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +11 -13
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +80 -68
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +74 -88
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
- package/dist/components/Payroll/helpers.js +52 -48
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/helpers/dateFormatting.js +47 -40
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +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/Payroll.PayrollHistory.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
- package/dist/src/components/Payroll/helpers.d.ts +20 -0
- package/dist/src/helpers/dateFormatting.d.ts +13 -0
- package/dist/src/i18n/types.d.ts +14 -2
- package/dist/style.css +1 -1
- package/package.json +7 -7
|
@@ -1,49 +1,55 @@
|
|
|
1
|
-
import { jsx as a, jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { useTranslation as
|
|
4
|
-
import { usePayScheduleForm as
|
|
5
|
-
import
|
|
6
|
-
import { BaseBoundaries as
|
|
1
|
+
import { jsx as a, jsxs as y } from "react/jsx-runtime";
|
|
2
|
+
import { useState as O } from "react";
|
|
3
|
+
import { useTranslation as M } from "react-i18next";
|
|
4
|
+
import { usePayScheduleForm as q } from "./shared/usePayScheduleForm/usePayScheduleForm.js";
|
|
5
|
+
import u from "./PayScheduleForm.module.scss.js";
|
|
6
|
+
import { BaseBoundaries as A, BaseLayout as P } from "../../Base/Base.js";
|
|
7
7
|
import "../../Base/useBase.js";
|
|
8
|
-
import { SDKFormProvider as
|
|
9
|
-
import { Form as
|
|
10
|
-
import { Flex as
|
|
11
|
-
import { Grid as
|
|
12
|
-
import { ActionsLayout as
|
|
13
|
-
import { useComponentContext as
|
|
14
|
-
import { useDateFormatter as
|
|
15
|
-
import { componentEvents as
|
|
16
|
-
import { normalizeToDate as
|
|
17
|
-
const
|
|
18
|
-
function
|
|
19
|
-
return /* @__PURE__ */ a(
|
|
8
|
+
import { SDKFormProvider as L } from "../../../partner-hook-utils/form/SDKFormProvider.js";
|
|
9
|
+
import { Form as T } from "../../Common/Form/Form.js";
|
|
10
|
+
import { Flex as p } from "../../Common/Flex/Flex.js";
|
|
11
|
+
import { Grid as F } from "../../Common/Grid/Grid.js";
|
|
12
|
+
import { ActionsLayout as x } from "../../Common/ActionsLayout/ActionsLayout.js";
|
|
13
|
+
import { useComponentContext as N } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
14
|
+
import { useDateFormatter as I } from "../../../hooks/useDateFormatter.js";
|
|
15
|
+
import { componentEvents as f } from "../../../shared/constants.js";
|
|
16
|
+
import { normalizeToDate as U } from "../../../helpers/dateFormatting.js";
|
|
17
|
+
const D = (l) => U(l.toString());
|
|
18
|
+
function te({ onEvent: l, LoaderComponent: d, ...c }) {
|
|
19
|
+
return /* @__PURE__ */ a(A, { componentName: "Company.PayScheduleForm", LoaderComponent: d, children: /* @__PURE__ */ a(Q, { onEvent: l, LoaderComponent: d, ...c }) });
|
|
20
20
|
}
|
|
21
|
-
function
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
function Q({
|
|
22
|
+
onEvent: l,
|
|
23
|
+
LoaderComponent: d,
|
|
24
|
+
variant: c = "onboarding",
|
|
25
|
+
copy: m,
|
|
26
|
+
...w
|
|
27
|
+
}) {
|
|
28
|
+
const { t: e } = M("Company.PaySchedule"), o = N(), g = I(), i = q(w), [n, S] = O(0);
|
|
29
|
+
if (i.isLoading)
|
|
24
30
|
return /* @__PURE__ */ a(
|
|
25
|
-
|
|
31
|
+
P,
|
|
26
32
|
{
|
|
27
33
|
isLoading: !0,
|
|
28
|
-
error:
|
|
34
|
+
error: i.errorHandling.errors,
|
|
29
35
|
LoaderComponent: d
|
|
30
36
|
}
|
|
31
37
|
);
|
|
32
38
|
const v = async () => {
|
|
33
|
-
const t = await
|
|
39
|
+
const t = await i.actions.onSubmit();
|
|
34
40
|
t && l(
|
|
35
|
-
t.mode === "create" ?
|
|
41
|
+
t.mode === "create" ? f.PAY_SCHEDULE_CREATED : f.PAY_SCHEDULE_UPDATED,
|
|
36
42
|
{ paySchedule: t.data }
|
|
37
43
|
);
|
|
38
|
-
}, { Fields: r } =
|
|
44
|
+
}, { Fields: r } = i.form, { paymentSpeedDays: b, payPreviewLoading: k } = i.data, s = i.data.payPeriodPreview, E = {
|
|
39
45
|
"Every week": e("frequencies.everyWeek"),
|
|
40
46
|
"Every other week": e("frequencies.everyOtherWeek"),
|
|
41
47
|
"Twice per month": e("frequencies.twicePerMonth"),
|
|
42
48
|
Monthly: e("frequencies.monthly")
|
|
43
|
-
},
|
|
49
|
+
}, R = {
|
|
44
50
|
"1st15th": e("frequencyOptions.15thAndLast"),
|
|
45
51
|
custom: e("frequencyOptions.custom")
|
|
46
|
-
},
|
|
52
|
+
}, C = {
|
|
47
53
|
Sunday: e("workweekStartDayOptions.sunday"),
|
|
48
54
|
Monday: e("workweekStartDayOptions.monday"),
|
|
49
55
|
Tuesday: e("workweekStartDayOptions.tuesday"),
|
|
@@ -52,12 +58,12 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
52
58
|
Friday: e("workweekStartDayOptions.friday"),
|
|
53
59
|
Saturday: e("workweekStartDayOptions.saturday")
|
|
54
60
|
};
|
|
55
|
-
return /* @__PURE__ */ a(
|
|
61
|
+
return /* @__PURE__ */ a(P, { error: i.errorHandling.errors, LoaderComponent: d, children: /* @__PURE__ */ a(L, { formHookResult: i, children: /* @__PURE__ */ a(T, { onSubmit: () => {
|
|
56
62
|
v();
|
|
57
|
-
}, children: /* @__PURE__ */
|
|
58
|
-
/* @__PURE__ */ a(
|
|
59
|
-
/* @__PURE__ */ a("div", { className:
|
|
60
|
-
/* @__PURE__ */ a("div", { className:
|
|
63
|
+
}, children: /* @__PURE__ */ y(p, { flexDirection: "column", children: [
|
|
64
|
+
/* @__PURE__ */ a(p, { justifyContent: "space-between", flexDirection: "column", gap: 4, children: /* @__PURE__ */ a("header", { children: /* @__PURE__ */ a(o.Heading, { as: "h2", children: i.status.mode === "create" ? e("headings.addPaySchedule") : e("headings.editPaySchedule") }) }) }),
|
|
65
|
+
/* @__PURE__ */ a("div", { className: u.payScheduleContainer, children: /* @__PURE__ */ y(F, { gap: 32, gridTemplateColumns: { base: "1fr", small: "1fr 1fr" }, children: [
|
|
66
|
+
/* @__PURE__ */ a("div", { className: u.payScheduleForm, children: /* @__PURE__ */ y(p, { flexDirection: "column", children: [
|
|
61
67
|
/* @__PURE__ */ a(
|
|
62
68
|
r.CustomName,
|
|
63
69
|
{
|
|
@@ -70,7 +76,7 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
70
76
|
{
|
|
71
77
|
label: e("labels.frequency"),
|
|
72
78
|
placeholder: e("labels.frequencyPlaceholder"),
|
|
73
|
-
getOptionLabel: (t) =>
|
|
79
|
+
getOptionLabel: (t) => E[t],
|
|
74
80
|
validationMessages: { REQUIRED: e("validations.frequency") }
|
|
75
81
|
}
|
|
76
82
|
),
|
|
@@ -79,7 +85,7 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
79
85
|
{
|
|
80
86
|
label: e("labels.frequencyOptions"),
|
|
81
87
|
description: e("descriptions.frequencyOptionsDescription"),
|
|
82
|
-
getOptionLabel: (t) =>
|
|
88
|
+
getOptionLabel: (t) => R[t] ?? t,
|
|
83
89
|
validationMessages: { REQUIRED: e("validations.frequencyOptions") }
|
|
84
90
|
}
|
|
85
91
|
),
|
|
@@ -87,9 +93,7 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
87
93
|
r.AnchorPayDate,
|
|
88
94
|
{
|
|
89
95
|
label: e("labels.firstPayDate"),
|
|
90
|
-
description: e("descriptions.anchorPayDateDescription", {
|
|
91
|
-
count: S
|
|
92
|
-
}),
|
|
96
|
+
description: m ? m.anchorPayDateDescription : e("descriptions.anchorPayDateDescription", { count: b }),
|
|
93
97
|
validationMessages: { REQUIRED: e("validations.firstPayDate") },
|
|
94
98
|
minDate: /* @__PURE__ */ new Date()
|
|
95
99
|
}
|
|
@@ -98,7 +102,7 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
98
102
|
r.AnchorEndOfPayPeriod,
|
|
99
103
|
{
|
|
100
104
|
label: e("labels.firstPayPeriodEndDate"),
|
|
101
|
-
description: e("descriptions.anchorEndOfPayPeriodDescription"),
|
|
105
|
+
description: m?.anchorEndOfPayPeriodDescription ?? e("descriptions.anchorEndOfPayPeriodDescription"),
|
|
102
106
|
validationMessages: { REQUIRED: e("validations.firstPayPeriodEndDate") }
|
|
103
107
|
}
|
|
104
108
|
),
|
|
@@ -128,84 +132,84 @@ function I({ onEvent: l, LoaderComponent: d, ...h }) {
|
|
|
128
132
|
label: e("labels.workweekStartDay"),
|
|
129
133
|
placeholder: e("labels.workweekStartDayPlaceholder"),
|
|
130
134
|
description: e("descriptions.workweekStartDayDescription"),
|
|
131
|
-
getOptionLabel: (t) =>
|
|
135
|
+
getOptionLabel: (t) => C[t]
|
|
132
136
|
}
|
|
133
137
|
)
|
|
134
138
|
] }) }),
|
|
135
|
-
/* @__PURE__ */ a(
|
|
136
|
-
!
|
|
137
|
-
|
|
139
|
+
/* @__PURE__ */ a(p, { flexDirection: "column", gap: 4, justifyContent: "center", alignItems: "center", children: s && s[n] ? /* @__PURE__ */ y("div", { className: u.calendarContainer, "data-variant": c, children: [
|
|
140
|
+
!k && /* @__PURE__ */ a(
|
|
141
|
+
o.Select,
|
|
138
142
|
{
|
|
139
143
|
label: e("labels.preview"),
|
|
140
144
|
placeholder: "",
|
|
141
145
|
isRequired: !0,
|
|
142
|
-
options: s.map((t,
|
|
143
|
-
value: String(
|
|
144
|
-
label:
|
|
146
|
+
options: s.map((t, h) => ({
|
|
147
|
+
value: String(h),
|
|
148
|
+
label: c === "management" ? `${t.startDate.toString()} — ${t.endDate.toString()}` : g.formatPayPeriodRange(
|
|
145
149
|
t.startDate.toString(),
|
|
146
150
|
t.endDate.toString()
|
|
147
151
|
)
|
|
148
152
|
})),
|
|
149
153
|
value: String(n),
|
|
150
154
|
onChange: (t) => {
|
|
151
|
-
const
|
|
152
|
-
isNaN(
|
|
155
|
+
const h = Number(t);
|
|
156
|
+
isNaN(h) || S(h);
|
|
153
157
|
}
|
|
154
158
|
}
|
|
155
159
|
),
|
|
156
160
|
/* @__PURE__ */ a(
|
|
157
|
-
|
|
161
|
+
o.CalendarPreview,
|
|
158
162
|
{
|
|
159
163
|
dateRange: {
|
|
160
|
-
start:
|
|
161
|
-
end:
|
|
164
|
+
start: D(s[n].startDate),
|
|
165
|
+
end: D(s[n].endDate),
|
|
162
166
|
label: e("payPreview.payPeriod") || "Pay Period"
|
|
163
167
|
},
|
|
164
168
|
highlightDates: [
|
|
165
169
|
{
|
|
166
|
-
date:
|
|
170
|
+
date: D(s[n].checkDate),
|
|
167
171
|
highlightColor: "primary",
|
|
168
172
|
label: e("payPreview.payday") || "Payday"
|
|
169
173
|
},
|
|
170
174
|
{
|
|
171
|
-
date:
|
|
175
|
+
date: D(
|
|
172
176
|
s[n].runPayrollBy
|
|
173
177
|
),
|
|
174
178
|
highlightColor: "secondary",
|
|
175
|
-
label: e("payPreview.payrollDeadline")
|
|
179
|
+
label: m?.payrollDeadline ?? e("payPreview.payrollDeadline")
|
|
176
180
|
}
|
|
177
181
|
]
|
|
178
182
|
},
|
|
179
183
|
n
|
|
180
184
|
)
|
|
181
|
-
] }) : /* @__PURE__ */ a("div", { className:
|
|
182
|
-
|
|
185
|
+
] }) : /* @__PURE__ */ a("div", { className: u.calendarContainer, "data-variant": c, children: /* @__PURE__ */ a(
|
|
186
|
+
o.Alert,
|
|
183
187
|
{
|
|
184
188
|
status: "info",
|
|
185
189
|
label: e("previewAlert.title", "Pay Schedule Preview"),
|
|
186
|
-
children: /* @__PURE__ */ a(
|
|
190
|
+
children: /* @__PURE__ */ a(o.Text, { children: e(
|
|
187
191
|
"previewAlert.description",
|
|
188
192
|
"Complete all the required fields on the left to see a preview of your pay schedule."
|
|
189
193
|
) })
|
|
190
194
|
}
|
|
191
195
|
) }) })
|
|
192
196
|
] }) }),
|
|
193
|
-
/* @__PURE__ */
|
|
197
|
+
/* @__PURE__ */ y(x, { children: [
|
|
194
198
|
/* @__PURE__ */ a(
|
|
195
|
-
|
|
199
|
+
o.Button,
|
|
196
200
|
{
|
|
197
201
|
variant: "secondary",
|
|
198
202
|
onClick: () => {
|
|
199
|
-
l(
|
|
203
|
+
l(f.CANCEL);
|
|
200
204
|
},
|
|
201
205
|
children: e("actions.cancel")
|
|
202
206
|
}
|
|
203
207
|
),
|
|
204
|
-
/* @__PURE__ */ a(
|
|
208
|
+
/* @__PURE__ */ a(o.Button, { type: "submit", isLoading: i.status.isPending, children: e("actions.save") })
|
|
205
209
|
] })
|
|
206
210
|
] }) }) }) });
|
|
207
211
|
}
|
|
208
212
|
export {
|
|
209
|
-
|
|
213
|
+
te as PayScheduleForm
|
|
210
214
|
};
|
|
211
215
|
//# sourceMappingURL=PayScheduleForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayScheduleForm.js","sources":["../../../../src/components/Company/PaySchedule/PayScheduleForm.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { usePayScheduleForm } from './shared/usePayScheduleForm'\nimport type {\n UsePayScheduleFormProps,\n PayScheduleFrequency,\n PayScheduleWorkweekStartDay,\n} from './shared/usePayScheduleForm'\nimport style from './PayScheduleForm.module.scss'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { Form } from '@/components/Common/Form'\nimport { Flex, Grid, ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\nimport type { LoaderComponentType } from '@/components/Base'\n\ninterface PayScheduleFormProps extends UsePayScheduleFormProps {\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n// Pay period preview dates are RFCDate (`YYYY-MM-DD`) instances; normalizeToDate parses\n// them as local midnight instead of new Date's UTC midnight, which CalendarPreview would\n// otherwise roll back a day for timezones behind UTC. The format is always valid here.\nconst toLocalDate = (rfcDate: { toString(): string }): Date => normalizeToDate(rfcDate.toString())!\n\n/** @internal */\nexport function PayScheduleForm({ onEvent, LoaderComponent, ...hookProps }: PayScheduleFormProps) {\n return (\n <BaseBoundaries componentName=\"Company.PayScheduleForm\" LoaderComponent={LoaderComponent}>\n <PayScheduleFormRoot onEvent={onEvent} LoaderComponent={LoaderComponent} {...hookProps} />\n </BaseBoundaries>\n )\n}\n\nfunction PayScheduleFormRoot({ onEvent, LoaderComponent, ...hookProps }: PayScheduleFormProps) {\n const { t } = useTranslation('Company.PaySchedule')\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const paySchedule = usePayScheduleForm(hookProps)\n const [selectedPayPeriodIndex, setSelectedPayPeriodIndex] = useState(0)\n\n if (paySchedule.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={paySchedule.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const handleSubmit = async () => {\n const result = await paySchedule.actions.onSubmit()\n if (result) {\n onEvent(\n result.mode === 'create'\n ? componentEvents.PAY_SCHEDULE_CREATED\n : componentEvents.PAY_SCHEDULE_UPDATED,\n { paySchedule: result.data },\n )\n }\n }\n\n const { Fields } = paySchedule.form\n const { paymentSpeedDays, payPreviewLoading } = paySchedule.data\n const payPeriodPreview = paySchedule.data.payPeriodPreview\n\n const frequencyLabels: Record<PayScheduleFrequency, string> = {\n 'Every week': t('frequencies.everyWeek'),\n 'Every other week': t('frequencies.everyOtherWeek'),\n 'Twice per month': t('frequencies.twicePerMonth'),\n Monthly: t('frequencies.monthly'),\n }\n\n const twicePerMonthLabels: Record<string, string> = {\n '1st15th': t('frequencyOptions.15thAndLast'),\n custom: t('frequencyOptions.custom'),\n }\n\n const workweekStartDayLabels: Record<PayScheduleWorkweekStartDay, string> = {\n Sunday: t('workweekStartDayOptions.sunday'),\n Monday: t('workweekStartDayOptions.monday'),\n Tuesday: t('workweekStartDayOptions.tuesday'),\n Wednesday: t('workweekStartDayOptions.wednesday'),\n Thursday: t('workweekStartDayOptions.thursday'),\n Friday: t('workweekStartDayOptions.friday'),\n Saturday: t('workweekStartDayOptions.saturday'),\n }\n\n return (\n <BaseLayout error={paySchedule.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={paySchedule}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\">\n <Flex justifyContent=\"space-between\" flexDirection=\"column\" gap={4}>\n <header>\n <Components.Heading as=\"h2\">\n {paySchedule.status.mode === 'create'\n ? t('headings.addPaySchedule')\n : t('headings.editPaySchedule')}\n </Components.Heading>\n </header>\n </Flex>\n <div className={style.payScheduleContainer}>\n <Grid gap={32} gridTemplateColumns={{ base: '1fr', small: '1fr 1fr' }}>\n <div className={style.payScheduleForm}>\n <Flex flexDirection=\"column\">\n <Fields.CustomName\n label={t('labels.name')}\n validationMessages={{ REQUIRED: t('validations.name') }}\n />\n <Fields.Frequency\n label={t('labels.frequency')}\n placeholder={t('labels.frequencyPlaceholder')}\n getOptionLabel={(entry: PayScheduleFrequency) => frequencyLabels[entry]}\n validationMessages={{ REQUIRED: t('validations.frequency') }}\n />\n {Fields.CustomTwicePerMonth && (\n <Fields.CustomTwicePerMonth\n label={t('labels.frequencyOptions')}\n description={t('descriptions.frequencyOptionsDescription')}\n getOptionLabel={(entry: string) => twicePerMonthLabels[entry] ?? entry}\n validationMessages={{ REQUIRED: t('validations.frequencyOptions') }}\n />\n )}\n <Fields.AnchorPayDate\n label={t('labels.firstPayDate')}\n description={t('descriptions.anchorPayDateDescription', {\n count: paymentSpeedDays,\n })}\n validationMessages={{ REQUIRED: t('validations.firstPayDate') }}\n minDate={new Date()}\n />\n <Fields.AnchorEndOfPayPeriod\n label={t('labels.firstPayPeriodEndDate')}\n description={t('descriptions.anchorEndOfPayPeriodDescription')}\n validationMessages={{ REQUIRED: t('validations.firstPayPeriodEndDate') }}\n />\n {Fields.Day1 && (\n <Fields.Day1\n label={t('labels.firstPayDayOfTheMonth')}\n validationMessages={{\n REQUIRED: t('validations.firstPayDayOfTheMonth'),\n DAY_RANGE: t('validations.dayRange'),\n }}\n />\n )}\n {Fields.Day2 && (\n <Fields.Day2\n label={t('labels.lastPayDayOfTheMonth')}\n validationMessages={{\n REQUIRED: t('validations.lastPayDayOfTheMonth'),\n DAY_RANGE: t('validations.dayRange'),\n }}\n />\n )}\n {Fields.WorkweekStartDay && (\n <Fields.WorkweekStartDay\n label={t('labels.workweekStartDay')}\n placeholder={t('labels.workweekStartDayPlaceholder')}\n description={t('descriptions.workweekStartDayDescription')}\n getOptionLabel={(entry: PayScheduleWorkweekStartDay) =>\n workweekStartDayLabels[entry]\n }\n />\n )}\n </Flex>\n </div>\n <Flex flexDirection=\"column\" gap={4} justifyContent=\"center\" alignItems=\"center\">\n {payPeriodPreview && payPeriodPreview[selectedPayPeriodIndex] ? (\n <div className={style.calendarContainer}>\n {!payPreviewLoading && (\n <Components.Select\n label={t('labels.preview')}\n placeholder=\"\"\n isRequired\n options={payPeriodPreview.map((period, index) => ({\n value: String(index),\n label: dateFormatter.formatPayPeriodRange(\n period.startDate.toString(),\n period.endDate.toString(),\n ),\n }))}\n value={String(selectedPayPeriodIndex)}\n onChange={(value: string) => {\n const numericValue = Number(value)\n if (!isNaN(numericValue)) {\n setSelectedPayPeriodIndex(numericValue)\n }\n }}\n />\n )}\n <Components.CalendarPreview\n key={selectedPayPeriodIndex}\n dateRange={{\n start: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].startDate),\n end: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].endDate),\n label: t('payPreview.payPeriod') || 'Pay Period',\n }}\n highlightDates={[\n {\n date: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].checkDate),\n highlightColor: 'primary',\n label: t('payPreview.payday') || 'Payday',\n },\n {\n date: toLocalDate(\n payPeriodPreview[selectedPayPeriodIndex].runPayrollBy,\n ),\n highlightColor: 'secondary',\n label: t('payPreview.payrollDeadline') || 'Payroll Deadline',\n },\n ]}\n />\n </div>\n ) : (\n <div className={style.calendarContainer}>\n <Components.Alert\n status=\"info\"\n label={t('previewAlert.title', 'Pay Schedule Preview')}\n >\n <Components.Text>\n {t(\n 'previewAlert.description',\n 'Complete all the required fields on the left to see a preview of your pay schedule.',\n )}\n </Components.Text>\n </Components.Alert>\n </div>\n )}\n </Flex>\n </Grid>\n </div>\n <ActionsLayout>\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.CANCEL)\n }}\n >\n {t('actions.cancel')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={paySchedule.status.isPending}>\n {t('actions.save')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n )\n}\n"],"names":["toLocalDate","rfcDate","normalizeToDate","PayScheduleForm","onEvent","LoaderComponent","hookProps","jsx","BaseBoundaries","PayScheduleFormRoot","t","useTranslation","Components","useComponentContext","dateFormatter","useDateFormatter","paySchedule","usePayScheduleForm","selectedPayPeriodIndex","setSelectedPayPeriodIndex","useState","BaseLayout","handleSubmit","result","componentEvents","Fields","paymentSpeedDays","payPreviewLoading","payPeriodPreview","frequencyLabels","twicePerMonthLabels","workweekStartDayLabels","SDKFormProvider","Form","jsxs","Flex","style","Grid","entry","period","index","value","numericValue","ActionsLayout"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PayScheduleForm.js","sources":["../../../../src/components/Company/PaySchedule/PayScheduleForm.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { usePayScheduleForm } from './shared/usePayScheduleForm'\nimport type {\n UsePayScheduleFormProps,\n PayScheduleFrequency,\n PayScheduleWorkweekStartDay,\n} from './shared/usePayScheduleForm'\nimport style from './PayScheduleForm.module.scss'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { Form } from '@/components/Common/Form'\nimport { Flex, Grid, ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\nimport type { LoaderComponentType } from '@/components/Base'\n\ninterface PayScheduleFormProps extends UsePayScheduleFormProps {\n variant?: 'onboarding' | 'management'\n copy?: {\n anchorPayDateDescription?: string\n anchorEndOfPayPeriodDescription: string\n payrollDeadline: string\n }\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n// Pay period preview dates are RFCDate (`YYYY-MM-DD`) instances; normalizeToDate parses\n// them as local midnight instead of new Date's UTC midnight, which CalendarPreview would\n// otherwise roll back a day for timezones behind UTC. The format is always valid here.\nconst toLocalDate = (rfcDate: { toString(): string }): Date => normalizeToDate(rfcDate.toString())!\n\n/** @internal */\nexport function PayScheduleForm({ onEvent, LoaderComponent, ...hookProps }: PayScheduleFormProps) {\n return (\n <BaseBoundaries componentName=\"Company.PayScheduleForm\" LoaderComponent={LoaderComponent}>\n <PayScheduleFormRoot onEvent={onEvent} LoaderComponent={LoaderComponent} {...hookProps} />\n </BaseBoundaries>\n )\n}\n\nfunction PayScheduleFormRoot({\n onEvent,\n LoaderComponent,\n variant = 'onboarding',\n copy,\n ...hookProps\n}: PayScheduleFormProps) {\n const { t } = useTranslation('Company.PaySchedule')\n const Components = useComponentContext()\n const dateFormatter = useDateFormatter()\n const paySchedule = usePayScheduleForm(hookProps)\n const [selectedPayPeriodIndex, setSelectedPayPeriodIndex] = useState(0)\n\n if (paySchedule.isLoading) {\n return (\n <BaseLayout\n isLoading\n error={paySchedule.errorHandling.errors}\n LoaderComponent={LoaderComponent}\n />\n )\n }\n\n const handleSubmit = async () => {\n const result = await paySchedule.actions.onSubmit()\n if (result) {\n onEvent(\n result.mode === 'create'\n ? componentEvents.PAY_SCHEDULE_CREATED\n : componentEvents.PAY_SCHEDULE_UPDATED,\n { paySchedule: result.data },\n )\n }\n }\n\n const { Fields } = paySchedule.form\n const { paymentSpeedDays, payPreviewLoading } = paySchedule.data\n const payPeriodPreview = paySchedule.data.payPeriodPreview\n\n const frequencyLabels: Record<PayScheduleFrequency, string> = {\n 'Every week': t('frequencies.everyWeek'),\n 'Every other week': t('frequencies.everyOtherWeek'),\n 'Twice per month': t('frequencies.twicePerMonth'),\n Monthly: t('frequencies.monthly'),\n }\n\n const twicePerMonthLabels: Record<string, string> = {\n '1st15th': t('frequencyOptions.15thAndLast'),\n custom: t('frequencyOptions.custom'),\n }\n\n const workweekStartDayLabels: Record<PayScheduleWorkweekStartDay, string> = {\n Sunday: t('workweekStartDayOptions.sunday'),\n Monday: t('workweekStartDayOptions.monday'),\n Tuesday: t('workweekStartDayOptions.tuesday'),\n Wednesday: t('workweekStartDayOptions.wednesday'),\n Thursday: t('workweekStartDayOptions.thursday'),\n Friday: t('workweekStartDayOptions.friday'),\n Saturday: t('workweekStartDayOptions.saturday'),\n }\n\n return (\n <BaseLayout error={paySchedule.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={paySchedule}>\n <Form onSubmit={() => void handleSubmit()}>\n <Flex flexDirection=\"column\">\n <Flex justifyContent=\"space-between\" flexDirection=\"column\" gap={4}>\n <header>\n <Components.Heading as=\"h2\">\n {paySchedule.status.mode === 'create'\n ? t('headings.addPaySchedule')\n : t('headings.editPaySchedule')}\n </Components.Heading>\n </header>\n </Flex>\n <div className={style.payScheduleContainer}>\n <Grid gap={32} gridTemplateColumns={{ base: '1fr', small: '1fr 1fr' }}>\n <div className={style.payScheduleForm}>\n <Flex flexDirection=\"column\">\n <Fields.CustomName\n label={t('labels.name')}\n validationMessages={{ REQUIRED: t('validations.name') }}\n />\n <Fields.Frequency\n label={t('labels.frequency')}\n placeholder={t('labels.frequencyPlaceholder')}\n getOptionLabel={(entry: PayScheduleFrequency) => frequencyLabels[entry]}\n validationMessages={{ REQUIRED: t('validations.frequency') }}\n />\n {Fields.CustomTwicePerMonth && (\n <Fields.CustomTwicePerMonth\n label={t('labels.frequencyOptions')}\n description={t('descriptions.frequencyOptionsDescription')}\n getOptionLabel={(entry: string) => twicePerMonthLabels[entry] ?? entry}\n validationMessages={{ REQUIRED: t('validations.frequencyOptions') }}\n />\n )}\n <Fields.AnchorPayDate\n label={t('labels.firstPayDate')}\n description={\n copy\n ? copy.anchorPayDateDescription\n : t('descriptions.anchorPayDateDescription', { count: paymentSpeedDays })\n }\n validationMessages={{ REQUIRED: t('validations.firstPayDate') }}\n minDate={new Date()}\n />\n <Fields.AnchorEndOfPayPeriod\n label={t('labels.firstPayPeriodEndDate')}\n description={\n copy?.anchorEndOfPayPeriodDescription ??\n t('descriptions.anchorEndOfPayPeriodDescription')\n }\n validationMessages={{ REQUIRED: t('validations.firstPayPeriodEndDate') }}\n />\n {Fields.Day1 && (\n <Fields.Day1\n label={t('labels.firstPayDayOfTheMonth')}\n validationMessages={{\n REQUIRED: t('validations.firstPayDayOfTheMonth'),\n DAY_RANGE: t('validations.dayRange'),\n }}\n />\n )}\n {Fields.Day2 && (\n <Fields.Day2\n label={t('labels.lastPayDayOfTheMonth')}\n validationMessages={{\n REQUIRED: t('validations.lastPayDayOfTheMonth'),\n DAY_RANGE: t('validations.dayRange'),\n }}\n />\n )}\n {Fields.WorkweekStartDay && (\n <Fields.WorkweekStartDay\n label={t('labels.workweekStartDay')}\n placeholder={t('labels.workweekStartDayPlaceholder')}\n description={t('descriptions.workweekStartDayDescription')}\n getOptionLabel={(entry: PayScheduleWorkweekStartDay) =>\n workweekStartDayLabels[entry]\n }\n />\n )}\n </Flex>\n </div>\n <Flex flexDirection=\"column\" gap={4} justifyContent=\"center\" alignItems=\"center\">\n {payPeriodPreview && payPeriodPreview[selectedPayPeriodIndex] ? (\n <div className={style.calendarContainer} data-variant={variant}>\n {!payPreviewLoading && (\n <Components.Select\n label={t('labels.preview')}\n placeholder=\"\"\n isRequired\n options={payPeriodPreview.map((period, index) => ({\n value: String(index),\n label:\n variant === 'management'\n ? `${period.startDate.toString()} — ${period.endDate.toString()}`\n : dateFormatter.formatPayPeriodRange(\n period.startDate.toString(),\n period.endDate.toString(),\n ),\n }))}\n value={String(selectedPayPeriodIndex)}\n onChange={(value: string) => {\n const numericValue = Number(value)\n if (!isNaN(numericValue)) {\n setSelectedPayPeriodIndex(numericValue)\n }\n }}\n />\n )}\n <Components.CalendarPreview\n key={selectedPayPeriodIndex}\n dateRange={{\n start: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].startDate),\n end: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].endDate),\n label: t('payPreview.payPeriod') || 'Pay Period',\n }}\n highlightDates={[\n {\n date: toLocalDate(payPeriodPreview[selectedPayPeriodIndex].checkDate),\n highlightColor: 'primary',\n label: t('payPreview.payday') || 'Payday',\n },\n {\n date: toLocalDate(\n payPeriodPreview[selectedPayPeriodIndex].runPayrollBy,\n ),\n highlightColor: 'secondary',\n label: copy?.payrollDeadline ?? t('payPreview.payrollDeadline'),\n },\n ]}\n />\n </div>\n ) : (\n <div className={style.calendarContainer} data-variant={variant}>\n <Components.Alert\n status=\"info\"\n label={t('previewAlert.title', 'Pay Schedule Preview')}\n >\n <Components.Text>\n {t(\n 'previewAlert.description',\n 'Complete all the required fields on the left to see a preview of your pay schedule.',\n )}\n </Components.Text>\n </Components.Alert>\n </div>\n )}\n </Flex>\n </Grid>\n </div>\n <ActionsLayout>\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.CANCEL)\n }}\n >\n {t('actions.cancel')}\n </Components.Button>\n <Components.Button type=\"submit\" isLoading={paySchedule.status.isPending}>\n {t('actions.save')}\n </Components.Button>\n </ActionsLayout>\n </Flex>\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n )\n}\n"],"names":["toLocalDate","rfcDate","normalizeToDate","PayScheduleForm","onEvent","LoaderComponent","hookProps","jsx","BaseBoundaries","PayScheduleFormRoot","variant","copy","t","useTranslation","Components","useComponentContext","dateFormatter","useDateFormatter","paySchedule","usePayScheduleForm","selectedPayPeriodIndex","setSelectedPayPeriodIndex","useState","BaseLayout","handleSubmit","result","componentEvents","Fields","paymentSpeedDays","payPreviewLoading","payPeriodPreview","frequencyLabels","twicePerMonthLabels","workweekStartDayLabels","SDKFormProvider","Form","jsxs","Flex","style","Grid","entry","period","index","value","numericValue","ActionsLayout"],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const e = "
|
|
1
|
+
const e = "_payScheduleContainer_6fjx0_1", a = "_payScheduleForm_6fjx0_5", n = "_calendarContainer_6fjx0_9", o = {
|
|
2
2
|
payScheduleContainer: e,
|
|
3
3
|
payScheduleForm: a,
|
|
4
4
|
calendarContainer: n
|
|
5
5
|
};
|
|
6
6
|
export {
|
|
7
7
|
n as calendarContainer,
|
|
8
|
-
|
|
8
|
+
o as default,
|
|
9
9
|
e as payScheduleContainer,
|
|
10
10
|
a as payScheduleForm
|
|
11
11
|
};
|
|
@@ -1,141 +1,153 @@
|
|
|
1
1
|
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { useTranslation as C } from "react-i18next";
|
|
3
|
+
import { useState as _, useMemo as U, useEffect as T } from "react";
|
|
4
|
+
import { usePaySchedulesGetAllSuspense as D } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
|
|
4
5
|
import { usePaySchedulesPreviewAssignmentMutation as L } from "@gusto/embedded-api/react-query/paySchedulesPreviewAssignment";
|
|
5
6
|
import { usePaySchedulesAssignMutation as v } from "@gusto/embedded-api/react-query/paySchedulesAssign";
|
|
6
|
-
import { PayScheduleAssignmentBodyType as
|
|
7
|
-
import { AssignmentTypeStepPresentation as
|
|
8
|
-
import { AssignmentScheduleStepPresentation as
|
|
9
|
-
import { AssignmentCompensationStepPresentation as
|
|
10
|
-
import { AssignmentReviewStepPresentation as
|
|
11
|
-
import { PayScheduleForm as
|
|
12
|
-
import { useFlow as
|
|
7
|
+
import { PayScheduleAssignmentBodyType as m } from "@gusto/embedded-api/models/components/payscheduleassignmentbody";
|
|
8
|
+
import { AssignmentTypeStepPresentation as H } from "./AssignmentTypeStepPresentation.js";
|
|
9
|
+
import { AssignmentScheduleStepPresentation as N } from "./AssignmentScheduleStepPresentation.js";
|
|
10
|
+
import { AssignmentCompensationStepPresentation as I } from "./AssignmentCompensationStepPresentation.js";
|
|
11
|
+
import { AssignmentReviewStepPresentation as B } from "./AssignmentReviewStepPresentation.js";
|
|
12
|
+
import { PayScheduleForm as M } from "../../PayScheduleForm.js";
|
|
13
|
+
import { useFlow as h } from "../../../../Flow/useFlow.js";
|
|
13
14
|
import { BaseLayout as Y } from "../../../../Base/Base.js";
|
|
14
15
|
import { useBase as w } from "../../../../Base/useBase.js";
|
|
15
|
-
import { ensureRequired as
|
|
16
|
-
import { componentEvents as
|
|
17
|
-
function
|
|
18
|
-
const { assignmentType:
|
|
16
|
+
import { ensureRequired as a } from "../../../../../helpers/ensureRequired.js";
|
|
17
|
+
import { componentEvents as t } from "../../../../../shared/constants.js";
|
|
18
|
+
function $() {
|
|
19
|
+
const { assignmentType: n, onEvent: o } = h();
|
|
19
20
|
return /* @__PURE__ */ r(
|
|
20
|
-
|
|
21
|
+
H,
|
|
21
22
|
{
|
|
22
|
-
defaultType:
|
|
23
|
+
defaultType: n,
|
|
23
24
|
onBack: () => {
|
|
24
|
-
o(
|
|
25
|
+
o(t.PAY_SCHEDULE_ASSIGNMENT_CANCEL);
|
|
25
26
|
},
|
|
26
|
-
onContinue: (
|
|
27
|
-
o(
|
|
27
|
+
onContinue: (s) => {
|
|
28
|
+
o(t.PAY_SCHEDULE_ASSIGNMENT_TYPE_SELECTED, { type: s });
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
);
|
|
31
32
|
}
|
|
32
|
-
function
|
|
33
|
+
function ee() {
|
|
33
34
|
const {
|
|
34
|
-
companyId:
|
|
35
|
+
companyId: n,
|
|
35
36
|
assignmentType: o,
|
|
36
|
-
defaultPayScheduleUuid:
|
|
37
|
+
defaultPayScheduleUuid: s,
|
|
37
38
|
hourlyPayScheduleUuid: y,
|
|
38
39
|
salariedPayScheduleUuid: p,
|
|
39
|
-
onEvent:
|
|
40
|
-
} =
|
|
41
|
-
companyId:
|
|
42
|
-
}),
|
|
43
|
-
return o ===
|
|
44
|
-
|
|
40
|
+
onEvent: i
|
|
41
|
+
} = h(), { data: d } = D({
|
|
42
|
+
companyId: a(n)
|
|
43
|
+
}), u = d.payScheduleShowResponse ?? [], S = u.find((e) => e.active), c = (e) => u.some((A) => A.uuid === e) ? e : S?.uuid;
|
|
44
|
+
return o === m.HourlySalaried ? /* @__PURE__ */ r(
|
|
45
|
+
I,
|
|
45
46
|
{
|
|
46
|
-
schedules:
|
|
47
|
+
schedules: u,
|
|
47
48
|
hourlyPayScheduleUuid: c(y),
|
|
48
49
|
salariedPayScheduleUuid: c(p),
|
|
49
50
|
onBack: () => {
|
|
50
|
-
|
|
51
|
+
i(t.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
51
52
|
},
|
|
52
53
|
onAddPaySchedule: () => {
|
|
53
|
-
|
|
54
|
+
i(t.PAY_SCHEDULE_CREATE);
|
|
54
55
|
},
|
|
55
56
|
onContinue: (e) => {
|
|
56
|
-
|
|
57
|
+
i(t.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, e);
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
) : /* @__PURE__ */ r(
|
|
60
|
-
|
|
61
|
+
N,
|
|
61
62
|
{
|
|
62
|
-
schedules:
|
|
63
|
-
defaultPayScheduleUuid: c(
|
|
63
|
+
schedules: u,
|
|
64
|
+
defaultPayScheduleUuid: c(s),
|
|
64
65
|
onBack: () => {
|
|
65
|
-
|
|
66
|
+
i(t.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
66
67
|
},
|
|
67
68
|
onAddPaySchedule: () => {
|
|
68
|
-
|
|
69
|
+
i(t.PAY_SCHEDULE_CREATE);
|
|
69
70
|
},
|
|
70
71
|
onContinue: (e) => {
|
|
71
|
-
|
|
72
|
+
i(t.PAY_SCHEDULE_ASSIGNMENT_SCHEDULE_SELECTED, {
|
|
72
73
|
defaultPayScheduleUuid: e
|
|
73
74
|
});
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
);
|
|
77
78
|
}
|
|
78
|
-
function
|
|
79
|
-
const { companyId:
|
|
80
|
-
return /* @__PURE__ */ r(
|
|
79
|
+
function ne() {
|
|
80
|
+
const { t: n } = C("Company.Management.PayScheduleAssignment"), { companyId: o, onEvent: s } = h();
|
|
81
|
+
return /* @__PURE__ */ r(
|
|
82
|
+
M,
|
|
83
|
+
{
|
|
84
|
+
variant: "management",
|
|
85
|
+
companyId: a(o),
|
|
86
|
+
onEvent: s,
|
|
87
|
+
copy: {
|
|
88
|
+
anchorEndOfPayPeriodDescription: n("scheduleForm.anchorEndOfPayPeriodDescription"),
|
|
89
|
+
payrollDeadline: n("scheduleForm.payrollDeadline")
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
);
|
|
81
93
|
}
|
|
82
|
-
function
|
|
94
|
+
function te() {
|
|
83
95
|
const {
|
|
84
|
-
companyId:
|
|
96
|
+
companyId: n,
|
|
85
97
|
assignmentType: o,
|
|
86
|
-
defaultPayScheduleUuid:
|
|
98
|
+
defaultPayScheduleUuid: s,
|
|
87
99
|
hourlyPayScheduleUuid: y,
|
|
88
100
|
salariedPayScheduleUuid: p,
|
|
89
|
-
onEvent:
|
|
90
|
-
} =
|
|
91
|
-
if (o ===
|
|
92
|
-
const
|
|
93
|
-
return
|
|
94
|
-
type:
|
|
95
|
-
defaultPayScheduleUuid:
|
|
101
|
+
onEvent: i
|
|
102
|
+
} = h(), { baseSubmitHandler: d, error: u } = w(), [S, c] = _(null), { mutateAsync: e, isPending: A } = L(), { mutateAsync: f, isPending: g } = v(), E = U(() => {
|
|
103
|
+
if (o === m.HourlySalaried) {
|
|
104
|
+
const l = a(y), P = a(p);
|
|
105
|
+
return l === P ? {
|
|
106
|
+
type: m.Single,
|
|
107
|
+
defaultPayScheduleUuid: l
|
|
96
108
|
} : {
|
|
97
|
-
type:
|
|
98
|
-
hourlyPayScheduleUuid:
|
|
109
|
+
type: m.HourlySalaried,
|
|
110
|
+
hourlyPayScheduleUuid: l,
|
|
99
111
|
salariedPayScheduleUuid: P
|
|
100
112
|
};
|
|
101
113
|
}
|
|
102
114
|
return {
|
|
103
|
-
type:
|
|
104
|
-
defaultPayScheduleUuid:
|
|
115
|
+
type: m.Single,
|
|
116
|
+
defaultPayScheduleUuid: a(s)
|
|
105
117
|
};
|
|
106
|
-
}, [o,
|
|
107
|
-
return
|
|
118
|
+
}, [o, s, y, p]);
|
|
119
|
+
return T(() => {
|
|
108
120
|
d(void 0, async () => {
|
|
109
|
-
const
|
|
110
|
-
request: { companyId:
|
|
121
|
+
const l = await e({
|
|
122
|
+
request: { companyId: a(n), payScheduleAssignmentBody: E }
|
|
111
123
|
});
|
|
112
|
-
c(
|
|
124
|
+
c(l.payScheduleAssignmentPreview?.employeeChanges ?? []);
|
|
113
125
|
});
|
|
114
|
-
}, [
|
|
115
|
-
|
|
126
|
+
}, [n, E, e, d]), u ? null : A || !S ? /* @__PURE__ */ r(Y, { isLoading: !0 }) : /* @__PURE__ */ r(
|
|
127
|
+
B,
|
|
116
128
|
{
|
|
117
129
|
employeeChanges: S,
|
|
118
130
|
isSubmitting: g,
|
|
119
131
|
onBack: () => {
|
|
120
|
-
|
|
132
|
+
i(t.PAY_SCHEDULE_ASSIGNMENT_BACK);
|
|
121
133
|
},
|
|
122
134
|
onSubmit: () => {
|
|
123
135
|
d(void 0, async () => {
|
|
124
136
|
await f({
|
|
125
137
|
request: {
|
|
126
|
-
companyId:
|
|
138
|
+
companyId: a(n),
|
|
127
139
|
payScheduleAssignmentBody: E
|
|
128
140
|
}
|
|
129
|
-
}),
|
|
141
|
+
}), i(t.PAY_SCHEDULE_ASSIGNED, { ...E, employeeChanges: S });
|
|
130
142
|
});
|
|
131
143
|
}
|
|
132
144
|
}
|
|
133
145
|
);
|
|
134
146
|
}
|
|
135
147
|
export {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
148
|
+
ne as AssignmentCreateScheduleStep,
|
|
149
|
+
te as AssignmentReviewStep,
|
|
150
|
+
ee as AssignmentScheduleStep,
|
|
151
|
+
$ as AssignmentTypeStep
|
|
140
152
|
};
|
|
141
153
|
//# sourceMappingURL=PayScheduleAssignmentComponents.js.map
|