@gusto/embedded-react-sdk 0.57.3 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.js +98 -66
  3. package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
  4. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +11 -9
  5. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
  6. package/dist/components/Common/DataView/DataTable/DataTable.js +86 -75
  7. package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
  8. package/dist/components/Common/DataView/DataView.js.map +1 -1
  9. package/dist/components/Common/DataView/getSortControls.js +22 -0
  10. package/dist/components/Common/DataView/getSortControls.js.map +1 -0
  11. package/dist/components/Common/DataView/useDataView.js +30 -24
  12. package/dist/components/Common/DataView/useDataView.js.map +1 -1
  13. package/dist/components/Common/UI/Table/Table.js +65 -25
  14. package/dist/components/Common/UI/Table/Table.js.map +1 -1
  15. package/dist/components/Common/UI/Table/Table.module.scss.js +8 -4
  16. package/dist/components/Common/UI/Table/Table.module.scss.js.map +1 -1
  17. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  18. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
  19. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  20. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
  21. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  22. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
  23. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  24. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
  25. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  26. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  27. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  28. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
  29. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  30. package/dist/components/Company/Industry/Context.js +6 -7
  31. package/dist/components/Company/Industry/Context.js.map +1 -1
  32. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
  33. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  34. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
  35. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  36. package/dist/components/Company/OnboardingOverview/context.js +3 -4
  37. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  38. package/dist/components/Company/PaySchedule/PaySchedule.js +30 -45
  39. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  40. package/dist/components/Company/PaySchedule/PayScheduleComponents.js +11 -12
  41. package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
  42. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
  43. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
  44. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +78 -83
  45. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  46. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
  47. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  48. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
  49. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  50. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -4
  51. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  52. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js +45 -54
  53. package/dist/components/Contractor/Compensation/management/CompensationEditForm.js.map +1 -1
  54. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js +17 -22
  55. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.js.map +1 -1
  56. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +1 -0
  57. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
  58. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +122 -113
  59. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
  60. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +63 -54
  61. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
  62. package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js +39 -48
  63. package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.js.map +1 -1
  64. package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js +76 -69
  65. package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -1
  66. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js +27 -29
  67. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
  68. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +14 -12
  69. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  70. package/dist/components/Contractor/shared/hourlyRate.js +14 -0
  71. package/dist/components/Contractor/shared/hourlyRate.js.map +1 -0
  72. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +63 -63
  73. package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  74. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
  75. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  76. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +65 -74
  77. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
  78. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +16 -16
  79. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  80. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  81. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  82. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +84 -82
  83. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  84. package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js +8 -0
  85. package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js.map +1 -0
  86. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +91 -88
  87. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  88. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +16 -16
  89. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  90. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +146 -134
  91. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  92. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js +14 -12
  93. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js.map +1 -1
  94. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +34 -33
  95. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  96. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +49 -48
  97. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js.map +1 -1
  98. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  99. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +0 -4
  100. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  101. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  102. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +51 -38
  103. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  104. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +121 -102
  105. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  106. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  107. package/dist/components/Payroll/PayrollList/PayrollList.js +79 -74
  108. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  109. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +92 -83
  110. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  111. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +23 -27
  112. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  113. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +82 -75
  114. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  115. package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js +416 -0
  116. package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js.map +1 -0
  117. package/dist/components/Payroll/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js → RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js} +1 -1
  118. package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js.map +1 -0
  119. package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js +97 -0
  120. package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js.map +1 -0
  121. package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js +106 -0
  122. package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js.map +1 -0
  123. package/dist/components/Payroll/{TransitionCreation/TransitionCreationPresentation.module.scss.js → TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js} +1 -1
  124. package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js.map +1 -0
  125. package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js +10 -0
  126. package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js.map +1 -0
  127. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +86 -64
  128. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  129. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js +126 -77
  130. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  131. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js +8 -0
  132. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js.map +1 -0
  133. package/dist/components/Payroll/index.js +16 -20
  134. package/dist/components/Payroll/index.js.map +1 -1
  135. package/dist/components/Payroll/usePreparedPayrollData.js +2 -3
  136. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  137. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +11 -14
  138. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  139. package/dist/contexts/ApiProvider/ApiProvider.js +18 -17
  140. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  141. package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js +31 -0
  142. package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js.map +1 -0
  143. package/dist/contexts/FeaturesProvider/FeaturesProvider.js +14 -0
  144. package/dist/contexts/FeaturesProvider/FeaturesProvider.js.map +1 -0
  145. package/dist/contexts/FeaturesProvider/useFeature.js +7 -0
  146. package/dist/contexts/FeaturesProvider/useFeature.js.map +1 -0
  147. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +32 -30
  148. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  149. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  150. package/dist/i18n/I18n.js +2 -3
  151. package/dist/i18n/I18n.js.map +1 -1
  152. package/dist/i18n/en/Contractor.Profile.json.js +1 -1
  153. package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +29 -23
  154. package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -1
  155. package/dist/i18n/en/Payroll.PayrollLanding.json.js +1 -1
  156. package/dist/i18n/en/{Payroll.UNSTABLE_PayrollEditEmployee.json.js → Payroll.RropPayrollEditEmployee.json.js} +42 -38
  157. package/dist/i18n/en/Payroll.RropPayrollEditEmployee.json.js.map +1 -0
  158. package/dist/i18n/en/Payroll.TransitionConfiguration.json.js +28 -0
  159. package/dist/i18n/en/Payroll.TransitionConfiguration.json.js.map +1 -0
  160. package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js +16 -12
  161. package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js.map +1 -1
  162. package/dist/i18n/en/common.json.js +1 -1
  163. package/dist/package.json.js +1 -1
  164. package/dist/partner-hook-utils/form/composeSubmitHandler.js +55 -48
  165. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  166. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +31 -29
  167. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  168. package/dist/shared/constants.js +2 -1
  169. package/dist/shared/constants.js.map +1 -1
  170. package/dist/src/components/Common/DataView/DataCards/DataCards.d.ts +3 -1
  171. package/dist/src/components/Common/DataView/DataTable/DataTable.d.ts +3 -1
  172. package/dist/src/components/Common/DataView/DataView.d.ts +2 -0
  173. package/dist/src/components/Common/DataView/getSortControls.d.ts +24 -0
  174. package/dist/src/components/Common/DataView/useDataView.d.ts +22 -1
  175. package/dist/src/components/Common/UI/Table/TableTypes.d.ts +71 -2
  176. package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +1 -9
  177. package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +0 -1
  178. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +1 -1
  179. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +1 -1
  180. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +3 -14
  181. package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +2 -2
  182. package/dist/src/components/Contractor/ContractorList/shared/index.d.ts +1 -1
  183. package/dist/src/components/Contractor/ContractorList/shared/useContractorList.d.ts +38 -0
  184. package/dist/src/components/Contractor/shared/hourlyRate.d.ts +23 -0
  185. package/dist/src/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.d.ts +9 -0
  186. package/dist/src/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +3 -1
  187. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +2 -0
  188. package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +8 -6
  189. package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +0 -8
  190. package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +5 -3
  191. package/dist/src/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +2 -3
  192. package/dist/src/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +1 -1
  193. package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +18 -5
  194. package/dist/src/components/Payroll/PayrollList/PayrollList.d.ts +11 -5
  195. package/dist/src/components/Payroll/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts → RropPayrollEditEmployee/RropPayrollEditEmployee.d.ts} +9 -5
  196. package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfiguration.d.ts +55 -0
  197. package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.d.ts +9 -0
  198. package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.d.ts +52 -0
  199. package/dist/src/components/Payroll/TransitionConfiguration/index.d.ts +2 -0
  200. package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -2
  201. package/dist/src/components/Payroll/index.d.ts +2 -6
  202. package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.d.ts +14 -0
  203. package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.test.d.ts +1 -0
  204. package/dist/src/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -1
  205. package/dist/src/contexts/FeaturesProvider/FeaturesProvider.d.ts +21 -0
  206. package/dist/src/contexts/FeaturesProvider/useFeature.d.ts +53 -0
  207. package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +3 -0
  208. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +38 -10
  209. package/dist/src/contexts/index.d.ts +1 -0
  210. package/dist/src/i18n/en/common.json.d.ts +5 -1
  211. package/dist/src/i18n/types.d.ts +113 -66
  212. package/dist/src/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +9 -7
  213. package/dist/src/shared/constants.d.ts +4 -2
  214. package/dist/src/test-utils/renderWithProviders.d.ts +2 -0
  215. package/dist/style.css +1 -1
  216. package/docs/guides/endpoint-inventory.json +24 -27
  217. package/package.json +15 -14
  218. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +0 -29
  219. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +0 -1
  220. package/dist/components/Payroll/Transition/TransitionFlow.js +0 -60
  221. package/dist/components/Payroll/Transition/TransitionFlow.js.map +0 -1
  222. package/dist/components/Payroll/Transition/TransitionFlowComponents.js +0 -31
  223. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +0 -1
  224. package/dist/components/Payroll/Transition/transitionStateMachine.js +0 -49
  225. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +0 -1
  226. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +0 -100
  227. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +0 -1
  228. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +0 -110
  229. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +0 -1
  230. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.module.scss.js.map +0 -1
  231. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js +0 -21
  232. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +0 -1
  233. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +0 -48
  234. package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +0 -1
  235. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +0 -35
  236. package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +0 -1
  237. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +0 -23
  238. package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +0 -1
  239. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +0 -29
  240. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +0 -1
  241. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +0 -411
  242. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +0 -1
  243. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +0 -1
  244. package/dist/i18n/en/Payroll.Transition.json.js +0 -8
  245. package/dist/i18n/en/Payroll.Transition.json.js.map +0 -1
  246. package/dist/i18n/en/Payroll.TransitionCreation.json.js +0 -26
  247. package/dist/i18n/en/Payroll.TransitionCreation.json.js.map +0 -1
  248. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +0 -1
  249. package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +0 -7
  250. package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +0 -55
  251. package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +0 -52
  252. package/dist/src/components/Payroll/Transition/index.d.ts +0 -2
  253. package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +0 -29
  254. package/dist/src/components/Payroll/TransitionCreation/TransitionCreation.d.ts +0 -22
  255. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +0 -9
  256. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +0 -57
  257. package/dist/src/components/Payroll/TransitionCreation/index.d.ts +0 -2
  258. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +0 -55
  259. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +0 -24
  260. package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +0 -23
  261. package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +0 -2
  262. package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +0 -15
  263. package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +0 -28
  264. /package/dist/src/components/{Payroll/Transition/transitionStateMachine.test.d.ts → Common/DataView/getSortControls.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionConfiguration.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfiguration.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { useTranslation } from 'react-i18next'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api/react-query/payrollsGet'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePayrollsUpdateMutation } from '@gusto/embedded-api/react-query/payrollsUpdate'\nimport { usePaySchedulesGetAllSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport type { PayrollEmployeeCompensationsType } from '@gusto/embedded-api/models/components/payrollemployeecompensationstype'\nimport { getDefaultWithholdingPayPeriod } from '../OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport { PREPARE_QUERY_KEY } from '../PayrollConfiguration/usePayrollConfigurationData'\nimport type {\n TransitionConfigurationFormData,\n TransitionConfigurationProps,\n} from './TransitionConfigurationTypes'\nimport { createTransitionConfigurationSchema } from './TransitionConfigurationTypes'\nimport { TransitionConfigurationPresentation } from './TransitionConfigurationPresentation'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { Form } from '@/components/Common/Form'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\n\nconst transitionConfigurationSchema = createTransitionConfigurationSchema()\n\ntype VersionedEmployeeCompensation = PayrollEmployeeCompensationsType & {\n employeeUuid: string\n version: string\n}\n\nfunction isVersionedEmployeeCompensation(\n compensation: PayrollEmployeeCompensationsType,\n): compensation is VersionedEmployeeCompensation {\n return typeof compensation.employeeUuid === 'string' && typeof compensation.version === 'string'\n}\n\n/**\n * Lets the user change the settings of a transition payroll before running it.\n *\n * @remarks\n * The API creates a transition payroll when a company changes pay schedules. This component\n * updates that payroll. It never creates one.\n *\n * - The pay period, pay schedule, and payment date are shown but can't be changed.\n * - The user can choose to take or skip regular deductions, and how to withhold taxes.\n *\n * If a setting is empty, deductions are taken, the regular tax rate is used, and the pay frequency\n * matches the pay schedule. The payment date is read only for now. Saving can still move it, and\n * the form shows the new date.\n *\n * `PayrollFlow` renders this component for you. To build the screens yourself:\n *\n * 1. Get the transition payroll ID. {@link PayrollLanding} sends it as `payrollUuid` with\n * `transition/runPayroll`, and {@link PayrollList} sends it with `transition/payrollSelected`.\n * To look it up without those components, call\n * `GET /v1/companies/{company_id}/pay_periods?payroll_types=transition` and read\n * `payroll.payroll_uuid` from the pay period.\n * 2. Render this component with that ID as `payrollId`.\n * 3. On `transition/configured`, render {@link PayrollExecutionFlow} with the same `payrollId`.\n * It opens on `PayrollConfiguration`, then continues to review, submit, and receipts.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `transition/configured` | The settings were saved | `{ payrollUuid: string, payrollPrepared: PayrollPrepared }` |\n *\n * @param props - See {@link TransitionConfigurationProps}.\n * @returns The transition payroll settings form.\n * @public\n *\n * @example\n * ```tsx\n * import { componentEvents, Payroll } from '@gusto/embedded-react-sdk'\n *\n * function TransitionPayrollPage({ companyId, payrollId }: { companyId: string; payrollId: string }) {\n * return (\n * <Payroll.TransitionConfiguration\n * companyId={companyId}\n * payrollId={payrollId}\n * onEvent={type => {\n * if (type === componentEvents.TRANSITION_CONFIGURED) {\n * navigate(`/payrolls/${payrollId}/run`)\n * }\n * }}\n * />\n * )\n * }\n * ```\n */\nexport function TransitionConfiguration(props: TransitionConfigurationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollId, className }: TransitionConfigurationProps) {\n useComponentDictionary('Payroll.TransitionConfiguration', dictionary)\n useI18n('Payroll.TransitionConfiguration')\n\n const { t } = useTranslation('Payroll.TransitionConfiguration')\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: payrollData } = usePayrollsGetSuspense({ companyId, payrollId })\n const { data: paySchedulesData } = usePaySchedulesGetAllSuspense({ companyId })\n const { mutateAsync: preparePayroll, isPending: isPreparePending } = usePayrollsPrepareMutation()\n const { mutateAsync: updatePayroll, isPending: isUpdatePending } = usePayrollsUpdateMutation()\n\n const payroll = payrollData.payrollShow\n const paySchedule = paySchedulesData.payScheduleShowResponse?.find(\n schedule => schedule.uuid === payroll?.payPeriod?.payScheduleUuid,\n )\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: getDefaultWithholdingPayPeriod(\n payroll?.withholdingPayPeriod ?? paySchedule?.frequency,\n ),\n withholdingRate: payroll?.fixedWithholdingRate ? 'supplemental' : 'regular',\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n const [savedCheckDate, setSavedCheckDate] = useState<string | null>(null)\n\n const methods = useForm<TransitionConfigurationFormData>({\n resolver: zodResolver(transitionConfigurationSchema),\n defaultValues: {\n skipRegularDeductions: payroll?.skipRegularDeductions ?? false,\n },\n })\n\n const handleTaxWithholdingModalDone = (config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }\n\n const onSubmit = async (data: TransitionConfigurationFormData) => {\n await baseSubmitHandler(data, async ({ skipRegularDeductions }) => {\n const prepareResponse = await preparePayroll({\n request: { companyId, payrollId, requestBody: {} },\n })\n\n const compensation = prepareResponse.payrollPrepared?.employeeCompensations?.find(\n isVersionedEmployeeCompensation,\n )\n if (!compensation) {\n throw new SDKInternalError(t('errors.noEmployeeCompensations'))\n }\n\n const updateResponse = await updatePayroll({\n request: {\n companyId,\n payrollId,\n payrollUpdate: {\n employeeCompensations: [\n { employeeUuid: compensation.employeeUuid, version: compensation.version },\n ],\n skipRegularDeductions,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n setSavedCheckDate(updateResponse.payrollPrepared?.checkDate ?? null)\n\n await queryClient.invalidateQueries({ queryKey: [PREPARE_QUERY_KEY, payrollId] })\n\n onEvent(componentEvents.TRANSITION_CONFIGURED, {\n payrollUuid: payrollId,\n payrollPrepared: updateResponse.payrollPrepared,\n })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <TransitionConfigurationPresentation\n className={className}\n payPeriodStartDate={payroll?.payPeriod?.startDate}\n payPeriodEndDate={payroll?.payPeriod?.endDate}\n payScheduleName={paySchedule?.customName ?? paySchedule?.name ?? null}\n checkDate={savedCheckDate ?? payroll?.checkDate ?? null}\n isPending={isPreparePending || isUpdatePending}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={() => {\n setIsTaxWithholdingModalOpen(true)\n }}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={() => {\n setIsTaxWithholdingModalOpen(false)\n }}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["transitionConfigurationSchema","createTransitionConfigurationSchema","isVersionedEmployeeCompensation","compensation","TransitionConfiguration","props","jsx","BaseComponent","Root","dictionary","companyId","payrollId","className","useComponentDictionary","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","payrollData","usePayrollsGetSuspense","paySchedulesData","usePaySchedulesGetAllSuspense","preparePayroll","isPreparePending","usePayrollsPrepareMutation","updatePayroll","isUpdatePending","usePayrollsUpdateMutation","payroll","paySchedule","schedule","taxWithholdingConfig","setTaxWithholdingConfig","useState","getDefaultWithholdingPayPeriod","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","savedCheckDate","setSavedCheckDate","methods","useForm","zodResolver","handleTaxWithholdingModalDone","config","onSubmit","data","skipRegularDeductions","SDKInternalError","updateResponse","PREPARE_QUERY_KEY","componentEvents","FormProvider","Form","TransitionConfigurationPresentation"],"mappings":";;;;;;;;;;;;;;;;;;;;AA0BA,MAAMA,IAAgCC,EAAA;AAOtC,SAASC,EACPC,GAC+C;AAC/C,SAAO,OAAOA,EAAa,gBAAiB,YAAY,OAAOA,EAAa,WAAY;AAC1F;AAuDO,SAASC,GAAwBC,GAAqC;AAC3E,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,GAAY,WAAAC,GAAW,WAAAC,GAAW,WAAAC,KAA2C;AAC3F,EAAAC,EAAuB,mCAAmCJ,CAAU,GACpEK,EAAQ,iCAAiC;AAEzC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GACxD,EAAE,SAAAC,GAAS,mBAAAC,EAAA,IAAsBC,EAAA,GACjCC,IAAcC,EAAA,GAEd,EAAE,MAAMC,EAAA,IAAgBC,EAAuB,EAAE,WAAAb,GAAW,WAAAC,GAAW,GACvE,EAAE,MAAMa,EAAA,IAAqBC,EAA8B,EAAE,WAAAf,GAAW,GACxE,EAAE,aAAagB,GAAgB,WAAWC,EAAA,IAAqBC,EAAA,GAC/D,EAAE,aAAaC,GAAe,WAAWC,EAAA,IAAoBC,EAAA,GAE7DC,IAAUV,EAAY,aACtBW,IAAcT,EAAiB,yBAAyB;AAAA,IAC5D,CAAAU,MAAYA,EAAS,SAASF,GAAS,WAAW;AAAA,EAAA,GAG9C,CAACG,GAAsBC,CAAuB,IAAIC,EAAuC;AAAA,IAC7F,sBAAsBC;AAAA,MACpBN,GAAS,wBAAwBC,GAAa;AAAA,IAAA;AAAA,IAEhD,iBAAiBD,GAAS,uBAAuB,iBAAiB;AAAA,EAAA,CACnE,GACK,CAACO,GAA2BC,CAA4B,IAAIH,EAAS,EAAK,GAC1E,CAACI,GAAgBC,CAAiB,IAAIL,EAAwB,IAAI,GAElEM,IAAUC,EAAyC;AAAA,IACvD,UAAUC,EAAY7C,CAA6B;AAAA,IACnD,eAAe;AAAA,MACb,uBAAuBgC,GAAS,yBAAyB;AAAA,IAAA;AAAA,EAC3D,CACD,GAEKc,IAAgC,CAACC,MAAyC;AAC9E,IAAAX,EAAwBW,CAAM,GAC9BP,EAA6B,EAAK;AAAA,EACpC,GAEMQ,IAAW,OAAOC,MAA0C;AAChE,UAAM/B,EAAkB+B,GAAM,OAAO,EAAE,uBAAAC,QAA4B;AAKjE,YAAM/C,KAJkB,MAAMuB,EAAe;AAAA,QAC3C,SAAS,EAAE,WAAAhB,GAAW,WAAAC,GAAW,aAAa,CAAA,EAAC;AAAA,MAAE,CAClD,GAEoC,iBAAiB,uBAAuB;AAAA,QAC3ET;AAAA,MAAA;AAEF,UAAI,CAACC;AACH,cAAM,IAAIgD,EAAiBpC,EAAE,gCAAgC,CAAC;AAGhE,YAAMqC,IAAiB,MAAMvB,EAAc;AAAA,QACzC,SAAS;AAAA,UACP,WAAAnB;AAAA,UACA,WAAAC;AAAA,UACA,eAAe;AAAA,YACb,uBAAuB;AAAA,cACrB,EAAE,cAAcR,EAAa,cAAc,SAASA,EAAa,QAAA;AAAA,YAAQ;AAAA,YAE3E,uBAAA+C;AAAA,YACA,sBAAsBf,EAAqB;AAAA,YAC3C,sBAAsBA,EAAqB,oBAAoB;AAAA,UAAA;AAAA,QACjE;AAAA,MACF,CACD;AAED,MAAAO,EAAkBU,EAAe,iBAAiB,aAAa,IAAI,GAEnE,MAAMhC,EAAY,kBAAkB,EAAE,UAAU,CAACiC,GAAmB1C,CAAS,GAAG,GAEhFM,EAAQqC,EAAgB,uBAAuB;AAAA,QAC7C,aAAa3C;AAAA,QACb,iBAAiByC,EAAe;AAAA,MAAA,CACjC;AAAA,IACH,CAAC;AAAA,EACH;AAEA,SACE,gBAAA9C,EAACiD,GAAA,EAAc,GAAGZ,GAChB,UAAA,gBAAArC,EAACkD,KAAK,UAAUb,EAAQ,aAAaK,CAAQ,GAC3C,UAAA,gBAAA1C;AAAA,IAACmD;AAAA,IAAA;AAAA,MACC,WAAA7C;AAAA,MACA,oBAAoBoB,GAAS,WAAW;AAAA,MACxC,kBAAkBA,GAAS,WAAW;AAAA,MACtC,iBAAiBC,GAAa,cAAcA,GAAa,QAAQ;AAAA,MACjE,WAAWQ,KAAkBT,GAAS,aAAa;AAAA,MACnD,WAAWL,KAAoBG;AAAA,MAC/B,sBAAAK;AAAA,MACA,2BAAAI;AAAA,MACA,2BAA2B,MAAM;AAC/B,QAAAC,EAA6B,EAAI;AAAA,MACnC;AAAA,MACA,2BAA2BM;AAAA,MAC3B,6BAA6B,MAAM;AACjC,QAAAN,EAA6B,EAAK;AAAA,MACpC;AAAA,IAAA;AAAA,EAAA,GAEJ,EAAA,CACF;AAEJ;"}
@@ -0,0 +1,106 @@
1
+ import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
+ import { useTranslation as S } from "react-i18next";
3
+ import l from "./TransitionConfigurationPresentation.module.scss.js";
4
+ import { useI18n as L } from "../../../i18n/I18n.js";
5
+ import { useComponentContext as F } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { Flex as o } from "../../Common/Flex/Flex.js";
7
+ import { useDateFormatter as O } from "../../../hooks/useDateFormatter.js";
8
+ import { RadioGroupField as W } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
9
+ import { OffCycleTaxWithholdingTable as j } from "../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js";
10
+ import { OffCycleTaxWithholdingModal as k } from "../OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js";
11
+ function V({
12
+ className: m,
13
+ payPeriodStartDate: f,
14
+ payPeriodEndDate: h,
15
+ payScheduleName: s,
16
+ checkDate: p,
17
+ isPending: c,
18
+ taxWithholdingConfig: d,
19
+ isTaxWithholdingModalOpen: g,
20
+ onTaxWithholdingEditClick: b,
21
+ onTaxWithholdingModalDone: y,
22
+ onTaxWithholdingModalCancel: T
23
+ }) {
24
+ L("Payroll.TransitionConfiguration");
25
+ const { t: i } = S("Payroll.TransitionConfiguration"), { Heading: u, Text: t, Alert: x, Button: C, DescriptionList: w } = F(), n = O(), D = [
26
+ { value: !1, label: i("deductions.options.include") },
27
+ { value: !0, label: i("deductions.options.skip") }
28
+ ], v = [
29
+ {
30
+ category: "regular",
31
+ label: i("wageTypeGroups.regular.label"),
32
+ description: i("wageTypeGroups.regular.description")
33
+ },
34
+ {
35
+ category: "supplemental",
36
+ label: i("wageTypeGroups.supplemental.label"),
37
+ description: i("wageTypeGroups.supplemental.description")
38
+ },
39
+ {
40
+ category: "reimbursement",
41
+ label: i("wageTypeGroups.reimbursement.label")
42
+ }
43
+ ], a = [
44
+ {
45
+ term: /* @__PURE__ */ e(t, { weight: "bold", children: i("payPeriodLabel") }),
46
+ description: /* @__PURE__ */ r(t, { children: [
47
+ n.formatShortWithYear(f),
48
+ " -",
49
+ " ",
50
+ n.formatShortWithYear(h)
51
+ ] })
52
+ }
53
+ ];
54
+ return s && a.push({
55
+ term: /* @__PURE__ */ e(t, { weight: "bold", children: i("payScheduleLabel") }),
56
+ description: /* @__PURE__ */ e(t, { children: s })
57
+ }), p && a.push({
58
+ term: /* @__PURE__ */ e(t, { weight: "bold", children: i("checkDateLabel") }),
59
+ description: /* @__PURE__ */ e(t, { children: n.formatShortWithYear(p) })
60
+ }), /* @__PURE__ */ r(o, { className: m, flexDirection: "column", gap: 32, children: [
61
+ /* @__PURE__ */ r(o, { flexDirection: "column", gap: 4, children: [
62
+ /* @__PURE__ */ e(u, { as: "h2", children: i("pageTitle") }),
63
+ /* @__PURE__ */ e(t, { variant: "supporting", children: i("pageDescription") })
64
+ ] }),
65
+ /* @__PURE__ */ e(x, { status: "info", label: i("transitionExplanation") }),
66
+ /* @__PURE__ */ e("hr", { className: l.divider }),
67
+ /* @__PURE__ */ r(o, { flexDirection: "column", gap: 16, children: [
68
+ /* @__PURE__ */ e(u, { as: "h3", children: i("detailsHeading") }),
69
+ /* @__PURE__ */ e(w, { showSeparators: !1, items: a })
70
+ ] }),
71
+ /* @__PURE__ */ e("hr", { className: l.divider }),
72
+ /* @__PURE__ */ e(o, { flexDirection: "column", gap: 20, children: /* @__PURE__ */ e(
73
+ W,
74
+ {
75
+ name: "skipRegularDeductions",
76
+ label: i("deductions.title"),
77
+ description: i("deductions.description"),
78
+ options: D,
79
+ convertValueToString: (G) => String(G)
80
+ }
81
+ ) }),
82
+ /* @__PURE__ */ e("hr", { className: l.divider }),
83
+ /* @__PURE__ */ e(
84
+ j,
85
+ {
86
+ wageTypeGroups: v,
87
+ config: d,
88
+ onEditClick: b
89
+ }
90
+ ),
91
+ g && /* @__PURE__ */ e(
92
+ k,
93
+ {
94
+ isOpen: !0,
95
+ defaultConfig: d,
96
+ onDone: y,
97
+ onCancel: T
98
+ }
99
+ ),
100
+ /* @__PURE__ */ e(o, { justifyContent: "flex-end", gap: 12, children: /* @__PURE__ */ e(C, { type: "submit", isLoading: c, isDisabled: c, children: i("continueCta") }) })
101
+ ] });
102
+ }
103
+ export {
104
+ V as TransitionConfigurationPresentation
105
+ };
106
+ //# sourceMappingURL=TransitionConfigurationPresentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionConfigurationPresentation.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport type { WageTypeGroup } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { TransitionConfigurationPresentationProps } from './TransitionConfigurationTypes'\nimport styles from './TransitionConfigurationPresentation.module.scss'\nimport type { DescriptionListItem } from '@/components/Common/UI/DescriptionList/DescriptionListTypes'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField } from '@/components/Common'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/**\n * Layout for the transition payroll settings form.\n *\n * @param props - {@link TransitionConfigurationPresentationProps}.\n * @returns The form layout.\n * @internal\n */\nexport function TransitionConfigurationPresentation({\n className,\n payPeriodStartDate,\n payPeriodEndDate,\n payScheduleName,\n checkDate,\n isPending,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n}: TransitionConfigurationPresentationProps) {\n useI18n('Payroll.TransitionConfiguration')\n const { t } = useTranslation('Payroll.TransitionConfiguration')\n const { Heading, Text, Alert, Button, DescriptionList } = useComponentContext()\n const dateFormatter = useDateFormatter()\n\n const deductionsOptions = [\n { value: false, label: t('deductions.options.include') },\n { value: true, label: t('deductions.options.skip') },\n ]\n\n const wageTypeGroups: WageTypeGroup[] = [\n {\n category: 'regular',\n label: t('wageTypeGroups.regular.label'),\n description: t('wageTypeGroups.regular.description'),\n },\n {\n category: 'supplemental',\n label: t('wageTypeGroups.supplemental.label'),\n description: t('wageTypeGroups.supplemental.description'),\n },\n {\n category: 'reimbursement',\n label: t('wageTypeGroups.reimbursement.label'),\n },\n ]\n\n const detailItems: DescriptionListItem[] = [\n {\n term: <Text weight=\"bold\">{t('payPeriodLabel')}</Text>,\n description: (\n <Text>\n {dateFormatter.formatShortWithYear(payPeriodStartDate)} -{' '}\n {dateFormatter.formatShortWithYear(payPeriodEndDate)}\n </Text>\n ),\n },\n ]\n if (payScheduleName) {\n detailItems.push({\n term: <Text weight=\"bold\">{t('payScheduleLabel')}</Text>,\n description: <Text>{payScheduleName}</Text>,\n })\n }\n if (checkDate) {\n detailItems.push({\n term: <Text weight=\"bold\">{t('checkDateLabel')}</Text>,\n description: <Text>{dateFormatter.formatShortWithYear(checkDate)}</Text>,\n })\n }\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Alert status=\"info\" label={t('transitionExplanation')} />\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={16}>\n <Heading as=\"h3\">{t('detailsHeading')}</Heading>\n\n <DescriptionList showSeparators={false} items={detailItems} />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={t('deductions.title')}\n description={t('deductions.description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["TransitionConfigurationPresentation","className","payPeriodStartDate","payPeriodEndDate","payScheduleName","checkDate","isPending","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","useI18n","t","useTranslation","Heading","Text","Alert","Button","DescriptionList","useComponentContext","dateFormatter","useDateFormatter","deductionsOptions","wageTypeGroups","detailItems","jsx","Flex","jsxs","styles","RadioGroupField","value","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
@@ -5,4 +5,4 @@ export {
5
5
  e as default,
6
6
  d as divider
7
7
  };
8
- //# sourceMappingURL=TransitionCreationPresentation.module.scss.js.map
8
+ //# sourceMappingURL=TransitionConfigurationPresentation.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionConfigurationPresentation.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,10 @@
1
+ import { z as o } from "zod";
2
+ function n() {
3
+ return o.object({
4
+ skipRegularDeductions: o.boolean()
5
+ });
6
+ }
7
+ export {
8
+ n as createTransitionConfigurationSchema
9
+ };
10
+ //# sourceMappingURL=TransitionConfigurationTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionConfigurationTypes.js","sources":["../../../../src/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.ts"],"sourcesContent":["import { z } from 'zod'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\n\n/**\n * Props for {@link TransitionConfiguration}.\n *\n * @public\n */\nexport interface TransitionConfigurationProps extends BaseComponentInterface<'Payroll.TransitionConfiguration'> {\n /** The company ID. */\n companyId: string\n /** The ID of the transition payroll to update. */\n payrollId: string\n}\n\n/**\n * Values in the transition payroll settings form.\n *\n * @internal\n */\nexport interface TransitionConfigurationFormData {\n /** `true` to skip regular deductions. */\n skipRegularDeductions: boolean\n}\n\n/** @internal */\nexport function createTransitionConfigurationSchema() {\n return z.object({\n skipRegularDeductions: z.boolean(),\n })\n}\n\n/** @internal */\nexport interface TransitionConfigurationPresentationProps {\n /** Class name for the root element. */\n className?: string\n /** First day of the pay period (YYYY-MM-DD). */\n payPeriodStartDate?: string | null\n /** Last day of the pay period (YYYY-MM-DD). */\n payPeriodEndDate?: string | null\n /** Pay schedule name, or `null` if unknown. */\n payScheduleName: string | null\n /** Payment date (YYYY-MM-DD), or `null` if unknown. */\n checkDate: string | null\n /** `true` while saving. */\n isPending?: boolean\n /** Tax withholding settings shown in the table. */\n taxWithholdingConfig: OffCycleTaxWithholdingConfig\n /** `true` when the tax withholding modal is open. */\n isTaxWithholdingModalOpen: boolean\n /** Called when the user clicks Edit on the tax table. */\n onTaxWithholdingEditClick: () => void\n /** Called when the user saves new tax settings in the modal. */\n onTaxWithholdingModalDone: (config: OffCycleTaxWithholdingConfig) => void\n /** Called when the user closes the modal without saving. */\n onTaxWithholdingModalCancel: () => void\n}\n"],"names":["createTransitionConfigurationSchema","z"],"mappings":";AA2BO,SAASA,IAAsC;AACpD,SAAOC,EAAE,OAAO;AAAA,IACd,uBAAuBA,EAAE,QAAA;AAAA,EAAQ,CAClC;AACH;"}
@@ -1,94 +1,116 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { useEffect as w, useMemo as b, useState as A, useCallback as p } from "react";
3
- import { usePaySchedulesGetAll as g } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
4
- import { usePayrollsSkipMutation as v } from "@gusto/embedded-api/react-query/payrollsSkip";
5
- import { PayrollType as M } from "@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid";
6
- import { useUnprocessedTransitionPayPeriods as _ } from "../useUnprocessedTransitionPayPeriods.js";
7
- import { TransitionPayrollAlertPresentation as L } from "./TransitionPayrollAlertPresentation.js";
8
- import { BaseComponent as x } from "../../Base/Base.js";
9
- import { useBase as B } from "../../Base/useBase.js";
10
- import { componentEvents as m } from "../../../shared/constants.js";
11
- import { useObservability as C } from "../../../contexts/ObservabilityProvider/useObservability.js";
12
- import { normalizeToSDKError as q } from "../../../types/sdkError.js";
13
- const I = "Payroll.TransitionPayrollAlert";
14
- function $({
15
- companyId: o,
16
- onEvent: u,
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import { useEffect as _, useMemo as v, useState as U, useCallback as E } from "react";
3
+ import { usePaySchedulesGetAll as C } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
4
+ import { usePayrollsSkipMutation as q } from "@gusto/embedded-api/react-query/payrollsSkip";
5
+ import { usePayrollsList as x } from "@gusto/embedded-api/react-query/payrollsList";
6
+ import { QueryParamPayrollTypes as B, ProcessingStatuses as Y } from "@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls";
7
+ import { PayrollType as I } from "@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid";
8
+ import { useUnprocessedTransitionPayPeriods as K } from "../useUnprocessedTransitionPayPeriods.js";
9
+ import { TransitionPayrollAlertPresentation as j } from "./TransitionPayrollAlertPresentation.js";
10
+ import { BaseComponent as z } from "../../Base/Base.js";
11
+ import { useBase as F } from "../../Base/useBase.js";
12
+ import { componentEvents as c } from "../../../shared/constants.js";
13
+ import { useObservability as G } from "../../../contexts/ObservabilityProvider/useObservability.js";
14
+ import { normalizeToSDKError as H } from "../../../types/sdkError.js";
15
+ const Q = "Payroll.TransitionPayrollAlert";
16
+ function ue({
17
+ companyId: a,
18
+ onEvent: p,
17
19
  LoaderComponent: t,
18
- hasBlockers: n
20
+ hasBlockers: l
19
21
  }) {
20
- return /* @__PURE__ */ d(x, { onEvent: u, LoaderComponent: t, children: /* @__PURE__ */ d(K, { companyId: o, hasBlockers: n }) });
22
+ return /* @__PURE__ */ m(z, { onEvent: p, LoaderComponent: t, children: /* @__PURE__ */ m(V, { companyId: a, hasBlockers: l }) });
21
23
  }
22
- function K({ companyId: o, hasBlockers: u }) {
23
- const { onEvent: t, baseSubmitHandler: n } = B(), { observability: S } = C(), { unprocessedPayPeriods: y } = _(o), { data: a, error: i } = g({ companyId: o });
24
- w(() => {
25
- if (!i) return;
26
- t(m.ERROR, i);
27
- const e = q(i);
28
- S?.onError?.({
24
+ function V({ companyId: a, hasBlockers: p }) {
25
+ const { onEvent: t, baseSubmitHandler: l } = F(), { observability: f } = G(), { unprocessedPayPeriods: d } = K(a), { data: i, error: R } = C({ companyId: a }), y = d.flatMap((e) => [e.startDate, e.endDate]).filter((e) => typeof e == "string").sort(), { data: S, error: k } = x(
26
+ {
27
+ companyId: a,
28
+ processingStatuses: [Y.Unprocessed],
29
+ payrollTypes: [B.OffCycle],
30
+ includeOffCycle: !0,
31
+ startDate: y.at(0),
32
+ endDate: y.at(-1)
33
+ },
34
+ { enabled: y.length > 0 }
35
+ ), P = (S?.payrollList ?? []).flatMap(
36
+ (e) => e.calculatedAt && e.payrollUuid ? [e.payrollUuid] : []
37
+ ), u = R ?? k;
38
+ _(() => {
39
+ if (!u) return;
40
+ t(c.ERROR, u);
41
+ const e = H(u);
42
+ f?.onError?.({
29
43
  ...e,
30
44
  timestamp: Date.now(),
31
- componentName: I
45
+ componentName: Q
32
46
  });
33
- }, [i, t, S]);
34
- const f = b(() => {
35
- if (!a) return [];
36
- const e = a.payScheduleShowResponse ?? [], c = /* @__PURE__ */ new Map();
37
- for (const r of y) {
38
- const l = r.payScheduleUuid ?? "unknown", s = c.get(l) ?? [];
39
- s.push(r), c.set(l, s);
47
+ }, [u, t, f]);
48
+ const h = v(() => {
49
+ if (!i) return [];
50
+ const e = i.payScheduleShowResponse ?? [], r = /* @__PURE__ */ new Map();
51
+ for (const o of d) {
52
+ const n = o.payScheduleUuid ?? "unknown", s = r.get(n) ?? [];
53
+ s.push(o), r.set(n, s);
40
54
  }
41
- return Array.from(c.entries()).map(([r, l]) => {
42
- const s = e.find((U) => U.uuid === r), O = s?.customName || s?.name || "Transition";
43
- return { payScheduleUuid: r, payScheduleName: O, payPeriods: l };
55
+ return Array.from(r.entries()).map(([o, n]) => {
56
+ const s = e.find((M) => M.uuid === o), L = s?.customName || s?.name || "Transition";
57
+ return { payScheduleUuid: o, payScheduleName: L, payPeriods: n };
44
58
  });
45
- }, [y, a]), [T, h] = A(!1), [k, P] = A(null), { mutateAsync: D } = v(), R = p(
46
- (e) => {
47
- t(m.RUN_TRANSITION_PAYROLL, {
48
- startDate: e.startDate,
49
- endDate: e.endDate,
50
- payScheduleUuid: e.payScheduleUuid
59
+ }, [d, i]), [O, D] = U(!1), [g, A] = U(null), { mutateAsync: T } = q(), N = (e) => {
60
+ const r = e.payroll?.payrollUuid, { startDate: o, endDate: n, payScheduleUuid: s } = e;
61
+ if (r && P.includes(r)) {
62
+ t(c.REVIEW_PAYROLL, {
63
+ payrollUuid: r,
64
+ payPeriod: { startDate: o, endDate: n, payScheduleUuid: s }
51
65
  });
52
- },
53
- [t]
54
- ), E = p(
66
+ return;
67
+ }
68
+ t(c.RUN_TRANSITION_PAYROLL, {
69
+ payrollUuid: r,
70
+ startDate: o,
71
+ endDate: n,
72
+ payScheduleUuid: s
73
+ });
74
+ }, b = E(
55
75
  async (e) => {
56
- P(e), await n({}, async () => {
57
- await D({
76
+ A(e), await l({}, async () => {
77
+ await T({
58
78
  request: {
59
- companyUuid: o,
79
+ companyUuid: a,
60
80
  requestBody: {
61
- payrollType: M.TransitionFromOldPaySchedule,
81
+ payrollType: I.TransitionFromOldPaySchedule,
62
82
  startDate: e.startDate,
63
83
  endDate: e.endDate,
64
84
  payScheduleUuid: e.payScheduleUuid ?? void 0
65
85
  }
66
86
  }
67
- }), h(!0), t(m.TRANSITION_PAYROLL_SKIPPED, {
87
+ }), D(!0), t(c.TRANSITION_PAYROLL_SKIPPED, {
88
+ payrollUuid: e.payroll?.payrollUuid,
68
89
  startDate: e.startDate,
69
90
  endDate: e.endDate,
70
91
  payScheduleUuid: e.payScheduleUuid
71
92
  });
72
- }), P(null);
93
+ }), A(null);
73
94
  },
74
- [o, D, t, n]
75
- ), N = p(() => {
76
- h(!1);
95
+ [a, T, t, l]
96
+ ), w = E(() => {
97
+ D(!1);
77
98
  }, []);
78
- return !a || f.length === 0 ? null : /* @__PURE__ */ d(
79
- L,
99
+ return !i || !S || h.length === 0 ? null : /* @__PURE__ */ m(
100
+ j,
80
101
  {
81
- groupedPayPeriods: f,
82
- onRunPayroll: R,
83
- onSkipPayroll: E,
84
- showSkipSuccessAlert: T,
85
- onDismissSkipSuccessAlert: N,
86
- skippingPayPeriod: k,
87
- hasBlockers: u
102
+ groupedPayPeriods: h,
103
+ calculatedPayrollUuids: P,
104
+ onRunPayroll: N,
105
+ onSkipPayroll: b,
106
+ showSkipSuccessAlert: O,
107
+ onDismissSkipSuccessAlert: w,
108
+ skippingPayPeriod: g,
109
+ hasBlockers: p
88
110
  }
89
111
  );
90
112
  }
91
113
  export {
92
- $ as TransitionPayrollAlert
114
+ ue as TransitionPayrollAlert
93
115
  };
94
116
  //# sourceMappingURL=TransitionPayrollAlert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionPayrollAlert.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.tsx"],"sourcesContent":["import { useMemo, useState, useCallback, useEffect } from 'react'\nimport { usePaySchedulesGetAll } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePayrollsSkipMutation } from '@gusto/embedded-api/react-query/payrollsSkip'\nimport { PayrollType } from '@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { useUnprocessedTransitionPayPeriods } from '../useUnprocessedTransitionPayPeriods'\nimport {\n TransitionPayrollAlertPresentation,\n type TransitionPayPeriodGroup,\n} from './TransitionPayrollAlertPresentation'\nimport { BaseComponent, type LoaderComponentType } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\ninterface TransitionPayrollAlertProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n /**\n * When true, a payroll blocker is present and the run/skip actions are\n * disabled so the user can't start a transition payroll that would dead-end.\n */\n hasBlockers?: boolean\n}\n\nconst COMPONENT_NAME = 'Payroll.TransitionPayrollAlert'\n\n/** @internal */\nexport function TransitionPayrollAlert({\n companyId,\n onEvent,\n LoaderComponent,\n hasBlockers,\n}: TransitionPayrollAlertProps) {\n return (\n <BaseComponent onEvent={onEvent} LoaderComponent={LoaderComponent}>\n <Root companyId={companyId} hasBlockers={hasBlockers} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, hasBlockers }: { companyId: string; hasBlockers?: boolean }) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { observability } = useObservability()\n\n const { unprocessedPayPeriods } = useUnprocessedTransitionPayPeriods(companyId)\n\n const { data: paySchedulesData, error: paySchedulesError } = usePaySchedulesGetAll({ companyId })\n\n useEffect(() => {\n if (!paySchedulesError) return\n onEvent(componentEvents.ERROR, paySchedulesError)\n const sdkError = normalizeToSDKError(paySchedulesError)\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName: COMPONENT_NAME,\n })\n }, [paySchedulesError, onEvent, observability])\n\n const groupedPayPeriods = useMemo<TransitionPayPeriodGroup[]>(() => {\n if (!paySchedulesData) return []\n const paySchedules = paySchedulesData.payScheduleShowResponse ?? []\n\n const groups = new Map<string, PayPeriod[]>()\n for (const period of unprocessedPayPeriods) {\n const uuid = period.payScheduleUuid ?? 'unknown'\n const existing = groups.get(uuid) ?? []\n existing.push(period)\n groups.set(uuid, existing)\n }\n\n return Array.from(groups.entries()).map(([payScheduleUuid, payPeriods]) => {\n const schedule = paySchedules.find(s => s.uuid === payScheduleUuid)\n const payScheduleName = schedule?.customName || schedule?.name || 'Transition'\n return { payScheduleUuid, payScheduleName, payPeriods }\n })\n }, [unprocessedPayPeriods, paySchedulesData])\n\n const [showSkipSuccessAlert, setShowSkipSuccessAlert] = useState(false)\n const [skippingPayPeriod, setSkippingPayPeriod] = useState<PayPeriod | null>(null)\n\n const { mutateAsync: skipPayroll } = usePayrollsSkipMutation()\n\n const handleRunPayroll = useCallback(\n (payPeriod: PayPeriod) => {\n onEvent(componentEvents.RUN_TRANSITION_PAYROLL, {\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n },\n [onEvent],\n )\n\n const handleSkipPayroll = useCallback(\n async (payPeriod: PayPeriod) => {\n setSkippingPayPeriod(payPeriod)\n await baseSubmitHandler({}, async () => {\n await skipPayroll({\n request: {\n companyUuid: companyId,\n requestBody: {\n payrollType: PayrollType.TransitionFromOldPaySchedule,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid ?? undefined,\n },\n },\n })\n setShowSkipSuccessAlert(true)\n onEvent(componentEvents.TRANSITION_PAYROLL_SKIPPED, {\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n })\n setSkippingPayPeriod(null)\n },\n [companyId, skipPayroll, onEvent, baseSubmitHandler],\n )\n\n const handleDismissSkipSuccessAlert = useCallback(() => {\n setShowSkipSuccessAlert(false)\n }, [])\n\n if (!paySchedulesData || groupedPayPeriods.length === 0) {\n return null\n }\n\n return (\n <TransitionPayrollAlertPresentation\n groupedPayPeriods={groupedPayPeriods}\n onRunPayroll={handleRunPayroll}\n onSkipPayroll={handleSkipPayroll}\n showSkipSuccessAlert={showSkipSuccessAlert}\n onDismissSkipSuccessAlert={handleDismissSkipSuccessAlert}\n skippingPayPeriod={skippingPayPeriod}\n hasBlockers={hasBlockers}\n />\n )\n}\n"],"names":["COMPONENT_NAME","TransitionPayrollAlert","companyId","onEvent","LoaderComponent","hasBlockers","jsx","BaseComponent","Root","baseSubmitHandler","useBase","observability","useObservability","unprocessedPayPeriods","useUnprocessedTransitionPayPeriods","paySchedulesData","paySchedulesError","usePaySchedulesGetAll","useEffect","componentEvents","sdkError","normalizeToSDKError","groupedPayPeriods","useMemo","paySchedules","groups","period","uuid","existing","payScheduleUuid","payPeriods","schedule","s","payScheduleName","showSkipSuccessAlert","setShowSkipSuccessAlert","useState","skippingPayPeriod","setSkippingPayPeriod","skipPayroll","usePayrollsSkipMutation","handleRunPayroll","useCallback","payPeriod","handleSkipPayroll","PayrollType","handleDismissSkipSuccessAlert","TransitionPayrollAlertPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"TransitionPayrollAlert.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.tsx"],"sourcesContent":["import { useMemo, useState, useCallback, useEffect } from 'react'\nimport { usePaySchedulesGetAll } from '@gusto/embedded-api/react-query/paySchedulesGetAll'\nimport { usePayrollsSkipMutation } from '@gusto/embedded-api/react-query/payrollsSkip'\nimport { usePayrollsList } from '@gusto/embedded-api/react-query/payrollsList'\nimport {\n ProcessingStatuses,\n QueryParamPayrollTypes,\n} from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayrolls'\nimport { PayrollType } from '@gusto/embedded-api/models/operations/postcompaniespayrollskipcompanyuuid'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { useUnprocessedTransitionPayPeriods } from '../useUnprocessedTransitionPayPeriods'\nimport {\n TransitionPayrollAlertPresentation,\n type TransitionPayPeriodGroup,\n} from './TransitionPayrollAlertPresentation'\nimport { BaseComponent, type LoaderComponentType } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\ninterface TransitionPayrollAlertProps {\n companyId: string\n onEvent: OnEventType<EventType, unknown>\n LoaderComponent?: LoaderComponentType\n /**\n * When true, a payroll blocker is present and the run/skip actions are\n * disabled so the user can't start a transition payroll that would dead-end.\n */\n hasBlockers?: boolean\n}\n\nconst COMPONENT_NAME = 'Payroll.TransitionPayrollAlert'\n\n/** @internal */\nexport function TransitionPayrollAlert({\n companyId,\n onEvent,\n LoaderComponent,\n hasBlockers,\n}: TransitionPayrollAlertProps) {\n return (\n <BaseComponent onEvent={onEvent} LoaderComponent={LoaderComponent}>\n <Root companyId={companyId} hasBlockers={hasBlockers} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, hasBlockers }: { companyId: string; hasBlockers?: boolean }) {\n const { onEvent, baseSubmitHandler } = useBase()\n const { observability } = useObservability()\n\n const { unprocessedPayPeriods } = useUnprocessedTransitionPayPeriods(companyId)\n\n const { data: paySchedulesData, error: paySchedulesError } = usePaySchedulesGetAll({ companyId })\n\n const sortedPayPeriodDates = unprocessedPayPeriods\n .flatMap(payPeriod => [payPeriod.startDate, payPeriod.endDate])\n .filter((date): date is string => typeof date === 'string')\n .sort()\n\n const { data: transitionPayrollsData, error: transitionPayrollsError } = usePayrollsList(\n {\n companyId,\n processingStatuses: [ProcessingStatuses.Unprocessed],\n payrollTypes: [QueryParamPayrollTypes.OffCycle],\n includeOffCycle: true,\n startDate: sortedPayPeriodDates.at(0),\n endDate: sortedPayPeriodDates.at(-1),\n },\n { enabled: sortedPayPeriodDates.length > 0 },\n )\n\n const calculatedPayrollUuids = (transitionPayrollsData?.payrollList ?? []).flatMap(payroll =>\n payroll.calculatedAt && payroll.payrollUuid ? [payroll.payrollUuid] : [],\n )\n\n const queryError = paySchedulesError ?? transitionPayrollsError\n\n useEffect(() => {\n if (!queryError) return\n onEvent(componentEvents.ERROR, queryError)\n const sdkError = normalizeToSDKError(queryError)\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName: COMPONENT_NAME,\n })\n }, [queryError, onEvent, observability])\n\n const groupedPayPeriods = useMemo<TransitionPayPeriodGroup[]>(() => {\n if (!paySchedulesData) return []\n const paySchedules = paySchedulesData.payScheduleShowResponse ?? []\n\n const groups = new Map<string, PayPeriod[]>()\n for (const period of unprocessedPayPeriods) {\n const uuid = period.payScheduleUuid ?? 'unknown'\n const existing = groups.get(uuid) ?? []\n existing.push(period)\n groups.set(uuid, existing)\n }\n\n return Array.from(groups.entries()).map(([payScheduleUuid, payPeriods]) => {\n const schedule = paySchedules.find(s => s.uuid === payScheduleUuid)\n const payScheduleName = schedule?.customName || schedule?.name || 'Transition'\n return { payScheduleUuid, payScheduleName, payPeriods }\n })\n }, [unprocessedPayPeriods, paySchedulesData])\n\n const [showSkipSuccessAlert, setShowSkipSuccessAlert] = useState(false)\n const [skippingPayPeriod, setSkippingPayPeriod] = useState<PayPeriod | null>(null)\n\n const { mutateAsync: skipPayroll } = usePayrollsSkipMutation()\n\n const handleRunPayroll = (payPeriod: PayPeriod) => {\n const payrollUuid = payPeriod.payroll?.payrollUuid\n const { startDate, endDate, payScheduleUuid } = payPeriod\n\n if (payrollUuid && calculatedPayrollUuids.includes(payrollUuid)) {\n onEvent(componentEvents.REVIEW_PAYROLL, {\n payrollUuid,\n payPeriod: { startDate, endDate, payScheduleUuid },\n })\n return\n }\n\n onEvent(componentEvents.RUN_TRANSITION_PAYROLL, {\n payrollUuid,\n startDate,\n endDate,\n payScheduleUuid,\n })\n }\n\n const handleSkipPayroll = useCallback(\n async (payPeriod: PayPeriod) => {\n setSkippingPayPeriod(payPeriod)\n await baseSubmitHandler({}, async () => {\n await skipPayroll({\n request: {\n companyUuid: companyId,\n requestBody: {\n payrollType: PayrollType.TransitionFromOldPaySchedule,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid ?? undefined,\n },\n },\n })\n setShowSkipSuccessAlert(true)\n onEvent(componentEvents.TRANSITION_PAYROLL_SKIPPED, {\n payrollUuid: payPeriod.payroll?.payrollUuid,\n startDate: payPeriod.startDate,\n endDate: payPeriod.endDate,\n payScheduleUuid: payPeriod.payScheduleUuid,\n })\n })\n setSkippingPayPeriod(null)\n },\n [companyId, skipPayroll, onEvent, baseSubmitHandler],\n )\n\n const handleDismissSkipSuccessAlert = useCallback(() => {\n setShowSkipSuccessAlert(false)\n }, [])\n\n if (!paySchedulesData || !transitionPayrollsData || groupedPayPeriods.length === 0) {\n return null\n }\n\n return (\n <TransitionPayrollAlertPresentation\n groupedPayPeriods={groupedPayPeriods}\n calculatedPayrollUuids={calculatedPayrollUuids}\n onRunPayroll={handleRunPayroll}\n onSkipPayroll={handleSkipPayroll}\n showSkipSuccessAlert={showSkipSuccessAlert}\n onDismissSkipSuccessAlert={handleDismissSkipSuccessAlert}\n skippingPayPeriod={skippingPayPeriod}\n hasBlockers={hasBlockers}\n />\n )\n}\n"],"names":["COMPONENT_NAME","TransitionPayrollAlert","companyId","onEvent","LoaderComponent","hasBlockers","jsx","BaseComponent","Root","baseSubmitHandler","useBase","observability","useObservability","unprocessedPayPeriods","useUnprocessedTransitionPayPeriods","paySchedulesData","paySchedulesError","usePaySchedulesGetAll","sortedPayPeriodDates","payPeriod","date","transitionPayrollsData","transitionPayrollsError","usePayrollsList","ProcessingStatuses","QueryParamPayrollTypes","calculatedPayrollUuids","payroll","queryError","useEffect","componentEvents","sdkError","normalizeToSDKError","groupedPayPeriods","useMemo","paySchedules","groups","period","uuid","existing","payScheduleUuid","payPeriods","schedule","s","payScheduleName","showSkipSuccessAlert","setShowSkipSuccessAlert","useState","skippingPayPeriod","setSkippingPayPeriod","skipPayroll","usePayrollsSkipMutation","handleRunPayroll","payrollUuid","startDate","endDate","handleSkipPayroll","useCallback","PayrollType","handleDismissSkipSuccessAlert","TransitionPayrollAlertPresentation"],"mappings":"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"}