@gusto/embedded-react-sdk 0.57.1 → 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 (323) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/components/Base/Base.js +2 -3
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +32 -32
  5. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
  6. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  7. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
  8. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  9. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
  12. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
  14. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  15. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  17. package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
  18. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  19. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
  20. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  21. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
  22. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  23. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
  24. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  25. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
  26. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  27. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
  28. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  29. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
  30. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  31. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  32. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  33. package/dist/components/Company/FederalTaxes/Actions.js +7 -9
  34. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  35. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
  36. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  37. package/dist/components/Company/Industry/Actions.js +5 -7
  38. package/dist/components/Company/Industry/Actions.js.map +1 -1
  39. package/dist/components/Company/Industry/Context.js +6 -9
  40. package/dist/components/Company/Industry/Context.js.map +1 -1
  41. package/dist/components/Company/Industry/Edit.js +10 -12
  42. package/dist/components/Company/Industry/Edit.js.map +1 -1
  43. package/dist/components/Company/Locations/LocationForm/Actions.js +8 -10
  44. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  45. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
  46. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  47. package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
  48. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  49. package/dist/components/Company/Locations/LocationsList/List.js +11 -13
  50. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
  52. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  53. package/dist/components/Company/OnboardingOverview/context.js +3 -6
  54. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  55. package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
  56. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  57. package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
  58. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.js.map +1 -1
  60. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +34 -14
  61. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -1
  62. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js +106 -0
  63. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js.map +1 -0
  64. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js +136 -0
  65. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js.map +1 -0
  66. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +38 -20
  67. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
  68. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +78 -44
  69. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
  70. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +45 -37
  71. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
  72. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +253 -92
  73. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  74. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js +22 -0
  75. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js.map +1 -0
  76. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js +13 -0
  77. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js.map +1 -0
  78. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +48 -43
  79. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
  80. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -1
  81. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js +57 -0
  82. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js.map +1 -0
  83. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
  84. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
  85. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js +83 -0
  86. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js.map +1 -0
  87. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js +84 -0
  88. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js.map +1 -0
  89. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
  90. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
  91. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +109 -39
  92. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
  93. package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -1
  94. package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -1
  95. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  96. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
  97. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  98. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
  99. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  100. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
  101. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  102. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
  103. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  104. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
  105. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  106. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +5 -5
  107. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  108. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +1 -1
  109. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -1
  110. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
  111. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  112. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +4 -4
  113. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -1
  114. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +3 -3
  115. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -1
  116. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +6 -6
  117. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
  118. package/dist/components/Contractor/Dashboard/Dashboard.js +20 -20
  119. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
  120. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js +10 -10
  121. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js.map +1 -1
  122. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
  123. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  124. package/dist/components/Contractor/Landing/Landing.js +43 -39
  125. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  126. package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
  127. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  128. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
  129. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
  130. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +1 -1
  131. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  132. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +10 -10
  133. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  134. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +4 -4
  135. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  136. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +8 -8
  137. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  138. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +5 -5
  139. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  140. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
  141. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  142. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
  143. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  144. package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
  145. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +1 -1
  146. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -1
  147. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +1 -1
  148. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  149. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +1 -1
  150. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -1
  151. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -9
  152. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  153. package/dist/components/Contractor/Submit/Submit.js +18 -18
  154. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  155. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +6 -6
  156. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
  157. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +25 -25
  158. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  159. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +15 -15
  160. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  161. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +1 -1
  162. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  163. package/dist/components/Employee/Dashboard/Dashboard.js +25 -25
  164. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  165. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
  166. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  167. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
  168. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  169. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
  170. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  171. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  172. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  173. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +7 -7
  174. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  175. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -1
  176. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  177. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
  178. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  179. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
  180. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  181. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +6 -6
  182. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  183. package/dist/components/Employee/Landing/Landing.js +37 -33
  184. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  185. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +27 -27
  186. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  187. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
  188. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  189. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
  190. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  191. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
  192. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  193. package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
  194. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  195. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +6 -6
  196. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  197. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  198. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  199. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +8 -15
  200. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  201. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
  202. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  203. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
  204. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  205. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +11 -11
  206. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  207. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +12 -12
  208. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  209. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +26 -26
  210. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  211. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
  212. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  213. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
  214. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  215. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
  216. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  217. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
  218. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  219. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +66 -64
  220. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  221. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
  222. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  223. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +6 -6
  224. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  225. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  226. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +1 -1
  227. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  228. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  229. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +75 -89
  230. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  231. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  232. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +9 -9
  233. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  234. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
  235. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  236. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  237. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
  238. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  239. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
  240. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
  241. package/dist/components/Payroll/helpers.js +53 -49
  242. package/dist/components/Payroll/helpers.js.map +1 -1
  243. package/dist/components/Payroll/payrollTypes.js +1 -1
  244. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  245. package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
  246. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  247. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
  248. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  249. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
  250. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  251. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
  252. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  253. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
  254. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  255. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
  256. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
  257. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
  258. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  259. package/dist/helpers/dateFormatting.js +47 -40
  260. package/dist/helpers/dateFormatting.js.map +1 -1
  261. package/dist/i18n/en/Company.Management.PaySchedule.json.js +37 -17
  262. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  263. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -10
  264. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  265. package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
  266. package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
  267. package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
  268. package/dist/package.json.js +1 -1
  269. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
  270. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  271. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
  272. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  273. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
  274. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  275. package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
  276. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  277. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
  278. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  279. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
  280. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  281. package/dist/shared/constants.js +5 -5
  282. package/dist/shared/constants.js.map +1 -1
  283. package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +2 -2
  284. package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
  285. package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
  286. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.d.ts +1 -1
  287. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.d.ts +1 -1
  288. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +10 -3
  289. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.d.ts +21 -0
  290. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.d.ts +34 -0
  291. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +9 -3
  292. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +5 -1
  293. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +10 -10
  294. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +12 -4
  295. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.d.ts +19 -0
  296. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.d.ts +17 -0
  297. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +1 -1
  298. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.d.ts +34 -0
  299. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +16 -3
  300. package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +1 -1
  301. package/dist/src/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.d.ts +23 -0
  302. package/dist/src/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.d.ts +25 -0
  303. package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +1 -1
  304. package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +1 -1
  305. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
  306. package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
  307. package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
  308. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
  309. package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -1
  310. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
  311. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
  312. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
  313. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -2
  314. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
  315. package/dist/src/components/Payroll/helpers.d.ts +22 -2
  316. package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  317. package/dist/src/helpers/dateFormatting.d.ts +13 -0
  318. package/dist/src/i18n/types.d.ts +96 -6
  319. package/dist/src/models/external.d.ts +63 -48
  320. package/dist/src/shared/constants.d.ts +1 -1
  321. package/dist/style.css +1 -1
  322. package/docs/guides/endpoint-inventory.json +33 -13
  323. package/package.json +21 -21
@@ -1,8 +1,8 @@
1
1
  import { jsx as a } from "react/jsx-runtime";
2
2
  import { useContractorPaymentGroupsGetSuspense as f } from "@gusto/embedded-api/react-query/contractorPaymentGroupsGet";
3
3
  import { useContractorsListSuspense as P } from "@gusto/embedded-api/react-query/contractorsList";
4
- import { useContractorPaymentsGetReceipt as G } from "@gusto/embedded-api/react-query/contractorPaymentsGetReceipt";
5
- import { GustoEmbeddedError as h } from "@gusto/embedded-api/models/errors/gustoembeddederror";
4
+ import { useContractorPaymentsGetReceipt as h } from "@gusto/embedded-api/react-query/contractorPaymentsGetReceipt";
5
+ import { GustoEmbeddedError as G } from "@gusto/embedded-api/models/errors/gustoembeddederror";
6
6
  import { useTranslation as w } from "react-i18next";
7
7
  import { PaymentStatementPresentation as C } from "./PaymentStatementPresentation.js";
8
8
  import { useComponentDictionary as l } from "../../../../i18n/I18n.js";
@@ -18,18 +18,18 @@ const R = ({ paymentGroupId: o, contractorUuid: c, dictionary: s, className: i }
18
18
  });
19
19
  if (!r.contractorPaymentGroup)
20
20
  throw new Error(n("errors.paymentGroupNotFound"));
21
- const p = r.contractorPaymentGroup.companyUuid, { data: u } = P({ companyUuid: p }), y = u.contractors || [], e = r.contractorPaymentGroup.contractorPayments?.find(
21
+ const p = r.contractorPaymentGroup.companyUuid, { data: u } = P({ companyUuid: p }), y = u.showContractors || [], e = r.contractorPaymentGroup.contractorPayments?.find(
22
22
  (t) => t.contractorUuid === c
23
23
  );
24
24
  if (!e)
25
25
  throw new Error(n("errors.paymentNotFound"));
26
- const { data: d } = G(
26
+ const { data: d } = h(
27
27
  {
28
28
  contractorPaymentUuid: e.uuid
29
29
  },
30
30
  {
31
31
  retry: !1,
32
- throwOnError: (t) => !(t instanceof h && t.httpMeta.response.status === 404)
32
+ throwOnError: (t) => !(t instanceof G && t.httpMeta.response.status === 404)
33
33
  }
34
34
  ), m = y.find((t) => t.uuid === c);
35
35
  if (!m)
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentStatement.js","sources":["../../../../../src/components/Contractor/Payments/PaymentStatement/PaymentStatement.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useContractorPaymentsGetReceipt } from '@gusto/embedded-api/react-query/contractorPaymentsGetReceipt'\nimport { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentStatementPresentation } from './PaymentStatementPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\n/**\n * Props for {@link PaymentStatement}.\n *\n * @public\n */\nexport interface PaymentStatementProps extends BaseComponentInterface<'Contractor.Payments.PaymentStatement'> {\n /** UUID of the contractor payment group the statement belongs to. */\n paymentGroupId: string\n /** UUID of the contractor whose payment within the group is being displayed. */\n contractorUuid: string\n}\n\n/**\n * Displays a single contractor's payment statement within a payment group, including wage breakdown, bonuses, reimbursements, and a receipt card for funded direct-deposit payments.\n *\n * @param props - See {@link PaymentStatementProps}.\n * @returns The rendered payment statement.\n * @public\n */\nexport function PaymentStatement(props: PaymentStatementProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ paymentGroupId, contractorUuid, dictionary, className }: PaymentStatementProps) => {\n useComponentDictionary('Contractor.Payments.PaymentStatement', dictionary)\n const { t } = useTranslation('Contractor.Payments.PaymentStatement')\n // Fetching entire payment\n const { data: paymentGroupResponse } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n\n if (!paymentGroupResponse.contractorPaymentGroup) {\n throw new Error(t('errors.paymentGroupNotFound'))\n }\n\n const companyId = paymentGroupResponse.contractorPaymentGroup.companyUuid!\n // Fetching all contractors for the company\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = contractorList.contractors || []\n // Locating the payment for the selectedcontractor\n const payment = paymentGroupResponse.contractorPaymentGroup.contractorPayments?.find(\n p => p.contractorUuid === contractorUuid,\n )\n\n if (!payment) {\n throw new Error(t('errors.paymentNotFound'))\n }\n // Attempting to fetch the payment receipt\n // Note: 404 is expected for receipts that aren't available (e.g., non-direct deposit or not yet funded)\n const { data: paymentResponse } = useContractorPaymentsGetReceipt(\n {\n contractorPaymentUuid: payment.uuid!,\n },\n {\n retry: false,\n throwOnError: (error: Error) => {\n // Ignore 404 errors (receipt not available), but throw other errors\n if (error instanceof GustoEmbeddedError && error.httpMeta.response.status === 404) {\n return false\n }\n return true\n },\n },\n )\n const contractor = contractors.find(c => c.uuid === contractorUuid)\n if (!contractor) {\n throw new Error(t('errors.contractorNotFound'))\n }\n\n return (\n <PaymentStatementPresentation\n className={className}\n payment={payment}\n contractor={contractor}\n paymentReceipt={paymentResponse?.contractorPaymentReceipt}\n checkDate={paymentGroupResponse.contractorPaymentGroup.checkDate || ''}\n />\n )\n}\n"],"names":["PaymentStatement","props","jsx","BaseComponent","Root","paymentGroupId","contractorUuid","dictionary","className","useComponentDictionary","t","useTranslation","paymentGroupResponse","useContractorPaymentGroupsGetSuspense","companyId","contractorList","useContractorsListSuspense","contractors","payment","p","paymentResponse","useContractorPaymentsGetReceipt","error","GustoEmbeddedError","contractor","c","PaymentStatementPresentation"],"mappings":";;;;;;;;;;AA4BO,SAASA,EAAiBC,GAA8B;AAC7D,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,gBAAAC,GAAgB,gBAAAC,GAAgB,YAAAC,GAAY,WAAAC,QAAuC;AACjG,EAAAC,EAAuB,wCAAwCF,CAAU;AACzE,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,sCAAsC,GAE7D,EAAE,MAAMC,EAAA,IAAyBC,EAAsC;AAAA,IAC3E,4BAA4BR;AAAA,EAAA,CAC7B;AAED,MAAI,CAACO,EAAqB;AACxB,UAAM,IAAI,MAAMF,EAAE,6BAA6B,CAAC;AAGlD,QAAMI,IAAYF,EAAqB,uBAAuB,aAExD,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaF,GAAW,GAChFG,IAAcF,EAAe,eAAe,CAAA,GAE5CG,IAAUN,EAAqB,uBAAuB,oBAAoB;AAAA,IAC9E,CAAAO,MAAKA,EAAE,mBAAmBb;AAAA,EAAA;AAG5B,MAAI,CAACY;AACH,UAAM,IAAI,MAAMR,EAAE,wBAAwB,CAAC;AAI7C,QAAM,EAAE,MAAMU,EAAA,IAAoBC;AAAA,IAChC;AAAA,MACE,uBAAuBH,EAAQ;AAAA,IAAA;AAAA,IAEjC;AAAA,MACE,OAAO;AAAA,MACP,cAAc,CAACI,MAET,EAAAA,aAAiBC,KAAsBD,EAAM,SAAS,SAAS,WAAW;AAAA,IAIhF;AAAA,EACF,GAEIE,IAAaP,EAAY,KAAK,CAAAQ,MAAKA,EAAE,SAASnB,CAAc;AAClE,MAAI,CAACkB;AACH,UAAM,IAAI,MAAMd,EAAE,2BAA2B,CAAC;AAGhD,SACE,gBAAAR;AAAA,IAACwB;AAAA,IAAA;AAAA,MACC,WAAAlB;AAAA,MACA,SAAAU;AAAA,MACA,YAAAM;AAAA,MACA,gBAAgBJ,GAAiB;AAAA,MACjC,WAAWR,EAAqB,uBAAuB,aAAa;AAAA,IAAA;AAAA,EAAA;AAG1E;"}
1
+ {"version":3,"file":"PaymentStatement.js","sources":["../../../../../src/components/Contractor/Payments/PaymentStatement/PaymentStatement.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useContractorPaymentsGetReceipt } from '@gusto/embedded-api/react-query/contractorPaymentsGetReceipt'\nimport { GustoEmbeddedError } from '@gusto/embedded-api/models/errors/gustoembeddederror'\nimport { useTranslation } from 'react-i18next'\nimport { PaymentStatementPresentation } from './PaymentStatementPresentation'\nimport { useComponentDictionary } from '@/i18n'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\n\n/**\n * Props for {@link PaymentStatement}.\n *\n * @public\n */\nexport interface PaymentStatementProps extends BaseComponentInterface<'Contractor.Payments.PaymentStatement'> {\n /** UUID of the contractor payment group the statement belongs to. */\n paymentGroupId: string\n /** UUID of the contractor whose payment within the group is being displayed. */\n contractorUuid: string\n}\n\n/**\n * Displays a single contractor's payment statement within a payment group, including wage breakdown, bonuses, reimbursements, and a receipt card for funded direct-deposit payments.\n *\n * @param props - See {@link PaymentStatementProps}.\n * @returns The rendered payment statement.\n * @public\n */\nexport function PaymentStatement(props: PaymentStatementProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ paymentGroupId, contractorUuid, dictionary, className }: PaymentStatementProps) => {\n useComponentDictionary('Contractor.Payments.PaymentStatement', dictionary)\n const { t } = useTranslation('Contractor.Payments.PaymentStatement')\n // Fetching entire payment\n const { data: paymentGroupResponse } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n\n if (!paymentGroupResponse.contractorPaymentGroup) {\n throw new Error(t('errors.paymentGroupNotFound'))\n }\n\n const companyId = paymentGroupResponse.contractorPaymentGroup.companyUuid!\n // Fetching all contractors for the company\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = contractorList.showContractors || []\n // Locating the payment for the selectedcontractor\n const payment = paymentGroupResponse.contractorPaymentGroup.contractorPayments?.find(\n p => p.contractorUuid === contractorUuid,\n )\n\n if (!payment) {\n throw new Error(t('errors.paymentNotFound'))\n }\n // Attempting to fetch the payment receipt\n // Note: 404 is expected for receipts that aren't available (e.g., non-direct deposit or not yet funded)\n const { data: paymentResponse } = useContractorPaymentsGetReceipt(\n {\n contractorPaymentUuid: payment.uuid!,\n },\n {\n retry: false,\n throwOnError: (error: Error) => {\n // Ignore 404 errors (receipt not available), but throw other errors\n if (error instanceof GustoEmbeddedError && error.httpMeta.response.status === 404) {\n return false\n }\n return true\n },\n },\n )\n const contractor = contractors.find(c => c.uuid === contractorUuid)\n if (!contractor) {\n throw new Error(t('errors.contractorNotFound'))\n }\n\n return (\n <PaymentStatementPresentation\n className={className}\n payment={payment}\n contractor={contractor}\n paymentReceipt={paymentResponse?.contractorPaymentReceipt}\n checkDate={paymentGroupResponse.contractorPaymentGroup.checkDate || ''}\n />\n )\n}\n"],"names":["PaymentStatement","props","jsx","BaseComponent","Root","paymentGroupId","contractorUuid","dictionary","className","useComponentDictionary","t","useTranslation","paymentGroupResponse","useContractorPaymentGroupsGetSuspense","companyId","contractorList","useContractorsListSuspense","contractors","payment","p","paymentResponse","useContractorPaymentsGetReceipt","error","GustoEmbeddedError","contractor","c","PaymentStatementPresentation"],"mappings":";;;;;;;;;;AA4BO,SAASA,EAAiBC,GAA8B;AAC7D,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,gBAAAC,GAAgB,gBAAAC,GAAgB,YAAAC,GAAY,WAAAC,QAAuC;AACjG,EAAAC,EAAuB,wCAAwCF,CAAU;AACzE,QAAM,EAAE,GAAAG,EAAA,IAAMC,EAAe,sCAAsC,GAE7D,EAAE,MAAMC,EAAA,IAAyBC,EAAsC;AAAA,IAC3E,4BAA4BR;AAAA,EAAA,CAC7B;AAED,MAAI,CAACO,EAAqB;AACxB,UAAM,IAAI,MAAMF,EAAE,6BAA6B,CAAC;AAGlD,QAAMI,IAAYF,EAAqB,uBAAuB,aAExD,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaF,GAAW,GAChFG,IAAcF,EAAe,mBAAmB,CAAA,GAEhDG,IAAUN,EAAqB,uBAAuB,oBAAoB;AAAA,IAC9E,CAAAO,MAAKA,EAAE,mBAAmBb;AAAA,EAAA;AAG5B,MAAI,CAACY;AACH,UAAM,IAAI,MAAMR,EAAE,wBAAwB,CAAC;AAI7C,QAAM,EAAE,MAAMU,EAAA,IAAoBC;AAAA,IAChC;AAAA,MACE,uBAAuBH,EAAQ;AAAA,IAAA;AAAA,IAEjC;AAAA,MACE,OAAO;AAAA,MACP,cAAc,CAACI,MAET,EAAAA,aAAiBC,KAAsBD,EAAM,SAAS,SAAS,WAAW;AAAA,IAIhF;AAAA,EACF,GAEIE,IAAaP,EAAY,KAAK,CAAAQ,MAAKA,EAAE,SAASnB,CAAc;AAClE,MAAI,CAACkB;AACH,UAAM,IAAI,MAAMd,EAAE,2BAA2B,CAAC;AAGhD,SACE,gBAAAR;AAAA,IAACwB;AAAA,IAAA;AAAA,MACC,WAAAlB;AAAA,MACA,SAAAU;AAAA,MACA,YAAAM;AAAA,MACA,gBAAgBJ,GAAiB;AAAA,MACjC,WAAWR,EAAqB,uBAAuB,aAAa;AAAA,IAAA;AAAA,EAAA;AAG1E;"}
@@ -14,7 +14,7 @@ const A = (o = []) => {
14
14
  );
15
15
  if (n && "metadata" in n)
16
16
  return n.metadata.wireInRequestUuid;
17
- }, B = (o) => /* @__PURE__ */ s(G, { ...o }), G = ({
17
+ }, B = (o) => /* @__PURE__ */ s(C, { ...o }), C = ({
18
18
  paymentGroupId: o,
19
19
  companyId: t,
20
20
  onEvent: n,
@@ -23,7 +23,7 @@ const A = (o = []) => {
23
23
  k("Contractor.Payments.PaymentSummary");
24
24
  const { data: c } = l({
25
25
  contractorPaymentGroupUuid: o
26
- }), e = c.contractorPaymentGroup, { data: u } = y({ companyUuid: t }), i = (u.contractors || []).filter(
26
+ }), e = c.contractorPaymentGroup, { data: u } = y({ companyUuid: t }), i = (u.showContractors || []).filter(
27
27
  (a) => a.isActive && a.onboardingStatus === "onboarding_completed"
28
28
  ), { data: m } = f({ companyId: t }), d = m?.companyBankAccounts?.[0];
29
29
  if (!e)
@@ -47,6 +47,6 @@ const A = (o = []) => {
47
47
  };
48
48
  export {
49
49
  B as PaymentSummary,
50
- G as PaymentSummaryInternal
50
+ C as PaymentSummaryInternal
51
51
  };
52
52
  //# sourceMappingURL=PaymentSummary.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentSummary.js","sources":["../../../../../src/components/Contractor/Payments/PaymentSummary/PaymentSummary.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useBankAccountsGet } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport type { PayrollCreditBlockerType } from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { InternalAlert } from '../types'\nimport { PaymentSummaryPresentation } from './PaymentSummaryPresentation'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link PaymentSummary}.\n *\n * @public\n */\nexport interface PaymentSummaryProps {\n /** UUID of the contractor payment group to summarize. */\n paymentGroupId: string\n /** UUID of the company that owns the payment group. */\n companyId: string\n /** Callback invoked when a flow event occurs, e.g. when the user exits. */\n onEvent: (type: EventType, data?: unknown) => void\n}\n\n/**\n * Props for the flow-internal {@link PaymentSummaryInternal}, which layers\n * flow-injected alerts on top of the public {@link PaymentSummaryProps}.\n *\n * @internal\n */\nexport interface PaymentSummaryInternalProps extends PaymentSummaryProps {\n /** Flow-injected alerts (e.g. wire-transfer confirmation). */\n alerts?: InternalAlert[]\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n option => option.unblockType === 'submit_wire',\n )\n\n if (wireUnblockOption && 'metadata' in wireUnblockOption) {\n return wireUnblockOption.metadata.wireInRequestUuid\n }\n\n return undefined\n}\n\n/**\n * Displays a summary of a created contractor payment group, including payment totals, debit information, contractor details, and wire transfer instructions when required.\n *\n * @remarks\n * Features:\n *\n * - **Success confirmation** — confirms the number of payments scheduled.\n * - **Payment summary** — total amount, debit amount, debit account, debit date, and contractor pay date, plus a per-contractor breakdown.\n * - **Debit account** — shows the company bank account used for the debit.\n * - **Wire transfer confirmation** — when a wire is required, surfaces the wire-details confirmation workflow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/exit` | User completes the payment flow. | — |\n *\n * @param props - Component props.\n * @returns The rendered payment summary, or `null` when the payment group cannot be loaded.\n * @public\n */\nexport const PaymentSummary = (props: PaymentSummaryProps) => <PaymentSummaryInternal {...props} />\n\n/**\n * Flow-internal entry point for {@link PaymentSummary} that accepts flow-injected\n * alerts. Partners use {@link PaymentSummary}; flows render this directly.\n *\n * @internal\n */\nexport const PaymentSummaryInternal = ({\n paymentGroupId,\n companyId,\n onEvent,\n alerts,\n}: PaymentSummaryInternalProps) => {\n useI18n('Contractor.Payments.PaymentSummary')\n\n const { data: paymentGroupData } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n const contractorPaymentGroup = paymentGroupData.contractorPaymentGroup\n\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = (contractorList.contractors || []).filter(\n contractor => contractor.isActive && contractor.onboardingStatus === 'onboarding_completed',\n )\n\n const { data: bankAccounts } = useBankAccountsGet({ companyId })\n const bankAccount = bankAccounts?.companyBankAccounts?.[0]\n\n if (!contractorPaymentGroup) {\n return null\n }\n\n const wireInRequestUuid = findWireInRequestUuid(contractorPaymentGroup.creditBlockers || [])\n\n const handleDone = () => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_EXIT)\n }\n\n return (\n <PaymentSummaryPresentation\n contractorPaymentGroup={contractorPaymentGroup}\n contractors={contractors}\n bankAccount={bankAccount}\n wireInRequestUuid={wireInRequestUuid}\n onDone={handleDone}\n onEvent={onEvent}\n companyId={companyId}\n alerts={alerts}\n />\n )\n}\n"],"names":["findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","blocker","wireUnblockOption","option","PaymentSummary","props","jsx","PaymentSummaryInternal","paymentGroupId","companyId","onEvent","alerts","useI18n","paymentGroupData","useContractorPaymentGroupsGetSuspense","contractorPaymentGroup","contractorList","useContractorsListSuspense","contractors","contractor","bankAccounts","useBankAccountsGet","bankAccount","wireInRequestUuid","PaymentSummaryPresentation","componentEvents"],"mappings":";;;;;;;AAkCA,MAAMA,IAAwB,CAC5BC,IAA6C,OACtB;AACvB,QAAMC,IAA0BD,EAAe,KAAK,CAAAE,MAAWA,EAAQ,WAAW,YAAY;AAE9F,MAAI,CAACD,GAAyB;AAC5B;AAGF,QAAME,IAAoBF,EAAwB,eAAe;AAAA,IAC/D,CAAAG,MAAUA,EAAO,gBAAgB;AAAA,EAAA;AAGnC,MAAID,KAAqB,cAAcA;AACrC,WAAOA,EAAkB,SAAS;AAItC,GAsBaE,IAAiB,CAACC,MAA+B,gBAAAC,EAACC,GAAA,EAAwB,GAAGF,EAAA,CAAO,GAQpFE,IAAyB,CAAC;AAAA,EACrC,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACF,MAAmC;AACjC,EAAAC,EAAQ,oCAAoC;AAE5C,QAAM,EAAE,MAAMC,EAAA,IAAqBC,EAAsC;AAAA,IACvE,4BAA4BN;AAAA,EAAA,CAC7B,GACKO,IAAyBF,EAAiB,wBAE1C,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaR,GAAW,GAChFS,KAAeF,EAAe,eAAe,CAAA,GAAI;AAAA,IACrD,CAAAG,MAAcA,EAAW,YAAYA,EAAW,qBAAqB;AAAA,EAAA,GAGjE,EAAE,MAAMC,EAAA,IAAiBC,EAAmB,EAAE,WAAAZ,GAAW,GACzDa,IAAcF,GAAc,sBAAsB,CAAC;AAEzD,MAAI,CAACL;AACH,WAAO;AAGT,QAAMQ,IAAoBzB,EAAsBiB,EAAuB,kBAAkB,CAAA,CAAE;AAM3F,SACE,gBAAAT;AAAA,IAACkB;AAAA,IAAA;AAAA,MACC,wBAAAT;AAAA,MACA,aAAAG;AAAA,MACA,aAAAI;AAAA,MACA,mBAAAC;AAAA,MACA,QAVe,MAAM;AACvB,QAAAb,EAAQe,EAAgB,uBAAuB;AAAA,MACjD;AAAA,MASI,SAAAf;AAAA,MACA,WAAAD;AAAA,MACA,QAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"PaymentSummary.js","sources":["../../../../../src/components/Contractor/Payments/PaymentSummary/PaymentSummary.tsx"],"sourcesContent":["import { useContractorPaymentGroupsGetSuspense } from '@gusto/embedded-api/react-query/contractorPaymentGroupsGet'\nimport { useContractorsListSuspense } from '@gusto/embedded-api/react-query/contractorsList'\nimport { useBankAccountsGet } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport type { PayrollCreditBlockerType } from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { InternalAlert } from '../types'\nimport { PaymentSummaryPresentation } from './PaymentSummaryPresentation'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\n\n/**\n * Props for {@link PaymentSummary}.\n *\n * @public\n */\nexport interface PaymentSummaryProps {\n /** UUID of the contractor payment group to summarize. */\n paymentGroupId: string\n /** UUID of the company that owns the payment group. */\n companyId: string\n /** Callback invoked when a flow event occurs, e.g. when the user exits. */\n onEvent: (type: EventType, data?: unknown) => void\n}\n\n/**\n * Props for the flow-internal {@link PaymentSummaryInternal}, which layers\n * flow-injected alerts on top of the public {@link PaymentSummaryProps}.\n *\n * @internal\n */\nexport interface PaymentSummaryInternalProps extends PaymentSummaryProps {\n /** Flow-injected alerts (e.g. wire-transfer confirmation). */\n alerts?: InternalAlert[]\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n option => option.unblockType === 'submit_wire',\n )\n\n if (wireUnblockOption && 'metadata' in wireUnblockOption) {\n return wireUnblockOption.metadata.wireInRequestUuid\n }\n\n return undefined\n}\n\n/**\n * Displays a summary of a created contractor payment group, including payment totals, debit information, contractor details, and wire transfer instructions when required.\n *\n * @remarks\n * Features:\n *\n * - **Success confirmation** — confirms the number of payments scheduled.\n * - **Payment summary** — total amount, debit amount, debit account, debit date, and contractor pay date, plus a per-contractor breakdown.\n * - **Debit account** — shows the company bank account used for the debit.\n * - **Wire transfer confirmation** — when a wire is required, surfaces the wire-details confirmation workflow.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/payments/exit` | User completes the payment flow. | — |\n *\n * @param props - Component props.\n * @returns The rendered payment summary, or `null` when the payment group cannot be loaded.\n * @public\n */\nexport const PaymentSummary = (props: PaymentSummaryProps) => <PaymentSummaryInternal {...props} />\n\n/**\n * Flow-internal entry point for {@link PaymentSummary} that accepts flow-injected\n * alerts. Partners use {@link PaymentSummary}; flows render this directly.\n *\n * @internal\n */\nexport const PaymentSummaryInternal = ({\n paymentGroupId,\n companyId,\n onEvent,\n alerts,\n}: PaymentSummaryInternalProps) => {\n useI18n('Contractor.Payments.PaymentSummary')\n\n const { data: paymentGroupData } = useContractorPaymentGroupsGetSuspense({\n contractorPaymentGroupUuid: paymentGroupId,\n })\n const contractorPaymentGroup = paymentGroupData.contractorPaymentGroup\n\n const { data: contractorList } = useContractorsListSuspense({ companyUuid: companyId })\n const contractors = (contractorList.showContractors || []).filter(\n contractor => contractor.isActive && contractor.onboardingStatus === 'onboarding_completed',\n )\n\n const { data: bankAccounts } = useBankAccountsGet({ companyId })\n const bankAccount = bankAccounts?.companyBankAccounts?.[0]\n\n if (!contractorPaymentGroup) {\n return null\n }\n\n const wireInRequestUuid = findWireInRequestUuid(contractorPaymentGroup.creditBlockers || [])\n\n const handleDone = () => {\n onEvent(componentEvents.CONTRACTOR_PAYMENT_EXIT)\n }\n\n return (\n <PaymentSummaryPresentation\n contractorPaymentGroup={contractorPaymentGroup}\n contractors={contractors}\n bankAccount={bankAccount}\n wireInRequestUuid={wireInRequestUuid}\n onDone={handleDone}\n onEvent={onEvent}\n companyId={companyId}\n alerts={alerts}\n />\n )\n}\n"],"names":["findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","blocker","wireUnblockOption","option","PaymentSummary","props","jsx","PaymentSummaryInternal","paymentGroupId","companyId","onEvent","alerts","useI18n","paymentGroupData","useContractorPaymentGroupsGetSuspense","contractorPaymentGroup","contractorList","useContractorsListSuspense","contractors","contractor","bankAccounts","useBankAccountsGet","bankAccount","wireInRequestUuid","PaymentSummaryPresentation","componentEvents"],"mappings":";;;;;;;AAkCA,MAAMA,IAAwB,CAC5BC,IAA6C,OACtB;AACvB,QAAMC,IAA0BD,EAAe,KAAK,CAAAE,MAAWA,EAAQ,WAAW,YAAY;AAE9F,MAAI,CAACD,GAAyB;AAC5B;AAGF,QAAME,IAAoBF,EAAwB,eAAe;AAAA,IAC/D,CAAAG,MAAUA,EAAO,gBAAgB;AAAA,EAAA;AAGnC,MAAID,KAAqB,cAAcA;AACrC,WAAOA,EAAkB,SAAS;AAItC,GAsBaE,IAAiB,CAACC,MAA+B,gBAAAC,EAACC,GAAA,EAAwB,GAAGF,EAAA,CAAO,GAQpFE,IAAyB,CAAC;AAAA,EACrC,gBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,QAAAC;AACF,MAAmC;AACjC,EAAAC,EAAQ,oCAAoC;AAE5C,QAAM,EAAE,MAAMC,EAAA,IAAqBC,EAAsC;AAAA,IACvE,4BAA4BN;AAAA,EAAA,CAC7B,GACKO,IAAyBF,EAAiB,wBAE1C,EAAE,MAAMG,EAAA,IAAmBC,EAA2B,EAAE,aAAaR,GAAW,GAChFS,KAAeF,EAAe,mBAAmB,CAAA,GAAI;AAAA,IACzD,CAAAG,MAAcA,EAAW,YAAYA,EAAW,qBAAqB;AAAA,EAAA,GAGjE,EAAE,MAAMC,EAAA,IAAiBC,EAAmB,EAAE,WAAAZ,GAAW,GACzDa,IAAcF,GAAc,sBAAsB,CAAC;AAEzD,MAAI,CAACL;AACH,WAAO;AAGT,QAAMQ,IAAoBzB,EAAsBiB,EAAuB,kBAAkB,CAAA,CAAE;AAM3F,SACE,gBAAAT;AAAA,IAACkB;AAAA,IAAA;AAAA,MACC,wBAAAT;AAAA,MACA,aAAAG;AAAA,MACA,aAAAI;AAAA,MACA,mBAAAC;AAAA,MACA,QAVe,MAAM;AACvB,QAAAb,EAAQe,EAAgB,uBAAuB;AAAA,MACjD;AAAA,MASI,SAAAf;AAAA,MACA,WAAAD;AAAA,MACA,QAAAE;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,60 +1,59 @@
1
- import { jsx as o } from "react/jsx-runtime";
1
+ import { jsx as e } from "react/jsx-runtime";
2
2
  import { useTranslation as N } from "react-i18next";
3
- import "classnames";
4
- import { CONTRACTOR_TYPE as h, componentEvents as g } from "../../../../../shared/constants.js";
5
- import { Loading as P } from "../../../../Common/Loading/Loading.js";
6
- import { BaseBoundaries as T, BaseLayout as X } from "../../../../Base/Base.js";
7
- import { useComponentContext as v } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- import { formatDateLongWithYear as y } from "../../../../../helpers/dateFormatting.js";
9
- import { firstLastName as B } from "../../../../../helpers/formattedStrings.js";
10
- import { useI18n as D } from "../../../../../i18n/I18n.js";
3
+ import { Loading as h } from "../../../../Common/Loading/Loading.js";
4
+ import { BaseBoundaries as g, BaseLayout as P } from "../../../../Base/Base.js";
5
+ import { useComponentContext as T } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { formatDateLongWithYear as X } from "../../../../../helpers/dateFormatting.js";
7
+ import { firstLastName as v } from "../../../../../helpers/formattedStrings.js";
8
+ import { useI18n as y } from "../../../../../i18n/I18n.js";
9
+ import { CONTRACTOR_TYPE as B, componentEvents as D } from "../../../../../shared/constants.js";
11
10
  import { useContractorProfileSummary as L } from "../../shared/useContractorProfileSummary/useContractorProfileSummary.js";
12
- function Y({ LoaderComponent: r, ...s }) {
13
- return /* @__PURE__ */ o(T, { componentName: "Contractor.Management.Profile", LoaderComponent: r, children: /* @__PURE__ */ o(S, { LoaderComponent: r, ...s }) });
11
+ function U({ LoaderComponent: r, ...s }) {
12
+ return /* @__PURE__ */ e(g, { componentName: "Contractor.Management.Profile", LoaderComponent: r, children: /* @__PURE__ */ e(S, { LoaderComponent: r, ...s }) });
14
13
  }
15
14
  function S({ contractorId: r, onEvent: s, LoaderComponent: l }) {
16
- D("Contractor.Management.Profile");
17
- const { t: e } = N("Contractor.Management.Profile"), n = v(), a = L({ contractorId: r }), m = a.isLoading, t = a.isLoading ? void 0 : a.data.contractor, c = t?.type === h.BUSINESS, d = t ? c ? t.businessName : B({
15
+ y("Contractor.Management.Profile");
16
+ const { t: o } = N("Contractor.Management.Profile"), n = T(), a = L({ contractorId: r }), m = a.isLoading, t = a.isLoading ? void 0 : a.data.contractor, c = t?.type === B.BUSINESS, d = t ? c ? t.businessName : v({
18
17
  first_name: t.firstName,
19
18
  middle_initial: t.middleInitial,
20
19
  last_name: t.lastName
21
- }) : void 0, p = t ? y(t.startDate) : void 0, f = t?.hasSsn ? "XXX-XX-XXXX" : void 0, u = t?.hasEin ? t.ein ?? void 0 : void 0, i = /* @__PURE__ */ o("span", { "aria-label": e("listEmptyPlaceholder"), children: "–" }), C = t ? [
22
- { term: e("legalName"), description: d || i },
23
- { term: e("startDate"), description: p || i },
20
+ }) : void 0, p = t ? X(t.startDate) : void 0, f = t?.hasSsn ? "XXX-XX-XXXX" : void 0, u = t?.hasEin ? t.ein ?? void 0 : void 0, i = /* @__PURE__ */ e("span", { "aria-label": o("listEmptyPlaceholder"), children: "–" }), C = t ? [
21
+ { term: o("legalName"), description: d || i },
22
+ { term: o("startDate"), description: p || i },
24
23
  c ? {
25
- term: e("employerIdentificationNumber"),
24
+ term: o("employerIdentificationNumber"),
26
25
  description: u || i
27
26
  } : {
28
- term: e("socialSecurityNumber"),
27
+ term: o("socialSecurityNumber"),
29
28
  description: f || i
30
29
  },
31
- { term: e("email"), description: t.email || i }
30
+ { term: o("email"), description: t.email || i }
32
31
  ] : [], E = () => {
33
- s(g.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId: r });
32
+ s(D.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId: r });
34
33
  };
35
- return /* @__PURE__ */ o(X, { error: a.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ o(
34
+ return /* @__PURE__ */ e(P, { error: a.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ e(
36
35
  n.Box,
37
36
  {
38
- header: /* @__PURE__ */ o(
37
+ header: /* @__PURE__ */ e(
39
38
  n.BoxHeader,
40
39
  {
41
- title: e("title"),
42
- action: /* @__PURE__ */ o(
40
+ title: o("title"),
41
+ action: /* @__PURE__ */ e(
43
42
  n.Button,
44
43
  {
45
44
  variant: "secondary",
46
45
  onClick: E,
47
46
  isDisabled: m,
48
- children: e("editCta")
47
+ children: o("editCta")
49
48
  }
50
49
  )
51
50
  }
52
51
  ),
53
- children: m ? /* @__PURE__ */ o(P, {}) : t ? /* @__PURE__ */ o(n.DescriptionList, { items: C }) : null
52
+ children: m ? /* @__PURE__ */ e(h, {}) : t ? /* @__PURE__ */ e(n.DescriptionList, { items: C }) : null
54
53
  }
55
54
  ) });
56
55
  }
57
56
  export {
58
- Y as ProfileCard
57
+ U as ProfileCard
59
58
  };
60
59
  //# sourceMappingURL=ProfileCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Contractor/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorProfileSummary } from '../../shared/useContractorProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Read-only card showing a contractor's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ contractorId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard({ LoaderComponent, ...props }: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Contractor.Management.Profile\" LoaderComponent={LoaderComponent}>\n <ProfileCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ contractorId, onEvent, LoaderComponent }: ProfileCardProps) {\n useI18n('Contractor.Management.Profile')\n const { t } = useTranslation('Contractor.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useContractorProfileSummary({ contractorId })\n\n const isContractorLoading = profile.isLoading\n\n const contractor = profile.isLoading ? undefined : profile.data.contractor\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n const startDate = contractor ? formatDateLongWithYear(contractor.startDate) : undefined\n const maskedSsn = contractor?.hasSsn ? 'XXX-XX-XXXX' : undefined\n const maskedEin = contractor?.hasEin ? (contractor.ein ?? undefined) : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = contractor\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n isBusiness\n ? {\n term: t('employerIdentificationNumber'),\n description: maskedEin || emptyPlaceholder,\n }\n : {\n term: t('socialSecurityNumber'),\n description: maskedSsn || emptyPlaceholder,\n },\n { term: t('email'), description: contractor.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isContractorLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isContractorLoading ? (\n <Loading />\n ) : contractor ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","LoaderComponent","props","jsx","BaseBoundaries","ProfileCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useContractorProfileSummary","isContractorLoading","contractor","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","startDate","formatDateLongWithYear","maskedSsn","maskedEin","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":";;;;;;;;;;;AA4CO,SAASA,EAAY,EAAE,iBAAAC,GAAiB,GAAGC,KAA2B;AAC3E,SACE,gBAAAC,EAACC,GAAA,EAAe,eAAc,iCAAgC,iBAAAH,GAC5D,4BAACI,GAAA,EAAmB,iBAAAJ,GAAmC,GAAGC,EAAA,CAAO,EAAA,CACnE;AAEJ;AAEA,SAASG,EAAmB,EAAE,cAAAC,GAAc,SAAAC,GAAS,iBAAAN,KAAqC;AACxF,EAAAO,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAUC,EAA4B,EAAE,cAAAR,GAAc,GAEtDS,IAAsBF,EAAQ,WAE9BG,IAAaH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,YAE1DI,IAAaD,GAAY,SAASE,EAAgB,UAElDC,IAAYH,IACdC,IACED,EAAW,eACXI,EAAc;AAAA,IACZ,YAAYJ,EAAW;AAAA,IACvB,gBAAgBA,EAAW;AAAA,IAC3B,WAAWA,EAAW;AAAA,EAAA,CACvB,IACH,QACEK,IAAYL,IAAaM,EAAuBN,EAAW,SAAS,IAAI,QACxEO,IAAYP,GAAY,SAAS,gBAAgB,QACjDQ,IAAYR,GAAY,SAAUA,EAAW,OAAO,SAAa,QAEjES,IAAmB,gBAAAtB,EAAC,QAAA,EAAK,cAAYM,EAAE,sBAAsB,GAAG,UAAA,KAAC,GACjEiB,IAAeV,IACjB;AAAA,IACE,EAAE,MAAMP,EAAE,WAAW,GAAG,aAAaU,KAAaM,EAAA;AAAA,IAClD,EAAE,MAAMhB,EAAE,WAAW,GAAG,aAAaY,KAAaI,EAAA;AAAA,IAClDR,IACI;AAAA,MACE,MAAMR,EAAE,8BAA8B;AAAA,MACtC,aAAae,KAAaC;AAAA,IAAA,IAE5B;AAAA,MACE,MAAMhB,EAAE,sBAAsB;AAAA,MAC9B,aAAac,KAAaE;AAAA,IAAA;AAAA,IAEhC,EAAE,MAAMhB,EAAE,OAAO,GAAG,aAAaO,EAAW,SAASS,EAAA;AAAA,EAAiB,IAExE,CAAA,GAEEE,IAAa,MAAM;AACvB,IAAApB,EAAQqB,EAAgB,8CAA8C,EAAE,cAAAtB,EAAA,CAAc;AAAA,EACxF;AAEA,2BACGuB,GAAA,EAAW,OAAOhB,EAAQ,cAAc,QAAQ,iBAAAZ,GAC/C,UAAA,gBAAAE;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,OAAO;AAAA,UAChB,QACE,gBAAAN;AAAA,YAACQ,EAAW;AAAA,YAAX;AAAA,cACC,SAAQ;AAAA,cACR,SAASgB;AAAA,cACT,YAAYZ;AAAA,cAEX,YAAE,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MAKL,UAAAA,IACC,gBAAAZ,EAAC2B,GAAA,CAAA,CAAQ,IACPd,IACF,gBAAAb,EAACQ,EAAW,iBAAX,EAA2B,OAAOe,EAAA,CAAc,IAC/C;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
1
+ {"version":3,"file":"ProfileCard.js","sources":["../../../../../../src/components/Contractor/Profile/management/ProfileCard/ProfileCard.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorProfileSummary } from '../../shared/useContractorProfileSummary'\nimport { Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link ProfileCard}.\n *\n * @public\n */\nexport interface ProfileCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user requests to edit the profile. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Read-only card showing a contractor's basic profile details with an Edit action.\n *\n * @remarks\n * Standalone card that fetches its own data. Emits an event when the user\n * clicks Edit so the parent can switch to the edit form. The card does not\n * render success or error alerts itself — alert presentation is the\n * surrounding surface's responsibility.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/profile/editRequested` | Fired when the user clicks the Edit button | `{ contractorId: string }` |\n *\n * @param props - See {@link ProfileCardProps}.\n * @returns The basic-details profile card.\n * @public\n */\nexport function ProfileCard({ LoaderComponent, ...props }: ProfileCardProps) {\n return (\n <BaseBoundaries componentName=\"Contractor.Management.Profile\" LoaderComponent={LoaderComponent}>\n <ProfileCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction ProfileCardContent({ contractorId, onEvent, LoaderComponent }: ProfileCardProps) {\n useI18n('Contractor.Management.Profile')\n const { t } = useTranslation('Contractor.Management.Profile')\n const Components = useComponentContext()\n\n const profile = useContractorProfileSummary({ contractorId })\n\n const isContractorLoading = profile.isLoading\n\n const contractor = profile.isLoading ? undefined : profile.data.contractor\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n const startDate = contractor ? formatDateLongWithYear(contractor.startDate) : undefined\n const maskedSsn = contractor?.hasSsn ? 'XXX-XX-XXXX' : undefined\n const maskedEin = contractor?.hasEin ? (contractor.ein ?? undefined) : undefined\n\n const emptyPlaceholder = <span aria-label={t('listEmptyPlaceholder')}>–</span>\n const profileItems = contractor\n ? [\n { term: t('legalName'), description: legalName || emptyPlaceholder },\n { term: t('startDate'), description: startDate || emptyPlaceholder },\n isBusiness\n ? {\n term: t('employerIdentificationNumber'),\n description: maskedEin || emptyPlaceholder,\n }\n : {\n term: t('socialSecurityNumber'),\n description: maskedSsn || emptyPlaceholder,\n },\n { term: t('email'), description: contractor.email || emptyPlaceholder },\n ]\n : []\n\n const handleEdit = () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_PROFILE_EDIT_REQUESTED, { contractorId })\n }\n\n return (\n <BaseLayout error={profile.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={handleEdit}\n isDisabled={isContractorLoading}\n >\n {t('editCta')}\n </Components.Button>\n }\n />\n }\n >\n {isContractorLoading ? (\n <Loading />\n ) : contractor ? (\n <Components.DescriptionList items={profileItems} />\n ) : null}\n </Components.Box>\n </BaseLayout>\n )\n}\n"],"names":["ProfileCard","LoaderComponent","props","jsx","BaseBoundaries","ProfileCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","profile","useContractorProfileSummary","isContractorLoading","contractor","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","startDate","formatDateLongWithYear","maskedSsn","maskedEin","emptyPlaceholder","profileItems","handleEdit","componentEvents","BaseLayout","Loading"],"mappings":";;;;;;;;;;AA4CO,SAASA,EAAY,EAAE,iBAAAC,GAAiB,GAAGC,KAA2B;AAC3E,SACE,gBAAAC,EAACC,GAAA,EAAe,eAAc,iCAAgC,iBAAAH,GAC5D,4BAACI,GAAA,EAAmB,iBAAAJ,GAAmC,GAAGC,EAAA,CAAO,EAAA,CACnE;AAEJ;AAEA,SAASG,EAAmB,EAAE,cAAAC,GAAc,SAAAC,GAAS,iBAAAN,KAAqC;AACxF,EAAAO,EAAQ,+BAA+B;AACvC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,+BAA+B,GACtDC,IAAaC,EAAA,GAEbC,IAAUC,EAA4B,EAAE,cAAAR,GAAc,GAEtDS,IAAsBF,EAAQ,WAE9BG,IAAaH,EAAQ,YAAY,SAAYA,EAAQ,KAAK,YAE1DI,IAAaD,GAAY,SAASE,EAAgB,UAElDC,IAAYH,IACdC,IACED,EAAW,eACXI,EAAc;AAAA,IACZ,YAAYJ,EAAW;AAAA,IACvB,gBAAgBA,EAAW;AAAA,IAC3B,WAAWA,EAAW;AAAA,EAAA,CACvB,IACH,QACEK,IAAYL,IAAaM,EAAuBN,EAAW,SAAS,IAAI,QACxEO,IAAYP,GAAY,SAAS,gBAAgB,QACjDQ,IAAYR,GAAY,SAAUA,EAAW,OAAO,SAAa,QAEjES,IAAmB,gBAAAtB,EAAC,QAAA,EAAK,cAAYM,EAAE,sBAAsB,GAAG,UAAA,KAAC,GACjEiB,IAAeV,IACjB;AAAA,IACE,EAAE,MAAMP,EAAE,WAAW,GAAG,aAAaU,KAAaM,EAAA;AAAA,IAClD,EAAE,MAAMhB,EAAE,WAAW,GAAG,aAAaY,KAAaI,EAAA;AAAA,IAClDR,IACI;AAAA,MACE,MAAMR,EAAE,8BAA8B;AAAA,MACtC,aAAae,KAAaC;AAAA,IAAA,IAE5B;AAAA,MACE,MAAMhB,EAAE,sBAAsB;AAAA,MAC9B,aAAac,KAAaE;AAAA,IAAA;AAAA,IAEhC,EAAE,MAAMhB,EAAE,OAAO,GAAG,aAAaO,EAAW,SAASS,EAAA;AAAA,EAAiB,IAExE,CAAA,GAEEE,IAAa,MAAM;AACvB,IAAApB,EAAQqB,EAAgB,8CAA8C,EAAE,cAAAtB,EAAA,CAAc;AAAA,EACxF;AAEA,2BACGuB,GAAA,EAAW,OAAOhB,EAAQ,cAAc,QAAQ,iBAAAZ,GAC/C,UAAA,gBAAAE;AAAA,IAACQ,EAAW;AAAA,IAAX;AAAA,MACC,QACE,gBAAAR;AAAA,QAACQ,EAAW;AAAA,QAAX;AAAA,UACC,OAAOF,EAAE,OAAO;AAAA,UAChB,QACE,gBAAAN;AAAA,YAACQ,EAAW;AAAA,YAAX;AAAA,cACC,SAAQ;AAAA,cACR,SAASgB;AAAA,cACT,YAAYZ;AAAA,cAEX,YAAE,SAAS;AAAA,YAAA;AAAA,UAAA;AAAA,QACd;AAAA,MAAA;AAAA,MAKL,UAAAA,IACC,gBAAAZ,EAAC2B,GAAA,CAAA,CAAQ,IACPd,IACF,gBAAAb,EAACQ,EAAW,iBAAX,EAA2B,OAAOe,EAAA,CAAc,IAC/C;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
@@ -6,12 +6,12 @@ import { useContractorDetailsForm as y } from "../shared/useContractorDetailsFor
6
6
  import d from "./ProfileEditForm.module.scss.js";
7
7
  import { BaseBoundaries as P, BaseLayout as N } from "../../../Base/Base.js";
8
8
  import "../../../Base/useBase.js";
9
- import { CONTRACTOR_TYPE as B, componentEvents as I } from "../../../../shared/constants.js";
10
- import { Grid as U } from "../../../Common/Grid/Grid.js";
11
- import { ActionsLayout as O } from "../../../Common/ActionsLayout/ActionsLayout.js";
12
- import { Form as V } from "../../../Common/Form/Form.js";
13
- import { SDKFormProvider as H } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
14
- import { useI18n as Q, useComponentDictionary as w } from "../../../../i18n/I18n.js";
9
+ import { Grid as B } from "../../../Common/Grid/Grid.js";
10
+ import { ActionsLayout as U } from "../../../Common/ActionsLayout/ActionsLayout.js";
11
+ import { Form as O } from "../../../Common/Form/Form.js";
12
+ import { SDKFormProvider as V } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
13
+ import { useI18n as H, useComponentDictionary as Q } from "../../../../i18n/I18n.js";
14
+ import { CONTRACTOR_TYPE as w, componentEvents as I } from "../../../../shared/constants.js";
15
15
  import { useComponentContext as v } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
16
16
  function se({
17
17
  FallbackComponent: o,
@@ -35,7 +35,7 @@ function x({
35
35
  onEvent: c,
36
36
  LoaderComponent: l
37
37
  }) {
38
- Q("Contractor.Management.Profile"), w("Contractor.Management.Profile", n);
38
+ H("Contractor.Management.Profile"), Q("Contractor.Management.Profile", n);
39
39
  const { t: e } = k("Contractor.Management.Profile"), f = v(), t = y({
40
40
  contractorId: o,
41
41
  withSelfOnboardingField: !1,
@@ -62,7 +62,7 @@ function x({
62
62
  LoaderComponent: l
63
63
  }
64
64
  );
65
- const L = m.type === B.BUSINESS, i = t.form.Fields, { setValue: h } = t.form.hookFormInternals.formMethods, S = async () => {
65
+ const L = m.type === w.BUSINESS, i = t.form.Fields, { setValue: h } = t.form.hookFormInternals.formMethods, S = async () => {
66
66
  u(!1);
67
67
  const g = await t.actions.onSubmit();
68
68
  g && (c(I.CONTRACTOR_MANAGEMENT_PROFILE_UPDATED, g.data), u(!0));
@@ -78,7 +78,7 @@ function x({
78
78
  }
79
79
  }
80
80
  ) : void 0;
81
- return /* @__PURE__ */ a("section", { className: _(d.container, r), children: /* @__PURE__ */ a(N, { error: t.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ a(H, { formHookResult: t, children: /* @__PURE__ */ s(V, { onSubmit: S, children: [
81
+ return /* @__PURE__ */ a("section", { className: _(d.container, r), children: /* @__PURE__ */ a(N, { error: t.errorHandling.errors, LoaderComponent: l, children: /* @__PURE__ */ a(V, { formHookResult: t, children: /* @__PURE__ */ s(O, { onSubmit: S, children: [
82
82
  T,
83
83
  /* @__PURE__ */ a(f.Heading, { as: "h1", children: e("form.title") }),
84
84
  L ? /* @__PURE__ */ s(p, { children: [
@@ -119,7 +119,7 @@ function x({
119
119
  )
120
120
  ] }) : /* @__PURE__ */ s(p, { children: [
121
121
  /* @__PURE__ */ s(
122
- U,
122
+ B,
123
123
  {
124
124
  gap: { base: 20, small: 8 },
125
125
  gridTemplateColumns: { base: "1fr", small: ["1fr", 200] },
@@ -188,7 +188,7 @@ function x({
188
188
  }
189
189
  }
190
190
  ),
191
- /* @__PURE__ */ s(O, { children: [
191
+ /* @__PURE__ */ s(U, { children: [
192
192
  /* @__PURE__ */ a(f.Button, { variant: "secondary", onClick: A, type: "button", children: e("form.cancelCta") }),
193
193
  /* @__PURE__ */ a(f.Button, { type: "submit", isLoading: t.status.isPending, children: e("form.saveCta") })
194
194
  ] })
@@ -14,7 +14,7 @@ function H({
14
14
  LoaderComponent: o
15
15
  }) {
16
16
  d("Contractor.Profile");
17
- const t = m({ contractorUuid: r }), f = t.data?.contractor;
17
+ const t = m({ contractorUuid: r }), f = t.data?.contractorShow;
18
18
  if (t.isLoading || !f) {
19
19
  const s = l([t]);
20
20
  return /* @__PURE__ */ i(p, { isLoading: !0, error: s.errors, LoaderComponent: o });
@@ -1 +1 @@
1
- {"version":3,"file":"SelfOnboardingContractorProfile.js","sources":["../../../../../src/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { ContractorType } from '../shared/useContractorDetailsForm'\nimport { IndividualSelfOnboardingProfile } from './IndividualSelfOnboardingProfile'\nimport { BusinessSelfOnboardingProfile } from './BusinessSelfOnboardingProfile'\nimport { BaseLayout } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useI18n } from '@/i18n'\nimport type { EventType } from '@/shared/constants'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props shared by the contractor self-onboarding profile components.\n *\n * @internal\n */\nexport interface ContractorSelfOnboardingProfileProps {\n /** UUID of the existing contractor completing self-onboarding. */\n contractorId: string\n /** Callback invoked when the component emits an event. */\n onEvent: OnEventType<EventType, unknown>\n /** Optional class name applied to the root element. */\n className?: string\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Resolves the contractor's type and renders the matching self-onboarding\n * profile — individual or business.\n *\n * @internal\n */\nexport function SelfOnboardingContractorProfile({\n contractorId,\n onEvent,\n className,\n LoaderComponent,\n}: ContractorSelfOnboardingProfileProps) {\n useI18n('Contractor.Profile')\n\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const contractor = contractorQuery.data?.contractor\n\n if (contractorQuery.isLoading || !contractor) {\n const errorHandling = composeErrorHandler([contractorQuery])\n return <BaseLayout isLoading error={errorHandling.errors} LoaderComponent={LoaderComponent} />\n }\n\n return contractor.type === ContractorType.Business ? (\n <BusinessSelfOnboardingProfile\n contractorId={contractorId}\n onEvent={onEvent}\n className={className}\n LoaderComponent={LoaderComponent}\n />\n ) : (\n <IndividualSelfOnboardingProfile\n contractorId={contractorId}\n onEvent={onEvent}\n className={className}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n"],"names":["SelfOnboardingContractorProfile","contractorId","onEvent","className","LoaderComponent","useI18n","contractorQuery","useContractorsGet","contractor","errorHandling","composeErrorHandler","BaseLayout","ContractorType","jsx","BusinessSelfOnboardingProfile","IndividualSelfOnboardingProfile"],"mappings":";;;;;;;;;AAiCO,SAASA,EAAgC;AAAA,EAC9C,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AACF,GAAyC;AACvC,EAAAC,EAAQ,oBAAoB;AAE5B,QAAMC,IAAkBC,EAAkB,EAAE,gBAAgBN,GAAc,GACpEO,IAAaF,EAAgB,MAAM;AAEzC,MAAIA,EAAgB,aAAa,CAACE,GAAY;AAC5C,UAAMC,IAAgBC,EAAoB,CAACJ,CAAe,CAAC;AAC3D,6BAAQK,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAc,QAAQ,iBAAAL,GAAkC;AAAA,EAC9F;AAEA,SAAOI,EAAW,SAASI,EAAe,WACxC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAAb;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,IAAA;AAAA,EAAA,IAGF,gBAAAS;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,cAAAd;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"SelfOnboardingContractorProfile.js","sources":["../../../../../src/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { ContractorType } from '../shared/useContractorDetailsForm'\nimport { IndividualSelfOnboardingProfile } from './IndividualSelfOnboardingProfile'\nimport { BusinessSelfOnboardingProfile } from './BusinessSelfOnboardingProfile'\nimport { BaseLayout } from '@/components/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useI18n } from '@/i18n'\nimport type { EventType } from '@/shared/constants'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props shared by the contractor self-onboarding profile components.\n *\n * @internal\n */\nexport interface ContractorSelfOnboardingProfileProps {\n /** UUID of the existing contractor completing self-onboarding. */\n contractorId: string\n /** Callback invoked when the component emits an event. */\n onEvent: OnEventType<EventType, unknown>\n /** Optional class name applied to the root element. */\n className?: string\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Resolves the contractor's type and renders the matching self-onboarding\n * profile — individual or business.\n *\n * @internal\n */\nexport function SelfOnboardingContractorProfile({\n contractorId,\n onEvent,\n className,\n LoaderComponent,\n}: ContractorSelfOnboardingProfileProps) {\n useI18n('Contractor.Profile')\n\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const contractor = contractorQuery.data?.contractorShow\n\n if (contractorQuery.isLoading || !contractor) {\n const errorHandling = composeErrorHandler([contractorQuery])\n return <BaseLayout isLoading error={errorHandling.errors} LoaderComponent={LoaderComponent} />\n }\n\n return contractor.type === ContractorType.Business ? (\n <BusinessSelfOnboardingProfile\n contractorId={contractorId}\n onEvent={onEvent}\n className={className}\n LoaderComponent={LoaderComponent}\n />\n ) : (\n <IndividualSelfOnboardingProfile\n contractorId={contractorId}\n onEvent={onEvent}\n className={className}\n LoaderComponent={LoaderComponent}\n />\n )\n}\n"],"names":["SelfOnboardingContractorProfile","contractorId","onEvent","className","LoaderComponent","useI18n","contractorQuery","useContractorsGet","contractor","errorHandling","composeErrorHandler","BaseLayout","ContractorType","jsx","BusinessSelfOnboardingProfile","IndividualSelfOnboardingProfile"],"mappings":";;;;;;;;;AAiCO,SAASA,EAAgC;AAAA,EAC9C,cAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,iBAAAC;AACF,GAAyC;AACvC,EAAAC,EAAQ,oBAAoB;AAE5B,QAAMC,IAAkBC,EAAkB,EAAE,gBAAgBN,GAAc,GACpEO,IAAaF,EAAgB,MAAM;AAEzC,MAAIA,EAAgB,aAAa,CAACE,GAAY;AAC5C,UAAMC,IAAgBC,EAAoB,CAACJ,CAAe,CAAC;AAC3D,6BAAQK,GAAA,EAAW,WAAS,IAAC,OAAOF,EAAc,QAAQ,iBAAAL,GAAkC;AAAA,EAC9F;AAEA,SAAOI,EAAW,SAASI,EAAe,WACxC,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,cAAAb;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,IAAA;AAAA,EAAA,IAGF,gBAAAS;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,cAAAd;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,MACA,iBAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -60,7 +60,7 @@ function $e({
60
60
  const N = ae(
61
61
  { contractorUuid: n ?? "" },
62
62
  { enabled: !!n }
63
- ), t = N.data?.contractor, c = !n, _ = Be(t), y = c ? "create" : "update", v = t?.hasSsn ?? !1, b = t?.hasEin ?? !1, [F, P] = D(
63
+ ), t = N.data?.contractorShow, c = !n, _ = Be(t), y = c ? "create" : "update", v = t?.hasSsn ?? !1, b = t?.hasEin ?? !1, [F, P] = D(
64
64
  () => me({ mode: y, optionalFieldsToRequire: S, hasSsn: v, hasEin: b }),
65
65
  [y, S, v, b]
66
66
  ), R = t?.hourlyRate != null ? parseFloat(t.hourlyRate) : void 0, h = D(
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorDetailsForm.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api/models/components/contractorupdaterequestbody'\nimport { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport {\n ContractorType,\n WageType,\n createContractorDetailsSchema,\n type ContractorDetailsOptionalFieldsToRequire,\n type ContractorDetailsFormData,\n type ContractorDetailsFormOutputs,\n} from './contractorDetailsSchema'\nimport {\n TypeField,\n WageTypeField,\n StartDateField,\n HourlyRateField,\n SelfOnboardingField,\n FileNewHireReportField,\n EmailField,\n FirstNameField,\n LastNameField,\n MiddleInitialField,\n BusinessNameField,\n SsnField,\n EinField,\n WorkStateField,\n} from './fields'\nimport type {\n TypeFieldProps,\n WageTypeFieldProps,\n StartDateFieldProps,\n HourlyRateFieldProps,\n SelfOnboardingFieldProps,\n FileNewHireReportFieldProps,\n EmailFieldProps,\n FirstNameFieldProps,\n LastNameFieldProps,\n MiddleInitialFieldProps,\n BusinessNameFieldProps,\n SsnFieldProps,\n EinFieldProps,\n WorkStateFieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport {\n ContractorSelfOnboardingStatuses,\n ContractorOnboardingStatus,\n STATES_ABBR,\n} from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { ContractorDetailsOptionalFieldsToRequire } from './contractorDetailsSchema'\n\n/**\n * Optional overrides passed to {@link UseContractorDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface ContractorDetailsSubmitOptions {\n /** Override the company identifier supplied to the hook (e.g. after creating the company in the same flow). Only used in create mode. */\n companyId?: string\n}\n\n/**\n * Shared options merged into both branches of {@link UseContractorDetailsFormProps}.\n *\n * @public\n */\nexport type UseContractorDetailsFormSharedProps = {\n /** Whether to expose the self-onboarding toggle as `form.Fields.SelfOnboarding`. Defaults to `true`. */\n withSelfOnboardingField?: boolean\n /**\n * Whether `form.Fields.Email` is available regardless of the `selfOnboarding` value.\n *\n * @remarks\n * By default `Email` is only exposed while `selfOnboarding` is `true`, since email is\n * otherwise only collected to send a self-onboarding invite. Set this to `true` for\n * surfaces that let an admin edit an already-onboarded contractor's email directly.\n * Defaults to `false`.\n */\n showEmailField?: boolean\n /** Fields that are optional by default but should be promoted to required for this form instance. */\n optionalFieldsToRequire?: ContractorDetailsOptionalFieldsToRequire\n /** Initial values applied before any contractor data loads. */\n defaultValues?: Partial<ContractorDetailsFormData>\n /** When validation runs. Forwarded to react-hook-form's `mode`. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Whether react-hook-form should focus the first error on validation failure. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Options for {@link useContractorDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `contractorId`; in update mode supply `contractorId` (and optionally\n * `companyId`).\n *\n * @public\n */\nexport type UseContractorDetailsFormProps =\n | (UseContractorDetailsFormSharedProps & { companyId: string; contractorId?: never })\n | (UseContractorDetailsFormSharedProps & { contractorId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useContractorDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Conditionally-visible fields are `undefined` when they do not apply to the\n * current `type`, `wageType`, or self-onboarding selection. Always null-check\n * before rendering.\n *\n * @public\n */\nexport interface ContractorDetailsFormFields {\n /** Radio group bound to `type`. Always available. */\n Type: ComponentType<TypeFieldProps>\n /** Radio group bound to `wageType`. Always available. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Date picker bound to `startDate`. Always available. */\n StartDate: ComponentType<StartDateFieldProps>\n /** Number input bound to `hourlyRate`; available only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps> | undefined\n /** Switch bound to `selfOnboarding`; available only when toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n /** Switch bound to `fileNewHireReport`; available only for individual contractors. */\n FileNewHireReport: ComponentType<FileNewHireReportFieldProps> | undefined\n /** Text input bound to `email`; available only when self-onboarding is enabled. */\n Email: ComponentType<EmailFieldProps> | undefined\n /** Text input bound to `firstName`; available only for individual contractors. */\n FirstName: ComponentType<FirstNameFieldProps> | undefined\n /** Text input bound to `lastName`; available only for individual contractors. */\n LastName: ComponentType<LastNameFieldProps> | undefined\n /** Text input bound to `middleInitial`; available only for individual contractors. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps> | undefined\n /** Text input bound to `businessName`; available only for business contractors. */\n BusinessName: ComponentType<BusinessNameFieldProps> | undefined\n /**\n * Text input bound to `ssn`; available only for individual contractors.\n * Auto-formats as `XXX-XX-XXXX`. When an SSN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ssn: ComponentType<SsnFieldProps> | undefined\n /**\n * Text input bound to `ein`; available only for business contractors.\n * Auto-formats as `XX-XXXXXXX`. When an EIN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ein: ComponentType<EinFieldProps> | undefined\n /** Select bound to `workState`; available only for individual contractors filing a new-hire report. */\n WorkState: ComponentType<WorkStateFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useContractorDetailsForm} once data has loaded.\n *\n * @public\n */\nexport interface UseContractorDetailsFormReady extends BaseFormHookReady<\n ContractorDetailsFieldsMetadata,\n ContractorDetailsFormData,\n ContractorDetailsFormFields\n> {\n /** The loaded contractor data, or `null` in create mode. */\n data: {\n /** The contractor being edited, or `null` in create mode. */\n contractor: Contractor | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `contractorId` was supplied, `'update'` otherwise. */\n mode: 'create' | 'update'\n }\n /** Submit and related actions. */\n actions: {\n /** Validates the form and submits the changes. Returns the created or updated contractor, or `undefined` when validation fails. */\n onSubmit: (\n options?: ContractorDetailsSubmitOptions,\n ) => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (contractor?: Contractor) =>\n !!contractor?.onboardingStatus &&\n ContractorSelfOnboardingStatuses.has(contractor.onboardingStatus)\n\nconst canToggleSelfOnboarding = (contractor?: Contractor) => {\n if (!contractor) return true\n return (\n contractor.onboardingStatus === ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n contractor.onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED\n )\n}\n\n/** @internal */\nfunction buildContractorDetailsFieldsMetadata(\n base: Record<keyof ContractorDetailsFormData, FieldMetadata>,\n) {\n const typeEntries = [ContractorType.Individual, ContractorType.Business]\n const wageTypeEntries = [WageType.Hourly, WageType.Fixed]\n return {\n type: withOptions(\n base.type,\n typeEntries.map(value => ({ value, label: value })),\n typeEntries,\n ),\n wageType: withOptions(\n base.wageType,\n wageTypeEntries.map(value => ({ value, label: value })),\n wageTypeEntries,\n ),\n startDate: base.startDate,\n hourlyRate: base.hourlyRate,\n selfOnboarding: base.selfOnboarding,\n fileNewHireReport: base.fileNewHireReport,\n email: base.email,\n firstName: base.firstName,\n lastName: base.lastName,\n middleInitial: base.middleInitial,\n businessName: base.businessName,\n ssn: base.ssn,\n ein: base.ein,\n workState: withOptions(\n base.workState,\n STATES_ABBR.map(abbr => ({ value: abbr, label: abbr })),\n STATES_ABBR,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless hook for creating or updating a contractor's profile details —\n * individual vs. business type, wage type, names, SSN/EIN, work state, and the\n * self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the contractor fetch\n * resolves, and a ready variant exposing the form's data, pending status,\n * submit action, error handling, and bound `Fields`. Field visibility is\n * driven by the current `type` and `wageType` (self-onboarding toggles the\n * `Email` field unless `showEmailField` is set); fields that do not apply are `undefined` on `form.Fields`.\n * SSN/EIN are exposed by contractor type regardless of self-onboarding — each\n * consumer decides whether to render them. Self-onboarding is only toggleable\n * when the contractor's onboarding status allows it.\n *\n * @param input - See {@link UseContractorDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseContractorDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useContractorDetailsForm,\n * SDKFormProvider,\n * type UseContractorDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function ContractorDetailsPage({\n * companyId,\n * contractorId,\n * }: {\n * companyId: string\n * contractorId: string\n * }) {\n * const contractorDetails = useContractorDetailsForm({ companyId, contractorId })\n *\n * if (contractorDetails.isLoading) return <div>Loading...</div>\n *\n * return <ContractorDetailsReady contractorDetails={contractorDetails} />\n * }\n *\n * function ContractorDetailsReady({\n * contractorDetails,\n * }: {\n * contractorDetails: UseContractorDetailsFormReady\n * }) {\n * const { Fields } = contractorDetails.form\n *\n * return (\n * <SDKFormProvider formHookResult={contractorDetails}>\n * <form onSubmit={e => { e.preventDefault(); void contractorDetails.actions.onSubmit() }}>\n * <Fields.Type label=\"Contractor type\" />\n * <Fields.WageType label=\"Wage type\" />\n * {Fields.FirstName && <Fields.FirstName label=\"First name\" />}\n * {Fields.LastName && <Fields.LastName label=\"Last name\" />}\n * {Fields.BusinessName && <Fields.BusinessName label=\"Business name\" />}\n * <Fields.StartDate label=\"Start date\" />\n * <button type=\"submit\" disabled={contractorDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorDetailsForm({\n companyId,\n contractorId,\n withSelfOnboardingField = true,\n showEmailField = false,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorDetailsFormProps): HookLoadingResult | UseContractorDetailsFormReady {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId ?? '' },\n { enabled: !!contractorId },\n )\n\n const contractor = contractorQuery.data?.contractor\n\n const isCreateMode = !contractorId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(contractor)\n\n const mode = isCreateMode ? 'create' : 'update'\n const hasSsn = contractor?.hasSsn ?? false\n const hasEin = contractor?.hasEin ?? false\n\n const [schema, metadataConfig] = useMemo(\n () => createContractorDetailsSchema({ mode, optionalFieldsToRequire, hasSsn, hasEin }),\n [mode, optionalFieldsToRequire, hasSsn, hasEin],\n )\n\n const parsedHourlyRate =\n contractor?.hourlyRate != null ? parseFloat(contractor.hourlyRate) : undefined\n\n const resolvedDefaults: ContractorDetailsFormData = useMemo(\n () => ({\n type: contractor?.type ?? partnerDefaults?.type ?? ContractorType.Individual,\n wageType: contractor?.wageType ?? partnerDefaults?.wageType ?? WageType.Fixed,\n startDate:\n contractor?.startDate ??\n partnerDefaults?.startDate ??\n new Date().toISOString().split('T')[0]!,\n hourlyRate: parsedHourlyRate ?? partnerDefaults?.hourlyRate ?? NaN,\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(contractor),\n fileNewHireReport:\n contractor?.fileNewHireReport ?? partnerDefaults?.fileNewHireReport ?? false,\n email: contractor?.email ?? partnerDefaults?.email ?? '',\n firstName: contractor?.firstName ?? partnerDefaults?.firstName ?? '',\n lastName: contractor?.lastName ?? partnerDefaults?.lastName ?? '',\n middleInitial: contractor?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n businessName: contractor?.businessName ?? partnerDefaults?.businessName ?? '',\n workState: contractor?.workState ?? partnerDefaults?.workState ?? '',\n ssn: partnerDefaults?.ssn ?? '',\n ein: partnerDefaults?.ein ?? '',\n }),\n [contractor, partnerDefaults, parsedHourlyRate],\n )\n\n const formMethods = useForm<ContractorDetailsFormData, unknown, ContractorDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const [watchedType, watchedWageType, watchedSelfOnboarding, watchedFileNewHireReport] = useWatch({\n control: formMethods.control,\n name: ['type', 'wageType', 'selfOnboarding', 'fileNewHireReport'],\n })\n\n // Render-gating: a field shows when it applies to the current selection. The\n // schema mirrors this via `getExcludedContractorFields` so off-screen fields\n // never trip a phantom required error.\n const isIndividual = watchedType === ContractorType.Individual\n const isBusiness = watchedType === ContractorType.Business\n const isHourly = watchedWageType === WageType.Hourly\n\n const createContractorMutation = useContractorsCreateMutation()\n const updateContractorMutation = useContractorsUpdateMutation()\n\n const isPending = createContractorMutation.isPending || updateContractorMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorDetailsForm')\n\n const queries = contractorId ? [contractorQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n options?: ContractorDetailsSubmitOptions,\n ): Promise<HookSubmitResult<Contractor> | undefined> => {\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const selfOnboardingEnabled = payload.selfOnboarding\n const cleanedSsn = payload.ssn ? removeNonDigits(payload.ssn) : ''\n const cleanedEin = payload.ein ? removeNonDigits(payload.ein) : ''\n\n const requestBody: ContractorCreateRequestBody = {\n type: payload.type,\n wageType: payload.wageType,\n startDate: payload.startDate,\n selfOnboarding: selfOnboardingEnabled,\n email:\n showEmailField || selfOnboardingEnabled ? payload.email || undefined : undefined,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n ...(payload.type === ContractorType.Individual\n ? {\n firstName: payload.firstName,\n lastName: payload.lastName,\n middleInitial: payload.middleInitial || undefined,\n fileNewHireReport: payload.fileNewHireReport,\n workState: payload.fileNewHireReport\n ? payload.workState || undefined\n : undefined,\n ssn: cleanedSsn || undefined,\n }\n : {\n fileNewHireReport: false,\n businessName: payload.businessName,\n ein: cleanedEin || undefined,\n }),\n }\n\n let savedContractor: Contractor\n\n if (isCreateMode) {\n const resolvedCompanyId = options?.companyId ?? companyId\n if (!resolvedCompanyId) {\n throw new SDKInternalError('companyId is required to create a contractor')\n }\n\n const result = await createContractorMutation.mutateAsync({\n request: {\n companyUuid: resolvedCompanyId,\n contractorCreateRequestBody: { ...requestBody, isActive: true },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor creation failed')\n }\n\n savedContractor = result.contractor\n } else {\n if (!contractor?.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n\n const updateBody: ContractorUpdateRequestBody = {\n ...requestBody,\n version: contractor.version,\n }\n\n const result = await updateContractorMutation.mutateAsync({\n request: {\n contractorUuid: contractor.uuid,\n contractorUpdateRequestBody: updateBody,\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor update failed')\n }\n\n savedContractor = result.contractor\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: savedContractor,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading = contractorId ? contractorQuery.isLoading : false\n\n if (isDataLoading || (contractorId && !contractor)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n contractor: contractor ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Type: TypeField,\n WageType: WageTypeField,\n StartDate: StartDateField,\n HourlyRate: isHourly ? HourlyRateField : undefined,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n FileNewHireReport: isIndividual ? FileNewHireReportField : undefined,\n Email: showEmailField || watchedSelfOnboarding ? EmailField : undefined,\n FirstName: isIndividual ? FirstNameField : undefined,\n LastName: isIndividual ? LastNameField : undefined,\n MiddleInitial: isIndividual ? MiddleInitialField : undefined,\n BusinessName: isBusiness ? BusinessNameField : undefined,\n Ssn: isIndividual ? SsnField : undefined,\n Ein: isBusiness ? EinField : undefined,\n WorkState: isIndividual && watchedFileNewHireReport ? WorkStateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type UseContractorDetailsFormResult = HookLoadingResult | UseContractorDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type ContractorDetailsFieldsMetadata = ReturnType<\n typeof buildContractorDetailsFieldsMetadata\n>\n"],"names":["isCurrentlySelfOnboarding","contractor","ContractorSelfOnboardingStatuses","canToggleSelfOnboarding","ContractorOnboardingStatus","buildContractorDetailsFieldsMetadata","base","typeEntries","ContractorType","wageTypeEntries","WageType","withOptions","value","STATES_ABBR","abbr","useContractorDetailsForm","companyId","contractorId","withSelfOnboardingField","showEmailField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","contractorQuery","useContractorsGet","isCreateMode","isSelfOnboardingToggleable","mode","hasSsn","hasEin","schema","metadataConfig","useMemo","createContractorDetailsSchema","parsedHourlyRate","resolvedDefaults","formMethods","useForm","zodResolver","watchedType","watchedWageType","watchedSelfOnboarding","watchedFileNewHireReport","useWatch","isIndividual","isBusiness","isHourly","createContractorMutation","useContractorsCreateMutation","updateContractorMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","selfOnboardingEnabled","cleanedSsn","removeNonDigits","cleanedEin","requestBody","savedContractor","resolvedCompanyId","SDKInternalError","result","updateBody","hookFormInternals","useHookFormInternals","TypeField","WageTypeField","StartDateField","HourlyRateField","SelfOnboardingField","FileNewHireReportField","EmailField","FirstNameField","LastNameField","MiddleInitialField","BusinessNameField","SsnField","EinField","WorkStateField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useContractorDetailsForm.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport type { ComponentType } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorCreateRequestBody } from '@gusto/embedded-api/models/components/contractorcreaterequestbody'\nimport type { ContractorUpdateRequestBody } from '@gusto/embedded-api/models/components/contractorupdaterequestbody'\nimport { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport {\n ContractorType,\n WageType,\n createContractorDetailsSchema,\n type ContractorDetailsOptionalFieldsToRequire,\n type ContractorDetailsFormData,\n type ContractorDetailsFormOutputs,\n} from './contractorDetailsSchema'\nimport {\n TypeField,\n WageTypeField,\n StartDateField,\n HourlyRateField,\n SelfOnboardingField,\n FileNewHireReportField,\n EmailField,\n FirstNameField,\n LastNameField,\n MiddleInitialField,\n BusinessNameField,\n SsnField,\n EinField,\n WorkStateField,\n} from './fields'\nimport type {\n TypeFieldProps,\n WageTypeFieldProps,\n StartDateFieldProps,\n HourlyRateFieldProps,\n SelfOnboardingFieldProps,\n FileNewHireReportFieldProps,\n EmailFieldProps,\n FirstNameFieldProps,\n LastNameFieldProps,\n MiddleInitialFieldProps,\n BusinessNameFieldProps,\n SsnFieldProps,\n EinFieldProps,\n WorkStateFieldProps,\n} from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport {\n ContractorSelfOnboardingStatuses,\n ContractorOnboardingStatus,\n STATES_ABBR,\n} from '@/shared/constants'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\n\nexport type { ContractorDetailsOptionalFieldsToRequire } from './contractorDetailsSchema'\n\n/**\n * Optional overrides passed to {@link UseContractorDetailsFormReady.actions.onSubmit | onSubmit}.\n *\n * @public\n */\nexport interface ContractorDetailsSubmitOptions {\n /** Override the company identifier supplied to the hook (e.g. after creating the company in the same flow). Only used in create mode. */\n companyId?: string\n}\n\n/**\n * Shared options merged into both branches of {@link UseContractorDetailsFormProps}.\n *\n * @public\n */\nexport type UseContractorDetailsFormSharedProps = {\n /** Whether to expose the self-onboarding toggle as `form.Fields.SelfOnboarding`. Defaults to `true`. */\n withSelfOnboardingField?: boolean\n /**\n * Whether `form.Fields.Email` is available regardless of the `selfOnboarding` value.\n *\n * @remarks\n * By default `Email` is only exposed while `selfOnboarding` is `true`, since email is\n * otherwise only collected to send a self-onboarding invite. Set this to `true` for\n * surfaces that let an admin edit an already-onboarded contractor's email directly.\n * Defaults to `false`.\n */\n showEmailField?: boolean\n /** Fields that are optional by default but should be promoted to required for this form instance. */\n optionalFieldsToRequire?: ContractorDetailsOptionalFieldsToRequire\n /** Initial values applied before any contractor data loads. */\n defaultValues?: Partial<ContractorDetailsFormData>\n /** When validation runs. Forwarded to react-hook-form's `mode`. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Whether react-hook-form should focus the first error on validation failure. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Options for {@link useContractorDetailsForm}.\n *\n * @remarks\n * Discriminated by mode: in create mode supply `companyId` and omit\n * `contractorId`; in update mode supply `contractorId` (and optionally\n * `companyId`).\n *\n * @public\n */\nexport type UseContractorDetailsFormProps =\n | (UseContractorDetailsFormSharedProps & { companyId: string; contractorId?: never })\n | (UseContractorDetailsFormSharedProps & { contractorId: string; companyId?: string })\n\n/**\n * The Field components exposed by {@link useContractorDetailsForm} as `form.Fields`.\n *\n * @remarks\n * Conditionally-visible fields are `undefined` when they do not apply to the\n * current `type`, `wageType`, or self-onboarding selection. Always null-check\n * before rendering.\n *\n * @public\n */\nexport interface ContractorDetailsFormFields {\n /** Radio group bound to `type`. Always available. */\n Type: ComponentType<TypeFieldProps>\n /** Radio group bound to `wageType`. Always available. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Date picker bound to `startDate`. Always available. */\n StartDate: ComponentType<StartDateFieldProps>\n /** Number input bound to `hourlyRate`; available only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps> | undefined\n /** Switch bound to `selfOnboarding`; available only when toggleable. */\n SelfOnboarding: ComponentType<SelfOnboardingFieldProps> | undefined\n /** Switch bound to `fileNewHireReport`; available only for individual contractors. */\n FileNewHireReport: ComponentType<FileNewHireReportFieldProps> | undefined\n /** Text input bound to `email`; available only when self-onboarding is enabled. */\n Email: ComponentType<EmailFieldProps> | undefined\n /** Text input bound to `firstName`; available only for individual contractors. */\n FirstName: ComponentType<FirstNameFieldProps> | undefined\n /** Text input bound to `lastName`; available only for individual contractors. */\n LastName: ComponentType<LastNameFieldProps> | undefined\n /** Text input bound to `middleInitial`; available only for individual contractors. */\n MiddleInitial: ComponentType<MiddleInitialFieldProps> | undefined\n /** Text input bound to `businessName`; available only for business contractors. */\n BusinessName: ComponentType<BusinessNameFieldProps> | undefined\n /**\n * Text input bound to `ssn`; available only for individual contractors.\n * Auto-formats as `XXX-XX-XXXX`. When an SSN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ssn: ComponentType<SsnFieldProps> | undefined\n /**\n * Text input bound to `ein`; available only for business contractors.\n * Auto-formats as `XX-XXXXXXX`. When an EIN is already on file the field\n * shows a masked placeholder and the required rule is waived.\n */\n Ein: ComponentType<EinFieldProps> | undefined\n /** Select bound to `workState`; available only for individual contractors filing a new-hire report. */\n WorkState: ComponentType<WorkStateFieldProps> | undefined\n}\n\n/**\n * The ready-state result returned by {@link useContractorDetailsForm} once data has loaded.\n *\n * @public\n */\nexport interface UseContractorDetailsFormReady extends BaseFormHookReady<\n ContractorDetailsFieldsMetadata,\n ContractorDetailsFormData,\n ContractorDetailsFormFields\n> {\n /** The loaded contractor data, or `null` in create mode. */\n data: {\n /** The contractor being edited, or `null` in create mode. */\n contractor: Contractor | null\n }\n /** Submit status and form mode. */\n status: {\n /** `true` while the create or update mutation is in flight. */\n isPending: boolean\n /** `'create'` when no `contractorId` was supplied, `'update'` otherwise. */\n mode: 'create' | 'update'\n }\n /** Submit and related actions. */\n actions: {\n /** Validates the form and submits the changes. Returns the created or updated contractor, or `undefined` when validation fails. */\n onSubmit: (\n options?: ContractorDetailsSubmitOptions,\n ) => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\nconst isCurrentlySelfOnboarding = (contractor?: Contractor) =>\n !!contractor?.onboardingStatus &&\n ContractorSelfOnboardingStatuses.has(contractor.onboardingStatus)\n\nconst canToggleSelfOnboarding = (contractor?: Contractor) => {\n if (!contractor) return true\n return (\n contractor.onboardingStatus === ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE ||\n contractor.onboardingStatus === ContractorOnboardingStatus.SELF_ONBOARDING_NOT_INVITED\n )\n}\n\n/** @internal */\nfunction buildContractorDetailsFieldsMetadata(\n base: Record<keyof ContractorDetailsFormData, FieldMetadata>,\n) {\n const typeEntries = [ContractorType.Individual, ContractorType.Business]\n const wageTypeEntries = [WageType.Hourly, WageType.Fixed]\n return {\n type: withOptions(\n base.type,\n typeEntries.map(value => ({ value, label: value })),\n typeEntries,\n ),\n wageType: withOptions(\n base.wageType,\n wageTypeEntries.map(value => ({ value, label: value })),\n wageTypeEntries,\n ),\n startDate: base.startDate,\n hourlyRate: base.hourlyRate,\n selfOnboarding: base.selfOnboarding,\n fileNewHireReport: base.fileNewHireReport,\n email: base.email,\n firstName: base.firstName,\n lastName: base.lastName,\n middleInitial: base.middleInitial,\n businessName: base.businessName,\n ssn: base.ssn,\n ein: base.ein,\n workState: withOptions(\n base.workState,\n STATES_ABBR.map(abbr => ({ value: abbr, label: abbr })),\n STATES_ABBR,\n ),\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless hook for creating or updating a contractor's profile details —\n * individual vs. business type, wage type, names, SSN/EIN, work state, and the\n * self-onboarding preference.\n *\n * @remarks\n * Returns a discriminated union: a loading variant while the contractor fetch\n * resolves, and a ready variant exposing the form's data, pending status,\n * submit action, error handling, and bound `Fields`. Field visibility is\n * driven by the current `type` and `wageType` (self-onboarding toggles the\n * `Email` field unless `showEmailField` is set); fields that do not apply are `undefined` on `form.Fields`.\n * SSN/EIN are exposed by contractor type regardless of self-onboarding — each\n * consumer decides whether to render them. Self-onboarding is only toggleable\n * when the contractor's onboarding status allows it.\n *\n * @param input - See {@link UseContractorDetailsFormProps}.\n * @returns A {@link HookLoadingResult} while loading, or a {@link UseContractorDetailsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useContractorDetailsForm,\n * SDKFormProvider,\n * type UseContractorDetailsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function ContractorDetailsPage({\n * companyId,\n * contractorId,\n * }: {\n * companyId: string\n * contractorId: string\n * }) {\n * const contractorDetails = useContractorDetailsForm({ companyId, contractorId })\n *\n * if (contractorDetails.isLoading) return <div>Loading...</div>\n *\n * return <ContractorDetailsReady contractorDetails={contractorDetails} />\n * }\n *\n * function ContractorDetailsReady({\n * contractorDetails,\n * }: {\n * contractorDetails: UseContractorDetailsFormReady\n * }) {\n * const { Fields } = contractorDetails.form\n *\n * return (\n * <SDKFormProvider formHookResult={contractorDetails}>\n * <form onSubmit={e => { e.preventDefault(); void contractorDetails.actions.onSubmit() }}>\n * <Fields.Type label=\"Contractor type\" />\n * <Fields.WageType label=\"Wage type\" />\n * {Fields.FirstName && <Fields.FirstName label=\"First name\" />}\n * {Fields.LastName && <Fields.LastName label=\"Last name\" />}\n * {Fields.BusinessName && <Fields.BusinessName label=\"Business name\" />}\n * <Fields.StartDate label=\"Start date\" />\n * <button type=\"submit\" disabled={contractorDetails.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorDetailsForm({\n companyId,\n contractorId,\n withSelfOnboardingField = true,\n showEmailField = false,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorDetailsFormProps): HookLoadingResult | UseContractorDetailsFormReady {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId ?? '' },\n { enabled: !!contractorId },\n )\n\n const contractor = contractorQuery.data?.contractorShow\n\n const isCreateMode = !contractorId\n const isSelfOnboardingToggleable = canToggleSelfOnboarding(contractor)\n\n const mode = isCreateMode ? 'create' : 'update'\n const hasSsn = contractor?.hasSsn ?? false\n const hasEin = contractor?.hasEin ?? false\n\n const [schema, metadataConfig] = useMemo(\n () => createContractorDetailsSchema({ mode, optionalFieldsToRequire, hasSsn, hasEin }),\n [mode, optionalFieldsToRequire, hasSsn, hasEin],\n )\n\n const parsedHourlyRate =\n contractor?.hourlyRate != null ? parseFloat(contractor.hourlyRate) : undefined\n\n const resolvedDefaults: ContractorDetailsFormData = useMemo(\n () => ({\n type: contractor?.type ?? partnerDefaults?.type ?? ContractorType.Individual,\n wageType: contractor?.wageType ?? partnerDefaults?.wageType ?? WageType.Fixed,\n startDate:\n contractor?.startDate ??\n partnerDefaults?.startDate ??\n new Date().toISOString().split('T')[0]!,\n hourlyRate: parsedHourlyRate ?? partnerDefaults?.hourlyRate ?? NaN,\n selfOnboarding: partnerDefaults?.selfOnboarding ?? isCurrentlySelfOnboarding(contractor),\n fileNewHireReport:\n contractor?.fileNewHireReport ?? partnerDefaults?.fileNewHireReport ?? false,\n email: contractor?.email ?? partnerDefaults?.email ?? '',\n firstName: contractor?.firstName ?? partnerDefaults?.firstName ?? '',\n lastName: contractor?.lastName ?? partnerDefaults?.lastName ?? '',\n middleInitial: contractor?.middleInitial ?? partnerDefaults?.middleInitial ?? '',\n businessName: contractor?.businessName ?? partnerDefaults?.businessName ?? '',\n workState: contractor?.workState ?? partnerDefaults?.workState ?? '',\n ssn: partnerDefaults?.ssn ?? '',\n ein: partnerDefaults?.ein ?? '',\n }),\n [contractor, partnerDefaults, parsedHourlyRate],\n )\n\n const formMethods = useForm<ContractorDetailsFormData, unknown, ContractorDetailsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const [watchedType, watchedWageType, watchedSelfOnboarding, watchedFileNewHireReport] = useWatch({\n control: formMethods.control,\n name: ['type', 'wageType', 'selfOnboarding', 'fileNewHireReport'],\n })\n\n // Render-gating: a field shows when it applies to the current selection. The\n // schema mirrors this via `getExcludedContractorFields` so off-screen fields\n // never trip a phantom required error.\n const isIndividual = watchedType === ContractorType.Individual\n const isBusiness = watchedType === ContractorType.Business\n const isHourly = watchedWageType === WageType.Hourly\n\n const createContractorMutation = useContractorsCreateMutation()\n const updateContractorMutation = useContractorsUpdateMutation()\n\n const isPending = createContractorMutation.isPending || updateContractorMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorDetailsForm')\n\n const queries = contractorId ? [contractorQuery] : []\n const errorHandling = composeErrorHandler(queries, { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorDetailsFieldsMetadata(baseMetadata)\n\n const onSubmit = async (\n options?: ContractorDetailsSubmitOptions,\n ): Promise<HookSubmitResult<Contractor> | undefined> => {\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorDetailsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const selfOnboardingEnabled = payload.selfOnboarding\n const cleanedSsn = payload.ssn ? removeNonDigits(payload.ssn) : ''\n const cleanedEin = payload.ein ? removeNonDigits(payload.ein) : ''\n\n const requestBody: ContractorCreateRequestBody = {\n type: payload.type,\n wageType: payload.wageType,\n startDate: payload.startDate,\n selfOnboarding: selfOnboardingEnabled,\n email:\n showEmailField || selfOnboardingEnabled ? payload.email || undefined : undefined,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n ...(payload.type === ContractorType.Individual\n ? {\n firstName: payload.firstName,\n lastName: payload.lastName,\n middleInitial: payload.middleInitial || undefined,\n fileNewHireReport: payload.fileNewHireReport,\n workState: payload.fileNewHireReport\n ? payload.workState || undefined\n : undefined,\n ssn: cleanedSsn || undefined,\n }\n : {\n fileNewHireReport: false,\n businessName: payload.businessName,\n ein: cleanedEin || undefined,\n }),\n }\n\n let savedContractor: Contractor\n\n if (isCreateMode) {\n const resolvedCompanyId = options?.companyId ?? companyId\n if (!resolvedCompanyId) {\n throw new SDKInternalError('companyId is required to create a contractor')\n }\n\n const result = await createContractorMutation.mutateAsync({\n request: {\n companyUuid: resolvedCompanyId,\n contractorCreateRequestBody: { ...requestBody, isActive: true },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor creation failed')\n }\n\n savedContractor = result.contractor\n } else {\n if (!contractor?.version) {\n throw new SDKInternalError('Contractor version is required for updates')\n }\n\n const updateBody: ContractorUpdateRequestBody = {\n ...requestBody,\n version: contractor.version,\n }\n\n const result = await updateContractorMutation.mutateAsync({\n request: {\n contractorUuid: contractor.uuid,\n contractorUpdateRequestBody: updateBody,\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor update failed')\n }\n\n savedContractor = result.contractor\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: savedContractor,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading = contractorId ? contractorQuery.isLoading : false\n\n if (isDataLoading || (contractorId && !contractor)) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n contractor: contractor ?? null,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Type: TypeField,\n WageType: WageTypeField,\n StartDate: StartDateField,\n HourlyRate: isHourly ? HourlyRateField : undefined,\n SelfOnboarding:\n withSelfOnboardingField && isSelfOnboardingToggleable ? SelfOnboardingField : undefined,\n FileNewHireReport: isIndividual ? FileNewHireReportField : undefined,\n Email: showEmailField || watchedSelfOnboarding ? EmailField : undefined,\n FirstName: isIndividual ? FirstNameField : undefined,\n LastName: isIndividual ? LastNameField : undefined,\n MiddleInitial: isIndividual ? MiddleInitialField : undefined,\n BusinessName: isBusiness ? BusinessNameField : undefined,\n Ssn: isIndividual ? SsnField : undefined,\n Ein: isBusiness ? EinField : undefined,\n WorkState: isIndividual && watchedFileNewHireReport ? WorkStateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type UseContractorDetailsFormResult = HookLoadingResult | UseContractorDetailsFormReady\n\n/**\n * Shape of `form.fieldsMetadata` returned by {@link useContractorDetailsForm}.\n *\n * @public\n */\nexport type ContractorDetailsFieldsMetadata = ReturnType<\n typeof buildContractorDetailsFieldsMetadata\n>\n"],"names":["isCurrentlySelfOnboarding","contractor","ContractorSelfOnboardingStatuses","canToggleSelfOnboarding","ContractorOnboardingStatus","buildContractorDetailsFieldsMetadata","base","typeEntries","ContractorType","wageTypeEntries","WageType","withOptions","value","STATES_ABBR","abbr","useContractorDetailsForm","companyId","contractorId","withSelfOnboardingField","showEmailField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","contractorQuery","useContractorsGet","isCreateMode","isSelfOnboardingToggleable","mode","hasSsn","hasEin","schema","metadataConfig","useMemo","createContractorDetailsSchema","parsedHourlyRate","resolvedDefaults","formMethods","useForm","zodResolver","watchedType","watchedWageType","watchedSelfOnboarding","watchedFileNewHireReport","useWatch","isIndividual","isBusiness","isHourly","createContractorMutation","useContractorsCreateMutation","updateContractorMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","options","submitResult","resolve","data","payload","selfOnboardingEnabled","cleanedSsn","removeNonDigits","cleanedEin","requestBody","savedContractor","resolvedCompanyId","SDKInternalError","result","updateBody","hookFormInternals","useHookFormInternals","TypeField","WageTypeField","StartDateField","HourlyRateField","SelfOnboardingField","FileNewHireReportField","EmailField","FirstNameField","LastNameField","MiddleInitialField","BusinessNameField","SsnField","EinField","WorkStateField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -6,7 +6,7 @@ function c({
6
6
  const r = i(
7
7
  { contractorUuid: n },
8
8
  { staleTime: 1 / 0 }
9
- ), t = a([r]), o = r.data?.contractor;
9
+ ), t = a([r]), o = r.data?.contractorShow;
10
10
  return r.isLoading || !o ? { isLoading: !0, errorHandling: t } : {
11
11
  isLoading: !1,
12
12
  data: { contractor: o },
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorProfileSummary.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/** @internal */\nexport interface UseContractorProfileSummaryParams {\n contractorId: string\n}\n\ntype UseContractorProfileSummaryReady = BaseHookReady<\n { contractor: Contractor },\n { isFetching: boolean; isPending: boolean }\n>\n\n/** @internal */\nexport type UseContractorProfileSummaryResult = HookLoadingResult | UseContractorProfileSummaryReady\n\n/** @internal */\nexport function useContractorProfileSummary({\n contractorId,\n}: UseContractorProfileSummaryParams): UseContractorProfileSummaryResult {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId },\n { staleTime: Infinity },\n )\n\n const errorHandling = composeErrorHandler([contractorQuery])\n\n const contractor = contractorQuery.data?.contractor\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { contractor },\n status: {\n isFetching: contractorQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useContractorProfileSummary","contractorId","contractorQuery","useContractorsGet","errorHandling","composeErrorHandler","contractor"],"mappings":";;AAmBO,SAASA,EAA4B;AAAA,EAC1C,cAAAC;AACF,GAAyE;AACvE,QAAMC,IAAkBC;AAAA,IACtB,EAAE,gBAAgBF,EAAA;AAAA,IAClB,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlBG,IAAgBC,EAAoB,CAACH,CAAe,CAAC,GAErDI,IAAaJ,EAAgB,MAAM;AAEzC,SAAIA,EAAgB,aAAa,CAACI,IACzB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAgB;AAAA,MAC5B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useContractorProfileSummary.js","sources":["../../../../../../src/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/** @internal */\nexport interface UseContractorProfileSummaryParams {\n contractorId: string\n}\n\ntype UseContractorProfileSummaryReady = BaseHookReady<\n { contractor: Contractor },\n { isFetching: boolean; isPending: boolean }\n>\n\n/** @internal */\nexport type UseContractorProfileSummaryResult = HookLoadingResult | UseContractorProfileSummaryReady\n\n/** @internal */\nexport function useContractorProfileSummary({\n contractorId,\n}: UseContractorProfileSummaryParams): UseContractorProfileSummaryResult {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId },\n { staleTime: Infinity },\n )\n\n const errorHandling = composeErrorHandler([contractorQuery])\n\n const contractor = contractorQuery.data?.contractorShow\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { contractor },\n status: {\n isFetching: contractorQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useContractorProfileSummary","contractorId","contractorQuery","useContractorsGet","errorHandling","composeErrorHandler","contractor"],"mappings":";;AAmBO,SAASA,EAA4B;AAAA,EAC1C,cAAAC;AACF,GAAyE;AACvE,QAAMC,IAAkBC;AAAA,IACtB,EAAE,gBAAgBF,EAAA;AAAA,IAClB,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlBG,IAAgBC,EAAoB,CAACH,CAAe,CAAC,GAErDI,IAAaJ,EAAgB,MAAM;AAEzC,SAAIA,EAAgB,aAAa,CAACI,IACzB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAgB;AAAA,MAC5B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
@@ -8,15 +8,8 @@ import { Landing as i } from "../Landing/Landing.js";
8
8
  import { OnboardingSummary as s } from "../OnboardingSummary/OnboardingSummary.js";
9
9
  import { DocumentSigner as u } from "../Documents/onboarding/DocumentSigner/DocumentSigner.js";
10
10
  function $() {
11
- const { companyId: o, contractorId: n, onEvent: e } = c();
12
- return /* @__PURE__ */ t(
13
- i,
14
- {
15
- companyId: r(o),
16
- contractorId: r(n),
17
- onEvent: e
18
- }
19
- );
11
+ const { contractorId: o, onEvent: n } = c();
12
+ return /* @__PURE__ */ t(i, { contractorId: r(o), onEvent: n });
20
13
  }
21
14
  function l() {
22
15
  const { companyId: o, contractorId: n, onEvent: e } = c();
@@ -1 +1 @@
1
- {"version":3,"file":"SelfOnboardingComponents.js","sources":["../../../../src/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.tsx"],"sourcesContent":["import { 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/Contractor/Landing'\nimport { ContractorProfile as ProfileComponent } from '@/components/Contractor/Profile/onboarding/ContractorProfile'\nimport { Address as AddressComponent } from '@/components/Contractor/Address/onboarding/Address'\nimport { PaymentMethod as PaymentMethodComponent } from '@/components/Contractor/PaymentMethod/onboarding/PaymentMethod'\nimport { DocumentSigner as DocumentSignerComponent } from '@/components/Contractor/Documents/onboarding/DocumentSigner'\nimport { OnboardingSummary as OnboardingSummaryComponent } from '@/components/Contractor/OnboardingSummary'\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 contractor identifier. */\n contractorId: string\n}\n\n/** @internal */\nexport interface SelfOnboardingContextInterface extends FlowContextInterface {\n companyId: string\n contractorId: string\n}\n\n/** @internal */\nexport function Landing() {\n const { companyId, contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <LandingComponent\n companyId={ensureRequired(companyId)}\n contractorId={ensureRequired(contractorId)}\n onEvent={onEvent}\n />\n )\n}\n\n/** @internal */\nexport function Profile() {\n const { companyId, contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <ProfileComponent\n companyId={ensureRequired(companyId)}\n contractorId={ensureRequired(contractorId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function Address() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <AddressComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function PaymentMethod() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <PaymentMethodComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function DocumentSigner() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <DocumentSignerComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function OnboardingSummary() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <OnboardingSummaryComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n )\n}\n"],"names":["Landing","companyId","contractorId","onEvent","useFlow","jsx","LandingComponent","ensureRequired","Profile","ProfileComponent","Address","AddressComponent","PaymentMethod","PaymentMethodComponent","DocumentSigner","DocumentSignerComponent","OnboardingSummary","OnboardingSummaryComponent"],"mappings":";;;;;;;;;AA8BO,SAASA,IAAU;AACxB,QAAM,EAAE,WAAAC,GAAW,cAAAC,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAC7C,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC,EAAeN,CAAS;AAAA,MACnC,cAAcM,EAAeL,CAAY;AAAA,MACzC,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASK,IAAU;AACxB,QAAM,EAAE,WAAAP,GAAW,cAAAC,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAC7C,SACE,gBAAAC;AAAA,IAACI;AAAAA,IAAA;AAAA,MACC,WAAWF,EAAeN,CAAS;AAAA,MACnC,cAAcM,EAAeL,CAAY;AAAA,MACzC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASO,IAAU;AACxB,QAAM,EAAE,cAAAR,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQO,GAAA,EAAiB,cAAcJ,EAAeL,CAAY,GAAG,SAAAC,GAAkB;AACzF;AAGO,SAASS,IAAgB;AAC9B,QAAM,EAAE,cAAAV,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQS,GAAA,EAAuB,cAAcN,EAAeL,CAAY,GAAG,SAAAC,GAAkB;AAC/F;AAGO,SAASW,IAAiB;AAC/B,QAAM,EAAE,cAAAZ,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQW,GAAA,EAAwB,cAAcR,EAAeL,CAAY,GAAG,SAAAC,GAAkB;AAChG;AAGO,SAASa,IAAoB;AAClC,QAAM,EAAE,cAAAd,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BACGa,GAAA,EAA2B,cAAcV,EAAeL,CAAY,GAAG,SAAAC,GAAkB;AAE9F;"}
1
+ {"version":3,"file":"SelfOnboardingComponents.js","sources":["../../../../src/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.tsx"],"sourcesContent":["import { 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/Contractor/Landing'\nimport { ContractorProfile as ProfileComponent } from '@/components/Contractor/Profile/onboarding/ContractorProfile'\nimport { Address as AddressComponent } from '@/components/Contractor/Address/onboarding/Address'\nimport { PaymentMethod as PaymentMethodComponent } from '@/components/Contractor/PaymentMethod/onboarding/PaymentMethod'\nimport { DocumentSigner as DocumentSignerComponent } from '@/components/Contractor/Documents/onboarding/DocumentSigner'\nimport { OnboardingSummary as OnboardingSummaryComponent } from '@/components/Contractor/OnboardingSummary'\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 contractor identifier. */\n contractorId: string\n}\n\n/** @internal */\nexport interface SelfOnboardingContextInterface extends FlowContextInterface {\n companyId: string\n contractorId: string\n}\n\n/** @internal */\nexport function Landing() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <LandingComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function Profile() {\n const { companyId, contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <ProfileComponent\n companyId={ensureRequired(companyId)}\n contractorId={ensureRequired(contractorId)}\n onEvent={onEvent}\n isAdmin={false}\n />\n )\n}\n\n/** @internal */\nexport function Address() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <AddressComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function PaymentMethod() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <PaymentMethodComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function DocumentSigner() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return <DocumentSignerComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n}\n\n/** @internal */\nexport function OnboardingSummary() {\n const { contractorId, onEvent } = useFlow<SelfOnboardingContextInterface>()\n return (\n <OnboardingSummaryComponent contractorId={ensureRequired(contractorId)} onEvent={onEvent} />\n )\n}\n"],"names":["Landing","contractorId","onEvent","useFlow","LandingComponent","ensureRequired","Profile","companyId","jsx","ProfileComponent","Address","AddressComponent","PaymentMethod","PaymentMethodComponent","DocumentSigner","DocumentSignerComponent","OnboardingSummary","OnboardingSummaryComponent"],"mappings":";;;;;;;;;AA8BO,SAASA,IAAU;AACxB,QAAM,EAAE,cAAAC,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQC,GAAA,EAAiB,cAAcC,EAAeJ,CAAY,GAAG,SAAAC,GAAkB;AACzF;AAGO,SAASI,IAAU;AACxB,QAAM,EAAE,WAAAC,GAAW,cAAAN,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAC7C,SACE,gBAAAK;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWJ,EAAeE,CAAS;AAAA,MACnC,cAAcF,EAAeJ,CAAY;AAAA,MACzC,SAAAC;AAAA,MACA,SAAS;AAAA,IAAA;AAAA,EAAA;AAGf;AAGO,SAASQ,IAAU;AACxB,QAAM,EAAE,cAAAT,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQQ,GAAA,EAAiB,cAAcN,EAAeJ,CAAY,GAAG,SAAAC,GAAkB;AACzF;AAGO,SAASU,IAAgB;AAC9B,QAAM,EAAE,cAAAX,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQU,GAAA,EAAuB,cAAcR,EAAeJ,CAAY,GAAG,SAAAC,GAAkB;AAC/F;AAGO,SAASY,IAAiB;AAC/B,QAAM,EAAE,cAAAb,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BAAQY,GAAA,EAAwB,cAAcV,EAAeJ,CAAY,GAAG,SAAAC,GAAkB;AAChG;AAGO,SAASc,IAAoB;AAClC,QAAM,EAAE,cAAAf,GAAc,SAAAC,EAAA,IAAYC,EAAA;AAClC,2BACGc,GAAA,EAA2B,cAAcZ,EAAeJ,CAAY,GAAG,SAAAC,GAAkB;AAE9F;"}