@gusto/embedded-react-sdk 0.44.1 → 0.45.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/components/Common/DetailViewLayout/DetailViewLayout.js +7 -7
  3. package/dist/components/Common/DetailViewLayout/DetailViewLayout.js.map +1 -1
  4. package/dist/components/Common/UI/Alert/Alert.js +24 -23
  5. package/dist/components/Common/UI/Alert/Alert.js.map +1 -1
  6. package/dist/components/Common/UI/Alert/Alert.module.scss.js +16 -14
  7. package/dist/components/Common/UI/Alert/Alert.module.scss.js.map +1 -1
  8. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +8 -0
  9. package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +38 -38
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -20
  13. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  14. package/dist/components/Company/AssignSignatory/Head.js +12 -9
  15. package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +25 -25
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  18. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -20
  19. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  20. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -22
  21. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  22. package/dist/components/Company/BankAccount/BankAccountForm/Head.js +11 -8
  23. package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
  24. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -20
  25. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  26. package/dist/components/Company/BankAccount/BankAccountList/Head.js +44 -39
  27. package/dist/components/Company/BankAccount/BankAccountList/Head.js.map +1 -1
  28. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -20
  29. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  30. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +28 -28
  31. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  32. package/dist/components/Company/FederalTaxes/FederalTaxes.js +9 -9
  33. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  34. package/dist/components/Company/FederalTaxes/Head.js +7 -6
  35. package/dist/components/Company/FederalTaxes/Head.js.map +1 -1
  36. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -28
  37. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  38. package/dist/components/Company/Industry/Context.js +7 -23
  39. package/dist/components/Company/Industry/Context.js.map +1 -1
  40. package/dist/components/Company/Industry/Head.js +10 -9
  41. package/dist/components/Company/Industry/Head.js.map +1 -1
  42. package/dist/components/Company/Industry/IndustrySelect.js +22 -19
  43. package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
  44. package/dist/components/Company/Locations/LocationForm/Head.js +9 -8
  45. package/dist/components/Company/Locations/LocationForm/Head.js.map +1 -1
  46. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -20
  47. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  48. package/dist/components/Company/Locations/LocationsList/Head.js +11 -10
  49. package/dist/components/Company/Locations/LocationsList/Head.js.map +1 -1
  50. package/dist/components/Company/Locations/LocationsList/LocationsList.js +11 -11
  51. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  52. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -20
  53. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  54. package/dist/components/Company/OnboardingOverview/context.js +4 -20
  55. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  56. package/dist/components/Company/PaySchedule/PayScheduleList.js +18 -18
  57. package/dist/components/Company/PaySchedule/PayScheduleList.js.map +1 -1
  58. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -20
  59. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  60. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -20
  61. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  62. package/dist/components/Contractor/Address/useAddress.js +6 -22
  63. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  64. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +1 -1
  65. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  66. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +7 -7
  67. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  68. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -2
  69. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  70. package/dist/components/Contractor/Profile/useContractorProfile.js +42 -52
  71. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  72. package/dist/components/Employee/Compensation/index.d.ts +1 -1
  73. package/dist/components/Employee/Compensation/{Compensation.d.ts → onboarding/Compensation.d.ts} +3 -3
  74. package/dist/components/Employee/Compensation/onboarding/Compensation.js +88 -0
  75. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -0
  76. package/dist/components/Employee/Compensation/{CompensationFlowComponents.d.ts → onboarding/CompensationFlowComponents.d.ts} +3 -3
  77. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js +59 -0
  78. package/dist/components/Employee/Compensation/onboarding/CompensationFlowComponents.js.map +1 -0
  79. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +21 -0
  80. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +249 -0
  81. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -0
  82. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.module.scss.js +8 -0
  83. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.module.scss.js.map +1 -0
  84. package/dist/components/Employee/Compensation/onboarding/EditCompensation/index.d.ts +3 -0
  85. package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsList.d.ts +1 -1
  86. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js +43 -0
  87. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsList.js.map +1 -0
  88. package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsListPresentation.js +10 -10
  89. package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -0
  90. package/dist/components/Employee/Compensation/{compensationStateMachine.js → onboarding/compensationStateMachine.js} +1 -1
  91. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js.map +1 -0
  92. package/dist/components/Employee/Compensation/onboarding/index.d.ts +2 -0
  93. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.d.ts +9 -0
  94. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js +10 -0
  95. package/dist/components/Employee/Compensation/shared/derivePrimaryFlsaStatus.js.map +1 -0
  96. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.d.ts +7 -0
  97. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js +41 -35
  98. package/dist/components/Employee/Compensation/shared/useCompensationForm/compensationSchema.js.map +1 -1
  99. package/dist/components/Employee/Compensation/shared/useCompensationForm/index.d.ts +0 -2
  100. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.d.ts +24 -3
  101. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +193 -181
  102. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  103. package/dist/components/Employee/Compensation/shared/useJobForm/index.d.ts +0 -2
  104. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.d.ts +8 -0
  105. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js +14 -13
  106. package/dist/components/Employee/Compensation/shared/useJobForm/jobSchema.js.map +1 -1
  107. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +19 -2
  108. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +133 -130
  109. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  110. package/dist/components/Employee/Dashboard/BasicDetailsView.d.ts +13 -0
  111. package/dist/components/Employee/Dashboard/BasicDetailsView.js +87 -65
  112. package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
  113. package/dist/components/Employee/Dashboard/CompensationCard.d.ts +13 -0
  114. package/dist/components/Employee/Dashboard/Dashboard.js +89 -109
  115. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  116. package/dist/components/Employee/Dashboard/DashboardComponents.d.ts +15 -0
  117. package/dist/components/Employee/Dashboard/DashboardComponents.js +120 -25
  118. package/dist/components/Employee/Dashboard/DashboardComponents.js.map +1 -1
  119. package/dist/components/Employee/Dashboard/DocumentsView.d.ts +11 -0
  120. package/dist/components/Employee/Dashboard/DocumentsView.js +24 -17
  121. package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
  122. package/dist/components/Employee/Dashboard/JobAndPayView.d.ts +9 -17
  123. package/dist/components/Employee/Dashboard/JobAndPayView.js +495 -114
  124. package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
  125. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.d.ts +10 -0
  126. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.js +64 -0
  127. package/dist/components/Employee/Dashboard/PendingChangesReviewModal.js.map +1 -0
  128. package/dist/components/Employee/Dashboard/TaxesView.d.ts +13 -0
  129. package/dist/components/Employee/Dashboard/TaxesView.js +82 -60
  130. package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
  131. package/dist/components/Employee/Dashboard/dashboardStateMachine.d.ts +7 -0
  132. package/dist/components/Employee/Dashboard/dashboardStateMachine.js +227 -40
  133. package/dist/components/Employee/Dashboard/dashboardStateMachine.js.map +1 -1
  134. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.d.ts +50 -0
  135. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +57 -0
  136. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -0
  137. package/dist/components/Employee/Dashboard/getPendingCompensationChanges.test.d.ts +1 -0
  138. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js +7 -4
  139. package/dist/components/Employee/Dashboard/hooks/useEmployeeBasicDetails.js.map +1 -1
  140. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.d.ts +14 -8
  141. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js +60 -36
  142. package/dist/components/Employee/Dashboard/hooks/useEmployeeCompensation.js.map +1 -1
  143. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.d.ts +8 -0
  144. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.js +61 -0
  145. package/dist/components/Employee/Dashboard/usePendingChangeDetailRenderer.js.map +1 -0
  146. package/dist/components/Employee/Deductions/Deductions.d.ts +2 -8
  147. package/dist/components/Employee/Deductions/Deductions.js +25 -52
  148. package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
  149. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.d.ts +9 -0
  150. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.js +137 -0
  151. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportFormView.js.map +1 -0
  152. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.d.ts +9 -5
  153. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +97 -94
  154. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  155. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.d.ts +18 -0
  156. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +137 -0
  157. package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -0
  158. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.d.ts +10 -5
  159. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +57 -77
  160. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
  161. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.d.ts +5 -5
  162. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +29 -39
  163. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  164. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js +8 -6
  165. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js.map +1 -1
  166. package/dist/components/Employee/Deductions/{DeductionsComponents.d.ts → deductionsContextualComponents.d.ts} +7 -8
  167. package/dist/components/Employee/Deductions/deductionsContextualComponents.js +74 -0
  168. package/dist/components/Employee/Deductions/deductionsContextualComponents.js.map +1 -0
  169. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +7 -0
  170. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js +31 -0
  171. package/dist/components/Employee/Deductions/shared/DeleteDeductionDialog.js.map +1 -0
  172. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.d.ts +7 -0
  173. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js +10 -0
  174. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.js.map +1 -0
  175. package/dist/components/Employee/Deductions/shared/formatDeductionAmount.test.d.ts +1 -0
  176. package/dist/components/Employee/Deductions/shared/index.d.ts +7 -0
  177. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +63 -0
  178. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +64 -0
  179. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -0
  180. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +36 -0
  181. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +39 -0
  182. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js.map +1 -0
  183. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/index.d.ts +4 -0
  184. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.d.ts +62 -0
  185. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +208 -0
  186. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -0
  187. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.d.ts +63 -0
  188. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js +52 -0
  189. package/dist/components/Employee/Deductions/shared/useDeductionForm/deductionFormSchema.js.map +1 -0
  190. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +25 -0
  191. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +36 -0
  192. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js.map +1 -0
  193. package/dist/components/Employee/Deductions/shared/useDeductionForm/index.d.ts +4 -0
  194. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +64 -0
  195. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js +203 -0
  196. package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.js.map +1 -0
  197. package/dist/components/Employee/Deductions/shared/useDeductionsList.d.ts +22 -0
  198. package/dist/components/Employee/Deductions/shared/useDeductionsList.js +50 -0
  199. package/dist/components/Employee/Deductions/shared/useDeductionsList.js.map +1 -0
  200. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.d.ts +13 -0
  201. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js +17 -0
  202. package/dist/components/Employee/Deductions/shared/useDeleteDeduction.js.map +1 -0
  203. package/dist/components/Employee/Deductions/stateMachine.d.ts +4 -5
  204. package/dist/components/Employee/Deductions/stateMachine.js +67 -89
  205. package/dist/components/Employee/Deductions/stateMachine.js.map +1 -1
  206. package/dist/components/Employee/Documents/management/DocumentManager.d.ts +6 -0
  207. package/dist/components/Employee/Documents/management/DocumentManager.js +60 -0
  208. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -0
  209. package/dist/components/Employee/Documents/management/index.d.ts +3 -0
  210. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Actions.js +3 -3
  211. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -0
  212. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/DocumentList.d.ts +1 -1
  213. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/DocumentList.js +5 -5
  214. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -0
  215. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Head.js +1 -1
  216. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Head.js.map +1 -0
  217. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/List.js +3 -3
  218. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -0
  219. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +8 -0
  220. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -0
  221. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentSigner.d.ts +1 -1
  222. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentSigner.js +5 -5
  223. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -0
  224. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibility.d.ts +1 -1
  225. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibility.js +4 -4
  226. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -0
  227. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilityPresentation.js +11 -11
  228. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -0
  229. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -0
  230. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts +1 -0
  231. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/countries.js.map +1 -0
  232. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.d.ts +1 -1
  233. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.js +11 -11
  234. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -0
  235. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/documentSignerStateMachine.d.ts +2 -2
  236. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/documentSignerStateMachine.js +8 -8
  237. package/dist/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -0
  238. package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/stateMachine.js +1 -1
  239. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -0
  240. package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocuments.d.ts +3 -3
  241. package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocuments.js +6 -6
  242. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -0
  243. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +117 -0
  244. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -0
  245. package/dist/components/Employee/{DocumentSigner → Documents/shared}/SignatureForm/SignatureForm.d.ts +1 -1
  246. package/dist/components/Employee/{DocumentSigner → Documents/shared}/SignatureForm/SignatureForm.js +11 -11
  247. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -0
  248. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js.map +1 -0
  249. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +1 -0
  250. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +1 -0
  251. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +89 -82
  252. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
  253. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +37 -35
  254. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  255. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -0
  256. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js +14 -8
  257. package/dist/components/Employee/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  258. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js +38 -39
  259. package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  260. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +29 -27
  261. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  262. package/dist/components/Employee/PaymentMethod/index.d.ts +1 -1
  263. package/dist/components/Employee/PaymentMethod/management/ListView.d.ts +8 -0
  264. package/dist/components/Employee/PaymentMethod/management/ListView.js +138 -0
  265. package/dist/components/Employee/PaymentMethod/management/ListView.js.map +1 -0
  266. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +11 -0
  267. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js +49 -0
  268. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -0
  269. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.d.ts +8 -0
  270. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js +23 -0
  271. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js.map +1 -0
  272. package/dist/components/Employee/PaymentMethod/management/index.d.ts +4 -0
  273. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.d.ts +5 -0
  274. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.js +75 -0
  275. package/dist/components/Employee/PaymentMethod/management/paymentMethodStateMachine.js.map +1 -0
  276. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.d.ts +8 -0
  277. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +66 -0
  278. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -0
  279. package/dist/components/Employee/PaymentMethod/onboarding/ListView.d.ts +9 -0
  280. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +168 -0
  281. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -0
  282. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +11 -0
  283. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js +44 -0
  284. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -0
  285. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.d.ts +8 -0
  286. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js +23 -0
  287. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js.map +1 -0
  288. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.d.ts +8 -0
  289. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.js +97 -0
  290. package/dist/components/Employee/PaymentMethod/onboarding/SplitView.js.map +1 -0
  291. package/dist/components/Employee/PaymentMethod/onboarding/index.d.ts +2 -0
  292. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.d.ts +5 -0
  293. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.js +75 -0
  294. package/dist/components/Employee/PaymentMethod/onboarding/paymentMethodStateMachine.js.map +1 -0
  295. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.d.ts +9 -0
  296. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.js +31 -0
  297. package/dist/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.js.map +1 -0
  298. package/dist/components/Employee/PaymentMethod/shared/index.d.ts +7 -0
  299. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.d.ts +15 -0
  300. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +22 -0
  301. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js.map +1 -0
  302. package/dist/components/Employee/PaymentMethod/shared/useBankForm/index.d.ts +5 -0
  303. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.d.ts +37 -0
  304. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js +105 -0
  305. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankForm.js.map +1 -0
  306. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.d.ts +39 -0
  307. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.js +26 -0
  308. package/dist/components/Employee/PaymentMethod/shared/useBankForm/useBankFormSchema.js.map +1 -0
  309. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.d.ts +13 -0
  310. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.js +19 -0
  311. package/dist/components/Employee/PaymentMethod/shared/useDeleteBankAccount.js.map +1 -0
  312. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.d.ts +6 -0
  313. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.js +9 -0
  314. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.js.map +1 -0
  315. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/index.d.ts +5 -0
  316. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.d.ts +31 -0
  317. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js +94 -0
  318. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodForm.js.map +1 -0
  319. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.d.ts +31 -0
  320. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.js +22 -0
  321. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodForm/usePaymentMethodFormSchema.js.map +1 -0
  322. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.d.ts +20 -0
  323. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js +68 -0
  324. package/dist/components/Employee/PaymentMethod/shared/usePaymentMethodList.js.map +1 -0
  325. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.d.ts +6 -0
  326. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.js +9 -0
  327. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.js.map +1 -0
  328. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/index.d.ts +6 -0
  329. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +48 -0
  330. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +46 -0
  331. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -0
  332. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.d.ts +65 -0
  333. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js +209 -0
  334. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsForm.js.map +1 -0
  335. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.d.ts +53 -0
  336. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js +93 -0
  337. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/useSplitPaymentsFormSchema.js.map +1 -0
  338. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +88 -87
  339. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  340. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -2
  341. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  342. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +19 -17
  343. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  344. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.module.scss.js +8 -0
  345. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.module.scss.js.map +1 -0
  346. package/dist/components/Employee/Taxes/FederalForm.js +27 -26
  347. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  348. package/dist/components/Employee/Taxes/FederalHead.js +13 -10
  349. package/dist/components/Employee/Taxes/FederalHead.js.map +1 -1
  350. package/dist/components/Employee/Taxes/StateForm.js +17 -14
  351. package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
  352. package/dist/components/Employee/Taxes/Taxes.js +75 -69
  353. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  354. package/dist/components/Employee/Taxes/useTaxes.js +4 -20
  355. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  356. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +26 -26
  357. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  358. package/dist/components/Employee/exports/employeeManagement.d.ts +4 -1
  359. package/dist/components/Employee/exports/employeeManagement.js +22 -18
  360. package/dist/components/Employee/exports/employeeManagement.js.map +1 -1
  361. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -3
  362. package/dist/components/Employee/exports/employeeOnboarding.js +4 -4
  363. package/dist/components/Employee/index.d.ts +4 -4
  364. package/dist/components/Employee/index.js +5 -5
  365. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +26 -34
  366. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  367. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +35 -35
  368. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  369. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -1
  370. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +71 -54
  371. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  372. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  373. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  374. package/dist/components/Payroll/usePreparedPayrollData.js +22 -36
  375. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  376. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +84 -82
  377. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  378. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  379. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +49 -48
  380. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  381. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +1 -0
  382. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +39 -37
  383. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  384. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js +31 -31
  385. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  386. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +1 -0
  387. package/dist/components/TimeOff/PolicyList/PolicyList.js +27 -27
  388. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  389. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +50 -50
  390. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  391. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +1 -0
  392. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +66 -41
  393. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  394. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  395. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +59 -48
  396. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  397. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +3 -0
  398. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +34 -33
  399. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  400. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +3 -0
  401. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +69 -61
  402. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  403. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js +119 -75
  404. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  405. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +72 -61
  406. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  407. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  408. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +103 -84
  409. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  410. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  411. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +51 -49
  412. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  413. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  414. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +78 -59
  415. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  416. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +8 -0
  417. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js.map +1 -0
  418. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +6 -2
  419. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +209 -154
  420. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  421. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +3 -1
  422. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js +36 -34
  423. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  424. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +136 -134
  425. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  426. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.module.scss.js +6 -6
  427. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  428. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +63 -65
  429. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  430. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +1 -0
  431. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +50 -49
  432. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  433. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.module.scss.js +4 -4
  434. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  435. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +66 -55
  436. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  437. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +1 -0
  438. package/dist/contexts/ApiProvider/ApiProvider.js +33 -39
  439. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  440. package/dist/contexts/ApiProvider/createSdkQueryClient.d.ts +17 -0
  441. package/dist/contexts/ApiProvider/createSdkQueryClient.js +14 -0
  442. package/dist/contexts/ApiProvider/createSdkQueryClient.js.map +1 -0
  443. package/dist/helpers/dateFormatting.js +52 -56
  444. package/dist/helpers/dateFormatting.js.map +1 -1
  445. package/dist/helpers/formattedStrings.d.ts +12 -0
  446. package/dist/helpers/formattedStrings.js +55 -33
  447. package/dist/helpers/formattedStrings.js.map +1 -1
  448. package/dist/hooks/useClientPagination/useClientPagination.d.ts +44 -0
  449. package/dist/hooks/useClientPagination/useClientPagination.js +69 -0
  450. package/dist/hooks/useClientPagination/useClientPagination.js.map +1 -0
  451. package/dist/hooks/useClientPagination/useClientPagination.test.d.ts +1 -0
  452. package/dist/i18n/I18n.js +6 -5
  453. package/dist/i18n/I18n.js.map +1 -1
  454. package/dist/i18n/en/Company.PaySchedule.json.js +22 -20
  455. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  456. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js +8 -6
  457. package/dist/i18n/en/Company.TimeOff.CreateTimeOffPolicy.json.js.map +1 -1
  458. package/dist/i18n/en/Company.TimeOff.HolidayPolicy.json.js +9 -9
  459. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js +6 -4
  460. package/dist/i18n/en/Company.TimeOff.PolicyDetail.json.js.map +1 -1
  461. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +17 -15
  462. package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
  463. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js +10 -8
  464. package/dist/i18n/en/Company.TimeOff.SelectPolicyType.json.js.map +1 -1
  465. package/dist/i18n/en/Employee.Dashboard.json.js +16 -12
  466. package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
  467. package/dist/i18n/en/Employee.Deductions.json.js +104 -76
  468. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  469. package/dist/i18n/en/Employee.DocumentManager.json.js +12 -0
  470. package/dist/i18n/en/Employee.DocumentManager.json.js.map +1 -0
  471. package/dist/i18n/en/Employee.PaymentMethod.json.js +76 -64
  472. package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
  473. package/dist/i18n/en/common.json.d.ts +7 -0
  474. package/dist/i18n/en/common.json.js +19 -17
  475. package/dist/i18n/en/common.json.js.map +1 -1
  476. package/dist/index.d.ts +16 -6
  477. package/dist/index.js +138 -112
  478. package/dist/index.js.map +1 -1
  479. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +2 -1
  480. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +20 -18
  481. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  482. package/dist/shared/constants.d.ts +8 -2
  483. package/dist/shared/constants.js +11 -8
  484. package/dist/shared/constants.js.map +1 -1
  485. package/dist/style.css +1 -1
  486. package/dist/test-utils/assertions.d.ts +20 -0
  487. package/dist/types/i18next.d.ts +140 -4
  488. package/dist/types/sdkError.js +58 -47
  489. package/dist/types/sdkError.js.map +1 -1
  490. package/docs/reference/endpoint-inventory.json +980 -1170
  491. package/package.json +33 -22
  492. package/dist/components/Employee/Compensation/Compensation.js +0 -87
  493. package/dist/components/Employee/Compensation/Compensation.js.map +0 -1
  494. package/dist/components/Employee/Compensation/CompensationFlowComponents.js +0 -61
  495. package/dist/components/Employee/Compensation/CompensationFlowComponents.js.map +0 -1
  496. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.d.ts +0 -14
  497. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js +0 -128
  498. package/dist/components/Employee/Compensation/EditCompensation/EditCompensation.js.map +0 -1
  499. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.d.ts +0 -17
  500. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js +0 -224
  501. package/dist/components/Employee/Compensation/EditCompensation/EditCompensationPresentation.js.map +0 -1
  502. package/dist/components/Employee/Compensation/EditCompensation/index.d.ts +0 -5
  503. package/dist/components/Employee/Compensation/JobsList/JobsList.js +0 -47
  504. package/dist/components/Employee/Compensation/JobsList/JobsList.js.map +0 -1
  505. package/dist/components/Employee/Compensation/JobsList/JobsListPresentation.js.map +0 -1
  506. package/dist/components/Employee/Compensation/compensationSchema.d.ts +0 -29
  507. package/dist/components/Employee/Compensation/compensationSchema.js +0 -63
  508. package/dist/components/Employee/Compensation/compensationSchema.js.map +0 -1
  509. package/dist/components/Employee/Compensation/compensationStateMachine.js.map +0 -1
  510. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.d.ts +0 -15
  511. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js +0 -27
  512. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCurrentCompensationForm.js.map +0 -1
  513. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.d.ts +0 -13
  514. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js +0 -26
  515. package/dist/components/Employee/Compensation/shared/useJobForm/useCurrentJobForm.js.map +0 -1
  516. package/dist/components/Employee/Deductions/Actions.d.ts +0 -1
  517. package/dist/components/Employee/Deductions/DeductionsComponents.js +0 -31
  518. package/dist/components/Employee/Deductions/DeductionsComponents.js.map +0 -1
  519. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +0 -39
  520. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +0 -237
  521. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +0 -1
  522. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +0 -22
  523. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +0 -162
  524. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +0 -1
  525. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +0 -34
  526. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +0 -168
  527. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +0 -1
  528. package/dist/components/Employee/Deductions/Head.d.ts +0 -1
  529. package/dist/components/Employee/Deductions/useDeductions.d.ts +0 -30
  530. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +0 -1
  531. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +0 -1
  532. package/dist/components/Employee/DocumentSigner/DocumentList/Head.js.map +0 -1
  533. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +0 -1
  534. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +0 -24
  535. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +0 -1
  536. package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +0 -1
  537. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +0 -1
  538. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +0 -1
  539. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +0 -1
  540. package/dist/components/Employee/DocumentSigner/EmploymentEligibility/countries.js.map +0 -1
  541. package/dist/components/Employee/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +0 -1
  542. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +0 -1
  543. package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js.map +0 -1
  544. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/fields.js.map +0 -1
  545. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/signEmployeeFormSchema.js.map +0 -1
  546. package/dist/components/Employee/DocumentSigner/shared/useSignEmployeeForm/useSignEmployeeForm.js.map +0 -1
  547. package/dist/components/Employee/DocumentSigner/stateMachine.js.map +0 -1
  548. package/dist/components/Employee/EmployeeDocuments/EmployeeDocuments.js.map +0 -1
  549. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js +0 -115
  550. package/dist/components/Employee/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +0 -1
  551. package/dist/components/Employee/PaymentMethod/Actions.d.ts +0 -1
  552. package/dist/components/Employee/PaymentMethod/Actions.js +0 -20
  553. package/dist/components/Employee/PaymentMethod/Actions.js.map +0 -1
  554. package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +0 -13
  555. package/dist/components/Employee/PaymentMethod/BankAccount.js +0 -13
  556. package/dist/components/Employee/PaymentMethod/BankAccount.js.map +0 -1
  557. package/dist/components/Employee/PaymentMethod/BankAccountEdit.d.ts +0 -1
  558. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +0 -58
  559. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +0 -1
  560. package/dist/components/Employee/PaymentMethod/BankAccountsList.d.ts +0 -1
  561. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +0 -51
  562. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +0 -1
  563. package/dist/components/Employee/PaymentMethod/Head.d.ts +0 -1
  564. package/dist/components/Employee/PaymentMethod/Head.js +0 -13
  565. package/dist/components/Employee/PaymentMethod/Head.js.map +0 -1
  566. package/dist/components/Employee/PaymentMethod/PaymentMethod.d.ts +0 -9
  567. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +0 -183
  568. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +0 -1
  569. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.d.ts +0 -10
  570. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +0 -38
  571. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +0 -1
  572. package/dist/components/Employee/PaymentMethod/Split.d.ts +0 -1
  573. package/dist/components/Employee/PaymentMethod/Split.js +0 -175
  574. package/dist/components/Employee/PaymentMethod/Split.js.map +0 -1
  575. package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +0 -54
  576. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +0 -68
  577. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +0 -1
  578. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/JobsListPresentation.d.ts +0 -0
  579. /package/dist/components/Employee/Compensation/{JobsList → onboarding/JobsList}/index.d.ts +0 -0
  580. /package/dist/components/Employee/Compensation/{compensationStateMachine.d.ts → onboarding/compensationStateMachine.d.ts} +0 -0
  581. /package/dist/components/Employee/{DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.test.d.ts → Compensation/shared/derivePrimaryFlsaStatus.test.d.ts} +0 -0
  582. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Actions.d.ts +0 -0
  583. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/Head.d.ts +0 -0
  584. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/List.d.ts +0 -0
  585. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/DocumentList/useDocumentList.d.ts +0 -0
  586. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +0 -0
  587. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.d.ts +0 -0
  588. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/EmploymentEligibilitySchema.js +0 -0
  589. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.d.ts +0 -0
  590. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/countries.js +0 -0
  591. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/EmploymentEligibility/index.d.ts +0 -0
  592. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js +0 -0
  593. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/I9SignatureForm/I9SignatureForm.module.scss.js.map +0 -0
  594. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/index.d.ts +0 -0
  595. /package/dist/components/Employee/{DocumentSigner → Documents/onboarding/DocumentSigner}/stateMachine.d.ts +0 -0
  596. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/EmployeeDocumentsPresentation.d.ts +0 -0
  597. /package/dist/components/Employee/{EmployeeDocuments → Documents/onboarding/EmployeeDocuments}/index.d.ts +0 -0
  598. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.d.ts +0 -0
  599. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/fields.js +0 -0
  600. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/index.d.ts +0 -0
  601. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.d.ts +0 -0
  602. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/signEmployeeFormSchema.js +0 -0
  603. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.d.ts +0 -0
  604. /package/dist/components/Employee/{DocumentSigner → Documents}/shared/useSignEmployeeForm/useSignEmployeeForm.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"JobAndPayView.js","sources":["../../../../src/components/Employee/Dashboard/JobAndPayView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { EmployeePaymentMethod } from '@gusto/embedded-api/models/components/employeepaymentmethod'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount'\nimport type { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeuuidpaystubs'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { DataView, useDataView, EmptyData, Loading } from '@/components/Common'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { useFormatPayRate } from '@/helpers/formattedStrings'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport PercentCircleIcon from '@/assets/icons/percent-circle.svg?react'\n\ntype EmployeePayStub = NonNullable<\n GetV1EmployeesEmployeeUuidPayStubsResponse['employeePayStubsList']\n>[number]\n\nexport interface JobAndPayViewProps {\n job?: Job\n paymentMethod?: EmployeePaymentMethod\n bankAccounts?: EmployeeBankAccount[]\n garnishments?: Garnishment[]\n payStubs?: EmployeePayStub[]\n payStubsPagination?: PaginationControlProps\n isLoading?: boolean\n onEditCompensation?: () => void\n onSplitPaycheck?: () => void\n onAddBankAccount?: () => void\n onAddDeduction?: () => void\n}\n\nexport function JobAndPayView({\n job,\n paymentMethod,\n bankAccounts = [],\n garnishments = [],\n payStubs = [],\n payStubsPagination,\n isLoading = false,\n onEditCompensation,\n onSplitPaycheck,\n onAddBankAccount,\n onAddDeduction,\n}: JobAndPayViewProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n const formatPayRate = useFormatPayRate()\n const formatCurrency = useNumberFormatter('currency')\n\n const bankAccountsColumns = [\n {\n key: 'nickname',\n title: t('jobAndPay.payment.nickname'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.name || '-',\n },\n {\n key: 'routingNumber',\n title: t('jobAndPay.payment.routingNumber'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.routingNumber || '-',\n },\n {\n key: 'accountType',\n title: t('jobAndPay.payment.accountType'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.accountType || '-',\n },\n ]\n\n const garnishmentsColumns = [\n {\n key: 'description',\n title: t('jobAndPay.deductions.deduction'),\n render: (garnishment: Garnishment) => garnishment.description || '-',\n },\n {\n key: 'frequency',\n title: t('jobAndPay.deductions.frequency'),\n render: (garnishment: Garnishment) =>\n garnishment.recurring ? t('jobAndPay.deductions.recurring') : '-',\n },\n {\n key: 'amount',\n title: t('jobAndPay.deductions.withhold'),\n render: (garnishment: Garnishment) => {\n if (garnishment.amount && typeof garnishment.amount === 'number') {\n return formatCurrency(garnishment.amount)\n }\n if (garnishment.annualMaximum) {\n return `${garnishment.annualMaximum}% per paycheck`\n }\n return '-'\n },\n },\n ]\n\n const payStubsColumns = [\n {\n key: 'payday',\n title: t('jobAndPay.paystubs.payday'),\n render: (payStub: EmployeePayStub) => formatDateLongWithYear(payStub.checkDate) || '-',\n },\n {\n key: 'checkAmount',\n title: t('jobAndPay.paystubs.checkAmount'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.netPay) return '-'\n const amount = parseFloat(payStub.netPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'grossPay',\n title: t('jobAndPay.paystubs.grossPay'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.grossPay) return '-'\n const amount = parseFloat(payStub.grossPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'paymentMethod',\n title: t('jobAndPay.paystubs.paymentMethod'),\n render: () => paymentMethod?.type || t('jobAndPay.paystubs.noPaymentMethod'),\n },\n ]\n\n const bankAccountsDataView = useDataView({\n data: bankAccounts,\n columns: bankAccountsColumns,\n isFetching: false,\n emptyState: () => (\n <EmptyData\n title={t('jobAndPay.payment.emptyState.title')}\n description={t('jobAndPay.payment.emptyState.description')}\n />\n ),\n })\n\n const garnishmentsDataView = useDataView({\n data: garnishments,\n columns: garnishmentsColumns,\n emptyState: () => (\n <EmptyData\n title={t('jobAndPay.deductions.emptyState.title')}\n description={t('jobAndPay.deductions.emptyState.description')}\n />\n ),\n })\n\n const payStubsDataView = useDataView({\n data: payStubs,\n columns: payStubsColumns,\n pagination: payStubsPagination,\n emptyState: () => (\n <EmptyData\n title={t('jobAndPay.paystubs.emptyState.title')}\n description={t('jobAndPay.paystubs.emptyState.description')}\n />\n ),\n })\n if (isLoading) {\n return <Loading />\n }\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('jobAndPay.compensation.title')}\n action={\n <Components.Button variant=\"secondary\" onClick={onEditCompensation}>\n {t('jobAndPay.compensation.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Flex flexDirection=\"column\" gap={12}>\n {job?.title && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.jobTitle')}\n </Components.Text>\n <Components.Text>{job.title}</Components.Text>\n </Flex>\n )}\n\n {job?.paymentUnit && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.type')}\n </Components.Text>\n <Components.Text>\n {job.paymentUnit === 'Hour'\n ? t('jobAndPay.compensation.types.hourly')\n : job.paymentUnit === 'Salary' || job.paymentUnit === 'Year'\n ? t('jobAndPay.compensation.types.salary')\n : job.paymentUnit}\n </Components.Text>\n </Flex>\n )}\n\n {job?.rate && job.paymentUnit && typeof job.rate === 'number' && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.wage')}\n </Components.Text>\n <Components.Text>{formatPayRate(job.rate, job.paymentUnit)}</Components.Text>\n </Flex>\n )}\n\n {job?.hireDate && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.startDate')}\n </Components.Text>\n <Components.Text>{formatDateLongWithYear(job.hireDate)}</Components.Text>\n </Flex>\n )}\n </Flex>\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('jobAndPay.payment.title')}\n action={\n <Flex gap={8} alignItems=\"flex-end\">\n <Components.Button\n variant=\"secondary\"\n onClick={onSplitPaycheck}\n icon={<PercentCircleIcon />}\n >\n {t('jobAndPay.payment.splitPaycheckCta')}\n </Components.Button>\n <Components.Button\n variant=\"secondary\"\n onClick={onAddBankAccount}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.payment.addBankAccountCta')}\n </Components.Button>\n </Flex>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <DataView label={t('jobAndPay.payment.listLabel')} {...bankAccountsDataView} />\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('jobAndPay.deductions.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onAddDeduction}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.deductions.addDeductionCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <DataView label={t('jobAndPay.deductions.listLabel')} {...garnishmentsDataView} />\n </Flex>\n </Components.Box>\n\n <Components.Box header={<Components.BoxHeader title={t('jobAndPay.paystubs.title')} />}>\n <Flex flexDirection=\"column\" gap={16}>\n <DataView label={t('jobAndPay.paystubs.listLabel')} {...payStubsDataView} />\n </Flex>\n </Components.Box>\n </Flex>\n )\n}\n"],"names":["JobAndPayView","job","paymentMethod","bankAccounts","garnishments","payStubs","payStubsPagination","isLoading","onEditCompensation","onSplitPaycheck","onAddBankAccount","onAddDeduction","useTranslation","Components","useComponentContext","formatPayRate","useFormatPayRate","formatCurrency","useNumberFormatter","bankAccountsColumns","bankAccount","garnishmentsColumns","garnishment","payStubsColumns","payStub","formatDateLongWithYear","amount","bankAccountsDataView","useDataView","jsx","EmptyData","garnishmentsDataView","payStubsDataView","Loading","jsxs","Flex","PercentCircleIcon","PlusCircleIcon","DataView"],"mappings":"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"}
1
+ {"version":3,"file":"JobAndPayView.js","sources":["../../../../src/components/Employee/Dashboard/JobAndPayView.tsx"],"sourcesContent":["import { useCallback, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport { useJobsAndCompensationsDeleteMutation } from '@gusto/embedded-api/react-query/jobsAndCompensationsDelete'\nimport type { Job } from '@gusto/embedded-api/models/components/job'\nimport type { EmployeeBankAccount } from '@gusto/embedded-api/models/components/employeebankaccount'\nimport type { Garnishment } from '@gusto/embedded-api/models/components/garnishment'\nimport type { GetV1EmployeesEmployeeUuidPayStubsResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeuuidpaystubs'\nimport { useEmployeeCompensation } from './hooks'\nimport type { PendingCompensationChange } from './getPendingCompensationChanges'\nimport { usePendingChangeDetailRenderer } from './usePendingChangeDetailRenderer'\nimport { PendingChangesReviewModal } from './PendingChangesReviewModal'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { DataView, useDataView, EmptyData } from '@/components/Common'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport { BaseLayout } from '@/components/Base/Base'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\nimport { useFormatCompensationRate } from '@/helpers/formattedStrings'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useI18n } from '@/i18n'\nimport {\n usePaymentMethodList,\n useDeleteBankAccount,\n DeleteBankAccountDialog,\n} from '@/components/Employee/PaymentMethod/shared'\nimport {\n useDeductionsList,\n useDeleteDeduction,\n DeleteDeductionDialog,\n formatDeductionAmount,\n} from '@/components/Employee/Deductions/shared'\nimport { componentEvents, FlsaStatus, PAYMENT_METHODS, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport PercentCircleIcon from '@/assets/icons/percent-circle.svg?react'\nimport DownloadCloudIcon from '@/assets/icons/download-cloud.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\n\ntype EmployeePayStub = NonNullable<\n GetV1EmployeesEmployeeUuidPayStubsResponse['employeePayStubsList']\n>[number]\n\nfunction parseJobRate(rate: Job['rate']): number | null {\n if (rate === undefined) return null\n const numericRate = parseFloat(rate)\n return Number.isFinite(numericRate) ? numericRate : null\n}\n\nexport interface JobAndPayViewProps {\n employeeId: string\n onEvent: OnEventType<EventType, unknown>\n onEditCompensation?: (job: Job) => void\n onAddJob?: () => void\n onAddAnotherJob?: () => void\n onAddDeduction?: () => void\n onEditDeduction?: (deduction: Garnishment) => void\n}\n\nexport function JobAndPayView({\n employeeId,\n onEvent,\n onEditCompensation,\n onAddJob,\n onAddAnotherJob,\n onAddDeduction,\n onEditDeduction,\n}: JobAndPayViewProps) {\n useI18n('Employee.PaymentMethod')\n useI18n('Employee.Compensation')\n useI18n('Employee.Deductions')\n const { t } = useTranslation('Employee.Dashboard')\n const { t: tPayment } = useTranslation('Employee.PaymentMethod')\n const { t: tCompensation } = useTranslation('Employee.Compensation')\n const { t: tDeductions } = useTranslation('Employee.Deductions')\n const Components = useComponentContext()\n const formatCompensationRate = useFormatCompensationRate()\n const formatCurrency = useNumberFormatter('currency')\n const formatPercent = useNumberFormatter('percent')\n const gustoEmbedded = useGustoEmbeddedContext()\n const { showBoundary } = useErrorBoundary()\n\n const compensation = useEmployeeCompensation({ employeeId })\n const jobs = compensation.isLoading ? [] : compensation.data.jobs\n const primaryFlsaStatus = compensation.isLoading ? undefined : compensation.data.primaryFlsaStatus\n const pendingChanges = compensation.isLoading ? [] : compensation.data.pendingChanges\n const hasMultipleJobsFromHook = compensation.isLoading ? false : compensation.data.hasMultipleJobs\n const payStubs = compensation.isLoading ? [] : compensation.data.payStubs\n const payStubsPagination = compensation.isLoading ? undefined : compensation.pagination.payStubs\n const cancellingCompensationUuid = compensation.isLoading\n ? null\n : compensation.status.cancellingCompensationUuid\n const cancelPendingChange = compensation.isLoading\n ? undefined\n : compensation.actions.cancelPendingChange\n const employeeFirstName = compensation.isLoading ? undefined : compensation.data.employeeFirstName\n\n const handleCancelChange = useCallback(\n async (pendingChange: PendingCompensationChange) => {\n if (!cancelPendingChange) return\n const result = await cancelPendingChange(pendingChange)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_COMPENSATION_CHANGE_CANCELLED, {\n employeeId,\n compensationId: pendingChange.compensationUuid,\n })\n }\n },\n [cancelPendingChange, onEvent, employeeId],\n )\n\n const [downloadingPayrollUuids, setDownloadingPayrollUuids] = useState<ReadonlySet<string>>(\n () => new Set(),\n )\n\n const handlePaystubDownload = useCallback(\n async (payrollUuid: string) => {\n const newWindow = window.open('', '_blank', 'noopener,noreferrer')\n const loadingMessage = t('jobAndPay.paystubs.downloadLoadingMessage')\n if (newWindow) {\n // Avoid the user staring at about:blank while we fetch the PDF. The\n // navigation to the Blob URL below replaces this document.\n const doc = newWindow.document\n doc.title = loadingMessage\n const style = doc.createElement('style')\n style.textContent =\n 'body{font-family:system-ui,-apple-system,sans-serif;display:flex;align-items:center;' +\n 'justify-content:center;height:100vh;margin:0;color:#444;gap:12px}' +\n '.spinner{width:20px;height:20px;border:2px solid #ccc;border-top-color:#444;' +\n 'border-radius:50%;animation:spin .8s linear infinite}' +\n '@keyframes spin{to{transform:rotate(360deg)}}'\n doc.head.appendChild(style)\n const spinner = doc.createElement('div')\n spinner.className = 'spinner'\n spinner.setAttribute('aria-hidden', 'true')\n const label = doc.createElement('span')\n label.textContent = loadingMessage\n doc.body.replaceChildren(spinner, label)\n }\n setDownloadingPayrollUuids(prev => {\n const next = new Set(prev)\n next.add(payrollUuid)\n return next\n })\n try {\n const response = await payrollsGetPayStub(gustoEmbedded, {\n payrollId: payrollUuid,\n employeeId,\n })\n if (!response.value?.responseStream) {\n throw new Error(t('jobAndPay.paystubs.downloadError'))\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n const url = URL.createObjectURL(pdfBlob)\n if (newWindow) {\n newWindow.location.href = url\n }\n URL.revokeObjectURL(url)\n } catch (err) {\n if (newWindow) {\n newWindow.close()\n }\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n } finally {\n setDownloadingPayrollUuids(prev => {\n const next = new Set(prev)\n next.delete(payrollUuid)\n return next\n })\n }\n },\n [gustoEmbedded, employeeId, t, showBoundary],\n )\n\n const [pendingDeleteJob, setPendingDeleteJob] = useState<{\n uuid: string\n title: string\n } | null>(null)\n\n const { mutateAsync: deleteEmployeeJob, isPending: isDeletingJob } =\n useJobsAndCompensationsDeleteMutation()\n\n const handleConfirmDeleteJob = async () => {\n if (!pendingDeleteJob) return\n const jobId = pendingDeleteJob.uuid\n await deleteEmployeeJob({ request: { jobId } })\n onEvent(componentEvents.EMPLOYEE_JOB_DELETED, { employeeId, jobId })\n setPendingDeleteJob(null)\n }\n\n const singleJob = jobs.length === 1 ? jobs[0]! : undefined\n const hasMultipleJobs = hasMultipleJobsFromHook\n const canAddAnotherJob = jobs.length >= 1 && primaryFlsaStatus === FlsaStatus.NONEXEMPT\n const singleJobNumericRate = singleJob ? parseJobRate(singleJob.rate) : null\n\n const [isReviewOpen, setIsReviewOpen] = useState(false)\n const renderDetail = usePendingChangeDetailRenderer(employeeFirstName)\n\n const hasPendingChanges = pendingChanges.length > 0\n const showSummaryAlert = hasMultipleJobs && pendingChanges.length > 1\n const showInlineAlert = hasPendingChanges && !showSummaryAlert\n const nextChange = pendingChanges[0]\n\n const paymentMethodList = usePaymentMethodList({ employeeId })\n const paymentMethod = paymentMethodList.isLoading\n ? undefined\n : paymentMethodList.data.paymentMethod\n const bankAccounts = paymentMethodList.isLoading ? [] : paymentMethodList.data.bankAccounts\n const deletePendingBankAccountUuid = paymentMethodList.isLoading\n ? undefined\n : paymentMethodList.status.deletePendingBankAccountUuid\n\n const { pendingDeleteAccount, setPendingDeleteAccount, handleConfirmDelete } =\n useDeleteBankAccount(async uuid => {\n if (paymentMethodList.isLoading) return\n const result = await paymentMethodList.actions.onDelete(uuid)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED, result.data)\n }\n })\n\n const deductionsList = useDeductionsList({ employeeId })\n const deductions = deductionsList.isLoading ? [] : deductionsList.data.deductions\n const deletingGarnishmentUuid = deductionsList.isLoading\n ? undefined\n : deductionsList.status.deletingGarnishmentUuid\n\n const {\n pendingDeleteDeduction,\n setPendingDeleteDeduction,\n handleConfirmDelete: handleConfirmDeleteDeduction,\n } = useDeleteDeduction(async garnishment => {\n if (deductionsList.isLoading) return\n const result = await deductionsList.actions.onDelete(garnishment)\n if (result) {\n onEvent(componentEvents.EMPLOYEE_DEDUCTION_DELETED, result.data.garnishment)\n }\n })\n\n // All three hooks own their own error state; merge into one error\n // surface so the BaseLayout below shows whatever failed (read errors\n // from the queries, submit errors from delete/cancel actions).\n const errorHandling = composeErrorHandler([compensation, paymentMethodList, deductionsList])\n\n const jobsColumns = [\n {\n key: 'jobTitle',\n title: t('jobAndPay.compensation.columns.jobTitle'),\n render: (job: Job) => {\n const numericRate = parseJobRate(job.rate)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text>{job.title || '-'}</Components.Text>\n {numericRate !== null && job.paymentUnit ? (\n <Components.Text variant=\"supporting\">\n {formatCompensationRate(numericRate, job.paymentUnit)}\n </Components.Text>\n ) : null}\n </Flex>\n )\n },\n },\n {\n key: 'payType',\n title: t('jobAndPay.compensation.columns.payType'),\n render: (job: Job) => {\n const flsaStatus = job.compensations?.find(\n comp => comp.uuid === job.currentCompensationUuid,\n )?.flsaStatus\n return flsaStatus !== undefined ? tCompensation(`flsaStatusLabels.${flsaStatus}`) : '-'\n },\n },\n {\n key: 'startDate',\n title: t('jobAndPay.compensation.columns.startDate'),\n render: (job: Job) => (job.hireDate ? formatDateLongWithYear(job.hireDate) : '-'),\n },\n ]\n\n const jobsDataView = useDataView({\n data: jobs,\n columns: jobsColumns,\n itemMenu: (job: Job) => (\n <HamburgerMenu\n triggerLabel={t('jobAndPay.compensation.hamburgerTitle')}\n isLoading={isDeletingJob}\n items={[\n {\n label: t('jobAndPay.compensation.editJobCta'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n onEditCompensation?.(job)\n },\n },\n ...(!job.primary\n ? [\n {\n label: t('jobAndPay.compensation.deleteJobCta'),\n icon: <TrashCanSvg aria-hidden />,\n onClick: () => {\n setPendingDeleteJob({ uuid: job.uuid, title: job.title ?? '' })\n },\n },\n ]\n : []),\n ]}\n />\n ),\n })\n\n const bankAccountsColumns = [\n {\n key: 'nickname',\n title: t('jobAndPay.payment.nickname'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.name || '-',\n },\n {\n key: 'routingNumber',\n title: t('jobAndPay.payment.routingNumber'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.routingNumber || '-',\n },\n {\n key: 'accountType',\n title: t('jobAndPay.payment.accountType'),\n render: (bankAccount: EmployeeBankAccount) => bankAccount.accountType || '-',\n },\n ]\n\n const garnishmentsColumns = [\n {\n key: 'description',\n title: t('jobAndPay.deductions.deduction'),\n render: (garnishment: Garnishment) => garnishment.description || '-',\n },\n {\n key: 'frequency',\n title: t('jobAndPay.deductions.frequency'),\n render: (garnishment: Garnishment) =>\n garnishment.recurring\n ? t('jobAndPay.deductions.recurring')\n : t('jobAndPay.deductions.oneTime'),\n },\n {\n key: 'amount',\n title: t('jobAndPay.deductions.withhold'),\n render: (garnishment: Garnishment) =>\n formatDeductionAmount(garnishment, {\n formatCurrency,\n formatPercent,\n formatPerPaycheck: (value: string) =>\n t('jobAndPay.deductions.amountPerPaycheck', { value }),\n }),\n },\n ]\n\n const payStubsColumns = [\n {\n key: 'payday',\n title: t('jobAndPay.paystubs.payday'),\n render: (payStub: EmployeePayStub) => formatDateLongWithYear(payStub.checkDate) || '-',\n },\n {\n key: 'checkAmount',\n title: t('jobAndPay.paystubs.checkAmount'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.netPay) return '-'\n const amount = parseFloat(payStub.netPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'grossPay',\n title: t('jobAndPay.paystubs.grossPay'),\n render: (payStub: EmployeePayStub) => {\n if (!payStub.grossPay) return '-'\n const amount = parseFloat(payStub.grossPay)\n return isNaN(amount) ? '-' : formatCurrency(amount)\n },\n },\n {\n key: 'paymentMethod',\n title: t('jobAndPay.paystubs.paymentMethod'),\n render: () => paymentMethod?.type || t('jobAndPay.paystubs.noPaymentMethod'),\n },\n ]\n\n const bankAccountsDataView = useDataView({\n data: bankAccounts,\n columns: bankAccountsColumns,\n itemMenu: (bankAccount: EmployeeBankAccount) => (\n <HamburgerMenu\n items={[\n {\n label: tPayment('deleteBankAccountCta'),\n onClick: () => {\n setPendingDeleteAccount({\n uuid: bankAccount.uuid,\n hiddenAccountNumber: bankAccount.hiddenAccountNumber,\n })\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={tPayment('hamburgerTitle')}\n />\n ),\n })\n\n const garnishmentsDataView = useDataView({\n data: deductions,\n columns: garnishmentsColumns,\n itemMenu: (garnishment: Garnishment) => (\n <HamburgerMenu\n isLoading={deletingGarnishmentUuid === garnishment.uuid}\n items={[\n {\n label: tDeductions('editCta'),\n onClick: () => onEditDeduction?.(garnishment),\n icon: <PencilSvg aria-hidden />,\n },\n {\n label: tDeductions('deleteCta'),\n onClick: () => {\n setPendingDeleteDeduction(garnishment)\n },\n icon: <TrashCanSvg aria-hidden />,\n },\n ]}\n triggerLabel={tDeductions('hamburgerTitle')}\n />\n ),\n emptyState: () => (\n <EmptyData\n title={t('jobAndPay.deductions.emptyState.title')}\n description={t('jobAndPay.deductions.emptyState.description')}\n />\n ),\n })\n\n const payStubsDataView = useDataView({\n data: payStubs,\n columns: payStubsColumns,\n pagination: payStubsPagination,\n itemMenu: payStub => {\n const isDownloading =\n !!payStub.payrollUuid && downloadingPayrollUuids.has(payStub.payrollUuid)\n return (\n <Components.ButtonIcon\n variant=\"tertiary\"\n aria-label={t('jobAndPay.paystubs.downloadCta')}\n isDisabled={!payStub.payrollUuid}\n isLoading={isDownloading}\n onClick={() => {\n if (payStub.payrollUuid) {\n void handlePaystubDownload(payStub.payrollUuid)\n }\n }}\n >\n <DownloadCloudIcon aria-hidden />\n </Components.ButtonIcon>\n )\n },\n emptyState: () => (\n <EmptyData\n title={t('jobAndPay.paystubs.emptyState.title')}\n description={t('jobAndPay.paystubs.emptyState.description')}\n />\n ),\n })\n\n if (compensation.isLoading || paymentMethodList.isLoading || deductionsList.isLoading) {\n return <BaseLayout isLoading error={errorHandling.errors} />\n }\n\n const isDirectDeposit = paymentMethod?.type === PAYMENT_METHODS.directDeposit\n\n return (\n <BaseLayout error={errorHandling.errors}>\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n withPadding={!hasMultipleJobs}\n header={\n <Components.BoxHeader\n title={t('jobAndPay.compensation.title')}\n action={\n hasMultipleJobs ? null : singleJob ? (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEditCompensation?.(singleJob)\n }}\n >\n {t('jobAndPay.compensation.editCta')}\n </Components.Button>\n ) : (\n <Components.Button\n variant=\"secondary\"\n onClick={onAddJob}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.compensation.addJobCta')}\n </Components.Button>\n )\n }\n />\n }\n footer={\n canAddAnotherJob ? (\n <Components.Button\n variant=\"secondary\"\n onClick={onAddAnotherJob}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.compensation.addAnotherJobCta')}\n </Components.Button>\n ) : undefined\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {showInlineAlert && nextChange && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={\n hasMultipleJobs\n ? t('jobAndPay.compensation.pendingChange.alertLabelWithJob', {\n jobTitle: nextChange.jobTitle,\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n : t('jobAndPay.compensation.pendingChange.alertLabel', {\n date: formatDateLongWithYear(nextChange.effectiveDate),\n })\n }\n >\n <Flex flexDirection=\"column\" gap={12}>\n <Components.UnorderedList\n items={nextChange.details.map(detail => renderDetail(detail))}\n />\n <div>\n <Components.Button\n variant=\"secondary\"\n isLoading={cancellingCompensationUuid === nextChange.compensationUuid}\n onClick={() => {\n void handleCancelChange(nextChange)\n }}\n >\n {t('jobAndPay.compensation.pendingChange.cancelCta')}\n </Components.Button>\n </div>\n </Flex>\n </Components.Alert>\n )}\n {showSummaryAlert && (\n <Components.Alert\n status=\"warning\"\n disableScrollIntoView\n label={t('jobAndPay.compensation.pendingChange.summaryLabel', {\n name: employeeFirstName ?? '',\n })}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n setIsReviewOpen(true)\n }}\n >\n {t('jobAndPay.compensation.pendingChange.reviewCta')}\n </Components.Button>\n }\n />\n )}\n {hasMultipleJobs ? (\n <DataView\n label={t('jobAndPay.compensation.tableLabel')}\n isWithinBox\n {...jobsDataView}\n />\n ) : singleJob ? (\n <Flex flexDirection=\"column\" gap={12}>\n {singleJob.title && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.jobTitle')}\n </Components.Text>\n <Components.Text>{singleJob.title}</Components.Text>\n </Flex>\n )}\n\n {singleJob.paymentUnit && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.type')}\n </Components.Text>\n <Components.Text>\n {singleJob.paymentUnit === 'Hour'\n ? t('jobAndPay.compensation.types.hourly')\n : singleJob.paymentUnit === 'Salary' || singleJob.paymentUnit === 'Year'\n ? t('jobAndPay.compensation.types.salary')\n : singleJob.paymentUnit}\n </Components.Text>\n </Flex>\n )}\n\n {singleJobNumericRate !== null && singleJob.paymentUnit && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.wage')}\n </Components.Text>\n <Components.Text>\n {formatCompensationRate(singleJobNumericRate, singleJob.paymentUnit)}\n </Components.Text>\n </Flex>\n )}\n\n {singleJob.hireDate && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.startDate')}\n </Components.Text>\n <Components.Text>{formatDateLongWithYear(singleJob.hireDate)}</Components.Text>\n </Flex>\n )}\n </Flex>\n ) : (\n <EmptyData\n title={t('jobAndPay.compensation.emptyState.title')}\n description={t('jobAndPay.compensation.emptyState.description')}\n />\n )}\n </Flex>\n </Components.Box>\n\n <Components.Box\n withPadding={bankAccounts.length === 0}\n header={\n <Components.BoxHeader\n title={t('jobAndPay.payment.title')}\n action={\n <Flex gap={8} alignItems=\"center\" justifyContent=\"flex-end\">\n {isDirectDeposit && bankAccounts.length > 1 && (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_SPLIT_PAYCHECK, { employeeId })\n }}\n icon={<PercentCircleIcon />}\n >\n {t('jobAndPay.payment.splitPaycheckCta')}\n </Components.Button>\n )}\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATE, { employeeId })\n }}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.payment.addBankAccountCta')}\n </Components.Button>\n </Flex>\n }\n />\n }\n >\n {bankAccounts.length === 0 ? (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {tPayment('paymentMethodLabel')}\n </Components.Text>\n <Components.Text>\n {isDirectDeposit ? tPayment('directDepositLabel') : tPayment('checkLabel')}\n </Components.Text>\n </Flex>\n ) : (\n <DataView\n label={t('jobAndPay.payment.listLabel')}\n isWithinBox\n {...bankAccountsDataView}\n />\n )}\n </Components.Box>\n\n <Components.Box\n withPadding={false}\n header={\n <Components.BoxHeader\n title={t('jobAndPay.deductions.title')}\n action={\n <Components.Button\n variant=\"secondary\"\n onClick={onAddDeduction}\n icon={<PlusCircleIcon />}\n >\n {t('jobAndPay.deductions.addDeductionCta')}\n </Components.Button>\n }\n />\n }\n >\n <DataView\n label={t('jobAndPay.deductions.listLabel')}\n isWithinBox\n {...garnishmentsDataView}\n />\n </Components.Box>\n\n <Components.Box\n withPadding={false}\n header={<Components.BoxHeader title={t('jobAndPay.paystubs.title')} />}\n >\n <DataView label={t('jobAndPay.paystubs.listLabel')} isWithinBox {...payStubsDataView} />\n </Components.Box>\n\n <PendingChangesReviewModal\n isOpen={isReviewOpen}\n pendingChanges={pendingChanges}\n employeeFirstName={employeeFirstName}\n cancellingCompensationUuid={cancellingCompensationUuid}\n onClose={() => {\n setIsReviewOpen(false)\n }}\n onCancelChange={change => {\n void handleCancelChange(change)\n }}\n />\n\n <DeleteBankAccountDialog\n pendingDeleteAccount={pendingDeleteAccount}\n isPrimaryActionLoading={deletePendingBankAccountUuid === pendingDeleteAccount?.uuid}\n onClose={() => {\n setPendingDeleteAccount(null)\n }}\n onConfirm={() => {\n void handleConfirmDelete()\n }}\n />\n\n <DeleteDeductionDialog\n pendingDeleteDeduction={pendingDeleteDeduction}\n isPrimaryActionLoading={deletingGarnishmentUuid === pendingDeleteDeduction?.uuid}\n onClose={() => {\n setPendingDeleteDeduction(null)\n }}\n onConfirm={() => {\n void handleConfirmDeleteDeduction()\n }}\n />\n\n <Components.Dialog\n isOpen={pendingDeleteJob !== null}\n onClose={() => {\n setPendingDeleteJob(null)\n }}\n onPrimaryActionClick={() => {\n void handleConfirmDeleteJob()\n }}\n isPrimaryActionLoading={isDeletingJob}\n isDestructive\n title={t('jobAndPay.compensation.deleteJobDialog.title')}\n primaryActionLabel={t('jobAndPay.compensation.deleteJobDialog.confirmCta')}\n closeActionLabel={t('jobAndPay.compensation.deleteJobDialog.cancelCta')}\n >\n {pendingDeleteJob\n ? t('jobAndPay.compensation.deleteJobDialog.description', {\n jobTitle: pendingDeleteJob.title,\n })\n : null}\n </Components.Dialog>\n </Flex>\n </BaseLayout>\n )\n}\n"],"names":["parseJobRate","rate","numericRate","JobAndPayView","employeeId","onEvent","onEditCompensation","onAddJob","onAddAnotherJob","onAddDeduction","onEditDeduction","useI18n","useTranslation","tPayment","tCompensation","tDeductions","Components","useComponentContext","formatCompensationRate","useFormatCompensationRate","formatCurrency","useNumberFormatter","formatPercent","gustoEmbedded","useGustoEmbeddedContext","showBoundary","useErrorBoundary","compensation","useEmployeeCompensation","jobs","primaryFlsaStatus","pendingChanges","hasMultipleJobsFromHook","payStubs","payStubsPagination","cancellingCompensationUuid","cancelPendingChange","employeeFirstName","handleCancelChange","useCallback","pendingChange","componentEvents","downloadingPayrollUuids","setDownloadingPayrollUuids","useState","handlePaystubDownload","payrollUuid","newWindow","loadingMessage","doc","style","spinner","label","prev","next","response","payrollsGetPayStub","pdfBlob","readableStreamToBlob","url","err","pendingDeleteJob","setPendingDeleteJob","deleteEmployeeJob","isDeletingJob","useJobsAndCompensationsDeleteMutation","handleConfirmDeleteJob","jobId","singleJob","hasMultipleJobs","canAddAnotherJob","FlsaStatus","singleJobNumericRate","isReviewOpen","setIsReviewOpen","renderDetail","usePendingChangeDetailRenderer","hasPendingChanges","showSummaryAlert","showInlineAlert","nextChange","paymentMethodList","usePaymentMethodList","paymentMethod","bankAccounts","deletePendingBankAccountUuid","pendingDeleteAccount","setPendingDeleteAccount","handleConfirmDelete","useDeleteBankAccount","uuid","result","deductionsList","useDeductionsList","deductions","deletingGarnishmentUuid","pendingDeleteDeduction","setPendingDeleteDeduction","handleConfirmDeleteDeduction","useDeleteDeduction","garnishment","errorHandling","composeErrorHandler","jobsColumns","job","jsxs","Flex","jsx","flsaStatus","comp","formatDateLongWithYear","jobsDataView","useDataView","HamburgerMenu","PencilSvg","TrashCanSvg","bankAccountsColumns","bankAccount","garnishmentsColumns","formatDeductionAmount","value","payStubsColumns","payStub","amount","bankAccountsDataView","garnishmentsDataView","EmptyData","payStubsDataView","isDownloading","DownloadCloudIcon","BaseLayout","isDirectDeposit","PAYMENT_METHODS","PlusCircleIcon","detail","DataView","PercentCircleIcon","PendingChangesReviewModal","change","DeleteBankAccountDialog","DeleteDeductionDialog"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { PendingCompensationChange } from './getPendingCompensationChanges';
2
+ export interface PendingChangesReviewModalProps {
3
+ isOpen: boolean;
4
+ pendingChanges: PendingCompensationChange[];
5
+ employeeFirstName: string | null | undefined;
6
+ cancellingCompensationUuid: string | null;
7
+ onClose: () => void;
8
+ onCancelChange: (pendingChange: PendingCompensationChange) => void;
9
+ }
10
+ export declare function PendingChangesReviewModal({ isOpen, pendingChanges, employeeFirstName, cancellingCompensationUuid, onClose, onCancelChange, }: PendingChangesReviewModalProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,64 @@
1
+ import { jsx as e, jsxs as r } from "react/jsx-runtime";
2
+ import { useTranslation as u } from "react-i18next";
3
+ import { usePendingChangeDetailRenderer as f } from "./usePendingChangeDetailRenderer.js";
4
+ import { useComponentContext as g } from "../../../contexts/ComponentAdapter/useComponentContext.js";
5
+ import { Flex as i } from "../../Common/Flex/Flex.js";
6
+ import { formatDateLongWithYear as x } from "../../../helpers/dateFormatting.js";
7
+ function P({
8
+ isOpen: d,
9
+ pendingChanges: l,
10
+ employeeFirstName: c,
11
+ cancellingCompensationUuid: m,
12
+ onClose: a,
13
+ onCancelChange: s
14
+ }) {
15
+ const { t } = u("Employee.Dashboard"), n = g(), p = f(c);
16
+ return /* @__PURE__ */ e(
17
+ n.Modal,
18
+ {
19
+ isOpen: d,
20
+ onClose: a,
21
+ shouldCloseOnBackdropClick: !0,
22
+ footer: /* @__PURE__ */ e(i, { justifyContent: "flex-end", gap: 8, children: /* @__PURE__ */ e(n.Button, { variant: "secondary", onClick: a, children: t("jobAndPay.compensation.pendingChange.modal.closeCta") }) }),
23
+ children: /* @__PURE__ */ r(i, { flexDirection: "column", gap: 32, children: [
24
+ /* @__PURE__ */ r(i, { flexDirection: "column", gap: 4, children: [
25
+ /* @__PURE__ */ e(n.Heading, { as: "h3", styledAs: "h4", children: t("jobAndPay.compensation.pendingChange.modal.title") }),
26
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", children: t("jobAndPay.compensation.pendingChange.modal.description") })
27
+ ] }),
28
+ /* @__PURE__ */ e(i, { flexDirection: "column", gap: 16, children: l.map((o) => /* @__PURE__ */ e(
29
+ n.Box,
30
+ {
31
+ footer: /* @__PURE__ */ e(
32
+ n.Button,
33
+ {
34
+ variant: "secondary",
35
+ isLoading: m === o.compensationUuid,
36
+ onClick: () => {
37
+ s(o);
38
+ },
39
+ children: t("jobAndPay.compensation.pendingChange.cancelCta")
40
+ }
41
+ ),
42
+ children: /* @__PURE__ */ r(i, { flexDirection: "column", gap: 16, children: [
43
+ /* @__PURE__ */ r(i, { flexDirection: "column", gap: 0, children: [
44
+ o.jobTitle && /* @__PURE__ */ e(n.Text, { weight: "medium", children: o.jobTitle }),
45
+ /* @__PURE__ */ e(n.Text, { variant: "supporting", size: "sm", children: x(o.effectiveDate) })
46
+ ] }),
47
+ /* @__PURE__ */ e(
48
+ n.UnorderedList,
49
+ {
50
+ items: o.details.map((h) => p(h))
51
+ }
52
+ )
53
+ ] })
54
+ },
55
+ o.compensationUuid
56
+ )) })
57
+ ] })
58
+ }
59
+ );
60
+ }
61
+ export {
62
+ P as PendingChangesReviewModal
63
+ };
64
+ //# sourceMappingURL=PendingChangesReviewModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PendingChangesReviewModal.js","sources":["../../../../src/components/Employee/Dashboard/PendingChangesReviewModal.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { PendingCompensationChange } from './getPendingCompensationChanges'\nimport { usePendingChangeDetailRenderer } from './usePendingChangeDetailRenderer'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { formatDateLongWithYear } from '@/helpers/dateFormatting'\n\nexport interface PendingChangesReviewModalProps {\n isOpen: boolean\n pendingChanges: PendingCompensationChange[]\n employeeFirstName: string | null | undefined\n cancellingCompensationUuid: string | null\n onClose: () => void\n onCancelChange: (pendingChange: PendingCompensationChange) => void\n}\n\nexport function PendingChangesReviewModal({\n isOpen,\n pendingChanges,\n employeeFirstName,\n cancellingCompensationUuid,\n onClose,\n onCancelChange,\n}: PendingChangesReviewModalProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n const renderDetail = usePendingChangeDetailRenderer(employeeFirstName)\n\n return (\n <Components.Modal\n isOpen={isOpen}\n onClose={onClose}\n shouldCloseOnBackdropClick\n footer={\n <Flex justifyContent=\"flex-end\" gap={8}>\n <Components.Button variant=\"secondary\" onClick={onClose}>\n {t('jobAndPay.compensation.pendingChange.modal.closeCta')}\n </Components.Button>\n </Flex>\n }\n >\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h3\" styledAs=\"h4\">\n {t('jobAndPay.compensation.pendingChange.modal.title')}\n </Components.Heading>\n <Components.Text variant=\"supporting\">\n {t('jobAndPay.compensation.pendingChange.modal.description')}\n </Components.Text>\n </Flex>\n <Flex flexDirection=\"column\" gap={16}>\n {pendingChanges.map(change => (\n <Components.Box\n key={change.compensationUuid}\n footer={\n <Components.Button\n variant=\"secondary\"\n isLoading={cancellingCompensationUuid === change.compensationUuid}\n onClick={() => {\n onCancelChange(change)\n }}\n >\n {t('jobAndPay.compensation.pendingChange.cancelCta')}\n </Components.Button>\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Flex flexDirection=\"column\" gap={0}>\n {change.jobTitle && (\n <Components.Text weight=\"medium\">{change.jobTitle}</Components.Text>\n )}\n <Components.Text variant=\"supporting\" size=\"sm\">\n {formatDateLongWithYear(change.effectiveDate)}\n </Components.Text>\n </Flex>\n <Components.UnorderedList\n items={change.details.map(detail => renderDetail(detail))}\n />\n </Flex>\n </Components.Box>\n ))}\n </Flex>\n </Flex>\n </Components.Modal>\n )\n}\n"],"names":["PendingChangesReviewModal","isOpen","pendingChanges","employeeFirstName","cancellingCompensationUuid","onClose","onCancelChange","useTranslation","Components","useComponentContext","renderDetail","usePendingChangeDetailRenderer","jsx","Flex","jsxs","change","formatDateLongWithYear","detail"],"mappings":";;;;;;AAgBO,SAASA,EAA0B;AAAA,EACxC,QAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,4BAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC;AACF,GAAmC;AACjC,QAAM,EAAE,EAAA,IAAMC,EAAe,oBAAoB,GAC3CC,IAAaC,EAAA,GACbC,IAAeC,EAA+BR,CAAiB;AAErE,SACE,gBAAAS;AAAA,IAACJ,EAAW;AAAA,IAAX;AAAA,MACC,QAAAP;AAAA,MACA,SAAAI;AAAA,MACA,4BAA0B;AAAA,MAC1B,QACE,gBAAAO,EAACC,GAAA,EAAK,gBAAe,YAAW,KAAK,GACnC,UAAA,gBAAAD,EAACJ,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAC7C,UAAA,EAAE,qDAAqD,GAC1D,GACF;AAAA,MAGF,UAAA,gBAAAS,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,QAAA,gBAAAC,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAD,EAACJ,EAAW,SAAX,EAAmB,IAAG,MAAK,UAAS,MAClC,UAAA,EAAE,kDAAkD,EAAA,CACvD;AAAA,UACA,gBAAAI,EAACJ,EAAW,MAAX,EAAgB,SAAQ,cACtB,UAAA,EAAE,wDAAwD,EAAA,CAC7D;AAAA,QAAA,GACF;AAAA,QACA,gBAAAI,EAACC,KAAK,eAAc,UAAS,KAAK,IAC/B,UAAAX,EAAe,IAAI,CAAAa,MAClB,gBAAAH;AAAA,UAACJ,EAAW;AAAA,UAAX;AAAA,YAEC,QACE,gBAAAI;AAAA,cAACJ,EAAW;AAAA,cAAX;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAWJ,MAA+BW,EAAO;AAAA,gBACjD,SAAS,MAAM;AACb,kBAAAT,EAAeS,CAAM;AAAA,gBACvB;AAAA,gBAEC,YAAE,gDAAgD;AAAA,cAAA;AAAA,YAAA;AAAA,YAIvD,UAAA,gBAAAD,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,cAAA,gBAAAC,EAACD,GAAA,EAAK,eAAc,UAAS,KAAK,GAC/B,UAAA;AAAA,gBAAAE,EAAO,8BACLP,EAAW,MAAX,EAAgB,QAAO,UAAU,YAAO,SAAA,CAAS;AAAA,gBAEpD,gBAAAI,EAACJ,EAAW,MAAX,EAAgB,SAAQ,cAAa,MAAK,MACxC,UAAAQ,EAAuBD,EAAO,aAAa,EAAA,CAC9C;AAAA,cAAA,GACF;AAAA,cACA,gBAAAH;AAAA,gBAACJ,EAAW;AAAA,gBAAX;AAAA,kBACC,OAAOO,EAAO,QAAQ,IAAI,CAAAE,MAAUP,EAAaO,CAAM,CAAC;AAAA,gBAAA;AAAA,cAAA;AAAA,YAC1D,EAAA,CACF;AAAA,UAAA;AAAA,UAzBKF,EAAO;AAAA,QAAA,CA2Bf,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -9,5 +9,18 @@ export interface TaxesViewProps {
9
9
  onEditFederalTaxes?: () => void;
10
10
  onEditStateTaxes?: () => void;
11
11
  }
12
+ export interface TaxesViewWithDataProps {
13
+ employeeId: string;
14
+ /** Receives the federal-tax record so the parent can preserve the
15
+ * existing event payload (`{ employeeId, federalTaxes }`). */
16
+ onEditFederalTaxes?: (federalTaxes: EmployeeFederalTax | undefined) => void;
17
+ onEditStateTaxes?: () => void;
18
+ }
19
+ /**
20
+ * Tab-mounted container for the Taxes tab. Owns the `useEmployeeTaxes`
21
+ * fetch so federal/state tax requests only fire when the tab is mounted.
22
+ * The presentational `TaxesView` stays pure for testing/stories.
23
+ */
24
+ export declare function TaxesViewWithData({ employeeId, onEditFederalTaxes, onEditStateTaxes, }: TaxesViewWithDataProps): import("react/jsx-runtime").JSX.Element;
12
25
  export declare function TaxesView({ federalTaxes, stateTaxes, isLoading, onEditFederalTaxes, onEditStateTaxes, }: TaxesViewProps): import("react/jsx-runtime").JSX.Element;
13
26
  export {};
@@ -1,99 +1,121 @@
1
1
  import { jsx as t, jsxs as c } from "react/jsx-runtime";
2
- import { useTranslation as f } from "react-i18next";
3
- import { Flex as o } from "../../Common/Flex/Flex.js";
4
- import { useComponentContext as y } from "../../../contexts/ComponentAdapter/useComponentContext.js";
2
+ import { useTranslation as y } from "react-i18next";
3
+ import { Flex as i } from "../../Common/Flex/Flex.js";
4
+ import { useComponentContext as D } from "../../../contexts/ComponentAdapter/useComponentContext.js";
5
5
  import "classnames";
6
6
  import "../../../shared/constants.js";
7
- import { Loading as D } from "../../Common/Loading/Loading.js";
8
- import F from "../../../hooks/useNumberFormatter.js";
9
- function J({
10
- federalTaxes: e,
11
- stateTaxes: a,
12
- isLoading: h = !1,
13
- onEditFederalTaxes: s,
14
- onEditStateTaxes: g
7
+ import { Loading as F } from "../../Common/Loading/Loading.js";
8
+ import { BaseLayout as g } from "../../Base/Base.js";
9
+ import v from "../../../hooks/useNumberFormatter.js";
10
+ import { useEmployeeTaxes as b } from "./hooks/useEmployeeTaxes.js";
11
+ function E({
12
+ employeeId: n,
13
+ onEditFederalTaxes: d,
14
+ onEditStateTaxes: s
15
15
  }) {
16
- const { t: i } = f("Employee.Dashboard"), n = y(), u = F("currency");
17
- if (h)
18
- return /* @__PURE__ */ t(D, {});
19
- const x = (l, r) => {
16
+ const u = b({ employeeId: n });
17
+ if (u.isLoading)
18
+ return /* @__PURE__ */ t(g, { isLoading: !0, error: u.errorHandling.errors });
19
+ const m = u.data.employeeFederalTax;
20
+ return /* @__PURE__ */ t(g, { error: u.errorHandling.errors, children: /* @__PURE__ */ t(
21
+ C,
22
+ {
23
+ federalTaxes: m,
24
+ stateTaxes: u.data.employeeStateTaxesList,
25
+ onEditFederalTaxes: () => d?.(m),
26
+ onEditStateTaxes: s
27
+ }
28
+ ) });
29
+ }
30
+ function C({
31
+ federalTaxes: n,
32
+ stateTaxes: d,
33
+ isLoading: s = !1,
34
+ onEditFederalTaxes: u,
35
+ onEditStateTaxes: m
36
+ }) {
37
+ const { t: o } = y("Employee.Dashboard"), e = D(), p = v("currency");
38
+ if (s)
39
+ return /* @__PURE__ */ t(F, {});
40
+ const f = (l, r) => {
20
41
  if (l.inputQuestionFormat.type === "Select" && l.inputQuestionFormat.options && l.inputQuestionFormat.options.length > 0) {
21
- const p = l.inputQuestionFormat.options.find((m) => m.value === r);
22
- if (p?.label)
23
- return p.label;
42
+ const a = l.inputQuestionFormat.options.find((h) => h.value === r);
43
+ if (a?.label)
44
+ return a.label;
24
45
  }
25
46
  if (typeof r == "number")
26
- return l.inputQuestionFormat.type === "Currency" ? u(r) : r;
47
+ return l.inputQuestionFormat.type === "Currency" ? p(r) : r;
27
48
  if (typeof r == "string" && !isNaN(parseFloat(r))) {
28
- const p = parseFloat(r);
29
- return l.inputQuestionFormat.type === "Currency" ? u(p) : r;
49
+ const a = parseFloat(r);
50
+ return l.inputQuestionFormat.type === "Currency" ? p(a) : r;
30
51
  }
31
- return typeof r == "boolean" ? i(r ? "common.yes" : "common.no") : r;
52
+ return typeof r == "boolean" ? o(r ? "common.yes" : "common.no") : r;
32
53
  };
33
- return /* @__PURE__ */ c(o, { flexDirection: "column", gap: 24, children: [
54
+ return /* @__PURE__ */ c(i, { flexDirection: "column", gap: 24, children: [
34
55
  /* @__PURE__ */ t(
35
- n.Box,
56
+ e.Box,
36
57
  {
37
58
  header: /* @__PURE__ */ t(
38
- n.BoxHeader,
59
+ e.BoxHeader,
39
60
  {
40
- title: i("taxes.federal.title"),
41
- action: /* @__PURE__ */ t(n.Button, { variant: "secondary", onClick: s, children: i("taxes.federal.editCta") })
61
+ title: o("taxes.federal.title"),
62
+ action: /* @__PURE__ */ t(e.Button, { variant: "secondary", onClick: u, children: o("taxes.federal.editCta") })
42
63
  }
43
64
  ),
44
- children: /* @__PURE__ */ t(o, { flexDirection: "column", gap: 16, children: e && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 12, children: [
45
- e.filingStatus && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
46
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.filingStatus") }),
47
- /* @__PURE__ */ t(n.Text, { children: e.filingStatus })
65
+ children: /* @__PURE__ */ t(i, { flexDirection: "column", gap: 16, children: n && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 12, children: [
66
+ n.filingStatus && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
67
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.filingStatus") }),
68
+ /* @__PURE__ */ t(e.Text, { children: n.filingStatus })
48
69
  ] }),
49
- "twoJobs" in e && e.twoJobs !== null && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
50
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.multipleJobs") }),
51
- /* @__PURE__ */ t(n.Text, { children: e.twoJobs ? i("common.yes") : i("common.no") })
70
+ "twoJobs" in n && n.twoJobs !== null && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
71
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.multipleJobs") }),
72
+ /* @__PURE__ */ t(e.Text, { children: n.twoJobs ? o("common.yes") : o("common.no") })
52
73
  ] }),
53
- "dependentsAmount" in e && e.dependentsAmount && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
54
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.dependentsAndOtherCredits") }),
55
- /* @__PURE__ */ t(n.Text, { children: u(parseFloat(e.dependentsAmount)) })
74
+ "dependentsAmount" in n && n.dependentsAmount && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
75
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.dependentsAndOtherCredits") }),
76
+ /* @__PURE__ */ t(e.Text, { children: p(parseFloat(n.dependentsAmount)) })
56
77
  ] }),
57
- "otherIncome" in e && e.otherIncome && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
58
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.otherIncome") }),
59
- /* @__PURE__ */ t(n.Text, { children: u(parseFloat(e.otherIncome)) })
78
+ "otherIncome" in n && n.otherIncome && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
79
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.otherIncome") }),
80
+ /* @__PURE__ */ t(e.Text, { children: p(parseFloat(n.otherIncome)) })
60
81
  ] }),
61
- "deductions" in e && e.deductions && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
62
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.deductions") }),
63
- /* @__PURE__ */ t(n.Text, { children: u(parseFloat(e.deductions)) })
82
+ "deductions" in n && n.deductions && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
83
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.deductions") }),
84
+ /* @__PURE__ */ t(e.Text, { children: p(parseFloat(n.deductions)) })
64
85
  ] }),
65
- "extraWithholding" in e && e.extraWithholding && /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
66
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: i("taxes.federal.extraWithholding") }),
67
- /* @__PURE__ */ t(n.Text, { children: u(parseFloat(e.extraWithholding)) })
86
+ "extraWithholding" in n && n.extraWithholding && /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
87
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: o("taxes.federal.extraWithholding") }),
88
+ /* @__PURE__ */ t(e.Text, { children: p(parseFloat(n.extraWithholding)) })
68
89
  ] })
69
90
  ] }) })
70
91
  }
71
92
  ),
72
93
  /* @__PURE__ */ t(
73
- n.Box,
94
+ e.Box,
74
95
  {
75
96
  header: /* @__PURE__ */ t(
76
- n.BoxHeader,
97
+ e.BoxHeader,
77
98
  {
78
- title: i("taxes.state.title"),
79
- action: /* @__PURE__ */ t(n.Button, { variant: "secondary", onClick: g, children: i("taxes.state.editCta") })
99
+ title: o("taxes.state.title"),
100
+ action: /* @__PURE__ */ t(e.Button, { variant: "secondary", onClick: m, children: o("taxes.state.editCta") })
80
101
  }
81
102
  ),
82
- children: /* @__PURE__ */ t(o, { flexDirection: "column", gap: 16, children: a && a.length > 0 ? /* @__PURE__ */ t(o, { flexDirection: "column", gap: 24, children: a.map((l, r) => /* @__PURE__ */ c(o, { flexDirection: "column", gap: 16, children: [
83
- /* @__PURE__ */ t(n.Heading, { as: "h4", children: l.state }),
84
- l.questions && l.questions.length > 0 && /* @__PURE__ */ t(o, { flexDirection: "column", gap: 12, children: l.questions.map((p, m) => {
85
- const d = p.answers[0]?.value;
86
- return d == null ? null : /* @__PURE__ */ c(o, { flexDirection: "column", gap: 0, children: [
87
- /* @__PURE__ */ t(n.Text, { variant: "supporting", children: p.label }),
88
- /* @__PURE__ */ t(n.Text, { children: x(p, d) })
89
- ] }, p.key || m);
103
+ children: /* @__PURE__ */ t(i, { flexDirection: "column", gap: 16, children: d && d.length > 0 ? /* @__PURE__ */ t(i, { flexDirection: "column", gap: 24, children: d.map((l, r) => /* @__PURE__ */ c(i, { flexDirection: "column", gap: 16, children: [
104
+ /* @__PURE__ */ t(e.Heading, { as: "h4", children: l.state }),
105
+ l.questions && l.questions.length > 0 && /* @__PURE__ */ t(i, { flexDirection: "column", gap: 12, children: l.questions.map((a, h) => {
106
+ const x = a.answers[0]?.value;
107
+ return x == null ? null : /* @__PURE__ */ c(i, { flexDirection: "column", gap: 0, children: [
108
+ /* @__PURE__ */ t(e.Text, { variant: "supporting", children: a.label }),
109
+ /* @__PURE__ */ t(e.Text, { children: f(a, x) })
110
+ ] }, a.key || h);
90
111
  }) })
91
- ] }, l.state || r)) }) : /* @__PURE__ */ t(n.Text, { children: i("taxes.state.noStateTaxes") }) })
112
+ ] }, l.state || r)) }) : /* @__PURE__ */ t(e.Text, { children: o("taxes.state.noStateTaxes") }) })
92
113
  }
93
114
  )
94
115
  ] });
95
116
  }
96
117
  export {
97
- J as TaxesView
118
+ C as TaxesView,
119
+ E as TaxesViewWithData
98
120
  };
99
121
  //# sourceMappingURL=TaxesView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaxesView.js","sources":["../../../../src/components/Employee/Dashboard/TaxesView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { GetV1EmployeesEmployeeIdFederalTaxesResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeidfederaltaxes'\nimport type { GetV1EmployeesEmployeeIdStateTaxesResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeidstatetaxes'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Loading } from '@/components/Common'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\n\ntype EmployeeFederalTax = NonNullable<\n GetV1EmployeesEmployeeIdFederalTaxesResponse['employeeFederalTax']\n>\ntype EmployeeStateTax = NonNullable<\n GetV1EmployeesEmployeeIdStateTaxesResponse['employeeStateTaxesList']\n>[number]\n\nexport interface TaxesViewProps {\n federalTaxes?: EmployeeFederalTax\n stateTaxes?: EmployeeStateTax[]\n isLoading?: boolean\n onEditFederalTaxes?: () => void\n onEditStateTaxes?: () => void\n}\n\nexport function TaxesView({\n federalTaxes,\n stateTaxes,\n isLoading = false,\n onEditFederalTaxes,\n onEditStateTaxes,\n}: TaxesViewProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n\n if (isLoading) {\n return <Loading />\n }\n\n // Helper function to format state tax answer values\n const formatStateTaxAnswer = (\n question: EmployeeStateTaxQuestion,\n answer: string | number | boolean,\n ) => {\n // For Select type questions, look up the label from options\n if (\n question.inputQuestionFormat.type === 'Select' &&\n question.inputQuestionFormat.options &&\n question.inputQuestionFormat.options.length > 0\n ) {\n const option = question.inputQuestionFormat.options.find(opt => opt.value === answer)\n if (option?.label) {\n return option.label\n }\n }\n\n // For numeric values, only format as currency for Currency questions\n if (typeof answer === 'number') {\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(answer)\n }\n return answer\n }\n\n // For string currency values (like \"0.0\")\n if (typeof answer === 'string' && !isNaN(parseFloat(answer))) {\n const numValue = parseFloat(answer)\n // Check if this looks like a currency (has decimal point or question type is Currency)\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(numValue)\n }\n // For non-currency numeric strings, return as-is\n return answer\n }\n\n // For boolean values\n if (typeof answer === 'boolean') {\n return answer ? t('common.yes') : t('common.no')\n }\n\n // Default: return string value as-is\n return answer\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('taxes.federal.title')}\n action={\n <Components.Button variant=\"secondary\" onClick={onEditFederalTaxes}>\n {t('taxes.federal.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {federalTaxes && (\n <Flex flexDirection=\"column\" gap={12}>\n {federalTaxes.filingStatus && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.filingStatus')}\n </Components.Text>\n <Components.Text>{federalTaxes.filingStatus}</Components.Text>\n </Flex>\n )}\n\n {'twoJobs' in federalTaxes && federalTaxes.twoJobs !== null && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.multipleJobs')}\n </Components.Text>\n <Components.Text>\n {federalTaxes.twoJobs ? t('common.yes') : t('common.no')}\n </Components.Text>\n </Flex>\n )}\n\n {'dependentsAmount' in federalTaxes && federalTaxes.dependentsAmount && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.dependentsAndOtherCredits')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.dependentsAmount))}\n </Components.Text>\n </Flex>\n )}\n\n {'otherIncome' in federalTaxes && federalTaxes.otherIncome && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.otherIncome')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.otherIncome))}\n </Components.Text>\n </Flex>\n )}\n\n {'deductions' in federalTaxes && federalTaxes.deductions && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.deductions')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.deductions))}\n </Components.Text>\n </Flex>\n )}\n\n {'extraWithholding' in federalTaxes && federalTaxes.extraWithholding && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.extraWithholding')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.extraWithholding))}\n </Components.Text>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('taxes.state.title')}\n action={\n <Components.Button variant=\"secondary\" onClick={onEditStateTaxes}>\n {t('taxes.state.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {stateTaxes && stateTaxes.length > 0 ? (\n <Flex flexDirection=\"column\" gap={24}>\n {stateTaxes.map((stateTax, index) => (\n <Flex key={stateTax.state || index} flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h4\">{stateTax.state}</Components.Heading>\n\n {stateTax.questions && stateTax.questions.length > 0 && (\n <Flex flexDirection=\"column\" gap={12}>\n {stateTax.questions.map((question, qIndex) => {\n const answer = question.answers[0]?.value\n if (answer === null || answer === undefined) return null\n\n return (\n <Flex key={question.key || qIndex} flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">{question.label}</Components.Text>\n <Components.Text>\n {formatStateTaxAnswer(question, answer)}\n </Components.Text>\n </Flex>\n )\n })}\n </Flex>\n )}\n </Flex>\n ))}\n </Flex>\n ) : (\n <Components.Text>{t('taxes.state.noStateTaxes')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </Flex>\n )\n}\n"],"names":["TaxesView","federalTaxes","stateTaxes","isLoading","onEditFederalTaxes","onEditStateTaxes","t","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","Loading","formatStateTaxAnswer","question","answer","option","opt","numValue","jsxs","Flex","jsx","stateTax","index","qIndex"],"mappings":"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"}
1
+ {"version":3,"file":"TaxesView.js","sources":["../../../../src/components/Employee/Dashboard/TaxesView.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { GetV1EmployeesEmployeeIdFederalTaxesResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeidfederaltaxes'\nimport type { GetV1EmployeesEmployeeIdStateTaxesResponse } from '@gusto/embedded-api/models/operations/getv1employeesemployeeidstatetaxes'\nimport type { EmployeeStateTaxQuestion } from '@gusto/embedded-api/models/components/employeestatetaxquestion'\nimport { useEmployeeTaxes } from './hooks'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Loading } from '@/components/Common'\nimport { BaseLayout } from '@/components/Base/Base'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\n\ntype EmployeeFederalTax = NonNullable<\n GetV1EmployeesEmployeeIdFederalTaxesResponse['employeeFederalTax']\n>\ntype EmployeeStateTax = NonNullable<\n GetV1EmployeesEmployeeIdStateTaxesResponse['employeeStateTaxesList']\n>[number]\n\nexport interface TaxesViewProps {\n federalTaxes?: EmployeeFederalTax\n stateTaxes?: EmployeeStateTax[]\n isLoading?: boolean\n onEditFederalTaxes?: () => void\n onEditStateTaxes?: () => void\n}\n\nexport interface TaxesViewWithDataProps {\n employeeId: string\n /** Receives the federal-tax record so the parent can preserve the\n * existing event payload (`{ employeeId, federalTaxes }`). */\n onEditFederalTaxes?: (federalTaxes: EmployeeFederalTax | undefined) => void\n onEditStateTaxes?: () => void\n}\n\n/**\n * Tab-mounted container for the Taxes tab. Owns the `useEmployeeTaxes`\n * fetch so federal/state tax requests only fire when the tab is mounted.\n * The presentational `TaxesView` stays pure for testing/stories.\n */\nexport function TaxesViewWithData({\n employeeId,\n onEditFederalTaxes,\n onEditStateTaxes,\n}: TaxesViewWithDataProps) {\n const taxes = useEmployeeTaxes({ employeeId })\n\n if (taxes.isLoading) {\n return <BaseLayout isLoading error={taxes.errorHandling.errors} />\n }\n\n const federalTaxes = taxes.data.employeeFederalTax\n return (\n <BaseLayout error={taxes.errorHandling.errors}>\n <TaxesView\n federalTaxes={federalTaxes}\n stateTaxes={taxes.data.employeeStateTaxesList}\n onEditFederalTaxes={() => onEditFederalTaxes?.(federalTaxes)}\n onEditStateTaxes={onEditStateTaxes}\n />\n </BaseLayout>\n )\n}\n\nexport function TaxesView({\n federalTaxes,\n stateTaxes,\n isLoading = false,\n onEditFederalTaxes,\n onEditStateTaxes,\n}: TaxesViewProps) {\n const { t } = useTranslation('Employee.Dashboard')\n const Components = useComponentContext()\n const formatCurrency = useNumberFormatter('currency')\n\n if (isLoading) {\n return <Loading />\n }\n\n // Helper function to format state tax answer values\n const formatStateTaxAnswer = (\n question: EmployeeStateTaxQuestion,\n answer: string | number | boolean,\n ) => {\n // For Select type questions, look up the label from options\n if (\n question.inputQuestionFormat.type === 'Select' &&\n question.inputQuestionFormat.options &&\n question.inputQuestionFormat.options.length > 0\n ) {\n const option = question.inputQuestionFormat.options.find(opt => opt.value === answer)\n if (option?.label) {\n return option.label\n }\n }\n\n // For numeric values, only format as currency for Currency questions\n if (typeof answer === 'number') {\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(answer)\n }\n return answer\n }\n\n // For string currency values (like \"0.0\")\n if (typeof answer === 'string' && !isNaN(parseFloat(answer))) {\n const numValue = parseFloat(answer)\n // Check if this looks like a currency (has decimal point or question type is Currency)\n if (question.inputQuestionFormat.type === 'Currency') {\n return formatCurrency(numValue)\n }\n // For non-currency numeric strings, return as-is\n return answer\n }\n\n // For boolean values\n if (typeof answer === 'boolean') {\n return answer ? t('common.yes') : t('common.no')\n }\n\n // Default: return string value as-is\n return answer\n }\n\n return (\n <Flex flexDirection=\"column\" gap={24}>\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('taxes.federal.title')}\n action={\n <Components.Button variant=\"secondary\" onClick={onEditFederalTaxes}>\n {t('taxes.federal.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {federalTaxes && (\n <Flex flexDirection=\"column\" gap={12}>\n {federalTaxes.filingStatus && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.filingStatus')}\n </Components.Text>\n <Components.Text>{federalTaxes.filingStatus}</Components.Text>\n </Flex>\n )}\n\n {'twoJobs' in federalTaxes && federalTaxes.twoJobs !== null && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.multipleJobs')}\n </Components.Text>\n <Components.Text>\n {federalTaxes.twoJobs ? t('common.yes') : t('common.no')}\n </Components.Text>\n </Flex>\n )}\n\n {'dependentsAmount' in federalTaxes && federalTaxes.dependentsAmount && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.dependentsAndOtherCredits')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.dependentsAmount))}\n </Components.Text>\n </Flex>\n )}\n\n {'otherIncome' in federalTaxes && federalTaxes.otherIncome && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.otherIncome')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.otherIncome))}\n </Components.Text>\n </Flex>\n )}\n\n {'deductions' in federalTaxes && federalTaxes.deductions && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.deductions')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.deductions))}\n </Components.Text>\n </Flex>\n )}\n\n {'extraWithholding' in federalTaxes && federalTaxes.extraWithholding && (\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">\n {t('taxes.federal.extraWithholding')}\n </Components.Text>\n <Components.Text>\n {formatCurrency(parseFloat(federalTaxes.extraWithholding))}\n </Components.Text>\n </Flex>\n )}\n </Flex>\n )}\n </Flex>\n </Components.Box>\n\n <Components.Box\n header={\n <Components.BoxHeader\n title={t('taxes.state.title')}\n action={\n <Components.Button variant=\"secondary\" onClick={onEditStateTaxes}>\n {t('taxes.state.editCta')}\n </Components.Button>\n }\n />\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n {stateTaxes && stateTaxes.length > 0 ? (\n <Flex flexDirection=\"column\" gap={24}>\n {stateTaxes.map((stateTax, index) => (\n <Flex key={stateTax.state || index} flexDirection=\"column\" gap={16}>\n <Components.Heading as=\"h4\">{stateTax.state}</Components.Heading>\n\n {stateTax.questions && stateTax.questions.length > 0 && (\n <Flex flexDirection=\"column\" gap={12}>\n {stateTax.questions.map((question, qIndex) => {\n const answer = question.answers[0]?.value\n if (answer === null || answer === undefined) return null\n\n return (\n <Flex key={question.key || qIndex} flexDirection=\"column\" gap={0}>\n <Components.Text variant=\"supporting\">{question.label}</Components.Text>\n <Components.Text>\n {formatStateTaxAnswer(question, answer)}\n </Components.Text>\n </Flex>\n )\n })}\n </Flex>\n )}\n </Flex>\n ))}\n </Flex>\n ) : (\n <Components.Text>{t('taxes.state.noStateTaxes')}</Components.Text>\n )}\n </Flex>\n </Components.Box>\n </Flex>\n )\n}\n"],"names":["TaxesViewWithData","employeeId","onEditFederalTaxes","onEditStateTaxes","taxes","useEmployeeTaxes","BaseLayout","federalTaxes","jsx","TaxesView","stateTaxes","isLoading","t","useTranslation","Components","useComponentContext","formatCurrency","useNumberFormatter","Loading","formatStateTaxAnswer","question","answer","option","opt","numValue","jsxs","Flex","stateTax","index","qIndex"],"mappings":"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"}
@@ -5,4 +5,11 @@ export declare const dashboardStateMachine: {
5
5
  federalTaxes: import('robot3').MachineState<any>;
6
6
  stateTaxes: import('robot3').MachineState<any>;
7
7
  profile: import('robot3').MachineState<any>;
8
+ paymentBankForm: import('robot3').MachineState<any>;
9
+ paymentSplitView: import('robot3').MachineState<any>;
10
+ documentManager: import('robot3').MachineState<any>;
11
+ deductionForm: import('robot3').MachineState<any>;
12
+ addJob: import('robot3').MachineState<any>;
13
+ editCompensation: import('robot3').MachineState<any>;
14
+ addAnotherJob: import('robot3').MachineState<any>;
8
15
  };