@gusto/embedded-react-sdk 0.53.0 → 0.54.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 (661) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/DISCLAIMER.md +13 -0
  3. package/LICENSE +198 -4
  4. package/README.md +6 -0
  5. package/dist/components/Base/Base.d.ts +26 -5
  6. package/dist/components/Base/Base.js +89 -78
  7. package/dist/components/Base/Base.js.map +1 -1
  8. package/dist/components/Base/index.d.ts +1 -1
  9. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  12. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  14. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  15. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  16. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  17. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  18. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  19. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  20. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  21. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  22. package/dist/components/Company/Industry/Context.js +7 -6
  23. package/dist/components/Company/Industry/Context.js.map +1 -1
  24. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  25. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  26. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  27. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  28. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  29. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  30. package/dist/components/Company/PaySchedule/PayScheduleForm.d.ts +4 -1
  31. package/dist/components/Company/PaySchedule/PayScheduleForm.js +55 -48
  32. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  33. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  34. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  35. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  36. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  37. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  38. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +4 -3
  39. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  40. package/dist/components/Contractor/Address/management/Address.d.ts +30 -0
  41. package/dist/components/Contractor/Address/management/Address.js +43 -0
  42. package/dist/components/Contractor/Address/management/Address.js.map +1 -0
  43. package/dist/components/Contractor/Address/management/AddressCard/AddressCard.d.ts +35 -0
  44. package/dist/components/Contractor/Address/management/AddressCard/AddressCard.js +45 -0
  45. package/dist/components/Contractor/Address/management/AddressCard/AddressCard.js.map +1 -0
  46. package/dist/components/Contractor/Address/management/AddressCard/index.d.ts +1 -0
  47. package/dist/components/Contractor/Address/management/AddressComponents.d.ts +12 -0
  48. package/dist/components/Contractor/Address/management/AddressComponents.js +48 -0
  49. package/dist/components/Contractor/Address/management/AddressComponents.js.map +1 -0
  50. package/dist/components/Contractor/Address/management/AddressEditForm.d.ts +29 -0
  51. package/dist/components/Contractor/Address/management/AddressEditForm.js +126 -0
  52. package/dist/components/Contractor/Address/management/AddressEditForm.js.map +1 -0
  53. package/dist/components/Contractor/Address/management/AddressEditForm.module.scss.js +8 -0
  54. package/dist/components/Contractor/Address/management/AddressEditForm.module.scss.js.map +1 -0
  55. package/dist/components/Contractor/Address/management/addressStateMachine.d.ts +5 -0
  56. package/dist/components/Contractor/Address/management/addressStateMachine.js +37 -0
  57. package/dist/components/Contractor/Address/management/addressStateMachine.js.map +1 -0
  58. package/dist/components/Contractor/Address/management/index.d.ts +3 -0
  59. package/dist/components/Contractor/Address/{Address.d.ts → onboarding/Address.d.ts} +7 -4
  60. package/dist/components/Contractor/Address/onboarding/Address.js +119 -0
  61. package/dist/components/Contractor/Address/onboarding/Address.js.map +1 -0
  62. package/dist/components/Contractor/Address/{types.d.ts → onboarding/types.d.ts} +2 -2
  63. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/index.d.ts +1 -0
  64. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.d.ts +19 -0
  65. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +27 -0
  66. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -0
  67. package/dist/components/Contractor/Compensation/management/Compensation.d.ts +30 -0
  68. package/dist/components/Contractor/Compensation/management/Compensation.js +43 -0
  69. package/dist/components/Contractor/Compensation/management/Compensation.js.map +1 -0
  70. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.d.ts +35 -0
  71. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +57 -0
  72. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -0
  73. package/dist/components/Contractor/Compensation/management/CompensationCard/index.d.ts +1 -0
  74. package/dist/components/Contractor/Compensation/management/CompensationComponents.d.ts +12 -0
  75. package/dist/components/Contractor/Compensation/management/CompensationComponents.js +48 -0
  76. package/dist/components/Contractor/Compensation/management/CompensationComponents.js.map +1 -0
  77. package/dist/components/Contractor/Compensation/management/CompensationEditForm.d.ts +29 -0
  78. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +94 -0
  79. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -0
  80. package/dist/components/Contractor/Compensation/management/CompensationEditForm.module.scss.js +8 -0
  81. package/dist/components/Contractor/Compensation/management/CompensationEditForm.module.scss.js.map +1 -0
  82. package/dist/components/Contractor/Compensation/management/compensationStateMachine.d.ts +5 -0
  83. package/dist/components/Contractor/Compensation/management/compensationStateMachine.js +45 -0
  84. package/dist/components/Contractor/Compensation/management/compensationStateMachine.js.map +1 -0
  85. package/dist/components/Contractor/Compensation/management/index.d.ts +3 -0
  86. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/index.d.ts +1 -0
  87. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.d.ts +17 -0
  88. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +23 -0
  89. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -0
  90. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.d.ts +50 -0
  91. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +32 -0
  92. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -0
  93. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.d.ts +26 -0
  94. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js +14 -0
  95. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/fields.js.map +1 -0
  96. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/index.d.ts +4 -0
  97. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.d.ts +111 -0
  98. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +95 -0
  99. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -0
  100. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +1 -1
  101. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +56 -46
  102. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
  103. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.d.ts +1 -1
  104. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +44 -24
  105. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -1
  106. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +3 -3
  107. package/dist/components/Contractor/Dashboard/Dashboard.d.ts +30 -0
  108. package/dist/components/Contractor/Dashboard/Dashboard.js +80 -0
  109. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -0
  110. package/dist/components/Contractor/Dashboard/DashboardComponents.d.ts +25 -0
  111. package/dist/components/Contractor/Dashboard/DashboardComponents.js +67 -0
  112. package/dist/components/Contractor/Dashboard/DashboardComponents.js.map +1 -0
  113. package/dist/components/Contractor/Dashboard/DashboardFlow.d.ts +88 -0
  114. package/dist/components/Contractor/Dashboard/DashboardFlow.js +25 -0
  115. package/dist/components/Contractor/Dashboard/DashboardFlow.js.map +1 -0
  116. package/dist/components/Contractor/Dashboard/DetailsView.d.ts +26 -0
  117. package/dist/components/Contractor/Dashboard/DetailsView.js +14 -0
  118. package/dist/components/Contractor/Dashboard/DetailsView.js.map +1 -0
  119. package/dist/components/Contractor/Dashboard/PayView.d.ts +26 -0
  120. package/dist/components/Contractor/Dashboard/PayView.js +14 -0
  121. package/dist/components/Contractor/Dashboard/PayView.js.map +1 -0
  122. package/dist/components/Contractor/Dashboard/dashboardStateMachine.d.ts +8 -0
  123. package/dist/components/Contractor/Dashboard/dashboardStateMachine.js +138 -0
  124. package/dist/components/Contractor/Dashboard/dashboardStateMachine.js.map +1 -0
  125. package/dist/components/Contractor/Dashboard/index.d.ts +4 -0
  126. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.d.ts +36 -0
  127. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +93 -0
  128. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -0
  129. package/dist/components/Contractor/Documents/management/DocumentsCard/index.d.ts +1 -0
  130. package/dist/components/Contractor/Documents/management/index.d.ts +2 -0
  131. package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/DocumentSigner.d.ts +1 -1
  132. package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/DocumentSigner.js +4 -4
  133. package/dist/components/Contractor/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -0
  134. package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/documentSignerStateMachine.d.ts +2 -2
  135. package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/documentSignerStateMachine.js +3 -3
  136. package/dist/components/Contractor/Documents/onboarding/DocumentSigner/documentSignerStateMachine.js.map +1 -0
  137. package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/stateMachine.js +1 -1
  138. package/dist/components/Contractor/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -0
  139. package/dist/components/Contractor/Documents/{DocumentsList → onboarding/DocumentsList}/DocumentsList.d.ts +1 -1
  140. package/dist/components/Contractor/Documents/onboarding/DocumentsList/DocumentsList.js +81 -0
  141. package/dist/components/Contractor/Documents/onboarding/DocumentsList/DocumentsList.js.map +1 -0
  142. package/dist/components/Contractor/Documents/onboarding/DocumentsList/index.d.ts +1 -0
  143. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.d.ts +1 -1
  144. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.js +112 -116
  145. package/dist/components/Contractor/Documents/shared/SignatureForm/SignatureForm.js.map +1 -0
  146. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/contractorSignatureFormSchema.d.ts +2 -2
  147. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/contractorSignatureFormSchema.js +3 -3
  148. package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.js.map +1 -0
  149. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/fields.d.ts +5 -5
  150. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/fields.js +10 -10
  151. package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/fields.js.map +1 -0
  152. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/useContractorSignatureForm.d.ts +2 -2
  153. package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/useContractorSignatureForm.js +8 -8
  154. package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -0
  155. package/dist/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -0
  156. package/dist/components/Contractor/Documents/shared/documentSigningStatus.d.ts +15 -0
  157. package/dist/components/Contractor/Documents/shared/documentSigningStatus.js +7 -0
  158. package/dist/components/Contractor/Documents/shared/documentSigningStatus.js.map +1 -0
  159. package/dist/components/Contractor/Documents/shared/documentSigningStatus.test.d.ts +1 -0
  160. package/dist/components/Contractor/Documents/shared/useContractorDocumentsList/useContractorDocumentsList.js.map +1 -0
  161. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +1 -1
  162. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +16 -16
  163. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  164. package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.d.ts +32 -0
  165. package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.js +43 -0
  166. package/dist/components/Contractor/PaymentMethod/management/PaymentMethod.js.map +1 -0
  167. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.d.ts +37 -0
  168. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.js +133 -0
  169. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.js.map +1 -0
  170. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodCard/index.d.ts +1 -0
  171. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.d.ts +12 -0
  172. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.js +48 -0
  173. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodComponents.js.map +1 -0
  174. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.d.ts +30 -0
  175. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.js +57 -0
  176. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.js.map +1 -0
  177. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.module.scss.js +8 -0
  178. package/dist/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.module.scss.js.map +1 -0
  179. package/dist/components/Contractor/PaymentMethod/management/index.d.ts +3 -0
  180. package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.d.ts +5 -0
  181. package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.js +61 -0
  182. package/dist/components/Contractor/PaymentMethod/management/paymentMethodStateMachine.js.map +1 -0
  183. package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.d.ts +11 -0
  184. package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.js +33 -0
  185. package/dist/components/Contractor/PaymentMethod/management/useFormDictionary.js.map +1 -0
  186. package/dist/components/Contractor/PaymentMethod/{PaymentMethod.d.ts → onboarding/PaymentMethod.d.ts} +1 -1
  187. package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js +87 -0
  188. package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js.map +1 -0
  189. package/dist/components/Contractor/PaymentMethod/{types.d.ts → onboarding/types.d.ts} +1 -1
  190. package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.d.ts +12 -0
  191. package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.js +31 -0
  192. package/dist/components/Contractor/PaymentMethod/onboarding/useFormDictionary.js.map +1 -0
  193. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.d.ts +29 -0
  194. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.js +55 -0
  195. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.js.map +1 -0
  196. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/index.d.ts +1 -0
  197. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.d.ts +30 -0
  198. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +46 -0
  199. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -0
  200. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/index.d.ts +1 -0
  201. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/fields.js +1 -1
  202. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.d.ts +12 -3
  203. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js +71 -69
  204. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/useContractorBankAccountForm.js.map +1 -1
  205. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/index.d.ts +1 -0
  206. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.d.ts +24 -0
  207. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.js +43 -0
  208. package/dist/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodSummary/useContractorPaymentMethodSummary.js.map +1 -0
  209. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +134 -141
  210. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  211. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +7 -3
  212. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +58 -137
  213. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  214. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +1 -1
  215. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  216. package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.d.ts +9 -0
  217. package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.js +53 -0
  218. package/dist/components/Contractor/Payments/CreatePayment/useFormDictionary.js.map +1 -0
  219. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.d.ts +63 -0
  220. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js +46 -0
  221. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.js.map +1 -0
  222. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.d.ts +22 -0
  223. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.js +26 -0
  224. package/dist/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.js.map +1 -0
  225. package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.d.ts +8 -0
  226. package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.js +63 -0
  227. package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.js.map +1 -0
  228. package/dist/components/Contractor/Payments/CreatePaymentFlow/createPaymentMachine.test.d.ts +1 -0
  229. package/dist/components/Contractor/Payments/CreatePaymentFlow/index.d.ts +2 -0
  230. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.d.ts +33 -0
  231. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js +62 -0
  232. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/HistoricalPaymentAmounts.js.map +1 -0
  233. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/index.d.ts +1 -0
  234. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.d.ts +9 -0
  235. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.js +53 -0
  236. package/dist/components/Contractor/Payments/HistoricalPaymentAmounts/useFormDictionary.js.map +1 -0
  237. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.d.ts +27 -0
  238. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js +56 -0
  239. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/HistoricalPaymentContractors.js.map +1 -0
  240. package/dist/components/Contractor/Payments/HistoricalPaymentContractors/index.d.ts +1 -0
  241. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +2 -10
  242. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js +35 -44
  243. package/dist/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.js.map +1 -1
  244. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.d.ts +22 -4
  245. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js +58 -152
  246. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.js.map +1 -1
  247. package/dist/components/Contractor/Payments/PaymentFlow/paymentStateMachine.test.d.ts +1 -0
  248. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +1 -1
  249. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  250. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +1 -1
  251. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  252. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js +1 -1
  253. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.js.map +1 -1
  254. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.d.ts +63 -0
  255. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js +46 -0
  256. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.js.map +1 -0
  257. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.d.ts +20 -0
  258. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.js +25 -0
  259. package/dist/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.js.map +1 -0
  260. package/dist/components/Contractor/Payments/ViewPaymentFlow/index.d.ts +2 -0
  261. package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.d.ts +8 -0
  262. package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.js +51 -0
  263. package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.js.map +1 -0
  264. package/dist/components/Contractor/Payments/ViewPaymentFlow/viewPaymentMachine.test.d.ts +1 -0
  265. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentFormSchema.js.map +1 -0
  266. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.d.ts +44 -0
  267. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.js +128 -0
  268. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.js.map +1 -0
  269. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.d.ts +52 -0
  270. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.js +131 -0
  271. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.js.map +1 -0
  272. package/dist/components/Contractor/Payments/shared/SetPaymentAmounts/index.d.ts +1 -0
  273. package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.d.ts +19 -0
  274. package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.js +13 -0
  275. package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.js.map +1 -0
  276. package/dist/components/Contractor/Payments/shared/historicalPaymentDateBounds.test.d.ts +1 -0
  277. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +1 -1
  278. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +44 -35
  279. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -1
  280. package/dist/components/Contractor/Profile/management/Profile.d.ts +30 -0
  281. package/dist/components/Contractor/Profile/management/Profile.js +43 -0
  282. package/dist/components/Contractor/Profile/management/Profile.js.map +1 -0
  283. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.d.ts +35 -0
  284. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +55 -0
  285. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -0
  286. package/dist/components/Contractor/Profile/management/ProfileCard/index.d.ts +1 -0
  287. package/dist/components/Contractor/Profile/management/ProfileComponents.d.ts +12 -0
  288. package/dist/components/Contractor/Profile/management/ProfileComponents.js +48 -0
  289. package/dist/components/Contractor/Profile/management/ProfileComponents.js.map +1 -0
  290. package/dist/components/Contractor/Profile/management/ProfileEditForm.d.ts +32 -0
  291. package/dist/components/Contractor/Profile/management/ProfileEditForm.js +235 -0
  292. package/dist/components/Contractor/Profile/management/ProfileEditForm.js.map +1 -0
  293. package/dist/components/Contractor/Profile/management/ProfileEditForm.module.scss.js +16 -0
  294. package/dist/components/Contractor/Profile/management/ProfileEditForm.module.scss.js.map +1 -0
  295. package/dist/components/Contractor/Profile/management/index.d.ts +3 -0
  296. package/dist/components/Contractor/Profile/management/profileStateMachine.d.ts +5 -0
  297. package/dist/components/Contractor/Profile/management/profileStateMachine.js +37 -0
  298. package/dist/components/Contractor/Profile/management/profileStateMachine.js.map +1 -0
  299. package/dist/components/Contractor/Profile/{BusinessSelfOnboardingProfile.d.ts → onboarding/BusinessSelfOnboardingProfile.d.ts} +1 -1
  300. package/dist/components/Contractor/Profile/{BusinessSelfOnboardingProfile.js → onboarding/BusinessSelfOnboardingProfile.js} +34 -26
  301. package/dist/components/Contractor/Profile/onboarding/BusinessSelfOnboardingProfile.js.map +1 -0
  302. package/dist/components/Contractor/Profile/{ContractorProfile.d.ts → onboarding/ContractorProfile.d.ts} +2 -2
  303. package/dist/components/Contractor/Profile/{ContractorProfile.js → onboarding/ContractorProfile.js} +82 -63
  304. package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -0
  305. package/dist/components/Contractor/Profile/{IndividualSelfOnboardingProfile.d.ts → onboarding/IndividualSelfOnboardingProfile.d.ts} +1 -1
  306. package/dist/components/Contractor/Profile/onboarding/IndividualSelfOnboardingProfile.js +104 -0
  307. package/dist/components/Contractor/Profile/onboarding/IndividualSelfOnboardingProfile.js.map +1 -0
  308. package/dist/components/Contractor/Profile/{SelfOnboardingContractorProfile.d.ts → onboarding/SelfOnboardingContractorProfile.d.ts} +6 -3
  309. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +43 -0
  310. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -0
  311. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js +16 -16
  312. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.d.ts +13 -3
  313. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +93 -92
  314. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  315. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/index.d.ts +1 -0
  316. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.d.ts +17 -0
  317. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +23 -0
  318. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -0
  319. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +12 -12
  320. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  321. package/dist/components/Contractor/Submit/Submit.js +1 -1
  322. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  323. package/dist/components/Contractor/exports/contractorManagement.d.ts +15 -0
  324. package/dist/components/Contractor/exports/contractorManagement.js +51 -13
  325. package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
  326. package/dist/components/Contractor/exports/contractorOnboarding.d.ts +8 -8
  327. package/dist/components/Contractor/exports/contractorOnboarding.js +13 -13
  328. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.d.ts +19 -0
  329. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js +39 -0
  330. package/dist/components/Contractor/shared/SelectContractors/SelectContractors.js.map +1 -0
  331. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.d.ts +3 -0
  332. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.js +78 -0
  333. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.js.map +1 -0
  334. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.module.scss.js +10 -0
  335. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.module.scss.js.map +1 -0
  336. package/dist/components/Contractor/shared/SelectContractors/SelectContractorsPresentationTypes.d.ts +18 -0
  337. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.d.ts +58 -0
  338. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +82 -0
  339. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -0
  340. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.test.d.ts +1 -0
  341. package/dist/components/Contractor/{Payments/CreatePayment → shared}/helpers.js +1 -1
  342. package/dist/components/Contractor/shared/helpers.js.map +1 -0
  343. package/dist/components/Contractor/shared/useContractorHasSignedW9.js +1 -1
  344. package/dist/components/Contractor/shared/useContractorHasSignedW9.js.map +1 -1
  345. package/dist/components/Employee/Compensation/management/Compensation.d.ts +1 -1
  346. package/dist/components/Employee/Compensation/management/Compensation.js +30 -23
  347. package/dist/components/Employee/Compensation/management/Compensation.js.map +1 -1
  348. package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.d.ts +4 -2
  349. package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js +55 -46
  350. package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js.map +1 -1
  351. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.d.ts +4 -2
  352. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js +37 -21
  353. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
  354. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.d.ts +4 -1
  355. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +122 -102
  356. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  357. package/dist/components/Employee/Compensation/management/CompensationComponents.js +44 -22
  358. package/dist/components/Employee/Compensation/management/CompensationComponents.js.map +1 -1
  359. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +4 -2
  360. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +29 -26
  361. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  362. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.d.ts +4 -2
  363. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +74 -46
  364. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
  365. package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.d.ts +4 -2
  366. package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js +62 -53
  367. package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js.map +1 -1
  368. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +4 -2
  369. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +46 -45
  370. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
  371. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.d.ts +12 -2
  372. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js +32 -35
  373. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.js.map +1 -1
  374. package/dist/components/Employee/Compensation/onboarding/compensationStateMachine.test.d.ts +1 -0
  375. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  376. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +20 -20
  377. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  378. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  379. package/dist/components/Employee/Dashboard/Dashboard.d.ts +1 -1
  380. package/dist/components/Employee/Dashboard/Dashboard.js +50 -34
  381. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  382. package/dist/components/Employee/Deductions/management/Deductions.d.ts +1 -1
  383. package/dist/components/Employee/Deductions/management/Deductions.js +30 -23
  384. package/dist/components/Employee/Deductions/management/Deductions.js.map +1 -1
  385. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.d.ts +4 -1
  386. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +61 -54
  387. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  388. package/dist/components/Employee/Deductions/management/DeductionsComponents.js +27 -19
  389. package/dist/components/Employee/Deductions/management/DeductionsComponents.js.map +1 -1
  390. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.d.ts +1 -1
  391. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js +40 -33
  392. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
  393. package/dist/components/Employee/Deductions/onboarding/Deductions.d.ts +1 -1
  394. package/dist/components/Employee/Deductions/onboarding/Deductions.js +28 -19
  395. package/dist/components/Employee/Deductions/onboarding/Deductions.js.map +1 -1
  396. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js +39 -38
  397. package/dist/components/Employee/Deductions/onboarding/deductionsContextualComponents.js.map +1 -1
  398. package/dist/components/Employee/Deductions/onboarding/stateMachine.d.ts +12 -2
  399. package/dist/components/Employee/Deductions/onboarding/stateMachine.js +18 -20
  400. package/dist/components/Employee/Deductions/onboarding/stateMachine.js.map +1 -1
  401. package/dist/components/Employee/Deductions/onboarding/stateMachine.test.d.ts +1 -0
  402. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +3 -1
  403. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +20 -19
  404. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  405. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +4 -1
  406. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js +48 -44
  407. package/dist/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.js.map +1 -1
  408. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +3 -1
  409. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +41 -38
  410. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  411. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  412. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  413. package/dist/components/Employee/Documents/management/Documents.d.ts +1 -1
  414. package/dist/components/Employee/Documents/management/Documents.js +25 -18
  415. package/dist/components/Employee/Documents/management/Documents.js.map +1 -1
  416. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.d.ts +3 -0
  417. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +26 -19
  418. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  419. package/dist/components/Employee/Documents/management/DocumentsComponents.js +22 -14
  420. package/dist/components/Employee/Documents/management/DocumentsComponents.js.map +1 -1
  421. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  422. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  423. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.d.ts +12 -2
  424. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js +35 -37
  425. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.js.map +1 -1
  426. package/dist/components/Employee/Documents/onboarding/DocumentSigner/stateMachine.test.d.ts +1 -0
  427. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  428. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.d.ts +3 -2
  429. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +53 -43
  430. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  431. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +1 -1
  432. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  433. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.d.ts +1 -1
  434. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js +56 -40
  435. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  436. package/dist/components/Employee/FederalTaxes/management/FederalTaxes.d.ts +1 -1
  437. package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js +28 -21
  438. package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js.map +1 -1
  439. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.d.ts +3 -0
  440. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +31 -24
  441. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
  442. package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.js +27 -13
  443. package/dist/components/Employee/FederalTaxes/management/FederalTaxesComponents.js.map +1 -1
  444. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.d.ts +1 -1
  445. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +54 -40
  446. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  447. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.d.ts +1 -1
  448. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +47 -30
  449. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  450. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.d.ts +3 -1
  451. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +15 -14
  452. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
  453. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  454. package/dist/components/Employee/HomeAddress/management/HomeAddress.d.ts +1 -1
  455. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +27 -20
  456. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
  457. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.d.ts +3 -0
  458. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +30 -23
  459. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
  460. package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.js +26 -12
  461. package/dist/components/Employee/HomeAddress/management/HomeAddressComponents.js.map +1 -1
  462. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.d.ts +1 -1
  463. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js +39 -22
  464. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  465. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +1 -1
  466. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js +37 -29
  467. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -1
  468. package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.d.ts +4 -1
  469. package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js +81 -68
  470. package/dist/components/Employee/PaymentMethod/management/PaymentMethodCard.js.map +1 -1
  471. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js +28 -21
  472. package/dist/components/Employee/PaymentMethod/management/PaymentMethodComponents.js.map +1 -1
  473. package/dist/components/Employee/PaymentMethod/onboarding/ListView.d.ts +3 -1
  474. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +83 -81
  475. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
  476. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +1 -1
  477. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js +54 -27
  478. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
  479. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js +17 -9
  480. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.js.map +1 -1
  481. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +3 -1
  482. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +31 -23
  483. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  484. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +3 -1
  485. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +81 -64
  486. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  487. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  488. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  489. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.d.ts +4 -1
  490. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +69 -67
  491. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  492. package/dist/components/Employee/Profile/management/Profile.d.ts +1 -1
  493. package/dist/components/Employee/Profile/management/Profile.js +31 -24
  494. package/dist/components/Employee/Profile/management/Profile.js.map +1 -1
  495. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.d.ts +4 -1
  496. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +26 -26
  497. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  498. package/dist/components/Employee/Profile/management/ProfileComponents.js +27 -13
  499. package/dist/components/Employee/Profile/management/ProfileComponents.js.map +1 -1
  500. package/dist/components/Employee/Profile/management/ProfileEditForm.d.ts +1 -1
  501. package/dist/components/Employee/Profile/management/ProfileEditForm.js +65 -47
  502. package/dist/components/Employee/Profile/management/ProfileEditForm.js.map +1 -1
  503. package/dist/components/Employee/Profile/onboarding/AdminProfile.d.ts +1 -1
  504. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +105 -102
  505. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  506. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.d.ts +1 -1
  507. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +46 -45
  508. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
  509. package/dist/components/Employee/Profile/onboarding/Profile.d.ts +1 -1
  510. package/dist/components/Employee/Profile/onboarding/Profile.js +37 -15
  511. package/dist/components/Employee/Profile/onboarding/Profile.js.map +1 -1
  512. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  513. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  514. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  515. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +18 -15
  516. package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
  517. package/dist/components/Employee/StateTaxes/management/StateTaxes.d.ts +1 -1
  518. package/dist/components/Employee/StateTaxes/management/StateTaxes.js +29 -22
  519. package/dist/components/Employee/StateTaxes/management/StateTaxes.js.map +1 -1
  520. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.d.ts +4 -1
  521. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +37 -30
  522. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  523. package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.js +33 -19
  524. package/dist/components/Employee/StateTaxes/management/StateTaxesComponents.js.map +1 -1
  525. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.d.ts +1 -1
  526. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +46 -32
  527. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  528. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.d.ts +1 -1
  529. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +48 -31
  530. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  531. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.d.ts +3 -1
  532. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +19 -18
  533. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  534. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  535. package/dist/components/Employee/WorkAddress/management/WorkAddress.d.ts +1 -1
  536. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +27 -20
  537. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
  538. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.d.ts +3 -0
  539. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +35 -28
  540. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
  541. package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.js +26 -12
  542. package/dist/components/Employee/WorkAddress/management/WorkAddressComponents.js.map +1 -1
  543. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.d.ts +1 -1
  544. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js +40 -23
  545. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  546. package/dist/components/Flow/useFlow.d.ts +7 -1
  547. package/dist/components/Flow/useFlow.js.map +1 -1
  548. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +125 -101
  549. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  550. package/dist/components/InformationRequests/InformationRequestForm/index.d.ts +1 -1
  551. package/dist/components/InformationRequests/InformationRequests.d.ts +1 -1
  552. package/dist/components/InformationRequests/InformationRequests.js +52 -50
  553. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  554. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +3 -0
  555. package/dist/components/InformationRequests/InformationRequestsComponents.js +12 -10
  556. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  557. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +3 -2
  558. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  559. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +94 -92
  560. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  561. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +15 -15
  562. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  563. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +1 -1
  564. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  565. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +103 -97
  566. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  567. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +1 -1
  568. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js +1 -9
  569. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  570. package/dist/components/Payroll/usePreparedPayrollData.js +9 -8
  571. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  572. package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +1 -1
  573. package/dist/components/TimeOff/PolicyList/PolicyList.js +71 -70
  574. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  575. package/dist/i18n/I18n.js +15 -5
  576. package/dist/i18n/I18n.js.map +1 -1
  577. package/dist/i18n/en/Contractor.BankAccountFields.json.js +26 -0
  578. package/dist/i18n/en/Contractor.BankAccountFields.json.js.map +1 -0
  579. package/dist/i18n/en/Contractor.Dashboard.json.js +14 -0
  580. package/dist/i18n/en/Contractor.Dashboard.json.js.map +1 -0
  581. package/dist/i18n/en/Contractor.Management.Address.json.js +16 -0
  582. package/dist/i18n/en/Contractor.Management.Address.json.js.map +1 -0
  583. package/dist/i18n/en/Contractor.Management.Compensation.json.js +26 -0
  584. package/dist/i18n/en/Contractor.Management.Compensation.json.js.map +1 -0
  585. package/dist/i18n/en/Contractor.Management.Documents.json.js +24 -0
  586. package/dist/i18n/en/Contractor.Management.Documents.json.js.map +1 -0
  587. package/dist/i18n/en/Contractor.Management.PaymentMethod.json.js +34 -0
  588. package/dist/i18n/en/Contractor.Management.PaymentMethod.json.js.map +1 -0
  589. package/dist/i18n/en/Contractor.Management.Profile.json.js +26 -0
  590. package/dist/i18n/en/Contractor.Management.Profile.json.js.map +1 -0
  591. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js +36 -0
  592. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentAmounts.json.js.map +1 -0
  593. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js +18 -0
  594. package/dist/i18n/en/Contractor.Payments.HistoricalPaymentContractors.json.js.map +1 -0
  595. package/dist/i18n/en/Contractor.SelectContractors.json.js +20 -0
  596. package/dist/i18n/en/Contractor.SelectContractors.json.js.map +1 -0
  597. package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
  598. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +18 -20
  599. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  600. package/dist/i18n/en/Payroll.Common.json.js +1 -1
  601. package/dist/i18n/types.d.ts +476 -10
  602. package/dist/index.d.ts +7 -5
  603. package/dist/index.js +93 -88
  604. package/dist/index.js.map +1 -1
  605. package/dist/shared/constants.d.ts +60 -0
  606. package/dist/shared/constants.js +103 -76
  607. package/dist/shared/constants.js.map +1 -1
  608. package/dist/style.css +1 -1
  609. package/docs/guides/endpoint-inventory.json +176 -4
  610. package/package.json +27 -25
  611. package/dist/components/Contractor/Address/Address.js +0 -98
  612. package/dist/components/Contractor/Address/Address.js.map +0 -1
  613. package/dist/components/Contractor/Address/index.d.ts +0 -2
  614. package/dist/components/Contractor/Documents/DocumentSigner/DocumentSigner.js.map +0 -1
  615. package/dist/components/Contractor/Documents/DocumentSigner/documentSignerStateMachine.js.map +0 -1
  616. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +0 -1
  617. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +0 -83
  618. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +0 -1
  619. package/dist/components/Contractor/Documents/DocumentsList/index.d.ts +0 -2
  620. package/dist/components/Contractor/Documents/DocumentsList/useContractorDocumentsList/useContractorDocumentsList.js.map +0 -1
  621. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +0 -1
  622. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/contractorSignatureFormSchema.js.map +0 -1
  623. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js.map +0 -1
  624. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +0 -1
  625. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +0 -1
  626. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +0 -114
  627. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +0 -1
  628. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +0 -1
  629. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.d.ts +0 -12
  630. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +0 -124
  631. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +0 -1
  632. package/dist/components/Contractor/Payments/CreatePayment/helpers.js.map +0 -1
  633. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +0 -1
  634. package/dist/components/Contractor/Profile/ContractorProfile.js.map +0 -1
  635. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +0 -96
  636. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +0 -1
  637. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js +0 -40
  638. package/dist/components/Contractor/Profile/SelfOnboardingContractorProfile.js.map +0 -1
  639. package/dist/components/Contractor/Profile/index.d.ts +0 -1
  640. /package/dist/components/Contractor/Address/{Address.module.scss.js → onboarding/Address.module.scss.js} +0 -0
  641. /package/dist/components/Contractor/Address/{Address.module.scss.js.map → onboarding/Address.module.scss.js.map} +0 -0
  642. /package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/index.d.ts +0 -0
  643. /package/dist/components/Contractor/Documents/{DocumentSigner → onboarding/DocumentSigner}/stateMachine.d.ts +0 -0
  644. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.module.scss.js +0 -0
  645. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/SignatureForm.module.scss.js.map +0 -0
  646. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/index.d.ts +0 -0
  647. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/contractorSignatureFormSchema.test.d.ts +0 -0
  648. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/index.d.ts +0 -0
  649. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/w9Fields.d.ts +0 -0
  650. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/w9Fields.js +0 -0
  651. /package/dist/components/Contractor/Documents/{SignatureForm → shared/SignatureForm}/useContractorSignatureForm/w9Fields.test.d.ts +0 -0
  652. /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/index.d.ts +0 -0
  653. /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/useContractorDocumentsList.d.ts +0 -0
  654. /package/dist/components/Contractor/Documents/{DocumentsList → shared}/useContractorDocumentsList/useContractorDocumentsList.js +0 -0
  655. /package/dist/components/Contractor/PaymentMethod/{PaymentMethod.module.scss.js → onboarding/PaymentMethod.module.scss.js} +0 -0
  656. /package/dist/components/Contractor/PaymentMethod/{PaymentMethod.module.scss.js.map → onboarding/PaymentMethod.module.scss.js.map} +0 -0
  657. /package/dist/components/Contractor/Payments/{CreatePayment → shared/SetPaymentAmounts}/EditContractorPaymentFormSchema.d.ts +0 -0
  658. /package/dist/components/Contractor/Payments/{CreatePayment → shared/SetPaymentAmounts}/EditContractorPaymentFormSchema.js +0 -0
  659. /package/dist/components/Contractor/Profile/{ContractorProfile.module.scss.js → onboarding/ContractorProfile.module.scss.js} +0 -0
  660. /package/dist/components/Contractor/Profile/{ContractorProfile.module.scss.js.map → onboarding/ContractorProfile.module.scss.js.map} +0 -0
  661. /package/dist/components/Contractor/{Payments/CreatePayment → shared}/helpers.d.ts +0 -0
@@ -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 { usePayrollsGet } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\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 { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\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, PayrollLoading } from '@/components/Common'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PayrollOverview}.\n *\n * @public\n */\nexport interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n /** Identifier of the company that owns the payroll. */\n companyId: string\n /** Identifier of the payroll being reviewed. The payroll must already be calculated. */\n payrollId: string\n /** Alert banners to display above the payroll summary. */\n alerts?: PayrollFlowAlert[]\n /** Whether reimbursement fields are shown in the totals and per-employee tables. Defaults to `true`. */\n withReimbursements?: boolean\n /** Custom component to replace the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (\n blockers: PayrollSubmissionBlockerType[] = [],\n): 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\n/**\n * Final review screen for a calculated payroll before submission, with submit, cancel,\n * and edit controls. After submission, tracks processing status and surfaces the receipt\n * and per-employee paystub downloads once complete.\n *\n * @remarks\n * The payroll referenced by `payrollId` must already be calculated; rendering with an\n * uncalculated payroll throws. Unresolved submission blockers (e.g. fast-ACH threshold,\n * wire-in funding) are surfaced inline and the submit action stays disabled until each\n * blocker has a selected unblock option. While the payroll is processing, the component\n * polls until success or failure and emits the corresponding event.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/edit` | User chose to edit the payroll before submitting | — |\n * | `runPayroll/submitting` | Submit request was sent to the API | — |\n * | `runPayroll/submitted` | Payroll was successfully submitted | Submit payroll response |\n * | `runPayroll/processed` | Payroll finished processing successfully | `{ payPeriod, payrollUuid }` |\n * | `runPayroll/processingFailed` | Payroll processing failed | — |\n * | `runPayroll/cancelled` | Payroll was cancelled | Cancel payroll response |\n * | `runPayroll/receipt/get` | User requested the payroll receipt | `{ payrollId }` |\n * | `runPayroll/pdfPaystub/viewed` | User opened an employee's paystub PDF | `{ employeeId }` |\n * | `payroll/wire/form/done` | Wire-in details were confirmed via the embedded wire form | Submit wire-in response |\n *\n * @param props - See {@link PayrollOverviewProps}.\n * @returns The payroll overview surface.\n * @public\n */\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst 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 [hasSubmittedInSession, setHasSubmittedInSession] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState(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.Viewing)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const { data, isFetching } = usePayrollsGet(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions', 'totals', 'payroll_taxes'],\n page: currentPage,\n per: itemsPerPage,\n },\n {\n refetchInterval: isPolling ? 5_000 : false,\n placeholderData: keepPreviousData,\n },\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 const checkDate = payrollData?.checkDate\n useEffect(() => {\n if (checkDate && showWireDetailsConfirmation) {\n const formattedCheckDate = dateFormatter.formatShortWithYear(checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: (\n <Text>\n {t('alerts.wireDetailsSubmittedMessage', { checkDate: formattedCheckDate })}\n </Text>\n ),\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n if (!payrollData) return\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 if (\n isPolling &&\n (payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED, {\n payPeriod: payrollData.payPeriod,\n payrollUuid: payrollId,\n })\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 setHasSubmittedInSession(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 setHasSubmittedInSession(false)\n }\n }, [\n payrollData?.processingRequest?.status,\n payrollData?.processed,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData?.totals?.companyDebit,\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 { paymentSpeed } = useCompanyPaymentSpeed(companyId)\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n const gustoEmbedded = useGustoEmbeddedContext()\n\n if (!payrollData) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n\n const pagination = getPaginationProps(data.httpMeta.response.headers, isFetching)\n\n // Per-tax totals come from the payroll-level `payrollTaxes` aggregate so they stay\n // correct when `employeeCompensations` is paginated (only a single page is loaded).\n const taxes =\n payrollData.payrollTaxes?.reduce(\n (acc, tax) => {\n if (!tax.name) return acc\n const amount = tax.amount ?? 0\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? amount : 0),\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_SUBMITTING)\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n setHasSubmittedInSession(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 || hasSubmittedInSession ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\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 paymentSpeed={paymentSpeed}\n pagination={pagination}\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","hasSubmittedInSession","setHasSubmittedInSession","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","currentPage","itemsPerPage","getPaginationProps","usePagination","data","isFetching","usePayrollsGet","keepPreviousData","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","formattedCheckDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","paymentSpeed","useCompanyPaymentSpeed","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","PayrollLoading","pagination","taxes","acc","tax","amount","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 { usePayrollsGet } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\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 { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\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, PayrollLoading } from '@/components/Common'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\n/**\n * Props for {@link PayrollOverview}.\n *\n * @public\n */\nexport interface PayrollOverviewProps extends BaseComponentInterface<'Payroll.PayrollOverview'> {\n /** Identifier of the company that owns the payroll. */\n companyId: string\n /** Identifier of the payroll being reviewed. The payroll must already be calculated. */\n payrollId: string\n /** Alert banners to display above the payroll summary. */\n alerts?: PayrollFlowAlert[]\n /** Whether reimbursement fields are shown in the totals and per-employee tables. Defaults to `true`. */\n withReimbursements?: boolean\n /** Custom component to replace the default wire details confirmation UI. */\n ConfirmWireDetailsComponent?: ConfirmWireDetailsComponentType\n}\n\nconst findUnresolvedBlockersWithOptions = (\n blockers: PayrollSubmissionBlockerType[] = [],\n): 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\n/**\n * Final review screen for a calculated payroll before submission, with submit, cancel,\n * and edit controls. After submission, tracks processing status and surfaces the receipt\n * and per-employee paystub downloads once complete.\n *\n * @remarks\n * The payroll referenced by `payrollId` must already be calculated; rendering with an\n * uncalculated payroll throws. Unresolved submission blockers (e.g. fast-ACH threshold,\n * wire-in funding) are surfaced inline and the submit action stays disabled until each\n * blocker has a selected unblock option. While the payroll is processing, the component\n * polls until success or failure and emits the corresponding event.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/edit` | User chose to edit the payroll before submitting | — |\n * | `runPayroll/submitting` | Submit request was sent to the API | — |\n * | `runPayroll/submitted` | Payroll was successfully submitted | Submit payroll response |\n * | `runPayroll/processed` | Payroll finished processing successfully | `{ payPeriod, payrollUuid }` |\n * | `runPayroll/processingFailed` | Payroll processing failed | — |\n * | `runPayroll/cancelled` | Payroll was cancelled | Cancel payroll response |\n * | `runPayroll/receipt/get` | User requested the payroll receipt | `{ payrollId }` |\n * | `runPayroll/pdfPaystub/viewed` | User opened an employee's paystub PDF | `{ employeeId }` |\n * | `payroll/wire/form/done` | Wire-in details were confirmed via the embedded wire form | Submit wire-in response |\n *\n * @param props - See {@link PayrollOverviewProps}.\n * @returns The payroll overview surface.\n * @public\n */\nexport function PayrollOverview(props: PayrollOverviewProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst 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 [hasSubmittedInSession, setHasSubmittedInSession] = useState(false)\n const [internalAlerts, setInternalAlerts] = useState(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.Viewing)\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const { data, isFetching } = usePayrollsGet(\n {\n companyId,\n payrollId: payrollId,\n include: ['taxes', 'benefits', 'deductions', 'totals', 'payroll_taxes'],\n page: currentPage,\n per: itemsPerPage,\n },\n {\n refetchInterval: isPolling ? 5_000 : false,\n placeholderData: keepPreviousData,\n // Always refetch on mount so a partner QueryClient with a non-zero `staleTime`\n // can't serve a stale pre-calculation snapshot without refetching. SDK-1018.\n refetchOnMount: 'always',\n },\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 const checkDate = payrollData?.checkDate\n useEffect(() => {\n if (checkDate && showWireDetailsConfirmation) {\n const formattedCheckDate = dateFormatter.formatShortWithYear(checkDate)\n\n setInternalAlerts([\n {\n type: 'success',\n title: t('alerts.wireDetailsSubmittedTitle'),\n content: (\n <Text>\n {t('alerts.wireDetailsSubmittedMessage', { checkDate: formattedCheckDate })}\n </Text>\n ),\n onDismiss: () => {\n setShowWireDetailsConfirmation(false)\n },\n },\n ])\n }\n }, [showWireDetailsConfirmation, checkDate, t, dateFormatter, Text])\n\n useEffect(() => {\n if (!payrollData) return\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 if (\n isPolling &&\n (payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSED, {\n payPeriod: payrollData.payPeriod,\n payrollUuid: payrollId,\n })\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 setHasSubmittedInSession(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 setHasSubmittedInSession(false)\n }\n }, [\n payrollData?.processingRequest?.status,\n payrollData?.processed,\n isPolling,\n onEvent,\n t,\n dateFormatter,\n formatCurrency,\n payrollData?.totals?.companyDebit,\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 { paymentSpeed } = useCompanyPaymentSpeed(companyId)\n\n const { mutateAsync: submitPayroll, isPending } = usePayrollsSubmitMutation()\n\n const { mutateAsync: cancelPayroll } = usePayrollsCancelMutation()\n\n const gustoEmbedded = useGustoEmbeddedContext()\n\n if (!payrollData) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n\n if (status === PayrollOverviewStatus.Viewing && !payrollData.calculatedAt) {\n // A stale snapshot can be served with a null `calculatedAt` while its refetch is\n // in flight; treat that as loading and only throw once the fetch settles. SDK-1018.\n if (isFetching) {\n return <PayrollLoading title={t('dataLoadingTitle')} />\n }\n throw new Error(t('alerts.payrollNotCalculated'))\n }\n\n const pagination = getPaginationProps(data.httpMeta.response.headers, isFetching)\n\n // Per-tax totals come from the payroll-level `payrollTaxes` aggregate so they stay\n // correct when `employeeCompensations` is paginated (only a single page is loaded).\n const taxes =\n payrollData.payrollTaxes?.reduce(\n (acc, tax) => {\n if (!tax.name) return acc\n const amount = tax.amount ?? 0\n acc[tax.name] = {\n employee: (acc[tax.name]?.employee ?? 0) + (tax.employer ? 0 : amount),\n employer: (acc[tax.name]?.employer ?? 0) + (tax.employer ? amount : 0),\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_SUBMITTING)\n onEvent(componentEvents.RUN_PAYROLL_SUBMITTED, result)\n setIsPolling(true)\n setHasSubmittedInSession(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 || hasSubmittedInSession ? PayrollOverviewStatus.Submitting : status}\n isProcessed={\n payrollData.processed === true ||\n payrollData.processingRequest?.status === PAYROLL_PROCESSING_STATUS.submit_success\n }\n canCancel={canCancelPayroll(payrollData)}\n payrollData={payrollData}\n bankAccount={bankAccount}\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 paymentSpeed={paymentSpeed}\n pagination={pagination}\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","hasSubmittedInSession","setHasSubmittedInSession","internalAlerts","setInternalAlerts","selectedUnblockOptions","setSelectedUnblockOptions","showWireDetailsConfirmation","setShowWireDetailsConfirmation","showBoundary","useErrorBoundary","formatCurrency","useNumberFormatter","dateFormatter","useDateFormatter","Button","UnorderedList","Text","useComponentContext","status","setStatus","PayrollOverviewStatus","currentPage","itemsPerPage","getPaginationProps","usePagination","data","isFetching","usePayrollsGet","keepPreviousData","payrollData","submissionBlockers","wireInId","wireInRequestData","useWireInRequestsGet","wireInRequest","onEdit","componentEvents","wireInConfirmationRequest","type","payrollWireEvents","useEffect","checkDate","formattedCheckDate","PAYROLL_PROCESSING_STATUS","jsxs","Flex","renderErrorList","bankAccountData","useBankAccountsGetSuspense","bankAccount","paymentSpeed","useCompanyPaymentSpeed","submitPayroll","isPending","usePayrollsSubmitMutation","cancelPayroll","usePayrollsCancelMutation","gustoEmbedded","useGustoEmbeddedContext","PayrollLoading","pagination","taxes","acc","tax","amount","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,6 @@
1
1
  import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest';
2
2
  /** @internal */
3
- export type PayrollStatusTranslationKey = 'processed' | 'unprocessed' | 'calculating' | 'readyToSubmit' | 'processing' | 'failed' | 'waitingForWireIn' | 'pendingApproval' | 'dueInHours' | 'dueInDays' | 'daysLate' | 'pending' | 'paid' | 'complete' | 'submitted' | 'inProgress';
3
+ export type PayrollStatusTranslationKey = 'processed' | 'calculating' | 'readyToSubmit' | 'processing' | 'failed' | 'waitingForWireIn' | 'pendingApproval' | 'dueInHours' | 'dueInDays' | 'daysLate' | 'pending' | 'paid' | 'complete' | 'submitted' | 'inProgress';
4
4
  /** @internal */
5
5
  export type PayrollStatusBadge = {
6
6
  /** Optional pre-translated label; when omitted the consumer translates `translationKey`. */
@@ -123,7 +123,7 @@ const o = [
123
123
  if (!n.payrollDeadline || n.processed || n.processingRequest?.status && o.includes(n.processingRequest.status))
124
124
  return !1;
125
125
  const a = s(n.payrollDeadline), e = i(n.payrollDeadline);
126
- return a === null || e === null ? !1 : a > 0 && a >= 24 && Math.ceil(e) <= 30;
126
+ return a === null || e === null ? !1 : a > 0 && a >= 24 && Math.ceil(e) <= 14;
127
127
  }
128
128
  },
129
129
  {
@@ -145,14 +145,6 @@ const o = [
145
145
  translationKey: "pending"
146
146
  },
147
147
  condition: (n) => !!n.processed
148
- },
149
- {
150
- name: "unprocessed",
151
- badge: {
152
- variant: "info",
153
- translationKey: "unprocessed"
154
- },
155
- condition: (n) => !n.processed && !n.processingRequest?.status
156
148
  }
157
149
  ];
158
150
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"payrollStatusConfig.js","sources":["../../../../src/components/Payroll/PayrollStatusBadges/payrollStatusConfig.ts"],"sourcesContent":["import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { WireInRequestStatus } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { normalizeToDate, getHoursUntil, getDaysUntil } from '@/helpers/dateFormatting'\n\n/** @internal */\nexport type PayrollStatusTranslationKey =\n | 'processed'\n | 'unprocessed'\n | 'calculating'\n | 'readyToSubmit'\n | 'processing'\n | 'failed'\n | 'waitingForWireIn'\n | 'pendingApproval'\n | 'dueInHours'\n | 'dueInDays'\n | 'daysLate'\n | 'pending'\n | 'paid'\n | 'complete'\n | 'submitted'\n | 'inProgress'\n\n/** @internal */\nexport type PayrollStatusBadge = {\n /** Optional pre-translated label; when omitted the consumer translates `translationKey`. */\n label?: string\n /** Badge color variant. */\n variant: 'success' | 'warning' | 'error' | 'info'\n /** Key into the `Payroll.Common` `status.*` translation namespace. */\n translationKey: PayrollStatusTranslationKey\n /** Optional interpolation values for the translation (e.g. `{ hours: 3 }`). */\n translationParams?: Record<string, string | number>\n}\n\n/** @internal */\nexport type PayrollStatusBadges = {\n /** Ordered list of badges to render for a payroll row. */\n badges: PayrollStatusBadge[]\n}\n\n/** @internal */\nexport type PayrollInput = {\n /** Whether the payroll has been submitted for processing. */\n processed?: boolean\n /** Date employees are paid; used to distinguish `pending` from `complete`. */\n checkDate?: string | null | Date\n /** Deadline by which the payroll must be submitted. */\n payrollDeadline?: string | null | Date\n /** Timestamp marking when calculation finished. */\n calculatedAt?: Date | null\n /** Current processing request status and any associated errors. */\n processingRequest?: {\n /** Lifecycle status reported by the payroll processing request. */\n status?: PayrollProcessingRequestStatus\n /** Errors surfaced by the processing request, when any. */\n errors?: unknown[]\n } | null\n}\n\n/** @internal */\nexport type WireInRequestInput = {\n /** Wire-in request lifecycle status (e.g. awaiting funds, pending review). */\n status?: string\n /** UUID of the associated payment. */\n paymentUuid?: string\n /** Deadline by which the wire must be received. */\n wireInDeadline?: string\n} | null\n\n/** @internal */\nexport type StatusConfig = {\n /** Identifier for the status rule; used for debugging and snapshot diffs. */\n name: string\n /** Either a static badge or a factory that derives one from the payroll/wire-in inputs. */\n badge:\n | PayrollStatusBadge\n | ((payroll: PayrollInput, wireInRequest?: WireInRequestInput) => PayrollStatusBadge)\n /** Predicate that decides whether this status applies to the given inputs. */\n condition: (payroll: PayrollInput, wireInRequest?: WireInRequestInput) => boolean\n /** When true, evaluation continues to later rules instead of stopping at the first match. */\n continueChecking?: boolean\n}\n\nconst ACTIVE_PROCESSING_STATUSES: PayrollProcessingRequestStatus[] = [\n PayrollProcessingRequestStatus.Calculating,\n PayrollProcessingRequestStatus.Submitting,\n PayrollProcessingRequestStatus.ProcessingFailed,\n]\n\n/** @internal */\nexport const STATUS_CONFIG: StatusConfig[] = [\n {\n name: 'calculating',\n badge: {\n variant: 'info',\n translationKey: 'calculating',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Calculating,\n },\n {\n name: 'readyToSubmit',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess &&\n !!payroll.calculatedAt,\n },\n {\n name: 'processing',\n badge: {\n variant: 'warning',\n translationKey: 'processing',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Submitting,\n continueChecking: true,\n },\n {\n name: 'failed',\n badge: {\n variant: 'error',\n translationKey: 'failed',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.ProcessingFailed,\n continueChecking: true,\n },\n {\n name: 'late',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: 0 },\n }\n }\n\n const daysPast = Math.abs(Math.floor(daysDiff))\n\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: daysPast },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff < 0\n },\n },\n {\n name: 'readyToSubmitFallback',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll => !!payroll.calculatedAt && !payroll.processed,\n },\n {\n name: 'waitingForWireIn',\n badge: {\n variant: 'warning',\n translationKey: 'waitingForWireIn',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.AwaitingFunds,\n },\n {\n name: 'pendingApproval',\n badge: {\n variant: 'warning',\n translationKey: 'pendingApproval',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.PendingReview,\n },\n {\n name: 'dueInHours',\n badge: payroll => {\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) {\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours: 0 },\n }\n }\n\n const hours = Math.ceil(hoursDiff)\n\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff < 24\n },\n },\n {\n name: 'dueInDays',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days: 0 },\n }\n }\n\n const days = Math.ceil(daysDiff)\n\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (hoursDiff === null || daysDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff >= 24 && Math.ceil(daysDiff) <= 30\n },\n },\n {\n name: 'paid',\n badge: {\n variant: 'success',\n translationKey: 'complete',\n },\n condition: payroll => {\n if (!payroll.processed) return false\n\n const now = new Date()\n const checkDate = normalizeToDate(payroll.checkDate)\n\n return checkDate !== null && checkDate <= now\n },\n },\n {\n name: 'pending',\n badge: {\n variant: 'info',\n translationKey: 'pending',\n },\n condition: payroll => !!payroll.processed,\n },\n {\n name: 'unprocessed',\n badge: {\n variant: 'info',\n translationKey: 'unprocessed',\n },\n condition: payroll => !payroll.processed && !payroll.processingRequest?.status,\n },\n]\n"],"names":["ACTIVE_PROCESSING_STATUSES","PayrollProcessingRequestStatus","STATUS_CONFIG","payroll","daysDiff","getDaysUntil","hoursDiff","getHoursUntil","wireInRequest","WireInRequestStatus","now","checkDate","normalizeToDate"],"mappings":";;;AAoFA,MAAMA,IAA+D;AAAA,EACnEC,EAA+B;AAAA,EAC/BA,EAA+B;AAAA,EAC/BA,EAA+B;AACjC,GAGaC,IAAgC;AAAA,EAC3C;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAC,MACTA,EAAQ,mBAAmB,WAAWF,EAA+B;AAAA,EAAA;AAAA,EAEzE;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,OACTE,EAAQ,mBAAmB,WAAWF,EAA+B,oBACrE,CAAC,CAACE,EAAQ;AAAA,EAAA;AAAA,EAEd;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAA,MACTA,EAAQ,mBAAmB,WAAWF,EAA+B;AAAA,IACvE,kBAAkB;AAAA,EAAA;AAAA,EAEpB;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAE,MACTA,EAAQ,mBAAmB,WAAWF,EAA+B;AAAA,IACvE,kBAAkB;AAAA,EAAA;AAAA,EAEpB;AAAA,IACE,MAAM;AAAA,IACN,OAAO,CAAAE,MAAW;AAChB,YAAMC,IAAWC,EAAaF,EAAQ,eAAe;AACrD,aAAIC,MAAa,OACR;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,MAAM,EAAA;AAAA,MAAE,IAM1B;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,MALN,KAAK,IAAI,KAAK,MAAMA,CAAQ,CAAC,EAKjB;AAAA,MAAS;AAAA,IAExC;AAAA,IACA,WAAW,CAAAD,MAAW;AACpB,UAAI,CAACA,EAAQ,mBAAmBA,EAAQ,UAAW,QAAO;AAE1D,YAAMG,IAAYC,EAAcJ,EAAQ,eAAe;AACvD,aAAIG,MAAc,OAAa,KAExBA,IAAY;AAAA,IACrB;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAH,MAAW,CAAC,CAACA,EAAQ,gBAAgB,CAACA,EAAQ;AAAA,EAAA;AAAA,EAE3D;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAACA,GAASK,MACnB,CAAC,CAACL,EAAQ,aAAaK,GAAe,WAAWC,EAAoB;AAAA,EAAA;AAAA,EAEzE;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAACN,GAASK,MACnB,CAAC,CAACL,EAAQ,aAAaK,GAAe,WAAWC,EAAoB;AAAA,EAAA;AAAA,EAEzE;AAAA,IACE,MAAM;AAAA,IACN,OAAO,CAAAN,MAAW;AAChB,YAAMG,IAAYC,EAAcJ,EAAQ,eAAe;AACvD,aAAIG,MAAc,OACT;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,OAAO,EAAA;AAAA,MAAE,IAM3B;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,OALT,KAAK,KAAKA,CAAS,EAKV;AAAA,MAAM;AAAA,IAE/B;AAAA,IACA,WAAW,CAAAH,MAAW;AAGpB,UAFI,CAACA,EAAQ,mBAAmBA,EAAQ,aAGtCA,EAAQ,mBAAmB,UAC3BH,EAA2B,SAASG,EAAQ,kBAAkB,MAAM;AAEpE,eAAO;AAGT,YAAMG,IAAYC,EAAcJ,EAAQ,eAAe;AACvD,aAAIG,MAAc,OAAa,KAExBA,IAAY,KAAKA,IAAY;AAAA,IACtC;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,MAAM;AAAA,IACN,OAAO,CAAAH,MAAW;AAChB,YAAMC,IAAWC,EAAaF,EAAQ,eAAe;AACrD,aAAIC,MAAa,OACR;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,MAAM,EAAA;AAAA,MAAE,IAM1B;AAAA,QACL,SAAS;AAAA,QACT,gBAAgB;AAAA,QAChB,mBAAmB,EAAE,MALV,KAAK,KAAKA,CAAQ,EAKR;AAAA,MAAK;AAAA,IAE9B;AAAA,IACA,WAAW,CAAAD,MAAW;AAGpB,UAFI,CAACA,EAAQ,mBAAmBA,EAAQ,aAGtCA,EAAQ,mBAAmB,UAC3BH,EAA2B,SAASG,EAAQ,kBAAkB,MAAM;AAEpE,eAAO;AAGT,YAAMG,IAAYC,EAAcJ,EAAQ,eAAe,GACjDC,IAAWC,EAAaF,EAAQ,eAAe;AACrD,aAAIG,MAAc,QAAQF,MAAa,OAAa,KAE7CE,IAAY,KAAKA,KAAa,MAAM,KAAK,KAAKF,CAAQ,KAAK;AAAA,IACpE;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAD,MAAW;AACpB,UAAI,CAACA,EAAQ,UAAW,QAAO;AAE/B,YAAMO,wBAAU,KAAA,GACVC,IAAYC,EAAgBT,EAAQ,SAAS;AAEnD,aAAOQ,MAAc,QAAQA,KAAaD;AAAA,IAC5C;AAAA,EAAA;AAAA,EAEF;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAP,MAAW,CAAC,CAACA,EAAQ;AAAA,EAAA;AAAA,EAElC;AAAA,IACE,MAAM;AAAA,IACN,OAAO;AAAA,MACL,SAAS;AAAA,MACT,gBAAgB;AAAA,IAAA;AAAA,IAElB,WAAW,CAAAA,MAAW,CAACA,EAAQ,aAAa,CAACA,EAAQ,mBAAmB;AAAA,EAAA;AAE5E;"}
1
+ {"version":3,"file":"payrollStatusConfig.js","sources":["../../../../src/components/Payroll/PayrollStatusBadges/payrollStatusConfig.ts"],"sourcesContent":["import { PayrollProcessingRequestStatus } from '@gusto/embedded-api/models/components/payrollprocessingrequest'\nimport { WireInRequestStatus } from '@gusto/embedded-api/models/components/wireinrequest'\nimport { normalizeToDate, getHoursUntil, getDaysUntil } from '@/helpers/dateFormatting'\n\n/** @internal */\nexport type PayrollStatusTranslationKey =\n | 'processed'\n | 'calculating'\n | 'readyToSubmit'\n | 'processing'\n | 'failed'\n | 'waitingForWireIn'\n | 'pendingApproval'\n | 'dueInHours'\n | 'dueInDays'\n | 'daysLate'\n | 'pending'\n | 'paid'\n | 'complete'\n | 'submitted'\n | 'inProgress'\n\n/** @internal */\nexport type PayrollStatusBadge = {\n /** Optional pre-translated label; when omitted the consumer translates `translationKey`. */\n label?: string\n /** Badge color variant. */\n variant: 'success' | 'warning' | 'error' | 'info'\n /** Key into the `Payroll.Common` `status.*` translation namespace. */\n translationKey: PayrollStatusTranslationKey\n /** Optional interpolation values for the translation (e.g. `{ hours: 3 }`). */\n translationParams?: Record<string, string | number>\n}\n\n/** @internal */\nexport type PayrollStatusBadges = {\n /** Ordered list of badges to render for a payroll row. */\n badges: PayrollStatusBadge[]\n}\n\n/** @internal */\nexport type PayrollInput = {\n /** Whether the payroll has been submitted for processing. */\n processed?: boolean\n /** Date employees are paid; used to distinguish `pending` from `complete`. */\n checkDate?: string | null | Date\n /** Deadline by which the payroll must be submitted. */\n payrollDeadline?: string | null | Date\n /** Timestamp marking when calculation finished. */\n calculatedAt?: Date | null\n /** Current processing request status and any associated errors. */\n processingRequest?: {\n /** Lifecycle status reported by the payroll processing request. */\n status?: PayrollProcessingRequestStatus\n /** Errors surfaced by the processing request, when any. */\n errors?: unknown[]\n } | null\n}\n\n/** @internal */\nexport type WireInRequestInput = {\n /** Wire-in request lifecycle status (e.g. awaiting funds, pending review). */\n status?: string\n /** UUID of the associated payment. */\n paymentUuid?: string\n /** Deadline by which the wire must be received. */\n wireInDeadline?: string\n} | null\n\n/** @internal */\nexport type StatusConfig = {\n /** Identifier for the status rule; used for debugging and snapshot diffs. */\n name: string\n /** Either a static badge or a factory that derives one from the payroll/wire-in inputs. */\n badge:\n | PayrollStatusBadge\n | ((payroll: PayrollInput, wireInRequest?: WireInRequestInput) => PayrollStatusBadge)\n /** Predicate that decides whether this status applies to the given inputs. */\n condition: (payroll: PayrollInput, wireInRequest?: WireInRequestInput) => boolean\n /** When true, evaluation continues to later rules instead of stopping at the first match. */\n continueChecking?: boolean\n}\n\nconst ACTIVE_PROCESSING_STATUSES: PayrollProcessingRequestStatus[] = [\n PayrollProcessingRequestStatus.Calculating,\n PayrollProcessingRequestStatus.Submitting,\n PayrollProcessingRequestStatus.ProcessingFailed,\n]\n\n/** @internal */\nexport const STATUS_CONFIG: StatusConfig[] = [\n {\n name: 'calculating',\n badge: {\n variant: 'info',\n translationKey: 'calculating',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Calculating,\n },\n {\n name: 'readyToSubmit',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess &&\n !!payroll.calculatedAt,\n },\n {\n name: 'processing',\n badge: {\n variant: 'warning',\n translationKey: 'processing',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.Submitting,\n continueChecking: true,\n },\n {\n name: 'failed',\n badge: {\n variant: 'error',\n translationKey: 'failed',\n },\n condition: payroll =>\n payroll.processingRequest?.status === PayrollProcessingRequestStatus.ProcessingFailed,\n continueChecking: true,\n },\n {\n name: 'late',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: 0 },\n }\n }\n\n const daysPast = Math.abs(Math.floor(daysDiff))\n\n return {\n variant: 'error',\n translationKey: 'daysLate',\n translationParams: { days: daysPast },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff < 0\n },\n },\n {\n name: 'readyToSubmitFallback',\n badge: {\n variant: 'info',\n translationKey: 'readyToSubmit',\n },\n condition: payroll => !!payroll.calculatedAt && !payroll.processed,\n },\n {\n name: 'waitingForWireIn',\n badge: {\n variant: 'warning',\n translationKey: 'waitingForWireIn',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.AwaitingFunds,\n },\n {\n name: 'pendingApproval',\n badge: {\n variant: 'warning',\n translationKey: 'pendingApproval',\n },\n condition: (payroll, wireInRequest) =>\n !!payroll.processed && wireInRequest?.status === WireInRequestStatus.PendingReview,\n },\n {\n name: 'dueInHours',\n badge: payroll => {\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) {\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours: 0 },\n }\n }\n\n const hours = Math.ceil(hoursDiff)\n\n return {\n variant: 'warning',\n translationKey: 'dueInHours',\n translationParams: { hours },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n if (hoursDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff < 24\n },\n },\n {\n name: 'dueInDays',\n badge: payroll => {\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (daysDiff === null) {\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days: 0 },\n }\n }\n\n const days = Math.ceil(daysDiff)\n\n return {\n variant: 'info',\n translationKey: 'dueInDays',\n translationParams: { days },\n }\n },\n condition: payroll => {\n if (!payroll.payrollDeadline || payroll.processed) return false\n\n if (\n payroll.processingRequest?.status &&\n ACTIVE_PROCESSING_STATUSES.includes(payroll.processingRequest.status)\n ) {\n return false\n }\n\n const hoursDiff = getHoursUntil(payroll.payrollDeadline)\n const daysDiff = getDaysUntil(payroll.payrollDeadline)\n if (hoursDiff === null || daysDiff === null) return false\n\n return hoursDiff > 0 && hoursDiff >= 24 && Math.ceil(daysDiff) <= 14\n },\n },\n {\n name: 'paid',\n badge: {\n variant: 'success',\n translationKey: 'complete',\n },\n condition: payroll => {\n if (!payroll.processed) return false\n\n const now = new Date()\n const checkDate = normalizeToDate(payroll.checkDate)\n\n return checkDate !== null && checkDate <= now\n },\n },\n {\n name: 'pending',\n badge: {\n variant: 'info',\n translationKey: 'pending',\n },\n condition: payroll => !!payroll.processed,\n },\n]\n"],"names":["ACTIVE_PROCESSING_STATUSES","PayrollProcessingRequestStatus","STATUS_CONFIG","payroll","daysDiff","getDaysUntil","hoursDiff","getHoursUntil","wireInRequest","WireInRequestStatus","now","checkDate","normalizeToDate"],"mappings":"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"}
@@ -15,8 +15,9 @@ import "dompurify";
15
15
  import "../../contexts/LocaleProvider/useLocale.js";
16
16
  import "../../shared/constants.js";
17
17
  import "../../contexts/ComponentAdapter/useComponentContext.js";
18
+ import "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
19
  import { retryAsync as x } from "../../helpers/retryAsync.js";
19
- const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1, Z = ({
20
+ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.category === "invalid_operation") : !1, $ = ({
20
21
  companyId: e,
21
22
  payrollId: r,
22
23
  employeeUuids: a,
@@ -32,7 +33,7 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
32
33
  enabled: !!o?.payPeriod?.payScheduleUuid
33
34
  }
34
35
  ), P = y(async () => {
35
- const i = await p({
36
+ const s = await p({
36
37
  request: {
37
38
  companyId: e,
38
39
  payrollId: r,
@@ -42,8 +43,8 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
42
43
  }
43
44
  }
44
45
  });
45
- f(i.payrollPrepared), i.payrollPrepared && (t.current = !0, l?.(i.payrollPrepared));
46
- }, [e, r, p, h, n, l]), s = y(async () => {
46
+ f(s.payrollPrepared), s.payrollPrepared && (t.current = !0, l?.(s.payrollPrepared));
47
+ }, [e, r, p, h, n, l]), i = y(async () => {
47
48
  await d(
48
49
  null,
49
50
  () => x(P, {
@@ -54,11 +55,11 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
54
55
  );
55
56
  }, [d, P]);
56
57
  b(() => {
57
- u.current || (u.current = !0, s());
58
- }, [s]);
58
+ u.current || (u.current = !0, i());
59
+ }, [i]);
59
60
  const g = c && !t.current, R = c && t.current, A = g || E;
60
61
  return {
61
- handlePreparePayroll: s,
62
+ handlePreparePayroll: i,
62
63
  preparedPayroll: o,
63
64
  paySchedule: S?.payScheduleShow,
64
65
  isLoading: A,
@@ -67,6 +68,6 @@ const q = 4, v = 1500, B = (e) => e instanceof T ? e.errors.some((r) => r.catego
67
68
  };
68
69
  };
69
70
  export {
70
- Z as usePreparedPayrollData
71
+ $ as usePreparedPayrollData
71
72
  };
72
73
  //# sourceMappingURL=usePreparedPayrollData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AACF,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMf,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMgB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAApB;AAAA,MACA,eAAeQ,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAL;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAAD;AAAA,QAAA;AAAA,MACF;AAAA,IACF,CACD;AACD,IAAAO,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BP,IAAcmB,EAAO,eAAe;AAAA,EAExC,GAAG,CAACvB,GAAWC,GAAWI,GAAgBW,GAAkBb,GAAQC,CAAW,CAAC,GAE1EoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa5B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACmB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
1
+ {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/payrollshow'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payscheduleshow'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [companyId, payrollId, preparePayroll, employeeUuidsKey, sortBy, onDataReady])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AACF,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMf,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMgB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAApB;AAAA,MACA,eAAeQ,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAL;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAAD;AAAA,QAAA;AAAA,MACF;AAAA,IACF,CACD;AACD,IAAAO,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BP,IAAcmB,EAAO,eAAe;AAAA,EAExC,GAAG,CAACvB,GAAWC,GAAWI,GAAgBW,GAAkBb,GAAQC,CAAW,CAAC,GAE1EoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa5B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACmB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
@@ -27,4 +27,4 @@ export interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff
27
27
  * @returns The rendered policy list.
28
28
  * @public
29
29
  */
30
- export declare function PolicyList({ FallbackComponent, ...props }: PolicyListProps): import("react").JSX.Element;
30
+ export declare function PolicyList({ FallbackComponent, LoaderComponent, ...props }: PolicyListProps): import("react").JSX.Element;
@@ -1,126 +1,127 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { useState as T } from "react";
3
- import { useTranslation as U } from "react-i18next";
4
- import { useQueryClient as v } from "@tanstack/react-query";
5
- import { useTimeOffPoliciesGetAllSuspense as R, invalidateAllTimeOffPoliciesGetAll as G } from "@gusto/embedded-api/react-query/timeOffPoliciesGetAll";
6
- import { useTimeOffPoliciesDeactivateMutation as Y } from "@gusto/embedded-api/react-query/timeOffPoliciesDeactivate";
7
- import { useEmployeesListSuspense as j } from "@gusto/embedded-api/react-query/employeesList";
8
- import { useHolidayPayPoliciesGet as x, invalidateAllHolidayPayPoliciesGet as N } from "@gusto/embedded-api/react-query/holidayPayPoliciesGet";
9
- import { useHolidayPayPoliciesDeleteMutation as Q } from "@gusto/embedded-api/react-query/holidayPayPoliciesDelete";
10
- import { UnprocessableEntityError as V } from "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
- import { PolicyListPresentation as W } from "./PolicyListPresentation.js";
12
- import { isListedTimeOffPolicyType as k } from "../TimeOffFlow/timeOffPolicyTypes.js";
13
- import { BaseBoundaries as K, BaseLayout as z } from "../../Base/Base.js";
2
+ import { useState as E } from "react";
3
+ import { useTranslation as v } from "react-i18next";
4
+ import { useQueryClient as R } from "@tanstack/react-query";
5
+ import { useTimeOffPoliciesGetAllSuspense as G, invalidateAllTimeOffPoliciesGetAll as Y } from "@gusto/embedded-api/react-query/timeOffPoliciesGetAll";
6
+ import { useTimeOffPoliciesDeactivateMutation as j } from "@gusto/embedded-api/react-query/timeOffPoliciesDeactivate";
7
+ import { useEmployeesListSuspense as x } from "@gusto/embedded-api/react-query/employeesList";
8
+ import { useHolidayPayPoliciesGet as N, invalidateAllHolidayPayPoliciesGet as Q } from "@gusto/embedded-api/react-query/holidayPayPoliciesGet";
9
+ import { useHolidayPayPoliciesDeleteMutation as V } from "@gusto/embedded-api/react-query/holidayPayPoliciesDelete";
10
+ import { UnprocessableEntityError as W } from "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
+ import { PolicyListPresentation as k } from "./PolicyListPresentation.js";
12
+ import { isListedTimeOffPolicyType as K } from "../TimeOffFlow/timeOffPolicyTypes.js";
13
+ import { BaseBoundaries as z, BaseLayout as J } from "../../Base/Base.js";
14
14
  import "../../Base/useBase.js";
15
- import { useBaseSubmit as J } from "../../Base/useBaseSubmit.js";
16
- import { SDKInternalError as E } from "../../../types/sdkError.js";
17
- import { composeErrorHandler as X } from "../../../partner-hook-utils/composeErrorHandler.js";
15
+ import { useBaseSubmit as X } from "../../Base/useBaseSubmit.js";
16
+ import { SDKInternalError as O } from "../../../types/sdkError.js";
17
+ import { composeErrorHandler as Z } from "../../../partner-hook-utils/composeErrorHandler.js";
18
18
  import { componentEvents as a } from "../../../shared/constants.js";
19
- import { useI18n as Z } from "../../../i18n/I18n.js";
20
- function Oe({ FallbackComponent: o, ...t }) {
19
+ import { useI18n as $ } from "../../../i18n/I18n.js";
20
+ function De({ FallbackComponent: t, LoaderComponent: o, ...m }) {
21
21
  return /* @__PURE__ */ n(
22
- K,
22
+ z,
23
23
  {
24
24
  componentName: "Company.TimeOff.TimeOffPolicies",
25
- FallbackComponent: o,
26
- children: /* @__PURE__ */ n($, { ...t })
25
+ FallbackComponent: t,
26
+ LoaderComponent: o,
27
+ children: /* @__PURE__ */ n(ee, { LoaderComponent: o, ...m })
27
28
  }
28
29
  );
29
30
  }
30
- function $({ companyId: o, onEvent: t }) {
31
- Z("Company.TimeOff.TimeOffPolicies");
32
- const { t: i } = U("Company.TimeOff.TimeOffPolicies"), u = v(), {
33
- baseSubmitHandler: O,
34
- error: D,
35
- setError: g
36
- } = J("Company.TimeOff.TimeOffPolicies"), [C, m] = T(null), [I, y] = T(null), { data: _ } = R({
37
- companyUuid: o
38
- }), w = (_.timeOffPolicies ?? []).filter(
39
- (e) => e.isActive && k(e.policyType)
40
- ), p = x(
41
- { companyUuid: o },
31
+ function ee({ companyId: t, onEvent: o, LoaderComponent: m }) {
32
+ $("Company.TimeOff.TimeOffPolicies");
33
+ const { t: i } = v("Company.TimeOff.TimeOffPolicies"), y = R(), {
34
+ baseSubmitHandler: D,
35
+ error: g,
36
+ setError: C
37
+ } = X("Company.TimeOff.TimeOffPolicies"), [I, c] = E(null), [_, p] = E(null), { data: w } = G({
38
+ companyUuid: t
39
+ }), A = (w.timeOffPolicies ?? []).filter(
40
+ (e) => e.isActive && K(e.policyType)
41
+ ), f = N(
42
+ { companyUuid: t },
42
43
  {
43
44
  throwOnError: () => !1
44
45
  }
45
- ), c = p.data?.holidayPayPolicy, { data: L } = j({
46
- companyId: o,
46
+ ), u = f.data?.holidayPayPolicy, { data: L } = x({
47
+ companyId: t,
47
48
  terminated: !1
48
- }), A = L.showEmployees?.length ?? 0, f = Y(), d = Q(), F = X([p], { submitError: D, setSubmitError: g }), S = f.isPending || d.isPending, P = (e) => e > 0 && e === A ? i("allEmployeesLabel") : e > 0 ? i("employeeCount", { count: e }) : i("enrolledDash"), h = w.map((e) => ({
49
+ }), F = L.showEmployees?.length ?? 0, d = j(), P = V(), S = Z([f], { submitError: g, setSubmitError: C }), H = d.isPending || P.isPending, h = (e) => e > 0 && e === F ? i("allEmployeesLabel") : e > 0 ? i("employeeCount", { count: e }) : i("enrolledDash"), T = A.map((e) => ({
49
50
  uuid: e.uuid,
50
51
  name: e.name,
51
52
  policyType: e.policyType,
52
53
  isComplete: e.complete ?? !1,
53
- enrolledDisplay: P(e.employees.length)
54
+ enrolledDisplay: h(e.employees.length)
54
55
  })).sort((e, s) => e.name.localeCompare(s.name));
55
- c && h.push({
56
- uuid: c.companyUuid,
56
+ u && T.push({
57
+ uuid: u.companyUuid,
57
58
  name: i("holidayPayPolicy"),
58
59
  policyType: "holiday",
59
60
  isComplete: !0,
60
- enrolledDisplay: P(c.employees.length),
61
+ enrolledDisplay: h(u.employees.length),
61
62
  isHoliday: !0
62
63
  });
63
- const H = () => {
64
- t(a.TIME_OFF_CREATE_POLICY);
65
- }, M = (e) => {
66
- t(a.TIME_OFF_VIEW_POLICY, {
64
+ const M = () => {
65
+ o(a.TIME_OFF_CREATE_POLICY);
66
+ }, b = (e) => {
67
+ o(a.TIME_OFF_VIEW_POLICY, {
67
68
  policyId: e.uuid,
68
69
  policyType: e.policyType
69
70
  });
70
- }, b = (e) => {
71
- t(a.TIME_OFF_VIEW_POLICY, {
71
+ }, q = (e) => {
72
+ o(a.TIME_OFF_VIEW_POLICY, {
72
73
  policyId: e.uuid,
73
74
  policyType: e.policyType
74
75
  });
75
- }, q = async (e) => {
76
+ }, B = async (e) => {
76
77
  let s = !1;
77
- return y(e.uuid), await O({}, async () => {
78
+ return p(e.uuid), await D({}, async () => {
78
79
  if (e.isHoliday)
79
- await d.mutateAsync({
80
- request: { companyUuid: o }
81
- }), await N(u), m(i("flash.holidayDeleted"));
80
+ await P.mutateAsync({
81
+ request: { companyUuid: t }
82
+ }), await Q(y), c(i("flash.holidayDeleted"));
82
83
  else {
83
84
  try {
84
- await f.mutateAsync({
85
+ await d.mutateAsync({
85
86
  request: { timeOffPolicyUuid: e.uuid }
86
87
  });
87
88
  } catch (r) {
88
- if (r instanceof V) {
89
+ if (r instanceof W) {
89
90
  if (r.errors.some(
90
91
  (l) => l.message?.toLowerCase().includes("pending") || l.message?.toLowerCase().includes("approved")
91
92
  ))
92
- throw new E(
93
+ throw new O(
93
94
  i("errors.pendingRequestsBlockDeletion", { name: e.name }),
94
95
  "api_error"
95
96
  );
96
- const B = r.errors.map((l) => l.message).filter(Boolean);
97
- throw new E(B.join(". ") || i("errors.deleteFailed"), "api_error");
97
+ const U = r.errors.map((l) => l.message).filter(Boolean);
98
+ throw new O(U.join(". ") || i("errors.deleteFailed"), "api_error");
98
99
  }
99
100
  throw r;
100
101
  }
101
- await G(u), m(i("flash.policyDeleted", { name: e.name }));
102
+ await Y(y), c(i("flash.policyDeleted", { name: e.name }));
102
103
  }
103
- t(a.TIME_OFF_DELETE_POLICY_DONE, { policyId: e.uuid }), s = !0;
104
- }), y(null), s;
104
+ o(a.TIME_OFF_DELETE_POLICY_DONE, { policyId: e.uuid }), s = !0;
105
+ }), p(null), s;
105
106
  };
106
- return /* @__PURE__ */ n(z, { error: F.errors, children: /* @__PURE__ */ n(
107
- W,
107
+ return /* @__PURE__ */ n(J, { error: S.errors, LoaderComponent: m, children: /* @__PURE__ */ n(
108
+ k,
108
109
  {
109
- policies: h,
110
- onCreatePolicy: H,
111
- onEditPolicy: M,
112
- onFinishSetup: b,
113
- onDeletePolicy: q,
114
- deleteSuccessAlert: C,
110
+ policies: T,
111
+ onCreatePolicy: M,
112
+ onEditPolicy: b,
113
+ onFinishSetup: q,
114
+ onDeletePolicy: B,
115
+ deleteSuccessAlert: I,
115
116
  onDismissDeleteAlert: () => {
116
- m(null);
117
+ c(null);
117
118
  },
118
- isDeletingPolicyId: I,
119
- isPending: S
119
+ isDeletingPolicyId: _,
120
+ isPending: H
120
121
  }
121
122
  ) });
122
123
  }
123
124
  export {
124
- Oe as PolicyList
125
+ De as PolicyList
125
126
  };
126
127
  //# sourceMappingURL=PolicyList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyList.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useTimeOffPoliciesGetAllSuspense,\n invalidateAllTimeOffPoliciesGetAll,\n} from '@gusto/embedded-api/react-query/timeOffPoliciesGetAll'\nimport { useTimeOffPoliciesDeactivateMutation } from '@gusto/embedded-api/react-query/timeOffPoliciesDeactivate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport {\n useHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesDeleteMutation } from '@gusto/embedded-api/react-query/holidayPayPoliciesDelete'\nimport type { TimeOffPolicy } from '@gusto/embedded-api/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { PolicyListPresentation } from './PolicyListPresentation'\nimport type { PolicyListItem } from './PolicyListTypes'\nimport { isListedTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\n/**\n * Props for the {@link PolicyList} component.\n *\n * @public\n */\nexport interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff.TimeOffPolicies'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays all active time off policies (sick, vacation, and holiday) for a company.\n *\n * Each row shows the policy name and the enrolled-employee count. Incomplete policies surface a\n * finish-setup action. Sick and vacation policies are deactivated via the time-off policies API;\n * the holiday pay policy (if one exists) is merged into the same list and is deleted via the\n * holiday pay policy API. Both flows go through a confirmation dialog and show a success alert.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/createPolicy` | The user clicked the create-policy action. | — |\n * | `timeOff/viewPolicy` | The user opened an existing policy or clicked finish-setup on an incomplete one. | `{ policyId: string, policyType: string }` |\n * | `timeOff/deletePolicy/done` | A policy was successfully deleted. | `{ policyId: string }` |\n *\n * @param props - {@link PolicyListProps}\n * @returns The rendered policy list.\n * @public\n */\nexport function PolicyList({ FallbackComponent, ...props }: PolicyListProps) {\n return (\n <BaseBoundaries\n componentName=\"Company.TimeOff.TimeOffPolicies\"\n FallbackComponent={FallbackComponent}\n >\n <Root {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction Root({ companyId, onEvent }: PolicyListProps) {\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n const queryClient = useQueryClient()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Company.TimeOff.TimeOffPolicies')\n\n const [deleteSuccessAlert, setDeleteSuccessAlert] = useState<string | null>(null)\n const [isDeletingPolicyId, setIsDeletingPolicyId] = useState<string | null>(null)\n\n const { data: policiesData } = useTimeOffPoliciesGetAllSuspense({\n companyUuid: companyId,\n })\n const timeOffPolicies = (policiesData.timeOffPolicies ?? []).filter(\n policy => policy.isActive && isListedTimeOffPolicyType(policy.policyType),\n )\n\n // Holiday pay policy is auxiliary to the main time-off list; never crash the\n // boundary on its failure. composeErrorHandler below surfaces the error as\n // an inline alert via BaseLayout when it isn't an expected 204/404.\n const holidayQuery = useHolidayPayPoliciesGet(\n { companyUuid: companyId },\n {\n throwOnError: () => false,\n },\n )\n const holidayPayPolicy = holidayQuery.data?.holidayPayPolicy\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n const totalActiveEmployees = employeesData.showEmployees?.length ?? 0\n\n const deactivatePolicyMutation = useTimeOffPoliciesDeactivateMutation()\n const deleteHolidayMutation = useHolidayPayPoliciesDeleteMutation()\n\n const errorHandling = composeErrorHandler([holidayQuery], { submitError, setSubmitError })\n const isPending = deactivatePolicyMutation.isPending || deleteHolidayMutation.isPending\n\n const getEnrolledDisplay = (enrolledCount: number) => {\n if (enrolledCount > 0 && enrolledCount === totalActiveEmployees) {\n return t('allEmployeesLabel')\n } else if (enrolledCount > 0) {\n return t('employeeCount', { count: enrolledCount })\n }\n return t('enrolledDash')\n }\n\n const policies: PolicyListItem[] = timeOffPolicies\n .map((policy: TimeOffPolicy) => ({\n uuid: policy.uuid,\n name: policy.name,\n policyType: policy.policyType,\n isComplete: policy.complete ?? false,\n enrolledDisplay: getEnrolledDisplay(policy.employees.length),\n }))\n .sort((a, b) => a.name.localeCompare(b.name))\n\n if (holidayPayPolicy) {\n policies.push({\n uuid: holidayPayPolicy.companyUuid,\n name: t('holidayPayPolicy'),\n policyType: 'holiday',\n isComplete: true,\n enrolledDisplay: getEnrolledDisplay(holidayPayPolicy.employees.length),\n isHoliday: true,\n })\n }\n\n const handleCreatePolicy = () => {\n onEvent(componentEvents.TIME_OFF_CREATE_POLICY)\n }\n\n const handleEditPolicy = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleFinishSetup = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleDeletePolicy = async (policy: PolicyListItem): Promise<boolean> => {\n let success = false\n setIsDeletingPolicyId(policy.uuid)\n await baseSubmitHandler({}, async () => {\n if (policy.isHoliday) {\n await deleteHolidayMutation.mutateAsync({\n request: { companyUuid: companyId },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setDeleteSuccessAlert(t('flash.holidayDeleted'))\n } else {\n try {\n await deactivatePolicyMutation.mutateAsync({\n request: { timeOffPolicyUuid: policy.uuid },\n })\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n const hasPendingRequests = err.errors.some(\n e =>\n e.message?.toLowerCase().includes('pending') ||\n e.message?.toLowerCase().includes('approved'),\n )\n if (hasPendingRequests) {\n throw new SDKInternalError(\n t('errors.pendingRequestsBlockDeletion', { name: policy.name }),\n 'api_error',\n )\n }\n const messages = err.errors.map(e => e.message).filter(Boolean)\n throw new SDKInternalError(messages.join('. ') || t('errors.deleteFailed'), 'api_error')\n }\n throw err\n }\n await invalidateAllTimeOffPoliciesGetAll(queryClient)\n setDeleteSuccessAlert(t('flash.policyDeleted', { name: policy.name }))\n }\n onEvent(componentEvents.TIME_OFF_DELETE_POLICY_DONE, { policyId: policy.uuid })\n success = true\n })\n setIsDeletingPolicyId(null)\n return success\n }\n\n return (\n <BaseLayout error={errorHandling.errors}>\n <PolicyListPresentation\n policies={policies}\n onCreatePolicy={handleCreatePolicy}\n onEditPolicy={handleEditPolicy}\n onFinishSetup={handleFinishSetup}\n onDeletePolicy={handleDeletePolicy}\n deleteSuccessAlert={deleteSuccessAlert}\n onDismissDeleteAlert={() => {\n setDeleteSuccessAlert(null)\n }}\n isDeletingPolicyId={isDeletingPolicyId}\n isPending={isPending}\n />\n </BaseLayout>\n )\n}\n"],"names":["PolicyList","FallbackComponent","props","jsx","BaseBoundaries","Root","companyId","onEvent","useI18n","t","useTranslation","queryClient","useQueryClient","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","deleteSuccessAlert","setDeleteSuccessAlert","useState","isDeletingPolicyId","setIsDeletingPolicyId","policiesData","useTimeOffPoliciesGetAllSuspense","timeOffPolicies","policy","isListedTimeOffPolicyType","holidayQuery","useHolidayPayPoliciesGet","holidayPayPolicy","employeesData","useEmployeesListSuspense","totalActiveEmployees","deactivatePolicyMutation","useTimeOffPoliciesDeactivateMutation","deleteHolidayMutation","useHolidayPayPoliciesDeleteMutation","errorHandling","composeErrorHandler","isPending","getEnrolledDisplay","enrolledCount","policies","a","b","handleCreatePolicy","componentEvents","handleEditPolicy","handleFinishSetup","handleDeletePolicy","success","invalidateAllHolidayPayPoliciesGet","err","UnprocessableEntityError","e","SDKInternalError","messages","invalidateAllTimeOffPoliciesGetAll","BaseLayout","PolicyListPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"PolicyList.js","sources":["../../../../src/components/TimeOff/PolicyList/PolicyList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport {\n useTimeOffPoliciesGetAllSuspense,\n invalidateAllTimeOffPoliciesGetAll,\n} from '@gusto/embedded-api/react-query/timeOffPoliciesGetAll'\nimport { useTimeOffPoliciesDeactivateMutation } from '@gusto/embedded-api/react-query/timeOffPoliciesDeactivate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport {\n useHolidayPayPoliciesGet,\n invalidateAllHolidayPayPoliciesGet,\n} from '@gusto/embedded-api/react-query/holidayPayPoliciesGet'\nimport { useHolidayPayPoliciesDeleteMutation } from '@gusto/embedded-api/react-query/holidayPayPoliciesDelete'\nimport type { TimeOffPolicy } from '@gusto/embedded-api/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { PolicyListPresentation } from './PolicyListPresentation'\nimport type { PolicyListItem } from './PolicyListTypes'\nimport { isListedTimeOffPolicyType } from '@/components/TimeOff/TimeOffFlow/timeOffPolicyTypes'\nimport { BaseBoundaries, BaseLayout, type BaseComponentInterface } from '@/components/Base'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\n/**\n * Props for the {@link PolicyList} component.\n *\n * @public\n */\nexport interface PolicyListProps extends BaseComponentInterface<'Company.TimeOff.TimeOffPolicies'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays all active time off policies (sick, vacation, and holiday) for a company.\n *\n * Each row shows the policy name and the enrolled-employee count. Incomplete policies surface a\n * finish-setup action. Sick and vacation policies are deactivated via the time-off policies API;\n * the holiday pay policy (if one exists) is merged into the same list and is deleted via the\n * holiday pay policy API. Both flows go through a confirmation dialog and show a success alert.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/createPolicy` | The user clicked the create-policy action. | — |\n * | `timeOff/viewPolicy` | The user opened an existing policy or clicked finish-setup on an incomplete one. | `{ policyId: string, policyType: string }` |\n * | `timeOff/deletePolicy/done` | A policy was successfully deleted. | `{ policyId: string }` |\n *\n * @param props - {@link PolicyListProps}\n * @returns The rendered policy list.\n * @public\n */\nexport function PolicyList({ FallbackComponent, LoaderComponent, ...props }: PolicyListProps) {\n return (\n <BaseBoundaries\n componentName=\"Company.TimeOff.TimeOffPolicies\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <Root LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction Root({ companyId, onEvent, LoaderComponent }: PolicyListProps) {\n useI18n('Company.TimeOff.TimeOffPolicies')\n const { t } = useTranslation('Company.TimeOff.TimeOffPolicies')\n const queryClient = useQueryClient()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Company.TimeOff.TimeOffPolicies')\n\n const [deleteSuccessAlert, setDeleteSuccessAlert] = useState<string | null>(null)\n const [isDeletingPolicyId, setIsDeletingPolicyId] = useState<string | null>(null)\n\n const { data: policiesData } = useTimeOffPoliciesGetAllSuspense({\n companyUuid: companyId,\n })\n const timeOffPolicies = (policiesData.timeOffPolicies ?? []).filter(\n policy => policy.isActive && isListedTimeOffPolicyType(policy.policyType),\n )\n\n // Holiday pay policy is auxiliary to the main time-off list; never crash the\n // boundary on its failure. composeErrorHandler below surfaces the error as\n // an inline alert via BaseLayout when it isn't an expected 204/404.\n const holidayQuery = useHolidayPayPoliciesGet(\n { companyUuid: companyId },\n {\n throwOnError: () => false,\n },\n )\n const holidayPayPolicy = holidayQuery.data?.holidayPayPolicy\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n terminated: false,\n })\n const totalActiveEmployees = employeesData.showEmployees?.length ?? 0\n\n const deactivatePolicyMutation = useTimeOffPoliciesDeactivateMutation()\n const deleteHolidayMutation = useHolidayPayPoliciesDeleteMutation()\n\n const errorHandling = composeErrorHandler([holidayQuery], { submitError, setSubmitError })\n const isPending = deactivatePolicyMutation.isPending || deleteHolidayMutation.isPending\n\n const getEnrolledDisplay = (enrolledCount: number) => {\n if (enrolledCount > 0 && enrolledCount === totalActiveEmployees) {\n return t('allEmployeesLabel')\n } else if (enrolledCount > 0) {\n return t('employeeCount', { count: enrolledCount })\n }\n return t('enrolledDash')\n }\n\n const policies: PolicyListItem[] = timeOffPolicies\n .map((policy: TimeOffPolicy) => ({\n uuid: policy.uuid,\n name: policy.name,\n policyType: policy.policyType,\n isComplete: policy.complete ?? false,\n enrolledDisplay: getEnrolledDisplay(policy.employees.length),\n }))\n .sort((a, b) => a.name.localeCompare(b.name))\n\n if (holidayPayPolicy) {\n policies.push({\n uuid: holidayPayPolicy.companyUuid,\n name: t('holidayPayPolicy'),\n policyType: 'holiday',\n isComplete: true,\n enrolledDisplay: getEnrolledDisplay(holidayPayPolicy.employees.length),\n isHoliday: true,\n })\n }\n\n const handleCreatePolicy = () => {\n onEvent(componentEvents.TIME_OFF_CREATE_POLICY)\n }\n\n const handleEditPolicy = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleFinishSetup = (policy: PolicyListItem) => {\n onEvent(componentEvents.TIME_OFF_VIEW_POLICY, {\n policyId: policy.uuid,\n policyType: policy.policyType,\n })\n }\n\n const handleDeletePolicy = async (policy: PolicyListItem): Promise<boolean> => {\n let success = false\n setIsDeletingPolicyId(policy.uuid)\n await baseSubmitHandler({}, async () => {\n if (policy.isHoliday) {\n await deleteHolidayMutation.mutateAsync({\n request: { companyUuid: companyId },\n })\n await invalidateAllHolidayPayPoliciesGet(queryClient)\n setDeleteSuccessAlert(t('flash.holidayDeleted'))\n } else {\n try {\n await deactivatePolicyMutation.mutateAsync({\n request: { timeOffPolicyUuid: policy.uuid },\n })\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n const hasPendingRequests = err.errors.some(\n e =>\n e.message?.toLowerCase().includes('pending') ||\n e.message?.toLowerCase().includes('approved'),\n )\n if (hasPendingRequests) {\n throw new SDKInternalError(\n t('errors.pendingRequestsBlockDeletion', { name: policy.name }),\n 'api_error',\n )\n }\n const messages = err.errors.map(e => e.message).filter(Boolean)\n throw new SDKInternalError(messages.join('. ') || t('errors.deleteFailed'), 'api_error')\n }\n throw err\n }\n await invalidateAllTimeOffPoliciesGetAll(queryClient)\n setDeleteSuccessAlert(t('flash.policyDeleted', { name: policy.name }))\n }\n onEvent(componentEvents.TIME_OFF_DELETE_POLICY_DONE, { policyId: policy.uuid })\n success = true\n })\n setIsDeletingPolicyId(null)\n return success\n }\n\n return (\n <BaseLayout error={errorHandling.errors} LoaderComponent={LoaderComponent}>\n <PolicyListPresentation\n policies={policies}\n onCreatePolicy={handleCreatePolicy}\n onEditPolicy={handleEditPolicy}\n onFinishSetup={handleFinishSetup}\n onDeletePolicy={handleDeletePolicy}\n deleteSuccessAlert={deleteSuccessAlert}\n onDismissDeleteAlert={() => {\n setDeleteSuccessAlert(null)\n }}\n isDeletingPolicyId={isDeletingPolicyId}\n isPending={isPending}\n />\n </BaseLayout>\n )\n}\n"],"names":["PolicyList","FallbackComponent","LoaderComponent","props","jsx","BaseBoundaries","Root","companyId","onEvent","useI18n","t","useTranslation","queryClient","useQueryClient","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","deleteSuccessAlert","setDeleteSuccessAlert","useState","isDeletingPolicyId","setIsDeletingPolicyId","policiesData","useTimeOffPoliciesGetAllSuspense","timeOffPolicies","policy","isListedTimeOffPolicyType","holidayQuery","useHolidayPayPoliciesGet","holidayPayPolicy","employeesData","useEmployeesListSuspense","totalActiveEmployees","deactivatePolicyMutation","useTimeOffPoliciesDeactivateMutation","deleteHolidayMutation","useHolidayPayPoliciesDeleteMutation","errorHandling","composeErrorHandler","isPending","getEnrolledDisplay","enrolledCount","policies","a","b","handleCreatePolicy","componentEvents","handleEditPolicy","handleFinishSetup","handleDeletePolicy","success","invalidateAllHolidayPayPoliciesGet","err","UnprocessableEntityError","e","SDKInternalError","messages","invalidateAllTimeOffPoliciesGetAll","BaseLayout","PolicyListPresentation"],"mappings":"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"}