@gusto/embedded-react-sdk 0.44.1 → 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 (604) hide show
  1. package/CHANGELOG.md +63 -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 +28 -28
  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 +11 -11
  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 +11 -11
  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/StateTaxes/shared/EmployeeStateTaxesView.js +19 -17
  343. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  344. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.module.scss.js +8 -0
  345. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.module.scss.js.map +1 -0
  346. package/dist/components/Employee/Taxes/FederalForm.js +27 -26
  347. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  348. package/dist/components/Employee/Taxes/FederalHead.js +13 -10
  349. package/dist/components/Employee/Taxes/FederalHead.js.map +1 -1
  350. package/dist/components/Employee/Taxes/StateForm.js +17 -14
  351. package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
  352. package/dist/components/Employee/Taxes/Taxes.js +75 -69
  353. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  354. package/dist/components/Employee/Taxes/useTaxes.js +4 -20
  355. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  356. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +26 -26
  357. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  358. package/dist/components/Employee/exports/employeeManagement.d.ts +4 -1
  359. package/dist/components/Employee/exports/employeeManagement.js +22 -18
  360. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  361. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -3
  362. package/dist/components/Employee/exports/employeeOnboarding.js +4 -4
  363. package/dist/components/Employee/index.d.ts +4 -4
  364. package/dist/components/Employee/index.js +5 -5
  365. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +26 -34
  366. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  367. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +35 -35
  368. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  369. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -1
  370. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +71 -54
  371. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  372. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  373. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  374. package/dist/components/Payroll/usePreparedPayrollData.js +22 -36
  375. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  376. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +84 -82
  377. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  378. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  379. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +49 -48
  380. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  381. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +1 -0
  382. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +39 -37
  383. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  384. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js +31 -31
  385. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  386. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +1 -0
  387. package/dist/components/TimeOff/PolicyList/PolicyList.js +27 -27
  388. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  389. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +50 -50
  390. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  391. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +1 -0
  392. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +66 -41
  393. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  394. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  395. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +59 -48
  396. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  397. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +3 -0
  398. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +34 -33
  399. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  400. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +3 -0
  401. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +69 -61
  402. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  403. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +119 -75
  404. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  405. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +72 -61
  406. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  407. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  408. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +103 -84
  409. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  410. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  411. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +51 -49
  412. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  413. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  414. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +78 -59
  415. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  416. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +8 -0
  417. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js.map +1 -0
  418. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +6 -2
  419. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +209 -154
  420. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  421. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +3 -1
  422. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +36 -34
  423. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  424. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +136 -134
  425. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  426. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.module.scss.js +6 -6
  427. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  428. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +63 -65
  429. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  430. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +1 -0
  431. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +50 -49
  432. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  433. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.module.scss.js +4 -4
  434. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  435. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +66 -55
  436. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  437. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +1 -0
  438. package/dist/contexts/ApiProvider/ApiProvider.js +33 -39
  439. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  440. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +17 -0
  441. package/dist/contexts/ApiProvider/createSdkQueryClient.js +14 -0
  442. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -0
  443. package/dist/helpers/dateFormatting.js +52 -56
  444. package/dist/helpers/dateFormatting.js.map +1 -1
  445. package/dist/helpers/formattedStrings.d.ts +12 -0
  446. package/dist/helpers/formattedStrings.js +55 -33
  447. package/dist/helpers/formattedStrings.js.map +1 -1
  448. package/dist/hooks/useClientPagination/useClientPagination.d.ts +44 -0
  449. package/dist/hooks/useClientPagination/useClientPagination.js +69 -0
  450. package/dist/hooks/useClientPagination/useClientPagination.js.map +1 -0
  451. package/dist/hooks/useClientPagination/useClientPagination.test.d.ts +1 -0
  452. package/dist/i18n/I18n.js +6 -5
  453. package/dist/i18n/I18n.js.map +1 -1
  454. package/dist/i18n/en/Company.PaySchedule.json.js +22 -20
  455. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  456. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js +8 -6
  457. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js.map +1 -1
  458. package/dist/i18n/en/Company.TimeOff.HolidayPolicy.json.js +9 -9
  459. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js +6 -4
  460. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js.map +1 -1
  461. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +17 -15
  462. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  463. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js +10 -8
  464. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js.map +1 -1
  465. package/dist/i18n/en/Employee.Dashboard.json.js +16 -12
  466. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  467. package/dist/i18n/en/Employee.Deductions.json.js +104 -76
  468. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  469. package/dist/i18n/en/Employee.DocumentManager.json.js +12 -0
  470. package/dist/i18n/en/Employee.DocumentManager.json.js.map +1 -0
  471. package/dist/i18n/en/Employee.PaymentMethod.json.js +76 -64
  472. package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
  473. package/dist/i18n/en/common.json.d.ts +7 -0
  474. package/dist/i18n/en/common.json.js +19 -17
  475. package/dist/i18n/en/common.json.js.map +1 -1
  476. package/dist/index.d.ts +16 -6
  477. package/dist/index.js +138 -112
  478. package/dist/index.js.map +1 -1
  479. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +2 -1
  480. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +20 -18
  481. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  482. package/dist/shared/constants.d.ts +8 -2
  483. package/dist/shared/constants.js +11 -8
  484. package/dist/shared/constants.js.map +1 -1
  485. package/dist/style.css +1 -1
  486. package/dist/test-utils/assertions.d.ts +20 -0
  487. package/dist/types/i18next.d.ts +140 -4
  488. package/dist/types/sdkError.js +58 -47
  489. package/dist/types/sdkError.js.map +1 -1
  490. package/docs/reference/endpoint-inventory.json +980 -1170
  491. package/package.json +33 -22
  492. package/dist/components/Employee/Compensation/Compensation.js +0 -87
  493. package/dist/components/Employee/Compensation/Compensation.js.map +0 -1
  494. package/dist/components/Employee/Compensation/CompensationFlowComponents.js +0 -61
  495. package/dist/components/Employee/Compensation/CompensationFlowComponents.js.map +0 -1
  496. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.d.ts +0 -14
  497. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js +0 -128
  498. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js.map +0 -1
  499. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.d.ts +0 -17
  500. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js +0 -224
  501. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js.map +0 -1
  502. package/dist/components/Employee/Compensation/EditCompensation/index.d.ts +0 -5
  503. package/dist/components/Employee/Compensation/JobsList/JobsList.js +0 -47
  504. package/dist/components/Employee/Compensation/JobsList/JobsList.js.map +0 -1
  505. package/dist/components/Employee/Compensation/JobsList/JobsListPresentation.js.map +0 -1
  506. package/dist/components/Employee/Compensation/compensationSchema.d.ts +0 -29
  507. package/dist/components/Employee/Compensation/compensationSchema.js +0 -63
  508. package/dist/components/Employee/Compensation/compensationSchema.js.map +0 -1
  509. package/dist/components/Employee/Compensation/compensationStateMachine.js.map +0 -1
  510. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.d.ts +0 -15
  511. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js +0 -27
  512. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js.map +0 -1
  513. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.d.ts +0 -13
  514. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js +0 -26
  515. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js.map +0 -1
  516. package/dist/components/Employee/Deductions/Actions.d.ts +0 -1
  517. package/dist/components/Employee/Deductions/DeductionsComponents.js +0 -31
  518. package/dist/components/Employee/Deductions/DeductionsComponents.js.map +0 -1
  519. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +0 -39
  520. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +0 -237
  521. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +0 -1
  522. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +0 -22
  523. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +0 -162
  524. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +0 -1
  525. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +0 -34
  526. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +0 -168
  527. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +0 -1
  528. package/dist/components/Employee/Deductions/Head.d.ts +0 -1
  529. package/dist/components/Employee/Deductions/useDeductions.d.ts +0 -30
  530. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +0 -1
  531. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +0 -1
  532. package/dist/components/Employee/DocumentSigner/DocumentList/Head.js.map +0 -1
  533. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +0 -1
  534. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +0 -24
  535. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +0 -1
  536. package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +0 -1
  537. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +0 -1
  538. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +0 -1
  539. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +0 -1
  540. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.js.map +0 -1
  541. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +0 -1
  542. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +0 -1
  543. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js.map +0 -1
  544. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/fields.js.map +0 -1
  545. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +0 -1
  546. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +0 -1
  547. package/dist/components/Employee/DocumentSigner/stateMachine.js.map +0 -1
  548. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.js.map +0 -1
  549. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js +0 -115
  550. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +0 -1
  551. package/dist/components/Employee/PaymentMethod/Actions.d.ts +0 -1
  552. package/dist/components/Employee/PaymentMethod/Actions.js +0 -20
  553. package/dist/components/Employee/PaymentMethod/Actions.js.map +0 -1
  554. package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +0 -13
  555. package/dist/components/Employee/PaymentMethod/BankAccount.js +0 -13
  556. package/dist/components/Employee/PaymentMethod/BankAccount.js.map +0 -1
  557. package/dist/components/Employee/PaymentMethod/BankAccountEdit.d.ts +0 -1
  558. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +0 -58
  559. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +0 -1
  560. package/dist/components/Employee/PaymentMethod/BankAccountsList.d.ts +0 -1
  561. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +0 -51
  562. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +0 -1
  563. package/dist/components/Employee/PaymentMethod/Head.d.ts +0 -1
  564. package/dist/components/Employee/PaymentMethod/Head.js +0 -13
  565. package/dist/components/Employee/PaymentMethod/Head.js.map +0 -1
  566. package/dist/components/Employee/PaymentMethod/PaymentMethod.d.ts +0 -9
  567. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +0 -183
  568. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +0 -1
  569. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.d.ts +0 -10
  570. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +0 -38
  571. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +0 -1
  572. package/dist/components/Employee/PaymentMethod/Split.d.ts +0 -1
  573. package/dist/components/Employee/PaymentMethod/Split.js +0 -175
  574. package/dist/components/Employee/PaymentMethod/Split.js.map +0 -1
  575. package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +0 -54
  576. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +0 -68
  577. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +0 -1
  578. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsListPresentation.d.ts +0 -0
  579. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/index.d.ts +0 -0
  580. /package/dist/components/Employee/Compensation/{compensationStateMachine.d.ts → onboarding/compensationStateMachine.d.ts} +0 -0
  581. /package/dist/components/Employee/{DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts → Compensation/shared/derivePrimaryFlsaStatus.test.d.ts} +0 -0
  582. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Actions.d.ts +0 -0
  583. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Head.d.ts +0 -0
  584. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/List.d.ts +0 -0
  585. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/useDocumentList.d.ts +0 -0
  586. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +0 -0
  587. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +0 -0
  588. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.js +0 -0
  589. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.d.ts +0 -0
  590. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.js +0 -0
  591. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/index.d.ts +0 -0
  592. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js +0 -0
  593. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js.map +0 -0
  594. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/index.d.ts +0 -0
  595. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/stateMachine.d.ts +0 -0
  596. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocumentsPresentation.d.ts +0 -0
  597. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/index.d.ts +0 -0
  598. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.d.ts +0 -0
  599. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.js +0 -0
  600. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/index.d.ts +0 -0
  601. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +0 -0
  602. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.js +0 -0
  603. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +0 -0
  604. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.js +0 -0
@@ -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":"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"}
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSplitPaymentsFormSchema.js","sources":["../../../../../../src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.ts"],"sourcesContent":["import { z } from 'zod'\nimport {\n buildFormSchema,\n type OptionalFieldsToRequire,\n type RequiredFieldConfig,\n} from '@/partner-hook-utils/form/buildFormSchema'\nimport { SPLIT_BY } from '@/shared/constants'\n\nexport const SplitPaymentsFormErrorCodes = {\n REQUIRED: 'REQUIRED',\n INVALID_PERCENTAGE: 'INVALID_PERCENTAGE',\n INVALID_AMOUNT: 'INVALID_AMOUNT',\n DUPLICATE_PRIORITIES: 'DUPLICATE_PRIORITIES',\n PERCENTAGE_TOTAL_MISMATCH: 'PERCENTAGE_TOTAL_MISMATCH',\n} as const\n\n/**\n * Synthetic form path where the schema emits the percentage-sum-to-100\n * invariant. The hook subscribes to errors at this path to drive\n * `status.hasPercentageImbalance`.\n */\nexport const PERCENTAGE_TOTAL_PATH = 'percentageTotal' as const\n\nexport type SplitPaymentsFormErrorCode =\n (typeof SplitPaymentsFormErrorCodes)[keyof typeof SplitPaymentsFormErrorCodes]\n\nexport const SPLIT_BY_VALUES = [SPLIT_BY.percentage, SPLIT_BY.amount] as const\nexport type SplitByValue = (typeof SPLIT_BY_VALUES)[number]\n\n// Cleared NumberInput emits `NaN`. Normalize NaN to `null` at the schema\n// boundary so it (a) doesn't trip Zod's built-in \"expected number, received\n// NaN\" message, and (b) flows through the same REQUIRED branch in\n// `superRefine` as an explicitly null value.\nconst splitAmountValueSchema = z.preprocess(\n v => (typeof v === 'number' && Number.isNaN(v) ? null : v),\n z.number().nullable(),\n)\n\nconst fieldValidators = {\n splitBy: z.enum(SPLIT_BY_VALUES),\n splitAmount: z.record(z.string(), splitAmountValueSchema),\n priority: z.record(z.string(), z.number()),\n}\n\nexport type SplitPaymentsFormField = keyof typeof fieldValidators\n\nexport type SplitPaymentsFormData = {\n splitBy: SplitByValue\n splitAmount: Record<string, number | null>\n priority: Record<string, number>\n}\nexport type SplitPaymentsFormOutputs = SplitPaymentsFormData\n\nconst requiredFieldsConfig = {} satisfies RequiredFieldConfig<typeof fieldValidators>\n\nexport type SplitPaymentsFormOptionalFieldsToRequire = OptionalFieldsToRequire<\n typeof requiredFieldsConfig\n>\n\ninterface SplitPaymentsFormSchemaOptions {\n optionalFieldsToRequire?: SplitPaymentsFormOptionalFieldsToRequire\n}\n\n/**\n * Resolves the remainder uuid (highest priority value) from a priority map.\n * Exported so the hook can mirror the same selection rule when deriving\n * dynamic field metadata.\n */\nexport function resolveRemainderUuid(priority: Record<string, number>): string {\n return Object.entries(priority).reduce<string>((maxId, [uuid, value]) => {\n if (!maxId) return uuid\n const currentMax = priority[maxId] ?? 0\n return value > currentMax ? uuid : maxId\n }, '')\n}\n\nexport function createSplitPaymentsFormSchema(options: SplitPaymentsFormSchemaOptions = {}) {\n return buildFormSchema(fieldValidators, {\n requiredFieldsConfig,\n requiredErrorCode: SplitPaymentsFormErrorCodes.REQUIRED,\n mode: 'update',\n optionalFieldsToRequire: options.optionalFieldsToRequire,\n superRefine: (data, ctx) => {\n if (data.splitBy === SPLIT_BY.percentage) {\n let anyInvalid = false\n let total = 0\n for (const [uuid, value] of Object.entries(data.splitAmount)) {\n if (value === null) {\n anyInvalid = true\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['splitAmount', uuid],\n message: SplitPaymentsFormErrorCodes.REQUIRED,\n })\n continue\n }\n if (!Number.isInteger(value) || value < 0 || value > 100) {\n anyInvalid = true\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['splitAmount', uuid],\n message: SplitPaymentsFormErrorCodes.INVALID_PERCENTAGE,\n })\n continue\n }\n total += value\n }\n // Only enforce sum-to-100 when every split is otherwise valid. While\n // any value is missing or out of range, the per-field error is the\n // right thing to surface; an additional sum mismatch would be noise.\n // Emitted at the synthetic form path so the hook can drive a\n // form-level alert via `status.hasPercentageImbalance` without\n // polluting per-field errors.\n if (!anyInvalid && total !== 100) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: [PERCENTAGE_TOTAL_PATH],\n message: SplitPaymentsFormErrorCodes.PERCENTAGE_TOTAL_MISMATCH,\n })\n }\n } else {\n const remainderUuid = resolveRemainderUuid(data.priority)\n for (const [uuid, value] of Object.entries(data.splitAmount)) {\n if (value === null) {\n if (uuid === remainderUuid) continue\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['splitAmount', uuid],\n message: SplitPaymentsFormErrorCodes.REQUIRED,\n })\n continue\n }\n if (value < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['splitAmount', uuid],\n message: SplitPaymentsFormErrorCodes.INVALID_AMOUNT,\n })\n }\n }\n const priorities = Object.values(data.priority)\n if (new Set(priorities).size !== priorities.length) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['priority'],\n message: SplitPaymentsFormErrorCodes.DUPLICATE_PRIORITIES,\n })\n }\n }\n },\n })\n}\n"],"names":["SplitPaymentsFormErrorCodes","PERCENTAGE_TOTAL_PATH","SPLIT_BY_VALUES","SPLIT_BY","splitAmountValueSchema","z","v","fieldValidators","requiredFieldsConfig","resolveRemainderUuid","priority","maxId","uuid","value","currentMax","createSplitPaymentsFormSchema","options","buildFormSchema","data","ctx","anyInvalid","total","remainderUuid","priorities"],"mappings":"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"}