@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,416 @@
1
+ import { jsx as t, jsxs as s, Fragment as ee } from "react/jsx-runtime";
2
+ import { useRef as be, useMemo as Ee, Fragment as ge } from "react";
3
+ import { useTranslation as ie } from "react-i18next";
4
+ import Ce from "classnames";
5
+ import { PayrollUpdatePaymentMethod as ye } from "@gusto/embedded-api/models/components/payrollupdate";
6
+ import { isSplitByWorkweek as B } from "../PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js";
7
+ import { PayrollEditEmployeeErrorCodes as P } from "../PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.js";
8
+ import f from "./RropPayrollEditEmployee.module.scss.js";
9
+ import { componentEvents as te, BREAKPOINTS as ve, COMPENSATION_NAME_REIMBURSEMENT as Ne, COMPENSATION_NAME_PAYCHECK_TIPS as Oe, COMPENSATION_NAME_CASH_TIPS as Re, COMPENSATION_NAME_CORRECTION_PAYMENT as Ae, COMPENSATION_NAME_COMMISSION as Pe, COMPENSATION_NAME_BONUS as Te, COMPENSATION_NAME_DOUBLE_OVERTIME as Me, COMPENSATION_NAME_OVERTIME as Se, COMPENSATION_NAME_REGULAR_HOURS as ke } from "../../../shared/constants.js";
10
+ import { BaseBoundaries as we, BaseLayout as re } from "../../Base/Base.js";
11
+ import "../../Base/useBase.js";
12
+ import { useComponentDictionary as xe, useI18n as Le } from "../../../i18n/I18n.js";
13
+ import { useComponentContext as ae } from "../../../contexts/ComponentAdapter/useComponentContext.js";
14
+ import { Flex as c } from "../../Common/Flex/Flex.js";
15
+ import { Grid as _e } from "../../Common/Grid/Grid.js";
16
+ import { EmptyData as De } from "../../Common/EmptyData/EmptyData.js";
17
+ import { SDKFormProvider as Ie } from "../../../partner-hook-utils/form/SDKFormProvider.js";
18
+ import { firstLastName as Fe, formatNumberAsCurrency as He } from "../../../helpers/formattedStrings.js";
19
+ import { useDateFormatter as Be } from "../../../hooks/useDateFormatter.js";
20
+ import Ue from "../../../hooks/useContainerBreakpoints/useContainerBreakpoints.js";
21
+ import ne from "../../../assets/icons/plus-circle.svg.js";
22
+ import je from "../../../assets/icons/trashcan.svg.js";
23
+ import { usePayrollEditEmployeeForm as Ve } from "../PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js";
24
+ import { DataView as T } from "../../Common/DataView/DataView.js";
25
+ import { useDataView as We } from "../../Common/DataView/useDataView.js";
26
+ function Ct({
27
+ FallbackComponent: b,
28
+ LoaderComponent: E,
29
+ ...N
30
+ }) {
31
+ return /* @__PURE__ */ t(
32
+ we,
33
+ {
34
+ componentName: "Payroll.RropPayrollEditEmployee",
35
+ FallbackComponent: b,
36
+ LoaderComponent: E,
37
+ children: /* @__PURE__ */ t(Ye, { LoaderComponent: E, ...N })
38
+ }
39
+ );
40
+ }
41
+ const Ge = ({
42
+ rows: b,
43
+ isAdding: E,
44
+ draftFields: N,
45
+ onBeginAdd: M,
46
+ onSave: S,
47
+ onCancel: x,
48
+ onRemove: k
49
+ }) => {
50
+ const { t: e } = ie("Payroll.RropPayrollEditEmployee"), { Button: C, ButtonIcon: w, Heading: y } = ae(), { Description: v, Amount: O } = N, R = We({
51
+ data: b,
52
+ columns: [
53
+ {
54
+ key: "description",
55
+ title: e("reimbursementDescriptionColumn"),
56
+ render: (m) => m.description.trim() || e("reimbursementUnnamedFallback")
57
+ },
58
+ {
59
+ key: "amount",
60
+ title: e("reimbursementAmountColumn"),
61
+ justify: "end",
62
+ render: (m) => He(parseFloat(m.amount || "0"))
63
+ },
64
+ {
65
+ key: "recurring",
66
+ title: e("reimbursementTypeColumn"),
67
+ render: (m) => m.recurring ? e("reimbursementTypeRecurring") : e("reimbursementTypeOneTime")
68
+ }
69
+ ],
70
+ itemMenu: (m) => {
71
+ if (m.recurring) return null;
72
+ const A = m.description.trim() || e("reimbursementUnnamedFallback");
73
+ return /* @__PURE__ */ t(
74
+ w,
75
+ {
76
+ variant: "tertiary",
77
+ onClick: () => {
78
+ k(m.index);
79
+ },
80
+ "aria-label": e("removeReimbursementLabel", { description: A }),
81
+ children: /* @__PURE__ */ t(je, { "aria-hidden": !0 })
82
+ }
83
+ );
84
+ },
85
+ emptyState: () => /* @__PURE__ */ t(De, { title: e("reimbursementEmptyTitle"), children: /* @__PURE__ */ t(C, { variant: "secondary", onClick: M, icon: /* @__PURE__ */ t(ne, { "aria-hidden": !0 }), children: e("addReimbursementCta") }) })
86
+ });
87
+ return /* @__PURE__ */ s(c, { flexDirection: "column", gap: 12, children: [
88
+ /* @__PURE__ */ t(y, { as: "h3", styledAs: "h4", children: e("reimbursementTitle") }),
89
+ !(b.length === 0 && E) && /* @__PURE__ */ t(T, { label: e("reimbursementsTableLabel"), ...R }),
90
+ E ? /* @__PURE__ */ s(c, { flexDirection: "column", gap: 12, children: [
91
+ /* @__PURE__ */ s(_e, { gridTemplateColumns: { base: "1fr", small: [320, 320] }, gap: 20, children: [
92
+ /* @__PURE__ */ t(
93
+ v,
94
+ {
95
+ label: e("reimbursementDescriptionLabel"),
96
+ placeholder: e("reimbursementDescriptionPlaceholder")
97
+ }
98
+ ),
99
+ /* @__PURE__ */ t(O, { label: e("reimbursementAmountLabel"), adornmentStart: "$", isRequired: !0 })
100
+ ] }),
101
+ /* @__PURE__ */ s(c, { gap: 12, children: [
102
+ /* @__PURE__ */ t(C, { onClick: S, title: e("saveReimbursementCta"), children: e("saveReimbursementCta") }),
103
+ /* @__PURE__ */ t(C, { variant: "secondary", onClick: x, title: e("cancelReimbursementCta"), children: e("cancelReimbursementCta") })
104
+ ] })
105
+ ] }) : b.length > 0 && /* @__PURE__ */ t("div", { children: /* @__PURE__ */ t(
106
+ C,
107
+ {
108
+ variant: "secondary",
109
+ onClick: M,
110
+ title: e("addReimbursementLink"),
111
+ icon: /* @__PURE__ */ t(ne, { "aria-hidden": !0 }),
112
+ children: e("addReimbursementLink")
113
+ }
114
+ ) })
115
+ ] });
116
+ }, Ye = ({
117
+ employeeId: b,
118
+ companyId: E,
119
+ payrollId: N,
120
+ withReimbursements: M = !0,
121
+ onEvent: S,
122
+ dictionary: x,
123
+ LoaderComponent: k
124
+ }) => {
125
+ xe("Payroll.RropPayrollEditEmployee", x), Le("Payroll.RropPayrollEditEmployee");
126
+ const { t: e } = ie("Payroll.RropPayrollEditEmployee"), C = Be(), { Alert: w, Box: y, BoxHeader: v, Button: O, Heading: R, Text: m } = ae(), A = be(null), g = Ue({ ref: A }).includes("small"), oe = Ee(
127
+ () => ({
128
+ [P.NEGATIVE_AMOUNT]: e("validations.negativeAmount"),
129
+ [P.MAX_HOURS]: e("validations.maxHours"),
130
+ [P.REQUIRED_WORKWEEK]: e("validations.requiredWorkweek"),
131
+ [P.REIMBURSEMENT_AMOUNT]: e("validations.reimbursementAmount"),
132
+ [P.MAX_REIMBURSEMENT_AMOUNT]: e(
133
+ "validations.maxReimbursementAmount"
134
+ )
135
+ }),
136
+ [e]
137
+ ), n = Ve({
138
+ employeeId: b,
139
+ companyId: E,
140
+ payrollId: N,
141
+ withReimbursements: M,
142
+ errorMessages: oe
143
+ });
144
+ if (n.isLoading)
145
+ return /* @__PURE__ */ t("div", { ref: A, className: f.container, children: /* @__PURE__ */ t(re, { isLoading: !0, error: n.errorHandling.errors, LoaderComponent: k }) });
146
+ const { employee: L } = n.data, u = n.form.Fields, U = Fe({
147
+ first_name: L.firstName,
148
+ last_name: L.lastName
149
+ }), le = (r) => {
150
+ switch (r) {
151
+ case ke:
152
+ return e("compensationNames.regularHours");
153
+ case Se:
154
+ return e("compensationNames.overtime");
155
+ case Me:
156
+ return e("compensationNames.doubleOvertime");
157
+ default:
158
+ return r;
159
+ }
160
+ }, _ = (r) => {
161
+ switch (r) {
162
+ case Te:
163
+ return e("fixedCompensationNames.bonus");
164
+ case Pe:
165
+ return e("fixedCompensationNames.commission");
166
+ case Ae:
167
+ return e("fixedCompensationNames.correctionPayment");
168
+ case Re:
169
+ return e("fixedCompensationNames.cashTips");
170
+ case Oe:
171
+ return e("fixedCompensationNames.paycheckTips");
172
+ case Ne:
173
+ return e("fixedCompensationNames.reimbursement");
174
+ default:
175
+ return r;
176
+ }
177
+ }, D = (r) => B(r) ? r[n.data.workweeks[0]?.startDate ?? ""] ?? [] : r, j = (r, i) => {
178
+ const { label: l, rowHeader: a, valueColumnLabel: o, labelFor: p, adornmentStart: d, adornmentEnd: pe } = i, I = B(r), K = D(r), z = (h, F) => /* @__PURE__ */ t("div", { className: Ce(f.inputContainer, I && f.workweekInputContainer), children: /* @__PURE__ */ t(
179
+ h.Field,
180
+ {
181
+ label: F,
182
+ shouldVisuallyHideLabel: !0,
183
+ adornmentStart: d,
184
+ adornmentEnd: pe
185
+ }
186
+ ) }), he = {
187
+ title: o,
188
+ justify: "end",
189
+ render: (h) => z(h, p(h.name))
190
+ }, fe = n.data.workweeks.map(
191
+ ({ startDate: h, endDate: F }) => {
192
+ const J = C.formatPayPeriodRange(h, F, {
193
+ useShortMonth: !0
194
+ });
195
+ return {
196
+ title: J,
197
+ justify: "end",
198
+ render: (H) => {
199
+ const Q = r[h]?.find(
200
+ (Z) => Z.jobUuid === H.jobUuid && Z.name === H.name
201
+ );
202
+ return Q ? z(Q, `${p(H.name)} ${J}`) : null;
203
+ }
204
+ };
205
+ }
206
+ ), X = [
207
+ { title: a, render: (h) => p(h.name) },
208
+ ...I ? fe : [he]
209
+ ];
210
+ return I ? /* @__PURE__ */ t("div", { className: f.workweekTableScroll, children: /* @__PURE__ */ t(
211
+ T,
212
+ {
213
+ label: l,
214
+ isWithinBox: !0,
215
+ columns: X,
216
+ data: K,
217
+ breakAt: ve.SMALL
218
+ }
219
+ ) }) : /* @__PURE__ */ t(T, { label: l, isWithinBox: !0, columns: X, data: K });
220
+ }, se = (r, i) => {
221
+ const { title: l, footer: a, ...o } = i;
222
+ return D(r).length === 0 && !a ? null : /* @__PURE__ */ t(y, { header: /* @__PURE__ */ t(v, { title: l }), withPadding: !1, footer: a, children: j(r, o) });
223
+ }, V = (r, i) => {
224
+ if (r.length === 0) return null;
225
+ const { title: l, description: a, isFinalPayout: o = !1 } = i, p = [
226
+ {
227
+ title: e("typeColumn"),
228
+ render: (d) => d.name
229
+ },
230
+ {
231
+ title: e(o ? "hoursColumn" : "additionalHoursColumn"),
232
+ justify: "end",
233
+ render: (d) => /* @__PURE__ */ t("div", { className: f.inputContainer, children: /* @__PURE__ */ t(
234
+ d.Field,
235
+ {
236
+ label: d.name,
237
+ shouldVisuallyHideLabel: !0,
238
+ adornmentEnd: e("hoursUnit"),
239
+ description: d.remaining !== null ? e("timeOffBalance.remaining", { balance: d.remaining }) : void 0
240
+ }
241
+ ) })
242
+ }
243
+ ];
244
+ return o || p.splice(1, 0, {
245
+ title: e("preapprovedHoursColumn"),
246
+ justify: "end",
247
+ render: (d) => d.approvedRequestHours && d.approvedRequestHours > 0 ? d.approvedRequestHours : null
248
+ }), /* @__PURE__ */ t(y, { header: /* @__PURE__ */ t(v, { title: l, description: a }), withPadding: !1, children: /* @__PURE__ */ t(T, { label: l, isWithinBox: !0, columns: p, data: r }) });
249
+ }, W = (r, i) => {
250
+ const l = [
251
+ { title: e("typeColumn"), render: (a) => a.label },
252
+ {
253
+ title: e("amountColumn"),
254
+ justify: "end",
255
+ render: (a) => /* @__PURE__ */ t("div", { className: f.inputContainer, children: /* @__PURE__ */ t(a.Field, { label: a.label, shouldVisuallyHideLabel: !0, adornmentStart: "$" }) })
256
+ }
257
+ ];
258
+ return /* @__PURE__ */ t(T, { label: i, isWithinBox: !0, columns: l, data: r });
259
+ }, G = (r) => /* @__PURE__ */ t("div", { className: f.earningsGroupLabel, children: /* @__PURE__ */ t(m, { size: "sm", weight: "semibold", children: r }) }), me = () => {
260
+ const r = u.overtimeIncludedEarnings, i = u.overtimeExcludedEarnings.map((o) => ({
261
+ label: _(o.id),
262
+ Field: o.Field
263
+ })), l = D(r).length > 0;
264
+ if (!l && i.length === 0) return null;
265
+ const a = j(r, {
266
+ label: e("additionalEarningsTitle"),
267
+ rowHeader: e("typeColumn"),
268
+ valueColumnLabel: e("amountColumn"),
269
+ labelFor: _,
270
+ adornmentStart: "$"
271
+ });
272
+ if (!B(r)) {
273
+ const o = [
274
+ ...r.map((p) => ({ label: _(p.name), Field: p.Field })),
275
+ ...i
276
+ ];
277
+ return /* @__PURE__ */ t(y, { header: /* @__PURE__ */ t(v, { title: e("additionalEarningsTitle") }), withPadding: !1, children: W(o, e("additionalEarningsTitle")) });
278
+ }
279
+ return /* @__PURE__ */ s(y, { header: /* @__PURE__ */ t(v, { title: e("additionalEarningsTitle") }), withPadding: !1, children: [
280
+ l ? /* @__PURE__ */ s(ee, { children: [
281
+ /* @__PURE__ */ t("div", { className: f.earningsAlert, children: /* @__PURE__ */ t(
282
+ w,
283
+ {
284
+ status: "info",
285
+ label: e("overtimeMultiplierEarningsAlert"),
286
+ disableScrollIntoView: !0,
287
+ children: /* @__PURE__ */ t(m, { size: "sm", children: e("overtimeMultiplierEarningsAlertDescription") })
288
+ }
289
+ ) }),
290
+ G(e("overtimeIncludedEarningsGroupLabel")),
291
+ a
292
+ ] }) : null,
293
+ i.length > 0 ? /* @__PURE__ */ s(ee, { children: [
294
+ G(e("overtimeExcludedEarningsGroupLabel")),
295
+ W(i, e("overtimeExcludedEarningsGroupLabel"))
296
+ ] }) : null
297
+ ] });
298
+ }, Y = u.paymentMethod, $ = u.reimbursementDraft, de = n.data.reimbursements, ue = n.form.reimbursementDraft?.isAdding ?? !1, ce = async () => {
299
+ const r = await n.actions.onSubmit();
300
+ r && S(te.RUN_PAYROLL_EMPLOYEE_SAVED, {
301
+ payrollPrepared: r.data,
302
+ employee: L
303
+ });
304
+ }, q = /* @__PURE__ */ s(
305
+ c,
306
+ {
307
+ flexDirection: g ? "row" : "column",
308
+ justifyContent: g ? "flex-end" : "normal",
309
+ alignItems: g ? "flex-start" : "stretch",
310
+ gap: 12,
311
+ children: [
312
+ /* @__PURE__ */ t(O, { variant: "secondary", onClick: () => {
313
+ S(te.RUN_PAYROLL_EMPLOYEE_CANCELLED);
314
+ }, title: e("cancelCta"), children: e("cancelCta") }),
315
+ /* @__PURE__ */ t(
316
+ O,
317
+ {
318
+ onClick: () => {
319
+ ce();
320
+ },
321
+ title: e("saveCta"),
322
+ isLoading: n.status.isPending,
323
+ children: e("saveCta")
324
+ }
325
+ )
326
+ ]
327
+ }
328
+ );
329
+ return /* @__PURE__ */ t("div", { ref: A, className: f.container, children: /* @__PURE__ */ t(re, { error: n.errorHandling.errors, LoaderComponent: k, children: /* @__PURE__ */ t(Ie, { formHookResult: n, children: /* @__PURE__ */ s(c, { flexDirection: "column", gap: 24, children: [
330
+ /* @__PURE__ */ s(
331
+ c,
332
+ {
333
+ flexDirection: g ? "row" : "column",
334
+ justifyContent: "space-between",
335
+ alignItems: g ? "flex-start" : "stretch",
336
+ gap: 12,
337
+ children: [
338
+ /* @__PURE__ */ t(c, { flexDirection: "column", alignItems: "stretch", gap: 8, children: /* @__PURE__ */ t(R, { as: "h1", styledAs: "h2", children: e("pageTitle", { employeeName: U }) }) }),
339
+ g && q
340
+ ]
341
+ }
342
+ ),
343
+ !g && q,
344
+ (() => {
345
+ const r = u.jobs.length > 1, i = n.data.isOvertimeEligible ? e("regularHoursTitle") : e("regularHoursTitleWithoutOvertime"), l = !n.data.withOvertime && n.data.isOvertimeEligible, a = n.data.withOvertime && n.data.isOvertimeEligible;
346
+ return /* @__PURE__ */ s(c, { flexDirection: "column", gap: 16, children: [
347
+ r ? /* @__PURE__ */ t(R, { as: "h3", children: i }) : null,
348
+ a ? /* @__PURE__ */ t(
349
+ w,
350
+ {
351
+ status: "info",
352
+ label: e("overtimeWorkweekAlert", { employeeName: U }),
353
+ disableScrollIntoView: !0
354
+ }
355
+ ) : null,
356
+ u.jobs.map((o) => /* @__PURE__ */ t(ge, { children: se(o.hours, {
357
+ title: r ? o.title ?? i : i,
358
+ label: i,
359
+ rowHeader: e("hourTypeColumn"),
360
+ valueColumnLabel: e("hoursColumn"),
361
+ labelFor: le,
362
+ adornmentEnd: e("hoursUnit"),
363
+ footer: l ? /* @__PURE__ */ t(
364
+ O,
365
+ {
366
+ variant: "secondary",
367
+ onClick: () => {
368
+ n.actions.addOvertime();
369
+ },
370
+ title: e("addOvertimeCta"),
371
+ children: e("addOvertimeCta")
372
+ }
373
+ ) : void 0
374
+ }) }, o.jobUuid))
375
+ ] });
376
+ })(),
377
+ me(),
378
+ V(u.timeOff, {
379
+ title: u.finalPayout ? e("timeOffTitleDismissal") : e("timeOffTitle")
380
+ }),
381
+ u.finalPayout ? V(u.finalPayout, {
382
+ title: e("finalPayoutTitle"),
383
+ isFinalPayout: !0,
384
+ description: e("finalPayoutDescription")
385
+ }) : null,
386
+ Y ? /* @__PURE__ */ s(c, { flexDirection: "column", gap: 24, children: [
387
+ $ ? /* @__PURE__ */ t(
388
+ Ge,
389
+ {
390
+ rows: de ?? [],
391
+ isAdding: ue,
392
+ draftFields: $,
393
+ onBeginAdd: () => n.actions.beginAddReimbursement?.(),
394
+ onSave: () => n.actions.saveReimbursement?.(),
395
+ onCancel: () => n.actions.cancelReimbursement?.(),
396
+ onRemove: (r) => n.actions.removeReimbursement?.(r)
397
+ }
398
+ ) : null,
399
+ /* @__PURE__ */ s(c, { flexDirection: "column", gap: 12, children: [
400
+ /* @__PURE__ */ t(R, { as: "h3", styledAs: "h4", children: e("paymentMethodTitle") }),
401
+ /* @__PURE__ */ t(
402
+ Y,
403
+ {
404
+ label: e("paymentMethodLabel"),
405
+ description: e("paymentMethodDescription"),
406
+ getOptionLabel: (r) => r === ye.Check ? e("paymentMethodOptions.check") : e("paymentMethodOptions.directDeposit")
407
+ }
408
+ )
409
+ ] })
410
+ ] }) : null
411
+ ] }) }) }) });
412
+ };
413
+ export {
414
+ Ct as RropPayrollEditEmployee
415
+ };
416
+ //# sourceMappingURL=RropPayrollEditEmployee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RropPayrollEditEmployee.js","sources":["../../../../src/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.tsx"],"sourcesContent":["import { Fragment, useMemo, useRef } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { PayrollUpdatePaymentMethod } from '@gusto/embedded-api/models/components/payrollupdate'\nimport type { PayrollEditEmployeeProps } from '../PayrollEditEmployee/PayrollEditEmployee'\nimport { usePayrollEditEmployeeForm } from '../PayrollEditEmployee/shared/usePayrollEditEmployeeForm'\nimport {\n isSplitByWorkweek,\n type HourEntry,\n type TimeOffEntry,\n type ReimbursementRow,\n type ReimbursementDraftFields,\n} from '../PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields'\nimport { PayrollEditEmployeeErrorCodes } from '../PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema'\nimport styles from './RropPayrollEditEmployee.module.scss'\nimport {\n componentEvents,\n COMPENSATION_NAME_REGULAR_HOURS,\n COMPENSATION_NAME_OVERTIME,\n COMPENSATION_NAME_DOUBLE_OVERTIME,\n COMPENSATION_NAME_BONUS,\n COMPENSATION_NAME_COMMISSION,\n COMPENSATION_NAME_CORRECTION_PAYMENT,\n COMPENSATION_NAME_CASH_TIPS,\n COMPENSATION_NAME_PAYCHECK_TIPS,\n COMPENSATION_NAME_REIMBURSEMENT,\n BREAKPOINTS,\n} from '@/shared/constants'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, Grid, DataView, useDataView, EmptyData } from '@/components/Common'\nimport type { useDataViewPropReturn } from '@/components/Common/DataView/useDataView'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { firstLastName, formatNumberAsCurrency } from '@/helpers/formattedStrings'\nimport { useDateFormatter } from '@/hooks/useDateFormatter'\nimport useContainerBreakpoints from '@/hooks/useContainerBreakpoints/useContainerBreakpoints'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\nimport TrashCanSvg from '@/assets/icons/trashcan.svg?react'\n\n/**\n * Regular rate of pay (RRoP) rebuild of {@link PayrollEditEmployee}.\n *\n * @remarks\n * Not exported and not part of the public SDK surface. Partners reach it only through\n * `PayrollEditEmployee`, which renders it in place of the legacy editor unless the\n * `regularRateOfPay` flag in {@link Features} is set to `false`. Once that flag is removed, this\n * component replaces `PayrollEditEmployee` as the public export, and the\n * `Payroll.RropPayrollEditEmployee` translation namespace is renamed with it.\n *\n * Consumes {@link usePayrollEditEmployeeForm} and renders the header, the hours /\n * additional-earnings / time-off / payment-method sections, and the\n * `Cancel`/`Save` controls, performing a real payroll update on save. For an overtime-eligible\n * employee on a multi-workweek payroll, Overtime/Double-overtime rows start hidden behind a single,\n * employee-level \"Add overtime\" control (`form.data.withOvertime` / `form.actions.addOvertime`)\n * unless the employee already has real overtime hours or matching per-workweek breakdowns; adding\n * overtime also switches hours and overtime-affecting earnings to per-workweek columns and surfaces\n * the per-row \"fill in every workweek\" validation. `Cancel` and `Save` emit the same events as the\n * stable component so the surrounding flow behaves identically.\n *\n * @internal\n */\nexport function RropPayrollEditEmployee({\n FallbackComponent,\n LoaderComponent,\n ...props\n}: PayrollEditEmployeeProps) {\n return (\n <BaseBoundaries\n componentName=\"Payroll.RropPayrollEditEmployee\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <Root LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\ninterface ReimbursementsSectionProps {\n rows: ReimbursementRow[]\n isAdding: boolean\n draftFields: ReimbursementDraftFields\n onBeginAdd: () => void\n onSave: () => void\n onCancel: () => void\n onRemove: (index: number) => void\n}\n\n// Reimbursement UI duplicated from the stable PayrollEditEmployeePresentation for\n// visual parity while the RRoP editor is developed alongside legacy. Powered by\n// usePayrollEditEmployeeForm rather than a local field array/draft form.\nconst ReimbursementsSection = ({\n rows,\n isAdding,\n draftFields,\n onBeginAdd,\n onSave,\n onCancel,\n onRemove,\n}: ReimbursementsSectionProps) => {\n const { t } = useTranslation('Payroll.RropPayrollEditEmployee')\n const { Button, ButtonIcon, Heading } = useComponentContext()\n const { Description, Amount } = draftFields\n\n const reimbursementDataViewProps = useDataView<ReimbursementRow>({\n data: rows,\n columns: [\n {\n key: 'description',\n title: t('reimbursementDescriptionColumn'),\n render: row => row.description.trim() || t('reimbursementUnnamedFallback'),\n },\n {\n key: 'amount',\n title: t('reimbursementAmountColumn'),\n justify: 'end',\n render: row => formatNumberAsCurrency(parseFloat(row.amount || '0')),\n },\n {\n key: 'recurring',\n title: t('reimbursementTypeColumn'),\n render: row =>\n row.recurring ? t('reimbursementTypeRecurring') : t('reimbursementTypeOneTime'),\n },\n ],\n itemMenu: row => {\n if (row.recurring) return null\n const displayDescription = row.description.trim() || t('reimbursementUnnamedFallback')\n return (\n <ButtonIcon\n variant=\"tertiary\"\n onClick={() => {\n onRemove(row.index)\n }}\n aria-label={t('removeReimbursementLabel', { description: displayDescription })}\n >\n <TrashCanSvg aria-hidden />\n </ButtonIcon>\n )\n },\n emptyState: () => (\n <EmptyData title={t('reimbursementEmptyTitle')}>\n <Button variant=\"secondary\" onClick={onBeginAdd} icon={<PlusCircleIcon aria-hidden />}>\n {t('addReimbursementCta')}\n </Button>\n </EmptyData>\n ),\n })\n\n return (\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\" styledAs=\"h4\">\n {t('reimbursementTitle')}\n </Heading>\n {!(rows.length === 0 && isAdding) && (\n <DataView label={t('reimbursementsTableLabel')} {...reimbursementDataViewProps} />\n )}\n {isAdding ? (\n <Flex flexDirection=\"column\" gap={12}>\n <Grid gridTemplateColumns={{ base: '1fr', small: [320, 320] }} gap={20}>\n <Description\n label={t('reimbursementDescriptionLabel')}\n placeholder={t('reimbursementDescriptionPlaceholder')}\n />\n <Amount label={t('reimbursementAmountLabel')} adornmentStart=\"$\" isRequired />\n </Grid>\n <Flex gap={12}>\n <Button onClick={onSave} title={t('saveReimbursementCta')}>\n {t('saveReimbursementCta')}\n </Button>\n <Button variant=\"secondary\" onClick={onCancel} title={t('cancelReimbursementCta')}>\n {t('cancelReimbursementCta')}\n </Button>\n </Flex>\n </Flex>\n ) : (\n rows.length > 0 && (\n <div>\n <Button\n variant=\"secondary\"\n onClick={onBeginAdd}\n title={t('addReimbursementLink')}\n icon={<PlusCircleIcon aria-hidden />}\n >\n {t('addReimbursementLink')}\n </Button>\n </div>\n )\n )}\n </Flex>\n )\n}\n\nconst Root = ({\n employeeId,\n companyId,\n payrollId,\n withReimbursements = true,\n onEvent,\n dictionary,\n LoaderComponent,\n}: PayrollEditEmployeeProps) => {\n useComponentDictionary('Payroll.RropPayrollEditEmployee', dictionary)\n useI18n('Payroll.RropPayrollEditEmployee')\n const { t } = useTranslation('Payroll.RropPayrollEditEmployee')\n const dateFormatter = useDateFormatter()\n\n const { Alert, Box, BoxHeader, Button, Heading, Text } = useComponentContext()\n\n const containerRef = useRef<HTMLDivElement>(null)\n const breakpoints = useContainerBreakpoints({ ref: containerRef })\n const isSmallOrGreater = breakpoints.includes('small')\n\n // Error copy keyed by code, supplied to the hook once. Every bound field\n // resolves and renders its own message from this — the consumer never\n // reconstructs form paths or picks which rule a field can fail. Memoized so\n // the hook's fields aren't rebuilt each render.\n const errorMessages = useMemo(\n () => ({\n [PayrollEditEmployeeErrorCodes.NEGATIVE_AMOUNT]: t('validations.negativeAmount'),\n [PayrollEditEmployeeErrorCodes.MAX_HOURS]: t('validations.maxHours'),\n [PayrollEditEmployeeErrorCodes.REQUIRED_WORKWEEK]: t('validations.requiredWorkweek'),\n [PayrollEditEmployeeErrorCodes.REIMBURSEMENT_AMOUNT]: t('validations.reimbursementAmount'),\n [PayrollEditEmployeeErrorCodes.MAX_REIMBURSEMENT_AMOUNT]: t(\n 'validations.maxReimbursementAmount',\n ),\n }),\n [t],\n )\n\n const form = usePayrollEditEmployeeForm({\n employeeId,\n companyId,\n payrollId,\n withReimbursements,\n errorMessages,\n })\n\n if (form.isLoading) {\n return (\n <div ref={containerRef} className={styles.container}>\n <BaseLayout isLoading error={form.errorHandling.errors} LoaderComponent={LoaderComponent} />\n </div>\n )\n }\n\n const { employee } = form.data\n const Fields = form.form.Fields\n\n const employeeName = firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n })\n\n const hoursLabel = (name: string) => {\n switch (name) {\n case COMPENSATION_NAME_REGULAR_HOURS:\n return t('compensationNames.regularHours')\n case COMPENSATION_NAME_OVERTIME:\n return t('compensationNames.overtime')\n case COMPENSATION_NAME_DOUBLE_OVERTIME:\n return t('compensationNames.doubleOvertime')\n default:\n return name\n }\n }\n\n const earningLabel = (name: string) => {\n switch (name) {\n case COMPENSATION_NAME_BONUS:\n return t('fixedCompensationNames.bonus')\n case COMPENSATION_NAME_COMMISSION:\n return t('fixedCompensationNames.commission')\n case COMPENSATION_NAME_CORRECTION_PAYMENT:\n return t('fixedCompensationNames.correctionPayment')\n case COMPENSATION_NAME_CASH_TIPS:\n return t('fixedCompensationNames.cashTips')\n case COMPENSATION_NAME_PAYCHECK_TIPS:\n return t('fixedCompensationNames.paycheckTips')\n case COMPENSATION_NAME_REIMBURSEMENT:\n return t('fixedCompensationNames.reimbursement')\n default:\n return name\n }\n }\n\n // The visible rows for a section: the first workweek's rows drive the row set\n // (workweek columns fan out from there), or the flat list when not split.\n const getSectionRows = (section: HourEntry[] | Record<string, HourEntry[]>) =>\n isSplitByWorkweek(section) ? (section[form.data.workweeks[0]?.startDate ?? ''] ?? []) : section\n\n const buildBreakdownDataView = (\n section: HourEntry[] | Record<string, HourEntry[]>,\n options: {\n label: string\n rowHeader: string\n valueColumnLabel: string\n labelFor: (name: string) => string\n adornmentStart?: string\n adornmentEnd?: string\n },\n ) => {\n const { label, rowHeader, valueColumnLabel, labelFor, adornmentStart, adornmentEnd } = options\n const split = isSplitByWorkweek(section)\n const rows = getSectionRows(section)\n\n const renderField = (entry: HourEntry, fieldLabel: string) => (\n <div className={classNames(styles.inputContainer, split && styles.workweekInputContainer)}>\n <entry.Field\n label={fieldLabel}\n shouldVisuallyHideLabel\n adornmentStart={adornmentStart}\n adornmentEnd={adornmentEnd}\n />\n </div>\n )\n\n const valueColumn: useDataViewPropReturn<HourEntry>['columns'][number] = {\n title: valueColumnLabel,\n justify: 'end',\n render: row => renderField(row, labelFor(row.name)),\n }\n\n // Columns come straight from the hook's normalized workweeks, so each header\n // has both boundary dates without re-deriving them from the raw payroll.\n const workweekColumns: useDataViewPropReturn<HourEntry>['columns'] = form.data.workweeks.map(\n ({ startDate, endDate }) => {\n const rangeLabel = dateFormatter.formatPayPeriodRange(startDate, endDate, {\n useShortMonth: true,\n })\n return {\n title: rangeLabel,\n justify: 'end',\n render: row => {\n const cell = (section as Record<string, HourEntry[]>)[startDate]?.find(\n entry => entry.jobUuid === row.jobUuid && entry.name === row.name,\n )\n return cell ? renderField(cell, `${labelFor(row.name)} ${rangeLabel}`) : null\n },\n }\n },\n )\n\n const columns: useDataViewPropReturn<HourEntry>['columns'] = [\n { title: rowHeader, render: row => labelFor(row.name) },\n ...(split ? workweekColumns : [valueColumn]),\n ]\n\n if (!split) {\n return <DataView label={label} isWithinBox columns={columns} data={rows} />\n }\n\n return (\n <div className={styles.workweekTableScroll}>\n <DataView\n label={label}\n isWithinBox\n columns={columns}\n data={rows}\n breakAt={BREAKPOINTS.SMALL}\n />\n </div>\n )\n }\n\n const renderBreakdownSection = (\n section: HourEntry[] | Record<string, HourEntry[]>,\n options: {\n title: string\n label: string\n rowHeader: string\n valueColumnLabel: string\n labelFor: (name: string) => string\n adornmentStart?: string\n adornmentEnd?: string\n footer?: React.ReactNode\n },\n ) => {\n const { title, footer, ...viewOptions } = options\n if (getSectionRows(section).length === 0 && !footer) return null\n\n return (\n <Box header={<BoxHeader title={title} />} withPadding={false} footer={footer}>\n {buildBreakdownDataView(section, viewOptions)}\n </Box>\n )\n }\n\n const renderTimeOffSection = (\n entries: TimeOffEntry[],\n options: { title: string; description?: string; isFinalPayout?: boolean },\n ) => {\n if (entries.length === 0) return null\n const { title, description, isFinalPayout = false } = options\n\n const columns: useDataViewPropReturn<TimeOffEntry>['columns'] = [\n {\n title: t('typeColumn'),\n render: entry => entry.name,\n },\n {\n title: isFinalPayout ? t('hoursColumn') : t('additionalHoursColumn'),\n justify: 'end',\n render: entry => (\n <div className={styles.inputContainer}>\n <entry.Field\n label={entry.name}\n shouldVisuallyHideLabel\n adornmentEnd={t('hoursUnit')}\n description={\n entry.remaining !== null\n ? t('timeOffBalance.remaining', { balance: entry.remaining })\n : undefined\n }\n />\n </div>\n ),\n },\n ]\n\n if (!isFinalPayout) {\n columns.splice(1, 0, {\n title: t('preapprovedHoursColumn'),\n justify: 'end',\n render: entry =>\n entry.approvedRequestHours && entry.approvedRequestHours > 0\n ? entry.approvedRequestHours\n : null,\n })\n }\n\n return (\n <Box header={<BoxHeader title={title} description={description} />} withPadding={false}>\n <DataView label={title} isWithinBox columns={columns} data={entries} />\n </Box>\n )\n }\n\n // A flat single-amount earnings table: one \"type\" column and one \"$\" input\n // column. Used for the merged no-overtime list and the overtime-excluded group.\n const renderAmountTable = (\n rows: { label: string; Field: HourEntry['Field'] }[],\n label: string,\n ) => {\n const columns: useDataViewPropReturn<(typeof rows)[number]>['columns'] = [\n { title: t('typeColumn'), render: row => row.label },\n {\n title: t('amountColumn'),\n justify: 'end',\n render: row => (\n <div className={styles.inputContainer}>\n <row.Field label={row.label} shouldVisuallyHideLabel adornmentStart=\"$\" />\n </div>\n ),\n },\n ]\n return <DataView label={label} isWithinBox columns={columns} data={rows} />\n }\n\n const renderGroupLabel = (label: string) => (\n <div className={styles.earningsGroupLabel}>\n <Text size=\"sm\" weight=\"semibold\">\n {label}\n </Text>\n </div>\n )\n\n const renderEarningsSection = () => {\n const includedEarnings = Fields.overtimeIncludedEarnings\n const excludedRows = Fields.overtimeExcludedEarnings.map(entry => ({\n label: earningLabel(entry.id),\n Field: entry.Field,\n }))\n\n const hasIncluded = getSectionRows(includedEarnings).length > 0\n if (!hasIncluded && excludedRows.length === 0) return null\n\n const includedTable = buildBreakdownDataView(includedEarnings, {\n label: t('additionalEarningsTitle'),\n rowHeader: t('typeColumn'),\n valueColumnLabel: t('amountColumn'),\n labelFor: earningLabel,\n adornmentStart: '$',\n })\n\n // Split into per-workweek columns and labeled overtime groups only once\n // overtime is added (the included section becomes workweek-keyed). Otherwise\n // included and excluded earnings render together as one flat list.\n if (!isSplitByWorkweek(includedEarnings)) {\n const mergedRows = [\n ...includedEarnings.map(entry => ({ label: earningLabel(entry.name), Field: entry.Field })),\n ...excludedRows,\n ]\n return (\n <Box header={<BoxHeader title={t('additionalEarningsTitle')} />} withPadding={false}>\n {renderAmountTable(mergedRows, t('additionalEarningsTitle'))}\n </Box>\n )\n }\n\n return (\n <Box header={<BoxHeader title={t('additionalEarningsTitle')} />} withPadding={false}>\n {hasIncluded ? (\n <>\n <div className={styles.earningsAlert}>\n <Alert\n status=\"info\"\n label={t('overtimeMultiplierEarningsAlert')}\n disableScrollIntoView\n >\n <Text size=\"sm\">{t('overtimeMultiplierEarningsAlertDescription')}</Text>\n </Alert>\n </div>\n {renderGroupLabel(t('overtimeIncludedEarningsGroupLabel'))}\n {includedTable}\n </>\n ) : null}\n {excludedRows.length > 0 ? (\n <>\n {renderGroupLabel(t('overtimeExcludedEarningsGroupLabel'))}\n {renderAmountTable(excludedRows, t('overtimeExcludedEarningsGroupLabel'))}\n </>\n ) : null}\n </Box>\n )\n }\n\n const PaymentMethodField = Fields.paymentMethod\n const ReimbursementDraft = Fields.reimbursementDraft\n const reimbursementRows = form.data.reimbursements\n const isAddingReimbursement = form.form.reimbursementDraft?.isAdding ?? false\n\n const handleSave = async () => {\n const result = await form.actions.onSubmit()\n if (!result) return\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED, {\n payrollPrepared: result.data,\n employee,\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.RUN_PAYROLL_EMPLOYEE_CANCELLED)\n }\n\n const actions = (\n <Flex\n flexDirection={isSmallOrGreater ? 'row' : 'column'}\n justifyContent={isSmallOrGreater ? 'flex-end' : 'normal'}\n alignItems={isSmallOrGreater ? 'flex-start' : 'stretch'}\n gap={12}\n >\n <Button variant=\"secondary\" onClick={handleCancel} title={t('cancelCta')}>\n {t('cancelCta')}\n </Button>\n <Button\n onClick={() => {\n void handleSave()\n }}\n title={t('saveCta')}\n isLoading={form.status.isPending}\n >\n {t('saveCta')}\n </Button>\n </Flex>\n )\n\n return (\n <div ref={containerRef} className={styles.container}>\n <BaseLayout error={form.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <SDKFormProvider formHookResult={form}>\n <Flex flexDirection=\"column\" gap={24}>\n <Flex\n flexDirection={isSmallOrGreater ? 'row' : 'column'}\n justifyContent=\"space-between\"\n alignItems={isSmallOrGreater ? 'flex-start' : 'stretch'}\n gap={12}\n >\n <Flex flexDirection=\"column\" alignItems=\"stretch\" gap={8}>\n <Heading as=\"h1\" styledAs=\"h2\">\n {t('pageTitle', { employeeName })}\n </Heading>\n </Flex>\n {isSmallOrGreater && actions}\n </Flex>\n {!isSmallOrGreater && actions}\n\n {(() => {\n const isMultiJob = Fields.jobs.length > 1\n const genericHoursTitle = form.data.isOvertimeEligible\n ? t('regularHoursTitle')\n : t('regularHoursTitleWithoutOvertime')\n // \"Add overtime\" is an employee-level action, but the design gives\n // every job its own button so each job's hours box can trigger it.\n const showAddOvertime = !form.data.withOvertime && form.data.isOvertimeEligible\n // Its counterpart once overtime is on: a single employee-level alert\n // explaining the workweek split, rendered once above all jobs.\n const showOvertimeWorkweekAlert =\n form.data.withOvertime && form.data.isOvertimeEligible\n\n return (\n <Flex flexDirection=\"column\" gap={16}>\n {isMultiJob ? <Heading as=\"h3\">{genericHoursTitle}</Heading> : null}\n {showOvertimeWorkweekAlert ? (\n <Alert\n status=\"info\"\n label={t('overtimeWorkweekAlert', { employeeName })}\n disableScrollIntoView\n />\n ) : null}\n {Fields.jobs.map(job => (\n <Fragment key={job.jobUuid}>\n {renderBreakdownSection(job.hours, {\n title: isMultiJob ? (job.title ?? genericHoursTitle) : genericHoursTitle,\n label: genericHoursTitle,\n rowHeader: t('hourTypeColumn'),\n valueColumnLabel: t('hoursColumn'),\n labelFor: hoursLabel,\n adornmentEnd: t('hoursUnit'),\n footer: showAddOvertime ? (\n <Button\n variant=\"secondary\"\n onClick={() => {\n form.actions.addOvertime()\n }}\n title={t('addOvertimeCta')}\n >\n {t('addOvertimeCta')}\n </Button>\n ) : undefined,\n })}\n </Fragment>\n ))}\n </Flex>\n )\n })()}\n\n {renderEarningsSection()}\n\n {renderTimeOffSection(Fields.timeOff, {\n title: Fields.finalPayout ? t('timeOffTitleDismissal') : t('timeOffTitle'),\n })}\n\n {Fields.finalPayout\n ? renderTimeOffSection(Fields.finalPayout, {\n title: t('finalPayoutTitle'),\n isFinalPayout: true,\n description: t('finalPayoutDescription'),\n })\n : null}\n\n {PaymentMethodField ? (\n <Flex flexDirection=\"column\" gap={24}>\n {ReimbursementDraft ? (\n <ReimbursementsSection\n rows={reimbursementRows ?? []}\n isAdding={isAddingReimbursement}\n draftFields={ReimbursementDraft}\n onBeginAdd={() => form.actions.beginAddReimbursement?.()}\n onSave={() => form.actions.saveReimbursement?.()}\n onCancel={() => form.actions.cancelReimbursement?.()}\n onRemove={index => form.actions.removeReimbursement?.(index)}\n />\n ) : null}\n\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\" styledAs=\"h4\">\n {t('paymentMethodTitle')}\n </Heading>\n <PaymentMethodField\n label={t('paymentMethodLabel')}\n description={t('paymentMethodDescription')}\n getOptionLabel={value =>\n value === PayrollUpdatePaymentMethod.Check\n ? t('paymentMethodOptions.check')\n : t('paymentMethodOptions.directDeposit')\n }\n />\n </Flex>\n </Flex>\n ) : null}\n </Flex>\n </SDKFormProvider>\n </BaseLayout>\n </div>\n )\n}\n"],"names":["RropPayrollEditEmployee","FallbackComponent","LoaderComponent","props","jsx","BaseBoundaries","Root","ReimbursementsSection","rows","isAdding","draftFields","onBeginAdd","onSave","onCancel","onRemove","t","useTranslation","Button","ButtonIcon","Heading","useComponentContext","Description","Amount","reimbursementDataViewProps","useDataView","row","formatNumberAsCurrency","displayDescription","TrashCanSvg","EmptyData","PlusCircleIcon","jsxs","Flex","DataView","Grid","employeeId","companyId","payrollId","withReimbursements","onEvent","dictionary","useComponentDictionary","useI18n","dateFormatter","useDateFormatter","Alert","Box","BoxHeader","Text","containerRef","useRef","isSmallOrGreater","useContainerBreakpoints","errorMessages","useMemo","PayrollEditEmployeeErrorCodes","form","usePayrollEditEmployeeForm","styles","BaseLayout","employee","Fields","employeeName","firstLastName","hoursLabel","name","COMPENSATION_NAME_REGULAR_HOURS","COMPENSATION_NAME_OVERTIME","COMPENSATION_NAME_DOUBLE_OVERTIME","earningLabel","COMPENSATION_NAME_BONUS","COMPENSATION_NAME_COMMISSION","COMPENSATION_NAME_CORRECTION_PAYMENT","COMPENSATION_NAME_CASH_TIPS","COMPENSATION_NAME_PAYCHECK_TIPS","COMPENSATION_NAME_REIMBURSEMENT","getSectionRows","section","isSplitByWorkweek","buildBreakdownDataView","options","label","rowHeader","valueColumnLabel","labelFor","adornmentStart","adornmentEnd","split","renderField","entry","fieldLabel","classNames","valueColumn","workweekColumns","startDate","endDate","rangeLabel","cell","columns","BREAKPOINTS","renderBreakdownSection","title","footer","viewOptions","renderTimeOffSection","entries","description","isFinalPayout","renderAmountTable","renderGroupLabel","renderEarningsSection","includedEarnings","excludedRows","hasIncluded","includedTable","mergedRows","Fragment","PaymentMethodField","ReimbursementDraft","reimbursementRows","isAddingReimbursement","handleSave","result","componentEvents","actions","SDKFormProvider","isMultiJob","genericHoursTitle","showAddOvertime","showOvertimeWorkweekAlert","job","index","value","PayrollUpdatePaymentMethod"],"mappings":"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"}
@@ -15,4 +15,4 @@ export {
15
15
  o as workweekInputContainer,
16
16
  r as workweekTableScroll
17
17
  };
18
- //# sourceMappingURL=UNSTABLE_PayrollEditEmployee.module.scss.js.map
18
+ //# sourceMappingURL=RropPayrollEditEmployee.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RropPayrollEditEmployee.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,97 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { useState as d } from "react";
3
+ import { useForm as M, FormProvider as q } from "react-hook-form";
4
+ import { zodResolver as b } from "@hookform/resolvers/zod";
5
+ import { useTranslation as A } from "react-i18next";
6
+ import { useQueryClient as N } from "@tanstack/react-query";
7
+ import { usePayrollsGetSuspense as F } from "@gusto/embedded-api/react-query/payrollsGet";
8
+ import { usePayrollsPrepareMutation as O } from "@gusto/embedded-api/react-query/payrollsPrepare";
9
+ import { usePayrollsUpdateMutation as B } from "@gusto/embedded-api/react-query/payrollsUpdate";
10
+ import { usePaySchedulesGetAllSuspense as G } from "@gusto/embedded-api/react-query/paySchedulesGetAll";
11
+ import { getDefaultWithholdingPayPeriod as K } from "../OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js";
12
+ import { PREPARE_QUERY_KEY as Q } from "../PayrollConfiguration/usePayrollConfigurationData.js";
13
+ import { createTransitionConfigurationSchema as _ } from "./TransitionConfigurationTypes.js";
14
+ import { TransitionConfigurationPresentation as V } from "./TransitionConfigurationPresentation.js";
15
+ import { BaseComponent as Y } from "../../Base/Base.js";
16
+ import { useBase as j } from "../../Base/useBase.js";
17
+ import { Form as z } from "../../Common/Form/Form.js";
18
+ import { useComponentDictionary as H, useI18n as J } from "../../../i18n/I18n.js";
19
+ import { componentEvents as L } from "../../../shared/constants.js";
20
+ import { SDKInternalError as X } from "../../../types/sdkError.js";
21
+ const Z = _();
22
+ function $(e) {
23
+ return typeof e.employeeUuid == "string" && typeof e.version == "string";
24
+ }
25
+ function De(e) {
26
+ return /* @__PURE__ */ i(Y, { ...e, children: /* @__PURE__ */ i(I, { ...e }) });
27
+ }
28
+ function I({ dictionary: e, companyId: r, payrollId: t, className: h }) {
29
+ H("Payroll.TransitionConfiguration", e), J("Payroll.TransitionConfiguration");
30
+ const { t: c } = A("Payroll.TransitionConfiguration"), { onEvent: f, baseSubmitHandler: y } = j(), P = N(), { data: g } = F({ companyId: r, payrollId: t }), { data: C } = G({ companyId: r }), { mutateAsync: S, isPending: D } = O(), { mutateAsync: R, isPending: T } = B(), o = g.payrollShow, a = C.payScheduleShowResponse?.find(
31
+ (n) => n.uuid === o?.payPeriod?.payScheduleUuid
32
+ ), [s, w] = d({
33
+ withholdingPayPeriod: K(
34
+ o?.withholdingPayPeriod ?? a?.frequency
35
+ ),
36
+ withholdingRate: o?.fixedWithholdingRate ? "supplemental" : "regular"
37
+ }), [x, l] = d(!1), [E, v] = d(null), u = M({
38
+ resolver: b(Z),
39
+ defaultValues: {
40
+ skipRegularDeductions: o?.skipRegularDeductions ?? !1
41
+ }
42
+ }), W = (n) => {
43
+ w(n), l(!1);
44
+ }, U = async (n) => {
45
+ await y(n, async ({ skipRegularDeductions: k }) => {
46
+ const p = (await S({
47
+ request: { companyId: r, payrollId: t, requestBody: {} }
48
+ })).payrollPrepared?.employeeCompensations?.find(
49
+ $
50
+ );
51
+ if (!p)
52
+ throw new X(c("errors.noEmployeeCompensations"));
53
+ const m = await R({
54
+ request: {
55
+ companyId: r,
56
+ payrollId: t,
57
+ payrollUpdate: {
58
+ employeeCompensations: [
59
+ { employeeUuid: p.employeeUuid, version: p.version }
60
+ ],
61
+ skipRegularDeductions: k,
62
+ withholdingPayPeriod: s.withholdingPayPeriod,
63
+ fixedWithholdingRate: s.withholdingRate === "supplemental"
64
+ }
65
+ }
66
+ });
67
+ v(m.payrollPrepared?.checkDate ?? null), await P.invalidateQueries({ queryKey: [Q, t] }), f(L.TRANSITION_CONFIGURED, {
68
+ payrollUuid: t,
69
+ payrollPrepared: m.payrollPrepared
70
+ });
71
+ });
72
+ };
73
+ return /* @__PURE__ */ i(q, { ...u, children: /* @__PURE__ */ i(z, { onSubmit: u.handleSubmit(U), children: /* @__PURE__ */ i(
74
+ V,
75
+ {
76
+ className: h,
77
+ payPeriodStartDate: o?.payPeriod?.startDate,
78
+ payPeriodEndDate: o?.payPeriod?.endDate,
79
+ payScheduleName: a?.customName ?? a?.name ?? null,
80
+ checkDate: E ?? o?.checkDate ?? null,
81
+ isPending: D || T,
82
+ taxWithholdingConfig: s,
83
+ isTaxWithholdingModalOpen: x,
84
+ onTaxWithholdingEditClick: () => {
85
+ l(!0);
86
+ },
87
+ onTaxWithholdingModalDone: W,
88
+ onTaxWithholdingModalCancel: () => {
89
+ l(!1);
90
+ }
91
+ }
92
+ ) }) });
93
+ }
94
+ export {
95
+ De as TransitionConfiguration
96
+ };
97
+ //# sourceMappingURL=TransitionConfiguration.js.map