@gusto/embedded-react-sdk 0.30.0 → 0.31.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 (318) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/components/Common/Fields/ComboBoxField/ComboBoxField.d.ts +2 -1
  3. package/dist/components/Common/Fields/ComboBoxField/ComboBoxField.js +48 -36
  4. package/dist/components/Common/Fields/ComboBoxField/ComboBoxField.js.map +1 -1
  5. package/dist/components/Common/SignatureForm/SignatureForm.js +12 -11
  6. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  7. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  8. package/dist/components/Common/SignatureForm/SignatureFormFields.js +2 -2
  9. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  10. package/dist/components/Common/UI/ComboBox/ComboBox.d.ts +1 -1
  11. package/dist/components/Common/UI/ComboBox/ComboBox.js +73 -66
  12. package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
  13. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +5 -0
  14. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  15. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  16. package/dist/components/Company/AssignSignatory/AssignSignatory.js +1 -1
  17. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +1 -1
  18. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
  19. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +16 -17
  20. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  22. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  23. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
  24. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +5 -6
  25. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  26. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  27. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  28. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  29. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  30. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +6 -5
  31. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  32. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  33. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  34. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +6 -5
  35. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  36. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +2 -2
  37. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  38. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  39. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +2 -2
  40. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  41. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  42. package/dist/components/Company/FederalTaxes/FederalTaxes.js +2 -2
  43. package/dist/components/Company/FederalTaxes/Form.js +4 -3
  44. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  45. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  46. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  47. package/dist/components/Company/Industry/Context.js +7 -6
  48. package/dist/components/Company/Industry/Context.js.map +1 -1
  49. package/dist/components/Company/Industry/Industry.js +1 -1
  50. package/dist/components/Company/Industry/Industry.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationForm/Form.js +5 -6
  52. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  53. package/dist/components/Company/Locations/LocationForm/LocationForm.js +14 -14
  54. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  55. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  56. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  57. package/dist/components/Company/Locations/LocationsList/LocationsList.js +31 -31
  58. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  59. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  60. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  61. package/dist/components/Company/OnboardingOverview/Completed.js +3 -2
  62. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  63. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +3 -2
  64. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  65. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -2
  66. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  67. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  68. package/dist/components/Company/PaySchedule/PaySchedule.js +2 -2
  69. package/dist/components/Company/PaySchedule/_parts/Edit.js +23 -24
  70. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  71. package/dist/components/Company/PaySchedule/_parts/Head.js +9 -8
  72. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  73. package/dist/components/Company/PaySchedule/_parts/List.js +12 -11
  74. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  75. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  76. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  77. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  78. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  79. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  80. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  81. package/dist/components/Contractor/Address/Address.js +2 -2
  82. package/dist/components/Contractor/Address/Form.js +7 -8
  83. package/dist/components/Contractor/Address/Form.js.map +1 -1
  84. package/dist/components/Contractor/Address/useAddress.js +6 -5
  85. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  86. package/dist/components/Contractor/ContractorList/index.js +17 -17
  87. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +2 -2
  88. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +1 -1
  89. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +102 -99
  90. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  91. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +3 -1
  92. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +35 -31
  93. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  94. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +22 -23
  95. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  96. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +8 -7
  97. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  98. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +51 -48
  99. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  100. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +58 -66
  101. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  102. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +7 -6
  103. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  104. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +3 -2
  105. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  106. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +3 -2
  107. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  108. package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
  109. package/dist/components/Contractor/Profile/useContractorProfile.js +3 -2
  110. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  111. package/dist/components/Contractor/Submit/Submit.js +1 -1
  112. package/dist/components/Contractor/index.d.ts +5 -0
  113. package/dist/components/Contractor/index.js +21 -11
  114. package/dist/components/Contractor/index.js.map +1 -1
  115. package/dist/components/Employee/Compensation/Edit.js +14 -14
  116. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +11 -10
  117. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  118. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +12 -11
  119. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  120. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +12 -11
  121. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  122. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +1 -1
  123. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +2 -3
  124. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  125. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +7 -7
  126. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  127. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +24 -24
  128. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  129. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +3 -2
  130. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  131. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.d.ts +0 -1
  132. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  133. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  134. package/dist/components/Employee/DocumentSigner/DocumentSigner.d.ts +2 -1
  135. package/dist/components/Employee/DocumentSigner/DocumentSigner.js +42 -21
  136. package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +1 -1
  137. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.d.ts +5 -0
  138. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +65 -0
  139. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -0
  140. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +10 -0
  141. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +120 -0
  142. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -0
  143. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +43 -0
  144. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +51 -0
  145. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -0
  146. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts +1 -0
  147. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.d.ts +4 -0
  148. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.js +199 -0
  149. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.js.map +1 -0
  150. package/dist/components/Employee/{EmploymentEligibility → DocumentSigner/EmploymentEligibility}/index.d.ts +0 -1
  151. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +107 -0
  152. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js +284 -0
  153. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -0
  154. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.module.scss.js +10 -0
  155. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.module.scss.js.map +1 -0
  156. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +1 -1
  157. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  158. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  159. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.d.ts +6 -0
  160. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js +33 -14
  161. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js.map +1 -1
  162. package/dist/components/Employee/DocumentSigner/stateMachine.d.ts +1 -0
  163. package/dist/components/Employee/DocumentSigner/stateMachine.js +41 -23
  164. package/dist/components/Employee/DocumentSigner/stateMachine.js.map +1 -1
  165. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.d.ts +10 -0
  166. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.js +55 -0
  167. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.js.map +1 -0
  168. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +18 -0
  169. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js +116 -0
  170. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -0
  171. package/dist/components/Employee/EmployeeDocuments/index.d.ts +2 -0
  172. package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -3
  173. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  174. package/dist/components/Employee/EmployeeList/Head.js +3 -2
  175. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  176. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  177. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  178. package/dist/components/Employee/FederalTaxes/FederalForm.js +7 -7
  179. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -3
  180. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  181. package/dist/components/Employee/Landing/Landing.js +31 -26
  182. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  183. package/dist/components/Employee/OnboardingFlow/OnboardingFlow.d.ts +2 -1
  184. package/dist/components/Employee/OnboardingFlow/OnboardingFlow.js +23 -21
  185. package/dist/components/Employee/OnboardingFlow/OnboardingFlow.js.map +1 -1
  186. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -0
  187. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  188. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.d.ts +1 -0
  189. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js +68 -49
  190. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  191. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  192. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +2 -2
  193. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +1 -1
  194. package/dist/components/Employee/PaymentMethod/Split.js +8 -8
  195. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  196. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  197. package/dist/components/Employee/Profile/AdminPersonalDetails.js +1 -1
  198. package/dist/components/Employee/Profile/HomeAddress.js +9 -10
  199. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  200. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +10 -11
  201. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  202. package/dist/components/Employee/Profile/Profile.js +11 -11
  203. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  204. package/dist/components/Employee/Profile/useProfile.js +4 -3
  205. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  206. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +3 -0
  207. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +43 -30
  208. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  209. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.d.ts +1 -1
  210. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.js +23 -17
  211. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.js.map +1 -1
  212. package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js +36 -46
  213. package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js.map +1 -1
  214. package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -3
  215. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  216. package/dist/components/Employee/Taxes/FederalForm.js +7 -7
  217. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  218. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  219. package/dist/components/Employee/index.d.ts +3 -0
  220. package/dist/components/Employee/index.js +20 -16
  221. package/dist/components/Employee/index.js.map +1 -1
  222. package/dist/components/Flow/Flow.js +3 -2
  223. package/dist/components/Flow/Flow.js.map +1 -1
  224. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +63 -52
  225. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  226. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +4 -4
  227. package/dist/components/InformationRequests/InformationRequests.js +1 -1
  228. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +9 -9
  229. package/dist/components/Payroll/OffCycle/OffCycleFlow.d.ts +2 -0
  230. package/dist/components/Payroll/OffCycle/OffCycleFlow.js +29 -0
  231. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -0
  232. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +13 -0
  233. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +45 -0
  234. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -0
  235. package/dist/components/Payroll/OffCycle/index.d.ts +3 -0
  236. package/dist/components/Payroll/OffCycle/offCycleStateMachine.d.ts +6 -0
  237. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js +58 -0
  238. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -0
  239. package/dist/components/Payroll/OffCycle/offCycleStateMachine.test.d.ts +1 -0
  240. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +2 -0
  241. package/dist/components/Payroll/{PayPeriodDateForm/PayPeriodDateFormTypes.d.ts → OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts} +5 -19
  242. package/dist/components/Payroll/OffCyclePayPeriodDateForm/index.d.ts +2 -0
  243. package/dist/components/Payroll/{PayPeriodDateForm/usePayPeriodDateValidation.d.ts → OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.d.ts} +1 -1
  244. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +2 -1
  245. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  246. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +3 -2
  247. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  248. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +12 -12
  249. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +51 -49
  250. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  251. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +2 -1
  252. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +93 -90
  253. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  254. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -0
  255. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +26 -25
  256. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  257. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +38 -39
  258. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  259. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +18 -17
  260. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  261. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +3 -2
  262. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  263. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +3 -2
  264. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  265. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +23 -21
  266. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  267. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +3 -2
  268. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  269. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +3 -2
  270. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  271. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +1 -1
  272. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +6 -6
  273. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +3 -2
  274. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  275. package/dist/components/Payroll/helpers.d.ts +5 -0
  276. package/dist/components/Payroll/helpers.js +41 -40
  277. package/dist/components/Payroll/helpers.js.map +1 -1
  278. package/dist/components/Payroll/index.d.ts +3 -2
  279. package/dist/components/Payroll/index.js +16 -16
  280. package/dist/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  281. package/dist/components/Payroll/usePreparedPayrollData.js +3 -2
  282. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  283. package/dist/contexts/ApiProvider/ApiProvider.js +6 -6
  284. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  285. package/dist/i18n/I18n.js +5 -5
  286. package/dist/i18n/I18n.js.map +1 -1
  287. package/dist/i18n/en/Contractor.Payments.CreatePayment.json.js +1 -1
  288. package/dist/i18n/en/Employee.EmployeeDocuments.json.js +12 -0
  289. package/dist/i18n/en/Employee.EmployeeDocuments.json.js.map +1 -0
  290. package/dist/i18n/en/Employee.EmploymentEligibility.json.js +15 -19
  291. package/dist/i18n/en/Employee.EmploymentEligibility.json.js.map +1 -1
  292. package/dist/i18n/en/Employee.I9SignatureForm.json.js +78 -0
  293. package/dist/i18n/en/Employee.I9SignatureForm.json.js.map +1 -0
  294. package/dist/i18n/en/Payroll.OffCycle.json.js +8 -0
  295. package/dist/i18n/en/Payroll.OffCycle.json.js.map +1 -0
  296. package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js +18 -0
  297. package/dist/i18n/en/Payroll.OffCyclePayPeriodDateForm.json.js.map +1 -0
  298. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +1 -1
  299. package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
  300. package/dist/shared/constants.d.ts +9 -0
  301. package/dist/shared/constants.js +60 -53
  302. package/dist/shared/constants.js.map +1 -1
  303. package/dist/style.css +1 -1
  304. package/dist/types/i18next.d.ts +110 -41
  305. package/package.json +14 -14
  306. package/dist/components/Employee/EmploymentEligibility/EmploymentEligibility.d.ts +0 -3
  307. package/dist/components/Employee/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +0 -37
  308. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.d.ts +0 -2
  309. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js +0 -35
  310. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js.map +0 -1
  311. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.d.ts +0 -2
  312. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js +0 -65
  313. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js.map +0 -1
  314. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js +0 -18
  315. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js.map +0 -1
  316. package/dist/components/Payroll/PayPeriodDateForm/index.d.ts +0 -3
  317. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js +0 -32
  318. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js.map +0 -1
@@ -6,15 +6,15 @@ import { useComponentContext as D } from "../../../contexts/ComponentAdapter/use
6
6
  import { useI18n as I } from "../../../i18n/I18n.js";
7
7
  import { Form as O } from "../../Common/Form/Form.js";
8
8
  import { Grid as n } from "../../Common/Grid/Grid.js";
9
- import { usePlaceholderSSN as x, normalizeSSN as w } from "../../../helpers/ssn.js";
10
- import { usePlaceholderEin as E, normalizeEin as j } from "../../../helpers/federalEin.js";
11
- import { ContractorOnboardingStatus as v } from "../../../shared/constants.js";
9
+ import { Flex as x } from "../../Common/Flex/Flex.js";
12
10
  import { TextInputField as l } from "../../Common/Fields/TextInputField/TextInputField.js";
11
+ import { NumberInputField as w } from "../../Common/Fields/NumberInputField/NumberInputField.js";
13
12
  import { RadioGroupField as d } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
14
- import { NumberInputField as G } from "../../Common/Fields/NumberInputField/NumberInputField.js";
15
- import { Flex as z } from "../../Common/Flex/Flex.js";
16
- import { SwitchField as A } from "../../Common/Fields/SwitchField/SwitchField.js";
17
- import { DatePickerField as B } from "../../Common/Fields/DatePickerField/DatePickerField.js";
13
+ import { SwitchField as E } from "../../Common/Fields/SwitchField/SwitchField.js";
14
+ import { DatePickerField as j } from "../../Common/Fields/DatePickerField/DatePickerField.js";
15
+ import { usePlaceholderSSN as v, normalizeSSN as G } from "../../../helpers/ssn.js";
16
+ import { usePlaceholderEin as z, normalizeEin as A } from "../../../helpers/federalEin.js";
17
+ import { ContractorOnboardingStatus as B } from "../../../shared/constants.js";
18
18
  function re({
19
19
  formMethods: u,
20
20
  handleSubmit: f,
@@ -33,7 +33,7 @@ function re({
33
33
  }) {
34
34
  const a = D();
35
35
  I("Contractor.Profile");
36
- const { t: e } = T("Contractor.Profile"), q = x(t?.hasSsn ?? !1), P = E(t?.hasEin ?? !1);
36
+ const { t: e } = T("Contractor.Profile"), q = v(t?.hasSsn ?? !1), P = z(t?.hasEin ?? !1);
37
37
  return /* @__PURE__ */ i("section", { className: F, children: /* @__PURE__ */ i(S, { ...u, children: /* @__PURE__ */ r(O, { onSubmit: f, children: [
38
38
  /* @__PURE__ */ r(n, { gridTemplateColumns: "1fr", gap: 24, className: "mb-8", children: [
39
39
  /* @__PURE__ */ r("header", { children: [
@@ -42,12 +42,12 @@ function re({
42
42
  ] }),
43
43
  /* @__PURE__ */ i("div", { className: C.switchFieldContainer, children: /* @__PURE__ */ r(n, { gap: 16, children: [
44
44
  /* @__PURE__ */ i(
45
- A,
45
+ E,
46
46
  {
47
47
  name: "selfOnboarding",
48
48
  label: e("fields.selfOnboarding.label"),
49
49
  description: e("fields.selfOnboarding.description"),
50
- isDisabled: t && t.onboardingStatus !== v.ADMIN_ONBOARDING_INCOMPLETE
50
+ isDisabled: t && t.onboardingStatus !== B.ADMIN_ONBOARDING_INCOMPLETE
51
51
  }
52
52
  ),
53
53
  p && /* @__PURE__ */ i(
@@ -81,7 +81,7 @@ function re({
81
81
  name: "ssn",
82
82
  label: e("fields.ssn.label"),
83
83
  placeholder: q,
84
- transform: w,
84
+ transform: G,
85
85
  isRequired: !0
86
86
  }
87
87
  )
@@ -101,7 +101,7 @@ function re({
101
101
  name: "ein",
102
102
  label: e("fields.ein.label"),
103
103
  placeholder: P,
104
- transform: j,
104
+ transform: A,
105
105
  isRequired: !0
106
106
  }
107
107
  )
@@ -116,7 +116,7 @@ function re({
116
116
  }
117
117
  ),
118
118
  h && /* @__PURE__ */ i(
119
- G,
119
+ w,
120
120
  {
121
121
  name: "hourlyRate",
122
122
  label: e("fields.hourlyRate.label"),
@@ -126,7 +126,7 @@ function re({
126
126
  }
127
127
  ),
128
128
  /* @__PURE__ */ i(
129
- B,
129
+ j,
130
130
  {
131
131
  name: "startDate",
132
132
  label: e("fields.startDate.label"),
@@ -135,7 +135,7 @@ function re({
135
135
  }
136
136
  )
137
137
  ] }),
138
- /* @__PURE__ */ i(z, { gap: 12, justifyContent: "flex-end", children: /* @__PURE__ */ i(a.Button, { type: "submit", variant: "primary", isDisabled: o.isSubmitting, children: o.isSubmitting ? e(s ? "buttons.updating" : "buttons.creating") : e(s ? "buttons.update" : "buttons.create") }) })
138
+ /* @__PURE__ */ i(x, { gap: 12, justifyContent: "flex-end", children: /* @__PURE__ */ i(a.Button, { type: "submit", variant: "primary", isDisabled: o.isSubmitting, children: o.isSubmitting ? e(s ? "buttons.updating" : "buttons.creating") : e(s ? "buttons.update" : "buttons.create") }) })
139
139
  ] }) }) });
140
140
  }
141
141
  export {
@@ -15,6 +15,7 @@ import { useBase as Q } from "../../Base/useBase.js";
15
15
  import { ContractorSelfOnboardingStatuses as Y, componentEvents as b, ContractorOnboardingStatus as x } from "../../../shared/constants.js";
16
16
  import "classnames";
17
17
  import "../../../contexts/ComponentAdapter/useComponentContext.js";
18
+ import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
19
  import { removeNonDigits as ee } from "../../../helpers/formattedStrings.js";
19
20
  import { useI18n as oe } from "../../../i18n/I18n.js";
20
21
  import { SSN_REGEX as se, NAME_REGEX as N } from "../../../helpers/validations.js";
@@ -93,7 +94,7 @@ const n = J, a = K, ie = s.object({
93
94
  });
94
95
  }
95
96
  );
96
- function Fe({
97
+ function Pe({
97
98
  companyId: t,
98
99
  contractorId: f,
99
100
  defaultValues: m,
@@ -226,6 +227,6 @@ export {
226
227
  a as ContractorType,
227
228
  n as WageType,
228
229
  ne as createContractorProfileValidationSchema,
229
- Fe as useContractorProfile
230
+ Pe as useContractorProfile
230
231
  };
231
232
  //# sourceMappingURL=useContractorProfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorProfile.js","sources":["../../../../src/components/Contractor/Profile/useContractorProfile.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { useForm, useWatch } from 'react-hook-form'\nimport { z } from 'zod'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport type { PostV1CompaniesCompanyUuidContractorsRequestBody } from '@gusto/embedded-api/models/operations/postv1companiescompanyuuidcontractors'\nimport type { PutV1ContractorsContractorUuidRequestBody } from '@gusto/embedded-api/models/operations/putv1contractorscontractoruuid'\nimport {\n WageType as ApiWageType,\n ContractorType as ApiContractorType,\n type Contractor,\n} from '@gusto/embedded-api/models/components/contractor'\nimport { useBase } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n ContractorOnboardingStatus,\n ContractorSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport { SSN_REGEX, NAME_REGEX } from '@/helpers/validations'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { normalizeEin } from '@/helpers/federalEin'\n\n// Re-export the API types for convenience\nexport const WageType = ApiWageType\nexport const ContractorType = ApiContractorType\n\n// Form schema definition - exported for use in stories and tests\nconst ContractorProfileSchema = z.object({\n // Self-onboarding toggle\n selfOnboarding: z.boolean(),\n email: z.string().email().optional(),\n\n // Required contractor fields\n contractorType: z.enum([ContractorType.Individual, ContractorType.Business]),\n wageType: z.enum([WageType.Hourly, WageType.Fixed]),\n startDate: z.date(),\n\n // Individual contractor fields\n firstName: z.string().min(1).regex(NAME_REGEX).optional(),\n middleInitial: z.string().optional(),\n lastName: z.string().min(1).regex(NAME_REGEX).optional(),\n ssn: z.string().optional(),\n\n // Business contractor fields\n businessName: z.string().optional(),\n ein: z.string().optional(),\n\n // Wage fields\n hourlyRate: z.number().min(0).optional(),\n})\n\nexport type ContractorProfileFormData = z.infer<typeof ContractorProfileSchema>\n\n// Create validation schema - exported for stories\nexport const createContractorProfileValidationSchema = (\n t: (key: string) => string,\n hasSsn: boolean,\n hasEin: boolean,\n) => {\n return ContractorProfileSchema.superRefine(\n (data: ContractorProfileFormData, ctx: z.RefinementCtx) => {\n // Email validation for contractor invitation\n if (data.selfOnboarding && !data.email) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['email'],\n message: t('validations.email'),\n })\n }\n\n // Individual contractor validations\n if (data.contractorType === ContractorType.Individual) {\n if (!data.firstName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['firstName'],\n message: t('validations.firstName'),\n })\n }\n\n if (!data.lastName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['lastName'],\n message: t('validations.lastName'),\n })\n }\n\n if (!data.ssn) {\n if (!hasSsn && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssn'),\n })\n }\n } else {\n // Validate SSN format\n const cleanSSN = removeNonDigits(data.ssn)\n if (!SSN_REGEX.test(cleanSSN)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssnFormat'),\n })\n }\n }\n }\n\n // Business contractor validations\n if (data.contractorType === ContractorType.Business) {\n if (!data.businessName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['businessName'],\n message: t('validations.businessName'),\n })\n }\n\n if (!data.ein) {\n if (!hasEin && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.ein'),\n })\n }\n } else {\n // Validate EIN format after normalization (XX-XXXXXXX)\n const normalizedEin = normalizeEin(data.ein)\n if (!/^\\d{2}-\\d{7}$/.test(normalizedEin)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.einFormat'),\n })\n }\n }\n }\n\n // Hourly rate validation for hourly contractors\n if (data.wageType === WageType.Hourly) {\n if (data.hourlyRate === undefined || data.hourlyRate < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['hourlyRate'],\n message: t('validations.hourlyRate'),\n })\n }\n }\n },\n )\n}\n\nexport interface UseContractorProfileProps {\n companyId: string\n contractorId?: string\n defaultValues?: Partial<ContractorProfileFormData>\n existingContractor?: Contractor\n}\n\nexport function useContractorProfile({\n companyId,\n contractorId,\n defaultValues,\n existingContractor,\n}: UseContractorProfileProps) {\n useI18n('Contractor.Profile')\n const { t } = useTranslation('Contractor.Profile')\n const { onEvent, baseSubmitHandler } = useBase()\n\n // Create validation schema with translations\n const validationSchema = createContractorProfileValidationSchema(\n t as (key: string) => string,\n existingContractor?.hasSsn ?? false,\n existingContractor?.hasEin ?? false,\n )\n\n // API mutations\n const { mutateAsync: createContractor, isPending: isCreating } = useContractorsCreateMutation()\n const { mutateAsync: updateContractor, isPending: isUpdating } = useContractorsUpdateMutation()\n\n // Prepare default values from existing contractor or provided defaults\n const formDefaultValues = useMemo(\n () => ({\n selfOnboarding: false,\n contractorType: ContractorType.Business,\n wageType: WageType.Fixed,\n startDate: new Date(),\n ...defaultValues,\n // Override with existing contractor data if available\n ...(existingContractor && {\n selfOnboarding: existingContractor.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n ContractorSelfOnboardingStatuses.has(existingContractor.onboardingStatus)\n : false,\n contractorType: existingContractor.type || ContractorType.Business,\n wageType: existingContractor.wageType || WageType.Fixed,\n startDate: existingContractor.startDate\n ? new Date(existingContractor.startDate)\n : new Date(),\n firstName: existingContractor.firstName || undefined,\n middleInitial: existingContractor.middleInitial || undefined,\n lastName: existingContractor.lastName || undefined,\n businessName: existingContractor.businessName || undefined,\n email: existingContractor.email || undefined,\n hourlyRate: existingContractor.hourlyRate\n ? (() => {\n const parsed = parseFloat(existingContractor.hourlyRate)\n return isNaN(parsed) ? undefined : parsed\n })()\n : undefined,\n }),\n }),\n [existingContractor, defaultValues],\n )\n\n // Form setup\n const formMethods = useForm<ContractorProfileFormData, unknown, ContractorProfileFormData>({\n resolver: zodResolver(validationSchema),\n defaultValues: formDefaultValues,\n })\n\n const { handleSubmit, formState } = formMethods\n\n // Watch form values for conditional rendering\n const watchedType = useWatch({ control: formMethods.control, name: 'contractorType' })\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const watchedSelfOnboarding = useWatch({\n control: formMethods.control,\n name: 'selfOnboarding',\n })\n\n // Helper function to transform form data to API payload\n const transformFormDataToCreatePayload = (\n data: ContractorProfileFormData,\n ): PostV1CompaniesCompanyUuidContractorsRequestBody => {\n const basePayload = {\n type: data.contractorType,\n wageType: data.wageType,\n startDate: formatDateToStringDate(data.startDate) || '',\n selfOnboarding: data.selfOnboarding,\n email: data.selfOnboarding ? data.email : undefined,\n hourlyRate: data.wageType === WageType.Hourly ? String(data.hourlyRate) : undefined,\n isActive: true,\n }\n\n if (data.contractorType === ContractorType.Individual) {\n return {\n ...basePayload,\n firstName: data.firstName,\n middleInitial: data.middleInitial || undefined,\n lastName: data.lastName,\n ssn: data.ssn,\n fileNewHireReport: false, // Default value\n }\n } else {\n return {\n ...basePayload,\n fileNewHireReport: false, // Default value\n businessName: data.businessName,\n ein: data.ein?.replace(/-/g, ''),\n }\n }\n }\n\n const transformFormDataToUpdatePayload = (\n data: ContractorProfileFormData,\n version: string,\n ): PutV1ContractorsContractorUuidRequestBody => {\n const createPayload = transformFormDataToCreatePayload(data)\n return {\n ...createPayload,\n version,\n }\n }\n\n // Event handlers\n const onSubmit: SubmitHandler<ContractorProfileFormData> = async data => {\n await baseSubmitHandler(data, async payload => {\n let contractorId = existingContractor?.uuid\n if (existingContractor) {\n // Update existing contractor\n if (!existingContractor.version) {\n throw new Error('Contractor version is required for updates')\n }\n const version = existingContractor.version\n const apiPayload = transformFormDataToUpdatePayload(payload, version)\n\n const updateResponse = await updateContractor({\n request: {\n contractorUuid: contractorId!,\n requestBody: apiPayload,\n },\n })\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, updateResponse.contractor)\n } else {\n // Create new contractor\n const apiPayload = transformFormDataToCreatePayload(payload)\n\n const createResponse = await createContractor({\n request: {\n companyUuid: companyId,\n requestBody: apiPayload,\n },\n })\n\n contractorId = createResponse.contractor?.uuid\n onEvent(componentEvents.CONTRACTOR_CREATED, createResponse.contractor)\n }\n\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n selfOnboarding:\n payload.selfOnboarding &&\n existingContractor?.onboardingStatus !==\n ContractorOnboardingStatus.ADMIN_ONBOARDING_REVIEW,\n contractorId,\n })\n })\n }\n\n // Conditional rendering helpers\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n const shouldShowEmailField = !!watchedSelfOnboarding\n const shouldShowBusinessFields = watchedType === ContractorType.Business\n const shouldShowIndividualFields = watchedType === ContractorType.Individual\n const shouldShowHourlyRate = watchedWageType === WageType.Hourly\n const shouldShowSsnField = watchedType === ContractorType.Individual && !watchedSelfOnboarding\n const shouldShowEinField = watchedType === ContractorType.Business && !watchedSelfOnboarding\n\n // Form field options\n const contractorTypeOptions = [\n { label: 'Individual', value: ContractorType.Individual },\n { label: 'Business', value: ContractorType.Business },\n ]\n\n const wageTypeOptions = [\n { label: 'Hourly', value: WageType.Hourly },\n { label: 'Fixed', value: WageType.Fixed },\n ]\n\n // Determine if we're currently submitting (creating or updating)\n const isSubmitting = isCreating || isUpdating\n // Return only what the component actually needs\n return {\n // Form methods and submission\n formMethods,\n handleSubmit: handleSubmit(onSubmit),\n formState: {\n ...formState,\n isSubmitting,\n },\n\n // Conditional rendering flags\n shouldShowEmailField,\n shouldShowBusinessFields,\n shouldShowIndividualFields,\n shouldShowHourlyRate,\n shouldShowSsnField,\n shouldShowEinField,\n\n // Form options\n contractorTypeOptions,\n wageTypeOptions,\n\n // Component state\n isEditing: !!contractorId,\n }\n}\n"],"names":["WageType","ApiWageType","ContractorType","ApiContractorType","ContractorProfileSchema","z","NAME_REGEX","createContractorProfileValidationSchema","hasSsn","hasEin","data","ctx","cleanSSN","removeNonDigits","SSN_REGEX","normalizedEin","normalizeEin","useContractorProfile","companyId","contractorId","defaultValues","existingContractor","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","validationSchema","createContractor","isCreating","useContractorsCreateMutation","updateContractor","isUpdating","useContractorsUpdateMutation","formDefaultValues","useMemo","ContractorSelfOnboardingStatuses","parsed","formMethods","useForm","zodResolver","handleSubmit","formState","watchedType","useWatch","watchedWageType","watchedSelfOnboarding","transformFormDataToCreatePayload","basePayload","formatDateToStringDate","transformFormDataToUpdatePayload","version","onSubmit","payload","apiPayload","updateResponse","componentEvents","createResponse","ContractorOnboardingStatus","shouldShowEmailField","shouldShowBusinessFields","shouldShowIndividualFields","shouldShowHourlyRate","shouldShowSsnField","shouldShowEinField","contractorTypeOptions","wageTypeOptions","isSubmitting"],"mappings":"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"}
1
+ {"version":3,"file":"useContractorProfile.js","sources":["../../../../src/components/Contractor/Profile/useContractorProfile.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { SubmitHandler } from 'react-hook-form'\nimport { useForm, useWatch } from 'react-hook-form'\nimport { z } from 'zod'\nimport { useContractorsCreateMutation } from '@gusto/embedded-api/react-query/contractorsCreate'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport type { PostV1CompaniesCompanyUuidContractorsRequestBody } from '@gusto/embedded-api/models/operations/postv1companiescompanyuuidcontractors'\nimport type { PutV1ContractorsContractorUuidRequestBody } from '@gusto/embedded-api/models/operations/putv1contractorscontractoruuid'\nimport {\n WageType as ApiWageType,\n ContractorType as ApiContractorType,\n type Contractor,\n} from '@gusto/embedded-api/models/components/contractor'\nimport { useBase } from '@/components/Base'\nimport { useI18n } from '@/i18n'\nimport {\n componentEvents,\n ContractorOnboardingStatus,\n ContractorSelfOnboardingStatuses,\n} from '@/shared/constants'\nimport { SSN_REGEX, NAME_REGEX } from '@/helpers/validations'\nimport { removeNonDigits } from '@/helpers/formattedStrings'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { normalizeEin } from '@/helpers/federalEin'\n\n// Re-export the API types for convenience\nexport const WageType = ApiWageType\nexport const ContractorType = ApiContractorType\n\n// Form schema definition - exported for use in stories and tests\nconst ContractorProfileSchema = z.object({\n // Self-onboarding toggle\n selfOnboarding: z.boolean(),\n email: z.string().email().optional(),\n\n // Required contractor fields\n contractorType: z.enum([ContractorType.Individual, ContractorType.Business]),\n wageType: z.enum([WageType.Hourly, WageType.Fixed]),\n startDate: z.date(),\n\n // Individual contractor fields\n firstName: z.string().min(1).regex(NAME_REGEX).optional(),\n middleInitial: z.string().optional(),\n lastName: z.string().min(1).regex(NAME_REGEX).optional(),\n ssn: z.string().optional(),\n\n // Business contractor fields\n businessName: z.string().optional(),\n ein: z.string().optional(),\n\n // Wage fields\n hourlyRate: z.number().min(0).optional(),\n})\n\nexport type ContractorProfileFormData = z.infer<typeof ContractorProfileSchema>\n\n// Create validation schema - exported for stories\nexport const createContractorProfileValidationSchema = (\n t: (key: string) => string,\n hasSsn: boolean,\n hasEin: boolean,\n) => {\n return ContractorProfileSchema.superRefine(\n (data: ContractorProfileFormData, ctx: z.RefinementCtx) => {\n // Email validation for contractor invitation\n if (data.selfOnboarding && !data.email) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['email'],\n message: t('validations.email'),\n })\n }\n\n // Individual contractor validations\n if (data.contractorType === ContractorType.Individual) {\n if (!data.firstName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['firstName'],\n message: t('validations.firstName'),\n })\n }\n\n if (!data.lastName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['lastName'],\n message: t('validations.lastName'),\n })\n }\n\n if (!data.ssn) {\n if (!hasSsn && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssn'),\n })\n }\n } else {\n // Validate SSN format\n const cleanSSN = removeNonDigits(data.ssn)\n if (!SSN_REGEX.test(cleanSSN)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ssn'],\n message: t('validations.ssnFormat'),\n })\n }\n }\n }\n\n // Business contractor validations\n if (data.contractorType === ContractorType.Business) {\n if (!data.businessName) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['businessName'],\n message: t('validations.businessName'),\n })\n }\n\n if (!data.ein) {\n if (!hasEin && !data.selfOnboarding) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.ein'),\n })\n }\n } else {\n // Validate EIN format after normalization (XX-XXXXXXX)\n const normalizedEin = normalizeEin(data.ein)\n if (!/^\\d{2}-\\d{7}$/.test(normalizedEin)) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['ein'],\n message: t('validations.einFormat'),\n })\n }\n }\n }\n\n // Hourly rate validation for hourly contractors\n if (data.wageType === WageType.Hourly) {\n if (data.hourlyRate === undefined || data.hourlyRate < 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['hourlyRate'],\n message: t('validations.hourlyRate'),\n })\n }\n }\n },\n )\n}\n\nexport interface UseContractorProfileProps {\n companyId: string\n contractorId?: string\n defaultValues?: Partial<ContractorProfileFormData>\n existingContractor?: Contractor\n}\n\nexport function useContractorProfile({\n companyId,\n contractorId,\n defaultValues,\n existingContractor,\n}: UseContractorProfileProps) {\n useI18n('Contractor.Profile')\n const { t } = useTranslation('Contractor.Profile')\n const { onEvent, baseSubmitHandler } = useBase()\n\n // Create validation schema with translations\n const validationSchema = createContractorProfileValidationSchema(\n t as (key: string) => string,\n existingContractor?.hasSsn ?? false,\n existingContractor?.hasEin ?? false,\n )\n\n // API mutations\n const { mutateAsync: createContractor, isPending: isCreating } = useContractorsCreateMutation()\n const { mutateAsync: updateContractor, isPending: isUpdating } = useContractorsUpdateMutation()\n\n // Prepare default values from existing contractor or provided defaults\n const formDefaultValues = useMemo(\n () => ({\n selfOnboarding: false,\n contractorType: ContractorType.Business,\n wageType: WageType.Fixed,\n startDate: new Date(),\n ...defaultValues,\n // Override with existing contractor data if available\n ...(existingContractor && {\n selfOnboarding: existingContractor.onboardingStatus\n ? // @ts-expect-error: onboarding_status during runtime can be one of self onboarding statuses\n ContractorSelfOnboardingStatuses.has(existingContractor.onboardingStatus)\n : false,\n contractorType: existingContractor.type || ContractorType.Business,\n wageType: existingContractor.wageType || WageType.Fixed,\n startDate: existingContractor.startDate\n ? new Date(existingContractor.startDate)\n : new Date(),\n firstName: existingContractor.firstName || undefined,\n middleInitial: existingContractor.middleInitial || undefined,\n lastName: existingContractor.lastName || undefined,\n businessName: existingContractor.businessName || undefined,\n email: existingContractor.email || undefined,\n hourlyRate: existingContractor.hourlyRate\n ? (() => {\n const parsed = parseFloat(existingContractor.hourlyRate)\n return isNaN(parsed) ? undefined : parsed\n })()\n : undefined,\n }),\n }),\n [existingContractor, defaultValues],\n )\n\n // Form setup\n const formMethods = useForm<ContractorProfileFormData, unknown, ContractorProfileFormData>({\n resolver: zodResolver(validationSchema),\n defaultValues: formDefaultValues,\n })\n\n const { handleSubmit, formState } = formMethods\n\n // Watch form values for conditional rendering\n const watchedType = useWatch({ control: formMethods.control, name: 'contractorType' })\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const watchedSelfOnboarding = useWatch({\n control: formMethods.control,\n name: 'selfOnboarding',\n })\n\n // Helper function to transform form data to API payload\n const transformFormDataToCreatePayload = (\n data: ContractorProfileFormData,\n ): PostV1CompaniesCompanyUuidContractorsRequestBody => {\n const basePayload = {\n type: data.contractorType,\n wageType: data.wageType,\n startDate: formatDateToStringDate(data.startDate) || '',\n selfOnboarding: data.selfOnboarding,\n email: data.selfOnboarding ? data.email : undefined,\n hourlyRate: data.wageType === WageType.Hourly ? String(data.hourlyRate) : undefined,\n isActive: true,\n }\n\n if (data.contractorType === ContractorType.Individual) {\n return {\n ...basePayload,\n firstName: data.firstName,\n middleInitial: data.middleInitial || undefined,\n lastName: data.lastName,\n ssn: data.ssn,\n fileNewHireReport: false, // Default value\n }\n } else {\n return {\n ...basePayload,\n fileNewHireReport: false, // Default value\n businessName: data.businessName,\n ein: data.ein?.replace(/-/g, ''),\n }\n }\n }\n\n const transformFormDataToUpdatePayload = (\n data: ContractorProfileFormData,\n version: string,\n ): PutV1ContractorsContractorUuidRequestBody => {\n const createPayload = transformFormDataToCreatePayload(data)\n return {\n ...createPayload,\n version,\n }\n }\n\n // Event handlers\n const onSubmit: SubmitHandler<ContractorProfileFormData> = async data => {\n await baseSubmitHandler(data, async payload => {\n let contractorId = existingContractor?.uuid\n if (existingContractor) {\n // Update existing contractor\n if (!existingContractor.version) {\n throw new Error('Contractor version is required for updates')\n }\n const version = existingContractor.version\n const apiPayload = transformFormDataToUpdatePayload(payload, version)\n\n const updateResponse = await updateContractor({\n request: {\n contractorUuid: contractorId!,\n requestBody: apiPayload,\n },\n })\n\n onEvent(componentEvents.CONTRACTOR_UPDATED, updateResponse.contractor)\n } else {\n // Create new contractor\n const apiPayload = transformFormDataToCreatePayload(payload)\n\n const createResponse = await createContractor({\n request: {\n companyUuid: companyId,\n requestBody: apiPayload,\n },\n })\n\n contractorId = createResponse.contractor?.uuid\n onEvent(componentEvents.CONTRACTOR_CREATED, createResponse.contractor)\n }\n\n onEvent(componentEvents.CONTRACTOR_PROFILE_DONE, {\n selfOnboarding:\n payload.selfOnboarding &&\n existingContractor?.onboardingStatus !==\n ContractorOnboardingStatus.ADMIN_ONBOARDING_REVIEW,\n contractorId,\n })\n })\n }\n\n // Conditional rendering helpers\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-conversion\n const shouldShowEmailField = !!watchedSelfOnboarding\n const shouldShowBusinessFields = watchedType === ContractorType.Business\n const shouldShowIndividualFields = watchedType === ContractorType.Individual\n const shouldShowHourlyRate = watchedWageType === WageType.Hourly\n const shouldShowSsnField = watchedType === ContractorType.Individual && !watchedSelfOnboarding\n const shouldShowEinField = watchedType === ContractorType.Business && !watchedSelfOnboarding\n\n // Form field options\n const contractorTypeOptions = [\n { label: 'Individual', value: ContractorType.Individual },\n { label: 'Business', value: ContractorType.Business },\n ]\n\n const wageTypeOptions = [\n { label: 'Hourly', value: WageType.Hourly },\n { label: 'Fixed', value: WageType.Fixed },\n ]\n\n // Determine if we're currently submitting (creating or updating)\n const isSubmitting = isCreating || isUpdating\n // Return only what the component actually needs\n return {\n // Form methods and submission\n formMethods,\n handleSubmit: handleSubmit(onSubmit),\n formState: {\n ...formState,\n isSubmitting,\n },\n\n // Conditional rendering flags\n shouldShowEmailField,\n shouldShowBusinessFields,\n shouldShowIndividualFields,\n shouldShowHourlyRate,\n shouldShowSsnField,\n shouldShowEinField,\n\n // Form options\n contractorTypeOptions,\n wageTypeOptions,\n\n // Component state\n isEditing: !!contractorId,\n }\n}\n"],"names":["WageType","ApiWageType","ContractorType","ApiContractorType","ContractorProfileSchema","z","NAME_REGEX","createContractorProfileValidationSchema","hasSsn","hasEin","data","ctx","cleanSSN","removeNonDigits","SSN_REGEX","normalizedEin","normalizeEin","useContractorProfile","companyId","contractorId","defaultValues","existingContractor","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","validationSchema","createContractor","isCreating","useContractorsCreateMutation","updateContractor","isUpdating","useContractorsUpdateMutation","formDefaultValues","useMemo","ContractorSelfOnboardingStatuses","parsed","formMethods","useForm","zodResolver","handleSubmit","formState","watchedType","useWatch","watchedWageType","watchedSelfOnboarding","transformFormDataToCreatePayload","basePayload","formatDateToStringDate","transformFormDataToUpdatePayload","version","onSubmit","payload","apiPayload","updateResponse","componentEvents","createResponse","ContractorOnboardingStatus","shouldShowEmailField","shouldShowBusinessFields","shouldShowIndividualFields","shouldShowHourlyRate","shouldShowSsnField","shouldShowEinField","contractorTypeOptions","wageTypeOptions","isSubmitting"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BO,MAAMA,IAAWC,GACXC,IAAiBC,GAGxBC,KAA0BC,EAAE,OAAO;AAAA;AAAA,EAEvC,gBAAgBA,EAAE,QAAA;AAAA,EAClB,OAAOA,EAAE,OAAA,EAAS,MAAA,EAAQ,SAAA;AAAA;AAAA,EAG1B,gBAAgBA,EAAE,KAAK,CAACH,EAAe,YAAYA,EAAe,QAAQ,CAAC;AAAA,EAC3E,UAAUG,EAAE,KAAK,CAACL,EAAS,QAAQA,EAAS,KAAK,CAAC;AAAA,EAClD,WAAWK,EAAE,KAAA;AAAA;AAAA,EAGb,WAAWA,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,MAAMC,CAAU,EAAE,SAAA;AAAA,EAC/C,eAAeD,EAAE,OAAA,EAAS,SAAA;AAAA,EAC1B,UAAUA,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,MAAMC,CAAU,EAAE,SAAA;AAAA,EAC9C,KAAKD,EAAE,OAAA,EAAS,SAAA;AAAA;AAAA,EAGhB,cAAcA,EAAE,OAAA,EAAS,SAAA;AAAA,EACzB,KAAKA,EAAE,OAAA,EAAS,SAAA;AAAA;AAAA,EAGhB,YAAYA,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,SAAA;AAChC,CAAC,GAKYE,KAA0C,CACrD,GACAC,GACAC,MAEOL,GAAwB;AAAA,EAC7B,CAACM,GAAiCC,MAAyB;AAWzD,QATID,EAAK,kBAAkB,CAACA,EAAK,SAC/BC,EAAI,SAAS;AAAA,MACX,MAAMN,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,OAAO;AAAA,MACd,SAAS,EAAE,mBAAmB;AAAA,IAAA,CAC/B,GAICK,EAAK,mBAAmBR,EAAe;AAiBzC,UAhBKQ,EAAK,aACRC,EAAI,SAAS;AAAA,QACX,MAAMN,EAAE,aAAa;AAAA,QACrB,MAAM,CAAC,WAAW;AAAA,QAClB,SAAS,EAAE,uBAAuB;AAAA,MAAA,CACnC,GAGEK,EAAK,YACRC,EAAI,SAAS;AAAA,QACX,MAAMN,EAAE,aAAa;AAAA,QACrB,MAAM,CAAC,UAAU;AAAA,QACjB,SAAS,EAAE,sBAAsB;AAAA,MAAA,CAClC,GAGC,CAACK,EAAK;AACR,QAAI,CAACF,KAAU,CAACE,EAAK,kBACnBC,EAAI,SAAS;AAAA,UACX,MAAMN,EAAE,aAAa;AAAA,UACrB,MAAM,CAAC,KAAK;AAAA,UACZ,SAAS,EAAE,iBAAiB;AAAA,QAAA,CAC7B;AAAA,WAEE;AAEL,cAAMO,IAAWC,GAAgBH,EAAK,GAAG;AACzC,QAAKI,GAAU,KAAKF,CAAQ,KAC1BD,EAAI,SAAS;AAAA,UACX,MAAMN,EAAE,aAAa;AAAA,UACrB,MAAM,CAAC,KAAK;AAAA,UACZ,SAAS,EAAE,uBAAuB;AAAA,QAAA,CACnC;AAAA,MAEL;AAIF,QAAIK,EAAK,mBAAmBR,EAAe;AASzC,UARKQ,EAAK,gBACRC,EAAI,SAAS;AAAA,QACX,MAAMN,EAAE,aAAa;AAAA,QACrB,MAAM,CAAC,cAAc;AAAA,QACrB,SAAS,EAAE,0BAA0B;AAAA,MAAA,CACtC,GAGC,CAACK,EAAK;AACR,QAAI,CAACD,KAAU,CAACC,EAAK,kBACnBC,EAAI,SAAS;AAAA,UACX,MAAMN,EAAE,aAAa;AAAA,UACrB,MAAM,CAAC,KAAK;AAAA,UACZ,SAAS,EAAE,iBAAiB;AAAA,QAAA,CAC7B;AAAA,WAEE;AAEL,cAAMU,IAAgBC,GAAaN,EAAK,GAAG;AAC3C,QAAK,gBAAgB,KAAKK,CAAa,KACrCJ,EAAI,SAAS;AAAA,UACX,MAAMN,EAAE,aAAa;AAAA,UACrB,MAAM,CAAC,KAAK;AAAA,UACZ,SAAS,EAAE,uBAAuB;AAAA,QAAA,CACnC;AAAA,MAEL;AAIF,IAAIK,EAAK,aAAaV,EAAS,WACzBU,EAAK,eAAe,UAAaA,EAAK,aAAa,MACrDC,EAAI,SAAS;AAAA,MACX,MAAMN,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,YAAY;AAAA,MACnB,SAAS,EAAE,wBAAwB;AAAA,IAAA,CACpC;AAAA,EAGP;AAAA;AAWG,SAASY,GAAqB;AAAA,EACnC,WAAAC;AAAA,EACA,cAAAC;AAAA,EACA,eAAAC;AAAA,EACA,oBAAAC;AACF,GAA8B;AAC5B,EAAAC,GAAQ,oBAAoB;AAC5B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,oBAAoB,GAC3C,EAAE,SAAAC,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GAGjCC,IAAmBrB;AAAA,IACvBgB;AAAA,IACAF,GAAoB,UAAU;AAAA,IAC9BA,GAAoB,UAAU;AAAA,EAAA,GAI1B,EAAE,aAAaQ,GAAkB,WAAWC,EAAA,IAAeC,EAAA,GAC3D,EAAE,aAAaC,GAAkB,WAAWC,EAAA,IAAeC,EAAA,GAG3DC,IAAoBC;AAAA,IACxB,OAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,gBAAgBlC,EAAe;AAAA,MAC/B,UAAUF,EAAS;AAAA,MACnB,+BAAe,KAAA;AAAA,MACf,GAAGoB;AAAA;AAAA,MAEH,GAAIC,KAAsB;AAAA,QACxB,gBAAgBA,EAAmB;AAAA;AAAA,UAE/BgB,EAAiC,IAAIhB,EAAmB,gBAAgB;AAAA,YACxE;AAAA,QACJ,gBAAgBA,EAAmB,QAAQnB,EAAe;AAAA,QAC1D,UAAUmB,EAAmB,YAAYrB,EAAS;AAAA,QAClD,WAAWqB,EAAmB,YAC1B,IAAI,KAAKA,EAAmB,SAAS,IACrC,oBAAI,KAAA;AAAA,QACR,WAAWA,EAAmB,aAAa;AAAA,QAC3C,eAAeA,EAAmB,iBAAiB;AAAA,QACnD,UAAUA,EAAmB,YAAY;AAAA,QACzC,cAAcA,EAAmB,gBAAgB;AAAA,QACjD,OAAOA,EAAmB,SAAS;AAAA,QACnC,YAAYA,EAAmB,cAC1B,MAAM;AACL,gBAAMiB,IAAS,WAAWjB,EAAmB,UAAU;AACvD,iBAAO,MAAMiB,CAAM,IAAI,SAAYA;AAAA,QACrC,OACA;AAAA,MAAA;AAAA,IACN;AAAA,IAEF,CAACjB,GAAoBD,CAAa;AAAA,EAAA,GAI9BmB,IAAcC,EAAuE;AAAA,IACzF,UAAUC,EAAYb,CAAgB;AAAA,IACtC,eAAeO;AAAA,EAAA,CAChB,GAEK,EAAE,cAAAO,GAAc,WAAAC,EAAA,IAAcJ,GAG9BK,IAAcC,EAAS,EAAE,SAASN,EAAY,SAAS,MAAM,kBAAkB,GAC/EO,IAAkBD,EAAS,EAAE,SAASN,EAAY,SAAS,MAAM,YAAY,GAC7EQ,IAAwBF,EAAS;AAAA,IACrC,SAASN,EAAY;AAAA,IACrB,MAAM;AAAA,EAAA,CACP,GAGKS,IAAmC,CACvCtC,MACqD;AACrD,UAAMuC,IAAc;AAAA,MAClB,MAAMvC,EAAK;AAAA,MACX,UAAUA,EAAK;AAAA,MACf,WAAWwC,GAAuBxC,EAAK,SAAS,KAAK;AAAA,MACrD,gBAAgBA,EAAK;AAAA,MACrB,OAAOA,EAAK,iBAAiBA,EAAK,QAAQ;AAAA,MAC1C,YAAYA,EAAK,aAAaV,EAAS,SAAS,OAAOU,EAAK,UAAU,IAAI;AAAA,MAC1E,UAAU;AAAA,IAAA;AAGZ,WAAIA,EAAK,mBAAmBR,EAAe,aAClC;AAAA,MACL,GAAG+C;AAAA,MACH,WAAWvC,EAAK;AAAA,MAChB,eAAeA,EAAK,iBAAiB;AAAA,MACrC,UAAUA,EAAK;AAAA,MACf,KAAKA,EAAK;AAAA,MACV,mBAAmB;AAAA;AAAA,IAAA,IAGd;AAAA,MACL,GAAGuC;AAAA,MACH,mBAAmB;AAAA;AAAA,MACnB,cAAcvC,EAAK;AAAA,MACnB,KAAKA,EAAK,KAAK,QAAQ,MAAM,EAAE;AAAA,IAAA;AAAA,EAGrC,GAEMyC,IAAmC,CACvCzC,GACA0C,OAGO;AAAA,IACL,GAFoBJ,EAAiCtC,CAAI;AAAA,IAGzD,SAAA0C;AAAA,EAAA,IAKEC,IAAqD,OAAM3C,MAAQ;AACvE,UAAMgB,EAAkBhB,GAAM,OAAM4C,MAAW;AAC7C,UAAInC,IAAeE,GAAoB;AACvC,UAAIA,GAAoB;AAEtB,YAAI,CAACA,EAAmB;AACtB,gBAAM,IAAI,MAAM,4CAA4C;AAE9D,cAAM+B,IAAU/B,EAAmB,SAC7BkC,IAAaJ,EAAiCG,GAASF,CAAO,GAE9DI,IAAiB,MAAMxB,EAAiB;AAAA,UAC5C,SAAS;AAAA,YACP,gBAAgBb;AAAAA,YAChB,aAAaoC;AAAA,UAAA;AAAA,QACf,CACD;AAED,QAAA9B,EAAQgC,EAAgB,oBAAoBD,EAAe,UAAU;AAAA,MACvE,OAAO;AAEL,cAAMD,IAAaP,EAAiCM,CAAO,GAErDI,IAAiB,MAAM7B,EAAiB;AAAA,UAC5C,SAAS;AAAA,YACP,aAAaX;AAAA,YACb,aAAaqC;AAAA,UAAA;AAAA,QACf,CACD;AAEDpC,QAAAA,IAAeuC,EAAe,YAAY,MAC1CjC,EAAQgC,EAAgB,oBAAoBC,EAAe,UAAU;AAAA,MACvE;AAEA,MAAAjC,EAAQgC,EAAgB,yBAAyB;AAAA,QAC/C,gBACEH,EAAQ,kBACRjC,GAAoB,qBAClBsC,EAA2B;AAAA,QAC/B,cAAAxC;AAAAA,MAAA,CACD;AAAA,IACH,CAAC;AAAA,EACH,GAIMyC,IAAuB,CAAC,CAACb,GACzBc,IAA2BjB,MAAgB1C,EAAe,UAC1D4D,IAA6BlB,MAAgB1C,EAAe,YAC5D6D,IAAuBjB,MAAoB9C,EAAS,QACpDgE,IAAqBpB,MAAgB1C,EAAe,cAAc,CAAC6C,GACnEkB,IAAqBrB,MAAgB1C,EAAe,YAAY,CAAC6C,GAGjEmB,IAAwB;AAAA,IAC5B,EAAE,OAAO,cAAc,OAAOhE,EAAe,WAAA;AAAA,IAC7C,EAAE,OAAO,YAAY,OAAOA,EAAe,SAAA;AAAA,EAAS,GAGhDiE,IAAkB;AAAA,IACtB,EAAE,OAAO,UAAU,OAAOnE,EAAS,OAAA;AAAA,IACnC,EAAE,OAAO,SAAS,OAAOA,EAAS,MAAA;AAAA,EAAM,GAIpCoE,IAAetC,KAAcG;AAEnC,SAAO;AAAA;AAAA,IAEL,aAAAM;AAAA,IACA,cAAcG,EAAaW,CAAQ;AAAA,IACnC,WAAW;AAAA,MACT,GAAGV;AAAA,MACH,cAAAyB;AAAA,IAAA;AAAA;AAAA,IAIF,sBAAAR;AAAA,IACA,0BAAAC;AAAA,IACA,4BAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,oBAAAC;AAAA;AAAA,IAGA,uBAAAC;AAAA,IACA,iBAAAC;AAAA;AAAA,IAGA,WAAW,CAAC,CAAChD;AAAA,EAAA;AAEjB;"}
@@ -6,12 +6,12 @@ import { useContractorsGetSuspense as A } from "@gusto/embedded-api/react-query/
6
6
  import { SubmitDone as E } from "./SubmitDone.js";
7
7
  import { Flex as C } from "../../Common/Flex/Flex.js";
8
8
  import "classnames";
9
+ import { ContractorOnboardingStatus as d, componentEvents as s } from "../../../shared/constants.js";
9
10
  import { useComponentContext as b } from "../../../contexts/ComponentAdapter/useComponentContext.js";
10
11
  import "react";
11
12
  import { useI18n as I } from "../../../i18n/I18n.js";
12
13
  import { BaseComponent as B } from "../../Base/Base.js";
13
14
  import { useBase as v } from "../../Base/useBase.js";
14
- import { ContractorOnboardingStatus as d, componentEvents as s } from "../../../shared/constants.js";
15
15
  import { firstLastName as x } from "../../../helpers/formattedStrings.js";
16
16
  function W(o) {
17
17
  return /* @__PURE__ */ t(B, { ...o, children: /* @__PURE__ */ t(U, { ...o, children: o.children }) });
@@ -7,3 +7,8 @@ export { ContractorSubmit } from './Submit/Submit';
7
7
  export { ContractorProfile } from './Profile';
8
8
  export { OnboardingFlow } from './OnboardingFlow/OnboardingFlow';
9
9
  export { PaymentFlow } from './Payments/PaymentFlow';
10
+ export { PaymentsList } from './Payments/PaymentsList/PaymentsList';
11
+ export { CreatePayment } from './Payments/CreatePayment/CreatePayment';
12
+ export { PaymentHistory } from './Payments/PaymentHistory/PaymentHistory';
13
+ export { PaymentSummary } from './Payments/PaymentSummary';
14
+ export { PaymentStatement } from './Payments/PaymentStatement/PaymentStatement';
@@ -1,19 +1,29 @@
1
1
  import { PaymentMethod as t } from "./PaymentMethod/PaymentMethod.js";
2
2
  import { ContractorList as m } from "./ContractorList/index.js";
3
- import { NewHireReport as p } from "./NewHireReport/NewHireReport.js";
3
+ import { NewHireReport as f } from "./NewHireReport/NewHireReport.js";
4
4
  import { ContractorSubmit as n } from "./Submit/Submit.js";
5
- import { OnboardingFlow as i } from "./OnboardingFlow/OnboardingFlow.js";
6
- import { Address as c } from "./Address/Address.js";
7
- import { ContractorProfile as s } from "./Profile/ContractorProfile.js";
8
- import { PaymentFlow as C } from "./Payments/PaymentFlow/PaymentFlow.js";
5
+ import { OnboardingFlow as y } from "./OnboardingFlow/OnboardingFlow.js";
6
+ import { PaymentsList as i } from "./Payments/PaymentsList/PaymentsList.js";
7
+ import { CreatePayment as d } from "./Payments/CreatePayment/CreatePayment.js";
8
+ import { PaymentHistory as c } from "./Payments/PaymentHistory/PaymentHistory.js";
9
+ import { PaymentStatement as w } from "./Payments/PaymentStatement/PaymentStatement.js";
10
+ import { Address as b } from "./Address/Address.js";
11
+ import { ContractorProfile as F } from "./Profile/ContractorProfile.js";
12
+ import { PaymentFlow as L } from "./Payments/PaymentFlow/PaymentFlow.js";
13
+ import { PaymentSummary as h } from "./Payments/PaymentSummary/PaymentSummary.js";
9
14
  export {
10
- c as Address,
15
+ b as Address,
11
16
  m as ContractorList,
12
- s as ContractorProfile,
17
+ F as ContractorProfile,
13
18
  n as ContractorSubmit,
14
- p as NewHireReport,
15
- i as OnboardingFlow,
16
- C as PaymentFlow,
17
- t as PaymentMethod
19
+ d as CreatePayment,
20
+ f as NewHireReport,
21
+ y as OnboardingFlow,
22
+ L as PaymentFlow,
23
+ c as PaymentHistory,
24
+ t as PaymentMethod,
25
+ w as PaymentStatement,
26
+ h as PaymentSummary,
27
+ i as PaymentsList
18
28
  };
19
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -6,18 +6,18 @@ import { useCompensation as R, rateMinimumError as Y, rateExemptThresholdError a
6
6
  import { FlsaStatus as a, PAY_PERIODS as r, FLSA_OVERTIME_SALARY_LIMIT as N } from "../../../shared/constants.js";
7
7
  import x from "../../../hooks/useNumberFormatter.js";
8
8
  import "classnames";
9
- import { useComponentContext as j } from "../../../contexts/ComponentAdapter/useComponentContext.js";
10
- import { WA_RISK_CLASS_CODES as X } from "../../../models/WA_RISK_CODES.js";
11
- import { TextInputField as B } from "../../Common/Fields/TextInputField/TextInputField.js";
9
+ import { RadioGroupField as j } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
10
+ import { TextInputField as X } from "../../Common/Fields/TextInputField/TextInputField.js";
11
+ import { NumberInputField as B } from "../../Common/Fields/NumberInputField/NumberInputField.js";
12
+ import { SwitchField as J } from "../../Common/Fields/SwitchField/SwitchField.js";
13
+ import { useComponentContext as $ } from "../../../contexts/ComponentAdapter/useComponentContext.js";
14
+ import { WA_RISK_CLASS_CODES as K } from "../../../models/WA_RISK_CODES.js";
12
15
  import { SelectField as O } from "../../Common/Fields/SelectField/SelectField.js";
13
- import { NumberInputField as J } from "../../Common/Fields/NumberInputField/NumberInputField.js";
14
- import { SwitchField as $ } from "../../Common/Fields/SwitchField/SwitchField.js";
15
- import { CheckboxField as K } from "../../Common/Fields/CheckboxField/CheckboxField.js";
16
- import { RadioGroupField as q } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
16
+ import { CheckboxField as q } from "../../Common/Fields/CheckboxField/CheckboxField.js";
17
17
  import { ComboBoxField as H } from "../../Common/Fields/ComboBoxField/ComboBoxField.js";
18
18
  const ue = () => {
19
- const { t: e } = P("Employee.Compensation"), l = x("currency"), b = j(), S = k(
20
- () => X.map(({ code: o, description: A }) => ({
19
+ const { t: e } = P("Employee.Compensation"), l = x("currency"), b = $(), S = k(
20
+ () => K.map(({ code: o, description: A }) => ({
21
21
  value: o,
22
22
  label: `${o}: ${A}`
23
23
  })),
@@ -49,7 +49,7 @@ const ue = () => {
49
49
  limit: l(N)
50
50
  })), /* @__PURE__ */ u(d, { children: [
51
51
  /* @__PURE__ */ t(
52
- B,
52
+ X,
53
53
  {
54
54
  name: "jobTitle",
55
55
  label: e("jobTitle"),
@@ -83,7 +83,7 @@ const ue = () => {
83
83
  }
84
84
  ),
85
85
  /* @__PURE__ */ t(
86
- J,
86
+ B,
87
87
  {
88
88
  name: "rate",
89
89
  label: e("amount"),
@@ -96,7 +96,7 @@ const ue = () => {
96
96
  ),
97
97
  D && /* @__PURE__ */ u(d, { children: [
98
98
  /* @__PURE__ */ t(
99
- $,
99
+ J,
100
100
  {
101
101
  name: "adjustForMinimumWage",
102
102
  label: e("adjustForMinimumWage"),
@@ -129,10 +129,10 @@ const ue = () => {
129
129
  isDisabled: i === a.OWNER || i === a.COMMISSION_ONLY_NONEXEMPT || i === a.COMMISSION_ONLY_EXEMPT
130
130
  }
131
131
  ),
132
- T && /* @__PURE__ */ t(K, { label: e("twoPercentStakeholderLabel"), name: "twoPercentShareholder" }),
132
+ T && /* @__PURE__ */ t(q, { label: e("twoPercentStakeholderLabel"), name: "twoPercentShareholder" }),
133
133
  L === "WA" && /* @__PURE__ */ u(d, { children: [
134
134
  /* @__PURE__ */ t(
135
- q,
135
+ j,
136
136
  {
137
137
  name: "stateWcCovered",
138
138
  label: e("stateWcCoveredLabel"),
@@ -11,18 +11,19 @@ import { useComponentContext as J } from "../../../../contexts/ComponentAdapter/
11
11
  import { Form as Q } from "../../../Common/Form/Form.js";
12
12
  import { Flex as P } from "../../../Common/Flex/Flex.js";
13
13
  import "classnames";
14
- import { ActionsLayout as Z } from "../../../Common/ActionsLayout/ActionsLayout.js";
14
+ import { componentEvents as M } from "../../../../shared/constants.js";
15
+ import { TextInputField as Z } from "../../../Common/Fields/TextInputField/TextInputField.js";
16
+ import { ActionsLayout as ee } from "../../../Common/ActionsLayout/ActionsLayout.js";
17
+ import { NumberInputField as D } from "../../../Common/Fields/NumberInputField/NumberInputField.js";
15
18
  import "react-error-boundary";
16
19
  import "@gusto/embedded-api/models/errors/apierror";
17
20
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
18
21
  import "@tanstack/react-query";
19
- import { useBase as ee } from "../../../Base/useBase.js";
20
- import { componentEvents as M } from "../../../../shared/constants.js";
22
+ import { useBase as re } from "../../../Base/useBase.js";
23
+ import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
21
24
  import "dompurify";
22
25
  import "../../../../contexts/LocaleProvider/useLocale.js";
23
26
  import { SelectField as f } from "../../../Common/Fields/SelectField/SelectField.js";
24
- import { TextInputField as re } from "../../../Common/Fields/TextInputField/TextInputField.js";
25
- import { NumberInputField as D } from "../../../Common/Fields/NumberInputField/NumberInputField.js";
26
27
  const te = 0, ne = 0, ie = 100, oe = i.nativeEnum(z), me = i.object({
27
28
  state: i.string(),
28
29
  fipsCode: i.string(),
@@ -33,7 +34,7 @@ const te = 0, ne = 0, ie = 100, oe = i.nativeEnum(z), me = i.object({
33
34
  payPeriodMaximum: i.number().min(0).transform((r) => r > 0 ? r.toString() : null).nullable(),
34
35
  paymentPeriod: oe
35
36
  });
36
- function qe({
37
+ function Ie({
37
38
  deduction: r,
38
39
  handleStateAgencySelect: _,
39
40
  stateAgencies: x,
@@ -43,7 +44,7 @@ function qe({
43
44
  selectedAgency: N,
44
45
  onCancel: v
45
46
  }) {
46
- const { onEvent: E, baseSubmitHandler: R } = ee(), { t: e } = W("Employee.Deductions"), a = J(), g = {
47
+ const { onEvent: E, baseSubmitHandler: R } = re(), { t: e } = W("Employee.Deductions"), a = J(), g = {
47
48
  case_number: {
48
49
  name: "caseNumber",
49
50
  description: e("caseNumberDescription")
@@ -155,7 +156,7 @@ function qe({
155
156
  }
156
157
  ),
157
158
  T.map(({ name: t, label: u, description: s }) => /* @__PURE__ */ n(
158
- re,
159
+ Z,
159
160
  {
160
161
  name: t,
161
162
  label: u,
@@ -216,13 +217,13 @@ function qe({
216
217
  )
217
218
  ] })
218
219
  ] }),
219
- /* @__PURE__ */ p(Z, { children: [
220
+ /* @__PURE__ */ p(ee, { children: [
220
221
  /* @__PURE__ */ n(a.Button, { variant: "secondary", onClick: Y, children: e("cancelCta") }),
221
222
  b && /* @__PURE__ */ n(a.Button, { type: "submit", isLoading: O, children: e("saveCta") })
222
223
  ] })
223
224
  ] }) }) });
224
225
  }
225
226
  export {
226
- qe as default
227
+ Ie as default
227
228
  };
228
229
  //# sourceMappingURL=ChildSupportForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChildSupportForm.js","sources":["../../../../../src/components/Employee/Deductions/DeductionsForm/ChildSupportForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { FormProvider, useForm, useWatch, type SubmitHandler } from 'react-hook-form'\nimport { useEffect, useMemo } from 'react'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { PaymentPeriod } from '@gusto/embedded-api/models/components/garnishmentchildsupport'\nimport type { GarnishmentType } from '@gusto/embedded-api/models/operations/postv1employeesemployeeidgarnishments'\nimport { type Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useGarnishmentsCreateMutation } from '@gusto/embedded-api/react-query/garnishmentsCreate'\nimport { useGarnishmentsUpdateMutation } from '@gusto/embedded-api/react-query/garnishmentsUpdate'\nimport { type Agencies } from '@gusto/embedded-api/models/components/childsupportdata'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Form } from '@/components/Common/Form'\nimport { ActionsLayout } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { NumberInputField, TextInputField, SelectField } from '@/components/Common'\nimport { type CommonComponentInterface, useBase } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\n\nconst MINIMUM_PAY_PERIOD_AMOUNT = 0\nconst MINIMUM_PAYCHECK_PERCENTAGE = 0\nconst MAXIMUM_PAYCHECK_PERCENTAGE = 100\n\nconst ChildSupportPaymentPeriodSchema = z.nativeEnum(PaymentPeriod)\nconst ChildSupportSchema = z.object({\n state: z.string(),\n fipsCode: z.string(),\n caseNumber: z.string().nullable(),\n orderNumber: z.string().nullable(),\n remittanceNumber: z.string().nullable(),\n amount: z.number().min(0).transform(String),\n payPeriodMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n paymentPeriod: ChildSupportPaymentPeriodSchema,\n})\n\nexport type ChildSupportInputs = z.input<typeof ChildSupportSchema>\nexport type ChildSupportPayload = z.output<typeof ChildSupportSchema>\n\ninterface ChildSupportFormProps extends CommonComponentInterface<'Employee.Deductions'> {\n employeeId: string\n deduction?: Garnishment | null\n handleStateAgencySelect: (stateAgency: string) => void\n stateAgencies: { label: string; value: string }[]\n counties: { label: string; value: string }[]\n singleAllCountiesFipsCode: string | null | undefined\n selectedAgency?: Agencies\n onCancel: () => void\n}\n\nfunction ChildSupportForm({\n deduction,\n handleStateAgencySelect,\n stateAgencies,\n counties,\n singleAllCountiesFipsCode,\n employeeId,\n selectedAgency,\n onCancel,\n}: ChildSupportFormProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Employee.Deductions')\n const Components = useComponentContext()\n\n const ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER = {\n case_number: {\n name: 'caseNumber',\n description: t('caseNumberDescription'),\n },\n order_number: {\n name: 'orderNumber',\n description: t('orderNumberDescription'),\n },\n remittance_number: {\n name: 'remittanceNumber',\n description: t('remittanceNumberDescription'),\n },\n }\n const requiredSelectedAgencyAttributes =\n selectedAgency?.requiredAttributes?.map(attr => {\n return {\n name: ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER[attr.key!].name,\n label: attr.label as string,\n description: ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER[attr.key!].description,\n }\n }) || []\n\n const { mutateAsync: createDeduction, isPending: isPendingCreate } =\n useGarnishmentsCreateMutation()\n const { mutateAsync: updateDeduction, isPending: isPendingUpdate } =\n useGarnishmentsUpdateMutation()\n const isPending = isPendingCreate || isPendingUpdate\n\n const defaultChildSupportValues: ChildSupportInputs = useMemo(() => {\n return {\n amount: deduction?.amount ? Number(deduction.amount) : 0,\n payPeriodMaximum: deduction?.payPeriodMaximum ? Number(deduction.payPeriodMaximum) : null,\n state: deduction?.childSupport?.state || '',\n fipsCode: deduction?.childSupport?.fipsCode || '',\n caseNumber: deduction?.childSupport?.caseNumber || null,\n orderNumber: deduction?.childSupport?.orderNumber || null,\n remittanceNumber: deduction?.childSupport?.remittanceNumber || null,\n paymentPeriod: deduction?.childSupport?.paymentPeriod as PaymentPeriod,\n }\n }, [deduction])\n\n const childSupportFormMethods = useForm<ChildSupportInputs, unknown, ChildSupportPayload>({\n resolver: zodResolver(ChildSupportSchema),\n defaultValues: defaultChildSupportValues,\n })\n const { reset: resetChildSupportForm, setValue, control } = childSupportFormMethods\n const watchedStateAgency = useWatch({ control, name: 'state' })\n\n useEffect(() => {\n resetChildSupportForm(defaultChildSupportValues)\n }, [deduction, defaultChildSupportValues, resetChildSupportForm])\n\n // if in edit mode and user elects to change state agency, reset the required attribute values\n // as new selected agency might require different payload inputs, e.g. OH requires case number + order number\n useEffect(() => {\n setValue('caseNumber', null)\n setValue('orderNumber', null)\n setValue('remittanceNumber', null)\n }, [watchedStateAgency, setValue])\n\n useEffect(() => {\n if (typeof singleAllCountiesFipsCode === 'string') {\n setValue('fipsCode', singleAllCountiesFipsCode)\n }\n }, [singleAllCountiesFipsCode, setValue])\n\n const onChildSupportSubmit: SubmitHandler<ChildSupportPayload> = async data => {\n const childSupport = {\n state: data.state,\n paymentPeriod: data.paymentPeriod,\n fipsCode: data.fipsCode,\n caseNumber: data.caseNumber,\n orderNumber: data.orderNumber,\n remittanceNumber: data.remittanceNumber,\n }\n\n await baseSubmitHandler(data, async payload => {\n const requestBody = {\n active: true,\n amount: payload.amount,\n description: `Child Support - ${childSupport.caseNumber}`, // child support description follows prefix type + case number convention\n courtOrdered: true,\n garnishmentType: 'child_support' as GarnishmentType,\n times: null,\n deductAsPercentage: true, // child support must always deduct as percentage up to a pay period maximum limit and is recurring until cancelled\n payPeriodMaximum: payload.payPeriodMaximum,\n recurring: true,\n childSupport,\n }\n\n if (!deduction) {\n const { garnishment: createDeductionResponse } = await createDeduction({\n request: {\n employeeId,\n requestBody,\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_CREATED, createDeductionResponse)\n } else {\n const { garnishment: updateDeductionResponse } = await updateDeduction({\n request: {\n garnishmentId: deduction.uuid,\n requestBody: {\n ...requestBody,\n version: deduction.version as string,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_UPDATED, updateDeductionResponse)\n }\n })\n }\n\n const handleCancel = () => {\n onCancel()\n }\n\n const isManualPaymentRequired = selectedAgency?.manualPaymentRequired\n const hasSelectableCounties =\n counties.length > 1 || (counties.length === 1 && singleAllCountiesFipsCode == null)\n\n return (\n <FormProvider {...childSupportFormMethods}>\n <Form onSubmit={childSupportFormMethods.handleSubmit(onChildSupportSubmit)}>\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h3\">{t('childSupportTitle')}</Components.Heading>\n <Flex flexDirection=\"column\" gap={20}>\n <SelectField\n name=\"state\"\n label={t('agency')}\n description={t('agencyDescription')}\n options={stateAgencies}\n onChange={handleStateAgencySelect}\n isRequired\n />\n\n {isManualPaymentRequired && (\n <Components.Alert status=\"warning\" label={t('manualPaymentRequired')} />\n )}\n\n {watchedStateAgency && (\n <Flex flexDirection=\"column\" gap={20}>\n {hasSelectableCounties && (\n <SelectField\n name=\"fipsCode\"\n label={t('county')}\n description={t('countyDescription')}\n options={counties}\n isRequired\n />\n )}\n {/* render required inputs for respective agency, e.g. OH requires case number + order number */}\n {requiredSelectedAgencyAttributes.map(({ name, label, description }) => (\n <TextInputField\n key={name}\n name={name}\n label={label}\n description={description}\n isRequired\n />\n ))}\n <NumberInputField\n name=\"payPeriodMaximum\"\n label={t('totalAmountWithheld')}\n description={t('totalAmountWithheldDescription')}\n min={MINIMUM_PAY_PERIOD_AMOUNT}\n adornmentStart=\"$\"\n isRequired\n />\n <NumberInputField\n name=\"amount\"\n label={t('maxPaycheckPercentage')}\n description={t('maxPaycheckPercentageDescription')}\n isRequired\n min={MINIMUM_PAYCHECK_PERCENTAGE}\n max={MAXIMUM_PAYCHECK_PERCENTAGE}\n adornmentEnd=\"%\"\n />\n <SelectField\n name=\"paymentPeriod\"\n label={t('per')}\n description={t('perDescription')}\n options={[\n {\n label: t('everyWeek'),\n value: 'Every week',\n },\n {\n label: t('everyOtherWeek'),\n value: 'Every other week',\n },\n {\n label: t('twicePerMonth'),\n value: 'Twice per month',\n },\n {\n label: t('monthly'),\n value: 'Monthly',\n },\n ]}\n isRequired\n />\n </Flex>\n )}\n </Flex>\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel}>\n {t('cancelCta')}\n </Components.Button>\n {watchedStateAgency && (\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('saveCta')}\n </Components.Button>\n )}\n </ActionsLayout>\n </Flex>\n </Form>\n </FormProvider>\n )\n}\n\nexport default ChildSupportForm\n"],"names":["MINIMUM_PAY_PERIOD_AMOUNT","MINIMUM_PAYCHECK_PERCENTAGE","MAXIMUM_PAYCHECK_PERCENTAGE","ChildSupportPaymentPeriodSchema","z","PaymentPeriod","ChildSupportSchema","val","ChildSupportForm","deduction","handleStateAgencySelect","stateAgencies","counties","singleAllCountiesFipsCode","employeeId","selectedAgency","onCancel","onEvent","baseSubmitHandler","useBase","t","useTranslation","Components","useComponentContext","ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER","requiredSelectedAgencyAttributes","attr","createDeduction","isPendingCreate","useGarnishmentsCreateMutation","updateDeduction","isPendingUpdate","useGarnishmentsUpdateMutation","isPending","defaultChildSupportValues","useMemo","childSupportFormMethods","useForm","zodResolver","resetChildSupportForm","setValue","control","watchedStateAgency","useWatch","useEffect","onChildSupportSubmit","data","childSupport","payload","requestBody","updateDeductionResponse","componentEvents","createDeductionResponse","handleCancel","isManualPaymentRequired","hasSelectableCounties","FormProvider","jsx","Form","jsxs","Flex","SelectField","name","label","description","TextInputField","NumberInputField","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"ChildSupportForm.js","sources":["../../../../../src/components/Employee/Deductions/DeductionsForm/ChildSupportForm.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { FormProvider, useForm, useWatch, type SubmitHandler } from 'react-hook-form'\nimport { useEffect, useMemo } from 'react'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { PaymentPeriod } from '@gusto/embedded-api/models/components/garnishmentchildsupport'\nimport type { GarnishmentType } from '@gusto/embedded-api/models/operations/postv1employeesemployeeidgarnishments'\nimport { type Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport { useGarnishmentsCreateMutation } from '@gusto/embedded-api/react-query/garnishmentsCreate'\nimport { useGarnishmentsUpdateMutation } from '@gusto/embedded-api/react-query/garnishmentsUpdate'\nimport { type Agencies } from '@gusto/embedded-api/models/components/childsupportdata'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Form } from '@/components/Common/Form'\nimport { ActionsLayout } from '@/components/Common'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { NumberInputField, TextInputField, SelectField } from '@/components/Common'\nimport { type CommonComponentInterface, useBase } from '@/components/Base'\nimport { componentEvents } from '@/shared/constants'\n\nconst MINIMUM_PAY_PERIOD_AMOUNT = 0\nconst MINIMUM_PAYCHECK_PERCENTAGE = 0\nconst MAXIMUM_PAYCHECK_PERCENTAGE = 100\n\nconst ChildSupportPaymentPeriodSchema = z.nativeEnum(PaymentPeriod)\nconst ChildSupportSchema = z.object({\n state: z.string(),\n fipsCode: z.string(),\n caseNumber: z.string().nullable(),\n orderNumber: z.string().nullable(),\n remittanceNumber: z.string().nullable(),\n amount: z.number().min(0).transform(String),\n payPeriodMaximum: z\n .number()\n .min(0)\n .transform(val => (val > 0 ? val.toString() : null))\n .nullable(),\n paymentPeriod: ChildSupportPaymentPeriodSchema,\n})\n\nexport type ChildSupportInputs = z.input<typeof ChildSupportSchema>\nexport type ChildSupportPayload = z.output<typeof ChildSupportSchema>\n\ninterface ChildSupportFormProps extends CommonComponentInterface<'Employee.Deductions'> {\n employeeId: string\n deduction?: Garnishment | null\n handleStateAgencySelect: (stateAgency: string) => void\n stateAgencies: { label: string; value: string }[]\n counties: { label: string; value: string }[]\n singleAllCountiesFipsCode: string | null | undefined\n selectedAgency?: Agencies\n onCancel: () => void\n}\n\nfunction ChildSupportForm({\n deduction,\n handleStateAgencySelect,\n stateAgencies,\n counties,\n singleAllCountiesFipsCode,\n employeeId,\n selectedAgency,\n onCancel,\n}: ChildSupportFormProps) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { t } = useTranslation('Employee.Deductions')\n const Components = useComponentContext()\n\n const ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER = {\n case_number: {\n name: 'caseNumber',\n description: t('caseNumberDescription'),\n },\n order_number: {\n name: 'orderNumber',\n description: t('orderNumberDescription'),\n },\n remittance_number: {\n name: 'remittanceNumber',\n description: t('remittanceNumberDescription'),\n },\n }\n const requiredSelectedAgencyAttributes =\n selectedAgency?.requiredAttributes?.map(attr => {\n return {\n name: ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER[attr.key!].name,\n label: attr.label as string,\n description: ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER[attr.key!].description,\n }\n }) || []\n\n const { mutateAsync: createDeduction, isPending: isPendingCreate } =\n useGarnishmentsCreateMutation()\n const { mutateAsync: updateDeduction, isPending: isPendingUpdate } =\n useGarnishmentsUpdateMutation()\n const isPending = isPendingCreate || isPendingUpdate\n\n const defaultChildSupportValues: ChildSupportInputs = useMemo(() => {\n return {\n amount: deduction?.amount ? Number(deduction.amount) : 0,\n payPeriodMaximum: deduction?.payPeriodMaximum ? Number(deduction.payPeriodMaximum) : null,\n state: deduction?.childSupport?.state || '',\n fipsCode: deduction?.childSupport?.fipsCode || '',\n caseNumber: deduction?.childSupport?.caseNumber || null,\n orderNumber: deduction?.childSupport?.orderNumber || null,\n remittanceNumber: deduction?.childSupport?.remittanceNumber || null,\n paymentPeriod: deduction?.childSupport?.paymentPeriod as PaymentPeriod,\n }\n }, [deduction])\n\n const childSupportFormMethods = useForm<ChildSupportInputs, unknown, ChildSupportPayload>({\n resolver: zodResolver(ChildSupportSchema),\n defaultValues: defaultChildSupportValues,\n })\n const { reset: resetChildSupportForm, setValue, control } = childSupportFormMethods\n const watchedStateAgency = useWatch({ control, name: 'state' })\n\n useEffect(() => {\n resetChildSupportForm(defaultChildSupportValues)\n }, [deduction, defaultChildSupportValues, resetChildSupportForm])\n\n // if in edit mode and user elects to change state agency, reset the required attribute values\n // as new selected agency might require different payload inputs, e.g. OH requires case number + order number\n useEffect(() => {\n setValue('caseNumber', null)\n setValue('orderNumber', null)\n setValue('remittanceNumber', null)\n }, [watchedStateAgency, setValue])\n\n useEffect(() => {\n if (typeof singleAllCountiesFipsCode === 'string') {\n setValue('fipsCode', singleAllCountiesFipsCode)\n }\n }, [singleAllCountiesFipsCode, setValue])\n\n const onChildSupportSubmit: SubmitHandler<ChildSupportPayload> = async data => {\n const childSupport = {\n state: data.state,\n paymentPeriod: data.paymentPeriod,\n fipsCode: data.fipsCode,\n caseNumber: data.caseNumber,\n orderNumber: data.orderNumber,\n remittanceNumber: data.remittanceNumber,\n }\n\n await baseSubmitHandler(data, async payload => {\n const requestBody = {\n active: true,\n amount: payload.amount,\n description: `Child Support - ${childSupport.caseNumber}`, // child support description follows prefix type + case number convention\n courtOrdered: true,\n garnishmentType: 'child_support' as GarnishmentType,\n times: null,\n deductAsPercentage: true, // child support must always deduct as percentage up to a pay period maximum limit and is recurring until cancelled\n payPeriodMaximum: payload.payPeriodMaximum,\n recurring: true,\n childSupport,\n }\n\n if (!deduction) {\n const { garnishment: createDeductionResponse } = await createDeduction({\n request: {\n employeeId,\n requestBody,\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_CREATED, createDeductionResponse)\n } else {\n const { garnishment: updateDeductionResponse } = await updateDeduction({\n request: {\n garnishmentId: deduction.uuid,\n requestBody: {\n ...requestBody,\n version: deduction.version as string,\n },\n },\n })\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_UPDATED, updateDeductionResponse)\n }\n })\n }\n\n const handleCancel = () => {\n onCancel()\n }\n\n const isManualPaymentRequired = selectedAgency?.manualPaymentRequired\n const hasSelectableCounties =\n counties.length > 1 || (counties.length === 1 && singleAllCountiesFipsCode == null)\n\n return (\n <FormProvider {...childSupportFormMethods}>\n <Form onSubmit={childSupportFormMethods.handleSubmit(onChildSupportSubmit)}>\n <Flex flexDirection=\"column\" gap={32}>\n <Components.Heading as=\"h3\">{t('childSupportTitle')}</Components.Heading>\n <Flex flexDirection=\"column\" gap={20}>\n <SelectField\n name=\"state\"\n label={t('agency')}\n description={t('agencyDescription')}\n options={stateAgencies}\n onChange={handleStateAgencySelect}\n isRequired\n />\n\n {isManualPaymentRequired && (\n <Components.Alert status=\"warning\" label={t('manualPaymentRequired')} />\n )}\n\n {watchedStateAgency && (\n <Flex flexDirection=\"column\" gap={20}>\n {hasSelectableCounties && (\n <SelectField\n name=\"fipsCode\"\n label={t('county')}\n description={t('countyDescription')}\n options={counties}\n isRequired\n />\n )}\n {/* render required inputs for respective agency, e.g. OH requires case number + order number */}\n {requiredSelectedAgencyAttributes.map(({ name, label, description }) => (\n <TextInputField\n key={name}\n name={name}\n label={label}\n description={description}\n isRequired\n />\n ))}\n <NumberInputField\n name=\"payPeriodMaximum\"\n label={t('totalAmountWithheld')}\n description={t('totalAmountWithheldDescription')}\n min={MINIMUM_PAY_PERIOD_AMOUNT}\n adornmentStart=\"$\"\n isRequired\n />\n <NumberInputField\n name=\"amount\"\n label={t('maxPaycheckPercentage')}\n description={t('maxPaycheckPercentageDescription')}\n isRequired\n min={MINIMUM_PAYCHECK_PERCENTAGE}\n max={MAXIMUM_PAYCHECK_PERCENTAGE}\n adornmentEnd=\"%\"\n />\n <SelectField\n name=\"paymentPeriod\"\n label={t('per')}\n description={t('perDescription')}\n options={[\n {\n label: t('everyWeek'),\n value: 'Every week',\n },\n {\n label: t('everyOtherWeek'),\n value: 'Every other week',\n },\n {\n label: t('twicePerMonth'),\n value: 'Twice per month',\n },\n {\n label: t('monthly'),\n value: 'Monthly',\n },\n ]}\n isRequired\n />\n </Flex>\n )}\n </Flex>\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleCancel}>\n {t('cancelCta')}\n </Components.Button>\n {watchedStateAgency && (\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('saveCta')}\n </Components.Button>\n )}\n </ActionsLayout>\n </Flex>\n </Form>\n </FormProvider>\n )\n}\n\nexport default ChildSupportForm\n"],"names":["MINIMUM_PAY_PERIOD_AMOUNT","MINIMUM_PAYCHECK_PERCENTAGE","MAXIMUM_PAYCHECK_PERCENTAGE","ChildSupportPaymentPeriodSchema","z","PaymentPeriod","ChildSupportSchema","val","ChildSupportForm","deduction","handleStateAgencySelect","stateAgencies","counties","singleAllCountiesFipsCode","employeeId","selectedAgency","onCancel","onEvent","baseSubmitHandler","useBase","t","useTranslation","Components","useComponentContext","ATTR_KEY_TO_TEXT_FIELD_NAME_MAPPER","requiredSelectedAgencyAttributes","attr","createDeduction","isPendingCreate","useGarnishmentsCreateMutation","updateDeduction","isPendingUpdate","useGarnishmentsUpdateMutation","isPending","defaultChildSupportValues","useMemo","childSupportFormMethods","useForm","zodResolver","resetChildSupportForm","setValue","control","watchedStateAgency","useWatch","useEffect","onChildSupportSubmit","data","childSupport","payload","requestBody","updateDeductionResponse","componentEvents","createDeductionResponse","handleCancel","isManualPaymentRequired","hasSelectableCounties","FormProvider","jsx","Form","jsxs","Flex","SelectField","name","label","description","TextInputField","NumberInputField","ActionsLayout"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,MAAMA,KAA4B,GAC5BC,KAA8B,GAC9BC,KAA8B,KAE9BC,KAAkCC,EAAE,WAAWC,CAAa,GAC5DC,KAAqBF,EAAE,OAAO;AAAA,EAClC,OAAOA,EAAE,OAAA;AAAA,EACT,UAAUA,EAAE,OAAA;AAAA,EACZ,YAAYA,EAAE,OAAA,EAAS,SAAA;AAAA,EACvB,aAAaA,EAAE,OAAA,EAAS,SAAA;AAAA,EACxB,kBAAkBA,EAAE,OAAA,EAAS,SAAA;AAAA,EAC7B,QAAQA,EAAE,OAAA,EAAS,IAAI,CAAC,EAAE,UAAU,MAAM;AAAA,EAC1C,kBAAkBA,EACf,OAAA,EACA,IAAI,CAAC,EACL,UAAU,CAAAG,MAAQA,IAAM,IAAIA,EAAI,SAAA,IAAa,IAAK,EAClD,SAAA;AAAA,EACH,eAAeJ;AACjB,CAAC;AAgBD,SAASK,GAAiB;AAAA,EACxB,WAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,eAAAC;AAAA,EACA,UAAAC;AAAA,EACA,2BAAAC;AAAA,EACA,YAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AACF,GAA0B;AACxB,QAAM,EAAE,SAAAC,GAAS,mBAAAC,EAAA,IAAsBC,GAAA,GACjC,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5CC,IAAaC,EAAA,GAEbC,IAAqC;AAAA,IACzC,aAAa;AAAA,MACX,MAAM;AAAA,MACN,aAAaJ,EAAE,uBAAuB;AAAA,IAAA;AAAA,IAExC,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,aAAaA,EAAE,wBAAwB;AAAA,IAAA;AAAA,IAEzC,mBAAmB;AAAA,MACjB,MAAM;AAAA,MACN,aAAaA,EAAE,6BAA6B;AAAA,IAAA;AAAA,EAC9C,GAEIK,IACJV,GAAgB,oBAAoB,IAAI,CAAAW,OAC/B;AAAA,IACL,MAAMF,EAAmCE,EAAK,GAAI,EAAE;AAAA,IACpD,OAAOA,EAAK;AAAA,IACZ,aAAaF,EAAmCE,EAAK,GAAI,EAAE;AAAA,EAAA,EAE9D,KAAK,CAAA,GAEF,EAAE,aAAaC,GAAiB,WAAWC,EAAA,IAC/CC,EAAA,GACI,EAAE,aAAaC,GAAiB,WAAWC,EAAA,IAC/CC,EAAA,GACIC,IAAYL,KAAmBG,GAE/BG,IAAgDC,EAAQ,OACrD;AAAA,IACL,QAAQ1B,GAAW,SAAS,OAAOA,EAAU,MAAM,IAAI;AAAA,IACvD,kBAAkBA,GAAW,mBAAmB,OAAOA,EAAU,gBAAgB,IAAI;AAAA,IACrF,OAAOA,GAAW,cAAc,SAAS;AAAA,IACzC,UAAUA,GAAW,cAAc,YAAY;AAAA,IAC/C,YAAYA,GAAW,cAAc,cAAc;AAAA,IACnD,aAAaA,GAAW,cAAc,eAAe;AAAA,IACrD,kBAAkBA,GAAW,cAAc,oBAAoB;AAAA,IAC/D,eAAeA,GAAW,cAAc;AAAA,EAAA,IAEzC,CAACA,CAAS,CAAC,GAER2B,IAA0BC,EAA0D;AAAA,IACxF,UAAUC,EAAYhC,EAAkB;AAAA,IACxC,eAAe4B;AAAA,EAAA,CAChB,GACK,EAAE,OAAOK,GAAuB,UAAAC,GAAU,SAAAC,MAAYL,GACtDM,IAAqBC,EAAS,EAAE,SAAAF,GAAS,MAAM,SAAS;AAE9D,EAAAG,EAAU,MAAM;AACd,IAAAL,EAAsBL,CAAyB;AAAA,EACjD,GAAG,CAACzB,GAAWyB,GAA2BK,CAAqB,CAAC,GAIhEK,EAAU,MAAM;AACd,IAAAJ,EAAS,cAAc,IAAI,GAC3BA,EAAS,eAAe,IAAI,GAC5BA,EAAS,oBAAoB,IAAI;AAAA,EACnC,GAAG,CAACE,GAAoBF,CAAQ,CAAC,GAEjCI,EAAU,MAAM;AACd,IAAI,OAAO/B,KAA8B,YACvC2B,EAAS,YAAY3B,CAAyB;AAAA,EAElD,GAAG,CAACA,GAA2B2B,CAAQ,CAAC;AAExC,QAAMK,IAA2D,OAAMC,MAAQ;AAC7E,UAAMC,IAAe;AAAA,MACnB,OAAOD,EAAK;AAAA,MACZ,eAAeA,EAAK;AAAA,MACpB,UAAUA,EAAK;AAAA,MACf,YAAYA,EAAK;AAAA,MACjB,aAAaA,EAAK;AAAA,MAClB,kBAAkBA,EAAK;AAAA,IAAA;AAGzB,UAAM5B,EAAkB4B,GAAM,OAAME,MAAW;AAC7C,YAAMC,IAAc;AAAA,QAClB,QAAQ;AAAA,QACR,QAAQD,EAAQ;AAAA,QAChB,aAAa,mBAAmBD,EAAa,UAAU;AAAA;AAAA,QACvD,cAAc;AAAA,QACd,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,oBAAoB;AAAA;AAAA,QACpB,kBAAkBC,EAAQ;AAAA,QAC1B,WAAW;AAAA,QACX,cAAAD;AAAA,MAAA;AAGF,UAAKtC,GAQE;AACL,cAAM,EAAE,aAAayC,EAAA,IAA4B,MAAMpB,EAAgB;AAAA,UACrE,SAAS;AAAA,YACP,eAAerB,EAAU;AAAA,YACzB,aAAa;AAAA,cACX,GAAGwC;AAAA,cACH,SAASxC,EAAU;AAAA,YAAA;AAAA,UACrB;AAAA,QACF,CACD;AACD,QAAAQ,EAAQkC,EAAgB,4BAA4BD,CAAuB;AAAA,MAC7E,OAnBgB;AACd,cAAM,EAAE,aAAaE,EAAA,IAA4B,MAAMzB,EAAgB;AAAA,UACrE,SAAS;AAAA,YACP,YAAAb;AAAA,YACA,aAAAmC;AAAA,UAAA;AAAA,QACF,CACD;AACD,QAAAhC,EAAQkC,EAAgB,4BAA4BC,CAAuB;AAAA,MAC7E;AAAA,IAYF,CAAC;AAAA,EACH,GAEMC,IAAe,MAAM;AACzB,IAAArC,EAAA;AAAA,EACF,GAEMsC,IAA0BvC,GAAgB,uBAC1CwC,IACJ3C,EAAS,SAAS,KAAMA,EAAS,WAAW,KAAKC,KAA6B;AAEhF,2BACG2C,GAAA,EAAc,GAAGpB,GAChB,UAAA,gBAAAqB,EAACC,KAAK,UAAUtB,EAAwB,aAAaS,CAAoB,GACvE,UAAA,gBAAAc,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAH,EAACnC,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAF,EAAE,mBAAmB,GAAE;AAAA,IACpD,gBAAAuC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,MAAA,gBAAAH;AAAA,QAACI;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAOzC,EAAE,QAAQ;AAAA,UACjB,aAAaA,EAAE,mBAAmB;AAAA,UAClC,SAAST;AAAA,UACT,UAAUD;AAAA,UACV,YAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAGX4C,KACC,gBAAAG,EAACnC,EAAW,OAAX,EAAiB,QAAO,WAAU,OAAOF,EAAE,uBAAuB,GAAG;AAAA,MAGvEsB,KACC,gBAAAiB,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,QAAAL,KACC,gBAAAE;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAOzC,EAAE,QAAQ;AAAA,YACjB,aAAaA,EAAE,mBAAmB;AAAA,YAClC,SAASR;AAAA,YACT,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAIba,EAAiC,IAAI,CAAC,EAAE,MAAAqC,GAAM,OAAAC,GAAO,aAAAC,QACpD,gBAAAP;AAAA,UAACQ;AAAA,UAAA;AAAA,YAEC,MAAAH;AAAA,YACA,OAAAC;AAAA,YACA,aAAAC;AAAA,YACA,YAAU;AAAA,UAAA;AAAA,UAJLF;AAAA,QAAA,CAMR;AAAA,QACD,gBAAAL;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAO9C,EAAE,qBAAqB;AAAA,YAC9B,aAAaA,EAAE,gCAAgC;AAAA,YAC/C,KAAKpB;AAAA,YACL,gBAAe;AAAA,YACf,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ,gBAAAyD;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAO9C,EAAE,uBAAuB;AAAA,YAChC,aAAaA,EAAE,kCAAkC;AAAA,YACjD,YAAU;AAAA,YACV,KAAKnB;AAAA,YACL,KAAKC;AAAA,YACL,cAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAEf,gBAAAuD;AAAA,UAACI;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,OAAOzC,EAAE,KAAK;AAAA,YACd,aAAaA,EAAE,gBAAgB;AAAA,YAC/B,SAAS;AAAA,cACP;AAAA,gBACE,OAAOA,EAAE,WAAW;AAAA,gBACpB,OAAO;AAAA,cAAA;AAAA,cAET;AAAA,gBACE,OAAOA,EAAE,gBAAgB;AAAA,gBACzB,OAAO;AAAA,cAAA;AAAA,cAET;AAAA,gBACE,OAAOA,EAAE,eAAe;AAAA,gBACxB,OAAO;AAAA,cAAA;AAAA,cAET;AAAA,gBACE,OAAOA,EAAE,SAAS;AAAA,gBAClB,OAAO;AAAA,cAAA;AAAA,YACT;AAAA,YAEF,YAAU;AAAA,UAAA;AAAA,QAAA;AAAA,MACZ,EAAA,CACF;AAAA,IAAA,GAEJ;AAAA,sBACC+C,IAAA,EACC,UAAA;AAAA,MAAA,gBAAAV,EAACnC,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAAS+B,GAC7C,UAAAjC,EAAE,WAAW,EAAA,CAChB;AAAA,MACCsB,KACC,gBAAAe,EAACnC,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWW,GACzC,UAAAb,EAAE,SAAS,EAAA,CACd;AAAA,IAAA,EAAA,CAEJ;AAAA,EAAA,EAAA,CACF,GACF,GACF;AAEJ;"}
@@ -10,18 +10,19 @@ import { useComponentContext as I } from "../../../../contexts/ComponentAdapter/
10
10
  import { Form as U } from "../../../Common/Form/Form.js";
11
11
  import { Flex as m } from "../../../Common/Flex/Flex.js";
12
12
  import "classnames";
13
- import { ActionsLayout as _ } from "../../../Common/ActionsLayout/ActionsLayout.js";
13
+ import { componentEvents as b } from "../../../../shared/constants.js";
14
+ import { RadioGroupField as g } from "../../../Common/Fields/RadioGroupField/RadioGroupField.js";
15
+ import { TextInputField as _ } from "../../../Common/Fields/TextInputField/TextInputField.js";
16
+ import { ActionsLayout as j } from "../../../Common/ActionsLayout/ActionsLayout.js";
17
+ import { NumberInputField as c } from "../../../Common/Fields/NumberInputField/NumberInputField.js";
14
18
  import "react-error-boundary";
15
19
  import "@gusto/embedded-api/models/errors/apierror";
16
20
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
17
21
  import "@tanstack/react-query";
18
- import { useBase as j } from "../../../Base/useBase.js";
19
- import { componentEvents as b } from "../../../../shared/constants.js";
22
+ import { useBase as G } from "../../../Base/useBase.js";
23
+ import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
20
24
  import "dompurify";
21
25
  import "../../../../contexts/LocaleProvider/useLocale.js";
22
- import { TextInputField as G } from "../../../Common/Fields/TextInputField/TextInputField.js";
23
- import { RadioGroupField as g } from "../../../Common/Fields/RadioGroupField/RadioGroupField.js";
24
- import { NumberInputField as c } from "../../../Common/Fields/NumberInputField/NumberInputField.js";
25
26
  const $ = r.object({
26
27
  active: r.boolean(),
27
28
  amount: r.number().min(0).transform(String),
@@ -32,8 +33,8 @@ const $ = r.object({
32
33
  totalAmount: r.number().min(0).transform((e) => e > 0 ? e.toString() : null).nullable(),
33
34
  deductAsPercentage: r.boolean()
34
35
  });
35
- function fe({ deduction: e, employeeId: h, onCancel: D }) {
36
- const { onEvent: d, baseSubmitHandler: A } = j(), { t: n } = T("Employee.Deductions"), u = I(), { mutateAsync: x, isPending: P } = w(), { mutateAsync: y, isPending: E } = B(), v = P || E, C = N(() => ({
36
+ function be({ deduction: e, employeeId: h, onCancel: D }) {
37
+ const { onEvent: d, baseSubmitHandler: A } = G(), { t: n } = T("Employee.Deductions"), u = I(), { mutateAsync: x, isPending: P } = w(), { mutateAsync: y, isPending: E } = B(), v = P || E, C = N(() => ({
37
38
  amount: e?.amount ? Number(e.amount) : 0,
38
39
  description: e?.description ?? "",
39
40
  times: e?.times ?? null,
@@ -77,7 +78,7 @@ function fe({ deduction: e, employeeId: h, onCancel: D }) {
77
78
  /* @__PURE__ */ t(u.Heading, { as: "h3", children: n("customDeductionTitle") }),
78
79
  /* @__PURE__ */ o(m, { flexDirection: "column", gap: 20, children: [
79
80
  /* @__PURE__ */ o(m, { flexDirection: "column", gap: 20, children: [
80
- /* @__PURE__ */ t(G, { name: "description", label: n("descriptionLabelV2"), isRequired: !0 }),
81
+ /* @__PURE__ */ t(_, { name: "description", label: n("descriptionLabelV2"), isRequired: !0 }),
81
82
  /* @__PURE__ */ t(
82
83
  g,
83
84
  {
@@ -141,7 +142,7 @@ function fe({ deduction: e, employeeId: h, onCancel: D }) {
141
142
  )
142
143
  ] })
143
144
  ] }),
144
- /* @__PURE__ */ o(_, { children: [
145
+ /* @__PURE__ */ o(j, { children: [
145
146
  /* @__PURE__ */ t(u.Button, { variant: "secondary", onClick: F, children: n("cancelCta") }),
146
147
  /* @__PURE__ */ t(u.Button, { type: "submit", isLoading: v, children: n("saveCta") })
147
148
  ] })
@@ -149,6 +150,6 @@ function fe({ deduction: e, employeeId: h, onCancel: D }) {
149
150
  }
150
151
  export {
151
152
  $ as DeductionSchema,
152
- fe as default
153
+ be as default
153
154
  };
154
155
  //# sourceMappingURL=CustomDeductionForm.js.map