@gusto/embedded-react-sdk 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/_virtual/dynamic-import-helper.js +8 -1
- package/dist/_virtual/dynamic-import-helper.js.map +1 -1
- package/dist/components/Base/Base.js +4 -4
- package/dist/components/Common/FieldDescription/FieldDescription.js +7 -14
- package/dist/components/Common/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/Common/Fields/hooks/useField.d.ts +4 -1
- package/dist/components/Common/Fields/hooks/useField.js +31 -24
- package/dist/components/Common/Fields/hooks/useField.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureForm.js +3 -4
- package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +6 -7
- package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +7 -8
- package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +1 -1
- package/dist/components/Common/UI/DatePicker/DatePicker.js +1 -1
- package/dist/components/Common/UI/Tabs/Tabs.d.ts +7 -0
- package/dist/components/Common/UI/Tabs/Tabs.js +25 -0
- package/dist/components/Common/UI/Tabs/Tabs.js.map +1 -0
- package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +8 -0
- package/dist/components/Common/UI/Tabs/Tabs.module.scss.js.map +1 -0
- package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +51 -0
- package/dist/components/Common/UI/Tabs/index.d.ts +3 -0
- package/dist/components/Common/hooks/useNumberFormatter.js +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +6 -7
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +7 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +2 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +8 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +9 -10
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +9 -10
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +8 -3
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +10 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccount.js +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +2 -2
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +8 -3
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +2 -2
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +10 -11
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +8 -3
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +9 -10
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +8 -3
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +15 -16
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +14 -9
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +11 -6
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Industry.js +2 -2
- package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +13 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +8 -3
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +7 -8
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +8 -3
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +3 -4
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +8 -3
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +37 -38
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.js +2 -3
- package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.js +11 -6
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +3 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +8 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +8 -3
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +7 -8
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +2 -3
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +10 -5
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/ContractorList/index.js +1 -1
- package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +7 -7
- package/dist/components/Contractor/Profile/ContractorProfile.js +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.js +39 -34
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +3 -3
- package/dist/components/Employee/Compensation/Compensation.js +10 -10
- package/dist/components/Employee/Deductions/Deductions.js +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +4 -4
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +2 -2
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +8 -9
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +8 -3
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +12 -13
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +8 -3
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -4
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +8 -3
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/FederalTaxes.js +3 -3
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +8 -3
- package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +2 -2
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +2 -2
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js +8 -8
- package/dist/components/Employee/PaymentMethod/Split.js +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +14 -9
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js +4 -5
- package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +20 -21
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/Profile.js +13 -13
- package/dist/components/Employee/Profile/useProfile.js +8 -3
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/StateTaxes/StateTaxes.js +3 -3
- package/dist/components/Employee/StateTaxes/useStateTaxes.js +8 -3
- package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.js +5 -5
- package/dist/components/Employee/Taxes/useTaxes.js +8 -3
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +60 -65
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +60 -57
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +5 -2
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +64 -13
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +18 -2
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +117 -19
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +3 -3
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +8 -8
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +42 -36
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/helpers.d.ts +7 -6
- package/dist/components/Payroll/helpers.js +44 -43
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.d.ts +14 -0
- package/dist/components/Payroll/usePreparedPayrollData.js +39 -0
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -0
- package/dist/contexts/ApiProvider/ApiProvider.js +4 -4
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +28 -26
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
- package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
- package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
- package/dist/i18n/I18n.js +5 -5
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +20 -18
- package/dist/i18n/en/Payroll.PayrollConfiguration.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +20 -0
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +18 -0
- package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -0
- package/dist/shared/constants.d.ts +6 -0
- package/dist/shared/constants.js +43 -34
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +52 -1
- package/package.json +14 -13
|
@@ -3,8 +3,7 @@ import { z as t } from "zod";
|
|
|
3
3
|
import { useFormContext as c } from "react-hook-form";
|
|
4
4
|
import { useTranslation as o } from "react-i18next";
|
|
5
5
|
import { Grid as b } from "../../Common/Grid/Grid.js";
|
|
6
|
-
import "
|
|
7
|
-
import { TextInputField as s } from "../../Common/Fields/TextInputField/TextInputField.js";
|
|
6
|
+
import { TextInputField as i } from "../../Common/Fields/TextInputField/TextInputField.js";
|
|
8
7
|
import { DatePickerField as u } from "../../Common/Fields/DatePickerField/DatePickerField.js";
|
|
9
8
|
import { removeNonDigits as S, addressInline as g } from "../../../helpers/formattedStrings.js";
|
|
10
9
|
import { usePlaceholderSSN as h, normalizeSSN as N } from "../../../helpers/ssn.js";
|
|
@@ -15,12 +14,12 @@ const v = t.object({
|
|
|
15
14
|
middleInitial: t.string().optional(),
|
|
16
15
|
lastName: m
|
|
17
16
|
});
|
|
18
|
-
function
|
|
17
|
+
function B() {
|
|
19
18
|
const { t: e } = o("Employee.Profile");
|
|
20
19
|
return /* @__PURE__ */ l(d, { children: [
|
|
21
20
|
/* @__PURE__ */ l(b, { gap: { base: 20, small: 8 }, gridTemplateColumns: { base: "1fr", small: ["1fr", 200] }, children: [
|
|
22
21
|
/* @__PURE__ */ a(
|
|
23
|
-
|
|
22
|
+
i,
|
|
24
23
|
{
|
|
25
24
|
name: "firstName",
|
|
26
25
|
isRequired: !0,
|
|
@@ -28,10 +27,10 @@ function C() {
|
|
|
28
27
|
errorMessage: e("validations.firstName")
|
|
29
28
|
}
|
|
30
29
|
),
|
|
31
|
-
/* @__PURE__ */ a(
|
|
30
|
+
/* @__PURE__ */ a(i, { name: "middleInitial", label: e("middleInitial") })
|
|
32
31
|
] }),
|
|
33
32
|
/* @__PURE__ */ a(
|
|
34
|
-
|
|
33
|
+
i,
|
|
35
34
|
{
|
|
36
35
|
name: "lastName",
|
|
37
36
|
isRequired: !0,
|
|
@@ -46,7 +45,7 @@ const O = t.object({
|
|
|
46
45
|
startDate: t.date().transform((e) => e.toISOString().split("T")[0]),
|
|
47
46
|
email: t.string().email()
|
|
48
47
|
});
|
|
49
|
-
function
|
|
48
|
+
function C({ companyLocations: e }) {
|
|
50
49
|
const { t: r } = o("Employee.Profile"), {
|
|
51
50
|
formState: { errors: n }
|
|
52
51
|
} = c();
|
|
@@ -55,9 +54,9 @@ function L({ companyLocations: e }) {
|
|
|
55
54
|
I,
|
|
56
55
|
{
|
|
57
56
|
name: "workAddress",
|
|
58
|
-
options: e.map((
|
|
59
|
-
value:
|
|
60
|
-
label: g(
|
|
57
|
+
options: e.map((s) => ({
|
|
58
|
+
value: s.uuid,
|
|
59
|
+
label: g(s)
|
|
61
60
|
})),
|
|
62
61
|
label: r("workAddress"),
|
|
63
62
|
description: r("workAddressDescription"),
|
|
@@ -77,7 +76,7 @@ function L({ companyLocations: e }) {
|
|
|
77
76
|
}
|
|
78
77
|
),
|
|
79
78
|
/* @__PURE__ */ a(
|
|
80
|
-
|
|
79
|
+
i,
|
|
81
80
|
{
|
|
82
81
|
name: "email",
|
|
83
82
|
label: r("email"),
|
|
@@ -93,15 +92,15 @@ const R = t.object({
|
|
|
93
92
|
ssn: t.string().transform((e) => S(e)).refine((e) => D.test(e)),
|
|
94
93
|
enableSsn: t.boolean()
|
|
95
94
|
});
|
|
96
|
-
function
|
|
97
|
-
const { setValue: n } = c(), { t:
|
|
95
|
+
function L({ employee: e, onChange: r }) {
|
|
96
|
+
const { setValue: n } = c(), { t: s } = o("Employee.Profile"), p = h(e?.hasSsn);
|
|
98
97
|
return /* @__PURE__ */ a(
|
|
99
|
-
|
|
98
|
+
i,
|
|
100
99
|
{
|
|
101
100
|
isRequired: !0,
|
|
102
101
|
name: "ssn",
|
|
103
|
-
label:
|
|
104
|
-
errorMessage:
|
|
102
|
+
label: s("ssnLabel"),
|
|
103
|
+
errorMessage: s("validations.ssn", { ns: "common" }),
|
|
105
104
|
placeholder: p,
|
|
106
105
|
transform: N,
|
|
107
106
|
onChange: (f) => {
|
|
@@ -113,7 +112,7 @@ function z({ employee: e, onChange: r }) {
|
|
|
113
112
|
const y = t.object({
|
|
114
113
|
dateOfBirth: t.date().transform((e) => e.toISOString().split("T")[0])
|
|
115
114
|
});
|
|
116
|
-
function
|
|
115
|
+
function z() {
|
|
117
116
|
const { t: e } = o("Employee.Profile");
|
|
118
117
|
return /* @__PURE__ */ a(
|
|
119
118
|
u,
|
|
@@ -130,13 +129,13 @@ v.merge(O).merge(R).merge(y).extend({
|
|
|
130
129
|
enableSsn: t.boolean()
|
|
131
130
|
});
|
|
132
131
|
export {
|
|
133
|
-
|
|
132
|
+
C as AdminInputs,
|
|
134
133
|
O as AdminInputsSchema,
|
|
135
|
-
|
|
134
|
+
z as DateOfBirthInput,
|
|
136
135
|
y as DateOfBirthSchema,
|
|
137
|
-
|
|
136
|
+
B as NameInputs,
|
|
138
137
|
v as NameInputsSchema,
|
|
139
|
-
|
|
138
|
+
L as SocialSecurityNumberInput,
|
|
140
139
|
R as SocialSecurityNumberSchema
|
|
141
140
|
};
|
|
142
141
|
//# sourceMappingURL=PersonalDetailsInputs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PersonalDetailsInputs.js","sources":["../../../../src/components/Employee/Profile/PersonalDetailsInputs.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { SelectField, TextInputField, Grid, DatePickerField } from '@/components/Common'\nimport { addressInline, removeNonDigits } from '@/helpers/formattedStrings'\nimport { normalizeSSN, usePlaceholderSSN } from '@/helpers/ssn'\nimport { nameValidation, SSN_REGEX } from '@/helpers/validations'\n\nexport const NameInputsSchema = z.object({\n firstName: nameValidation,\n middleInitial: z.string().optional(),\n lastName: nameValidation,\n})\n\nexport function NameInputs() {\n const { t } = useTranslation('Employee.Profile')\n\n return (\n <>\n <Grid gap={{ base: 20, small: 8 }} gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}>\n <TextInputField\n name=\"firstName\"\n isRequired\n label={t('firstName')}\n errorMessage={t('validations.firstName')}\n />\n <TextInputField name=\"middleInitial\" label={t('middleInitial')} />\n </Grid>\n <TextInputField\n name=\"lastName\"\n isRequired\n label={t('lastName')}\n errorMessage={t('validations.lastName')}\n />\n </>\n )\n}\n\nexport const AdminInputsSchema = z.object({\n workAddress: z.string().min(1),\n startDate: z.date().transform(date => date.toISOString().split('T')[0]),\n email: z.string().email(),\n})\n\ntype AdminInputsSchemaType = z.infer<typeof AdminInputsSchema>\n\ninterface AdminInputsProps {\n companyLocations: Location[]\n}\n\nexport function AdminInputs({ companyLocations }: AdminInputsProps) {\n const { t } = useTranslation('Employee.Profile')\n const {\n formState: { errors },\n } = useFormContext<AdminInputsSchemaType>()\n\n return (\n <>\n <SelectField\n name=\"workAddress\"\n options={companyLocations.map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))}\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n errorMessage={t('validations.location', { ns: 'common' })}\n isRequired\n />\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={\n errors.startDate?.type === 'custom'\n ? t('validations.startDateOutOfRange')\n : t('validations.startDate')\n }\n />\n <TextInputField\n name=\"email\"\n label={t('email')}\n description={t('emailDescription')}\n errorMessage={t('validations.email')}\n isRequired\n type=\"email\"\n />\n </>\n )\n}\n\nexport const SocialSecurityNumberSchema = z.object({\n ssn: z\n .string()\n .transform(input => removeNonDigits(input))\n .refine(input => SSN_REGEX.test(input)),\n enableSsn: z.boolean(),\n})\n\ntype SocialSecurityNumberSchemaType = z.infer<typeof SocialSecurityNumberSchema>\n\ninterface SocialSecurityNumberInputProps {\n employee?: Employee\n onChange?: (updatedValue: string) => void\n}\n\nexport function SocialSecurityNumberInput({ employee, onChange }: SocialSecurityNumberInputProps) {\n const { setValue } = useFormContext<SocialSecurityNumberSchemaType>()\n const { t } = useTranslation('Employee.Profile')\n const placeholderSSN = usePlaceholderSSN(employee?.hasSsn)\n return (\n <TextInputField\n isRequired\n name=\"ssn\"\n label={t('ssnLabel')}\n errorMessage={t('validations.ssn', { ns: 'common' })}\n placeholder={placeholderSSN}\n transform={normalizeSSN}\n onChange={updatedValue => {\n setValue('enableSsn', true)\n onChange?.(updatedValue)\n }}\n />\n )\n}\n\nexport const DateOfBirthSchema = z.object({\n dateOfBirth: z.date().transform(date => date.toISOString().split('T')[0]),\n})\n\nexport function DateOfBirthInput() {\n const { t } = useTranslation('Employee.Profile')\n return (\n <DatePickerField\n name=\"dateOfBirth\"\n label={t('dobLabel')}\n isRequired\n errorMessage={t('validations.dob', { ns: 'common' })}\n />\n )\n}\n\n// All possible inputs for PersonalDetails forms\nconst PersonalDetailsTotalSchema = NameInputsSchema.merge(AdminInputsSchema)\n .merge(SocialSecurityNumberSchema)\n .merge(DateOfBirthSchema)\n .extend({\n selfOnboarding: z.boolean(),\n enableSsn: z.boolean(),\n })\n\ntype NullableDatesMapper<Source> = {\n [Property in keyof Source]: Source[Property] extends Date\n ? Source[Property] | null\n : Source[Property]\n}\n\nexport type PersonalDetailsPayload = z.infer<typeof PersonalDetailsTotalSchema>\n\n//Typescript magic to mark date fields as nullable for correct defaultvalues\nexport type PersonalDetailsInputs = NullableDatesMapper<z.input<typeof PersonalDetailsTotalSchema>>\n"],"names":["NameInputsSchema","z","nameValidation","NameInputs","t","useTranslation","jsxs","Fragment","Grid","jsx","TextInputField","AdminInputsSchema","date","AdminInputs","companyLocations","errors","useFormContext","SelectField","location","addressInline","DatePickerField","SocialSecurityNumberSchema","input","removeNonDigits","SSN_REGEX","SocialSecurityNumberInput","employee","onChange","setValue","placeholderSSN","usePlaceholderSSN","normalizeSSN","updatedValue","DateOfBirthSchema","DateOfBirthInput"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PersonalDetailsInputs.js","sources":["../../../../src/components/Employee/Profile/PersonalDetailsInputs.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { SelectField, TextInputField, Grid, DatePickerField } from '@/components/Common'\nimport { addressInline, removeNonDigits } from '@/helpers/formattedStrings'\nimport { normalizeSSN, usePlaceholderSSN } from '@/helpers/ssn'\nimport { nameValidation, SSN_REGEX } from '@/helpers/validations'\n\nexport const NameInputsSchema = z.object({\n firstName: nameValidation,\n middleInitial: z.string().optional(),\n lastName: nameValidation,\n})\n\nexport function NameInputs() {\n const { t } = useTranslation('Employee.Profile')\n\n return (\n <>\n <Grid gap={{ base: 20, small: 8 }} gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}>\n <TextInputField\n name=\"firstName\"\n isRequired\n label={t('firstName')}\n errorMessage={t('validations.firstName')}\n />\n <TextInputField name=\"middleInitial\" label={t('middleInitial')} />\n </Grid>\n <TextInputField\n name=\"lastName\"\n isRequired\n label={t('lastName')}\n errorMessage={t('validations.lastName')}\n />\n </>\n )\n}\n\nexport const AdminInputsSchema = z.object({\n workAddress: z.string().min(1),\n startDate: z.date().transform(date => date.toISOString().split('T')[0]),\n email: z.string().email(),\n})\n\ntype AdminInputsSchemaType = z.infer<typeof AdminInputsSchema>\n\ninterface AdminInputsProps {\n companyLocations: Location[]\n}\n\nexport function AdminInputs({ companyLocations }: AdminInputsProps) {\n const { t } = useTranslation('Employee.Profile')\n const {\n formState: { errors },\n } = useFormContext<AdminInputsSchemaType>()\n\n return (\n <>\n <SelectField\n name=\"workAddress\"\n options={companyLocations.map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))}\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n errorMessage={t('validations.location', { ns: 'common' })}\n isRequired\n />\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={\n errors.startDate?.type === 'custom'\n ? t('validations.startDateOutOfRange')\n : t('validations.startDate')\n }\n />\n <TextInputField\n name=\"email\"\n label={t('email')}\n description={t('emailDescription')}\n errorMessage={t('validations.email')}\n isRequired\n type=\"email\"\n />\n </>\n )\n}\n\nexport const SocialSecurityNumberSchema = z.object({\n ssn: z\n .string()\n .transform(input => removeNonDigits(input))\n .refine(input => SSN_REGEX.test(input)),\n enableSsn: z.boolean(),\n})\n\ntype SocialSecurityNumberSchemaType = z.infer<typeof SocialSecurityNumberSchema>\n\ninterface SocialSecurityNumberInputProps {\n employee?: Employee\n onChange?: (updatedValue: string) => void\n}\n\nexport function SocialSecurityNumberInput({ employee, onChange }: SocialSecurityNumberInputProps) {\n const { setValue } = useFormContext<SocialSecurityNumberSchemaType>()\n const { t } = useTranslation('Employee.Profile')\n const placeholderSSN = usePlaceholderSSN(employee?.hasSsn)\n return (\n <TextInputField\n isRequired\n name=\"ssn\"\n label={t('ssnLabel')}\n errorMessage={t('validations.ssn', { ns: 'common' })}\n placeholder={placeholderSSN}\n transform={normalizeSSN}\n onChange={updatedValue => {\n setValue('enableSsn', true)\n onChange?.(updatedValue)\n }}\n />\n )\n}\n\nexport const DateOfBirthSchema = z.object({\n dateOfBirth: z.date().transform(date => date.toISOString().split('T')[0]),\n})\n\nexport function DateOfBirthInput() {\n const { t } = useTranslation('Employee.Profile')\n return (\n <DatePickerField\n name=\"dateOfBirth\"\n label={t('dobLabel')}\n isRequired\n errorMessage={t('validations.dob', { ns: 'common' })}\n />\n )\n}\n\n// All possible inputs for PersonalDetails forms\nconst PersonalDetailsTotalSchema = NameInputsSchema.merge(AdminInputsSchema)\n .merge(SocialSecurityNumberSchema)\n .merge(DateOfBirthSchema)\n .extend({\n selfOnboarding: z.boolean(),\n enableSsn: z.boolean(),\n })\n\ntype NullableDatesMapper<Source> = {\n [Property in keyof Source]: Source[Property] extends Date\n ? Source[Property] | null\n : Source[Property]\n}\n\nexport type PersonalDetailsPayload = z.infer<typeof PersonalDetailsTotalSchema>\n\n//Typescript magic to mark date fields as nullable for correct defaultvalues\nexport type PersonalDetailsInputs = NullableDatesMapper<z.input<typeof PersonalDetailsTotalSchema>>\n"],"names":["NameInputsSchema","z","nameValidation","NameInputs","t","useTranslation","jsxs","Fragment","Grid","jsx","TextInputField","AdminInputsSchema","date","AdminInputs","companyLocations","errors","useFormContext","SelectField","location","addressInline","DatePickerField","SocialSecurityNumberSchema","input","removeNonDigits","SSN_REGEX","SocialSecurityNumberInput","employee","onChange","setValue","placeholderSSN","usePlaceholderSSN","normalizeSSN","updatedValue","DateOfBirthSchema","DateOfBirthInput"],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsx as t, jsxs as ae, Fragment as le } from "react/jsx-runtime";
|
|
2
|
-
import { zodResolver as ue } from "
|
|
2
|
+
import { zodResolver as ue } from "@hookform/resolvers/zod";
|
|
3
3
|
import { useState as ce, useRef as pe, useEffect as ye } from "react";
|
|
4
4
|
import { useForm as Ae, useWatch as fe, FormProvider as Ee } from "react-hook-form";
|
|
5
|
-
import { useLocationsGetSuspense as he } from "
|
|
6
|
-
import { useEmployeesCreateMutation as De } from "
|
|
7
|
-
import { useEmployeesGetSuspense as Oe } from "
|
|
8
|
-
import { useEmployeeAddressesGetSuspense as Se } from "
|
|
9
|
-
import { useEmployeeAddressesCreateMutation as ge } from "
|
|
10
|
-
import { useEmployeeAddressesUpdateMutation as Pe } from "
|
|
11
|
-
import { useEmployeeAddressesUpdateWorkAddressMutation as be } from "
|
|
12
|
-
import { useEmployeesUpdateMutation as Ne } from "
|
|
13
|
-
import { useEmployeeAddressesGetWorkAddressesSuspense as Ie } from "
|
|
14
|
-
import { useEmployeeAddressesCreateWorkAddressMutation as _e } from "
|
|
15
|
-
import { RFCDate as B } from "
|
|
16
|
-
import { useEmployeesUpdateOnboardingStatusMutation as we } from "
|
|
5
|
+
import { useLocationsGetSuspense as he } from "@gusto/embedded-api/react-query/locationsGet";
|
|
6
|
+
import { useEmployeesCreateMutation as De } from "@gusto/embedded-api/react-query/employeesCreate";
|
|
7
|
+
import { useEmployeesGetSuspense as Oe } from "@gusto/embedded-api/react-query/employeesGet";
|
|
8
|
+
import { useEmployeeAddressesGetSuspense as Se } from "@gusto/embedded-api/react-query/employeeAddressesGet";
|
|
9
|
+
import { useEmployeeAddressesCreateMutation as ge } from "@gusto/embedded-api/react-query/employeeAddressesCreate";
|
|
10
|
+
import { useEmployeeAddressesUpdateMutation as Pe } from "@gusto/embedded-api/react-query/employeeAddressesUpdate";
|
|
11
|
+
import { useEmployeeAddressesUpdateWorkAddressMutation as be } from "@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress";
|
|
12
|
+
import { useEmployeesUpdateMutation as Ne } from "@gusto/embedded-api/react-query/employeesUpdate";
|
|
13
|
+
import { useEmployeeAddressesGetWorkAddressesSuspense as Ie } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
|
|
14
|
+
import { useEmployeeAddressesCreateWorkAddressMutation as _e } from "@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress";
|
|
15
|
+
import { RFCDate as B } from "@gusto/embedded-api/types/rfcdate";
|
|
16
|
+
import { useEmployeesUpdateOnboardingStatusMutation as we } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
|
|
17
17
|
import { AdminPersonalDetailsSchema as R, AdminSelfOnboardingPersonalDetailsSchema as Me, AdminPersonalDetails as ke } from "./AdminPersonalDetails.js";
|
|
18
18
|
import { SelfPersonalDetailsSchema as Be, SelfPersonalDetails as Re } from "./SelfPersonalDetails.js";
|
|
19
19
|
import { Head as Le } from "./Head.js";
|
|
@@ -2,16 +2,21 @@ import "react/jsx-runtime";
|
|
|
2
2
|
import "react";
|
|
3
3
|
import "react-error-boundary";
|
|
4
4
|
import "react-i18next";
|
|
5
|
+
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
|
+
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
|
+
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
5
9
|
import "../../Base/useBase.js";
|
|
6
10
|
import "../../../shared/constants.js";
|
|
7
11
|
import "classnames";
|
|
8
12
|
import "dompurify";
|
|
9
13
|
import "../../../contexts/LocaleProvider/useLocale.js";
|
|
10
14
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
15
|
+
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
11
16
|
import { createCompoundContext as o } from "../../Base/createCompoundContext.js";
|
|
12
|
-
const [
|
|
17
|
+
const [a, v] = o("ProfileContext");
|
|
13
18
|
export {
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
v as ProfileProvider,
|
|
20
|
+
a as useProfile
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=useProfile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProfile.js","sources":["../../../../src/components/Employee/Profile/useProfile.ts"],"sourcesContent":["import type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { createCompoundContext } from '@/components/Base'\n\n//Interface for context passed down to component slots\ntype ProfileContextType = {\n companyLocations: Location[]\n workAddresses?: EmployeeWorkAddress[]\n employee?: Employee\n isSelfOnboardingIntended?: boolean\n isPending: boolean\n isAdmin: boolean\n handleCancel: () => void\n isSelfOnboardingEnabled: boolean\n}\n\nconst [useProfile, ProfileProvider] = createCompoundContext<ProfileContextType>('ProfileContext')\nexport { useProfile, ProfileProvider }\n"],"names":["useProfile","ProfileProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useProfile.js","sources":["../../../../src/components/Employee/Profile/useProfile.ts"],"sourcesContent":["import type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { createCompoundContext } from '@/components/Base'\n\n//Interface for context passed down to component slots\ntype ProfileContextType = {\n companyLocations: Location[]\n workAddresses?: EmployeeWorkAddress[]\n employee?: Employee\n isSelfOnboardingIntended?: boolean\n isPending: boolean\n isAdmin: boolean\n handleCancel: () => void\n isSelfOnboardingEnabled: boolean\n}\n\nconst [useProfile, ProfileProvider] = createCompoundContext<ProfileContextType>('ProfileContext')\nexport { useProfile, ProfileProvider }\n"],"names":["useProfile","ProfileProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AAiBA,MAAM,CAACA,GAAYC,CAAe,IAAIC,EAA0C,gBAAgB;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as o, jsxs as P, Fragment as b } from "react/jsx-runtime";
|
|
2
|
-
import { zodResolver as g } from "
|
|
2
|
+
import { zodResolver as g } from "@hookform/resolvers/zod";
|
|
3
3
|
import { useForm as N, FormProvider as R } from "react-hook-form";
|
|
4
4
|
import { useEffect as C } from "react";
|
|
5
|
-
import { useEmployeeTaxSetupGetStateTaxesSuspense as L } from "
|
|
6
|
-
import { useEmployeeTaxSetupUpdateStateTaxesMutation as M } from "
|
|
5
|
+
import { useEmployeeTaxSetupGetStateTaxesSuspense as L } from "@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes";
|
|
6
|
+
import { useEmployeeTaxSetupUpdateStateTaxesMutation as M } from "@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes";
|
|
7
7
|
import { StateFormSchema as O, StateForm as I } from "./StateForm.js";
|
|
8
8
|
import { Actions as V } from "./Actions.js";
|
|
9
9
|
import { StateTaxesProvider as X } from "./useStateTaxes.js";
|
|
@@ -2,16 +2,21 @@ import "react/jsx-runtime";
|
|
|
2
2
|
import "react";
|
|
3
3
|
import "react-error-boundary";
|
|
4
4
|
import "react-i18next";
|
|
5
|
+
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
|
+
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
|
+
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
5
9
|
import "../../Base/useBase.js";
|
|
6
10
|
import "../../../shared/constants.js";
|
|
7
11
|
import "classnames";
|
|
8
12
|
import "dompurify";
|
|
9
13
|
import "../../../contexts/LocaleProvider/useLocale.js";
|
|
10
14
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
15
|
+
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
11
16
|
import { createCompoundContext as t } from "../../Base/createCompoundContext.js";
|
|
12
|
-
const [
|
|
17
|
+
const [f, v] = t("StateTaxesContext");
|
|
13
18
|
export {
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
v as StateTaxesProvider,
|
|
20
|
+
f as useStateTaxes
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=useStateTaxes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStateTaxes.js","sources":["../../../../src/components/Employee/StateTaxes/useStateTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useStateTaxes, StateTaxesProvider] =\n createCompoundContext<StateTaxesContextType>('StateTaxesContext')\nexport { useStateTaxes, StateTaxesProvider }\n"],"names":["useStateTaxes","StateTaxesProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStateTaxes.js","sources":["../../../../src/components/Employee/StateTaxes/useStateTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype StateTaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useStateTaxes, StateTaxesProvider] =\n createCompoundContext<StateTaxesContextType>('StateTaxesContext')\nexport { useStateTaxes, StateTaxesProvider }\n"],"names":["useStateTaxes","StateTaxesProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,CAACA,GAAeC,CAAkB,IACtCC,EAA6C,mBAAmB;"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as t, jsxs as M, Fragment as I } from "react/jsx-runtime";
|
|
2
|
-
import { zodResolver as O } from "
|
|
2
|
+
import { zodResolver as O } from "@hookform/resolvers/zod";
|
|
3
3
|
import { useForm as C, FormProvider as J } from "react-hook-form";
|
|
4
4
|
import "react-i18next";
|
|
5
5
|
import { useEffect as X } from "react";
|
|
6
|
-
import { useEmployeeTaxSetupGetFederalTaxesSuspense as q } from "
|
|
7
|
-
import { useEmployeeTaxSetupUpdateFederalTaxesMutation as B } from "
|
|
8
|
-
import { useEmployeeTaxSetupGetStateTaxesSuspense as H } from "
|
|
9
|
-
import { useEmployeeTaxSetupUpdateStateTaxesMutation as V } from "
|
|
6
|
+
import { useEmployeeTaxSetupGetFederalTaxesSuspense as q } from "@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes";
|
|
7
|
+
import { useEmployeeTaxSetupUpdateFederalTaxesMutation as B } from "@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes";
|
|
8
|
+
import { useEmployeeTaxSetupGetStateTaxesSuspense as H } from "@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes";
|
|
9
|
+
import { useEmployeeTaxSetupUpdateStateTaxesMutation as V } from "@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes";
|
|
10
10
|
import { Actions as W } from "./Actions.js";
|
|
11
11
|
import { FederalFormSchema as Y, FederalForm as j } from "./FederalForm.js";
|
|
12
12
|
import { FederalHead as G } from "./FederalHead.js";
|
|
@@ -2,16 +2,21 @@ import "react/jsx-runtime";
|
|
|
2
2
|
import "react";
|
|
3
3
|
import "react-error-boundary";
|
|
4
4
|
import "react-i18next";
|
|
5
|
+
import "@gusto/embedded-api/models/errors/apierror";
|
|
6
|
+
import "@gusto/embedded-api/models/errors/sdkvalidationerror";
|
|
7
|
+
import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
|
|
8
|
+
import "@tanstack/react-query";
|
|
5
9
|
import "../../Base/useBase.js";
|
|
6
10
|
import "../../../shared/constants.js";
|
|
7
11
|
import "classnames";
|
|
8
12
|
import "dompurify";
|
|
9
13
|
import "../../../contexts/LocaleProvider/useLocale.js";
|
|
10
14
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
15
|
+
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
11
16
|
import { createCompoundContext as o } from "../../Base/createCompoundContext.js";
|
|
12
|
-
const [
|
|
17
|
+
const [v, P] = o("TaxesContext");
|
|
13
18
|
export {
|
|
14
|
-
|
|
15
|
-
|
|
19
|
+
P as TaxesProvider,
|
|
20
|
+
v as useTaxes
|
|
16
21
|
};
|
|
17
22
|
//# sourceMappingURL=useTaxes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTaxes.js","sources":["../../../../src/components/Employee/Taxes/useTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype TaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useTaxes, TaxesProvider] = createCompoundContext<TaxesContextType>('TaxesContext')\nexport { useTaxes, TaxesProvider }\n"],"names":["useTaxes","TaxesProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTaxes.js","sources":["../../../../src/components/Employee/Taxes/useTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype TaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useTaxes, TaxesProvider] = createCompoundContext<TaxesContextType>('TaxesContext')\nexport { useTaxes, TaxesProvider }\n"],"names":["useTaxes","TaxesProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;AASA,MAAM,CAACA,GAAUC,CAAa,IAAIC,EAAwC,cAAc;"}
|
|
@@ -1,82 +1,77 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { useEmployeesListSuspense as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
return /* @__PURE__ */ r(b, { ...e, children: /* @__PURE__ */ r(G, { ...e, children: e.children }) });
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import { useState as O, useEffect as S } from "react";
|
|
3
|
+
import { useEmployeesListSuspense as Y } from "@gusto/embedded-api/react-query/employeesList";
|
|
4
|
+
import { usePayrollsGetSuspense as h } from "@gusto/embedded-api/react-query/payrollsGet";
|
|
5
|
+
import { usePayrollsCalculateMutation as N } from "@gusto/embedded-api/react-query/payrollsCalculate";
|
|
6
|
+
import { PayrollProcessingRequestStatus as c } from "@gusto/embedded-api/models/components/payrollprocessingrequest";
|
|
7
|
+
import { usePreparedPayrollData as U } from "../usePreparedPayrollData.js";
|
|
8
|
+
import { PayrollEditEmployee as w } from "../PayrollEditEmployee/PayrollEditEmployee.js";
|
|
9
|
+
import { PayrollConfigurationPresentation as M } from "./PayrollConfigurationPresentation.js";
|
|
10
|
+
import { BaseComponent as q } from "../../Base/Base.js";
|
|
11
|
+
import { useBase as B } from "../../Base/useBase.js";
|
|
12
|
+
import { componentEvents as t } from "../../../shared/constants.js";
|
|
13
|
+
import { useComponentDictionary as x, useI18n as T } from "../../../i18n/I18n.js";
|
|
14
|
+
function X(o) {
|
|
15
|
+
return /* @__PURE__ */ a(q, { ...o, children: /* @__PURE__ */ a(V, { ...o, children: o.children }) });
|
|
17
16
|
}
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const { LoadingIndicator:
|
|
17
|
+
const V = ({ onEvent: o, companyId: r, payrollId: l, dictionary: p }) => {
|
|
18
|
+
x("Payroll.PayrollConfiguration", p), T("Payroll.PayrollConfiguration");
|
|
19
|
+
const { LoadingIndicator: P } = B(), { data: i } = h(
|
|
21
20
|
{
|
|
22
|
-
companyId:
|
|
21
|
+
companyId: r,
|
|
23
22
|
payrollId: l
|
|
24
23
|
},
|
|
25
24
|
{ refetchInterval: 5e3 }
|
|
26
|
-
), { data:
|
|
27
|
-
companyId:
|
|
28
|
-
}), { mutateAsync:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
request: {
|
|
41
|
-
companyId: o,
|
|
42
|
-
payrollId: l
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
L(i.payrollPrepared);
|
|
46
|
-
})();
|
|
47
|
-
}, [o, l, u]);
|
|
48
|
-
const R = () => {
|
|
49
|
-
e(s.RUN_PAYROLL_BACK);
|
|
50
|
-
}, A = async () => {
|
|
51
|
-
await S({
|
|
25
|
+
), { data: f } = Y({
|
|
26
|
+
companyId: r
|
|
27
|
+
}), { mutateAsync: y } = N(), [n, u] = O(void 0), {
|
|
28
|
+
preparedPayroll: s,
|
|
29
|
+
paySchedule: E,
|
|
30
|
+
isLoading: d,
|
|
31
|
+
handlePreparePayroll: L
|
|
32
|
+
} = U({
|
|
33
|
+
companyId: r,
|
|
34
|
+
payrollId: l
|
|
35
|
+
}), C = () => {
|
|
36
|
+
o(t.RUN_PAYROLL_BACK);
|
|
37
|
+
}, R = async () => {
|
|
38
|
+
await y({
|
|
52
39
|
request: {
|
|
53
|
-
companyId:
|
|
40
|
+
companyId: r,
|
|
54
41
|
payrollId: l
|
|
55
42
|
}
|
|
56
43
|
});
|
|
57
|
-
}, _ = (
|
|
58
|
-
|
|
59
|
-
},
|
|
60
|
-
t ===
|
|
61
|
-
},
|
|
62
|
-
return
|
|
63
|
-
|
|
64
|
-
}, [
|
|
65
|
-
|
|
44
|
+
}, _ = (e) => {
|
|
45
|
+
u(e.uuid), o(t.RUN_PAYROLL_EMPLOYEE_EDITED, { employeeId: e.uuid });
|
|
46
|
+
}, A = (e, D) => {
|
|
47
|
+
(e === t.RUN_PAYROLL_EMPLOYEE_SAVED || e === t.RUN_PAYROLL_EMPLOYEE_CANCELLED) && (e === t.RUN_PAYROLL_EMPLOYEE_SAVED && L(), u(void 0)), o(e, D);
|
|
48
|
+
}, g = i.payrollShow?.processingRequest?.status === c.Calculating, m = i.payrollShow?.processingRequest?.status === c.CalculateSuccess;
|
|
49
|
+
return S(() => {
|
|
50
|
+
m && o(t.RUN_PAYROLL_CALCULATED);
|
|
51
|
+
}, [m, o]), d || g ? /* @__PURE__ */ a(P, {}) : n ? /* @__PURE__ */ a(
|
|
52
|
+
w,
|
|
53
|
+
{
|
|
54
|
+
onEvent: A,
|
|
55
|
+
employeeId: n,
|
|
56
|
+
companyId: r,
|
|
57
|
+
payrollId: l
|
|
58
|
+
}
|
|
59
|
+
) : /* @__PURE__ */ a(
|
|
60
|
+
M,
|
|
66
61
|
{
|
|
67
|
-
onBack:
|
|
68
|
-
onCalculatePayroll:
|
|
62
|
+
onBack: C,
|
|
63
|
+
onCalculatePayroll: R,
|
|
69
64
|
onEdit: _,
|
|
70
|
-
employeeCompensations:
|
|
71
|
-
employeeDetails:
|
|
72
|
-
payPeriod:
|
|
73
|
-
paySchedule:
|
|
74
|
-
isOffCycle:
|
|
65
|
+
employeeCompensations: s?.employeeCompensations || [],
|
|
66
|
+
employeeDetails: f.showEmployees || [],
|
|
67
|
+
payPeriod: s?.payPeriod,
|
|
68
|
+
paySchedule: E,
|
|
69
|
+
isOffCycle: s?.offCycle
|
|
75
70
|
}
|
|
76
71
|
);
|
|
77
72
|
};
|
|
78
73
|
export {
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
X as PayrollConfiguration,
|
|
75
|
+
V as Root
|
|
81
76
|
};
|
|
82
77
|
//# sourceMappingURL=PayrollConfiguration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport {
|
|
1
|
+
{"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useState, useEffect } from 'react'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { usePayrollsCalculateMutation } from '@gusto/embedded-api/react-query/payrollsCalculate'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { usePreparedPayrollData } from '../usePreparedPayrollData'\nimport { PayrollEditEmployee } from '../PayrollEditEmployee/PayrollEditEmployee'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\ninterface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n companyId: string\n payrollId: string\n}\n\nexport function PayrollConfiguration(props: PayrollConfigurationProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({ onEvent, companyId, payrollId, dictionary }: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n\n const { LoadingIndicator } = useBase()\n\n const { data: payrollData } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId,\n },\n { refetchInterval: 5_000 },\n )\n\n const { data: employeeData } = useEmployeesListSuspense({\n companyId,\n })\n\n const { mutateAsync: calculatePayroll } = usePayrollsCalculateMutation()\n const [editedEmployeeId, setEditedEmployeeId] = useState<string | undefined>(undefined)\n\n const {\n preparedPayroll,\n paySchedule,\n isLoading: isPreparedPayrollDataLoading,\n handlePreparePayroll,\n } = usePreparedPayrollData({\n companyId,\n payrollId,\n })\n\n const onBack = () => {\n onEvent(componentEvents.RUN_PAYROLL_BACK)\n }\n const onCalculatePayroll = async () => {\n await calculatePayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n }\n const onEdit = (employee: Employee) => {\n setEditedEmployeeId(employee.uuid)\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_EDITED, { employeeId: employee.uuid })\n }\n\n const wrappedOnEvent: OnEventType<string, unknown> = (event, payload) => {\n if (\n event === componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED ||\n event === componentEvents.RUN_PAYROLL_EMPLOYEE_CANCELLED\n ) {\n if (event === componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED) {\n void handlePreparePayroll()\n }\n setEditedEmployeeId(undefined)\n }\n\n onEvent(event as EventType, payload)\n }\n\n const isCalculating =\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.Calculating\n const isCalculated =\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.CalculateSuccess\n\n useEffect(() => {\n if (isCalculated) {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED)\n }\n }, [isCalculated, onEvent])\n\n if (isPreparedPayrollDataLoading || isCalculating) {\n return <LoadingIndicator />\n }\n\n if (editedEmployeeId) {\n return (\n <PayrollEditEmployee\n onEvent={wrappedOnEvent}\n employeeId={editedEmployeeId}\n companyId={companyId}\n payrollId={payrollId}\n />\n )\n }\n\n return (\n <PayrollConfigurationPresentation\n onBack={onBack}\n onCalculatePayroll={onCalculatePayroll}\n onEdit={onEdit}\n employeeCompensations={preparedPayroll?.employeeCompensations || []}\n employeeDetails={employeeData.showEmployees || []}\n payPeriod={preparedPayroll?.payPeriod}\n paySchedule={paySchedule}\n isOffCycle={preparedPayroll?.offCycle}\n />\n )\n}\n"],"names":["PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","useComponentDictionary","useI18n","LoadingIndicator","useBase","payrollData","usePayrollsGetSuspense","employeeData","useEmployeesListSuspense","calculatePayroll","usePayrollsCalculateMutation","editedEmployeeId","setEditedEmployeeId","useState","preparedPayroll","paySchedule","isPreparedPayrollDataLoading","handlePreparePayroll","usePreparedPayrollData","onBack","componentEvents","onCalculatePayroll","onEdit","employee","wrappedOnEvent","event","payload","isCalculating","PayrollProcessingRequestStatus","isCalculated","useEffect","PayrollEditEmployee","PayrollConfigurationPresentation"],"mappings":";;;;;;;;;;;;;AAsBO,SAASA,EAAqBC,GAA2D;AAC9F,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEO,MAAMG,IAAO,CAAC,EAAE,SAAAC,GAAS,WAAAC,GAAW,WAAAC,GAAW,YAAAC,QAA4C;AAChG,EAAAC,EAAuB,gCAAgCD,CAAU,GACjEE,EAAQ,8BAA8B;AAEtC,QAAM,EAAE,kBAAAC,EAAA,IAAqBC,EAAA,GAEvB,EAAE,MAAMC,EAAA,IAAgBC;AAAA,IAC5B;AAAA,MACE,WAAAR;AAAA,MACA,WAAAC;AAAA,IAAA;AAAA,IAEF,EAAE,iBAAiB,IAAA;AAAA,EAAM,GAGrB,EAAE,MAAMQ,EAAA,IAAiBC,EAAyB;AAAA,IACtD,WAAAV;AAAA,EAAA,CACD,GAEK,EAAE,aAAaW,EAAA,IAAqBC,EAAA,GACpC,CAACC,GAAkBC,CAAmB,IAAIC,EAA6B,MAAS,GAEhF;AAAA,IACJ,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAWC;AAAA,IACX,sBAAAC;AAAA,EAAA,IACEC,EAAuB;AAAA,IACzB,WAAApB;AAAA,IACA,WAAAC;AAAA,EAAA,CACD,GAEKoB,IAAS,MAAM;AACnB,IAAAtB,EAAQuB,EAAgB,gBAAgB;AAAA,EAC1C,GACMC,IAAqB,YAAY;AACrC,UAAMZ,EAAiB;AAAA,MACrB,SAAS;AAAA,QACP,WAAAX;AAAA,QACA,WAAAC;AAAA,MAAA;AAAA,IACF,CACD;AAAA,EACH,GACMuB,IAAS,CAACC,MAAuB;AACrC,IAAAX,EAAoBW,EAAS,IAAI,GACjC1B,EAAQuB,EAAgB,6BAA6B,EAAE,YAAYG,EAAS,MAAM;AAAA,EACpF,GAEMC,IAA+C,CAACC,GAAOC,MAAY;AACvE,KACED,MAAUL,EAAgB,8BAC1BK,MAAUL,EAAgB,oCAEtBK,MAAUL,EAAgB,8BACvBH,EAAA,GAEPL,EAAoB,MAAS,IAG/Bf,EAAQ4B,GAAoBC,CAAO;AAAA,EACrC,GAEMC,IACJtB,EAAY,aAAa,mBAAmB,WAC5CuB,EAA+B,aAC3BC,IACJxB,EAAY,aAAa,mBAAmB,WAC5CuB,EAA+B;AAQjC,SANAE,EAAU,MAAM;AACd,IAAID,KACFhC,EAAQuB,EAAgB,sBAAsB;AAAA,EAElD,GAAG,CAACS,GAAchC,CAAO,CAAC,GAEtBmB,KAAgCW,sBAC1BxB,GAAA,EAAiB,IAGvBQ,IAEA,gBAAAjB;AAAA,IAACqC;AAAA,IAAA;AAAA,MACC,SAASP;AAAA,MACT,YAAYb;AAAA,MACZ,WAAAb;AAAA,MACA,WAAAC;AAAA,IAAA;AAAA,EAAA,IAMJ,gBAAAL;AAAA,IAACsC;AAAA,IAAA;AAAA,MACC,QAAAb;AAAA,MACA,oBAAAE;AAAA,MACA,QAAAC;AAAA,MACA,uBAAuBR,GAAiB,yBAAyB,CAAA;AAAA,MACjE,iBAAiBP,EAAa,iBAAiB,CAAA;AAAA,MAC/C,WAAWO,GAAiB;AAAA,MAC5B,aAAAC;AAAA,MACA,YAAYD,GAAiB;AAAA,IAAA;AAAA,EAAA;AAGnC;"}
|