@gusto/embedded-react-sdk 0.56.0 → 0.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  3. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  4. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  5. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
  6. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  7. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
  8. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  9. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
  10. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  11. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
  12. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  13. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  14. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  15. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
  16. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  17. package/dist/components/Company/Industry/Context.js +6 -9
  18. package/dist/components/Company/Industry/Context.js.map +1 -1
  19. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
  20. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  21. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
  22. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  23. package/dist/components/Company/OnboardingOverview/context.js +3 -6
  24. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  25. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
  26. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  27. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
  28. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  29. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
  30. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  31. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  32. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  33. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  34. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  35. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  36. package/dist/components/Flow/Flow.js +1 -1
  37. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +6 -7
  38. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  39. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  40. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js +24 -18
  41. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  42. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js +39 -21
  43. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  44. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +85 -82
  45. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  46. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +52 -51
  47. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  48. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +12 -12
  49. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  50. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +40 -40
  51. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  52. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +26 -25
  53. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  54. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +71 -61
  55. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  56. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +13 -16
  57. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  58. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
  59. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  60. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +138 -110
  61. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  62. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +149 -146
  63. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  64. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  65. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +4 -0
  66. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  67. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  68. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +22 -35
  69. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  70. package/dist/components/Payroll/Transition/TransitionFlow.js +49 -36
  71. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  72. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +24 -47
  73. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  74. package/dist/components/Payroll/Transition/transitionStateMachine.js +35 -40
  75. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  76. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +48 -0
  77. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +1 -0
  78. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +35 -0
  79. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +1 -0
  80. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +23 -0
  81. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +1 -0
  82. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +32 -0
  83. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -0
  84. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +48 -47
  85. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  86. package/dist/components/Payroll/index.js +7 -5
  87. package/dist/components/Payroll/index.js.map +1 -1
  88. package/dist/components/Payroll/usePreparedPayrollData.js +12 -15
  89. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  90. package/dist/i18n/I18n.js +9 -4
  91. package/dist/i18n/I18n.js.map +1 -1
  92. package/dist/i18n/en/Payroll.PayrollBlocker.json.js +10 -8
  93. package/dist/i18n/en/Payroll.PayrollBlocker.json.js.map +1 -1
  94. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js +52 -50
  95. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -1
  96. package/dist/i18n/es_US/Company.StateTaxes.json.js +1 -1
  97. package/dist/i18n/es_US/Contractor.ContractorList.json.js +14 -12
  98. package/dist/i18n/es_US/Contractor.ContractorList.json.js.map +1 -1
  99. package/dist/i18n/es_US/Contractor.Management.Compensation.json.js +4 -4
  100. package/dist/i18n/es_US/Contractor.Management.Profile.json.js +4 -4
  101. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js +40 -38
  102. package/dist/i18n/es_US/Contractor.ManagementContractorList.json.js.map +1 -1
  103. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js +18 -16
  104. package/dist/i18n/es_US/Contractor.Payments.PaymentsList.json.js.map +1 -1
  105. package/dist/i18n/es_US/Contractor.Profile.json.js +5 -5
  106. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js +11 -9
  107. package/dist/i18n/es_US/Payroll.OffCycleCreation.json.js.map +1 -1
  108. package/dist/i18n/es_US/Payroll.OffCyclePayPeriodDateForm.json.js +2 -2
  109. package/dist/i18n/es_US/Payroll.OffCycleTaxWithholding.json.js +6 -6
  110. package/dist/i18n/es_US/Payroll.PayrollConfiguration.json.js +15 -15
  111. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js +28 -26
  112. package/dist/i18n/es_US/Payroll.PayrollEditEmployee.json.js.map +1 -1
  113. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js +40 -38
  114. package/dist/i18n/es_US/Payroll.PayrollOverview.json.js.map +1 -1
  115. package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js +14 -0
  116. package/dist/i18n/es_US/Payroll.PrintChecksBanner.json.js.map +1 -0
  117. package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js +12 -0
  118. package/dist/i18n/es_US/Payroll.PrintChecksFailure.json.js.map +1 -0
  119. package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js +26 -0
  120. package/dist/i18n/es_US/Payroll.PrintChecksForm.json.js.map +1 -0
  121. package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js +14 -0
  122. package/dist/i18n/es_US/Payroll.PrintChecksSummary.json.js.map +1 -0
  123. package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js +78 -0
  124. package/dist/i18n/es_US/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -0
  125. package/dist/i18n/es_US/common.json.js +1 -1
  126. package/dist/package.json.js +1 -1
  127. package/dist/shared/constants.js +21 -20
  128. package/dist/shared/constants.js.map +1 -1
  129. package/dist/src/components/Common/ActionsLayout/ActionsLayout.d.ts +1 -1
  130. package/dist/src/components/Common/Alert/Alert.d.ts +1 -1
  131. package/dist/src/components/Common/DataView/DataCards/DataCards.d.ts +1 -1
  132. package/dist/src/components/Common/DataView/DataTable/DataTable.d.ts +1 -1
  133. package/dist/src/components/Common/DataView/DataView.d.ts +1 -1
  134. package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -1
  135. package/dist/src/components/Common/DetailViewLayout/DetailViewLayout.d.ts +1 -1
  136. package/dist/src/components/Common/DocumentList/DocumentList.d.ts +1 -1
  137. package/dist/src/components/Common/DocumentViewer/DocumentViewer.d.ts +1 -1
  138. package/dist/src/components/Common/EmptyData/EmptyData.d.ts +1 -1
  139. package/dist/src/components/Common/FieldCaption/FieldCaption.d.ts +1 -1
  140. package/dist/src/components/Common/FieldErrorMessage/FieldErrorMessage.d.ts +1 -1
  141. package/dist/src/components/Common/Fields/CheckboxGroupField/CheckboxGroupField.d.ts +1 -1
  142. package/dist/src/components/Common/Fields/ComboBoxField/ComboBoxField.d.ts +1 -1
  143. package/dist/src/components/Common/Fields/PercentageField/PercentageField.d.ts +1 -1
  144. package/dist/src/components/Common/Fields/RadioGroupField/RadioGroupField.d.ts +1 -1
  145. package/dist/src/components/Common/Fields/SelectField/SelectField.d.ts +1 -1
  146. package/dist/src/components/Common/Fields/hooks/FieldElementRegistryProvider.d.ts +1 -1
  147. package/dist/src/components/Common/Flex/Flex.d.ts +2 -2
  148. package/dist/src/components/Common/FlowBreadcrumbs/FlowBreadcrumbs.d.ts +1 -1
  149. package/dist/src/components/Common/Form/Form.d.ts +1 -1
  150. package/dist/src/components/Common/Grid/Grid.d.ts +1 -1
  151. package/dist/src/components/Common/HamburgerMenu/HamburgerMenu.d.ts +1 -1
  152. package/dist/src/components/Common/InlineSpinner/InlineSpinner.d.ts +1 -1
  153. package/dist/src/components/Common/InternalError/InternalError.d.ts +1 -1
  154. package/dist/src/components/Common/Loading/Loading.d.ts +1 -1
  155. package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +3 -3
  156. package/dist/src/components/Common/PaginationControl/PaginationControl.d.ts +1 -1
  157. package/dist/src/components/Common/PayrollLoading/PayrollLoading.d.ts +1 -1
  158. package/dist/src/components/Common/ReorderableList/ReorderableList.d.ts +1 -1
  159. package/dist/src/components/Common/RequirementsList/RequirementsList.d.ts +1 -1
  160. package/dist/src/components/Common/TaxInputs/TaxInputs.d.ts +7 -7
  161. package/dist/src/components/Common/Toast/Toast.d.ts +1 -1
  162. package/dist/src/components/Common/UI/Alert/Alert.d.ts +1 -1
  163. package/dist/src/components/Common/UI/Box/Box.d.ts +1 -1
  164. package/dist/src/components/Common/UI/BoxHeader/BoxHeader.d.ts +1 -1
  165. package/dist/src/components/Common/UI/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  166. package/dist/src/components/Common/UI/Button/Button.d.ts +1 -1
  167. package/dist/src/components/Common/UI/Button/ButtonIcon.d.ts +1 -1
  168. package/dist/src/components/Common/UI/CalendarPreview/CalendarLegend.d.ts +1 -1
  169. package/dist/src/components/Common/UI/CalendarPreview/CalendarPreview.d.ts +1 -1
  170. package/dist/src/components/Common/UI/Card/Card.d.ts +1 -1
  171. package/dist/src/components/Common/UI/Checkbox/Checkbox.d.ts +1 -1
  172. package/dist/src/components/Common/UI/ComboBox/ComboBox.d.ts +1 -1
  173. package/dist/src/components/Common/UI/DatePicker/DatePicker.d.ts +1 -1
  174. package/dist/src/components/Common/UI/DateRangePicker/DateRangePicker.d.ts +1 -1
  175. package/dist/src/components/Common/UI/DescriptionList/DescriptionList.d.ts +1 -1
  176. package/dist/src/components/Common/UI/Dialog/Dialog.d.ts +1 -1
  177. package/dist/src/components/Common/UI/FileInput/FileInput.d.ts +1 -1
  178. package/dist/src/components/Common/UI/FormBox/FormBox.d.ts +1 -1
  179. package/dist/src/components/Common/UI/FormBoxHeader/FormBoxHeader.d.ts +1 -1
  180. package/dist/src/components/Common/UI/Heading/Heading.d.ts +1 -1
  181. package/dist/src/components/Common/UI/Input/Input.d.ts +1 -1
  182. package/dist/src/components/Common/UI/Link/Link.d.ts +1 -1
  183. package/dist/src/components/Common/UI/List/OrderedList.d.ts +1 -1
  184. package/dist/src/components/Common/UI/List/UnorderedList.d.ts +1 -1
  185. package/dist/src/components/Common/UI/Menu/Menu.d.ts +1 -1
  186. package/dist/src/components/Common/UI/Modal/Modal.d.ts +1 -1
  187. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +1 -1
  188. package/dist/src/components/Common/UI/NumberInput/NumberInput.d.ts +1 -1
  189. package/dist/src/components/Common/UI/ProgressBar/ProgressBar.d.ts +1 -1
  190. package/dist/src/components/Common/UI/Radio/Radio.d.ts +1 -1
  191. package/dist/src/components/Common/UI/Select/Select.d.ts +1 -1
  192. package/dist/src/components/Common/UI/Switch/Switch.d.ts +1 -1
  193. package/dist/src/components/Common/UI/Table/Table.d.ts +1 -1
  194. package/dist/src/components/Common/UI/Tabs/Tabs.d.ts +1 -1
  195. package/dist/src/components/Common/UI/Text/Text.d.ts +1 -1
  196. package/dist/src/components/Common/UI/TextArea/TextArea.d.ts +1 -1
  197. package/dist/src/components/Common/UI/TextInput/TextInput.d.ts +1 -1
  198. package/dist/src/components/Company/AssignSignatory/AssignSignatory.d.ts +1 -1
  199. package/dist/src/components/Company/AssignSignatory/AssignSignatorySelection.d.ts +1 -1
  200. package/dist/src/components/Company/AssignSignatory/CreateSignatory/Actions.d.ts +1 -1
  201. package/dist/src/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.d.ts +1 -1
  202. package/dist/src/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +1 -1
  203. package/dist/src/components/Company/AssignSignatory/Head.d.ts +1 -1
  204. package/dist/src/components/Company/AssignSignatory/InviteSignatory/Actions.d.ts +1 -1
  205. package/dist/src/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.d.ts +1 -1
  206. package/dist/src/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +1 -1
  207. package/dist/src/components/Company/AssignSignatory/SignatoryForm.d.ts +1 -1
  208. package/dist/src/components/Company/AssignSignatory/TitleSelect.d.ts +1 -1
  209. package/dist/src/components/Company/BankAccount/BankAccount.d.ts +1 -1
  210. package/dist/src/components/Company/BankAccount/BankAccountComponents.d.ts +3 -3
  211. package/dist/src/components/Company/BankAccount/BankAccountForm/Actions.d.ts +1 -1
  212. package/dist/src/components/Company/BankAccount/BankAccountForm/BankAccountForm.d.ts +1 -1
  213. package/dist/src/components/Company/BankAccount/BankAccountForm/Form.d.ts +1 -1
  214. package/dist/src/components/Company/BankAccount/BankAccountForm/Head.d.ts +1 -1
  215. package/dist/src/components/Company/BankAccount/BankAccountList/AccountView.d.ts +1 -1
  216. package/dist/src/components/Company/BankAccount/BankAccountList/Actions.d.ts +1 -1
  217. package/dist/src/components/Company/BankAccount/BankAccountList/BankAccountList.d.ts +1 -1
  218. package/dist/src/components/Company/BankAccount/BankAccountList/Head.d.ts +1 -1
  219. package/dist/src/components/Company/BankAccount/BankAccountVerify/Actions.d.ts +1 -1
  220. package/dist/src/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.d.ts +1 -1
  221. package/dist/src/components/Company/BankAccount/BankAccountVerify/Form.d.ts +1 -1
  222. package/dist/src/components/Company/BankAccount/BankAccountVerify/Head.d.ts +1 -1
  223. package/dist/src/components/Company/DocumentSigner/DocumentList/Actions.d.ts +1 -1
  224. package/dist/src/components/Company/DocumentSigner/DocumentList/DocumentList.d.ts +1 -1
  225. package/dist/src/components/Company/DocumentSigner/DocumentList/Head.d.ts +1 -1
  226. package/dist/src/components/Company/DocumentSigner/DocumentList/List.d.ts +1 -1
  227. package/dist/src/components/Company/DocumentSigner/DocumentList/ManageSignatories.d.ts +1 -1
  228. package/dist/src/components/Company/DocumentSigner/DocumentSigner.d.ts +1 -1
  229. package/dist/src/components/Company/DocumentSigner/SignatureForm/SignatureForm.d.ts +1 -1
  230. package/dist/src/components/Company/DocumentSigner/documentSignerStateMachine.d.ts +3 -3
  231. package/dist/src/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.d.ts +2 -2
  232. package/dist/src/components/Company/FederalTaxes/Actions.d.ts +1 -1
  233. package/dist/src/components/Company/FederalTaxes/FederalTaxes.d.ts +1 -1
  234. package/dist/src/components/Company/FederalTaxes/Form.d.ts +1 -1
  235. package/dist/src/components/Company/FederalTaxes/Head.d.ts +1 -1
  236. package/dist/src/components/Company/Industry/Actions.d.ts +1 -1
  237. package/dist/src/components/Company/Industry/Edit.d.ts +1 -1
  238. package/dist/src/components/Company/Industry/Head.d.ts +1 -1
  239. package/dist/src/components/Company/Industry/Industry.d.ts +1 -1
  240. package/dist/src/components/Company/Industry/IndustrySelect.d.ts +1 -1
  241. package/dist/src/components/Company/Locations/LocationForm/Actions.d.ts +1 -1
  242. package/dist/src/components/Company/Locations/LocationForm/Form.d.ts +1 -1
  243. package/dist/src/components/Company/Locations/LocationForm/Head.d.ts +1 -1
  244. package/dist/src/components/Company/Locations/LocationForm/LocationForm.d.ts +1 -1
  245. package/dist/src/components/Company/Locations/Locations.d.ts +1 -1
  246. package/dist/src/components/Company/Locations/LocationsList/Actions.d.ts +1 -1
  247. package/dist/src/components/Company/Locations/LocationsList/Head.d.ts +1 -1
  248. package/dist/src/components/Company/Locations/LocationsList/List.d.ts +1 -1
  249. package/dist/src/components/Company/Locations/LocationsList/LocationsList.d.ts +1 -1
  250. package/dist/src/components/Company/Locations/locationsStateMachine.d.ts +2 -2
  251. package/dist/src/components/Company/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  252. package/dist/src/components/Company/OnboardingFlow/OnboardingFlowComponents.d.ts +9 -9
  253. package/dist/src/components/Company/OnboardingOverview/Completed.d.ts +1 -1
  254. package/dist/src/components/Company/OnboardingOverview/MissingRequirements.d.ts +1 -1
  255. package/dist/src/components/Company/OnboardingOverview/OnboardingOverview.d.ts +1 -1
  256. package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +1 -1
  257. package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +2 -2
  258. package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +1 -1
  259. package/dist/src/components/Company/PaySchedule/PayScheduleList.d.ts +1 -1
  260. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +8 -8
  261. package/dist/src/components/Company/StateTaxes/StateTaxes.d.ts +1 -1
  262. package/dist/src/components/Company/StateTaxes/StateTaxesComponents.d.ts +3 -3
  263. package/dist/src/components/Company/StateTaxes/StateTaxesForm/Actions.d.ts +1 -1
  264. package/dist/src/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
  265. package/dist/src/components/Company/StateTaxes/StateTaxesForm/Head.d.ts +1 -1
  266. package/dist/src/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.d.ts +1 -1
  267. package/dist/src/components/Company/StateTaxes/StateTaxesList/Actions.d.ts +1 -1
  268. package/dist/src/components/Company/StateTaxes/StateTaxesList/Head.d.ts +1 -1
  269. package/dist/src/components/Company/StateTaxes/StateTaxesList/List.d.ts +1 -1
  270. package/dist/src/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -1
  271. package/dist/src/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +1 -1
  272. package/dist/src/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +1 -1
  273. package/dist/src/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +1 -1
  274. package/dist/src/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +1 -1
  275. package/dist/src/components/Company/StateTaxes/shared/RequirementFields.d.ts +1 -1
  276. package/dist/src/components/Contractor/Address/management/Address.d.ts +1 -1
  277. package/dist/src/components/Contractor/Address/management/AddressCard/AddressCard.d.ts +1 -1
  278. package/dist/src/components/Contractor/Address/management/AddressComponents.d.ts +2 -2
  279. package/dist/src/components/Contractor/Address/management/AddressEditForm.d.ts +1 -1
  280. package/dist/src/components/Contractor/Address/shared/useContractorAddressForm/fields.d.ts +5 -5
  281. package/dist/src/components/Contractor/Compensation/management/Compensation.d.ts +1 -1
  282. package/dist/src/components/Contractor/Compensation/management/CompensationCard/CompensationCard.d.ts +1 -1
  283. package/dist/src/components/Contractor/Compensation/management/CompensationComponents.d.ts +2 -2
  284. package/dist/src/components/Contractor/Compensation/management/CompensationEditForm.d.ts +1 -1
  285. package/dist/src/components/Contractor/Compensation/shared/useContractorPayForm/fields.d.ts +2 -2
  286. package/dist/src/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +1 -1
  287. package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +1 -1
  288. package/dist/src/components/Contractor/ContractorList/onboarding/ContractorList.d.ts +1 -1
  289. package/dist/src/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +1 -1
  290. package/dist/src/components/Contractor/ContractorListFlow/ContractorListFlow.d.ts +1 -1
  291. package/dist/src/components/Contractor/ContractorListFlow/ContractorListFlowComponents.d.ts +2 -2
  292. package/dist/src/components/Contractor/Dashboard/Dashboard.d.ts +1 -1
  293. package/dist/src/components/Contractor/Dashboard/DashboardComponents.d.ts +5 -5
  294. package/dist/src/components/Contractor/Dashboard/DashboardFlow.d.ts +1 -1
  295. package/dist/src/components/Contractor/Dashboard/DetailsView.d.ts +1 -1
  296. package/dist/src/components/Contractor/Dashboard/PayView.d.ts +1 -1
  297. package/dist/src/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.d.ts +1 -1
  298. package/dist/src/components/Contractor/Documents/onboarding/DocumentSigner/DocumentSigner.d.ts +1 -1
  299. package/dist/src/components/Contractor/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +2 -2
  300. package/dist/src/components/Contractor/Documents/onboarding/DocumentsList/DocumentsList.d.ts +1 -1
  301. package/dist/src/components/Contractor/Documents/shared/SignatureForm/SignatureForm.d.ts +1 -1
  302. package/dist/src/components/Contractor/Documents/shared/SignatureForm/useContractorSignatureForm/fields.d.ts +19 -19
  303. package/dist/src/components/Contractor/Landing/Landing.d.ts +1 -1
  304. package/dist/src/components/Contractor/NewHireReport/NewHireReport.d.ts +1 -1
  305. package/dist/src/components/Contractor/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  306. package/dist/src/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +7 -7
  307. package/dist/src/components/Contractor/OnboardingSummary/OnboardingSummary.d.ts +1 -1
  308. package/dist/src/components/Contractor/PaymentMethod/management/PaymentMethod.d.ts +1 -1
  309. package/dist/src/components/Contractor/PaymentMethod/management/PaymentMethodCard/PaymentMethodCard.d.ts +1 -1
  310. package/dist/src/components/Contractor/PaymentMethod/management/PaymentMethodComponents.d.ts +2 -2
  311. package/dist/src/components/Contractor/PaymentMethod/management/PaymentMethodEditForm.d.ts +1 -1
  312. package/dist/src/components/Contractor/PaymentMethod/onboarding/PaymentMethod.d.ts +1 -1
  313. package/dist/src/components/Contractor/PaymentMethod/shared/ContractorBankAccountFields/ContractorBankAccountFields.d.ts +1 -1
  314. package/dist/src/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.d.ts +1 -1
  315. package/dist/src/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/fields.d.ts +4 -4
  316. package/dist/src/components/Contractor/PaymentMethod/shared/useContractorPaymentMethodForm/fields.d.ts +1 -1
  317. package/dist/src/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.d.ts +1 -1
  318. package/dist/src/components/Contractor/Payments/CreatePayment/CreatePayment.d.ts +1 -1
  319. package/dist/src/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +1 -1
  320. package/dist/src/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.d.ts +1 -1
  321. package/dist/src/components/Contractor/Payments/CreatePayment/GenericBlocker.d.ts +1 -1
  322. package/dist/src/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +1 -1
  323. package/dist/src/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlow.d.ts +2 -2
  324. package/dist/src/components/Contractor/Payments/CreatePaymentFlow/CreatePaymentFlowComponents.d.ts +2 -2
  325. package/dist/src/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlow.d.ts +2 -2
  326. package/dist/src/components/Contractor/Payments/HistoricalPaymentFlow/HistoricalPaymentFlowComponents.d.ts +2 -2
  327. package/dist/src/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.d.ts +1 -1
  328. package/dist/src/components/Contractor/Payments/PaymentFlow/PaymentFlow.d.ts +1 -1
  329. package/dist/src/components/Contractor/Payments/PaymentFlow/PaymentFlowComponents.d.ts +5 -5
  330. package/dist/src/components/Contractor/Payments/PaymentHistory/PaymentHistory.d.ts +1 -1
  331. package/dist/src/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +1 -1
  332. package/dist/src/components/Contractor/Payments/PaymentStatement/PaymentStatement.d.ts +1 -1
  333. package/dist/src/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +1 -1
  334. package/dist/src/components/Contractor/Payments/PaymentSummary/PaymentSummary.d.ts +2 -2
  335. package/dist/src/components/Contractor/Payments/PaymentSummary/PaymentSummaryPresentation.d.ts +1 -1
  336. package/dist/src/components/Contractor/Payments/PaymentsList/PaymentsList.d.ts +2 -2
  337. package/dist/src/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +1 -1
  338. package/dist/src/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlow.d.ts +2 -2
  339. package/dist/src/components/Contractor/Payments/ViewPaymentFlow/ViewPaymentFlowComponents.d.ts +2 -2
  340. package/dist/src/components/Contractor/Payments/shared/PaymentSummaryBlock/PaymentSummaryBlock.d.ts +1 -1
  341. package/dist/src/components/Contractor/Payments/shared/SetPaymentAmounts/EditContractorPaymentPresentation.d.ts +1 -1
  342. package/dist/src/components/Contractor/Payments/shared/SetPaymentAmounts/SetPaymentAmounts.d.ts +1 -1
  343. package/dist/src/components/Contractor/Profile/management/Profile.d.ts +1 -1
  344. package/dist/src/components/Contractor/Profile/management/ProfileCard/ProfileCard.d.ts +1 -1
  345. package/dist/src/components/Contractor/Profile/management/ProfileComponents.d.ts +2 -2
  346. package/dist/src/components/Contractor/Profile/management/ProfileEditForm.d.ts +1 -1
  347. package/dist/src/components/Contractor/Profile/onboarding/BusinessSelfOnboardingProfile.d.ts +1 -1
  348. package/dist/src/components/Contractor/Profile/onboarding/ContractorProfile.d.ts +1 -1
  349. package/dist/src/components/Contractor/Profile/onboarding/IndividualSelfOnboardingProfile.d.ts +1 -1
  350. package/dist/src/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.d.ts +1 -1
  351. package/dist/src/components/Contractor/Profile/shared/useContractorDetailsForm/fields.d.ts +14 -14
  352. package/dist/src/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +6 -6
  353. package/dist/src/components/Contractor/SelfOnboardingFlow/SelfOnboardingFlow.d.ts +1 -1
  354. package/dist/src/components/Contractor/Submit/Submit.d.ts +1 -1
  355. package/dist/src/components/Contractor/Submit/SubmitDone.d.ts +1 -1
  356. package/dist/src/components/Contractor/shared/SelectContractors/SelectContractors.d.ts +1 -1
  357. package/dist/src/components/Contractor/shared/SelectContractors/SelectContractorsPresentation.d.ts +1 -1
  358. package/dist/src/components/Employee/Compensation/management/Compensation.d.ts +1 -1
  359. package/dist/src/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.d.ts +1 -1
  360. package/dist/src/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.d.ts +1 -1
  361. package/dist/src/components/Employee/Compensation/management/CompensationCard/CompensationCard.d.ts +1 -1
  362. package/dist/src/components/Employee/Compensation/management/CompensationComponents.d.ts +4 -4
  363. package/dist/src/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +1 -1
  364. package/dist/src/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.d.ts +1 -1
  365. package/dist/src/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.d.ts +1 -1
  366. package/dist/src/components/Employee/Compensation/management/ManagementCompensationFormBody.d.ts +1 -1
  367. package/dist/src/components/Employee/Compensation/onboarding/Compensation.d.ts +2 -2
  368. package/dist/src/components/Employee/Compensation/onboarding/CompensationFlowComponents.d.ts +3 -3
  369. package/dist/src/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.d.ts +1 -1
  370. package/dist/src/components/Employee/Compensation/onboarding/JobsList/JobsList.d.ts +1 -1
  371. package/dist/src/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.d.ts +1 -1
  372. package/dist/src/components/Employee/Compensation/shared/AddCompensationFormBody.d.ts +1 -1
  373. package/dist/src/components/Employee/Compensation/shared/PendingChangesReviewModal.d.ts +1 -1
  374. package/dist/src/components/Employee/Compensation/shared/useCompensationForm/fields.d.ts +7 -7
  375. package/dist/src/components/Employee/Compensation/shared/useJobForm/fields.d.ts +5 -5
  376. package/dist/src/components/Employee/Dashboard/BasicDetailsView.d.ts +1 -1
  377. package/dist/src/components/Employee/Dashboard/Dashboard.d.ts +1 -1
  378. package/dist/src/components/Employee/Dashboard/DashboardComponents.d.ts +13 -13
  379. package/dist/src/components/Employee/Dashboard/DashboardFlow.d.ts +1 -1
  380. package/dist/src/components/Employee/Dashboard/JobAndPayView.d.ts +1 -1
  381. package/dist/src/components/Employee/Dashboard/TaxesView.d.ts +2 -2
  382. package/dist/src/components/Employee/Deductions/management/Deductions.d.ts +1 -1
  383. package/dist/src/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.d.ts +1 -1
  384. package/dist/src/components/Employee/Deductions/management/DeductionsComponents.d.ts +2 -2
  385. package/dist/src/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.d.ts +1 -1
  386. package/dist/src/components/Employee/Deductions/onboarding/Deductions.d.ts +1 -1
  387. package/dist/src/components/Employee/Deductions/onboarding/DeductionsList/DeductionsList.d.ts +1 -1
  388. package/dist/src/components/Employee/Deductions/onboarding/deductionsContextualComponents.d.ts +2 -2
  389. package/dist/src/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.d.ts +1 -1
  390. package/dist/src/components/Employee/Deductions/shared/DeductionsForm/DeductionsForm.d.ts +1 -1
  391. package/dist/src/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.d.ts +1 -1
  392. package/dist/src/components/Employee/Deductions/shared/DeleteDeductionDialog.d.ts +1 -1
  393. package/dist/src/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.d.ts +8 -8
  394. package/dist/src/components/Employee/Deductions/shared/useDeductionForm/fields.d.ts +7 -7
  395. package/dist/src/components/Employee/Documents/management/DocumentManager.d.ts +1 -1
  396. package/dist/src/components/Employee/Documents/management/Documents.d.ts +1 -1
  397. package/dist/src/components/Employee/Documents/management/DocumentsCard/DocumentsCard.d.ts +1 -1
  398. package/dist/src/components/Employee/Documents/management/DocumentsComponents.d.ts +2 -2
  399. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.d.ts +1 -1
  400. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +1 -1
  401. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Head.d.ts +1 -1
  402. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.d.ts +1 -1
  403. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.d.ts +1 -1
  404. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.d.ts +1 -1
  405. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +1 -1
  406. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +1 -1
  407. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/documentSignerStateMachine.d.ts +4 -4
  408. package/dist/src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.d.ts +2 -2
  409. package/dist/src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +1 -1
  410. package/dist/src/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +1 -1
  411. package/dist/src/components/Employee/Documents/shared/useSignEmployeeForm/fields.d.ts +39 -39
  412. package/dist/src/components/Employee/EmployeeList/management/ManagementEmployeeList.d.ts +1 -1
  413. package/dist/src/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +1 -1
  414. package/dist/src/components/Employee/EmployeeList/onboarding/EmployeeList.d.ts +1 -1
  415. package/dist/src/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +1 -1
  416. package/dist/src/components/Employee/EmployeeListFlow/EmployeeListFlow.d.ts +1 -1
  417. package/dist/src/components/Employee/EmployeeListFlow/EmployeeListFlowComponents.d.ts +4 -4
  418. package/dist/src/components/Employee/FederalTaxes/management/FederalTaxes.d.ts +1 -1
  419. package/dist/src/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.d.ts +1 -1
  420. package/dist/src/components/Employee/FederalTaxes/management/FederalTaxesComponents.d.ts +2 -2
  421. package/dist/src/components/Employee/FederalTaxes/management/FederalTaxesEditForm.d.ts +1 -1
  422. package/dist/src/components/Employee/FederalTaxes/onboarding/FederalTaxes.d.ts +1 -1
  423. package/dist/src/components/Employee/FederalTaxes/shared/FederalTaxesView.d.ts +1 -1
  424. package/dist/src/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.d.ts +6 -6
  425. package/dist/src/components/Employee/HomeAddress/management/HomeAddress.d.ts +1 -1
  426. package/dist/src/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.d.ts +1 -1
  427. package/dist/src/components/Employee/HomeAddress/management/HomeAddressComponents.d.ts +2 -2
  428. package/dist/src/components/Employee/HomeAddress/management/HomeAddressEditForm.d.ts +1 -1
  429. package/dist/src/components/Employee/HomeAddress/management/HomeAddressView.d.ts +1 -1
  430. package/dist/src/components/Employee/Landing/Landing.d.ts +1 -1
  431. package/dist/src/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlow.d.ts +1 -1
  432. package/dist/src/components/Employee/OnboardingExecutionFlow/OnboardingExecutionFlowComponents.d.ts +3 -3
  433. package/dist/src/components/Employee/OnboardingExecutionFlow/onboardingExecutionStateMachine.d.ts +1 -1
  434. package/dist/src/components/Employee/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  435. package/dist/src/components/Employee/OnboardingFlow/OnboardingFlowComponents.d.ts +2 -2
  436. package/dist/src/components/Employee/OnboardingSummary/OnboardingSummary.d.ts +2 -2
  437. package/dist/src/components/Employee/PaymentMethod/management/PaymentMethod.d.ts +1 -1
  438. package/dist/src/components/Employee/PaymentMethod/management/PaymentMethodBankForm.d.ts +1 -1
  439. package/dist/src/components/Employee/PaymentMethod/management/PaymentMethodCard.d.ts +1 -1
  440. package/dist/src/components/Employee/PaymentMethod/management/PaymentMethodComponents.d.ts +3 -3
  441. package/dist/src/components/Employee/PaymentMethod/management/PaymentMethodSplitForm.d.ts +1 -1
  442. package/dist/src/components/Employee/PaymentMethod/onboarding/BankForm.d.ts +1 -1
  443. package/dist/src/components/Employee/PaymentMethod/onboarding/ListView.d.ts +1 -1
  444. package/dist/src/components/Employee/PaymentMethod/onboarding/PaymentMethod.d.ts +2 -2
  445. package/dist/src/components/Employee/PaymentMethod/onboarding/PaymentMethodComponents.d.ts +3 -3
  446. package/dist/src/components/Employee/PaymentMethod/onboarding/SplitView.d.ts +1 -1
  447. package/dist/src/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  448. package/dist/src/components/Employee/PaymentMethod/shared/DeleteBankAccountDialog.d.ts +1 -1
  449. package/dist/src/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.d.ts +1 -1
  450. package/dist/src/components/Employee/PaymentMethod/shared/useBankForm/fields.d.ts +4 -4
  451. package/dist/src/components/Employee/PaymentMethod/shared/usePaymentMethodForm/fields.d.ts +1 -1
  452. package/dist/src/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/fields.d.ts +1 -1
  453. package/dist/src/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.d.ts +1 -1
  454. package/dist/src/components/Employee/Profile/management/Profile.d.ts +1 -1
  455. package/dist/src/components/Employee/Profile/management/ProfileCard/ProfileCard.d.ts +1 -1
  456. package/dist/src/components/Employee/Profile/management/ProfileComponents.d.ts +2 -2
  457. package/dist/src/components/Employee/Profile/management/ProfileEditForm.d.ts +1 -1
  458. package/dist/src/components/Employee/Profile/onboarding/AdminProfile.d.ts +1 -1
  459. package/dist/src/components/Employee/Profile/onboarding/EmployeeProfile.d.ts +1 -1
  460. package/dist/src/components/Employee/Profile/onboarding/Profile.d.ts +2 -2
  461. package/dist/src/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.d.ts +7 -7
  462. package/dist/src/components/Employee/Profile/shared/useHomeAddressForm/fields.d.ts +7 -7
  463. package/dist/src/components/Employee/Profile/shared/useWorkAddressForm/fields.d.ts +2 -2
  464. package/dist/src/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.d.ts +7 -7
  465. package/dist/src/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.d.ts +1 -1
  466. package/dist/src/components/Employee/StateTaxes/management/StateTaxes.d.ts +1 -1
  467. package/dist/src/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.d.ts +1 -1
  468. package/dist/src/components/Employee/StateTaxes/management/StateTaxesComponents.d.ts +2 -2
  469. package/dist/src/components/Employee/StateTaxes/management/StateTaxesEditForm.d.ts +1 -1
  470. package/dist/src/components/Employee/StateTaxes/onboarding/StateTaxes.d.ts +1 -1
  471. package/dist/src/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.d.ts +1 -1
  472. package/dist/src/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.d.ts +6 -6
  473. package/dist/src/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.d.ts +1 -1
  474. package/dist/src/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +1 -1
  475. package/dist/src/components/Employee/Terminations/TerminationFlow/TerminationFlow.d.ts +1 -1
  476. package/dist/src/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.d.ts +4 -4
  477. package/dist/src/components/Employee/Terminations/TerminationSummary/TerminationSummary.d.ts +1 -1
  478. package/dist/src/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.d.ts +1 -1
  479. package/dist/src/components/Employee/WorkAddress/management/WorkAddress.d.ts +1 -1
  480. package/dist/src/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.d.ts +1 -1
  481. package/dist/src/components/Employee/WorkAddress/management/WorkAddressComponents.d.ts +2 -2
  482. package/dist/src/components/Employee/WorkAddress/management/WorkAddressEditForm.d.ts +1 -1
  483. package/dist/src/components/Employee/WorkAddress/management/WorkAddressView.d.ts +1 -1
  484. package/dist/src/components/Flow/Flow.d.ts +1 -1
  485. package/dist/src/components/Flow/FlowHeader.d.ts +1 -1
  486. package/dist/src/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +2 -2
  487. package/dist/src/components/InformationRequests/InformationRequestList/InformationRequestList.d.ts +1 -1
  488. package/dist/src/components/InformationRequests/InformationRequests.d.ts +1 -1
  489. package/dist/src/components/InformationRequests/InformationRequestsComponents.d.ts +1 -1
  490. package/dist/src/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +1 -1
  491. package/dist/src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +1 -1
  492. package/dist/src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +2 -2
  493. package/dist/src/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -1
  494. package/dist/src/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +1 -1
  495. package/dist/src/components/Payroll/Dismissal/DismissalFlow.d.ts +1 -1
  496. package/dist/src/components/Payroll/Dismissal/DismissalFlowComponents.d.ts +2 -2
  497. package/dist/src/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.d.ts +1 -1
  498. package/dist/src/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +1 -1
  499. package/dist/src/components/Payroll/GrossUpModal/GrossUpModal.d.ts +1 -1
  500. package/dist/src/components/Payroll/OffCycle/OffCycleFlow.d.ts +3 -1
  501. package/dist/src/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +4 -2
  502. package/dist/src/components/Payroll/OffCycle/offCycleStateMachine.d.ts +1 -0
  503. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +2 -1
  504. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  505. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +5 -0
  506. package/dist/src/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.d.ts +1 -1
  507. package/dist/src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +1 -1
  508. package/dist/src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +1 -1
  509. package/dist/src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +1 -1
  510. package/dist/src/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.d.ts +1 -1
  511. package/dist/src/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.d.ts +1 -1
  512. package/dist/src/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +1 -1
  513. package/dist/src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.d.ts +1 -1
  514. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +2 -2
  515. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
  516. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +1 -1
  517. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
  518. package/dist/src/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +2 -2
  519. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +18 -0
  520. package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +3 -3
  521. package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +8 -0
  522. package/dist/src/components/Payroll/PayrollFlow/OffCycleFlowContextual.d.ts +1 -1
  523. package/dist/src/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.d.ts +1 -1
  524. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +2 -2
  525. package/dist/src/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +7 -7
  526. package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +7 -2
  527. package/dist/src/components/Payroll/PayrollHistory/PayrollHistory.d.ts +1 -1
  528. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
  529. package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +1 -1
  530. package/dist/src/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +3 -3
  531. package/dist/src/components/Payroll/PayrollList/PayrollList.d.ts +1 -1
  532. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -1
  533. package/dist/src/components/Payroll/PayrollOverview/PayrollOverview.d.ts +1 -1
  534. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
  535. package/dist/src/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +1 -1
  536. package/dist/src/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -1
  537. package/dist/src/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +1 -1
  538. package/dist/src/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -1
  539. package/dist/src/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.d.ts +1 -1
  540. package/dist/src/components/Payroll/PrintChecks/PrintChecks.d.ts +1 -1
  541. package/dist/src/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.d.ts +1 -1
  542. package/dist/src/components/Payroll/PrintChecks/PrintChecksComponents.d.ts +3 -3
  543. package/dist/src/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.d.ts +1 -1
  544. package/dist/src/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.d.ts +1 -1
  545. package/dist/src/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.d.ts +1 -1
  546. package/dist/src/components/Payroll/RecoveryCases/RecoveryCases.d.ts +1 -1
  547. package/dist/src/components/Payroll/RecoveryCases/RecoveryCasesComponents.d.ts +1 -1
  548. package/dist/src/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.d.ts +1 -1
  549. package/dist/src/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.d.ts +1 -1
  550. package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +17 -15
  551. package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +21 -12
  552. package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +25 -4
  553. package/dist/src/components/Payroll/TransitionCreation/TransitionCreation.d.ts +1 -1
  554. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +1 -1
  555. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +55 -0
  556. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +24 -0
  557. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +23 -0
  558. package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +2 -0
  559. package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +15 -0
  560. package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +28 -0
  561. package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -1
  562. package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +1 -1
  563. package/dist/src/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts +1 -1
  564. package/dist/src/components/Payroll/index.d.ts +2 -0
  565. package/dist/src/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +1 -1
  566. package/dist/src/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +1 -1
  567. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.d.ts +1 -1
  568. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  569. package/dist/src/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.d.ts +1 -1
  570. package/dist/src/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.d.ts +1 -1
  571. package/dist/src/components/TimeOff/PolicyList/PolicyList.d.ts +1 -1
  572. package/dist/src/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -1
  573. package/dist/src/components/TimeOff/PolicySettings/PolicySettings.d.ts +1 -1
  574. package/dist/src/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  575. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.d.ts +1 -1
  576. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -1
  577. package/dist/src/components/TimeOff/TimeOffFlow/TimeOffFlow.d.ts +1 -1
  578. package/dist/src/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +12 -12
  579. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.d.ts +1 -1
  580. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  581. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +1 -1
  582. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  583. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +1 -1
  584. package/dist/src/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +1 -1
  585. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.d.ts +1 -1
  586. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  587. package/dist/src/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.d.ts +1 -1
  588. package/dist/src/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.d.ts +1 -1
  589. package/dist/src/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.d.ts +1 -1
  590. package/dist/src/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -1
  591. package/dist/src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  592. package/dist/src/contexts/ApiProvider/ApiProvider.d.ts +1 -1
  593. package/dist/src/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.d.ts +1 -1
  594. package/dist/src/contexts/LocaleProvider/LocaleProvider.d.ts +1 -1
  595. package/dist/src/contexts/ObservabilityProvider/ObservabilityProvider.d.ts +1 -1
  596. package/dist/src/contexts/ThemeProvider/customRender.d.ts +1 -1
  597. package/dist/src/contexts/UnstableFeaturesProvider/UnstableFeaturesProvider.d.ts +1 -1
  598. package/dist/src/i18n/types.d.ts +9 -1
  599. package/dist/src/partner-hook-utils/form/FormFieldsMetadataProvider.d.ts +1 -1
  600. package/dist/src/partner-hook-utils/form/SDKFormProvider.d.ts +1 -1
  601. package/dist/src/shared/constants.d.ts +2 -0
  602. package/dist/src/test-utils/renderWithProviders.d.ts +1 -1
  603. package/docs/guides/endpoint-inventory.json +14 -19
  604. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport { getBlockerTranslationKeys } from '../payrollHelpers'\nimport styles from './PayrollBlockerList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { RecoveryCases } from '@/components/Payroll/RecoveryCases'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { informationRequestEvents, recoveryCasesEvents, type EventType } from '@/shared/constants'\n\ntype ResponseAlertType = 'recoveryCaseResubmitted' | 'informationRequestResponded'\n\ninterface ResponseAlert {\n id: number\n type: ResponseAlertType\n}\n\ninterface ResponseAlertState {\n id: number\n alerts: ResponseAlert[]\n}\n\ninterface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\n/**\n * Props for {@link PayrollBlockerList}.\n *\n * @public\n */\nexport interface PayrollBlockerListProps extends BaseComponentInterface<'Payroll.PayrollBlocker'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays the list of blockers preventing payroll from being processed for a company.\n *\n * @remarks\n * Blockers indicate issues that must be resolved before a payroll can be calculated or\n * submitted, such as missing employee information, invalid tax setups, or incomplete\n * company configuration. The component also renders open recovery cases and outstanding\n * information requests for the company when present, and re-emits any events those\n * embedded surfaces fire through `onEvent`.\n *\n * @param props - {@link PayrollBlockerListProps}\n * @returns The rendered blocker list.\n * @public\n */\nexport function PayrollBlockerList(props: PayrollBlockerListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, companyId, dictionary, onEvent }: PayrollBlockerListProps) {\n useComponentDictionary('Payroll.PayrollBlocker', dictionary)\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Button, Text, Heading, Alert } = useComponentContext()\n\n const [alertState, setAlertState] = useState<ResponseAlertState>({\n id: 0,\n alerts: [],\n })\n\n const handleDismissAlert = useCallback((alertId: number) => {\n setAlertState(prev => ({\n ...prev,\n alerts: prev.alerts.filter(alert => alert.id !== alertId),\n }))\n }, [])\n\n const addAlert = useCallback((alertType: ResponseAlertType) => {\n setAlertState(prev => ({\n id: prev.id + 1,\n alerts: [{ id: prev.id, type: alertType }, ...prev.alerts],\n }))\n }, [])\n\n const handleEvent = useCallback(\n (type: EventType, data?: unknown) => {\n if (type === recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE) {\n addAlert('recoveryCaseResubmitted')\n }\n\n if (type === informationRequestEvents.INFORMATION_REQUEST_FORM_DONE) {\n addAlert('informationRequestResponded')\n }\n\n onEvent(type, data)\n },\n [onEvent, addAlert],\n )\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const { data: recoveryCasesData } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: blockerKey\n .replace(/_/g, ' ')\n .replace(/\\b\\w/g, (letter: string) => letter.toUpperCase()),\n })\n\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n\n return {\n id: blockerKey,\n title,\n description,\n }\n })\n\n const recoveryCases = recoveryCasesData.recoveryCases ?? []\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnrecoveredCases = recoveryCases.some(\n recoveryCase => recoveryCase.status !== 'recovered',\n )\n\n const hasInformationRequests = informationRequests.some(\n request => request.status !== InformationRequestStatus.Approved,\n )\n\n const dataViewProps = useDataView({\n data: blockers,\n columns: [\n {\n title: t('blockerSectionLabel'),\n render: blocker => (\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text weight=\"semibold\">{blocker.title}</Text>\n <Text variant=\"supporting\">{blocker.description}</Text>\n </Flex>\n </FlexItem>\n ),\n },\n {\n title: '',\n render: blocker => {\n const action = blocker.action\n\n if (!action) {\n return null\n }\n\n return (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Button variant=\"secondary\" onClick={action.onClick} title={action.label}>\n {action.label}\n </Button>\n </Flex>\n )\n },\n },\n ],\n })\n\n const hasBlockers = blockers.length > 0\n const hasAnyContent = hasBlockers || hasUnrecoveredCases || hasInformationRequests\n\n if (!hasAnyContent) {\n return (\n <div className={classNames(styles.root, className)}>\n <Text>{t('noBlockersMessage')}</Text>\n </div>\n )\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={32}>\n {alertState.alerts.map(alert => (\n <Alert\n key={alert.id}\n status=\"success\"\n label={t(`alerts.${alert.type}.title`)}\n onDismiss={() => {\n handleDismissAlert(alert.id)\n }}\n >\n <Text>{t(`alerts.${alert.type}.description`)}</Text>\n </Alert>\n ))}\n\n {hasBlockers && (\n <Flex flexDirection=\"column\" gap={20}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n )}\n\n {hasUnrecoveredCases && <RecoveryCases companyId={companyId} onEvent={handleEvent} />}\n\n {hasInformationRequests && (\n <InformationRequestsFlow companyId={companyId} withAlert={false} onEvent={handleEvent} />\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","props","jsx","BaseComponent","Root","className","companyId","dictionary","onEvent","useComponentDictionary","useI18n","t","useTranslation","Button","Text","Heading","Alert","useComponentContext","alertState","setAlertState","useState","handleDismissAlert","useCallback","alertId","prev","alert","addAlert","alertType","handleEvent","type","data","recoveryCasesEvents","informationRequestEvents","blockersData","usePayrollsGetBlockersSuspense","recoveryCasesData","useRecoveryCasesGetSuspense","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","letter","description","recoveryCases","informationRequests","hasUnrecoveredCases","recoveryCase","hasInformationRequests","request","InformationRequestStatus","dataViewProps","useDataView","FlexItem","jsxs","Flex","action","hasBlockers","classNames","styles","DataView","RecoveryCases","InformationRequestsFlow"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollBlockerList.js","sources":["../../../../../src/components/Payroll/PayrollBlocker/components/PayrollBlockerList.tsx"],"sourcesContent":["import { useState, useCallback } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { useRecoveryCasesGetSuspense } from '@gusto/embedded-api/react-query/recoveryCasesGet'\nimport { useInformationRequestsGetInformationRequestsSuspense } from '@gusto/embedded-api/react-query/informationRequestsGetInformationRequests'\nimport { InformationRequestStatus } from '@gusto/embedded-api/models/components/informationrequest'\nimport { getBlockerTranslationKeys } from '../payrollHelpers'\nimport styles from './PayrollBlockerList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common'\nimport { DataView } from '@/components/Common/DataView/DataView'\nimport { useDataView } from '@/components/Common/DataView/useDataView'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { RecoveryCases } from '@/components/Payroll/RecoveryCases'\nimport { InformationRequestsFlow } from '@/components/InformationRequests'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { informationRequestEvents, recoveryCasesEvents, type EventType } from '@/shared/constants'\n\ntype ResponseAlertType = 'recoveryCaseResubmitted' | 'informationRequestResponded'\n\ninterface ResponseAlert {\n id: number\n type: ResponseAlertType\n}\n\ninterface ResponseAlertState {\n id: number\n alerts: ResponseAlert[]\n}\n\ninterface PayrollBlocker {\n id: string\n title: string\n description: string\n action?: {\n label: string\n onClick: () => void\n }\n}\n\n/**\n * Props for {@link PayrollBlockerList}.\n *\n * @public\n */\nexport interface PayrollBlockerListProps extends BaseComponentInterface<'Payroll.PayrollBlocker'> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/**\n * Displays the list of blockers preventing payroll from being processed for a company.\n *\n * @remarks\n * Blockers indicate issues that must be resolved before a payroll can be calculated or\n * submitted, such as missing employee information, invalid tax setups, or incomplete\n * company configuration. The component also renders open recovery cases and outstanding\n * information requests for the company when present, and re-emits any events those\n * embedded surfaces fire through `onEvent`.\n *\n * @param props - {@link PayrollBlockerListProps}\n * @returns The rendered blocker list.\n * @public\n */\nexport function PayrollBlockerList(props: PayrollBlockerListProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nfunction Root({ className, companyId, dictionary, onEvent }: PayrollBlockerListProps) {\n useComponentDictionary('Payroll.PayrollBlocker', dictionary)\n useI18n('Payroll.PayrollBlocker')\n const { t } = useTranslation('Payroll.PayrollBlocker')\n const { Button, Text, Heading, Alert } = useComponentContext()\n\n const [alertState, setAlertState] = useState<ResponseAlertState>({\n id: 0,\n alerts: [],\n })\n\n const handleDismissAlert = useCallback((alertId: number) => {\n setAlertState(prev => ({\n ...prev,\n alerts: prev.alerts.filter(alert => alert.id !== alertId),\n }))\n }, [])\n\n const addAlert = useCallback((alertType: ResponseAlertType) => {\n setAlertState(prev => ({\n id: prev.id + 1,\n alerts: [{ id: prev.id, type: alertType }, ...prev.alerts],\n }))\n }, [])\n\n const handleEvent = useCallback(\n (type: EventType, data?: unknown) => {\n if (type === recoveryCasesEvents.RECOVERY_CASE_RESUBMIT_DONE) {\n addAlert('recoveryCaseResubmitted')\n }\n\n if (type === informationRequestEvents.INFORMATION_REQUEST_FORM_DONE) {\n addAlert('informationRequestResponded')\n }\n\n onEvent(type, data)\n },\n [onEvent, addAlert],\n )\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const { data: recoveryCasesData } = useRecoveryCasesGetSuspense({\n companyUuid: companyId,\n })\n\n const { data: informationRequestsData } = useInformationRequestsGetInformationRequestsSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n const blockers: PayrollBlocker[] = payrollBlockerList.map(blocker => {\n const blockerKey = blocker.key\n const translationKeys = getBlockerTranslationKeys(blockerKey)\n\n const title = t(translationKeys.titleKey, {\n defaultValue: t('genericBlockerTitle'),\n })\n\n const description = t(translationKeys.descriptionKey, {\n defaultValue: blocker.message || t('defaultBlockerDescription'),\n })\n\n return {\n id: blockerKey,\n title,\n description,\n }\n })\n\n const recoveryCases = recoveryCasesData.recoveryCases ?? []\n const informationRequests = informationRequestsData.informationRequests ?? []\n\n const hasUnrecoveredCases = recoveryCases.some(\n recoveryCase => recoveryCase.status !== 'recovered',\n )\n\n const hasInformationRequests = informationRequests.some(\n request => request.status !== InformationRequestStatus.Approved,\n )\n\n const dataViewProps = useDataView({\n data: blockers,\n columns: [\n {\n title: t('blockerSectionLabel'),\n render: blocker => (\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={8}>\n <Text weight=\"semibold\">{blocker.title}</Text>\n <Text variant=\"supporting\">{blocker.description}</Text>\n </Flex>\n </FlexItem>\n ),\n },\n {\n title: '',\n render: blocker => {\n const action = blocker.action\n\n if (!action) {\n return null\n }\n\n return (\n <Flex justifyContent=\"flex-end\" alignItems=\"center\">\n <Button variant=\"secondary\" onClick={action.onClick} title={action.label}>\n {action.label}\n </Button>\n </Flex>\n )\n },\n },\n ],\n })\n\n const hasBlockers = blockers.length > 0\n const hasAnyContent = hasBlockers || hasUnrecoveredCases || hasInformationRequests\n\n if (!hasAnyContent) {\n return (\n <div className={classNames(styles.root, className)}>\n <Text>{t('noBlockersMessage')}</Text>\n </div>\n )\n }\n\n return (\n <div className={classNames(styles.root, className)}>\n <Flex flexDirection=\"column\" gap={32}>\n {alertState.alerts.map(alert => (\n <Alert\n key={alert.id}\n status=\"success\"\n label={t(`alerts.${alert.type}.title`)}\n onDismiss={() => {\n handleDismissAlert(alert.id)\n }}\n >\n <Text>{t(`alerts.${alert.type}.description`)}</Text>\n </Alert>\n ))}\n\n {hasBlockers && (\n <Flex flexDirection=\"column\" gap={20}>\n <Heading as=\"h2\" styledAs=\"h4\">\n {t('blockersListTitle')}\n </Heading>\n <DataView {...dataViewProps} label={t('blockersListTitle')} />\n </Flex>\n )}\n\n {hasUnrecoveredCases && <RecoveryCases companyId={companyId} onEvent={handleEvent} />}\n\n {hasInformationRequests && (\n <InformationRequestsFlow companyId={companyId} withAlert={false} onEvent={handleEvent} />\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["PayrollBlockerList","props","jsx","BaseComponent","Root","className","companyId","dictionary","onEvent","useComponentDictionary","useI18n","t","useTranslation","Button","Text","Heading","Alert","useComponentContext","alertState","setAlertState","useState","handleDismissAlert","useCallback","alertId","prev","alert","addAlert","alertType","handleEvent","type","data","recoveryCasesEvents","informationRequestEvents","blockersData","usePayrollsGetBlockersSuspense","recoveryCasesData","useRecoveryCasesGetSuspense","informationRequestsData","useInformationRequestsGetInformationRequestsSuspense","blockers","blocker","blockerKey","translationKeys","getBlockerTranslationKeys","title","description","recoveryCases","informationRequests","hasUnrecoveredCases","recoveryCase","hasInformationRequests","request","InformationRequestStatus","dataViewProps","useDataView","FlexItem","jsxs","Flex","action","hasBlockers","classNames","styles","DataView","RecoveryCases","InformationRequestsFlow"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiEO,SAASA,GAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,WAAAC,GAAW,YAAAC,GAAY,SAAAC,KAAoC;AACpF,EAAAC,EAAuB,0BAA0BF,CAAU,GAC3DG,EAAQ,wBAAwB;AAChC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,wBAAwB,GAC/C,EAAE,QAAAC,GAAQ,MAAAC,GAAM,SAAAC,GAAS,OAAAC,EAAA,IAAUC,EAAA,GAEnC,CAACC,GAAYC,CAAa,IAAIC,EAA6B;AAAA,IAC/D,IAAI;AAAA,IACJ,QAAQ,CAAA;AAAA,EAAC,CACV,GAEKC,IAAqBC,EAAY,CAACC,MAAoB;AAC1D,IAAAJ,EAAc,CAAAK,OAAS;AAAA,MACrB,GAAGA;AAAA,MACH,QAAQA,EAAK,OAAO,OAAO,CAAAC,MAASA,EAAM,OAAOF,CAAO;AAAA,IAAA,EACxD;AAAA,EACJ,GAAG,CAAA,CAAE,GAECG,IAAWJ,EAAY,CAACK,MAAiC;AAC7D,IAAAR,EAAc,CAAAK,OAAS;AAAA,MACrB,IAAIA,EAAK,KAAK;AAAA,MACd,QAAQ,CAAC,EAAE,IAAIA,EAAK,IAAI,MAAMG,EAAA,GAAa,GAAGH,EAAK,MAAM;AAAA,IAAA,EACzD;AAAA,EACJ,GAAG,CAAA,CAAE,GAECI,IAAcN;AAAA,IAClB,CAACO,GAAiBC,MAAmB;AACnC,MAAID,MAASE,EAAoB,+BAC/BL,EAAS,yBAAyB,GAGhCG,MAASG,EAAyB,iCACpCN,EAAS,6BAA6B,GAGxClB,EAAQqB,GAAMC,CAAI;AAAA,IACpB;AAAA,IACA,CAACtB,GAASkB,CAAQ;AAAA,EAAA,GAGd,EAAE,MAAMO,EAAA,IAAiBC,EAA+B;AAAA,IAC5D,aAAa5B;AAAA,EAAA,CACd,GAEK,EAAE,MAAM6B,EAAA,IAAsBC,EAA4B;AAAA,IAC9D,aAAa9B;AAAA,EAAA,CACd,GAEK,EAAE,MAAM+B,EAAA,IAA4BC,EAAqD;AAAA,IAC7F,aAAahC;AAAA,EAAA,CACd,GAGKiC,KADqBN,EAAa,mBAAmB,CAAA,GACL,IAAI,CAAAO,MAAW;AACnE,UAAMC,IAAaD,EAAQ,KACrBE,IAAkBC,EAA0BF,CAAU,GAEtDG,IAAQjC,EAAE+B,EAAgB,UAAU;AAAA,MACxC,cAAc/B,EAAE,qBAAqB;AAAA,IAAA,CACtC,GAEKkC,IAAclC,EAAE+B,EAAgB,gBAAgB;AAAA,MACpD,cAAcF,EAAQ,WAAW7B,EAAE,2BAA2B;AAAA,IAAA,CAC/D;AAED,WAAO;AAAA,MACL,IAAI8B;AAAA,MACJ,OAAAG;AAAA,MACA,aAAAC;AAAA,IAAA;AAAA,EAEJ,CAAC,GAEKC,IAAgBX,EAAkB,iBAAiB,CAAA,GACnDY,IAAsBV,EAAwB,uBAAuB,CAAA,GAErEW,IAAsBF,EAAc;AAAA,IACxC,CAAAG,MAAgBA,EAAa,WAAW;AAAA,EAAA,GAGpCC,IAAyBH,EAAoB;AAAA,IACjD,CAAAI,MAAWA,EAAQ,WAAWC,EAAyB;AAAA,EAAA,GAGnDC,IAAgBC,EAAY;AAAA,IAChC,MAAMf;AAAA,IACN,SAAS;AAAA,MACP;AAAA,QACE,OAAO5B,EAAE,qBAAqB;AAAA,QAC9B,QAAQ,CAAA6B,MACN,gBAAAtC,EAACqD,GAAA,EAAS,UAAU,GAClB,UAAA,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAvD,EAACY,GAAA,EAAK,QAAO,YAAY,UAAA0B,EAAQ,OAAM;AAAA,UACvC,gBAAAtC,EAACY,GAAA,EAAK,SAAQ,cAAc,YAAQ,YAAA,CAAY;AAAA,QAAA,EAAA,CAClD,EAAA,CACF;AAAA,MAAA;AAAA,MAGJ;AAAA,QACE,OAAO;AAAA,QACP,QAAQ,CAAA0B,MAAW;AACjB,gBAAMkB,IAASlB,EAAQ;AAEvB,iBAAKkB,sBAKFD,GAAA,EAAK,gBAAe,YAAW,YAAW,UACzC,4BAAC5C,GAAA,EAAO,SAAQ,aAAY,SAAS6C,EAAO,SAAS,OAAOA,EAAO,OAChE,UAAAA,EAAO,OACV,EAAA,CACF,IARO;AAAA,QAUX;AAAA,MAAA;AAAA,IACF;AAAA,EACF,CACD,GAEKC,IAAcpB,EAAS,SAAS;AAGtC,SAFsBoB,KAAeX,KAAuBE,IAW1D,gBAAAhD,EAAC,OAAA,EAAI,WAAW0D,EAAWC,EAAO,MAAMxD,CAAS,GAC/C,UAAA,gBAAAmD,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,IAAAvC,EAAW,OAAO,IAAI,CAAAO,MACrB,gBAAAvB;AAAA,MAACc;AAAA,MAAA;AAAA,QAEC,QAAO;AAAA,QACP,OAAOL,EAAE,UAAUc,EAAM,IAAI,QAAQ;AAAA,QACrC,WAAW,MAAM;AACf,UAAAJ,EAAmBI,EAAM,EAAE;AAAA,QAC7B;AAAA,QAEA,4BAACX,GAAA,EAAM,UAAAH,EAAE,UAAUc,EAAM,IAAI,cAAc,EAAA,CAAE;AAAA,MAAA;AAAA,MAPxCA,EAAM;AAAA,IAAA,CASd;AAAA,IAEAkC,KACC,gBAAAH,EAACC,GAAA,EAAK,eAAc,UAAS,KAAK,IAChC,UAAA;AAAA,MAAA,gBAAAvD,EAACa,KAAQ,IAAG,MAAK,UAAS,MACvB,UAAAJ,EAAE,mBAAmB,GACxB;AAAA,wBACCmD,GAAA,EAAU,GAAGT,GAAe,OAAO1C,EAAE,mBAAmB,EAAA,CAAG;AAAA,IAAA,GAC9D;AAAA,IAGDqC,KAAuB,gBAAA9C,EAAC6D,GAAA,EAAc,WAAAzD,GAAsB,SAASsB,GAAa;AAAA,IAElFsB,KACC,gBAAAhD,EAAC8D,GAAA,EAAwB,WAAA1D,GAAsB,WAAW,IAAO,SAASsB,EAAA,CAAa;AAAA,EAAA,EAAA,CAE3F,EAAA,CACF,IArCE,gBAAA1B,EAAC,OAAA,EAAI,WAAW0D,EAAWC,EAAO,MAAMxD,CAAS,GAC/C,UAAA,gBAAAH,EAACY,GAAA,EAAM,UAAAH,EAAE,mBAAmB,GAAE,GAChC;AAqCN;"}
@@ -26,7 +26,7 @@ function Co(t) {
26
26
  const Ve = ({
27
27
  onEvent: t,
28
28
  companyId: c,
29
- payrollId: l,
29
+ payrollId: s,
30
30
  dictionary: $,
31
31
  alerts: J,
32
32
  withReimbursements: x = !0,
@@ -36,15 +36,15 @@ const Ve = ({
36
36
  const { t: n } = Oe("Payroll.PayrollConfiguration"), { baseSubmitHandler: f, setError: P } = qe(), p = He(), [k, G] = d(!1), u = O(!1), h = O(!1), z = De(), Q = b(
37
37
  () => ({
38
38
  companyId: c,
39
- payrollId: l,
39
+ payrollId: s,
40
40
  include: ["taxes", "benefits", "deductions", "payroll_status_meta"]
41
41
  }),
42
- [c, l]
43
- ), { data: s, refetch: X } = Ee(Q), Z = b(
44
- () => s.payrollShow?.employeeCompensations?.filter((e) => e.excluded).map((e) => e.employeeUuid).filter(Boolean) ?? [],
45
- [s.payrollShow?.employeeCompensations]
42
+ [c, s]
43
+ ), { data: l, refetch: X } = Ee(Q), Z = b(
44
+ () => l.payrollShow?.employeeCompensations?.filter((e) => e.excluded).map((e) => e.employeeUuid).filter(Boolean) ?? [],
45
+ [l.payrollShow?.employeeCompensations]
46
46
  );
47
- K(s.payrollShow?.processingRequest) && (u.current = !0);
47
+ K(l.payrollShow?.processingRequest) && (u.current = !0);
48
48
  const { data: I } = Te({
49
49
  companyUuid: c
50
50
  }), N = (I.payrollBlockers ?? []).map((e) => ({
@@ -62,7 +62,7 @@ const Ve = ({
62
62
  refetch: X,
63
63
  onCalculated: (e) => {
64
64
  t(i.RUN_PAYROLL_CALCULATED, {
65
- payrollId: l,
65
+ payrollId: s,
66
66
  alert: {
67
67
  type: "success",
68
68
  title: n("alerts.progressSaved"),
@@ -90,7 +90,7 @@ const Ve = ({
90
90
  refetch: R
91
91
  } = Ye({
92
92
  companyId: c,
93
- payrollId: l,
93
+ payrollId: s,
94
94
  // Don't prepare while calculating, or once we've seen it calculate. If the payroll was already
95
95
  // calculated when we opened (e.g. clicking Edit), we do prepare so it can be edited.
96
96
  disablePrepare: C || k || u.current,
@@ -109,16 +109,16 @@ const Ve = ({
109
109
  return;
110
110
  }
111
111
  _.current || (_.current = !0, t(i.RUN_PAYROLL_ALREADY_PROCESSED, {
112
- payrollId: l,
112
+ payrollId: s,
113
113
  alert: E,
114
- payPeriod: s.payrollShow?.payPeriod
114
+ payPeriod: l.payrollShow?.payPeriod
115
115
  }));
116
116
  }, [
117
117
  w,
118
118
  t,
119
- l,
119
+ s,
120
120
  E,
121
- s.payrollShow?.payPeriod
121
+ l.payrollShow?.payPeriod
122
122
  ]);
123
123
  const { mutateAsync: B, isPending: ne } = be(), { mutateAsync: ce } = xe(), [m, j] = d(null), [ue, D] = d(!1), v = Fe(S), g = Me(S), pe = (e) => {
124
124
  j(e), D(!0), t(i.RUN_PAYROLL_GROSS_UP_SELECTED, { employeeUuid: e });
@@ -128,7 +128,7 @@ const Ve = ({
128
128
  return await f(null, async () => {
129
129
  o = (await ce({
130
130
  request: {
131
- payrollUuid: l,
131
+ payrollUuid: s,
132
132
  payrollGrossUpRequest: {
133
133
  employeeUuid: m,
134
134
  netPay: e.toString()
@@ -180,7 +180,7 @@ const Ve = ({
180
180
  const a = await B({
181
181
  request: {
182
182
  companyId: c,
183
- payrollId: l,
183
+ payrollId: s,
184
184
  payrollUpdate: {
185
185
  employeeCompensations: [{ ...Se, excluded: !1 }]
186
186
  }
@@ -202,12 +202,12 @@ const Ve = ({
202
202
  try {
203
203
  const o = await _e(z, {
204
204
  companyId: c,
205
- payrollId: l
205
+ payrollId: s
206
206
  });
207
207
  if (!o.ok)
208
208
  throw o.error;
209
209
  A({
210
- baselineCalculatedAt: s.payrollShow?.calculatedAt?.getTime() ?? null,
210
+ baselineCalculatedAt: l.payrollShow?.calculatedAt?.getTime() ?? null,
211
211
  // We just submitted the payroll, so we haven't yet seen it return with the calculating status
212
212
  sawCalculatingThisPoll: !1
213
213
  });
@@ -221,6 +221,7 @@ const Ve = ({
221
221
  });
222
222
  }, Pe = (e) => {
223
223
  t(i.RUN_PAYROLL_EMPLOYEE_EDIT, {
224
+ payrollId: s,
224
225
  employeeId: e.uuid,
225
226
  firstName: e.firstName,
226
227
  lastName: e.lastName
@@ -245,7 +246,7 @@ const Ve = ({
245
246
  const o = W(e), r = await B({
246
247
  request: {
247
248
  companyId: c,
248
- payrollId: l,
249
+ payrollId: s,
249
250
  payrollUpdate: {
250
251
  employeeCompensations: [
251
252
  { ...o, excluded: !o.excluded }
@@ -262,25 +263,25 @@ const Ve = ({
262
263
  };
263
264
  H(() => {
264
265
  if (!C) {
265
- if (!K(s.payrollShow?.processingRequest)) {
266
+ if (!K(l.payrollShow?.processingRequest)) {
266
267
  h.current = !1;
267
268
  return;
268
269
  }
269
270
  h.current || (L(!1), P(null), A({
270
- baselineCalculatedAt: s.payrollShow?.calculatedAt?.getTime() ?? null,
271
+ baselineCalculatedAt: l.payrollShow?.calculatedAt?.getTime() ?? null,
271
272
  // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.
272
273
  sawCalculatingThisPoll: !0
273
274
  }));
274
275
  }
275
276
  }, [
276
- s.payrollShow?.processingRequest,
277
- s.payrollShow?.calculatedAt,
277
+ l.payrollShow?.processingRequest,
278
+ l.payrollShow?.calculatedAt,
278
279
  C,
279
280
  A,
280
281
  P
281
282
  ]);
282
283
  const he = (() => {
283
- const e = s.payrollShow?.payrollStatusMeta;
284
+ const e = l.payrollShow?.payrollStatusMeta;
284
285
  if (e?.payrollLate && e.initialCheckDate && e.expectedDebitTime && e.expectedCheckDate)
285
286
  return {
286
287
  label: n("alerts.payrollLate", {
@@ -292,7 +293,7 @@ const Ve = ({
292
293
  }),
293
294
  variant: "warning"
294
295
  };
295
- const { payrollShow: r } = s;
296
+ const { payrollShow: r } = l;
296
297
  if (r?.checkDate && r.payrollDeadline)
297
298
  return {
298
299
  label: n("alerts.directDepositDeadline", {
@@ -308,7 +309,7 @@ const Ve = ({
308
309
  {
309
310
  className: T,
310
311
  companyId: c,
311
- payrollId: l,
312
+ payrollId: s,
312
313
  onEvent: (o, r) => {
313
314
  o === i.RUN_PAYROLL_CANCELLED && R(), t(o, r);
314
315
  },
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { payrollsCalculate } from '@gusto/embedded-api/funcs/payrollsCalculate'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport type { GetV1CompaniesCompanyIdPayrollsPayrollIdRequest } from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayrollspayrollid'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport { usePayrollsCalculateGrossUpMutation } from '@gusto/embedded-api/react-query/payrollsCalculateGrossUp'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api/models/components/payrollupdate'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { GrossUpModal } from '../GrossUpModal'\nimport { PayrollOverview } from '../PayrollOverview/PayrollOverview'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport { usePayrollConfigurationData } from './usePayrollConfigurationData'\nimport { getGrossUpTargetCompensationName, isGrossUpEligible } from './grossUpHelpers'\nimport { useCalculationPoll, isCalculatingStatus, type PayrollShow } from './useCalculationPoll'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link PayrollConfiguration}.\n *\n * @public\n */\nexport interface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n /** The associated company identifier. */\n companyId: string\n /** The associated payroll identifier. */\n payrollId: string\n /** Optional alert components to render above the configuration content. */\n alerts?: ReactNode\n /** Whether to show the reimbursements column in the compensation table. Defaults to `true`. */\n withReimbursements?: boolean\n}\n\n/**\n * Handles the configuration phase of payroll processing, allowing users to review and modify employee compensation before calculating the payroll.\n *\n * @remarks\n * If the payroll turns out to already be processed (e.g. another actor submitted it while this\n * screen was open), this component emits `runPayroll/alreadyProcessed` and then renders\n * {@link PayrollOverview} in its place — the read-only breakdown with the gated \"Cancel payroll\"\n * action — instead of the configuration table. Events from that delegated view (e.g.\n * `runPayroll/cancelled`) are emitted through this component's own `onEvent`.\n *\n * Emits the following events:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/employee/edit` | An employee row is selected for editing | `{ employeeId, firstName, lastName }` |\n * | `runPayroll/employee/skip` | An employee is skipped or unskipped for this payroll | `{ employeeId }` |\n * | `runPayroll/employee/saved` | Employee compensation changes are persisted | `{ payrollPrepared }` |\n * | `runPayroll/calculated` | Payroll calculation completes successfully | `{ payrollId, alert, payPeriod }` |\n * | `runPayroll/alreadyProcessed` | The payroll turns out to already be processed while configuring it | `{ payrollId, alert, payPeriod }` |\n * | `runPayroll/processingFailed` | Payroll calculation fails or times out | — |\n * | `runPayroll/blockers/viewAll` | The \"view all blockers\" affordance is selected | — |\n * | `runPayroll/grossUp/selected` | The set-net-earnings menu item is selected for an employee | `{ employeeUuid }` |\n * | `runPayroll/grossUp/calculated` | A gross-up amount is calculated from a target net pay | `{ grossUp, netPay, employeeUuid }` |\n *\n * @param props - See {@link PayrollConfigurationProps}.\n * @returns The payroll configuration screen.\n * @public\n */\nexport function PayrollConfiguration(props: PayrollConfigurationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n onEvent,\n companyId,\n payrollId,\n dictionary,\n alerts,\n withReimbursements = true,\n className,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler, setError } = useBase()\n const dateFormatter = useDateFormatter()\n\n const [isCalculatingPayroll, setIsCalculatingPayroll] = useState(false)\n // True once this screen has read a \"calculating\" status for the payroll, whether we started that\n // calc or someone else did. Calling prepare after that would wipe the result, so we use this to\n // keep prepare off.\n const hasSeenCalculatingRef = useRef(false)\n // Set when a poll ends in a non-retryable read error without confirming a calculated/failed\n // outcome. Guards the auto-pickup effect below from re-arming a poll against the same stale\n // \"Calculating\" read over and over -- it only clears once the status genuinely leaves Calculating.\n const hasTerminalPollErrorRef = useRef(false)\n const gustoClient = useGustoEmbeddedContext()\n\n const payrollRequest = useMemo<GetV1CompaniesCompanyIdPayrollsPayrollIdRequest>(\n () => ({\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions', 'payroll_status_meta'],\n }),\n [companyId, payrollId],\n )\n\n const { data: payrollData, refetch: refetchPayroll } = usePayrollsGetSuspense(payrollRequest)\n\n const excludedEmployeeUuids = useMemo(\n () =>\n payrollData.payrollShow?.employeeCompensations\n ?.filter(comp => comp.excluded)\n .map(comp => comp.employeeUuid!)\n .filter(Boolean) ?? [],\n [payrollData.payrollShow?.employeeCompensations],\n )\n\n // Remember once we've seen it calculating.\n if (isCalculatingStatus(payrollData.payrollShow?.processingRequest)) {\n hasSeenCalculatingRef.current = true\n }\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n\n const blockersFromApi: ApiPayrollBlocker[] = payrollBlockerList.map(blocker => ({\n key: blocker.key,\n message: blocker.message,\n }))\n\n const [payrollBlockers, setPayrollBlockers] = useState(blockersFromApi)\n // Drives the loader gate below. Deliberately separate from `error` -- `baseSubmitHandler`\n // clears `error` at the start of *any* submit (e.g. skipping an employee, applying a gross-up),\n // which would otherwise reopen this gate and get the loader stuck on with no poll running to\n // ever clear it (SDK-1276). Only the same sites that used to own the old boolean flag touch it.\n const [hasProcessingFailedAlert, setHasProcessingFailedAlert] = useState(false)\n\n const emitProcessingFailed = () => {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setHasProcessingFailedAlert(true)\n setError({\n category: 'internal_error',\n message: `${t('alerts.processingFailed.label')}. ${t('alerts.processingFailed.message')}`,\n fieldErrors: [],\n })\n }\n\n const onProcessingFailed = (payroll: PayrollShow | undefined) => {\n emitProcessingFailed()\n // Let prepare run again on retry — but only when there is no calculation for it to wipe.\n if (payroll?.calculatedAt == null) {\n hasSeenCalculatingRef.current = false\n }\n }\n\n const { start: startCalculationPoll, isPolling } = useCalculationPoll({\n refetch: refetchPayroll,\n onCalculated: (payroll: PayrollShow | undefined) => {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: {\n type: 'success',\n title: t('alerts.progressSaved'),\n alertKey: 'progressSaved',\n },\n payPeriod: payroll?.payPeriod,\n })\n setPayrollBlockers([])\n },\n onProcessingFailed,\n // Unlike a real processing failure, we never confirmed whether the calculation actually\n // succeeded server-side, so this must not reset hasSeenCalculatingRef — doing so would\n // re-arm prepare and risk wiping a calculation that may have genuinely completed.\n onError: () => {\n hasTerminalPollErrorRef.current = true\n emitProcessingFailed()\n },\n })\n\n // Show the loading state the whole time we're calculating, so a second tab shows the loader\n // instead of a blank table until it moves to the overview. Once the failed/error alert is\n // showing, the poll has already reached a terminal state, so the loading UI must clear even\n // though hasSeenCalculatingRef stays true (it still guards prepare separately, below).\n const isCalculatingActive =\n !hasProcessingFailedAlert &&\n (isCalculatingPayroll || isPolling || hasSeenCalculatingRef.current)\n\n const {\n employeeDetails,\n employeeCompensations,\n paySchedule,\n payPeriod,\n payrollCategory,\n pagination,\n isLoading,\n isAlreadyProcessed,\n refetch,\n } = usePayrollConfigurationData({\n companyId,\n payrollId,\n // Don't prepare while calculating, or once we've seen it calculate. If the payroll was already\n // calculated when we opened (e.g. clicking Edit), we do prepare so it can be edited.\n disablePrepare: isPolling || isCalculatingPayroll || hasSeenCalculatingRef.current,\n excludedEmployeeUuids,\n })\n\n const alreadyProcessedAlert: PayrollFlowAlert = useMemo(\n () => ({\n type: 'error',\n title: t('alerts.alreadyProcessed'),\n alertKey: 'alreadyProcessed',\n }),\n [t],\n )\n\n const hasFiredAlreadyProcessedRef = useRef(false)\n\n useEffect(() => {\n if (!isAlreadyProcessed) {\n hasFiredAlreadyProcessedRef.current = false\n return\n }\n if (hasFiredAlreadyProcessedRef.current) return\n hasFiredAlreadyProcessedRef.current = true\n onEvent(componentEvents.RUN_PAYROLL_ALREADY_PROCESSED, {\n payrollId,\n alert: alreadyProcessedAlert,\n payPeriod: payrollData.payrollShow?.payPeriod,\n })\n }, [\n isAlreadyProcessed,\n onEvent,\n payrollId,\n alreadyProcessedAlert,\n payrollData.payrollShow?.payPeriod,\n ])\n\n const { mutateAsync: updatePayroll, isPending: isUpdatingPayroll } = usePayrollsUpdateMutation()\n\n const { mutateAsync: calculateGrossUpMutation } = usePayrollsCalculateGrossUpMutation()\n\n const [grossUpEmployeeUuid, setGrossUpEmployeeUuid] = useState<string | null>(null)\n const [isGrossUpModalOpen, setIsGrossUpModalOpen] = useState(false)\n\n const grossUpEnabled = isGrossUpEligible(payrollCategory)\n const grossUpTargetCompensation = getGrossUpTargetCompensationName(payrollCategory)\n\n const onGrossUpSelect = (employeeUuid: string) => {\n setGrossUpEmployeeUuid(employeeUuid)\n setIsGrossUpModalOpen(true)\n onEvent(componentEvents.RUN_PAYROLL_GROSS_UP_SELECTED, { employeeUuid })\n }\n\n const onCalculateGrossUp = async (netPay: number): Promise<string | null> => {\n if (!grossUpEmployeeUuid) return null\n let grossUp: string | null = null\n\n await baseSubmitHandler(null, async () => {\n const result = await calculateGrossUpMutation({\n request: {\n payrollUuid: payrollId,\n payrollGrossUpRequest: {\n employeeUuid: grossUpEmployeeUuid,\n netPay: netPay.toString(),\n },\n },\n })\n\n grossUp = result.payrollGrossUpResponse?.grossUp ?? null\n\n if (grossUp) {\n onEvent(componentEvents.RUN_PAYROLL_GROSS_UP_CALCULATED, {\n grossUp,\n netPay,\n employeeUuid: grossUpEmployeeUuid,\n })\n }\n })\n\n return grossUp\n }\n\n const onGrossUpApply = async (grossAmount: string) => {\n if (!grossUpEmployeeUuid || !grossUpTargetCompensation) {\n throw new SDKInternalError(\n 'Unable to apply gross-up: missing employee or target compensation.',\n )\n }\n\n const employeeComp = employeeCompensations.find(ec => ec.employeeUuid === grossUpEmployeeUuid)\n if (!employeeComp) {\n throw new SDKInternalError('Unable to apply gross-up: employee compensation not found.')\n }\n\n const existingFixed = employeeComp.fixedCompensations ?? []\n const hasTargetCompensation = existingFixed.some(\n fc => fc.name?.toLowerCase() === grossUpTargetCompensation.toLowerCase(),\n )\n\n const updatedFixedCompensations = existingFixed.map(fc => ({\n name: fc.name,\n jobUuid: fc.jobUuid,\n amount:\n fc.name?.toLowerCase() === grossUpTargetCompensation.toLowerCase() ? grossAmount : '0',\n }))\n\n if (!hasTargetCompensation) {\n const primaryJobUuid =\n employeeComp.hourlyCompensations?.[0]?.jobUuid ?? existingFixed[0]?.jobUuid ?? ''\n updatedFixedCompensations.push({\n name: grossUpTargetCompensation,\n jobUuid: primaryJobUuid,\n amount: grossAmount,\n })\n }\n\n const updatedHourlyCompensations = (employeeComp.hourlyCompensations ?? []).map(hc => ({\n name: hc.name,\n jobUuid: hc.jobUuid,\n hours: '0',\n }))\n\n const updatedPaidTimeOff = (employeeComp.paidTimeOff ?? []).map(pto => ({\n name: pto.name,\n hours: '0',\n }))\n\n const transformedCompensation = transformEmployeeCompensation({\n ...employeeComp,\n fixedCompensations: updatedFixedCompensations,\n hourlyCompensations: updatedHourlyCompensations,\n paidTimeOff: updatedPaidTimeOff,\n })\n\n await baseSubmitHandler({}, async () => {\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [{ ...transformedCompensation, excluded: false }],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n await refetch()\n })\n\n setGrossUpEmployeeUuid(null)\n setIsGrossUpModalOpen(false)\n }\n\n const handleGrossUpApply = async (grossAmount: string) => {\n try {\n await onGrossUpApply(grossAmount)\n } catch {\n // Modal stays open; error is surfaced by baseSubmitHandler\n }\n }\n\n const onCalculatePayroll = async () => {\n setPayrollBlockers([])\n setHasProcessingFailedAlert(false)\n setError(null)\n // Mark it right away so prepare can't run and cancel the calculation we just started.\n hasSeenCalculatingRef.current = true\n\n await baseSubmitHandler({}, async () => {\n const result = await payrollSubmitHandler(async () => {\n setIsCalculatingPayroll(true)\n try {\n const calcResult = await payrollsCalculate(gustoClient, {\n companyId,\n payrollId,\n })\n if (!calcResult.ok) {\n throw calcResult.error\n }\n startCalculationPoll({\n baselineCalculatedAt: payrollData.payrollShow?.calculatedAt?.getTime() ?? null,\n // We just submitted the payroll, so we haven't yet seen it return with the calculating status\n sawCalculatingThisPoll: false,\n })\n } catch (error) {\n // Calculate itself failed before polling ever started (e.g. a 409 conflict), so let\n // prepare run again on retry -- otherwise hasSeenCalculatingRef stays stuck true forever\n // with no RUN_PAYROLL_CALCULATED/RUN_PAYROLL_PROCESSING_FAILED event ever firing.\n hasSeenCalculatingRef.current = false\n throw error\n } finally {\n setIsCalculatingPayroll(false)\n }\n })\n\n if (!result.success && result.blockers.length > 0) {\n setPayrollBlockers(result.blockers)\n }\n })\n }\n\n const onEdit = (employee: Employee) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_EDIT, {\n employeeId: employee.uuid,\n firstName: employee.firstName,\n lastName: employee.lastName,\n })\n }\n\n const transformEmployeeCompensation = (\n compensation: PayrollEmployeeCompensationsType,\n ): PayrollUpdateEmployeeCompensations => {\n const { paymentMethod } = compensation\n return {\n employeeUuid: compensation.employeeUuid,\n version: compensation.version,\n excluded: compensation.excluded,\n fixedCompensations: compensation.fixedCompensations,\n hourlyCompensations: compensation.hourlyCompensations,\n paidTimeOff: compensation.paidTimeOff,\n deductions: compensation.deductions,\n ...(paymentMethod && paymentMethod !== 'Historical' ? { paymentMethod } : {}),\n memo: compensation.memo || undefined,\n }\n }\n\n const onToggleExclude = async (employeeCompensation: PayrollEmployeeCompensationsType) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SKIP, {\n employeeId: employeeCompensation.employeeUuid,\n })\n await baseSubmitHandler({}, async () => {\n const transformedCompensation = transformEmployeeCompensation(employeeCompensation)\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { ...transformedCompensation, excluded: !transformedCompensation.excluded },\n ],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n await refetch()\n })\n }\n\n const onViewBlockers = () => {\n onEvent(componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL)\n }\n\n // Pick up a calculation this screen didn't start (another tab, another admin). Starting a poll\n // from rendered data is fine — only the decision to *finish* one must not depend on a render,\n // and that lives in the poll loop.\n useEffect(() => {\n if (isPolling) return\n if (!isCalculatingStatus(payrollData.payrollShow?.processingRequest)) {\n // The status only leaves Calculating on a genuinely fresh read, so this is where a prior\n // terminal failure stops blocking future pickups.\n hasTerminalPollErrorRef.current = false\n return\n }\n // A read error we already reported for this same stale \"Calculating\" snapshot -- retrying it\n // immediately would just spin (fail, isPolling flips false, this effect fires again, repeat)\n // instead of waiting for a genuinely new read.\n if (hasTerminalPollErrorRef.current) return\n\n // A fresh calculating status means a real calculation is in flight again -- even right after\n // this screen's own deadline reported one as failed -- so any stale failure alert must not\n // linger over it and block the loading UI.\n setHasProcessingFailedAlert(false)\n setError(null)\n startCalculationPoll({\n baselineCalculatedAt: payrollData.payrollShow?.calculatedAt?.getTime() ?? null,\n // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.\n sawCalculatingThisPoll: true,\n })\n }, [\n payrollData.payrollShow?.processingRequest,\n payrollData.payrollShow?.calculatedAt,\n isPolling,\n startCalculationPoll,\n setError,\n ])\n\n const payrollAlert = (() => {\n const statusMeta = payrollData.payrollShow?.payrollStatusMeta\n\n const isLatePayroll =\n statusMeta?.payrollLate &&\n statusMeta.initialCheckDate &&\n statusMeta.expectedDebitTime &&\n statusMeta.expectedCheckDate\n\n if (isLatePayroll) {\n return {\n label: t('alerts.payrollLate', {\n initialCheckDate: dateFormatter.formatShortWithWeekday(statusMeta.initialCheckDate),\n }),\n content: t('alerts.payrollLateText', {\n ...dateFormatter.formatWithTime(statusMeta.expectedDebitTime),\n newCheckDate: dateFormatter.formatShortWithWeekday(statusMeta.expectedCheckDate),\n }),\n variant: 'warning' as const,\n }\n }\n\n const { payrollShow } = payrollData\n\n if (payrollShow?.checkDate && payrollShow.payrollDeadline) {\n return {\n label: t('alerts.directDepositDeadline', {\n payDate: dateFormatter.formatShortWithWeekday(payrollShow.checkDate),\n ...dateFormatter.formatWithTime(payrollShow.payrollDeadline),\n }),\n content: t('alerts.directDepositDeadlineText'),\n variant: 'info' as const,\n }\n }\n\n return undefined\n })()\n\n if (isAlreadyProcessed) {\n const onAlreadyProcessedOverviewEvent = (type: EventType, data?: unknown) => {\n if (type === componentEvents.RUN_PAYROLL_CANCELLED) {\n // Cancelling un-processes the payroll, making it editable again — re-run prepare so\n // this component drops back into the configuration table for the same payrollId.\n void refetch()\n }\n onEvent(type, data)\n }\n\n return (\n <PayrollOverview\n className={className}\n companyId={companyId}\n payrollId={payrollId}\n onEvent={onAlreadyProcessedOverviewEvent}\n withReimbursements={withReimbursements}\n alerts={[alreadyProcessedAlert]}\n />\n )\n }\n\n return (\n <>\n <PayrollConfigurationPresentation\n className={className}\n onCalculatePayroll={onCalculatePayroll}\n isCalculateDisabled={blockersFromApi.length > 0}\n onEdit={onEdit}\n onToggleExclude={onToggleExclude}\n onViewBlockers={onViewBlockers}\n employeeCompensations={employeeCompensations}\n employeeDetails={employeeDetails}\n payPeriod={payPeriod}\n paySchedule={paySchedule}\n payrollCategory={payrollCategory}\n alerts={alerts}\n payrollAlert={payrollAlert}\n isPending={isCalculatingActive || isLoading || isUpdatingPayroll}\n isCalculating={isCalculatingActive}\n payrollBlockers={payrollBlockers}\n pagination={pagination}\n withReimbursements={withReimbursements}\n grossUpEnabled={grossUpEnabled}\n onGrossUpSelect={onGrossUpSelect}\n />\n {grossUpEnabled && (\n <GrossUpModal\n isOpen={isGrossUpModalOpen}\n onCalculateGrossUp={onCalculateGrossUp}\n onApply={handleGrossUpApply}\n onCancel={() => {\n setIsGrossUpModalOpen(false)\n }}\n />\n )}\n </>\n )\n}\n"],"names":["PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","withReimbursements","className","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","setError","useBase","dateFormatter","useDateFormatter","isCalculatingPayroll","setIsCalculatingPayroll","useState","hasSeenCalculatingRef","useRef","hasTerminalPollErrorRef","gustoClient","useGustoEmbeddedContext","payrollRequest","useMemo","payrollData","refetchPayroll","usePayrollsGetSuspense","excludedEmployeeUuids","comp","isCalculatingStatus","blockersData","usePayrollsGetBlockersSuspense","blockersFromApi","blocker","payrollBlockers","setPayrollBlockers","hasProcessingFailedAlert","setHasProcessingFailedAlert","emitProcessingFailed","componentEvents","onProcessingFailed","payroll","startCalculationPoll","isPolling","useCalculationPoll","isCalculatingActive","employeeDetails","employeeCompensations","paySchedule","payPeriod","payrollCategory","pagination","isLoading","isAlreadyProcessed","refetch","usePayrollConfigurationData","alreadyProcessedAlert","hasFiredAlreadyProcessedRef","useEffect","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","calculateGrossUpMutation","usePayrollsCalculateGrossUpMutation","grossUpEmployeeUuid","setGrossUpEmployeeUuid","isGrossUpModalOpen","setIsGrossUpModalOpen","grossUpEnabled","isGrossUpEligible","grossUpTargetCompensation","getGrossUpTargetCompensationName","onGrossUpSelect","employeeUuid","onCalculateGrossUp","netPay","grossUp","onGrossUpApply","grossAmount","SDKInternalError","employeeComp","ec","existingFixed","hasTargetCompensation","fc","updatedFixedCompensations","primaryJobUuid","updatedHourlyCompensations","hc","updatedPaidTimeOff","pto","transformedCompensation","transformEmployeeCompensation","result","handleGrossUpApply","onCalculatePayroll","payrollSubmitHandler","calcResult","payrollsCalculate","error","onEdit","employee","compensation","paymentMethod","onToggleExclude","employeeCompensation","onViewBlockers","payrollAlert","statusMeta","payrollShow","PayrollOverview","type","data","jsxs","Fragment","PayrollConfigurationPresentation","GrossUpModal"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollConfiguration.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfiguration.tsx"],"sourcesContent":["import { useEffect, useMemo, useRef, useState, type ReactNode } from 'react'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { payrollsCalculate } from '@gusto/embedded-api/funcs/payrollsCalculate'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api/react-query/_context'\nimport type { GetV1CompaniesCompanyIdPayrollsPayrollIdRequest } from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayrollspayrollid'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport { usePayrollsCalculateGrossUpMutation } from '@gusto/embedded-api/react-query/payrollsCalculateGrossUp'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api/models/components/payrollupdate'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api/react-query/payrollsGetBlockers'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { GrossUpModal } from '../GrossUpModal'\nimport { PayrollOverview } from '../PayrollOverview/PayrollOverview'\nimport type { PayrollFlowAlert } from '../PayrollFlow/PayrollFlowComponents'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport { usePayrollConfigurationData } from './usePayrollConfigurationData'\nimport { getGrossUpTargetCompensationName, isGrossUpEligible } from './grossUpHelpers'\nimport { useCalculationPoll, isCalculatingStatus, type PayrollShow } from './useCalculationPoll'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link PayrollConfiguration}.\n *\n * @public\n */\nexport interface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n /** The associated company identifier. */\n companyId: string\n /** The associated payroll identifier. */\n payrollId: string\n /** Optional alert components to render above the configuration content. */\n alerts?: ReactNode\n /** Whether to show the reimbursements column in the compensation table. Defaults to `true`. */\n withReimbursements?: boolean\n}\n\n/**\n * Handles the configuration phase of payroll processing, allowing users to review and modify employee compensation before calculating the payroll.\n *\n * @remarks\n * If the payroll turns out to already be processed (e.g. another actor submitted it while this\n * screen was open), this component emits `runPayroll/alreadyProcessed` and then renders\n * {@link PayrollOverview} in its place — the read-only breakdown with the gated \"Cancel payroll\"\n * action — instead of the configuration table. Events from that delegated view (e.g.\n * `runPayroll/cancelled`) are emitted through this component's own `onEvent`.\n *\n * Emits the following events:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `runPayroll/employee/edit` | An employee row is selected for editing | `{ payrollId, employeeId, firstName, lastName }` |\n * | `runPayroll/employee/skip` | An employee is skipped or unskipped for this payroll | `{ employeeId }` |\n * | `runPayroll/employee/saved` | Employee compensation changes are persisted | `{ payrollPrepared }` |\n * | `runPayroll/calculated` | Payroll calculation completes successfully | `{ payrollId, alert, payPeriod }` |\n * | `runPayroll/alreadyProcessed` | The payroll turns out to already be processed while configuring it | `{ payrollId, alert, payPeriod }` |\n * | `runPayroll/processingFailed` | Payroll calculation fails or times out | — |\n * | `runPayroll/blockers/viewAll` | The \"view all blockers\" affordance is selected | — |\n * | `runPayroll/grossUp/selected` | The set-net-earnings menu item is selected for an employee | `{ employeeUuid }` |\n * | `runPayroll/grossUp/calculated` | A gross-up amount is calculated from a target net pay | `{ grossUp, netPay, employeeUuid }` |\n *\n * @param props - See {@link PayrollConfigurationProps}.\n * @returns The payroll configuration screen.\n * @public\n */\nexport function PayrollConfiguration(props: PayrollConfigurationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({\n onEvent,\n companyId,\n payrollId,\n dictionary,\n alerts,\n withReimbursements = true,\n className,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler, setError } = useBase()\n const dateFormatter = useDateFormatter()\n\n const [isCalculatingPayroll, setIsCalculatingPayroll] = useState(false)\n // True once this screen has read a \"calculating\" status for the payroll, whether we started that\n // calc or someone else did. Calling prepare after that would wipe the result, so we use this to\n // keep prepare off.\n const hasSeenCalculatingRef = useRef(false)\n // Set when a poll ends in a non-retryable read error without confirming a calculated/failed\n // outcome. Guards the auto-pickup effect below from re-arming a poll against the same stale\n // \"Calculating\" read over and over -- it only clears once the status genuinely leaves Calculating.\n const hasTerminalPollErrorRef = useRef(false)\n const gustoClient = useGustoEmbeddedContext()\n\n const payrollRequest = useMemo<GetV1CompaniesCompanyIdPayrollsPayrollIdRequest>(\n () => ({\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions', 'payroll_status_meta'],\n }),\n [companyId, payrollId],\n )\n\n const { data: payrollData, refetch: refetchPayroll } = usePayrollsGetSuspense(payrollRequest)\n\n const excludedEmployeeUuids = useMemo(\n () =>\n payrollData.payrollShow?.employeeCompensations\n ?.filter(comp => comp.excluded)\n .map(comp => comp.employeeUuid!)\n .filter(Boolean) ?? [],\n [payrollData.payrollShow?.employeeCompensations],\n )\n\n // Remember once we've seen it calculating.\n if (isCalculatingStatus(payrollData.payrollShow?.processingRequest)) {\n hasSeenCalculatingRef.current = true\n }\n\n const { data: blockersData } = usePayrollsGetBlockersSuspense({\n companyUuid: companyId,\n })\n\n const payrollBlockerList = blockersData.payrollBlockers ?? []\n\n const blockersFromApi: ApiPayrollBlocker[] = payrollBlockerList.map(blocker => ({\n key: blocker.key,\n message: blocker.message,\n }))\n\n const [payrollBlockers, setPayrollBlockers] = useState(blockersFromApi)\n // Drives the loader gate below. Deliberately separate from `error` -- `baseSubmitHandler`\n // clears `error` at the start of *any* submit (e.g. skipping an employee, applying a gross-up),\n // which would otherwise reopen this gate and get the loader stuck on with no poll running to\n // ever clear it (SDK-1276). Only the same sites that used to own the old boolean flag touch it.\n const [hasProcessingFailedAlert, setHasProcessingFailedAlert] = useState(false)\n\n const emitProcessingFailed = () => {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setHasProcessingFailedAlert(true)\n setError({\n category: 'internal_error',\n message: `${t('alerts.processingFailed.label')}. ${t('alerts.processingFailed.message')}`,\n fieldErrors: [],\n })\n }\n\n const onProcessingFailed = (payroll: PayrollShow | undefined) => {\n emitProcessingFailed()\n // Let prepare run again on retry — but only when there is no calculation for it to wipe.\n if (payroll?.calculatedAt == null) {\n hasSeenCalculatingRef.current = false\n }\n }\n\n const { start: startCalculationPoll, isPolling } = useCalculationPoll({\n refetch: refetchPayroll,\n onCalculated: (payroll: PayrollShow | undefined) => {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: {\n type: 'success',\n title: t('alerts.progressSaved'),\n alertKey: 'progressSaved',\n },\n payPeriod: payroll?.payPeriod,\n })\n setPayrollBlockers([])\n },\n onProcessingFailed,\n // Unlike a real processing failure, we never confirmed whether the calculation actually\n // succeeded server-side, so this must not reset hasSeenCalculatingRef — doing so would\n // re-arm prepare and risk wiping a calculation that may have genuinely completed.\n onError: () => {\n hasTerminalPollErrorRef.current = true\n emitProcessingFailed()\n },\n })\n\n // Show the loading state the whole time we're calculating, so a second tab shows the loader\n // instead of a blank table until it moves to the overview. Once the failed/error alert is\n // showing, the poll has already reached a terminal state, so the loading UI must clear even\n // though hasSeenCalculatingRef stays true (it still guards prepare separately, below).\n const isCalculatingActive =\n !hasProcessingFailedAlert &&\n (isCalculatingPayroll || isPolling || hasSeenCalculatingRef.current)\n\n const {\n employeeDetails,\n employeeCompensations,\n paySchedule,\n payPeriod,\n payrollCategory,\n pagination,\n isLoading,\n isAlreadyProcessed,\n refetch,\n } = usePayrollConfigurationData({\n companyId,\n payrollId,\n // Don't prepare while calculating, or once we've seen it calculate. If the payroll was already\n // calculated when we opened (e.g. clicking Edit), we do prepare so it can be edited.\n disablePrepare: isPolling || isCalculatingPayroll || hasSeenCalculatingRef.current,\n excludedEmployeeUuids,\n })\n\n const alreadyProcessedAlert: PayrollFlowAlert = useMemo(\n () => ({\n type: 'error',\n title: t('alerts.alreadyProcessed'),\n alertKey: 'alreadyProcessed',\n }),\n [t],\n )\n\n const hasFiredAlreadyProcessedRef = useRef(false)\n\n useEffect(() => {\n if (!isAlreadyProcessed) {\n hasFiredAlreadyProcessedRef.current = false\n return\n }\n if (hasFiredAlreadyProcessedRef.current) return\n hasFiredAlreadyProcessedRef.current = true\n onEvent(componentEvents.RUN_PAYROLL_ALREADY_PROCESSED, {\n payrollId,\n alert: alreadyProcessedAlert,\n payPeriod: payrollData.payrollShow?.payPeriod,\n })\n }, [\n isAlreadyProcessed,\n onEvent,\n payrollId,\n alreadyProcessedAlert,\n payrollData.payrollShow?.payPeriod,\n ])\n\n const { mutateAsync: updatePayroll, isPending: isUpdatingPayroll } = usePayrollsUpdateMutation()\n\n const { mutateAsync: calculateGrossUpMutation } = usePayrollsCalculateGrossUpMutation()\n\n const [grossUpEmployeeUuid, setGrossUpEmployeeUuid] = useState<string | null>(null)\n const [isGrossUpModalOpen, setIsGrossUpModalOpen] = useState(false)\n\n const grossUpEnabled = isGrossUpEligible(payrollCategory)\n const grossUpTargetCompensation = getGrossUpTargetCompensationName(payrollCategory)\n\n const onGrossUpSelect = (employeeUuid: string) => {\n setGrossUpEmployeeUuid(employeeUuid)\n setIsGrossUpModalOpen(true)\n onEvent(componentEvents.RUN_PAYROLL_GROSS_UP_SELECTED, { employeeUuid })\n }\n\n const onCalculateGrossUp = async (netPay: number): Promise<string | null> => {\n if (!grossUpEmployeeUuid) return null\n let grossUp: string | null = null\n\n await baseSubmitHandler(null, async () => {\n const result = await calculateGrossUpMutation({\n request: {\n payrollUuid: payrollId,\n payrollGrossUpRequest: {\n employeeUuid: grossUpEmployeeUuid,\n netPay: netPay.toString(),\n },\n },\n })\n\n grossUp = result.payrollGrossUpResponse?.grossUp ?? null\n\n if (grossUp) {\n onEvent(componentEvents.RUN_PAYROLL_GROSS_UP_CALCULATED, {\n grossUp,\n netPay,\n employeeUuid: grossUpEmployeeUuid,\n })\n }\n })\n\n return grossUp\n }\n\n const onGrossUpApply = async (grossAmount: string) => {\n if (!grossUpEmployeeUuid || !grossUpTargetCompensation) {\n throw new SDKInternalError(\n 'Unable to apply gross-up: missing employee or target compensation.',\n )\n }\n\n const employeeComp = employeeCompensations.find(ec => ec.employeeUuid === grossUpEmployeeUuid)\n if (!employeeComp) {\n throw new SDKInternalError('Unable to apply gross-up: employee compensation not found.')\n }\n\n const existingFixed = employeeComp.fixedCompensations ?? []\n const hasTargetCompensation = existingFixed.some(\n fc => fc.name?.toLowerCase() === grossUpTargetCompensation.toLowerCase(),\n )\n\n const updatedFixedCompensations = existingFixed.map(fc => ({\n name: fc.name,\n jobUuid: fc.jobUuid,\n amount:\n fc.name?.toLowerCase() === grossUpTargetCompensation.toLowerCase() ? grossAmount : '0',\n }))\n\n if (!hasTargetCompensation) {\n const primaryJobUuid =\n employeeComp.hourlyCompensations?.[0]?.jobUuid ?? existingFixed[0]?.jobUuid ?? ''\n updatedFixedCompensations.push({\n name: grossUpTargetCompensation,\n jobUuid: primaryJobUuid,\n amount: grossAmount,\n })\n }\n\n const updatedHourlyCompensations = (employeeComp.hourlyCompensations ?? []).map(hc => ({\n name: hc.name,\n jobUuid: hc.jobUuid,\n hours: '0',\n }))\n\n const updatedPaidTimeOff = (employeeComp.paidTimeOff ?? []).map(pto => ({\n name: pto.name,\n hours: '0',\n }))\n\n const transformedCompensation = transformEmployeeCompensation({\n ...employeeComp,\n fixedCompensations: updatedFixedCompensations,\n hourlyCompensations: updatedHourlyCompensations,\n paidTimeOff: updatedPaidTimeOff,\n })\n\n await baseSubmitHandler({}, async () => {\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [{ ...transformedCompensation, excluded: false }],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n await refetch()\n })\n\n setGrossUpEmployeeUuid(null)\n setIsGrossUpModalOpen(false)\n }\n\n const handleGrossUpApply = async (grossAmount: string) => {\n try {\n await onGrossUpApply(grossAmount)\n } catch {\n // Modal stays open; error is surfaced by baseSubmitHandler\n }\n }\n\n const onCalculatePayroll = async () => {\n setPayrollBlockers([])\n setHasProcessingFailedAlert(false)\n setError(null)\n // Mark it right away so prepare can't run and cancel the calculation we just started.\n hasSeenCalculatingRef.current = true\n\n await baseSubmitHandler({}, async () => {\n const result = await payrollSubmitHandler(async () => {\n setIsCalculatingPayroll(true)\n try {\n const calcResult = await payrollsCalculate(gustoClient, {\n companyId,\n payrollId,\n })\n if (!calcResult.ok) {\n throw calcResult.error\n }\n startCalculationPoll({\n baselineCalculatedAt: payrollData.payrollShow?.calculatedAt?.getTime() ?? null,\n // We just submitted the payroll, so we haven't yet seen it return with the calculating status\n sawCalculatingThisPoll: false,\n })\n } catch (error) {\n // Calculate itself failed before polling ever started (e.g. a 409 conflict), so let\n // prepare run again on retry -- otherwise hasSeenCalculatingRef stays stuck true forever\n // with no RUN_PAYROLL_CALCULATED/RUN_PAYROLL_PROCESSING_FAILED event ever firing.\n hasSeenCalculatingRef.current = false\n throw error\n } finally {\n setIsCalculatingPayroll(false)\n }\n })\n\n if (!result.success && result.blockers.length > 0) {\n setPayrollBlockers(result.blockers)\n }\n })\n }\n\n const onEdit = (employee: Employee) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_EDIT, {\n payrollId,\n employeeId: employee.uuid,\n firstName: employee.firstName,\n lastName: employee.lastName,\n })\n }\n\n const transformEmployeeCompensation = (\n compensation: PayrollEmployeeCompensationsType,\n ): PayrollUpdateEmployeeCompensations => {\n const { paymentMethod } = compensation\n return {\n employeeUuid: compensation.employeeUuid,\n version: compensation.version,\n excluded: compensation.excluded,\n fixedCompensations: compensation.fixedCompensations,\n hourlyCompensations: compensation.hourlyCompensations,\n paidTimeOff: compensation.paidTimeOff,\n deductions: compensation.deductions,\n ...(paymentMethod && paymentMethod !== 'Historical' ? { paymentMethod } : {}),\n memo: compensation.memo || undefined,\n }\n }\n\n const onToggleExclude = async (employeeCompensation: PayrollEmployeeCompensationsType) => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SKIP, {\n employeeId: employeeCompensation.employeeUuid,\n })\n await baseSubmitHandler({}, async () => {\n const transformedCompensation = transformEmployeeCompensation(employeeCompensation)\n const result = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { ...transformedCompensation, excluded: !transformedCompensation.excluded },\n ],\n },\n },\n })\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.payrollPrepared,\n })\n await refetch()\n })\n }\n\n const onViewBlockers = () => {\n onEvent(componentEvents.RUN_PAYROLL_BLOCKERS_VIEW_ALL)\n }\n\n // Pick up a calculation this screen didn't start (another tab, another admin). Starting a poll\n // from rendered data is fine — only the decision to *finish* one must not depend on a render,\n // and that lives in the poll loop.\n useEffect(() => {\n if (isPolling) return\n if (!isCalculatingStatus(payrollData.payrollShow?.processingRequest)) {\n // The status only leaves Calculating on a genuinely fresh read, so this is where a prior\n // terminal failure stops blocking future pickups.\n hasTerminalPollErrorRef.current = false\n return\n }\n // A read error we already reported for this same stale \"Calculating\" snapshot -- retrying it\n // immediately would just spin (fail, isPolling flips false, this effect fires again, repeat)\n // instead of waiting for a genuinely new read.\n if (hasTerminalPollErrorRef.current) return\n\n // A fresh calculating status means a real calculation is in flight again -- even right after\n // this screen's own deadline reported one as failed -- so any stale failure alert must not\n // linger over it and block the loading UI.\n setHasProcessingFailedAlert(false)\n setError(null)\n startCalculationPoll({\n baselineCalculatedAt: payrollData.payrollShow?.calculatedAt?.getTime() ?? null,\n // We have seen the calculating status, which is why we're starting to poll now until it completes or fails.\n sawCalculatingThisPoll: true,\n })\n }, [\n payrollData.payrollShow?.processingRequest,\n payrollData.payrollShow?.calculatedAt,\n isPolling,\n startCalculationPoll,\n setError,\n ])\n\n const payrollAlert = (() => {\n const statusMeta = payrollData.payrollShow?.payrollStatusMeta\n\n const isLatePayroll =\n statusMeta?.payrollLate &&\n statusMeta.initialCheckDate &&\n statusMeta.expectedDebitTime &&\n statusMeta.expectedCheckDate\n\n if (isLatePayroll) {\n return {\n label: t('alerts.payrollLate', {\n initialCheckDate: dateFormatter.formatShortWithWeekday(statusMeta.initialCheckDate),\n }),\n content: t('alerts.payrollLateText', {\n ...dateFormatter.formatWithTime(statusMeta.expectedDebitTime),\n newCheckDate: dateFormatter.formatShortWithWeekday(statusMeta.expectedCheckDate),\n }),\n variant: 'warning' as const,\n }\n }\n\n const { payrollShow } = payrollData\n\n if (payrollShow?.checkDate && payrollShow.payrollDeadline) {\n return {\n label: t('alerts.directDepositDeadline', {\n payDate: dateFormatter.formatShortWithWeekday(payrollShow.checkDate),\n ...dateFormatter.formatWithTime(payrollShow.payrollDeadline),\n }),\n content: t('alerts.directDepositDeadlineText'),\n variant: 'info' as const,\n }\n }\n\n return undefined\n })()\n\n if (isAlreadyProcessed) {\n const onAlreadyProcessedOverviewEvent = (type: EventType, data?: unknown) => {\n if (type === componentEvents.RUN_PAYROLL_CANCELLED) {\n // Cancelling un-processes the payroll, making it editable again — re-run prepare so\n // this component drops back into the configuration table for the same payrollId.\n void refetch()\n }\n onEvent(type, data)\n }\n\n return (\n <PayrollOverview\n className={className}\n companyId={companyId}\n payrollId={payrollId}\n onEvent={onAlreadyProcessedOverviewEvent}\n withReimbursements={withReimbursements}\n alerts={[alreadyProcessedAlert]}\n />\n )\n }\n\n return (\n <>\n <PayrollConfigurationPresentation\n className={className}\n onCalculatePayroll={onCalculatePayroll}\n isCalculateDisabled={blockersFromApi.length > 0}\n onEdit={onEdit}\n onToggleExclude={onToggleExclude}\n onViewBlockers={onViewBlockers}\n employeeCompensations={employeeCompensations}\n employeeDetails={employeeDetails}\n payPeriod={payPeriod}\n paySchedule={paySchedule}\n payrollCategory={payrollCategory}\n alerts={alerts}\n payrollAlert={payrollAlert}\n isPending={isCalculatingActive || isLoading || isUpdatingPayroll}\n isCalculating={isCalculatingActive}\n payrollBlockers={payrollBlockers}\n pagination={pagination}\n withReimbursements={withReimbursements}\n grossUpEnabled={grossUpEnabled}\n onGrossUpSelect={onGrossUpSelect}\n />\n {grossUpEnabled && (\n <GrossUpModal\n isOpen={isGrossUpModalOpen}\n onCalculateGrossUp={onCalculateGrossUp}\n onApply={handleGrossUpApply}\n onCancel={() => {\n setIsGrossUpModalOpen(false)\n }}\n />\n )}\n </>\n )\n}\n"],"names":["PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","withReimbursements","className","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","setError","useBase","dateFormatter","useDateFormatter","isCalculatingPayroll","setIsCalculatingPayroll","useState","hasSeenCalculatingRef","useRef","hasTerminalPollErrorRef","gustoClient","useGustoEmbeddedContext","payrollRequest","useMemo","payrollData","refetchPayroll","usePayrollsGetSuspense","excludedEmployeeUuids","comp","isCalculatingStatus","blockersData","usePayrollsGetBlockersSuspense","blockersFromApi","blocker","payrollBlockers","setPayrollBlockers","hasProcessingFailedAlert","setHasProcessingFailedAlert","emitProcessingFailed","componentEvents","onProcessingFailed","payroll","startCalculationPoll","isPolling","useCalculationPoll","isCalculatingActive","employeeDetails","employeeCompensations","paySchedule","payPeriod","payrollCategory","pagination","isLoading","isAlreadyProcessed","refetch","usePayrollConfigurationData","alreadyProcessedAlert","hasFiredAlreadyProcessedRef","useEffect","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","calculateGrossUpMutation","usePayrollsCalculateGrossUpMutation","grossUpEmployeeUuid","setGrossUpEmployeeUuid","isGrossUpModalOpen","setIsGrossUpModalOpen","grossUpEnabled","isGrossUpEligible","grossUpTargetCompensation","getGrossUpTargetCompensationName","onGrossUpSelect","employeeUuid","onCalculateGrossUp","netPay","grossUp","onGrossUpApply","grossAmount","SDKInternalError","employeeComp","ec","existingFixed","hasTargetCompensation","fc","updatedFixedCompensations","primaryJobUuid","updatedHourlyCompensations","hc","updatedPaidTimeOff","pto","transformedCompensation","transformEmployeeCompensation","result","handleGrossUpApply","onCalculatePayroll","payrollSubmitHandler","calcResult","payrollsCalculate","error","onEdit","employee","compensation","paymentMethod","onToggleExclude","employeeCompensation","onViewBlockers","payrollAlert","statusMeta","payrollShow","PayrollOverview","type","data","jsxs","Fragment","PayrollConfigurationPresentation","GrossUpModal"],"mappings":"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"}
@@ -1,94 +1,104 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { useEmployeesGetSuspense as B } from "@gusto/embedded-api/react-query/employeesGet";
3
- import { useEmployeePaymentMethodsGetBankAccountsSuspense as v } from "@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts";
4
- import { usePayrollsUpdateMutation as x } from "@gusto/embedded-api/react-query/payrollsUpdate";
5
- import { useMemo as N } from "react";
6
- import { useQueryClient as q } from "@tanstack/react-query";
7
- import { usePreparedPayrollData as w } from "../usePreparedPayrollData.js";
8
- import { PREPARE_QUERY_KEY as M } from "../PayrollConfiguration/usePayrollConfigurationData.js";
9
- import { derivePayrollCategory as Q, isOffCyclePayroll as T } from "../payrollTypes.js";
10
- import { cleanupReimbursements as z } from "../helpers.js";
11
- import { UNSTABLE_PayrollEditEmployee as G } from "../UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js";
12
- import { PayrollEditEmployeePresentation as H } from "./PayrollEditEmployeePresentation.js";
13
- import { useUnstableFeature as K } from "../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
14
- import { componentEvents as c } from "../../../shared/constants.js";
15
- import { BaseComponent as j } from "../../Base/Base.js";
16
- import { useComponentDictionary as F } from "../../../i18n/I18n.js";
17
- import { useBase as V } from "../../Base/useBase.js";
18
- function ye(e) {
19
- return K("payrollRegularRateOfPay") ? /* @__PURE__ */ t(G, { ...e }) : /* @__PURE__ */ t(j, { ...e, children: /* @__PURE__ */ t(W, { ...e, children: e.children }) });
2
+ import { useEmployeesGetSuspense as v } from "@gusto/embedded-api/react-query/employeesGet";
3
+ import { useEmployeePaymentMethodsGetBankAccountsSuspense as N } from "@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts";
4
+ import { usePayrollsUpdateMutation as q } from "@gusto/embedded-api/react-query/payrollsUpdate";
5
+ import { useMemo as M } from "react";
6
+ import { useQueryClient as Q } from "@tanstack/react-query";
7
+ import { usePreparedPayrollData as T } from "../usePreparedPayrollData.js";
8
+ import { PREPARE_QUERY_KEY as W } from "../PayrollConfiguration/usePayrollConfigurationData.js";
9
+ import { derivePayrollCategory as z, isOffCyclePayroll as G } from "../payrollTypes.js";
10
+ import { cleanupReimbursements as H } from "../helpers.js";
11
+ import { UNSTABLE_PayrollEditEmployee as K } from "../UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js";
12
+ import { PayrollEditEmployeePresentation as j } from "./PayrollEditEmployeePresentation.js";
13
+ import { useUnstableFeature as F } from "../../../contexts/UnstableFeaturesProvider/useUnstableFeature.js";
14
+ import { componentEvents as d } from "../../../shared/constants.js";
15
+ import { BaseComponent as V } from "../../Base/Base.js";
16
+ import { useComponentDictionary as J } from "../../../i18n/I18n.js";
17
+ import { useBase as X } from "../../Base/useBase.js";
18
+ function Ee(e) {
19
+ return F("payrollRegularRateOfPay") ? /* @__PURE__ */ t(K, { ...e }) : /* @__PURE__ */ t(V, { ...e, children: /* @__PURE__ */ t(Z, { ...e, children: e.children }) });
20
20
  }
21
- const W = ({
21
+ const Z = ({
22
22
  employeeId: e,
23
- companyId: n,
24
- payrollId: s,
25
- onEvent: i,
26
- dictionary: y,
27
- withReimbursements: d = !0,
28
- className: f
23
+ companyId: s,
24
+ payrollId: i,
25
+ onEvent: p,
26
+ dictionary: f,
27
+ withReimbursements: E = !0,
28
+ className: P
29
29
  }) => {
30
- F("Payroll.PayrollEditEmployee", y);
31
- const E = q(), { LoadingIndicator: P, baseSubmitHandler: C } = V(), { data: R } = B({ employeeId: e }), { data: A } = v({
30
+ J("Payroll.PayrollEditEmployee", f);
31
+ const C = Q(), { LoadingIndicator: R, baseSubmitHandler: b } = X(), { data: h } = v({ employeeId: e }), { data: A } = N({
32
32
  employeeId: e
33
- }), L = N(() => [e], [e]), { preparedPayroll: r, paySchedule: b, isLoading: g } = w({
34
- companyId: n,
35
- payrollId: s,
33
+ }), L = M(() => [e], [e]), { preparedPayroll: r, paySchedule: g, isLoading: k } = T({
34
+ companyId: s,
35
+ payrollId: i,
36
36
  employeeUuids: L
37
- }), { mutateAsync: D, isPending: S } = x(), m = R.employee, _ = r?.employeeCompensations?.at(0), O = (A.employeeBankAccounts || []).length > 0, l = Q(r ?? {}), U = !T(l), h = ({
37
+ }), { mutateAsync: D, isPending: S } = q(), u = h.employee, _ = r?.employeeCompensations?.at(0), O = (A.employeeBankAccounts || []).length > 0, y = z(r ?? {}), U = !G(y), w = ({
38
38
  paymentMethod: o,
39
- reimbursements: a,
40
- customWithholdings: p,
41
- ...u
39
+ reimbursements: n,
40
+ customWithholdings: c,
41
+ ...a
42
42
  }) => ({
43
- ...u,
43
+ ...a,
44
+ // The legacy editor edits hours, not per-workweek breakdowns, so omit
45
+ // breakdowns and let the API use the hours we send.
46
+ hourlyCompensations: a.hourlyCompensations?.map((m) => {
47
+ const { breakdowns: Y, ...l } = m;
48
+ return l;
49
+ }),
50
+ fixedCompensations: a.fixedCompensations?.map((m) => {
51
+ const { breakdowns: Y, ...l } = m;
52
+ return l;
53
+ }),
44
54
  ...o && o !== "Historical" ? { paymentMethod: o } : {},
45
- memo: u.memo || void 0,
55
+ memo: a.memo || void 0,
46
56
  // Off-cycle payrolls write reimbursements via the legacy fixed_compensations field; the
47
57
  // itemized array gets rejected by the `emb_off_cycle_disable_named_reimbursements` backend
48
58
  // flag (default-on globally, expected removal 2026-09-01).
49
59
  // TODO(post-2026-09-01): drop the branch once the flag is gone.
50
- ...U && a ? { reimbursements: z(a) } : {}
51
- }), Y = async (o) => {
52
- const a = h(o);
53
- await C(null, async () => {
54
- const p = await D({
60
+ ...U && n ? { reimbursements: H(n) } : {}
61
+ }), x = async (o) => {
62
+ const n = w(o);
63
+ await b(null, async () => {
64
+ const c = await D({
55
65
  request: {
56
- companyId: n,
57
- payrollId: s,
66
+ companyId: s,
67
+ payrollId: i,
58
68
  payrollUpdate: {
59
- employeeCompensations: [a]
69
+ employeeCompensations: [n]
60
70
  }
61
71
  }
62
72
  });
63
- await E.invalidateQueries({
64
- queryKey: [M, s]
65
- }), i(c.RUN_PAYROLL_EMPLOYEE_SAVED, {
66
- payrollPrepared: p.payrollPrepared,
67
- employee: m
73
+ await C.invalidateQueries({
74
+ queryKey: [W, i]
75
+ }), p(d.RUN_PAYROLL_EMPLOYEE_SAVED, {
76
+ payrollPrepared: c.payrollPrepared,
77
+ employee: u
68
78
  });
69
79
  });
70
- }, k = () => {
71
- i(c.RUN_PAYROLL_EMPLOYEE_CANCELLED);
80
+ }, B = () => {
81
+ p(d.RUN_PAYROLL_EMPLOYEE_CANCELLED);
72
82
  };
73
- return g ? /* @__PURE__ */ t(P, {}) : /* @__PURE__ */ t(
74
- H,
83
+ return k ? /* @__PURE__ */ t(R, {}) : /* @__PURE__ */ t(
84
+ j,
75
85
  {
76
- className: f,
77
- onSave: Y,
78
- onCancel: k,
79
- employee: m,
86
+ className: P,
87
+ onSave: x,
88
+ onCancel: B,
89
+ employee: u,
80
90
  isPending: S,
81
91
  employeeCompensation: _,
82
92
  fixedCompensationTypes: r?.fixedCompensationTypes || [],
83
93
  payPeriodStartDate: r?.payPeriod?.startDate,
84
- paySchedule: b,
85
- payrollCategory: l,
86
- withReimbursements: d,
94
+ paySchedule: g,
95
+ payrollCategory: y,
96
+ withReimbursements: E,
87
97
  hasDirectDepositSetup: O
88
98
  }
89
99
  );
90
100
  };
91
101
  export {
92
- ye as PayrollEditEmployee
102
+ Ee as PayrollEditEmployee
93
103
  };
94
104
  //# sourceMappingURL=PayrollEditEmployee.js.map