@gusto/embedded-react-sdk 0.44.2 → 0.45.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 (593) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/components/Common/DetailViewLayout/DetailViewLayout.js +7 -7
  3. package/dist/components/Common/DetailViewLayout/DetailViewLayout.js.map +1 -1
  4. package/dist/components/Common/UI/Alert/Alert.js +24 -23
  5. package/dist/components/Common/UI/Alert/Alert.js.map +1 -1
  6. package/dist/components/Common/UI/Alert/Alert.module.scss.js +16 -14
  7. package/dist/components/Common/UI/Alert/Alert.module.scss.js.map +1 -1
  8. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +8 -0
  9. package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +38 -38
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -20
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  14. package/dist/components/Company/AssignSignatory/Head.js +12 -9
  15. package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +25 -25
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  18. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -20
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  20. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -22
  21. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  22. package/dist/components/Company/BankAccount/BankAccountForm/Head.js +11 -8
  23. package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
  24. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -20
  25. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  26. package/dist/components/Company/BankAccount/BankAccountList/Head.js +44 -39
  27. package/dist/components/Company/BankAccount/BankAccountList/Head.js.map +1 -1
  28. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -20
  29. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  30. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +26 -26
  31. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  32. package/dist/components/Company/FederalTaxes/FederalTaxes.js +9 -9
  33. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  34. package/dist/components/Company/FederalTaxes/Head.js +7 -6
  35. package/dist/components/Company/FederalTaxes/Head.js.map +1 -1
  36. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -28
  37. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  38. package/dist/components/Company/Industry/Context.js +7 -23
  39. package/dist/components/Company/Industry/Context.js.map +1 -1
  40. package/dist/components/Company/Industry/Head.js +10 -9
  41. package/dist/components/Company/Industry/Head.js.map +1 -1
  42. package/dist/components/Company/Industry/IndustrySelect.js +22 -19
  43. package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
  44. package/dist/components/Company/Locations/LocationForm/Head.js +9 -8
  45. package/dist/components/Company/Locations/LocationForm/Head.js.map +1 -1
  46. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -20
  47. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  48. package/dist/components/Company/Locations/LocationsList/Head.js +11 -10
  49. package/dist/components/Company/Locations/LocationsList/Head.js.map +1 -1
  50. package/dist/components/Company/Locations/LocationsList/LocationsList.js +11 -11
  51. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  52. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -20
  53. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  54. package/dist/components/Company/OnboardingOverview/context.js +4 -20
  55. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  56. package/dist/components/Company/PaySchedule/PayScheduleList.js +18 -18
  57. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
  58. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -20
  59. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  60. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -20
  61. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  62. package/dist/components/Contractor/Address/useAddress.js +6 -22
  63. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  64. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +1 -1
  65. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  66. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +7 -7
  67. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  68. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -2
  69. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  70. package/dist/components/Contractor/Profile/useContractorProfile.js +42 -52
  71. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  72. package/dist/components/Employee/Compensation/index.d.ts +1 -1
  73. package/dist/components/Employee/Compensation/{Compensation.d.ts → onboarding/Compensation.d.ts} +3 -3
  74. package/dist/components/Employee/Compensation/onboarding/Compensation.js +88 -0
  75. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -0
  76. package/dist/components/Employee/Compensation/{CompensationFlowComponents.d.ts → onboarding/CompensationFlowComponents.d.ts} +3 -3
  77. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js +59 -0
  78. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -0
  79. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +21 -0
  80. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +249 -0
  81. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -0
  82. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.module.scss.js +8 -0
  83. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.module.scss.js.map +1 -0
  84. package/dist/components/Employee/Compensation/onboarding/EditCompensation/index.d.ts +3 -0
  85. package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsList.d.ts +1 -1
  86. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js +43 -0
  87. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -0
  88. package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsListPresentation.js +10 -10
  89. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -0
  90. package/dist/components/Employee/Compensation/{compensationStateMachine.js → onboarding/compensationStateMachine.js} +1 -1
  91. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js.map +1 -0
  92. package/dist/components/Employee/Compensation/onboarding/index.d.ts +2 -0
  93. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +9 -0
  94. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js +10 -0
  95. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -0
  96. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +7 -0
  97. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +41 -35
  98. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
  99. package/dist/components/Employee/Compensation/shared/useCompensationForm/index.d.ts +0 -2
  100. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +24 -3
  101. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +193 -181
  102. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  103. package/dist/components/Employee/Compensation/shared/useJobForm/index.d.ts +0 -2
  104. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +8 -0
  105. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js +14 -13
  106. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js.map +1 -1
  107. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +19 -2
  108. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +133 -130
  109. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  110. package/dist/components/Employee/Dashboard/BasicDetailsView.d.ts +13 -0
  111. package/dist/components/Employee/Dashboard/BasicDetailsView.js +87 -65
  112. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  113. package/dist/components/Employee/Dashboard/CompensationCard.d.ts +13 -0
  114. package/dist/components/Employee/Dashboard/Dashboard.js +89 -109
  115. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  116. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +15 -0
  117. package/dist/components/Employee/Dashboard/DashboardComponents.js +120 -25
  118. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  119. package/dist/components/Employee/Dashboard/DocumentsView.d.ts +11 -0
  120. package/dist/components/Employee/Dashboard/DocumentsView.js +24 -17
  121. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  122. package/dist/components/Employee/Dashboard/JobAndPayView.d.ts +9 -17
  123. package/dist/components/Employee/Dashboard/JobAndPayView.js +495 -114
  124. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  125. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.d.ts +10 -0
  126. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.js +64 -0
  127. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.js.map +1 -0
  128. package/dist/components/Employee/Dashboard/TaxesView.d.ts +13 -0
  129. package/dist/components/Employee/Dashboard/TaxesView.js +82 -60
  130. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  131. package/dist/components/Employee/Dashboard/dashboardStateMachine.d.ts +7 -0
  132. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +227 -40
  133. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  134. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +50 -0
  135. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +57 -0
  136. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -0
  137. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.test.d.ts +1 -0
  138. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js +7 -4
  139. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js.map +1 -1
  140. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +14 -8
  141. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +60 -36
  142. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
  143. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.d.ts +8 -0
  144. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.js +61 -0
  145. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.js.map +1 -0
  146. package/dist/components/Employee/Deductions/Deductions.d.ts +2 -8
  147. package/dist/components/Employee/Deductions/Deductions.js +25 -52
  148. package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
  149. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.d.ts +9 -0
  150. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.js +137 -0
  151. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.js.map +1 -0
  152. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.d.ts +9 -5
  153. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +97 -94
  154. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  155. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.d.ts +18 -0
  156. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +137 -0
  157. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -0
  158. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.d.ts +10 -5
  159. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +57 -77
  160. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
  161. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.d.ts +5 -5
  162. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +29 -39
  163. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  164. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js +8 -6
  165. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js.map +1 -1
  166. package/dist/components/Employee/Deductions/{DeductionsComponents.d.ts → deductionsContextualComponents.d.ts} +7 -8
  167. package/dist/components/Employee/Deductions/deductionsContextualComponents.js +74 -0
  168. package/dist/components/Employee/Deductions/deductionsContextualComponents.js.map +1 -0
  169. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +7 -0
  170. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js +31 -0
  171. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -0
  172. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +7 -0
  173. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js +10 -0
  174. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -0
  175. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.test.d.ts +1 -0
  176. package/dist/components/Employee/Deductions/shared/index.d.ts +7 -0
  177. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +63 -0
  178. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +64 -0
  179. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -0
  180. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +36 -0
  181. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +39 -0
  182. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -0
  183. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/index.d.ts +4 -0
  184. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +62 -0
  185. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +208 -0
  186. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -0
  187. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +63 -0
  188. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js +52 -0
  189. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -0
  190. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +25 -0
  191. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +36 -0
  192. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -0
  193. package/dist/components/Employee/Deductions/shared/useDeductionForm/index.d.ts +4 -0
  194. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +64 -0
  195. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js +203 -0
  196. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -0
  197. package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +22 -0
  198. package/dist/components/Employee/Deductions/shared/useDeductionsList.js +50 -0
  199. package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -0
  200. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +13 -0
  201. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js +17 -0
  202. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -0
  203. package/dist/components/Employee/Deductions/stateMachine.d.ts +4 -5
  204. package/dist/components/Employee/Deductions/stateMachine.js +67 -89
  205. package/dist/components/Employee/Deductions/stateMachine.js.map +1 -1
  206. package/dist/components/Employee/Documents/management/DocumentManager.d.ts +6 -0
  207. package/dist/components/Employee/Documents/management/DocumentManager.js +60 -0
  208. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -0
  209. package/dist/components/Employee/Documents/management/index.d.ts +3 -0
  210. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Actions.js +3 -3
  211. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -0
  212. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/DocumentList.d.ts +1 -1
  213. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/DocumentList.js +5 -5
  214. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -0
  215. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Head.js +1 -1
  216. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Head.js.map +1 -0
  217. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/List.js +3 -3
  218. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -0
  219. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +8 -0
  220. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -0
  221. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentSigner.d.ts +1 -1
  222. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentSigner.js +5 -5
  223. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -0
  224. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibility.d.ts +1 -1
  225. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibility.js +4 -4
  226. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -0
  227. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilityPresentation.js +11 -11
  228. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -0
  229. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -0
  230. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts +1 -0
  231. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/countries.js.map +1 -0
  232. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.d.ts +1 -1
  233. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.js +13 -13
  234. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -0
  235. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/documentSignerStateMachine.d.ts +2 -2
  236. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/documentSignerStateMachine.js +8 -8
  237. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -0
  238. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/stateMachine.js +1 -1
  239. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -0
  240. package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocuments.d.ts +3 -3
  241. package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocuments.js +6 -6
  242. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -0
  243. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +117 -0
  244. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -0
  245. package/dist/components/Employee/{DocumentSigner → Documents/shared}/SignatureForm/SignatureForm.d.ts +1 -1
  246. package/dist/components/Employee/{DocumentSigner → Documents/shared}/SignatureForm/SignatureForm.js +14 -14
  247. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -0
  248. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js.map +1 -0
  249. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -0
  250. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -0
  251. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +89 -82
  252. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
  253. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +37 -35
  254. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  255. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -0
  256. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js +14 -8
  257. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  258. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js +38 -39
  259. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  260. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +29 -27
  261. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  262. package/dist/components/Employee/PaymentMethod/index.d.ts +1 -1
  263. package/dist/components/Employee/PaymentMethod/management/ListView.d.ts +8 -0
  264. package/dist/components/Employee/PaymentMethod/management/ListView.js +138 -0
  265. package/dist/components/Employee/PaymentMethod/management/ListView.js.map +1 -0
  266. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +11 -0
  267. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js +49 -0
  268. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -0
  269. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.d.ts +8 -0
  270. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js +23 -0
  271. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js.map +1 -0
  272. package/dist/components/Employee/PaymentMethod/management/index.d.ts +4 -0
  273. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.d.ts +5 -0
  274. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.js +75 -0
  275. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.js.map +1 -0
  276. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.d.ts +8 -0
  277. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +66 -0
  278. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -0
  279. package/dist/components/Employee/PaymentMethod/onboarding/ListView.d.ts +9 -0
  280. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +168 -0
  281. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -0
  282. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +11 -0
  283. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js +44 -0
  284. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -0
  285. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.d.ts +8 -0
  286. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js +23 -0
  287. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js.map +1 -0
  288. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.d.ts +8 -0
  289. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.js +97 -0
  290. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.js.map +1 -0
  291. package/dist/components/Employee/PaymentMethod/onboarding/index.d.ts +2 -0
  292. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.d.ts +5 -0
  293. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.js +75 -0
  294. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.js.map +1 -0
  295. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.d.ts +9 -0
  296. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.js +31 -0
  297. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.js.map +1 -0
  298. package/dist/components/Employee/PaymentMethod/shared/index.d.ts +7 -0
  299. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.d.ts +15 -0
  300. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +22 -0
  301. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js.map +1 -0
  302. package/dist/components/Employee/PaymentMethod/shared/useBankForm/index.d.ts +5 -0
  303. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +37 -0
  304. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js +105 -0
  305. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -0
  306. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +39 -0
  307. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.js +26 -0
  308. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.js.map +1 -0
  309. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.d.ts +13 -0
  310. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.js +19 -0
  311. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.js.map +1 -0
  312. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.d.ts +6 -0
  313. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.js +9 -0
  314. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.js.map +1 -0
  315. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/index.d.ts +5 -0
  316. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +31 -0
  317. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js +94 -0
  318. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -0
  319. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.d.ts +31 -0
  320. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.js +22 -0
  321. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.js.map +1 -0
  322. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +20 -0
  323. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js +68 -0
  324. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -0
  325. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.d.ts +6 -0
  326. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.js +9 -0
  327. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.js.map +1 -0
  328. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/index.d.ts +6 -0
  329. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +48 -0
  330. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +46 -0
  331. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -0
  332. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +65 -0
  333. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js +209 -0
  334. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -0
  335. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +53 -0
  336. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js +93 -0
  337. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js.map +1 -0
  338. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +88 -87
  339. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  340. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -2
  341. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  342. package/dist/components/Employee/Taxes/FederalForm.js +27 -26
  343. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  344. package/dist/components/Employee/Taxes/FederalHead.js +13 -10
  345. package/dist/components/Employee/Taxes/FederalHead.js.map +1 -1
  346. package/dist/components/Employee/Taxes/StateForm.js +17 -14
  347. package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
  348. package/dist/components/Employee/Taxes/Taxes.js +75 -69
  349. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  350. package/dist/components/Employee/Taxes/useTaxes.js +4 -20
  351. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  352. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +26 -26
  353. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  354. package/dist/components/Employee/exports/employeeManagement.d.ts +4 -1
  355. package/dist/components/Employee/exports/employeeManagement.js +22 -18
  356. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  357. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -3
  358. package/dist/components/Employee/exports/employeeOnboarding.js +4 -4
  359. package/dist/components/Employee/index.d.ts +4 -4
  360. package/dist/components/Employee/index.js +5 -5
  361. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +26 -34
  362. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  363. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +35 -35
  364. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  365. package/dist/components/Payroll/usePreparedPayrollData.js +22 -36
  366. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  367. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +84 -82
  368. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  369. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  370. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +49 -48
  371. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  372. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +1 -0
  373. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +39 -37
  374. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  375. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js +31 -31
  376. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  377. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +1 -0
  378. package/dist/components/TimeOff/PolicyList/PolicyList.js +27 -27
  379. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  380. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +50 -50
  381. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  382. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +1 -0
  383. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +66 -41
  384. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  385. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  386. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +59 -48
  387. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  388. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +3 -0
  389. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +34 -33
  390. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  391. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +3 -0
  392. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +69 -61
  393. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  394. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +119 -75
  395. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  396. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +72 -61
  397. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  398. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  399. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +103 -84
  400. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  401. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  402. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +51 -49
  403. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  404. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  405. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +78 -59
  406. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  407. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +8 -0
  408. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js.map +1 -0
  409. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +6 -2
  410. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +209 -154
  411. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  412. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +3 -1
  413. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +36 -34
  414. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  415. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +136 -134
  416. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  417. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.module.scss.js +6 -6
  418. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  419. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +63 -65
  420. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  421. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +1 -0
  422. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +50 -49
  423. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  424. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.module.scss.js +4 -4
  425. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  426. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +66 -55
  427. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  428. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +1 -0
  429. package/dist/contexts/ApiProvider/ApiProvider.js +33 -39
  430. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  431. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +17 -0
  432. package/dist/contexts/ApiProvider/createSdkQueryClient.js +14 -0
  433. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -0
  434. package/dist/helpers/formattedStrings.d.ts +12 -0
  435. package/dist/helpers/formattedStrings.js +55 -33
  436. package/dist/helpers/formattedStrings.js.map +1 -1
  437. package/dist/hooks/useClientPagination/useClientPagination.d.ts +44 -0
  438. package/dist/hooks/useClientPagination/useClientPagination.js +69 -0
  439. package/dist/hooks/useClientPagination/useClientPagination.js.map +1 -0
  440. package/dist/hooks/useClientPagination/useClientPagination.test.d.ts +1 -0
  441. package/dist/i18n/I18n.js +6 -5
  442. package/dist/i18n/I18n.js.map +1 -1
  443. package/dist/i18n/en/Company.PaySchedule.json.js +22 -20
  444. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  445. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js +8 -6
  446. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js.map +1 -1
  447. package/dist/i18n/en/Company.TimeOff.HolidayPolicy.json.js +9 -9
  448. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js +6 -4
  449. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js.map +1 -1
  450. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +17 -15
  451. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  452. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js +10 -8
  453. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js.map +1 -1
  454. package/dist/i18n/en/Employee.Dashboard.json.js +16 -12
  455. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  456. package/dist/i18n/en/Employee.Deductions.json.js +104 -76
  457. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  458. package/dist/i18n/en/Employee.DocumentManager.json.js +12 -0
  459. package/dist/i18n/en/Employee.DocumentManager.json.js.map +1 -0
  460. package/dist/i18n/en/Employee.PaymentMethod.json.js +76 -64
  461. package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
  462. package/dist/i18n/en/common.json.d.ts +7 -0
  463. package/dist/i18n/en/common.json.js +19 -17
  464. package/dist/i18n/en/common.json.js.map +1 -1
  465. package/dist/index.d.ts +16 -6
  466. package/dist/index.js +138 -112
  467. package/dist/index.js.map +1 -1
  468. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +2 -1
  469. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +20 -18
  470. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  471. package/dist/shared/constants.d.ts +8 -2
  472. package/dist/shared/constants.js +11 -8
  473. package/dist/shared/constants.js.map +1 -1
  474. package/dist/style.css +1 -1
  475. package/dist/test-utils/assertions.d.ts +16 -0
  476. package/dist/types/i18next.d.ts +140 -4
  477. package/dist/types/sdkError.js +58 -47
  478. package/dist/types/sdkError.js.map +1 -1
  479. package/docs/reference/endpoint-inventory.json +980 -1170
  480. package/package.json +29 -21
  481. package/dist/components/Employee/Compensation/Compensation.js +0 -87
  482. package/dist/components/Employee/Compensation/Compensation.js.map +0 -1
  483. package/dist/components/Employee/Compensation/CompensationFlowComponents.js +0 -61
  484. package/dist/components/Employee/Compensation/CompensationFlowComponents.js.map +0 -1
  485. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.d.ts +0 -14
  486. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js +0 -128
  487. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js.map +0 -1
  488. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.d.ts +0 -17
  489. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js +0 -224
  490. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js.map +0 -1
  491. package/dist/components/Employee/Compensation/EditCompensation/index.d.ts +0 -5
  492. package/dist/components/Employee/Compensation/JobsList/JobsList.js +0 -47
  493. package/dist/components/Employee/Compensation/JobsList/JobsList.js.map +0 -1
  494. package/dist/components/Employee/Compensation/JobsList/JobsListPresentation.js.map +0 -1
  495. package/dist/components/Employee/Compensation/compensationSchema.d.ts +0 -29
  496. package/dist/components/Employee/Compensation/compensationSchema.js +0 -63
  497. package/dist/components/Employee/Compensation/compensationSchema.js.map +0 -1
  498. package/dist/components/Employee/Compensation/compensationStateMachine.js.map +0 -1
  499. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.d.ts +0 -15
  500. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js +0 -27
  501. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js.map +0 -1
  502. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.d.ts +0 -13
  503. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js +0 -26
  504. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js.map +0 -1
  505. package/dist/components/Employee/Deductions/Actions.d.ts +0 -1
  506. package/dist/components/Employee/Deductions/DeductionsComponents.js +0 -31
  507. package/dist/components/Employee/Deductions/DeductionsComponents.js.map +0 -1
  508. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +0 -39
  509. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +0 -237
  510. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +0 -1
  511. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +0 -22
  512. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +0 -162
  513. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +0 -1
  514. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +0 -34
  515. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +0 -168
  516. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +0 -1
  517. package/dist/components/Employee/Deductions/Head.d.ts +0 -1
  518. package/dist/components/Employee/Deductions/useDeductions.d.ts +0 -30
  519. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +0 -1
  520. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +0 -1
  521. package/dist/components/Employee/DocumentSigner/DocumentList/Head.js.map +0 -1
  522. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +0 -1
  523. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +0 -24
  524. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +0 -1
  525. package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +0 -1
  526. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +0 -1
  527. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +0 -1
  528. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +0 -1
  529. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.js.map +0 -1
  530. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +0 -1
  531. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +0 -1
  532. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js.map +0 -1
  533. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/fields.js.map +0 -1
  534. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +0 -1
  535. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +0 -1
  536. package/dist/components/Employee/DocumentSigner/stateMachine.js.map +0 -1
  537. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.js.map +0 -1
  538. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js +0 -115
  539. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +0 -1
  540. package/dist/components/Employee/PaymentMethod/Actions.d.ts +0 -1
  541. package/dist/components/Employee/PaymentMethod/Actions.js +0 -20
  542. package/dist/components/Employee/PaymentMethod/Actions.js.map +0 -1
  543. package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +0 -13
  544. package/dist/components/Employee/PaymentMethod/BankAccount.js +0 -13
  545. package/dist/components/Employee/PaymentMethod/BankAccount.js.map +0 -1
  546. package/dist/components/Employee/PaymentMethod/BankAccountEdit.d.ts +0 -1
  547. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +0 -58
  548. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +0 -1
  549. package/dist/components/Employee/PaymentMethod/BankAccountsList.d.ts +0 -1
  550. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +0 -51
  551. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +0 -1
  552. package/dist/components/Employee/PaymentMethod/Head.d.ts +0 -1
  553. package/dist/components/Employee/PaymentMethod/Head.js +0 -13
  554. package/dist/components/Employee/PaymentMethod/Head.js.map +0 -1
  555. package/dist/components/Employee/PaymentMethod/PaymentMethod.d.ts +0 -9
  556. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +0 -183
  557. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +0 -1
  558. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.d.ts +0 -10
  559. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +0 -38
  560. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +0 -1
  561. package/dist/components/Employee/PaymentMethod/Split.d.ts +0 -1
  562. package/dist/components/Employee/PaymentMethod/Split.js +0 -175
  563. package/dist/components/Employee/PaymentMethod/Split.js.map +0 -1
  564. package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +0 -54
  565. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +0 -68
  566. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +0 -1
  567. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsListPresentation.d.ts +0 -0
  568. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/index.d.ts +0 -0
  569. /package/dist/components/Employee/Compensation/{compensationStateMachine.d.ts → onboarding/compensationStateMachine.d.ts} +0 -0
  570. /package/dist/components/Employee/{DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts → Compensation/shared/derivePrimaryFlsaStatus.test.d.ts} +0 -0
  571. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Actions.d.ts +0 -0
  572. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Head.d.ts +0 -0
  573. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/List.d.ts +0 -0
  574. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/useDocumentList.d.ts +0 -0
  575. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +0 -0
  576. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +0 -0
  577. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.js +0 -0
  578. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.d.ts +0 -0
  579. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.js +0 -0
  580. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/index.d.ts +0 -0
  581. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js +0 -0
  582. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js.map +0 -0
  583. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/index.d.ts +0 -0
  584. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/stateMachine.d.ts +0 -0
  585. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocumentsPresentation.d.ts +0 -0
  586. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/index.d.ts +0 -0
  587. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.d.ts +0 -0
  588. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.js +0 -0
  589. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/index.d.ts +0 -0
  590. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +0 -0
  591. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.js +0 -0
  592. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +0 -0
  593. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.js +0 -0
@@ -0,0 +1 @@
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\nexport interface UsePaymentMethodListParams {\n employeeId: string\n}\n\nexport interface UsePaymentMethodListReady extends BaseHookReady<\n { paymentMethod: EmployeePaymentMethod; bankAccounts: EmployeeBankAccount[] },\n { isFetching: boolean; isPending: boolean; deletePendingBankAccountUuid?: string }\n> {\n actions: {\n onDelete: (bankAccountUuid: string) => Promise<HookSubmitResult<unknown> | undefined>\n }\n}\n\nexport type UsePaymentMethodListResult = HookLoadingResult | UsePaymentMethodListReady\n\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":";;;;;;;;AA2BO,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;"}
@@ -0,0 +1,6 @@
1
+ import { SplitPaymentsFormErrorCodes, SplitByValue } from './useSplitPaymentsFormSchema';
2
+ import { RadioGroupHookFieldProps } from '../../../../../partner-hook-utils/form/fields/RadioGroupHookField';
3
+ import { HookFieldProps } from '../../../../../partner-hook-utils/types';
4
+ export type RequiredValidation = typeof SplitPaymentsFormErrorCodes.REQUIRED;
5
+ export type SplitByFieldProps = HookFieldProps<RadioGroupHookFieldProps<RequiredValidation, SplitByValue>>;
6
+ export declare function SplitByField(props: SplitByFieldProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { RadioGroupHookField as r } from "../../../../../partner-hook-utils/form/fields/RadioGroupHookField.js";
3
+ function e(o) {
4
+ return /* @__PURE__ */ i(r, { ...o, name: "splitBy" });
5
+ }
6
+ export {
7
+ e as SplitByField
8
+ };
9
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sources":["../../../../../../src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.tsx"],"sourcesContent":["import type { SplitPaymentsFormErrorCodes, SplitByValue } from './useSplitPaymentsFormSchema'\nimport { RadioGroupHookField } from '@/partner-hook-utils/form/fields'\nimport type { RadioGroupHookFieldProps } from '@/partner-hook-utils/form/fields/RadioGroupHookField'\nimport type { HookFieldProps } from '@/partner-hook-utils/types'\n\nexport type RequiredValidation = typeof SplitPaymentsFormErrorCodes.REQUIRED\n\nexport type SplitByFieldProps = HookFieldProps<\n RadioGroupHookFieldProps<RequiredValidation, SplitByValue>\n>\n\nexport function SplitByField(props: SplitByFieldProps) {\n return <RadioGroupHookField {...props} name=\"splitBy\" />\n}\n"],"names":["SplitByField","props","jsx","RadioGroupHookField"],"mappings":";;AAWO,SAASA,EAAaC,GAA0B;AACrD,SAAO,gBAAAC,EAACC,GAAA,EAAqB,GAAGF,GAAO,MAAK,WAAU;AACxD;"}
@@ -0,0 +1,6 @@
1
+ import "./types/i18next.d.ts"
2
+ export { useSplitPaymentsForm } from './useSplitPaymentsForm';
3
+ export type { UseSplitPaymentsFormProps, UseSplitPaymentsFormResult, UseSplitPaymentsFormReady, SplitPaymentsFormFields, SplitPaymentsFormFieldsMetadata, SplitPaymentsFormFieldsType, WorkingSplit, } from './useSplitPaymentsForm';
4
+ export { SPLIT_BY_VALUES, SplitPaymentsFormErrorCodes, createSplitPaymentsFormSchema, type SplitPaymentsFormErrorCode, type SplitPaymentsFormData, type SplitPaymentsFormField, type SplitPaymentsFormOptionalFieldsToRequire, type SplitPaymentsFormOutputs, type SplitByValue, } from './useSplitPaymentsFormSchema';
5
+ export { SplitByField, type SplitByFieldProps, type RequiredValidation as SplitPaymentsFormRequiredValidation, } from './fields';
6
+ export type { SplitFieldEntry, SplitFieldProps, SplitFieldValidation } from './splitFieldFactory';
@@ -0,0 +1,48 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { SplitPaymentsFormErrorCodes } from './useSplitPaymentsFormSchema';
3
+ import { NumberInputProps } from '../../../../Common/UI/NumberInput/NumberInputTypes';
4
+ import { FormHookResult, ValidationMessages } from '../../../../../partner-hook-utils/types';
5
+ /**
6
+ * Validation codes a bound split-amount Field can emit at submit time:
7
+ * `REQUIRED` (every non-remainder split must have a value), `INVALID_AMOUNT`
8
+ * (Amount mode, value < 0), `INVALID_PERCENTAGE` (Percentage mode, non-integer
9
+ * or out of `0..100`). Supply translations for all three via `validationMessages`.
10
+ * The sum-to-100 invariant is surfaced separately via `status.hasPercentageImbalance`.
11
+ */
12
+ export type SplitFieldValidation = typeof SplitPaymentsFormErrorCodes.REQUIRED | typeof SplitPaymentsFormErrorCodes.INVALID_AMOUNT | typeof SplitPaymentsFormErrorCodes.INVALID_PERCENTAGE;
13
+ /**
14
+ * Props accepted by a bound split-amount Field exposed on
15
+ * `form.Fields.splits[i].Field`. The Field is pre-bound to its split; it
16
+ * formats values as currency in Amount mode and as a percentage in
17
+ * Percentage mode. The remainder split is auto-disabled and treated as not
18
+ * required by the hook; the rest are required.
19
+ */
20
+ export interface SplitFieldProps {
21
+ label: string;
22
+ description?: ReactNode;
23
+ formHookResult?: FormHookResult;
24
+ validationMessages?: ValidationMessages<SplitFieldValidation>;
25
+ min?: NumberInputProps['min'];
26
+ max?: NumberInputProps['max'];
27
+ placeholder?: NumberInputProps['placeholder'];
28
+ FieldComponent?: ComponentType<NumberInputProps>;
29
+ }
30
+ export interface SplitFieldEntry {
31
+ uuid: string;
32
+ name: string | null;
33
+ hiddenAccountNumber: string | null;
34
+ Field: ComponentType<SplitFieldProps>;
35
+ }
36
+ interface BuildSplitFieldsInput {
37
+ uuid: string;
38
+ name: string | null;
39
+ hiddenAccountNumber: string | null;
40
+ }
41
+ /**
42
+ * Build the per-split bound Field components. The caller is responsible for
43
+ * memoizing on the stable set of split uuids so Field identity stays stable
44
+ * across mode toggles and reorders — those changes are observed inside each
45
+ * Field rather than baked into the closure.
46
+ */
47
+ export declare function buildSplitFieldEntries(splits: BuildSplitFieldsInput[]): SplitFieldEntry[];
48
+ export {};
@@ -0,0 +1,46 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { useWatch as f } from "react-hook-form";
3
+ import { SPLIT_BY as s } from "../../../../../shared/constants.js";
4
+ import { NumberInputHookField as F } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
5
+ function B(t) {
6
+ function n({
7
+ label: r,
8
+ description: e,
9
+ formHookResult: o,
10
+ validationMessages: i,
11
+ min: m,
12
+ max: u,
13
+ placeholder: c,
14
+ FieldComponent: d
15
+ }) {
16
+ const l = o?.form.hookFormInternals.formMethods.control, p = f({ control: l, name: "splitBy" }) === s.amount ? "currency" : "percent";
17
+ return /* @__PURE__ */ a(
18
+ F,
19
+ {
20
+ name: `splitAmount.${t}`,
21
+ formHookResult: o,
22
+ label: r,
23
+ description: e,
24
+ validationMessages: i,
25
+ format: p,
26
+ min: m,
27
+ max: u,
28
+ placeholder: c,
29
+ FieldComponent: d
30
+ }
31
+ );
32
+ }
33
+ return n.displayName = `SplitField(${t})`, n;
34
+ }
35
+ function x(t) {
36
+ return t.map((n) => ({
37
+ uuid: n.uuid,
38
+ name: n.name,
39
+ hiddenAccountNumber: n.hiddenAccountNumber,
40
+ Field: B(n.uuid)
41
+ }));
42
+ }
43
+ export {
44
+ x as buildSplitFieldEntries
45
+ };
46
+ //# sourceMappingURL=splitFieldFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitFieldFactory.js","sources":["../../../../../../src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.tsx"],"sourcesContent":["import type { ComponentType, ReactNode } from 'react'\nimport { useWatch, type Control } from 'react-hook-form'\nimport type {\n SplitPaymentsFormErrorCodes,\n SplitPaymentsFormData,\n} from './useSplitPaymentsFormSchema'\nimport { NumberInputHookField } from '@/partner-hook-utils/form/fields'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\nimport type { FormHookResult, ValidationMessages } from '@/partner-hook-utils/types'\nimport { SPLIT_BY } from '@/shared/constants'\n\n/**\n * Validation codes a bound split-amount Field can emit at submit time:\n * `REQUIRED` (every non-remainder split must have a value), `INVALID_AMOUNT`\n * (Amount mode, value < 0), `INVALID_PERCENTAGE` (Percentage mode, non-integer\n * or out of `0..100`). Supply translations for all three via `validationMessages`.\n * The sum-to-100 invariant is surfaced separately via `status.hasPercentageImbalance`.\n */\nexport type SplitFieldValidation =\n | typeof SplitPaymentsFormErrorCodes.REQUIRED\n | typeof SplitPaymentsFormErrorCodes.INVALID_AMOUNT\n | typeof SplitPaymentsFormErrorCodes.INVALID_PERCENTAGE\n\n/**\n * Props accepted by a bound split-amount Field exposed on\n * `form.Fields.splits[i].Field`. The Field is pre-bound to its split; it\n * formats values as currency in Amount mode and as a percentage in\n * Percentage mode. The remainder split is auto-disabled and treated as not\n * required by the hook; the rest are required.\n */\nexport interface SplitFieldProps {\n label: string\n description?: ReactNode\n formHookResult?: FormHookResult\n validationMessages?: ValidationMessages<SplitFieldValidation>\n min?: NumberInputProps['min']\n max?: NumberInputProps['max']\n placeholder?: NumberInputProps['placeholder']\n FieldComponent?: ComponentType<NumberInputProps>\n}\n\nexport interface SplitFieldEntry {\n uuid: string\n name: string | null\n hiddenAccountNumber: string | null\n Field: ComponentType<SplitFieldProps>\n}\n\ninterface BuildSplitFieldsInput {\n uuid: string\n name: string | null\n hiddenAccountNumber: string | null\n}\n\nfunction createBoundSplitField(uuid: string): ComponentType<SplitFieldProps> {\n function BoundSplitField({\n label,\n description,\n formHookResult,\n validationMessages,\n min,\n max,\n placeholder,\n FieldComponent,\n }: SplitFieldProps) {\n const externalControl = formHookResult?.form.hookFormInternals.formMethods.control as\n | Control<SplitPaymentsFormData>\n | undefined\n const splitBy = useWatch({ control: externalControl, name: 'splitBy' })\n const format: NumberInputProps['format'] = splitBy === SPLIT_BY.amount ? 'currency' : 'percent'\n\n return (\n <NumberInputHookField<SplitFieldValidation>\n name={`splitAmount.${uuid}`}\n formHookResult={formHookResult}\n label={label}\n description={description}\n validationMessages={validationMessages}\n format={format}\n min={min}\n max={max}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n />\n )\n }\n BoundSplitField.displayName = `SplitField(${uuid})`\n return BoundSplitField\n}\n\n/**\n * Build the per-split bound Field components. The caller is responsible for\n * memoizing on the stable set of split uuids so Field identity stays stable\n * across mode toggles and reorders — those changes are observed inside each\n * Field rather than baked into the closure.\n */\nexport function buildSplitFieldEntries(splits: BuildSplitFieldsInput[]): SplitFieldEntry[] {\n return splits.map(split => ({\n uuid: split.uuid,\n name: split.name,\n hiddenAccountNumber: split.hiddenAccountNumber,\n Field: createBoundSplitField(split.uuid),\n }))\n}\n"],"names":["createBoundSplitField","uuid","BoundSplitField","label","description","formHookResult","validationMessages","min","max","placeholder","FieldComponent","externalControl","format","useWatch","SPLIT_BY","jsx","NumberInputHookField","buildSplitFieldEntries","splits","split"],"mappings":";;;;AAsDA,SAASA,EAAsBC,GAA8C;AAC3E,WAASC,EAAgB;AAAA,IACvB,OAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,KAAAC;AAAA,IACA,KAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,EAAA,GACkB;AAClB,UAAMC,IAAkBN,GAAgB,KAAK,kBAAkB,YAAY,SAIrEO,IADUC,EAAS,EAAE,SAASF,GAAiB,MAAM,WAAW,MACfG,EAAS,SAAS,aAAa;AAEtF,WACE,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAM,eAAef,CAAI;AAAA,QACzB,gBAAAI;AAAA,QACA,OAAAF;AAAA,QACA,aAAAC;AAAA,QACA,oBAAAE;AAAA,QACA,QAAAM;AAAA,QACA,KAAAL;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACA,SAAAR,EAAgB,cAAc,cAAcD,CAAI,KACzCC;AACT;AAQO,SAASe,EAAuBC,GAAoD;AACzF,SAAOA,EAAO,IAAI,CAAAC,OAAU;AAAA,IAC1B,MAAMA,EAAM;AAAA,IACZ,MAAMA,EAAM;AAAA,IACZ,qBAAqBA,EAAM;AAAA,IAC3B,OAAOnB,EAAsBmB,EAAM,IAAI;AAAA,EAAA,EACvC;AACJ;"}
@@ -0,0 +1,65 @@
1
+ import { ComponentType } from 'react';
2
+ import { UseFormProps } from 'react-hook-form';
3
+ import { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount';
4
+ import { EmployeePaymentMethod } from '@gusto/embedded-api/models/components/employeepaymentmethod';
5
+ import { SplitByValue, SplitPaymentsFormData, SplitPaymentsFormOptionalFieldsToRequire } from './useSplitPaymentsFormSchema';
6
+ import { SplitByFieldProps } from './fields';
7
+ import { SplitFieldEntry } from './splitFieldFactory';
8
+ import { BaseFormHookReady, FieldsMetadata, HookLoadingResult, HookSubmitResult } from '../../../../../partner-hook-utils/types';
9
+ export interface WorkingSplit {
10
+ uuid: string;
11
+ name: string | null;
12
+ hiddenAccountNumber: string | null;
13
+ splitAmount: number | null;
14
+ priority: number;
15
+ }
16
+ export interface UseSplitPaymentsFormProps {
17
+ employeeId: string;
18
+ optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire;
19
+ validationMode?: UseFormProps['mode'];
20
+ shouldFocusError?: boolean;
21
+ }
22
+ export interface SplitPaymentsFormFields {
23
+ SplitBy: ComponentType<SplitByFieldProps>;
24
+ splits: SplitFieldEntry[];
25
+ }
26
+ export interface UseSplitPaymentsFormReady extends BaseFormHookReady<FieldsMetadata, SplitPaymentsFormData, SplitPaymentsFormFields> {
27
+ data: {
28
+ paymentMethod: EmployeePaymentMethod;
29
+ bankAccounts: EmployeeBankAccount[];
30
+ splits: WorkingSplit[];
31
+ /** UUID of the split that absorbs the remainder in Amount mode (always the last by priority). */
32
+ remainderId: string;
33
+ };
34
+ status: {
35
+ isPending: boolean;
36
+ mode: 'update';
37
+ /** Current `splitBy` value, reactively tracked. */
38
+ splitBy: SplitByValue;
39
+ /** Live sum of `splitAmount` values; useful for displaying the current total in Percentage mode. */
40
+ percentageTotal: number;
41
+ /**
42
+ * Mirrors the schema-emitted `PERCENTAGE_TOTAL_MISMATCH` error at the
43
+ * synthetic form path. Tracks `formState.errors` directly and follows
44
+ * the standard react-hook-form validation lifecycle: with the default
45
+ * `validationMode: 'onSubmit'`, becomes `true` after the first failed
46
+ * Save attempt and clears live as the user corrects the total. Only
47
+ * surfaces in Percentage mode.
48
+ */
49
+ hasPercentageImbalance: boolean;
50
+ };
51
+ actions: {
52
+ onSubmit: () => Promise<HookSubmitResult<EmployeePaymentMethod> | undefined>;
53
+ /**
54
+ * Reorder splits by uuid (Amount mode). Pass the ordered list of split
55
+ * uuids; the last uuid becomes the remainder. The hook writes the new
56
+ * priority map and re-anchors the remainder's `splitAmount` to `null`
57
+ * (clearing the previous remainder to `0`).
58
+ */
59
+ reorderSplits: (orderedUuids: string[]) => void;
60
+ };
61
+ }
62
+ export declare function useSplitPaymentsForm({ employeeId, optionalFieldsToRequire, validationMode, shouldFocusError, }: UseSplitPaymentsFormProps): HookLoadingResult | UseSplitPaymentsFormReady;
63
+ export type UseSplitPaymentsFormResult = HookLoadingResult | UseSplitPaymentsFormReady;
64
+ export type SplitPaymentsFormFieldsMetadata = UseSplitPaymentsFormReady['form']['fieldsMetadata'];
65
+ export type SplitPaymentsFormFieldsType = UseSplitPaymentsFormReady['form']['Fields'];
@@ -0,0 +1,209 @@
1
+ import { useMemo as f, useEffect as $, useRef as R, useCallback as st } from "react";
2
+ import { useForm as ut, useWatch as L, useFormState as mt } from "react-hook-form";
3
+ import { zodResolver as at } from "@hookform/resolvers/zod";
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
+ import { createSplitPaymentsFormSchema as dt, PERCENTAGE_TOTAL_PATH as j, SplitPaymentsFormErrorCodes as yt, SPLIT_BY_VALUES as Y } from "./useSplitPaymentsFormSchema.js";
8
+ import { SplitByField as ft } from "./fields.js";
9
+ import { buildSplitFieldEntries as At } from "./splitFieldFactory.js";
10
+ import { useDeriveFieldsMetadata as bt } from "../../../../../partner-hook-utils/form/useDeriveFieldsMetadata.js";
11
+ import { useHookFormInternals as ht } from "../../../../../partner-hook-utils/form/useHookFormInternals.js";
12
+ import { createGetFormSubmissionValues as St } from "../../../../../partner-hook-utils/form/getFormSubmissionValues.js";
13
+ import { withOptions as gt } from "../../../../../partner-hook-utils/form/withOptions.js";
14
+ import { composeErrorHandler as Pt } from "../../../../../partner-hook-utils/composeErrorHandler.js";
15
+ import { useBaseSubmit as Et } from "../../../../Base/useBaseSubmit.js";
16
+ import { SDKInternalError as q } from "../../../../../types/sdkError.js";
17
+ import { centsToDollars as Bt, dollarsToCents as Mt } from "../../../../../helpers/currencyHelpers.js";
18
+ import { SPLIT_BY as l, PAYMENT_METHODS as wt } from "../../../../../shared/constants.js";
19
+ const Ft = (p, g) => p.splits && p.splits.length > 0 ? p.splits.map((i) => ({
20
+ uuid: i.uuid,
21
+ name: i.name ?? null,
22
+ hiddenAccountNumber: i.hiddenAccountNumber ?? null,
23
+ splitAmount: i.splitAmount ?? null,
24
+ priority: i.priority ?? 0
25
+ })) : g.map((i, M) => ({
26
+ uuid: i.uuid,
27
+ name: i.name ?? null,
28
+ hiddenAccountNumber: i.hiddenAccountNumber ?? null,
29
+ splitAmount: null,
30
+ priority: M + 1
31
+ }));
32
+ function zt({
33
+ employeeId: p,
34
+ optionalFieldsToRequire: g,
35
+ validationMode: i = "onSubmit",
36
+ shouldFocusError: M = !0
37
+ }) {
38
+ const w = ct({ employeeId: p }), F = lt({ employeeId: p }), s = w.data?.employeePaymentMethod, A = F.data?.employeeBankAccounts, u = f(
39
+ () => s && A ? Ft(s, A) : [],
40
+ [s, A]
41
+ ), [O, z] = f(
42
+ () => dt({ optionalFieldsToRequire: g }),
43
+ [g]
44
+ ), V = f(() => {
45
+ const t = s?.splitBy === l.amount, e = {}, n = {};
46
+ return u.forEach((r) => {
47
+ e[r.uuid] = t ? Bt(r.splitAmount) : r.splitAmount, n[r.uuid] = r.priority;
48
+ }), {
49
+ splitBy: s?.splitBy ?? l.percentage,
50
+ splitAmount: e,
51
+ priority: n
52
+ };
53
+ }, [s, u]), m = ut({
54
+ resolver: at(O),
55
+ mode: i,
56
+ shouldFocusError: M,
57
+ defaultValues: V,
58
+ values: V,
59
+ resetOptions: { keepDirtyValues: !0 }
60
+ }), C = pt(), Q = C.isPending, {
61
+ baseSubmitHandler: W,
62
+ error: K,
63
+ setError: x
64
+ } = Et("SplitPaymentsForm"), D = Pt([w, F], {
65
+ submitError: K,
66
+ setSubmitError: x
67
+ }), o = L({ control: m.control, name: "splitBy" }), P = L({ control: m.control, name: "priority" }), T = L({ control: m.control, name: "splitAmount" }), J = f(() => o !== l.percentage ? 0 : Object.values(T).reduce(
68
+ (t, e) => t + (typeof e == "number" && Number.isFinite(e) ? e : 0),
69
+ 0
70
+ ), [o, T]), { errors: X, isSubmitted: _ } = mt({
71
+ control: m.control
72
+ }), Z = o === l.percentage && X[j]?.message === yt.PERCENTAGE_TOTAL_MISMATCH, { trigger: H } = m;
73
+ $(() => {
74
+ _ && o === l.percentage && H(j);
75
+ }, [_, o, T, H]);
76
+ const b = f(() => Object.keys(P).length ? Object.entries(P).reduce((t, [e, n]) => {
77
+ if (!t) return e;
78
+ const r = P[t] ?? 0;
79
+ return n > r ? e : t;
80
+ }, "") : "", [P]), h = R(u);
81
+ h.current = u;
82
+ const v = R(b);
83
+ v.current = b;
84
+ const E = R(null), { setValue: d, resetField: I } = m;
85
+ $(() => {
86
+ if (h.current.length) {
87
+ if (E.current === null) {
88
+ E.current = o;
89
+ return;
90
+ }
91
+ if (E.current !== o)
92
+ if (E.current = o, o === l.amount) {
93
+ const t = h.current.reduce((e, n) => (e[n.uuid] = n.uuid === v.current ? null : 0, e), {});
94
+ d("splitAmount", t);
95
+ } else {
96
+ const t = h.current.reduce(
97
+ (e, n, r) => (e[n.uuid] = r === 0 ? 100 : 0, e),
98
+ {}
99
+ );
100
+ d("splitAmount", t);
101
+ }
102
+ }
103
+ }, [o, d]);
104
+ const U = st(
105
+ (t) => {
106
+ const e = h.current, n = new Set(e.map((c) => c.uuid));
107
+ if (t.length !== n.size || !t.every((c) => n.has(c)))
108
+ return;
109
+ const r = t.reduce((c, k, B) => (c[k] = B + 1, c), {}), y = t[t.length - 1];
110
+ if (!y) return;
111
+ d("priority", r);
112
+ const a = v.current;
113
+ a && a !== y && (I(`splitAmount.${a}`), d(`splitAmount.${a}`, 0)), d(`splitAmount.${y}`, null);
114
+ },
115
+ [d, I]
116
+ ), tt = Y.map((t) => ({ value: t, label: t })), N = bt(z, m.control), et = f(() => {
117
+ const t = {}, e = o === l.amount;
118
+ for (const n of u) {
119
+ const r = `splitAmount.${n.uuid}`, y = e && n.uuid === b;
120
+ t[r] = {
121
+ name: r,
122
+ isRequired: !0,
123
+ isDisabled: y
124
+ };
125
+ }
126
+ return t;
127
+ }, [u, o, b]), nt = {
128
+ splitBy: gt(N.splitBy, tt, [...Y]),
129
+ splitAmount: N.splitAmount,
130
+ priority: N.priority,
131
+ ...et
132
+ }, rt = f(
133
+ () => At(
134
+ u.map((t) => ({
135
+ uuid: t.uuid,
136
+ name: t.name,
137
+ hiddenAccountNumber: t.hiddenAccountNumber
138
+ }))
139
+ ),
140
+ [u]
141
+ ), ot = async () => {
142
+ if (!s)
143
+ throw new q("Cannot submit split payments form before data is loaded");
144
+ const t = s, e = u;
145
+ let n;
146
+ return await new Promise((r) => {
147
+ m.handleSubmit(
148
+ async (y) => {
149
+ await W(y, async (a) => {
150
+ const c = a.splitBy === l.amount, k = {
151
+ ...t,
152
+ version: t.version,
153
+ splitBy: a.splitBy,
154
+ splits: e.map((S) => {
155
+ const G = a.splitAmount[S.uuid] ?? null;
156
+ return {
157
+ uuid: S.uuid,
158
+ name: S.name ?? void 0,
159
+ hiddenAccountNumber: S.hiddenAccountNumber ?? void 0,
160
+ splitAmount: c ? Mt(G) : G,
161
+ priority: a.priority[S.uuid]
162
+ };
163
+ })
164
+ }, B = await C.mutateAsync({
165
+ request: {
166
+ employeeId: p,
167
+ requestBody: { ...k, type: wt.directDeposit }
168
+ }
169
+ });
170
+ if (!B.employeePaymentMethod)
171
+ throw new q("Payment method update failed");
172
+ n = { mode: "update", data: B.employeePaymentMethod };
173
+ }), r();
174
+ },
175
+ () => {
176
+ r();
177
+ }
178
+ )();
179
+ }), n;
180
+ }, it = ht(m);
181
+ return w.isLoading || F.isLoading || !s || !A ? { isLoading: !0, errorHandling: D } : {
182
+ isLoading: !1,
183
+ data: {
184
+ paymentMethod: s,
185
+ bankAccounts: A,
186
+ splits: u,
187
+ remainderId: b
188
+ },
189
+ status: {
190
+ isPending: Q,
191
+ mode: "update",
192
+ splitBy: o,
193
+ percentageTotal: J,
194
+ hasPercentageImbalance: Z
195
+ },
196
+ actions: { onSubmit: ot, reorderSplits: U },
197
+ errorHandling: D,
198
+ form: {
199
+ Fields: { SplitBy: ft, splits: rt },
200
+ fieldsMetadata: nt,
201
+ hookFormInternals: it,
202
+ getFormSubmissionValues: St(m, O)
203
+ }
204
+ };
205
+ }
206
+ export {
207
+ zt as useSplitPaymentsForm
208
+ };
209
+ //# sourceMappingURL=useSplitPaymentsForm.js.map
@@ -0,0 +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/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 FieldsMetadata,\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\nexport interface WorkingSplit {\n uuid: string\n name: string | null\n hiddenAccountNumber: string | null\n splitAmount: number | null\n priority: number\n}\n\nexport interface UseSplitPaymentsFormProps {\n employeeId: string\n optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n}\n\nexport interface SplitPaymentsFormFields {\n SplitBy: ComponentType<SplitByFieldProps>\n splits: SplitFieldEntry[]\n}\n\nexport interface UseSplitPaymentsFormReady extends BaseFormHookReady<\n FieldsMetadata,\n SplitPaymentsFormData,\n SplitPaymentsFormFields\n> {\n data: {\n paymentMethod: EmployeePaymentMethod\n bankAccounts: EmployeeBankAccount[]\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 status: {\n isPending: boolean\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 * Mirrors the schema-emitted `PERCENTAGE_TOTAL_MISMATCH` error at the\n * synthetic form path. Tracks `formState.errors` directly and follows\n * the standard react-hook-form validation lifecycle: with the default\n * `validationMode: 'onSubmit'`, becomes `true` after the first failed\n * Save attempt and clears live as the user corrects the total. Only\n * surfaces in Percentage mode.\n */\n hasPercentageImbalance: boolean\n }\n actions: {\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\nexport function useSplitPaymentsForm({\n employeeId,\n optionalFieldsToRequire,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseSplitPaymentsFormProps): HookLoadingResult | UseSplitPaymentsFormReady {\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<FieldsMetadata>(() => {\n const entries: FieldsMetadata = {}\n const isAmountSplit = watchedSplitBy === SPLIT_BY.amount\n for (const split of splits) {\n const path = `splitAmount.${split.uuid}`\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: FieldsMetadata = {\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\nexport type UseSplitPaymentsFormResult = HookLoadingResult | UseSplitPaymentsFormReady\nexport type SplitPaymentsFormFieldsMetadata = UseSplitPaymentsFormReady['form']['fieldsMetadata']\nexport type SplitPaymentsFormFieldsType = UseSplitPaymentsFormReady['form']['Fields']\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":";;;;;;;;;;;;;;;;;;AAmGA,MAAMA,KAAqB,CACzBC,GACAC,MAEID,EAAc,UAAUA,EAAc,OAAO,SAAS,IACjDA,EAAc,OAAO,IAAI,CAAAE,OAAU;AAAA,EACxC,MAAMA,EAAM;AAAA,EACZ,MAAMA,EAAM,QAAQ;AAAA,EACpB,qBAAqBA,EAAM,uBAAuB;AAAA,EAClD,aAAaA,EAAM,eAAe;AAAA,EAClC,UAAUA,EAAM,YAAY;AAAA,EAC5B,IAEGD,EAAa,IAAI,CAACE,GAASC,OAAW;AAAA,EAC3C,MAAMD,EAAQ;AAAA,EACd,MAAMA,EAAQ,QAAQ;AAAA,EACtB,qBAAqBA,EAAQ,uBAAuB;AAAA,EACpD,aAAa;AAAA,EACb,UAAUC,IAAQ;AAAA,EAClB;AAGG,SAASC,GAAqB;AAAA,EACnC,YAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,kBAAAC,IAAmB;AACrB,GAA6E;AAC3E,QAAMC,IAAqBC,GAA4B,EAAE,YAAAL,GAAY,GAC/DM,IAAoBC,GAAyC,EAAE,YAAAP,GAAY,GAE3EN,IAAgBU,EAAmB,MAAM,uBACzCT,IAAeW,EAAkB,MAAM,sBAEvCE,IAASC;AAAA,IACb,MAAOf,KAAiBC,IAAeF,GAAmBC,GAAeC,CAAY,IAAI,CAAA;AAAA,IACzF,CAACD,GAAeC,CAAY;AAAA,EAAA,GAGxB,CAACe,GAAQC,CAAc,IAAIF;AAAA,IAC/B,MAAMG,GAA8B,EAAE,yBAAAX,GAAyB;AAAA,IAC/D,CAACA,CAAuB;AAAA,EAAA,GAGpBY,IAA0CJ,EAAQ,MAAM;AAC5D,UAAMK,IAAgBpB,GAAe,YAAYqB,EAAS,QACpDC,IAA6C,CAAA,GAC7CC,IAAmC,CAAA;AACzC,WAAAT,EAAO,QAAQ,CAAAZ,MAAS;AACtB,MAAAoB,EAAYpB,EAAM,IAAI,IAAIkB,IACtBI,GAAetB,EAAM,WAAW,IAChCA,EAAM,aACVqB,EAASrB,EAAM,IAAI,IAAIA,EAAM;AAAA,IAC/B,CAAC,GACM;AAAA,MACL,SAAUF,GAAe,WAAWqB,EAAS;AAAA,MAC7C,aAAAC;AAAA,MACA,UAAAC;AAAA,IAAA;AAAA,EAEJ,GAAG,CAACvB,GAAec,CAAM,CAAC,GAEpBW,IAAcC,GAAkE;AAAA,IACpF,UAAUC,GAAYX,CAAM;AAAA,IAC5B,MAAMR;AAAA,IACN,kBAAAC;AAAA,IACA,eAAeU;AAAA,IACf,QAAQA;AAAA,IACR,cAAc,EAAE,iBAAiB,GAAA;AAAA,EAAK,CACvC,GAEKS,IAAiBC,GAAA,GACjBC,IAAYF,EAAe,WAE3B;AAAA,IACJ,mBAAAG;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,GAAc,mBAAmB,GAE/BC,IAAgBC,GAAoB,CAAC1B,GAAoBE,CAAiB,GAAG;AAAA,IACjF,aAAAoB;AAAA,IACA,gBAAAC;AAAA,EAAA,CACD,GAEKI,IAAiBC,EAAS,EAAE,SAASb,EAAY,SAAS,MAAM,WAAW,GAC3Ec,IAAkBD,EAAS,EAAE,SAASb,EAAY,SAAS,MAAM,YAAY,GAC7Ee,IAAqBF,EAAS,EAAE,SAASb,EAAY,SAAS,MAAM,eAAe,GAEnFgB,IAAkB1B,EAAQ,MAC1BsB,MAAmBhB,EAAS,aAAmB,IAC5C,OAAO,OAAOmB,CAAkB,EAAE;AAAA,IACvC,CAACE,GAAKC,MAAMD,KAAO,OAAOC,KAAM,YAAY,OAAO,SAASA,CAAC,IAAIA,IAAI;AAAA,IACrE;AAAA,EAAA,GAED,CAACN,GAAgBG,CAAkB,CAAC,GAWjC,EAAE,QAAQI,GAAkB,aAAAC,EAAA,IAAgBC,GAAa;AAAA,IAC7D,SAASrB,EAAY;AAAA,EAAA,CACtB,GACKsB,IACJV,MAAmBhB,EAAS,cAC3BuB,EAAsEI,CAAqB,GACxF,YAAYC,GAA4B,2BAUxC,EAAE,SAAAC,MAAYzB;AACpB,EAAA0B,EAAU,MAAM;AACd,IAAKN,KACDR,MAAmBhB,EAAS,cAK3B6B,EAAQF,CAAsD;AAAA,EACrE,GAAG,CAACH,GAAaR,GAAgBG,GAAoBU,CAAO,CAAC;AAE7D,QAAME,IAAcrC,EAAQ,MACrB,OAAO,KAAKwB,CAAe,EAAE,SAC3B,OAAO,QAAQA,CAAe,EAAE,OAAO,CAACc,GAAO,CAACC,GAAM/B,CAAQ,MAAM;AACzE,QAAI,CAAC8B,EAAO,QAAOC;AACnB,UAAMC,IAAahB,EAAgBc,CAAK,KAAK;AAC7C,WAAO9B,IAAWgC,IAAaD,IAAOD;AAAA,EACxC,GAAG,EAAE,IAL4C,IAMhD,CAACd,CAAe,CAAC,GAKdiB,IAAYC,EAAO3C,CAAM;AAC/B,EAAA0C,EAAU,UAAU1C;AACpB,QAAM4C,IAAiBD,EAAOL,CAAW;AACzC,EAAAM,EAAe,UAAUN;AACzB,QAAMO,IAAqBF,EAA4B,IAAI,GACrD,EAAE,UAAAG,GAAU,YAAAC,EAAA,IAAepC;AAEjC,EAAA0B,EAAU,MAAM;AACd,QAAKK,EAAU,QAAQ,QACvB;AAAA,UAAIG,EAAmB,YAAY,MAAM;AACvC,QAAAA,EAAmB,UAAUtB;AAC7B;AAAA,MACF;AACA,UAAIsB,EAAmB,YAAYtB;AAGnC,YAFAsB,EAAmB,UAAUtB,GAEzBA,MAAmBhB,EAAS,QAAQ;AACtC,gBAAMyC,IAAYN,EAAU,QAAQ,OAAsC,CAACd,GAAKqB,OAC9ErB,EAAIqB,EAAK,IAAI,IAAIA,EAAK,SAASL,EAAe,UAAU,OAAO,GACxDhB,IACN,CAAA,CAAE;AACL,UAAAkB,EAAS,eAAeE,CAAS;AAAA,QACnC,OAAO;AACL,gBAAMA,IAAYN,EAAU,QAAQ;AAAA,YAClC,CAACd,GAAKqB,GAAM3D,OACVsC,EAAIqB,EAAK,IAAI,IAAI3D,MAAU,IAAI,MAAM,GAC9BsC;AAAA,YAET,CAAA;AAAA,UAAC;AAEH,UAAAkB,EAAS,eAAeE,CAAS;AAAA,QACnC;AAAA;AAAA,EACF,GAAG,CAACzB,GAAgBuB,CAAQ,CAAC;AAE7B,QAAMI,IAAgBC;AAAA,IACpB,CAACC,MAA2B;AAC1B,YAAMC,IAAgBX,EAAU,SAC1BY,IAAa,IAAI,IAAID,EAAc,IAAI,CAAAE,MAAKA,EAAE,IAAI,CAAC;AACzD,UACEH,EAAa,WAAWE,EAAW,QACnC,CAACF,EAAa,MAAM,CAAAZ,MAAQc,EAAW,IAAId,CAAI,CAAC;AAEhD;AAGF,YAAMgB,IAAgBJ,EAAa,OAA+B,CAACxB,GAAKY,GAAMlD,OAC5EsC,EAAIY,CAAI,IAAIlD,IAAQ,GACbsC,IACN,CAAA,CAAE,GACC6B,IAAiBL,EAAaA,EAAa,SAAS,CAAC;AAC3D,UAAI,CAACK,EAAgB;AAErB,MAAAX,EAAS,YAAYU,CAAa;AAClC,YAAME,IAAoBd,EAAe;AACzC,MAAIc,KAAqBA,MAAsBD,MAC7CV,EAAW,eAAeW,CAAiB,EAAE,GAC7CZ,EAAS,eAAeY,CAAiB,IAAI,CAAC,IAEhDZ,EAAS,eAAeW,CAAc,IAAI,IAAI;AAAA,IAChD;AAAA,IACA,CAACX,GAAUC,CAAU;AAAA,EAAA,GAGjBY,KAAiBC,EAAgB,IAAI,CAAAC,OAAU,EAAE,OAAAA,GAAO,OAAOA,IAAQ,GACvEC,IAAeC,GAAwB5D,GAAgBQ,EAAY,OAAO,GAC1EqD,KAAuB/D,EAAwB,MAAM;AACzD,UAAMgE,IAA0B,CAAA,GAC1B3D,IAAgBiB,MAAmBhB,EAAS;AAClD,eAAWnB,KAASY,GAAQ;AAC1B,YAAMkE,IAAO,eAAe9E,EAAM,IAAI,IAChC+E,IAAc7D,KAAiBlB,EAAM,SAASkD;AAMpD,MAAA2B,EAAQC,CAAI,IAAI;AAAA,QACd,MAAMA;AAAA,QACN,YAAY;AAAA,QACZ,YAAYC;AAAA,MAAA;AAAA,IAEhB;AACA,WAAOF;AAAA,EACT,GAAG,CAACjE,GAAQuB,GAAgBe,CAAW,CAAC,GAClC8B,KAAiC;AAAA,IACrC,SAASC,GAA0BP,EAAa,SAASH,IAAgB,CAAC,GAAGC,CAAe,CAAC;AAAA,IAC7F,aAAaE,EAAa;AAAA,IAC1B,UAAUA,EAAa;AAAA,IACvB,GAAGE;AAAA,EAAA,GAGCM,KAAoBrE;AAAA,IACxB,MACEsE;AAAA,MACEvE,EAAO,IAAI,CAAAuD,OAAM;AAAA,QACf,MAAMA,EAAE;AAAA,QACR,MAAMA,EAAE;AAAA,QACR,qBAAqBA,EAAE;AAAA,MAAA,EACvB;AAAA,IAAA;AAAA,IAEN,CAACvD,CAAM;AAAA,EAAA,GAGHwE,KAAW,YAA0E;AACzF,QAAI,CAACtF;AACH,YAAM,IAAIuF,EAAiB,yDAAyD;AAEtF,UAAMC,IAAuBxF,GACvBmE,IAAgBrD;AACtB,QAAI2E;AAEJ,iBAAM,IAAI,QAAc,CAAAC,MAAW;AACjC,MAAKjE,EAAY;AAAA,QACf,OAAOkE,MAAmC;AACxC,gBAAM5D,EAAkB4D,GAAM,OAAMC,MAAW;AAC7C,kBAAMxE,IAAgBwE,EAAQ,YAAYvE,EAAS,QAC7CwE,IAAO;AAAA,cACX,GAAGL;AAAA,cACH,SAASA,EAAqB;AAAA,cAC9B,SAASI,EAAQ;AAAA,cACjB,QAAQzB,EAAc,IAAI,CAAAjE,MAAS;AACjC,sBAAM4F,IAAmBF,EAAQ,YAAY1F,EAAM,IAAI,KAAK;AAC5D,uBAAO;AAAA,kBACL,MAAMA,EAAM;AAAA,kBACZ,MAAMA,EAAM,QAAQ;AAAA,kBACpB,qBAAqBA,EAAM,uBAAuB;AAAA,kBAClD,aAAakB,IAAgB2E,GAAeD,CAAgB,IAAIA;AAAA,kBAChE,UAAUF,EAAQ,SAAS1F,EAAM,IAAI;AAAA,gBAAA;AAAA,cAEzC,CAAC;AAAA,YAAA,GAGG8F,IAAW,MAAMpE,EAAe,YAAY;AAAA,cAChD,SAAS;AAAA,gBACP,YAAAtB;AAAA,gBACA,aAAa,EAAE,GAAGuF,GAAM,MAAMI,GAAgB,cAAA;AAAA,cAAc;AAAA,YAC9D,CACD;AAED,gBAAI,CAACD,EAAS;AACZ,oBAAM,IAAIT,EAAiB,8BAA8B;AAG3D,YAAAE,IAAe,EAAE,MAAM,UAAmB,MAAMO,EAAS,sBAAA;AAAA,UAC3D,CAAC,GACDN,EAAA;AAAA,QACF;AAAA,QACA,MAAM;AACJ,UAAAA,EAAA;AAAA,QACF;AAAA,MAAA,EACF;AAAA,IACF,CAAC,GAEMD;AAAA,EACT,GAEMS,KAAoBC,GAAqB1E,CAAW;AAE1D,SACEf,EAAmB,aACnBE,EAAkB,aAClB,CAACZ,KACD,CAACC,IAEM,EAAE,WAAW,IAAe,eAAAkC,EAAA,IAG9B;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,eAAAnC;AAAA,MACA,cAAAC;AAAA,MACA,QAAAa;AAAA,MACA,aAAAsC;AAAA,IAAA;AAAA,IAEF,QAAQ;AAAA,MACN,WAAAtB;AAAA,MACA,MAAM;AAAA,MACN,SAASO;AAAA,MACT,iBAAAI;AAAA,MACA,wBAAAM;AAAA,IAAA;AAAA,IAEF,SAAS,EAAE,UAAAuC,IAAU,eAAAtB,EAAA;AAAA,IACrB,eAAA7B;AAAA,IACA,MAAM;AAAA,MACJ,QAAQ,EAAE,SAASiE,IAAc,QAAQhB,GAAA;AAAA,MACzC,gBAAAF;AAAA,MACA,mBAAAgB;AAAA,MACA,yBAAyBG,GAA8B5E,GAAaT,CAAM;AAAA,IAAA;AAAA,EAC5E;AAEJ;"}
@@ -0,0 +1,53 @@
1
+ import { z } from 'zod';
2
+ import { OptionalFieldsToRequire } from '../../../../../partner-hook-utils/form/buildFormSchema';
3
+ export declare const SplitPaymentsFormErrorCodes: {
4
+ readonly REQUIRED: "REQUIRED";
5
+ readonly INVALID_PERCENTAGE: "INVALID_PERCENTAGE";
6
+ readonly INVALID_AMOUNT: "INVALID_AMOUNT";
7
+ readonly DUPLICATE_PRIORITIES: "DUPLICATE_PRIORITIES";
8
+ readonly PERCENTAGE_TOTAL_MISMATCH: "PERCENTAGE_TOTAL_MISMATCH";
9
+ };
10
+ /**
11
+ * Synthetic form path where the schema emits the percentage-sum-to-100
12
+ * invariant. The hook subscribes to errors at this path to drive
13
+ * `status.hasPercentageImbalance`.
14
+ */
15
+ export declare const PERCENTAGE_TOTAL_PATH: "percentageTotal";
16
+ export type SplitPaymentsFormErrorCode = (typeof SplitPaymentsFormErrorCodes)[keyof typeof SplitPaymentsFormErrorCodes];
17
+ export declare const SPLIT_BY_VALUES: readonly ["Percentage", "Amount"];
18
+ export type SplitByValue = (typeof SPLIT_BY_VALUES)[number];
19
+ declare const fieldValidators: {
20
+ splitBy: z.ZodEnum<{
21
+ Percentage: "Percentage";
22
+ Amount: "Amount";
23
+ }>;
24
+ splitAmount: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodNumber>>>;
25
+ priority: z.ZodRecord<z.ZodString, z.ZodNumber>;
26
+ };
27
+ export type SplitPaymentsFormField = keyof typeof fieldValidators;
28
+ export type SplitPaymentsFormData = {
29
+ splitBy: SplitByValue;
30
+ splitAmount: Record<string, number | null>;
31
+ priority: Record<string, number>;
32
+ };
33
+ export type SplitPaymentsFormOutputs = SplitPaymentsFormData;
34
+ declare const requiredFieldsConfig: {};
35
+ export type SplitPaymentsFormOptionalFieldsToRequire = OptionalFieldsToRequire<typeof requiredFieldsConfig>;
36
+ interface SplitPaymentsFormSchemaOptions {
37
+ optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire;
38
+ }
39
+ /**
40
+ * Resolves the remainder uuid (highest priority value) from a priority map.
41
+ * Exported so the hook can mirror the same selection rule when deriving
42
+ * dynamic field metadata.
43
+ */
44
+ export declare function resolveRemainderUuid(priority: Record<string, number>): string;
45
+ export declare function createSplitPaymentsFormSchema(options?: SplitPaymentsFormSchemaOptions): import('../../../../../partner-hook-utils/form/buildFormSchema').BuildFormSchemaResult<{
46
+ splitBy: z.ZodEnum<{
47
+ Percentage: "Percentage";
48
+ Amount: "Amount";
49
+ }>;
50
+ splitAmount: z.ZodRecord<z.ZodString, z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodNullable<z.ZodNumber>>>;
51
+ priority: z.ZodRecord<z.ZodString, z.ZodNumber>;
52
+ }>;
53
+ export {};
@@ -0,0 +1,93 @@
1
+ import { z as e } from "zod";
2
+ import { buildFormSchema as l } from "../../../../../partner-hook-utils/form/buildFormSchema.js";
3
+ import { SPLIT_BY as d } from "../../../../../shared/constants.js";
4
+ const u = {
5
+ REQUIRED: "REQUIRED",
6
+ INVALID_PERCENTAGE: "INVALID_PERCENTAGE",
7
+ INVALID_AMOUNT: "INVALID_AMOUNT",
8
+ DUPLICATE_PRIORITIES: "DUPLICATE_PRIORITIES",
9
+ PERCENTAGE_TOTAL_MISMATCH: "PERCENTAGE_TOTAL_MISMATCH"
10
+ }, m = "percentageTotal", c = [d.percentage, d.amount], E = e.preprocess(
11
+ (t) => typeof t == "number" && Number.isNaN(t) ? null : t,
12
+ e.number().nullable()
13
+ ), a = {
14
+ splitBy: e.enum(c),
15
+ splitAmount: e.record(e.string(), E),
16
+ priority: e.record(e.string(), e.number())
17
+ }, p = {};
18
+ function A(t) {
19
+ return Object.entries(t).reduce((o, [s, i]) => {
20
+ if (!o) return s;
21
+ const n = t[o] ?? 0;
22
+ return i > n ? s : o;
23
+ }, "");
24
+ }
25
+ function C(t = {}) {
26
+ return l(a, {
27
+ requiredFieldsConfig: p,
28
+ requiredErrorCode: u.REQUIRED,
29
+ mode: "update",
30
+ optionalFieldsToRequire: t.optionalFieldsToRequire,
31
+ superRefine: (o, s) => {
32
+ if (o.splitBy === d.percentage) {
33
+ let i = !1, n = 0;
34
+ for (const [I, r] of Object.entries(o.splitAmount)) {
35
+ if (r === null) {
36
+ i = !0, s.addIssue({
37
+ code: e.ZodIssueCode.custom,
38
+ path: ["splitAmount", I],
39
+ message: u.REQUIRED
40
+ });
41
+ continue;
42
+ }
43
+ if (!Number.isInteger(r) || r < 0 || r > 100) {
44
+ i = !0, s.addIssue({
45
+ code: e.ZodIssueCode.custom,
46
+ path: ["splitAmount", I],
47
+ message: u.INVALID_PERCENTAGE
48
+ });
49
+ continue;
50
+ }
51
+ n += r;
52
+ }
53
+ !i && n !== 100 && s.addIssue({
54
+ code: e.ZodIssueCode.custom,
55
+ path: [m],
56
+ message: u.PERCENTAGE_TOTAL_MISMATCH
57
+ });
58
+ } else {
59
+ const i = A(o.priority);
60
+ for (const [I, r] of Object.entries(o.splitAmount)) {
61
+ if (r === null) {
62
+ if (I === i) continue;
63
+ s.addIssue({
64
+ code: e.ZodIssueCode.custom,
65
+ path: ["splitAmount", I],
66
+ message: u.REQUIRED
67
+ });
68
+ continue;
69
+ }
70
+ r < 0 && s.addIssue({
71
+ code: e.ZodIssueCode.custom,
72
+ path: ["splitAmount", I],
73
+ message: u.INVALID_AMOUNT
74
+ });
75
+ }
76
+ const n = Object.values(o.priority);
77
+ new Set(n).size !== n.length && s.addIssue({
78
+ code: e.ZodIssueCode.custom,
79
+ path: ["priority"],
80
+ message: u.DUPLICATE_PRIORITIES
81
+ });
82
+ }
83
+ }
84
+ });
85
+ }
86
+ export {
87
+ m as PERCENTAGE_TOTAL_PATH,
88
+ c as SPLIT_BY_VALUES,
89
+ u as SplitPaymentsFormErrorCodes,
90
+ C as createSplitPaymentsFormSchema,
91
+ A as resolveRemainderUuid
92
+ };
93
+ //# sourceMappingURL=useSplitPaymentsFormSchema.js.map