@gusto/embedded-react-sdk 0.10.7-rc.2 → 0.11.0-rc.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 +14 -0
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.js +20 -19
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.js.map +1 -1
- package/dist/components/Common/ReorderableList/ReorderableItem.js +1 -1
- package/dist/components/Common/ReorderableList/ReorderableItem.js.map +1 -1
- package/dist/components/Common/UI/Button/Button.d.ts +1 -1
- package/dist/components/Common/UI/Button/Button.js +4 -4
- package/dist/components/Common/UI/Button/Button.js.map +1 -1
- package/dist/components/Common/UI/Button/ButtonTypes.d.ts +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatory.d.ts +0 -5
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +39 -42
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.d.ts +0 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +51 -53
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.d.ts +0 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +40 -42
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/index.d.ts +0 -1
- package/dist/components/Company/BankAccount/BankAccount.d.ts +0 -5
- package/dist/components/Company/BankAccount/BankAccount.js +17 -23
- package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.d.ts +0 -5
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +28 -31
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.d.ts +0 -5
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +25 -28
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.d.ts +0 -5
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +33 -36
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.d.ts +0 -6
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +37 -41
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +0 -4
- package/dist/components/Company/DocumentSigner/DocumentSigner.js +23 -26
- package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.d.ts +0 -6
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +40 -44
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/Industry/Industry.d.ts +0 -5
- package/dist/components/Company/Industry/Industry.js +23 -29
- package/dist/components/Company/Industry/Industry.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.d.ts +0 -5
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +41 -44
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/Locations.d.ts +0 -4
- package/dist/components/Company/Locations/Locations.js +14 -18
- package/dist/components/Company/Locations/Locations.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.d.ts +0 -5
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +28 -31
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.d.ts +1 -7
- package/dist/components/Company/PaySchedule/PaySchedule.js +67 -71
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +0 -4
- package/dist/components/Company/StateTaxes/StateTaxes.js +39 -22
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +8 -6
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +16 -15
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.d.ts +0 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +44 -47
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +0 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -29
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/stateTaxesReducer.d.ts +20 -0
- package/dist/components/Company/StateTaxes/stateTaxesReducer.js +40 -0
- package/dist/components/Company/StateTaxes/stateTaxesReducer.js.map +1 -0
- package/dist/components/Contractor/Address/Address.d.ts +0 -5
- package/dist/components/Contractor/Address/Address.js +35 -38
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfile.d.ts +11 -0
- package/dist/components/Contractor/Profile/ContractorProfile.js +24 -0
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -0
- package/dist/components/Contractor/Profile/ContractorProfileForm.d.ts +5 -0
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +140 -0
- package/dist/components/Contractor/Profile/ContractorProfileForm.js.map +1 -0
- package/dist/components/Contractor/Profile/index.d.ts +3 -0
- package/dist/components/Contractor/Profile/useContractorProfile.d.ts +254 -0
- package/dist/components/Contractor/Profile/useContractorProfile.js +223 -0
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -0
- package/dist/components/Contractor/Submit/ContractorSubmitWithApi.d.ts +6 -0
- package/dist/components/Contractor/Submit/ContractorSubmitWithApi.js +27 -0
- package/dist/components/Contractor/Submit/ContractorSubmitWithApi.js.map +1 -0
- package/dist/components/Contractor/Submit/SubmitDone.d.ts +5 -0
- package/dist/components/Contractor/Submit/SubmitDone.js +18 -0
- package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -0
- package/dist/components/Contractor/Submit/index.d.ts +6 -0
- package/dist/components/Contractor/Submit/index.js +18 -0
- package/dist/components/Contractor/Submit/index.js.map +1 -0
- package/dist/components/Contractor/Submit/index.module.scss.js +8 -0
- package/dist/components/Contractor/Submit/index.module.scss.js.map +1 -0
- package/dist/components/Contractor/index.d.ts +2 -0
- package/dist/components/Contractor/index.js +10 -6
- package/dist/components/Contractor/index.js.map +1 -1
- package/dist/components/Employee/Compensation/Compensation.d.ts +0 -6
- package/dist/components/Employee/Compensation/Compensation.js +97 -102
- package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.d.ts +0 -5
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +25 -28
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentSigner.d.ts +1 -7
- package/dist/components/Employee/DocumentSigner/DocumentSigner.js +16 -20
- package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.d.ts +0 -7
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +40 -44
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.d.ts +0 -5
- package/dist/components/Employee/EmployeeList/EmployeeList.js +56 -59
- package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +3 -3
- package/dist/components/Employee/Profile/PersonalDetailsInputs.d.ts +2 -2
- package/dist/components/Employee/Profile/Profile.d.ts +0 -8
- package/dist/components/Employee/Profile/Profile.js +131 -138
- package/dist/components/Employee/Profile/Profile.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.d.ts +0 -6
- package/dist/components/Employee/Taxes/Taxes.js +76 -81
- package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
- package/dist/i18n/I18n.js +1 -1
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorSubmit.json.js +22 -0
- package/dist/i18n/en/Contractor.ContractorSubmit.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Profile.json.js +73 -0
- package/dist/i18n/en/Contractor.Profile.json.js.map +1 -0
- package/dist/shared/constants.d.ts +14 -0
- package/dist/shared/constants.js +33 -26
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/i18next.d.ts +77 -1
- package/package.json +2 -2
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +0 -5
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +0 -48
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +0 -1
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { PaymentMethod as t } from "./PaymentMethod/PaymentMethod.js";
|
|
2
|
-
import { ContractorListWithApi as
|
|
3
|
-
import { NewHireReport as
|
|
4
|
-
import {
|
|
2
|
+
import { ContractorListWithApi as i } from "./List/index.js";
|
|
3
|
+
import { NewHireReport as p } from "./NewHireReport/NewHireReport.js";
|
|
4
|
+
import { ContractorSubmitWithApi as f } from "./Submit/ContractorSubmitWithApi.js";
|
|
5
|
+
import { Address as s } from "./Address/Address.js";
|
|
6
|
+
import { ContractorProfile as c } from "./Profile/ContractorProfile.js";
|
|
5
7
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
s as Address,
|
|
9
|
+
i as ContractorList,
|
|
10
|
+
c as ContractorProfile,
|
|
11
|
+
f as ContractorSubmit,
|
|
12
|
+
p as NewHireReport,
|
|
9
13
|
t as PaymentMethod
|
|
10
14
|
};
|
|
11
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -15,11 +15,5 @@ interface CompensationProps extends CommonComponentInterface<'Employee.Compensat
|
|
|
15
15
|
defaultValues?: CompensationDefaultValues;
|
|
16
16
|
}
|
|
17
17
|
export declare function Compensation(props: CompensationProps & BaseComponentInterface): import("react/jsx-runtime").JSX.Element;
|
|
18
|
-
export declare namespace Compensation {
|
|
19
|
-
var Head: () => import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
var List: () => import("react/jsx-runtime").JSX.Element | undefined;
|
|
21
|
-
var Actions: () => import("react/jsx-runtime").JSX.Element;
|
|
22
|
-
var Edit: () => import("react/jsx-runtime").JSX.Element | undefined;
|
|
23
|
-
}
|
|
24
18
|
export declare const CompensationContextual: () => import("react/jsx-runtime").JSX.Element;
|
|
25
19
|
export {};
|
|
@@ -1,104 +1,104 @@
|
|
|
1
|
-
import { jsx as s, jsxs as
|
|
2
|
-
import { zodResolver as
|
|
3
|
-
import { useState as
|
|
4
|
-
import { useForm as
|
|
5
|
-
import { useTranslation as
|
|
6
|
-
import { useJobsAndCompensationsGetJobsSuspense as
|
|
7
|
-
import { useJobsAndCompensationsCreateJobMutation as
|
|
8
|
-
import { useJobsAndCompensationsUpdateMutation as
|
|
9
|
-
import { useJobsAndCompensationsDeleteMutation as
|
|
10
|
-
import { useJobsAndCompensationsUpdateCompensationMutation as
|
|
11
|
-
import { useLocationsGetMinimumWagesSuspense as
|
|
12
|
-
import { useEmployeeAddressesGetWorkAddressesSuspense as
|
|
13
|
-
import { useFederalTaxDetailsGetSuspense as
|
|
14
|
-
import { useEmployeesGetSuspense as
|
|
15
|
-
import { List as
|
|
16
|
-
import { Head as
|
|
17
|
-
import { Edit as
|
|
18
|
-
import { Actions as
|
|
19
|
-
import { CompensationSchema as ye, CompensationProvider as
|
|
20
|
-
import { Form as
|
|
21
|
-
import { FlsaStatus as h, componentEvents as
|
|
22
|
-
import { useComponentDictionary as
|
|
23
|
-
import { BaseComponent as
|
|
24
|
-
import { useBase as
|
|
25
|
-
import { useFlow as
|
|
26
|
-
function
|
|
27
|
-
return
|
|
1
|
+
import { jsx as s, jsxs as te, Fragment as oe } from "react/jsx-runtime";
|
|
2
|
+
import { zodResolver as ne } from "@hookform/resolvers/zod";
|
|
3
|
+
import { useState as P, useMemo as U, useEffect as se } from "react";
|
|
4
|
+
import { useForm as ae, FormProvider as re } from "react-hook-form";
|
|
5
|
+
import { useTranslation as ie } from "react-i18next";
|
|
6
|
+
import { useJobsAndCompensationsGetJobsSuspense as me } from "@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs";
|
|
7
|
+
import { useJobsAndCompensationsCreateJobMutation as ue } from "@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob";
|
|
8
|
+
import { useJobsAndCompensationsUpdateMutation as de } from "@gusto/embedded-api/react-query/jobsAndCompensationsUpdate";
|
|
9
|
+
import { useJobsAndCompensationsDeleteMutation as le } from "@gusto/embedded-api/react-query/jobsAndCompensationsDelete";
|
|
10
|
+
import { useJobsAndCompensationsUpdateCompensationMutation as ce } from "@gusto/embedded-api/react-query/jobsAndCompensationsUpdateCompensation";
|
|
11
|
+
import { useLocationsGetMinimumWagesSuspense as pe } from "@gusto/embedded-api/react-query/locationsGetMinimumWages";
|
|
12
|
+
import { useEmployeeAddressesGetWorkAddressesSuspense as fe } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
|
|
13
|
+
import { useFederalTaxDetailsGetSuspense as Ce } from "@gusto/embedded-api/react-query/federalTaxDetailsGet";
|
|
14
|
+
import { useEmployeesGetSuspense as Ee } from "@gusto/embedded-api/react-query/employeesGet";
|
|
15
|
+
import { List as he } from "./List.js";
|
|
16
|
+
import { Head as De } from "./Head.js";
|
|
17
|
+
import { Edit as Oe } from "./Edit.js";
|
|
18
|
+
import { Actions as Se } from "./Actions.js";
|
|
19
|
+
import { CompensationSchema as ye, CompensationProvider as Ae } from "./useCompensation.js";
|
|
20
|
+
import { Form as Ie } from "../../Common/Form/Form.js";
|
|
21
|
+
import { FlsaStatus as h, componentEvents as C } from "../../../shared/constants.js";
|
|
22
|
+
import { useComponentDictionary as Te, useI18n as be } from "../../../i18n/I18n.js";
|
|
23
|
+
import { BaseComponent as Me } from "../../Base/Base.js";
|
|
24
|
+
import { useBase as Pe } from "../../Base/useBase.js";
|
|
25
|
+
import { useFlow as We } from "../../Flow/useFlow.js";
|
|
26
|
+
function ge(t) {
|
|
27
|
+
return Te("Employee.Compensation", t.dictionary), /* @__PURE__ */ s(Me, { ...t, children: /* @__PURE__ */ s(Ne, { ...t, children: t.children }) });
|
|
28
28
|
}
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
const { baseSubmitHandler:
|
|
32
|
-
data: { minimumWageList:
|
|
33
|
-
} =
|
|
34
|
-
locationUuid:
|
|
35
|
-
}),
|
|
36
|
-
data: { employee:
|
|
37
|
-
} =
|
|
38
|
-
if (!
|
|
29
|
+
const F = (t) => t?.compensations?.find((l) => l.uuid === t.currentCompensationUuid), Ne = ({ employeeId: t, startDate: l, className: D, children: O, ...m }) => {
|
|
30
|
+
be("Employee.Compensation");
|
|
31
|
+
const { baseSubmitHandler: B, onEvent: c } = Pe(), { data: j } = me({ employeeId: t }), n = j.jobList, { data: V } = fe({ employeeId: t }), W = V.employeeWorkAddressesList.find((e) => e.active), {
|
|
32
|
+
data: { minimumWageList: Y }
|
|
33
|
+
} = pe({
|
|
34
|
+
locationUuid: W.locationUuid
|
|
35
|
+
}), k = Y, {
|
|
36
|
+
data: { employee: g }
|
|
37
|
+
} = Ee({ employeeId: t });
|
|
38
|
+
if (!g)
|
|
39
39
|
throw new Error("Employee not found");
|
|
40
|
-
const { data:
|
|
40
|
+
const { data: x } = Ce({ companyId: g.companyUuid }), q = x.federalTaxDetails.taxPayerType === "S-Corporation", N = ce(), _ = ue(), L = de(), J = le(), [o, S] = P(
|
|
41
41
|
n.length === 1 ? n[0] ?? null : null
|
|
42
|
-
), [
|
|
42
|
+
), [A, p] = P(() => {
|
|
43
43
|
if (!n.length)
|
|
44
44
|
return "ADD_INITIAL_JOB";
|
|
45
|
-
const e =
|
|
45
|
+
const e = F(n[0]);
|
|
46
46
|
return n.length === 1 && e?.flsaStatus !== h.NONEXEMPT ? "EDIT_INITIAL_JOB" : "LIST";
|
|
47
|
-
}), [
|
|
47
|
+
}), [G, w] = P(!1), a = F(o), I = U(() => n.reduce((e, r) => {
|
|
48
48
|
const u = r.compensations?.find(
|
|
49
49
|
(y) => y.uuid === r.currentCompensationUuid
|
|
50
50
|
);
|
|
51
51
|
return !r.primary || !u ? e : u.flsaStatus ?? e;
|
|
52
|
-
}, void 0), [n]), f =
|
|
52
|
+
}, void 0), [n]), f = U(() => ({
|
|
53
53
|
jobTitle: o?.title && o.title !== "" ? o.title : m.defaultValues?.title ?? "",
|
|
54
|
-
flsaStatus: a?.flsaStatus ??
|
|
54
|
+
flsaStatus: a?.flsaStatus ?? I ?? m.defaultValues?.flsaStatus,
|
|
55
55
|
rate: Number(a?.rate ?? m.defaultValues?.rate ?? 0),
|
|
56
56
|
adjustForMinimumWage: a?.adjustForMinimumWage ?? !1,
|
|
57
57
|
minimumWageId: a?.minimumWages?.[0]?.uuid ?? "",
|
|
58
58
|
paymentUnit: a?.paymentUnit ?? m.defaultValues?.paymentUnit ?? "Hour",
|
|
59
59
|
stateWcCovered: o?.stateWcCovered ?? !1,
|
|
60
60
|
stateWcClassCode: o?.stateWcClassCode ?? ""
|
|
61
|
-
}), [o, a,
|
|
62
|
-
resolver:
|
|
61
|
+
}), [o, a, I, m.defaultValues]), v = ae({
|
|
62
|
+
resolver: ne(ye),
|
|
63
63
|
defaultValues: f
|
|
64
|
-
}), { resetField:
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}, [o, f,
|
|
68
|
-
const
|
|
69
|
-
if (
|
|
70
|
-
c(
|
|
64
|
+
}), { resetField: T, setValue: b, handleSubmit: R, reset: E } = v;
|
|
65
|
+
se(() => {
|
|
66
|
+
E(f);
|
|
67
|
+
}, [o, f, E]);
|
|
68
|
+
const X = async (e) => {
|
|
69
|
+
if (A === "LIST" && e === "PROCEED") {
|
|
70
|
+
c(C.EMPLOYEE_COMPENSATION_DONE);
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
if (!o &&
|
|
73
|
+
if (!o && A === "LIST") {
|
|
74
74
|
p("ADD_ADDITIONAL_JOB");
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
await
|
|
78
|
-
switch (await
|
|
77
|
+
await R(async (r) => {
|
|
78
|
+
switch (await $(r), e) {
|
|
79
79
|
case "LIST":
|
|
80
|
-
p("LIST"), S(null),
|
|
80
|
+
p("LIST"), S(null), E(f);
|
|
81
81
|
break;
|
|
82
82
|
default:
|
|
83
|
-
c(
|
|
83
|
+
c(C.EMPLOYEE_COMPENSATION_DONE);
|
|
84
84
|
}
|
|
85
85
|
})();
|
|
86
|
-
},
|
|
87
|
-
p("ADD_ADDITIONAL_JOB"), S(null),
|
|
88
|
-
},
|
|
89
|
-
n.length > 0 ? p("LIST") : p("ADD_INITIAL_JOB"), S(null),
|
|
90
|
-
},
|
|
86
|
+
}, H = () => {
|
|
87
|
+
p("ADD_ADDITIONAL_JOB"), S(null), E(f);
|
|
88
|
+
}, z = () => {
|
|
89
|
+
n.length > 0 ? p("LIST") : p("ADD_INITIAL_JOB"), S(null), E(f);
|
|
90
|
+
}, K = (e) => {
|
|
91
91
|
const r = n.find((u) => e === u.uuid);
|
|
92
92
|
r && (p("EDIT_ADDITIONAL_JOB"), S(r));
|
|
93
|
-
},
|
|
94
|
-
await
|
|
95
|
-
},
|
|
96
|
-
a?.flsaStatus === h.NONEXEMPT && n.length > 1 &&
|
|
97
|
-
},
|
|
98
|
-
await
|
|
93
|
+
}, Q = async (e) => {
|
|
94
|
+
await J.mutateAsync({ request: { jobId: e } }), c(C.EMPLOYEE_JOB_DELETED);
|
|
95
|
+
}, Z = (e) => {
|
|
96
|
+
a?.flsaStatus === h.NONEXEMPT && n.length > 1 && w(!0), e === h.OWNER ? (b("paymentUnit", "Paycheck"), T("rate", { defaultValue: Number(a?.rate) })) : e === h.COMMISSION_ONLY_NONEXEMPT || e === h.COMMISSION_ONLY_EXEMPT ? (b("paymentUnit", "Year"), b("rate", 0)) : (T("paymentUnit", { defaultValue: a?.paymentUnit }), T("rate", { defaultValue: Number(a?.rate) }));
|
|
97
|
+
}, $ = async (e) => {
|
|
98
|
+
await B(e, async (r) => {
|
|
99
99
|
const { jobTitle: u, twoPercentShareholder: y, ...i } = r;
|
|
100
100
|
let d;
|
|
101
|
-
o ? (d = (await
|
|
101
|
+
o ? (d = (await L.mutateAsync({
|
|
102
102
|
request: {
|
|
103
103
|
jobId: o.uuid,
|
|
104
104
|
requestBody: {
|
|
@@ -110,7 +110,7 @@ const B = (t) => t?.compensations?.find((l) => l.uuid === t.currentCompensationU
|
|
|
110
110
|
twoPercentShareholder: y ?? !1
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
})).job, c(
|
|
113
|
+
})).job, c(C.EMPLOYEE_JOB_UPDATED, d)) : (d = (await _.mutateAsync({
|
|
114
114
|
request: {
|
|
115
115
|
employeeId: t,
|
|
116
116
|
requestBody: {
|
|
@@ -121,14 +121,14 @@ const B = (t) => t?.compensations?.find((l) => l.uuid === t.currentCompensationU
|
|
|
121
121
|
twoPercentShareholder: y ?? !1
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
})).job, c(
|
|
125
|
-
const { compensation:
|
|
124
|
+
})).job, c(C.EMPLOYEE_JOB_CREATED, d));
|
|
125
|
+
const { compensation: ee } = await N.mutateAsync({
|
|
126
126
|
request: {
|
|
127
127
|
compensationId: d.currentCompensationUuid,
|
|
128
128
|
requestBody: {
|
|
129
129
|
// eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain
|
|
130
130
|
version: d.compensations?.find(
|
|
131
|
-
(
|
|
131
|
+
(M) => M.uuid === d.currentCompensationUuid
|
|
132
132
|
)?.version,
|
|
133
133
|
...i,
|
|
134
134
|
rate: String(i.rate),
|
|
@@ -136,44 +136,39 @@ const B = (t) => t?.compensations?.find((l) => l.uuid === t.currentCompensationU
|
|
|
136
136
|
}
|
|
137
137
|
}
|
|
138
138
|
});
|
|
139
|
-
|
|
139
|
+
w(!1), c(C.EMPLOYEE_COMPENSATION_UPDATED, ee);
|
|
140
140
|
});
|
|
141
141
|
};
|
|
142
142
|
return /* @__PURE__ */ s("section", { className: D, children: /* @__PURE__ */ s(
|
|
143
|
-
|
|
143
|
+
Ae,
|
|
144
144
|
{
|
|
145
145
|
value: {
|
|
146
146
|
employeeJobs: n,
|
|
147
147
|
currentJob: o,
|
|
148
|
-
primaryFlsaStatus:
|
|
149
|
-
showFlsaChangeWarning:
|
|
150
|
-
mode:
|
|
151
|
-
minimumWages:
|
|
152
|
-
handleFlsaChange:
|
|
153
|
-
handleDelete:
|
|
154
|
-
handleEdit:
|
|
155
|
-
handleAdd:
|
|
156
|
-
submitWithEffect:
|
|
157
|
-
handleCancelAddJob:
|
|
158
|
-
isPending:
|
|
159
|
-
state:
|
|
160
|
-
showTwoPercentStakeholder:
|
|
148
|
+
primaryFlsaStatus: I,
|
|
149
|
+
showFlsaChangeWarning: G,
|
|
150
|
+
mode: A,
|
|
151
|
+
minimumWages: k,
|
|
152
|
+
handleFlsaChange: Z,
|
|
153
|
+
handleDelete: Q,
|
|
154
|
+
handleEdit: K,
|
|
155
|
+
handleAdd: H,
|
|
156
|
+
submitWithEffect: X,
|
|
157
|
+
handleCancelAddJob: z,
|
|
158
|
+
isPending: N.isPending || _.isPending || L.isPending || J.isPending,
|
|
159
|
+
state: W.state,
|
|
160
|
+
showTwoPercentStakeholder: q
|
|
161
161
|
},
|
|
162
|
-
children: /* @__PURE__ */ s(
|
|
163
|
-
/* @__PURE__ */ s(
|
|
164
|
-
/* @__PURE__ */ s(
|
|
165
|
-
/* @__PURE__ */ s(
|
|
166
|
-
/* @__PURE__ */ s(
|
|
162
|
+
children: /* @__PURE__ */ s(re, { ...v, children: /* @__PURE__ */ s(Ie, { children: O || /* @__PURE__ */ te(oe, { children: [
|
|
163
|
+
/* @__PURE__ */ s(De, {}),
|
|
164
|
+
/* @__PURE__ */ s(he, {}),
|
|
165
|
+
/* @__PURE__ */ s(Oe, {}),
|
|
166
|
+
/* @__PURE__ */ s(Se, {})
|
|
167
167
|
] }) }) })
|
|
168
168
|
}
|
|
169
169
|
) });
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
A.List = j;
|
|
173
|
-
A.Actions = k;
|
|
174
|
-
A.Edit = Y;
|
|
175
|
-
const nt = () => {
|
|
176
|
-
const { employeeId: t, onEvent: l, startDate: D, defaultValues: O } = ge(), { t: m } = ce("common");
|
|
170
|
+
}, nt = () => {
|
|
171
|
+
const { employeeId: t, onEvent: l, startDate: D, defaultValues: O } = We(), { t: m } = ie("common");
|
|
177
172
|
if (!t || !D)
|
|
178
173
|
throw new Error(
|
|
179
174
|
m("errors.missingParamsOrContext", {
|
|
@@ -183,7 +178,7 @@ const nt = () => {
|
|
|
183
178
|
})
|
|
184
179
|
);
|
|
185
180
|
return /* @__PURE__ */ s(
|
|
186
|
-
|
|
181
|
+
ge,
|
|
187
182
|
{
|
|
188
183
|
employeeId: t,
|
|
189
184
|
startDate: D,
|
|
@@ -193,7 +188,7 @@ const nt = () => {
|
|
|
193
188
|
);
|
|
194
189
|
};
|
|
195
190
|
export {
|
|
196
|
-
|
|
191
|
+
ge as Compensation,
|
|
197
192
|
nt as CompensationContextual
|
|
198
193
|
};
|
|
199
194
|
//# sourceMappingURL=Compensation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Compensation.js","sources":["../../../../src/components/Employee/Compensation/Compensation.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsGetJobsSuspense } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobsAndCompensationsCreateJobMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob'\nimport { useJobsAndCompensationsUpdateMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdate'\nimport { useJobsAndCompensationsDeleteMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsDelete'\nimport { useJobsAndCompensationsUpdateCompensationMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdateCompensation'\nimport { useLocationsGetMinimumWagesSuspense } from '@gusto/embedded-api/react-query/locationsGetMinimumWages'\nimport { useEmployeeAddressesGetWorkAddressesSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { type Job } from '@gusto/embedded-api/models/components/job'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport { useFederalTaxDetailsGetSuspense } from '@gusto/embedded-api/react-query/federalTaxDetailsGet'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { List } from './List'\nimport { Head } from './Head'\nimport { Edit } from './Edit'\nimport { Actions } from './Actions'\nimport {\n type CompensationInputs,\n type CompensationOutputs,\n CompensationProvider,\n CompensationSchema,\n type MODE,\n} from './useCompensation'\nimport { Form } from '@/components/Common/Form'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\nimport type { PAY_PERIODS } from '@/shared/constants'\nimport { componentEvents, FlsaStatus } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n useBase,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\n\nexport type CompensationDefaultValues = RequireAtLeastOne<{\n rate?: Job['rate']\n title?: Job['title']\n paymentUnit?: (typeof PAY_PERIODS)[keyof typeof PAY_PERIODS]\n flsaStatus?: FlsaStatusType\n}>\n\ninterface CompensationProps extends CommonComponentInterface<'Employee.Compensation'> {\n employeeId: string\n startDate: string\n defaultValues?: CompensationDefaultValues\n}\n\nexport function Compensation(props: CompensationProps & BaseComponentInterface) {\n useComponentDictionary('Employee.Compensation', props.dictionary)\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst findCurrentCompensation = (employeeJob?: Job | null) => {\n return employeeJob?.compensations?.find(comp => comp.uuid === employeeJob.currentCompensationUuid)\n}\n\nconst Root = ({ employeeId, startDate, className, children, ...props }: CompensationProps) => {\n useI18n('Employee.Compensation')\n const { baseSubmitHandler, onEvent } = useBase()\n\n const { data: jobsData } = useJobsAndCompensationsGetJobsSuspense({ employeeId })\n const employeeJobs = jobsData.jobList!\n\n const { data: addressesData } = useEmployeeAddressesGetWorkAddressesSuspense({ employeeId })\n const workAddresses = addressesData.employeeWorkAddressesList!\n\n const currentWorkAddress = workAddresses.find(address => address.active)!\n\n const {\n data: { minimumWageList },\n } = useLocationsGetMinimumWagesSuspense({\n locationUuid: currentWorkAddress.locationUuid!,\n })\n const minimumWages = minimumWageList!\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n if (!employee) {\n throw new Error('Employee not found')\n }\n\n const { data } = useFederalTaxDetailsGetSuspense({ companyId: employee.companyUuid! })\n const showTwoPercentStakeholder = data.federalTaxDetails!.taxPayerType === 'S-Corporation'\n\n const updateCompensationMutation = useJobsAndCompensationsUpdateCompensationMutation()\n const createEmployeeJobMutation = useJobsAndCompensationsCreateJobMutation()\n const updateEmployeeJobMutation = useJobsAndCompensationsUpdateMutation()\n const deleteEmployeeJobMutation = useJobsAndCompensationsDeleteMutation()\n\n //Job being edited/created\n const [currentJob, setCurrentJob] = useState<Job | null>(\n employeeJobs.length === 1 ? (employeeJobs[0] ?? null) : null,\n )\n\n const [mode, setMode] = useState<MODE>(() => {\n if (!employeeJobs.length) {\n return 'ADD_INITIAL_JOB'\n }\n\n const currentCompensation = findCurrentCompensation(employeeJobs[0])\n\n if (employeeJobs.length === 1 && currentCompensation?.flsaStatus !== FlsaStatus.NONEXEMPT) {\n return 'EDIT_INITIAL_JOB'\n }\n\n return 'LIST'\n })\n\n const [showFlsaChangeWarning, setShowFlsaChangeWarning] = useState(false)\n //Getting current compensation for a job -> the one with the most recent effective date\n const currentCompensation = findCurrentCompensation(currentJob)\n /** Returns FLSA status of a current compensation of a primary job:\n * Employees can have multiple jobs, with multiple compensations, but only 1 job is primary with 1 current compensation\n */\n const primaryFlsaStatus = useMemo<string | undefined>(() => {\n return employeeJobs.reduce<string | undefined>((prev, curr) => {\n const compensation = curr.compensations?.find(\n comp => comp.uuid === curr.currentCompensationUuid,\n )\n if (!curr.primary || !compensation) return prev\n return compensation.flsaStatus ?? prev\n }, undefined)\n }, [employeeJobs])\n\n const defaultValues: CompensationInputs = useMemo(() => {\n return {\n jobTitle:\n currentJob?.title && currentJob.title !== ''\n ? currentJob.title\n : (props.defaultValues?.title ?? ''),\n flsaStatus:\n currentCompensation?.flsaStatus ?? primaryFlsaStatus ?? props.defaultValues?.flsaStatus,\n rate: Number(currentCompensation?.rate ?? props.defaultValues?.rate ?? 0),\n adjustForMinimumWage: currentCompensation?.adjustForMinimumWage ?? false,\n minimumWageId: currentCompensation?.minimumWages?.[0]?.uuid ?? '',\n paymentUnit: currentCompensation?.paymentUnit ?? props.defaultValues?.paymentUnit ?? 'Hour',\n stateWcCovered: currentJob?.stateWcCovered ?? false,\n stateWcClassCode: currentJob?.stateWcClassCode ?? '',\n } as CompensationInputs\n }, [currentJob, currentCompensation, primaryFlsaStatus, props.defaultValues])\n\n const formMethods = useForm<CompensationInputs, unknown, CompensationOutputs>({\n resolver: zodResolver(CompensationSchema),\n defaultValues,\n })\n const { resetField, setValue, handleSubmit, reset } = formMethods\n useEffect(() => {\n reset(defaultValues)\n }, [currentJob, defaultValues, reset])\n\n const submitWithEffect = async (newMode?: MODE) => {\n if (mode === 'LIST' && newMode === 'PROCEED') {\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_DONE)\n return\n }\n //If no job has been modified, switch to edit mode\n if (!currentJob && mode === 'LIST') {\n setMode('ADD_ADDITIONAL_JOB')\n return\n }\n //Performing post-submit state setting only on success\n await handleSubmit(async (data: CompensationOutputs) => {\n await onSubmit(data)\n switch (newMode) {\n case 'LIST':\n setMode('LIST')\n setCurrentJob(null)\n reset(defaultValues)\n break\n default:\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_DONE)\n }\n })()\n }\n const handleAdd = () => {\n setMode('ADD_ADDITIONAL_JOB')\n setCurrentJob(null)\n reset(defaultValues)\n }\n\n const handleCancelAddJob = () => {\n if (employeeJobs.length > 0) {\n setMode('LIST')\n } else {\n setMode('ADD_INITIAL_JOB')\n }\n\n setCurrentJob(null)\n reset(defaultValues)\n }\n\n const handleEdit = (uuid: string) => {\n const selectedJob = employeeJobs.find(job => uuid === job.uuid)\n if (selectedJob) {\n setMode('EDIT_ADDITIONAL_JOB')\n setCurrentJob(selectedJob)\n }\n }\n\n const handleDelete = async (jobId: string) => {\n await deleteEmployeeJobMutation.mutateAsync({ request: { jobId } })\n onEvent(componentEvents.EMPLOYEE_JOB_DELETED)\n }\n\n /**Update dependent field values upon change in FLSA type */\n const handleFlsaChange = (value: string | number) => {\n //Attempting to change flsa status from nonexempt should prompt user about deletion of other jobs associated with the employee\n if (currentCompensation?.flsaStatus === FlsaStatus.NONEXEMPT && employeeJobs.length > 1) {\n setShowFlsaChangeWarning(true)\n }\n if (value === FlsaStatus.OWNER) {\n setValue('paymentUnit', 'Paycheck')\n resetField('rate', { defaultValue: Number(currentCompensation?.rate) })\n } else if (\n value === FlsaStatus.COMMISSION_ONLY_NONEXEMPT ||\n value === FlsaStatus.COMMISSION_ONLY_EXEMPT\n ) {\n setValue('paymentUnit', 'Year')\n setValue('rate', 0)\n } else {\n //reset fields\n resetField('paymentUnit', { defaultValue: currentCompensation?.paymentUnit })\n resetField('rate', { defaultValue: Number(currentCompensation?.rate) })\n }\n }\n\n const onSubmit: SubmitHandler<CompensationOutputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { jobTitle, twoPercentShareholder, ...compensationData } = payload\n let updatedJobData\n //Note: some of the type fixes below are due to the fact that API incorrectly defines current_compensation_uuid as optional\n if (!currentJob) {\n //Adding new job for NONEXEMPT\n const data = await createEmployeeJobMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: {\n title: jobTitle,\n hireDate: startDate,\n stateWcCovered: compensationData.stateWcCovered,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = data.job!\n onEvent(componentEvents.EMPLOYEE_JOB_CREATED, updatedJobData)\n } else {\n const data = await updateEmployeeJobMutation.mutateAsync({\n request: {\n jobId: currentJob.uuid,\n requestBody: {\n title: jobTitle,\n version: currentJob.version as string,\n hireDate: startDate,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n stateWcCovered: compensationData.stateWcCovered,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = data.job!\n onEvent(componentEvents.EMPLOYEE_JOB_UPDATED, updatedJobData)\n }\n\n const { compensation } = await updateCompensationMutation.mutateAsync({\n request: {\n compensationId: updatedJobData.currentCompensationUuid!,\n requestBody: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n version: updatedJobData.compensations?.find(\n comp => comp.uuid === updatedJobData.currentCompensationUuid,\n )?.version!,\n ...compensationData,\n rate: String(compensationData.rate),\n minimumWages: compensationData.adjustForMinimumWage\n ? [{ uuid: compensationData.minimumWageId }]\n : [],\n },\n },\n })\n setShowFlsaChangeWarning(false)\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_UPDATED, compensation)\n })\n }\n return (\n <section className={className}>\n <CompensationProvider\n value={{\n employeeJobs,\n currentJob,\n primaryFlsaStatus,\n showFlsaChangeWarning,\n mode,\n minimumWages,\n handleFlsaChange,\n handleDelete,\n handleEdit,\n handleAdd,\n submitWithEffect,\n handleCancelAddJob,\n isPending:\n updateCompensationMutation.isPending ||\n createEmployeeJobMutation.isPending ||\n updateEmployeeJobMutation.isPending ||\n deleteEmployeeJobMutation.isPending,\n state: currentWorkAddress.state,\n showTwoPercentStakeholder,\n }}\n >\n <FormProvider {...formMethods}>\n <Form>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <List />\n <Edit />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </CompensationProvider>\n </section>\n )\n}\n\nCompensation.Head = Head\nCompensation.List = List\nCompensation.Actions = Actions\nCompensation.Edit = Edit\n\nexport const CompensationContextual = () => {\n const { employeeId, onEvent, startDate, defaultValues } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId || !startDate) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'Compensation',\n param: !employeeId ? 'employeeId' : 'startDate',\n provider: 'FlowProvider',\n }),\n )\n }\n return (\n <Compensation\n employeeId={employeeId}\n startDate={startDate}\n onEvent={onEvent}\n defaultValues={defaultValues?.compensation}\n />\n )\n}\n"],"names":["Compensation","props","useComponentDictionary","jsx","BaseComponent","Root","findCurrentCompensation","employeeJob","comp","employeeId","startDate","className","children","useI18n","baseSubmitHandler","onEvent","useBase","jobsData","useJobsAndCompensationsGetJobsSuspense","employeeJobs","addressesData","useEmployeeAddressesGetWorkAddressesSuspense","currentWorkAddress","address","minimumWageList","useLocationsGetMinimumWagesSuspense","minimumWages","employee","useEmployeesGetSuspense","data","useFederalTaxDetailsGetSuspense","showTwoPercentStakeholder","updateCompensationMutation","useJobsAndCompensationsUpdateCompensationMutation","createEmployeeJobMutation","useJobsAndCompensationsCreateJobMutation","updateEmployeeJobMutation","useJobsAndCompensationsUpdateMutation","deleteEmployeeJobMutation","useJobsAndCompensationsDeleteMutation","currentJob","setCurrentJob","useState","mode","setMode","currentCompensation","FlsaStatus","showFlsaChangeWarning","setShowFlsaChangeWarning","primaryFlsaStatus","useMemo","prev","curr","compensation","defaultValues","formMethods","useForm","zodResolver","CompensationSchema","resetField","setValue","handleSubmit","reset","useEffect","submitWithEffect","newMode","componentEvents","onSubmit","handleAdd","handleCancelAddJob","handleEdit","uuid","selectedJob","job","handleDelete","jobId","handleFlsaChange","value","payload","jobTitle","twoPercentShareholder","compensationData","updatedJobData","CompensationProvider","FormProvider","Form","jsxs","Fragment","Head","List","Edit","Actions","CompensationContextual","useFlow","t","useTranslation"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Compensation.js","sources":["../../../../src/components/Employee/Compensation/Compensation.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { useJobsAndCompensationsGetJobsSuspense } from '@gusto/embedded-api/react-query/jobsAndCompensationsGetJobs'\nimport { useJobsAndCompensationsCreateJobMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsCreateJob'\nimport { useJobsAndCompensationsUpdateMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdate'\nimport { useJobsAndCompensationsDeleteMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsDelete'\nimport { useJobsAndCompensationsUpdateCompensationMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsUpdateCompensation'\nimport { useLocationsGetMinimumWagesSuspense } from '@gusto/embedded-api/react-query/locationsGetMinimumWages'\nimport { useEmployeeAddressesGetWorkAddressesSuspense } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { type Job } from '@gusto/embedded-api/models/components/job'\nimport type { FlsaStatusType } from '@gusto/embedded-api/models/components/flsastatustype'\nimport { useFederalTaxDetailsGetSuspense } from '@gusto/embedded-api/react-query/federalTaxDetailsGet'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { List } from './List'\nimport { Head } from './Head'\nimport { Edit } from './Edit'\nimport { Actions } from './Actions'\nimport {\n type CompensationInputs,\n type CompensationOutputs,\n CompensationProvider,\n CompensationSchema,\n type MODE,\n} from './useCompensation'\nimport { Form } from '@/components/Common/Form'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\nimport type { PAY_PERIODS } from '@/shared/constants'\nimport { componentEvents, FlsaStatus } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n useBase,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { useFlow } from '@/components/Flow/useFlow'\n\nexport type CompensationDefaultValues = RequireAtLeastOne<{\n rate?: Job['rate']\n title?: Job['title']\n paymentUnit?: (typeof PAY_PERIODS)[keyof typeof PAY_PERIODS]\n flsaStatus?: FlsaStatusType\n}>\n\ninterface CompensationProps extends CommonComponentInterface<'Employee.Compensation'> {\n employeeId: string\n startDate: string\n defaultValues?: CompensationDefaultValues\n}\n\nexport function Compensation(props: CompensationProps & BaseComponentInterface) {\n useComponentDictionary('Employee.Compensation', props.dictionary)\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst findCurrentCompensation = (employeeJob?: Job | null) => {\n return employeeJob?.compensations?.find(comp => comp.uuid === employeeJob.currentCompensationUuid)\n}\n\nconst Root = ({ employeeId, startDate, className, children, ...props }: CompensationProps) => {\n useI18n('Employee.Compensation')\n const { baseSubmitHandler, onEvent } = useBase()\n\n const { data: jobsData } = useJobsAndCompensationsGetJobsSuspense({ employeeId })\n const employeeJobs = jobsData.jobList!\n\n const { data: addressesData } = useEmployeeAddressesGetWorkAddressesSuspense({ employeeId })\n const workAddresses = addressesData.employeeWorkAddressesList!\n\n const currentWorkAddress = workAddresses.find(address => address.active)!\n\n const {\n data: { minimumWageList },\n } = useLocationsGetMinimumWagesSuspense({\n locationUuid: currentWorkAddress.locationUuid!,\n })\n const minimumWages = minimumWageList!\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n if (!employee) {\n throw new Error('Employee not found')\n }\n\n const { data } = useFederalTaxDetailsGetSuspense({ companyId: employee.companyUuid! })\n const showTwoPercentStakeholder = data.federalTaxDetails!.taxPayerType === 'S-Corporation'\n\n const updateCompensationMutation = useJobsAndCompensationsUpdateCompensationMutation()\n const createEmployeeJobMutation = useJobsAndCompensationsCreateJobMutation()\n const updateEmployeeJobMutation = useJobsAndCompensationsUpdateMutation()\n const deleteEmployeeJobMutation = useJobsAndCompensationsDeleteMutation()\n\n //Job being edited/created\n const [currentJob, setCurrentJob] = useState<Job | null>(\n employeeJobs.length === 1 ? (employeeJobs[0] ?? null) : null,\n )\n\n const [mode, setMode] = useState<MODE>(() => {\n if (!employeeJobs.length) {\n return 'ADD_INITIAL_JOB'\n }\n\n const currentCompensation = findCurrentCompensation(employeeJobs[0])\n\n if (employeeJobs.length === 1 && currentCompensation?.flsaStatus !== FlsaStatus.NONEXEMPT) {\n return 'EDIT_INITIAL_JOB'\n }\n\n return 'LIST'\n })\n\n const [showFlsaChangeWarning, setShowFlsaChangeWarning] = useState(false)\n //Getting current compensation for a job -> the one with the most recent effective date\n const currentCompensation = findCurrentCompensation(currentJob)\n /** Returns FLSA status of a current compensation of a primary job:\n * Employees can have multiple jobs, with multiple compensations, but only 1 job is primary with 1 current compensation\n */\n const primaryFlsaStatus = useMemo<string | undefined>(() => {\n return employeeJobs.reduce<string | undefined>((prev, curr) => {\n const compensation = curr.compensations?.find(\n comp => comp.uuid === curr.currentCompensationUuid,\n )\n if (!curr.primary || !compensation) return prev\n return compensation.flsaStatus ?? prev\n }, undefined)\n }, [employeeJobs])\n\n const defaultValues: CompensationInputs = useMemo(() => {\n return {\n jobTitle:\n currentJob?.title && currentJob.title !== ''\n ? currentJob.title\n : (props.defaultValues?.title ?? ''),\n flsaStatus:\n currentCompensation?.flsaStatus ?? primaryFlsaStatus ?? props.defaultValues?.flsaStatus,\n rate: Number(currentCompensation?.rate ?? props.defaultValues?.rate ?? 0),\n adjustForMinimumWage: currentCompensation?.adjustForMinimumWage ?? false,\n minimumWageId: currentCompensation?.minimumWages?.[0]?.uuid ?? '',\n paymentUnit: currentCompensation?.paymentUnit ?? props.defaultValues?.paymentUnit ?? 'Hour',\n stateWcCovered: currentJob?.stateWcCovered ?? false,\n stateWcClassCode: currentJob?.stateWcClassCode ?? '',\n } as CompensationInputs\n }, [currentJob, currentCompensation, primaryFlsaStatus, props.defaultValues])\n\n const formMethods = useForm<CompensationInputs, unknown, CompensationOutputs>({\n resolver: zodResolver(CompensationSchema),\n defaultValues,\n })\n const { resetField, setValue, handleSubmit, reset } = formMethods\n useEffect(() => {\n reset(defaultValues)\n }, [currentJob, defaultValues, reset])\n\n const submitWithEffect = async (newMode?: MODE) => {\n if (mode === 'LIST' && newMode === 'PROCEED') {\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_DONE)\n return\n }\n //If no job has been modified, switch to edit mode\n if (!currentJob && mode === 'LIST') {\n setMode('ADD_ADDITIONAL_JOB')\n return\n }\n //Performing post-submit state setting only on success\n await handleSubmit(async (data: CompensationOutputs) => {\n await onSubmit(data)\n switch (newMode) {\n case 'LIST':\n setMode('LIST')\n setCurrentJob(null)\n reset(defaultValues)\n break\n default:\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_DONE)\n }\n })()\n }\n const handleAdd = () => {\n setMode('ADD_ADDITIONAL_JOB')\n setCurrentJob(null)\n reset(defaultValues)\n }\n\n const handleCancelAddJob = () => {\n if (employeeJobs.length > 0) {\n setMode('LIST')\n } else {\n setMode('ADD_INITIAL_JOB')\n }\n\n setCurrentJob(null)\n reset(defaultValues)\n }\n\n const handleEdit = (uuid: string) => {\n const selectedJob = employeeJobs.find(job => uuid === job.uuid)\n if (selectedJob) {\n setMode('EDIT_ADDITIONAL_JOB')\n setCurrentJob(selectedJob)\n }\n }\n\n const handleDelete = async (jobId: string) => {\n await deleteEmployeeJobMutation.mutateAsync({ request: { jobId } })\n onEvent(componentEvents.EMPLOYEE_JOB_DELETED)\n }\n\n /**Update dependent field values upon change in FLSA type */\n const handleFlsaChange = (value: string | number) => {\n //Attempting to change flsa status from nonexempt should prompt user about deletion of other jobs associated with the employee\n if (currentCompensation?.flsaStatus === FlsaStatus.NONEXEMPT && employeeJobs.length > 1) {\n setShowFlsaChangeWarning(true)\n }\n if (value === FlsaStatus.OWNER) {\n setValue('paymentUnit', 'Paycheck')\n resetField('rate', { defaultValue: Number(currentCompensation?.rate) })\n } else if (\n value === FlsaStatus.COMMISSION_ONLY_NONEXEMPT ||\n value === FlsaStatus.COMMISSION_ONLY_EXEMPT\n ) {\n setValue('paymentUnit', 'Year')\n setValue('rate', 0)\n } else {\n //reset fields\n resetField('paymentUnit', { defaultValue: currentCompensation?.paymentUnit })\n resetField('rate', { defaultValue: Number(currentCompensation?.rate) })\n }\n }\n\n const onSubmit: SubmitHandler<CompensationOutputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { jobTitle, twoPercentShareholder, ...compensationData } = payload\n let updatedJobData\n //Note: some of the type fixes below are due to the fact that API incorrectly defines current_compensation_uuid as optional\n if (!currentJob) {\n //Adding new job for NONEXEMPT\n const data = await createEmployeeJobMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: {\n title: jobTitle,\n hireDate: startDate,\n stateWcCovered: compensationData.stateWcCovered,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = data.job!\n onEvent(componentEvents.EMPLOYEE_JOB_CREATED, updatedJobData)\n } else {\n const data = await updateEmployeeJobMutation.mutateAsync({\n request: {\n jobId: currentJob.uuid,\n requestBody: {\n title: jobTitle,\n version: currentJob.version as string,\n hireDate: startDate,\n stateWcClassCode: compensationData.stateWcCovered\n ? compensationData.stateWcClassCode\n : null,\n stateWcCovered: compensationData.stateWcCovered,\n twoPercentShareholder: twoPercentShareholder ?? false,\n },\n },\n })\n updatedJobData = data.job!\n onEvent(componentEvents.EMPLOYEE_JOB_UPDATED, updatedJobData)\n }\n\n const { compensation } = await updateCompensationMutation.mutateAsync({\n request: {\n compensationId: updatedJobData.currentCompensationUuid!,\n requestBody: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain\n version: updatedJobData.compensations?.find(\n comp => comp.uuid === updatedJobData.currentCompensationUuid,\n )?.version!,\n ...compensationData,\n rate: String(compensationData.rate),\n minimumWages: compensationData.adjustForMinimumWage\n ? [{ uuid: compensationData.minimumWageId }]\n : [],\n },\n },\n })\n setShowFlsaChangeWarning(false)\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_UPDATED, compensation)\n })\n }\n return (\n <section className={className}>\n <CompensationProvider\n value={{\n employeeJobs,\n currentJob,\n primaryFlsaStatus,\n showFlsaChangeWarning,\n mode,\n minimumWages,\n handleFlsaChange,\n handleDelete,\n handleEdit,\n handleAdd,\n submitWithEffect,\n handleCancelAddJob,\n isPending:\n updateCompensationMutation.isPending ||\n createEmployeeJobMutation.isPending ||\n updateEmployeeJobMutation.isPending ||\n deleteEmployeeJobMutation.isPending,\n state: currentWorkAddress.state,\n showTwoPercentStakeholder,\n }}\n >\n <FormProvider {...formMethods}>\n <Form>\n {children ? (\n children\n ) : (\n <>\n <Head />\n <List />\n <Edit />\n <Actions />\n </>\n )}\n </Form>\n </FormProvider>\n </CompensationProvider>\n </section>\n )\n}\n\nexport const CompensationContextual = () => {\n const { employeeId, onEvent, startDate, defaultValues } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId || !startDate) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'Compensation',\n param: !employeeId ? 'employeeId' : 'startDate',\n provider: 'FlowProvider',\n }),\n )\n }\n return (\n <Compensation\n employeeId={employeeId}\n startDate={startDate}\n onEvent={onEvent}\n defaultValues={defaultValues?.compensation}\n />\n )\n}\n"],"names":["Compensation","props","useComponentDictionary","jsx","BaseComponent","Root","findCurrentCompensation","employeeJob","comp","employeeId","startDate","className","children","useI18n","baseSubmitHandler","onEvent","useBase","jobsData","useJobsAndCompensationsGetJobsSuspense","employeeJobs","addressesData","useEmployeeAddressesGetWorkAddressesSuspense","currentWorkAddress","address","minimumWageList","useLocationsGetMinimumWagesSuspense","minimumWages","employee","useEmployeesGetSuspense","data","useFederalTaxDetailsGetSuspense","showTwoPercentStakeholder","updateCompensationMutation","useJobsAndCompensationsUpdateCompensationMutation","createEmployeeJobMutation","useJobsAndCompensationsCreateJobMutation","updateEmployeeJobMutation","useJobsAndCompensationsUpdateMutation","deleteEmployeeJobMutation","useJobsAndCompensationsDeleteMutation","currentJob","setCurrentJob","useState","mode","setMode","currentCompensation","FlsaStatus","showFlsaChangeWarning","setShowFlsaChangeWarning","primaryFlsaStatus","useMemo","prev","curr","compensation","defaultValues","formMethods","useForm","zodResolver","CompensationSchema","resetField","setValue","handleSubmit","reset","useEffect","submitWithEffect","newMode","componentEvents","onSubmit","handleAdd","handleCancelAddJob","handleEdit","uuid","selectedJob","job","handleDelete","jobId","handleFlsaChange","value","payload","jobTitle","twoPercentShareholder","compensationData","updatedJobData","CompensationProvider","FormProvider","Form","jsxs","Fragment","Head","List","Edit","Actions","CompensationContextual","useFlow","t","useTranslation"],"mappings":"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"}
|
|
@@ -3,9 +3,4 @@ interface DocumentListProps extends CommonComponentInterface {
|
|
|
3
3
|
employeeId: string;
|
|
4
4
|
}
|
|
5
5
|
export declare function DocumentList(props: DocumentListProps & BaseComponentInterface): import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export declare namespace DocumentList {
|
|
7
|
-
var Head: typeof import("./Head").Head;
|
|
8
|
-
var List: typeof import("./List").List;
|
|
9
|
-
var Actions: typeof import("./Actions").Actions;
|
|
10
|
-
}
|
|
11
6
|
export {};
|
|
@@ -1,46 +1,43 @@
|
|
|
1
|
-
import { jsx as o, jsxs as
|
|
2
|
-
import { useEmployeeFormsListSuspense as
|
|
3
|
-
import { Head as
|
|
4
|
-
import { List as
|
|
5
|
-
import { Actions as
|
|
1
|
+
import { jsx as o, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { useEmployeeFormsListSuspense as f } from "@gusto/embedded-api/react-query/employeeFormsList";
|
|
3
|
+
import { Head as d } from "./Head.js";
|
|
4
|
+
import { List as E } from "./List.js";
|
|
5
|
+
import { Actions as a } from "./Actions.js";
|
|
6
6
|
import { DocumentListProvider as h } from "./useDocumentList.js";
|
|
7
7
|
import { BaseComponent as F } from "../../../Base/Base.js";
|
|
8
|
-
import { useBase as
|
|
9
|
-
import { useI18n as
|
|
10
|
-
import { componentEvents as
|
|
11
|
-
import { Flex as
|
|
12
|
-
function
|
|
13
|
-
return /* @__PURE__ */ o(F, { ...e, children: /* @__PURE__ */ o(
|
|
8
|
+
import { useBase as L } from "../../../Base/useBase.js";
|
|
9
|
+
import { useI18n as S } from "../../../../i18n/I18n.js";
|
|
10
|
+
import { componentEvents as m } from "../../../../shared/constants.js";
|
|
11
|
+
import { Flex as g } from "../../../Common/Flex/Flex.js";
|
|
12
|
+
function A(e) {
|
|
13
|
+
return /* @__PURE__ */ o(F, { ...e, children: /* @__PURE__ */ o(O, { ...e }) });
|
|
14
14
|
}
|
|
15
|
-
function
|
|
16
|
-
|
|
17
|
-
const { onEvent:
|
|
18
|
-
return /* @__PURE__ */ o("section", { className:
|
|
15
|
+
function O({ employeeId: e, className: s, children: n }) {
|
|
16
|
+
S("Employee.DocumentSigner");
|
|
17
|
+
const { onEvent: t } = L(), { data: u, error: c } = f({ employeeId: e }), i = u.formList, l = i.every((r) => !r.requiresSigning);
|
|
18
|
+
return /* @__PURE__ */ o("section", { className: s, children: /* @__PURE__ */ o(
|
|
19
19
|
h,
|
|
20
20
|
{
|
|
21
21
|
value: {
|
|
22
|
-
employeeForms:
|
|
23
|
-
hasSignedAllForms:
|
|
22
|
+
employeeForms: i,
|
|
23
|
+
hasSignedAllForms: l,
|
|
24
24
|
handleContinue: () => {
|
|
25
|
-
|
|
25
|
+
t(m.EMPLOYEE_FORMS_DONE);
|
|
26
26
|
},
|
|
27
27
|
handleRequestFormToSign: (r) => {
|
|
28
|
-
|
|
28
|
+
t(m.EMPLOYEE_VIEW_FORM_TO_SIGN, { uuid: r.uuid });
|
|
29
29
|
},
|
|
30
|
-
documentListError:
|
|
30
|
+
documentListError: c
|
|
31
31
|
},
|
|
32
|
-
children:
|
|
33
|
-
/* @__PURE__ */ o(
|
|
34
|
-
/* @__PURE__ */ o(
|
|
35
|
-
/* @__PURE__ */ o(
|
|
32
|
+
children: n || /* @__PURE__ */ p(g, { flexDirection: "column", children: [
|
|
33
|
+
/* @__PURE__ */ o(d, {}),
|
|
34
|
+
/* @__PURE__ */ o(E, {}),
|
|
35
|
+
/* @__PURE__ */ o(a, {})
|
|
36
36
|
] })
|
|
37
37
|
}
|
|
38
38
|
) });
|
|
39
39
|
}
|
|
40
|
-
n.Head = u;
|
|
41
|
-
n.List = c;
|
|
42
|
-
n.Actions = l;
|
|
43
40
|
export {
|
|
44
|
-
|
|
41
|
+
A as DocumentList
|
|
45
42
|
};
|
|
46
43
|
//# sourceMappingURL=DocumentList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentList.js","sources":["../../../../../src/components/Employee/DocumentSigner/DocumentList/DocumentList.tsx"],"sourcesContent":["import { useEmployeeFormsListSuspense } from '@gusto/embedded-api/react-query/employeeFormsList'\nimport { type Form } from '@gusto/embedded-api/models/components/form'\nimport { Head } from './Head'\nimport { List } from './List'\nimport { Actions } from './Actions'\nimport { DocumentListProvider } from './useDocumentList'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { Flex } from '@/components/Common'\n\ninterface DocumentListProps extends CommonComponentInterface {\n employeeId: string\n}\n\nexport function DocumentList(props: DocumentListProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, className, children }: DocumentListProps) {\n useI18n('Employee.DocumentSigner')\n const { onEvent } = useBase()\n\n const { data, error: documentListError } = useEmployeeFormsListSuspense({ employeeId })\n const employeeForms = data.formList!\n\n const hasSignedAllForms = employeeForms.every(employeeForm => !employeeForm.requiresSigning)\n\n const handleRequestFormToSign = (data: Form) => {\n onEvent(componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN, { uuid: data.uuid })\n }\n\n const handleContinue = () => {\n onEvent(componentEvents.EMPLOYEE_FORMS_DONE)\n }\n\n return (\n <section className={className}>\n <DocumentListProvider\n value={{\n employeeForms,\n hasSignedAllForms,\n handleContinue,\n handleRequestFormToSign,\n documentListError,\n }}\n >\n {children ? (\n children\n ) : (\n <Flex flexDirection=\"column\">\n <Head />\n <List />\n <Actions />\n </Flex>\n )}\n </DocumentListProvider>\n </section>\n )\n}\n
|
|
1
|
+
{"version":3,"file":"DocumentList.js","sources":["../../../../../src/components/Employee/DocumentSigner/DocumentList/DocumentList.tsx"],"sourcesContent":["import { useEmployeeFormsListSuspense } from '@gusto/embedded-api/react-query/employeeFormsList'\nimport { type Form } from '@gusto/embedded-api/models/components/form'\nimport { Head } from './Head'\nimport { List } from './List'\nimport { Actions } from './Actions'\nimport { DocumentListProvider } from './useDocumentList'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { Flex } from '@/components/Common'\n\ninterface DocumentListProps extends CommonComponentInterface {\n employeeId: string\n}\n\nexport function DocumentList(props: DocumentListProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, className, children }: DocumentListProps) {\n useI18n('Employee.DocumentSigner')\n const { onEvent } = useBase()\n\n const { data, error: documentListError } = useEmployeeFormsListSuspense({ employeeId })\n const employeeForms = data.formList!\n\n const hasSignedAllForms = employeeForms.every(employeeForm => !employeeForm.requiresSigning)\n\n const handleRequestFormToSign = (data: Form) => {\n onEvent(componentEvents.EMPLOYEE_VIEW_FORM_TO_SIGN, { uuid: data.uuid })\n }\n\n const handleContinue = () => {\n onEvent(componentEvents.EMPLOYEE_FORMS_DONE)\n }\n\n return (\n <section className={className}>\n <DocumentListProvider\n value={{\n employeeForms,\n hasSignedAllForms,\n handleContinue,\n handleRequestFormToSign,\n documentListError,\n }}\n >\n {children ? (\n children\n ) : (\n <Flex flexDirection=\"column\">\n <Head />\n <List />\n <Actions />\n </Flex>\n )}\n </DocumentListProvider>\n </section>\n )\n}\n"],"names":["DocumentList","props","jsx","BaseComponent","Root","employeeId","className","children","useI18n","onEvent","useBase","data","documentListError","useEmployeeFormsListSuspense","employeeForms","hasSignedAllForms","employeeForm","DocumentListProvider","componentEvents","jsxs","Flex","Head","List","Actions"],"mappings":";;;;;;;;;;;AAoBO,SAASA,EAAaC,GAAmD;AAE5E,SAAA,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAM,EAAA,GAAGH,GAAO,EACnB,CAAA;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,WAAAC,GAAW,UAAAC,KAA+B;AACpE,EAAAC,EAAQ,yBAAyB;AAC3B,QAAA,EAAE,SAAAC,EAAQ,IAAIC,EAAQ,GAEtB,EAAE,MAAAC,GAAM,OAAOC,MAAsBC,EAA6B,EAAE,YAAAR,GAAY,GAChFS,IAAgBH,EAAK,UAErBI,IAAoBD,EAAc,MAAM,CAAgBE,MAAA,CAACA,EAAa,eAAe;AAWzF,SAAA,gBAAAd,EAAC,aAAQ,WAAAI,GACP,UAAA,gBAAAJ;AAAA,IAACe;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,eAAAH;AAAA,QACA,mBAAAC;AAAA,QACA,gBAVe,MAAM;AAC3B,UAAAN,EAAQS,EAAgB,mBAAmB;AAAA,QAC7C;AAAA,QASQ,yBAfwB,CAACP,MAAe;AAC9C,UAAAF,EAAQS,EAAgB,4BAA4B,EAAE,MAAMP,EAAK,MAAM;AAAA,QACzE;AAAA,QAcQ,mBAAAC;AAAA,MACF;AAAA,MAEC,UACCL,KAEC,gBAAAY,EAAAC,GAAA,EAAK,eAAc,UAClB,UAAA;AAAA,QAAA,gBAAAlB,EAACmB,GAAK,EAAA;AAAA,0BACLC,GAAK,EAAA;AAAA,0BACLC,GAAQ,CAAA,CAAA;AAAA,MAAA,EACX,CAAA;AAAA,IAAA;AAAA,EAAA,GAGN;AAEJ;"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import { DocumentList } from './DocumentList/DocumentList';
|
|
2
|
-
import { SignatureForm } from './SignatureForm/SignatureForm';
|
|
3
1
|
import { BaseComponentInterface } from '../../Base';
|
|
4
2
|
export interface DocumentSignerProps extends BaseComponentInterface<'Employee.DocumentSigner'> {
|
|
5
3
|
employeeId: string;
|
|
6
4
|
}
|
|
7
|
-
export declare const DocumentSigner: {
|
|
8
|
-
({ employeeId, onEvent, dictionary }: DocumentSignerProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
DocumentList: typeof DocumentList;
|
|
10
|
-
SignatureForm: typeof SignatureForm;
|
|
11
|
-
};
|
|
5
|
+
export declare const DocumentSigner: ({ employeeId, onEvent, dictionary }: DocumentSignerProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { createMachine as
|
|
3
|
-
import { DocumentListContextual as
|
|
4
|
-
import { documentSignerMachine as
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
g("Employee.DocumentSigner", r);
|
|
11
|
-
const e = c(
|
|
1
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { createMachine as i } from "robot3";
|
|
3
|
+
import { DocumentListContextual as c } from "./documentSignerStateMachine.js";
|
|
4
|
+
import { documentSignerMachine as p } from "./stateMachine.js";
|
|
5
|
+
import { Flow as u } from "../../Flow/Flow.js";
|
|
6
|
+
import { useComponentDictionary as a } from "../../../i18n/I18n.js";
|
|
7
|
+
const d = ({ employeeId: o, onEvent: e, dictionary: n }) => {
|
|
8
|
+
a("Employee.DocumentSigner", n);
|
|
9
|
+
const t = i(
|
|
12
10
|
"index",
|
|
13
|
-
|
|
14
|
-
(
|
|
15
|
-
...
|
|
16
|
-
component:
|
|
17
|
-
employeeId:
|
|
11
|
+
p,
|
|
12
|
+
(m) => ({
|
|
13
|
+
...m,
|
|
14
|
+
component: c,
|
|
15
|
+
employeeId: o
|
|
18
16
|
})
|
|
19
17
|
);
|
|
20
|
-
return /* @__PURE__ */
|
|
18
|
+
return /* @__PURE__ */ r(u, { machine: t, onEvent: e });
|
|
21
19
|
};
|
|
22
|
-
o.DocumentList = a;
|
|
23
|
-
o.SignatureForm = f;
|
|
24
20
|
export {
|
|
25
|
-
|
|
21
|
+
d as DocumentSigner
|
|
26
22
|
};
|
|
27
23
|
//# sourceMappingURL=DocumentSigner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentSigner.js","sources":["../../../../src/components/Employee/DocumentSigner/DocumentSigner.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport {\n DocumentListContextual,\n type DocumentSignerContextInterface,\n} from './documentSignerStateMachine'\nimport { documentSignerMachine } from './stateMachine'\nimport {
|
|
1
|
+
{"version":3,"file":"DocumentSigner.js","sources":["../../../../src/components/Employee/DocumentSigner/DocumentSigner.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport {\n DocumentListContextual,\n type DocumentSignerContextInterface,\n} from './documentSignerStateMachine'\nimport { documentSignerMachine } from './stateMachine'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport interface DocumentSignerProps extends BaseComponentInterface<'Employee.DocumentSigner'> {\n employeeId: string\n}\n\nexport const DocumentSigner = ({ employeeId, onEvent, dictionary }: DocumentSignerProps) => {\n useComponentDictionary('Employee.DocumentSigner', dictionary)\n\n const documentSigner = createMachine(\n 'index',\n documentSignerMachine,\n (initialContext: DocumentSignerContextInterface) => ({\n ...initialContext,\n component: DocumentListContextual,\n employeeId,\n }),\n )\n return <Flow machine={documentSigner} onEvent={onEvent} />\n}\n"],"names":["DocumentSigner","employeeId","onEvent","dictionary","useComponentDictionary","documentSigner","createMachine","documentSignerMachine","initialContext","DocumentListContextual","jsx","Flow"],"mappings":";;;;;;AAcO,MAAMA,IAAiB,CAAC,EAAE,YAAAC,GAAY,SAAAC,GAAS,YAAAC,QAAsC;AAC1F,EAAAC,EAAuB,2BAA2BD,CAAU;AAE5D,QAAME,IAAiBC;AAAA,IACrB;AAAA,IACAC;AAAA,IACA,CAACC,OAAoD;AAAA,MACnD,GAAGA;AAAA,MACH,WAAWC;AAAA,MACX,YAAAR;AAAA,IACF;AAAA,EACF;AACA,SAAQ,gBAAAS,EAAAC,GAAA,EAAK,SAASN,GAAgB,SAAAH,EAAkB,CAAA;AAC1D;"}
|