@gusto/embedded-react-sdk 0.35.0-rc.3 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -11
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +58 -57
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +18 -18
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +17 -13
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.js +5 -5
- package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/Compensation/Compensation.js +21 -21
- package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/FederalForm.d.ts +2 -8
- package/dist/components/Employee/FederalTaxes/FederalForm.js +29 -84
- package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/FederalTaxes.js +44 -49
- package/dist/components/Employee/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.d.ts +2 -8
- package/dist/components/Employee/Taxes/FederalForm.js +29 -84
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.js +69 -74
- package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +6 -6
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +12 -12
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +2 -2
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +6 -4
- package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +8 -6
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/helpers.d.ts +1 -1
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FederalTaxes.js","sources":["../../../../src/components/Employee/FederalTaxes/FederalTaxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useEffect } from 'react'\nimport { useEmployeeTaxSetupGetFederalTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport { FederalForm } from './FederalForm'\nimport { FederalFormSchema, type FederalFormInputs, type FederalFormPayload } from './FederalForm'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { FederalTaxesProvider } from './useFederalTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport { componentEvents } from '@/shared/constants'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface FederalTaxesProps extends CommonComponentInterface<'Employee.FederalTaxes'> {\n employeeId: string\n}\n\nexport function FederalTaxes(props: FederalTaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent<'Employee.FederalTaxes'> {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst Root = (props: FederalTaxesProps) => {\n const { employeeId, className, children, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.FederalTaxes')\n useComponentDictionary('Employee.FederalTaxes', dictionary)\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const isRev2020 = employeeFederalTax.w4DataType === 'rev_2020_w4'\n\n const defaultValues
|
|
1
|
+
{"version":3,"file":"FederalTaxes.js","sources":["../../../../src/components/Employee/FederalTaxes/FederalTaxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useEffect } from 'react'\nimport { useEmployeeTaxSetupGetFederalTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport type { PutV1EmployeesEmployeeIdFederalTaxesRequestBody } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidfederaltaxes'\nimport { FederalForm } from './FederalForm'\nimport { FederalFormSchema, type FederalFormInputs, type FederalFormPayload } from './FederalForm'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { FederalTaxesProvider } from './useFederalTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport { componentEvents } from '@/shared/constants'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface FederalTaxesProps extends CommonComponentInterface<'Employee.FederalTaxes'> {\n employeeId: string\n}\n\nexport function FederalTaxes(props: FederalTaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent<'Employee.FederalTaxes'> {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst Root = (props: FederalTaxesProps) => {\n const { employeeId, className, children, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.FederalTaxes')\n useComponentDictionary('Employee.FederalTaxes', dictionary)\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const isRev2020 = employeeFederalTax.w4DataType === 'rev_2020_w4'\n\n const defaultValues = isRev2020\n ? {\n filingStatus: employeeFederalTax.filingStatus ?? '',\n twoJobs: employeeFederalTax.twoJobs ? 'true' : 'false',\n deductions: employeeFederalTax.deductions ? Number(employeeFederalTax.deductions) : 0,\n dependentsAmount: employeeFederalTax.dependentsAmount\n ? Number(employeeFederalTax.dependentsAmount)\n : 0,\n otherIncome: employeeFederalTax.otherIncome ? Number(employeeFederalTax.otherIncome) : 0,\n extraWithholding: employeeFederalTax.extraWithholding\n ? Number(employeeFederalTax.extraWithholding)\n : 0,\n }\n : {\n filingStatus: '',\n twoJobs: 'false',\n deductions: 0,\n dependentsAmount: 0,\n otherIncome: 0,\n extraWithholding: 0,\n }\n\n const formMethods = useForm<FederalFormInputs, unknown, FederalFormPayload>({\n resolver: zodResolver(FederalFormSchema),\n defaultValues,\n })\n const { handleSubmit, setError: _setError } = formMethods\n\n useEffect(() => {\n if (fieldErrors && fieldErrors.length > 0) {\n fieldErrors.forEach(msgObject => {\n const key = normalizeErrorKeyForForm(msgObject.errorKey)\n _setError(key as keyof FederalFormInputs, { type: 'custom', message: msgObject.message })\n })\n }\n }, [fieldErrors, _setError])\n\n const onSubmit: SubmitHandler<FederalFormPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n const requestBody: PutV1EmployeesEmployeeIdFederalTaxesRequestBody = {\n filingStatus:\n payload.filingStatus as PutV1EmployeesEmployeeIdFederalTaxesRequestBody['filingStatus'],\n twoJobs: payload.twoJobs === 'true',\n dependentsAmount: Number(payload.dependentsAmount),\n otherIncome: Number(payload.otherIncome),\n deductions: Number(payload.deductions),\n extraWithholding: Number(payload.extraWithholding),\n w4DataType: 'rev_2020_w4',\n version: employeeFederalTax.version,\n }\n\n const federalTaxesResponse = await updateFederalTaxes({\n request: {\n employeeUuid: employeeId,\n requestBody,\n },\n })\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_UPDATED, federalTaxesResponse)\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_DONE)\n })\n }\n\n return (\n <section className={className}>\n <FederalTaxesProvider\n value={{\n isPending,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <FederalForm />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </FederalTaxesProvider>\n </section>\n )\n}\n"],"names":["FederalTaxes","props","jsx","BaseComponent","Root","employeeId","className","children","dictionary","onEvent","fieldErrors","baseSubmitHandler","useBase","useI18n","useComponentDictionary","fedData","useEmployeeTaxSetupGetFederalTaxesSuspense","employeeFederalTax","updateFederalTaxes","isPending","useEmployeeTaxSetupUpdateFederalTaxesMutation","defaultValues","formMethods","useForm","zodResolver","FederalFormSchema","handleSubmit","_setError","useEffect","msgObject","key","normalizeErrorKeyForForm","FederalTaxesProvider","FormProvider","Form","data","payload","requestBody","federalTaxesResponse","componentEvents","jsxs","Fragment","Head","FederalForm","Actions"],"mappings":";;;;;;;;;;;;;;;;AA2BO,SAASA,GAAaC,GAAmD;AAC9E,SACE,gBAAAC,EAACC,KAAwC,GAAGF,GAC1C,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,MAAMG,IAAO,CAACH,MAA6B;AACzC,QAAM,EAAE,YAAAI,GAAY,WAAAC,GAAW,UAAAC,GAAU,YAAAC,MAAeP,GAClD,EAAE,SAAAQ,GAAS,aAAAC,GAAa,mBAAAC,EAAA,IAAsBC,EAAA;AACpD,EAAAC,EAAQ,uBAAuB,GAC/BC,EAAuB,yBAAyBN,CAAU;AAE1D,QAAM,EAAE,MAAMO,EAAA,IAAYC,EAA2C;AAAA,IACnE,cAAcX;AAAA,EAAA,CACf,GACKY,IAAqBF,EAAQ,oBAE7B,EAAE,aAAaG,GAAoB,WAAAC,EAAA,IACvCC,EAAA,GAIIC,IAFYJ,EAAmB,eAAe,gBAGhD;AAAA,IACE,cAAcA,EAAmB,gBAAgB;AAAA,IACjD,SAASA,EAAmB,UAAU,SAAS;AAAA,IAC/C,YAAYA,EAAmB,aAAa,OAAOA,EAAmB,UAAU,IAAI;AAAA,IACpF,kBAAkBA,EAAmB,mBACjC,OAAOA,EAAmB,gBAAgB,IAC1C;AAAA,IACJ,aAAaA,EAAmB,cAAc,OAAOA,EAAmB,WAAW,IAAI;AAAA,IACvF,kBAAkBA,EAAmB,mBACjC,OAAOA,EAAmB,gBAAgB,IAC1C;AAAA,EAAA,IAEN;AAAA,IACE,cAAc;AAAA,IACd,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,kBAAkB;AAAA,IAClB,aAAa;AAAA,IACb,kBAAkB;AAAA,EAAA,GAGlBK,IAAcC,EAAwD;AAAA,IAC1E,UAAUC,EAAYC,CAAiB;AAAA,IACvC,eAAAJ;AAAA,EAAA,CACD,GACK,EAAE,cAAAK,GAAc,UAAUC,EAAA,IAAcL;AAE9C,SAAAM,EAAU,MAAM;AACd,IAAIlB,KAAeA,EAAY,SAAS,KACtCA,EAAY,QAAQ,CAAAmB,MAAa;AAC/B,YAAMC,IAAMC,EAAyBF,EAAU,QAAQ;AACvD,MAAAF,EAAUG,GAAgC,EAAE,MAAM,UAAU,SAASD,EAAU,SAAS;AAAA,IAC1F,CAAC;AAAA,EAEL,GAAG,CAACnB,GAAaiB,CAAS,CAAC,GA4BzB,gBAAAzB,EAAC,aAAQ,WAAAI,GACP,UAAA,gBAAAJ;AAAA,IAAC8B;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,WAAAb;AAAA,MAAA;AAAA,MAGF,UAAA,gBAAAjB,EAAC+B,GAAA,EAAc,GAAGX,GAChB,UAAA,gBAAApB,EAACgC,GAAA,EAAK,UAAUR,EAjC4B,OAAMS,MAAQ;AAChE,cAAMxB,EAAkBwB,GAAM,OAAMC,MAAW;AAC7C,gBAAMC,IAA+D;AAAA,YACnE,cACED,EAAQ;AAAA,YACV,SAASA,EAAQ,YAAY;AAAA,YAC7B,kBAAkB,OAAOA,EAAQ,gBAAgB;AAAA,YACjD,aAAa,OAAOA,EAAQ,WAAW;AAAA,YACvC,YAAY,OAAOA,EAAQ,UAAU;AAAA,YACrC,kBAAkB,OAAOA,EAAQ,gBAAgB;AAAA,YACjD,YAAY;AAAA,YACZ,SAASnB,EAAmB;AAAA,UAAA,GAGxBqB,IAAuB,MAAMpB,EAAmB;AAAA,YACpD,SAAS;AAAA,cACP,cAAcb;AAAA,cACd,aAAAgC;AAAA,YAAA;AAAA,UACF,CACD;AACD,UAAA5B,EAAQ8B,EAAgB,gCAAgCD,CAAoB,GAC5E7B,EAAQ8B,EAAgB,2BAA2B;AAAA,QACrD,CAAC;AAAA,MACH,CAU6C,GAClC,UAAAhC,KAGC,gBAAAiC,EAAAC,GAAA,EACE,UAAA;AAAA,QAAA,gBAAAvC,EAACwC,GAAA,EAAK;AAAA,0BACLC,GAAA,EAAY;AAAA,0BACZC,GAAA,CAAA,CAAQ;AAAA,MAAA,EAAA,CACX,GAEJ,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
export declare const FederalFormSchema: z.
|
|
3
|
-
w4DataType: z.ZodLiteral<"rev_2020_w4">;
|
|
2
|
+
export declare const FederalFormSchema: z.ZodObject<{
|
|
4
3
|
filingStatus: z.ZodString;
|
|
5
4
|
twoJobs: z.ZodString;
|
|
6
5
|
dependentsAmount: z.ZodPipe<z.ZodNumber, z.ZodTransform<string, number>>;
|
|
7
6
|
otherIncome: z.ZodPipe<z.ZodNumber, z.ZodTransform<string, number>>;
|
|
8
7
|
deductions: z.ZodPipe<z.ZodNumber, z.ZodTransform<string, number>>;
|
|
9
8
|
extraWithholding: z.ZodPipe<z.ZodNumber, z.ZodTransform<string, number>>;
|
|
10
|
-
}, z.core.$strip
|
|
11
|
-
w4DataType: z.ZodLiteral<"pre_2020_w4">;
|
|
12
|
-
filingStatus: z.ZodString;
|
|
13
|
-
federalWithholdingAllowance: z.ZodNumber;
|
|
14
|
-
additionalWithholding: z.ZodString;
|
|
15
|
-
}, z.core.$strip>], "w4DataType">;
|
|
9
|
+
}, z.core.$strip>;
|
|
16
10
|
export type FederalFormInputs = z.input<typeof FederalFormSchema>;
|
|
17
11
|
export type FederalFormPayload = z.output<typeof FederalFormSchema>;
|
|
18
12
|
export declare function FederalForm(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,66 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { useFormContext as m } from "react-hook-form";
|
|
1
|
+
import { jsxs as l, Fragment as a, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as s, Trans as m } from "react-i18next";
|
|
4
3
|
import { z as t } from "zod";
|
|
5
4
|
import "../../../shared/constants.js";
|
|
6
5
|
import "classnames";
|
|
7
|
-
import { RadioGroupField as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { useComponentContext as c } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
import { RadioGroupField as u } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
|
|
7
|
+
import { NumberInputField as i } from "../../Common/Fields/NumberInputField/NumberInputField.js";
|
|
8
|
+
import { useComponentContext as d } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
9
|
import "react";
|
|
12
|
-
import { SelectField as
|
|
13
|
-
const
|
|
14
|
-
w4DataType: t.literal("rev_2020_w4"),
|
|
10
|
+
import { SelectField as f } from "../../Common/Fields/SelectField/SelectField.js";
|
|
11
|
+
const c = t.object({
|
|
15
12
|
filingStatus: t.string().min(1),
|
|
16
13
|
twoJobs: t.string().min(1),
|
|
17
14
|
dependentsAmount: t.number().transform(String),
|
|
18
15
|
otherIncome: t.number().transform(String),
|
|
19
16
|
deductions: t.number().transform(String),
|
|
20
17
|
extraWithholding: t.number().transform(String)
|
|
21
|
-
}),
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
federalWithholdingAllowance: t.number().int(),
|
|
25
|
-
additionalWithholding: t.string()
|
|
26
|
-
}), H = t.discriminatedUnion("w4DataType", [p, h]);
|
|
27
|
-
function A() {
|
|
28
|
-
const { watch: e } = m();
|
|
29
|
-
return e("w4DataType") === "rev_2020_w4" ? /* @__PURE__ */ i(b, {}) : /* @__PURE__ */ i(S, {});
|
|
30
|
-
}
|
|
31
|
-
function b() {
|
|
32
|
-
const { t: e } = o("Employee.Taxes"), r = c(), d = [
|
|
18
|
+
}), v = c;
|
|
19
|
+
function M() {
|
|
20
|
+
const { t: e } = s("Employee.Taxes"), o = d(), n = [
|
|
33
21
|
{ value: "Single", label: e("filingStatusSingle") },
|
|
34
22
|
{ value: "Married", label: e("filingStatusMarried") },
|
|
35
23
|
{ value: "Head of Household", label: e("filingStatusHeadOfHousehold") },
|
|
36
24
|
{ value: "Exempt from withholding", label: e("filingStatusExemptFromWithholding") }
|
|
37
25
|
];
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
/* @__PURE__ */
|
|
40
|
-
|
|
26
|
+
return /* @__PURE__ */ l(a, { children: [
|
|
27
|
+
/* @__PURE__ */ r(
|
|
28
|
+
f,
|
|
41
29
|
{
|
|
42
30
|
name: "filingStatus",
|
|
43
31
|
label: e("federalFilingStatus1c"),
|
|
44
32
|
placeholder: e("federalFilingStatusPlaceholder"),
|
|
45
|
-
options:
|
|
33
|
+
options: n,
|
|
46
34
|
isRequired: !0,
|
|
47
35
|
errorMessage: e("validations.federalFilingStatus")
|
|
48
36
|
}
|
|
49
37
|
),
|
|
50
|
-
/* @__PURE__ */
|
|
51
|
-
|
|
38
|
+
/* @__PURE__ */ r(
|
|
39
|
+
u,
|
|
52
40
|
{
|
|
53
41
|
name: "twoJobs",
|
|
54
42
|
isRequired: !0,
|
|
55
43
|
label: e("multipleJobs2c"),
|
|
56
44
|
errorMessage: e("validations.federalTwoJobs"),
|
|
57
|
-
description: /* @__PURE__ */
|
|
58
|
-
|
|
45
|
+
description: /* @__PURE__ */ r(o.Text, { children: /* @__PURE__ */ r(
|
|
46
|
+
m,
|
|
59
47
|
{
|
|
60
48
|
i18nKey: "includesSpouseExplanation",
|
|
61
49
|
t: e,
|
|
62
50
|
components: {
|
|
63
|
-
IrsLink: /* @__PURE__ */
|
|
51
|
+
IrsLink: /* @__PURE__ */ r(o.Link, {})
|
|
64
52
|
}
|
|
65
53
|
}
|
|
66
54
|
) }),
|
|
@@ -70,8 +58,8 @@ function b() {
|
|
|
70
58
|
]
|
|
71
59
|
}
|
|
72
60
|
),
|
|
73
|
-
/* @__PURE__ */
|
|
74
|
-
|
|
61
|
+
/* @__PURE__ */ r(
|
|
62
|
+
i,
|
|
75
63
|
{
|
|
76
64
|
name: "dependentsAmount",
|
|
77
65
|
isRequired: !0,
|
|
@@ -81,8 +69,8 @@ function b() {
|
|
|
81
69
|
errorMessage: e("fieldIsRequired")
|
|
82
70
|
}
|
|
83
71
|
),
|
|
84
|
-
/* @__PURE__ */
|
|
85
|
-
|
|
72
|
+
/* @__PURE__ */ r(
|
|
73
|
+
i,
|
|
86
74
|
{
|
|
87
75
|
name: "otherIncome",
|
|
88
76
|
isRequired: !0,
|
|
@@ -92,8 +80,8 @@ function b() {
|
|
|
92
80
|
errorMessage: e("fieldIsRequired")
|
|
93
81
|
}
|
|
94
82
|
),
|
|
95
|
-
/* @__PURE__ */
|
|
96
|
-
|
|
83
|
+
/* @__PURE__ */ r(
|
|
84
|
+
i,
|
|
97
85
|
{
|
|
98
86
|
name: "deductions",
|
|
99
87
|
isRequired: !0,
|
|
@@ -103,8 +91,8 @@ function b() {
|
|
|
103
91
|
errorMessage: e("fieldIsRequired")
|
|
104
92
|
}
|
|
105
93
|
),
|
|
106
|
-
/* @__PURE__ */
|
|
107
|
-
|
|
94
|
+
/* @__PURE__ */ r(
|
|
95
|
+
i,
|
|
108
96
|
{
|
|
109
97
|
name: "extraWithholding",
|
|
110
98
|
isRequired: !0,
|
|
@@ -116,51 +104,8 @@ function b() {
|
|
|
116
104
|
)
|
|
117
105
|
] });
|
|
118
106
|
}
|
|
119
|
-
function S() {
|
|
120
|
-
const { t: e } = o("Employee.Taxes"), r = [
|
|
121
|
-
{ value: "Single", label: e("filingStatusSingle") },
|
|
122
|
-
{ value: "Married", label: e("filingStatusMarried") },
|
|
123
|
-
{ value: "Head of Household", label: e("filingStatusHeadOfHousehold") },
|
|
124
|
-
{ value: "Exempt from withholding", label: e("filingStatusExemptFromWithholding") },
|
|
125
|
-
{ value: "Married, but withhold as Single", label: e("filingStatusMarriedWithholdAsSingle") }
|
|
126
|
-
];
|
|
127
|
-
return /* @__PURE__ */ n(a, { children: [
|
|
128
|
-
/* @__PURE__ */ i(
|
|
129
|
-
l,
|
|
130
|
-
{
|
|
131
|
-
name: "federalWithholdingAllowance",
|
|
132
|
-
isRequired: !0,
|
|
133
|
-
label: e("federalWithholdingAllowance"),
|
|
134
|
-
min: 0,
|
|
135
|
-
maximumFractionDigits: 0,
|
|
136
|
-
errorMessage: e("fieldIsRequired")
|
|
137
|
-
}
|
|
138
|
-
),
|
|
139
|
-
/* @__PURE__ */ i(
|
|
140
|
-
s,
|
|
141
|
-
{
|
|
142
|
-
name: "filingStatus",
|
|
143
|
-
label: e("filingStatus"),
|
|
144
|
-
placeholder: e("federalFilingStatusPlaceholder"),
|
|
145
|
-
description: e("selectWithholdingDescription"),
|
|
146
|
-
options: r,
|
|
147
|
-
isRequired: !0,
|
|
148
|
-
errorMessage: e("validations.federalFilingStatus")
|
|
149
|
-
}
|
|
150
|
-
),
|
|
151
|
-
/* @__PURE__ */ i(
|
|
152
|
-
g,
|
|
153
|
-
{
|
|
154
|
-
name: "additionalWithholding",
|
|
155
|
-
label: e("additionalWithholding"),
|
|
156
|
-
type: "number",
|
|
157
|
-
errorMessage: e("fieldIsRequired")
|
|
158
|
-
}
|
|
159
|
-
)
|
|
160
|
-
] });
|
|
161
|
-
}
|
|
162
107
|
export {
|
|
163
|
-
|
|
164
|
-
|
|
108
|
+
M as FederalForm,
|
|
109
|
+
v as FederalFormSchema
|
|
165
110
|
};
|
|
166
111
|
//# sourceMappingURL=FederalForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport {
|
|
1
|
+
{"version":3,"file":"FederalForm.js","sources":["../../../../src/components/Employee/Taxes/FederalForm.tsx"],"sourcesContent":["import { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { NumberInputField, RadioGroupField, SelectField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nconst Rev2020Schema = z.object({\n filingStatus: z.string().min(1),\n twoJobs: z.string().min(1),\n dependentsAmount: z.number().transform(String),\n otherIncome: z.number().transform(String),\n deductions: z.number().transform(String),\n extraWithholding: z.number().transform(String),\n})\n\nexport const FederalFormSchema = Rev2020Schema\n\nexport type FederalFormInputs = z.input<typeof FederalFormSchema>\nexport type FederalFormPayload = z.output<typeof FederalFormSchema>\n\nexport function FederalForm() {\n const { t } = useTranslation('Employee.Taxes')\n const Components = useComponentContext()\n\n const filingStatusOptions = [\n { value: 'Single', label: t('filingStatusSingle') },\n { value: 'Married', label: t('filingStatusMarried') },\n { value: 'Head of Household', label: t('filingStatusHeadOfHousehold') },\n { value: 'Exempt from withholding', label: t('filingStatusExemptFromWithholding') },\n ]\n\n return (\n <>\n <SelectField\n name=\"filingStatus\"\n label={t('federalFilingStatus1c')}\n placeholder={t('federalFilingStatusPlaceholder')}\n options={filingStatusOptions}\n isRequired\n errorMessage={t('validations.federalFilingStatus')}\n />\n <RadioGroupField\n name=\"twoJobs\"\n isRequired\n label={t('multipleJobs2c')}\n errorMessage={t('validations.federalTwoJobs')}\n description={\n <Components.Text>\n <Trans\n i18nKey={'includesSpouseExplanation'}\n t={t}\n components={{\n IrsLink: <Components.Link />,\n }}\n />\n </Components.Text>\n }\n options={[\n { value: 'true', label: t('twoJobYesLabel') },\n { value: 'false', label: t('twoJobNoLabel') },\n ]}\n />\n <NumberInputField\n name=\"dependentsAmount\"\n isRequired\n label={t('dependentsTotalIfApplicable')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"otherIncome\"\n isRequired\n label={t('otherIncome')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"deductions\"\n isRequired\n label={t('deductions')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n <NumberInputField\n name=\"extraWithholding\"\n isRequired\n label={t('extraWithholding')}\n format=\"currency\"\n min={0}\n errorMessage={t('fieldIsRequired')}\n />\n </>\n )\n}\n"],"names":["Rev2020Schema","z","FederalFormSchema","FederalForm","t","useTranslation","Components","useComponentContext","filingStatusOptions","jsxs","Fragment","jsx","SelectField","RadioGroupField","Trans","NumberInputField"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as t, jsxs as W, Fragment as C } from "react/jsx-runtime";
|
|
2
2
|
import { zodResolver as J } from "@hookform/resolvers/zod";
|
|
3
3
|
import { useForm as V, FormProvider as X } from "react-hook-form";
|
|
4
4
|
import "react-i18next";
|
|
@@ -15,114 +15,109 @@ import { TaxesProvider as ee } from "./useTaxes.js";
|
|
|
15
15
|
import { BaseComponent as te } from "../../Base/Base.js";
|
|
16
16
|
import { useBase as oe } from "../../Base/useBase.js";
|
|
17
17
|
import "../../Flow/useFlow.js";
|
|
18
|
-
import { useI18n as
|
|
19
|
-
import { componentEvents as
|
|
20
|
-
import { snakeCaseToCamelCase as
|
|
21
|
-
import { Form as
|
|
18
|
+
import { useI18n as se, useComponentDictionary as re } from "../../../i18n/I18n.js";
|
|
19
|
+
import { componentEvents as h } from "../../../shared/constants.js";
|
|
20
|
+
import { snakeCaseToCamelCase as g, normalizeErrorKeyForForm as ne } from "../../../helpers/formattedStrings.js";
|
|
21
|
+
import { Form as ae } from "../../Common/Form/Form.js";
|
|
22
22
|
const ie = "2010-01-01";
|
|
23
23
|
function Ue(i) {
|
|
24
|
-
return /* @__PURE__ */
|
|
24
|
+
return /* @__PURE__ */ t(te, { ...i, children: /* @__PURE__ */ t(me, { ...i, children: i.children }) });
|
|
25
25
|
}
|
|
26
|
-
const
|
|
27
|
-
const { employeeId:
|
|
28
|
-
|
|
29
|
-
const { data:
|
|
30
|
-
employeeUuid:
|
|
31
|
-
}), e =
|
|
32
|
-
employeeUuid:
|
|
33
|
-
}), f = U.employeeStateTaxesList, { mutateAsync:
|
|
34
|
-
const
|
|
35
|
-
return d === "fileNewHireReport" ? n[d] = typeof
|
|
36
|
-
}, {})),
|
|
37
|
-
w4DataType: "rev_2020_w4",
|
|
26
|
+
const me = (i) => {
|
|
27
|
+
const { employeeId: u, className: v, children: E, isAdmin: x = !1, dictionary: w } = i, { onEvent: c, fieldErrors: l, baseSubmitHandler: _ } = oe();
|
|
28
|
+
se("Employee.Taxes"), re("Employee.Taxes", w);
|
|
29
|
+
const { data: D } = B({
|
|
30
|
+
employeeUuid: u
|
|
31
|
+
}), e = D.employeeFederalTax, { mutateAsync: N, isPending: P } = H(), { data: U } = Y({
|
|
32
|
+
employeeUuid: u
|
|
33
|
+
}), f = U.employeeStateTaxesList, { mutateAsync: I, isPending: R } = j(), k = e.w4DataType === "rev_2020_w4", S = f.reduce((s, r) => (r.state && (s[r.state] = r.questions?.reduce((n, o) => {
|
|
34
|
+
const m = o.answers[0]?.value, d = g(o.key);
|
|
35
|
+
return d === "fileNewHireReport" ? n[d] = typeof m > "u" ? !0 : m : n[d] = m, n;
|
|
36
|
+
}, {})), s), {}), L = k ? {
|
|
38
37
|
filingStatus: e.filingStatus ?? "",
|
|
39
38
|
twoJobs: e.twoJobs ? "true" : "false",
|
|
40
39
|
deductions: e.deductions ? Number(e.deductions) : 0,
|
|
41
40
|
dependentsAmount: e.dependentsAmount ? Number(e.dependentsAmount) : 0,
|
|
42
41
|
otherIncome: e.otherIncome ? Number(e.otherIncome) : 0,
|
|
43
42
|
extraWithholding: e.extraWithholding ? Number(e.extraWithholding) : 0,
|
|
44
|
-
states:
|
|
43
|
+
states: S
|
|
45
44
|
} : {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
filingStatus: "",
|
|
46
|
+
twoJobs: "false",
|
|
47
|
+
deductions: 0,
|
|
48
|
+
dependentsAmount: 0,
|
|
49
|
+
otherIncome: 0,
|
|
50
|
+
extraWithholding: 0,
|
|
51
|
+
states: S
|
|
52
|
+
}, F = V({
|
|
52
53
|
resolver: J(G.and(Z)),
|
|
53
|
-
defaultValues:
|
|
54
|
-
}), { handleSubmit:
|
|
54
|
+
defaultValues: L
|
|
55
|
+
}), { handleSubmit: M, setError: A } = F;
|
|
55
56
|
return q(() => {
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
|
|
57
|
+
l && l.length > 0 && l.forEach((s) => {
|
|
58
|
+
const r = ne(s.errorKey);
|
|
59
|
+
A(r, { type: "custom", message: s.message });
|
|
59
60
|
});
|
|
60
|
-
}, [
|
|
61
|
+
}, [l, A]), /* @__PURE__ */ t("section", { className: v, children: /* @__PURE__ */ t(
|
|
61
62
|
ee,
|
|
62
63
|
{
|
|
63
64
|
value: {
|
|
64
65
|
employeeStateTaxes: f,
|
|
65
|
-
isAdmin:
|
|
66
|
-
isPending:
|
|
66
|
+
isAdmin: x,
|
|
67
|
+
isPending: P || R
|
|
67
68
|
},
|
|
68
|
-
children: /* @__PURE__ */
|
|
69
|
-
await _(
|
|
70
|
-
const { states: n, ...
|
|
71
|
-
filingStatus:
|
|
72
|
-
twoJobs:
|
|
73
|
-
dependentsAmount:
|
|
74
|
-
otherIncome:
|
|
75
|
-
deductions:
|
|
76
|
-
extraWithholding:
|
|
77
|
-
w4DataType:
|
|
78
|
-
version: e.version
|
|
79
|
-
} : {
|
|
80
|
-
filingStatus: t.filingStatus,
|
|
81
|
-
federalWithholdingAllowance: t.federalWithholdingAllowance,
|
|
82
|
-
additionalWithholding: t.additionalWithholding,
|
|
83
|
-
w4DataType: t.w4DataType,
|
|
69
|
+
children: /* @__PURE__ */ t(X, { ...F, children: /* @__PURE__ */ t(ae, { onSubmit: M(async (s) => {
|
|
70
|
+
await _(s, async (r) => {
|
|
71
|
+
const { states: n, ...o } = r, m = {
|
|
72
|
+
filingStatus: o.filingStatus,
|
|
73
|
+
twoJobs: o.twoJobs === "true",
|
|
74
|
+
dependentsAmount: Number(o.dependentsAmount),
|
|
75
|
+
otherIncome: Number(o.otherIncome),
|
|
76
|
+
deductions: Number(o.deductions),
|
|
77
|
+
extraWithholding: Number(o.extraWithholding),
|
|
78
|
+
w4DataType: "rev_2020_w4",
|
|
84
79
|
version: e.version
|
|
85
|
-
}, d = await
|
|
80
|
+
}, d = await N({
|
|
86
81
|
request: {
|
|
87
|
-
employeeUuid:
|
|
88
|
-
requestBody:
|
|
82
|
+
employeeUuid: u,
|
|
83
|
+
requestBody: m
|
|
89
84
|
}
|
|
90
85
|
});
|
|
91
|
-
if (c(
|
|
92
|
-
const
|
|
93
|
-
for (const
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
state:
|
|
97
|
-
questions:
|
|
98
|
-
if (
|
|
86
|
+
if (c(h.EMPLOYEE_FEDERAL_TAXES_UPDATED, d), n && Object.keys(n).length > 0) {
|
|
87
|
+
const b = [];
|
|
88
|
+
for (const y of f) {
|
|
89
|
+
const T = y.state;
|
|
90
|
+
T && y.questions !== void 0 && b.push({
|
|
91
|
+
state: T,
|
|
92
|
+
questions: y.questions.map((a) => {
|
|
93
|
+
if (a.isQuestionForAdminOnly && !x)
|
|
99
94
|
return null;
|
|
100
|
-
const p = n[
|
|
95
|
+
const p = n[T]?.[g(a.key)];
|
|
101
96
|
return {
|
|
102
|
-
key:
|
|
97
|
+
key: a.key,
|
|
103
98
|
answers: [
|
|
104
99
|
{
|
|
105
|
-
validFrom:
|
|
106
|
-
validUpTo:
|
|
100
|
+
validFrom: a.answers[0]?.validFrom ?? ie,
|
|
101
|
+
validUpTo: a.answers[0]?.validUpTo ?? null,
|
|
107
102
|
value: p == null || typeof p == "number" && isNaN(p) ? "" : p
|
|
108
103
|
}
|
|
109
104
|
]
|
|
110
105
|
};
|
|
111
|
-
}).filter((
|
|
106
|
+
}).filter((a) => a !== null)
|
|
112
107
|
});
|
|
113
108
|
}
|
|
114
|
-
const
|
|
115
|
-
request: { employeeUuid:
|
|
109
|
+
const O = await I({
|
|
110
|
+
request: { employeeUuid: u, employeeStateTaxesRequest: { states: b } }
|
|
116
111
|
});
|
|
117
|
-
c(
|
|
112
|
+
c(h.EMPLOYEE_STATE_TAXES_UPDATED, O);
|
|
118
113
|
}
|
|
119
|
-
c(
|
|
114
|
+
c(h.EMPLOYEE_TAXES_DONE);
|
|
120
115
|
});
|
|
121
|
-
}), children:
|
|
122
|
-
/* @__PURE__ */
|
|
123
|
-
/* @__PURE__ */
|
|
124
|
-
/* @__PURE__ */
|
|
125
|
-
/* @__PURE__ */
|
|
116
|
+
}), children: E || /* @__PURE__ */ W(C, { children: [
|
|
117
|
+
/* @__PURE__ */ t(Q, {}),
|
|
118
|
+
/* @__PURE__ */ t(K, {}),
|
|
119
|
+
/* @__PURE__ */ t($, {}),
|
|
120
|
+
/* @__PURE__ */ t(z, {})
|
|
126
121
|
] }) }) })
|
|
127
122
|
}
|
|
128
123
|
) });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Taxes.js","sources":["../../../../src/components/Employee/Taxes/Taxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useEffect } from 'react'\nimport { useEmployeeTaxSetupGetFederalTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport { useEmployeeTaxSetupGetStateTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlowComponents'\nimport { Actions } from './Actions'\nimport {\n FederalForm,\n FederalFormSchema,\n type FederalFormInputs,\n type FederalFormPayload,\n} from './FederalForm'\nimport { FederalHead } from './FederalHead'\nimport { StateForm, StateFormSchema, type StateFormPayload } from './StateForm'\nimport { TaxesProvider } from './useTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { snakeCaseToCamelCase, normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\ninterface TaxesProps extends CommonComponentInterface<'Employee.Taxes'> {\n employeeId: string\n isAdmin?: boolean\n}\n\n/**\n * @deprecated The Taxes component has been deprecated and will be removed in a future release.\n * The component has been split into separate components for state and federal. Use Employee.FederalTaxes\n * and Employee.StateTaxes components instead.\n */\nexport function Taxes(props: TaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = (props: TaxesProps) => {\n const { employeeId, className, children, isAdmin = false, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.Taxes')\n useComponentDictionary('Employee.Taxes', dictionary)\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending: isPendingFederalTaxes } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const { data: stateData } = useEmployeeTaxSetupGetStateTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeStateTaxes = stateData.employeeStateTaxesList!\n const { mutateAsync: updateStateTaxes, isPending: isPendingStateTaxes } =\n useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const isRev2020 = employeeFederalTax.w4DataType === 'rev_2020_w4'\n\n const statesDefaultValues = employeeStateTaxes.reduce((acc: Record<string, unknown>, state) => {\n if (state.state) {\n acc[state.state] = state.questions?.reduce((acc: Record<string, unknown>, question) => {\n const value = question.answers[0]?.value\n const key = snakeCaseToCamelCase(question.key)\n if (key === 'fileNewHireReport') {\n acc[key] = typeof value === 'undefined' ? true : value\n } else {\n acc[key] = value\n }\n return acc\n }, {})\n }\n return acc\n }, {})\n\n const defaultValues: FederalFormInputs & { states: typeof statesDefaultValues } = isRev2020\n ? {\n w4DataType: 'rev_2020_w4',\n filingStatus: employeeFederalTax.filingStatus ?? '',\n twoJobs: employeeFederalTax.twoJobs ? 'true' : 'false',\n deductions: employeeFederalTax.deductions ? Number(employeeFederalTax.deductions) : 0,\n dependentsAmount: employeeFederalTax.dependentsAmount\n ? Number(employeeFederalTax.dependentsAmount)\n : 0,\n otherIncome: employeeFederalTax.otherIncome ? Number(employeeFederalTax.otherIncome) : 0,\n extraWithholding: employeeFederalTax.extraWithholding\n ? Number(employeeFederalTax.extraWithholding)\n : 0,\n states: statesDefaultValues,\n }\n : {\n w4DataType: 'pre_2020_w4',\n filingStatus: employeeFederalTax.filingStatus ?? '',\n federalWithholdingAllowance: employeeFederalTax.federalWithholdingAllowance ?? 0,\n additionalWithholding: employeeFederalTax.additionalWithholding,\n states: statesDefaultValues,\n }\n\n const formMethods = useForm<FederalFormInputs, unknown, FederalFormPayload & StateFormPayload>({\n resolver: zodResolver(FederalFormSchema.and(StateFormSchema)),\n defaultValues,\n })\n const { handleSubmit, setError: _setError } = formMethods\n\n useEffect(() => {\n if (fieldErrors && fieldErrors.length > 0) {\n fieldErrors.forEach(msgObject => {\n const key = normalizeErrorKeyForForm(msgObject.errorKey)\n _setError(key as keyof FederalFormInputs, { type: 'custom', message: msgObject.message })\n })\n }\n }, [fieldErrors, _setError])\n\n const onSubmit: SubmitHandler<FederalFormPayload & StateFormPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { states: statesPayload, ...federalPayload } = payload\n\n const requestBody =\n federalPayload.w4DataType === 'rev_2020_w4'\n ? {\n filingStatus: federalPayload.filingStatus,\n twoJobs: federalPayload.twoJobs === 'true',\n dependentsAmount: federalPayload.dependentsAmount,\n otherIncome: federalPayload.otherIncome,\n deductions: federalPayload.deductions,\n extraWithholding: federalPayload.extraWithholding,\n w4DataType: federalPayload.w4DataType,\n version: employeeFederalTax.version,\n }\n : {\n filingStatus: federalPayload.filingStatus,\n federalWithholdingAllowance: federalPayload.federalWithholdingAllowance,\n additionalWithholding: federalPayload.additionalWithholding,\n w4DataType: federalPayload.w4DataType,\n version: employeeFederalTax.version,\n }\n\n const federalTaxesResponse = await updateFederalTaxes({\n request: {\n employeeUuid: employeeId,\n requestBody,\n },\n })\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_UPDATED, federalTaxesResponse)\n\n if (statesPayload && Object.keys(statesPayload).length > 0) {\n const states = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n\n if (stateName && state.questions !== undefined) {\n states.push({\n state: stateName,\n questions: state.questions\n .map(question => {\n if (question.isQuestionForAdminOnly && !isAdmin) {\n return null\n }\n const formValue = statesPayload[stateName]?.[snakeCaseToCamelCase(question.key)]\n return {\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value:\n formValue == null || (typeof formValue === 'number' && isNaN(formValue))\n ? ''\n : (formValue as string | number | boolean),\n },\n ],\n }\n })\n .filter(q => q !== null),\n })\n }\n }\n\n const stateTaxesResponse = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: { states } },\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, stateTaxesResponse)\n }\n\n onEvent(componentEvents.EMPLOYEE_TAXES_DONE)\n })\n }\n\n return (\n <section className={className}>\n <TaxesProvider\n value={{\n employeeStateTaxes,\n isAdmin: isAdmin,\n isPending: isPendingFederalTaxes || isPendingStateTaxes,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <FederalHead />\n <FederalForm />\n <StateForm />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </TaxesProvider>\n </section>\n )\n}\n\nexport const TaxesContextual = () => {\n const { employeeId, onEvent, isAdmin } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation()\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'EmployeeTaxes',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Taxes employeeId={employeeId} onEvent={onEvent} isAdmin={isAdmin ?? false} />\n}\n"],"names":["DEFAULT_TAX_VALID_FROM","Taxes","props","jsx","BaseComponent","Root","employeeId","className","children","isAdmin","dictionary","onEvent","fieldErrors","baseSubmitHandler","useBase","useI18n","useComponentDictionary","fedData","useEmployeeTaxSetupGetFederalTaxesSuspense","employeeFederalTax","updateFederalTaxes","isPendingFederalTaxes","useEmployeeTaxSetupUpdateFederalTaxesMutation","stateData","useEmployeeTaxSetupGetStateTaxesSuspense","employeeStateTaxes","updateStateTaxes","isPendingStateTaxes","useEmployeeTaxSetupUpdateStateTaxesMutation","isRev2020","statesDefaultValues","acc","state","question","value","key","snakeCaseToCamelCase","defaultValues","formMethods","useForm","zodResolver","FederalFormSchema","StateFormSchema","handleSubmit","_setError","useEffect","msgObject","normalizeErrorKeyForForm","TaxesProvider","FormProvider","Form","data","payload","statesPayload","federalPayload","requestBody","federalTaxesResponse","componentEvents","states","stateName","formValue","q","stateTaxesResponse","jsxs","Fragment","FederalHead","FederalForm","StateForm","Actions"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgCA,MAAMA,KAAyB;AAYxB,SAASC,GAAMC,GAA4C;AAChE,SACE,gBAAAC,EAACC,IAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,MAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,KAAO,CAACH,MAAsB;AAClC,QAAM,EAAE,YAAAI,GAAY,WAAAC,GAAW,UAAAC,GAAU,SAAAC,IAAU,IAAO,YAAAC,MAAeR,GACnE,EAAE,SAAAS,GAAS,aAAAC,GAAa,mBAAAC,EAAA,IAAsBC,GAAA;AACpD,EAAAC,GAAQ,gBAAgB,GACxBC,GAAuB,kBAAkBN,CAAU;AAEnD,QAAM,EAAE,MAAMO,EAAA,IAAYC,EAA2C;AAAA,IACnE,cAAcZ;AAAA,EAAA,CACf,GACKa,IAAqBF,EAAQ,oBAE7B,EAAE,aAAaG,GAAoB,WAAWC,EAAA,IAClDC,EAAA,GAEI,EAAE,MAAMC,EAAA,IAAcC,EAAyC;AAAA,IACnE,cAAclB;AAAA,EAAA,CACf,GACKmB,IAAqBF,EAAU,wBAC/B,EAAE,aAAaG,GAAkB,WAAWC,EAAA,IAChDC,EAAA,GAEIC,IAAYV,EAAmB,eAAe,eAE9CW,IAAsBL,EAAmB,OAAO,CAACM,GAA8BC,OAC/EA,EAAM,UACRD,EAAIC,EAAM,KAAK,IAAIA,EAAM,WAAW,OAAO,CAACD,GAA8BE,MAAa;AACrF,UAAMC,IAAQD,EAAS,QAAQ,CAAC,GAAG,OAC7BE,IAAMC,EAAqBH,EAAS,GAAG;AAC7C,WAAIE,MAAQ,sBACVJ,EAAII,CAAG,IAAI,OAAOD,IAAU,MAAc,KAAOA,IAEjDH,EAAII,CAAG,IAAID,GAENH;AAAAA,EACT,GAAG,CAAA,CAAE,IAEAA,IACN,CAAA,CAAE,GAECM,IAA4ER,IAC9E;AAAA,IACE,YAAY;AAAA,IACZ,cAAcV,EAAmB,gBAAgB;AAAA,IACjD,SAASA,EAAmB,UAAU,SAAS;AAAA,IAC/C,YAAYA,EAAmB,aAAa,OAAOA,EAAmB,UAAU,IAAI;AAAA,IACpF,kBAAkBA,EAAmB,mBACjC,OAAOA,EAAmB,gBAAgB,IAC1C;AAAA,IACJ,aAAaA,EAAmB,cAAc,OAAOA,EAAmB,WAAW,IAAI;AAAA,IACvF,kBAAkBA,EAAmB,mBACjC,OAAOA,EAAmB,gBAAgB,IAC1C;AAAA,IACJ,QAAQW;AAAA,EAAA,IAEV;AAAA,IACE,YAAY;AAAA,IACZ,cAAcX,EAAmB,gBAAgB;AAAA,IACjD,6BAA6BA,EAAmB,+BAA+B;AAAA,IAC/E,uBAAuBA,EAAmB;AAAA,IAC1C,QAAQW;AAAA,EAAA,GAGRQ,IAAcC,EAA2E;AAAA,IAC7F,UAAUC,EAAYC,EAAkB,IAAIC,CAAe,CAAC;AAAA,IAC5D,eAAAL;AAAA,EAAA,CACD,GACK,EAAE,cAAAM,GAAc,UAAUC,EAAA,IAAcN;AAE9C,SAAAO,EAAU,MAAM;AACd,IAAIjC,KAAeA,EAAY,SAAS,KACtCA,EAAY,QAAQ,CAAAkC,MAAa;AAC/B,YAAMX,IAAMY,GAAyBD,EAAU,QAAQ;AACvD,MAAAF,EAAUT,GAAgC,EAAE,MAAM,UAAU,SAASW,EAAU,SAAS;AAAA,IAC1F,CAAC;AAAA,EAEL,GAAG,CAAClC,GAAagC,CAAS,CAAC,GA+EzB,gBAAAzC,EAAC,aAAQ,WAAAI,GACP,UAAA,gBAAAJ;AAAA,IAAC6C;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,oBAAAvB;AAAA,QACA,SAAAhB;AAAA,QACA,WAAWY,KAAyBM;AAAA,MAAA;AAAA,MAGtC,UAAA,gBAAAxB,EAAC8C,GAAA,EAAc,GAAGX,GAChB,UAAA,gBAAAnC,EAAC+C,IAAA,EAAK,UAAUP,EAtF+C,OAAMQ,MAAQ;AACnF,cAAMtC,EAAkBsC,GAAM,OAAMC,MAAW;AAC7C,gBAAM,EAAE,QAAQC,GAAe,GAAGC,MAAmBF,GAE/CG,IACJD,EAAe,eAAe,gBAC1B;AAAA,YACE,cAAcA,EAAe;AAAA,YAC7B,SAASA,EAAe,YAAY;AAAA,YACpC,kBAAkBA,EAAe;AAAA,YACjC,aAAaA,EAAe;AAAA,YAC5B,YAAYA,EAAe;AAAA,YAC3B,kBAAkBA,EAAe;AAAA,YACjC,YAAYA,EAAe;AAAA,YAC3B,SAASnC,EAAmB;AAAA,UAAA,IAE9B;AAAA,YACE,cAAcmC,EAAe;AAAA,YAC7B,6BAA6BA,EAAe;AAAA,YAC5C,uBAAuBA,EAAe;AAAA,YACtC,YAAYA,EAAe;AAAA,YAC3B,SAASnC,EAAmB;AAAA,UAAA,GAG9BqC,IAAuB,MAAMpC,EAAmB;AAAA,YACpD,SAAS;AAAA,cACP,cAAcd;AAAA,cACd,aAAAiD;AAAA,YAAA;AAAA,UACF,CACD;AAGD,cAFA5C,EAAQ8C,EAAgB,gCAAgCD,CAAoB,GAExEH,KAAiB,OAAO,KAAKA,CAAa,EAAE,SAAS,GAAG;AAC1D,kBAAMK,IAAS,CAAA;AAEf,uBAAW1B,KAASP,GAAoB;AACtC,oBAAMkC,IAAY3B,EAAM;AAExB,cAAI2B,KAAa3B,EAAM,cAAc,UACnC0B,EAAO,KAAK;AAAA,gBACV,OAAOC;AAAA,gBACP,WAAW3B,EAAM,UACd,IAAI,CAAAC,MAAY;AACf,sBAAIA,EAAS,0BAA0B,CAACxB;AACtC,2BAAO;AAET,wBAAMmD,IAAYP,EAAcM,CAAS,IAAIvB,EAAqBH,EAAS,GAAG,CAAC;AAC/E,yBAAO;AAAA,oBACL,KAAKA,EAAS;AAAA,oBACd,SAAS;AAAA,sBACP;AAAA,wBACE,WAAWA,EAAS,QAAQ,CAAC,GAAG,aAAajC;AAAA,wBAC7C,WAAWiC,EAAS,QAAQ,CAAC,GAAG,aAAa;AAAA,wBAC7C,OACE2B,KAAa,QAAS,OAAOA,KAAc,YAAY,MAAMA,CAAS,IAClE,KACCA;AAAA,sBAAA;AAAA,oBACT;AAAA,kBACF;AAAA,gBAEJ,CAAC,EACA,OAAO,CAAAC,MAAKA,MAAM,IAAI;AAAA,cAAA,CAC1B;AAAA,YAEL;AAEA,kBAAMC,IAAqB,MAAMpC,EAAiB;AAAA,cAChD,SAAS,EAAE,cAAcpB,GAAY,2BAA2B,EAAE,QAAAoD,IAAO;AAAA,YAAE,CAC5E;AACD,YAAA/C,EAAQ8C,EAAgB,8BAA8BK,CAAkB;AAAA,UAC1E;AAEA,UAAAnD,EAAQ8C,EAAgB,mBAAmB;AAAA,QAC7C,CAAC;AAAA,MACH,CAY6C,GAClC,UAAAjD,KAGC,gBAAAuD,EAAAC,GAAA,EACE,UAAA;AAAA,QAAA,gBAAA7D,EAAC8D,GAAA,EAAY;AAAA,0BACZC,GAAA,EAAY;AAAA,0BACZC,GAAA,EAAU;AAAA,0BACVC,GAAA,CAAA,CAAQ;AAAA,MAAA,EAAA,CACX,GAEJ,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
1
|
+
{"version":3,"file":"Taxes.js","sources":["../../../../src/components/Employee/Taxes/Taxes.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useEffect } from 'react'\nimport { useEmployeeTaxSetupGetFederalTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetFederalTaxes'\nimport { useEmployeeTaxSetupUpdateFederalTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateFederalTaxes'\nimport { useEmployeeTaxSetupGetStateTaxesSuspense } from '@gusto/embedded-api/react-query/employeeTaxSetupGetStateTaxes'\nimport { useEmployeeTaxSetupUpdateStateTaxesMutation } from '@gusto/embedded-api/react-query/employeeTaxSetupUpdateStateTaxes'\nimport type { PutV1EmployeesEmployeeIdFederalTaxesRequestBody } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidfederaltaxes'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlowComponents'\nimport { Actions } from './Actions'\nimport {\n FederalForm,\n FederalFormSchema,\n type FederalFormInputs,\n type FederalFormPayload,\n} from './FederalForm'\nimport { FederalHead } from './FederalHead'\nimport { StateForm, StateFormSchema, type StateFormPayload } from './StateForm'\nimport { TaxesProvider } from './useTaxes'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { snakeCaseToCamelCase, normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst DEFAULT_TAX_VALID_FROM = '2010-01-01'\n\ninterface TaxesProps extends CommonComponentInterface<'Employee.Taxes'> {\n employeeId: string\n isAdmin?: boolean\n}\n\n/**\n * @deprecated The Taxes component has been deprecated and will be removed in a future release.\n * The component has been split into separate components for state and federal. Use Employee.FederalTaxes\n * and Employee.StateTaxes components instead.\n */\nexport function Taxes(props: TaxesProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = (props: TaxesProps) => {\n const { employeeId, className, children, isAdmin = false, dictionary } = props\n const { onEvent, fieldErrors, baseSubmitHandler } = useBase()\n useI18n('Employee.Taxes')\n useComponentDictionary('Employee.Taxes', dictionary)\n\n const { data: fedData } = useEmployeeTaxSetupGetFederalTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeFederalTax = fedData.employeeFederalTax!\n\n const { mutateAsync: updateFederalTaxes, isPending: isPendingFederalTaxes } =\n useEmployeeTaxSetupUpdateFederalTaxesMutation()\n\n const { data: stateData } = useEmployeeTaxSetupGetStateTaxesSuspense({\n employeeUuid: employeeId,\n })\n const employeeStateTaxes = stateData.employeeStateTaxesList!\n const { mutateAsync: updateStateTaxes, isPending: isPendingStateTaxes } =\n useEmployeeTaxSetupUpdateStateTaxesMutation()\n\n const isRev2020 = employeeFederalTax.w4DataType === 'rev_2020_w4'\n\n const statesDefaultValues = employeeStateTaxes.reduce((acc: Record<string, unknown>, state) => {\n if (state.state) {\n acc[state.state] = state.questions?.reduce((acc: Record<string, unknown>, question) => {\n const value = question.answers[0]?.value\n const key = snakeCaseToCamelCase(question.key)\n if (key === 'fileNewHireReport') {\n acc[key] = typeof value === 'undefined' ? true : value\n } else {\n acc[key] = value\n }\n return acc\n }, {})\n }\n return acc\n }, {})\n\n const defaultValues = isRev2020\n ? {\n filingStatus: employeeFederalTax.filingStatus ?? '',\n twoJobs: employeeFederalTax.twoJobs ? 'true' : 'false',\n deductions: employeeFederalTax.deductions ? Number(employeeFederalTax.deductions) : 0,\n dependentsAmount: employeeFederalTax.dependentsAmount\n ? Number(employeeFederalTax.dependentsAmount)\n : 0,\n otherIncome: employeeFederalTax.otherIncome ? Number(employeeFederalTax.otherIncome) : 0,\n extraWithholding: employeeFederalTax.extraWithholding\n ? Number(employeeFederalTax.extraWithholding)\n : 0,\n states: statesDefaultValues,\n }\n : {\n filingStatus: '',\n twoJobs: 'false',\n deductions: 0,\n dependentsAmount: 0,\n otherIncome: 0,\n extraWithholding: 0,\n states: statesDefaultValues,\n }\n\n const formMethods = useForm<FederalFormInputs, unknown, FederalFormPayload & StateFormPayload>({\n resolver: zodResolver(FederalFormSchema.and(StateFormSchema)),\n defaultValues,\n })\n const { handleSubmit, setError: _setError } = formMethods\n\n useEffect(() => {\n if (fieldErrors && fieldErrors.length > 0) {\n fieldErrors.forEach(msgObject => {\n const key = normalizeErrorKeyForForm(msgObject.errorKey)\n _setError(key as keyof FederalFormInputs, { type: 'custom', message: msgObject.message })\n })\n }\n }, [fieldErrors, _setError])\n\n const onSubmit: SubmitHandler<FederalFormPayload & StateFormPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { states: statesPayload, ...federalPayload } = payload\n\n const requestBody: PutV1EmployeesEmployeeIdFederalTaxesRequestBody = {\n filingStatus:\n federalPayload.filingStatus as PutV1EmployeesEmployeeIdFederalTaxesRequestBody['filingStatus'],\n twoJobs: federalPayload.twoJobs === 'true',\n dependentsAmount: Number(federalPayload.dependentsAmount),\n otherIncome: Number(federalPayload.otherIncome),\n deductions: Number(federalPayload.deductions),\n extraWithholding: Number(federalPayload.extraWithholding),\n w4DataType: 'rev_2020_w4',\n version: employeeFederalTax.version,\n }\n\n const federalTaxesResponse = await updateFederalTaxes({\n request: {\n employeeUuid: employeeId,\n requestBody,\n },\n })\n onEvent(componentEvents.EMPLOYEE_FEDERAL_TAXES_UPDATED, federalTaxesResponse)\n\n if (statesPayload && Object.keys(statesPayload).length > 0) {\n const states = []\n\n for (const state of employeeStateTaxes) {\n const stateName = state.state\n\n if (stateName && state.questions !== undefined) {\n states.push({\n state: stateName,\n questions: state.questions\n .map(question => {\n if (question.isQuestionForAdminOnly && !isAdmin) {\n return null\n }\n const formValue = statesPayload[stateName]?.[snakeCaseToCamelCase(question.key)]\n return {\n key: question.key,\n answers: [\n {\n validFrom: question.answers[0]?.validFrom ?? DEFAULT_TAX_VALID_FROM,\n validUpTo: question.answers[0]?.validUpTo ?? null,\n value:\n formValue == null || (typeof formValue === 'number' && isNaN(formValue))\n ? ''\n : (formValue as string | number | boolean),\n },\n ],\n }\n })\n .filter(q => q !== null),\n })\n }\n }\n\n const stateTaxesResponse = await updateStateTaxes({\n request: { employeeUuid: employeeId, employeeStateTaxesRequest: { states } },\n })\n onEvent(componentEvents.EMPLOYEE_STATE_TAXES_UPDATED, stateTaxesResponse)\n }\n\n onEvent(componentEvents.EMPLOYEE_TAXES_DONE)\n })\n }\n\n return (\n <section className={className}>\n <TaxesProvider\n value={{\n employeeStateTaxes,\n isAdmin: isAdmin,\n isPending: isPendingFederalTaxes || isPendingStateTaxes,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={handleSubmit(onSubmit)}>\n {children ? (\n children\n ) : (\n <>\n <FederalHead />\n <FederalForm />\n <StateForm />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </TaxesProvider>\n </section>\n )\n}\n\nexport const TaxesContextual = () => {\n const { employeeId, onEvent, isAdmin } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation()\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'EmployeeTaxes',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Taxes employeeId={employeeId} onEvent={onEvent} isAdmin={isAdmin ?? false} />\n}\n"],"names":["DEFAULT_TAX_VALID_FROM","Taxes","props","jsx","BaseComponent","Root","employeeId","className","children","isAdmin","dictionary","onEvent","fieldErrors","baseSubmitHandler","useBase","useI18n","useComponentDictionary","fedData","useEmployeeTaxSetupGetFederalTaxesSuspense","employeeFederalTax","updateFederalTaxes","isPendingFederalTaxes","useEmployeeTaxSetupUpdateFederalTaxesMutation","stateData","useEmployeeTaxSetupGetStateTaxesSuspense","employeeStateTaxes","updateStateTaxes","isPendingStateTaxes","useEmployeeTaxSetupUpdateStateTaxesMutation","isRev2020","statesDefaultValues","acc","state","question","value","key","snakeCaseToCamelCase","defaultValues","formMethods","useForm","zodResolver","FederalFormSchema","StateFormSchema","handleSubmit","_setError","useEffect","msgObject","normalizeErrorKeyForForm","TaxesProvider","FormProvider","Form","data","payload","statesPayload","federalPayload","requestBody","federalTaxesResponse","componentEvents","states","stateName","formValue","q","stateTaxesResponse","jsxs","Fragment","FederalHead","FederalForm","StateForm","Actions"],"mappings":"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"}
|
|
@@ -26,10 +26,10 @@ function Te(r) {
|
|
|
26
26
|
}
|
|
27
27
|
function re({ dictionary: r, companyId: P, payrollType: a = "bonus" }) {
|
|
28
28
|
ne("Payroll.OffCycleCreation", r), i("Payroll.OffCycleCreation"), i("Payroll.OffCycleReasonSelection"), i("Payroll.OffCyclePayPeriodDateForm"), i("Payroll.OffCycleDeductionsSetting"), i("Payroll.EmployeeSelection");
|
|
29
|
-
const { t: T } = S("Payroll.OffCyclePayPeriodDateForm"), { t: D } = S("Payroll.OffCycleCreation"), { onEvent: x, baseSubmitHandler: W } = te(), { minCheckDate: A, today: F } = $(), { mutateAsync:
|
|
29
|
+
const { t: T } = S("Payroll.OffCyclePayPeriodDateForm"), { t: D } = S("Payroll.OffCycleCreation"), { onEvent: x, baseSubmitHandler: W } = te(), { minCheckDate: A, today: F } = $(), { mutateAsync: U, isPending: v } = J(), [u, O] = w({
|
|
30
30
|
withholdingPayPeriod: K.EveryOtherWeek,
|
|
31
31
|
withholdingRate: m[a].withholdingType
|
|
32
|
-
}), [
|
|
32
|
+
}), [L, y] = w(!1), M = C(() => {
|
|
33
33
|
y(!0);
|
|
34
34
|
}, []), _ = C((e) => {
|
|
35
35
|
O(e), y(!1);
|
|
@@ -84,7 +84,7 @@ function re({ dictionary: r, companyId: P, payrollType: a = "bonus" }) {
|
|
|
84
84
|
const j = async (e) => {
|
|
85
85
|
const o = e.reason, n = e.checkDate, f = e.isCheckOnly ? n : e.startDate, p = e.isCheckOnly ? n : e.endDate, k = !e.includeAllEmployees && e.selectedEmployeeUuids.length > 0 ? e.selectedEmployeeUuids : void 0;
|
|
86
86
|
await W(e, async () => {
|
|
87
|
-
const c = await
|
|
87
|
+
const c = await U({
|
|
88
88
|
request: {
|
|
89
89
|
companyId: P,
|
|
90
90
|
requestBody: {
|
|
@@ -100,7 +100,7 @@ function re({ dictionary: r, companyId: P, payrollType: a = "bonus" }) {
|
|
|
100
100
|
fixedWithholdingRate: u.withholdingRate === "supplemental"
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
}), d = c.
|
|
103
|
+
}), d = c.payrollUnprocessed?.payrollUuid ?? c.payrollUnprocessed?.uuid;
|
|
104
104
|
if (!d)
|
|
105
105
|
throw new Error(D("errors.missingPayrollId"));
|
|
106
106
|
x(le.OFF_CYCLE_CREATED, { payrollUuid: d });
|
|
@@ -111,9 +111,9 @@ function re({ dictionary: r, companyId: P, payrollType: a = "bonus" }) {
|
|
|
111
111
|
{
|
|
112
112
|
employees: I,
|
|
113
113
|
isLoadingEmployees: B,
|
|
114
|
-
isPending:
|
|
114
|
+
isPending: v,
|
|
115
115
|
taxWithholdingConfig: u,
|
|
116
|
-
isTaxWithholdingModalOpen:
|
|
116
|
+
isTaxWithholdingModalOpen: L,
|
|
117
117
|
onTaxWithholdingEditClick: M,
|
|
118
118
|
onTaxWithholdingModalDone: _,
|
|
119
119
|
onTaxWithholdingModalCancel: N
|