@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
@@ -1,92 +1,141 @@
1
- import { jsxs as r, jsx as e } from "react/jsx-runtime";
2
- import { useState as T } from "react";
3
- import { useTranslation as v } from "react-i18next";
4
- import { useComponentContext as R } from "../../../contexts/ComponentAdapter/useComponentContext.js";
5
- import { Flex as a } from "../../Common/Flex/Flex.js";
6
- import { useI18n as F } from "../../../i18n/I18n.js";
7
- import { useDateFormatter as L } from "../../../hooks/useDateFormatter.js";
8
- function N({
9
- groupedPayPeriods: o,
10
- onRunPayroll: h,
11
- onSkipPayroll: D,
12
- showSkipSuccessAlert: f,
13
- onDismissSkipSuccessAlert: g,
14
- skippingPayPeriod: k,
15
- hasBlockers: c = !1
1
+ import { jsxs as s, jsx as t, Fragment as L } from "react/jsx-runtime";
2
+ import { useState as N, Fragment as U, useId as T } from "react";
3
+ import { useTranslation as C } from "react-i18next";
4
+ import M from "./TransitionPayrollAlertPresentation.module.scss.js";
5
+ import { useComponentContext as P } from "../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { Flex as o, FlexItem as j } from "../../Common/Flex/Flex.js";
7
+ import { useI18n as z } from "../../../i18n/I18n.js";
8
+ import { useDateFormatter as B } from "../../../hooks/useDateFormatter.js";
9
+ function b({
10
+ onRun: c,
11
+ isCalculated: d,
12
+ onSkip: u,
13
+ isSkipping: l,
14
+ isDisabled: n,
15
+ describedBy: r
16
16
  }) {
17
- F("Payroll.TransitionPayrollAlert");
18
- const { t } = v("Payroll.TransitionPayrollAlert"), { Alert: m, Button: u, Text: p, Dialog: y } = R(), x = L(), [n, s] = T(null);
19
- if (o.length === 0)
17
+ const { t: m } = C("Payroll.TransitionPayrollAlert"), { Button: g } = P();
18
+ return /* @__PURE__ */ s(L, { children: [
19
+ /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
20
+ g,
21
+ {
22
+ variant: "secondary",
23
+ onClick: c,
24
+ isDisabled: n,
25
+ "aria-describedby": r,
26
+ children: m(d ? "reviewPayroll" : "runPayroll")
27
+ }
28
+ ) }),
29
+ /* @__PURE__ */ t(
30
+ g,
31
+ {
32
+ variant: "tertiary",
33
+ onClick: u,
34
+ isLoading: l,
35
+ isDisabled: n,
36
+ "aria-describedby": r,
37
+ children: m("skipPayroll")
38
+ }
39
+ )
40
+ ] });
41
+ }
42
+ function G({
43
+ dateRange: c,
44
+ payScheduleName: d,
45
+ ...u
46
+ }) {
47
+ const { Text: l } = P(), n = T(), r = T();
48
+ return /* @__PURE__ */ s(o, { alignItems: "center", flexWrap: "wrap", gap: 12, children: [
49
+ /* @__PURE__ */ t(j, { flexGrow: 1, children: /* @__PURE__ */ s(o, { flexDirection: "column", gap: 4, children: [
50
+ /* @__PURE__ */ t(l, { id: n, weight: "medium", children: c }),
51
+ /* @__PURE__ */ t(l, { id: r, variant: "supporting", size: "sm", children: d })
52
+ ] }) }),
53
+ /* @__PURE__ */ t(
54
+ b,
55
+ {
56
+ ...u,
57
+ describedBy: `${n} ${r}`
58
+ }
59
+ )
60
+ ] });
61
+ }
62
+ function V({
63
+ groupedPayPeriods: c,
64
+ calculatedPayrollUuids: d = [],
65
+ onRunPayroll: u,
66
+ onSkipPayroll: l,
67
+ showSkipSuccessAlert: n,
68
+ onDismissSkipSuccessAlert: r,
69
+ skippingPayPeriod: m,
70
+ hasBlockers: g = !1
71
+ }) {
72
+ z("Payroll.TransitionPayrollAlert");
73
+ const { t: i } = C("Payroll.TransitionPayrollAlert"), { Alert: D, Text: R, Dialog: v } = P(), F = B(), [p, h] = N(null), y = c.flatMap(
74
+ (e) => e.payPeriods.map((a) => ({ payPeriod: a, payScheduleName: e.payScheduleName }))
75
+ ), [k] = y;
76
+ if (!k)
20
77
  return null;
21
- const d = (i) => x.formatPayPeriodRange(i.startDate, i.endDate, {
78
+ const x = k.payPeriod, f = (e) => F.formatPayPeriodRange(e.startDate, e.endDate, {
22
79
  useShortMonth: !0
23
- }), C = () => {
24
- n && (D(n), s(null));
25
- }, S = o.length > 1;
26
- return /* @__PURE__ */ r(a, { flexDirection: "column", gap: 16, children: [
27
- f && /* @__PURE__ */ e(m, { status: "info", label: t("skipSuccessAlert"), onDismiss: g }),
28
- o.map((i, b) => /* @__PURE__ */ r(a, { flexDirection: "column", gap: 16, children: [
29
- S && /* @__PURE__ */ e(p, { weight: "semibold", children: i.payScheduleName }),
30
- i.payPeriods.map((l) => {
31
- const A = d(l), P = k === l;
32
- return /* @__PURE__ */ e(
33
- m,
34
- {
35
- status: "warning",
36
- label: t("alertTitle", { dateRange: A }),
37
- children: /* @__PURE__ */ r(a, { flexDirection: "column", gap: 16, children: [
38
- /* @__PURE__ */ e(p, { children: t("alertDescription") }),
39
- /* @__PURE__ */ r(a, { gap: 12, alignItems: "center", children: [
40
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(
41
- u,
42
- {
43
- variant: "secondary",
44
- onClick: () => {
45
- h(l);
46
- },
47
- isDisabled: c,
48
- children: t("runPayroll")
49
- }
50
- ) }),
51
- /* @__PURE__ */ e(
52
- u,
53
- {
54
- variant: "tertiary",
55
- onClick: () => {
56
- s(l);
57
- },
58
- isLoading: P,
59
- isDisabled: c,
60
- children: t("skipPayroll")
61
- }
62
- )
63
- ] })
64
- ] })
65
- },
66
- `${l.payScheduleUuid}-${l.startDate}`
67
- );
68
- })
69
- ] }, i.payScheduleUuid || `group-${b}`)),
70
- /* @__PURE__ */ e(
71
- y,
80
+ }), I = () => {
81
+ p && (l(p), h(null));
82
+ }, A = (e) => {
83
+ const a = e.payroll?.payrollUuid;
84
+ return {
85
+ onRun: () => {
86
+ u(e);
87
+ },
88
+ isCalculated: !!a && d.includes(a),
89
+ onSkip: () => {
90
+ h(e);
91
+ },
92
+ isSkipping: m === e,
93
+ isDisabled: g
94
+ };
95
+ }, w = (e) => e.payroll?.payrollUuid ?? `${e.payScheduleUuid}-${e.startDate}`, S = y.length > 1;
96
+ return /* @__PURE__ */ s(o, { flexDirection: "column", gap: 16, children: [
97
+ n && /* @__PURE__ */ t(D, { status: "info", label: i("skipSuccessAlert"), onDismiss: r }),
98
+ /* @__PURE__ */ t(
99
+ D,
100
+ {
101
+ status: "warning",
102
+ label: S ? i("multipleAlertTitle", { count: y.length }) : i("alertTitle", { dateRange: f(x) }),
103
+ children: /* @__PURE__ */ s(o, { flexDirection: "column", gap: 16, children: [
104
+ /* @__PURE__ */ t(R, { children: i("alertDescription") }),
105
+ S ? /* @__PURE__ */ t(o, { flexDirection: "column", gap: 16, children: y.map(({ payPeriod: e, payScheduleName: a }, $) => /* @__PURE__ */ s(U, { children: [
106
+ $ > 0 && /* @__PURE__ */ t("hr", { className: M.divider }),
107
+ /* @__PURE__ */ t(
108
+ G,
109
+ {
110
+ dateRange: f(e),
111
+ payScheduleName: a,
112
+ ...A(e)
113
+ }
114
+ )
115
+ ] }, w(e))) }) : /* @__PURE__ */ t(o, { gap: 12, alignItems: "center", children: /* @__PURE__ */ t(b, { ...A(x) }) })
116
+ ] })
117
+ }
118
+ ),
119
+ /* @__PURE__ */ t(
120
+ v,
72
121
  {
73
- isOpen: n !== null,
122
+ isOpen: p !== null,
74
123
  onClose: () => {
75
- s(null);
124
+ h(null);
76
125
  },
77
- onPrimaryActionClick: C,
126
+ onPrimaryActionClick: I,
78
127
  isDestructive: !0,
79
- title: t("skipDialog.title", {
80
- dateRange: n ? d(n) : ""
128
+ title: i("skipDialog.title", {
129
+ dateRange: p ? f(p) : ""
81
130
  }),
82
- primaryActionLabel: t("skipDialog.confirmCta"),
83
- closeActionLabel: t("skipDialog.cancelCta"),
84
- children: t("skipDialog.body")
131
+ primaryActionLabel: i("skipDialog.confirmCta"),
132
+ closeActionLabel: i("skipDialog.cancelCta"),
133
+ children: i("skipDialog.body")
85
134
  }
86
135
  )
87
136
  ] });
88
137
  }
89
138
  export {
90
- N as TransitionPayrollAlertPresentation
139
+ V as TransitionPayrollAlertPresentation
91
140
  };
92
141
  //# sourceMappingURL=TransitionPayrollAlertPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionPayrollAlertPresentation.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/** @internal */\nexport interface TransitionPayPeriodGroup {\n /** UUID of the pay schedule these transition pay periods belong to. */\n payScheduleUuid: string\n /** Display name of the pay schedule, shown when multiple groups are rendered. */\n payScheduleName: string\n /** Unprocessed transition pay periods for this pay schedule. */\n payPeriods: PayPeriod[]\n}\n\ninterface TransitionPayrollAlertPresentationProps {\n groupedPayPeriods: TransitionPayPeriodGroup[]\n onRunPayroll: (payPeriod: PayPeriod) => void\n onSkipPayroll: (payPeriod: PayPeriod) => void\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n skippingPayPeriod: PayPeriod | null\n /**\n * When true, a payroll blocker is present. Running or skipping the\n * transition payroll would dead-end, so both actions are disabled. The\n * blocker itself is surfaced separately by `PayrollBlockerAlerts`.\n */\n hasBlockers?: boolean\n}\n\n/** @internal */\nexport function TransitionPayrollAlertPresentation({\n groupedPayPeriods,\n onRunPayroll,\n onSkipPayroll,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n skippingPayPeriod,\n hasBlockers = false,\n}: TransitionPayrollAlertPresentationProps) {\n useI18n('Payroll.TransitionPayrollAlert')\n const { t } = useTranslation('Payroll.TransitionPayrollAlert')\n const { Alert, Button, Text, Dialog } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const [skipDialogPayPeriod, setSkipDialogPayPeriod] = useState<PayPeriod | null>(null)\n\n if (groupedPayPeriods.length === 0) {\n return null\n }\n\n const formatDateRange = (payPeriod: PayPeriod) =>\n dateFormatter.formatPayPeriodRange(payPeriod.startDate, payPeriod.endDate, {\n useShortMonth: true,\n })\n\n const handleConfirmSkip = () => {\n if (skipDialogPayPeriod) {\n onSkipPayroll(skipDialogPayPeriod)\n setSkipDialogPayPeriod(null)\n }\n }\n\n const hasMultipleGroups = groupedPayPeriods.length > 1\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {showSkipSuccessAlert && (\n <Alert status=\"info\" label={t('skipSuccessAlert')} onDismiss={onDismissSkipSuccessAlert} />\n )}\n {groupedPayPeriods.map((group, groupIndex) => (\n <Flex key={group.payScheduleUuid || `group-${groupIndex}`} flexDirection=\"column\" gap={16}>\n {hasMultipleGroups && <Text weight=\"semibold\">{group.payScheduleName}</Text>}\n {group.payPeriods.map(payPeriod => {\n const dateRange = formatDateRange(payPeriod)\n const isSkipping = skippingPayPeriod === payPeriod\n\n return (\n <Alert\n key={`${payPeriod.payScheduleUuid}-${payPeriod.startDate}`}\n status=\"warning\"\n label={t('alertTitle', { dateRange })}\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('alertDescription')}</Text>\n <Flex gap={12} alignItems=\"center\">\n <div>\n <Button\n variant=\"secondary\"\n onClick={() => {\n onRunPayroll(payPeriod)\n }}\n isDisabled={hasBlockers}\n >\n {t('runPayroll')}\n </Button>\n </div>\n <Button\n variant=\"tertiary\"\n onClick={() => {\n setSkipDialogPayPeriod(payPeriod)\n }}\n isLoading={isSkipping}\n isDisabled={hasBlockers}\n >\n {t('skipPayroll')}\n </Button>\n </Flex>\n </Flex>\n </Alert>\n )\n })}\n </Flex>\n ))}\n <Dialog\n isOpen={skipDialogPayPeriod !== null}\n onClose={() => {\n setSkipDialogPayPeriod(null)\n }}\n onPrimaryActionClick={handleConfirmSkip}\n isDestructive\n title={t('skipDialog.title', {\n dateRange: skipDialogPayPeriod ? formatDateRange(skipDialogPayPeriod) : '',\n })}\n primaryActionLabel={t('skipDialog.confirmCta')}\n closeActionLabel={t('skipDialog.cancelCta')}\n >\n {t('skipDialog.body')}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["TransitionPayrollAlertPresentation","groupedPayPeriods","onRunPayroll","onSkipPayroll","showSkipSuccessAlert","onDismissSkipSuccessAlert","skippingPayPeriod","hasBlockers","useI18n","useTranslation","Alert","Button","Text","Dialog","useComponentContext","dateFormatter","useDateFormatter","skipDialogPayPeriod","setSkipDialogPayPeriod","useState","formatDateRange","payPeriod","handleConfirmSkip","hasMultipleGroups","jsxs","Flex","jsx","group","groupIndex","dateRange","isSkipping"],"mappings":"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"}
1
+ {"version":3,"file":"TransitionPayrollAlertPresentation.js","sources":["../../../../src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.tsx"],"sourcesContent":["import { Fragment, useId, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport styles from './TransitionPayrollAlertPresentation.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, FlexItem } from '@/components/Common/Flex/Flex'\nimport { useI18n } from '@/i18n'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\n\n/** @internal */\nexport interface TransitionPayPeriodGroup {\n /** UUID of the pay schedule these transition pay periods belong to. */\n payScheduleUuid: string\n /** Display name of the pay schedule, shown under each pay period's dates when several are listed. */\n payScheduleName: string\n /** Unprocessed transition pay periods for this pay schedule. */\n payPeriods: PayPeriod[]\n}\n\ninterface TransitionPayrollAlertPresentationProps {\n groupedPayPeriods: TransitionPayPeriodGroup[]\n /** IDs of payrolls that are already calculated. These rows show Review and submit instead of Run. */\n calculatedPayrollUuids?: string[]\n /** Called when the user clicks Run or Review and submit on a row. */\n onRunPayroll: (payPeriod: PayPeriod) => void\n onSkipPayroll: (payPeriod: PayPeriod) => void\n showSkipSuccessAlert: boolean\n onDismissSkipSuccessAlert: () => void\n skippingPayPeriod: PayPeriod | null\n /**\n * When true, a payroll blocker is present. Running or skipping the\n * transition payroll would dead-end, so both actions are disabled. The\n * blocker itself is surfaced separately by `PayrollBlockerAlerts`.\n */\n hasBlockers?: boolean\n}\n\ninterface TransitionPayrollActionsProps {\n onRun: () => void\n isCalculated: boolean\n onSkip: () => void\n isSkipping: boolean\n isDisabled: boolean\n describedBy?: string\n}\n\nfunction TransitionPayrollActions({\n onRun,\n isCalculated,\n onSkip,\n isSkipping,\n isDisabled,\n describedBy,\n}: TransitionPayrollActionsProps) {\n const { t } = useTranslation('Payroll.TransitionPayrollAlert')\n const { Button } = useComponentContext()\n\n return (\n <>\n <div>\n <Button\n variant=\"secondary\"\n onClick={onRun}\n isDisabled={isDisabled}\n aria-describedby={describedBy}\n >\n {isCalculated ? t('reviewPayroll') : t('runPayroll')}\n </Button>\n </div>\n <Button\n variant=\"tertiary\"\n onClick={onSkip}\n isLoading={isSkipping}\n isDisabled={isDisabled}\n aria-describedby={describedBy}\n >\n {t('skipPayroll')}\n </Button>\n </>\n )\n}\n\ninterface TransitionPayrollRowProps extends Omit<TransitionPayrollActionsProps, 'describedBy'> {\n dateRange: string\n payScheduleName: string\n}\n\nfunction TransitionPayrollRow({\n dateRange,\n payScheduleName,\n ...actionProps\n}: TransitionPayrollRowProps) {\n const { Text } = useComponentContext()\n const dateRangeId = useId()\n const payScheduleNameId = useId()\n\n return (\n <Flex alignItems=\"center\" flexWrap=\"wrap\" gap={12}>\n <FlexItem flexGrow={1}>\n <Flex flexDirection=\"column\" gap={4}>\n <Text id={dateRangeId} weight=\"medium\">\n {dateRange}\n </Text>\n <Text id={payScheduleNameId} variant=\"supporting\" size=\"sm\">\n {payScheduleName}\n </Text>\n </Flex>\n </FlexItem>\n <TransitionPayrollActions\n {...actionProps}\n describedBy={`${dateRangeId} ${payScheduleNameId}`}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function TransitionPayrollAlertPresentation({\n groupedPayPeriods,\n calculatedPayrollUuids = [],\n onRunPayroll,\n onSkipPayroll,\n showSkipSuccessAlert,\n onDismissSkipSuccessAlert,\n skippingPayPeriod,\n hasBlockers = false,\n}: TransitionPayrollAlertPresentationProps) {\n useI18n('Payroll.TransitionPayrollAlert')\n const { t } = useTranslation('Payroll.TransitionPayrollAlert')\n const { Alert, Text, Dialog } = useComponentContext()\n const dateFormatter = useDateFormatter()\n const [skipDialogPayPeriod, setSkipDialogPayPeriod] = useState<PayPeriod | null>(null)\n\n const listedPayPeriods = groupedPayPeriods.flatMap(group =>\n group.payPeriods.map(payPeriod => ({ payPeriod, payScheduleName: group.payScheduleName })),\n )\n const [firstListedPayPeriod] = listedPayPeriods\n\n if (!firstListedPayPeriod) {\n return null\n }\n\n const firstPayPeriod = firstListedPayPeriod.payPeriod\n\n const formatDateRange = (payPeriod: PayPeriod) =>\n dateFormatter.formatPayPeriodRange(payPeriod.startDate, payPeriod.endDate, {\n useShortMonth: true,\n })\n\n const handleConfirmSkip = () => {\n if (skipDialogPayPeriod) {\n onSkipPayroll(skipDialogPayPeriod)\n setSkipDialogPayPeriod(null)\n }\n }\n\n const getActionProps = (payPeriod: PayPeriod) => {\n const payrollUuid = payPeriod.payroll?.payrollUuid\n\n return {\n onRun: () => {\n onRunPayroll(payPeriod)\n },\n isCalculated: !!payrollUuid && calculatedPayrollUuids.includes(payrollUuid),\n onSkip: () => {\n setSkipDialogPayPeriod(payPeriod)\n },\n isSkipping: skippingPayPeriod === payPeriod,\n isDisabled: hasBlockers,\n }\n }\n\n const getPayPeriodKey = (payPeriod: PayPeriod) =>\n payPeriod.payroll?.payrollUuid ?? `${payPeriod.payScheduleUuid}-${payPeriod.startDate}`\n\n const hasMultiplePayPeriods = listedPayPeriods.length > 1\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {showSkipSuccessAlert && (\n <Alert status=\"info\" label={t('skipSuccessAlert')} onDismiss={onDismissSkipSuccessAlert} />\n )}\n <Alert\n status=\"warning\"\n label={\n hasMultiplePayPeriods\n ? t('multipleAlertTitle', { count: listedPayPeriods.length })\n : t('alertTitle', { dateRange: formatDateRange(firstPayPeriod) })\n }\n >\n <Flex flexDirection=\"column\" gap={16}>\n <Text>{t('alertDescription')}</Text>\n {hasMultiplePayPeriods ? (\n <Flex flexDirection=\"column\" gap={16}>\n {listedPayPeriods.map(({ payPeriod, payScheduleName }, index) => (\n <Fragment key={getPayPeriodKey(payPeriod)}>\n {index > 0 && <hr className={styles.divider} />}\n <TransitionPayrollRow\n dateRange={formatDateRange(payPeriod)}\n payScheduleName={payScheduleName}\n {...getActionProps(payPeriod)}\n />\n </Fragment>\n ))}\n </Flex>\n ) : (\n <Flex gap={12} alignItems=\"center\">\n <TransitionPayrollActions {...getActionProps(firstPayPeriod)} />\n </Flex>\n )}\n </Flex>\n </Alert>\n <Dialog\n isOpen={skipDialogPayPeriod !== null}\n onClose={() => {\n setSkipDialogPayPeriod(null)\n }}\n onPrimaryActionClick={handleConfirmSkip}\n isDestructive\n title={t('skipDialog.title', {\n dateRange: skipDialogPayPeriod ? formatDateRange(skipDialogPayPeriod) : '',\n })}\n primaryActionLabel={t('skipDialog.confirmCta')}\n closeActionLabel={t('skipDialog.cancelCta')}\n >\n {t('skipDialog.body')}\n </Dialog>\n </Flex>\n )\n}\n"],"names":["TransitionPayrollActions","onRun","isCalculated","onSkip","isSkipping","isDisabled","describedBy","t","useTranslation","Button","useComponentContext","jsxs","Fragment","jsx","TransitionPayrollRow","dateRange","payScheduleName","actionProps","Text","dateRangeId","useId","payScheduleNameId","Flex","FlexItem","TransitionPayrollAlertPresentation","groupedPayPeriods","calculatedPayrollUuids","onRunPayroll","onSkipPayroll","showSkipSuccessAlert","onDismissSkipSuccessAlert","skippingPayPeriod","hasBlockers","useI18n","Alert","Dialog","dateFormatter","useDateFormatter","skipDialogPayPeriod","setSkipDialogPayPeriod","useState","listedPayPeriods","group","payPeriod","firstListedPayPeriod","firstPayPeriod","formatDateRange","handleConfirmSkip","getActionProps","payrollUuid","getPayPeriodKey","hasMultiplePayPeriods","index","styles"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ const d = "_divider_zu5hl_1", e = {
2
+ divider: d
3
+ };
4
+ export {
5
+ e as default,
6
+ d as divider
7
+ };
8
+ //# sourceMappingURL=TransitionPayrollAlertPresentation.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionPayrollAlertPresentation.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,32 +1,30 @@
1
1
  import { PayrollConfiguration as e } from "./PayrollConfiguration/PayrollConfiguration.js";
2
2
  import { PayrollEditEmployee as l } from "./PayrollEditEmployee/PayrollEditEmployee.js";
3
3
  import { PayrollHistory as i } from "./PayrollHistory/PayrollHistory.js";
4
- import { PayrollLanding as a } from "./PayrollLanding/PayrollLanding.js";
4
+ import { PayrollLanding as p } from "./PayrollLanding/PayrollLanding.js";
5
5
  import { PayrollList as x } from "./PayrollList/PayrollList.js";
6
- import { PayrollOverview as s } from "./PayrollOverview/PayrollOverview.js";
6
+ import { PayrollOverview as n } from "./PayrollOverview/PayrollOverview.js";
7
7
  import { PayrollFlow as P } from "./PayrollFlow/PayrollFlow.js";
8
8
  import { PayrollReceipts as C } from "./PayrollReceipts/PayrollReceipts.js";
9
- import { ConfirmWireDetails as F } from "./ConfirmWireDetails/ConfirmWireDetails.js";
10
- import { RecoveryCases as d } from "./RecoveryCases/RecoveryCases.js";
11
- import { PrintChecks as g } from "./PrintChecks/PrintChecks.js";
9
+ import { ConfirmWireDetails as O } from "./ConfirmWireDetails/ConfirmWireDetails.js";
10
+ import { RecoveryCases as g } from "./RecoveryCases/RecoveryCases.js";
11
+ import { PrintChecks as D } from "./PrintChecks/PrintChecks.js";
12
12
  import { DismissalFlow as v } from "./Dismissal/DismissalFlow.js";
13
13
  import { DismissalPayPeriodSelection as L } from "./Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js";
14
14
  import { OffCycleCreation as S } from "./OffCycleCreation/OffCycleCreation.js";
15
- import { OffCycleDeductionsSetting as k } from "./OffCycleDeductionsSetting/OffCycleDeductionsSetting.js";
16
- import { OffCycleFlow as B } from "./OffCycle/OffCycleFlow.js";
15
+ import { OffCycleDeductionsSetting as h } from "./OffCycleDeductionsSetting/OffCycleDeductionsSetting.js";
16
+ import { OffCycleFlow as H } from "./OffCycle/OffCycleFlow.js";
17
17
  import { OffCycleReasonSelection as W } from "./OffCycleReasonSelection/OffCycleReasonSelection.js";
18
18
  import { PayrollBlockerList as j } from "./PayrollBlocker/components/PayrollBlockerList.js";
19
19
  import { PayrollExecutionFlow as z } from "./PayrollExecutionFlow/PayrollExecutionFlow.js";
20
- import { TransitionCreation as G } from "./TransitionCreation/TransitionCreation.js";
21
- import { TransitionFlow as J } from "./Transition/TransitionFlow.js";
22
- import { TransitionPayroll as M } from "./TransitionPayroll/TransitionPayroll.js";
20
+ import { TransitionConfiguration as G } from "./TransitionConfiguration/TransitionConfiguration.js";
23
21
  export {
24
- F as ConfirmWireDetails,
22
+ O as ConfirmWireDetails,
25
23
  v as DismissalFlow,
26
24
  L as DismissalPayPeriodSelection,
27
25
  S as OffCycleCreation,
28
- k as OffCycleDeductionsSetting,
29
- B as OffCycleFlow,
26
+ h as OffCycleDeductionsSetting,
27
+ H as OffCycleFlow,
30
28
  W as OffCycleReasonSelection,
31
29
  j as PayrollBlockerList,
32
30
  e as PayrollConfiguration,
@@ -34,14 +32,12 @@ export {
34
32
  z as PayrollExecutionFlow,
35
33
  P as PayrollFlow,
36
34
  i as PayrollHistory,
37
- a as PayrollLanding,
35
+ p as PayrollLanding,
38
36
  x as PayrollList,
39
- s as PayrollOverview,
37
+ n as PayrollOverview,
40
38
  C as PayrollReceipts,
41
- g as PrintChecks,
42
- d as RecoveryCases,
43
- G as TransitionCreation,
44
- J as TransitionFlow,
45
- M as TransitionPayroll
39
+ D as PrintChecks,
40
+ g as RecoveryCases,
41
+ G as TransitionConfiguration
46
42
  };
47
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
@@ -13,9 +13,8 @@ import "@gusto/embedded-api/models/errors/sdkvalidationerror";
13
13
  import "@gusto/embedded-api/models/errors/httpclienterrors";
14
14
  import "../../shared/constants.js";
15
15
  import "../../contexts/ComponentAdapter/useComponentContext.js";
16
- import "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
17
16
  import { retryAsync as T } from "../../helpers/retryAsync.js";
18
- const U = 4, q = 1500, B = (e) => e instanceof w ? e.errors.some((r) => r.category === "invalid_operation") : !1, Z = ({
17
+ const U = 4, q = 1500, B = (e) => e instanceof w ? e.errors.some((r) => r.category === "invalid_operation") : !1, W = ({
19
18
  companyId: e,
20
19
  payrollId: r,
21
20
  employeeUuids: a,
@@ -75,6 +74,6 @@ const U = 4, q = 1500, B = (e) => e instanceof w ? e.errors.some((r) => r.catego
75
74
  };
76
75
  };
77
76
  export {
78
- Z as usePreparedPayrollData
77
+ W as usePreparedPayrollData
79
78
  };
80
79
  //# sourceMappingURL=usePreparedPayrollData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/unprocessedpayroll'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n /**\n * When true, prepare is called without a roster. A transition payroll's roster is fixed by the\n * pay-schedule transition, so the API rejects any `employeeUuids` sent to prepare.\n */\n isTransitionPayroll?: boolean\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n isTransitionPayroll = false,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids: isTransitionPayroll ? undefined : employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [\n companyId,\n payrollId,\n preparePayroll,\n employeeUuidsKey,\n sortBy,\n onDataReady,\n isTransitionPayroll,\n ])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","isTransitionPayroll","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;;AA+BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,qBAAAC,IAAsB;AACxB,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMhB,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMiB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAArB;AAAA,MACA,eAAeS,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAN;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAeE,IAAsB,SAAYH;AAAA,QAAA;AAAA,MACnD;AAAA,IACF,CACD;AACD,IAAAQ,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BR,IAAcoB,EAAO,eAAe;AAAA,EAExC,GAAG;AAAA,IACDxB;AAAA,IACAC;AAAA,IACAK;AAAA,IACAW;AAAA,IACAd;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,CACD,GAEKoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa7B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACoB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
1
+ {"version":3,"file":"usePreparedPayrollData.js","sources":["../../../src/components/Payroll/usePreparedPayrollData.ts"],"sourcesContent":["import { useState, useEffect, useCallback, useRef, useMemo } from 'react'\nimport { usePayrollsPrepareMutation } from '@gusto/embedded-api/react-query/payrollsPrepare'\nimport { usePaySchedulesGet } from '@gusto/embedded-api/react-query/paySchedulesGet'\nimport type { PayrollPrepared } from '@gusto/embedded-api/models/components/unprocessedpayroll'\nimport type { PayScheduleShow } from '@gusto/embedded-api/models/components/payschedulelistitem'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useBase } from '../Base'\nimport { retryAsync } from '@/helpers/retryAsync'\n\ninterface UsePreparedPayrollDataParams {\n companyId: string\n payrollId: string\n employeeUuids?: string[]\n sortBy?: string\n onDataReady?: (preparedPayroll: PayrollPrepared) => void\n /**\n * When true, prepare is called without a roster. A transition payroll's roster is fixed by the\n * pay-schedule transition, so the API rejects any `employeeUuids` sent to prepare.\n */\n isTransitionPayroll?: boolean\n}\n\ninterface UsePreparedPayrollDataReturn {\n handlePreparePayroll: () => Promise<void>\n preparedPayroll: PayrollPrepared | undefined\n paySchedule: PayScheduleShow | undefined\n isLoading: boolean\n isPaginating: boolean\n hasInitialData: boolean\n}\n\nconst PREPARE_MAX_ATTEMPTS = 4\nconst PREPARE_RETRY_DELAY_MS = 1500\n\nconst isPayrollBeingProcessedError = (error: unknown): boolean => {\n if (!(error instanceof UnprocessableEntityError)) return false\n return error.errors.some(e => e.category === 'invalid_operation')\n}\n\n/**\n * Wraps the prepare-payroll mutation and pay-schedule fetch, retrying while the payroll is still being processed.\n *\n * @remarks\n * Fires the prepare call once on mount, then exposes `handlePreparePayroll` for callers that need to re-prepare\n * (e.g. after sort or pagination changes). Distinguishes initial loading from subsequent pagination via\n * `isLoading` and `isPaginating`, and surfaces the pay schedule for the prepared payroll's pay period.\n *\n * @param params - The company and payroll identifiers, plus optional employee filter, sort, and ready callback.\n * @returns The prepared payroll, its pay schedule, loading flags, and a `handlePreparePayroll` callback to re-run.\n * @internal\n */\nexport const usePreparedPayrollData = ({\n companyId,\n payrollId,\n employeeUuids,\n sortBy,\n onDataReady,\n isTransitionPayroll = false,\n}: UsePreparedPayrollDataParams): UsePreparedPayrollDataReturn => {\n const { mutateAsync: preparePayroll, isPending: isPreparePayrollPending } =\n usePayrollsPrepareMutation()\n const [preparedPayroll, setPreparedPayroll] = useState<PayrollPrepared | undefined>()\n const hasInitialDataRef = useRef(false)\n const hasFiredRef = useRef(false)\n const { baseSubmitHandler } = useBase()\n\n const employeeUuidsKey = useMemo(() => employeeUuids?.join(',') ?? '', [employeeUuids])\n\n const { data: payScheduleData, isLoading: isPayScheduleLoading } = usePaySchedulesGet(\n {\n companyId,\n payScheduleId: preparedPayroll?.payPeriod?.payScheduleUuid || '',\n },\n {\n enabled: !!preparedPayroll?.payPeriod?.payScheduleUuid,\n },\n )\n\n const executePrepare = useCallback(async () => {\n const result = await preparePayroll({\n request: {\n companyId,\n payrollId,\n sortBy,\n requestBody: {\n employeeUuids: isTransitionPayroll ? undefined : employeeUuids,\n },\n },\n })\n setPreparedPayroll(result.payrollPrepared)\n if (result.payrollPrepared) {\n hasInitialDataRef.current = true\n onDataReady?.(result.payrollPrepared)\n }\n }, [\n companyId,\n payrollId,\n preparePayroll,\n employeeUuidsKey,\n sortBy,\n onDataReady,\n isTransitionPayroll,\n ])\n\n const handlePreparePayroll = useCallback(async () => {\n await baseSubmitHandler(null, () =>\n retryAsync(executePrepare, {\n maxAttempts: PREPARE_MAX_ATTEMPTS,\n delayMs: PREPARE_RETRY_DELAY_MS,\n shouldRetry: isPayrollBeingProcessedError,\n }),\n )\n }, [baseSubmitHandler, executePrepare])\n\n useEffect(() => {\n if (hasFiredRef.current) return\n hasFiredRef.current = true\n void handlePreparePayroll()\n }, [handlePreparePayroll])\n\n const isInitialLoading = isPreparePayrollPending && !hasInitialDataRef.current\n const isPaginating = isPreparePayrollPending && hasInitialDataRef.current\n const isLoading = isInitialLoading || isPayScheduleLoading\n\n return {\n handlePreparePayroll,\n preparedPayroll,\n paySchedule: payScheduleData?.payScheduleShow,\n isLoading,\n isPaginating,\n hasInitialData: hasInitialDataRef.current,\n }\n}\n"],"names":["PREPARE_MAX_ATTEMPTS","PREPARE_RETRY_DELAY_MS","isPayrollBeingProcessedError","error","UnprocessableEntityError","e","usePreparedPayrollData","companyId","payrollId","employeeUuids","sortBy","onDataReady","isTransitionPayroll","preparePayroll","isPreparePayrollPending","usePayrollsPrepareMutation","preparedPayroll","setPreparedPayroll","useState","hasInitialDataRef","useRef","hasFiredRef","baseSubmitHandler","useBase","employeeUuidsKey","useMemo","payScheduleData","isPayScheduleLoading","usePaySchedulesGet","executePrepare","useCallback","result","handlePreparePayroll","retryAsync","useEffect","isInitialLoading","isPaginating","isLoading"],"mappings":";;;;;;;;;;;;;;;;AA+BA,MAAMA,IAAuB,GACvBC,IAAyB,MAEzBC,IAA+B,CAACC,MAC9BA,aAAiBC,IAChBD,EAAM,OAAO,KAAK,CAAAE,MAAKA,EAAE,aAAa,mBAAmB,IADP,IAgB9CC,IAAyB,CAAC;AAAA,EACrC,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,aAAAC;AAAA,EACA,qBAAAC,IAAsB;AACxB,MAAkE;AAChE,QAAM,EAAE,aAAaC,GAAgB,WAAWC,EAAA,IAC9CC,EAAA,GACI,CAACC,GAAiBC,CAAkB,IAAIC,EAAA,GACxCC,IAAoBC,EAAO,EAAK,GAChCC,IAAcD,EAAO,EAAK,GAC1B,EAAE,mBAAAE,EAAA,IAAsBC,EAAA,GAExBC,IAAmBC,EAAQ,MAAMhB,GAAe,KAAK,GAAG,KAAK,IAAI,CAACA,CAAa,CAAC,GAEhF,EAAE,MAAMiB,GAAiB,WAAWC,MAAyBC;AAAA,IACjE;AAAA,MACE,WAAArB;AAAA,MACA,eAAeS,GAAiB,WAAW,mBAAmB;AAAA,IAAA;AAAA,IAEhE;AAAA,MACE,SAAS,CAAC,CAACA,GAAiB,WAAW;AAAA,IAAA;AAAA,EACzC,GAGIa,IAAiBC,EAAY,YAAY;AAC7C,UAAMC,IAAS,MAAMlB,EAAe;AAAA,MAClC,SAAS;AAAA,QACP,WAAAN;AAAA,QACA,WAAAC;AAAA,QACA,QAAAE;AAAA,QACA,aAAa;AAAA,UACX,eAAeE,IAAsB,SAAYH;AAAA,QAAA;AAAA,MACnD;AAAA,IACF,CACD;AACD,IAAAQ,EAAmBc,EAAO,eAAe,GACrCA,EAAO,oBACTZ,EAAkB,UAAU,IAC5BR,IAAcoB,EAAO,eAAe;AAAA,EAExC,GAAG;AAAA,IACDxB;AAAA,IACAC;AAAA,IACAK;AAAA,IACAW;AAAA,IACAd;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,CACD,GAEKoB,IAAuBF,EAAY,YAAY;AACnD,UAAMR;AAAA,MAAkB;AAAA,MAAM,MAC5BW,EAAWJ,GAAgB;AAAA,QACzB,aAAa7B;AAAA,QACb,SAASC;AAAA,QACT,aAAaC;AAAA,MAAA,CACd;AAAA,IAAA;AAAA,EAEL,GAAG,CAACoB,GAAmBO,CAAc,CAAC;AAEtC,EAAAK,EAAU,MAAM;AACd,IAAIb,EAAY,YAChBA,EAAY,UAAU,IACjBW,EAAA;AAAA,EACP,GAAG,CAACA,CAAoB,CAAC;AAEzB,QAAMG,IAAmBrB,KAA2B,CAACK,EAAkB,SACjEiB,IAAetB,KAA2BK,EAAkB,SAC5DkB,IAAYF,KAAoBR;AAEtC,SAAO;AAAA,IACL,sBAAAK;AAAA,IACA,iBAAAhB;AAAA,IACA,aAAaU,GAAiB;AAAA,IAC9B,WAAAW;AAAA,IACA,cAAAD;AAAA,IACA,gBAAgBjB,EAAkB;AAAA,EAAA;AAEtC;"}
@@ -1,23 +1,20 @@
1
- import { useMemo as t } from "react";
2
- import { usePaySchedulesGetPayPeriodsSuspense as a } from "@gusto/embedded-api/react-query/paySchedulesGetPayPeriods";
1
+ import { useMemo as s } from "react";
2
+ import { usePaySchedulesGetPayPeriodsSuspense as n } from "@gusto/embedded-api/react-query/paySchedulesGetPayPeriods";
3
3
  import { PayrollTypes as i } from "@gusto/embedded-api/models/operations/getv1companiescompanyidpayperiods";
4
- import { toRFCDate as p } from "../../helpers/dateFormatting.js";
5
- const d = 90;
4
+ import { toRFCDate as d, addDays as p } from "../../helpers/dateFormatting.js";
5
+ const y = 90;
6
6
  function u(r) {
7
- const n = t(() => {
8
- const e = /* @__PURE__ */ new Date();
9
- return e.setDate(e.getDate() + d), p(e);
10
- }, []), { data: o } = a({
7
+ const t = s(() => d(p(/* @__PURE__ */ new Date(), y)), []), { data: e } = n({
11
8
  companyId: r,
12
9
  payrollTypes: i.Transition,
13
- endDate: n
14
- }), s = t(
15
- () => (o.payPeriods ?? []).filter((e) => !e.payroll?.processed),
16
- [o]
10
+ endDate: t
11
+ }), o = s(
12
+ () => (e.payPeriods ?? []).filter((a) => !a.payroll?.processed),
13
+ [e]
17
14
  );
18
15
  return {
19
- unprocessedPayPeriods: s,
20
- hasUnprocessedTransitions: s.length > 0
16
+ unprocessedPayPeriods: o,
17
+ hasUnprocessedTransitions: o.length > 0
21
18
  };
22
19
  }
23
20
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useUnprocessedTransitionPayPeriods.js","sources":["../../../src/components/Payroll/useUnprocessedTransitionPayPeriods.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePaySchedulesGetPayPeriodsSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetPayPeriods'\nimport { PayrollTypes } from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayperiods'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { toRFCDate } from '@/helpers/dateFormatting'\n\nconst LOOK_AHEAD_DAYS = 90\n\ninterface UseUnprocessedTransitionPayPeriodsResult {\n unprocessedPayPeriods: PayPeriod[]\n hasUnprocessedTransitions: boolean\n}\n\n/**\n * Returns the company's unprocessed transition pay periods within the next 90 days.\n *\n * @param companyId - The company whose transition pay periods to fetch.\n * @returns The unprocessed transition pay periods and a flag indicating whether any exist.\n * @internal\n */\nexport function useUnprocessedTransitionPayPeriods(\n companyId: string,\n): UseUnprocessedTransitionPayPeriodsResult {\n const lookAheadEndDate = useMemo(() => {\n const date = new Date()\n date.setDate(date.getDate() + LOOK_AHEAD_DAYS)\n return toRFCDate(date)\n }, [])\n\n const { data } = usePaySchedulesGetPayPeriodsSuspense({\n companyId,\n payrollTypes: PayrollTypes.Transition,\n endDate: lookAheadEndDate,\n })\n\n const unprocessedPayPeriods = useMemo<PayPeriod[]>(\n () => (data.payPeriods ?? []).filter((pp: PayPeriod) => !pp.payroll?.processed),\n [data],\n )\n\n return {\n unprocessedPayPeriods,\n hasUnprocessedTransitions: unprocessedPayPeriods.length > 0,\n }\n}\n"],"names":["LOOK_AHEAD_DAYS","useUnprocessedTransitionPayPeriods","companyId","lookAheadEndDate","useMemo","date","toRFCDate","data","usePaySchedulesGetPayPeriodsSuspense","PayrollTypes","unprocessedPayPeriods","pp"],"mappings":";;;;AAMA,MAAMA,IAAkB;AAcjB,SAASC,EACdC,GAC0C;AAC1C,QAAMC,IAAmBC,EAAQ,MAAM;AACrC,UAAMC,wBAAW,KAAA;AACjB,WAAAA,EAAK,QAAQA,EAAK,QAAA,IAAYL,CAAe,GACtCM,EAAUD,CAAI;AAAA,EACvB,GAAG,CAAA,CAAE,GAEC,EAAE,MAAAE,EAAA,IAASC,EAAqC;AAAA,IACpD,WAAAN;AAAA,IACA,cAAcO,EAAa;AAAA,IAC3B,SAASN;AAAA,EAAA,CACV,GAEKO,IAAwBN;AAAA,IAC5B,OAAOG,EAAK,cAAc,IAAI,OAAO,CAACI,MAAkB,CAACA,EAAG,SAAS,SAAS;AAAA,IAC9E,CAACJ,CAAI;AAAA,EAAA;AAGP,SAAO;AAAA,IACL,uBAAAG;AAAA,IACA,2BAA2BA,EAAsB,SAAS;AAAA,EAAA;AAE9D;"}
1
+ {"version":3,"file":"useUnprocessedTransitionPayPeriods.js","sources":["../../../src/components/Payroll/useUnprocessedTransitionPayPeriods.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePaySchedulesGetPayPeriodsSuspense } from '@gusto/embedded-api/react-query/paySchedulesGetPayPeriods'\nimport { PayrollTypes } from '@gusto/embedded-api/models/operations/getv1companiescompanyidpayperiods'\nimport type { PayPeriod } from '@gusto/embedded-api/models/components/payperiod'\nimport { addDays, toRFCDate } from '@/helpers/dateFormatting'\n\nconst LOOK_AHEAD_DAYS = 90\n\ninterface UseUnprocessedTransitionPayPeriodsResult {\n unprocessedPayPeriods: PayPeriod[]\n hasUnprocessedTransitions: boolean\n}\n\n/**\n * Returns the company's unprocessed transition pay periods within the next 90 days.\n *\n * @param companyId - The company whose transition pay periods to fetch.\n * @returns The unprocessed transition pay periods and a flag indicating whether any exist.\n * @internal\n */\nexport function useUnprocessedTransitionPayPeriods(\n companyId: string,\n): UseUnprocessedTransitionPayPeriodsResult {\n const lookAheadEndDate = useMemo(() => toRFCDate(addDays(new Date(), LOOK_AHEAD_DAYS)), [])\n\n const { data } = usePaySchedulesGetPayPeriodsSuspense({\n companyId,\n payrollTypes: PayrollTypes.Transition,\n endDate: lookAheadEndDate,\n })\n\n const unprocessedPayPeriods = useMemo<PayPeriod[]>(\n () => (data.payPeriods ?? []).filter((pp: PayPeriod) => !pp.payroll?.processed),\n [data],\n )\n\n return {\n unprocessedPayPeriods,\n hasUnprocessedTransitions: unprocessedPayPeriods.length > 0,\n }\n}\n"],"names":["LOOK_AHEAD_DAYS","useUnprocessedTransitionPayPeriods","companyId","lookAheadEndDate","useMemo","toRFCDate","addDays","data","usePaySchedulesGetPayPeriodsSuspense","PayrollTypes","unprocessedPayPeriods","pp"],"mappings":";;;;AAMA,MAAMA,IAAkB;AAcjB,SAASC,EACdC,GAC0C;AAC1C,QAAMC,IAAmBC,EAAQ,MAAMC,EAAUC,EAAQ,oBAAI,QAAQN,CAAe,CAAC,GAAG,EAAE,GAEpF,EAAE,MAAAO,EAAA,IAASC,EAAqC;AAAA,IACpD,WAAAN;AAAA,IACA,cAAcO,EAAa;AAAA,IAC3B,SAASN;AAAA,EAAA,CACV,GAEKO,IAAwBN;AAAA,IAC5B,OAAOG,EAAK,cAAc,IAAI,OAAO,CAACI,MAAkB,CAACA,EAAG,SAAS,SAAS;AAAA,IAC9E,CAACJ,CAAI;AAAA,EAAA;AAGP,SAAO;AAAA,IACL,uBAAAG;AAAA,IACA,2BAA2BA,EAAsB,SAAS;AAAA,EAAA;AAE9D;"}
@@ -1,16 +1,17 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
- import { QueryClientProvider as E } from "@tanstack/react-query";
3
- import { GustoEmbeddedProvider as g } from "@gusto/embedded-api/react-query/_context";
4
- import { GustoEmbeddedCore as l } from "@gusto/embedded-api/core";
2
+ import { QueryClientProvider as g } from "@tanstack/react-query";
3
+ import { GustoEmbeddedProvider as l } from "@gusto/embedded-api/react-query/_context";
4
+ import { GustoEmbeddedCore as E } from "@gusto/embedded-api/core";
5
5
  import { SDKHooks as R } from "@gusto/embedded-api/hooks/hooks";
6
6
  import { useMemo as u } from "react";
7
- import { apiVersionHook as q } from "./apiVersionHook.js";
7
+ import { apiVersionHook as S } from "./apiVersionHook.js";
8
8
  import { apiVersionMismatchHook as a } from "./apiVersionMismatchHook.js";
9
- import { informationRequestEnumHook as A } from "./informationRequestEnumHook.js";
10
- import { payrollDeductionAmountHook as C } from "./payrollDeductionAmountHook.js";
11
- import { payrollOffCycleReasonEnumHook as S } from "./payrollOffCycleReasonEnumHook.js";
12
- import { createSdkQueryClient as b } from "./createSdkQueryClient.js";
13
- function K({
9
+ import { informationRequestEnumHook as q } from "./informationRequestEnumHook.js";
10
+ import { payrollDeductionAmountHook as A } from "./payrollDeductionAmountHook.js";
11
+ import { payrollOffCycleReasonEnumHook as C } from "./payrollOffCycleReasonEnumHook.js";
12
+ import { payScheduleCustomNameHook as b } from "./payScheduleCustomNameHook.js";
13
+ import { createSdkQueryClient as y } from "./createSdkQueryClient.js";
14
+ function N({
14
15
  url: i,
15
16
  headers: s,
16
17
  hooks: r,
@@ -18,14 +19,14 @@ function K({
18
19
  queryClient: f
19
20
  }) {
20
21
  const p = u(() => {
21
- const t = new l({
22
+ const t = new E({
22
23
  serverURL: i
23
24
  }), e = t._options.hooks || new R();
24
- if (e.registerBeforeRequestHook(q), e.registerAfterSuccessHook(a), e.registerAfterErrorHook(a), e.registerAfterSuccessHook(A), e.registerAfterSuccessHook(C), e.registerAfterSuccessHook(S), s) {
25
+ if (e.registerBeforeRequestHook(S), e.registerAfterSuccessHook(a), e.registerAfterErrorHook(a), e.registerAfterSuccessHook(q), e.registerAfterSuccessHook(A), e.registerAfterSuccessHook(C), e.registerAfterSuccessHook(b), s) {
25
26
  const o = {
26
- beforeRequest: (y, n) => (new Headers(s).forEach((c, k) => {
27
- c && n.headers.set(k, c);
28
- }), n)
27
+ beforeRequest: (v, c) => (new Headers(s).forEach((n, d) => {
28
+ n && c.headers.set(d, n);
29
+ }), c)
29
30
  };
30
31
  e.registerBeforeRequestHook(o);
31
32
  }
@@ -38,10 +39,10 @@ function K({
38
39
  }), r?.afterError && r.afterError.forEach((o) => {
39
40
  e.registerAfterErrorHook(o);
40
41
  }), t._options.hooks || (t._options.hooks = e), t;
41
- }, [i, s, r]), d = u(() => f ?? b(), [f]);
42
- return /* @__PURE__ */ m(E, { client: d, children: /* @__PURE__ */ m(g, { client: p, children: H }) });
42
+ }, [i, s, r]), k = u(() => f ?? y(), [f]);
43
+ return /* @__PURE__ */ m(g, { client: k, children: /* @__PURE__ */ m(l, { client: p, children: H }) });
43
44
  }
44
45
  export {
45
- K as ApiProvider
46
+ N as ApiProvider
46
47
  };
47
48
  //# sourceMappingURL=ApiProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiProvider.js","sources":["../../../src/contexts/ApiProvider/ApiProvider.tsx"],"sourcesContent":["import { QueryClientProvider, type QueryClient } from '@tanstack/react-query'\nimport { GustoEmbeddedProvider } from '@gusto/embedded-api/react-query/_context'\nimport { GustoEmbeddedCore } from '@gusto/embedded-api/core'\nimport { SDKHooks as NativeSDKHooks } from '@gusto/embedded-api/hooks/hooks'\nimport { useMemo } from 'react'\nimport { apiVersionHook } from './apiVersionHook'\nimport { apiVersionMismatchHook } from './apiVersionMismatchHook'\nimport { informationRequestEnumHook } from './informationRequestEnumHook'\nimport { payrollDeductionAmountHook } from './payrollDeductionAmountHook'\nimport { payrollOffCycleReasonEnumHook } from './payrollOffCycleReasonEnumHook'\nimport { createSdkQueryClient } from './createSdkQueryClient'\nimport type { SDKHooks, BeforeRequestHook } from '@/types/hooks'\n\n/**\n * Props for {@link ApiProvider}.\n *\n * @internal\n */\nexport interface ApiProviderProps {\n /** Base URL the SDK uses for all `@gusto/embedded-api-v-2026-06-15` requests. */\n url: string\n /** Default headers applied to every SDK request, in addition to the `X-Gusto-API-Version` header set automatically. */\n headers?: HeadersInit\n /** Lifecycle hooks for intercepting and modifying SDK requests and responses. */\n hooks?: SDKHooks\n /** Subtree that renders inside the API + React Query providers. */\n children: React.ReactNode\n /** Optional React Query client. When omitted, a client is created with the SDK's defaults (auto-invalidation on mutation success). */\n queryClient?: QueryClient\n}\n\n/**\n * Wires the `@gusto/embedded-api-v-2026-06-15` client and a React Query client into the React tree.\n *\n * @remarks\n * Registers the SDK's `X-Gusto-API-Version` header on every request, warns via `console.warn` if a\n * response reports a different `X-Gusto-API-Version` than was requested (e.g. a proxy rewriting the\n * header), applies any default `headers`, and registers user-supplied lifecycle hooks\n * (`beforeCreateRequest`, `beforeRequest`, `afterSuccess`, `afterError`). When no `queryClient` is\n * supplied, one is created with the SDK's defaults so\n * successful mutations under the `['@gusto/embedded-api-v-2026-06-15']` key invalidate every SDK\n * query automatically. Partners who supply their own `QueryClient` are responsible for matching that\n * contract.\n *\n * Typically wrapped by {@link GustoProvider}; use directly only when composing the provider stack\n * manually.\n *\n * @param props - See {@link ApiProviderProps}.\n * @returns A React subtree wrapped in `QueryClientProvider` and the embedded API context.\n * @internal\n */\nexport function ApiProvider({\n url,\n headers,\n hooks,\n children,\n queryClient: queryClientFromProps,\n}: ApiProviderProps) {\n const gustoClient = useMemo(() => {\n const client = new GustoEmbeddedCore({\n serverURL: url,\n })\n\n const sdkHooks = client._options.hooks || new NativeSDKHooks()\n\n sdkHooks.registerBeforeRequestHook(apiVersionHook)\n sdkHooks.registerAfterSuccessHook(apiVersionMismatchHook)\n sdkHooks.registerAfterErrorHook(apiVersionMismatchHook)\n sdkHooks.registerAfterSuccessHook(informationRequestEnumHook)\n sdkHooks.registerAfterSuccessHook(payrollDeductionAmountHook)\n sdkHooks.registerAfterSuccessHook(payrollOffCycleReasonEnumHook)\n\n if (headers) {\n const defaultHeaderHook: BeforeRequestHook = {\n beforeRequest: (context, request) => {\n const headersInstance = new Headers(headers)\n headersInstance.forEach((headerValue, headerName) => {\n if (headerValue) {\n request.headers.set(headerName, headerValue)\n }\n })\n return request\n },\n }\n sdkHooks.registerBeforeRequestHook(defaultHeaderHook)\n }\n\n if (hooks?.beforeCreateRequest) {\n hooks.beforeCreateRequest.forEach(hook => {\n sdkHooks.registerBeforeCreateRequestHook(hook)\n })\n }\n\n if (hooks?.beforeRequest) {\n hooks.beforeRequest.forEach(hook => {\n sdkHooks.registerBeforeRequestHook(hook)\n })\n }\n\n if (hooks?.afterSuccess) {\n hooks.afterSuccess.forEach(hook => {\n sdkHooks.registerAfterSuccessHook(hook)\n })\n }\n\n if (hooks?.afterError) {\n hooks.afterError.forEach(hook => {\n sdkHooks.registerAfterErrorHook(hook)\n })\n }\n\n if (!client._options.hooks) {\n client._options.hooks = sdkHooks\n }\n\n return client\n }, [url, headers, hooks])\n\n const queryClient = useMemo(() => {\n return queryClientFromProps ?? createSdkQueryClient()\n }, [queryClientFromProps])\n\n return (\n <QueryClientProvider client={queryClient}>\n <GustoEmbeddedProvider client={gustoClient}>{children}</GustoEmbeddedProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["ApiProvider","url","headers","hooks","children","queryClientFromProps","gustoClient","useMemo","client","GustoEmbeddedCore","sdkHooks","NativeSDKHooks","apiVersionHook","apiVersionMismatchHook","informationRequestEnumHook","payrollDeductionAmountHook","payrollOffCycleReasonEnumHook","defaultHeaderHook","context","request","headerValue","headerName","hook","queryClient","createSdkQueryClient","jsx","QueryClientProvider","GustoEmbeddedProvider"],"mappings":";;;;;;;;;;;;AAmDO,SAASA,EAAY;AAAA,EAC1B,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAaC;AACf,GAAqB;AACnB,QAAMC,IAAcC,EAAQ,MAAM;AAChC,UAAMC,IAAS,IAAIC,EAAkB;AAAA,MACnC,WAAWR;AAAA,IAAA,CACZ,GAEKS,IAAWF,EAAO,SAAS,SAAS,IAAIG,EAAA;AAS9C,QAPAD,EAAS,0BAA0BE,CAAc,GACjDF,EAAS,yBAAyBG,CAAsB,GACxDH,EAAS,uBAAuBG,CAAsB,GACtDH,EAAS,yBAAyBI,CAA0B,GAC5DJ,EAAS,yBAAyBK,CAA0B,GAC5DL,EAAS,yBAAyBM,CAA6B,GAE3Dd,GAAS;AACX,YAAMe,IAAuC;AAAA,QAC3C,eAAe,CAACC,GAASC,OACC,IAAI,QAAQjB,CAAO,EAC3B,QAAQ,CAACkB,GAAaC,MAAe;AACnD,UAAID,KACFD,EAAQ,QAAQ,IAAIE,GAAYD,CAAW;AAAA,QAE/C,CAAC,GACMD;AAAA,MACT;AAEF,MAAAT,EAAS,0BAA0BO,CAAiB;AAAA,IACtD;AAEA,WAAId,GAAO,uBACTA,EAAM,oBAAoB,QAAQ,CAAAmB,MAAQ;AACxC,MAAAZ,EAAS,gCAAgCY,CAAI;AAAA,IAC/C,CAAC,GAGCnB,GAAO,iBACTA,EAAM,cAAc,QAAQ,CAAAmB,MAAQ;AAClC,MAAAZ,EAAS,0BAA0BY,CAAI;AAAA,IACzC,CAAC,GAGCnB,GAAO,gBACTA,EAAM,aAAa,QAAQ,CAAAmB,MAAQ;AACjC,MAAAZ,EAAS,yBAAyBY,CAAI;AAAA,IACxC,CAAC,GAGCnB,GAAO,cACTA,EAAM,WAAW,QAAQ,CAAAmB,MAAQ;AAC/B,MAAAZ,EAAS,uBAAuBY,CAAI;AAAA,IACtC,CAAC,GAGEd,EAAO,SAAS,UACnBA,EAAO,SAAS,QAAQE,IAGnBF;AAAA,EACT,GAAG,CAACP,GAAKC,GAASC,CAAK,CAAC,GAElBoB,IAAchB,EAAQ,MACnBF,KAAwBmB,EAAA,GAC9B,CAACnB,CAAoB,CAAC;AAEzB,SACE,gBAAAoB,EAACC,KAAoB,QAAQH,GAC3B,4BAACI,GAAA,EAAsB,QAAQrB,GAAc,UAAAF,EAAA,CAAS,EAAA,CACxD;AAEJ;"}
1
+ {"version":3,"file":"ApiProvider.js","sources":["../../../src/contexts/ApiProvider/ApiProvider.tsx"],"sourcesContent":["import { QueryClientProvider, type QueryClient } from '@tanstack/react-query'\nimport { GustoEmbeddedProvider } from '@gusto/embedded-api/react-query/_context'\nimport { GustoEmbeddedCore } from '@gusto/embedded-api/core'\nimport { SDKHooks as NativeSDKHooks } from '@gusto/embedded-api/hooks/hooks'\nimport { useMemo } from 'react'\nimport { apiVersionHook } from './apiVersionHook'\nimport { apiVersionMismatchHook } from './apiVersionMismatchHook'\nimport { informationRequestEnumHook } from './informationRequestEnumHook'\nimport { payrollDeductionAmountHook } from './payrollDeductionAmountHook'\nimport { payrollOffCycleReasonEnumHook } from './payrollOffCycleReasonEnumHook'\nimport { payScheduleCustomNameHook } from './payScheduleCustomNameHook'\nimport { createSdkQueryClient } from './createSdkQueryClient'\nimport type { SDKHooks, BeforeRequestHook } from '@/types/hooks'\n\n/**\n * Props for {@link ApiProvider}.\n *\n * @internal\n */\nexport interface ApiProviderProps {\n /** Base URL the SDK uses for all `@gusto/embedded-api-v-2026-06-15` requests. */\n url: string\n /** Default headers applied to every SDK request, in addition to the `X-Gusto-API-Version` header set automatically. */\n headers?: HeadersInit\n /** Lifecycle hooks for intercepting and modifying SDK requests and responses. */\n hooks?: SDKHooks\n /** Subtree that renders inside the API + React Query providers. */\n children: React.ReactNode\n /** Optional React Query client. When omitted, a client is created with the SDK's defaults (auto-invalidation on mutation success). */\n queryClient?: QueryClient\n}\n\n/**\n * Wires the `@gusto/embedded-api-v-2026-06-15` client and a React Query client into the React tree.\n *\n * @remarks\n * Registers the SDK's `X-Gusto-API-Version` header on every request, warns via `console.warn` if a\n * response reports a different `X-Gusto-API-Version` than was requested (e.g. a proxy rewriting the\n * header), applies any default `headers`, and registers user-supplied lifecycle hooks\n * (`beforeCreateRequest`, `beforeRequest`, `afterSuccess`, `afterError`). When no `queryClient` is\n * supplied, one is created with the SDK's defaults so\n * successful mutations under the `['@gusto/embedded-api-v-2026-06-15']` key invalidate every SDK\n * query automatically. Partners who supply their own `QueryClient` are responsible for matching that\n * contract.\n *\n * Typically wrapped by {@link GustoProvider}; use directly only when composing the provider stack\n * manually.\n *\n * @param props - See {@link ApiProviderProps}.\n * @returns A React subtree wrapped in `QueryClientProvider` and the embedded API context.\n * @internal\n */\nexport function ApiProvider({\n url,\n headers,\n hooks,\n children,\n queryClient: queryClientFromProps,\n}: ApiProviderProps) {\n const gustoClient = useMemo(() => {\n const client = new GustoEmbeddedCore({\n serverURL: url,\n })\n\n const sdkHooks = client._options.hooks || new NativeSDKHooks()\n\n sdkHooks.registerBeforeRequestHook(apiVersionHook)\n sdkHooks.registerAfterSuccessHook(apiVersionMismatchHook)\n sdkHooks.registerAfterErrorHook(apiVersionMismatchHook)\n sdkHooks.registerAfterSuccessHook(informationRequestEnumHook)\n sdkHooks.registerAfterSuccessHook(payrollDeductionAmountHook)\n sdkHooks.registerAfterSuccessHook(payrollOffCycleReasonEnumHook)\n sdkHooks.registerAfterSuccessHook(payScheduleCustomNameHook)\n\n if (headers) {\n const defaultHeaderHook: BeforeRequestHook = {\n beforeRequest: (context, request) => {\n const headersInstance = new Headers(headers)\n headersInstance.forEach((headerValue, headerName) => {\n if (headerValue) {\n request.headers.set(headerName, headerValue)\n }\n })\n return request\n },\n }\n sdkHooks.registerBeforeRequestHook(defaultHeaderHook)\n }\n\n if (hooks?.beforeCreateRequest) {\n hooks.beforeCreateRequest.forEach(hook => {\n sdkHooks.registerBeforeCreateRequestHook(hook)\n })\n }\n\n if (hooks?.beforeRequest) {\n hooks.beforeRequest.forEach(hook => {\n sdkHooks.registerBeforeRequestHook(hook)\n })\n }\n\n if (hooks?.afterSuccess) {\n hooks.afterSuccess.forEach(hook => {\n sdkHooks.registerAfterSuccessHook(hook)\n })\n }\n\n if (hooks?.afterError) {\n hooks.afterError.forEach(hook => {\n sdkHooks.registerAfterErrorHook(hook)\n })\n }\n\n if (!client._options.hooks) {\n client._options.hooks = sdkHooks\n }\n\n return client\n }, [url, headers, hooks])\n\n const queryClient = useMemo(() => {\n return queryClientFromProps ?? createSdkQueryClient()\n }, [queryClientFromProps])\n\n return (\n <QueryClientProvider client={queryClient}>\n <GustoEmbeddedProvider client={gustoClient}>{children}</GustoEmbeddedProvider>\n </QueryClientProvider>\n )\n}\n"],"names":["ApiProvider","url","headers","hooks","children","queryClientFromProps","gustoClient","useMemo","client","GustoEmbeddedCore","sdkHooks","NativeSDKHooks","apiVersionHook","apiVersionMismatchHook","informationRequestEnumHook","payrollDeductionAmountHook","payrollOffCycleReasonEnumHook","payScheduleCustomNameHook","defaultHeaderHook","context","request","headerValue","headerName","hook","queryClient","createSdkQueryClient","jsx","QueryClientProvider","GustoEmbeddedProvider"],"mappings":";;;;;;;;;;;;;AAoDO,SAASA,EAAY;AAAA,EAC1B,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,aAAaC;AACf,GAAqB;AACnB,QAAMC,IAAcC,EAAQ,MAAM;AAChC,UAAMC,IAAS,IAAIC,EAAkB;AAAA,MACnC,WAAWR;AAAA,IAAA,CACZ,GAEKS,IAAWF,EAAO,SAAS,SAAS,IAAIG,EAAA;AAU9C,QARAD,EAAS,0BAA0BE,CAAc,GACjDF,EAAS,yBAAyBG,CAAsB,GACxDH,EAAS,uBAAuBG,CAAsB,GACtDH,EAAS,yBAAyBI,CAA0B,GAC5DJ,EAAS,yBAAyBK,CAA0B,GAC5DL,EAAS,yBAAyBM,CAA6B,GAC/DN,EAAS,yBAAyBO,CAAyB,GAEvDf,GAAS;AACX,YAAMgB,IAAuC;AAAA,QAC3C,eAAe,CAACC,GAASC,OACC,IAAI,QAAQlB,CAAO,EAC3B,QAAQ,CAACmB,GAAaC,MAAe;AACnD,UAAID,KACFD,EAAQ,QAAQ,IAAIE,GAAYD,CAAW;AAAA,QAE/C,CAAC,GACMD;AAAA,MACT;AAEF,MAAAV,EAAS,0BAA0BQ,CAAiB;AAAA,IACtD;AAEA,WAAIf,GAAO,uBACTA,EAAM,oBAAoB,QAAQ,CAAAoB,MAAQ;AACxC,MAAAb,EAAS,gCAAgCa,CAAI;AAAA,IAC/C,CAAC,GAGCpB,GAAO,iBACTA,EAAM,cAAc,QAAQ,CAAAoB,MAAQ;AAClC,MAAAb,EAAS,0BAA0Ba,CAAI;AAAA,IACzC,CAAC,GAGCpB,GAAO,gBACTA,EAAM,aAAa,QAAQ,CAAAoB,MAAQ;AACjC,MAAAb,EAAS,yBAAyBa,CAAI;AAAA,IACxC,CAAC,GAGCpB,GAAO,cACTA,EAAM,WAAW,QAAQ,CAAAoB,MAAQ;AAC/B,MAAAb,EAAS,uBAAuBa,CAAI;AAAA,IACtC,CAAC,GAGEf,EAAO,SAAS,UACnBA,EAAO,SAAS,QAAQE,IAGnBF;AAAA,EACT,GAAG,CAACP,GAAKC,GAASC,CAAK,CAAC,GAElBqB,IAAcjB,EAAQ,MACnBF,KAAwBoB,EAAA,GAC9B,CAACpB,CAAoB,CAAC;AAEzB,SACE,gBAAAqB,EAACC,KAAoB,QAAQH,GAC3B,4BAACI,GAAA,EAAsB,QAAQtB,GAAc,UAAAF,EAAA,CAAS,EAAA,CACxD;AAEJ;"}
@@ -0,0 +1,31 @@
1
+ const u = "get-v1-companies-company_id-pay_schedules", i = /* @__PURE__ */ new Set([
2
+ "get-v1-companies-company_id-pay_schedules-pay_schedule_id",
3
+ "post-v1-companies-company_id-pay_schedules",
4
+ "put-v1-companies-company_id-pay_schedules-pay_schedule_id"
5
+ ]), p = (e) => e !== null && typeof e == "object" && !Array.isArray(e), a = (e) => p(e) && e.custom_name === null, r = (e) => {
6
+ const { custom_name: t, ...s } = e;
7
+ return s;
8
+ }, _ = (e, t) => t === u ? !Array.isArray(e) || !e.some(a) ? void 0 : e.map((s) => a(s) ? r(s) : s) : a(e) ? r(e) : void 0, d = {
9
+ afterSuccess: async (e, t) => {
10
+ if (!(e.operationID === u || i.has(e.operationID)))
11
+ return t;
12
+ let n;
13
+ try {
14
+ n = await t.clone().json();
15
+ } catch {
16
+ return t;
17
+ }
18
+ const c = _(n, e.operationID);
19
+ if (c === void 0) return t;
20
+ const o = new Headers(t.headers);
21
+ return o.delete("content-length"), new Response(JSON.stringify(c), {
22
+ status: t.status,
23
+ statusText: t.statusText,
24
+ headers: o
25
+ });
26
+ }
27
+ };
28
+ export {
29
+ d as payScheduleCustomNameHook
30
+ };
31
+ //# sourceMappingURL=payScheduleCustomNameHook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payScheduleCustomNameHook.js","sources":["../../../src/contexts/ApiProvider/payScheduleCustomNameHook.ts"],"sourcesContent":["import type { AfterSuccessHook } from '@/types/hooks'\n\nconst PAY_SCHEDULE_LIST_OPERATION_ID = 'get-v1-companies-company_id-pay_schedules'\nconst PAY_SCHEDULE_OBJECT_OPERATION_IDS: ReadonlySet<string> = new Set([\n 'get-v1-companies-company_id-pay_schedules-pay_schedule_id',\n 'post-v1-companies-company_id-pay_schedules',\n 'put-v1-companies-company_id-pay_schedules-pay_schedule_id',\n])\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n value !== null && typeof value === 'object' && !Array.isArray(value)\n\nconst hasNullCustomName = (value: unknown): value is Record<string, unknown> =>\n isRecord(value) && value.custom_name === null\n\nconst stripNullCustomName = (paySchedule: Record<string, unknown>): Record<string, unknown> => {\n const { custom_name: _customName, ...rest } = paySchedule\n return rest\n}\n\nconst remapBody = (body: unknown, operationID: string): unknown => {\n if (operationID === PAY_SCHEDULE_LIST_OPERATION_ID) {\n if (!Array.isArray(body) || !body.some(hasNullCustomName)) return undefined\n return body.map(item => (hasNullCustomName(item) ? stripNullCustomName(item) : item))\n }\n\n return hasNullCustomName(body) ? stripNullCustomName(body) : undefined\n}\n\n/**\n * Temporary workaround for a pay-schedule response compatibility gap: `custom_name` is generated as\n * a non-nullable optional string (`z.string().optional()`) in `@gusto/embedded-api`, so a response\n * with `custom_name: null` throws an `SDKValidationError` -- rejecting the whole pay schedule list\n * response, not just the one affected item. This afterSuccess hook deletes an explicit\n * `custom_name: null` before the SDK's zod parse, collapsing it to the same \"omitted\" shape the\n * schema already accepts and that pay schedule display and form initialization already default to\n * an empty string for. Omission, valid strings, and unrelated fields are left untouched. Remove once\n * the generated client accepts `custom_name: null` directly.\n *\n * @internal\n */\nexport const payScheduleCustomNameHook: AfterSuccessHook = {\n afterSuccess: async (context, response) => {\n const isPayScheduleOperation =\n context.operationID === PAY_SCHEDULE_LIST_OPERATION_ID ||\n PAY_SCHEDULE_OBJECT_OPERATION_IDS.has(context.operationID)\n if (!isPayScheduleOperation) {\n return response\n }\n\n let body: unknown\n try {\n body = await response.clone().json()\n } catch {\n return response\n }\n\n const remapped = remapBody(body, context.operationID)\n if (remapped === undefined) return response\n\n const headers = new Headers(response.headers)\n headers.delete('content-length')\n return new Response(JSON.stringify(remapped), {\n status: response.status,\n statusText: response.statusText,\n headers,\n })\n },\n}\n"],"names":["PAY_SCHEDULE_LIST_OPERATION_ID","PAY_SCHEDULE_OBJECT_OPERATION_IDS","isRecord","value","hasNullCustomName","stripNullCustomName","paySchedule","_customName","rest","remapBody","body","operationID","item","payScheduleCustomNameHook","context","response","remapped","headers"],"mappings":"AAEA,MAAMA,IAAiC,6CACjCC,wBAA6D,IAAI;AAAA,EACrE;AAAA,EACA;AAAA,EACA;AACF,CAAC,GAEKC,IAAW,CAACC,MAChBA,MAAU,QAAQ,OAAOA,KAAU,YAAY,CAAC,MAAM,QAAQA,CAAK,GAE/DC,IAAoB,CAACD,MACzBD,EAASC,CAAK,KAAKA,EAAM,gBAAgB,MAErCE,IAAsB,CAACC,MAAkE;AAC7F,QAAM,EAAE,aAAaC,GAAa,GAAGC,MAASF;AAC9C,SAAOE;AACT,GAEMC,IAAY,CAACC,GAAeC,MAC5BA,MAAgBX,IACd,CAAC,MAAM,QAAQU,CAAI,KAAK,CAACA,EAAK,KAAKN,CAAiB,IAAG,SACpDM,EAAK,IAAI,CAAAE,MAASR,EAAkBQ,CAAI,IAAIP,EAAoBO,CAAI,IAAIA,CAAK,IAG/ER,EAAkBM,CAAI,IAAIL,EAAoBK,CAAI,IAAI,QAelDG,IAA8C;AAAA,EACzD,cAAc,OAAOC,GAASC,MAAa;AAIzC,QAAI,EAFFD,EAAQ,gBAAgBd,KACxBC,EAAkC,IAAIa,EAAQ,WAAW;AAEzD,aAAOC;AAGT,QAAIL;AACJ,QAAI;AACF,MAAAA,IAAO,MAAMK,EAAS,MAAA,EAAQ,KAAA;AAAA,IAChC,QAAQ;AACN,aAAOA;AAAA,IACT;AAEA,UAAMC,IAAWP,EAAUC,GAAMI,EAAQ,WAAW;AACpD,QAAIE,MAAa,OAAW,QAAOD;AAEnC,UAAME,IAAU,IAAI,QAAQF,EAAS,OAAO;AAC5C,WAAAE,EAAQ,OAAO,gBAAgB,GACxB,IAAI,SAAS,KAAK,UAAUD,CAAQ,GAAG;AAAA,MAC5C,QAAQD,EAAS;AAAA,MACjB,YAAYA,EAAS;AAAA,MACrB,SAAAE;AAAA,IAAA,CACD;AAAA,EACH;AACF;"}