@gusto/embedded-react-sdk 0.57.2 → 0.57.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 (183) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +32 -32
  3. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
  4. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  5. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.js.map +1 -1
  6. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.js.map +1 -1
  7. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +34 -14
  8. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -1
  9. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js +106 -0
  10. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js.map +1 -0
  11. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js +136 -0
  12. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js.map +1 -0
  13. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +38 -20
  14. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
  15. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +78 -44
  16. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
  17. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +45 -37
  18. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
  19. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +244 -95
  20. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  21. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js +22 -0
  22. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js.map +1 -0
  23. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js +13 -0
  24. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js.map +1 -0
  25. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +48 -43
  26. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
  27. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -1
  28. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js +57 -0
  29. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js.map +1 -0
  30. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
  31. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js +83 -0
  32. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js.map +1 -0
  33. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js +84 -0
  34. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js.map +1 -0
  35. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
  36. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +109 -39
  37. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
  38. package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -1
  39. package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -1
  40. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  41. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +5 -5
  42. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  43. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +1 -1
  44. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -1
  45. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +4 -4
  46. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -1
  47. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +3 -3
  48. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -1
  49. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +6 -6
  50. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
  51. package/dist/components/Contractor/Dashboard/Dashboard.js +20 -20
  52. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
  53. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js +10 -10
  54. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js.map +1 -1
  55. package/dist/components/Contractor/Landing/Landing.js +43 -39
  56. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  57. package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
  58. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  59. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +1 -1
  60. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  61. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +10 -10
  62. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  63. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +4 -4
  64. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  65. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +8 -8
  66. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  67. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +5 -5
  68. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  69. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
  70. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  71. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +1 -1
  72. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -1
  73. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +1 -1
  74. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  75. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +1 -1
  76. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -1
  77. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -9
  78. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  79. package/dist/components/Contractor/Submit/Submit.js +18 -18
  80. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  81. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +6 -6
  82. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
  83. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +25 -25
  84. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  85. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +15 -15
  86. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  87. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +1 -1
  88. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  89. package/dist/components/Employee/Dashboard/Dashboard.js +25 -25
  90. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  91. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +7 -7
  92. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  93. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -1
  94. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  95. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +6 -6
  96. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  97. package/dist/components/Employee/Landing/Landing.js +37 -33
  98. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  99. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +27 -27
  100. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  101. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +6 -6
  102. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  103. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  104. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  105. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +8 -15
  106. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  107. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +11 -11
  108. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  109. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +12 -12
  110. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  111. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +26 -26
  112. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  113. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +66 -64
  114. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  115. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
  116. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  117. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +6 -6
  118. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  119. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  120. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +1 -1
  121. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  122. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  123. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +6 -6
  124. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  125. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  126. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +9 -9
  127. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  128. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  129. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  130. package/dist/components/Payroll/helpers.js +1 -1
  131. package/dist/components/Payroll/helpers.js.map +1 -1
  132. package/dist/components/Payroll/payrollTypes.js +1 -1
  133. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  134. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  135. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
  136. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
  137. package/dist/i18n/en/Company.Management.PaySchedule.json.js +31 -13
  138. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  139. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -12
  140. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  141. package/dist/i18n/en/Payroll.PayrollHistory.json.js +1 -1
  142. package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
  143. package/dist/package.json.js +1 -1
  144. package/dist/shared/constants.js +5 -5
  145. package/dist/shared/constants.js.map +1 -1
  146. package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +2 -2
  147. package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
  148. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.d.ts +1 -1
  149. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.d.ts +1 -1
  150. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +10 -3
  151. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.d.ts +21 -0
  152. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.d.ts +34 -0
  153. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +9 -3
  154. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +5 -1
  155. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +10 -10
  156. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +12 -4
  157. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.d.ts +19 -0
  158. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.d.ts +17 -0
  159. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +1 -1
  160. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.d.ts +34 -0
  161. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +16 -3
  162. package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +1 -1
  163. package/dist/src/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.d.ts +23 -0
  164. package/dist/src/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.d.ts +25 -0
  165. package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +1 -1
  166. package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +1 -1
  167. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
  168. package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
  169. package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
  170. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
  171. package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -1
  172. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
  173. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
  174. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
  175. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -2
  176. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
  177. package/dist/src/components/Payroll/helpers.d.ts +2 -2
  178. package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  179. package/dist/src/i18n/types.d.ts +82 -4
  180. package/dist/src/models/external.d.ts +63 -48
  181. package/dist/src/shared/constants.d.ts +1 -1
  182. package/docs/guides/endpoint-inventory.json +33 -13
  183. package/package.json +18 -18
@@ -4,20 +4,13 @@ import { useFlow as m } from "../../Flow/useFlow.js";
4
4
  import { Profile as a } from "../Profile/onboarding/Profile.js";
5
5
  import { FederalTaxes as i } from "../FederalTaxes/onboarding/FederalTaxes.js";
6
6
  import { Landing as d } from "../Landing/Landing.js";
7
- import { OnboardingSummary as p } from "../OnboardingSummary/OnboardingSummary.js";
8
- import { DocumentSigner as s } from "../Documents/onboarding/DocumentSigner/DocumentSigner.js";
7
+ import { OnboardingSummary as s } from "../OnboardingSummary/OnboardingSummary.js";
8
+ import { DocumentSigner as p } from "../Documents/onboarding/DocumentSigner/DocumentSigner.js";
9
9
  import { PaymentMethod as l } from "../PaymentMethod/onboarding/PaymentMethod.js";
10
- import { StateTaxes as y } from "../StateTaxes/onboarding/StateTaxes.js";
10
+ import { StateTaxes as f } from "../StateTaxes/onboarding/StateTaxes.js";
11
11
  function P() {
12
- const { companyId: e, employeeId: o, onEvent: r } = m();
13
- return /* @__PURE__ */ t(
14
- d,
15
- {
16
- companyId: n(e),
17
- employeeId: n(o),
18
- onEvent: r
19
- }
20
- );
12
+ const { employeeId: e, onEvent: o } = m();
13
+ return /* @__PURE__ */ t(d, { employeeId: n(e), onEvent: o });
21
14
  }
22
15
  function T() {
23
16
  const { companyId: e, employeeId: o, onEvent: r } = m();
@@ -38,7 +31,7 @@ function h() {
38
31
  function F() {
39
32
  const { employeeId: e, onEvent: o } = m();
40
33
  return /* @__PURE__ */ t(
41
- y,
34
+ f,
42
35
  {
43
36
  employeeId: n(e),
44
37
  onEvent: o,
@@ -53,7 +46,7 @@ function b() {
53
46
  function A() {
54
47
  const { employeeId: e, onEvent: o } = m();
55
48
  return /* @__PURE__ */ t(
56
- p,
49
+ s,
57
50
  {
58
51
  employeeId: n(e),
59
52
  onEvent: o,
@@ -64,7 +57,7 @@ function A() {
64
57
  function D() {
65
58
  const { employeeId: e, withEmployeeI9: o = !1, onEvent: r } = m();
66
59
  return /* @__PURE__ */ t(
67
- s,
60
+ p,
68
61
  {
69
62
  employeeId: n(e),
70
63
  withEmployeeI9: o,
@@ -1 +1 @@
1
- {"version":3,"file":"SelfOnboardingComponents.js","sources":["../../../../src/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.tsx"],"sourcesContent":["import type { PaymentMethodBankAccount } from '@gusto/embedded-api/models/components/paymentmethodbankaccount'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport type { FlowContextInterface } from '@/components/Flow/useFlow'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Landing as LandingComponent } from '@/components/Employee/Landing'\nimport { Profile as ProfileComponent } from '@/components/Employee/Profile/onboarding/Profile'\nimport { FederalTaxes as FederalTaxesComponent } from '@/components/Employee/FederalTaxes/onboarding/FederalTaxes'\nimport { StateTaxes as StateTaxesComponent } from '@/components/Employee/StateTaxes/onboarding'\nimport { PaymentMethod as PaymentMethodComponent } from '@/components/Employee/PaymentMethod'\nimport { OnboardingSummary as OnboardingSummaryComponent } from '@/components/Employee/OnboardingSummary'\nimport { DocumentSigner as DocumentSignerComponent } from '@/components/Employee/Documents/onboarding/DocumentSigner'\n\n/**\n * Props for {@link SelfOnboardingFlow}.\n *\n * @public\n */\nexport interface SelfOnboardingFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** The associated employee identifier. */\n employeeId: string\n /** When true, the Document Signer step checks if the employee has I-9 enabled and routes to the Employment Eligibility and I-9 signature form steps. Defaults to `false`. */\n withEmployeeI9?: boolean\n}\n\n/** @internal */\nexport interface SelfOnboardingContextInterface extends FlowContextInterface {\n companyId: string\n employeeId: string\n withEmployeeI9?: boolean\n paymentMethod?: PaymentMethodBankAccount\n}\n\n/** @internal */\nexport function Landing() {\n const { companyId, employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <LandingComponent\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n />\n )\n}\n\n/** @internal */\nexport function Profile() {\n const { companyId, employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <ProfileComponent\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function FederalTaxes() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <FederalTaxesComponent employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function StateTaxes() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <StateTaxesComponent\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function PaymentMethod() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <PaymentMethodComponent employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function OnboardingSummary() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <OnboardingSummaryComponent\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function DocumentSigner() {\n const { employeeId, withEmployeeI9 = false, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <DocumentSignerComponent\n employeeId={ensureRequired(employeeId)}\n withEmployeeI9={withEmployeeI9}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["Landing","companyId","employeeId","onEvent","useFlow","jsx","LandingComponent","ensureRequired","Profile","ProfileComponent","FederalTaxes","FederalTaxesComponent","StateTaxes","StateTaxesComponent","PaymentMethod","PaymentMethodComponent","OnboardingSummary","OnboardingSummaryComponent","DocumentSigner","withEmployeeI9","DocumentSignerComponent"],"mappings":";;;;;;;;;;AAoCO,SAASA,IAAU;AACxB,QAAM,EAAE,WAAAC,GAAW,YAAAC,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAC3C,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAeN,CAAS;AAAA,MACnC,YAAYM,EAAeL,CAAU;AAAA,MACrC,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASK,IAAU;AACxB,QAAM,EAAE,WAAAP,GAAW,YAAAC,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAC3C,SACE,gBAAAC;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,WAAWF,EAAeN,CAAS;AAAA,MACnC,YAAYM,EAAeL,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASO,IAAe;AAC7B,QAAM,EAAE,YAAAR,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,2BAAQO,GAAA,EAAsB,YAAYJ,EAAeL,CAAU,GAAG,SAAAC,GAAkB;AAC1F;AAGO,SAASS,IAAa;AAC3B,QAAM,EAAE,YAAAV,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,SACE,gBAAAC;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACC,YAAYN,EAAeL,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASW,IAAgB;AAC9B,QAAM,EAAE,YAAAZ,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,2BAAQW,GAAA,EAAuB,YAAYR,EAAeL,CAAU,GAAG,SAAAC,GAAkB;AAC3F;AAGO,SAASa,IAAoB;AAClC,QAAM,EAAE,YAAAd,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,SACE,gBAAAC;AAAA,IAACY;AAAAA,IAAA;AAAA,MACC,YAAYV,EAAeL,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASe,IAAiB;AAC/B,QAAM,EAAE,YAAAhB,GAAY,gBAAAiB,IAAiB,IAAO,SAAAhB,EAAA,IAAYC,EAAA;AACxD,SACE,gBAAAC;AAAA,IAACe;AAAAA,IAAA;AAAA,MACC,YAAYb,EAAeL,CAAU;AAAA,MACrC,gBAAAiB;AAAA,MACA,SAAAhB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"SelfOnboardingComponents.js","sources":["../../../../src/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.tsx"],"sourcesContent":["import type { PaymentMethodBankAccount } from '@gusto/embedded-api/models/components/paymentmethodbankaccount'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport type { FlowContextInterface } from '@/components/Flow/useFlow'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Landing as LandingComponent } from '@/components/Employee/Landing'\nimport { Profile as ProfileComponent } from '@/components/Employee/Profile/onboarding/Profile'\nimport { FederalTaxes as FederalTaxesComponent } from '@/components/Employee/FederalTaxes/onboarding/FederalTaxes'\nimport { StateTaxes as StateTaxesComponent } from '@/components/Employee/StateTaxes/onboarding'\nimport { PaymentMethod as PaymentMethodComponent } from '@/components/Employee/PaymentMethod'\nimport { OnboardingSummary as OnboardingSummaryComponent } from '@/components/Employee/OnboardingSummary'\nimport { DocumentSigner as DocumentSignerComponent } from '@/components/Employee/Documents/onboarding/DocumentSigner'\n\n/**\n * Props for {@link SelfOnboardingFlow}.\n *\n * @public\n */\nexport interface SelfOnboardingFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n /** The associated employee identifier. */\n employeeId: string\n /** When true, the Document Signer step checks if the employee has I-9 enabled and routes to the Employment Eligibility and I-9 signature form steps. Defaults to `false`. */\n withEmployeeI9?: boolean\n}\n\n/** @internal */\nexport interface SelfOnboardingContextInterface extends FlowContextInterface {\n companyId: string\n employeeId: string\n withEmployeeI9?: boolean\n paymentMethod?: PaymentMethodBankAccount\n}\n\n/** @internal */\nexport function Landing() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <LandingComponent employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function Profile() {\n const { companyId, employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <ProfileComponent\n companyId={ensureRequired(companyId)}\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function FederalTaxes() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <FederalTaxesComponent employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function StateTaxes() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <StateTaxesComponent\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function PaymentMethod() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <PaymentMethodComponent employeeId={ensureRequired(employeeId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function OnboardingSummary() {\n const { employeeId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <OnboardingSummaryComponent\n employeeId={ensureRequired(employeeId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function DocumentSigner() {\n const { employeeId, withEmployeeI9 = false, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <DocumentSignerComponent\n employeeId={ensureRequired(employeeId)}\n withEmployeeI9={withEmployeeI9}\n onEvent={onEvent}\n />\n )\n}\n"],"names":["Landing","employeeId","onEvent","useFlow","LandingComponent","ensureRequired","Profile","companyId","jsx","ProfileComponent","FederalTaxes","FederalTaxesComponent","StateTaxes","StateTaxesComponent","PaymentMethod","PaymentMethodComponent","OnboardingSummary","OnboardingSummaryComponent","DocumentSigner","withEmployeeI9","DocumentSignerComponent"],"mappings":";;;;;;;;;;AAoCO,SAASA,IAAU;AACxB,QAAM,EAAE,YAAAC,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,2BAAQC,GAAA,EAAiB,YAAYC,EAAeJ,CAAU,GAAG,SAAAC,GAAkB;AACrF;AAGO,SAASI,IAAU;AACxB,QAAM,EAAE,WAAAC,GAAW,YAAAN,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAC3C,SACE,gBAAAK;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWJ,EAAeE,CAAS;AAAA,MACnC,YAAYF,EAAeJ,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASQ,IAAe;AAC7B,QAAM,EAAE,YAAAT,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,2BAAQQ,GAAA,EAAsB,YAAYN,EAAeJ,CAAU,GAAG,SAAAC,GAAkB;AAC1F;AAGO,SAASU,IAAa;AAC3B,QAAM,EAAE,YAAAX,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,SACE,gBAAAK;AAAA,IAACK;AAAAA,IAAA;AAAA,MACC,YAAYR,EAAeJ,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASY,IAAgB;AAC9B,QAAM,EAAE,YAAAb,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,2BAAQY,GAAA,EAAuB,YAAYV,EAAeJ,CAAU,GAAG,SAAAC,GAAkB;AAC3F;AAGO,SAASc,IAAoB;AAClC,QAAM,EAAE,YAAAf,GAAY,SAAAC,EAAA,IAAYC,EAAA;AAChC,SACE,gBAAAK;AAAA,IAACS;AAAAA,IAAA;AAAA,MACC,YAAYZ,EAAeJ,CAAU;AAAA,MACrC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASgB,IAAiB;AAC/B,QAAM,EAAE,YAAAjB,GAAY,gBAAAkB,IAAiB,IAAO,SAAAjB,EAAA,IAAYC,EAAA;AACxD,SACE,gBAAAK;AAAA,IAACY;AAAAA,IAAA;AAAA,MACC,YAAYf,EAAeJ,CAAU;AAAA,MACrC,gBAAAkB;AAAA,MACA,SAAAjB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,4 +1,4 @@
1
- import { jsx as p } from "react/jsx-runtime";
1
+ import { jsx as y } from "react/jsx-runtime";
2
2
  import { useQueryClient as Y } from "@tanstack/react-query";
3
3
  import { useEmployeesGetSuspense as q } from "@gusto/embedded-api/react-query/employeesGet";
4
4
  import { useEmployeeEmploymentsGetTerminationsSuspense as b, invalidateAllEmployeeEmploymentsGetTerminations as I } from "@gusto/embedded-api/react-query/employeeEmploymentsGetTerminations";
@@ -8,7 +8,7 @@ import { usePayrollsCreateOffCycleMutation as k } from "@gusto/embedded-api/reac
8
8
  import { usePaySchedulesGetUnprocessedTerminationPeriods as x, invalidateAllPaySchedulesGetUnprocessedTerminationPeriods as W } from "@gusto/embedded-api/react-query/paySchedulesGetUnprocessedTerminationPeriods";
9
9
  import { invalidateAllPayrollsList as F } from "@gusto/embedded-api/react-query/payrollsList";
10
10
  import { OffCycleReason as H } from "@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls";
11
- import { RFCDate as E } from "@gusto/embedded-api/types/rfcdate";
11
+ import { RFCDate as p } from "@gusto/embedded-api/types/rfcdate";
12
12
  import { TerminateEmployeePresentation as j } from "./TerminateEmployeePresentation.js";
13
13
  import { BaseComponent as Q } from "../../../Base/Base.js";
14
14
  import { useBase as V } from "../../../Base/useBase.js";
@@ -17,14 +17,14 @@ import { useComponentDictionary as z, useI18n as J } from "../../../../i18n/I18n
17
17
  import { firstLastName as K } from "../../../../helpers/formattedStrings.js";
18
18
  import { formatDateToStringDate as X } from "../../../../helpers/dateFormatting.js";
19
19
  function Ce(e) {
20
- return /* @__PURE__ */ p(Q, { ...e, children: /* @__PURE__ */ p(Z, { ...e, children: e.children }) });
20
+ return /* @__PURE__ */ y(Q, { ...e, children: /* @__PURE__ */ y(Z, { ...e, children: e.children }) });
21
21
  }
22
- const Z = ({ employeeId: e, companyId: y, dictionary: D, className: C }) => {
22
+ const Z = ({ employeeId: e, companyId: E, dictionary: D, className: C }) => {
23
23
  z("Employee.Terminations.TerminateEmployee", D), J("Employee.Terminations.TerminateEmployee");
24
24
  const c = Y(), { onEvent: i, baseSubmitHandler: A } = V(), {
25
- data: { employee: u }
25
+ data: { employeeShow: u }
26
26
  } = q({ employeeId: e }), { data: r } = b({ employeeId: e }), { mutateAsync: O, isPending: h } = B(), { mutateAsync: N, isPending: M } = G(), { mutateAsync: _, isPending: R } = k(), { refetch: L } = x(
27
- { companyId: y },
27
+ { companyId: E },
28
28
  { enabled: !1 }
29
29
  );
30
30
  if (u?.terminated && r.terminations?.[0])
@@ -37,7 +37,7 @@ const Z = ({ employeeId: e, companyId: y, dictionary: D, className: C }) => {
37
37
  first_name: u?.firstName,
38
38
  last_name: u?.lastName
39
39
  }), s = r.terminations?.[0];
40
- return /* @__PURE__ */ p(
40
+ return /* @__PURE__ */ y(
41
41
  j,
42
42
  {
43
43
  employeeName: g,
@@ -74,14 +74,14 @@ const Z = ({ employeeId: e, companyId: y, dictionary: D, className: C }) => {
74
74
  if (t.startDate && t.endDate) {
75
75
  const P = await _({
76
76
  request: {
77
- companyId: y,
77
+ companyId: E,
78
78
  requestBody: {
79
79
  offCycle: !0,
80
80
  offCycleReason: H.DismissedEmployee,
81
- startDate: new E(t.startDate),
82
- endDate: new E(t.endDate),
81
+ startDate: new p(t.startDate),
82
+ endDate: new p(t.endDate),
83
83
  employeeUuids: [e],
84
- checkDate: t.checkDate ? new E(t.checkDate) : void 0
84
+ checkDate: t.checkDate ? new p(t.checkDate) : void 0
85
85
  }
86
86
  }
87
87
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TerminateEmployee.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.tsx"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsCreateTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsCreateTermination'\nimport { useEmployeeEmploymentsUpdateTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsUpdateTermination'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api/react-query/payrollsCreateOffCycle'\nimport {\n usePaySchedulesGetUnprocessedTerminationPeriods,\n invalidateAllPaySchedulesGetUnprocessedTerminationPeriods,\n} from '@gusto/embedded-api/react-query/paySchedulesGetUnprocessedTerminationPeriods'\nimport { invalidateAllPayrollsList } from '@gusto/embedded-api/react-query/payrollsList'\nimport { OffCycleReason } from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport type { PayrollOption } from '../types'\nimport { TerminateEmployeePresentation } from './TerminateEmployeePresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\n\n/**\n * Props for {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeProps extends BaseComponentInterface<'Employee.Terminations.TerminateEmployee'> {\n /** The employee identifier to terminate. */\n employeeId: string\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Form values collected by {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeFormData {\n /** The effective date of the termination — the employee's last day of work. */\n lastDayOfWork: Date\n /** How to process the employee's final paycheck. */\n payrollOption: PayrollOption\n}\n\n/**\n * Standalone form for capturing an employee's termination details — last day of work and how to process final payroll.\n *\n * @remarks\n * The main termination form used inside {@link TerminationFlow}. Detects existing\n * terminations and pre-populates for editing when one is active, or routes to\n * the summary view (via the `employee/termination/viewSummary` event) when the\n * employee is already terminated.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/termination/created` | Fired when a new termination is created | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/updated` | Fired when an existing termination is updated | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/done` | Fired when the termination form is completed | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption, payrollUuid?: string }` |\n * | `employee/termination/viewSummary` | Fired when redirecting to view an existing termination | `{ employeeId: string, effectiveDate: string }` |\n * | `employee/termination/payrollCreated` | Fired after a dismissal-payroll period was successfully created | `{ payrolls: PayrollUnprocessed[] }` |\n * | `employee/termination/payrollFailed` | Fired if creating a dismissal payroll fails | `{ employeeId: string, error: unknown }` |\n * | `CANCEL` | Fired when the user clicks Cancel | — |\n *\n * @param props - See {@link TerminateEmployeeProps}.\n * @returns The termination form.\n * @public\n * @group Block components\n *\n * @example\n * ```tsx\n * import { EmployeeManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <EmployeeManagement.TerminateEmployee\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * employeeId=\"4b3f930f-82cd-48a8-b797-798686e12e5e\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TerminateEmployee(props: TerminateEmployeeProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, companyId, dictionary, className }: TerminateEmployeeProps) => {\n useComponentDictionary('Employee.Terminations.TerminateEmployee', dictionary)\n useI18n('Employee.Terminations.TerminateEmployee')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: createTermination, isPending: isCreatingTermination } =\n useEmployeeEmploymentsCreateTerminationMutation()\n\n const { mutateAsync: updateTermination, isPending: isUpdatingTermination } =\n useEmployeeEmploymentsUpdateTerminationMutation()\n\n const { mutateAsync: createOffCyclePayroll, isPending: isCreatingPayroll } =\n usePayrollsCreateOffCycleMutation()\n\n const { refetch: fetchTerminationPeriods } = usePaySchedulesGetUnprocessedTerminationPeriods(\n { companyId },\n { enabled: false },\n )\n\n // If employee is already terminated, redirect to summary with existing termination data\n // Don't pass payrollOption to avoid showing the success alert\n if (employee?.terminated && terminationsData.terminations?.[0]) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_VIEW_SUMMARY, {\n employeeId,\n effectiveDate: terminationsData.terminations[0].effectiveDate!,\n termination: terminationsData.terminations[0],\n })\n return null\n }\n\n const employeeName = firstLastName({\n first_name: employee?.firstName,\n last_name: employee?.lastName,\n })\n\n const existingTermination = terminationsData.terminations?.[0]\n\n const handleSubmit = async (formData: TerminateEmployeeFormData) => {\n const { lastDayOfWork, payrollOption } = formData\n const effectiveDate = formatDateToStringDate(lastDayOfWork)!\n\n await baseSubmitHandler({ effectiveDate, payrollOption }, async () => {\n const runTerminationPayroll = payrollOption === 'dismissalPayroll'\n\n const result = existingTermination\n ? await updateTermination({\n request: {\n employeeId,\n requestBody: {\n version: existingTermination.version!,\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n : await createTermination({\n request: {\n employeeId,\n requestBody: {\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n\n let firstPayrollUuid: string | undefined\n\n if (runTerminationPayroll) {\n try {\n const { data: terminationPeriodsData } = await fetchTerminationPeriods()\n\n const employeePeriods =\n terminationPeriodsData?.unprocessedTerminationPayPeriods?.filter(\n period => period.employeeUuid === employeeId,\n ) ?? []\n\n const createdPayrolls = []\n\n for (const terminationPeriod of employeePeriods) {\n if (terminationPeriod.startDate && terminationPeriod.endDate) {\n const payrollResult = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: OffCycleReason.DismissedEmployee,\n startDate: new RFCDate(terminationPeriod.startDate),\n endDate: new RFCDate(terminationPeriod.endDate),\n employeeUuids: [employeeId],\n checkDate: terminationPeriod.checkDate\n ? new RFCDate(terminationPeriod.checkDate)\n : undefined,\n },\n },\n })\n\n if (payrollResult.payrollUnprocessed) {\n createdPayrolls.push(payrollResult.payrollUnprocessed)\n }\n }\n }\n\n if (createdPayrolls.length > 0) {\n firstPayrollUuid = createdPayrolls[0]?.payrollUuid ?? createdPayrolls[0]?.uuid\n\n await invalidateAllPayrollsList(queryClient)\n await invalidateAllPaySchedulesGetUnprocessedTerminationPeriods(queryClient)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_CREATED, {\n payrolls: createdPayrolls,\n })\n }\n } catch (payrollError) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_FAILED, {\n error: payrollError,\n employeeId,\n })\n }\n }\n\n const eventType = existingTermination\n ? componentEvents.EMPLOYEE_TERMINATION_UPDATED\n : componentEvents.EMPLOYEE_TERMINATION_CREATED\n\n onEvent(eventType, {\n termination: result.termination,\n payrollOption,\n runTerminationPayroll,\n })\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_DONE, {\n employeeId,\n effectiveDate,\n payrollOption,\n payrollUuid: firstPayrollUuid,\n termination: result.termination,\n ...(payrollOption === 'anotherWay' && { manualHandling: true }),\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const isPending = isCreatingTermination || isUpdatingTermination || isCreatingPayroll\n\n return (\n <TerminateEmployeePresentation\n employeeName={employeeName}\n existingTermination={existingTermination}\n onSubmit={handleSubmit}\n onCancel={handleCancel}\n isLoading={isPending}\n className={className}\n />\n )\n}\n"],"names":["TerminateEmployee","props","jsx","BaseComponent","Root","employeeId","companyId","dictionary","className","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","createTermination","isCreatingTermination","useEmployeeEmploymentsCreateTerminationMutation","updateTermination","isUpdatingTermination","useEmployeeEmploymentsUpdateTerminationMutation","createOffCyclePayroll","isCreatingPayroll","usePayrollsCreateOffCycleMutation","fetchTerminationPeriods","usePaySchedulesGetUnprocessedTerminationPeriods","componentEvents","employeeName","firstLastName","existingTermination","TerminateEmployeePresentation","formData","lastDayOfWork","payrollOption","effectiveDate","formatDateToStringDate","runTerminationPayroll","result","invalidateAllEmployeeEmploymentsGetTerminations","firstPayrollUuid","terminationPeriodsData","employeePeriods","period","createdPayrolls","terminationPeriod","payrollResult","OffCycleReason","RFCDate","invalidateAllPayrollsList","invalidateAllPaySchedulesGetUnprocessedTerminationPeriods","payrollError","eventType"],"mappings":";;;;;;;;;;;;;;;;;;AA0FO,SAASA,GAAkBC,GAA+B;AAC/D,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,YAAAC,GAAY,WAAAC,GAAW,YAAAC,GAAY,WAAAC,QAAwC;AACzF,EAAAC,EAAuB,2CAA2CF,CAAU,GAC5EG,EAAQ,yCAAyC;AAEjD,QAAMC,IAAcC,EAAA,GACd,EAAE,SAAAC,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GAEjC;AAAA,IACJ,MAAM,EAAE,UAAAC,EAAA;AAAA,EAAS,IACfC,EAAwB,EAAE,YAAAZ,GAAY,GAEpC,EAAE,MAAMa,EAAA,IAAqBC,EAA8C,EAAE,YAAAd,GAAY,GAEzF,EAAE,aAAae,GAAmB,WAAWC,EAAA,IACjDC,EAAA,GAEI,EAAE,aAAaC,GAAmB,WAAWC,EAAA,IACjDC,EAAA,GAEI,EAAE,aAAaC,GAAuB,WAAWC,EAAA,IACrDC,EAAA,GAEI,EAAE,SAASC,EAAA,IAA4BC;AAAA,IAC3C,EAAE,WAAAxB,EAAA;AAAA,IACF,EAAE,SAAS,GAAA;AAAA,EAAM;AAKnB,MAAIU,GAAU,cAAcE,EAAiB,eAAe,CAAC;AAC3D,WAAAL,EAAQkB,EAAgB,mCAAmC;AAAA,MACzD,YAAA1B;AAAA,MACA,eAAea,EAAiB,aAAa,CAAC,EAAE;AAAA,MAChD,aAAaA,EAAiB,aAAa,CAAC;AAAA,IAAA,CAC7C,GACM;AAGT,QAAMc,IAAeC,EAAc;AAAA,IACjC,YAAYjB,GAAU;AAAA,IACtB,WAAWA,GAAU;AAAA,EAAA,CACtB,GAEKkB,IAAsBhB,EAAiB,eAAe,CAAC;AAkH7D,SACE,gBAAAhB;AAAA,IAACiC;AAAA,IAAA;AAAA,MACC,cAAAH;AAAA,MACA,qBAAAE;AAAA,MACA,UApHiB,OAAOE,MAAwC;AAClE,cAAM,EAAE,eAAAC,GAAe,eAAAC,EAAA,IAAkBF,GACnCG,IAAgBC,EAAuBH,CAAa;AAE1D,cAAMvB,EAAkB,EAAE,eAAAyB,GAAe,eAAAD,EAAA,GAAiB,YAAY;AACpE,gBAAMG,IAAwBH,MAAkB,oBAE1CI,IAASR,IACX,MAAMX,EAAkB;AAAA,YACtB,SAAS;AAAA,cACP,YAAAlB;AAAA,cACA,aAAa;AAAA,gBACX,SAAS6B,EAAoB;AAAA,gBAC7B,eAAAK;AAAA,gBACA,uBAAAE;AAAA,cAAA;AAAA,YACF;AAAA,UACF,CACD,IACD,MAAMrB,EAAkB;AAAA,YACtB,SAAS;AAAA,cACP,YAAAf;AAAA,cACA,aAAa;AAAA,gBACX,eAAAkC;AAAA,gBACA,uBAAAE;AAAA,cAAA;AAAA,YACF;AAAA,UACF,CACD;AAEL,gBAAME,EAAgDhC,CAAW;AAEjE,cAAIiC;AAEJ,cAAIH;AACF,gBAAI;AACF,oBAAM,EAAE,MAAMI,EAAA,IAA2B,MAAMhB,EAAA,GAEzCiB,IACJD,GAAwB,kCAAkC;AAAA,gBACxD,CAAAE,MAAUA,EAAO,iBAAiB1C;AAAA,cAAA,KAC/B,CAAA,GAED2C,IAAkB,CAAA;AAExB,yBAAWC,KAAqBH;AAC9B,oBAAIG,EAAkB,aAAaA,EAAkB,SAAS;AAC5D,wBAAMC,IAAgB,MAAMxB,EAAsB;AAAA,oBAChD,SAAS;AAAA,sBACP,WAAApB;AAAA,sBACA,aAAa;AAAA,wBACX,UAAU;AAAA,wBACV,gBAAgB6C,EAAe;AAAA,wBAC/B,WAAW,IAAIC,EAAQH,EAAkB,SAAS;AAAA,wBAClD,SAAS,IAAIG,EAAQH,EAAkB,OAAO;AAAA,wBAC9C,eAAe,CAAC5C,CAAU;AAAA,wBAC1B,WAAW4C,EAAkB,YACzB,IAAIG,EAAQH,EAAkB,SAAS,IACvC;AAAA,sBAAA;AAAA,oBACN;AAAA,kBACF,CACD;AAED,kBAAIC,EAAc,sBAChBF,EAAgB,KAAKE,EAAc,kBAAkB;AAAA,gBAEzD;AAGF,cAAIF,EAAgB,SAAS,MAC3BJ,IAAmBI,EAAgB,CAAC,GAAG,eAAeA,EAAgB,CAAC,GAAG,MAE1E,MAAMK,EAA0B1C,CAAW,GAC3C,MAAM2C,EAA0D3C,CAAW,GAE3EE,EAAQkB,EAAgB,sCAAsC;AAAA,gBAC5D,UAAUiB;AAAA,cAAA,CACX;AAAA,YAEL,SAASO,GAAc;AACrB,cAAA1C,EAAQkB,EAAgB,qCAAqC;AAAA,gBAC3D,OAAOwB;AAAA,gBACP,YAAAlD;AAAA,cAAA,CACD;AAAA,YACH;AAGF,gBAAMmD,IAAYtB,IACdH,EAAgB,+BAChBA,EAAgB;AAEpB,UAAAlB,EAAQ2C,GAAW;AAAA,YACjB,aAAad,EAAO;AAAA,YACpB,eAAAJ;AAAA,YACA,uBAAAG;AAAA,UAAA,CACD,GAED5B,EAAQkB,EAAgB,2BAA2B;AAAA,YACjD,YAAA1B;AAAA,YACA,eAAAkC;AAAA,YACA,eAAAD;AAAA,YACA,aAAaM;AAAA,YACb,aAAaF,EAAO;AAAA,YACpB,GAAIJ,MAAkB,gBAAgB,EAAE,gBAAgB,GAAA;AAAA,UAAK,CAC9D;AAAA,QACH,CAAC;AAAA,MACH;AAAA,MAaI,UAXiB,MAAM;AACzB,QAAAzB,EAAQkB,EAAgB,MAAM;AAAA,MAChC;AAAA,MAUI,WARcV,KAAyBG,KAAyBG;AAAA,MAShE,WAAAnB;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"TerminateEmployee.js","sources":["../../../../../src/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.tsx"],"sourcesContent":["import { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsCreateTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsCreateTermination'\nimport { useEmployeeEmploymentsUpdateTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsUpdateTermination'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api/react-query/payrollsCreateOffCycle'\nimport {\n usePaySchedulesGetUnprocessedTerminationPeriods,\n invalidateAllPaySchedulesGetUnprocessedTerminationPeriods,\n} from '@gusto/embedded-api/react-query/paySchedulesGetUnprocessedTerminationPeriods'\nimport { invalidateAllPayrollsList } from '@gusto/embedded-api/react-query/payrollsList'\nimport { OffCycleReason } from '@gusto/embedded-api/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport type { PayrollOption } from '../types'\nimport { TerminateEmployeePresentation } from './TerminateEmployeePresentation'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\n\n/**\n * Props for {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeProps extends BaseComponentInterface<'Employee.Terminations.TerminateEmployee'> {\n /** The employee identifier to terminate. */\n employeeId: string\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Form values collected by {@link TerminateEmployee}.\n *\n * @public\n */\nexport interface TerminateEmployeeFormData {\n /** The effective date of the termination — the employee's last day of work. */\n lastDayOfWork: Date\n /** How to process the employee's final paycheck. */\n payrollOption: PayrollOption\n}\n\n/**\n * Standalone form for capturing an employee's termination details — last day of work and how to process final payroll.\n *\n * @remarks\n * The main termination form used inside {@link TerminationFlow}. Detects existing\n * terminations and pre-populates for editing when one is active, or routes to\n * the summary view (via the `employee/termination/viewSummary` event) when the\n * employee is already terminated.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/termination/created` | Fired when a new termination is created | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/updated` | Fired when an existing termination is updated | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption }` |\n * | `employee/termination/done` | Fired when the termination form is completed | `{ employeeId: string, effectiveDate: string, payrollOption: PayrollOption, payrollUuid?: string }` |\n * | `employee/termination/viewSummary` | Fired when redirecting to view an existing termination | `{ employeeId: string, effectiveDate: string }` |\n * | `employee/termination/payrollCreated` | Fired after a dismissal-payroll period was successfully created | `{ payrolls: PayrollUnprocessed[] }` |\n * | `employee/termination/payrollFailed` | Fired if creating a dismissal payroll fails | `{ employeeId: string, error: unknown }` |\n * | `CANCEL` | Fired when the user clicks Cancel | — |\n *\n * @param props - See {@link TerminateEmployeeProps}.\n * @returns The termination form.\n * @public\n * @group Block components\n *\n * @example\n * ```tsx\n * import { EmployeeManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <EmployeeManagement.TerminateEmployee\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * employeeId=\"4b3f930f-82cd-48a8-b797-798686e12e5e\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TerminateEmployee(props: TerminateEmployeeProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, companyId, dictionary, className }: TerminateEmployeeProps) => {\n useComponentDictionary('Employee.Terminations.TerminateEmployee', dictionary)\n useI18n('Employee.Terminations.TerminateEmployee')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const {\n data: { employeeShow: employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: createTermination, isPending: isCreatingTermination } =\n useEmployeeEmploymentsCreateTerminationMutation()\n\n const { mutateAsync: updateTermination, isPending: isUpdatingTermination } =\n useEmployeeEmploymentsUpdateTerminationMutation()\n\n const { mutateAsync: createOffCyclePayroll, isPending: isCreatingPayroll } =\n usePayrollsCreateOffCycleMutation()\n\n const { refetch: fetchTerminationPeriods } = usePaySchedulesGetUnprocessedTerminationPeriods(\n { companyId },\n { enabled: false },\n )\n\n // If employee is already terminated, redirect to summary with existing termination data\n // Don't pass payrollOption to avoid showing the success alert\n if (employee?.terminated && terminationsData.terminations?.[0]) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_VIEW_SUMMARY, {\n employeeId,\n effectiveDate: terminationsData.terminations[0].effectiveDate!,\n termination: terminationsData.terminations[0],\n })\n return null\n }\n\n const employeeName = firstLastName({\n first_name: employee?.firstName,\n last_name: employee?.lastName,\n })\n\n const existingTermination = terminationsData.terminations?.[0]\n\n const handleSubmit = async (formData: TerminateEmployeeFormData) => {\n const { lastDayOfWork, payrollOption } = formData\n const effectiveDate = formatDateToStringDate(lastDayOfWork)!\n\n await baseSubmitHandler({ effectiveDate, payrollOption }, async () => {\n const runTerminationPayroll = payrollOption === 'dismissalPayroll'\n\n const result = existingTermination\n ? await updateTermination({\n request: {\n employeeId,\n requestBody: {\n version: existingTermination.version!,\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n : await createTermination({\n request: {\n employeeId,\n requestBody: {\n effectiveDate,\n runTerminationPayroll,\n },\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n\n let firstPayrollUuid: string | undefined\n\n if (runTerminationPayroll) {\n try {\n const { data: terminationPeriodsData } = await fetchTerminationPeriods()\n\n const employeePeriods =\n terminationPeriodsData?.unprocessedTerminationPayPeriods?.filter(\n period => period.employeeUuid === employeeId,\n ) ?? []\n\n const createdPayrolls = []\n\n for (const terminationPeriod of employeePeriods) {\n if (terminationPeriod.startDate && terminationPeriod.endDate) {\n const payrollResult = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: OffCycleReason.DismissedEmployee,\n startDate: new RFCDate(terminationPeriod.startDate),\n endDate: new RFCDate(terminationPeriod.endDate),\n employeeUuids: [employeeId],\n checkDate: terminationPeriod.checkDate\n ? new RFCDate(terminationPeriod.checkDate)\n : undefined,\n },\n },\n })\n\n if (payrollResult.payrollUnprocessed) {\n createdPayrolls.push(payrollResult.payrollUnprocessed)\n }\n }\n }\n\n if (createdPayrolls.length > 0) {\n firstPayrollUuid = createdPayrolls[0]?.payrollUuid ?? createdPayrolls[0]?.uuid\n\n await invalidateAllPayrollsList(queryClient)\n await invalidateAllPaySchedulesGetUnprocessedTerminationPeriods(queryClient)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_CREATED, {\n payrolls: createdPayrolls,\n })\n }\n } catch (payrollError) {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_PAYROLL_FAILED, {\n error: payrollError,\n employeeId,\n })\n }\n }\n\n const eventType = existingTermination\n ? componentEvents.EMPLOYEE_TERMINATION_UPDATED\n : componentEvents.EMPLOYEE_TERMINATION_CREATED\n\n onEvent(eventType, {\n termination: result.termination,\n payrollOption,\n runTerminationPayroll,\n })\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_DONE, {\n employeeId,\n effectiveDate,\n payrollOption,\n payrollUuid: firstPayrollUuid,\n termination: result.termination,\n ...(payrollOption === 'anotherWay' && { manualHandling: true }),\n })\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n const isPending = isCreatingTermination || isUpdatingTermination || isCreatingPayroll\n\n return (\n <TerminateEmployeePresentation\n employeeName={employeeName}\n existingTermination={existingTermination}\n onSubmit={handleSubmit}\n onCancel={handleCancel}\n isLoading={isPending}\n className={className}\n />\n )\n}\n"],"names":["TerminateEmployee","props","jsx","BaseComponent","Root","employeeId","companyId","dictionary","className","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","createTermination","isCreatingTermination","useEmployeeEmploymentsCreateTerminationMutation","updateTermination","isUpdatingTermination","useEmployeeEmploymentsUpdateTerminationMutation","createOffCyclePayroll","isCreatingPayroll","usePayrollsCreateOffCycleMutation","fetchTerminationPeriods","usePaySchedulesGetUnprocessedTerminationPeriods","componentEvents","employeeName","firstLastName","existingTermination","TerminateEmployeePresentation","formData","lastDayOfWork","payrollOption","effectiveDate","formatDateToStringDate","runTerminationPayroll","result","invalidateAllEmployeeEmploymentsGetTerminations","firstPayrollUuid","terminationPeriodsData","employeePeriods","period","createdPayrolls","terminationPeriod","payrollResult","OffCycleReason","RFCDate","invalidateAllPayrollsList","invalidateAllPaySchedulesGetUnprocessedTerminationPeriods","payrollError","eventType"],"mappings":"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"}
@@ -24,14 +24,14 @@ const J = ({
24
24
  }) => {
25
25
  Q("Employee.Terminations.TerminationSummary", D), W("Employee.Terminations.TerminationSummary");
26
26
  const m = B(), { onEvent: t, baseSubmitHandler: T } = H(), [p, a] = b(!1), {
27
- data: { employee: s }
28
- } = G({ employeeId: n }), { data: P } = j({ employeeId: n }), { mutateAsync: R, isPending: c } = q(), h = [s?.firstName, s?.lastName].filter(Boolean).join(" "), u = P.terminations ?? [], e = u.find((I) => I.active) ?? u[0], f = e?.effectiveDate, L = e?.cancelable === !0, E = U(f), N = new Date((/* @__PURE__ */ new Date()).toDateString()), O = !s?.terminated && E ? E >= N : !1, y = i === "anotherWay", _ = !y && (e?.runTerminationPayroll === !0 || i === "dismissalPayroll"), g = i !== void 0, A = () => {
27
+ data: { employeeShow: s }
28
+ } = G({ employeeId: n }), { data: P } = j({ employeeId: n }), { mutateAsync: h, isPending: c } = q(), R = [s?.firstName, s?.lastName].filter(Boolean).join(" "), u = P.terminations ?? [], e = u.find((I) => I.active) ?? u[0], f = e?.effectiveDate, L = e?.cancelable === !0, E = U(f), N = new Date((/* @__PURE__ */ new Date()).toDateString()), O = !s?.terminated && E ? E >= N : !1, y = i === "anotherWay", _ = !y && (e?.runTerminationPayroll === !0 || i === "dismissalPayroll"), g = i !== void 0, A = () => {
29
29
  a(!0);
30
- }, M = () => {
30
+ }, S = () => {
31
31
  a(!1);
32
- }, S = async () => {
32
+ }, w = async () => {
33
33
  e && await T({ terminationId: e.uuid }, async () => {
34
- await R({
34
+ await h({
35
35
  request: {
36
36
  employeeId: n
37
37
  }
@@ -40,12 +40,12 @@ const J = ({
40
40
  termination: e
41
41
  });
42
42
  });
43
- }, v = () => {
43
+ }, M = () => {
44
44
  t(o.EMPLOYEE_TERMINATION_EDIT, {
45
45
  employeeId: n,
46
46
  termination: e
47
47
  });
48
- }, w = () => {
48
+ }, v = () => {
49
49
  t(o.EMPLOYEE_TERMINATION_RUN_PAYROLL, {
50
50
  employeeId: n,
51
51
  companyId: l,
@@ -62,7 +62,7 @@ const J = ({
62
62
  return e ? /* @__PURE__ */ r(
63
63
  F,
64
64
  {
65
- employeeName: h,
65
+ employeeName: R,
66
66
  effectiveDate: f,
67
67
  canCancel: L,
68
68
  canEdit: O,
@@ -70,13 +70,13 @@ const J = ({
70
70
  showRunOffCyclePayroll: y,
71
71
  showSuccessAlert: g,
72
72
  onCancelClick: A,
73
- onEditDismissal: v,
74
- onRunDismissalPayroll: w,
73
+ onEditDismissal: M,
74
+ onRunDismissalPayroll: v,
75
75
  onRunOffCyclePayroll: Y,
76
76
  isLoading: c,
77
77
  isCancelDialogOpen: p,
78
- onDialogClose: M,
79
- onDialogConfirm: S,
78
+ onDialogClose: S,
79
+ onDialogConfirm: w,
80
80
  isCancelling: c,
81
81
  className: d
82
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TerminationSummary.js","sources":["../../../../../src/components/Employee/Terminations/TerminationSummary/TerminationSummary.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsDeleteTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsDeleteTermination'\nimport { invalidateAllEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport type { PayrollOption } from '../types'\nimport { TerminationSummaryPresentation } from './TerminationSummaryPresentation'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\n/**\n * Props for {@link TerminationSummary}.\n *\n * @public\n */\nexport interface TerminationSummaryProps extends BaseComponentInterface<'Employee.Terminations.TerminationSummary'> {\n /** The associated employee identifier. */\n employeeId: string\n /** The associated company identifier. */\n companyId: string\n /** The selected payroll processing option. When provided, the summary surfaces a success alert confirming the action taken. */\n payrollOption?: PayrollOption\n /** UUID of the created off-cycle payroll (when applicable). */\n payrollUuid?: string\n}\n\n/**\n * Termination summary with edit, cancel, and run-payroll actions plus an offboarding checklist.\n *\n * @remarks\n * Displays termination details and provides actions for managing the termination. Includes an offboarding checklist covering payroll timing, tax forms, and account disconnection. The available actions depend on the termination state:\n *\n * - **Edit** is available when the termination date is in the future and the employee is not yet terminated. The effective date cannot be edited if it is in the past.\n * - **Cancel** is available when the termination is still cancellable — `regularPayroll` or `anotherWay` options can be cancelled; `dismissalPayroll` cannot.\n * - **Run termination payroll** is shown for the `dismissalPayroll` option and navigates to the dismissal payroll flow.\n * - **Run off-cycle payroll** is shown for the `anotherWay` option and navigates to the off-cycle payroll creation flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/termination/edit` | Fired when user clicks to edit termination details | `{ employeeId: string }` |\n * | `employee/termination/cancelled` | Fired when a termination is successfully cancelled | `{ employeeId: string, alert?: `{@link TerminationFlowAlert}` }` |\n * | `employee/termination/runPayroll` | Fired when user clicks to run termination payroll | `{ employeeId: string, companyId: string, effectiveDate: string }` |\n * | `employee/termination/runOffCyclePayroll` | Fired when user clicks to run an off-cycle payroll | `{ employeeId: string, companyId: string }` |\n *\n * @param props - See {@link TerminationSummaryProps}.\n * @returns The termination summary view.\n * @public\n * @group Block components\n *\n * @example\n * ```tsx\n * import { EmployeeManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <EmployeeManagement.TerminationSummary\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * employeeId=\"4b3f930f-82cd-48a8-b797-798686e12e5e\"\n * payrollOption=\"dismissalPayroll\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TerminationSummary(props: TerminationSummaryProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n employeeId,\n companyId,\n payrollOption,\n payrollUuid,\n dictionary,\n className,\n}: TerminationSummaryProps) => {\n useComponentDictionary('Employee.Terminations.TerminationSummary', dictionary)\n useI18n('Employee.Terminations.TerminationSummary')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const [isCancelDialogOpen, setIsCancelDialogOpen] = useState(false)\n\n const {\n data: { employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: deleteTermination, isPending: isDeleting } =\n useEmployeeEmploymentsDeleteTerminationMutation()\n\n const employeeName = [employee?.firstName, employee?.lastName].filter(Boolean).join(' ')\n\n const terminations = terminationsData.terminations ?? []\n const termination = terminations.find(t => t.active) ?? terminations[0]\n\n const effectiveDate = termination?.effectiveDate\n const canCancel = termination?.cancelable === true\n const effectiveDateLocal = normalizeToDate(effectiveDate)\n const todayMidnight = new Date(new Date().toDateString())\n const canEdit =\n !employee?.terminated && effectiveDateLocal ? effectiveDateLocal >= todayMidnight : false\n\n const showRunOffCyclePayroll = payrollOption === 'anotherWay'\n const showRunPayroll =\n !showRunOffCyclePayroll &&\n (termination?.runTerminationPayroll === true || payrollOption === 'dismissalPayroll')\n\n // Only show success alert if payrollOption is provided (meaning we just completed the termination)\n // Don't show it if we're just viewing an existing termination (employee already terminated)\n const showSuccessAlert = payrollOption !== undefined\n\n const handleCancelClick = () => {\n setIsCancelDialogOpen(true)\n }\n\n const handleDialogClose = () => {\n setIsCancelDialogOpen(false)\n }\n\n const handleConfirmCancel = async () => {\n if (!termination) return\n\n await baseSubmitHandler({ terminationId: termination.uuid }, async () => {\n await deleteTermination({\n request: {\n employeeId,\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n await invalidateAllEmployeesList(queryClient)\n\n setIsCancelDialogOpen(false)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_CANCELLED, {\n employeeId,\n termination,\n })\n })\n }\n\n const handleEditDismissal = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_EDIT, {\n employeeId,\n termination,\n })\n }\n\n const handleRunDismissalPayroll = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_RUN_PAYROLL, {\n employeeId,\n companyId,\n payrollUuid,\n termination,\n })\n }\n\n const handleRunOffCyclePayroll = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_RUN_OFF_CYCLE_PAYROLL, {\n employeeId,\n companyId,\n termination,\n })\n }\n\n if (!termination) {\n return null\n }\n\n return (\n <TerminationSummaryPresentation\n employeeName={employeeName}\n effectiveDate={effectiveDate}\n canCancel={canCancel}\n canEdit={canEdit}\n showRunPayroll={showRunPayroll}\n showRunOffCyclePayroll={showRunOffCyclePayroll}\n showSuccessAlert={showSuccessAlert}\n onCancelClick={handleCancelClick}\n onEditDismissal={handleEditDismissal}\n onRunDismissalPayroll={handleRunDismissalPayroll}\n onRunOffCyclePayroll={handleRunOffCyclePayroll}\n isLoading={isDeleting}\n isCancelDialogOpen={isCancelDialogOpen}\n onDialogClose={handleDialogClose}\n onDialogConfirm={handleConfirmCancel}\n isCancelling={isDeleting}\n className={className}\n />\n )\n}\n"],"names":["TerminationSummary","props","jsx","BaseComponent","Root","employeeId","companyId","payrollOption","payrollUuid","dictionary","className","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","isCancelDialogOpen","setIsCancelDialogOpen","useState","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","deleteTermination","isDeleting","useEmployeeEmploymentsDeleteTerminationMutation","employeeName","terminations","termination","t","effectiveDate","canCancel","effectiveDateLocal","normalizeToDate","todayMidnight","canEdit","showRunOffCyclePayroll","showRunPayroll","showSuccessAlert","handleCancelClick","handleDialogClose","handleConfirmCancel","invalidateAllEmployeeEmploymentsGetTerminations","invalidateAllEmployeesList","componentEvents","handleEditDismissal","handleRunDismissalPayroll","handleRunOffCyclePayroll","TerminationSummaryPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"TerminationSummary.js","sources":["../../../../../src/components/Employee/Terminations/TerminationSummary/TerminationSummary.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useEmployeesGetSuspense } from '@gusto/embedded-api/react-query/employeesGet'\nimport {\n useEmployeeEmploymentsGetTerminationsSuspense,\n invalidateAllEmployeeEmploymentsGetTerminations,\n} from '@gusto/embedded-api/react-query/employeeEmploymentsGetTerminations'\nimport { useEmployeeEmploymentsDeleteTerminationMutation } from '@gusto/embedded-api/react-query/employeeEmploymentsDeleteTermination'\nimport { invalidateAllEmployeesList } from '@gusto/embedded-api/react-query/employeesList'\nimport type { PayrollOption } from '../types'\nimport { TerminationSummaryPresentation } from './TerminationSummaryPresentation'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\n\n/**\n * Props for {@link TerminationSummary}.\n *\n * @public\n */\nexport interface TerminationSummaryProps extends BaseComponentInterface<'Employee.Terminations.TerminationSummary'> {\n /** The associated employee identifier. */\n employeeId: string\n /** The associated company identifier. */\n companyId: string\n /** The selected payroll processing option. When provided, the summary surfaces a success alert confirming the action taken. */\n payrollOption?: PayrollOption\n /** UUID of the created off-cycle payroll (when applicable). */\n payrollUuid?: string\n}\n\n/**\n * Termination summary with edit, cancel, and run-payroll actions plus an offboarding checklist.\n *\n * @remarks\n * Displays termination details and provides actions for managing the termination. Includes an offboarding checklist covering payroll timing, tax forms, and account disconnection. The available actions depend on the termination state:\n *\n * - **Edit** is available when the termination date is in the future and the employee is not yet terminated. The effective date cannot be edited if it is in the past.\n * - **Cancel** is available when the termination is still cancellable — `regularPayroll` or `anotherWay` options can be cancelled; `dismissalPayroll` cannot.\n * - **Run termination payroll** is shown for the `dismissalPayroll` option and navigates to the dismissal payroll flow.\n * - **Run off-cycle payroll** is shown for the `anotherWay` option and navigates to the off-cycle payroll creation flow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `employee/termination/edit` | Fired when user clicks to edit termination details | `{ employeeId: string }` |\n * | `employee/termination/cancelled` | Fired when a termination is successfully cancelled | `{ employeeId: string, alert?: `{@link TerminationFlowAlert}` }` |\n * | `employee/termination/runPayroll` | Fired when user clicks to run termination payroll | `{ employeeId: string, companyId: string, effectiveDate: string }` |\n * | `employee/termination/runOffCyclePayroll` | Fired when user clicks to run an off-cycle payroll | `{ employeeId: string, companyId: string }` |\n *\n * @param props - See {@link TerminationSummaryProps}.\n * @returns The termination summary view.\n * @public\n * @group Block components\n *\n * @example\n * ```tsx\n * import { EmployeeManagement } from '@gusto/embedded-react-sdk'\n *\n * function MyComponent() {\n * return (\n * <EmployeeManagement.TerminationSummary\n * companyId=\"a007e1ab-3595-43c2-ab4b-af7a5af2e365\"\n * employeeId=\"4b3f930f-82cd-48a8-b797-798686e12e5e\"\n * payrollOption=\"dismissalPayroll\"\n * onEvent={() => {}}\n * />\n * )\n * }\n * ```\n */\nexport function TerminationSummary(props: TerminationSummaryProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n employeeId,\n companyId,\n payrollOption,\n payrollUuid,\n dictionary,\n className,\n}: TerminationSummaryProps) => {\n useComponentDictionary('Employee.Terminations.TerminationSummary', dictionary)\n useI18n('Employee.Terminations.TerminationSummary')\n\n const queryClient = useQueryClient()\n const { onEvent, baseSubmitHandler } = useBase()\n\n const [isCancelDialogOpen, setIsCancelDialogOpen] = useState(false)\n\n const {\n data: { employeeShow: employee },\n } = useEmployeesGetSuspense({ employeeId })\n\n const { data: terminationsData } = useEmployeeEmploymentsGetTerminationsSuspense({ employeeId })\n\n const { mutateAsync: deleteTermination, isPending: isDeleting } =\n useEmployeeEmploymentsDeleteTerminationMutation()\n\n const employeeName = [employee?.firstName, employee?.lastName].filter(Boolean).join(' ')\n\n const terminations = terminationsData.terminations ?? []\n const termination = terminations.find(t => t.active) ?? terminations[0]\n\n const effectiveDate = termination?.effectiveDate\n const canCancel = termination?.cancelable === true\n const effectiveDateLocal = normalizeToDate(effectiveDate)\n const todayMidnight = new Date(new Date().toDateString())\n const canEdit =\n !employee?.terminated && effectiveDateLocal ? effectiveDateLocal >= todayMidnight : false\n\n const showRunOffCyclePayroll = payrollOption === 'anotherWay'\n const showRunPayroll =\n !showRunOffCyclePayroll &&\n (termination?.runTerminationPayroll === true || payrollOption === 'dismissalPayroll')\n\n // Only show success alert if payrollOption is provided (meaning we just completed the termination)\n // Don't show it if we're just viewing an existing termination (employee already terminated)\n const showSuccessAlert = payrollOption !== undefined\n\n const handleCancelClick = () => {\n setIsCancelDialogOpen(true)\n }\n\n const handleDialogClose = () => {\n setIsCancelDialogOpen(false)\n }\n\n const handleConfirmCancel = async () => {\n if (!termination) return\n\n await baseSubmitHandler({ terminationId: termination.uuid }, async () => {\n await deleteTermination({\n request: {\n employeeId,\n },\n })\n\n await invalidateAllEmployeeEmploymentsGetTerminations(queryClient)\n await invalidateAllEmployeesList(queryClient)\n\n setIsCancelDialogOpen(false)\n\n onEvent(componentEvents.EMPLOYEE_TERMINATION_CANCELLED, {\n employeeId,\n termination,\n })\n })\n }\n\n const handleEditDismissal = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_EDIT, {\n employeeId,\n termination,\n })\n }\n\n const handleRunDismissalPayroll = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_RUN_PAYROLL, {\n employeeId,\n companyId,\n payrollUuid,\n termination,\n })\n }\n\n const handleRunOffCyclePayroll = () => {\n onEvent(componentEvents.EMPLOYEE_TERMINATION_RUN_OFF_CYCLE_PAYROLL, {\n employeeId,\n companyId,\n termination,\n })\n }\n\n if (!termination) {\n return null\n }\n\n return (\n <TerminationSummaryPresentation\n employeeName={employeeName}\n effectiveDate={effectiveDate}\n canCancel={canCancel}\n canEdit={canEdit}\n showRunPayroll={showRunPayroll}\n showRunOffCyclePayroll={showRunOffCyclePayroll}\n showSuccessAlert={showSuccessAlert}\n onCancelClick={handleCancelClick}\n onEditDismissal={handleEditDismissal}\n onRunDismissalPayroll={handleRunDismissalPayroll}\n onRunOffCyclePayroll={handleRunOffCyclePayroll}\n isLoading={isDeleting}\n isCancelDialogOpen={isCancelDialogOpen}\n onDialogClose={handleDialogClose}\n onDialogConfirm={handleConfirmCancel}\n isCancelling={isDeleting}\n className={className}\n />\n )\n}\n"],"names":["TerminationSummary","props","jsx","BaseComponent","Root","employeeId","companyId","payrollOption","payrollUuid","dictionary","className","useComponentDictionary","useI18n","queryClient","useQueryClient","onEvent","baseSubmitHandler","useBase","isCancelDialogOpen","setIsCancelDialogOpen","useState","employee","useEmployeesGetSuspense","terminationsData","useEmployeeEmploymentsGetTerminationsSuspense","deleteTermination","isDeleting","useEmployeeEmploymentsDeleteTerminationMutation","employeeName","terminations","termination","t","effectiveDate","canCancel","effectiveDateLocal","normalizeToDate","todayMidnight","canEdit","showRunOffCyclePayroll","showRunPayroll","showSuccessAlert","handleCancelClick","handleDialogClose","handleConfirmCancel","invalidateAllEmployeeEmploymentsGetTerminations","invalidateAllEmployeesList","componentEvents","handleEditDismissal","handleRunDismissalPayroll","handleRunOffCyclePayroll","TerminationSummaryPresentation"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useEmployeeAddressesDeleteWorkAddressMutation as C } from "@gusto/embed
3
3
  import { useEmployeeAddressesGetWorkAddresses as G } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
4
4
  import { useEmployeesGet as K } from "@gusto/embedded-api/react-query/employeesGet";
5
5
  import { useBaseSubmit as O } from "../../../Base/useBaseSubmit.js";
6
- import { useWorkAddressForm as h } from "../../Profile/shared/useWorkAddressForm/useWorkAddressForm.js";
6
+ import { useWorkAddressForm as L } from "../../Profile/shared/useWorkAddressForm/useWorkAddressForm.js";
7
7
  import { composeErrorHandler as Q } from "../../../../partner-hook-utils/composeErrorHandler.js";
8
8
  import { firstLastName as q } from "../../../../helpers/formattedStrings.js";
9
9
  import { normalizeToSDKError as x, SDKInternalError as d } from "../../../../types/sdkError.js";
@@ -26,38 +26,38 @@ function de({
26
26
  onEvent: n
27
27
  }) {
28
28
  const {
29
- baseSubmitHandler: D,
30
- error: F,
31
- setError: S
32
- } = O("Employee.Management.WorkAddress"), l = C(), [t, v] = H(void 0), o = K({ employeeId: e }, { enabled: !!e }), a = o.data?.employee?.companyUuid, f = G(
29
+ baseSubmitHandler: S,
30
+ error: D,
31
+ setError: F
32
+ } = O("Employee.Management.WorkAddress"), l = C(), [t, v] = H(void 0), o = K({ employeeId: e }, { enabled: !!e }), a = o.data?.employeeShow?.companyUuid, f = G(
33
33
  { employeeId: e },
34
34
  { enabled: !!e && !!a }
35
35
  ), r = f.data?.employeeWorkAddressesList, b = g(() => r?.length ? r.find((s) => s.active) ?? r[0] ?? null : null, [r]), E = t ?? b?.uuid, p = g(() => {
36
36
  if (!(!t || !r))
37
37
  return r.find((s) => s.uuid === t);
38
- }, [t, r]), M = E ? r?.find((s) => s.uuid === E) : void 0, R = p ? p.active !== !0 : !1, u = h({
38
+ }, [t, r]), M = E ? r?.find((s) => s.uuid === E) : void 0, R = p ? p.active !== !0 : !1, u = L({
39
39
  companyId: a,
40
40
  employeeId: e,
41
41
  workAddressUuid: E,
42
42
  initialAddress: M,
43
43
  withEffectiveDateField: R
44
- }), m = h({
44
+ }), m = L({
45
45
  companyId: a,
46
46
  employeeId: e,
47
47
  withEffectiveDateField: !0
48
- }), y = g(() => {
49
- const s = o.data?.employee;
48
+ }), w = g(() => {
49
+ const s = o.data?.employeeShow;
50
50
  return s ? q({
51
51
  first_name: s.firstName,
52
52
  last_name: s.lastName
53
53
  }).trim() : "";
54
- }, [o.data?.employee]), A = !!o.data?.employee && !a, i = Q(
54
+ }, [o.data?.employeeShow]), y = !!o.data?.employeeShow && !a, i = Q(
55
55
  [
56
56
  o,
57
57
  f,
58
58
  u,
59
59
  m,
60
- ...A ? [
60
+ ...y ? [
61
61
  {
62
62
  errorHandling: {
63
63
  errors: [
@@ -75,28 +75,28 @@ function de({
75
75
  }
76
76
  ] : []
77
77
  ],
78
- { submitError: F, setSubmitError: S }
79
- ), k = {
78
+ { submitError: D, setSubmitError: F }
79
+ ), A = {
80
80
  setEditTargetUuid: v,
81
81
  confirmDeleteWorkAddress: async (s) => {
82
82
  const _ = r?.find((c) => c.uuid === s) ?? null;
83
- let w = !1;
84
- return await D(
83
+ let k = !1;
84
+ return await S(
85
85
  { workAddressUuid: s, snapshot: _ },
86
- async ({ workAddressUuid: c, snapshot: W }) => {
87
- const L = r?.find((T) => T.uuid === c);
88
- if (!L)
86
+ async ({ workAddressUuid: c, snapshot: h }) => {
87
+ const W = r?.find((T) => T.uuid === c);
88
+ if (!W)
89
89
  throw new d("Work address not found");
90
- if (L.active === !0)
90
+ if (W.active === !0)
91
91
  throw new d("Cannot delete the active work address");
92
92
  await l.mutateAsync({
93
93
  request: { workAddressUuid: c }
94
- }), w = !0, W && n(z.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_DELETED, W);
94
+ }), k = !0, h && n(z.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_DELETED, h);
95
95
  }
96
- ), w;
96
+ ), k;
97
97
  }
98
98
  }, U = {
99
- employeeDisplayName: y,
99
+ employeeDisplayName: w,
100
100
  employeeWorkAddresses: r,
101
101
  editTargetUuid: t,
102
102
  editWorkAddressForm: u,
@@ -104,7 +104,7 @@ function de({
104
104
  };
105
105
  if (o.isLoading)
106
106
  return { isLoading: !0, errorHandling: i };
107
- if (o.isError || A)
107
+ if (o.isError || y)
108
108
  return {
109
109
  isLoading: !1,
110
110
  data: U,
@@ -113,7 +113,7 @@ function de({
113
113
  isEmployeeError: !0
114
114
  },
115
115
  errorHandling: i,
116
- actions: k
116
+ actions: A
117
117
  };
118
118
  if (f.isLoading)
119
119
  return { isLoading: !0, errorHandling: i };
@@ -123,7 +123,7 @@ function de({
123
123
  return {
124
124
  isLoading: !1,
125
125
  data: {
126
- employeeDisplayName: y,
126
+ employeeDisplayName: w,
127
127
  employeeWorkAddresses: r,
128
128
  editTargetUuid: t,
129
129
  editWorkAddressForm: P,
@@ -134,7 +134,7 @@ function de({
134
134
  isEmployeeError: !1
135
135
  },
136
136
  errorHandling: i,
137
- actions: k
137
+ actions: A
138
138
  };
139
139
  }
140
140
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useWorkAddressManagement.js","sources":["../../../../../src/components/Employee/WorkAddress/management/useWorkAddressManagement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesDeleteWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { useWorkAddressForm } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport type {\n UseWorkAddressFormReady,\n UseWorkAddressFormResult,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseHookReady,\n HookErrorHandling,\n HookLoadingResult,\n} from '@/partner-hook-utils/types'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { normalizeToSDKError, SDKInternalError } from '@/types/sdkError'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Params for {@link useWorkAddressManagement}.\n *\n * @public\n */\nexport interface UseWorkAddressManagementParams {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when a work address is deleted. */\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface UseWorkAddressManagementDataPendingForms extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormResult\n changeWorkAddressForm: UseWorkAddressFormResult\n}\n\ninterface UseWorkAddressManagementDataReady extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n}\n\ninterface UseWorkAddressManagementStatusEmployeeError extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: true\n}\n\ninterface UseWorkAddressManagementStatusSuccess extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: false\n}\n\ninterface UseWorkAddressManagementActions {\n setEditTargetUuid: (workAddressUuid: string | undefined) => void\n confirmDeleteWorkAddress: (workAddressUuid: string) => Promise<boolean>\n}\n\ninterface UseWorkAddressManagementReadyEmployeeError extends BaseHookReady<\n UseWorkAddressManagementDataPendingForms,\n UseWorkAddressManagementStatusEmployeeError\n> {\n actions: UseWorkAddressManagementActions\n}\n\n/**\n * Ready state of {@link useWorkAddressManagement} when the employee was fetched successfully.\n *\n * @public\n */\nexport interface UseWorkAddressManagementReadySuccess extends BaseHookReady<\n UseWorkAddressManagementDataReady,\n UseWorkAddressManagementStatusSuccess\n> {\n /** Actions for changing the edit target and confirming work address deletion. */\n actions: UseWorkAddressManagementActions\n}\n\ntype UseWorkAddressManagementReady =\n UseWorkAddressManagementReadyEmployeeError | UseWorkAddressManagementReadySuccess\n\n/**\n * Return type of {@link useWorkAddressManagement}.\n *\n * @public\n */\nexport type UseWorkAddressManagementResult = HookLoadingResult | UseWorkAddressManagementReady\n\n/**\n * Type guard for the success branch of {@link useWorkAddressManagement}.\n *\n * @param value - The hook result to narrow.\n * @returns `true` when the hook has finished loading and the employee fetch succeeded.\n * @public\n */\nexport function isUseWorkAddressManagementSuccess(\n value: UseWorkAddressManagementResult,\n): value is UseWorkAddressManagementReadySuccess {\n if (value.isLoading) {\n return false\n }\n return !value.status.isEmployeeError\n}\n\nfunction workAddressFormsReady(\n editWorkAddressForm: UseWorkAddressFormResult,\n changeWorkAddressForm: UseWorkAddressFormResult,\n): Pick<UseWorkAddressManagementDataReady, 'editWorkAddressForm' | 'changeWorkAddressForm'> {\n if (editWorkAddressForm.isLoading) {\n throw new SDKInternalError('Edit work address form is still loading')\n }\n if (changeWorkAddressForm.isLoading) {\n throw new SDKInternalError('Change work address form is still loading')\n }\n return {\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n}\n\n/**\n * Headless hook for managing an employee's work addresses.\n *\n * @remarks\n * Fetches the employee and their work addresses, exposes edit and change form hooks\n * for the address modal, and provides an action to delete a non-active address.\n * Use {@link isUseWorkAddressManagementSuccess} to narrow the ready state when the\n * employee fetch succeeded.\n *\n * @param params - {@link UseWorkAddressManagementParams}\n * @returns A {@link HookLoadingResult} while loading, or the ready state once data is available.\n * @public\n */\nexport function useWorkAddressManagement({\n employeeId,\n onEvent,\n}: UseWorkAddressManagementParams): UseWorkAddressManagementResult {\n const {\n baseSubmitHandler,\n error: rootSubmitError,\n setError: setRootSubmitError,\n } = useBaseSubmit('Employee.Management.WorkAddress')\n const deleteWorkAddressMutation = useEmployeeAddressesDeleteWorkAddressMutation()\n const [editTargetUuid, setEditTargetUuid] = useState<string | undefined>(undefined)\n\n const employeeQuery = useEmployeesGet({ employeeId }, { enabled: !!employeeId })\n const companyId = employeeQuery.data?.employee?.companyUuid\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId },\n { enabled: !!employeeId && !!companyId },\n )\n\n const employeeWorkAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n\n const currentWorkAddress = useMemo<EmployeeWorkAddress | null>(() => {\n if (!employeeWorkAddresses?.length) {\n return null\n }\n return employeeWorkAddresses.find(w => w.active) ?? employeeWorkAddresses[0] ?? null\n }, [employeeWorkAddresses])\n\n const workAddressUuidForEdit = editTargetUuid ?? currentWorkAddress?.uuid\n\n const editInactiveRow = useMemo(() => {\n if (!editTargetUuid || !employeeWorkAddresses) {\n return undefined\n }\n return employeeWorkAddresses.find(w => w.uuid === editTargetUuid)\n }, [editTargetUuid, employeeWorkAddresses])\n\n const editingWorkAddressRow = workAddressUuidForEdit\n ? employeeWorkAddresses?.find(w => w.uuid === workAddressUuidForEdit)\n : undefined\n\n const withEffectiveDateOnEdit = editInactiveRow ? editInactiveRow.active !== true : false\n\n const editWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid: workAddressUuidForEdit,\n initialAddress: editingWorkAddressRow,\n withEffectiveDateField: withEffectiveDateOnEdit,\n })\n\n const changeWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n withEffectiveDateField: true,\n })\n\n const employeeDisplayName = useMemo(() => {\n const employee = employeeQuery.data?.employee\n if (!employee) {\n return ''\n }\n return firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }).trim()\n }, [employeeQuery.data?.employee])\n\n const isMissingCompany = !!employeeQuery.data?.employee && !companyId\n\n const errorHandling: HookErrorHandling = composeErrorHandler(\n [\n employeeQuery,\n workAddressesQuery,\n editWorkAddressForm,\n changeWorkAddressForm,\n ...(isMissingCompany\n ? [\n {\n errorHandling: {\n errors: [\n normalizeToSDKError(\n new SDKInternalError(\n 'Employee record is missing companyUuid, which is required to load work address locations.',\n ),\n ),\n ],\n retryQueries: () => {},\n clearSubmitError: () => {},\n },\n },\n ]\n : []),\n ],\n { submitError: rootSubmitError, setSubmitError: setRootSubmitError },\n )\n\n const confirmDeleteWorkAddress = async (workAddressUuid: string): Promise<boolean> => {\n const snapshot = employeeWorkAddresses?.find(w => w.uuid === workAddressUuid) ?? null\n\n let succeeded = false\n await baseSubmitHandler(\n { workAddressUuid, snapshot },\n async ({ workAddressUuid: uuid, snapshot: snap }) => {\n const target = employeeWorkAddresses?.find(w => w.uuid === uuid)\n if (!target) {\n throw new SDKInternalError('Work address not found')\n }\n if (target.active === true) {\n throw new SDKInternalError('Cannot delete the active work address')\n }\n\n await deleteWorkAddressMutation.mutateAsync({\n request: { workAddressUuid: uuid },\n })\n succeeded = true\n if (snap) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_DELETED, snap)\n }\n },\n )\n return succeeded\n }\n\n const actions: UseWorkAddressManagementActions = {\n setEditTargetUuid,\n confirmDeleteWorkAddress,\n }\n\n const dataPayloadPendingForms: UseWorkAddressManagementDataPendingForms = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n\n if (employeeQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n if (employeeQuery.isError || isMissingCompany) {\n return {\n isLoading: false,\n data: dataPayloadPendingForms,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: true,\n },\n errorHandling,\n actions,\n }\n }\n\n if (workAddressesQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const isFormsLoading = editWorkAddressForm.isLoading || changeWorkAddressForm.isLoading\n if (isFormsLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const { editWorkAddressForm: editReady, changeWorkAddressForm: changeReady } =\n workAddressFormsReady(editWorkAddressForm, changeWorkAddressForm)\n\n const dataReady: UseWorkAddressManagementDataReady = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm: editReady,\n changeWorkAddressForm: changeReady,\n }\n\n return {\n isLoading: false,\n data: dataReady,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: false,\n },\n errorHandling,\n actions,\n }\n}\n"],"names":["isUseWorkAddressManagementSuccess","value","workAddressFormsReady","editWorkAddressForm","changeWorkAddressForm","SDKInternalError","useWorkAddressManagement","employeeId","onEvent","baseSubmitHandler","rootSubmitError","setRootSubmitError","useBaseSubmit","deleteWorkAddressMutation","useEmployeeAddressesDeleteWorkAddressMutation","editTargetUuid","setEditTargetUuid","useState","employeeQuery","useEmployeesGet","companyId","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","employeeWorkAddresses","currentWorkAddress","useMemo","w","workAddressUuidForEdit","editInactiveRow","editingWorkAddressRow","withEffectiveDateOnEdit","useWorkAddressForm","employeeDisplayName","employee","firstLastName","isMissingCompany","errorHandling","composeErrorHandler","normalizeToSDKError","actions","workAddressUuid","snapshot","succeeded","uuid","snap","target","componentEvents","dataPayloadPendingForms","editReady","changeReady"],"mappings":"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"}
1
+ {"version":3,"file":"useWorkAddressManagement.js","sources":["../../../../../src/components/Employee/WorkAddress/management/useWorkAddressManagement.tsx"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useEmployeeAddressesDeleteWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesDeleteWorkAddress'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeesGet } from '@gusto/embedded-api/react-query/employeesGet'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { useWorkAddressForm } from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport type {\n UseWorkAddressFormReady,\n UseWorkAddressFormResult,\n} from '@/components/Employee/Profile/shared/useWorkAddressForm'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseHookReady,\n HookErrorHandling,\n HookLoadingResult,\n} from '@/partner-hook-utils/types'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { normalizeToSDKError, SDKInternalError } from '@/types/sdkError'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Params for {@link useWorkAddressManagement}.\n *\n * @public\n */\nexport interface UseWorkAddressManagementParams {\n /** The associated employee identifier. */\n employeeId: string\n /** Event handler fired when a work address is deleted. */\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface UseWorkAddressManagementDataPendingForms extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormResult\n changeWorkAddressForm: UseWorkAddressFormResult\n}\n\ninterface UseWorkAddressManagementDataReady extends Record<string, unknown> {\n employeeDisplayName: string\n employeeWorkAddresses: EmployeeWorkAddress[] | undefined\n editTargetUuid: string | undefined\n editWorkAddressForm: UseWorkAddressFormReady\n changeWorkAddressForm: UseWorkAddressFormReady\n}\n\ninterface UseWorkAddressManagementStatusEmployeeError extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: true\n}\n\ninterface UseWorkAddressManagementStatusSuccess extends Record<string, unknown> {\n isDeletePending: boolean\n isEmployeeError: false\n}\n\ninterface UseWorkAddressManagementActions {\n setEditTargetUuid: (workAddressUuid: string | undefined) => void\n confirmDeleteWorkAddress: (workAddressUuid: string) => Promise<boolean>\n}\n\ninterface UseWorkAddressManagementReadyEmployeeError extends BaseHookReady<\n UseWorkAddressManagementDataPendingForms,\n UseWorkAddressManagementStatusEmployeeError\n> {\n actions: UseWorkAddressManagementActions\n}\n\n/**\n * Ready state of {@link useWorkAddressManagement} when the employee was fetched successfully.\n *\n * @public\n */\nexport interface UseWorkAddressManagementReadySuccess extends BaseHookReady<\n UseWorkAddressManagementDataReady,\n UseWorkAddressManagementStatusSuccess\n> {\n /** Actions for changing the edit target and confirming work address deletion. */\n actions: UseWorkAddressManagementActions\n}\n\ntype UseWorkAddressManagementReady =\n UseWorkAddressManagementReadyEmployeeError | UseWorkAddressManagementReadySuccess\n\n/**\n * Return type of {@link useWorkAddressManagement}.\n *\n * @public\n */\nexport type UseWorkAddressManagementResult = HookLoadingResult | UseWorkAddressManagementReady\n\n/**\n * Type guard for the success branch of {@link useWorkAddressManagement}.\n *\n * @param value - The hook result to narrow.\n * @returns `true` when the hook has finished loading and the employee fetch succeeded.\n * @public\n */\nexport function isUseWorkAddressManagementSuccess(\n value: UseWorkAddressManagementResult,\n): value is UseWorkAddressManagementReadySuccess {\n if (value.isLoading) {\n return false\n }\n return !value.status.isEmployeeError\n}\n\nfunction workAddressFormsReady(\n editWorkAddressForm: UseWorkAddressFormResult,\n changeWorkAddressForm: UseWorkAddressFormResult,\n): Pick<UseWorkAddressManagementDataReady, 'editWorkAddressForm' | 'changeWorkAddressForm'> {\n if (editWorkAddressForm.isLoading) {\n throw new SDKInternalError('Edit work address form is still loading')\n }\n if (changeWorkAddressForm.isLoading) {\n throw new SDKInternalError('Change work address form is still loading')\n }\n return {\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n}\n\n/**\n * Headless hook for managing an employee's work addresses.\n *\n * @remarks\n * Fetches the employee and their work addresses, exposes edit and change form hooks\n * for the address modal, and provides an action to delete a non-active address.\n * Use {@link isUseWorkAddressManagementSuccess} to narrow the ready state when the\n * employee fetch succeeded.\n *\n * @param params - {@link UseWorkAddressManagementParams}\n * @returns A {@link HookLoadingResult} while loading, or the ready state once data is available.\n * @public\n */\nexport function useWorkAddressManagement({\n employeeId,\n onEvent,\n}: UseWorkAddressManagementParams): UseWorkAddressManagementResult {\n const {\n baseSubmitHandler,\n error: rootSubmitError,\n setError: setRootSubmitError,\n } = useBaseSubmit('Employee.Management.WorkAddress')\n const deleteWorkAddressMutation = useEmployeeAddressesDeleteWorkAddressMutation()\n const [editTargetUuid, setEditTargetUuid] = useState<string | undefined>(undefined)\n\n const employeeQuery = useEmployeesGet({ employeeId }, { enabled: !!employeeId })\n const companyId = employeeQuery.data?.employeeShow?.companyUuid\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId },\n { enabled: !!employeeId && !!companyId },\n )\n\n const employeeWorkAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n\n const currentWorkAddress = useMemo<EmployeeWorkAddress | null>(() => {\n if (!employeeWorkAddresses?.length) {\n return null\n }\n return employeeWorkAddresses.find(w => w.active) ?? employeeWorkAddresses[0] ?? null\n }, [employeeWorkAddresses])\n\n const workAddressUuidForEdit = editTargetUuid ?? currentWorkAddress?.uuid\n\n const editInactiveRow = useMemo(() => {\n if (!editTargetUuid || !employeeWorkAddresses) {\n return undefined\n }\n return employeeWorkAddresses.find(w => w.uuid === editTargetUuid)\n }, [editTargetUuid, employeeWorkAddresses])\n\n const editingWorkAddressRow = workAddressUuidForEdit\n ? employeeWorkAddresses?.find(w => w.uuid === workAddressUuidForEdit)\n : undefined\n\n const withEffectiveDateOnEdit = editInactiveRow ? editInactiveRow.active !== true : false\n\n const editWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid: workAddressUuidForEdit,\n initialAddress: editingWorkAddressRow,\n withEffectiveDateField: withEffectiveDateOnEdit,\n })\n\n const changeWorkAddressForm = useWorkAddressForm({\n companyId,\n employeeId,\n withEffectiveDateField: true,\n })\n\n const employeeDisplayName = useMemo(() => {\n const employee = employeeQuery.data?.employeeShow\n if (!employee) {\n return ''\n }\n return firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n }).trim()\n }, [employeeQuery.data?.employeeShow])\n\n const isMissingCompany = !!employeeQuery.data?.employeeShow && !companyId\n\n const errorHandling: HookErrorHandling = composeErrorHandler(\n [\n employeeQuery,\n workAddressesQuery,\n editWorkAddressForm,\n changeWorkAddressForm,\n ...(isMissingCompany\n ? [\n {\n errorHandling: {\n errors: [\n normalizeToSDKError(\n new SDKInternalError(\n 'Employee record is missing companyUuid, which is required to load work address locations.',\n ),\n ),\n ],\n retryQueries: () => {},\n clearSubmitError: () => {},\n },\n },\n ]\n : []),\n ],\n { submitError: rootSubmitError, setSubmitError: setRootSubmitError },\n )\n\n const confirmDeleteWorkAddress = async (workAddressUuid: string): Promise<boolean> => {\n const snapshot = employeeWorkAddresses?.find(w => w.uuid === workAddressUuid) ?? null\n\n let succeeded = false\n await baseSubmitHandler(\n { workAddressUuid, snapshot },\n async ({ workAddressUuid: uuid, snapshot: snap }) => {\n const target = employeeWorkAddresses?.find(w => w.uuid === uuid)\n if (!target) {\n throw new SDKInternalError('Work address not found')\n }\n if (target.active === true) {\n throw new SDKInternalError('Cannot delete the active work address')\n }\n\n await deleteWorkAddressMutation.mutateAsync({\n request: { workAddressUuid: uuid },\n })\n succeeded = true\n if (snap) {\n onEvent(componentEvents.EMPLOYEE_MANAGEMENT_WORK_ADDRESS_DELETED, snap)\n }\n },\n )\n return succeeded\n }\n\n const actions: UseWorkAddressManagementActions = {\n setEditTargetUuid,\n confirmDeleteWorkAddress,\n }\n\n const dataPayloadPendingForms: UseWorkAddressManagementDataPendingForms = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm,\n changeWorkAddressForm,\n }\n\n if (employeeQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n if (employeeQuery.isError || isMissingCompany) {\n return {\n isLoading: false,\n data: dataPayloadPendingForms,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: true,\n },\n errorHandling,\n actions,\n }\n }\n\n if (workAddressesQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const isFormsLoading = editWorkAddressForm.isLoading || changeWorkAddressForm.isLoading\n if (isFormsLoading) {\n return { isLoading: true, errorHandling }\n }\n\n const { editWorkAddressForm: editReady, changeWorkAddressForm: changeReady } =\n workAddressFormsReady(editWorkAddressForm, changeWorkAddressForm)\n\n const dataReady: UseWorkAddressManagementDataReady = {\n employeeDisplayName,\n employeeWorkAddresses,\n editTargetUuid,\n editWorkAddressForm: editReady,\n changeWorkAddressForm: changeReady,\n }\n\n return {\n isLoading: false,\n data: dataReady,\n status: {\n isDeletePending: deleteWorkAddressMutation.isPending,\n isEmployeeError: false,\n },\n errorHandling,\n actions,\n }\n}\n"],"names":["isUseWorkAddressManagementSuccess","value","workAddressFormsReady","editWorkAddressForm","changeWorkAddressForm","SDKInternalError","useWorkAddressManagement","employeeId","onEvent","baseSubmitHandler","rootSubmitError","setRootSubmitError","useBaseSubmit","deleteWorkAddressMutation","useEmployeeAddressesDeleteWorkAddressMutation","editTargetUuid","setEditTargetUuid","useState","employeeQuery","useEmployeesGet","companyId","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","employeeWorkAddresses","currentWorkAddress","useMemo","w","workAddressUuidForEdit","editInactiveRow","editingWorkAddressRow","withEffectiveDateOnEdit","useWorkAddressForm","employeeDisplayName","employee","firstLastName","isMissingCompany","errorHandling","composeErrorHandler","normalizeToSDKError","actions","workAddressUuid","snapshot","succeeded","uuid","snap","target","componentEvents","dataPayloadPendingForms","editReady","changeReady"],"mappings":"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"}