@gusto/embedded-react-sdk 0.48.1 → 0.48.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 (494) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/components/Common/DocumentList/DocumentList.js +12 -12
  3. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  4. package/dist/components/Common/DocumentList/DocumentList.module.scss.js +3 -5
  5. package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
  6. package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayoutTypes.d.ts +1 -0
  7. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +7 -3
  8. package/dist/components/Common/PayrollLoading/PayrollLoadingTypes.d.ts +1 -0
  9. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +1 -0
  10. package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
  11. package/dist/components/Common/UI/Badge/BadgeTypes.d.ts +1 -0
  12. package/dist/components/Common/UI/Badge/BadgeTypes.js.map +1 -1
  13. package/dist/components/Common/UI/Banner/BannerTypes.d.ts +1 -0
  14. package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -1
  15. package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -0
  16. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.d.ts +1 -0
  17. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.js.map +1 -1
  18. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -0
  19. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  20. package/dist/components/Common/UI/Button/ButtonTypes.d.ts +4 -2
  21. package/dist/components/Common/UI/Button/ButtonTypes.js.map +1 -1
  22. package/dist/components/Common/UI/CalendarPreview/CalendarPreviewTypes.d.ts +3 -2
  23. package/dist/components/Common/UI/Card/CardTypes.d.ts +1 -0
  24. package/dist/components/Common/UI/Checkbox/CheckboxTypes.d.ts +1 -0
  25. package/dist/components/Common/UI/Checkbox/CheckboxTypes.js.map +1 -1
  26. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +2 -0
  27. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  28. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -0
  29. package/dist/components/Common/UI/DatePicker/DatePickerTypes.d.ts +1 -0
  30. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +2 -0
  31. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +2 -0
  32. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  33. package/dist/components/Common/UI/Dialog/DialogTypes.d.ts +1 -0
  34. package/dist/components/Common/UI/Dialog/DialogTypes.js.map +1 -1
  35. package/dist/components/Common/UI/FileInput/FileInputTypes.d.ts +1 -0
  36. package/dist/components/Common/UI/FileInput/FileInputTypes.js.map +1 -1
  37. package/dist/components/Common/UI/Heading/HeadingTypes.d.ts +1 -0
  38. package/dist/components/Common/UI/Link/LinkTypes.d.ts +4 -3
  39. package/dist/components/Common/UI/List/ListTypes.d.ts +13 -4
  40. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +1 -0
  41. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -1
  42. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +2 -0
  43. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  44. package/dist/components/Common/UI/Modal/ModalTypes.d.ts +1 -0
  45. package/dist/components/Common/UI/Modal/ModalTypes.js.map +1 -1
  46. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -0
  47. package/dist/components/Common/UI/NumberInput/NumberInputTypes.d.ts +1 -0
  48. package/dist/components/Common/UI/ProgressBar/ProgressBarTypes.d.ts +1 -0
  49. package/dist/components/Common/UI/Radio/RadioTypes.d.ts +1 -0
  50. package/dist/components/Common/UI/Radio/RadioTypes.js.map +1 -1
  51. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -0
  52. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  53. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -0
  54. package/dist/components/Common/UI/Switch/SwitchTypes.d.ts +1 -0
  55. package/dist/components/Common/UI/Switch/SwitchTypes.js.map +1 -1
  56. package/dist/components/Common/UI/Table/TableTypes.d.ts +3 -0
  57. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  58. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -0
  59. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -0
  60. package/dist/components/Common/UI/Text/TextTypes.js.map +1 -1
  61. package/dist/components/Common/UI/TextArea/TextAreaTypes.d.ts +1 -0
  62. package/dist/components/Common/UI/TextArea/TextAreaTypes.js.map +1 -1
  63. package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +1 -0
  64. package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
  65. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +13 -13
  66. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +18 -3
  67. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  68. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +18 -3
  69. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  70. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +20 -5
  71. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  72. package/dist/components/Company/BankAccount/BankAccount.js +7 -6
  73. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  74. package/dist/components/Company/BankAccount/BankAccountForm/context.js +18 -3
  75. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  76. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +18 -3
  77. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  78. package/dist/components/Company/DocumentSigner/DocumentSigner.js +3 -2
  79. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  80. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +27 -12
  81. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  82. package/dist/components/Company/Industry/Context.js +21 -6
  83. package/dist/components/Company/Industry/Context.js.map +1 -1
  84. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +18 -3
  85. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  86. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +18 -3
  87. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  88. package/dist/components/Company/OnboardingOverview/context.js +19 -4
  89. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  90. package/dist/components/Company/PaySchedule/PayScheduleForm.js +3 -2
  91. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  92. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +18 -3
  93. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  94. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +18 -3
  95. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  96. package/dist/components/Contractor/Address/useAddress.js +20 -5
  97. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  98. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +3 -2
  99. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  100. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +3 -2
  101. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  102. package/dist/components/Contractor/Profile/ContractorProfileForm.js +13 -13
  103. package/dist/components/Contractor/Profile/useContractorProfile.js +29 -21
  104. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  105. package/dist/components/Employee/Compensation/management/Compensation.js +3 -2
  106. package/dist/components/Employee/Compensation/management/Compensation.js.map +1 -1
  107. package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js +9 -8
  108. package/dist/components/Employee/Compensation/management/CompensationAddAnotherJobForm/CompensationAddAnotherJobForm.js.map +1 -1
  109. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js +3 -2
  110. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
  111. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +3 -2
  112. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  113. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js +3 -2
  114. package/dist/components/Employee/Compensation/management/CompensationEditJobForm/CompensationEditJobForm.js.map +1 -1
  115. package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js +3 -2
  116. package/dist/components/Employee/Compensation/management/CompensationEditPendingJobForm/CompensationEditPendingJobForm.js.map +1 -1
  117. package/dist/components/Employee/Compensation/onboarding/Compensation.js +3 -2
  118. package/dist/components/Employee/Compensation/onboarding/Compensation.js.map +1 -1
  119. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js +3 -2
  120. package/dist/components/Employee/Compensation/onboarding/EditCompensation/EditCompensation.js.map +1 -1
  121. package/dist/components/Employee/Deductions/management/Deductions.js +3 -2
  122. package/dist/components/Employee/Deductions/management/Deductions.js.map +1 -1
  123. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js +3 -2
  124. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
  125. package/dist/components/Employee/Documents/management/Documents.js +3 -2
  126. package/dist/components/Employee/Documents/management/Documents.js.map +1 -1
  127. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +25 -5
  128. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  129. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/index.d.ts +3 -0
  130. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +18 -3
  131. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  132. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +12 -11
  133. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  134. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +16 -16
  135. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +28 -5
  136. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  137. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/index.d.ts +3 -0
  138. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +26 -5
  139. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
  140. package/dist/components/Employee/Documents/shared/SignatureForm/index.d.ts +3 -0
  141. package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js +10 -9
  142. package/dist/components/Employee/FederalTaxes/management/FederalTaxes.js.map +1 -1
  143. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -2
  144. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  145. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +9 -8
  146. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  147. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +14 -13
  148. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js.map +1 -1
  149. package/dist/components/Employee/HomeAddress/management/HomeAddress.js +3 -2
  150. package/dist/components/Employee/HomeAddress/management/HomeAddress.js.map +1 -1
  151. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js +7 -6
  152. package/dist/components/Employee/PaymentMethod/management/PaymentMethod.js.map +1 -1
  153. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js +7 -6
  154. package/dist/components/Employee/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
  155. package/dist/components/Employee/Profile/management/Profile.js +12 -11
  156. package/dist/components/Employee/Profile/management/Profile.js.map +1 -1
  157. package/dist/components/Employee/Profile/management/ProfileEditForm.js +13 -12
  158. package/dist/components/Employee/Profile/management/ProfileEditForm.js.map +1 -1
  159. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +11 -10
  160. package/dist/components/Employee/Profile/onboarding/AdminProfile.js.map +1 -1
  161. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +3 -2
  162. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js.map +1 -1
  163. package/dist/components/Employee/Profile/onboarding/Profile.js +12 -11
  164. package/dist/components/Employee/Profile/onboarding/Profile.js.map +1 -1
  165. package/dist/components/Employee/StateTaxes/management/StateTaxes.js +10 -9
  166. package/dist/components/Employee/StateTaxes/management/StateTaxes.js.map +1 -1
  167. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -6
  168. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  169. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +3 -2
  170. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  171. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +3 -2
  172. package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
  173. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +10 -10
  174. package/dist/components/Employee/WorkAddress/management/WorkAddress.js +7 -6
  175. package/dist/components/Employee/WorkAddress/management/WorkAddress.js.map +1 -1
  176. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -0
  177. package/dist/components/Employee/exports/employeeOnboarding.js +28 -22
  178. package/dist/components/Employee/exports/employeeOnboarding.js.map +1 -1
  179. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +36 -2
  180. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  181. package/dist/components/InformationRequests/InformationRequestForm/index.d.ts +1 -1
  182. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.d.ts +22 -2
  183. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +8 -7
  184. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  185. package/dist/components/InformationRequests/InformationRequestList/index.d.ts +1 -1
  186. package/dist/components/InformationRequests/InformationRequests.d.ts +29 -2
  187. package/dist/components/InformationRequests/InformationRequests.js +8 -7
  188. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  189. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +2 -0
  190. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  191. package/dist/components/InformationRequests/index.d.ts +3 -3
  192. package/dist/components/InformationRequests/informationRequestsStateMachine.d.ts +2 -0
  193. package/dist/components/InformationRequests/informationRequestsStateMachine.js.map +1 -1
  194. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +36 -3
  195. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +22 -17
  196. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  197. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +1 -0
  198. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +3 -2
  199. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  200. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +14 -0
  201. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -1
  202. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -8
  203. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +9 -10
  204. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  205. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +1 -1
  206. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +1 -1
  207. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  208. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +11 -0
  209. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -1
  210. package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +1 -2
  211. package/dist/components/Payroll/ConfirmWireDetails/types.d.ts +23 -0
  212. package/dist/components/Payroll/Dismissal/DismissalFlow.d.ts +18 -0
  213. package/dist/components/Payroll/Dismissal/DismissalFlow.js.map +1 -1
  214. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.d.ts +15 -0
  215. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  216. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.d.ts +24 -0
  217. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  218. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +7 -0
  219. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  220. package/dist/components/Payroll/Dismissal/dismissalStateMachine.d.ts +2 -0
  221. package/dist/components/Payroll/Dismissal/dismissalStateMachine.js.map +1 -1
  222. package/dist/components/Payroll/Dismissal/index.d.ts +1 -1
  223. package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +1 -0
  224. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +33 -25
  225. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  226. package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +5 -0
  227. package/dist/components/Payroll/GrossUpModal/index.d.ts +0 -1
  228. package/dist/components/Payroll/OffCycle/OffCycleFlow.d.ts +31 -0
  229. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  230. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +20 -0
  231. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  232. package/dist/components/Payroll/OffCycle/offCycleStateMachine.d.ts +2 -0
  233. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  234. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +20 -0
  235. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  236. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -0
  237. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  238. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +24 -0
  239. package/dist/components/Payroll/OffCycleCreation/index.d.ts +1 -1
  240. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.d.ts +16 -0
  241. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
  242. package/dist/components/Payroll/OffCycleDeductionsSetting/types.d.ts +13 -0
  243. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +1 -0
  244. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +1 -1
  245. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  246. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts +18 -1
  247. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js.map +1 -1
  248. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.d.ts +1 -1
  249. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js +0 -1
  250. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js.map +1 -1
  251. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +15 -0
  252. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
  253. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +1 -0
  254. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  255. package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +43 -0
  256. package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -1
  257. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.d.ts +1 -0
  258. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  259. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModalTypes.d.ts +5 -1
  260. package/dist/components/Payroll/OffCycleTaxWithholdingModal/index.d.ts +0 -1
  261. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.d.ts +1 -0
  262. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -1
  263. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +14 -0
  264. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  265. package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +0 -2
  266. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +3 -0
  267. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  268. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.d.ts +19 -5
  269. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js +3 -2
  270. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  271. package/dist/components/Payroll/PayrollBlocker/index.d.ts +0 -1
  272. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +17 -11
  273. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +0 -2
  274. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  275. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +31 -3
  276. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +1 -2
  277. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  278. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -0
  279. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  280. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
  281. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -1
  282. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -0
  283. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  284. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +42 -3
  285. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +1 -2
  286. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  287. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
  288. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +0 -1
  289. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  290. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +8 -6
  291. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
  292. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  293. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +65 -0
  294. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  295. package/dist/components/Payroll/PayrollExecutionFlow/index.d.ts +0 -1
  296. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +2 -0
  297. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  298. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.d.ts +1 -0
  299. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.js.map +1 -1
  300. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.d.ts +1 -0
  301. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  302. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +38 -0
  303. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  304. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +27 -0
  305. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  306. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +1 -0
  307. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  308. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +2 -0
  309. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  310. package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +25 -1
  311. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -2
  312. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  313. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -0
  314. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  315. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +33 -4
  316. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +1 -2
  317. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  318. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +19 -0
  319. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  320. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +2 -0
  321. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  322. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +32 -13
  323. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  324. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -0
  325. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +65 -68
  326. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  327. package/dist/components/Payroll/PayrollList/types.d.ts +1 -0
  328. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +39 -3
  329. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -2
  330. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  331. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -0
  332. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  333. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.d.ts +1 -0
  334. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.js.map +1 -1
  335. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +1 -0
  336. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  337. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -0
  338. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  339. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +26 -3
  340. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +8 -12
  341. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  342. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -0
  343. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  344. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.d.ts +1 -0
  345. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.js.map +1 -1
  346. package/dist/components/Payroll/PayrollStatusBadges/index.d.ts +0 -2
  347. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +26 -0
  348. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  349. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.d.ts +2 -0
  350. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.js.map +1 -1
  351. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +21 -1
  352. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js +7 -6
  353. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  354. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.d.ts +5 -0
  355. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.js.map +1 -1
  356. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.d.ts +1 -0
  357. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +3 -2
  358. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  359. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.d.ts +1 -0
  360. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  361. package/dist/components/Payroll/RecoveryCases/index.d.ts +0 -1
  362. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.d.ts +5 -0
  363. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.js.map +1 -1
  364. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.d.ts +5 -0
  365. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  366. package/dist/components/Payroll/Transition/TransitionFlow.d.ts +21 -0
  367. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  368. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +23 -0
  369. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  370. package/dist/components/Payroll/Transition/transitionStateMachine.d.ts +2 -0
  371. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  372. package/dist/components/Payroll/TransitionCreation/TransitionCreation.d.ts +20 -0
  373. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  374. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +7 -0
  375. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +10 -10
  376. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
  377. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +27 -0
  378. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
  379. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -0
  380. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  381. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -0
  382. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  383. package/dist/components/Payroll/helpers.d.ts +157 -26
  384. package/dist/components/Payroll/helpers.js +0 -1
  385. package/dist/components/Payroll/helpers.js.map +1 -1
  386. package/dist/components/Payroll/index.d.ts +11 -2
  387. package/dist/components/Payroll/payrollTypes.d.ts +24 -0
  388. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  389. package/dist/components/Payroll/usePreparedPayrollData.d.ts +12 -0
  390. package/dist/components/Payroll/usePreparedPayrollData.js +34 -22
  391. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  392. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +7 -0
  393. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  394. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +19 -0
  395. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js +3 -2
  396. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
  397. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +44 -0
  398. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js +3 -2
  399. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
  400. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.d.ts +4 -0
  401. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  402. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -0
  403. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  404. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +28 -2
  405. package/dist/components/TimeOff/HolidayPolicyDetail/index.d.ts +0 -2
  406. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.d.ts +26 -0
  407. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  408. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.d.ts +1 -0
  409. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  410. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +10 -0
  411. package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +25 -0
  412. package/dist/components/TimeOff/PolicyList/PolicyList.js +3 -2
  413. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  414. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -0
  415. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  416. package/dist/components/TimeOff/PolicyList/PolicyListTypes.d.ts +17 -0
  417. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +22 -0
  418. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  419. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +14 -0
  420. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  421. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +31 -0
  422. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.d.ts +23 -0
  423. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  424. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -0
  425. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  426. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +10 -0
  427. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.d.ts +42 -0
  428. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.js.map +1 -1
  429. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +26 -0
  430. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  431. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +15 -2
  432. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js +1 -6
  433. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  434. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.d.ts +1 -0
  435. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  436. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.d.ts +29 -0
  437. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  438. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -0
  439. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  440. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +59 -1
  441. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/index.d.ts +0 -3
  442. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +1 -0
  443. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  444. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -0
  445. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +43 -42
  446. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  447. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
  448. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +1 -0
  449. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  450. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +3 -0
  451. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  452. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +9 -0
  453. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  454. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.d.ts +25 -0
  455. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  456. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +14 -0
  457. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  458. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +97 -6
  459. package/dist/components/TimeOff/TimeOffPolicyDetail/index.d.ts +1 -5
  460. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.d.ts +23 -0
  461. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.js.map +1 -1
  462. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.d.ts +22 -0
  463. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.js.map +1 -1
  464. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.d.ts +22 -0
  465. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.js.map +1 -1
  466. package/dist/components/TimeOff/index.d.ts +8 -2
  467. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -0
  468. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +48 -49
  469. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  470. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +66 -0
  471. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -0
  472. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  473. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +28 -0
  474. package/dist/components/TimeOff/shared/PolicyDetailLayout/index.d.ts +0 -1
  475. package/dist/components/TimeOff/shared/holidayHelpers.d.ts +5 -0
  476. package/dist/components/TimeOff/shared/holidayHelpers.js.map +1 -1
  477. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +4 -4
  478. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +39 -39
  479. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  480. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +42 -42
  481. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  482. package/dist/index.d.ts +1 -1
  483. package/dist/index.js +206 -205
  484. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js +1 -1
  485. package/dist/shared/constants.d.ts +12 -1
  486. package/dist/shared/constants.js.map +1 -1
  487. package/docs/reference/endpoint-inventory.json +55 -0
  488. package/package.json +6 -5
  489. package/dist/assets/icons/feature-icon-check.svg.js +0 -10
  490. package/dist/assets/icons/feature-icon-check.svg.js.map +0 -1
  491. package/dist/components/Payroll/PayrollEditEmployee/index.d.ts +0 -4
  492. package/dist/components/Payroll/PayrollFlow/index.d.ts +0 -3
  493. package/dist/components/TimeOff/TimeOffFlow/index.d.ts +0 -3
  494. package/dist/components/TimeOff/shared/EmployeeTable/index.d.ts +0 -4
@@ -1,4 +1,3 @@
1
1
  import "./types/i18next.d.ts"
2
- export { PayrollBlockerAlerts } from './components/PayrollBlockerAlerts';
3
2
  export { PayrollBlockerList } from './components/PayrollBlockerList';
4
3
  export type { ApiPayrollBlocker } from './payrollHelpers';
@@ -1,26 +1,32 @@
1
- import { PayrollBlockersError } from '@gusto/embedded-api-v-2025-11-15/models/errors/payrollblockerserror';
2
- import { UnprocessableEntityError } from '@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror';
1
+ /**
2
+ * A single payroll blocker entry: an issue that must be resolved before a payroll can be
3
+ * calculated or submitted (for example, missing employee information, invalid tax setups,
4
+ * or incomplete company configuration).
5
+ *
6
+ * @public
7
+ */
3
8
  export interface ApiPayrollBlocker {
9
+ /** Stable identifier for the blocker type, used to look up display copy and behavior. */
4
10
  key: string;
11
+ /** Human-readable message describing the blocker, when provided by the API. */
5
12
  message?: string;
6
13
  }
7
- export declare function isPayrollBlockersError(error: unknown): error is PayrollBlockersError;
8
- export declare function isUnprocessableEntityWithPayrollBlockers(error: unknown): error is UnprocessableEntityError;
14
+ /** @internal */
9
15
  export declare function parsePayrollBlockersFromError(error: unknown): ApiPayrollBlocker[];
16
+ /** @internal */
10
17
  export interface PayrollSubmitResult {
18
+ /** Whether the wrapped payroll operation completed without payroll blockers. */
11
19
  success: boolean;
20
+ /** Blockers parsed from the caught error; empty when `success` is `true`. */
12
21
  blockers: ApiPayrollBlocker[];
13
22
  }
14
- /**
15
- * Direct submit handler for payroll operations that handles payroll blockers
16
- * Returns blockers if found, otherwise throws the error for caller to handle
17
- */
23
+ /** @internal */
18
24
  export declare const payrollSubmitHandler: (payrollHandler: () => Promise<void>) => Promise<PayrollSubmitResult>;
25
+ /** @internal */
19
26
  export declare const isActionableBlocker: (key: string) => boolean;
27
+ /** @internal */
20
28
  export declare const hasActionableBlockers: (blockers: ApiPayrollBlocker[]) => boolean;
21
- /**
22
- * Get translation keys for a blocker - use these in components with useTranslation
23
- */
29
+ /** @internal */
24
30
  export declare function getBlockerTranslationKeys(key: string): {
25
31
  titleKey: string;
26
32
  descriptionKey: string;
@@ -33,8 +33,6 @@ export {
33
33
  g as getBlockerTranslationKeys,
34
34
  m as hasActionableBlockers,
35
35
  k as isActionableBlocker,
36
- l as isPayrollBlockersError,
37
- a as isUnprocessableEntityWithPayrollBlockers,
38
36
  i as parsePayrollBlockersFromError,
39
37
  p as payrollSubmitHandler
40
38
  };
@@ -1 +1 @@
1
- {"version":3,"file":"payrollHelpers.js","sources":["../../../../src/components/Payroll/PayrollBlocker/payrollHelpers.ts"],"sourcesContent":["import { PayrollBlockersError } from '@gusto/embedded-api-v-2025-11-15/models/errors/payrollblockerserror'\nimport { UnprocessableEntityError } from '@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror'\n\nfunction hasMetadataKey(metadata: unknown): metadata is { key: string } {\n return (\n typeof metadata === 'object' &&\n metadata !== null &&\n 'key' in metadata &&\n typeof (metadata as { key: unknown }).key === 'string'\n )\n}\n\nexport interface ApiPayrollBlocker {\n key: string\n message?: string\n}\n\nexport function isPayrollBlockersError(error: unknown): error is PayrollBlockersError {\n return error instanceof PayrollBlockersError\n}\n\nexport function isUnprocessableEntityWithPayrollBlockers(\n error: unknown,\n): error is UnprocessableEntityError {\n return (\n error instanceof UnprocessableEntityError &&\n error.errors.some(err => err.category === 'payroll_blocker')\n )\n}\n\nexport function parsePayrollBlockersFromError(error: unknown): ApiPayrollBlocker[] {\n // Handle PayrollBlockersError (dedicated blocker error type)\n if (isPayrollBlockersError(error)) {\n if (!error.errors || error.errors.length === 0) {\n return []\n }\n\n const blockers = error.errors.map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n // Handle UnprocessableEntityError with payroll_blocker category (e.g. contractor payment preview, payroll calculate)\n if (isUnprocessableEntityWithPayrollBlockers(error)) {\n const blockers = error.errors\n .filter(err => err.category === 'payroll_blocker')\n .map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n return []\n}\n\ntype PayrollBlockerError = PayrollBlockersError | UnprocessableEntityError\n\nconst hasPayrollBlockers = (error: unknown): error is PayrollBlockerError => {\n if (error instanceof PayrollBlockersError) {\n return true\n }\n if (error instanceof UnprocessableEntityError) {\n return error.errors.some(err => err.category === 'payroll_blocker')\n }\n return false\n}\n\nexport interface PayrollSubmitResult {\n success: boolean\n blockers: ApiPayrollBlocker[]\n}\n\n/**\n * Direct submit handler for payroll operations that handles payroll blockers\n * Returns blockers if found, otherwise throws the error for caller to handle\n */\nexport const payrollSubmitHandler = async (\n payrollHandler: () => Promise<void>,\n): Promise<PayrollSubmitResult> => {\n try {\n await payrollHandler()\n return { success: true, blockers: [] }\n } catch (error: unknown) {\n if (hasPayrollBlockers(error)) {\n const blockers = parsePayrollBlockersFromError(error)\n return { success: false, blockers }\n }\n\n // For non-payroll errors, re-throw\n throw error\n }\n}\n\nconst ACTIONABLE_BLOCKER_KEYS = ['pending_information_request', 'pending_recovery_case'] as const\n\nexport const isActionableBlocker = (key: string) =>\n ACTIONABLE_BLOCKER_KEYS.includes(key as (typeof ACTIONABLE_BLOCKER_KEYS)[number])\n\nexport const hasActionableBlockers = (blockers: ApiPayrollBlocker[]) =>\n blockers.some(b => isActionableBlocker(b.key))\n\n/**\n * Get translation keys for a blocker - use these in components with useTranslation\n */\nexport function getBlockerTranslationKeys(key: string) {\n return {\n titleKey: `blockers.${key}.title`,\n descriptionKey: `blockers.${key}.description`,\n helpTextKey: `blockers.${key}.help`,\n defaultActionKey: `blockers.${key}.defaultAction`,\n }\n}\n"],"names":["hasMetadataKey","metadata","isPayrollBlockersError","error","PayrollBlockersError","isUnprocessableEntityWithPayrollBlockers","UnprocessableEntityError","err","parsePayrollBlockersFromError","hasPayrollBlockers","payrollSubmitHandler","payrollHandler","ACTIONABLE_BLOCKER_KEYS","isActionableBlocker","key","hasActionableBlockers","blockers","b","getBlockerTranslationKeys"],"mappings":";;AAGA,SAASA,EAAeC,GAAgD;AACtE,SACE,OAAOA,KAAa,YACpBA,MAAa,QACb,SAASA,KACT,OAAQA,EAA8B,OAAQ;AAElD;AAOO,SAASC,EAAuBC,GAA+C;AACpF,SAAOA,aAAiBC;AAC1B;AAEO,SAASC,EACdF,GACmC;AACnC,SACEA,aAAiBG,KACjBH,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB;AAE/D;AAEO,SAASC,EAA8BL,GAAqC;AAEjF,SAAID,EAAuBC,CAAK,IAC1B,CAACA,EAAM,UAAUA,EAAM,OAAO,WAAW,IACpC,CAAA,IAGQA,EAAM,OAAO,IAAI,CAAAI,OAGzB,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAMCF,EAAyCF,CAAK,IAC/BA,EAAM,OACpB,OAAO,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,EAChD,IAAI,CAAAA,OAGI,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAKE,CAAA;AACT;AAIA,MAAME,IAAqB,CAACN,MACtBA,aAAiBC,IACZ,KAELD,aAAiBG,IACZH,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,IAE7D,IAYIG,IAAuB,OAClCC,MACiC;AACjC,MAAI;AACF,iBAAMA,EAAA,GACC,EAAE,SAAS,IAAM,UAAU,CAAA,EAAC;AAAA,EACrC,SAASR,GAAgB;AACvB,QAAIM,EAAmBN,CAAK;AAE1B,aAAO,EAAE,SAAS,IAAO,UADRK,EAA8BL,CAAK,EAC3B;AAI3B,UAAMA;AAAA,EACR;AACF,GAEMS,IAA0B,CAAC,+BAA+B,uBAAuB,GAE1EC,IAAsB,CAACC,MAClCF,EAAwB,SAASE,CAA+C,GAErEC,IAAwB,CAACC,MACpCA,EAAS,KAAK,CAAAC,MAAKJ,EAAoBI,EAAE,GAAG,CAAC;AAKxC,SAASC,EAA0BJ,GAAa;AACrD,SAAO;AAAA,IACL,UAAU,YAAYA,CAAG;AAAA,IACzB,gBAAgB,YAAYA,CAAG;AAAA,IAC/B,aAAa,YAAYA,CAAG;AAAA,IAC5B,kBAAkB,YAAYA,CAAG;AAAA,EAAA;AAErC;"}
1
+ {"version":3,"file":"payrollHelpers.js","sources":["../../../../src/components/Payroll/PayrollBlocker/payrollHelpers.ts"],"sourcesContent":["import { PayrollBlockersError } from '@gusto/embedded-api-v-2025-11-15/models/errors/payrollblockerserror'\nimport { UnprocessableEntityError } from '@gusto/embedded-api-v-2025-11-15/models/errors/unprocessableentityerror'\n\nfunction hasMetadataKey(metadata: unknown): metadata is { key: string } {\n return (\n typeof metadata === 'object' &&\n metadata !== null &&\n 'key' in metadata &&\n typeof (metadata as { key: unknown }).key === 'string'\n )\n}\n\n/**\n * A single payroll blocker entry: an issue that must be resolved before a payroll can be\n * calculated or submitted (for example, missing employee information, invalid tax setups,\n * or incomplete company configuration).\n *\n * @public\n */\nexport interface ApiPayrollBlocker {\n /** Stable identifier for the blocker type, used to look up display copy and behavior. */\n key: string\n /** Human-readable message describing the blocker, when provided by the API. */\n message?: string\n}\n\nfunction isPayrollBlockersError(error: unknown): error is PayrollBlockersError {\n return error instanceof PayrollBlockersError\n}\n\nfunction isUnprocessableEntityWithPayrollBlockers(\n error: unknown,\n): error is UnprocessableEntityError {\n return (\n error instanceof UnprocessableEntityError &&\n error.errors.some(err => err.category === 'payroll_blocker')\n )\n}\n\n/** @internal */\nexport function parsePayrollBlockersFromError(error: unknown): ApiPayrollBlocker[] {\n // Handle PayrollBlockersError (dedicated blocker error type)\n if (isPayrollBlockersError(error)) {\n if (!error.errors || error.errors.length === 0) {\n return []\n }\n\n const blockers = error.errors.map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n // Handle UnprocessableEntityError with payroll_blocker category (e.g. contractor payment preview, payroll calculate)\n if (isUnprocessableEntityWithPayrollBlockers(error)) {\n const blockers = error.errors\n .filter(err => err.category === 'payroll_blocker')\n .map(err => {\n const key = hasMetadataKey(err.metadata) ? err.metadata.key : err.errorKey || 'unknown'\n\n return { key, message: err.message }\n })\n\n return blockers\n }\n\n return []\n}\n\ntype PayrollBlockerError = PayrollBlockersError | UnprocessableEntityError\n\nconst hasPayrollBlockers = (error: unknown): error is PayrollBlockerError => {\n if (error instanceof PayrollBlockersError) {\n return true\n }\n if (error instanceof UnprocessableEntityError) {\n return error.errors.some(err => err.category === 'payroll_blocker')\n }\n return false\n}\n\n/** @internal */\nexport interface PayrollSubmitResult {\n /** Whether the wrapped payroll operation completed without payroll blockers. */\n success: boolean\n /** Blockers parsed from the caught error; empty when `success` is `true`. */\n blockers: ApiPayrollBlocker[]\n}\n\n/** @internal */\nexport const payrollSubmitHandler = async (\n payrollHandler: () => Promise<void>,\n): Promise<PayrollSubmitResult> => {\n try {\n await payrollHandler()\n return { success: true, blockers: [] }\n } catch (error: unknown) {\n if (hasPayrollBlockers(error)) {\n const blockers = parsePayrollBlockersFromError(error)\n return { success: false, blockers }\n }\n\n // For non-payroll errors, re-throw\n throw error\n }\n}\n\nconst ACTIONABLE_BLOCKER_KEYS = ['pending_information_request', 'pending_recovery_case'] as const\n\n/** @internal */\nexport const isActionableBlocker = (key: string) =>\n ACTIONABLE_BLOCKER_KEYS.includes(key as (typeof ACTIONABLE_BLOCKER_KEYS)[number])\n\n/** @internal */\nexport const hasActionableBlockers = (blockers: ApiPayrollBlocker[]) =>\n blockers.some(b => isActionableBlocker(b.key))\n\n/** @internal */\nexport function getBlockerTranslationKeys(key: string) {\n return {\n titleKey: `blockers.${key}.title`,\n descriptionKey: `blockers.${key}.description`,\n helpTextKey: `blockers.${key}.help`,\n defaultActionKey: `blockers.${key}.defaultAction`,\n }\n}\n"],"names":["hasMetadataKey","metadata","isPayrollBlockersError","error","PayrollBlockersError","isUnprocessableEntityWithPayrollBlockers","UnprocessableEntityError","err","parsePayrollBlockersFromError","hasPayrollBlockers","payrollSubmitHandler","payrollHandler","ACTIONABLE_BLOCKER_KEYS","isActionableBlocker","key","hasActionableBlockers","blockers","b","getBlockerTranslationKeys"],"mappings":";;AAGA,SAASA,EAAeC,GAAgD;AACtE,SACE,OAAOA,KAAa,YACpBA,MAAa,QACb,SAASA,KACT,OAAQA,EAA8B,OAAQ;AAElD;AAgBA,SAASC,EAAuBC,GAA+C;AAC7E,SAAOA,aAAiBC;AAC1B;AAEA,SAASC,EACPF,GACmC;AACnC,SACEA,aAAiBG,KACjBH,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB;AAE/D;AAGO,SAASC,EAA8BL,GAAqC;AAEjF,SAAID,EAAuBC,CAAK,IAC1B,CAACA,EAAM,UAAUA,EAAM,OAAO,WAAW,IACpC,CAAA,IAGQA,EAAM,OAAO,IAAI,CAAAI,OAGzB,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAMCF,EAAyCF,CAAK,IAC/BA,EAAM,OACpB,OAAO,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,EAChD,IAAI,CAAAA,OAGI,EAAE,KAFGP,EAAeO,EAAI,QAAQ,IAAIA,EAAI,SAAS,MAAMA,EAAI,YAAY,WAEhE,SAASA,EAAI,QAAA,EAC5B,IAKE,CAAA;AACT;AAIA,MAAME,IAAqB,CAACN,MACtBA,aAAiBC,IACZ,KAELD,aAAiBG,IACZH,EAAM,OAAO,KAAK,CAAAI,MAAOA,EAAI,aAAa,iBAAiB,IAE7D,IAYIG,IAAuB,OAClCC,MACiC;AACjC,MAAI;AACF,iBAAMA,EAAA,GACC,EAAE,SAAS,IAAM,UAAU,CAAA,EAAC;AAAA,EACrC,SAASR,GAAgB;AACvB,QAAIM,EAAmBN,CAAK;AAE1B,aAAO,EAAE,SAAS,IAAO,UADRK,EAA8BL,CAAK,EAC3B;AAI3B,UAAMA;AAAA,EACR;AACF,GAEMS,IAA0B,CAAC,+BAA+B,uBAAuB,GAG1EC,IAAsB,CAACC,MAClCF,EAAwB,SAASE,CAA+C,GAGrEC,IAAwB,CAACC,MACpCA,EAAS,KAAK,CAAAC,MAAKJ,EAAoBI,EAAE,GAAG,CAAC;AAGxC,SAASC,EAA0BJ,GAAa;AACrD,SAAO;AAAA,IACL,UAAU,YAAYA,CAAG;AAAA,IACzB,gBAAgB,YAAYA,CAAG;AAAA,IAC/B,aAAa,YAAYA,CAAG;AAAA,IAC5B,kBAAkB,YAAYA,CAAG;AAAA,EAAA;AAErC;"}
@@ -1,11 +1,39 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { BaseComponentInterface } from '../../Base/Base';
3
- interface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {
3
+ /**
4
+ * Props for {@link PayrollConfiguration}.
5
+ *
6
+ * @public
7
+ */
8
+ export interface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {
9
+ /** The associated company identifier. */
4
10
  companyId: string;
11
+ /** The associated payroll identifier. */
5
12
  payrollId: string;
13
+ /** Optional alert components to render above the configuration content. */
6
14
  alerts?: ReactNode;
15
+ /** Whether to show the reimbursements column in the compensation table. Defaults to `true`. */
7
16
  withReimbursements?: boolean;
8
17
  }
18
+ /**
19
+ * Handles the configuration phase of payroll processing, allowing users to review and modify employee compensation before calculating the payroll.
20
+ *
21
+ * @remarks
22
+ * Emits the following events:
23
+ *
24
+ * | Event | Description | Data |
25
+ * | ----- | ----------- | ---- |
26
+ * | `runPayroll/employee/edit` | An employee row is selected for editing | `{ employeeId, firstName, lastName }` |
27
+ * | `runPayroll/employee/skip` | An employee is skipped or unskipped for this payroll | `{ employeeId }` |
28
+ * | `runPayroll/employee/saved` | Employee compensation changes are persisted | `{ payrollPrepared }` |
29
+ * | `runPayroll/calculated` | Payroll calculation completes successfully | `{ payrollId, alert, payPeriod }` |
30
+ * | `runPayroll/processingFailed` | Payroll calculation fails or times out | — |
31
+ * | `runPayroll/blockers/viewAll` | The "view all blockers" affordance is selected | — |
32
+ * | `runPayroll/grossUp/selected` | The set-net-earnings menu item is selected for an employee | `{ employeeUuid }` |
33
+ * | `runPayroll/grossUp/calculated` | A gross-up amount is calculated from a target net pay | `{ grossUp, netPay, employeeUuid }` |
34
+ *
35
+ * @param props - See {@link PayrollConfigurationProps}.
36
+ * @returns The payroll configuration screen.
37
+ * @public
38
+ */
9
39
  export declare function PayrollConfiguration(props: PayrollConfigurationProps & BaseComponentInterface): import("react").JSX.Element;
10
- export declare const Root: ({ onEvent, companyId, payrollId, dictionary, alerts, withReimbursements, }: PayrollConfigurationProps) => import("react").JSX.Element;
11
- export {};
@@ -282,7 +282,6 @@ const Ge = ({
282
282
  ] });
283
283
  };
284
284
  export {
285
- so as PayrollConfiguration,
286
- Ge as Root
285
+ so as PayrollConfiguration
287
286
  };
288
287
  //# sourceMappingURL=PayrollConfiguration.js.map
@@ -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-v-2025-11-15/react-query/payrollsGet'\nimport { payrollsCalculate } from '@gusto/embedded-api-v-2025-11-15/funcs/payrollsCalculate'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api-v-2025-11-15/react-query/_context'\nimport type { PayrollProcessingRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollprocessingrequest'\nimport { PayrollProcessingRequestStatus } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollprocessingrequest'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsUpdate'\nimport { usePayrollsCalculateGrossUpMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCalculateGrossUp'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollupdate'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsGetBlockers'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { hasDirectDepositEmployees } from '../helpers'\nimport { GrossUpModal } from '../GrossUpModal'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport { usePayrollConfigurationData } from './usePayrollConfigurationData'\nimport { getGrossUpTargetCompensationName, isGrossUpEligible } from './grossUpHelpers'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst isCalculatingStatus = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.Calculating\n\nconst isCalculatedStatus = (\n processingRequest?: PayrollProcessingRequest | null,\n calculatedAt?: Date | null,\n) =>\n calculatedAt != null &&\n (processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess ||\n processingRequest == null)\n\ninterface PayrollConfigurationProps extends BaseComponentInterface<'Payroll.PayrollConfiguration'> {\n companyId: string\n payrollId: string\n alerts?: ReactNode\n withReimbursements?: boolean\n}\n\nexport function PayrollConfiguration(props: PayrollConfigurationProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nexport const Root = ({\n onEvent,\n companyId,\n payrollId,\n dictionary,\n alerts,\n withReimbursements = true,\n}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler } = useBase()\n const dateFormatter = useDateFormatter()\n\n const [isPolling, setIsPolling] = useState(false)\n const [isCalculatingPayroll, setIsCalculatingPayroll] = useState(false)\n const previousCalculatedAtRef = useRef<number | null>(null)\n const gustoClient = useGustoEmbeddedContext()\n\n const { data: payrollData } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions', 'payroll_status_meta'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\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 const {\n employeeDetails,\n employeeCompensations,\n paySchedule,\n payPeriod,\n payrollCategory,\n pagination,\n isLoading,\n refetch,\n } = usePayrollConfigurationData({\n companyId,\n payrollId,\n isCalculating: isPolling || isCalculatingPayroll,\n excludedEmployeeUuids,\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 { 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\n const onCalculatePayroll = async () => {\n setPayrollBlockers([])\n previousCalculatedAtRef.current = payrollData.payrollShow?.calculatedAt?.getTime() ?? null\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 setIsPolling(true)\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 paymentMethod,\n reimbursements,\n ...compensation\n }: PayrollEmployeeCompensationsType): PayrollUpdateEmployeeCompensations => {\n return {\n ...compensation,\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 useEffect(() => {\n if (isCalculatingStatus(payrollData.payrollShow?.processingRequest) && !isPolling) {\n previousCalculatedAtRef.current = payrollData.payrollShow?.calculatedAt?.getTime() ?? null\n setIsPolling(true)\n }\n const currentCalculatedAt = payrollData.payrollShow?.calculatedAt\n const isNewCalculation = currentCalculatedAt?.getTime() !== previousCalculatedAtRef.current\n if (\n isPolling &&\n isNewCalculation &&\n isCalculatedStatus(payrollData.payrollShow?.processingRequest, currentCalculatedAt)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: {\n type: 'success',\n title: t('alerts.progressSaved'),\n alertKey: 'progressSaved',\n },\n payPeriod: payrollData.payrollShow?.payPeriod,\n })\n setPayrollBlockers([])\n setIsPolling(false)\n }\n if (\n isPolling &&\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.ProcessingFailed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }\n }, [\n payrollData.payrollShow?.processingRequest?.status,\n payrollData.payrollShow?.calculatedAt,\n isPolling,\n onEvent,\n t,\n payrollId,\n ])\n\n useEffect(() => {\n if (!isPolling) return\n\n const POLLING_TIMEOUT_MS = 3 * 60 * 1000\n const timeoutId = setTimeout(() => {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }, POLLING_TIMEOUT_MS)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [isPolling, onEvent])\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 const allCompensations = payrollShow?.employeeCompensations\n\n if (\n payrollShow &&\n allCompensations &&\n allCompensations.length > 0 &&\n hasDirectDepositEmployees(allCompensations)\n ) {\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 return (\n <>\n <PayrollConfigurationPresentation\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={isPolling || isLoading || isUpdatingPayroll || isCalculatingPayroll}\n isCalculating={isCalculatingPayroll || isPolling}\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":["isCalculatingStatus","processingRequest","PayrollProcessingRequestStatus","isCalculatedStatus","calculatedAt","PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","withReimbursements","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","useBase","dateFormatter","useDateFormatter","isPolling","setIsPolling","useState","isCalculatingPayroll","setIsCalculatingPayroll","previousCalculatedAtRef","useRef","gustoClient","useGustoEmbeddedContext","payrollData","usePayrollsGetSuspense","excludedEmployeeUuids","useMemo","comp","employeeDetails","employeeCompensations","paySchedule","payPeriod","payrollCategory","pagination","isLoading","refetch","usePayrollConfigurationData","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","calculateGrossUpMutation","usePayrollsCalculateGrossUpMutation","grossUpEmployeeUuid","setGrossUpEmployeeUuid","isGrossUpModalOpen","setIsGrossUpModalOpen","grossUpEnabled","isGrossUpEligible","grossUpTargetCompensation","getGrossUpTargetCompensationName","onGrossUpSelect","employeeUuid","componentEvents","onCalculateGrossUp","netPay","grossUp","onGrossUpApply","grossAmount","SDKInternalError","employeeComp","ec","existingFixed","hasTargetCompensation","fc","updatedFixedCompensations","primaryJobUuid","updatedHourlyCompensations","hc","updatedPaidTimeOff","pto","transformedCompensation","transformEmployeeCompensation","result","handleGrossUpApply","blockersData","usePayrollsGetBlockersSuspense","blockersFromApi","blocker","payrollBlockers","setPayrollBlockers","onCalculatePayroll","payrollSubmitHandler","calcResult","payrollsCalculate","onEdit","employee","paymentMethod","reimbursements","compensation","onToggleExclude","employeeCompensation","onViewBlockers","useEffect","currentCalculatedAt","isNewCalculation","POLLING_TIMEOUT_MS","timeoutId","payrollAlert","statusMeta","payrollShow","allCompensations","hasDirectDepositEmployees","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-v-2025-11-15/react-query/payrollsGet'\nimport { payrollsCalculate } from '@gusto/embedded-api-v-2025-11-15/funcs/payrollsCalculate'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api-v-2025-11-15/react-query/_context'\nimport type { PayrollProcessingRequest } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollprocessingrequest'\nimport { PayrollProcessingRequestStatus } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollprocessingrequest'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsUpdate'\nimport { usePayrollsCalculateGrossUpMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCalculateGrossUp'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollemployeecompensationstype'\nimport type { PayrollUpdateEmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollupdate'\nimport { usePayrollsGetBlockersSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsGetBlockers'\nimport { payrollSubmitHandler, type ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { hasDirectDepositEmployees } from '../helpers'\nimport { GrossUpModal } from '../GrossUpModal'\nimport { PayrollConfigurationPresentation } from './PayrollConfigurationPresentation'\nimport { usePayrollConfigurationData } from './usePayrollConfigurationData'\nimport { getGrossUpTargetCompensationName, isGrossUpEligible } from './grossUpHelpers'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useBase } from '@/components/Base'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst isCalculatingStatus = (processingRequest?: PayrollProcessingRequest | null) =>\n processingRequest?.status === PayrollProcessingRequestStatus.Calculating\n\nconst isCalculatedStatus = (\n processingRequest?: PayrollProcessingRequest | null,\n calculatedAt?: Date | null,\n) =>\n calculatedAt != null &&\n (processingRequest?.status === PayrollProcessingRequestStatus.CalculateSuccess ||\n processingRequest == null)\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 * Emits the following events:\n *\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/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 & BaseComponentInterface) {\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}: PayrollConfigurationProps) => {\n useComponentDictionary('Payroll.PayrollConfiguration', dictionary)\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const { baseSubmitHandler } = useBase()\n const dateFormatter = useDateFormatter()\n\n const [isPolling, setIsPolling] = useState(false)\n const [isCalculatingPayroll, setIsCalculatingPayroll] = useState(false)\n const previousCalculatedAtRef = useRef<number | null>(null)\n const gustoClient = useGustoEmbeddedContext()\n\n const { data: payrollData } = usePayrollsGetSuspense(\n {\n companyId,\n payrollId,\n include: ['taxes', 'benefits', 'deductions', 'payroll_status_meta'],\n },\n { refetchInterval: isPolling ? 5_000 : false },\n )\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 const {\n employeeDetails,\n employeeCompensations,\n paySchedule,\n payPeriod,\n payrollCategory,\n pagination,\n isLoading,\n refetch,\n } = usePayrollConfigurationData({\n companyId,\n payrollId,\n isCalculating: isPolling || isCalculatingPayroll,\n excludedEmployeeUuids,\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 { 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\n const onCalculatePayroll = async () => {\n setPayrollBlockers([])\n previousCalculatedAtRef.current = payrollData.payrollShow?.calculatedAt?.getTime() ?? null\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 setIsPolling(true)\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 paymentMethod,\n reimbursements,\n ...compensation\n }: PayrollEmployeeCompensationsType): PayrollUpdateEmployeeCompensations => {\n return {\n ...compensation,\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 useEffect(() => {\n if (isCalculatingStatus(payrollData.payrollShow?.processingRequest) && !isPolling) {\n previousCalculatedAtRef.current = payrollData.payrollShow?.calculatedAt?.getTime() ?? null\n setIsPolling(true)\n }\n const currentCalculatedAt = payrollData.payrollShow?.calculatedAt\n const isNewCalculation = currentCalculatedAt?.getTime() !== previousCalculatedAtRef.current\n if (\n isPolling &&\n isNewCalculation &&\n isCalculatedStatus(payrollData.payrollShow?.processingRequest, currentCalculatedAt)\n ) {\n onEvent(componentEvents.RUN_PAYROLL_CALCULATED, {\n payrollId,\n alert: {\n type: 'success',\n title: t('alerts.progressSaved'),\n alertKey: 'progressSaved',\n },\n payPeriod: payrollData.payrollShow?.payPeriod,\n })\n setPayrollBlockers([])\n setIsPolling(false)\n }\n if (\n isPolling &&\n payrollData.payrollShow?.processingRequest?.status ===\n PayrollProcessingRequestStatus.ProcessingFailed\n ) {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }\n }, [\n payrollData.payrollShow?.processingRequest?.status,\n payrollData.payrollShow?.calculatedAt,\n isPolling,\n onEvent,\n t,\n payrollId,\n ])\n\n useEffect(() => {\n if (!isPolling) return\n\n const POLLING_TIMEOUT_MS = 3 * 60 * 1000\n const timeoutId = setTimeout(() => {\n onEvent(componentEvents.RUN_PAYROLL_PROCESSING_FAILED)\n setIsPolling(false)\n }, POLLING_TIMEOUT_MS)\n\n return () => {\n clearTimeout(timeoutId)\n }\n }, [isPolling, onEvent])\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 const allCompensations = payrollShow?.employeeCompensations\n\n if (\n payrollShow &&\n allCompensations &&\n allCompensations.length > 0 &&\n hasDirectDepositEmployees(allCompensations)\n ) {\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 return (\n <>\n <PayrollConfigurationPresentation\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={isPolling || isLoading || isUpdatingPayroll || isCalculatingPayroll}\n isCalculating={isCalculatingPayroll || isPolling}\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":["isCalculatingStatus","processingRequest","PayrollProcessingRequestStatus","isCalculatedStatus","calculatedAt","PayrollConfiguration","props","jsx","BaseComponent","Root","onEvent","companyId","payrollId","dictionary","alerts","withReimbursements","useComponentDictionary","useI18n","t","useTranslation","baseSubmitHandler","useBase","dateFormatter","useDateFormatter","isPolling","setIsPolling","useState","isCalculatingPayroll","setIsCalculatingPayroll","previousCalculatedAtRef","useRef","gustoClient","useGustoEmbeddedContext","payrollData","usePayrollsGetSuspense","excludedEmployeeUuids","useMemo","comp","employeeDetails","employeeCompensations","paySchedule","payPeriod","payrollCategory","pagination","isLoading","refetch","usePayrollConfigurationData","updatePayroll","isUpdatingPayroll","usePayrollsUpdateMutation","calculateGrossUpMutation","usePayrollsCalculateGrossUpMutation","grossUpEmployeeUuid","setGrossUpEmployeeUuid","isGrossUpModalOpen","setIsGrossUpModalOpen","grossUpEnabled","isGrossUpEligible","grossUpTargetCompensation","getGrossUpTargetCompensationName","onGrossUpSelect","employeeUuid","componentEvents","onCalculateGrossUp","netPay","grossUp","onGrossUpApply","grossAmount","SDKInternalError","employeeComp","ec","existingFixed","hasTargetCompensation","fc","updatedFixedCompensations","primaryJobUuid","updatedHourlyCompensations","hc","updatedPaidTimeOff","pto","transformedCompensation","transformEmployeeCompensation","result","handleGrossUpApply","blockersData","usePayrollsGetBlockersSuspense","blockersFromApi","blocker","payrollBlockers","setPayrollBlockers","onCalculatePayroll","payrollSubmitHandler","calcResult","payrollsCalculate","onEdit","employee","paymentMethod","reimbursements","compensation","onToggleExclude","employeeCompensation","onViewBlockers","useEffect","currentCalculatedAt","isNewCalculation","POLLING_TIMEOUT_MS","timeoutId","payrollAlert","statusMeta","payrollShow","allCompensations","hasDirectDepositEmployees","jsxs","Fragment","PayrollConfigurationPresentation","GrossUpModal"],"mappings":"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"}
@@ -32,5 +32,6 @@ interface PayrollConfigurationPresentationProps {
32
32
  grossUpEnabled?: boolean;
33
33
  onGrossUpSelect?: (employeeUuid: string) => void;
34
34
  }
35
+ /** @internal */
35
36
  export declare const PayrollConfigurationPresentation: ({ employeeCompensations, employeeDetails, payPeriod, paySchedule, onEdit, onToggleExclude, onCalculatePayroll, onViewBlockers, payrollCategory, alerts, payrollAlert, isPending, isCalculating, payrollBlockers, pagination, withReimbursements, isCalculateDisabled, grossUpEnabled, onGrossUpSelect, }: PayrollConfigurationPresentationProps) => import("react").JSX.Element;
36
37
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PayrollConfigurationPresentation.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useRef } from 'react'\nimport type { EmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payroll'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow as PayScheduleObject } from '@gusto/embedded-api-v-2025-11-15/models/components/payscheduleshow'\nimport { Trans, useTranslation } from 'react-i18next'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollemployeecompensationstype'\nimport {\n useFormatEmployeePayRate,\n getRegularHours,\n getOvertimeHours,\n getTotalPtoHours,\n getAdditionalEarnings,\n getReimbursements,\n formatHoursDisplay,\n calculateGrossPay,\n} from '../helpers'\nimport { PayrollCategory } from '../payrollTypes'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollBlockerAlerts } from '../PayrollBlocker/components/PayrollBlockerAlerts'\nimport styles from './PayrollConfigurationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { DataView, Flex, FlexItem, Grid, PayrollLoading } from '@/components/Common'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport XCircle from '@/assets/icons/x-circle.svg?react'\nimport PlusCircle from '@/assets/icons/plus-circle.svg?react'\nimport CoinsHandSvg from '@/assets/icons/coins-hand.svg?react'\nimport { firstLastName, formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollConfigurationPresentationProps {\n employeeCompensations: EmployeeCompensations[]\n employeeDetails: Employee[]\n payPeriod?: PayrollPayPeriodType\n paySchedule?: PayScheduleObject\n onCalculatePayroll: () => void\n onEdit: (employee: Employee) => void\n onToggleExclude: (employeeCompensation: PayrollEmployeeCompensationsType) => void\n onViewBlockers: () => void\n payrollCategory?: PayrollCategory\n alerts?: ReactNode\n payrollAlert?: {\n label: string\n content?: ReactNode\n variant: 'info' | 'warning'\n }\n isPending?: boolean\n isCalculating?: boolean\n payrollBlockers?: ApiPayrollBlocker[]\n pagination?: PaginationControlProps\n withReimbursements?: boolean\n isCalculateDisabled?: boolean\n grossUpEnabled?: boolean\n onGrossUpSelect?: (employeeUuid: string) => void\n}\n\nconst getPayrollConfigurationTitle = (\n payPeriod: PayrollPayPeriodType | undefined,\n dateFormatter: ReturnType<typeof useDateFormatter>,\n) => {\n if (payPeriod?.startDate && payPeriod.endDate) {\n return dateFormatter.formatPayPeriod(payPeriod.startDate, payPeriod.endDate)\n }\n return { startDate: '', endDate: '' }\n}\n\nexport const PayrollConfigurationPresentation = ({\n employeeCompensations,\n employeeDetails,\n payPeriod,\n paySchedule,\n onEdit,\n onToggleExclude,\n onCalculatePayroll,\n onViewBlockers,\n payrollCategory = PayrollCategory.Regular,\n alerts,\n payrollAlert,\n isPending,\n isCalculating,\n payrollBlockers = [],\n pagination,\n withReimbursements = true,\n isCalculateDisabled = false,\n grossUpEnabled = false,\n onGrossUpSelect,\n}: PayrollConfigurationPresentationProps) => {\n const { Button, Heading, Text, Badge, Alert } = useComponentContext()\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const dateFormatter = useDateFormatter()\n const formatEmployeePayRate = useFormatEmployeePayRate()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('small')\n\n const employeeMap = new Map(employeeDetails.map(employee => [employee.uuid, employee]))\n\n const getEmployeeName = (employeeUuid: string) => {\n const employee = employeeMap.get(employeeUuid)\n return employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : null\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex\n flexDirection={isDesktop ? 'row' : 'column'}\n justifyContent={isDesktop ? 'space-between' : 'normal'}\n alignItems={isDesktop ? 'center' : 'stretch'}\n gap={isDesktop ? 0 : 16}\n >\n <FlexItem>\n <Heading as=\"h1\">{t('pageTitle')}</Heading>\n {payPeriod && (\n <Text variant=\"supporting\">\n <Trans\n i18nKey={\n payrollCategory === PayrollCategory.Dismissal\n ? 'descriptionDismissal'\n : 'description'\n }\n t={t}\n components={{ dateWrapper: <Text weight=\"bold\" as=\"span\" /> }}\n values={{\n ...getPayrollConfigurationTitle(payPeriod, dateFormatter),\n payrollType: payrollCategory,\n }}\n />\n </Text>\n )}\n </FlexItem>\n <FlexItem flexGrow={isDesktop ? 0 : 0}>\n {isDesktop ? (\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n ) : (\n <Flex flexDirection=\"column\" justifyContent=\"normal\" alignItems=\"stretch\" gap={12}>\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n </Flex>\n )}\n </FlexItem>\n </Flex>\n\n {(alerts || payrollAlert) && (\n <Grid gap={16} gridTemplateColumns=\"1fr\">\n {payrollAlert && (\n <Alert label={payrollAlert.label} status={payrollAlert.variant}>\n {payrollAlert.content}\n </Alert>\n )}\n {alerts}\n </Grid>\n )}\n\n {isPending ? (\n <PayrollLoading\n title={isCalculating ? t('calculatingTitle') : t('loadingTitle')}\n description={isCalculating ? t('calculatingDescription') : t('loadingDescription')}\n />\n ) : (\n <>\n {payrollBlockers.length > 0 && (\n <PayrollBlockerAlerts\n blockers={payrollBlockers}\n onViewBlockersClick={onViewBlockers}\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <FlexItem>\n <Heading as=\"h3\">{t('hoursAndEarningsTitle')}</Heading>\n <Text variant=\"supporting\">{t('hoursAndEarningsDescription')}</Text>\n </FlexItem>\n\n <DataView\n label={t('employeeCompensationsTitle')}\n columns={[\n {\n title: t('tableColumns.employees'),\n render: (item: EmployeeCompensations) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const payRateDisplay = formatEmployeePayRate(employee)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n {getEmployeeName(item.employeeUuid || '')}\n {payRateDisplay && (\n <Text size=\"xs\" variant=\"supporting\">\n {payRateDisplay}\n </Text>\n )}\n {item.excluded && <Badge status=\"warning\">{t('skippedBadge')}</Badge>}\n </Flex>\n )\n },\n },\n {\n title: t('tableColumns.hours'),\n render: (item: EmployeeCompensations) => {\n const hours = getRegularHours(item)\n const overtimeHours = getOvertimeHours(item)\n return formatHoursDisplay(hours + overtimeHours)\n },\n },\n {\n title: t('tableColumns.timeOff'),\n render: (item: EmployeeCompensations) => {\n const ptoHours = getTotalPtoHours(item)\n return formatHoursDisplay(ptoHours)\n },\n },\n {\n title: t('tableColumns.additionalEarnings'),\n render: (item: EmployeeCompensations) => {\n const earnings = getAdditionalEarnings(item)\n return formatNumberAsCurrency(earnings)\n },\n },\n ...(withReimbursements\n ? [\n {\n title: t('tableColumns.reimbursements'),\n render: (item: EmployeeCompensations) => {\n const reimbursements = getReimbursements(item)\n return formatNumberAsCurrency(reimbursements)\n },\n },\n ]\n : []),\n {\n title: t('tableColumns.totalPay'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const calculatedGrossPay = employee\n ? calculateGrossPay(\n item,\n employee,\n payPeriod?.startDate,\n paySchedule,\n payrollCategory,\n )\n : 0\n return formatNumberAsCurrency(calculatedGrossPay)\n },\n },\n ]}\n data={employeeCompensations}\n itemMenu={(item: EmployeeCompensations) => (\n <HamburgerMenu\n items={[\n {\n label: t('editMenu.edit'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onEdit(employee)\n }\n },\n },\n {\n label: t(item.excluded ? 'editMenu.unskip' : 'editMenu.skip'),\n icon: item.excluded ? <PlusCircle aria-hidden /> : <XCircle aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onToggleExclude(item)\n }\n },\n },\n ...(grossUpEnabled\n ? [\n {\n label: t('editMenu.setNetEarnings'),\n icon: <CoinsHandSvg aria-hidden />,\n onClick: () => {\n if (item.employeeUuid) {\n onGrossUpSelect?.(item.employeeUuid)\n }\n },\n },\n ]\n : []),\n ]}\n triggerLabel={t('editMenu.edit')}\n />\n )}\n pagination={pagination}\n />\n </Flex>\n </>\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["getPayrollConfigurationTitle","payPeriod","dateFormatter","PayrollConfigurationPresentation","employeeCompensations","employeeDetails","paySchedule","onEdit","onToggleExclude","onCalculatePayroll","onViewBlockers","payrollCategory","PayrollCategory","alerts","payrollAlert","isPending","isCalculating","payrollBlockers","pagination","withReimbursements","isCalculateDisabled","grossUpEnabled","onGrossUpSelect","Button","Heading","Text","Badge","Alert","useComponentContext","useI18n","useTranslation","useDateFormatter","formatEmployeePayRate","useFormatEmployeePayRate","containerRef","useRef","isDesktop","useContainerBreakpoints","employeeMap","employee","getEmployeeName","employeeUuid","firstLastName","jsx","styles","jsxs","Flex","FlexItem","Trans","Grid","PayrollLoading","Fragment","PayrollBlockerAlerts","DataView","item","payRateDisplay","hours","getRegularHours","overtimeHours","getOvertimeHours","formatHoursDisplay","ptoHours","getTotalPtoHours","earnings","getAdditionalEarnings","formatNumberAsCurrency","reimbursements","getReimbursements","calculatedGrossPay","calculateGrossPay","HamburgerMenu","PencilSvg","PlusCircle","XCircle","CoinsHandSvg"],"mappings":"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"}
1
+ {"version":3,"file":"PayrollConfigurationPresentation.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { useRef } from 'react'\nimport type { EmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payroll'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow as PayScheduleObject } from '@gusto/embedded-api-v-2025-11-15/models/components/payscheduleshow'\nimport { Trans, useTranslation } from 'react-i18next'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollemployeecompensationstype'\nimport {\n useFormatEmployeePayRate,\n getRegularHours,\n getOvertimeHours,\n getTotalPtoHours,\n getAdditionalEarnings,\n getReimbursements,\n formatHoursDisplay,\n calculateGrossPay,\n} from '../helpers'\nimport { PayrollCategory } from '../payrollTypes'\nimport type { ApiPayrollBlocker } from '../PayrollBlocker/payrollHelpers'\nimport { PayrollBlockerAlerts } from '../PayrollBlocker/components/PayrollBlockerAlerts'\nimport styles from './PayrollConfigurationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { DataView, Flex, FlexItem, Grid, PayrollLoading } from '@/components/Common'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { HamburgerMenu } from '@/components/Common/HamburgerMenu'\nimport PencilSvg from '@/assets/icons/pencil.svg?react'\nimport XCircle from '@/assets/icons/x-circle.svg?react'\nimport PlusCircle from '@/assets/icons/plus-circle.svg?react'\nimport CoinsHandSvg from '@/assets/icons/coins-hand.svg?react'\nimport { firstLastName, formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\n\ninterface PayrollConfigurationPresentationProps {\n employeeCompensations: EmployeeCompensations[]\n employeeDetails: Employee[]\n payPeriod?: PayrollPayPeriodType\n paySchedule?: PayScheduleObject\n onCalculatePayroll: () => void\n onEdit: (employee: Employee) => void\n onToggleExclude: (employeeCompensation: PayrollEmployeeCompensationsType) => void\n onViewBlockers: () => void\n payrollCategory?: PayrollCategory\n alerts?: ReactNode\n payrollAlert?: {\n label: string\n content?: ReactNode\n variant: 'info' | 'warning'\n }\n isPending?: boolean\n isCalculating?: boolean\n payrollBlockers?: ApiPayrollBlocker[]\n pagination?: PaginationControlProps\n withReimbursements?: boolean\n isCalculateDisabled?: boolean\n grossUpEnabled?: boolean\n onGrossUpSelect?: (employeeUuid: string) => void\n}\n\nconst getPayrollConfigurationTitle = (\n payPeriod: PayrollPayPeriodType | undefined,\n dateFormatter: ReturnType<typeof useDateFormatter>,\n) => {\n if (payPeriod?.startDate && payPeriod.endDate) {\n return dateFormatter.formatPayPeriod(payPeriod.startDate, payPeriod.endDate)\n }\n return { startDate: '', endDate: '' }\n}\n\n/** @internal */\nexport const PayrollConfigurationPresentation = ({\n employeeCompensations,\n employeeDetails,\n payPeriod,\n paySchedule,\n onEdit,\n onToggleExclude,\n onCalculatePayroll,\n onViewBlockers,\n payrollCategory = PayrollCategory.Regular,\n alerts,\n payrollAlert,\n isPending,\n isCalculating,\n payrollBlockers = [],\n pagination,\n withReimbursements = true,\n isCalculateDisabled = false,\n grossUpEnabled = false,\n onGrossUpSelect,\n}: PayrollConfigurationPresentationProps) => {\n const { Button, Heading, Text, Badge, Alert } = useComponentContext()\n useI18n('Payroll.PayrollConfiguration')\n const { t } = useTranslation('Payroll.PayrollConfiguration')\n const dateFormatter = useDateFormatter()\n const formatEmployeePayRate = useFormatEmployeePayRate()\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isDesktop = breakpoints.includes('small')\n\n const employeeMap = new Map(employeeDetails.map(employee => [employee.uuid, employee]))\n\n const getEmployeeName = (employeeUuid: string) => {\n const employee = employeeMap.get(employeeUuid)\n return employee\n ? firstLastName({ first_name: employee.firstName, last_name: employee.lastName })\n : null\n }\n\n return (\n <div ref={containerRef} className={styles.container}>\n <Flex flexDirection=\"column\" gap={32}>\n <Flex\n flexDirection={isDesktop ? 'row' : 'column'}\n justifyContent={isDesktop ? 'space-between' : 'normal'}\n alignItems={isDesktop ? 'center' : 'stretch'}\n gap={isDesktop ? 0 : 16}\n >\n <FlexItem>\n <Heading as=\"h1\">{t('pageTitle')}</Heading>\n {payPeriod && (\n <Text variant=\"supporting\">\n <Trans\n i18nKey={\n payrollCategory === PayrollCategory.Dismissal\n ? 'descriptionDismissal'\n : 'description'\n }\n t={t}\n components={{ dateWrapper: <Text weight=\"bold\" as=\"span\" /> }}\n values={{\n ...getPayrollConfigurationTitle(payPeriod, dateFormatter),\n payrollType: payrollCategory,\n }}\n />\n </Text>\n )}\n </FlexItem>\n <FlexItem flexGrow={isDesktop ? 0 : 0}>\n {isDesktop ? (\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n ) : (\n <Flex flexDirection=\"column\" justifyContent=\"normal\" alignItems=\"stretch\" gap={12}>\n <Button\n title={t('calculatePayrollTitle')}\n onClick={onCalculatePayroll}\n isDisabled={isCalculateDisabled || isPending || isCalculating}\n >\n {isCalculating ? t('calculatingPayroll') : t('calculatePayroll')}\n </Button>\n </Flex>\n )}\n </FlexItem>\n </Flex>\n\n {(alerts || payrollAlert) && (\n <Grid gap={16} gridTemplateColumns=\"1fr\">\n {payrollAlert && (\n <Alert label={payrollAlert.label} status={payrollAlert.variant}>\n {payrollAlert.content}\n </Alert>\n )}\n {alerts}\n </Grid>\n )}\n\n {isPending ? (\n <PayrollLoading\n title={isCalculating ? t('calculatingTitle') : t('loadingTitle')}\n description={isCalculating ? t('calculatingDescription') : t('loadingDescription')}\n />\n ) : (\n <>\n {payrollBlockers.length > 0 && (\n <PayrollBlockerAlerts\n blockers={payrollBlockers}\n onViewBlockersClick={onViewBlockers}\n />\n )}\n <Flex flexDirection=\"column\" gap={20}>\n <FlexItem>\n <Heading as=\"h3\">{t('hoursAndEarningsTitle')}</Heading>\n <Text variant=\"supporting\">{t('hoursAndEarningsDescription')}</Text>\n </FlexItem>\n\n <DataView\n label={t('employeeCompensationsTitle')}\n columns={[\n {\n title: t('tableColumns.employees'),\n render: (item: EmployeeCompensations) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const payRateDisplay = formatEmployeePayRate(employee)\n return (\n <Flex flexDirection=\"column\" gap={0}>\n {getEmployeeName(item.employeeUuid || '')}\n {payRateDisplay && (\n <Text size=\"xs\" variant=\"supporting\">\n {payRateDisplay}\n </Text>\n )}\n {item.excluded && <Badge status=\"warning\">{t('skippedBadge')}</Badge>}\n </Flex>\n )\n },\n },\n {\n title: t('tableColumns.hours'),\n render: (item: EmployeeCompensations) => {\n const hours = getRegularHours(item)\n const overtimeHours = getOvertimeHours(item)\n return formatHoursDisplay(hours + overtimeHours)\n },\n },\n {\n title: t('tableColumns.timeOff'),\n render: (item: EmployeeCompensations) => {\n const ptoHours = getTotalPtoHours(item)\n return formatHoursDisplay(ptoHours)\n },\n },\n {\n title: t('tableColumns.additionalEarnings'),\n render: (item: EmployeeCompensations) => {\n const earnings = getAdditionalEarnings(item)\n return formatNumberAsCurrency(earnings)\n },\n },\n ...(withReimbursements\n ? [\n {\n title: t('tableColumns.reimbursements'),\n render: (item: EmployeeCompensations) => {\n const reimbursements = getReimbursements(item)\n return formatNumberAsCurrency(reimbursements)\n },\n },\n ]\n : []),\n {\n title: t('tableColumns.totalPay'),\n render: (item: PayrollEmployeeCompensationsType) => {\n const employee = employeeMap.get(item.employeeUuid || '')\n const calculatedGrossPay = employee\n ? calculateGrossPay(\n item,\n employee,\n payPeriod?.startDate,\n paySchedule,\n payrollCategory,\n )\n : 0\n return formatNumberAsCurrency(calculatedGrossPay)\n },\n },\n ]}\n data={employeeCompensations}\n itemMenu={(item: EmployeeCompensations) => (\n <HamburgerMenu\n items={[\n {\n label: t('editMenu.edit'),\n icon: <PencilSvg aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onEdit(employee)\n }\n },\n },\n {\n label: t(item.excluded ? 'editMenu.unskip' : 'editMenu.skip'),\n icon: item.excluded ? <PlusCircle aria-hidden /> : <XCircle aria-hidden />,\n onClick: () => {\n const employee = employeeMap.get(item.employeeUuid || '')\n if (employee) {\n onToggleExclude(item)\n }\n },\n },\n ...(grossUpEnabled\n ? [\n {\n label: t('editMenu.setNetEarnings'),\n icon: <CoinsHandSvg aria-hidden />,\n onClick: () => {\n if (item.employeeUuid) {\n onGrossUpSelect?.(item.employeeUuid)\n }\n },\n },\n ]\n : []),\n ]}\n triggerLabel={t('editMenu.edit')}\n />\n )}\n pagination={pagination}\n />\n </Flex>\n </>\n )}\n </Flex>\n </div>\n )\n}\n"],"names":["getPayrollConfigurationTitle","payPeriod","dateFormatter","PayrollConfigurationPresentation","employeeCompensations","employeeDetails","paySchedule","onEdit","onToggleExclude","onCalculatePayroll","onViewBlockers","payrollCategory","PayrollCategory","alerts","payrollAlert","isPending","isCalculating","payrollBlockers","pagination","withReimbursements","isCalculateDisabled","grossUpEnabled","onGrossUpSelect","Button","Heading","Text","Badge","Alert","useComponentContext","useI18n","useTranslation","useDateFormatter","formatEmployeePayRate","useFormatEmployeePayRate","containerRef","useRef","isDesktop","useContainerBreakpoints","employeeMap","employee","getEmployeeName","employeeUuid","firstLastName","jsx","styles","jsxs","Flex","FlexItem","Trans","Grid","PayrollLoading","Fragment","PayrollBlockerAlerts","DataView","item","payRateDisplay","hours","getRegularHours","overtimeHours","getOvertimeHours","formatHoursDisplay","ptoHours","getTotalPtoHours","earnings","getAdditionalEarnings","formatNumberAsCurrency","reimbursements","getReimbursements","calculatedGrossPay","calculateGrossPay","HamburgerMenu","PencilSvg","PlusCircle","XCircle","CoinsHandSvg"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import { PayrollCategory } from '../payrollTypes';
2
+ /** @internal */
2
3
  export declare const isGrossUpEligible: (payrollCategory: PayrollCategory) => boolean;
4
+ /** @internal */
3
5
  export declare const getGrossUpTargetCompensationName: (payrollCategory: PayrollCategory) => string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"grossUpHelpers.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/grossUpHelpers.ts"],"sourcesContent":["import { PayrollCategory } from '../payrollTypes'\nimport { COMPENSATION_NAME_BONUS, COMPENSATION_NAME_CORRECTION_PAYMENT } from '@/shared/constants'\n\nconst GROSS_UP_ELIGIBLE_CATEGORIES = new Set<PayrollCategory>([\n PayrollCategory.Bonus,\n PayrollCategory.Correction,\n])\n\nexport const isGrossUpEligible = (payrollCategory: PayrollCategory): boolean => {\n return GROSS_UP_ELIGIBLE_CATEGORIES.has(payrollCategory)\n}\n\nexport const getGrossUpTargetCompensationName = (\n payrollCategory: PayrollCategory,\n): string | null => {\n if (payrollCategory === PayrollCategory.Bonus) return COMPENSATION_NAME_BONUS\n if (payrollCategory === PayrollCategory.Correction) return COMPENSATION_NAME_CORRECTION_PAYMENT\n return null\n}\n"],"names":["GROSS_UP_ELIGIBLE_CATEGORIES","PayrollCategory","isGrossUpEligible","payrollCategory","getGrossUpTargetCompensationName","COMPENSATION_NAME_BONUS","COMPENSATION_NAME_CORRECTION_PAYMENT"],"mappings":";;AAGA,MAAMA,wBAAmC,IAAqB;AAAA,EAC5DC,EAAgB;AAAA,EAChBA,EAAgB;AAClB,CAAC,GAEYC,IAAoB,CAACC,MACzBH,EAA6B,IAAIG,CAAe,GAG5CC,IAAmC,CAC9CD,MAEIA,MAAoBF,EAAgB,QAAcI,IAClDF,MAAoBF,EAAgB,aAAmBK,IACpD;"}
1
+ {"version":3,"file":"grossUpHelpers.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/grossUpHelpers.ts"],"sourcesContent":["import { PayrollCategory } from '../payrollTypes'\nimport { COMPENSATION_NAME_BONUS, COMPENSATION_NAME_CORRECTION_PAYMENT } from '@/shared/constants'\n\nconst GROSS_UP_ELIGIBLE_CATEGORIES = new Set<PayrollCategory>([\n PayrollCategory.Bonus,\n PayrollCategory.Correction,\n])\n\n/** @internal */\nexport const isGrossUpEligible = (payrollCategory: PayrollCategory): boolean => {\n return GROSS_UP_ELIGIBLE_CATEGORIES.has(payrollCategory)\n}\n\n/** @internal */\nexport const getGrossUpTargetCompensationName = (\n payrollCategory: PayrollCategory,\n): string | null => {\n if (payrollCategory === PayrollCategory.Bonus) return COMPENSATION_NAME_BONUS\n if (payrollCategory === PayrollCategory.Correction) return COMPENSATION_NAME_CORRECTION_PAYMENT\n return null\n}\n"],"names":["GROSS_UP_ELIGIBLE_CATEGORIES","PayrollCategory","isGrossUpEligible","payrollCategory","getGrossUpTargetCompensationName","COMPENSATION_NAME_BONUS","COMPENSATION_NAME_CORRECTION_PAYMENT"],"mappings":";;AAGA,MAAMA,wBAAmC,IAAqB;AAAA,EAC5DC,EAAgB;AAAA,EAChBA,EAAgB;AAClB,CAAC,GAGYC,IAAoB,CAACC,MACzBH,EAA6B,IAAIG,CAAe,GAI5CC,IAAmC,CAC9CD,MAEIA,MAAoBF,EAAgB,QAAcI,IAClDF,MAAoBF,EAAgB,aAAmBK,IACpD;"}
@@ -20,6 +20,8 @@ interface UsePayrollConfigurationDataReturn {
20
20
  isLoading: boolean;
21
21
  refetch: () => Promise<void>;
22
22
  }
23
+ /** @internal */
23
24
  export declare const PREPARE_QUERY_KEY = "payroll-prepare";
25
+ /** @internal */
24
26
  export declare function usePayrollConfigurationData({ companyId, payrollId, isCalculating, excludedEmployeeUuids, }: UsePayrollConfigurationDataParams): UsePayrollConfigurationDataReturn;
25
27
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"usePayrollConfigurationData.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useEmployeesList } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { keepPreviousData, useQuery, useQueryClient } from '@tanstack/react-query'\nimport { usePaySchedulesGet } from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGet'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api-v-2025-11-15/react-query/_context'\nimport { payrollsPrepare } from '@gusto/embedded-api-v-2025-11-15/funcs/payrollsPrepare'\nimport { employeesGet } from '@gusto/embedded-api-v-2025-11-15/funcs/employeesGet'\nimport type { EmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payroll'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow } from '@gusto/embedded-api-v-2025-11-15/models/components/payscheduleshow'\nimport type { PayrollCategory } from '../payrollTypes'\nimport { derivePayrollCategory } from '../payrollTypes'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\ninterface UsePayrollConfigurationDataParams {\n companyId: string\n payrollId: string\n isCalculating?: boolean\n excludedEmployeeUuids?: string[]\n}\n\ninterface UsePayrollConfigurationDataReturn {\n employeeCompensations: EmployeeCompensations[]\n employeeDetails: Employee[]\n payPeriod: PayrollPayPeriodType | undefined\n paySchedule: PayScheduleShow | undefined\n payrollCategory: PayrollCategory\n pagination: PaginationControlProps\n isLoading: boolean\n refetch: () => Promise<void>\n}\n\nexport const PREPARE_QUERY_KEY = 'payroll-prepare'\nconst FIVE_MINUTES = 5 * 60 * 1000\n\nexport function usePayrollConfigurationData({\n companyId,\n payrollId,\n isCalculating = false,\n excludedEmployeeUuids = [],\n}: UsePayrollConfigurationDataParams): UsePayrollConfigurationDataReturn {\n const gustoClient = useGustoEmbeddedContext()\n const queryClient = useQueryClient()\n\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const [displayedEmployees, setDisplayedEmployees] = useState<Employee[]>([])\n const [isDataInSync, setIsDataInSync] = useState(false)\n const hasInitialDataRef = useRef(false)\n\n const { data: employeeData, isFetching: isFetchingEmployeeData } = useEmployeesList(\n {\n companyId,\n payrollUuid: payrollId,\n per: itemsPerPage,\n page: currentPage,\n sortBy: 'name',\n },\n { placeholderData: keepPreviousData },\n )\n\n const employeeDataRef = useRef(employeeData)\n employeeDataRef.current = employeeData\n\n const listedEmployeeUuids = useMemo(() => {\n return employeeData?.showEmployees?.map(e => e.uuid) || []\n }, [employeeData?.showEmployees])\n\n const missingExcludedUuids = useMemo(() => {\n const listedSet = new Set(listedEmployeeUuids)\n return excludedEmployeeUuids.filter(uuid => !listedSet.has(uuid))\n }, [excludedEmployeeUuids, listedEmployeeUuids])\n\n const employeeUuids = useMemo(() => {\n if (currentPage === 1) {\n return [...listedEmployeeUuids, ...missingExcludedUuids]\n }\n return listedEmployeeUuids\n }, [listedEmployeeUuids, missingExcludedUuids, currentPage])\n\n const employeeUuidsKey = useMemo(() => employeeUuids.join(','), [employeeUuids])\n\n const {\n data: prepareData,\n isLoading: isPrepareLoading,\n isFetching: isPrepareFetching,\n } = useQuery({\n queryKey: [PREPARE_QUERY_KEY, payrollId, employeeUuidsKey],\n queryFn: async ({ signal }) => {\n const result = await payrollsPrepare(\n gustoClient,\n {\n companyId,\n payrollId,\n sortBy: 'last_name',\n requestBody: {\n employeeUuids,\n },\n },\n { signal },\n )\n\n if (!result.ok) {\n throw result.error\n }\n\n return result.value.payrollPrepared\n },\n enabled: employeeUuids.length > 0 && !isCalculating,\n staleTime: FIVE_MINUTES,\n placeholderData: keepPreviousData,\n })\n\n useEffect(() => {\n return () => {\n void queryClient.cancelQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }\n }, [queryClient, payrollId])\n\n useEffect(() => {\n if (isCalculating) {\n void queryClient.cancelQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }\n }, [isCalculating, queryClient, payrollId])\n\n const excludedUuidsKey = useMemo(() => missingExcludedUuids.join(','), [missingExcludedUuids])\n\n const { data: excludedEmployeeDetails } = useQuery({\n queryKey: ['excluded-employee-details', excludedUuidsKey],\n queryFn: async () => {\n const results = await Promise.all(\n missingExcludedUuids.map(uuid => employeesGet(gustoClient, { employeeId: uuid })),\n )\n const failedResult = results.find(result => !result.ok)\n if (failedResult) {\n throw failedResult.error\n }\n\n return results\n .filter(result => result.ok)\n .map(result => result.value.employee)\n .filter((e): e is Employee => e != null)\n },\n enabled: missingExcludedUuids.length > 0 && !isCalculating,\n staleTime: FIVE_MINUTES,\n })\n\n const syncData = useCallback(() => {\n const currentEmployeeData = employeeDataRef.current\n if (!currentEmployeeData?.showEmployees || !prepareData?.employeeCompensations) {\n setIsDataInSync(false)\n return\n }\n\n const currentUuids = currentEmployeeData.showEmployees.map(e => e.uuid)\n const preparedUuids = new Set(prepareData.employeeCompensations.map(c => c.employeeUuid))\n const allListedInSync =\n currentUuids.length > 0 && currentUuids.every(uuid => preparedUuids.has(uuid))\n\n if (allListedInSync) {\n const mergedEmployees = [...currentEmployeeData.showEmployees]\n if (currentPage === 1 && excludedEmployeeDetails?.length) {\n const listedSet = new Set(currentUuids)\n for (const employee of excludedEmployeeDetails) {\n if (!listedSet.has(employee.uuid)) {\n mergedEmployees.push(employee)\n }\n }\n }\n setDisplayedEmployees(mergedEmployees)\n setIsDataInSync(true)\n hasInitialDataRef.current = true\n } else {\n setIsDataInSync(false)\n }\n }, [prepareData?.employeeCompensations, excludedEmployeeDetails, currentPage])\n\n useEffect(() => {\n syncData()\n }, [syncData])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: prepareData?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!prepareData?.payPeriod?.payScheduleUuid,\n },\n )\n\n const handleRefetch = useCallback(async () => {\n await queryClient.invalidateQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }, [queryClient, payrollId])\n\n const isInitialLoading = isPrepareLoading && !hasInitialDataRef.current\n const isPaginating = isPrepareFetching && hasInitialDataRef.current\n const isPaginationFetching = isFetchingEmployeeData || isPaginating || !isDataInSync\n const isLoading =\n isInitialLoading || isPayScheduleLoading || (!employeeData && isFetchingEmployeeData)\n\n const headers = employeeData?.httpMeta.response.headers ?? new Headers()\n const pagination: PaginationControlProps = getPaginationProps(headers, isPaginationFetching)\n\n return {\n employeeCompensations: prepareData?.employeeCompensations || [],\n employeeDetails: displayedEmployees,\n payPeriod: prepareData?.payPeriod,\n paySchedule: payScheduleData?.payScheduleShow,\n payrollCategory: derivePayrollCategory(prepareData ?? {}),\n pagination,\n isLoading,\n refetch: handleRefetch,\n }\n}\n"],"names":["PREPARE_QUERY_KEY","FIVE_MINUTES","usePayrollConfigurationData","companyId","payrollId","isCalculating","excludedEmployeeUuids","gustoClient","useGustoEmbeddedContext","queryClient","useQueryClient","currentPage","itemsPerPage","getPaginationProps","usePagination","displayedEmployees","setDisplayedEmployees","useState","isDataInSync","setIsDataInSync","hasInitialDataRef","useRef","employeeData","isFetchingEmployeeData","useEmployeesList","keepPreviousData","employeeDataRef","listedEmployeeUuids","useMemo","missingExcludedUuids","listedSet","uuid","employeeUuids","employeeUuidsKey","prepareData","isPrepareLoading","isPrepareFetching","useQuery","signal","result","payrollsPrepare","useEffect","excludedUuidsKey","excludedEmployeeDetails","results","employeesGet","failedResult","e","syncData","useCallback","currentEmployeeData","currentUuids","preparedUuids","c","mergedEmployees","employee","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","handleRefetch","isInitialLoading","isPaginating","isPaginationFetching","isLoading","headers","pagination","derivePayrollCategory"],"mappings":"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"}
1
+ {"version":3,"file":"usePayrollConfigurationData.js","sources":["../../../../src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from 'react'\nimport { useEmployeesList } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { keepPreviousData, useQuery, useQueryClient } from '@tanstack/react-query'\nimport { usePaySchedulesGet } from '@gusto/embedded-api-v-2025-11-15/react-query/paySchedulesGet'\nimport { useGustoEmbeddedContext } from '@gusto/embedded-api-v-2025-11-15/react-query/_context'\nimport { payrollsPrepare } from '@gusto/embedded-api-v-2025-11-15/funcs/payrollsPrepare'\nimport { employeesGet } from '@gusto/embedded-api-v-2025-11-15/funcs/employeesGet'\nimport type { EmployeeCompensations } from '@gusto/embedded-api-v-2025-11-15/models/components/payroll'\nimport type { Employee } from '@gusto/embedded-api-v-2025-11-15/models/components/employee'\nimport type { PayrollPayPeriodType } from '@gusto/embedded-api-v-2025-11-15/models/components/payrollpayperiodtype'\nimport type { PayScheduleShow } from '@gusto/embedded-api-v-2025-11-15/models/components/payscheduleshow'\nimport type { PayrollCategory } from '../payrollTypes'\nimport { derivePayrollCategory } from '../payrollTypes'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\n\ninterface UsePayrollConfigurationDataParams {\n companyId: string\n payrollId: string\n isCalculating?: boolean\n excludedEmployeeUuids?: string[]\n}\n\ninterface UsePayrollConfigurationDataReturn {\n employeeCompensations: EmployeeCompensations[]\n employeeDetails: Employee[]\n payPeriod: PayrollPayPeriodType | undefined\n paySchedule: PayScheduleShow | undefined\n payrollCategory: PayrollCategory\n pagination: PaginationControlProps\n isLoading: boolean\n refetch: () => Promise<void>\n}\n\n/** @internal */\nexport const PREPARE_QUERY_KEY = 'payroll-prepare'\nconst FIVE_MINUTES = 5 * 60 * 1000\n\n/** @internal */\nexport function usePayrollConfigurationData({\n companyId,\n payrollId,\n isCalculating = false,\n excludedEmployeeUuids = [],\n}: UsePayrollConfigurationDataParams): UsePayrollConfigurationDataReturn {\n const gustoClient = useGustoEmbeddedContext()\n const queryClient = useQueryClient()\n\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination({\n defaultItemsPerPage: 10,\n })\n const [displayedEmployees, setDisplayedEmployees] = useState<Employee[]>([])\n const [isDataInSync, setIsDataInSync] = useState(false)\n const hasInitialDataRef = useRef(false)\n\n const { data: employeeData, isFetching: isFetchingEmployeeData } = useEmployeesList(\n {\n companyId,\n payrollUuid: payrollId,\n per: itemsPerPage,\n page: currentPage,\n sortBy: 'name',\n },\n { placeholderData: keepPreviousData },\n )\n\n const employeeDataRef = useRef(employeeData)\n employeeDataRef.current = employeeData\n\n const listedEmployeeUuids = useMemo(() => {\n return employeeData?.showEmployees?.map(e => e.uuid) || []\n }, [employeeData?.showEmployees])\n\n const missingExcludedUuids = useMemo(() => {\n const listedSet = new Set(listedEmployeeUuids)\n return excludedEmployeeUuids.filter(uuid => !listedSet.has(uuid))\n }, [excludedEmployeeUuids, listedEmployeeUuids])\n\n const employeeUuids = useMemo(() => {\n if (currentPage === 1) {\n return [...listedEmployeeUuids, ...missingExcludedUuids]\n }\n return listedEmployeeUuids\n }, [listedEmployeeUuids, missingExcludedUuids, currentPage])\n\n const employeeUuidsKey = useMemo(() => employeeUuids.join(','), [employeeUuids])\n\n const {\n data: prepareData,\n isLoading: isPrepareLoading,\n isFetching: isPrepareFetching,\n } = useQuery({\n queryKey: [PREPARE_QUERY_KEY, payrollId, employeeUuidsKey],\n queryFn: async ({ signal }) => {\n const result = await payrollsPrepare(\n gustoClient,\n {\n companyId,\n payrollId,\n sortBy: 'last_name',\n requestBody: {\n employeeUuids,\n },\n },\n { signal },\n )\n\n if (!result.ok) {\n throw result.error\n }\n\n return result.value.payrollPrepared\n },\n enabled: employeeUuids.length > 0 && !isCalculating,\n staleTime: FIVE_MINUTES,\n placeholderData: keepPreviousData,\n })\n\n useEffect(() => {\n return () => {\n void queryClient.cancelQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }\n }, [queryClient, payrollId])\n\n useEffect(() => {\n if (isCalculating) {\n void queryClient.cancelQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }\n }, [isCalculating, queryClient, payrollId])\n\n const excludedUuidsKey = useMemo(() => missingExcludedUuids.join(','), [missingExcludedUuids])\n\n const { data: excludedEmployeeDetails } = useQuery({\n queryKey: ['excluded-employee-details', excludedUuidsKey],\n queryFn: async () => {\n const results = await Promise.all(\n missingExcludedUuids.map(uuid => employeesGet(gustoClient, { employeeId: uuid })),\n )\n const failedResult = results.find(result => !result.ok)\n if (failedResult) {\n throw failedResult.error\n }\n\n return results\n .filter(result => result.ok)\n .map(result => result.value.employee)\n .filter((e): e is Employee => e != null)\n },\n enabled: missingExcludedUuids.length > 0 && !isCalculating,\n staleTime: FIVE_MINUTES,\n })\n\n const syncData = useCallback(() => {\n const currentEmployeeData = employeeDataRef.current\n if (!currentEmployeeData?.showEmployees || !prepareData?.employeeCompensations) {\n setIsDataInSync(false)\n return\n }\n\n const currentUuids = currentEmployeeData.showEmployees.map(e => e.uuid)\n const preparedUuids = new Set(prepareData.employeeCompensations.map(c => c.employeeUuid))\n const allListedInSync =\n currentUuids.length > 0 && currentUuids.every(uuid => preparedUuids.has(uuid))\n\n if (allListedInSync) {\n const mergedEmployees = [...currentEmployeeData.showEmployees]\n if (currentPage === 1 && excludedEmployeeDetails?.length) {\n const listedSet = new Set(currentUuids)\n for (const employee of excludedEmployeeDetails) {\n if (!listedSet.has(employee.uuid)) {\n mergedEmployees.push(employee)\n }\n }\n }\n setDisplayedEmployees(mergedEmployees)\n setIsDataInSync(true)\n hasInitialDataRef.current = true\n } else {\n setIsDataInSync(false)\n }\n }, [prepareData?.employeeCompensations, excludedEmployeeDetails, currentPage])\n\n useEffect(() => {\n syncData()\n }, [syncData])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: prepareData?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!prepareData?.payPeriod?.payScheduleUuid,\n },\n )\n\n const handleRefetch = useCallback(async () => {\n await queryClient.invalidateQueries({\n queryKey: [PREPARE_QUERY_KEY, payrollId],\n })\n }, [queryClient, payrollId])\n\n const isInitialLoading = isPrepareLoading && !hasInitialDataRef.current\n const isPaginating = isPrepareFetching && hasInitialDataRef.current\n const isPaginationFetching = isFetchingEmployeeData || isPaginating || !isDataInSync\n const isLoading =\n isInitialLoading || isPayScheduleLoading || (!employeeData && isFetchingEmployeeData)\n\n const headers = employeeData?.httpMeta.response.headers ?? new Headers()\n const pagination: PaginationControlProps = getPaginationProps(headers, isPaginationFetching)\n\n return {\n employeeCompensations: prepareData?.employeeCompensations || [],\n employeeDetails: displayedEmployees,\n payPeriod: prepareData?.payPeriod,\n paySchedule: payScheduleData?.payScheduleShow,\n payrollCategory: derivePayrollCategory(prepareData ?? {}),\n pagination,\n isLoading,\n refetch: handleRefetch,\n }\n}\n"],"names":["PREPARE_QUERY_KEY","FIVE_MINUTES","usePayrollConfigurationData","companyId","payrollId","isCalculating","excludedEmployeeUuids","gustoClient","useGustoEmbeddedContext","queryClient","useQueryClient","currentPage","itemsPerPage","getPaginationProps","usePagination","displayedEmployees","setDisplayedEmployees","useState","isDataInSync","setIsDataInSync","hasInitialDataRef","useRef","employeeData","isFetchingEmployeeData","useEmployeesList","keepPreviousData","employeeDataRef","listedEmployeeUuids","useMemo","missingExcludedUuids","listedSet","uuid","employeeUuids","employeeUuidsKey","prepareData","isPrepareLoading","isPrepareFetching","useQuery","signal","result","payrollsPrepare","useEffect","excludedUuidsKey","excludedEmployeeDetails","results","employeesGet","failedResult","e","syncData","useCallback","currentEmployeeData","currentUuids","preparedUuids","c","mergedEmployees","employee","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","handleRefetch","isInitialLoading","isPaginating","isPaginationFetching","isLoading","headers","pagination","derivePayrollCategory"],"mappings":"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"}
@@ -1,10 +1,49 @@
1
1
  import { BaseComponentInterface } from '../../Base/Base';
2
- interface PayrollEditEmployeeProps extends BaseComponentInterface<'Payroll.PayrollEditEmployee'> {
2
+ /**
3
+ * Props for {@link PayrollEditEmployee}.
4
+ *
5
+ * @public
6
+ */
7
+ export interface PayrollEditEmployeeProps extends BaseComponentInterface<'Payroll.PayrollEditEmployee'> {
8
+ /** The associated employee identifier. */
3
9
  employeeId: string;
10
+ /** The associated company identifier. */
4
11
  companyId: string;
12
+ /** The associated payroll identifier. */
5
13
  payrollId: string;
14
+ /** Whether to show reimbursement fields. Defaults to `true`. */
6
15
  withReimbursements?: boolean;
7
16
  }
17
+ /**
18
+ * Editor for an individual employee's compensation within a payroll run.
19
+ *
20
+ * Allows modification of pay rates, hours, time off, additional earnings,
21
+ * reimbursements, and payment method for a single employee on the specified payroll.
22
+ *
23
+ * @remarks
24
+ * | Event | Description | Data |
25
+ * | ----- | ----------- | ---- |
26
+ * | `runPayroll/employee/saved` | Fired when employee payroll compensation changes are saved | `{ payrollPrepared, employee }` |
27
+ * | `runPayroll/employee/cancelled` | Fired when the user cancels editing employee payroll compensation | — |
28
+ *
29
+ * @param props - {@link PayrollEditEmployeeProps} plus base component props.
30
+ * @returns The employee compensation editor.
31
+ * @public
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * import { Payroll } from '@gusto/embedded-react-sdk'
36
+ *
37
+ * function MyComponent() {
38
+ * return (
39
+ * <Payroll.PayrollEditEmployee
40
+ * employeeId="your-employee-id"
41
+ * companyId="your-company-id"
42
+ * payrollId="your-payroll-id"
43
+ * onEvent={() => {}}
44
+ * />
45
+ * )
46
+ * }
47
+ * ```
48
+ */
8
49
  export declare function PayrollEditEmployee(props: PayrollEditEmployeeProps & BaseComponentInterface): import("react").JSX.Element;
9
- export declare const Root: ({ employeeId, companyId, payrollId, onEvent, dictionary, withReimbursements, }: PayrollEditEmployeeProps) => import("react").JSX.Element;
10
- export {};
@@ -84,7 +84,6 @@ const T = ({
84
84
  );
85
85
  };
86
86
  export {
87
- ie as PayrollEditEmployee,
88
- T as Root
87
+ ie as PayrollEditEmployee
89
88
  };
90
89
  //# sourceMappingURL=PayrollEditEmployee.js.map