@gusto/embedded-react-sdk 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (648) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/components/Base/useBaseSubmit.js +4 -4
  3. package/dist/components/Base/useBaseSubmit.js.map +1 -1
  4. package/dist/components/Common/DocumentList/DocumentList.d.ts +8 -1
  5. package/dist/components/Common/DocumentList/DocumentList.js +24 -21
  6. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  7. package/dist/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes.d.ts +1 -1
  8. package/dist/components/Common/OnboardingStatusBadge/index.d.ts +2 -2
  9. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  10. package/dist/components/Common/TaxInputs/TaxInputs.d.ts +2 -2
  11. package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
  12. package/dist/components/Common/UI/FormBox/FormBox.d.ts +9 -0
  13. package/dist/components/Common/UI/FormBox/FormBox.js +13 -0
  14. package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -0
  15. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +14 -0
  16. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -0
  17. package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +26 -0
  18. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.d.ts +9 -0
  19. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js +23 -0
  20. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.js.map +1 -0
  21. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js +8 -0
  22. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeader.module.scss.js.map +1 -0
  23. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.d.ts +36 -0
  24. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js +7 -0
  25. package/dist/components/Common/UI/FormBoxHeader/FormBoxHeaderTypes.js.map +1 -0
  26. package/dist/components/Common/UI/FormBoxHeader/index.d.ts +1 -0
  27. package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -0
  28. package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
  29. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +5 -5
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +1 -2
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.d.ts +1 -1
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -8
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  35. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +3 -3
  36. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  37. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.d.ts +1 -1
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -8
  40. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  41. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -10
  42. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  43. package/dist/components/Company/BankAccount/BankAccount.js +1 -1
  44. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  45. package/dist/components/Company/BankAccount/BankAccountComponents.d.ts +1 -1
  46. package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
  47. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +1 -1
  48. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  49. package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -1
  50. package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -8
  51. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js +1 -1
  53. package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
  54. package/dist/components/Company/BankAccount/BankAccountList/context.d.ts +1 -1
  55. package/dist/components/Company/BankAccount/BankAccountList/context.js.map +1 -1
  56. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +1 -1
  57. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
  58. package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -1
  59. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  60. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  61. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.d.ts +2 -2
  62. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  63. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  64. package/dist/components/Company/DocumentSigner/DocumentSigner.js +1 -1
  65. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  66. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.d.ts +2 -2
  67. package/dist/components/Company/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  68. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/signCompanyFormSchema.d.ts +1 -1
  69. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.d.ts +1 -1
  70. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js +3 -3
  71. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/useSignCompanyForm.js.map +1 -1
  72. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  73. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  74. package/dist/components/Company/FederalTaxes/Form.js +1 -1
  75. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  76. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +2 -2
  77. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -11
  78. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  79. package/dist/components/Company/Industry/Context.js +12 -11
  80. package/dist/components/Company/Industry/Context.js.map +1 -1
  81. package/dist/components/Company/Industry/Industry.js +2 -2
  82. package/dist/components/Company/Industry/Industry.js.map +1 -1
  83. package/dist/components/Company/Locations/LocationForm/Actions.js +7 -7
  84. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  85. package/dist/components/Company/Locations/LocationForm/Form.d.ts +1 -1
  86. package/dist/components/Company/Locations/LocationForm/LocationForm.js +46 -45
  87. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  88. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -8
  89. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  90. package/dist/components/Company/Locations/LocationsList/LocationsList.js +1 -1
  91. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  92. package/dist/components/Company/Locations/LocationsList/useLocationsList.d.ts +1 -1
  93. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -8
  94. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  95. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +1 -1
  96. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  97. package/dist/components/Company/OnboardingOverview/context.d.ts +1 -1
  98. package/dist/components/Company/OnboardingOverview/context.js +9 -8
  99. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  100. package/dist/components/Company/PaySchedule/PaySchedule.js +1 -1
  101. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  102. package/dist/components/Company/PaySchedule/PayScheduleList.js +1 -1
  103. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
  104. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +3 -3
  105. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +3 -3
  106. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +6 -6
  107. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  108. package/dist/components/Company/StateTaxes/StateTaxes.d.ts +10 -1
  109. package/dist/components/Company/StateTaxes/StateTaxes.js +23 -17
  110. package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
  111. package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
  112. package/dist/components/Company/StateTaxes/StateTaxesComponents.js +17 -10
  113. package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
  114. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +3 -3
  115. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  116. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +2 -2
  117. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  118. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.d.ts +1 -1
  119. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +1 -1
  120. package/dist/components/Company/StateTaxes/StateTaxesForm/context.d.ts +1 -1
  121. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -8
  122. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  123. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +27 -27
  124. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  125. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +9 -0
  126. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +24 -24
  127. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  128. package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -1
  129. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -8
  130. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  131. package/dist/components/Contractor/Address/Address.d.ts +4 -3
  132. package/dist/components/Contractor/Address/Address.js.map +1 -1
  133. package/dist/components/Contractor/Address/shared/useContractorAddressForm/contractorAddressSchema.d.ts +2 -2
  134. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.d.ts +3 -3
  135. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +3 -3
  136. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  137. package/dist/components/Contractor/ContractorList/index.js +95 -92
  138. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  139. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +1 -1
  140. package/dist/components/Contractor/ContractorList/useContractorList.js +1 -1
  141. package/dist/components/Contractor/ContractorList/useContractorList.js.map +1 -1
  142. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  143. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  144. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.d.ts +3 -1
  145. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +64 -51
  146. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
  147. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.d.ts +1 -1
  148. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js +1 -1
  149. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js.map +1 -1
  150. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +202 -159
  151. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
  152. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +1 -1
  153. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.d.ts +3 -3
  154. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +3 -3
  155. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
  156. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +2 -2
  157. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +55 -54
  158. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
  159. package/dist/components/Contractor/Landing/Landing.js +2 -2
  160. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  161. package/dist/components/Contractor/NewHireReport/NewHireReport.js +2 -2
  162. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  163. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.d.ts +1 -1
  164. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js +2 -2
  165. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js.map +1 -1
  166. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountFormSchema.d.ts +1 -1
  167. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.d.ts +1 -1
  168. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/contractorPaymentMethodSchema.js.map +1 -1
  169. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.d.ts +3 -3
  170. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js +2 -2
  171. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/useContractorPaymentMethodForm.js.map +1 -1
  172. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +5 -5
  173. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  174. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +2 -2
  175. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  176. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.d.ts +2 -2
  177. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  178. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.d.ts +1 -1
  179. package/dist/components/Contractor/Payments/CreatePayment/GenericBlocker.js.map +1 -1
  180. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +4 -4
  181. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  182. package/dist/components/Contractor/Payments/CreatePayment/helpers.d.ts +1 -1
  183. package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +1 -1
  184. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +2 -2
  185. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  186. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  187. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +3 -3
  188. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  189. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +2 -2
  190. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  191. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +4 -4
  192. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  193. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +3 -3
  194. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  195. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +17 -5
  196. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +32 -31
  197. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  198. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +3 -3
  199. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  200. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +16 -4
  201. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +34 -30
  202. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  203. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +1 -1
  204. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +1 -1
  205. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  206. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js +1 -1
  207. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js.map +1 -1
  208. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.d.ts +1 -1
  209. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +6 -6
  210. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  211. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +2 -2
  212. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +3 -3
  213. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  214. package/dist/components/Contractor/Submit/Submit.js +3 -3
  215. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  216. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +1 -1
  217. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  218. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +1 -1
  219. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  220. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +1 -1
  221. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
  222. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  223. package/dist/components/Employee/Compensation/onboarding/Compensation.d.ts +2 -6
  224. package/dist/components/Employee/Compensation/onboarding/Compensation.js +38 -42
  225. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
  226. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.d.ts +2 -2
  227. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -1
  228. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js +2 -2
  229. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -1
  230. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.d.ts +1 -1
  231. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
  232. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
  233. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +1 -1
  234. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -1
  235. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.d.ts +2 -2
  236. package/dist/components/Employee/Compensation/shared/getPendingCompensationChanges.js.map +1 -1
  237. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +2 -2
  238. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +3 -3
  239. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js.map +1 -1
  240. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +4 -4
  241. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +7 -7
  242. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  243. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.d.ts +1 -1
  244. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +4 -4
  245. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  246. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +1 -1
  247. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +3 -3
  248. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +7 -7
  249. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  250. package/dist/components/Employee/Dashboard/Dashboard.js +1 -1
  251. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  252. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  253. package/dist/components/Employee/Dashboard/index.d.ts +1 -1
  254. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  255. package/dist/components/Employee/Deductions/management/deductionsStateMachine.js.map +1 -1
  256. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.d.ts +1 -1
  257. package/dist/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.js.map +1 -1
  258. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +1 -1
  259. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
  260. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +1 -1
  261. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  262. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +1 -1
  263. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
  264. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +1 -1
  265. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  266. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +1 -1
  267. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -1
  268. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +1 -1
  269. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -1
  270. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +2 -2
  271. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +1 -1
  272. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
  273. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +1 -1
  274. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -1
  275. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +3 -3
  276. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +5 -5
  277. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
  278. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +2 -2
  279. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js +1 -1
  280. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -1
  281. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +1 -1
  282. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -1
  283. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +1 -1
  284. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js +3 -3
  285. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -1
  286. package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +1 -1
  287. package/dist/components/Employee/Deductions/shared/useDeductionsList.js +2 -2
  288. package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -1
  289. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +1 -1
  290. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -1
  291. package/dist/components/Employee/Documents/management/DocumentManager.js +2 -2
  292. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  293. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  294. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +1 -1
  295. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  296. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.d.ts +1 -1
  297. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +9 -8
  298. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  299. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +2 -2
  300. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  301. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +3 -3
  302. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  303. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +1 -1
  304. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  305. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +2 -2
  306. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +1 -1
  307. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  308. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +1 -1
  309. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  310. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +1 -1
  311. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  312. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +3 -6
  313. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  314. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.d.ts +1 -1
  315. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js +1 -1
  316. package/dist/components/Employee/Documents/shared/useDocumentsList/useDocumentsList.js.map +1 -1
  317. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +2 -2
  318. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js +27 -32
  319. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -1
  320. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +1 -1
  321. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js +3 -3
  322. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -1
  323. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  324. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +1 -1
  325. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  326. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +3 -3
  327. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +4 -5
  328. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  329. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.d.ts +2 -2
  330. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js +1 -1
  331. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/federalTaxesSchema.js.map +1 -1
  332. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.d.ts +2 -2
  333. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js +2 -2
  334. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/useFederalTaxesForm.js.map +1 -1
  335. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.d.ts +1 -1
  336. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js +1 -1
  337. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesSummary/useFederalTaxesSummary.js.map +1 -1
  338. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  339. package/dist/components/Employee/HomeAddress/management/HomeAddressView.d.ts +1 -1
  340. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  341. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.d.ts +1 -1
  342. package/dist/components/Employee/HomeAddress/management/getPendingFutureHomeAddress.js.map +1 -1
  343. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.d.ts +1 -1
  344. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +3 -3
  345. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  346. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.d.ts +1 -1
  347. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js +1 -1
  348. package/dist/components/Employee/HomeAddress/shared/useHomeAddressSummary/useHomeAddressSummary.js.map +1 -1
  349. package/dist/components/Employee/Landing/Landing.js +2 -2
  350. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  351. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.d.ts +1 -1
  352. package/dist/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.js.map +1 -1
  353. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +1 -1
  354. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js +1 -3
  355. package/dist/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.js.map +1 -1
  356. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +55 -49
  357. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  358. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  359. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  360. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +1 -1
  361. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  362. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +1 -1
  363. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js +1 -1
  364. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -1
  365. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +1 -1
  366. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +1 -1
  367. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js +2 -2
  368. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -1
  369. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +2 -2
  370. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js +4 -4
  371. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -1
  372. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +2 -2
  373. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js +3 -3
  374. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -1
  375. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +1 -1
  376. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.d.ts +1 -1
  377. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js +3 -3
  378. package/dist/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.js.map +1 -1
  379. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  380. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  381. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
  382. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +2 -2
  383. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +1 -1
  384. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +5 -5
  385. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  386. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.d.ts +1 -1
  387. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  388. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  389. package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +1 -1
  390. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js +1 -1
  391. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
  392. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +2 -2
  393. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +4 -4
  394. package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
  395. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.d.ts +1 -1
  396. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js.map +1 -1
  397. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js +1 -1
  398. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
  399. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +2 -2
  400. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +5 -5
  401. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  402. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +1 -1
  403. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  404. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  405. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/stateTaxesFixtures.d.ts +1 -1
  406. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/__fixtures__/toWireFormat.d.ts +1 -1
  407. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.d.ts +1 -1
  408. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/employeeStateTaxesSchema.js.map +1 -1
  409. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.d.ts +1 -1
  410. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldMapping.js.map +1 -1
  411. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +1 -1
  412. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  413. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.d.ts +1 -1
  414. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +2 -2
  415. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
  416. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.d.ts +1 -1
  417. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js +1 -1
  418. package/dist/components/Employee/StateTaxes/shared/useStateTaxesSummary/useStateTaxesSummary.js.map +1 -1
  419. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +9 -9
  420. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  421. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +1 -1
  422. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  423. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +4 -4
  424. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  425. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  426. package/dist/components/Employee/WorkAddress/management/WorkAddressView.d.ts +1 -1
  427. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  428. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.d.ts +2 -2
  429. package/dist/components/Employee/WorkAddress/management/getPendingFutureWorkAddress.js.map +1 -1
  430. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.d.ts +1 -1
  431. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +3 -3
  432. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  433. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.d.ts +1 -1
  434. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js +1 -1
  435. package/dist/components/Employee/WorkAddress/shared/useEmployeeWorkAddressSummary/useEmployeeWorkAddressSummary.js.map +1 -1
  436. package/dist/components/Employee/exports/employeeManagement.d.ts +1 -1
  437. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +4 -5
  438. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +101 -125
  439. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  440. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +2 -2
  441. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  442. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +0 -5
  443. package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -13
  444. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  445. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +1 -1
  446. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  447. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +2 -2
  448. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  449. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +3 -3
  450. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  451. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +2 -2
  452. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  453. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js +5 -5
  454. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  455. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +4 -4
  456. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  457. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +8 -7
  458. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  459. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +1 -1
  460. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +9 -9
  461. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  462. package/dist/components/Payroll/OffCycle/index.d.ts +1 -1
  463. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +4 -4
  464. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  465. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +1 -1
  466. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  467. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +2 -2
  468. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js +1 -1
  469. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  470. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +4 -4
  471. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  472. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +2 -2
  473. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  474. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +100 -95
  475. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  476. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +5 -6
  477. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  478. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +5 -5
  479. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +6 -6
  480. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  481. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +57 -56
  482. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  483. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +4 -4
  484. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +1 -1
  485. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  486. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +2 -2
  487. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  488. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +24 -7
  489. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js +37 -33
  490. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  491. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +2 -2
  492. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  493. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js +7 -7
  494. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  495. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +1 -1
  496. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  497. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +2 -2
  498. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  499. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  500. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +4 -4
  501. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  502. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +2 -2
  503. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  504. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +2 -2
  505. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  506. package/dist/components/Payroll/PayrollList/PayrollList.js +8 -8
  507. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  508. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -3
  509. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
  510. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  511. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +7 -7
  512. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  513. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +4 -4
  514. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +31 -31
  515. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  516. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +2 -2
  517. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  518. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -1
  519. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  520. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +1 -1
  521. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  522. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -1
  523. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  524. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +1 -1
  525. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +2 -2
  526. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  527. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +9 -5
  528. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  529. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  530. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  531. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +2 -2
  532. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  533. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +1 -1
  534. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +2 -2
  535. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  536. package/dist/components/Payroll/Transition/index.d.ts +1 -1
  537. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +4 -4
  538. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  539. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +3 -3
  540. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  541. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  542. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  543. package/dist/components/Payroll/helpers.d.ts +26 -12
  544. package/dist/components/Payroll/helpers.js +1 -1
  545. package/dist/components/Payroll/helpers.js.map +1 -1
  546. package/dist/components/Payroll/index.d.ts +3 -2
  547. package/dist/components/Payroll/payrollTypes.d.ts +1 -1
  548. package/dist/components/Payroll/payrollTypes.js +1 -1
  549. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  550. package/dist/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  551. package/dist/components/Payroll/usePreparedPayrollData.js +16 -15
  552. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  553. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +1 -1
  554. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +3 -3
  555. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  556. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +3 -3
  557. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  558. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +3 -3
  559. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  560. package/dist/components/TimeOff/PolicyList/PolicyList.js +6 -6
  561. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  562. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +30 -29
  563. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  564. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js +1 -1
  565. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  566. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +2 -2
  567. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  568. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +27 -26
  569. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  570. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +2 -2
  571. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  572. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +1 -1
  573. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +69 -68
  574. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  575. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +20 -20
  576. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  577. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +67 -66
  578. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  579. package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -5
  580. package/dist/contexts/ApiProvider/ApiProvider.js +3 -3
  581. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  582. package/dist/contexts/ApiProvider/apiVersion.d.ts +23 -0
  583. package/dist/contexts/ApiProvider/apiVersion.js +6 -0
  584. package/dist/contexts/ApiProvider/apiVersion.js.map +1 -0
  585. package/dist/contexts/ApiProvider/apiVersionHook.js +3 -2
  586. package/dist/contexts/ApiProvider/apiVersionHook.js.map +1 -1
  587. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +1 -1
  588. package/dist/contexts/ApiProvider/createSdkQueryClient.js +7 -6
  589. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -1
  590. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +40 -36
  591. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  592. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +2 -0
  593. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  594. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +18 -16
  595. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  596. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +6 -0
  597. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  598. package/dist/contexts/GustoProvider/GustoProvider.d.ts +4 -5
  599. package/dist/contexts/GustoProvider/GustoProvider.js +6 -6
  600. package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
  601. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +7 -7
  602. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +8 -8
  603. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  604. package/dist/contexts/GustoProvider/index.d.ts +1 -1
  605. package/dist/contexts/index.d.ts +2 -6
  606. package/dist/helpers/apiErrorToList.d.ts +1 -1
  607. package/dist/helpers/apiErrorToList.js.map +1 -1
  608. package/dist/helpers/formattedStrings.d.ts +2 -2
  609. package/dist/helpers/formattedStrings.js.map +1 -1
  610. package/dist/hooks/useCompanyPaymentSpeed.d.ts +1 -1
  611. package/dist/hooks/useCompanyPaymentSpeed.js +1 -1
  612. package/dist/hooks/useCompanyPaymentSpeed.js.map +1 -1
  613. package/dist/i18n/en/Contractor.ContractorList.json.js +18 -16
  614. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  615. package/dist/i18n/en/Contractor.DocumentsList.json.js +20 -16
  616. package/dist/i18n/en/Contractor.DocumentsList.json.js.map +1 -1
  617. package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
  618. package/dist/i18n/en/Employee.OnboardingSummary.json.js +24 -20
  619. package/dist/i18n/en/Employee.OnboardingSummary.json.js.map +1 -1
  620. package/dist/i18n/types.d.ts +12 -0
  621. package/dist/index.d.ts +8 -7
  622. package/dist/index.js +121 -134
  623. package/dist/index.js.map +1 -1
  624. package/dist/models/WA_RISK_CODES.d.ts +5 -2
  625. package/dist/models/WA_RISK_CODES.js.map +1 -1
  626. package/dist/models/external.d.ts +236 -226
  627. package/dist/partner-hook-utils/composeErrorHandler.d.ts +9 -4
  628. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  629. package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +10 -2
  630. package/dist/partner-hook-utils/form/SDKFormProvider.js +7 -1
  631. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  632. package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +7 -4
  633. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  634. package/dist/partner-hook-utils/form/fields/index.d.ts +1 -0
  635. package/dist/partner-hook-utils/form/index.d.ts +3 -3
  636. package/dist/partner-hook-utils/form/useHookFieldResolution.js.map +1 -1
  637. package/dist/partner-hook-utils/index.d.ts +1 -1
  638. package/dist/partner-hook-utils/types.d.ts +7 -3
  639. package/dist/shared/constants.d.ts +2 -2
  640. package/dist/shared/constants.js +5 -5
  641. package/dist/shared/constants.js.map +1 -1
  642. package/dist/style.css +1 -1
  643. package/dist/types/Helpers.d.ts +11 -0
  644. package/dist/types/hooks.d.ts +2 -2
  645. package/dist/types/sdkError.js +3 -3
  646. package/dist/types/sdkError.js.map +1 -1
  647. package/docs/guides/endpoint-inventory.json +1201 -297
  648. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"usePaymentMethodList.js","sources":["../../../../../src/components/Employee/PaymentMethod/shared/usePaymentMethodList.ts"],"sourcesContent":["import type { EmployeeBankAccount } from '@gusto/embedded-api-v-2026-02-01/models/components/employeebankaccount'\nimport type { EmployeePaymentMethod } from '@gusto/embedded-api-v-2026-02-01/models/components/employeepaymentmethod'\nimport { useEmployeePaymentMethodDeleteBankAccountMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodDeleteBankAccount'\nimport { useEmployeePaymentMethodsGetBankAccounts } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodsGetBankAccounts'\nimport { useEmployeePaymentMethodGet } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodUpdate'\nimport { useEffect, useRef } from 'react'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport { SPLIT_BY } from '@/shared/constants'\n\n/** @internal */\nexport interface UsePaymentMethodListParams {\n /** Employee whose payment method and bank accounts to load. */\n employeeId: string\n}\n\n/** @internal */\nexport interface UsePaymentMethodListReady extends BaseHookReady<\n { paymentMethod: EmployeePaymentMethod; bankAccounts: EmployeeBankAccount[] },\n { isFetching: boolean; isPending: boolean; deletePendingBankAccountUuid?: string }\n> {\n /** Delete a bank account by UUID. Returns the delete response on success or `undefined` on failure. */\n actions: {\n onDelete: (bankAccountUuid: string) => Promise<HookSubmitResult<unknown> | undefined>\n }\n}\n\n/** @internal */\nexport type UsePaymentMethodListResult = HookLoadingResult | UsePaymentMethodListReady\n\n/** @internal */\nexport function usePaymentMethodList({\n employeeId,\n}: UsePaymentMethodListParams): UsePaymentMethodListResult {\n const paymentMethodQuery = useEmployeePaymentMethodGet({ employeeId })\n const bankAccountsQuery = useEmployeePaymentMethodsGetBankAccounts({ employeeId })\n\n const paymentMethod = paymentMethodQuery.data?.employeePaymentMethod\n const bankAccounts = bankAccountsQuery.data?.employeeBankAccounts\n\n const deleteBankAccountMutation = useEmployeePaymentMethodDeleteBankAccountMutation()\n const { mutateAsync: mutatePaymentMethod } = useEmployeePaymentMethodUpdateMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PaymentMethodList')\n\n const normalizingRef = useRef(false)\n // Normalise single-account direct deposit to 100% on mount, skipping if already normalized\n // or if a normalization mutation is already in-flight (prevents version-conflict 409s).\n useEffect(() => {\n if (!paymentMethod) return\n const firstSplit = paymentMethod.splits?.[0]\n const alreadyNormalized =\n firstSplit?.splitAmount === 100 && paymentMethod.splitBy === SPLIT_BY.percentage\n if (\n paymentMethod.splits?.length === 1 &&\n paymentMethod.type === 'Direct Deposit' &&\n !alreadyNormalized &&\n !normalizingRef.current\n ) {\n normalizingRef.current = true\n void (async () => {\n try {\n await mutatePaymentMethod({\n request: {\n employeeId,\n requestBody: {\n splitBy: SPLIT_BY.percentage,\n splits: paymentMethod.splits!.map(split => ({\n ...split,\n splitAmount: 100,\n priority: 1,\n })),\n version: paymentMethod.version as string,\n type: 'Direct Deposit',\n },\n },\n })\n } finally {\n normalizingRef.current = false\n }\n })()\n }\n }, [employeeId, paymentMethod, mutatePaymentMethod])\n\n const errorHandling = composeErrorHandler([paymentMethodQuery, bankAccountsQuery], {\n submitError,\n setSubmitError,\n })\n\n const onDelete = async (\n bankAccountUuid: string,\n ): Promise<HookSubmitResult<unknown> | undefined> => {\n let submitResult: HookSubmitResult<unknown> | undefined\n await baseSubmitHandler(bankAccountUuid, async uuid => {\n const data = await deleteBankAccountMutation.mutateAsync({\n request: { employeeId, bankAccountUuid: uuid },\n })\n submitResult = { mode: 'update', data }\n })\n return submitResult\n }\n\n const deletePendingBankAccountUuid = deleteBankAccountMutation.isPending\n ? deleteBankAccountMutation.variables.request.bankAccountUuid\n : undefined\n\n if (\n paymentMethodQuery.isLoading ||\n bankAccountsQuery.isLoading ||\n !paymentMethod ||\n !bankAccounts\n ) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { paymentMethod, bankAccounts },\n status: {\n isFetching: paymentMethodQuery.isFetching || bankAccountsQuery.isFetching,\n isPending: deleteBankAccountMutation.isPending,\n deletePendingBankAccountUuid,\n },\n actions: { onDelete },\n errorHandling,\n }\n}\n"],"names":["usePaymentMethodList","employeeId","paymentMethodQuery","useEmployeePaymentMethodGet","bankAccountsQuery","useEmployeePaymentMethodsGetBankAccounts","paymentMethod","bankAccounts","deleteBankAccountMutation","useEmployeePaymentMethodDeleteBankAccountMutation","mutatePaymentMethod","useEmployeePaymentMethodUpdateMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","normalizingRef","useRef","useEffect","alreadyNormalized","SPLIT_BY","split","errorHandling","composeErrorHandler","onDelete","bankAccountUuid","submitResult","uuid","deletePendingBankAccountUuid"],"mappings":";;;;;;;;AAiCO,SAASA,EAAqB;AAAA,EACnC,YAAAC;AACF,GAA2D;AACzD,QAAMC,IAAqBC,EAA4B,EAAE,YAAAF,GAAY,GAC/DG,IAAoBC,EAAyC,EAAE,YAAAJ,GAAY,GAE3EK,IAAgBJ,EAAmB,MAAM,uBACzCK,IAAeH,EAAkB,MAAM,sBAEvCI,IAA4BC,EAAA,GAC5B,EAAE,aAAaC,EAAA,IAAwBC,EAAA,GAEvC;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,mBAAmB,GAE/BC,IAAiBC,EAAO,EAAK;AAGnC,EAAAC,EAAU,MAAM;AACd,QAAI,CAACZ,EAAe;AAEpB,UAAMa,IADab,EAAc,SAAS,CAAC,GAE7B,gBAAgB,OAAOA,EAAc,YAAYc,EAAS;AACxE,IACEd,EAAc,QAAQ,WAAW,KACjCA,EAAc,SAAS,oBACvB,CAACa,KACD,CAACH,EAAe,YAEhBA,EAAe,UAAU,KACnB,YAAY;AAChB,UAAI;AACF,cAAMN,EAAoB;AAAA,UACxB,SAAS;AAAA,YACP,YAAAT;AAAA,YACA,aAAa;AAAA,cACX,SAASmB,EAAS;AAAA,cAClB,QAAQd,EAAc,OAAQ,IAAI,CAAAe,OAAU;AAAA,gBAC1C,GAAGA;AAAA,gBACH,aAAa;AAAA,gBACb,UAAU;AAAA,cAAA,EACV;AAAA,cACF,SAASf,EAAc;AAAA,cACvB,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,QACF,CACD;AAAA,MACH,UAAA;AACE,QAAAU,EAAe,UAAU;AAAA,MAC3B;AAAA,IACF,GAAA;AAAA,EAEJ,GAAG,CAACf,GAAYK,GAAeI,CAAmB,CAAC;AAEnD,QAAMY,IAAgBC,EAAoB,CAACrB,GAAoBE,CAAiB,GAAG;AAAA,IACjF,aAAAS;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAEKU,IAAW,OACfC,MACmD;AACnD,QAAIC;AACJ,iBAAMd,EAAkBa,GAAiB,OAAME,MAAQ;AAIrD,MAAAD,IAAe,EAAE,MAAM,UAAU,MAHpB,MAAMlB,EAA0B,YAAY;AAAA,QACvD,SAAS,EAAE,YAAAP,GAAY,iBAAiB0B,EAAA;AAAA,MAAK,CAC9C,EACgC;AAAA,IACnC,CAAC,GACMD;AAAA,EACT,GAEME,IAA+BpB,EAA0B,YAC3DA,EAA0B,UAAU,QAAQ,kBAC5C;AAEJ,SACEN,EAAmB,aACnBE,EAAkB,aAClB,CAACE,KACD,CAACC,IAEM,EAAE,WAAW,IAAM,eAAAe,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,eAAAhB,GAAe,cAAAC,EAAA;AAAA,IACvB,QAAQ;AAAA,MACN,YAAYL,EAAmB,cAAcE,EAAkB;AAAA,MAC/D,WAAWI,EAA0B;AAAA,MACrC,8BAAAoB;AAAA,IAAA;AAAA,IAEF,SAAS,EAAE,UAAAJ,EAAA;AAAA,IACX,eAAAF;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"usePaymentMethodList.js","sources":["../../../../../src/components/Employee/PaymentMethod/shared/usePaymentMethodList.ts"],"sourcesContent":["import type { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount'\nimport type { EmployeePaymentMethod } from '@gusto/embedded-api/models/components/employeepaymentmethod'\nimport { useEmployeePaymentMethodDeleteBankAccountMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodDeleteBankAccount'\nimport { useEmployeePaymentMethodsGetBankAccounts } from '@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts'\nimport { useEmployeePaymentMethodGet } from '@gusto/embedded-api/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdate'\nimport { useEffect, useRef } from 'react'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport { SPLIT_BY } from '@/shared/constants'\n\n/** @internal */\nexport interface UsePaymentMethodListParams {\n /** Employee whose payment method and bank accounts to load. */\n employeeId: string\n}\n\n/** @internal */\nexport interface UsePaymentMethodListReady extends BaseHookReady<\n { paymentMethod: EmployeePaymentMethod; bankAccounts: EmployeeBankAccount[] },\n { isFetching: boolean; isPending: boolean; deletePendingBankAccountUuid?: string }\n> {\n /** Delete a bank account by UUID. Returns the delete response on success or `undefined` on failure. */\n actions: {\n onDelete: (bankAccountUuid: string) => Promise<HookSubmitResult<unknown> | undefined>\n }\n}\n\n/** @internal */\nexport type UsePaymentMethodListResult = HookLoadingResult | UsePaymentMethodListReady\n\n/** @internal */\nexport function usePaymentMethodList({\n employeeId,\n}: UsePaymentMethodListParams): UsePaymentMethodListResult {\n const paymentMethodQuery = useEmployeePaymentMethodGet({ employeeId })\n const bankAccountsQuery = useEmployeePaymentMethodsGetBankAccounts({ employeeId })\n\n const paymentMethod = paymentMethodQuery.data?.employeePaymentMethod\n const bankAccounts = bankAccountsQuery.data?.employeeBankAccounts\n\n const deleteBankAccountMutation = useEmployeePaymentMethodDeleteBankAccountMutation()\n const { mutateAsync: mutatePaymentMethod } = useEmployeePaymentMethodUpdateMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PaymentMethodList')\n\n const normalizingRef = useRef(false)\n // Normalise single-account direct deposit to 100% on mount, skipping if already normalized\n // or if a normalization mutation is already in-flight (prevents version-conflict 409s).\n useEffect(() => {\n if (!paymentMethod) return\n const firstSplit = paymentMethod.splits?.[0]\n const alreadyNormalized =\n firstSplit?.splitAmount === 100 && paymentMethod.splitBy === SPLIT_BY.percentage\n if (\n paymentMethod.splits?.length === 1 &&\n paymentMethod.type === 'Direct Deposit' &&\n !alreadyNormalized &&\n !normalizingRef.current\n ) {\n normalizingRef.current = true\n void (async () => {\n try {\n await mutatePaymentMethod({\n request: {\n employeeId,\n requestBody: {\n splitBy: SPLIT_BY.percentage,\n splits: paymentMethod.splits!.map(split => ({\n ...split,\n splitAmount: 100,\n priority: 1,\n })),\n version: paymentMethod.version as string,\n type: 'Direct Deposit',\n },\n },\n })\n } finally {\n normalizingRef.current = false\n }\n })()\n }\n }, [employeeId, paymentMethod, mutatePaymentMethod])\n\n const errorHandling = composeErrorHandler([paymentMethodQuery, bankAccountsQuery], {\n submitError,\n setSubmitError,\n })\n\n const onDelete = async (\n bankAccountUuid: string,\n ): Promise<HookSubmitResult<unknown> | undefined> => {\n let submitResult: HookSubmitResult<unknown> | undefined\n await baseSubmitHandler(bankAccountUuid, async uuid => {\n const data = await deleteBankAccountMutation.mutateAsync({\n request: { employeeId, bankAccountUuid: uuid },\n })\n submitResult = { mode: 'update', data }\n })\n return submitResult\n }\n\n const deletePendingBankAccountUuid = deleteBankAccountMutation.isPending\n ? deleteBankAccountMutation.variables.request.bankAccountUuid\n : undefined\n\n if (\n paymentMethodQuery.isLoading ||\n bankAccountsQuery.isLoading ||\n !paymentMethod ||\n !bankAccounts\n ) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { paymentMethod, bankAccounts },\n status: {\n isFetching: paymentMethodQuery.isFetching || bankAccountsQuery.isFetching,\n isPending: deleteBankAccountMutation.isPending,\n deletePendingBankAccountUuid,\n },\n actions: { onDelete },\n errorHandling,\n }\n}\n"],"names":["usePaymentMethodList","employeeId","paymentMethodQuery","useEmployeePaymentMethodGet","bankAccountsQuery","useEmployeePaymentMethodsGetBankAccounts","paymentMethod","bankAccounts","deleteBankAccountMutation","useEmployeePaymentMethodDeleteBankAccountMutation","mutatePaymentMethod","useEmployeePaymentMethodUpdateMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","normalizingRef","useRef","useEffect","alreadyNormalized","SPLIT_BY","split","errorHandling","composeErrorHandler","onDelete","bankAccountUuid","submitResult","uuid","deletePendingBankAccountUuid"],"mappings":";;;;;;;;AAiCO,SAASA,EAAqB;AAAA,EACnC,YAAAC;AACF,GAA2D;AACzD,QAAMC,IAAqBC,EAA4B,EAAE,YAAAF,GAAY,GAC/DG,IAAoBC,EAAyC,EAAE,YAAAJ,GAAY,GAE3EK,IAAgBJ,EAAmB,MAAM,uBACzCK,IAAeH,EAAkB,MAAM,sBAEvCI,IAA4BC,EAAA,GAC5B,EAAE,aAAaC,EAAA,IAAwBC,EAAA,GAEvC;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,mBAAmB,GAE/BC,IAAiBC,EAAO,EAAK;AAGnC,EAAAC,EAAU,MAAM;AACd,QAAI,CAACZ,EAAe;AAEpB,UAAMa,IADab,EAAc,SAAS,CAAC,GAE7B,gBAAgB,OAAOA,EAAc,YAAYc,EAAS;AACxE,IACEd,EAAc,QAAQ,WAAW,KACjCA,EAAc,SAAS,oBACvB,CAACa,KACD,CAACH,EAAe,YAEhBA,EAAe,UAAU,KACnB,YAAY;AAChB,UAAI;AACF,cAAMN,EAAoB;AAAA,UACxB,SAAS;AAAA,YACP,YAAAT;AAAA,YACA,aAAa;AAAA,cACX,SAASmB,EAAS;AAAA,cAClB,QAAQd,EAAc,OAAQ,IAAI,CAAAe,OAAU;AAAA,gBAC1C,GAAGA;AAAA,gBACH,aAAa;AAAA,gBACb,UAAU;AAAA,cAAA,EACV;AAAA,cACF,SAASf,EAAc;AAAA,cACvB,MAAM;AAAA,YAAA;AAAA,UACR;AAAA,QACF,CACD;AAAA,MACH,UAAA;AACE,QAAAU,EAAe,UAAU;AAAA,MAC3B;AAAA,IACF,GAAA;AAAA,EAEJ,GAAG,CAACf,GAAYK,GAAeI,CAAmB,CAAC;AAEnD,QAAMY,IAAgBC,EAAoB,CAACrB,GAAoBE,CAAiB,GAAG;AAAA,IACjF,aAAAS;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAEKU,IAAW,OACfC,MACmD;AACnD,QAAIC;AACJ,iBAAMd,EAAkBa,GAAiB,OAAME,MAAQ;AAIrD,MAAAD,IAAe,EAAE,MAAM,UAAU,MAHpB,MAAMlB,EAA0B,YAAY;AAAA,QACvD,SAAS,EAAE,YAAAP,GAAY,iBAAiB0B,EAAA;AAAA,MAAK,CAC9C,EACgC;AAAA,IACnC,CAAC,GACMD;AAAA,EACT,GAEME,IAA+BpB,EAA0B,YAC3DA,EAA0B,UAAU,QAAQ,kBAC5C;AAEJ,SACEN,EAAmB,aACnBE,EAAkB,aAClB,CAACE,KACD,CAACC,IAEM,EAAE,WAAW,IAAM,eAAAe,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,eAAAhB,GAAe,cAAAC,EAAA;AAAA,IACvB,QAAQ;AAAA,MACN,YAAYL,EAAmB,cAAcE,EAAkB;AAAA,MAC/D,WAAWI,EAA0B;AAAA,MACrC,8BAAAoB;AAAA,IAAA;AAAA,IAEF,SAAS,EAAE,UAAAJ,EAAA;AAAA,IACX,eAAAF;AAAA,EAAA;AAEJ;"}
@@ -1,7 +1,7 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { UseFormProps } from 'react-hook-form';
3
- import { EmployeeBankAccount } from '@gusto/embedded-api-v-2026-02-01/models/components/employeebankaccount';
4
- import { EmployeePaymentMethod } from '@gusto/embedded-api-v-2026-02-01/models/components/employeepaymentmethod';
3
+ import { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount';
4
+ import { EmployeePaymentMethod } from '@gusto/embedded-api/models/components/employeepaymentmethod';
5
5
  import { SplitByValue, SplitPaymentsFormData, SplitPaymentsFormOptionalFieldsToRequire } from './useSplitPaymentsFormSchema';
6
6
  import { SplitByFieldProps } from './fields';
7
7
  import { SplitFieldEntry } from './splitFieldFactory';
@@ -1,9 +1,9 @@
1
1
  import { useMemo as f, useEffect as $, useRef as R, useCallback as st } from "react";
2
2
  import { useForm as ut, useWatch as L, useFormState as mt } from "react-hook-form";
3
3
  import { zodResolver as at } from "@hookform/resolvers/zod";
4
- import { useEmployeePaymentMethodGet as ct } from "@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodGet";
5
- import { useEmployeePaymentMethodsGetBankAccounts as lt } from "@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodsGetBankAccounts";
6
- import { useEmployeePaymentMethodUpdateMutation as pt } from "@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodUpdate";
4
+ import { useEmployeePaymentMethodGet as ct } from "@gusto/embedded-api/react-query/employeePaymentMethodGet";
5
+ import { useEmployeePaymentMethodsGetBankAccounts as lt } from "@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts";
6
+ import { useEmployeePaymentMethodUpdateMutation as pt } from "@gusto/embedded-api/react-query/employeePaymentMethodUpdate";
7
7
  import { createSplitPaymentsFormSchema as dt, PERCENTAGE_TOTAL_PATH as j, SplitPaymentsFormErrorCodes as yt, SPLIT_BY_VALUES as Y } from "./useSplitPaymentsFormSchema.js";
8
8
  import { SplitByField as ft } from "./fields.js";
9
9
  import { buildSplitFieldEntries as At } from "./splitFieldFactory.js";
@@ -1 +1 @@
1
- {"version":3,"file":"useSplitPaymentsForm.js","sources":["../../../../../../src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useForm, useFormState, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeBankAccount } from '@gusto/embedded-api-v-2026-02-01/models/components/employeebankaccount'\nimport type { EmployeePaymentMethod } from '@gusto/embedded-api-v-2026-02-01/models/components/employeepaymentmethod'\nimport { useEmployeePaymentMethodGet } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodsGetBankAccounts } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodsGetBankAccounts'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api-v-2026-02-01/react-query/employeePaymentMethodUpdate'\nimport {\n PERCENTAGE_TOTAL_PATH,\n SPLIT_BY_VALUES,\n SplitPaymentsFormErrorCodes,\n type SplitByValue,\n type SplitPaymentsFormData,\n type SplitPaymentsFormOptionalFieldsToRequire,\n type SplitPaymentsFormOutputs,\n createSplitPaymentsFormSchema,\n} from './useSplitPaymentsFormSchema'\nimport { SplitByField, type SplitByFieldProps } from './fields'\nimport { buildSplitFieldEntries, type SplitFieldEntry } from './splitFieldFactory'\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 FieldMetadataWithOptions,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { centsToDollars, dollarsToCents } from '@/helpers/currencyHelpers'\nimport { PAYMENT_METHODS, SPLIT_BY } from '@/shared/constants'\n\n/**\n * A single split entry — pairs a bank account identifier with its current split allocation.\n *\n * @remarks\n * Surfaced on `data.splits` from {@link useSplitPaymentsForm}. Derived from\n * `paymentMethod.splits` when present, otherwise from the employee's bank\n * accounts (one entry per account, no allocated amount). Carries the raw\n * domain data — use it for label construction or lookups by uuid.\n *\n * @public\n */\nexport interface WorkingSplit {\n /** UUID of the underlying bank account. */\n uuid: string\n /** Account nickname, when available. */\n name: string | null\n /** Masked account number suffix, when available. */\n hiddenAccountNumber: string | null\n /** Allocation amount — `null` for the remainder split in Amount mode and for splits that haven't been allocated yet. */\n splitAmount: number | null\n /** Ordering value — splits are processed in ascending priority; the highest priority is the remainder. */\n priority: number\n}\n\n/**\n * Props for {@link useSplitPaymentsForm}.\n *\n * @public\n */\nexport interface UseSplitPaymentsFormProps {\n /** Employee whose payment splits are being edited. */\n employeeId: string\n /** Override optional fields to be required. Currently a no-op — `splitBy` and `priority` are always required, and per-split `splitAmount` required-ness is automatic. */\n optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire\n /** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler`. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Field components exposed by {@link useSplitPaymentsForm} on `form.Fields`.\n *\n * @public\n */\nexport interface SplitPaymentsFormFields {\n /** Radio group bound to `splitBy`; selects Percentage or Amount split mode. */\n SplitBy: ComponentType<SplitByFieldProps>\n /** One entry per bank account, each carrying a pre-bound `Field` component for the per-split amount. */\n splits: SplitFieldEntry[]\n}\n\n/**\n * Ready-state return value of {@link useSplitPaymentsForm}.\n *\n * @public\n */\nexport interface UseSplitPaymentsFormReady extends BaseFormHookReady<\n SplitPaymentsFormFieldsMetadata,\n SplitPaymentsFormData,\n SplitPaymentsFormFields\n> {\n /** Server-fetched data and derived working values. */\n data: {\n /** The employee's current payment method. */\n paymentMethod: EmployeePaymentMethod\n /** All bank accounts available to allocate splits across. */\n bankAccounts: EmployeeBankAccount[]\n /** The current working split entries, one per bank account. */\n splits: WorkingSplit[]\n /** UUID of the split that absorbs the remainder in Amount mode (always the last by priority). */\n remainderId: string\n }\n /** Submission state and reactive form-level flags. */\n status: {\n /** `true` while the update mutation is in flight. */\n isPending: boolean\n /** Always `'update'` — the hook always edits an existing payment method. */\n mode: 'update'\n /** Current `splitBy` value, reactively tracked. */\n splitBy: SplitByValue\n /** Live sum of `splitAmount` values; useful for displaying the current total in Percentage mode. */\n percentageTotal: number\n /**\n * `true` after a failed Percentage-mode Save when the splits don't sum to\n * 100; clears live as the user corrects the total. Follows the standard\n * react-hook-form validation lifecycle (controlled by `validationMode`).\n * Only surfaces in Percentage mode.\n */\n hasPercentageImbalance: boolean\n }\n /** Actions that mutate the form or submit it. */\n actions: {\n /** Submit the form. Returns the updated payment method on success or `undefined` on validation/mutation failure. */\n onSubmit: () => Promise<HookSubmitResult<EmployeePaymentMethod> | undefined>\n /**\n * Reorder splits by uuid (Amount mode). Pass the ordered list of split\n * uuids; the last uuid becomes the remainder. The hook writes the new\n * priority map and re-anchors the remainder's `splitAmount` to `null`\n * (clearing the previous remainder to `0`).\n */\n reorderSplits: (orderedUuids: string[]) => void\n }\n}\n\nconst buildWorkingSplits = (\n paymentMethod: EmployeePaymentMethod,\n bankAccounts: EmployeeBankAccount[],\n): WorkingSplit[] => {\n if (paymentMethod.splits && paymentMethod.splits.length > 0) {\n return paymentMethod.splits.map(split => ({\n uuid: split.uuid,\n name: split.name ?? null,\n hiddenAccountNumber: split.hiddenAccountNumber ?? null,\n splitAmount: split.splitAmount ?? null,\n priority: split.priority ?? 0,\n }))\n }\n return bankAccounts.map((account, index) => ({\n uuid: account.uuid,\n name: account.name ?? null,\n hiddenAccountNumber: account.hiddenAccountNumber ?? null,\n splitAmount: null,\n priority: index + 1,\n }))\n}\n\n/**\n * Headless React Hook Form hook for splitting an employee's Direct Deposit across multiple bank accounts.\n *\n * @remarks\n * Supports two split modes: Percentage (whole-number shares that sum to 100)\n * and Amount (dollar amounts, with the last-priority split absorbing the\n * remainder). Always operates in update mode against the employee's existing\n * payment method.\n *\n * The Percentage sum-to-100 invariant is surfaced via\n * `status.hasPercentageImbalance` (not as a per-field error). With the default\n * `validationMode: 'onSubmit'`, the imbalance flag appears after the first\n * failed Save and clears live as the user corrects the total.\n *\n * @param props - See {@link UseSplitPaymentsFormProps}.\n * @returns A loading-state result while the payment method and bank accounts are loading, or a {@link UseSplitPaymentsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useSplitPaymentsForm,\n * SDKFormProvider,\n * type SplitByValue,\n * type UseSplitPaymentsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function SplitPaycheckScreen({ employeeId }: { employeeId: string }) {\n * const splitForm = useSplitPaymentsForm({ employeeId })\n *\n * if (splitForm.isLoading) return null\n * return <SplitPaycheckReady splitForm={splitForm} />\n * }\n *\n * function SplitPaycheckReady({ splitForm }: { splitForm: UseSplitPaymentsFormReady }) {\n * const { Fields } = splitForm.form\n * const { hasPercentageImbalance, percentageTotal } = splitForm.status\n *\n * return (\n * <SDKFormProvider formHookResult={splitForm}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void splitForm.actions.onSubmit()\n * }}\n * >\n * {hasPercentageImbalance && (\n * <div role=\"alert\">Splits must total 100%. Currently {percentageTotal}%.</div>\n * )}\n * <Fields.SplitBy label=\"Split by\" getOptionLabel={(value: SplitByValue) => value} />\n * {Fields.splits.map(split => (\n * <split.Field\n * key={split.uuid}\n * label={split.name ?? 'Account'}\n * min={0}\n * />\n * ))}\n * <button type=\"submit\" disabled={splitForm.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useSplitPaymentsForm({\n employeeId,\n optionalFieldsToRequire,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseSplitPaymentsFormProps): UseSplitPaymentsFormResult {\n const paymentMethodQuery = useEmployeePaymentMethodGet({ employeeId })\n const bankAccountsQuery = useEmployeePaymentMethodsGetBankAccounts({ employeeId })\n\n const paymentMethod = paymentMethodQuery.data?.employeePaymentMethod\n const bankAccounts = bankAccountsQuery.data?.employeeBankAccounts\n\n const splits = useMemo<WorkingSplit[]>(\n () => (paymentMethod && bankAccounts ? buildWorkingSplits(paymentMethod, bankAccounts) : []),\n [paymentMethod, bankAccounts],\n )\n\n const [schema, metadataConfig] = useMemo(\n () => createSplitPaymentsFormSchema({ optionalFieldsToRequire }),\n [optionalFieldsToRequire],\n )\n\n const resolvedDefaults: SplitPaymentsFormData = useMemo(() => {\n const isAmountSplit = paymentMethod?.splitBy === SPLIT_BY.amount\n const splitAmount: Record<string, number | null> = {}\n const priority: Record<string, number> = {}\n splits.forEach(split => {\n splitAmount[split.uuid] = isAmountSplit\n ? centsToDollars(split.splitAmount)\n : split.splitAmount\n priority[split.uuid] = split.priority\n })\n return {\n splitBy: (paymentMethod?.splitBy ?? SPLIT_BY.percentage) as SplitByValue,\n splitAmount,\n priority,\n }\n }, [paymentMethod, splits])\n\n const formMethods = useForm<SplitPaymentsFormData, unknown, SplitPaymentsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const updateMutation = useEmployeePaymentMethodUpdateMutation()\n const isPending = updateMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('SplitPaymentsForm')\n\n const errorHandling = composeErrorHandler([paymentMethodQuery, bankAccountsQuery], {\n submitError,\n setSubmitError,\n })\n\n const watchedSplitBy = useWatch({ control: formMethods.control, name: 'splitBy' })\n const watchedPriority = useWatch({ control: formMethods.control, name: 'priority' })\n const watchedSplitAmount = useWatch({ control: formMethods.control, name: 'splitAmount' })\n\n const percentageTotal = useMemo(() => {\n if (watchedSplitBy !== SPLIT_BY.percentage) return 0\n return Object.values(watchedSplitAmount).reduce<number>(\n (acc, v) => acc + (typeof v === 'number' && Number.isFinite(v) ? v : 0),\n 0,\n )\n }, [watchedSplitBy, watchedSplitAmount])\n\n // Subscribe to the schema-emitted imbalance error. The schema places it at\n // a synthetic path (`PERCENTAGE_TOTAL_PATH`) so it does not collide with\n // per-uuid `splitAmount.<uuid>` errors. Following the standard validation\n // lifecycle means `validationMode` (onSubmit / onChange / onBlur / ...)\n // controls when the alert can appear. We subscribe to the full errors map\n // because `name` only tracks registered field paths and our synthetic key\n // is not a registered field. The derivation is also gated on Percentage\n // mode so a stale error from a prior Percentage submit can't leak into\n // Amount mode after a toggle.\n const { errors: validationErrors, isSubmitted } = useFormState({\n control: formMethods.control,\n })\n const hasPercentageImbalance =\n watchedSplitBy === SPLIT_BY.percentage &&\n (validationErrors as Record<string, { message?: string } | undefined>)[PERCENTAGE_TOTAL_PATH]\n ?.message === SplitPaymentsFormErrorCodes.PERCENTAGE_TOTAL_MISMATCH\n\n // Re-sync the synthetic PERCENTAGE_TOTAL_PATH error whenever any\n // `splitAmount` value changes (in Percentage mode, after the first\n // submit attempt). RHF's per-field reValidate after a failed submit\n // scopes the resolver merge to the changed field's name, so an error\n // at our form-level synthetic path is otherwise left stuck once the\n // user has typed the total back to 100. Targeting the synthetic name\n // re-runs the resolver and lets RHF set/unset that single path through\n // its normal merge — preserving per-field error lifecycles unchanged.\n const { trigger } = formMethods\n useEffect(() => {\n if (!isSubmitted) return\n if (watchedSplitBy !== SPLIT_BY.percentage) return\n // `trigger`'s type is keyed to registered field paths, but the\n // synthetic `percentageTotal` resolves through RHF's get/set/unset\n // helpers at runtime — cast at the boundary to keep the contract\n // honest above.\n void trigger(PERCENTAGE_TOTAL_PATH as Parameters<typeof trigger>[0])\n }, [isSubmitted, watchedSplitBy, watchedSplitAmount, trigger])\n\n const remainderId = useMemo(() => {\n if (!Object.keys(watchedPriority).length) return ''\n return Object.entries(watchedPriority).reduce((maxId, [uuid, priority]) => {\n if (!maxId) return uuid\n const currentMax = watchedPriority[maxId] ?? 0\n return priority > currentMax ? uuid : maxId\n }, '')\n }, [watchedPriority])\n\n // Reset splitAmount values when the user toggles splitBy. Skip the first\n // post-load run so values loaded from `paymentMethod.splits` are preserved\n // on mount — only the user's explicit toggle should clear them.\n const splitsRef = useRef(splits)\n splitsRef.current = splits\n const remainderIdRef = useRef(remainderId)\n remainderIdRef.current = remainderId\n const previousSplitByRef = useRef<SplitByValue | null>(null)\n const { setValue, resetField } = formMethods\n\n useEffect(() => {\n if (!splitsRef.current.length) return\n if (previousSplitByRef.current === null) {\n previousSplitByRef.current = watchedSplitBy as SplitByValue\n return\n }\n if (previousSplitByRef.current === watchedSplitBy) return\n previousSplitByRef.current = watchedSplitBy as SplitByValue\n\n if (watchedSplitBy === SPLIT_BY.amount) {\n const newValues = splitsRef.current.reduce<Record<string, number | null>>((acc, curr) => {\n acc[curr.uuid] = curr.uuid === remainderIdRef.current ? null : 0\n return acc\n }, {})\n setValue('splitAmount', newValues)\n } else {\n const newValues = splitsRef.current.reduce<Record<string, number | null>>(\n (acc, curr, index) => {\n acc[curr.uuid] = index === 0 ? 100 : 0\n return acc\n },\n {},\n )\n setValue('splitAmount', newValues)\n }\n }, [watchedSplitBy, setValue])\n\n const reorderSplits = useCallback(\n (orderedUuids: string[]) => {\n const currentSplits = splitsRef.current\n const knownUuids = new Set(currentSplits.map(s => s.uuid))\n if (\n orderedUuids.length !== knownUuids.size ||\n !orderedUuids.every(uuid => knownUuids.has(uuid))\n ) {\n return\n }\n\n const newPriorities = orderedUuids.reduce<Record<string, number>>((acc, uuid, index) => {\n acc[uuid] = index + 1\n return acc\n }, {})\n const newRemainderId = orderedUuids[orderedUuids.length - 1]\n if (!newRemainderId) return\n\n setValue('priority', newPriorities)\n const previousRemainder = remainderIdRef.current\n if (previousRemainder && previousRemainder !== newRemainderId) {\n resetField(`splitAmount.${previousRemainder}`)\n setValue(`splitAmount.${previousRemainder}`, 0)\n }\n setValue(`splitAmount.${newRemainderId}`, null)\n },\n [setValue, resetField],\n )\n\n const splitByOptions = SPLIT_BY_VALUES.map(value => ({ value, label: value }))\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const dynamicSplitMetadata = useMemo<Record<`splitAmount.${string}`, FieldMetadata>>(() => {\n const entries: Record<`splitAmount.${string}`, FieldMetadata> = {}\n const isAmountSplit = watchedSplitBy === SPLIT_BY.amount\n for (const split of splits) {\n const path = `splitAmount.${split.uuid}` as const\n const isRemainder = isAmountSplit && split.uuid === remainderId\n // Every split — including the remainder — is \"required\" from the\n // user's perspective: the remainder always carries a value at submit\n // (the API absorbs leftover). The form-state `null` is a modeling\n // detail, not a UX choice, so we don't surface it as \"(optional)\" on\n // the label. `isDisabled` already conveys the non-interactivity.\n entries[path] = {\n name: path,\n isRequired: true,\n isDisabled: isRemainder,\n }\n }\n return entries\n }, [splits, watchedSplitBy, remainderId])\n const fieldsMetadata: SplitPaymentsFormFieldsMetadata = {\n splitBy: withOptions<SplitByValue>(baseMetadata.splitBy, splitByOptions, [...SPLIT_BY_VALUES]),\n splitAmount: baseMetadata.splitAmount,\n priority: baseMetadata.priority,\n ...dynamicSplitMetadata,\n }\n\n const splitFieldEntries = useMemo(\n () =>\n buildSplitFieldEntries(\n splits.map(s => ({\n uuid: s.uuid,\n name: s.name,\n hiddenAccountNumber: s.hiddenAccountNumber,\n })),\n ),\n [splits],\n )\n\n const onSubmit = async (): Promise<HookSubmitResult<EmployeePaymentMethod> | undefined> => {\n if (!paymentMethod) {\n throw new SDKInternalError('Cannot submit split payments form before data is loaded')\n }\n const currentPaymentMethod = paymentMethod\n const currentSplits = splits\n let submitResult: HookSubmitResult<EmployeePaymentMethod> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: SplitPaymentsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const isAmountSplit = payload.splitBy === SPLIT_BY.amount\n const body = {\n ...currentPaymentMethod,\n version: currentPaymentMethod.version as string,\n splitBy: payload.splitBy,\n splits: currentSplits.map(split => {\n const splitAmountValue = payload.splitAmount[split.uuid] ?? null\n return {\n uuid: split.uuid,\n name: split.name ?? undefined,\n hiddenAccountNumber: split.hiddenAccountNumber ?? undefined,\n splitAmount: isAmountSplit ? dollarsToCents(splitAmountValue) : splitAmountValue,\n priority: payload.priority[split.uuid],\n }\n }),\n }\n\n const response = await updateMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: { ...body, type: PAYMENT_METHODS.directDeposit },\n },\n })\n\n if (!response.employeePaymentMethod) {\n throw new SDKInternalError('Payment method update failed')\n }\n\n submitResult = { mode: 'update' as const, data: response.employeePaymentMethod }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (\n paymentMethodQuery.isLoading ||\n bankAccountsQuery.isLoading ||\n !paymentMethod ||\n !bankAccounts\n ) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paymentMethod,\n bankAccounts,\n splits,\n remainderId,\n },\n status: {\n isPending,\n mode: 'update' as const,\n splitBy: watchedSplitBy as SplitByValue,\n percentageTotal,\n hasPercentageImbalance,\n },\n actions: { onSubmit, reorderSplits },\n errorHandling,\n form: {\n Fields: { SplitBy: SplitByField, splits: splitFieldEntries },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useSplitPaymentsForm} — a discriminated union on `isLoading`.\n *\n * @public\n */\nexport type UseSplitPaymentsFormResult = HookLoadingResult | UseSplitPaymentsFormReady\n\n/**\n * Per-field metadata exposed on `form.fieldsMetadata` for {@link useSplitPaymentsForm}.\n *\n * @remarks\n * The three named fields are always present. In addition, one dynamic entry is\n * keyed by full form path per split — `splitAmount.<bankAccountUuid>` — so the\n * number and identity of those keys depend on the employee's bank accounts at\n * runtime.\n *\n * @public\n * @interface\n */\nexport type SplitPaymentsFormFieldsMetadata = {\n /** Split mode selector (by percentage or by fixed amount). */\n splitBy: FieldMetadataWithOptions<SplitByValue>\n /** The `splitAmount` container field. Per-split values live at `splitAmount.<uuid>`. */\n splitAmount: FieldMetadata\n /** The `priority` container field. */\n priority: FieldMetadata\n} & Record<`splitAmount.${string}`, FieldMetadata>\n"],"names":["buildWorkingSplits","paymentMethod","bankAccounts","split","account","index","useSplitPaymentsForm","employeeId","optionalFieldsToRequire","validationMode","shouldFocusError","paymentMethodQuery","useEmployeePaymentMethodGet","bankAccountsQuery","useEmployeePaymentMethodsGetBankAccounts","splits","useMemo","schema","metadataConfig","createSplitPaymentsFormSchema","resolvedDefaults","isAmountSplit","SPLIT_BY","splitAmount","priority","centsToDollars","formMethods","useForm","zodResolver","updateMutation","useEmployeePaymentMethodUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","watchedSplitBy","useWatch","watchedPriority","watchedSplitAmount","percentageTotal","acc","v","validationErrors","isSubmitted","useFormState","hasPercentageImbalance","PERCENTAGE_TOTAL_PATH","SplitPaymentsFormErrorCodes","trigger","useEffect","remainderId","maxId","uuid","currentMax","splitsRef","useRef","remainderIdRef","previousSplitByRef","setValue","resetField","newValues","curr","reorderSplits","useCallback","orderedUuids","currentSplits","knownUuids","s","newPriorities","newRemainderId","previousRemainder","splitByOptions","SPLIT_BY_VALUES","value","baseMetadata","useDeriveFieldsMetadata","dynamicSplitMetadata","entries","path","isRemainder","fieldsMetadata","withOptions","splitFieldEntries","buildSplitFieldEntries","onSubmit","SDKInternalError","currentPaymentMethod","submitResult","resolve","data","payload","body","splitAmountValue","dollarsToCents","response","PAYMENT_METHODS","hookFormInternals","useHookFormInternals","SplitByField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useSplitPaymentsForm.js","sources":["../../../../../../src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { useForm, useFormState, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount'\nimport type { EmployeePaymentMethod } from '@gusto/embedded-api/models/components/employeepaymentmethod'\nimport { useEmployeePaymentMethodGet } from '@gusto/embedded-api/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodsGetBankAccounts } from '@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdate'\nimport {\n PERCENTAGE_TOTAL_PATH,\n SPLIT_BY_VALUES,\n SplitPaymentsFormErrorCodes,\n type SplitByValue,\n type SplitPaymentsFormData,\n type SplitPaymentsFormOptionalFieldsToRequire,\n type SplitPaymentsFormOutputs,\n createSplitPaymentsFormSchema,\n} from './useSplitPaymentsFormSchema'\nimport { SplitByField, type SplitByFieldProps } from './fields'\nimport { buildSplitFieldEntries, type SplitFieldEntry } from './splitFieldFactory'\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 FieldMetadataWithOptions,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { centsToDollars, dollarsToCents } from '@/helpers/currencyHelpers'\nimport { PAYMENT_METHODS, SPLIT_BY } from '@/shared/constants'\n\n/**\n * A single split entry — pairs a bank account identifier with its current split allocation.\n *\n * @remarks\n * Surfaced on `data.splits` from {@link useSplitPaymentsForm}. Derived from\n * `paymentMethod.splits` when present, otherwise from the employee's bank\n * accounts (one entry per account, no allocated amount). Carries the raw\n * domain data — use it for label construction or lookups by uuid.\n *\n * @public\n */\nexport interface WorkingSplit {\n /** UUID of the underlying bank account. */\n uuid: string\n /** Account nickname, when available. */\n name: string | null\n /** Masked account number suffix, when available. */\n hiddenAccountNumber: string | null\n /** Allocation amount — `null` for the remainder split in Amount mode and for splits that haven't been allocated yet. */\n splitAmount: number | null\n /** Ordering value — splits are processed in ascending priority; the highest priority is the remainder. */\n priority: number\n}\n\n/**\n * Props for {@link useSplitPaymentsForm}.\n *\n * @public\n */\nexport interface UseSplitPaymentsFormProps {\n /** Employee whose payment splits are being edited. */\n employeeId: string\n /** Override optional fields to be required. Currently a no-op — `splitBy` and `priority` are always required, and per-split `splitAmount` required-ness is automatic. */\n optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire\n /** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler`. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Field components exposed by {@link useSplitPaymentsForm} on `form.Fields`.\n *\n * @public\n */\nexport interface SplitPaymentsFormFields {\n /** Radio group bound to `splitBy`; selects Percentage or Amount split mode. */\n SplitBy: ComponentType<SplitByFieldProps>\n /** One entry per bank account, each carrying a pre-bound `Field` component for the per-split amount. */\n splits: SplitFieldEntry[]\n}\n\n/**\n * Ready-state return value of {@link useSplitPaymentsForm}.\n *\n * @public\n */\nexport interface UseSplitPaymentsFormReady extends BaseFormHookReady<\n SplitPaymentsFormFieldsMetadata,\n SplitPaymentsFormData,\n SplitPaymentsFormFields\n> {\n /** Server-fetched data and derived working values. */\n data: {\n /** The employee's current payment method. */\n paymentMethod: EmployeePaymentMethod\n /** All bank accounts available to allocate splits across. */\n bankAccounts: EmployeeBankAccount[]\n /** The current working split entries, one per bank account. */\n splits: WorkingSplit[]\n /** UUID of the split that absorbs the remainder in Amount mode (always the last by priority). */\n remainderId: string\n }\n /** Submission state and reactive form-level flags. */\n status: {\n /** `true` while the update mutation is in flight. */\n isPending: boolean\n /** Always `'update'` — the hook always edits an existing payment method. */\n mode: 'update'\n /** Current `splitBy` value, reactively tracked. */\n splitBy: SplitByValue\n /** Live sum of `splitAmount` values; useful for displaying the current total in Percentage mode. */\n percentageTotal: number\n /**\n * `true` after a failed Percentage-mode Save when the splits don't sum to\n * 100; clears live as the user corrects the total. Follows the standard\n * react-hook-form validation lifecycle (controlled by `validationMode`).\n * Only surfaces in Percentage mode.\n */\n hasPercentageImbalance: boolean\n }\n /** Actions that mutate the form or submit it. */\n actions: {\n /** Submit the form. Returns the updated payment method on success or `undefined` on validation/mutation failure. */\n onSubmit: () => Promise<HookSubmitResult<EmployeePaymentMethod> | undefined>\n /**\n * Reorder splits by uuid (Amount mode). Pass the ordered list of split\n * uuids; the last uuid becomes the remainder. The hook writes the new\n * priority map and re-anchors the remainder's `splitAmount` to `null`\n * (clearing the previous remainder to `0`).\n */\n reorderSplits: (orderedUuids: string[]) => void\n }\n}\n\nconst buildWorkingSplits = (\n paymentMethod: EmployeePaymentMethod,\n bankAccounts: EmployeeBankAccount[],\n): WorkingSplit[] => {\n if (paymentMethod.splits && paymentMethod.splits.length > 0) {\n return paymentMethod.splits.map(split => ({\n uuid: split.uuid,\n name: split.name ?? null,\n hiddenAccountNumber: split.hiddenAccountNumber ?? null,\n splitAmount: split.splitAmount ?? null,\n priority: split.priority ?? 0,\n }))\n }\n return bankAccounts.map((account, index) => ({\n uuid: account.uuid,\n name: account.name ?? null,\n hiddenAccountNumber: account.hiddenAccountNumber ?? null,\n splitAmount: null,\n priority: index + 1,\n }))\n}\n\n/**\n * Headless React Hook Form hook for splitting an employee's Direct Deposit across multiple bank accounts.\n *\n * @remarks\n * Supports two split modes: Percentage (whole-number shares that sum to 100)\n * and Amount (dollar amounts, with the last-priority split absorbing the\n * remainder). Always operates in update mode against the employee's existing\n * payment method.\n *\n * The Percentage sum-to-100 invariant is surfaced via\n * `status.hasPercentageImbalance` (not as a per-field error). With the default\n * `validationMode: 'onSubmit'`, the imbalance flag appears after the first\n * failed Save and clears live as the user corrects the total.\n *\n * @param props - See {@link UseSplitPaymentsFormProps}.\n * @returns A loading-state result while the payment method and bank accounts are loading, or a {@link UseSplitPaymentsFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import {\n * useSplitPaymentsForm,\n * SDKFormProvider,\n * type SplitByValue,\n * type UseSplitPaymentsFormReady,\n * } from '@gusto/embedded-react-sdk'\n *\n * function SplitPaycheckScreen({ employeeId }: { employeeId: string }) {\n * const splitForm = useSplitPaymentsForm({ employeeId })\n *\n * if (splitForm.isLoading) return null\n * return <SplitPaycheckReady splitForm={splitForm} />\n * }\n *\n * function SplitPaycheckReady({ splitForm }: { splitForm: UseSplitPaymentsFormReady }) {\n * const { Fields } = splitForm.form\n * const { hasPercentageImbalance, percentageTotal } = splitForm.status\n *\n * return (\n * <SDKFormProvider formHookResult={splitForm}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void splitForm.actions.onSubmit()\n * }}\n * >\n * {hasPercentageImbalance && (\n * <div role=\"alert\">Splits must total 100%. Currently {percentageTotal}%.</div>\n * )}\n * <Fields.SplitBy label=\"Split by\" getOptionLabel={(value: SplitByValue) => value} />\n * {Fields.splits.map(split => (\n * <split.Field\n * key={split.uuid}\n * label={split.name ?? 'Account'}\n * min={0}\n * />\n * ))}\n * <button type=\"submit\" disabled={splitForm.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useSplitPaymentsForm({\n employeeId,\n optionalFieldsToRequire,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseSplitPaymentsFormProps): UseSplitPaymentsFormResult {\n const paymentMethodQuery = useEmployeePaymentMethodGet({ employeeId })\n const bankAccountsQuery = useEmployeePaymentMethodsGetBankAccounts({ employeeId })\n\n const paymentMethod = paymentMethodQuery.data?.employeePaymentMethod\n const bankAccounts = bankAccountsQuery.data?.employeeBankAccounts\n\n const splits = useMemo<WorkingSplit[]>(\n () => (paymentMethod && bankAccounts ? buildWorkingSplits(paymentMethod, bankAccounts) : []),\n [paymentMethod, bankAccounts],\n )\n\n const [schema, metadataConfig] = useMemo(\n () => createSplitPaymentsFormSchema({ optionalFieldsToRequire }),\n [optionalFieldsToRequire],\n )\n\n const resolvedDefaults: SplitPaymentsFormData = useMemo(() => {\n const isAmountSplit = paymentMethod?.splitBy === SPLIT_BY.amount\n const splitAmount: Record<string, number | null> = {}\n const priority: Record<string, number> = {}\n splits.forEach(split => {\n splitAmount[split.uuid] = isAmountSplit\n ? centsToDollars(split.splitAmount)\n : split.splitAmount\n priority[split.uuid] = split.priority\n })\n return {\n splitBy: (paymentMethod?.splitBy ?? SPLIT_BY.percentage) as SplitByValue,\n splitAmount,\n priority,\n }\n }, [paymentMethod, splits])\n\n const formMethods = useForm<SplitPaymentsFormData, unknown, SplitPaymentsFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const updateMutation = useEmployeePaymentMethodUpdateMutation()\n const isPending = updateMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('SplitPaymentsForm')\n\n const errorHandling = composeErrorHandler([paymentMethodQuery, bankAccountsQuery], {\n submitError,\n setSubmitError,\n })\n\n const watchedSplitBy = useWatch({ control: formMethods.control, name: 'splitBy' })\n const watchedPriority = useWatch({ control: formMethods.control, name: 'priority' })\n const watchedSplitAmount = useWatch({ control: formMethods.control, name: 'splitAmount' })\n\n const percentageTotal = useMemo(() => {\n if (watchedSplitBy !== SPLIT_BY.percentage) return 0\n return Object.values(watchedSplitAmount).reduce<number>(\n (acc, v) => acc + (typeof v === 'number' && Number.isFinite(v) ? v : 0),\n 0,\n )\n }, [watchedSplitBy, watchedSplitAmount])\n\n // Subscribe to the schema-emitted imbalance error. The schema places it at\n // a synthetic path (`PERCENTAGE_TOTAL_PATH`) so it does not collide with\n // per-uuid `splitAmount.<uuid>` errors. Following the standard validation\n // lifecycle means `validationMode` (onSubmit / onChange / onBlur / ...)\n // controls when the alert can appear. We subscribe to the full errors map\n // because `name` only tracks registered field paths and our synthetic key\n // is not a registered field. The derivation is also gated on Percentage\n // mode so a stale error from a prior Percentage submit can't leak into\n // Amount mode after a toggle.\n const { errors: validationErrors, isSubmitted } = useFormState({\n control: formMethods.control,\n })\n const hasPercentageImbalance =\n watchedSplitBy === SPLIT_BY.percentage &&\n (validationErrors as Record<string, { message?: string } | undefined>)[PERCENTAGE_TOTAL_PATH]\n ?.message === SplitPaymentsFormErrorCodes.PERCENTAGE_TOTAL_MISMATCH\n\n // Re-sync the synthetic PERCENTAGE_TOTAL_PATH error whenever any\n // `splitAmount` value changes (in Percentage mode, after the first\n // submit attempt). RHF's per-field reValidate after a failed submit\n // scopes the resolver merge to the changed field's name, so an error\n // at our form-level synthetic path is otherwise left stuck once the\n // user has typed the total back to 100. Targeting the synthetic name\n // re-runs the resolver and lets RHF set/unset that single path through\n // its normal merge — preserving per-field error lifecycles unchanged.\n const { trigger } = formMethods\n useEffect(() => {\n if (!isSubmitted) return\n if (watchedSplitBy !== SPLIT_BY.percentage) return\n // `trigger`'s type is keyed to registered field paths, but the\n // synthetic `percentageTotal` resolves through RHF's get/set/unset\n // helpers at runtime — cast at the boundary to keep the contract\n // honest above.\n void trigger(PERCENTAGE_TOTAL_PATH as Parameters<typeof trigger>[0])\n }, [isSubmitted, watchedSplitBy, watchedSplitAmount, trigger])\n\n const remainderId = useMemo(() => {\n if (!Object.keys(watchedPriority).length) return ''\n return Object.entries(watchedPriority).reduce((maxId, [uuid, priority]) => {\n if (!maxId) return uuid\n const currentMax = watchedPriority[maxId] ?? 0\n return priority > currentMax ? uuid : maxId\n }, '')\n }, [watchedPriority])\n\n // Reset splitAmount values when the user toggles splitBy. Skip the first\n // post-load run so values loaded from `paymentMethod.splits` are preserved\n // on mount — only the user's explicit toggle should clear them.\n const splitsRef = useRef(splits)\n splitsRef.current = splits\n const remainderIdRef = useRef(remainderId)\n remainderIdRef.current = remainderId\n const previousSplitByRef = useRef<SplitByValue | null>(null)\n const { setValue, resetField } = formMethods\n\n useEffect(() => {\n if (!splitsRef.current.length) return\n if (previousSplitByRef.current === null) {\n previousSplitByRef.current = watchedSplitBy as SplitByValue\n return\n }\n if (previousSplitByRef.current === watchedSplitBy) return\n previousSplitByRef.current = watchedSplitBy as SplitByValue\n\n if (watchedSplitBy === SPLIT_BY.amount) {\n const newValues = splitsRef.current.reduce<Record<string, number | null>>((acc, curr) => {\n acc[curr.uuid] = curr.uuid === remainderIdRef.current ? null : 0\n return acc\n }, {})\n setValue('splitAmount', newValues)\n } else {\n const newValues = splitsRef.current.reduce<Record<string, number | null>>(\n (acc, curr, index) => {\n acc[curr.uuid] = index === 0 ? 100 : 0\n return acc\n },\n {},\n )\n setValue('splitAmount', newValues)\n }\n }, [watchedSplitBy, setValue])\n\n const reorderSplits = useCallback(\n (orderedUuids: string[]) => {\n const currentSplits = splitsRef.current\n const knownUuids = new Set(currentSplits.map(s => s.uuid))\n if (\n orderedUuids.length !== knownUuids.size ||\n !orderedUuids.every(uuid => knownUuids.has(uuid))\n ) {\n return\n }\n\n const newPriorities = orderedUuids.reduce<Record<string, number>>((acc, uuid, index) => {\n acc[uuid] = index + 1\n return acc\n }, {})\n const newRemainderId = orderedUuids[orderedUuids.length - 1]\n if (!newRemainderId) return\n\n setValue('priority', newPriorities)\n const previousRemainder = remainderIdRef.current\n if (previousRemainder && previousRemainder !== newRemainderId) {\n resetField(`splitAmount.${previousRemainder}`)\n setValue(`splitAmount.${previousRemainder}`, 0)\n }\n setValue(`splitAmount.${newRemainderId}`, null)\n },\n [setValue, resetField],\n )\n\n const splitByOptions = SPLIT_BY_VALUES.map(value => ({ value, label: value }))\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const dynamicSplitMetadata = useMemo<Record<`splitAmount.${string}`, FieldMetadata>>(() => {\n const entries: Record<`splitAmount.${string}`, FieldMetadata> = {}\n const isAmountSplit = watchedSplitBy === SPLIT_BY.amount\n for (const split of splits) {\n const path = `splitAmount.${split.uuid}` as const\n const isRemainder = isAmountSplit && split.uuid === remainderId\n // Every split — including the remainder — is \"required\" from the\n // user's perspective: the remainder always carries a value at submit\n // (the API absorbs leftover). The form-state `null` is a modeling\n // detail, not a UX choice, so we don't surface it as \"(optional)\" on\n // the label. `isDisabled` already conveys the non-interactivity.\n entries[path] = {\n name: path,\n isRequired: true,\n isDisabled: isRemainder,\n }\n }\n return entries\n }, [splits, watchedSplitBy, remainderId])\n const fieldsMetadata: SplitPaymentsFormFieldsMetadata = {\n splitBy: withOptions<SplitByValue>(baseMetadata.splitBy, splitByOptions, [...SPLIT_BY_VALUES]),\n splitAmount: baseMetadata.splitAmount,\n priority: baseMetadata.priority,\n ...dynamicSplitMetadata,\n }\n\n const splitFieldEntries = useMemo(\n () =>\n buildSplitFieldEntries(\n splits.map(s => ({\n uuid: s.uuid,\n name: s.name,\n hiddenAccountNumber: s.hiddenAccountNumber,\n })),\n ),\n [splits],\n )\n\n const onSubmit = async (): Promise<HookSubmitResult<EmployeePaymentMethod> | undefined> => {\n if (!paymentMethod) {\n throw new SDKInternalError('Cannot submit split payments form before data is loaded')\n }\n const currentPaymentMethod = paymentMethod\n const currentSplits = splits\n let submitResult: HookSubmitResult<EmployeePaymentMethod> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: SplitPaymentsFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const isAmountSplit = payload.splitBy === SPLIT_BY.amount\n const body = {\n ...currentPaymentMethod,\n version: currentPaymentMethod.version as string,\n splitBy: payload.splitBy,\n splits: currentSplits.map(split => {\n const splitAmountValue = payload.splitAmount[split.uuid] ?? null\n return {\n uuid: split.uuid,\n name: split.name ?? undefined,\n hiddenAccountNumber: split.hiddenAccountNumber ?? undefined,\n splitAmount: isAmountSplit ? dollarsToCents(splitAmountValue) : splitAmountValue,\n priority: payload.priority[split.uuid],\n }\n }),\n }\n\n const response = await updateMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: { ...body, type: PAYMENT_METHODS.directDeposit },\n },\n })\n\n if (!response.employeePaymentMethod) {\n throw new SDKInternalError('Payment method update failed')\n }\n\n submitResult = { mode: 'update' as const, data: response.employeePaymentMethod }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (\n paymentMethodQuery.isLoading ||\n bankAccountsQuery.isLoading ||\n !paymentMethod ||\n !bankAccounts\n ) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n paymentMethod,\n bankAccounts,\n splits,\n remainderId,\n },\n status: {\n isPending,\n mode: 'update' as const,\n splitBy: watchedSplitBy as SplitByValue,\n percentageTotal,\n hasPercentageImbalance,\n },\n actions: { onSubmit, reorderSplits },\n errorHandling,\n form: {\n Fields: { SplitBy: SplitByField, splits: splitFieldEntries },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useSplitPaymentsForm} — a discriminated union on `isLoading`.\n *\n * @public\n */\nexport type UseSplitPaymentsFormResult = HookLoadingResult | UseSplitPaymentsFormReady\n\n/**\n * Per-field metadata exposed on `form.fieldsMetadata` for {@link useSplitPaymentsForm}.\n *\n * @remarks\n * The three named fields are always present. In addition, one dynamic entry is\n * keyed by full form path per split — `splitAmount.<bankAccountUuid>` — so the\n * number and identity of those keys depend on the employee's bank accounts at\n * runtime.\n *\n * @public\n * @interface\n */\nexport type SplitPaymentsFormFieldsMetadata = {\n /** Split mode selector (by percentage or by fixed amount). */\n splitBy: FieldMetadataWithOptions<SplitByValue>\n /** The `splitAmount` container field. Per-split values live at `splitAmount.<uuid>`. */\n splitAmount: FieldMetadata\n /** The `priority` container field. */\n priority: FieldMetadata\n} & Record<`splitAmount.${string}`, FieldMetadata>\n"],"names":["buildWorkingSplits","paymentMethod","bankAccounts","split","account","index","useSplitPaymentsForm","employeeId","optionalFieldsToRequire","validationMode","shouldFocusError","paymentMethodQuery","useEmployeePaymentMethodGet","bankAccountsQuery","useEmployeePaymentMethodsGetBankAccounts","splits","useMemo","schema","metadataConfig","createSplitPaymentsFormSchema","resolvedDefaults","isAmountSplit","SPLIT_BY","splitAmount","priority","centsToDollars","formMethods","useForm","zodResolver","updateMutation","useEmployeePaymentMethodUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","watchedSplitBy","useWatch","watchedPriority","watchedSplitAmount","percentageTotal","acc","v","validationErrors","isSubmitted","useFormState","hasPercentageImbalance","PERCENTAGE_TOTAL_PATH","SplitPaymentsFormErrorCodes","trigger","useEffect","remainderId","maxId","uuid","currentMax","splitsRef","useRef","remainderIdRef","previousSplitByRef","setValue","resetField","newValues","curr","reorderSplits","useCallback","orderedUuids","currentSplits","knownUuids","s","newPriorities","newRemainderId","previousRemainder","splitByOptions","SPLIT_BY_VALUES","value","baseMetadata","useDeriveFieldsMetadata","dynamicSplitMetadata","entries","path","isRemainder","fieldsMetadata","withOptions","splitFieldEntries","buildSplitFieldEntries","onSubmit","SDKInternalError","currentPaymentMethod","submitResult","resolve","data","payload","body","splitAmountValue","dollarsToCents","response","PAYMENT_METHODS","hookFormInternals","useHookFormInternals","SplitByField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -46,7 +46,7 @@ export type SplitByValue = (typeof SPLIT_BY_VALUES)[number];
46
46
  *
47
47
  * @public
48
48
  */
49
- export type SplitPaymentsFormField = "splitBy" | "splitAmount" | "priority";
49
+ export type SplitPaymentsFormField = "priority" | "splitAmount" | "splitBy";
50
50
  /**
51
51
  * Shape of the values managed by the split payments form. `splitAmount` and
52
52
  * `priority` are keyed by bank account uuid.
@@ -1,4 +1,4 @@
1
- import { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api-v-2026-02-01/models/operations/getv1employeesemployeeuuidpaystubs';
1
+ import { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeuuidpaystubs';
2
2
  import { BaseHookReady, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
3
3
  import { PaginationControlProps, PaginationItemsPerPage } from '../../../../Common/PaginationControl/PaginationControlTypes';
4
4
  /**
@@ -1,6 +1,6 @@
1
- import { useGustoEmbeddedContext as P } from "@gusto/embedded-api-v-2026-02-01/react-query/_context";
2
- import { usePayrollsGetPayStubs as S } from "@gusto/embedded-api-v-2026-02-01/react-query/payrollsGetPayStubs";
3
- import { payrollsGetPayStub as h } from "@gusto/embedded-api-v-2026-02-01/funcs/payrollsGetPayStub";
1
+ import { useGustoEmbeddedContext as P } from "@gusto/embedded-api/react-query/_context";
2
+ import { usePayrollsGetPayStubs as S } from "@gusto/embedded-api/react-query/payrollsGetPayStubs";
3
+ import { payrollsGetPayStub as h } from "@gusto/embedded-api/funcs/payrollsGetPayStub";
4
4
  import { useMemo as w, useCallback as E } from "react";
5
5
  import { useBaseSubmit as L } from "../../../../Base/useBaseSubmit.js";
6
6
  import { composeErrorHandler as F } from "../../../../../partner-hook-utils/composeErrorHandler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"usePaystubsList.js","sources":["../../../../../../src/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.ts"],"sourcesContent":["import { useGustoEmbeddedContext } from '@gusto/embedded-api-v-2026-02-01/react-query/_context'\nimport { usePayrollsGetPayStubs } from '@gusto/embedded-api-v-2026-02-01/react-query/payrollsGetPayStubs'\nimport { payrollsGetPayStub } from '@gusto/embedded-api-v-2026-02-01/funcs/payrollsGetPayStub'\nimport { useCallback, useMemo } from 'react'\nimport type { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api-v-2026-02-01/models/operations/getv1employeesemployeeuuidpaystubs'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport type {\n PaginationControlProps,\n PaginationItemsPerPage,\n} from '@/components/Common/PaginationControl/PaginationControlTypes'\n\n/**\n * A single paystub entry returned by {@link usePaystubsList}.\n *\n * @public\n */\nexport type EmployeePayStub = NonNullable<\n GetV1EmployeesEmployeeUuidPayStubsResponse['employeePayStubsList']\n>[number]\n\n/**\n * Parameters for {@link usePaystubsList}.\n *\n * @public\n */\nexport interface UsePaystubsListParams {\n /** The associated employee identifier. */\n employeeId: string\n /** Items per page for the paystubs list. Defaults to 10. */\n defaultItemsPerPage?: PaginationItemsPerPage\n}\n\n/**\n * Ready-state shape returned by {@link usePaystubsList} once data has loaded.\n *\n * @public\n */\nexport interface UsePaystubsListReady extends BaseHookReady<\n { payStubs: EmployeePayStub[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the paystubs list. */\n pagination: { payStubs?: PaginationControlProps }\n /** Actions exposed by the hook. */\n actions: {\n /** Fetch the paystub PDF for the given payroll. Returns a Blob on success\n * so the caller decides how to surface it (open in a new tab, save to\n * disk, embed, etc.). */\n downloadPayStub: (payrollId: string) => Promise<HookSubmitResult<Blob> | undefined>\n }\n}\n\n/**\n * Return type of {@link usePaystubsList}.\n *\n * @public\n */\nexport type UsePaystubsListResult = HookLoadingResult | UsePaystubsListReady\n\n/**\n * Data hook for the employee paystubs list. Returns the paginated list of\n * paystubs and an action to download an individual paystub PDF. Used by the\n * standalone `PaystubsCard` component and consumable directly by partners\n * building a fully custom paystubs UI.\n *\n * @public\n */\nexport function usePaystubsList({\n employeeId,\n defaultItemsPerPage = 10,\n}: UsePaystubsListParams): UsePaystubsListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage,\n })\n\n const gustoEmbedded = useGustoEmbeddedContext()\n const payStubsQuery = usePayrollsGetPayStubs(\n { employeeId, page: currentPage, per: itemsPerPage },\n { staleTime: Infinity },\n )\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PaystubsList')\n\n const payStubs = payStubsQuery.data?.employeePayStubsList ?? []\n\n const payStubsPagination = useMemo(() => {\n const headers = payStubsQuery.data?.httpMeta.response.headers\n if (!headers) return undefined\n return getPaginationProps(headers, payStubsQuery.isFetching)\n }, [payStubsQuery.data?.httpMeta.response.headers, payStubsQuery.isFetching, getPaginationProps])\n\n const errorHandling = composeErrorHandler([payStubsQuery], { submitError, setSubmitError })\n\n const downloadPayStub = useCallback(\n async (payrollId: string): Promise<HookSubmitResult<Blob> | undefined> => {\n let submitResult: HookSubmitResult<Blob> | undefined\n await baseSubmitHandler(payrollId, async id => {\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId: id, employeeId })\n // `funcs/payrollsGetPayStub` returns a Result discriminated union;\n // surface API/validation errors so `baseSubmitHandler` can route them\n // through the standard SDK error pipeline instead of bubbling to the\n // error boundary as an unknown throw.\n if (!response.ok) {\n throw response.error\n }\n if (!response.value.responseStream) {\n throw new Error('Pay stub response missing PDF stream')\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n submitResult = { mode: 'update', data: pdfBlob }\n })\n return submitResult\n },\n [baseSubmitHandler, gustoEmbedded, employeeId],\n )\n\n if (payStubsQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { payStubs },\n status: {\n isFetching: payStubsQuery.isFetching,\n isPending: false,\n },\n pagination: { payStubs: payStubsPagination },\n actions: { downloadPayStub },\n errorHandling,\n }\n}\n"],"names":["usePaystubsList","employeeId","defaultItemsPerPage","currentPage","itemsPerPage","getPaginationProps","usePagination","gustoEmbedded","useGustoEmbeddedContext","payStubsQuery","usePayrollsGetPayStubs","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","payStubs","payStubsPagination","useMemo","headers","errorHandling","composeErrorHandler","downloadPayStub","useCallback","payrollId","submitResult","id","response","payrollsGetPayStub","readableStreamToBlob"],"mappings":";;;;;;;;AAuEO,SAASA,EAAgB;AAAA,EAC9B,YAAAC;AAAA,EACA,qBAAAC,IAAsB;AACxB,GAAiD;AAC/C,QAAM,EAAE,aAAAC,GAAa,cAAAC,GAAc,oBAAAC,EAAA,IAAuBC,EAAc;AAAA,IACtE,qBAAAJ;AAAA,EAAA,CACD,GAEKK,IAAgBC,EAAA,GAChBC,IAAgBC;AAAA,IACpB,EAAE,YAAAT,GAAY,MAAME,GAAa,KAAKC,EAAA;AAAA,IACtC,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlB;AAAA,IACJ,mBAAAO;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,cAAc,GAE1BC,IAAWN,EAAc,MAAM,wBAAwB,CAAA,GAEvDO,IAAqBC,EAAQ,MAAM;AACvC,UAAMC,IAAUT,EAAc,MAAM,SAAS,SAAS;AACtD,QAAKS;AACL,aAAOb,EAAmBa,GAAST,EAAc,UAAU;AAAA,EAC7D,GAAG,CAACA,EAAc,MAAM,SAAS,SAAS,SAASA,EAAc,YAAYJ,CAAkB,CAAC,GAE1Fc,IAAgBC,EAAoB,CAACX,CAAa,GAAG,EAAE,aAAAG,GAAa,gBAAAC,GAAgB,GAEpFQ,IAAkBC;AAAA,IACtB,OAAOC,MAAmE;AACxE,UAAIC;AACJ,mBAAMb,EAAkBY,GAAW,OAAME,MAAM;AAC7C,cAAMC,IAAW,MAAMC,EAAmBpB,GAAe,EAAE,WAAWkB,GAAI,YAAAxB,GAAY;AAKtF,YAAI,CAACyB,EAAS;AACZ,gBAAMA,EAAS;AAEjB,YAAI,CAACA,EAAS,MAAM;AAClB,gBAAM,IAAI,MAAM,sCAAsC;AAGxD,QAAAF,IAAe,EAAE,MAAM,UAAU,MADjB,MAAMI,EAAqBF,EAAS,MAAM,gBAAgB,iBAAiB,EACpD;AAAA,MACzC,CAAC,GACMF;AAAA,IACT;AAAA,IACA,CAACb,GAAmBJ,GAAeN,CAAU;AAAA,EAAA;AAG/C,SAAIQ,EAAc,YACT,EAAE,WAAW,IAAM,eAAAU,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,UAAAJ,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYN,EAAc;AAAA,MAC1B,WAAW;AAAA,IAAA;AAAA,IAEb,YAAY,EAAE,UAAUO,EAAA;AAAA,IACxB,SAAS,EAAE,iBAAAK,EAAA;AAAA,IACX,eAAAF;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"usePaystubsList.js","sources":["../../../../../../src/components/Employee/Paystubs/shared/usePaystubsList/usePaystubsList.ts"],"sourcesContent":["import { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { usePayrollsGetPayStubs } from '@gusto/embedded-api/react-query/payrollsGetPayStubs'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useCallback, useMemo } from 'react'\nimport type { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeuuidpaystubs'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport type {\n PaginationControlProps,\n PaginationItemsPerPage,\n} from '@/components/Common/PaginationControl/PaginationControlTypes'\n\n/**\n * A single paystub entry returned by {@link usePaystubsList}.\n *\n * @public\n */\nexport type EmployeePayStub = NonNullable<\n GetV1EmployeesEmployeeUuidPayStubsResponse['employeePayStubsList']\n>[number]\n\n/**\n * Parameters for {@link usePaystubsList}.\n *\n * @public\n */\nexport interface UsePaystubsListParams {\n /** The associated employee identifier. */\n employeeId: string\n /** Items per page for the paystubs list. Defaults to 10. */\n defaultItemsPerPage?: PaginationItemsPerPage\n}\n\n/**\n * Ready-state shape returned by {@link usePaystubsList} once data has loaded.\n *\n * @public\n */\nexport interface UsePaystubsListReady extends BaseHookReady<\n { payStubs: EmployeePayStub[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the paystubs list. */\n pagination: { payStubs?: PaginationControlProps }\n /** Actions exposed by the hook. */\n actions: {\n /** Fetch the paystub PDF for the given payroll. Returns a Blob on success\n * so the caller decides how to surface it (open in a new tab, save to\n * disk, embed, etc.). */\n downloadPayStub: (payrollId: string) => Promise<HookSubmitResult<Blob> | undefined>\n }\n}\n\n/**\n * Return type of {@link usePaystubsList}.\n *\n * @public\n */\nexport type UsePaystubsListResult = HookLoadingResult | UsePaystubsListReady\n\n/**\n * Data hook for the employee paystubs list. Returns the paginated list of\n * paystubs and an action to download an individual paystub PDF. Used by the\n * standalone `PaystubsCard` component and consumable directly by partners\n * building a fully custom paystubs UI.\n *\n * @public\n */\nexport function usePaystubsList({\n employeeId,\n defaultItemsPerPage = 10,\n}: UsePaystubsListParams): UsePaystubsListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage,\n })\n\n const gustoEmbedded = useGustoEmbeddedContext()\n const payStubsQuery = usePayrollsGetPayStubs(\n { employeeId, page: currentPage, per: itemsPerPage },\n { staleTime: Infinity },\n )\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('PaystubsList')\n\n const payStubs = payStubsQuery.data?.employeePayStubsList ?? []\n\n const payStubsPagination = useMemo(() => {\n const headers = payStubsQuery.data?.httpMeta.response.headers\n if (!headers) return undefined\n return getPaginationProps(headers, payStubsQuery.isFetching)\n }, [payStubsQuery.data?.httpMeta.response.headers, payStubsQuery.isFetching, getPaginationProps])\n\n const errorHandling = composeErrorHandler([payStubsQuery], { submitError, setSubmitError })\n\n const downloadPayStub = useCallback(\n async (payrollId: string): Promise<HookSubmitResult<Blob> | undefined> => {\n let submitResult: HookSubmitResult<Blob> | undefined\n await baseSubmitHandler(payrollId, async id => {\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId: id, employeeId })\n // `funcs/payrollsGetPayStub` returns a Result discriminated union;\n // surface API/validation errors so `baseSubmitHandler` can route them\n // through the standard SDK error pipeline instead of bubbling to the\n // error boundary as an unknown throw.\n if (!response.ok) {\n throw response.error\n }\n if (!response.value.responseStream) {\n throw new Error('Pay stub response missing PDF stream')\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n submitResult = { mode: 'update', data: pdfBlob }\n })\n return submitResult\n },\n [baseSubmitHandler, gustoEmbedded, employeeId],\n )\n\n if (payStubsQuery.isLoading) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { payStubs },\n status: {\n isFetching: payStubsQuery.isFetching,\n isPending: false,\n },\n pagination: { payStubs: payStubsPagination },\n actions: { downloadPayStub },\n errorHandling,\n }\n}\n"],"names":["usePaystubsList","employeeId","defaultItemsPerPage","currentPage","itemsPerPage","getPaginationProps","usePagination","gustoEmbedded","useGustoEmbeddedContext","payStubsQuery","usePayrollsGetPayStubs","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","payStubs","payStubsPagination","useMemo","headers","errorHandling","composeErrorHandler","downloadPayStub","useCallback","payrollId","submitResult","id","response","payrollsGetPayStub","readableStreamToBlob"],"mappings":";;;;;;;;AAuEO,SAASA,EAAgB;AAAA,EAC9B,YAAAC;AAAA,EACA,qBAAAC,IAAsB;AACxB,GAAiD;AAC/C,QAAM,EAAE,aAAAC,GAAa,cAAAC,GAAc,oBAAAC,EAAA,IAAuBC,EAAc;AAAA,IACtE,qBAAAJ;AAAA,EAAA,CACD,GAEKK,IAAgBC,EAAA,GAChBC,IAAgBC;AAAA,IACpB,EAAE,YAAAT,GAAY,MAAME,GAAa,KAAKC,EAAA;AAAA,IACtC,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlB;AAAA,IACJ,mBAAAO;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,cAAc,GAE1BC,IAAWN,EAAc,MAAM,wBAAwB,CAAA,GAEvDO,IAAqBC,EAAQ,MAAM;AACvC,UAAMC,IAAUT,EAAc,MAAM,SAAS,SAAS;AACtD,QAAKS;AACL,aAAOb,EAAmBa,GAAST,EAAc,UAAU;AAAA,EAC7D,GAAG,CAACA,EAAc,MAAM,SAAS,SAAS,SAASA,EAAc,YAAYJ,CAAkB,CAAC,GAE1Fc,IAAgBC,EAAoB,CAACX,CAAa,GAAG,EAAE,aAAAG,GAAa,gBAAAC,GAAgB,GAEpFQ,IAAkBC;AAAA,IACtB,OAAOC,MAAmE;AACxE,UAAIC;AACJ,mBAAMb,EAAkBY,GAAW,OAAME,MAAM;AAC7C,cAAMC,IAAW,MAAMC,EAAmBpB,GAAe,EAAE,WAAWkB,GAAI,YAAAxB,GAAY;AAKtF,YAAI,CAACyB,EAAS;AACZ,gBAAMA,EAAS;AAEjB,YAAI,CAACA,EAAS,MAAM;AAClB,gBAAM,IAAI,MAAM,sCAAsC;AAGxD,QAAAF,IAAe,EAAE,MAAM,UAAU,MADjB,MAAMI,EAAqBF,EAAS,MAAM,gBAAgB,iBAAiB,EACpD;AAAA,MACzC,CAAC,GACMF;AAAA,IACT;AAAA,IACA,CAACb,GAAmBJ,GAAeN,CAAU;AAAA,EAAA;AAG/C,SAAIQ,EAAc,YACT,EAAE,WAAW,IAAM,eAAAU,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,UAAAJ,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYN,EAAc;AAAA,MAC1B,WAAW;AAAA,IAAA;AAAA,IAEb,YAAY,EAAE,UAAUO,EAAA;AAAA,IACxB,SAAS,EAAE,iBAAAK,EAAA;AAAA,IACX,eAAAF;AAAA,EAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdminProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/AdminProfile.tsx"],"sourcesContent":["import { useState, useMemo, useEffect } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport { useCurrentWorkAddressForm } from '../shared/useWorkAddressForm'\nimport type { UseEmployeeDetailsFormReady } from '../shared/useEmployeeDetailsForm'\nimport type { UseHomeAddressFormReady } from '../shared/useHomeAddressForm'\nimport type { UseWorkAddressFormReady } from '../shared/useWorkAddressForm'\nimport styles from './AdminProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout, DatePickerField, Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst checkHasCompletedSelfOnboarding = (employee?: Employee) => {\n return (\n employee?.onboarded === true ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n )\n}\n\nfunction computeOptionalFieldsToRequire(\n selfOnboardingActive: boolean,\n): EmployeeDetailsOptionalFieldsToRequire {\n if (selfOnboardingActive) {\n return {\n create: ['email'],\n update: ['firstName', 'lastName', 'email'],\n }\n }\n return {\n create: ['email', 'dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'email', 'dateOfBirth', 'ssn'],\n }\n}\n\n/** @internal */\nexport function AdminProfile({\n companyId,\n employeeId,\n defaultValues,\n isSelfOnboardingEnabled = true,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n const isCreateMode = !resolvedEmployeeId\n\n const createModeSelfOnboarding =\n isCreateMode && isSelfOnboardingEnabled && (defaultValues?.inviteEmployeeDefault ?? false)\n\n const [selfOnboardingActive, setSelfOnboardingActive] = useState(createModeSelfOnboarding)\n\n const optionalFieldsToRequire = useMemo(\n () => computeOptionalFieldsToRequire(selfOnboardingActive),\n [selfOnboardingActive],\n )\n\n const employeeDetailsDefaults = useMemo(\n () => ({\n ...defaultValues?.employee,\n ...(isCreateMode && { selfOnboarding: createModeSelfOnboarding }),\n }),\n [defaultValues, isCreateMode, createModeSelfOnboarding],\n )\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: true,\n optionalFieldsToRequire,\n defaultValues: employeeDetailsDefaults,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddress = useCurrentWorkAddressForm({\n companyId,\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n shouldFocusError: false,\n })\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddress.isLoading) {\n const loadingErrorHandling = composeErrorHandler([employeeDetails, homeAddress, workAddress])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n return (\n <AdminProfileReady\n employeeDetails={employeeDetails}\n homeAddress={homeAddress}\n workAddress={workAddress}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n isCreateMode={isCreateMode}\n employeeId={employeeId}\n setResolvedEmployeeId={setResolvedEmployeeId}\n setSelfOnboardingActive={setSelfOnboardingActive}\n onEvent={onEvent}\n className={className}\n />\n )\n}\n\ninterface AdminProfileReadyProps {\n employeeDetails: UseEmployeeDetailsFormReady\n homeAddress: UseHomeAddressFormReady\n workAddress: UseWorkAddressFormReady\n isSelfOnboardingEnabled: boolean\n isCreateMode: boolean\n employeeId?: string\n setResolvedEmployeeId: (id: string) => void\n setSelfOnboardingActive: (active: boolean) => void\n onEvent: (event: EventType, data?: unknown) => void\n className: string\n}\n\nfunction AdminProfileReady({\n employeeDetails,\n homeAddress,\n workAddress,\n isSelfOnboardingEnabled,\n isCreateMode,\n employeeId,\n setResolvedEmployeeId,\n setSelfOnboardingActive,\n onEvent,\n className,\n}: AdminProfileReadyProps) {\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const employee = employeeDetails.data.employee ?? undefined\n const completedSelfOnboarding = checkHasCompletedSelfOnboarding(employee)\n\n const startDateForm = useForm<{ startDate: string }>({\n defaultValues: { startDate: employee?.jobs?.[0]?.hireDate ?? '' },\n mode: 'onSubmit',\n shouldFocusError: false,\n })\n\n const EmployeeFields = employeeDetails.form.Fields\n const HomeAddressFields = homeAddress.form.Fields\n const WorkAddressFields = workAddress.form.Fields\n\n const watchedSelfOnboarding = useWatch({\n control: employeeDetails.form.hookFormInternals.formMethods.control,\n name: 'selfOnboarding',\n })\n\n useEffect(() => {\n setSelfOnboardingActive(watchedSelfOnboarding)\n }, [watchedSelfOnboarding, setSelfOnboardingActive])\n\n const shouldShowHomeAddress = !watchedSelfOnboarding || completedSelfOnboarding\n const shouldShowSsnDob = !watchedSelfOnboarding || completedSelfOnboarding\n\n const activeForms = [\n employeeDetails,\n ...(shouldShowHomeAddress ? [homeAddress] : []),\n workAddress,\n startDateForm,\n ]\n\n const { handleSubmit, errorHandling } = composeSubmitHandler(activeForms, async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n onOnboardingStatusUpdated: status => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, status)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n const enteredStartDate = startDateForm.getValues('startDate')\n\n if (shouldShowHomeAddress) {\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n }\n\n const workResult = await workAddress.actions.onSubmit(\n {\n onWorkAddressCreated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, wa)\n },\n onWorkAddressUpdated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, wa)\n },\n },\n {\n employeeId: newEmployeeId,\n effectiveDate: isCreateMode ? enteredStartDate || undefined : undefined,\n },\n )\n if (!workResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...employeeResult.data,\n startDate: enteredStartDate,\n })\n })\n\n const isPending =\n employeeDetails.status.isPending || homeAddress.status.isPending || workAddress.status.isPending\n\n const watchedCourtesyWithholding =\n homeAddress.form.hookFormInternals.formMethods.watch('courtesyWithholding')\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n {isSelfOnboardingEnabled && EmployeeFields.SelfOnboarding && (\n <Components.Box>\n <EmployeeFields.SelfOnboarding\n label={t('selfOnboardingLabel')}\n description={t('selfOnboardingDescription')}\n formHookResult={employeeDetails}\n />\n </Components.Box>\n )}\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmployeeFields.FirstName\n label={t('firstName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmployeeFields.MiddleInitial\n label={t('middleInitial')}\n formHookResult={employeeDetails}\n />\n </Grid>\n <EmployeeFields.LastName\n label={t('lastName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n\n <SDKFormProvider formHookResult={workAddress}>\n <WorkAddressFields.Location\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n validationMessages={{ REQUIRED: t('validations.location', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <FormProvider {...startDateForm}>\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={t('validations.startDate')}\n />\n </FormProvider>\n\n <EmployeeFields.Email\n label={t('email')}\n description={t('emailDescription')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.email'),\n INVALID_EMAIL: t('validations.email'),\n }}\n />\n\n {shouldShowSsnDob && (\n <>\n <EmployeeFields.Ssn\n label={t('ssnLabel')}\n formHookResult={employeeDetails}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmployeeFields.DateOfBirth\n label={t('dobLabel')}\n formHookResult={employeeDetails}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </>\n )}\n\n {shouldShowHomeAddress && (\n <SDKFormProvider formHookResult={homeAddress}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">{tHome('desc')}</Components.Text>\n </Flex>\n\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeAddressFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeAddressFields.Street2 label={tHome('street2')} />\n <HomeAddressFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeAddressFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeAddressFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n <HomeAddressFields.CourtesyWithholding\n label={tHome('courtesyWithholdingLabel')}\n description={\n <>\n {tHome('courtesyWithholdingDescription')}\n <Trans\n t={tHome}\n i18nKey=\"learnMoreCta\"\n components={{\n LearnMoreLink: <Components.Link />,\n }}\n />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={tHome('withholdingTitle')} status=\"warning\">\n <Trans t={tHome} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </SDKFormProvider>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["checkHasCompletedSelfOnboarding","employee","EmployeeOnboardingStatus","computeOptionalFieldsToRequire","selfOnboardingActive","AdminProfile","companyId","employeeId","defaultValues","isSelfOnboardingEnabled","className","dictionary","onEvent","useI18n","useComponentDictionary","resolvedEmployeeId","setResolvedEmployeeId","useState","isCreateMode","createModeSelfOnboarding","setSelfOnboardingActive","optionalFieldsToRequire","useMemo","employeeDetailsDefaults","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddress","useCurrentWorkAddressForm","loadingErrorHandling","composeErrorHandler","BaseLayout","jsx","AdminProfileReady","t","useTranslation","tHome","tCommon","Components","useComponentContext","completedSelfOnboarding","startDateForm","useForm","EmployeeFields","HomeAddressFields","WorkAddressFields","watchedSelfOnboarding","useWatch","useEffect","shouldShowHomeAddress","shouldShowSsnDob","activeForms","handleSubmit","errorHandling","composeSubmitHandler","employeeResult","emp","componentEvents","status","newEmployeeId","enteredStartDate","homeResult","wa","isPending","watchedCourtesyWithholding","classNames","styles","jsxs","Form","Grid","Flex","SDKFormProvider","FormProvider","DatePickerField","Fragment","abbr","Trans","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"AdminProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/AdminProfile.tsx"],"sourcesContent":["import { useState, useMemo, useEffect } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport { useCurrentWorkAddressForm } from '../shared/useWorkAddressForm'\nimport type { UseEmployeeDetailsFormReady } from '../shared/useEmployeeDetailsForm'\nimport type { UseHomeAddressFormReady } from '../shared/useHomeAddressForm'\nimport type { UseWorkAddressFormReady } from '../shared/useWorkAddressForm'\nimport styles from './AdminProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout, DatePickerField, Flex } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus, type EventType } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nconst checkHasCompletedSelfOnboarding = (employee?: Employee) => {\n return (\n employee?.onboarded === true ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.ONBOARDING_COMPLETED ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW ||\n employee?.onboardingStatus === EmployeeOnboardingStatus.SELF_ONBOARDING_COMPLETED_BY_EMPLOYEE\n )\n}\n\nfunction computeOptionalFieldsToRequire(\n selfOnboardingActive: boolean,\n): EmployeeDetailsOptionalFieldsToRequire {\n if (selfOnboardingActive) {\n return {\n create: ['email'],\n update: ['firstName', 'lastName', 'email'],\n }\n }\n return {\n create: ['email', 'dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'email', 'dateOfBirth', 'ssn'],\n }\n}\n\n/** @internal */\nexport function AdminProfile({\n companyId,\n employeeId,\n defaultValues,\n isSelfOnboardingEnabled = true,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n const isCreateMode = !resolvedEmployeeId\n\n const createModeSelfOnboarding =\n isCreateMode && isSelfOnboardingEnabled && (defaultValues?.inviteEmployeeDefault ?? false)\n\n const [selfOnboardingActive, setSelfOnboardingActive] = useState(createModeSelfOnboarding)\n\n const optionalFieldsToRequire = useMemo(\n () => computeOptionalFieldsToRequire(selfOnboardingActive),\n [selfOnboardingActive],\n )\n\n const employeeDetailsDefaults = useMemo(\n () => ({\n ...defaultValues?.employee,\n ...(isCreateMode && { selfOnboarding: createModeSelfOnboarding }),\n }),\n [defaultValues, isCreateMode, createModeSelfOnboarding],\n )\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: true,\n optionalFieldsToRequire,\n defaultValues: employeeDetailsDefaults,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddress = useCurrentWorkAddressForm({\n companyId,\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n shouldFocusError: false,\n })\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddress.isLoading) {\n const loadingErrorHandling = composeErrorHandler([employeeDetails, homeAddress, workAddress])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n return (\n <AdminProfileReady\n employeeDetails={employeeDetails}\n homeAddress={homeAddress}\n workAddress={workAddress}\n isSelfOnboardingEnabled={isSelfOnboardingEnabled}\n isCreateMode={isCreateMode}\n employeeId={employeeId}\n setResolvedEmployeeId={setResolvedEmployeeId}\n setSelfOnboardingActive={setSelfOnboardingActive}\n onEvent={onEvent}\n className={className}\n />\n )\n}\n\ninterface AdminProfileReadyProps {\n employeeDetails: UseEmployeeDetailsFormReady\n homeAddress: UseHomeAddressFormReady\n workAddress: UseWorkAddressFormReady\n isSelfOnboardingEnabled: boolean\n isCreateMode: boolean\n employeeId?: string\n setResolvedEmployeeId: (id: string) => void\n setSelfOnboardingActive: (active: boolean) => void\n onEvent: (event: EventType, data?: unknown) => void\n className: string\n}\n\nfunction AdminProfileReady({\n employeeDetails,\n homeAddress,\n workAddress,\n isSelfOnboardingEnabled,\n isCreateMode,\n employeeId,\n setResolvedEmployeeId,\n setSelfOnboardingActive,\n onEvent,\n className,\n}: AdminProfileReadyProps) {\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const employee = employeeDetails.data.employee ?? undefined\n const completedSelfOnboarding = checkHasCompletedSelfOnboarding(employee)\n\n const startDateForm = useForm<{ startDate: string }>({\n defaultValues: { startDate: employee?.jobs?.[0]?.hireDate ?? '' },\n mode: 'onSubmit',\n shouldFocusError: false,\n })\n\n const EmployeeFields = employeeDetails.form.Fields\n const HomeAddressFields = homeAddress.form.Fields\n const WorkAddressFields = workAddress.form.Fields\n\n const watchedSelfOnboarding = useWatch({\n control: employeeDetails.form.hookFormInternals.formMethods.control,\n name: 'selfOnboarding',\n })\n\n useEffect(() => {\n setSelfOnboardingActive(watchedSelfOnboarding)\n }, [watchedSelfOnboarding, setSelfOnboardingActive])\n\n const shouldShowHomeAddress = !watchedSelfOnboarding || completedSelfOnboarding\n const shouldShowSsnDob = !watchedSelfOnboarding || completedSelfOnboarding\n\n const activeForms = [\n employeeDetails,\n ...(shouldShowHomeAddress ? [homeAddress] : []),\n workAddress,\n startDateForm,\n ]\n\n const { handleSubmit, errorHandling } = composeSubmitHandler(activeForms, async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n onOnboardingStatusUpdated: status => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, status)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n const enteredStartDate = startDateForm.getValues('startDate')\n\n if (shouldShowHomeAddress) {\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n }\n\n const workResult = await workAddress.actions.onSubmit(\n {\n onWorkAddressCreated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_CREATED, wa)\n },\n onWorkAddressUpdated: wa => {\n onEvent(componentEvents.EMPLOYEE_WORK_ADDRESS_UPDATED, wa)\n },\n },\n {\n employeeId: newEmployeeId,\n effectiveDate: isCreateMode ? enteredStartDate || undefined : undefined,\n },\n )\n if (!workResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, {\n ...employeeResult.data,\n startDate: enteredStartDate,\n })\n })\n\n const isPending =\n employeeDetails.status.isPending || homeAddress.status.isPending || workAddress.status.isPending\n\n const watchedCourtesyWithholding =\n homeAddress.form.hookFormInternals.formMethods.watch('courtesyWithholding')\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('description')}</Components.Text>\n </Flex>\n\n {isSelfOnboardingEnabled && EmployeeFields.SelfOnboarding && (\n <Components.Box>\n <EmployeeFields.SelfOnboarding\n label={t('selfOnboardingLabel')}\n description={t('selfOnboardingDescription')}\n formHookResult={employeeDetails}\n />\n </Components.Box>\n )}\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmployeeFields.FirstName\n label={t('firstName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmployeeFields.MiddleInitial\n label={t('middleInitial')}\n formHookResult={employeeDetails}\n />\n </Grid>\n <EmployeeFields.LastName\n label={t('lastName')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n\n <SDKFormProvider formHookResult={workAddress}>\n <WorkAddressFields.Location\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n validationMessages={{ REQUIRED: t('validations.location', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <FormProvider {...startDateForm}>\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n isRequired\n errorMessage={t('validations.startDate')}\n />\n </FormProvider>\n\n <EmployeeFields.Email\n label={t('email')}\n description={t('emailDescription')}\n formHookResult={employeeDetails}\n validationMessages={{\n REQUIRED: t('validations.email'),\n INVALID_EMAIL: t('validations.email'),\n }}\n />\n\n {shouldShowSsnDob && (\n <>\n <EmployeeFields.Ssn\n label={t('ssnLabel')}\n formHookResult={employeeDetails}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmployeeFields.DateOfBirth\n label={t('dobLabel')}\n formHookResult={employeeDetails}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </>\n )}\n\n {shouldShowHomeAddress && (\n <SDKFormProvider formHookResult={homeAddress}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text variant=\"supporting\">{tHome('desc')}</Components.Text>\n </Flex>\n\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeAddressFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeAddressFields.Street2 label={tHome('street2')} />\n <HomeAddressFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeAddressFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeAddressFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n <HomeAddressFields.CourtesyWithholding\n label={tHome('courtesyWithholdingLabel')}\n description={\n <>\n {tHome('courtesyWithholdingDescription')}\n <Trans\n t={tHome}\n i18nKey=\"learnMoreCta\"\n components={{\n LearnMoreLink: <Components.Link />,\n }}\n />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={tHome('withholdingTitle')} status=\"warning\">\n <Trans t={tHome} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </SDKFormProvider>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["checkHasCompletedSelfOnboarding","employee","EmployeeOnboardingStatus","computeOptionalFieldsToRequire","selfOnboardingActive","AdminProfile","companyId","employeeId","defaultValues","isSelfOnboardingEnabled","className","dictionary","onEvent","useI18n","useComponentDictionary","resolvedEmployeeId","setResolvedEmployeeId","useState","isCreateMode","createModeSelfOnboarding","setSelfOnboardingActive","optionalFieldsToRequire","useMemo","employeeDetailsDefaults","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddress","useCurrentWorkAddressForm","loadingErrorHandling","composeErrorHandler","BaseLayout","jsx","AdminProfileReady","t","useTranslation","tHome","tCommon","Components","useComponentContext","completedSelfOnboarding","startDateForm","useForm","EmployeeFields","HomeAddressFields","WorkAddressFields","watchedSelfOnboarding","useWatch","useEffect","shouldShowHomeAddress","shouldShowSsnDob","activeForms","handleSubmit","errorHandling","composeSubmitHandler","employeeResult","emp","componentEvents","status","newEmployeeId","enteredStartDate","homeResult","wa","isPending","watchedCourtesyWithholding","classNames","styles","jsxs","Form","Grid","Flex","SDKFormProvider","FormProvider","DatePickerField","Fragment","abbr","Trans","ActionsLayout"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
2
  import { useState as C } from "react";
3
3
  import { useTranslation as y } from "react-i18next";
4
4
  import U from "classnames";
5
- import { useEmployeeAddressesGetWorkAddresses as k } from "@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGetWorkAddresses";
5
+ import { useEmployeeAddressesGetWorkAddresses as k } from "@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses";
6
6
  import { useEmployeeDetailsForm as w } from "../shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js";
7
7
  import { useCurrentHomeAddressForm as x } from "../shared/useHomeAddressForm/useCurrentHomeAddressForm.js";
8
8
  import b from "./EmployeeProfile.module.scss.js";
@@ -1 +1 @@
1
- {"version":3,"file":"EmployeeProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/EmployeeProfile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api-v-2026-02-01/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport styles from './EmployeeProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { getStreet, getCityStateZip } from '@/helpers/formattedStrings'\n\nconst SELF_OPTIONAL_FIELDS: EmployeeDetailsOptionalFieldsToRequire = {\n create: ['dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'dateOfBirth', 'ssn'],\n}\n\n/** @internal */\nexport function EmployeeProfile({\n companyId,\n employeeId,\n defaultValues,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: false,\n optionalFieldsToRequire: SELF_OPTIONAL_FIELDS,\n defaultValues: defaultValues?.employee,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: resolvedEmployeeId ?? '' },\n { enabled: !!resolvedEmployeeId },\n )\n const workAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n const activeWorkAddress = workAddresses?.find(address => address.active)\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddressesQuery.isLoading) {\n const loadingErrorHandling = composeErrorHandler([\n employeeDetails,\n homeAddress,\n workAddressesQuery,\n ])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n const EmpFields = employeeDetails.form.Fields\n const HomeFields = homeAddress.form.Fields\n\n const submitResult = composeSubmitHandler([employeeDetails, homeAddress], async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, employeeResult.data)\n })\n\n const errorHandling = composeErrorHandler([\n submitResult,\n { errorHandling: homeAddress.errorHandling },\n workAddressesQuery,\n ])\n\n const isPending = employeeDetails.status.isPending || homeAddress.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <div>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>{t('description')}</Components.Text>\n </div>\n\n <SDKFormProvider formHookResult={employeeDetails}>\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmpFields.FirstName\n label={t('firstName')}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmpFields.MiddleInitial label={t('middleInitial')} />\n </Grid>\n <EmpFields.LastName\n label={t('lastName')}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n <EmpFields.Ssn\n label={t('ssnLabel')}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmpFields.DateOfBirth\n label={t('dobLabel')}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <SDKFormProvider formHookResult={homeAddress}>\n <div>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text>{tHome('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeFields.Street2 label={tHome('street2')} />\n <HomeFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n </SDKFormProvider>\n\n {activeWorkAddress && (\n <section>\n <Components.Heading as=\"h2\">{t('workAddressSectionTitle')}</Components.Heading>\n <Components.Text>{t('workAddressSectionDescription')}</Components.Text>\n <address className={styles.address}>\n <Components.Text>{getStreet(activeWorkAddress)}</Components.Text>\n <Components.Text>{getCityStateZip(activeWorkAddress)}</Components.Text>\n </address>\n </section>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["SELF_OPTIONAL_FIELDS","EmployeeProfile","companyId","employeeId","defaultValues","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","tHome","tCommon","Components","useComponentContext","resolvedEmployeeId","setResolvedEmployeeId","useState","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","activeWorkAddress","address","loadingErrorHandling","composeErrorHandler","BaseLayout","EmpFields","HomeFields","submitResult","composeSubmitHandler","employeeResult","emp","componentEvents","newEmployeeId","homeResult","errorHandling","isPending","classNames","styles","jsx","Form","jsxs","Grid","SDKFormProvider","abbr","getStreet","getCityStateZip","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"EmployeeProfile.js","sources":["../../../../../src/components/Employee/Profile/onboarding/EmployeeProfile.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { useEmployeeAddressesGetWorkAddresses } from '@gusto/embedded-api/react-query/employeeAddressesGetWorkAddresses'\nimport { useEmployeeDetailsForm } from '../shared/useEmployeeDetailsForm'\nimport type { EmployeeDetailsOptionalFieldsToRequire } from '../shared/useEmployeeDetailsForm'\nimport { useCurrentHomeAddressForm } from '../shared/useHomeAddressForm'\nimport styles from './EmployeeProfile.module.scss'\nimport type { ProfileProps } from './Profile'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { composeSubmitHandler } from '@/partner-hook-utils/form/composeSubmitHandler'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { Grid } from '@/components/Common/Grid/Grid'\nimport { ActionsLayout } from '@/components/Common'\nimport { Form } from '@/components/Common/Form'\nimport { BaseLayout } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport { getStreet, getCityStateZip } from '@/helpers/formattedStrings'\n\nconst SELF_OPTIONAL_FIELDS: EmployeeDetailsOptionalFieldsToRequire = {\n create: ['dateOfBirth', 'ssn'],\n update: ['firstName', 'lastName', 'dateOfBirth', 'ssn'],\n}\n\n/** @internal */\nexport function EmployeeProfile({\n companyId,\n employeeId,\n defaultValues,\n className = '',\n dictionary,\n onEvent,\n}: ProfileProps) {\n useI18n('Employee.Profile')\n useI18n('Employee.HomeAddress')\n useComponentDictionary('Employee.Profile', dictionary)\n const { t } = useTranslation('Employee.Profile')\n const { t: tHome } = useTranslation('Employee.HomeAddress')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n\n const [resolvedEmployeeId, setResolvedEmployeeId] = useState(employeeId)\n\n const employeeDetails = useEmployeeDetailsForm({\n companyId,\n employeeId: resolvedEmployeeId,\n withSelfOnboardingField: false,\n optionalFieldsToRequire: SELF_OPTIONAL_FIELDS,\n defaultValues: defaultValues?.employee,\n shouldFocusError: false,\n })\n\n const homeAddress = useCurrentHomeAddressForm({\n employeeId: resolvedEmployeeId ?? '',\n withEffectiveDateField: false,\n defaultValues: {\n street1: defaultValues?.homeAddress?.street1,\n street2: defaultValues?.homeAddress?.street2,\n city: defaultValues?.homeAddress?.city,\n state: defaultValues?.homeAddress?.state,\n zip: defaultValues?.homeAddress?.zip,\n },\n shouldFocusError: false,\n })\n\n const workAddressesQuery = useEmployeeAddressesGetWorkAddresses(\n { employeeId: resolvedEmployeeId ?? '' },\n { enabled: !!resolvedEmployeeId },\n )\n const workAddresses = workAddressesQuery.data?.employeeWorkAddressesList\n const activeWorkAddress = workAddresses?.find(address => address.active)\n\n if (employeeDetails.isLoading || homeAddress.isLoading || workAddressesQuery.isLoading) {\n const loadingErrorHandling = composeErrorHandler([\n employeeDetails,\n homeAddress,\n workAddressesQuery,\n ])\n return <BaseLayout isLoading error={loadingErrorHandling.errors} />\n }\n\n const EmpFields = employeeDetails.form.Fields\n const HomeFields = homeAddress.form.Fields\n\n const submitResult = composeSubmitHandler([employeeDetails, homeAddress], async () => {\n const employeeResult = await employeeDetails.actions.onSubmit({\n onEmployeeCreated: emp => {\n onEvent(componentEvents.EMPLOYEE_CREATED, emp)\n },\n onEmployeeUpdated: emp => {\n onEvent(componentEvents.EMPLOYEE_UPDATED, emp)\n },\n })\n if (!employeeResult) return\n\n const newEmployeeId = employeeResult.data.uuid\n\n const homeResult = await homeAddress.actions.onSubmit({\n employeeId: newEmployeeId,\n })\n if (!homeResult) {\n if (!employeeId) setResolvedEmployeeId(newEmployeeId)\n return\n }\n if (homeResult.mode === 'create') {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_CREATED, homeResult.data)\n } else {\n onEvent(componentEvents.EMPLOYEE_HOME_ADDRESS_UPDATED, homeResult.data)\n }\n\n onEvent(componentEvents.EMPLOYEE_PROFILE_DONE, employeeResult.data)\n })\n\n const errorHandling = composeErrorHandler([\n submitResult,\n { errorHandling: homeAddress.errorHandling },\n workAddressesQuery,\n ])\n\n const isPending = employeeDetails.status.isPending || homeAddress.status.isPending\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={errorHandling.errors}>\n <Form onSubmit={submitResult.handleSubmit}>\n <Grid gridTemplateColumns=\"1fr\" gap={24}>\n <div>\n <Components.Heading as=\"h2\">{t('title')}</Components.Heading>\n <Components.Text>{t('description')}</Components.Text>\n </div>\n\n <SDKFormProvider formHookResult={employeeDetails}>\n <Grid\n gap={{ base: 20, small: 8 }}\n gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}\n >\n <EmpFields.FirstName\n label={t('firstName')}\n validationMessages={{\n REQUIRED: t('validations.firstName'),\n INVALID_NAME: t('validations.firstName'),\n }}\n />\n <EmpFields.MiddleInitial label={t('middleInitial')} />\n </Grid>\n <EmpFields.LastName\n label={t('lastName')}\n validationMessages={{\n REQUIRED: t('validations.lastName'),\n INVALID_NAME: t('validations.lastName'),\n }}\n />\n <EmpFields.Ssn\n label={t('ssnLabel')}\n validationMessages={{\n INVALID_SSN: t('validations.ssn', { ns: 'common' }),\n REQUIRED: t('validations.ssnRequired', { ns: 'common' }),\n }}\n />\n <EmpFields.DateOfBirth\n label={t('dobLabel')}\n validationMessages={{ REQUIRED: t('validations.dob', { ns: 'common' }) }}\n />\n </SDKFormProvider>\n\n <SDKFormProvider formHookResult={homeAddress}>\n <div>\n <Components.Heading as=\"h2\">{tHome('formTitle')}</Components.Heading>\n <Components.Text>{tHome('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <HomeFields.Street1\n label={tHome('street1')}\n validationMessages={{ REQUIRED: tHome('validations.street1') }}\n />\n <HomeFields.Street2 label={tHome('street2')} />\n <HomeFields.City\n label={tHome('city')}\n validationMessages={{ REQUIRED: tHome('validations.city') }}\n />\n <HomeFields.State\n label={tHome('state')}\n placeholder={tHome('statePlaceholder')}\n validationMessages={{ REQUIRED: tHome('validations.state') }}\n getOptionLabel={(abbr: string) =>\n tCommon(`statesHash.${abbr}`, { defaultValue: abbr })\n }\n />\n <HomeFields.Zip\n label={tHome('zip')}\n validationMessages={{\n REQUIRED: tHome('validations.zip'),\n INVALID_ZIP: tHome('validations.zip'),\n }}\n />\n </Grid>\n </SDKFormProvider>\n\n {activeWorkAddress && (\n <section>\n <Components.Heading as=\"h2\">{t('workAddressSectionTitle')}</Components.Heading>\n <Components.Text>{t('workAddressSectionDescription')}</Components.Text>\n <address className={styles.address}>\n <Components.Text>{getStreet(activeWorkAddress)}</Components.Text>\n <Components.Text>{getCityStateZip(activeWorkAddress)}</Components.Text>\n </address>\n </section>\n )}\n </Grid>\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('submitCta')}\n </Components.Button>\n </ActionsLayout>\n </Form>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["SELF_OPTIONAL_FIELDS","EmployeeProfile","companyId","employeeId","defaultValues","className","dictionary","onEvent","useI18n","useComponentDictionary","t","useTranslation","tHome","tCommon","Components","useComponentContext","resolvedEmployeeId","setResolvedEmployeeId","useState","employeeDetails","useEmployeeDetailsForm","homeAddress","useCurrentHomeAddressForm","workAddressesQuery","useEmployeeAddressesGetWorkAddresses","activeWorkAddress","address","loadingErrorHandling","composeErrorHandler","BaseLayout","EmpFields","HomeFields","submitResult","composeSubmitHandler","employeeResult","emp","componentEvents","newEmployeeId","homeResult","errorHandling","isPending","classNames","styles","jsx","Form","jsxs","Grid","SDKFormProvider","abbr","getStreet","getCityStateZip","ActionsLayout"],"mappings":"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"}
@@ -25,7 +25,7 @@ export type EmployeeDetailsErrorCode = (typeof EmployeeDetailsErrorCodes)[keyof
25
25
  *
26
26
  * @public
27
27
  */
28
- export type EmployeeDetailsField = "ssn" | "email" | "firstName" | "lastName" | "middleInitial" | "dateOfBirth";
28
+ export type EmployeeDetailsField = "dateOfBirth" | "email" | "firstName" | "lastName" | "middleInitial" | "ssn";
29
29
  /**
30
30
  * Shape of the values managed by the employee details form.
31
31
  *
@@ -41,7 +41,7 @@ export type EmployeeDetailsFormOutputs = EmployeeDetailsFormData;
41
41
  *
42
42
  * @public
43
43
  */
44
- export type EmployeeDetailsOptionalFieldsToRequire = { create?: ("ssn" | "email" | "middleInitial" | "dateOfBirth")[] | undefined; update?: ("ssn" | "email" | "firstName" | "lastName" | "middleInitial" | "dateOfBirth")[] | undefined; };
44
+ export type EmployeeDetailsOptionalFieldsToRequire = { create?: ("dateOfBirth" | "email" | "middleInitial" | "ssn")[] | undefined; update?: ("dateOfBirth" | "email" | "firstName" | "lastName" | "middleInitial" | "ssn")[] | undefined; };
45
45
  /** @internal */
46
46
  interface EmployeeDetailsSchemaOptions {
47
47
  mode?: 'create' | 'update';
@@ -1,6 +1,6 @@
1
1
  import { ComponentType } from 'react';
2
2
  import { UseFormProps } from 'react-hook-form';
3
- import { Employee } from '@gusto/embedded-api-v-2026-02-01/models/components/employee';
3
+ import { Employee } from '@gusto/embedded-api/models/components/employee';
4
4
  import { EmployeeDetailsOptionalFieldsToRequire, EmployeeDetailsFormData } from './employeeDetailsSchema';
5
5
  import { FirstNameFieldProps, MiddleInitialFieldProps, LastNameFieldProps, EmailFieldProps, DateOfBirthFieldProps, SsnFieldProps, SelfOnboardingFieldProps } from './fields';
6
6
  import { BaseFormHookReady, FieldMetadata, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
@@ -1,11 +1,11 @@
1
1
  import { useMemo as k } from "react";
2
2
  import { useForm as x } from "react-hook-form";
3
3
  import { zodResolver as K } from "@hookform/resolvers/zod";
4
- import { useEmployeesGet as Q } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesGet";
5
- import { useEmployeesCreateMutation as j } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesCreate";
6
- import { useEmployeesUpdateMutation as J } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdate";
7
- import { useEmployeesUpdateOnboardingStatusMutation as X } from "@gusto/embedded-api-v-2026-02-01/react-query/employeesUpdateOnboardingStatus";
8
- import { RFCDate as Z } from "@gusto/embedded-api-v-2026-02-01/types/rfcdate";
4
+ import { useEmployeesGet as Q } from "@gusto/embedded-api/react-query/employeesGet";
5
+ import { useEmployeesCreateMutation as j } from "@gusto/embedded-api/react-query/employeesCreate";
6
+ import { useEmployeesUpdateMutation as J } from "@gusto/embedded-api/react-query/employeesUpdate";
7
+ import { useEmployeesUpdateOnboardingStatusMutation as X } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
8
+ import { RFCDate as Z } from "@gusto/embedded-api/types/rfcdate";
9
9
  import { createEmployeeDetailsSchema as $ } from "./employeeDetailsSchema.js";
10
10
  import { SelfOnboardingField as ee, SsnField as te, DateOfBirthField as oe, EmailField as ie, LastNameField as ae, MiddleInitialField as ne, FirstNameField as se } from "./fields.js";
11
11
  import { normalizeToISOString as re } from "../../../../../helpers/dateFormatting.js";