@gusto/embedded-react-sdk 0.26.0 → 0.27.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 (360) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/dist/assets/icons/plus-circle.svg.js +5 -5
  3. package/dist/assets/icons/plus-circle.svg.js.map +1 -1
  4. package/dist/components/Base/Base.js +13 -12
  5. package/dist/components/Base/Base.js.map +1 -1
  6. package/dist/components/Common/DocumentList/DocumentList.js +23 -23
  7. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  8. package/dist/components/Common/DocumentList/DocumentList.module.scss.js +6 -10
  9. package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
  10. package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +12 -12
  11. package/dist/components/Common/InlineSpinner/InlineSpinner.module.scss.js +1 -1
  12. package/dist/components/Common/InternalError/InternalError.module.scss.js +4 -4
  13. package/dist/components/Common/ReorderableList/ReorderableList.module.scss.js +8 -8
  14. package/dist/components/Common/RequirementsList/RequirementsList.module.scss.js +1 -1
  15. package/dist/components/Common/SignatureForm/SignatureForm.js +12 -10
  16. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  17. package/dist/components/Common/SignatureForm/SignatureFormActions.js +3 -2
  18. package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
  19. package/dist/components/Common/SignatureForm/SignatureFormFields.js +7 -6
  20. package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
  21. package/dist/components/Common/UI/Alert/Alert.module.scss.js +9 -9
  22. package/dist/components/Common/UI/Banner/Banner.module.scss.js +1 -1
  23. package/dist/components/Common/UI/Button/Button.module.scss.js +1 -1
  24. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.module.scss.js +4 -4
  25. package/dist/components/Common/UI/Card/Card.module.scss.js +1 -1
  26. package/dist/components/Common/UI/Checkbox/Checkbox.module.scss.js +1 -1
  27. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +3 -3
  28. package/dist/components/Common/UI/DatePicker/DatePicker.module.scss.js +4 -4
  29. package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +1 -1
  30. package/dist/components/Common/UI/Dialog/Dialog.module.scss.js +2 -2
  31. package/dist/components/Common/UI/FileInput/FileInput.module.scss.js +26 -26
  32. package/dist/components/Common/UI/Input/Input.module.scss.js +8 -8
  33. package/dist/components/Common/UI/Modal/Modal.module.scss.js +12 -12
  34. package/dist/components/Common/UI/Radio/Radio.module.scss.js +6 -6
  35. package/dist/components/Common/UI/Select/Select.module.scss.js +4 -4
  36. package/dist/components/Common/UI/Table/Table.js +1 -1
  37. package/dist/components/Common/UI/Table/Table.js.map +1 -1
  38. package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
  39. package/dist/components/Common/UI/Tabs/Tabs.module.scss.js +1 -1
  40. package/dist/components/Common/UI/Text/Text.module.scss.js +17 -15
  41. package/dist/components/Common/UI/Text/Text.module.scss.js.map +1 -1
  42. package/dist/components/Common/UI/TextArea/TextArea.module.scss.js +4 -4
  43. package/dist/components/Company/AssignSignatory/AssignSignatory.js +3 -2
  44. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  45. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +4 -3
  46. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  47. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +3 -2
  48. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  49. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +1 -1
  50. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +12 -12
  51. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  52. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  53. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +3 -2
  54. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  55. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +1 -1
  56. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +1 -1
  57. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  58. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  59. package/dist/components/Company/AssignSignatory/TitleSelect.js +4 -3
  60. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  61. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  62. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  63. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
  64. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  65. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +7 -5
  66. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  67. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  68. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  69. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +3 -2
  70. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  71. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -6
  72. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  73. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +7 -5
  74. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  75. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +3 -2
  76. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  77. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +9 -8
  78. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  79. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  80. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  81. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +4 -3
  82. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  83. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  84. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  85. package/dist/components/Company/FederalTaxes/Actions.js +7 -6
  86. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  87. package/dist/components/Company/FederalTaxes/FederalTaxes.js +4 -3
  88. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  89. package/dist/components/Company/FederalTaxes/Form.js +5 -3
  90. package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
  91. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  92. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  93. package/dist/components/Company/Industry/Actions.js +8 -7
  94. package/dist/components/Company/Industry/Actions.js.map +1 -1
  95. package/dist/components/Company/Industry/Context.js +7 -6
  96. package/dist/components/Company/Industry/Context.js.map +1 -1
  97. package/dist/components/Company/Industry/Edit.js +3 -2
  98. package/dist/components/Company/Industry/Edit.js.map +1 -1
  99. package/dist/components/Company/Locations/LocationForm/Actions.js +7 -6
  100. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  101. package/dist/components/Company/Locations/LocationForm/Form.js +1 -1
  102. package/dist/components/Company/Locations/LocationForm/LocationForm.js +4 -3
  103. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  104. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  105. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  106. package/dist/components/Company/Locations/LocationsList/Actions.js +3 -2
  107. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  108. package/dist/components/Company/Locations/LocationsList/List.js +7 -6
  109. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  110. package/dist/components/Company/Locations/LocationsList/LocationsList.js +8 -7
  111. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  112. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  113. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  114. package/dist/components/Company/OnboardingOverview/Completed.js +12 -10
  115. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  116. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +8 -6
  117. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  118. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +8 -7
  119. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  120. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  121. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  122. package/dist/components/Company/PaySchedule/PaySchedule.js +4 -3
  123. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  124. package/dist/components/Company/PaySchedule/_parts/Actions.js +3 -2
  125. package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
  126. package/dist/components/Company/PaySchedule/_parts/Edit.js +15 -15
  127. package/dist/components/Company/PaySchedule/_parts/Head.js +13 -11
  128. package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
  129. package/dist/components/Company/PaySchedule/_parts/List.js +15 -13
  130. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  131. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  132. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  133. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +3 -2
  134. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  135. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  136. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  137. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +3 -2
  138. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  139. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +3 -2
  140. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  141. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  142. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  143. package/dist/components/Contractor/Address/Address.js +5 -4
  144. package/dist/components/Contractor/Address/Address.js.map +1 -1
  145. package/dist/components/Contractor/Address/Form.js +1 -1
  146. package/dist/components/Contractor/Address/useAddress.js +6 -5
  147. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  148. package/dist/components/Contractor/ContractorList/index.js +32 -31
  149. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  150. package/dist/components/Contractor/NewHireReport/NewHireReport.js +14 -13
  151. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  152. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +12 -11
  153. package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
  154. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +3 -2
  155. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  156. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +4 -3
  157. package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
  158. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +4 -2
  159. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  160. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +10 -10
  161. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +9 -7
  162. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  163. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +9 -8
  164. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  165. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +11 -9
  166. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  167. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +8 -6
  168. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  169. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.module.scss.js +14 -14
  170. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +4 -2
  171. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  172. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +4 -2
  173. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  174. package/dist/components/Contractor/Profile/ContractorProfileForm.js +15 -15
  175. package/dist/components/Contractor/Profile/ContractorProfileForm.module.scss.js +1 -1
  176. package/dist/components/Contractor/Profile/useContractorProfile.js +3 -2
  177. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  178. package/dist/components/Contractor/Submit/Submit.js +21 -20
  179. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  180. package/dist/components/Employee/Compensation/Actions.js +13 -12
  181. package/dist/components/Employee/Compensation/Actions.js.map +1 -1
  182. package/dist/components/Employee/Compensation/Edit.js +17 -16
  183. package/dist/components/Employee/Compensation/Edit.js.map +1 -1
  184. package/dist/components/Employee/Compensation/List.js +23 -22
  185. package/dist/components/Employee/Compensation/List.js.map +1 -1
  186. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.d.ts +3 -1
  187. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +145 -137
  188. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  189. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.d.ts +2 -1
  190. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +106 -101
  191. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  192. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +90 -87
  193. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -1
  194. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.d.ts +2 -1
  195. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +110 -104
  196. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  197. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +51 -45
  198. package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -1
  199. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +31 -30
  200. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  201. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js +4 -8
  202. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.module.scss.js.map +1 -1
  203. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +3 -2
  204. package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
  205. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +3 -2
  206. package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  207. package/dist/components/Employee/DocumentSigner/DocumentList/List.js +4 -2
  208. package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
  209. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  210. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  211. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +3 -2
  212. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  213. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  214. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  215. package/dist/components/Employee/EmployeeList/Actions.js +7 -6
  216. package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
  217. package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -3
  218. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  219. package/dist/components/Employee/EmployeeList/Head.js +7 -5
  220. package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
  221. package/dist/components/Employee/EmployeeList/List.js +3 -2
  222. package/dist/components/Employee/EmployeeList/List.js.map +1 -1
  223. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  224. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  225. package/dist/components/Employee/FederalTaxes/Actions.js +6 -5
  226. package/dist/components/Employee/FederalTaxes/Actions.js.map +1 -1
  227. package/dist/components/Employee/FederalTaxes/FederalForm.js +12 -11
  228. package/dist/components/Employee/FederalTaxes/FederalForm.js.map +1 -1
  229. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -3
  230. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  231. package/dist/components/Employee/Landing/Landing.js +11 -10
  232. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  233. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
  234. package/dist/components/Employee/PaymentMethod/Actions.js +6 -5
  235. package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
  236. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +5 -4
  237. package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
  238. package/dist/components/Employee/PaymentMethod/BankAccountsList.js +3 -2
  239. package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
  240. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +7 -6
  241. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
  242. package/dist/components/Employee/PaymentMethod/Split.js +11 -10
  243. package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
  244. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  245. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  246. package/dist/components/Employee/Profile/Actions.js +6 -5
  247. package/dist/components/Employee/Profile/Actions.js.map +1 -1
  248. package/dist/components/Employee/Profile/AdminPersonalDetails.js +6 -5
  249. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  250. package/dist/components/Employee/Profile/AdminPersonalDetails.module.scss.js +1 -1
  251. package/dist/components/Employee/Profile/HomeAddress.js +1 -1
  252. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +2 -2
  253. package/dist/components/Employee/Profile/useProfile.js +4 -3
  254. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  255. package/dist/components/Employee/StateTaxes/Actions.js +6 -5
  256. package/dist/components/Employee/StateTaxes/Actions.js.map +1 -1
  257. package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -3
  258. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  259. package/dist/components/Employee/Taxes/Actions.js +7 -6
  260. package/dist/components/Employee/Taxes/Actions.js.map +1 -1
  261. package/dist/components/Employee/Taxes/FederalForm.js +14 -13
  262. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  263. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  264. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  265. package/dist/components/Flow/Flow.js +9 -7
  266. package/dist/components/Flow/Flow.js.map +1 -1
  267. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +17 -16
  268. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  269. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.module.scss.js +4 -4
  270. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +38 -36
  271. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  272. package/dist/components/InformationRequests/InformationRequests.d.ts +7 -2
  273. package/dist/components/InformationRequests/InformationRequests.js +78 -45
  274. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  275. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +10 -9
  276. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  277. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.module.scss.js +10 -10
  278. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +2 -0
  279. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js +33 -0
  280. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -0
  281. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +7 -0
  282. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +39 -0
  283. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -0
  284. package/dist/components/Payroll/OffCycleReasonSelection/index.d.ts +5 -0
  285. package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +15 -0
  286. package/dist/components/Payroll/OffCycleReasonSelection/types.js +14 -0
  287. package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -0
  288. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.d.ts +2 -0
  289. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js +35 -0
  290. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateForm.js.map +1 -0
  291. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.d.ts +2 -0
  292. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js +65 -0
  293. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.js.map +1 -0
  294. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js +18 -0
  295. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormPresentation.module.scss.js.map +1 -0
  296. package/dist/components/Payroll/PayPeriodDateForm/PayPeriodDateFormTypes.d.ts +53 -0
  297. package/dist/components/Payroll/PayPeriodDateForm/index.d.ts +3 -0
  298. package/dist/components/Payroll/PayPeriodDateForm/usePayPeriodDateValidation.d.ts +5 -0
  299. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +4 -2
  300. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  301. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +19 -18
  302. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  303. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +36 -36
  304. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js +5 -5
  305. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +21 -19
  306. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  307. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +17 -15
  308. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  309. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +26 -24
  310. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  311. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +30 -29
  312. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  313. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +4 -2
  314. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  315. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +3 -2
  316. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  317. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +18 -18
  318. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +4 -1
  319. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js +34 -28
  320. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  321. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +29 -29
  322. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  323. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +12 -11
  324. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  325. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +4 -2
  326. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  327. package/dist/components/Payroll/index.d.ts +4 -0
  328. package/dist/components/Payroll/index.js +12 -8
  329. package/dist/components/Payroll/index.js.map +1 -1
  330. package/dist/components/Payroll/usePreparedPayrollData.js +3 -2
  331. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  332. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +3 -2
  333. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  334. package/dist/contexts/ThemeProvider/theme.d.ts +8 -3
  335. package/dist/contexts/ThemeProvider/theme.js +29 -24
  336. package/dist/contexts/ThemeProvider/theme.js.map +1 -1
  337. package/dist/helpers/dateFormatting.d.ts +3 -0
  338. package/dist/helpers/dateFormatting.js.map +1 -1
  339. package/dist/i18n/I18n.js +1 -1
  340. package/dist/i18n/I18n.js.map +1 -1
  341. package/dist/i18n/en/Employee.Deductions.json.js +157 -161
  342. package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
  343. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js +12 -10
  344. package/dist/i18n/en/InformationRequests.InformationRequestList.json.js.map +1 -1
  345. package/dist/i18n/en/InformationRequests.json.js +8 -0
  346. package/dist/i18n/en/InformationRequests.json.js.map +1 -0
  347. package/dist/i18n/en/Payroll.OffCycleReasonSelection.json.js +12 -0
  348. package/dist/i18n/en/Payroll.OffCycleReasonSelection.json.js.map +1 -0
  349. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js +32 -0
  350. package/dist/i18n/en/Payroll.PayPeriodDateForm.json.js.map +1 -0
  351. package/dist/shared/constants.d.ts +4 -0
  352. package/dist/shared/constants.js +10 -8
  353. package/dist/shared/constants.js.map +1 -1
  354. package/dist/style.css +1 -1
  355. package/dist/types/i18next.d.ts +51 -3
  356. package/package.json +11 -11
  357. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js +0 -8
  358. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.module.scss.js.map +0 -1
  359. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js +0 -14
  360. package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.module.scss.js.map +0 -1
@@ -1,10 +1,12 @@
1
1
  import { jsx as a, jsxs as u } from "react/jsx-runtime";
2
- import { useRef as q, useState as E } from "react";
3
- import { useTranslation as V } from "react-i18next";
4
- import { getPayrollType as $ } from "../helpers.js";
2
+ import { useRef as q, useState as z } from "react";
3
+ import { useTranslation as E } from "react-i18next";
4
+ import { getPayrollType as V } from "../helpers.js";
5
5
  import m from "./PayrollListPresentation.module.scss.js";
6
6
  import { Flex as i } from "../../Common/Flex/Flex.js";
7
- import { HamburgerMenu as z } from "../../Common/HamburgerMenu/HamburgerMenu.js";
7
+ import "classnames";
8
+ import "../../../shared/constants.js";
9
+ import { HamburgerMenu as $ } from "../../Common/HamburgerMenu/HamburgerMenu.js";
8
10
  import { useComponentContext as G } from "../../../contexts/ComponentAdapter/useComponentContext.js";
9
11
  import { useI18n as J } from "../../../i18n/I18n.js";
10
12
  import { formatDateToStringDate as K } from "../../../helpers/dateFormatting.js";
@@ -13,7 +15,7 @@ import X from "../../../assets/icons/feature-icon-check.svg.js";
13
15
  import { useContainerBreakpoints as Z } from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
14
16
  import { PayrollStatusBadges as _ } from "../PayrollStatusBadges/PayrollStatusBadges.js";
15
17
  import { DataView as ee } from "../../Common/DataView/DataView.js";
16
- const ge = ({
18
+ const De = ({
17
19
  onRunPayroll: I,
18
20
  onSubmitPayroll: w,
19
21
  onSkipPayroll: H,
@@ -27,7 +29,7 @@ const ge = ({
27
29
  }) => {
28
30
  const { Button: P, Dialog: W, Heading: B, Text: p, Alert: F } = G();
29
31
  J("Payroll.PayrollList");
30
- const { t } = V("Payroll.PayrollList"), n = Q(), g = q(null), h = Z({ ref: g }).includes("large"), [s, D] = E({
32
+ const { t } = E("Payroll.PayrollList"), n = Q(), g = q(null), h = Z({ ref: g }).includes("large"), [s, D] = z({
31
33
  isOpen: !1,
32
34
  payrollId: null,
33
35
  payPeriod: null
@@ -46,18 +48,18 @@ const ge = ({
46
48
  }, j = () => {
47
49
  s.payrollId && (H({ payrollUuid: s.payrollId }), b());
48
50
  }, S = (e, r) => {
49
- const o = n.formatShort(e), l = n.formatShortWithYear(r);
51
+ const l = n.formatShort(e), o = n.formatShortWithYear(r);
50
52
  return {
51
- startDate: o,
52
- endDate: l,
53
+ startDate: l,
54
+ endDate: o,
53
55
  fullPeriod: n.formatPayPeriodRange(e, r, { useShortMonth: !0 })
54
56
  };
55
57
  }, k = (e) => {
56
- const { payrollUuid: r, calculatedAt: o, processed: l, payPeriod: c } = e;
57
- if (l)
58
+ const { payrollUuid: r, calculatedAt: l, processed: o, payPeriod: c } = e;
59
+ if (o)
58
60
  return null;
59
61
  const d = f === r;
60
- return o ? /* @__PURE__ */ a(
62
+ return l ? /* @__PURE__ */ a(
61
63
  P,
62
64
  {
63
65
  isLoading: d,
@@ -112,21 +114,21 @@ const ge = ({
112
114
  columns: [
113
115
  {
114
116
  render: ({ payPeriod: e }) => {
115
- const { startDate: r, endDate: o } = S(
117
+ const { startDate: r, endDate: l } = S(
116
118
  e?.startDate,
117
119
  e?.endDate
118
120
  );
119
121
  return /* @__PURE__ */ u("div", { className: m.payPeriodCell, children: [
120
122
  r,
121
123
  " - ",
122
- o,
123
- /* @__PURE__ */ a(p, { variant: "supporting", children: y.find((l) => l.uuid === e?.payScheduleUuid)?.name || y.find((l) => l.uuid === e?.payScheduleUuid)?.customName })
124
+ l,
125
+ /* @__PURE__ */ a(p, { variant: "supporting", size: "sm", children: y.find((o) => o.uuid === e?.payScheduleUuid)?.name || y.find((o) => o.uuid === e?.payScheduleUuid)?.customName })
124
126
  ] });
125
127
  },
126
128
  title: t("tableHeaders.0")
127
129
  },
128
130
  {
129
- render: (e) => /* @__PURE__ */ a(p, { children: t(`type.${$(e)}`) }),
131
+ render: (e) => /* @__PURE__ */ a(p, { children: t(`type.${V(e)}`) }),
130
132
  title: t("tableHeaders.1")
131
133
  },
132
134
  {
@@ -141,7 +143,7 @@ const ge = ({
141
143
  title: t("tableHeaders.4"),
142
144
  render: (e) => {
143
145
  const r = N.find(
144
- (o) => o.paymentUuid === e.payrollUuid
146
+ (l) => l.paymentUuid === e.payrollUuid
145
147
  );
146
148
  return /* @__PURE__ */ a(_, { payroll: e, wireInRequest: r });
147
149
  }
@@ -158,14 +160,14 @@ const ge = ({
158
160
  ],
159
161
  label: t("payrollsListLabel"),
160
162
  itemMenu: (e) => {
161
- const { payrollUuid: r, processed: o, payPeriod: l } = e;
162
- if (o)
163
+ const { payrollUuid: r, processed: l, payPeriod: o } = e;
164
+ if (l)
163
165
  return null;
164
166
  const c = f === r, { fullPeriod: d } = S(
165
- l?.startDate,
166
- l?.endDate
167
- ), C = K(/* @__PURE__ */ new Date()), L = C ? new Date(C) : null, x = l?.startDate ? new Date(l.startDate) : null, Y = T.length === 0 && L && x && L >= x, A = h ? k(e) : null, v = Y ? /* @__PURE__ */ a(
168
- z,
167
+ o?.startDate,
168
+ o?.endDate
169
+ ), C = K(/* @__PURE__ */ new Date()), L = C ? new Date(C) : null, x = o?.startDate ? new Date(o.startDate) : null, Y = T.length === 0 && L && x && L >= x, A = h ? k(e) : null, v = Y ? /* @__PURE__ */ a(
170
+ $,
169
171
  {
170
172
  isLoading: c,
171
173
  menuLabel: t("payrollMenuLabel"),
@@ -202,6 +204,6 @@ const ge = ({
202
204
  ] }) });
203
205
  };
204
206
  export {
205
- ge as PayrollListPresentation
207
+ De as PayrollListPresentation
206
208
  };
207
209
  //# sourceMappingURL=PayrollListPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payroll'\nimport type { PayScheduleList } from '@gusto/embedded-api/models/components/payschedulelist'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { useState, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollType } from '../helpers'\nimport styles from './PayrollListPresentation.module.scss'\nimport { DataView, Flex, HamburgerMenu } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport FeatureIconCheck from '@/assets/icons/feature-icon-check.svg?react'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSubmitPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSkipPayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n payrolls: Payroll[]\n paySchedules: PayScheduleList[]\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n skippingPayrollId: string | null\n blockers: ApiPayrollBlocker[]\n wireInRequests: WireInRequest[]\n}\n\nexport const PayrollListPresentation = ({\n onRunPayroll,\n onSubmitPayroll,\n onSkipPayroll,\n payrolls,\n paySchedules,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n skippingPayrollId,\n blockers,\n wireInRequests,\n}: PayrollListPresentationProps) => {\n const { Button, Dialog, Heading, Text, Alert } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n const dateFormatter = useDateFormatter()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('large')\n const [skipPayrollDialogState, setSkipPayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenSkipDialog = (payrollId: string, payPeriod: string) => {\n setSkipPayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseSkipDialog = () => {\n setSkipPayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmSkipPayroll = () => {\n if (skipPayrollDialogState.payrollId) {\n onSkipPayroll({ payrollUuid: skipPayrollDialogState.payrollId })\n handleCloseSkipDialog()\n }\n }\n\n const formatPayPeriod = (startDate: string | undefined, endDate: string | undefined) => {\n const formattedStartDate = dateFormatter.formatShort(startDate)\n const formattedEndDate = dateFormatter.formatShortWithYear(endDate)\n\n return {\n startDate: formattedStartDate,\n endDate: formattedEndDate,\n fullPeriod: dateFormatter.formatPayPeriodRange(startDate, endDate, { useShortMonth: true }),\n }\n }\n\n const renderActionButton = (payroll: Payroll) => {\n const { payrollUuid, calculatedAt, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n\n return calculatedAt ? (\n <Button\n isLoading={isProcessingSkipPayroll}\n onClick={() => {\n onSubmitPayroll({ payrollUuid, payPeriod })\n }}\n title={t('submitPayrollCta')}\n variant=\"secondary\"\n >\n {t('submitPayrollCta')}\n </Button>\n ) : (\n <Button\n isLoading={isProcessingSkipPayroll}\n onClick={() => {\n onRunPayroll({ payrollUuid, payPeriod })\n }}\n title={t('runPayrollTitle')}\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={16}>\n {showSkipSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('skipSuccessAlert')}\n onDismiss={onDismissSkipSuccessAlert}\n />\n </div>\n )}\n <Flex\n flexDirection={{ base: 'column', medium: 'row' }}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n gap={{ base: 12, medium: 24 }}\n >\n <Flex>\n <Heading as=\"h2\">{t('title')}</Heading>\n </Flex>\n </Flex>\n\n <DataView\n breakAt=\"large\"\n emptyState={() => (\n <Flex flexDirection=\"column\" alignItems=\"center\" gap={24}>\n <FeatureIconCheck />\n <Text>{t('emptyState')}</Text>\n </Flex>\n )}\n data={payrolls}\n columns={[\n {\n render: ({ payPeriod }) => {\n const { startDate, endDate } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n return (\n <div className={styles.payPeriodCell}>\n {startDate} - {endDate}\n <Text variant=\"supporting\">\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </div>\n )\n },\n title: t('tableHeaders.0'),\n },\n {\n render: payroll => <Text>{t(`type.${getPayrollType(payroll)}`)}</Text>,\n title: t('tableHeaders.1'),\n },\n {\n render: ({ checkDate }) => dateFormatter.formatShortWithWeekdayAndYear(checkDate),\n title: t('tableHeaders.2'),\n },\n {\n title: t('tableHeaders.3'),\n render: ({ payrollDeadline }) =>\n dateFormatter.formatShortWithWeekdayAndYear(payrollDeadline),\n },\n {\n title: t('tableHeaders.4'),\n render: payroll => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === payroll.payrollUuid,\n )\n return <PayrollStatusBadges payroll={payroll} wireInRequest={wireInRequest} />\n },\n },\n ...(!isDesktop\n ? [\n {\n title: '',\n render: (payroll: Payroll) => {\n const button = renderActionButton(payroll)\n if (!button) return null\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\" gap={12}>\n {button}\n </Flex>\n )\n },\n },\n ]\n : []),\n ]}\n label={t('payrollsListLabel')}\n itemMenu={payroll => {\n const { payrollUuid, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n\n const { fullPeriod: payPeriodString } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n const todayDateString = formatDateToStringDate(new Date())\n const todayAtMidnight = todayDateString ? new Date(todayDateString) : null\n const payPeriodStartDate = payPeriod?.startDate ? new Date(payPeriod.startDate) : null\n\n const canSkipPayroll =\n blockers.length === 0 &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const button = isDesktop ? renderActionButton(payroll) : null\n\n const hamburgerMenu = canSkipPayroll ? (\n <HamburgerMenu\n isLoading={isProcessingSkipPayroll}\n menuLabel={t('payrollMenuLabel')}\n items={[\n {\n label: t('skipPayrollCta'),\n onClick: () => {\n handleOpenSkipDialog(payrollUuid!, payPeriodString)\n },\n },\n ]}\n />\n ) : null\n\n if (!button && !hamburgerMenu) {\n return null\n }\n\n return (\n <div className={styles.actionsContainer}>\n {button}\n {hamburgerMenu}\n </div>\n )\n }}\n />\n <Dialog\n isOpen={skipPayrollDialogState.isOpen}\n onClose={handleCloseSkipDialog}\n onPrimaryActionClick={handleConfirmSkipPayroll}\n isDestructive={true}\n title={t('skipPayrollDialog.title', { payPeriod: skipPayrollDialogState.payPeriod })}\n primaryActionLabel={t('skipPayrollDialog.confirmCta')}\n closeActionLabel={t('skipPayrollDialog.cancelCta')}\n >\n {t('skipPayrollDialog.body')}\n </Dialog>\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollListPresentation","onRunPayroll","onSubmitPayroll","onSkipPayroll","payrolls","paySchedules","showSkipSuccessAlert","onDismissSkipSuccessAlert","skippingPayrollId","blockers","wireInRequests","Button","Dialog","Heading","Text","Alert","useComponentContext","useI18n","useTranslation","dateFormatter","useDateFormatter","containerRef","useRef","isDesktop","useContainerBreakpoints","skipPayrollDialogState","setSkipPayrollDialogState","useState","handleOpenSkipDialog","payrollId","payPeriod","handleCloseSkipDialog","handleConfirmSkipPayroll","formatPayPeriod","startDate","endDate","formattedStartDate","formattedEndDate","renderActionButton","payroll","payrollUuid","calculatedAt","processed","isProcessingSkipPayroll","jsx","styles","jsxs","Flex","DataView","FeatureIconCheck","schedule","getPayrollType","checkDate","payrollDeadline","wireInRequest","wire","PayrollStatusBadges","button","payPeriodString","todayDateString","formatDateToStringDate","todayAtMidnight","payPeriodStartDate","canSkipPayroll","hamburgerMenu","HamburgerMenu"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollListPresentation.js","sources":["../../../../src/components/Payroll/PayrollList/PayrollListPresentation.tsx"],"sourcesContent":["import type { Payroll } from '@gusto/embedded-api/models/components/payroll'\nimport type { PayScheduleList } from '@gusto/embedded-api/models/components/payschedulelist'\nimport type { WireInRequest } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { useState, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollStatusBadges } from '../PayrollStatusBadges'\nimport { getPayrollType } from '../helpers'\nimport styles from './PayrollListPresentation.module.scss'\nimport { DataView, Flex, HamburgerMenu } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport FeatureIconCheck from '@/assets/icons/feature-icon-check.svg?react'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollListPresentationProps {\n onRunPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSubmitPayroll: ({ payrollUuid, payPeriod }: Pick<Payroll, 'payrollUuid' | 'payPeriod'>) => void\n onSkipPayroll: ({ payrollUuid }: Pick<Payroll, 'payrollUuid'>) => void\n payrolls: Payroll[]\n paySchedules: PayScheduleList[]\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n skippingPayrollId: string | null\n blockers: ApiPayrollBlocker[]\n wireInRequests: WireInRequest[]\n}\n\nexport const PayrollListPresentation = ({\n onRunPayroll,\n onSubmitPayroll,\n onSkipPayroll,\n payrolls,\n paySchedules,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n skippingPayrollId,\n blockers,\n wireInRequests,\n}: PayrollListPresentationProps) => {\n const { Button, Dialog, Heading, Text, Alert } = useComponentContext()\n useI18n('Payroll.PayrollList')\n const { t } = useTranslation('Payroll.PayrollList')\n const dateFormatter = useDateFormatter()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('large')\n const [skipPayrollDialogState, setSkipPayrollDialogState] = useState<{\n isOpen: boolean\n payrollId: string | null\n payPeriod: string | null\n }>({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n\n const handleOpenSkipDialog = (payrollId: string, payPeriod: string) => {\n setSkipPayrollDialogState({\n isOpen: true,\n payrollId,\n payPeriod,\n })\n }\n\n const handleCloseSkipDialog = () => {\n setSkipPayrollDialogState({\n isOpen: false,\n payrollId: null,\n payPeriod: null,\n })\n }\n\n const handleConfirmSkipPayroll = () => {\n if (skipPayrollDialogState.payrollId) {\n onSkipPayroll({ payrollUuid: skipPayrollDialogState.payrollId })\n handleCloseSkipDialog()\n }\n }\n\n const formatPayPeriod = (startDate: string | undefined, endDate: string | undefined) => {\n const formattedStartDate = dateFormatter.formatShort(startDate)\n const formattedEndDate = dateFormatter.formatShortWithYear(endDate)\n\n return {\n startDate: formattedStartDate,\n endDate: formattedEndDate,\n fullPeriod: dateFormatter.formatPayPeriodRange(startDate, endDate, { useShortMonth: true }),\n }\n }\n\n const renderActionButton = (payroll: Payroll) => {\n const { payrollUuid, calculatedAt, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n\n return calculatedAt ? (\n <Button\n isLoading={isProcessingSkipPayroll}\n onClick={() => {\n onSubmitPayroll({ payrollUuid, payPeriod })\n }}\n title={t('submitPayrollCta')}\n variant=\"secondary\"\n >\n {t('submitPayrollCta')}\n </Button>\n ) : (\n <Button\n isLoading={isProcessingSkipPayroll}\n onClick={() => {\n onRunPayroll({ payrollUuid, payPeriod })\n }}\n title={t('runPayrollTitle')}\n variant=\"secondary\"\n >\n {t('runPayrollTitle')}\n </Button>\n )\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={16}>\n {showSkipSuccessAlert && (\n <div className={styles.alertContainer}>\n <Alert\n status=\"info\"\n label={t('skipSuccessAlert')}\n onDismiss={onDismissSkipSuccessAlert}\n />\n </div>\n )}\n <Flex\n flexDirection={{ base: 'column', medium: 'row' }}\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n gap={{ base: 12, medium: 24 }}\n >\n <Flex>\n <Heading as=\"h2\">{t('title')}</Heading>\n </Flex>\n </Flex>\n\n <DataView\n breakAt=\"large\"\n emptyState={() => (\n <Flex flexDirection=\"column\" alignItems=\"center\" gap={24}>\n <FeatureIconCheck />\n <Text>{t('emptyState')}</Text>\n </Flex>\n )}\n data={payrolls}\n columns={[\n {\n render: ({ payPeriod }) => {\n const { startDate, endDate } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n return (\n <div className={styles.payPeriodCell}>\n {startDate} - {endDate}\n <Text variant=\"supporting\" size=\"sm\">\n {paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.name ||\n paySchedules.find(schedule => schedule.uuid === payPeriod?.payScheduleUuid)\n ?.customName}\n </Text>\n </div>\n )\n },\n title: t('tableHeaders.0'),\n },\n {\n render: payroll => <Text>{t(`type.${getPayrollType(payroll)}`)}</Text>,\n title: t('tableHeaders.1'),\n },\n {\n render: ({ checkDate }) => dateFormatter.formatShortWithWeekdayAndYear(checkDate),\n title: t('tableHeaders.2'),\n },\n {\n title: t('tableHeaders.3'),\n render: ({ payrollDeadline }) =>\n dateFormatter.formatShortWithWeekdayAndYear(payrollDeadline),\n },\n {\n title: t('tableHeaders.4'),\n render: payroll => {\n const wireInRequest = wireInRequests.find(\n wire => wire.paymentUuid === payroll.payrollUuid,\n )\n return <PayrollStatusBadges payroll={payroll} wireInRequest={wireInRequest} />\n },\n },\n ...(!isDesktop\n ? [\n {\n title: '',\n render: (payroll: Payroll) => {\n const button = renderActionButton(payroll)\n if (!button) return null\n return (\n <Flex flexDirection=\"column\" alignItems=\"stretch\" gap={12}>\n {button}\n </Flex>\n )\n },\n },\n ]\n : []),\n ]}\n label={t('payrollsListLabel')}\n itemMenu={payroll => {\n const { payrollUuid, processed, payPeriod } = payroll\n\n if (processed) {\n return null\n }\n\n const isProcessingSkipPayroll = skippingPayrollId === payrollUuid\n\n const { fullPeriod: payPeriodString } = formatPayPeriod(\n payPeriod?.startDate,\n payPeriod?.endDate,\n )\n\n const todayDateString = formatDateToStringDate(new Date())\n const todayAtMidnight = todayDateString ? new Date(todayDateString) : null\n const payPeriodStartDate = payPeriod?.startDate ? new Date(payPeriod.startDate) : null\n\n const canSkipPayroll =\n blockers.length === 0 &&\n todayAtMidnight &&\n payPeriodStartDate &&\n todayAtMidnight >= payPeriodStartDate\n\n const button = isDesktop ? renderActionButton(payroll) : null\n\n const hamburgerMenu = canSkipPayroll ? (\n <HamburgerMenu\n isLoading={isProcessingSkipPayroll}\n menuLabel={t('payrollMenuLabel')}\n items={[\n {\n label: t('skipPayrollCta'),\n onClick: () => {\n handleOpenSkipDialog(payrollUuid!, payPeriodString)\n },\n },\n ]}\n />\n ) : null\n\n if (!button && !hamburgerMenu) {\n return null\n }\n\n return (\n <div className={styles.actionsContainer}>\n {button}\n {hamburgerMenu}\n </div>\n )\n }}\n />\n <Dialog\n isOpen={skipPayrollDialogState.isOpen}\n onClose={handleCloseSkipDialog}\n onPrimaryActionClick={handleConfirmSkipPayroll}\n isDestructive={true}\n title={t('skipPayrollDialog.title', { payPeriod: skipPayrollDialogState.payPeriod })}\n primaryActionLabel={t('skipPayrollDialog.confirmCta')}\n closeActionLabel={t('skipPayrollDialog.cancelCta')}\n >\n {t('skipPayrollDialog.body')}\n </Dialog>\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollListPresentation","onRunPayroll","onSubmitPayroll","onSkipPayroll","payrolls","paySchedules","showSkipSuccessAlert","onDismissSkipSuccessAlert","skippingPayrollId","blockers","wireInRequests","Button","Dialog","Heading","Text","Alert","useComponentContext","useI18n","useTranslation","dateFormatter","useDateFormatter","containerRef","useRef","isDesktop","useContainerBreakpoints","skipPayrollDialogState","setSkipPayrollDialogState","useState","handleOpenSkipDialog","payrollId","payPeriod","handleCloseSkipDialog","handleConfirmSkipPayroll","formatPayPeriod","startDate","endDate","formattedStartDate","formattedEndDate","renderActionButton","payroll","payrollUuid","calculatedAt","processed","isProcessingSkipPayroll","jsx","styles","jsxs","Flex","DataView","FeatureIconCheck","schedule","getPayrollType","checkDate","payrollDeadline","wireInRequest","wire","PayrollStatusBadges","button","payPeriodString","todayDateString","formatDateToStringDate","todayAtMidnight","payPeriodStartDate","canSkipPayroll","hamburgerMenu","HamburgerMenu"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { jsx as c, jsxs as Z } from "react/jsx-runtime";
2
2
  import { usePayrollsSubmitMutation as $ } from "@gusto/embedded-api/react-query/payrollsSubmit";
3
3
  import { usePayrollsCancelMutation as ee } from "@gusto/embedded-api/react-query/payrollsCancel";
4
4
  import { usePayrollsGetSuspense as te } from "@gusto/embedded-api/react-query/payrollsGet";
5
- import { useTranslation as se } from "react-i18next";
6
- import { useBankAccountsGetSuspense as oe } from "@gusto/embedded-api/react-query/bankAccountsGet";
5
+ import { useTranslation as oe } from "react-i18next";
6
+ import { useBankAccountsGetSuspense as se } from "@gusto/embedded-api/react-query/bankAccountsGet";
7
7
  import { useEmployeesListSuspense as re } from "@gusto/embedded-api/react-query/employeesList";
8
8
  import { useWireInRequestsGet as ne } from "@gusto/embedded-api/react-query/wireInRequestsGet";
9
9
  import { useState as f, useEffect as L } from "react";
@@ -24,19 +24,20 @@ import { useDateFormatter as Se } from "../../../hooks/useDateFormatter.js";
24
24
  import { useComponentContext as Oe } from "../../../contexts/ComponentAdapter/useComponentContext.js";
25
25
  import { renderErrorList as Le } from "../../../helpers/apiErrorToList.js";
26
26
  import { Flex as De } from "../../Common/Flex/Flex.js";
27
- const _e = (o = []) => o.filter(
27
+ import "classnames";
28
+ const _e = (s = []) => s.filter(
28
29
  (i) => i.status === "unresolved" && i.unblockOptions && i.unblockOptions.length > 0
29
- ), he = (o = []) => {
30
- const i = o.find((n) => n.status === "unresolved");
30
+ ), he = (s = []) => {
31
+ const i = s.find((n) => n.status === "unresolved");
31
32
  return i?.unblockOptions ? i.unblockOptions.find(
32
33
  (n) => n.unblockType === "submit_wire"
33
34
  )?.metadata.wireInRequestUuid : void 0;
34
35
  };
35
- function rt(o) {
36
- return /* @__PURE__ */ c(de, { ...o, children: /* @__PURE__ */ c(Ee, { ...o, children: o.children }) });
36
+ function nt(s) {
37
+ return /* @__PURE__ */ c(de, { ...s, children: /* @__PURE__ */ c(Ee, { ...s, children: s.children }) });
37
38
  }
38
39
  const Ee = ({
39
- companyId: o,
40
+ companyId: s,
40
41
  payrollId: i,
41
42
  dictionary: D,
42
43
  onEvent: n,
@@ -45,9 +46,9 @@ const Ee = ({
45
46
  ConfirmWireDetailsComponent: T = ce
46
47
  }) => {
47
48
  be("Payroll.PayrollOverview", D), Pe("Payroll.PayrollOverview");
48
- const { baseSubmitHandler: _ } = ye(), { t: a } = se("Payroll.PayrollOverview"), [u, d] = f(!1), [q, w] = f(B || []), [h, N] = f({}), [y, p] = f(!1), { showBoundary: I } = le(), E = we("currency"), b = Se(), { Button: W, UnorderedList: Y, Text: C } = Oe(), [g, S] = f(m.Viewing), { data: O } = te(
49
+ const { baseSubmitHandler: _ } = ye(), { t: a } = oe("Payroll.PayrollOverview"), [u, d] = f(!1), [q, w] = f(B || []), [h, N] = f({}), [y, p] = f(!1), { showBoundary: I } = le(), E = we("currency"), b = Se(), { Button: W, UnorderedList: Y, Text: C } = Oe(), [g, S] = f(m.Viewing), { data: O } = te(
49
50
  {
50
- companyId: o,
51
+ companyId: s,
51
52
  payrollId: i,
52
53
  include: ["taxes", "benefits", "deductions"]
53
54
  },
@@ -62,7 +63,7 @@ const Ee = ({
62
63
  }, G = P && /* @__PURE__ */ c(
63
64
  T,
64
65
  {
65
- companyId: o,
66
+ companyId: s,
66
67
  wireInId: P,
67
68
  onEvent: (t, r) => {
68
69
  t === fe.PAYROLL_WIRE_FORM_DONE && p(!0), n(t, r);
@@ -118,18 +119,18 @@ const Ee = ({
118
119
  e.payrollStatusMeta?.expectedDebitTime,
119
120
  e.payrollDeadline
120
121
  ]);
121
- const { data: x } = oe({
122
- companyId: o
122
+ const { data: x } = se({
123
+ companyId: s
123
124
  }), j = x.companyBankAccounts?.[0], { data: V } = re({
124
- companyId: o
125
+ companyId: s
125
126
  }), { mutateAsync: H, isPending: K } = $(), { mutateAsync: z } = ee();
126
127
  if (g === m.Viewing && !e.calculatedAt)
127
128
  throw new Error(a("alerts.payrollNotCalculated"));
128
129
  const J = ie(), Q = e.employeeCompensations?.reduce(
129
- (t, r) => (r.taxes?.forEach((s) => {
130
- t[s.name] = {
131
- employee: (t[s.name]?.employee ?? 0) + (s.employer ? 0 : s.amount),
132
- employer: (t[s.name]?.employer ?? 0) + (s.employer ? s.amount : 0)
130
+ (t, r) => (r.taxes?.forEach((o) => {
131
+ t[o.name] = {
132
+ employee: (t[o.name]?.employee ?? 0) + (o.employer ? 0 : o.amount),
133
+ employer: (t[o.name]?.employer ?? 0) + (o.employer ? o.amount : 0)
133
134
  };
134
135
  }), t),
135
136
  {}
@@ -142,14 +143,14 @@ const Ee = ({
142
143
  await _(O, async () => {
143
144
  const t = await H({
144
145
  request: {
145
- companyId: o,
146
+ companyId: s,
146
147
  payrollId: i,
147
148
  requestBody: {
148
149
  submissionBlockers: Object.entries(h).filter(
149
150
  ([r]) => pe.includes(r)
150
- ).map(([r, s]) => ({
151
+ ).map(([r, o]) => ({
151
152
  blockerType: r,
152
- selectedOption: s
153
+ selectedOption: o
153
154
  }))
154
155
  }
155
156
  }
@@ -162,7 +163,7 @@ const Ee = ({
162
163
  try {
163
164
  const t = await z({
164
165
  request: {
165
- companyId: o,
166
+ companyId: s,
166
167
  payrollId: i
167
168
  }
168
169
  });
@@ -178,13 +179,13 @@ const Ee = ({
178
179
  onPaystubDownload: async (t) => {
179
180
  const r = window.open("", "_blank");
180
181
  try {
181
- const s = await ae(J, { payrollId: i, employeeId: t });
182
- if (!s.value?.responseStream)
182
+ const o = await ae(J, { payrollId: i, employeeId: t });
183
+ if (!o.value?.responseStream)
183
184
  throw new Error(a("alerts.paystubPdfError"));
184
- const X = await Re(s.value.responseStream, "application/pdf"), A = URL.createObjectURL(X);
185
+ const X = await Re(o.value.responseStream, "application/pdf"), A = URL.createObjectURL(X);
185
186
  r && (r.location.href = A), n(l.RUN_PAYROLL_PDF_PAYSTUB_VIEWED, { employeeId: t }), URL.revokeObjectURL(A);
186
- } catch (s) {
187
- r && r.close(), I(s instanceof Error ? s : new Error(String(s)));
187
+ } catch (o) {
188
+ r && r.close(), I(o instanceof Error ? o : new Error(String(o)));
188
189
  }
189
190
  },
190
191
  status: K || u ? m.Submitting : g,
@@ -198,7 +199,7 @@ const Ee = ({
198
199
  submissionBlockers: F,
199
200
  selectedUnblockOptions: h,
200
201
  onUnblockOptionChange: (t, r) => {
201
- N((s) => ({ ...s, [t]: r }));
202
+ N((o) => ({ ...o, [t]: r }));
202
203
  },
203
204
  wireInConfirmationRequest: G,
204
205
  withReimbursements: v
@@ -206,7 +207,7 @@ const Ee = ({
206
207
  );
207
208
  };
208
209
  export {
209
- rt as PayrollOverview,
210
+ nt as PayrollOverview,
210
211
  Ee as Root
211
212
  };
212
213
  //# sourceMappingURL=PayrollOverview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollOverview.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverview.tsx"],"sourcesContent":["import { usePayrollsSubmitMutation } from '@gusto/embedded-api/react-query/payrollsSubmit'\nimport { usePayrollsCancelMutation } from '@gusto/embedded-api/react-query/payrollsCancel'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { useWireInRequestsGet } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport { useEffect, useState } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type {\n PayrollCreditBlockerType,\n PayrollCreditBlockerTypeUnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport {\n ConfirmWireDetails,\n type ConfirmWireDetailsComponentType,\n} from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { canCancelPayroll } from '../helpers'\nimport { PayrollOverviewPresentation } from './PayrollOverviewPresentation'\nimport { PayrollOverviewStatus } from './PayrollOverviewTypes'\nimport {\n componentEvents,\n payrollWireEvents,\n PAYROLL_PROCESSING_STATUS,\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES,\n type EventType,\n} from '@/shared/constants'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\nimport { Flex } from '@/components/Common'\n\ninterface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n companyId: string\n payrollId: string\n alerts?: PayrollFlowAlert[]\n withReimbursements?: boolean\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (blockers: PayrollSubmissionBlockerType[] = []) => {\n return blockers.filter(\n blocker =>\n blocker.status === 'unresolved' &&\n blocker.unblockOptions &&\n blocker.unblockOptions.length > 0,\n )\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n (option: PayrollCreditBlockerTypeUnblockOptions) => option.unblockType === 'submit_wire',\n )\n\n return wireUnblockOption?.metadata.wireInRequestUuid\n}\n\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n companyId,\n payrollId,\n dictionary,\n onEvent,\n alerts,\n withReimbursements = true,\n ConfirmWireDetailsComponent = ConfirmWireDetails,\n}: PayrollOverviewProps) => {\n useComponentDictionary('Payroll.PayrollOverview', dictionary)\n useI18n('Payroll.PayrollOverview')\n const { baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.PayrollOverview')\n const [isPolling, setIsPolling] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState<PayrollFlowAlert[]>(alerts || [])\n const [selectedUnblockOptions, setSelectedUnblockOptions] = useState<Record<string, string>>({})\n const [showWireDetailsConfirmation, setShowWireDetailsConfirmation] = useState(false)\n const { showBoundary } = useErrorBoundary()\n const formatCurrency = useNumberFormatter('currency')\n const dateFormatter = useDateFormatter()\n const { Button, UnorderedList, Text } = useComponentContext()\n const [status, setStatus] = useState<PayrollOverviewStatus>(PayrollOverviewStatus.Viewing)\n const { data } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\n const payrollData = data.payrollShow!\n const submissionBlockers = findUnresolvedBlockersWithOptions(payrollData.submissionBlockers)\n const wireInId = findWireInRequestUuid(payrollData.creditBlockers)\n\n const { data: wireInRequestData } = useWireInRequestsGet(\n {\n wireInRequestUuid: wireInId || '',\n },\n { enabled: !!wireInId },\n )\n const wireInRequest = wireInRequestData?.wireInRequest\n\n const onEdit = () => {\n onEvent(componentEvents.RUN_PAYROLL_EDIT)\n }\n\n const handleWireEvent = (type: EventType, data?: unknown) => {\n if (type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE) {\n setShowWireDetailsConfirmation(true)\n }\n onEvent(type, data)\n }\n\n const wireInConfirmationRequest = wireInId && (\n <ConfirmWireDetailsComponent\n companyId={companyId}\n wireInId={wireInId}\n onEvent={handleWireEvent}\n />\n )\n\n useEffect(() => {\n if (wireInRequest?.status === 'pending_review' && !showWireDetailsConfirmation) {\n setShowWireDetailsConfirmation(true)\n }\n }, [wireInRequest?.status, showWireDetailsConfirmation])\n\n useEffect(() => {\n if (showWireDetailsConfirmation) {\n const checkDate = dateFormatter.formatShortWithYear(payrollData.checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: <Text>{t('alerts.wireDetailsSubmittedMessage', { checkDate })}</Text>,\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, payrollData.checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n // Start polling when payroll is submitting and not already polling\n if (\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submitting &&\n !isPolling\n ) {\n setIsPolling(true)\n }\n // Stop polling and emit event when payroll is processed successfully\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED)\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.payrollProcessedTitle'),\n content: t('alerts.payrollProcessedMessage', {\n amount: formatCurrency(Number(payrollData.totals?.companyDebit)),\n date: dateFormatter.formatShortWithYear(\n payrollData.payrollStatusMeta?.expectedDebitTime ?? payrollData.payrollDeadline,\n ),\n }),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.processing_failed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setInternalAlerts([\n {\n type: 'error',\n title: t('alerts.payrollProcessingFailedTitle'),\n content: (\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={renderErrorList(payrollData.processingRequest.errors ?? [])} />\n <Button variant=\"secondary\" onClick={onEdit}>\n {t('alerts.payrollProcessingFailedCtaLabel')}\n </Button>\n </Flex>\n ),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n }\n }, [\n payrollData.processingRequest?.status,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData.totals?.netPayDebit,\n payrollData.payrollStatusMeta?.expectedDebitTime,\n payrollData.payrollDeadline,\n ])\n\n const { data: bankAccountData } = useBankAccountsGetSuspense({\n companyId,\n })\n const bankAccount = bankAccountData.companyBankAccounts?.[0]\n\n const { data: employeeData } = useEmployeesListSuspense({\n companyId,\n })\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n const gustoEmbedded = useGustoEmbeddedContext()\n\n const taxes =\n payrollData.employeeCompensations?.reduce(\n (acc, compensation) => {\n compensation.taxes?.forEach(tax => {\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : tax.amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? tax.amount : 0),\n }\n })\n\n return acc\n },\n {} as Record<string, { employee: number; employer: number }>,\n ) || {}\n\n const onCancel = async () => {\n setStatus(PayrollOverviewStatus.Cancelling)\n await baseSubmitHandler(data, async () => {\n try {\n const result = await cancelPayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setStatus(PayrollOverviewStatus.Cancelled)\n onEvent(componentEvents.RUN_PAYROLL_CANCELLED, result)\n } catch (error) {\n setStatus(PayrollOverviewStatus.Viewing)\n throw error\n }\n })\n }\n const onPayrollReceipt = () => {\n onEvent(componentEvents.RUN_PAYROLL_RECEIPT_GET, { payrollId })\n }\n\n const onPaystubDownload = async (employeeId: string) => {\n // Open a blank window *synchronously* with the click\n const newWindow = window.open('', '_blank')\n\n try {\n // Fetch the PDF from your API\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId, employeeId })\n if (!response.value?.responseStream) {\n throw new Error(t('alerts.paystubPdfError'))\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n\n const url = URL.createObjectURL(pdfBlob)\n\n // Load the PDF into the new window\n if (newWindow) {\n newWindow.location.href = url\n }\n onEvent(componentEvents.RUN_PAYROLL_PDF_PAYSTUB_VIEWED, { employeeId })\n URL.revokeObjectURL(url) // Clean up the URL object after use\n } catch (err) {\n if (newWindow) {\n newWindow.close()\n }\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n }\n }\n const onSubmit = async () => {\n await baseSubmitHandler(data, async () => {\n const result = await submitPayroll({\n request: {\n companyId,\n payrollId,\n requestBody: {\n submissionBlockers: Object.entries(selectedUnblockOptions)\n .filter(([blockerType]) =>\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType),\n )\n .map(([blockerType, selectedOption]) => ({\n blockerType,\n selectedOption,\n })),\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n })\n }\n\n return (\n <PayrollOverviewPresentation\n onEdit={onEdit}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onPayrollReceipt={onPayrollReceipt}\n onPaystubDownload={onPaystubDownload}\n status={isPending || isPolling ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\n employeeDetails={employeeData.showEmployees || []}\n taxes={taxes}\n alerts={internalAlerts}\n submissionBlockers={submissionBlockers}\n selectedUnblockOptions={selectedUnblockOptions}\n onUnblockOptionChange={(blockerType, value) => {\n setSelectedUnblockOptions(prev => ({ ...prev, [blockerType]: value }))\n }}\n wireInConfirmationRequest={wireInConfirmationRequest}\n withReimbursements={withReimbursements}\n />\n )\n}\n"],"names":["findUnresolvedBlockersWithOptions","blockers","blocker","findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","option","PayrollOverview","props","jsx","BaseComponent","Root","companyId","payrollId","dictionary","onEvent","alerts","withReimbursements","ConfirmWireDetailsComponent","ConfirmWireDetails","useComponentDictionary","useI18n","baseSubmitHandler","useBase","t","useTranslation","isPolling","setIsPolling","useState","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","data","usePayrollsGetSuspense","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","employeeData","useEmployeesListSuspense","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","taxes","acc","compensation","tax","PayrollOverviewPresentation","result","blockerType","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","selectedOption","error","employeeId","newWindow","response","payrollsGetPayStub","pdfBlob","readableStreamToBlob","url","err","canCancelPayroll","value","prev"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollOverview.js","sources":["../../../../src/components/Payroll/PayrollOverview/PayrollOverview.tsx"],"sourcesContent":["import { usePayrollsSubmitMutation } from '@gusto/embedded-api/react-query/payrollsSubmit'\nimport { usePayrollsCancelMutation } from '@gusto/embedded-api/react-query/payrollsCancel'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport { useWireInRequestsGet } from '@gusto/embedded-api/react-query/wireInRequestsGet'\nimport { useEffect, useState } from 'react'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport { payrollsGetPayStub } from '@gusto/embedded-api/funcs/payrollsGetPayStub'\nimport { useErrorBoundary } from 'react-error-boundary'\nimport type { PayrollSubmissionBlockerType } from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport type {\n PayrollCreditBlockerType,\n PayrollCreditBlockerTypeUnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollcreditblockertype'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport {\n ConfirmWireDetails,\n type ConfirmWireDetailsComponentType,\n} from '../ConfirmWireDetails/ConfirmWireDetails'\nimport { canCancelPayroll } from '../helpers'\nimport { PayrollOverviewPresentation } from './PayrollOverviewPresentation'\nimport { PayrollOverviewStatus } from './PayrollOverviewTypes'\nimport {\n componentEvents,\n payrollWireEvents,\n PAYROLL_PROCESSING_STATUS,\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES,\n type EventType,\n} from '@/shared/constants'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { readableStreamToBlob } from '@/helpers/readableStreamToBlob'\nimport useNumberFormatter from '@/hooks/useNumberFormatter'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { renderErrorList } from '@/helpers/apiErrorToList'\nimport { Flex } from '@/components/Common'\n\ninterface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n companyId: string\n payrollId: string\n alerts?: PayrollFlowAlert[]\n withReimbursements?: boolean\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (blockers: PayrollSubmissionBlockerType[] = []) => {\n return blockers.filter(\n blocker =>\n blocker.status === 'unresolved' &&\n blocker.unblockOptions &&\n blocker.unblockOptions.length > 0,\n )\n}\n\nconst findWireInRequestUuid = (\n creditBlockers: PayrollCreditBlockerType[] = [],\n): string | undefined => {\n const unresolvedCreditBlocker = creditBlockers.find(blocker => blocker.status === 'unresolved')\n\n if (!unresolvedCreditBlocker?.unblockOptions) {\n return undefined\n }\n\n const wireUnblockOption = unresolvedCreditBlocker.unblockOptions.find(\n (option: PayrollCreditBlockerTypeUnblockOptions) => option.unblockType === 'submit_wire',\n )\n\n return wireUnblockOption?.metadata.wireInRequestUuid\n}\n\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n companyId,\n payrollId,\n dictionary,\n onEvent,\n alerts,\n withReimbursements = true,\n ConfirmWireDetailsComponent = ConfirmWireDetails,\n}: PayrollOverviewProps) => {\n useComponentDictionary('Payroll.PayrollOverview', dictionary)\n useI18n('Payroll.PayrollOverview')\n const { baseSubmitHandler } = useBase()\n const { t } = useTranslation('Payroll.PayrollOverview')\n const [isPolling, setIsPolling] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState<PayrollFlowAlert[]>(alerts || [])\n const [selectedUnblockOptions, setSelectedUnblockOptions] = useState<Record<string, string>>({})\n const [showWireDetailsConfirmation, setShowWireDetailsConfirmation] = useState(false)\n const { showBoundary } = useErrorBoundary()\n const formatCurrency = useNumberFormatter('currency')\n const dateFormatter = useDateFormatter()\n const { Button, UnorderedList, Text } = useComponentContext()\n const [status, setStatus] = useState<PayrollOverviewStatus>(PayrollOverviewStatus.Viewing)\n const { data } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\n const payrollData = data.payrollShow!\n const submissionBlockers = findUnresolvedBlockersWithOptions(payrollData.submissionBlockers)\n const wireInId = findWireInRequestUuid(payrollData.creditBlockers)\n\n const { data: wireInRequestData } = useWireInRequestsGet(\n {\n wireInRequestUuid: wireInId || '',\n },\n { enabled: !!wireInId },\n )\n const wireInRequest = wireInRequestData?.wireInRequest\n\n const onEdit = () => {\n onEvent(componentEvents.RUN_PAYROLL_EDIT)\n }\n\n const handleWireEvent = (type: EventType, data?: unknown) => {\n if (type === payrollWireEvents.PAYROLL_WIRE_FORM_DONE) {\n setShowWireDetailsConfirmation(true)\n }\n onEvent(type, data)\n }\n\n const wireInConfirmationRequest = wireInId && (\n <ConfirmWireDetailsComponent\n companyId={companyId}\n wireInId={wireInId}\n onEvent={handleWireEvent}\n />\n )\n\n useEffect(() => {\n if (wireInRequest?.status === 'pending_review' && !showWireDetailsConfirmation) {\n setShowWireDetailsConfirmation(true)\n }\n }, [wireInRequest?.status, showWireDetailsConfirmation])\n\n useEffect(() => {\n if (showWireDetailsConfirmation) {\n const checkDate = dateFormatter.formatShortWithYear(payrollData.checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: <Text>{t('alerts.wireDetailsSubmittedMessage', { checkDate })}</Text>,\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, payrollData.checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n // Start polling when payroll is submitting and not already polling\n if (\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submitting &&\n !isPolling\n ) {\n setIsPolling(true)\n }\n // Stop polling and emit event when payroll is processed successfully\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED)\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.payrollProcessedTitle'),\n content: t('alerts.payrollProcessedMessage', {\n amount: formatCurrency(Number(payrollData.totals?.companyDebit)),\n date: dateFormatter.formatShortWithYear(\n payrollData.payrollStatusMeta?.expectedDebitTime ?? payrollData.payrollDeadline,\n ),\n }),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n }\n // If we are polling and payroll is in failed state, stop polling, and emit failure event\n if (\n isPolling &&\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.processing_failed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setInternalAlerts([\n {\n type: 'error',\n title: t('alerts.payrollProcessingFailedTitle'),\n content: (\n <Flex flexDirection=\"column\" gap={16}>\n <UnorderedList items={renderErrorList(payrollData.processingRequest.errors ?? [])} />\n <Button variant=\"secondary\" onClick={onEdit}>\n {t('alerts.payrollProcessingFailedCtaLabel')}\n </Button>\n </Flex>\n ),\n },\n ])\n setShowWireDetailsConfirmation(false)\n setIsPolling(false)\n }\n }, [\n payrollData.processingRequest?.status,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData.totals?.netPayDebit,\n payrollData.payrollStatusMeta?.expectedDebitTime,\n payrollData.payrollDeadline,\n ])\n\n const { data: bankAccountData } = useBankAccountsGetSuspense({\n companyId,\n })\n const bankAccount = bankAccountData.companyBankAccounts?.[0]\n\n const { data: employeeData } = useEmployeesListSuspense({\n companyId,\n })\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n const gustoEmbedded = useGustoEmbeddedContext()\n\n const taxes =\n payrollData.employeeCompensations?.reduce(\n (acc, compensation) => {\n compensation.taxes?.forEach(tax => {\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : tax.amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? tax.amount : 0),\n }\n })\n\n return acc\n },\n {} as Record<string, { employee: number; employer: number }>,\n ) || {}\n\n const onCancel = async () => {\n setStatus(PayrollOverviewStatus.Cancelling)\n await baseSubmitHandler(data, async () => {\n try {\n const result = await cancelPayroll({\n request: {\n companyId,\n payrollId,\n },\n })\n setStatus(PayrollOverviewStatus.Cancelled)\n onEvent(componentEvents.RUN_PAYROLL_CANCELLED, result)\n } catch (error) {\n setStatus(PayrollOverviewStatus.Viewing)\n throw error\n }\n })\n }\n const onPayrollReceipt = () => {\n onEvent(componentEvents.RUN_PAYROLL_RECEIPT_GET, { payrollId })\n }\n\n const onPaystubDownload = async (employeeId: string) => {\n // Open a blank window *synchronously* with the click\n const newWindow = window.open('', '_blank')\n\n try {\n // Fetch the PDF from your API\n const response = await payrollsGetPayStub(gustoEmbedded, { payrollId, employeeId })\n if (!response.value?.responseStream) {\n throw new Error(t('alerts.paystubPdfError'))\n }\n const pdfBlob = await readableStreamToBlob(response.value.responseStream, 'application/pdf')\n\n const url = URL.createObjectURL(pdfBlob)\n\n // Load the PDF into the new window\n if (newWindow) {\n newWindow.location.href = url\n }\n onEvent(componentEvents.RUN_PAYROLL_PDF_PAYSTUB_VIEWED, { employeeId })\n URL.revokeObjectURL(url) // Clean up the URL object after use\n } catch (err) {\n if (newWindow) {\n newWindow.close()\n }\n showBoundary(err instanceof Error ? err : new Error(String(err)))\n }\n }\n const onSubmit = async () => {\n await baseSubmitHandler(data, async () => {\n const result = await submitPayroll({\n request: {\n companyId,\n payrollId,\n requestBody: {\n submissionBlockers: Object.entries(selectedUnblockOptions)\n .filter(([blockerType]) =>\n PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES.includes(blockerType),\n )\n .map(([blockerType, selectedOption]) => ({\n blockerType,\n selectedOption,\n })),\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n })\n }\n\n return (\n <PayrollOverviewPresentation\n onEdit={onEdit}\n onSubmit={onSubmit}\n onCancel={onCancel}\n onPayrollReceipt={onPayrollReceipt}\n onPaystubDownload={onPaystubDownload}\n status={isPending || isPolling ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\n employeeDetails={employeeData.showEmployees || []}\n taxes={taxes}\n alerts={internalAlerts}\n submissionBlockers={submissionBlockers}\n selectedUnblockOptions={selectedUnblockOptions}\n onUnblockOptionChange={(blockerType, value) => {\n setSelectedUnblockOptions(prev => ({ ...prev, [blockerType]: value }))\n }}\n wireInConfirmationRequest={wireInConfirmationRequest}\n withReimbursements={withReimbursements}\n />\n )\n}\n"],"names":["findUnresolvedBlockersWithOptions","blockers","blocker","findWireInRequestUuid","creditBlockers","unresolvedCreditBlocker","option","PayrollOverview","props","jsx","BaseComponent","Root","companyId","payrollId","dictionary","onEvent","alerts","withReimbursements","ConfirmWireDetailsComponent","ConfirmWireDetails","useComponentDictionary","useI18n","baseSubmitHandler","useBase","t","useTranslation","isPolling","setIsPolling","useState","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","data","usePayrollsGetSuspense","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","employeeData","useEmployeesListSuspense","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","taxes","acc","compensation","tax","PayrollOverviewPresentation","result","blockerType","PAYROLL_RESOLVABLE_SUBMISSION_BLOCKER_TYPES","selectedOption","error","employeeId","newWindow","response","payrollsGetPayStub","pdfBlob","readableStreamToBlob","url","err","canCancelPayroll","value","prev"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
2
  import { useTranslation as _ } from "react-i18next";
3
3
  import { Flex as l } from "../../../Common/Flex/Flex.js";
4
+ import "classnames";
5
+ import "../../../../shared/constants.js";
4
6
  import { useComponentContext as k } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
5
7
  import "react";
6
8
  import { useDateFormatter as B } from "../../../../hooks/useDateFormatter.js";
@@ -8,7 +10,7 @@ import O from "../../../../assets/icons/icon-zap-fast.svg.js";
8
10
  const x = {
9
11
  fast_ach_threshold_exceeded: "submissionBlockers.fast_ach_threshold_exceeded.title",
10
12
  needs_earned_access_for_fast_ach: "submissionBlockers.needs_earned_access_for_fast_ach.title"
11
- }, v = ({
13
+ }, C = ({
12
14
  blocker: r,
13
15
  selectedValue: d,
14
16
  onUnblockOptionChange: h
@@ -48,6 +50,6 @@ const x = {
48
50
  ] }) });
49
51
  };
50
52
  export {
51
- v as FastAchSubmissionBlockerBanner
53
+ C as FastAchSubmissionBlockerBanner
52
54
  };
53
55
  //# sourceMappingURL=FastAchSubmissionBlockerBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FastAchSubmissionBlockerBanner.js","sources":["../../../../../src/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n PayrollSubmissionBlockerType,\n UnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport IconFast from '@/assets/icons/icon-zap-fast.svg?react'\n\ntype FastAchBlockerType = 'fast_ach_threshold_exceeded' | 'needs_earned_access_for_fast_ach'\n\nconst blockerTitleKeys = {\n fast_ach_threshold_exceeded: 'submissionBlockers.fast_ach_threshold_exceeded.title',\n needs_earned_access_for_fast_ach: 'submissionBlockers.needs_earned_access_for_fast_ach.title',\n} as const\n\ninterface FastAchSubmissionBlockerBannerProps {\n blocker: PayrollSubmissionBlockerType\n selectedValue?: string\n onUnblockOptionChange: (blockerType: string, value: string) => void\n}\n\nexport const FastAchSubmissionBlockerBanner = ({\n blocker,\n selectedValue,\n onUnblockOptionChange,\n}: FastAchSubmissionBlockerBannerProps) => {\n const { t } = useTranslation('Payroll.PayrollOverview')\n const { Banner, Text, RadioGroup, Badge } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const blockerType = (blocker.blockerType || 'fast_ach_threshold_exceeded') as FastAchBlockerType\n\n return (\n <Banner status=\"error\" title={t(blockerTitleKeys[blockerType])}>\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map((option: UnblockOptions) => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('submissionBlockers.fastAchOptions.wireLabel')\n : t('submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('submissionBlockers.fastAchOptions.wireDescription')\n : t('submissionBlockers.fastAchOptions.directDepositDescription')\n\n return {\n value: option.unblockType || '',\n label: (\n <Flex alignItems=\"center\" gap={8}>\n <Text weight=\"semibold\">{label}</Text>\n {isWire && (\n <Badge status=\"success\">\n <IconFast aria-hidden />{' '}\n {t('submissionBlockers.fastAchOptions.wireFastestBadge')}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t('submissionBlockers.fastAchOptions.employeePayDate', {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n })}\n </Badge>\n )}\n </Flex>\n ),\n description,\n }\n }) || []\n }\n value={selectedValue}\n onChange={value => {\n onUnblockOptionChange(blockerType, value)\n }}\n />\n </Flex>\n </Banner>\n )\n}\n"],"names":["blockerTitleKeys","FastAchSubmissionBlockerBanner","blocker","selectedValue","onUnblockOptionChange","t","useTranslation","Banner","Text","RadioGroup","Badge","useComponentContext","dateFormatter","useDateFormatter","blockerType","jsx","jsxs","Flex","option","isWire","label","description","IconFast","value"],"mappings":";;;;;;;AAYA,MAAMA,IAAmB;AAAA,EACvB,6BAA6B;AAAA,EAC7B,kCAAkC;AACpC,GAQaC,IAAiC,CAAC;AAAA,EAC7C,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,uBAAAC;AACF,MAA2C;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,QAAAC,GAAQ,MAAAC,GAAM,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAA,GACtCC,IAAgBC,EAAA,GAChBC,IAAeZ,EAAQ,eAAe;AAE5C,SACE,gBAAAa,EAACR,GAAA,EAAO,QAAO,SAAQ,OAAOF,EAAEL,EAAiBc,CAAW,CAAC,GAC3D,UAAA,gBAAAE,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAF,EAACP,GAAA,EAAM,UAAAH,EAAE,+CAA+C,EAAA,CAAE;AAAA,IAC1D,gBAAAU;AAAA,MAACN;AAAA,MAAA;AAAA,QACC,OAAOJ,EAAE,uDAAuD;AAAA,QAChE,yBAAuB;AAAA,QACvB,SACEH,EAAQ,gBAAgB,IAAI,CAACgB,MAA2B;AACtD,gBAAMC,IAASD,EAAO,gBAAgB,WAChCE,IACFf,EADUc,IACR,gDACA,sDAD6C,GAE7CE,IACFhB,EADgBc,IACd,sDACA,4DADmD;AAGzD,iBAAO;AAAA,YACL,OAAOD,EAAO,eAAe;AAAA,YAC7B,OACE,gBAAAF,EAACC,GAAA,EAAK,YAAW,UAAS,KAAK,GAC7B,UAAA;AAAA,cAAA,gBAAAF,EAACP,GAAA,EAAK,QAAO,YAAY,UAAAY,GAAM;AAAA,cAC9BD,KACC,gBAAAH,EAACN,GAAA,EAAM,QAAO,WACZ,UAAA;AAAA,gBAAA,gBAAAK,EAACO,GAAA,EAAS,eAAW,GAAA,CAAC;AAAA,gBAAG;AAAA,gBACxBjB,EAAE,oDAAoD;AAAA,cAAA,GACzD;AAAA,cAEDa,EAAO,aACN,gBAAAH,EAACL,KAAM,QAAO,QACX,YAAE,qDAAqD;AAAA,gBACtD,MAAME,EAAc,oBAAoBM,EAAO,SAAS;AAAA,cAAA,CACzD,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YAEF,aAAAG;AAAA,UAAA;AAAA,QAEJ,CAAC,KAAK,CAAA;AAAA,QAER,OAAOlB;AAAA,QACP,UAAU,CAAAoB,MAAS;AACjB,UAAAnB,EAAsBU,GAAaS,CAAK;AAAA,QAC1C;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,EAAA,CACF,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"FastAchSubmissionBlockerBanner.js","sources":["../../../../../src/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type {\n PayrollSubmissionBlockerType,\n UnblockOptions,\n} from '@gusto/embedded-api/models/components/payrollsubmissionblockertype'\nimport { Flex } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport IconFast from '@/assets/icons/icon-zap-fast.svg?react'\n\ntype FastAchBlockerType = 'fast_ach_threshold_exceeded' | 'needs_earned_access_for_fast_ach'\n\nconst blockerTitleKeys = {\n fast_ach_threshold_exceeded: 'submissionBlockers.fast_ach_threshold_exceeded.title',\n needs_earned_access_for_fast_ach: 'submissionBlockers.needs_earned_access_for_fast_ach.title',\n} as const\n\ninterface FastAchSubmissionBlockerBannerProps {\n blocker: PayrollSubmissionBlockerType\n selectedValue?: string\n onUnblockOptionChange: (blockerType: string, value: string) => void\n}\n\nexport const FastAchSubmissionBlockerBanner = ({\n blocker,\n selectedValue,\n onUnblockOptionChange,\n}: FastAchSubmissionBlockerBannerProps) => {\n const { t } = useTranslation('Payroll.PayrollOverview')\n const { Banner, Text, RadioGroup, Badge } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const blockerType = (blocker.blockerType || 'fast_ach_threshold_exceeded') as FastAchBlockerType\n\n return (\n <Banner status=\"error\" title={t(blockerTitleKeys[blockerType])}>\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('submissionBlockers.fastAchOptions.description')}</Text>\n <RadioGroup\n label={t('submissionBlockers.fastAchOptions.fundingOptionsLabel')}\n shouldVisuallyHideLabel\n options={\n blocker.unblockOptions?.map((option: UnblockOptions) => {\n const isWire = option.unblockType === 'wire_in'\n const label = isWire\n ? t('submissionBlockers.fastAchOptions.wireLabel')\n : t('submissionBlockers.fastAchOptions.directDepositLabel')\n const description = isWire\n ? t('submissionBlockers.fastAchOptions.wireDescription')\n : t('submissionBlockers.fastAchOptions.directDepositDescription')\n\n return {\n value: option.unblockType || '',\n label: (\n <Flex alignItems=\"center\" gap={8}>\n <Text weight=\"semibold\">{label}</Text>\n {isWire && (\n <Badge status=\"success\">\n <IconFast aria-hidden />{' '}\n {t('submissionBlockers.fastAchOptions.wireFastestBadge')}\n </Badge>\n )}\n {option.checkDate && (\n <Badge status=\"info\">\n {t('submissionBlockers.fastAchOptions.employeePayDate', {\n date: dateFormatter.formatShortWithYear(option.checkDate),\n })}\n </Badge>\n )}\n </Flex>\n ),\n description,\n }\n }) || []\n }\n value={selectedValue}\n onChange={value => {\n onUnblockOptionChange(blockerType, value)\n }}\n />\n </Flex>\n </Banner>\n )\n}\n"],"names":["blockerTitleKeys","FastAchSubmissionBlockerBanner","blocker","selectedValue","onUnblockOptionChange","t","useTranslation","Banner","Text","RadioGroup","Badge","useComponentContext","dateFormatter","useDateFormatter","blockerType","jsx","jsxs","Flex","option","isWire","label","description","IconFast","value"],"mappings":";;;;;;;;;AAYA,MAAMA,IAAmB;AAAA,EACvB,6BAA6B;AAAA,EAC7B,kCAAkC;AACpC,GAQaC,IAAiC,CAAC;AAAA,EAC7C,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,uBAAAC;AACF,MAA2C;AACzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,QAAAC,GAAQ,MAAAC,GAAM,YAAAC,GAAY,OAAAC,EAAA,IAAUC,EAAA,GACtCC,IAAgBC,EAAA,GAChBC,IAAeZ,EAAQ,eAAe;AAE5C,SACE,gBAAAa,EAACR,GAAA,EAAO,QAAO,SAAQ,OAAOF,EAAEL,EAAiBc,CAAW,CAAC,GAC3D,UAAA,gBAAAE,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,IAAA,gBAAAF,EAACP,GAAA,EAAM,UAAAH,EAAE,+CAA+C,EAAA,CAAE;AAAA,IAC1D,gBAAAU;AAAA,MAACN;AAAA,MAAA;AAAA,QACC,OAAOJ,EAAE,uDAAuD;AAAA,QAChE,yBAAuB;AAAA,QACvB,SACEH,EAAQ,gBAAgB,IAAI,CAACgB,MAA2B;AACtD,gBAAMC,IAASD,EAAO,gBAAgB,WAChCE,IACFf,EADUc,IACR,gDACA,sDAD6C,GAE7CE,IACFhB,EADgBc,IACd,sDACA,4DADmD;AAGzD,iBAAO;AAAA,YACL,OAAOD,EAAO,eAAe;AAAA,YAC7B,OACE,gBAAAF,EAACC,GAAA,EAAK,YAAW,UAAS,KAAK,GAC7B,UAAA;AAAA,cAAA,gBAAAF,EAACP,GAAA,EAAK,QAAO,YAAY,UAAAY,GAAM;AAAA,cAC9BD,KACC,gBAAAH,EAACN,GAAA,EAAM,QAAO,WACZ,UAAA;AAAA,gBAAA,gBAAAK,EAACO,GAAA,EAAS,eAAW,GAAA,CAAC;AAAA,gBAAG;AAAA,gBACxBjB,EAAE,oDAAoD;AAAA,cAAA,GACzD;AAAA,cAEDa,EAAO,aACN,gBAAAH,EAACL,KAAM,QAAO,QACX,YAAE,qDAAqD;AAAA,gBACtD,MAAME,EAAc,oBAAoBM,EAAO,SAAS;AAAA,cAAA,CACzD,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YAEF,aAAAG;AAAA,UAAA;AAAA,QAEJ,CAAC,KAAK,CAAA;AAAA,QAER,OAAOlB;AAAA,QACP,UAAU,CAAAoB,MAAS;AACjB,UAAAnB,EAAsBU,GAAaS,CAAK;AAAA,QAC1C;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,EAAA,CACF,EAAA,CACF;AAEJ;"}
@@ -4,6 +4,7 @@ import { useTranslation as z } from "react-i18next";
4
4
  import p from "classnames";
5
5
  import i from "./PayrollReceiptsPresentation.module.scss.js";
6
6
  import { Flex as m } from "../../Common/Flex/Flex.js";
7
+ import "../../../shared/constants.js";
7
8
  import { useComponentContext as M } from "../../../contexts/ComponentAdapter/useComponentContext.js";
8
9
  import { formatNumberAsCurrency as a } from "../../../helpers/formattedStrings.js";
9
10
  import { useI18n as $ } from "../../../i18n/I18n.js";
@@ -11,7 +12,7 @@ import { useContainerBreakpoints as A } from "../../../hooks/useContainerBreakpo
11
12
  import B from "../../../assets/icons/receipt-check.svg.js";
12
13
  import { DataTable as y } from "../../Common/DataView/DataTable/DataTable.js";
13
14
  import { DataView as f } from "../../Common/DataView/DataView.js";
14
- const Y = ({
15
+ const Z = ({
15
16
  receiptData: o,
16
17
  withReimbursements: u = !0
17
18
  }) => {
@@ -229,6 +230,6 @@ const Y = ({
229
230
  ] }) });
230
231
  };
231
232
  export {
232
- Y as PayrollReceiptsPresentation
233
+ Z as PayrollReceiptsPresentation
233
234
  };
234
235
  //# sourceMappingURL=PayrollReceiptsPresentation.js.map