@gusto/embedded-react-sdk 0.10.1 → 0.10.3

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.
Files changed (120) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/components/Base/Base.d.ts +3 -2
  3. package/dist/components/Base/Base.js +56 -50
  4. package/dist/components/Base/Base.js.map +1 -1
  5. package/dist/components/Common/InternalError/InternalError.js.map +1 -1
  6. package/dist/components/Common/UI/ComboBox/ComboBox.js +31 -33
  7. package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
  8. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
  9. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -1
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  13. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  14. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  15. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  16. package/dist/components/Company/BankAccount/BankAccount.d.ts +2 -2
  17. package/dist/components/Company/BankAccount/BankAccount.js +25 -20
  18. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  19. package/dist/components/Company/BankAccount/BankAccountComponents.js +16 -9
  20. package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
  21. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +22 -8
  22. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  23. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.d.ts +1 -0
  24. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +30 -30
  25. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  26. package/dist/components/Company/BankAccount/BankAccountForm/context.d.ts +4 -0
  27. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountList/AccountView.js +14 -13
  30. package/dist/components/Company/BankAccount/BankAccountList/AccountView.js.map +1 -1
  31. package/dist/components/Company/BankAccount/stateMachine.d.ts +1 -1
  32. package/dist/components/Company/BankAccount/stateMachine.js +13 -5
  33. package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
  34. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  35. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  36. package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +5 -7
  37. package/dist/components/Company/DocumentSigner/DocumentSigner.js +24 -24
  38. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  39. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +41 -42
  40. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  41. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  42. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  43. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  44. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  45. package/dist/components/Company/Industry/Context.js +7 -6
  46. package/dist/components/Company/Industry/Context.js.map +1 -1
  47. package/dist/components/Company/Industry/Industry.js +30 -31
  48. package/dist/components/Company/Industry/Industry.js.map +1 -1
  49. package/dist/components/Company/Locations/LocationForm/LocationForm.js +34 -37
  50. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  52. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  53. package/dist/components/Company/Locations/LocationsList/List.js +4 -1
  54. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  55. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  57. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  58. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/PaySchedule.js +70 -71
  60. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  61. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  62. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  63. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  64. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  65. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  66. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  67. package/dist/components/Contractor/Address/Address.js +37 -38
  68. package/dist/components/Contractor/Address/Address.js.map +1 -1
  69. package/dist/components/Contractor/Address/useAddress.js +6 -5
  70. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  71. package/dist/components/Contractor/NewHireReport/NewHireReport.js +57 -58
  72. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  73. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  74. package/dist/components/Employee/Compensation/Compensation.js +123 -132
  75. package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
  76. package/dist/components/Employee/Deductions/Deductions.js +74 -79
  77. package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
  78. package/dist/components/Employee/Deductions/useDeductions.js +6 -5
  79. package/dist/components/Employee/Deductions/useDeductions.js.map +1 -1
  80. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  81. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  82. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +36 -42
  83. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  84. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  85. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  86. package/dist/components/Employee/EmployeeList/EmployeeList.js +57 -58
  87. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  88. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  89. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  90. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +95 -97
  91. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
  92. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  93. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  94. package/dist/components/Employee/Profile/Profile.js +118 -124
  95. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  96. package/dist/components/Employee/Profile/useProfile.js +4 -3
  97. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  98. package/dist/components/Employee/Taxes/FederalForm.js +4 -4
  99. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  100. package/dist/components/Employee/Taxes/Taxes.js +59 -60
  101. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  102. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  103. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  104. package/dist/contexts/ApiProvider/ApiProvider.js +16 -14
  105. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  106. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +5 -0
  107. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +2 -0
  108. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +19 -17
  109. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  110. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.d.ts +7 -0
  111. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.js +10 -0
  112. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.js.map +1 -0
  113. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.d.ts +6 -0
  114. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js +11 -0
  115. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -0
  116. package/dist/shared/constants.d.ts +2 -0
  117. package/dist/shared/constants.js +10 -9
  118. package/dist/shared/constants.js.map +1 -1
  119. package/dist/style.css +1 -1
  120. package/package.json +5 -1
@@ -1,39 +1,34 @@
1
- import { jsx as t, jsxs as C } from "react/jsx-runtime";
2
- import { useTranslation as q } from "react-i18next";
3
- import { useState as M, useMemo as y, useEffect as B } from "react";
1
+ import { jsx as t, jsxs as A } from "react/jsx-runtime";
2
+ import { useTranslation as U } from "react-i18next";
3
+ import { useState as M, useMemo as Y, useEffect as q } from "react";
4
4
  import { z as T } from "zod";
5
- import { useForm as L, FormProvider as O } from "react-hook-form";
6
- import { zodResolver as R } from "@hookform/resolvers/zod";
7
- import { useGarnishmentsListSuspense as G, invalidateGarnishmentsList as N } from "@gusto/embedded-api/react-query/garnishmentsList";
8
- import { useGarnishmentsCreateMutation as j } from "@gusto/embedded-api/react-query/garnishmentsCreate";
9
- import { useGarnishmentsUpdateMutation as z } from "@gusto/embedded-api/react-query/garnishmentsUpdate";
10
- import { useQueryClient as H } from "@tanstack/react-query";
11
- import { DeductionSchema as V, DeductionsProvider as Q } from "./useDeductions.js";
12
- import { BaseComponent as k } from "../../Base/Base.js";
13
- import { useBase as J } from "../../Base/useBase.js";
14
- import { Form as S } from "../../Common/Form/Form.js";
15
- import { useComponentDictionary as K, useI18n as W } from "../../../i18n/I18n.js";
5
+ import { useForm as O, FormProvider as C } from "react-hook-form";
6
+ import { zodResolver as y } from "@hookform/resolvers/zod";
7
+ import { useGarnishmentsListSuspense as B } from "@gusto/embedded-api/react-query/garnishmentsList";
8
+ import { useGarnishmentsCreateMutation as R } from "@gusto/embedded-api/react-query/garnishmentsCreate";
9
+ import { useGarnishmentsUpdateMutation as j } from "@gusto/embedded-api/react-query/garnishmentsUpdate";
10
+ import { DeductionSchema as G, DeductionsProvider as z } from "./useDeductions.js";
11
+ import { BaseComponent as H } from "../../Base/Base.js";
12
+ import { useBase as V } from "../../Base/useBase.js";
13
+ import { Form as L } from "../../Common/Form/Form.js";
14
+ import { useComponentDictionary as k, useI18n as J } from "../../../i18n/I18n.js";
16
15
  import { componentEvents as s } from "../../../shared/constants.js";
17
- import { Actions as _ } from "./Actions.js";
18
- import { IncludeDeductionsForm as X } from "./IncludeDeductionsForm.js";
19
- import { Head as b } from "./Head.js";
20
- import { DeductionForm as Z } from "./DeductionForm.js";
21
- import { DeductionsList as $ } from "./DeductionsList.js";
22
- import { useFlow as ee } from "../../Flow/useFlow.js";
16
+ import { Actions as N } from "./Actions.js";
17
+ import { IncludeDeductionsForm as K } from "./IncludeDeductionsForm.js";
18
+ import { Head as S } from "./Head.js";
19
+ import { DeductionForm as Q } from "./DeductionForm.js";
20
+ import { DeductionsList as W } from "./DeductionsList.js";
21
+ import { useFlow as X } from "../../Flow/useFlow.js";
23
22
  T.object({ includeDeductions: T.enum(["Yes", "No"]) });
24
- function te(n) {
25
- return /* @__PURE__ */ t(k, { ...n, children: /* @__PURE__ */ t(ne, { ...n, children: n.children }) });
23
+ function Z(o) {
24
+ return /* @__PURE__ */ t(H, { ...o, children: /* @__PURE__ */ t($, { ...o, children: o.children }) });
26
25
  }
27
- const ne = ({ employeeId: n, className: d, dictionary: a }) => {
28
- const { onEvent: i, baseSubmitHandler: h } = J(), f = H();
29
- K("Employee.Deductions", a);
30
- const { data: x } = G({ employeeId: n }), p = x.garnishmentList, { mutateAsync: g, isPending: w } = z({
31
- onSettled: () => N(f, [n])
32
- }), { mutateAsync: F, isPending: U } = j({
33
- onSettled: () => N(f, [n])
34
- }), P = p.filter((r) => r.active), [u, m] = M(P.length < 1 ? "INITIAL" : "LIST"), [e, l] = M(null);
35
- W("Employee.Deductions");
36
- const D = y(() => ({
26
+ const $ = ({ employeeId: o, className: d, dictionary: a }) => {
27
+ const { onEvent: i, baseSubmitHandler: h } = V();
28
+ k("Employee.Deductions", a);
29
+ const { data: _ } = B({ employeeId: o }), f = _.garnishmentList, { mutateAsync: p, isPending: b } = j(), { mutateAsync: x, isPending: w } = R(), g = f.filter((r) => r.active), [u, m] = M(g.length < 1 ? "INITIAL" : "LIST"), [e, l] = M(null);
30
+ J("Employee.Deductions");
31
+ const D = Y(() => ({
37
32
  amount: e?.amount ? Number(e.amount) : 0,
38
33
  description: e?.description ?? "",
39
34
  times: e?.times ?? null,
@@ -43,57 +38,57 @@ const ne = ({ employeeId: n, className: d, dictionary: a }) => {
43
38
  deductAsPercentage: e?.deductAsPercentage?.toString() ?? "true",
44
39
  active: !0,
45
40
  courtOrdered: e?.courtOrdered ?? !1
46
- }), [e]), I = L({
41
+ }), [e]), I = O({
47
42
  // resolver: zodResolver(IncludeDeductionsSchema),
48
43
  defaultValues: { includeDeductions: "No" }
49
- }), E = L({
50
- resolver: R(V),
44
+ }), E = O({
45
+ resolver: y(G),
51
46
  defaultValues: D
52
- }), { reset: v } = E;
53
- B(() => {
54
- v(D);
55
- }, [e, D, v, u]);
56
- const Y = async (r) => {
57
- await h(r, async (o) => {
58
- const { garnishment: c } = await g({
47
+ }), { reset: P } = E;
48
+ q(() => {
49
+ P(D);
50
+ }, [e, D, P, u]);
51
+ const F = async (r) => {
52
+ await h(r, async (n) => {
53
+ const { garnishment: c } = await p({
59
54
  request: {
60
- garnishmentId: o.uuid,
55
+ garnishmentId: n.uuid,
61
56
  requestBody: {
62
- ...o,
63
- totalAmount: o.totalAmount ?? void 0,
57
+ ...n,
58
+ totalAmount: n.totalAmount ?? void 0,
64
59
  active: !1,
65
- version: o.version
60
+ version: n.version
66
61
  }
67
62
  }
68
63
  });
69
64
  i(s.EMPLOYEE_DEDUCTION_DELETED, c);
70
65
  });
71
- }, A = async (r) => {
72
- await h(r, async (o) => {
73
- if ("includeDeductions" in o)
74
- if (o.includeDeductions === "Yes")
66
+ }, v = async (r) => {
67
+ await h(r, async (n) => {
68
+ if ("includeDeductions" in n)
69
+ if (n.includeDeductions === "Yes")
75
70
  m("ADD"), i(s.EMPLOYEE_DEDUCTION_ADD);
76
71
  else {
77
72
  i(s.EMPLOYEE_DEDUCTION_DONE);
78
73
  return;
79
74
  }
80
- if (!("includeDeductions" in o)) {
75
+ if (!("includeDeductions" in n)) {
81
76
  if (u === "ADD") {
82
- const { garnishment: c } = await F({
77
+ const { garnishment: c } = await x({
83
78
  request: {
84
- employeeId: n,
85
- requestBody: { ...o, times: o.recurring ? null : 1 }
79
+ employeeId: o,
80
+ requestBody: { ...n, times: n.recurring ? null : 1 }
86
81
  }
87
82
  });
88
83
  i(s.EMPLOYEE_DEDUCTION_CREATED, c);
89
84
  } else if (u === "EDIT") {
90
- const { garnishment: c } = await g({
85
+ const { garnishment: c } = await p({
91
86
  request: {
92
87
  garnishmentId: e?.uuid ?? "",
93
88
  requestBody: {
94
- ...o,
89
+ ...n,
95
90
  version: e?.version,
96
- times: o.recurring ? null : 1
91
+ times: n.recurring ? null : 1
97
92
  }
98
93
  }
99
94
  });
@@ -104,20 +99,20 @@ const ne = ({ employeeId: n, className: d, dictionary: a }) => {
104
99
  });
105
100
  };
106
101
  return /* @__PURE__ */ t("section", { className: d, children: /* @__PURE__ */ t(
107
- Q,
102
+ z,
108
103
  {
109
104
  value: {
110
- isPending: U || w,
111
- employeeId: n,
105
+ isPending: w || b,
106
+ employeeId: o,
112
107
  mode: u,
113
- deductions: p,
108
+ deductions: f,
114
109
  handleAdd: () => {
115
110
  m("ADD");
116
111
  },
117
112
  handleCancel: () => {
118
- m(P.length < 1 ? "INITIAL" : "LIST"), l(null);
113
+ m(g.length < 1 ? "INITIAL" : "LIST"), l(null);
119
114
  },
120
- handleDelete: Y,
115
+ handleDelete: F,
121
116
  handleEdit: (r) => {
122
117
  m("EDIT"), l(r);
123
118
  },
@@ -125,21 +120,21 @@ const ne = ({ employeeId: n, className: d, dictionary: a }) => {
125
120
  i(s.EMPLOYEE_DEDUCTION_DONE);
126
121
  }
127
122
  },
128
- children: u === "INITIAL" ? /* @__PURE__ */ t(O, { ...I, children: /* @__PURE__ */ C(S, { onSubmit: I.handleSubmit(A), children: [
129
- /* @__PURE__ */ t(b, {}),
130
- /* @__PURE__ */ t(X, {}),
131
- /* @__PURE__ */ t(_, {})
132
- ] }) }) : /* @__PURE__ */ t(O, { ...E, children: /* @__PURE__ */ C(S, { onSubmit: E.handleSubmit(A), children: [
133
- /* @__PURE__ */ t(b, {}),
134
- /* @__PURE__ */ t($, {}),
135
- /* @__PURE__ */ t(Z, {}),
136
- /* @__PURE__ */ t(_, {})
123
+ children: u === "INITIAL" ? /* @__PURE__ */ t(C, { ...I, children: /* @__PURE__ */ A(L, { onSubmit: I.handleSubmit(v), children: [
124
+ /* @__PURE__ */ t(S, {}),
125
+ /* @__PURE__ */ t(K, {}),
126
+ /* @__PURE__ */ t(N, {})
127
+ ] }) }) : /* @__PURE__ */ t(C, { ...E, children: /* @__PURE__ */ A(L, { onSubmit: E.handleSubmit(v), children: [
128
+ /* @__PURE__ */ t(S, {}),
129
+ /* @__PURE__ */ t(W, {}),
130
+ /* @__PURE__ */ t(Q, {}),
131
+ /* @__PURE__ */ t(N, {})
137
132
  ] }) })
138
133
  }
139
134
  ) });
140
- }, Se = () => {
141
- const { employeeId: n, onEvent: d } = ee(), { t: a } = q("common");
142
- if (!n)
135
+ }, Oe = () => {
136
+ const { employeeId: o, onEvent: d } = X(), { t: a } = U("common");
137
+ if (!o)
143
138
  throw new Error(
144
139
  a("errors.missingParamsOrContext", {
145
140
  component: "Deductions",
@@ -147,11 +142,11 @@ const ne = ({ employeeId: n, className: d, dictionary: a }) => {
147
142
  provider: "FlowProvider"
148
143
  })
149
144
  );
150
- return /* @__PURE__ */ t(te, { employeeId: n, onEvent: d });
145
+ return /* @__PURE__ */ t(Z, { employeeId: o, onEvent: d });
151
146
  };
152
147
  export {
153
- te as Deductions,
154
- Se as DeductionsContextual,
155
- ne as Root
148
+ Z as Deductions,
149
+ Oe as DeductionsContextual,
150
+ $ as Root
156
151
  };
157
152
  //# sourceMappingURL=Deductions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Deductions.js","sources":["../../../../src/components/Employee/Deductions/Deductions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEffect, useMemo, useState } from 'react'\nimport { z } from 'zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport {\n useGarnishmentsListSuspense,\n invalidateGarnishmentsList,\n} from '@gusto/embedded-api/react-query/garnishmentsList'\nimport { type Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useGarnishmentsCreateMutation } from '@gusto/embedded-api/react-query/garnishmentsCreate'\nimport { useGarnishmentsUpdateMutation } from '@gusto/embedded-api/react-query/garnishmentsUpdate'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport {\n type DeductionInputs,\n type DeductionPayload,\n DeductionSchema,\n DeductionsProvider,\n type MODE,\n} from './useDeductions'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { Actions } from '@/components/Employee/Deductions/Actions'\nimport { IncludeDeductionsForm } from '@/components/Employee/Deductions/IncludeDeductionsForm'\nimport { Head } from '@/components/Employee/Deductions/Head'\nimport { DeductionForm } from '@/components/Employee/Deductions/DeductionForm'\nimport { DeductionsList } from '@/components/Employee/Deductions/DeductionsList'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface DeductionsProps extends CommonComponentInterface<'Employee.Deductions'> {\n employeeId: string\n}\n\nconst IncludeDeductionsSchema = z.object({ includeDeductions: z.enum(['Yes', 'No']) })\nexport type IncludeDeductionsPayload = z.output<typeof IncludeDeductionsSchema>\n\nexport function Deductions(props: DeductionsProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\nexport const Root = ({ employeeId, className, dictionary }: DeductionsProps) => {\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n useComponentDictionary('Employee.Deductions', dictionary)\n\n const { data } = useGarnishmentsListSuspense({ employeeId })\n const deductions = data.garnishmentList!\n\n // Used for deletion or edit of deduction\n const { mutateAsync: updateDeduction, isPending: isPendingUpdate } =\n useGarnishmentsUpdateMutation({\n onSettled: () => invalidateGarnishmentsList(queryClient, [employeeId]),\n })\n const { mutateAsync: createDeduction, isPending: isPendingCreate } =\n useGarnishmentsCreateMutation({\n onSettled: () => invalidateGarnishmentsList(queryClient, [employeeId]),\n })\n\n const activeDeductions = deductions.filter(deduction => deduction.active)\n const [mode, setMode] = useState<MODE>(activeDeductions.length < 1 ? 'INITIAL' : 'LIST')\n const [currentDeduction, setCurrentDeduction] = useState<Garnishment | null>(null)\n useI18n('Employee.Deductions')\n\n const defaultValues: DeductionInputs = useMemo(() => {\n return {\n amount: currentDeduction?.amount ? Number(currentDeduction.amount) : 0,\n description: currentDeduction?.description ?? '',\n times: currentDeduction?.times ?? null,\n recurring: currentDeduction?.recurring?.toString() ?? 'true',\n annualMaximum: currentDeduction?.annualMaximum\n ? Number(currentDeduction.annualMaximum)\n : null,\n payPeriodMaximum: currentDeduction?.payPeriodMaximum\n ? Number(currentDeduction.payPeriodMaximum)\n : null,\n deductAsPercentage: currentDeduction?.deductAsPercentage?.toString() ?? 'true',\n active: true,\n courtOrdered: currentDeduction?.courtOrdered ?? false,\n } as DeductionInputs\n }, [currentDeduction])\n\n const includeDeductionsFormMethods = useForm<IncludeDeductionsPayload>({\n // resolver: zodResolver(IncludeDeductionsSchema),\n defaultValues: { includeDeductions: 'No' },\n })\n\n const formMethods = useForm<DeductionInputs, unknown, DeductionPayload>({\n resolver: zodResolver(DeductionSchema),\n defaultValues,\n })\n\n const { reset: resetForm } = formMethods\n\n useEffect(() => {\n resetForm(defaultValues)\n }, [currentDeduction, defaultValues, resetForm, mode])\n\n const handleDelete = async (deduction: Garnishment) => {\n await baseSubmitHandler(deduction, async payload => {\n //Deletion of deduction is simply updating it with active: false\n const { garnishment } = await updateDeduction({\n request: {\n garnishmentId: payload.uuid,\n requestBody: {\n ...payload,\n totalAmount: payload.totalAmount ?? undefined,\n active: false,\n version: payload.version as string,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DELETED, garnishment)\n })\n }\n const onSubmit: SubmitHandler<DeductionPayload | IncludeDeductionsPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n if ('includeDeductions' in payload) {\n if (payload.includeDeductions === 'Yes') {\n setMode('ADD')\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_ADD)\n } else {\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DONE)\n return\n }\n }\n if (!('includeDeductions' in payload)) {\n if (mode === 'ADD') {\n const { garnishment: createDeductionResponse } = await createDeduction({\n request: {\n employeeId: employeeId,\n requestBody: { ...payload, times: payload.recurring ? null : 1 },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_CREATED, createDeductionResponse)\n } else if (mode === 'EDIT') {\n const { garnishment: updateDeductionResponse } = await updateDeduction({\n request: {\n garnishmentId: currentDeduction?.uuid ?? '',\n requestBody: {\n ...payload,\n version: currentDeduction?.version as string,\n times: payload.recurring ? null : 1,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_UPDATED, updateDeductionResponse)\n setCurrentDeduction(null)\n }\n setMode('LIST')\n }\n })\n }\n const handleAdd = () => {\n setMode('ADD')\n }\n const handleCancel = () => {\n setMode(activeDeductions.length < 1 ? 'INITIAL' : 'LIST')\n setCurrentDeduction(null)\n }\n const handleEdit = (deduction: Garnishment) => {\n setMode('EDIT')\n setCurrentDeduction(deduction)\n }\n const handlePassthrough = () => {\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DONE)\n }\n return (\n <section className={className}>\n <DeductionsProvider\n value={{\n isPending: isPendingCreate || isPendingUpdate,\n employeeId,\n mode,\n deductions,\n handleAdd,\n handleCancel,\n handleDelete,\n handleEdit,\n handlePassthrough,\n }}\n >\n {mode === 'INITIAL' ? (\n <FormProvider {...includeDeductionsFormMethods}>\n <Form onSubmit={includeDeductionsFormMethods.handleSubmit(onSubmit)}>\n <Head />\n <IncludeDeductionsForm />\n <Actions />\n </Form>\n </FormProvider>\n ) : (\n <FormProvider {...formMethods}>\n <Form onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Head />\n <DeductionsList />\n <DeductionForm />\n <Actions />\n </Form>\n </FormProvider>\n )}\n </DeductionsProvider>\n </section>\n )\n}\n\nexport const DeductionsContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'Deductions',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Deductions employeeId={employeeId} onEvent={onEvent} />\n}\n"],"names":["z","Deductions","props","jsx","BaseComponent","Root","employeeId","className","dictionary","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","useComponentDictionary","data","useGarnishmentsListSuspense","deductions","updateDeduction","isPendingUpdate","useGarnishmentsUpdateMutation","invalidateGarnishmentsList","createDeduction","isPendingCreate","useGarnishmentsCreateMutation","activeDeductions","deduction","mode","setMode","useState","currentDeduction","setCurrentDeduction","useI18n","defaultValues","useMemo","includeDeductionsFormMethods","useForm","formMethods","zodResolver","DeductionSchema","resetForm","useEffect","handleDelete","payload","garnishment","componentEvents","onSubmit","createDeductionResponse","updateDeductionResponse","DeductionsProvider","FormProvider","jsxs","Form","Head","IncludeDeductionsForm","Actions","DeductionsList","DeductionForm","DeductionsContextual","useFlow","t","useTranslation"],"mappings":"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"}
1
+ {"version":3,"file":"Deductions.js","sources":["../../../../src/components/Employee/Deductions/Deductions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useEffect, useMemo, useState } from 'react'\nimport { z } from 'zod'\nimport { FormProvider, useForm, type SubmitHandler } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useGarnishmentsListSuspense } from '@gusto/embedded-api/react-query/garnishmentsList'\nimport { type Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useGarnishmentsCreateMutation } from '@gusto/embedded-api/react-query/garnishmentsCreate'\nimport { useGarnishmentsUpdateMutation } from '@gusto/embedded-api/react-query/garnishmentsUpdate'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport {\n type DeductionInputs,\n type DeductionPayload,\n DeductionSchema,\n DeductionsProvider,\n type MODE,\n} from './useDeductions'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { Actions } from '@/components/Employee/Deductions/Actions'\nimport { IncludeDeductionsForm } from '@/components/Employee/Deductions/IncludeDeductionsForm'\nimport { Head } from '@/components/Employee/Deductions/Head'\nimport { DeductionForm } from '@/components/Employee/Deductions/DeductionForm'\nimport { DeductionsList } from '@/components/Employee/Deductions/DeductionsList'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface DeductionsProps extends CommonComponentInterface<'Employee.Deductions'> {\n employeeId: string\n}\n\nconst IncludeDeductionsSchema = z.object({ includeDeductions: z.enum(['Yes', 'No']) })\nexport type IncludeDeductionsPayload = z.output<typeof IncludeDeductionsSchema>\n\nexport function Deductions(props: DeductionsProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\nexport const Root = ({ employeeId, className, dictionary }: DeductionsProps) => {\n const { onEvent, baseSubmitHandler } = useBase()\n useComponentDictionary('Employee.Deductions', dictionary)\n\n const { data } = useGarnishmentsListSuspense({ employeeId })\n const deductions = data.garnishmentList!\n\n // Used for deletion or edit of deduction\n const { mutateAsync: updateDeduction, isPending: isPendingUpdate } =\n useGarnishmentsUpdateMutation()\n const { mutateAsync: createDeduction, isPending: isPendingCreate } =\n useGarnishmentsCreateMutation()\n\n const activeDeductions = deductions.filter(deduction => deduction.active)\n const [mode, setMode] = useState<MODE>(activeDeductions.length < 1 ? 'INITIAL' : 'LIST')\n const [currentDeduction, setCurrentDeduction] = useState<Garnishment | null>(null)\n useI18n('Employee.Deductions')\n\n const defaultValues: DeductionInputs = useMemo(() => {\n return {\n amount: currentDeduction?.amount ? Number(currentDeduction.amount) : 0,\n description: currentDeduction?.description ?? '',\n times: currentDeduction?.times ?? null,\n recurring: currentDeduction?.recurring?.toString() ?? 'true',\n annualMaximum: currentDeduction?.annualMaximum\n ? Number(currentDeduction.annualMaximum)\n : null,\n payPeriodMaximum: currentDeduction?.payPeriodMaximum\n ? Number(currentDeduction.payPeriodMaximum)\n : null,\n deductAsPercentage: currentDeduction?.deductAsPercentage?.toString() ?? 'true',\n active: true,\n courtOrdered: currentDeduction?.courtOrdered ?? false,\n } as DeductionInputs\n }, [currentDeduction])\n\n const includeDeductionsFormMethods = useForm<IncludeDeductionsPayload>({\n // resolver: zodResolver(IncludeDeductionsSchema),\n defaultValues: { includeDeductions: 'No' },\n })\n\n const formMethods = useForm<DeductionInputs, unknown, DeductionPayload>({\n resolver: zodResolver(DeductionSchema),\n defaultValues,\n })\n\n const { reset: resetForm } = formMethods\n\n useEffect(() => {\n resetForm(defaultValues)\n }, [currentDeduction, defaultValues, resetForm, mode])\n\n const handleDelete = async (deduction: Garnishment) => {\n await baseSubmitHandler(deduction, async payload => {\n //Deletion of deduction is simply updating it with active: false\n const { garnishment } = await updateDeduction({\n request: {\n garnishmentId: payload.uuid,\n requestBody: {\n ...payload,\n totalAmount: payload.totalAmount ?? undefined,\n active: false,\n version: payload.version as string,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DELETED, garnishment)\n })\n }\n const onSubmit: SubmitHandler<DeductionPayload | IncludeDeductionsPayload> = async data => {\n await baseSubmitHandler(data, async payload => {\n if ('includeDeductions' in payload) {\n if (payload.includeDeductions === 'Yes') {\n setMode('ADD')\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_ADD)\n } else {\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DONE)\n return\n }\n }\n if (!('includeDeductions' in payload)) {\n if (mode === 'ADD') {\n const { garnishment: createDeductionResponse } = await createDeduction({\n request: {\n employeeId: employeeId,\n requestBody: { ...payload, times: payload.recurring ? null : 1 },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_CREATED, createDeductionResponse)\n } else if (mode === 'EDIT') {\n const { garnishment: updateDeductionResponse } = await updateDeduction({\n request: {\n garnishmentId: currentDeduction?.uuid ?? '',\n requestBody: {\n ...payload,\n version: currentDeduction?.version as string,\n times: payload.recurring ? null : 1,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_UPDATED, updateDeductionResponse)\n setCurrentDeduction(null)\n }\n setMode('LIST')\n }\n })\n }\n const handleAdd = () => {\n setMode('ADD')\n }\n const handleCancel = () => {\n setMode(activeDeductions.length < 1 ? 'INITIAL' : 'LIST')\n setCurrentDeduction(null)\n }\n const handleEdit = (deduction: Garnishment) => {\n setMode('EDIT')\n setCurrentDeduction(deduction)\n }\n const handlePassthrough = () => {\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DONE)\n }\n return (\n <section className={className}>\n <DeductionsProvider\n value={{\n isPending: isPendingCreate || isPendingUpdate,\n employeeId,\n mode,\n deductions,\n handleAdd,\n handleCancel,\n handleDelete,\n handleEdit,\n handlePassthrough,\n }}\n >\n {mode === 'INITIAL' ? (\n <FormProvider {...includeDeductionsFormMethods}>\n <Form onSubmit={includeDeductionsFormMethods.handleSubmit(onSubmit)}>\n <Head />\n <IncludeDeductionsForm />\n <Actions />\n </Form>\n </FormProvider>\n ) : (\n <FormProvider {...formMethods}>\n <Form onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Head />\n <DeductionsList />\n <DeductionForm />\n <Actions />\n </Form>\n </FormProvider>\n )}\n </DeductionsProvider>\n </section>\n )\n}\n\nexport const DeductionsContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'Deductions',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <Deductions employeeId={employeeId} onEvent={onEvent} />\n}\n"],"names":["z","Deductions","props","jsx","BaseComponent","Root","employeeId","className","dictionary","onEvent","baseSubmitHandler","useBase","useComponentDictionary","data","useGarnishmentsListSuspense","deductions","updateDeduction","isPendingUpdate","useGarnishmentsUpdateMutation","createDeduction","isPendingCreate","useGarnishmentsCreateMutation","activeDeductions","deduction","mode","setMode","useState","currentDeduction","setCurrentDeduction","useI18n","defaultValues","useMemo","includeDeductionsFormMethods","useForm","formMethods","zodResolver","DeductionSchema","resetForm","useEffect","handleDelete","payload","garnishment","componentEvents","onSubmit","createDeductionResponse","updateDeductionResponse","DeductionsProvider","FormProvider","jsxs","Form","Head","IncludeDeductionsForm","Actions","DeductionsList","DeductionForm","DeductionsContextual","useFlow","t","useTranslation"],"mappings":"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"}
@@ -6,12 +6,13 @@ import "react-i18next";
6
6
  import "@gusto/embedded-api/models/errors/apierror";
7
7
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
8
8
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
9
+ import "@tanstack/react-query";
9
10
  import "../../Base/useBase.js";
10
11
  import "../../../shared/constants.js";
11
12
  import "dompurify";
12
13
  import "../../../contexts/ComponentAdapter/useComponentContext.js";
13
14
  import { createCompoundContext as o } from "../../Base/createCompoundContext.js";
14
- const f = r.object({
15
+ const x = r.object({
15
16
  active: r.boolean(),
16
17
  amount: r.number().min(0).transform(String),
17
18
  description: r.string().min(1),
@@ -22,10 +23,10 @@ const f = r.object({
22
23
  annualMaximum: r.number().min(0).transform((t) => t > 0 ? t.toString() : null).nullable(),
23
24
  payPeriodMaximum: r.number().min(0).transform((t) => t > 0 ? t.toString() : null).nullable(),
24
25
  deductAsPercentage: r.string().transform((t) => t === "true")
25
- }), [x, D] = o("DeductionsContext");
26
+ }), [D, S] = o("DeductionsContext");
26
27
  export {
27
- f as DeductionSchema,
28
- D as DeductionsProvider,
29
- x as useDeductions
28
+ x as DeductionSchema,
29
+ S as DeductionsProvider,
30
+ D as useDeductions
30
31
  };
31
32
  //# sourceMappingURL=useDeductions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeductions.js","sources":["../../../../src/components/Employee/Deductions/useDeductions.ts"],"sourcesContent":["import type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { z } from 'zod'\nimport { createCompoundContext } from '@/components/Base'\n\nexport type MODE = 'ADD' | 'LIST' | 'INITIAL' | 'EDIT'\n\nexport const DeductionSchema = z.object({\n active: z.boolean(),\n amount: z.number().min(0).transform(String),\n description: z.string().min(1),\n courtOrdered: z.boolean(),\n times: z.number().nullable(), //The number of times to apply the garnishment. Ignored if recurring is true.\n recurring: z.string().transform(val => val === 'true'),\n annualMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n payPeriodMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n deductAsPercentage: z.string().transform(val => val === 'true'),\n})\n\nexport type DeductionInputs = z.input<typeof DeductionSchema>\nexport type DeductionPayload = z.output<typeof DeductionSchema>\n\ntype DeductionsContextType = {\n isPending: boolean\n deductions: Garnishment[]\n employeeId: string\n mode: MODE\n handleAdd: () => void\n handleCancel: () => void\n handleEdit: (deduction: Garnishment) => void\n handleDelete: (deduction: Garnishment) => void\n handlePassthrough: () => void\n}\nconst [useDeductions, DeductionsProvider] =\n createCompoundContext<DeductionsContextType>('DeductionsContext')\nexport { useDeductions, DeductionsProvider }\n"],"names":["DeductionSchema","z","val","useDeductions","DeductionsProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAMa,MAAAA,IAAkBC,EAAE,OAAO;AAAA,EACtC,QAAQA,EAAE,QAAQ;AAAA,EAClB,QAAQA,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,MAAM;AAAA,EAC1C,aAAaA,EAAE,SAAS,IAAI,CAAC;AAAA,EAC7B,cAAcA,EAAE,QAAQ;AAAA,EACxB,OAAOA,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC3B,WAAWA,EAAE,SAAS,UAAU,CAAAC,MAAOA,MAAQ,MAAM;AAAA,EACrD,eAAeD,EACZ,OAAA,EACA,IAAI,CAAC,EACL,UAAU,CAAQC,MAAAA,IAAM,IAAIA,EAAI,SAAA,IAAa,IAAK,EAClD,SAAS;AAAA,EACZ,kBAAkBD,EACf,OAAA,EACA,IAAI,CAAC,EACL,UAAU,CAAQC,MAAAA,IAAM,IAAIA,EAAI,SAAA,IAAa,IAAK,EAClD,SAAS;AAAA,EACZ,oBAAoBD,EAAE,SAAS,UAAU,CAAAC,MAAOA,MAAQ,MAAM;AAChE,CAAC,GAgBK,CAACC,GAAeC,CAAkB,IACtCC,EAA6C,mBAAmB;"}
1
+ {"version":3,"file":"useDeductions.js","sources":["../../../../src/components/Employee/Deductions/useDeductions.ts"],"sourcesContent":["import type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { z } from 'zod'\nimport { createCompoundContext } from '@/components/Base'\n\nexport type MODE = 'ADD' | 'LIST' | 'INITIAL' | 'EDIT'\n\nexport const DeductionSchema = z.object({\n active: z.boolean(),\n amount: z.number().min(0).transform(String),\n description: z.string().min(1),\n courtOrdered: z.boolean(),\n times: z.number().nullable(), //The number of times to apply the garnishment. Ignored if recurring is true.\n recurring: z.string().transform(val => val === 'true'),\n annualMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n payPeriodMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n deductAsPercentage: z.string().transform(val => val === 'true'),\n})\n\nexport type DeductionInputs = z.input<typeof DeductionSchema>\nexport type DeductionPayload = z.output<typeof DeductionSchema>\n\ntype DeductionsContextType = {\n isPending: boolean\n deductions: Garnishment[]\n employeeId: string\n mode: MODE\n handleAdd: () => void\n handleCancel: () => void\n handleEdit: (deduction: Garnishment) => void\n handleDelete: (deduction: Garnishment) => void\n handlePassthrough: () => void\n}\nconst [useDeductions, DeductionsProvider] =\n createCompoundContext<DeductionsContextType>('DeductionsContext')\nexport { useDeductions, DeductionsProvider }\n"],"names":["DeductionSchema","z","val","useDeductions","DeductionsProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;AAMa,MAAAA,IAAkBC,EAAE,OAAO;AAAA,EACtC,QAAQA,EAAE,QAAQ;AAAA,EAClB,QAAQA,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,UAAU,MAAM;AAAA,EAC1C,aAAaA,EAAE,SAAS,IAAI,CAAC;AAAA,EAC7B,cAAcA,EAAE,QAAQ;AAAA,EACxB,OAAOA,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC3B,WAAWA,EAAE,SAAS,UAAU,CAAAC,MAAOA,MAAQ,MAAM;AAAA,EACrD,eAAeD,EACZ,OAAA,EACA,IAAI,CAAC,EACL,UAAU,CAAQC,MAAAA,IAAM,IAAIA,EAAI,SAAA,IAAa,IAAK,EAClD,SAAS;AAAA,EACZ,kBAAkBD,EACf,OAAA,EACA,IAAI,CAAC,EACL,UAAU,CAAQC,MAAAA,IAAM,IAAIA,EAAI,SAAA,IAAa,IAAK,EAClD,SAAS;AAAA,EACZ,oBAAoBD,EAAE,SAAS,UAAU,CAAAC,MAAOA,MAAQ,MAAM;AAChE,CAAC,GAgBK,CAACC,GAAeC,CAAkB,IACtCC,EAA6C,mBAAmB;"}
@@ -5,14 +5,15 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../../Base/useBase.js";
9
10
  import "../../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
13
- const [D, L] = t("DocumentListContext");
14
+ const [L, d] = t("DocumentListContext");
14
15
  export {
15
- L as DocumentListProvider,
16
- D as useDocumentList
16
+ d as DocumentListProvider,
17
+ L as useDocumentList
17
18
  };
18
19
  //# sourceMappingURL=useDocumentList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDocumentList.js","sources":["../../../../../src/components/Employee/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
1
+ {"version":3,"file":"useDocumentList.js","sources":["../../../../../src/components/Employee/DocumentSigner/DocumentList/useDocumentList.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype DocumentListContextType = {\n employeeForms: Form[]\n hasSignedAllForms: boolean\n handleContinue: () => void\n handleRequestFormToSign: (form: Form) => void\n documentListError: Error | null\n formToSign?: Form\n}\n\nconst [useDocumentList, DocumentListProvider] =\n createCompoundContext<DocumentListContextType>('DocumentListContext')\nexport { useDocumentList, DocumentListProvider }\n"],"names":["useDocumentList","DocumentListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAYA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
@@ -1,60 +1,54 @@
1
1
  import { jsx as o, jsxs as x, Fragment as b } from "react/jsx-runtime";
2
- import { invalidateEmployeeFormsList as w } from "@gusto/embedded-api/react-query/employeeFormsList";
3
- import { useEmployeeFormsGetPdfSuspense as B } from "@gusto/embedded-api/react-query/employeeFormsGetPdf";
4
- import { useEmployeeFormsSignMutation as C } from "@gusto/embedded-api/react-query/employeeFormsSign";
5
- import { useEmployeeFormsGetSuspense as A } from "@gusto/embedded-api/react-query/employeeFormsGet";
6
- import { useQueryClient as q } from "@tanstack/react-query";
2
+ import { useEmployeeFormsGetPdfSuspense as y } from "@gusto/embedded-api/react-query/employeeFormsGetPdf";
3
+ import { useEmployeeFormsSignMutation as B } from "@gusto/embedded-api/react-query/employeeFormsSign";
4
+ import { useEmployeeFormsGetSuspense as w } from "@gusto/embedded-api/react-query/employeeFormsGet";
7
5
  import { Form as u } from "./Form.js";
8
6
  import { Head as a } from "./Head.js";
9
7
  import { Actions as c } from "./Actions.js";
10
8
  import { Preview as f } from "./Preview.js";
11
- import { SignatureFormProvider as G } from "./useSignatureForm.js";
12
- import { BaseComponent as H } from "../../../Base/Base.js";
13
- import { useBase as L } from "../../../Base/useBase.js";
14
- import { useI18n as M } from "../../../../i18n/I18n.js";
9
+ import { SignatureFormProvider as A } from "./useSignatureForm.js";
10
+ import { BaseComponent as C } from "../../../Base/Base.js";
11
+ import { useBase as G } from "../../../Base/useBase.js";
12
+ import { useI18n as H } from "../../../../i18n/I18n.js";
15
13
  import { componentEvents as s } from "../../../../shared/constants.js";
16
- import { Flex as R } from "../../../Common/Flex/Flex.js";
17
- import { SignatureForm as j } from "../../../Common/SignatureForm/SignatureForm.js";
18
- function e(r) {
19
- return /* @__PURE__ */ o(H, { ...r, children: /* @__PURE__ */ o(k, { ...r }) });
14
+ import { Flex as M } from "../../../Common/Flex/Flex.js";
15
+ import { SignatureForm as R } from "../../../Common/SignatureForm/SignatureForm.js";
16
+ function n(r) {
17
+ return /* @__PURE__ */ o(C, { ...r, children: /* @__PURE__ */ o(j, { ...r }) });
20
18
  }
21
- function k({ employeeId: r, formId: d, className: l, children: n }) {
22
- M("Employee.DocumentSigner");
23
- const { onEvent: i, baseSubmitHandler: p } = L(), g = q(), { data: F } = A({ employeeId: r, formId: d }), t = F.form, {
24
- data: { formPdf: S }
25
- } = B({ employeeId: r, formId: t.uuid }), E = S.documentUrl, { mutateAsync: h, isPending: P } = C({
26
- onSettled: async () => {
27
- await w(g, [r]);
28
- }
29
- });
30
- return /* @__PURE__ */ o("section", { className: l, children: /* @__PURE__ */ o(
31
- G,
19
+ function j({ employeeId: r, formId: d, className: p, children: t }) {
20
+ H("Employee.DocumentSigner");
21
+ const { onEvent: m, baseSubmitHandler: l } = G(), { data: g } = w({ employeeId: r, formId: d }), e = g.form, {
22
+ data: { formPdf: F }
23
+ } = y({ employeeId: r, formId: e.uuid }), S = F.documentUrl, { mutateAsync: E, isPending: h } = B();
24
+ return /* @__PURE__ */ o("section", { className: p, children: /* @__PURE__ */ o(
25
+ A,
32
26
  {
33
27
  value: {
34
- pdfUrl: E,
28
+ pdfUrl: S,
35
29
  handleBack: () => {
36
- i(s.CANCEL);
30
+ m(s.CANCEL);
37
31
  },
38
- form: t,
39
- isPending: P
32
+ form: e,
33
+ isPending: h
40
34
  },
41
- children: /* @__PURE__ */ o(j, { onSubmit: async (y) => {
42
- await p(y, async (m) => {
43
- if (t.uuid) {
44
- const { form: v } = await h({
35
+ children: /* @__PURE__ */ o(R, { onSubmit: async (P) => {
36
+ await l(P, async (i) => {
37
+ if (e.uuid) {
38
+ const { form: v } = await E({
45
39
  request: {
46
40
  employeeId: r,
47
- formId: t.uuid,
41
+ formId: e.uuid,
48
42
  requestBody: {
49
- signatureText: m.signature,
50
- agree: m.confirmSignature
43
+ signatureText: i.signature,
44
+ agree: i.confirmSignature
51
45
  }
52
46
  }
53
47
  });
54
- i(s.EMPLOYEE_SIGN_FORM, v);
48
+ m(s.EMPLOYEE_SIGN_FORM, v);
55
49
  }
56
50
  });
57
- }, children: /* @__PURE__ */ o(R, { flexDirection: "column", children: n || /* @__PURE__ */ x(b, { children: [
51
+ }, children: /* @__PURE__ */ o(M, { flexDirection: "column", children: t || /* @__PURE__ */ x(b, { children: [
58
52
  /* @__PURE__ */ o(a, {}),
59
53
  /* @__PURE__ */ o(f, {}),
60
54
  /* @__PURE__ */ o(u, {}),
@@ -63,11 +57,11 @@ function k({ employeeId: r, formId: d, className: l, children: n }) {
63
57
  }
64
58
  ) });
65
59
  }
66
- e.Head = a;
67
- e.Preview = f;
68
- e.Form = u;
69
- e.Actions = c;
60
+ n.Head = a;
61
+ n.Preview = f;
62
+ n.Form = u;
63
+ n.Actions = c;
70
64
  export {
71
- e as SignatureForm
65
+ n as SignatureForm
72
66
  };
73
67
  //# sourceMappingURL=SignatureForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureForm.js","sources":["../../../../../src/components/Employee/DocumentSigner/SignatureForm/SignatureForm.tsx"],"sourcesContent":["import { invalidateEmployeeFormsList } from '@gusto/embedded-api/react-query/employeeFormsList'\nimport { useEmployeeFormsGetPdfSuspense } from '@gusto/embedded-api/react-query/employeeFormsGetPdf'\nimport { useEmployeeFormsSignMutation } from '@gusto/embedded-api/react-query/employeeFormsSign'\nimport { useEmployeeFormsGetSuspense } from '@gusto/embedded-api/react-query/employeeFormsGet'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { Form as FormComponent } from './Form'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { Preview } from './Preview'\nimport { SignatureFormProvider } from './useSignatureForm'\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'\nimport type { SignatureFormInputs } from '@/components/Common/SignatureForm'\nimport { SignatureForm as SharedSignatureForm } from '@/components/Common/SignatureForm'\n\ninterface SignatureFormProps extends CommonComponentInterface {\n employeeId: string\n formId: string\n}\n\nexport function SignatureForm(props: SignatureFormProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, formId, className, children }: SignatureFormProps) {\n useI18n('Employee.DocumentSigner')\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data } = useEmployeeFormsGetSuspense({ employeeId, formId })\n const form = data.form!\n\n const {\n data: { formPdf },\n } = useEmployeeFormsGetPdfSuspense({ employeeId, formId: form.uuid })\n const pdfUrl = formPdf!.documentUrl\n\n const { mutateAsync: signForm, isPending: isSignFormPending } = useEmployeeFormsSignMutation({\n onSettled: async () => {\n await invalidateEmployeeFormsList(queryClient, [employeeId])\n },\n })\n\n const handleBack = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const handleSubmit = async (data: SignatureFormInputs) => {\n await baseSubmitHandler(data, async payload => {\n if (form.uuid) {\n const { form: signFormResult } = await signForm({\n request: {\n employeeId,\n formId: form.uuid,\n requestBody: {\n signatureText: payload.signature,\n agree: payload.confirmSignature,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_SIGN_FORM, signFormResult)\n }\n })\n }\n\n return (\n <section className={className}>\n <SignatureFormProvider\n value={{\n pdfUrl,\n handleBack,\n form,\n isPending: isSignFormPending,\n }}\n >\n <SharedSignatureForm onSubmit={handleSubmit}>\n <Flex flexDirection=\"column\">\n {children ? (\n children\n ) : (\n <>\n <Head />\n <Preview />\n <FormComponent />\n <Actions />\n </>\n )}\n </Flex>\n </SharedSignatureForm>\n </SignatureFormProvider>\n </section>\n )\n}\n\nSignatureForm.Head = Head\nSignatureForm.Preview = Preview\nSignatureForm.Form = FormComponent\nSignatureForm.Actions = Actions\n"],"names":["SignatureForm","props","jsx","BaseComponent","Root","employeeId","formId","className","children","useI18n","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","data","useEmployeeFormsGetSuspense","form","formPdf","useEmployeeFormsGetPdfSuspense","pdfUrl","signForm","isSignFormPending","useEmployeeFormsSignMutation","invalidateEmployeeFormsList","SignatureFormProvider","componentEvents","SharedSignatureForm","payload","signFormResult","Flex","jsxs","Fragment","Head","Preview","FormComponent","Actions"],"mappings":";;;;;;;;;;;;;;;;;AA2BO,SAASA,EAAcC,GAAoD;AAE9E,SAAA,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAM,EAAA,GAAGH,GAAO,EACnB,CAAA;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,QAAAC,GAAQ,WAAAC,GAAW,UAAAC,KAAgC;AAC7E,EAAAC,EAAQ,yBAAyB;AACjC,QAAM,EAAE,SAAAC,GAAS,mBAAAC,EAAkB,IAAIC,EAAQ,GACzCC,IAAcC,EAAe,GAE7B,EAAE,MAAAC,EAAK,IAAIC,EAA4B,EAAE,YAAAX,GAAY,QAAAC,GAAQ,GAC7DW,IAAOF,EAAK,MAEZ;AAAA,IACJ,MAAM,EAAE,SAAAG,EAAQ;AAAA,EAAA,IACdC,EAA+B,EAAE,YAAAd,GAAY,QAAQY,EAAK,MAAM,GAC9DG,IAASF,EAAS,aAElB,EAAE,aAAaG,GAAU,WAAWC,EAAA,IAAsBC,EAA6B;AAAA,IAC3F,WAAW,YAAY;AACrB,YAAMC,EAA4BX,GAAa,CAACR,CAAU,CAAC;AAAA,IAAA;AAAA,EAC7D,CACD;AAyBC,SAAA,gBAAAH,EAAC,aAAQ,WAAAK,GACP,UAAA,gBAAAL;AAAA,IAACuB;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,QAAAL;AAAA,QACA,YA3BW,MAAM;AACvB,UAAAV,EAAQgB,EAAgB,MAAM;AAAA,QAChC;AAAA,QA0BQ,MAAAT;AAAA,QACA,WAAWK;AAAA,MACb;AAAA,MAEA,UAAA,gBAAApB,EAACyB,GAAoB,EAAA,UA5BN,OAAOZ,MAA8B;AAClD,cAAAJ,EAAkBI,GAAM,OAAMa,MAAW;AAC7C,cAAIX,EAAK,MAAM;AACb,kBAAM,EAAE,MAAMY,EAAe,IAAI,MAAMR,EAAS;AAAA,cAC9C,SAAS;AAAA,gBACP,YAAAhB;AAAA,gBACA,QAAQY,EAAK;AAAA,gBACb,aAAa;AAAA,kBACX,eAAeW,EAAQ;AAAA,kBACvB,OAAOA,EAAQ;AAAA,gBAAA;AAAA,cACjB;AAAA,YACF,CACD;AACO,YAAAlB,EAAAgB,EAAgB,oBAAoBG,CAAc;AAAA,UAAA;AAAA,QAC5D,CACD;AAAA,MACH,GAaQ,UAAA,gBAAA3B,EAAC4B,KAAK,eAAc,UACjB,UACCtB,KAGE,gBAAAuB,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAA9B,EAAC+B,GAAK,EAAA;AAAA,0BACLC,GAAQ,EAAA;AAAA,0BACRC,GAAc,EAAA;AAAA,0BACdC,GAAQ,CAAA,CAAA;AAAA,MAAA,EACX,CAAA,EAEJ,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AAEApC,EAAc,OAAOiC;AACrBjC,EAAc,UAAUkC;AACxBlC,EAAc,OAAOmC;AACrBnC,EAAc,UAAUoC;"}
1
+ {"version":3,"file":"SignatureForm.js","sources":["../../../../../src/components/Employee/DocumentSigner/SignatureForm/SignatureForm.tsx"],"sourcesContent":["import { useEmployeeFormsGetPdfSuspense } from '@gusto/embedded-api/react-query/employeeFormsGetPdf'\nimport { useEmployeeFormsSignMutation } from '@gusto/embedded-api/react-query/employeeFormsSign'\nimport { useEmployeeFormsGetSuspense } from '@gusto/embedded-api/react-query/employeeFormsGet'\nimport { Form as FormComponent } from './Form'\nimport { Head } from './Head'\nimport { Actions } from './Actions'\nimport { Preview } from './Preview'\nimport { SignatureFormProvider } from './useSignatureForm'\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'\nimport type { SignatureFormInputs } from '@/components/Common/SignatureForm'\nimport { SignatureForm as SharedSignatureForm } from '@/components/Common/SignatureForm'\n\ninterface SignatureFormProps extends CommonComponentInterface {\n employeeId: string\n formId: string\n}\n\nexport function SignatureForm(props: SignatureFormProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ employeeId, formId, className, children }: SignatureFormProps) {\n useI18n('Employee.DocumentSigner')\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { data } = useEmployeeFormsGetSuspense({ employeeId, formId })\n const form = data.form!\n\n const {\n data: { formPdf },\n } = useEmployeeFormsGetPdfSuspense({ employeeId, formId: form.uuid })\n const pdfUrl = formPdf!.documentUrl\n\n const { mutateAsync: signForm, isPending: isSignFormPending } = useEmployeeFormsSignMutation()\n\n const handleBack = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const handleSubmit = async (data: SignatureFormInputs) => {\n await baseSubmitHandler(data, async payload => {\n if (form.uuid) {\n const { form: signFormResult } = await signForm({\n request: {\n employeeId,\n formId: form.uuid,\n requestBody: {\n signatureText: payload.signature,\n agree: payload.confirmSignature,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_SIGN_FORM, signFormResult)\n }\n })\n }\n\n return (\n <section className={className}>\n <SignatureFormProvider\n value={{\n pdfUrl,\n handleBack,\n form,\n isPending: isSignFormPending,\n }}\n >\n <SharedSignatureForm onSubmit={handleSubmit}>\n <Flex flexDirection=\"column\">\n {children ? (\n children\n ) : (\n <>\n <Head />\n <Preview />\n <FormComponent />\n <Actions />\n </>\n )}\n </Flex>\n </SharedSignatureForm>\n </SignatureFormProvider>\n </section>\n )\n}\n\nSignatureForm.Head = Head\nSignatureForm.Preview = Preview\nSignatureForm.Form = FormComponent\nSignatureForm.Actions = Actions\n"],"names":["SignatureForm","props","jsx","BaseComponent","Root","employeeId","formId","className","children","useI18n","onEvent","baseSubmitHandler","useBase","data","useEmployeeFormsGetSuspense","form","formPdf","useEmployeeFormsGetPdfSuspense","pdfUrl","signForm","isSignFormPending","useEmployeeFormsSignMutation","SignatureFormProvider","componentEvents","SharedSignatureForm","payload","signFormResult","Flex","jsxs","Fragment","Head","Preview","FormComponent","Actions"],"mappings":";;;;;;;;;;;;;;;AAyBO,SAASA,EAAcC,GAAoD;AAE9E,SAAA,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAM,EAAA,GAAGH,GAAO,EACnB,CAAA;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,QAAAC,GAAQ,WAAAC,GAAW,UAAAC,KAAgC;AAC7E,EAAAC,EAAQ,yBAAyB;AACjC,QAAM,EAAE,SAAAC,GAAS,mBAAAC,EAAkB,IAAIC,EAAQ,GAEzC,EAAE,MAAAC,EAAK,IAAIC,EAA4B,EAAE,YAAAT,GAAY,QAAAC,GAAQ,GAC7DS,IAAOF,EAAK,MAEZ;AAAA,IACJ,MAAM,EAAE,SAAAG,EAAQ;AAAA,EAAA,IACdC,EAA+B,EAAE,YAAAZ,GAAY,QAAQU,EAAK,MAAM,GAC9DG,IAASF,EAAS,aAElB,EAAE,aAAaG,GAAU,WAAWC,EAAA,IAAsBC,EAA6B;AAyB3F,SAAA,gBAAAnB,EAAC,aAAQ,WAAAK,GACP,UAAA,gBAAAL;AAAA,IAACoB;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,QAAAJ;AAAA,QACA,YA3BW,MAAM;AACvB,UAAAR,EAAQa,EAAgB,MAAM;AAAA,QAChC;AAAA,QA0BQ,MAAAR;AAAA,QACA,WAAWK;AAAA,MACb;AAAA,MAEA,UAAA,gBAAAlB,EAACsB,GAAoB,EAAA,UA5BN,OAAOX,MAA8B;AAClD,cAAAF,EAAkBE,GAAM,OAAMY,MAAW;AAC7C,cAAIV,EAAK,MAAM;AACb,kBAAM,EAAE,MAAMW,EAAe,IAAI,MAAMP,EAAS;AAAA,cAC9C,SAAS;AAAA,gBACP,YAAAd;AAAA,gBACA,QAAQU,EAAK;AAAA,gBACb,aAAa;AAAA,kBACX,eAAeU,EAAQ;AAAA,kBACvB,OAAOA,EAAQ;AAAA,gBAAA;AAAA,cACjB;AAAA,YACF,CACD;AACO,YAAAf,EAAAa,EAAgB,oBAAoBG,CAAc;AAAA,UAAA;AAAA,QAC5D,CACD;AAAA,MACH,GAaQ,UAAA,gBAAAxB,EAACyB,KAAK,eAAc,UACjB,UACCnB,KAGE,gBAAAoB,EAAAC,GAAA,EAAA,UAAA;AAAA,QAAA,gBAAA3B,EAAC4B,GAAK,EAAA;AAAA,0BACLC,GAAQ,EAAA;AAAA,0BACRC,GAAc,EAAA;AAAA,0BACdC,GAAQ,CAAA,CAAA;AAAA,MAAA,EACX,CAAA,EAEJ,CAAA,EACF,CAAA;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AAEAjC,EAAc,OAAO8B;AACrB9B,EAAc,UAAU+B;AACxB/B,EAAc,OAAOgC;AACrBhC,EAAc,UAAUiC;"}
@@ -5,14 +5,15 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../../Base/useBase.js";
9
10
  import "../../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as o } from "../../../Base/createCompoundContext.js";
13
- const [F, S] = o("SignatureFormContext");
14
+ const [S, c] = o("SignatureFormContext");
14
15
  export {
15
- S as SignatureFormProvider,
16
- F as useSignatureForm
16
+ c as SignatureFormProvider,
17
+ S as useSignatureForm
17
18
  };
18
19
  //# sourceMappingURL=useSignatureForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSignatureForm.js","sources":["../../../../../src/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype SignatureFormContextType = {\n form: Form\n pdfUrl?: string | null\n handleBack: () => void\n isPending: boolean\n}\n\nconst [useSignatureForm, SignatureFormProvider] =\n createCompoundContext<SignatureFormContextType>('SignatureFormContext')\nexport { useSignatureForm, SignatureFormProvider }\n"],"names":["useSignatureForm","SignatureFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;AAUA,MAAM,CAACA,GAAkBC,CAAqB,IAC5CC,EAAgD,sBAAsB;"}
1
+ {"version":3,"file":"useSignatureForm.js","sources":["../../../../../src/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.ts"],"sourcesContent":["import type { Form } from '@gusto/embedded-api/models/components/form'\nimport { createCompoundContext } from '@/components/Base'\n\ntype SignatureFormContextType = {\n form: Form\n pdfUrl?: string | null\n handleBack: () => void\n isPending: boolean\n}\n\nconst [useSignatureForm, SignatureFormProvider] =\n createCompoundContext<SignatureFormContextType>('SignatureFormContext')\nexport { useSignatureForm, SignatureFormProvider }\n"],"names":["useSignatureForm","SignatureFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAkBC,CAAqB,IAC5CC,EAAgD,sBAAsB;"}